Operating System Context for Software Versioning and Dependency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Operating systems lack knowledge of executable software and required resources, making it difficult to properly service software, as they cannot prevent version overwrites that render existing software inoperable due to unknown dependencies.

Innovation Solution

The operating system manages software entities through a context that organizes state and enables versioning, using an installation service to track software and resources, and an activation service to resolve dependencies and ensure compatibility, with a global policy table filtering local dependencies to select appropriate solutions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the operating system does not track software entities and dependencies, then the system complexity is low, but software servicing reliability deteriorates due to inability to prevent version overwrites

Engineering Contradiction:
Improvesoftware servicing reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a context as an intermediary data structure that mediates between the operating system and software entities. The context tracks software entities, their versions, and dependencies, allowing the OS to service software reliably without directly managing this complexity. The context acts as a buffer that the OS interacts with through defined interfaces, hiding the underlying complexity while enabling reliable software version management and dependency resolution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the operating system creates a context to manage software entities, then software servicing capability improves, but the device complexity increases due to additional data structures and management mechanisms

Engineering Contradiction:
Improvesoftware servicing capabilityVSAvoidstructure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments software management into distinct components: software entities (individual programs or libraries), contexts (groupings of related software entities), and the operating system (overall manager). This segmentation allows each component to be managed independently with specific attributes and relationships, improving software servicing capability by enabling fine-grained control over installation, updates, and dependency management without requiring monolithic complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension of abstraction by introducing contexts as a layer between the OS and software entities. Instead of the OS directly managing individual software files, it now manages contexts that contain software entities. This dimensional change organizes software management in hierarchies (OS → contexts → software entities), enabling versatile software servicing through context activation, deactivation, and version management while structuring complexity in a manageable hierarchical form.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If versioning information is tracked for all software entities, then software compatibility is improved, but information storage requirements increase

Engineering Contradiction:
Improvesoftware compatibilityVSAvoidinformation storage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts versioning information and dependency data from the operating system core and places it into context data structures. Each context contains version information for its software entities and tracks dependencies between them. This extraction allows compatibility information to be stored efficiently in dedicated structures rather than scattered throughout the OS, improving software compatibility checking while managing information storage requirements through targeted tracking of only the version and dependency data necessary for compatibility determination.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8060871B2Servicing software through versioning
Publication Date: 2011.11.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8060871B2 patent drawing
  • US8060871B2 patent drawing
  • US8060871B2 patent drawing

AI summary

Software typically changes over its useful lifetime. New versions of software are created to change or improve functionality, to add functionality, to correct coding errors, improve performance, to adapt to new hardware and for many other well-known reasons. The process of delivering new versions of software to users is called servicing the software. The operating system decides which version(s) of a piece of software satisfy dependencies of other software by creation of a context. The context may be used to organize and manage versions of software, to declare activation policies concerning the use of different versions of software and to service the versioned software. The context may include an activation service that maintains and manages resolution polices, resolves dependencies, constructs the environment in which an application runs and initiates the running of the software.