Application Resource Dependency Sharing via Hash Signatures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

When multiple software applications share identical frameworks, they often result in multiple copies being installed, leading to increased storage space requirements in both non-volatile and volatile memory, as existing methods do not efficiently manage resource dependencies.

Innovation Solution

A method for sharing resource dependencies between applications involves determining identifiers for resources, such as hash signatures, and creating links between identical resources, allowing for the removal of duplicate frameworks and optimizing memory usage by loading only one instance of the framework into memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple copies of identical framework are installed for separately purchased applications, then each application can function independently, but storage space in non-volatile and volatile memory increases

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

Solution Approach 1:

The patent merges identical framework resources across multiple application bundles by detecting duplicate resources through hash signature comparison and creating shared references. When the installer detects that a framework in the current application bundle matches an existing framework, it merges the resource references so that only one physical copy is stored while multiple applications can access it, thereby reducing storage space while maintaining application functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements universality by creating a shared framework infrastructure that serves multiple applications simultaneously. The framework is designed to be universally accessible by any application that references it, allowing a single framework installation to support multiple applications rather than requiring separate copies for each application.

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

2Reliability

If multiple copies of identical framework are loaded into volatile memory, then each application can execute independently, but memory usage increases

Engineering Contradiction:
Improveapplication execution independenceVSAvoidvolatile memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges framework loading in volatile memory by implementing a sharing mechanism where multiple applications reference the same framework instance in memory. When applications are executed, the system checks for existing framework instances and loads only one copy into volatile memory, with multiple applications linking to this shared instance, thereby reducing memory usage while maintaining execution independence.

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If the entire application suite is purchased and installed together, then storage space is optimized by linking all applications to the same framework, but flexibility in selective installation is reduced

Engineering Contradiction:
Improvestorage spaceVSAvoidselective installation flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing hash signatures of framework resources during the application bundle creation phase. This preliminary identification of framework resources enables the installer to detect duplicates and implement sharing mechanisms during selective installation, thereby maintaining storage optimization benefits even when applications are installed individually rather than as a complete suite.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8694981B2Shared resource dependencies
Publication Date: 2014.04.08 APPLE INC
  • US8694981B2 patent drawing
  • US8694981B2 patent drawing
  • US8694981B2 patent drawing

AI summary

Described herein are methods for sharing resource dependencies between applications stored on a system. For example, in at least certain embodiments, a computer-implemented method for sharing resource dependencies includes installing or initiating installation of multiple application bundles having one or more applications and respective resources on the system. Next, an installer determines identifiers (e.g., hash signatures) for first and second resources and determines whether the resources are identical if an identifier for the first resource matches an identifier for the second resource. Then, a link is created from the second application bundle to the first resource of the first application bundle if the first resource is identical to the second resource. The second resource may be removed from the system if it has been installed. Alternatively, installation of the second resource is terminated if it has not been installed on the system.