Virtual Application Package Customization via Metadata Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software applications lack efficient mechanisms for managing and persisting changes to their resources, leading to difficulties in creating customized versions and updating applications without interfering with other applications or affecting shared resources.
Innovation Solution
The solution involves organizing applications into packages with metadata that track changes, allowing for the creation of customized versions by generating and re-applying modified components within a virtual environment, and using policies to determine how changes are stored and propagated, enabling seamless updates and customization across different user and system contexts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications are customized by modifying resources, then customized versions can be created, but changes become difficult to track and manage
Solution Approach 1:
The application is divided into discrete resources with individual metadata tracks. Each resource can be modified independently, and changes are segmented into tracked modifications rather than monolithic changes, making it easier to manage and revert specific customizations.
Solution Approach 2:
The system provides feedback by tracking all changes to resources and maintaining metadata about modifications. This allows the system to know what has been customized and how, enabling proper management of customized versions without losing track of original application state.
2Productivity
If applications are updated with new versions, then improvements can be deployed, but existing customizations may be overwritten or lost
Solution Approach 1:
Before applying updates, the system identifies which resources have been customized through metadata tracking. This preliminary detection allows the system to preserve customizations that should be maintained while applying necessary updates to other resources.
Solution Approach 2:
Different resources within the application have different properties regarding customizability. The system applies updates selectively based on local quality attributes of each resource, allowing some resources to be updated while preserving customizations in other resources that marked as non-updatable.
3Adaptability or versatility
If changes are applied to shared resources, then functionality can be enhanced, but other applications or users may be affected
Solution Approach 1:
The system introduces an intermediary layer of metadata tracking between the application resources and the customization mechanism. This intermediary tracks changes and manages their application, allowing modifications to be made while preventing harmful interference with other applications through controlled propagation of changes.
4Device complexity
If comprehensive tracking of all changes is implemented, then customization management improves, but system overhead increases
Solution Approach 1:
Instead of tracking every possible change in detail, the system implements partial tracking through metadata attributes that capture essential change information. This partial action approach provides sufficient tracking capability for management purposes while avoiding the excessive overhead of comprehensive detailed logging of all changes.
Data Source
AI summary
Applications operated within a virtual environment may be organized into a package containing various software components. Each software component or resource may have a specific name and other metadata, including a designator for overwriting or modifying the component. A policy may define how any changes to specific software components may be stored and retrieved based on the designator. One or more sets of changed components may be generated, persisted, and re-applied to create a customized version of the application based on the original package. The application may be operated within a virtual application environment or within a dedicated virtual machine environment.


