Methods and systems for the provisioning and execution of a mobile software application
First Claim
1. A non-transitory, computer-readable storage medium comprising computer program instructions tangibly stored on the non-transitory, computer-readable storage medium, wherein the instructions are executable by at least one processor to perform a method for using a mobile software application on a first mobile computing device, the method comprising:
- executing, by the first mobile computing device, a mobile software application received from a provisioning source, the mobile software application comprising an application bundle, wherein the application bundle comprises at least one cryptographic hash signature, at least one of an image, sound, graphic, animation, or video, computer program code comprising at least one of compiled code or interpretable code, and at least one structured document comprising at least one of a hypertext markup language (HTML) or an extensible markup language (XML) structured document, such that the executable program code and the at least one structured document together instantiate at least a portion of functionality provided by the mobile software application;
populating, by an abstraction layer executing on the first mobile computing device, a Document Object Model (“
DOM”
) structure, the DOM structure at least in part representing at least a portion of running state of the mobile software application consistent with the portion of the functionality provided by the mobile software application instantiated by the received at least one structured document and the received computer program code;
presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure;
receiving, by the mobile application, an input from the presented device-independent application user interface;
receiving, by the computer program code referenced by the DOM structure, from the abstraction layer, the input;
reconfiguring, by the computer program code referenced by the DOM structure, in response to the received input, the DOM structure to update at least a portion of the running state of the mobile software application based on a response, by the mobile software application, to the input;
updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure; and
converting at least a portion of the DOM structure into a temporary form that is configured to be transmitted, received, and decoded back into an equivalent form on a second mobile computing device, wherein the second mobile computing device comprises a display for displaying a user interface and for receiving user input, at least one computer processor for executing computer program instructions stored on a non-transitory, computer-readable storage medium of the second mobile computing device, the non-transitory, computer-readable storage medium operatively connected to the at least one computer processor of the second mobile computing device,wherein a second mobile application is executed by the second mobile computing device, andwherein executing the second mobile application on the second mobile computing device further comprises;
receiving from the first mobile computing device at least a portion of a DOM structure in the temporary form,decoding the temporary form into at least a portion of a DOM structure, andusing the at least a portion of the DOM structure to present at least a portion of an application user interface on the display of the second mobile computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
A mobile computing device executes a mobile application received from a provisioning source, the mobile application including at least programming code and at least one structured document that together describe at least a portion of functionality provided by the mobile application. An abstraction layer executing on the mobile computing device populates a Document Object Model (“DOM”) structure, the DOM structure at least in part representing the running state of the mobile application consistent with the portion of the functionality provided by the mobile application described in the received at least one structured document and programming code. The abstraction layer updates a device-independent application user interface, responsive to the reconfiguring of the DOM structure and converts the at least one structured document and the received programming code into a temporary form that is configured to be transmitted, received, and decoded back into an original form on a second mobile device.
468 Citations
26 Claims
-
1. A non-transitory, computer-readable storage medium comprising computer program instructions tangibly stored on the non-transitory, computer-readable storage medium, wherein the instructions are executable by at least one processor to perform a method for using a mobile software application on a first mobile computing device, the method comprising:
-
executing, by the first mobile computing device, a mobile software application received from a provisioning source, the mobile software application comprising an application bundle, wherein the application bundle comprises at least one cryptographic hash signature, at least one of an image, sound, graphic, animation, or video, computer program code comprising at least one of compiled code or interpretable code, and at least one structured document comprising at least one of a hypertext markup language (HTML) or an extensible markup language (XML) structured document, such that the executable program code and the at least one structured document together instantiate at least a portion of functionality provided by the mobile software application; populating, by an abstraction layer executing on the first mobile computing device, a Document Object Model (“
DOM”
) structure, the DOM structure at least in part representing at least a portion of running state of the mobile software application consistent with the portion of the functionality provided by the mobile software application instantiated by the received at least one structured document and the received computer program code;presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the mobile application, an input from the presented device-independent application user interface; receiving, by the computer program code referenced by the DOM structure, from the abstraction layer, the input; reconfiguring, by the computer program code referenced by the DOM structure, in response to the received input, the DOM structure to update at least a portion of the running state of the mobile software application based on a response, by the mobile software application, to the input; updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure; and converting at least a portion of the DOM structure into a temporary form that is configured to be transmitted, received, and decoded back into an equivalent form on a second mobile computing device, wherein the second mobile computing device comprises a display for displaying a user interface and for receiving user input, at least one computer processor for executing computer program instructions stored on a non-transitory, computer-readable storage medium of the second mobile computing device, the non-transitory, computer-readable storage medium operatively connected to the at least one computer processor of the second mobile computing device, wherein a second mobile application is executed by the second mobile computing device, and wherein executing the second mobile application on the second mobile computing device further comprises; receiving from the first mobile computing device at least a portion of a DOM structure in the temporary form, decoding the temporary form into at least a portion of a DOM structure, and using the at least a portion of the DOM structure to present at least a portion of an application user interface on the display of the second mobile computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for using a mobile software application performed by at least one computer processor of a first mobile computing device executing computer program instructions stored on at least one non-transitory, computer-readable medium, the non-transitory, computer-readable medium operatively connected to the at least one computer processor, wherein the computer program instructions are executable by the at least one computer processor to perform the method for using a mobile software application on the first mobile computing device, the method comprising:
-
executing, by the first mobile computing device, a mobile software application received from a provisioning source, the mobile software application comprising an application bundle, wherein the application bundle comprises at least one cryptographic has signature, at least one of an image, sound, graphic, animation, or video, computer program code comprising at least one of compiled code or interpretable code, and at least one structured document comprising at least one of a hypertext markup language (HTML) or an extensible markup language (XML) structured document such that the executable program code and the at least one structured document together instantiate at least a portion of functionality provided by the mobile software application; populating, by an abstraction layer executing on the first mobile computing device, a Document Object Model (“
DOM”
) structure, the DOM structure representing at least a portion of running state of the mobile software application consistent with the portion of the functionality provided by the mobile software application described in the received at least one structured document and the received computer program code;presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the mobile software application, a user input from the rendered device-independent application user interface; receiving, by the computer program code referenced by the DOM structure, from the abstraction layer, the input; reconfiguring, by the computer program code referenced by the DOM structure, in response to the received input, the DOM structure to update at least a portion of the running state of the mobile software application based on a response, by the mobile software application, to the input; updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure; and converting the at least one structured document and the received computer program code into a temporary form that is configured to be transmitted, received, and decoded back into an original form on a second mobile device, wherein the second mobile device comprises a display for displaying a user interface and for receiving user input, at least one computer processor for executing computer program instructions stored on at least one non-transitory, computer-readable medium of the second mobile device, the at least one non-transitory, computer-readable medium operatively connected to the at least one computer processor of the second mobile device, wherein a second mobile application is executed by the second mobile device, and wherein executing the second mobile application on the second mobile device further comprises;
receiving the at least one structured document and computer program code in the temporary form, decoding the temporary form into the at least one structured document and received computer program code, and executing the computer program code while using the received at least one structured document to present an application user interface on the display of the second mobile device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A first mobile computing device for executing at least one mobile software application received from a provisioning source separate from the first mobile computing device, the first mobile computing device comprising:
-
a network interface operatively connected to a network and used at least in part to communicate with the provisioning source and with a second mobile computing device separate from said first mobile computing device; a display unit arranged to display an application user interface having at least one user selectable item; at least one user interface for displaying information and receiving at least one user selection; at least one non-transitory, computer-readable storage medium configured to store the at least one mobile software application on the first mobile computing device, the mobile software application received from the provisioning source in response to a request for the mobile software application, the request sent using the device network interface from the requesting first mobile computing device separate from the provisioning source of the first mobile computer device; at least one computer processor adapted for executing computer program code stored on non-transitory, computer-readable storage medium, the non-transitory, computer-readable storage medium operatively connected to the at least one computer processor, such that when the mobile software application is executed using the at least one processor of the requesting first mobile computer device, the execution of the requested and received mobile software application causes the requesting mobile device to perform operations comprising; executing, by the first mobile computing device, the mobile software application received from the provisioning source, the mobile software application comprising an application bundle comprising at least one cryptographic hash signature, at least one of an image, sound, graphic, animation, or video, computer program code comprising at least one of compiled code or interpretable code, and at least one structured document comprising at least one of a hypertext markup language (HTML) or an extensible markup language (XML) structured document, such that the executable program code and the at least one structured document together instantiate at least a portion of functionality provided by the mobile software application; populating, by an abstraction layer executing on the first mobile computing device, a Document Object Model (“
DOM”
) structure, the DOM structure representing at least a portion of running state of the mobile software application consistent with the portion of the functionality provided by the mobile software application instantiated by the received at least one structured document and the received computer program code;presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the mobile software application, a user input from the rendered device-independent application user interface; receiving, by the computer program code referenced by the DOM structure, from the abstraction layer, the input; reconfiguring, by the computer program code referenced by the DOM structure, in response to the received input, the DOM structure to update at least a portion of the running state of the mobile software application based on a response, by the mobile software application, to the input; updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure; and converting the at least one structured document and the received computer program code into a temporary form that is configured to be transmitted, received, and decoded back into an original form on a second mobile device, wherein the second mobile device comprises a display for displaying a user interface and for receiving user input, at least one computer processor for executing computer program instructions stored on at least one non-transitory, computer-readable medium of the second mobile device, the at least one non-transitory, computer-readable medium operatively connected to the at least one computer processor of the second mobile device, wherein a second mobile application is executed by the second mobile device, and wherein executing the second mobile application on the second mobile device further comprises;
receiving the at least one structured document and computer program code in the temporary form, decoding the temporary form into the at least one structured document and received computer program code, and executing the computer program code while using the received at least one structured document to present an application user interface on the display of the second mobile device. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification