Stub Library Platform-Agnostic Application Packaging
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


