Versioned Shared Library Management for Software Storage Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for sharing software libraries lead to inefficiencies such as duplicate storage of common libraries, increased executable file sizes, and compatibility issues due to library evolution.

Innovation Solution

The proposed solution involves dynamically loading shared libraries, allowing applications to specify exactly which version of a shared library to use, and utilizing an application store to manage and distribute software packages with shared libraries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shared libraries are distributed with each software package, then applications can run independently, but storage space is wasted due to duplicate library copies

Engineering Contradiction:
Improveapplication independenceVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Multiple software packages share a common library through a shared library mechanism. Instead of each package containing its own copy of the library, the library is merged into a shared location accessible by multiple packages, eliminating duplicates while maintaining independent execution capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared library serves multiple functions across different software packages simultaneously. A single library instance provides services to multiple applications, making the library universal rather than package-specific, thereby reducing overall storage requirements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If the latest version of a shared library is used, then new features are available, but compatibility with existing applications may be broken

Engineering Contradiction:
Improvelibrary functionalityVSAvoidapplication compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system dynamically manages library versions based on application requirements. Different applications can specify different version requirements, and the system dynamically resolves these requirements by loading appropriate versions, allowing the library system to adapt to both new feature needs and compatibility constraints.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The library version parameter is changed based on application-specific requirements. Each application can declare its required library version, and the system adjusts the library version parameter accordingly, enabling new features for some applications while maintaining compatibility for others through version parameter management.

Inventive Principle:
Principle #35Parameter changes

3Speed

If library dependencies are resolved at build time, then execution is faster, but the system lacks flexibility for library updates

Engineering Contradiction:
Improveexecution speedVSAvoidlibrary update flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

Library dependencies are preliminarily resolved and cached during the build or installation phase. The system performs dependency resolution in advance, storing the results for quick access during execution, thus achieving fast execution while maintaining update flexibility through the preliminary caching mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of dependency resolution results rather than performing full resolution at each execution. Build-time dependency information is copied and stored for rapid access, providing execution speed while the underlying library system remains flexible for updates through the copy mechanism.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP4099154B1Shared software libraries for computing devices
Publication Date: 2025.04.02 GOOGLE LLC
  • EP4099154B1 patent drawingFigure 1
  • EP4099154B1 patent drawingFigure 2
  • EP4099154B1 patent drawingFigure 3A

AI summary

Apparatus and methods related to stored software libraries are provided. A computing device can receive versioned-shared-library information for a first software library used by a software application, where the versioned-shared-library information can include an identifier. The computing device can determine whether the computing device stores a copy of the first software library identified in the versioned-shared-library information by the identifier. The computing device can send a request for one of a full executable and a stripped executable for the software application, where the full executable includes the first software library, and where the stripped executable excludes the first software library. In response to the request, the computing device can receive the full executable or the stripped executable for the software application.