Software Usage Discovery via Metadata Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current operating systems, such as Windows, lack a reliable and non-invasive method for tracking and maintaining software usage data across multiple computers, leading to inefficiencies and inaccuracies in license management and resource allocation.
Innovation Solution
A system and method for software usage discovery that collects and aggregates data from various storage locations on client computers, using multiple methods to determine the last use of executable files and merging this data into a unified record, which is then uploaded to a server for reporting and analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If invasive runtime monitoring is used to track software usage, then usage information can be collected, but system overhead increases and reliability decreases
Solution Approach 1:
The patent extracts usage information from the executable file metadata and system registries rather than monitoring runtime execution. This extraction approach collects comprehensive usage data without injecting monitoring agents into the running applications, thus avoiding the reliability degradation and overhead associated with invasive monitoring.
Solution Approach 2:
The system performs preliminary collection of usage information by analyzing metadata, registries, and file attributes before runtime monitoring would be required. This preliminary action captures installation dates, usage patterns, and software configurations in advance, eliminating the need for continuous invasive monitoring while maintaining data accuracy.
2Loss of information
If runtime monitoring is implemented to collect usage data, then usage information is obtained, but system overhead increases
Solution Approach 1:
The patent extracts usage information from existing system metadata, registries, and file attributes rather than implementing runtime monitoring agents. This extraction method retrieves comprehensive usage data from static sources without consuming the continuous computational resources and energy that would be required for active runtime monitoring.
Solution Approach 2:
The system utilizes self-service by leveraging already-existing system metadata, registry entries, and file attributes that automatically record usage information. These system components maintain usage data as part of their normal operation, eliminating the need for additional monitoring infrastructure and reducing overall system overhead.
3Reliability
If current operating system methods are used, then basic system operation is maintained, but accurate software usage tracking is not achieved
Solution Approach 1:
The patent implements a universal system that collects software usage information across multiple operating systems and application types through a single unified approach. By querying standard metadata fields, registry structures, and file attributes that exist across different platforms, the system achieves precise usage tracking without requiring platform-specific modifications or compromising system operation.
Solution Approach 2:
The system introduces an intermediary layer that queries and aggregates usage information from various system sources (metadata, registries, file systems) without directly interfering with application execution. This intermediary approach maintains compatibility with current operating systems while providing accurate usage measurement through systematic data collection from multiple authoritative sources.
Data Source
AI summary
A method of obtaining information about usage of application executable files and associated software program in a network of computers or on an individual computer is provided. The method involves collecting information about last use of software programs, and associated executable files, on a computer or a set of managed computers from various resources on the computers. The information that is collected includes file name, directory, date and time the executable was last started, a security identifier of the last user, the method of last use, whether the executable was found to be running at the time it was found, and whether the executable is registered to run as a service. From this information, a list is generated regarding software items, and the list is merged such that a given executable has a single software item on the list. Reports are produced detailing information about one or more software items on the list. The reports may be displayed in a graphic user interface designed for that purpose.


