Software identifier based correlation
First Claim
1. A computing system, comprising:
- at least one processor for executing instructions;
a discovery logic, configured as a first module stored in a non-transitory computer-readable medium, including instructions that when executed by the at least one processor cause the at least one processor to perform an automated process that crawls nodes of an enterprise system via network communications to discover a plurality of instances of software titles that have been installed in the enterprise system, wherein crawling the nodes includes (i) locating and inspecting a registry of installed software titles to discover instances of the installed software titles, (ii) for each discovered instance, locating a software header that prepends a software file associated with the discovered instance, and (iii) identifying a stock keeping unit (SKU) number from each of the discovered instances of software titles by locating and reading the SKU number from a read-only value permanently installed in the software header associated with each discovered instance, wherein the SKU number of a discovered instance is a first identifier that uniquely identifies the discovered instance;
an enterprise resource planning (ERP) data store contained on computer-readable medium that stores data generated from purchase orders and corresponding invoices that identify stock keeping unit (SKU) numbers for each instance of software titles purchased for the enterprise system wherein the SKU number of each instance of software titles purchased are a second identifier;
a correlation logic configured as a second module stored in the non-transitory computer-readable medium, including instructions that when executed by the processor cause the at least one processor to perform a function to determine whether a correlation exists between (i) the SKU numbers from the discovered instances that are acquired by the discovery logic from crawling the nodes and reading from the registry, and (ii) the SKU numbers from the purchased software titles stored in the ERP data store, wherein the function includes accessing the ERP data store to retrieve the SKU numbers of the purchased software titles and at least comparing the SKU numbers to the SKU numbers from the discovered instances;
wherein in response to determining whether the correlation exists;
(i) for a first SKU number from the purchased software titles retrieved from the ERP data store that does not correlate to one of the SKU numbers from the discovered instances acquired by the discovery logic from crawling the nodes and reading from the registry, the correlation logic is configured to generate and transmit via a computer network a first network message to a first device that indicates that the purchased software title having the first SKU number was purchased but is not installed in the enterprise system; and
(ii) for a second SKU number from the discovered instances, acquired by the discovery logic from crawling the nodes and reading from the registry, that does not correlate to one of the SKU numbers from the purchased software titles retrieved from the ERP data store, the correlation logic is configured to generate and transmit via the computer network a second network message to a second device that identifies the second SKU number from the discovered instance as an unauthorized instance.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and other embodiments associated with software identifier based correlation are described. One example system includes an identifier data store to store a first identifier that uniquely identifies a discovered instance of a software title installed in an enterprise. The first identifier is discoverable from the discovered instance and may be provided by a discovery logic. The second identifier identifies a known instance of a software title associated with the enterprise and is provided from an enterprise resource planning (ERP) data store by an ERP logic. The example system may also include a correlation logic to identify a correlation between the discovered instance and the known instance based on a relationship between the identifiers. The example system may also include an update logic to selectively update a value in the ERP data store based on the correlation.
120 Citations
23 Claims
-
1. A computing system, comprising:
-
at least one processor for executing instructions; a discovery logic, configured as a first module stored in a non-transitory computer-readable medium, including instructions that when executed by the at least one processor cause the at least one processor to perform an automated process that crawls nodes of an enterprise system via network communications to discover a plurality of instances of software titles that have been installed in the enterprise system, wherein crawling the nodes includes (i) locating and inspecting a registry of installed software titles to discover instances of the installed software titles, (ii) for each discovered instance, locating a software header that prepends a software file associated with the discovered instance, and (iii) identifying a stock keeping unit (SKU) number from each of the discovered instances of software titles by locating and reading the SKU number from a read-only value permanently installed in the software header associated with each discovered instance, wherein the SKU number of a discovered instance is a first identifier that uniquely identifies the discovered instance; an enterprise resource planning (ERP) data store contained on computer-readable medium that stores data generated from purchase orders and corresponding invoices that identify stock keeping unit (SKU) numbers for each instance of software titles purchased for the enterprise system wherein the SKU number of each instance of software titles purchased are a second identifier; a correlation logic configured as a second module stored in the non-transitory computer-readable medium, including instructions that when executed by the processor cause the at least one processor to perform a function to determine whether a correlation exists between (i) the SKU numbers from the discovered instances that are acquired by the discovery logic from crawling the nodes and reading from the registry, and (ii) the SKU numbers from the purchased software titles stored in the ERP data store, wherein the function includes accessing the ERP data store to retrieve the SKU numbers of the purchased software titles and at least comparing the SKU numbers to the SKU numbers from the discovered instances; wherein in response to determining whether the correlation exists; (i) for a first SKU number from the purchased software titles retrieved from the ERP data store that does not correlate to one of the SKU numbers from the discovered instances acquired by the discovery logic from crawling the nodes and reading from the registry, the correlation logic is configured to generate and transmit via a computer network a first network message to a first device that indicates that the purchased software title having the first SKU number was purchased but is not installed in the enterprise system; and (ii) for a second SKU number from the discovered instances, acquired by the discovery logic from crawling the nodes and reading from the registry, that does not correlate to one of the SKU numbers from the purchased software titles retrieved from the ERP data store, the correlation logic is configured to generate and transmit via the computer network a second network message to a second device that identifies the second SKU number from the discovered instance as an unauthorized instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20, 21)
-
-
13. A non-transitory computer-readable medium storing computer-executable instructions that are executable by a computer and at least a processor, the instructions comprising instructions for:
-
executing, by at least the processor, an automated process that crawls nodes of an enterprise system, and discovering a plurality of software instances installed in the nodes of the enterprise system, wherein crawling the nodes includes locating and inspecting a registry of installed software titles; identifying and retrieving, by at least the processor, a stock keeping unit (SKU) number from each of the discovered software instances of software titles by locating and reading the SKU number from a read-only value permanently installed in a software header that prepends a software file associated with the discovered instance, wherein the SKU number of a discovered instance (a discovered SKU number) is a unique identifier assigned to and stored with each software instance; in response to retrieving the SKU numbers from the discovered software instances, querying, by at least the processor, a database that contains data generated from purchase orders and corresponding invoices that identify purchased stock keeping unit (SKU) numbers for each instance of software titles purchased for the enterprise system, wherein the querying requests at least the purchased SKU numbers; comparing the discovered SKU numbers, that are acquired from crawling the nodes and reading from the registry, to the purchased SKU numbers in the database to determine whether a correlation exists, and outputting results of the comparing; in response to determining that the correlation does not exist for one or more of the SKU numbers, (i) for a purchased SKU number from the software titles purchased that does not correlate to one of the discovered SKU numbers acquired from crawling the nodes and reading from the registry, generating a signal that indicates that the software title purchased having the purchased SKU number was purchased but not installed in the enterprise; and (ii) for a discovered SKU number from the discovered instances, acquired from crawling the nodes and reading from the registry, that does not correlate to one of the purchased SKU numbers in the database, generating and transmitting a network message indicating the discovered SKU number from the discovered instance is an unauthorized instance. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
22. A computer-implemented method performed by at least one computing device using at least one processor, the method comprising:
-
crawling, using at least network communications, a plurality of computers of a networked system to search for and discover a plurality of software instances installed in the plurality of computers of the networked system, wherein crawling the plurality of computers includes locating and inspecting a registry of installed software titles; identifying and retrieving a stock keeping unit (SKU) number from each of the discovered software instances by locating and reading the SKU number from a read-only value permanently installed in a software header that prepends a software file associated with the discovered instance, wherein the SKU number of a discovered instance (a discovered SKU number) is a unique identifier assigned to and stored with each software instance; in response to retrieving the discovered SKU numbers, querying a database that contains data generated from purchase orders and corresponding invoices that identify purchased stock keeping unit (SKU) numbers for each instance of software titles purchased for the networked system, wherein the querying requests at least the purchased SKU numbers from the database; comparing, using at least the processor and a memory of the computing device, the discovered SKU numbers, that are acquired from crawling the nodes and reading from the registry, to the purchased SKU numbers in the database to determine whether a correlation exists, and outputting results of the comparing; in response to determining that a correlation does not exist for one or more of the SKU numbers; (i) for a purchased SKU number from the software titles purchased that does not correlate to one of the discovered SKU numbers acquired from crawling the nodes and reading from the registry, generating a signal that indicates that the software title purchased having the purchased SKU number was purchased but is not installed in the networked system; and (ii) for a discovered SKU number from the discovered instances, acquired from crawling the nodes and reading from the registry, that does not correlate to one of the purchased SKU numbers in the database, generating and transmitting a network message indicating that the discovered SKU number from the discovered instance is an unauthorized instance. - View Dependent Claims (23)
-
Specification