17. A method performed by a provisioning source that provisions at least one computer program product to a mobile computing device, the method comprising: receiving, by a provisioning source, from a mobile computing device, via at least one network interface configured for communicating with the mobile computing device, a request to download at least one computer program product from the provisioning source to the mobile computing device, wherein the provisioning source comprises at least one computer processor, comprises non-transitory computer readable memory operatively connected to the at least one computer processor, and is configured to store executable computer code and the at least one computer program product, and wherein the at least one computer program product comprises executable computer code and at least one structured document, and wherein the mobile computing device comprises at least one computer processor configured to execute computer code, non-transitory computer readable memory operatively connected to the at least one computer processor and configured to store the at least one computer program product, and at least one network interface configured to communicate with the provisioning source; and sending, by the provisioning source, via the at least one network interface configured for communicating with the mobile computing device, the requested at least one computer program product to the mobile computing device, wherein when stored on the non-transitory computer readable memory of the mobile computing device and when executed by the at least one computer processor of the mobile computing device, the downloaded computer program product will perform a method for using the computer program product on the mobile computing device, the method to be performed comprising: executing, by the mobile computing device, the computer program product received from the provisioning source, the computer program product including at least programming code and the at least one structured document that together describe at least a portion of functionality provided by the computer program product; populating, by an abstraction layer executing on the mobile computing device, a Document Object Model (“DOM”) structure, the DOM structure at least in part representing the running state of the computer program product consistent with the portion of functionality provided by the computer program product described in the received at least one structured document and the received programming code; presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the computer program product, a user input event from within the rendered device-independent application user interface; receiving, by the programming code referenced by the DOM structure, from the abstraction layer, the input event; reconfiguring, by the programming code referenced by the DOM structure, in response to the received input event, the DOM structure to update the running state of the computer program product based on a response by the computer program product, to the received input event; and updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure.
17. A method performed by a provisioning source that provisions at least one computer program product to a mobile computing device, the method comprising: receiving, by a provisioning source, from a mobile computing device, via at least one network interface configured for communicating with the mobile computing device, a request to download at least one computer program product from the provisioning source to the mobile computing device, wherein the provisioning source comprises at least one computer processor, comprises non-transitory computer readable memory operatively connected to the at least one computer processor, and is configured to store executable computer code and the at least one computer program product, and wherein the at least one computer program product comprises executable computer code and at least one structured document, and wherein the mobile computing device comprises at least one computer processor configured to execute computer code, non-transitory computer readable memory operatively connected to the at least one computer processor and configured to store the at least one computer program product, and at least one network interface configured to communicate with the provisioning source; and sending, by the provisioning source, via the at least one network interface configured for communicating with the mobile computing device, the requested at least one computer program product to the mobile computing device, wherein when stored on the non-transitory computer readable memory of the mobile computing device and when executed by the at least one computer processor of the mobile computing device, the downloaded computer program product will perform a method for using the computer program product on the mobile computing device, the method to be performed comprising: executing, by the mobile computing device, the computer program product received from the provisioning source, the computer program product including at least programming code and the at least one structured document that together describe at least a portion of functionality provided by the computer program product; populating, by an abstraction layer executing on the mobile computing device, a Document Object Model (“DOM”) structure, the DOM structure at least in part representing the running state of the computer program product consistent with the portion of functionality provided by the computer program product described in the received at least one structured document and the received programming code; presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the computer program product, a user input event from within the rendered device-independent application user interface; receiving, by the programming code referenced by the DOM structure, from the abstraction layer, the input event; reconfiguring, by the programming code referenced by the DOM structure, in response to the received input event, the DOM structure to update the running state of the computer program product based on a response by the computer program product, to the received input event; and updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure. 23. The method of claim 17 , wherein the received computer program product controls a device separate from the mobile computing device, the mobile computing device and the controlled device both connected to a local wireless network.