Operating System Component Usage Data Collection via Static and Dynamic Surveys

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for collecting data on software executing on computing devices provide limited information useful for making lifecycle decisions about platform components, such as identifying obsolete or rarely used components, and focusing development resources effectively.

Innovation Solution

A system that collects usage information from consenting users' devices about operating system components, allowing specification of components to monitor at any stage of the platform's lifecycle, using static and dynamic surveys to gather data on component usage and sending reports to a central server for aggregation and analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If usage data is collected from multiple computing devices, then the statistical significance of usage information is improved, but the complexity of data aggregation and analysis increases

Engineering Contradiction:
Improvestatistical significance of usage informationVSAvoidcomplexity of data aggregation system
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the data collection and aggregation process into distinct components: individual computing devices collect usage data locally, then transmit to central servers for aggregation. This segmentation allows statistical significance to be improved by including more devices while managing complexity through modular architecture where each device operates independently and servers handle aggregation separately.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If components are surveyed dynamically by inserting hooks, then the accuracy of usage detection is improved, but the overhead and complexity of the surveying mechanism increases

Engineering Contradiction:
Improveaccuracy of usage detectionVSAvoidcomplexity of surveying mechanism
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system uses hooks as intermediary mechanisms that intercept function calls between applications and operating system components. These hooks provide accurate usage detection by monitoring actual component calls while maintaining a standardized interface that manages the complexity of dynamic surveying. The hooks act as mediators that capture usage information without requiring deep integration into each application or component.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If usage information is collected for all platform components, then the completeness of usage data is improved, but the amount of data to be transmitted and processed increases

Engineering Contradiction:
Improvecompleteness of usage dataVSAvoidamount of data transmitted
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The system extracts only the essential usage information from comprehensive component survey data. Rather than transmitting all raw data, the system identifies and extracts key metrics such as component call frequency, unique users, and usage patterns. This extraction maintains completeness of meaningful usage data while significantly reducing the volume of information that needs to be transmitted and processed centrally.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8776027B2Extracting and collecting platform use data
Publication Date: 2014.07.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8776027B2 patent drawing
  • US8776027B2 patent drawing
  • US8776027B2 patent drawing

AI summary

A system for reporting information about how selected components of an operating system are used by applications on a computing device. A manifest of components is provided from a management server to a computing device. The manifest specifies components of the operating system for which usage information is to be collected. The computing device surveys applications for calls to the components specified in the manifest. Surveys may be performed by static scanning and/or dynamic monitoring. In static scanning, application files are scanned for keyword strings specified in the manifest. Keyword string matches are recorded to a log file. In dynamic monitoring, calls from executing applications to components specified by the manifest are identified and logged. A report is generated from the log and sent to the management server. The management server then aggregates and analyzes reports from multiple computing devices to enable developers to assess how the components are being used.