Joint servicing of software packages
Abstract
Methods, systems, and apparatuses for publishing, acquiring, and servicing of related software packages together. Flexible yet robust software package version control through joint servicing using atomic sets, including business software applications and consumer software applications, is performed by client and developer devices in conjunction with a host server. Developers and publishers develop and provide applications and assign specific, related versions of software packages, that are jointly operable per atomic sets embodied in atomic set manifests, in software program bundles for acquisition by end users. Adherence to jointly serviced software packages using atomic sets is performed by client devices and/or servers in a manner that is transparent to the end user. The end user is enabled to acquire all or less than all software packages that make up an atomic set, yet each software package acquired adheres to the version requirements set forth by the atomic set.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method implemented in a client device, the method comprising:
providing a request to a host server for atomic set information associated with a first software package, the atomic set information defining version dependencies between the first software package and a related optional software package, the version dependency specifying version values for the first software package and the related optional software package that are compatible for joint operations and co-installation at the client device;
receiving the atomic set information from the host server;
determining a version of the first software package available at the host server based on the atomic set information; and
retrieving the version of the first software package from the host server.
2. The method implemented in the client device of claim 1 , wherein the atomic set information comprises a version value of the first software package that is a main software package and a version value of the related optional software package available at the host server;
wherein said retrieving includes retrieving the main software package and the related optional software package; and
the method further comprising:
assigning the atomic set information to the main software package at the client device; and
installing the main software package and the related optional software package.
3. The method implemented in the client device of claim 2 , the method further comprising:
determining that one of the main software package and the related optional software package failed to install properly subsequent to the retrieving;
rolling back to previously installed versions for the main software package and for the related optional software package that correspond to a previous atomic set; and
assigning the previous atomic set information to the first software package at the client device.
4. The method implemented in the client device of claim 2 , wherein the related optional software package has a developer entity that is different from the first software package.
5. The method implemented in the client device of claim 1 , wherein the atomic set information comprises a version value of the first software package that is a main software package and a version value of the related optional software package available at the host server;
wherein said retrieving includes retrieving the main software package and excludes retrieving the related optional software package that is available at the host server; and
the method further comprising:
installing the main software package at the client device; and
assigning the atomic set information to an installed application corresponding to the main software package at the client device.
6. The method implemented in the client device of claim 1 , further comprising:
retrieving an additional related optional software package from the host server subsequent to retrieving the version of the first software package;
receiving the atomic set information from the host server that has been updated to define version dependencies between the first software package, the related optional software package, and the additional related optional software package;
retrieving an updated version of the first software package corresponding to the updated atomic set information; and
installing the updated version of the first software package and the additional related optional software package at the client device.
7. The method implemented in the client device of claim 1 , further comprising:
retrieving an additional related optional software package from the host server, the additional related optional software package comprising content that may be utilized by the first software package and by another software package;
associating the additional related optional software package with the first software package; and
assigning a version of the additional related optional software package to the atomic set information of the first software package;
wherein the version of the additional related optional software package is exclusive of atomic set information of the other software package.
8. The method implemented in the client device of claim 1 , wherein the first software package is a gaming application; and
wherein the related optional software package is one or more of purchased downloadable content, media or multimedia content, and add-on software content for the gaming application.
9. A computer-readable storage device having program instructions recorded thereon that, when executed by one or more processors, cause the one or more processors to perform a method in a client device, the method comprising:
providing a request to a host server for atomic set information associated with a first software package, the atomic set information defining version dependencies between the first software package, a first related optional software package, and a second related optional software package that is a software library file, the version dependencies specifying version values for the first software package, the first related optional software package, and the second related optional software package that are compatible for joint operations and co-installation at the client device;
receiving the atomic set information from the host server;
determining a version available at the host server for each of the first software package, the first related optional software package, and the second related optional software package based on the atomic set information;
retrieving the versions of the first software package, the first related optional software package, and the second related optional software package from the host server; and
installing the versions of the first software package, the first related optional software package, and the second related optional software package at the client device.
10. The computer-readable storage device of claim 9 , wherein the second related optional software package is shared between the first software package and the first related optional software package; and
wherein each of the first software package, the first related optional software package, and the second related optional software package are required to be updated at the client device according to the atomic set information when any of the first software package, the first related optional software package, and the second related optional software package are updated.
11. The computer-readable storage device of claim 10 , wherein the method further comprises:
initiating an update for the first software package, the first related optional software package, and the second related optional software package based on the atomic set information;
determining that one of the first software package, the first related optional software package, and the second related optional software package failed to update properly; and
rolling back to previously installed versions for the first software package, the first related optional software package, and the second related optional software package that correspond to a previous atomic set.
12. The computer-readable storage device of claim 9 , wherein the second related optional software package is shared between the first related optional software package and a third related optional software package that is installed at the client device and that includes version information thereof in the atomic set information; and
wherein each of the first software package, the first related optional software package, the second related optional software package, and the third related optional software package are required to be updated at the client device according to the atomic set information when any of the first software package, the first related optional software package, the second related optional software package, and the third related optional software package are updated.
13. The computer-readable storage device of claim 9 , wherein the method further comprises:
retrieving a third related optional software package from the host server subsequent to retrieving the version of the first software package;
receiving updated atomic set information that includes a version of the third related optional software package and an updated version of the first software package from the host server; and
installing the updated version of the first software package and third related optional software package at the client device.
14. The computer-readable storage device of claim 9 , wherein the first software package comprises a main software package of a software program suite, the first and the third related optional software package comprise software sub-packages of the main software package, and the second related optional software package is a dynamic linked library file.
15. The computer-readable storage device of claim 9 , wherein the method further comprises:
dynamically updating one or more of the first related optional software package and the second related optional software package while a main package process corresponding to the installed version of the main package is executing at the client device.
16. A system comprising:
at least one memory configured to store program instructions;
at least one processor configured to execute the program instructions, the program instructions including:
user interface (UI) instructions for providing a UI configured to receive a set of program components from an application developer entity, the set of program components comprising:
one or more of a main software package and an optional software package, and
a version value for each software package in the set of program components;
determination instructions for determining each of the version values;
atomic set instructions for generating an atomic set manifest based on the version values, the atomic set manifest including version dependencies for the main software package and the optional software package that specifies ones of the version values for the first software package and the related optional software package that are compatible for joint operations and co-installation at the client device; and
bundler instructions for generating a software program bundle that includes the set of program components and the atomic set manifest.
17. The system of claim 16 , wherein the program instructions comprise a software development kit.
18. The system of claim 16 , wherein the set of program components comprises the optional software package of the developer entity; and
wherein the bundler instructions are further for generating information in the atomic set manifest that associates the set of program components with another software program bundle that includes another set of program components from a different developer entity.
19. The system of claim 16 , wherein the set of program components comprises the main software package of the developer entity and the optional software package of another developer entity.
20. The system of claim 16 , wherein the atomic set manifest comprises an extensible markup language (XML) document that defines version dependencies between program components in the set of program components requiring the program components in the set of program components to be serviced together subsequent to installation at a client device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.