Capability attributes based application packaging

US9785424B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9785424-B2
Application numberUS-201514732610-A
CountryUS
Kind codeB2
Filing dateJun 5, 2015
Priority dateJun 5, 2015
Publication dateOct 10, 2017
Grant dateOct 10, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Interprogram communication · CPC title

  • G06F8/61Primary

    Installation · CPC title

  • involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9785424B2 cover?
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 attr…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/61. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 10 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).