Application module version management
AssigneeMicrosoft Technology Licensing, LLC
InventorsAkhil Gupta, Abhinav Jha, Prabhat Kumar Pandey, Abhishek Agarwal, Yasser Shaaban
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Technology Licensing, LLC
InventorsAkhil Gupta, Abhinav Jha, Prabhat Kumar Pandey, Abhishek Agarwal, Yasser Shaaban
Estimating the term…
Versions of an application are managed by receiving a request for a version of an application, retrieving, responsive to the received request, a version of a master application component based at least in part on version data that associates a version of the master application component with the version of the application, retrieving a relationship operable to relate the version of the master application component with a corresponding version of a first component on which the master application component depends for a function of the application, retrieving the corresponding version of the first component, responsive to the retrieving of the relationship, assembling the version of the application based at least in part on the retrieved version of the master component, the retrieved relationship, and the retrieved first component, and providing for an execution of the assembled version of the application.
A method of managing versions of an application, comprising:
A computing device having a processor and a memory, the processor configured to execute instructions stored in the memory, the computing device comprising:
One or more tangible processor-readable storage media embodied with instructions for executing on one or more processors and circuits of a communication device a process for managing versions of an application, the process comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Software maintenance or management: version control ; Configuration management
Checking; Contextual analysis: dependency analysis; Data or control flow analysis
Computing and data processing
About 14 years 8 months of term left · ends 21 Jun 2041 (estimated)
Providers provide applications developed by contributors such as producers, independent software vendors (ISVs), and third-party application developers. The contributors contribute applications, application modules (AppModules), and other application components for developing the applications. Different contributors can modify these components, and the components can be even further modifiable or customizable by users or administrators of user systems. This can provide a complex web of dependencies between versions of applications and application components.
The described technology provides implementations of systems and methods for managing versioning data. More specifically, the described technology provides implementations of systems and methods for application module version management.
A method of managing versions of an application using AppModule data arranged in component node and component edge data objects is provided. The method includes receiving a request for a version of an application, retrieving, responsive to the received request, a master application component based at least in part on version data in a component node data object that associates the master application component with the version of the application, retrieving an edge relationship from a component edge data object, wherein the edge relationship is operable to relate the master application component to a corresponding version of the first component on which the master application component depends for a function of the application, retrieving the corresponding version of the first component, responsive to the retrieving of the first edge relationship, and providing the version of the application based at least in part on the retrieved master application component, the retrieved corresponding first component, and the retrieved first edge relationship.
FIG. 1 illustrates an example system for application module version management.
FIG. 2 illustrates another example system for application module version management.
FIG. 3 illustrates an example of a system for application module version management.
Software versioning and updates can be complicated even if only controlled by one entity. Modern applications often have different levels of contribution, with many applications and components transitioning towards dependency-laden, object-oriented, higher-level applications. Because any of the contributors (elements of a contribution hierarchy) could potentially modify elements of an application, the likelihood that an update to a component or application infrastructure will cause errors in the application can be higher than for systems controlled by a single entity.
Versioning can be complicated by this hierarchy of contributors, and any contribution at any level can affect compatibility and functionality of an application and its constituent components. Additionally, keeping different versions of every level of contribution can occupy a considerable amount of space and can complicate relationships between current versions of an application in a client and other updated versions provided by different players in the contribution hierarchy. When an update is received from any contribution level of the hierarchy, the update might not function correctly with an existing implementation of an application. Importing the update without checking for errors can result in a malfunctioning application. Delaying an update can potentially cause issues if the provider of the update does not account for dependencies in past versions when modifying existing application components, perhaps making the prior versions of the components unavailable.
The contribution hierarchy can be especially difficult with offline systems. The offline systems can be configured to interact with online systems less frequently, potentially complicating the versioning and updating process for the application and constituent components. Periodic updating can also make the issues more difficult to identify and preempt.