Stub Library Platform-Agnostic Application Packaging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development methods require creating multiple versions of applications for different platforms, which is inefficient and complex, as they need to be designed to link with various libraries associated with each platform to ensure functionality across disparate hardware/software platforms.

Innovation Solution

A method and apparatus for creating a platform-agnostic application file by accessing and stubbing libraries to create a stub library, packing it into the application file, and packaging it with another application, allowing execution on any platform without requiring the original library, thus enabling platform-agnostic packaging and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple versions of the application are created for different platforms, then functionality across various platforms is ensured, but development complexity and time increase significantly

Engineering Contradiction:
Improveplatform compatibilityVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a simplified copy of the library interface called a 'stub library' that contains only the symbolic definitions needed for linking. This stub library is embedded within the application file, allowing the application to be linked against platform-specific libraries without requiring the actual library implementations during packaging. This resolves the contradiction by providing platform adaptability through the stub interface while avoiding development complexity by not requiring multiple full application versions.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent segments the library functionality into two distinct parts: the actual platform-specific library implementation and the stub library containing only symbolic definitions. The stub library is extracted and embedded in the application file, separating the linking requirements from the implementation details. This segmentation allows the application to be packaged independently of the original library, reducing development complexity while maintaining platform compatibility.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the application is packaged with platform-specific libraries, then platform-specific functionality is ensured, but the packaging process becomes platform-dependent and less portable

Engineering Contradiction:
Improveplatform-specific functionalityVSAvoidpackaging portability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent extracts the essential symbolic interface from the platform-specific library and places it into a stub library that is embedded within the application file. This extraction allows the application to retain its platform-specific functionality requirements while removing the dependency on external platform-specific libraries during the packaging process. The application can now be packaged on any platform without requiring the original platform-specific libraries to be present, improving packaging portability while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If a single application version is created with links to different libraries, then development efficiency improves, but the application requires the original libraries to be present at runtime

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoiddeployment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the stub library (containing symbolic definitions) with the application file into a single packaged unit. This combination allows the application to maintain single-version development efficiency while embedding all necessary linking information within the application itself. The merged package can be deployed independently without requiring the original external libraries to be present at runtime, reducing deployment complexity while preserving development efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9436487B2Method and apparatus for creating a platform agnostic application file
Publication Date: 2016.09.06 ADOBE INC
  • US9436487B2 patent drawing
  • US9436487B2 patent drawing
  • US9436487B2 patent drawing

AI summary

A method and apparatus for creating an application file comprising accessing at least one library, stubbing the at least one library to create a stub library containing symbols exported from the at least one library, and packing the stub library into the application file. Other embodiments include method and apparatus for packaging an application file comprising accessing the application file, unpacking the application file to expose at least one stub library, accessing the at least one stub library and packaging the application file with another application using symbols contained in the stub library for delivery to an end user computer.