Patent ID: 8918776

Claim:
A computing device comprising: a processor and a storage device encoded with computer-executable instructions that, when executed by the processor, perform a method for controlling deployment of an executable software system to the computing device, the storage storing a core part of the software system and metadata, the instructions configured to: access and execute the core part of the software system and access the metadata, the metadata describing system extensions and interdependencies between the system extensions and describing associations between system actions and the system extensions, wherein the system extensions of the software system are initially not installed on the computing device; automatically monitor the system actions of the software system using the metadata to make a first determination, according to the metadata, that availability of a system extension is to be checked for execution of the software system, wherein the first determination is made by responding to detection of an invocation of a system action by identifying the system extension as being mapped to the detected system action by the metadata, and, according to the identifying of the system extension and the metadata, identifying a second system extension as being needed for the system extension based on interdependency therebetween as indicated in the metadata; according to the system extension and the second system extension having been identified, determine that the system extension and the second system extension are not installed on the computing device, and in response thereto download the system extension and the second system extension via a network from a server device; perform the requested system action using the downloaded system extension; and automatically monitor a storage amount of the computing device and/or automatically monitor an amount of time related to use of the system extension to automatically make a second determination that the system extension is not to be retained on the computing device, and in response to the second determination automatically removing the system extension.