IP Library › Granted Patent US 8,996,459
Granted Patent B2
US 8,996,459 · App. 12/240,836 · Granted Mar 31, 2015

Offline and/or client-side execution of a network application

Inventors: Daniel Arthursson (Linkoeping, SE); Marcus Bristav (Linkoeping, SE)
Assignee: Xcerion Aktiebolag
H04L67/1095G06F9/455H04L67/02H04L67/2842H04L67/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,996,459
App. No.
12/240,836
Granted
Mar 31, 2015
Kind
B2
Abstract

Generally described, the present invention is directed to a network operating system that provides more effective ways of leveraging the connectivity of computer networks. In one embodiment, an XML virtual machine is implemented that accepts high-level application code written in an XML programming language as input. Functionality is provided to interpret or translate the application code written in an XML programming language into code that is suitable for execution across computer platforms. Moreover, the XML virtual machine supports the Model View Controller (MVC) design paradigm that facilitates true data abstraction from applications to a common data model. Multi-instance applications, with each instance potentially supporting multiple views, may be created and executed.

Claims (38)

1. A computer-readable medium having computer executable components stored thereon that enable a client computing device to execute an application without a network connection or with limited network connectivity, the components comprising a client-side component that includes:

a virtual machine component configured to cause application code written in a semantic programming language that defines process logic of the application to be executed using a processor of the client computing device;

a cache component configured to store resources used by the application locally on the client computing device to enable offline execution of the application; and

an application manager component configured to enable an application separate from the application manager component for offline execution by:

determining, by the application manager component, an indicated set of resources indicated by the application as utilized by the application for execution;

determining, by the application manager component, a dynamically loaded set of resources that are not indicated by the application as utilized for execution but that are dynamically loaded by an instance of the application while the instance of the application is executing; and

retrieving, by the application manager component, the indicated set of resources and the dynamically loaded set of resources from at least one network location, wherein the indicated set of resources and the dynamically loaded set of resources are less than all resources available from the at least one network location, and wherein at least one resource of the retrieved dynamically loaded set of resources includes program code that provides functionality of the program when executed by the virtual machine component.

2. The computer-readable medium as recited in claim 1 , further including an expression engine configured to evaluate an expression defined in application code and wherein the application manager component is further configured to obtain a network resource identified in an evaluated expression before the client computing device disconnects from the network.

3. The computer-readable medium as recited in claim 1 , wherein the virtual machine component is configured to bind an object defined in an application's user interface logic to a document, wherein multiple objects may be bound to the same document or different documents.

4. The computer-readable medium as recited in claim 1 , wherein the virtual machine component causes the application code written in a semantic programming language to be executed without causing a binary representation of the application to be installed locally on the client computing device.

5. The computer-readable medium as recited in claim 1 , wherein the application manager component is further configured to enable the application for offline execution by storing the retrieved resources using the cache component to enable offline execution of the application by the client computing device.

6. The computer-readable medium as recited in claim 1 , wherein the components further comprise a transaction component configured to:

cause data updates to a resource maintained at network location that occur when the client computing device is disconnected from the network to be stored by the cache component, and

cause the data updates to be synchronized with the resource maintained at the network location when a network connection is re-established.

7. The computer-readable medium as recited in claim 6 , wherein causing the data updates to be synchronized at a network location when a network connection is re-established includes creating a transaction that describes the data update serialized in XML for transmission over the network.

8. The computer-readable medium as recited in claim 1 , wherein the application is defined by an application package, and wherein the application package includes a list of the indicated set of resources.

9. The computer-readable medium as recited in claim 8 , wherein the application package comprises an application package XML document that semantically describes resources of the application including UI and process XML documents that define the application's functionality.

10. The computer-readable medium as recited in claim 8 , wherein multiple concurrently running instances of an application share a single application package to conserve computing power.

11. The computer-readable medium as recited in claim 1 , wherein the client-side component is configured to perform offline execution of the application after the application manager component has enabled the application for offline execution by using the retrieved indicated set of resources and the retrieved dynamically loaded set of resources without further accessing the at least one network location.

12. A system for providing a common run-time environment to a user of a networked computing device, the system comprising:

a server-side data center for accepting communication channels with networked computing devices; and

at least one client-side computing device, comprising:

a processor;

a network interface for exchanging data with the server-side data center over the network; and

a computer-readable medium having computer-executable instructions stored thereon that, in response to execution by the processor, cause the client-side computing device to:

establish a communication channel with the server-side data center;

cause a virtual machine component to boot and initiate a startup sequence in which an application in semantic application code is obtained from the server-side data center or cache and executed by the virtual machine component;

determine an indicated set of resources indicated by the application as utilized by the application for execution;

determine a dynamically loaded set of resources that are not indicated by the application as utilized for execution but that are dynamically loaded by instances of the application while executing; and

retrieve the indicated set of resources and the dynamically loaded set of resources from at least one network location, wherein the indicated set of resources and the dynamically loaded set of resources are less than all resources available from the at least one network location, and wherein at least one resource of the retrieved dynamically loaded set of resources includes program code that provides functionality of the program when executed by the virtual machine component.

13. The system as recited in claim 12 , wherein the server-side data center provides access to resources without performing server-side virtualization of computer resources.

14. The system as recited in claim 12 , wherein the computer-executable instructions further cause the client-side computing device to receive the virtual machine component configured to execute applications that are described semantically.

15. The system as recited in claim 12 , wherein the computer-executable instructions further cause the client-side computing device to store the retrieved resources to enable offline execution of the application by the client-side computing device.

16. The system as recited in claim 12 , wherein the computer-executable instructions further cause the client-side computing device to:

cause data updates to a resource maintained at a network location that occur when the client-side computing device is disconnected from the network to be stored by a cache component, and

cause the data updates to be synchronized with the resource maintained at the network location when a network connection is reestablished.

17. The system as recited in claim 12 , wherein the application is defined by an application package, wherein the application package includes a list of the indicated set of resources.

18. The system as recited in claim 17 , wherein multiple concurrently running instances of an application share a single application package to conserve resources.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded Mar 18, 2009
From: ARTHURSSON, DANIEL; BRISTAV, MARCUS
To: XCERION AKTIEBOLAG
Reel/Frame 022413/0554 →
Continuity (22)
Provisional Application 60976246 · Sep 28, 2007
Provisional Application 60976249 · Sep 28, 2007
Provisional Application 60976252 · Sep 28, 2007
Provisional Application 60976258 · Sep 28, 2007
Provisional Application 60976266 · Sep 28, 2007
Provisional Application 60976269 · Sep 28, 2007
Provisional Application 60976275 · Sep 28, 2007
Provisional Application 60976281 · Sep 28, 2007
Provisional Application 60976283 · Sep 28, 2007
Provisional Application 60976292 · Sep 28, 2007
Provisional Application 60976301 · Sep 28, 2007
Provisional Application 60976304 · Sep 28, 2007
Provisional Application 60976308 · Sep 28, 2007
Provisional Application 60976311 · Sep 28, 2007
Provisional Application 60976312 · Sep 28, 2007
Provisional Application 60976320 · Sep 28, 2007
Provisional Application 60976325 · Sep 28, 2007
Provisional Application 60976327 · Sep 28, 2007
Provisional Application 60976339 · Sep 28, 2007
Provisional Application 60976216 · Sep 28, 2007
Provisional Application 60976222 · Sep 28, 2007
Related Publication 20090172086A1 · Jul 2, 2009