Generating encoded identifications of selected subsets of installed software packages on a client machine
US-9009696-B2 · Apr 14, 2015 · US
US9785424B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9785424-B2 |
| Application number | US-201514732610-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 5, 2015 |
| Priority date | Jun 5, 2015 |
| Publication date | Oct 10, 2017 |
| Grant date | Oct 10, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and an apparatus for an application thinning mechanism are described. The thinning mechanism can select a subset of components from a universal application to assemble an application variant to be distributed and installed to a specific type of devices. The universal application may include every component, such as asset, resource or executable, built/developed for targeted device attributes to install one common application to multiple devices. For example, the thinning mechanism can use a trait vector associated with a type of devices to iterate through the components and identify assets to be included or packaged into in each target device specific application or application variant.
Opening claim text (preview).
What is claimed is: 1. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause the machine to perform a method, the method comprising: providing, by a server, a package of components for installing an application to different types of devices, wherein a collection of attributes characterize properties of the types of devices, each component associated with a set of component traits, each component trait indicating an attribute class value for one of the attributes, and each type of device characterized by a corresponding set of device traits, each device trait indicating an attribute class value for one of the attributes; identifying a particular variant of a component within the package of components to install a variant of the application to a particular type of device, wherein identifying the particular variant includes, for each of a plurality of variants of the component; comparing the attribute class value for each component trait and the corresponding attribute class value for each corresponding device trait of the particular type of device; assigning a matching value between each component trait and the corresponding device trait of the particular type of device based on the comparison of class values; and determining a multiple trait matching score between the variant of the component and the particular type of device based on the assigned matching values, and determining based on the multiple trait matching scores, the particular variant amongst the plurality of variants to best match the particular type of device; storing the application variant including the particular variant of the component in a data store, the application variant indexed by device traits in the data store; and sending the application variant to a device from the data store as part of an installation process initiated by the server in response to receiving a request by the device to install the application on the device, wherein the device includes one or more device traits associated with the application variant. 2. The medium of claim 1 , wherein the particular variant of the component represents a resource to be accessed by the application when running in the particular type of device during runtime, and wherein the application variant includes executable code to access the resource. 3. The medium of claim 2 , wherein the executable code includes API (application programming interface) calls referencing the resource via a resource name, wherein each of the plurality of variants of the component is associated with a different variation of the resource name. 4. The medium of claim 2 , wherein the application variant is sent to the particular type of device by sending only the particular variant of the component and not any remaining variants of the plurality of variants of the component. 5. The medium of claim 1 , wherein the package of components is partitioned into one or more partitions of components, wherein at most one of each partition of components is required for the installation of the application to each type of device, and wherein the plurality of variants of the component corresponds to one of the partitions of components. 6. The medium of claim 5 , wherein the collection of attributes include an architecture attribute for indicating different types of processor hardware of the devices, wherein a particular one of the partitions of components includes one or more components having different attribute values of the architecture attribute, each component corresponding to a different executable code for the application, each executable code built based on a common source code to run the application in devices of one of the different types of processor hardware corresponding to the executable code. 7. The medium of claim 5 , wherein the architecture attribute has at least two attribute values separately indicating a 32-bit processor hardware and a 64-bit processor hardware. 8. The medium of claim 5 , wherein the architecture attribute has at least two attribute values separately indicating different versions of a processor hardware. 9. The medium of claim 1 , wherein identifying a particular variant of a component within the package of components includes, comparing the attribute class value for each component trait and each attribute class value for each device trait of the particular type of device, assigning the matching value between each component trait and each of the device traits of the particular type of device based on the comparison of class values, and wherein the multiple trait matching score is determined via a multidimensional comparison based on the assigned matching values. 10. The medium of claim 1 , wherein the multiple trait matching score is determined based on common attributes between the component traits and the device traits of the particular type of device. 11. The medium of claim 1 , wherein the attribute class values are associated with a finite set of possible attribute class values, and the comparison is based on a set of rules provided to specify numbered ordering relationships among the set of possible attribute class values. 12. The medium of claim 11 , wherein the set of possible attribute values include version numbers and wherein the ordering relationships are defined according to backward compatibility among the version numbers. 13. The medium of claim 1 , wherein the generation of the plurality of application variants comprises: signing each application variant independently with a separate signature, wherein multiple signatures of the application variants are computed substantially in parallel with each other. 14. The medium of claim 1 , wherein identifying a particular variant of a component within the package of components further comprises: for each of the plurality of variants of the component, determining the attribute class value for one or more device traits of the particular type of device satisfies a compatibility constraint, wherein the compatibility constraint requires a predefined minimum attribute class value to install the corresponding variant of the component on the particular device, and wherein if the attribute class value does not satisfy the compatibility constraint, the corresponding variant is eliminated as the particular variant for installing the application to the particular type of device. 15. The medium of claim 1 , wherein assigning the matching value between each component trait and the corresponding device trait of the particular type of device includes determining a difference between class values of the component trait and the corresponding device trait. 16. The medium of claim 15 , wherein assigning the matching value between each component trait and the corresponding device trait of the particular type of device includes determining whether the attribute class values are within a range of each other. 17. The medium of claim 15 , wherein determining a multiple trait matching score includes performing a summation of the assigned matching values. 18. A computer system comprising: a memory storing instructions; a data storage; and a processor coupled to the data storage and the memory to execute the instructions from the memory, the processor being configured to cause the system to perform operations comprising: providing a package of components for installing an application to different types of devices, wherein a collection of attributes characterize properties of the types of devices, each component associated with a
Related publications grouped by family.
Answers are generated from the same data shown on this page.