The present teachings relate to systems and methods for generating exportable encoded identifications of networked machines based on installed package profiles, and more particularly to platforms and techniques for generating an encoded identification of one or more physical or virtual machines in a managed network based on the identified complement of installed packages on individual machines, and the attributes of those packages.
Users of physical or virtual machines commonly install software packages, including package updates, to physical or virtual machines. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set.
Software package update managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package update manager available from Red Hat Inc., and others. In general, available software package managers are configured to interact with the set of installed packages on a client and with one or more software package repositories, to directly connect to those databases and download available package updates.
The task of managing a network of physical and/or virtual machines can be complicated by the need to identify and track the population of those machines under management. The machines under management may need to be identified and tracked for a variety of purposes, including, for instance, to identify and schedule package updates, activate and deactivate machines assigned to cloud or other networks, perform maintenance, and/or other package or network management tasks. In various networks, for example including those having multiple network administrators, the task of maintaining an inventory of machines, software packages on those machines, and/or other resources may be difficult to coordinate. It may be desirable to provide systems and methods for generating encoded identifications of networked machines based on installed package profiles, in which machines under management and their hosted packages and other resources can be discovered, identified, stored, updated and tracked using captured package profiles, facilitating maintenance, updating, and other operations on those deployments.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures:
Embodiments of the present teachings relate to systems and methods for generating exportable encoded identifications of networked machines based on installed package profiles. More particularly, embodiments related to platforms and techniques for extracting a profile of installed packages and/or other resources hosted on a set of known or unknown machines, and developing and storing an encoded identification of those machines which can be used internally or exported externally for network and/or package management purposes. In aspects, a package manager can track and manage the installation of one or more software packages and/or updates to those packages (which may be referred to together as a “software package update”) on a client, host, target, physical, virtual, and/or other machine. The package manager can be configured to access the set of installed packages and their related attributes on the client or other machine, and derive or generate an encoded identification based on that characterizing data. In aspects, the encoded identification can be or include the results of a hash function applied to package names, versions, timestamps or dates, size, number, and/or other attributes or metadata. In aspects, the encoded identification can be or include similar representations or encodings based on a selected subset of the packages installed on a client or other machine. In yet further aspects, the encoded identification can be or include the same types of representations or encodings based on the attributes of files contained within packages, or selected subsets of those files.
According to aspects in further regards, the package manager and/or other logic can transmit or share the encoded identification of one or more clients to one or more than one remote management platforms, to permit management operations on that set of machines. For instance, the encoded identification of one or more machines can be transmitted to or accessed by a remote package server, to permit software package updates to be performed on those machines. In aspects, the encoded identification can in addition or instead be transmitted to or accessed by a network management platform to identify the subject machine(s) for network maintenance, security, and/or other management operations. In aspects, newly connected machines in a managed network can be automatically discovered or identified, and be assigned an encoded representation which can be reported to a network management or other platform to be registered and tracked based on that identification or signature. These and other embodiments described herein address the various noted shortcomings in known package management and network management technology, and provide a user with enhanced package and system management capability including automatic and/or selective identification of deployed machines and their package assets.
Reference will now be made in detail to exemplary embodiments of the present teachings, which are illustrated in the accompanying drawings. Where possible the same reference numbers will be used throughout the drawings to refer to the same or like parts.
In aspects, set of installed software packages 112 can be or include packages comprising various types of applications, such as, for example, messaging applications, spreadsheet or modeling applications, social networking applications, word processing applications, and/or other applications, software, or utilities, and can in aspects include an operating system, drivers, and/or components thereof. Set of installed packages 112 can have an associated set of package attributes 114 which records file names, versions, dates, software requirements, an/or other attributes or metadata related to the software package updates installed on client 102.
In aspects, package manager 110 can communicate with a network interface 134 configured to connect to one or more network 106, such as the public Internet or other public or private networks. Package manager 110 can thereby connect to one or more package server 170 and/or associated package repository 144 hosting software packages including software package updates, and/or other software or resources. Package server 170 can include logic to identify, organize, and distribute one or more software packages to requesting client, server, virtual, and/or other machines.
In aspects, package manager 110 can interact with set of installed packages 112, package server 170, and/or one or more package repository 144 via network interface 134 and one or more networks 106 to identify and manage the content of set of installed packages 112 operating on client 102, and generate an encoded identification 172 of the client 102 and/or other resources associated with client 102. In aspects, package manager 110 can, for example, provide a user with a set of package update options 146 displayed via user interface 142, such as a graphical user interface or others, to select various test, configuration, and/or other management activities on set of installed packages 112. Set of package update options 146 can include options such as one or more selections to perform to select packages for installation and/or update, installation options, and/or other options or parameters for the downloading of package updates from one or more package repositories to set of installed packages 112.
In aspects, package manager 110 can access and extract information related to set of installed packages 112 to generate an encoded identification 172 of client 102 and/or other entities. In aspects, package manager 110 may generate encoded identification 172 based on set of installed packages 112 to create an identifier which can be used by local or remote platforms to perform package update, network management, and/or other operations on client 102. In aspects, the encoded identification 172 can represent a string, label, value, address, and/or other identifier which identifies or associates client 102 by or with its hosted set of installed packages 112. For instance, encoded identification 172 can represent the output of a hash function or hash operation performed on one or more attributes of a package contained in set of package attributes 114. For instance, package manager 110 can perform a hash function, such as Secure Hash Algorithm 1 (SHA1) or other hash function versions and/or other encoding algorithms, on attributes such as the package name, package epoch, package timestamp, package size, and/or other data. In aspects in certain regards, the encoded identification 172 can thereby represent a signature or characterizing code associated with a client 102 and its particular software package complement. In aspects, encoded identification 172 can represent a unique identifier for the particular client 102 whose set of installed packages 112 has been profiled in managed network 176. In aspects, encoded identification 172, including in cases where a hash function or operator is employed, can represent a non-unique identifier in managed network 176, for instance due to hash collision or can in aspects represent a unique representation of a client 102 and/or its set of installed packages 112, and/or one or more selected package subsets of set of installed packages 112.
As illustrated for example more particularly in
According to aspects, package manager 110 and/or other logic can interact with other types of remote platforms using encoded representation, such as, a network management platform 174 illustrated in
In aspects, it may be noted that package manager 110 and/or other logic on a given client 102 can generate an updated encoded identifier 172, based on triggering events and/or other criteria. For instance, package manager 110 and/or other logic can generate an updated, revised, or new encoded identifier 172 when set of installed packages 112 in client 102 changes, such as when a package update and/or other software revision is received, and/or other resources associated with client 102 are changed. In aspects, package manager 110 and/or other logic can generate an updated encoded identifier 172 based on other criteria, such as at predetermined intervals or other schedules. Other criteria or conditions can be used to initiate an update to encoded identifier 172 of one or more client 102 in managed network 176. After generating any update to encoded identifier 172, package manager 110 and/or other logic can transmit encoded identifier 172 to one or more remote platform, such as, for instance, package server 170, one or more repository 144, network management platform 174, and/or other platforms, servers, machines, sites, and/or services.
In 412, package manager 110 and/or other logic can transmit encoded identification 172 to a remote platform, such as a package server 170, a network management platform 174, and/or other remote server, platform, or service. In 414, package operations and/or other remote network management operations or functions can be initiated on client 102 using encoded identification 172. For instance, in aspects, package server 170 can identify client 102 using encoded identification 172 and generate a package update to update set of installed packages 112 on client 102. For further instance, in aspects, a network management platform 174 can establish a secure channel, or otherwise communicate, with client 102 to perform network management functions, such as, for example, performing configuration management on one or more client 102, executing security services related to one or more client 102, and/or other management operations. In 416, a managed network 176 containing one or more client 102 can be interrogated, for instance via network management platform 174, to discover any newly connected, activated, and/or updated machines. For instance, network management platform 174 can be configured to discover physical and/or virtual machines having a new network address, or other network registration. In 418, package manager 110 can generated an encoded identification 172 of any newly registered and/or updated machines, for instance by receiving a configuration command from network management platform 174 or otherwise. In 420, processing can return to a prior processing point, jump to a further processing point, or end.
The foregoing description is illustrative, and variations in configuration and implementation may occur to persons skilled in the art. For example, while embodiments have been described in which a unitary package manager 110 operating on client 102 is configured to control package management and client identification activity, in embodiments, multiple local and/or remote applications or software can interact to control the downloading, installation, testing, and other management of software packages, and the generation of encoded identification 172. For further example, while embodiments have been described in which one encoded identification 172 can be generated for one client 102, in embodiments, more than one encoded identification 172 can be generated for a given client 102, for instance, by appending additional data to encoded identification 172, and/or operating on data stored on or associated with client 102 in addition to set of installed packages 112 and associated set of package attributes 114. For yet further example, while embodiments have been described in which package update or client identification activity is conducted on one client 102, in embodiments, multiple local or remote targets, clients, and/or other machines can register to package manager 110 and/or other logic or resources to receive or perform package update and/or identification-encoding activity. Other resources described as singular or integrated can in embodiments be plural or distributed, and resources described as multiple or distributed can in embodiments be combined. The scope of the present teachings is accordingly intended to be limited only by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5940513 | Aucsmith | Aug 1999 | A |
6366950 | Scheussler | Apr 2002 | B1 |
6438749 | Chamberlain | Aug 2002 | B1 |
6578113 | Krishnamurthy et al. | Jun 2003 | B2 |
6754895 | Bartel | Jun 2004 | B1 |
6789255 | Pedrizetti | Sep 2004 | B1 |
6957185 | Labaton | Oct 2005 | B1 |
7113594 | Boneh | Sep 2006 | B2 |
7194730 | Pramberger | Mar 2007 | B2 |
7240336 | Baker | Jul 2007 | B1 |
7472353 | Wolff et al. | Dec 2008 | B1 |
7512939 | Brookner | Mar 2009 | B2 |
7530065 | Ciudad et al. | May 2009 | B1 |
7624393 | Egan et al. | Nov 2009 | B2 |
7634454 | Venolia | Dec 2009 | B2 |
7657885 | Anderson | Feb 2010 | B2 |
7693962 | Serlet et al. | Apr 2010 | B2 |
7694294 | Bukovec et al. | Apr 2010 | B2 |
7836341 | Krishnan | Nov 2010 | B1 |
7984420 | Eldridge et al. | Jul 2011 | B2 |
7987449 | Marolia et al. | Jul 2011 | B1 |
8019725 | Mulligan et al. | Sep 2011 | B1 |
8028272 | Eldridge et al. | Sep 2011 | B2 |
8060862 | Eldridge et al. | Nov 2011 | B2 |
8209564 | Vidal et al. | Jun 2012 | B2 |
8225271 | Eldridge et al. | Jul 2012 | B2 |
8250654 | Kennedy | Aug 2012 | B1 |
8255902 | Satish | Aug 2012 | B1 |
8407669 | Yee et al. | Mar 2013 | B2 |
8429256 | Vidal et al. | Apr 2013 | B2 |
8762931 | Vidal et al. | Jun 2014 | B2 |
20020087966 | Wiginton, III et al. | Jul 2002 | A1 |
20020107856 | Scheussler | Aug 2002 | A1 |
20020156839 | Peterson et al. | Oct 2002 | A1 |
20020170052 | Radatti | Nov 2002 | A1 |
20030051235 | Simpson | Mar 2003 | A1 |
20030065919 | Albert | Apr 2003 | A1 |
20030079041 | Parrella, Sr. et al. | Apr 2003 | A1 |
20030229890 | Lau et al. | Dec 2003 | A1 |
20040181790 | Herrick | Sep 2004 | A1 |
20050076087 | Budd et al. | Apr 2005 | A1 |
20050132357 | Shell et al. | Jun 2005 | A1 |
20050182732 | Miller | Aug 2005 | A1 |
20050210459 | Henderson et al. | Sep 2005 | A1 |
20060107062 | Fauthoux | May 2006 | A1 |
20060190773 | Rao | Aug 2006 | A1 |
20060230398 | Yokota | Oct 2006 | A1 |
20070038991 | Schuft et al. | Feb 2007 | A1 |
20070157192 | Hoefler et al. | Jul 2007 | A1 |
20070169075 | Lill et al. | Jul 2007 | A1 |
20080063191 | Hatano | Mar 2008 | A1 |
20080134165 | Anderson et al. | Jun 2008 | A1 |
20080141240 | Uthe | Jun 2008 | A1 |
20080201705 | Wookey | Aug 2008 | A1 |
20080215796 | Lam et al. | Sep 2008 | A1 |
20080262878 | Webby et al. | Oct 2008 | A1 |
20090013319 | Williams et al. | Jan 2009 | A1 |
20090037897 | Dull, III et al. | Feb 2009 | A1 |
20090144719 | Pazdziora | Jun 2009 | A1 |
20090249215 | Paek | Oct 2009 | A1 |
20090300149 | Ferris et al. | Dec 2009 | A1 |
20090300595 | Moran et al. | Dec 2009 | A1 |
20090300641 | Friedman et al. | Dec 2009 | A1 |
20090307499 | Senda | Dec 2009 | A1 |
20100023933 | Bryant et al. | Jan 2010 | A1 |
20100058308 | Demshur et al. | Mar 2010 | A1 |
20100058314 | Wang | Mar 2010 | A1 |
20100083243 | Mincarelli et al. | Apr 2010 | A1 |
20100100636 | Hegde et al. | Apr 2010 | A1 |
20100313196 | De Atley | Dec 2010 | A1 |
20110131564 | Vidal et al. | Jun 2011 | A1 |
20110131565 | Vidal et al. | Jun 2011 | A1 |
20110131566 | Vidal et al. | Jun 2011 | A1 |
20110214114 | Vidal et al. | Sep 2011 | A1 |
20110214118 | Antill et al. | Sep 2011 | A1 |
20110265073 | Vidal et al. | Oct 2011 | A1 |
20110265074 | Vidal et al. | Oct 2011 | A1 |
20110265080 | Matthew et al. | Oct 2011 | A1 |
20110289495 | Mulligan et al. | Nov 2011 | A1 |
20110296390 | Vidal et al. | Dec 2011 | A1 |
20110296393 | Vidal et al. | Dec 2011 | A1 |
20110296394 | Vidal et al. | Dec 2011 | A1 |
20110296395 | Vidal et al. | Dec 2011 | A1 |
20110296397 | Vidal et al. | Dec 2011 | A1 |
20120079471 | Vidal et al. | Mar 2012 | A1 |
Entry |
---|
Park et al. “Binding Identities and Attributes Using Digitally Signed Certificates”, IEEE, 2000. |
Tagliasacchi et al., “Hash-Based Identification of Sparse Image Tampering”, IEEE, 2009, vol. 18, No. 11. |
Ateniese et al.,“Identity-Based Chameleon Hash and Applications”, Springer-Verlag Berlin Heidelberg, 2004. |
Costigan, “Implementation of an Identity Based Encryption sub-system for secure e-Mail and other Applications”, DCU, Jul. 2004. |
Seth Kelby Vidal, “Systems and Methods for Initiating Software Repairs in Conjuction With Software Package Updates”, U.S. Appl. No. 12/714,200, filed Feb. 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Diagnostic Notification via Package Update Manager”, U.S. Appl. No. 12/714,258, filed Feb. 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Managing Software Package Updates Using Communication Pipes”, U.S. Appl. No. 12/714,208, filed Feb. 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating and Storing Translation Information as Package Metadata”, U.S. Appl. No. 12/714,171, filed Feb. 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating Predictive Diagnostics via Package Update Manager”, U.S. Appl. No. 12/714,222, filed Feb. 26, 2010. |
James Antill, “Systems and Methods for Defining and Enforcing Access Policy for Package Update Processes”, U.S. Appl. No. 12/873,850, filed Sep. 1, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating Cached Representations of Encoded Package Profile”, U.S. Appl. No. 12/788,139, filed May 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating Cached Representations of Host Package Inventories in Remote Package Repositories”, U.S. Appl. No. 12/790,699, filed May 28, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating Package Profiles in Software Package Repositories Using Selective Subsets of Packages”, U.S. Appl. No. 12/873,657, filed Sep. 1, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating an Encoded Package Profile Based on Executing Host Processes”, U.S. Appl. No. 12/787,104, filed May 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Restoring Machine State History Related to Detected Faults in Package Update Process”, U.S. Appl. No. 12/788,036, filed May 26, 2010. |
Seth Kelby Vidal, “Systems and Methods for Generating Client Qualification to Execute Package Update Manager”, U.S. Appl. No. 12/788,458, filed May 27, 2010. |
Seth Kelby Vidal, “Systems and Methods for Determining When to Update a Package Manager Software”, U.S. Appl. No. 12/790,752, filed May 28, 2010. |
Seth Kelby Vidal, “Systems and Methods for Managing Versions of Software Packages”, U.S. Appl. No. 13/037,363, filed Mar. 1, 2011. |
Seth Kelby Vidal, “Systems and Methods for Tracking Computing Systems Utilizing Software Repositories”, U.S. Appl. No. 12/955,671, filed Nov. 29, 2010. |
Seth Kelby Vidal, “Systems and Methods for Automatic Upgrade and Downgrade in Package Update Operations”, U.S. Appl. No. 12/892,227, filed Sep. 28, 2010. |
Seth Kelby Vidal, “Systems and Methods for Detection of Malicious Software Packages”, U.S. Appl. No. 12/898,876, filed Oct. 6, 2010. |
Seth Kelby Vidal, “Systems and Methods for Space Efficient Software Package Management”, U.S. Appl. No. 12/610,006, filed Oct. 30, 2009. |
Number | Date | Country | |
---|---|---|---|
20110265074 A1 | Oct 2011 | US |