Patent ID: 8645973

Claim:
A mobile application system, comprising: a mobile application running on a mobile browser on a mobile device, and a mobile application server remote from the mobile device; a server cache, on the mobile application server, wherein the server cache includes first mobile application data defined in a first data model, and wherein the first mobile application data is organized in first data nodes in the first data model; a mobile application cache, on the mobile browser, wherein the mobile application cache includes second mobile application data defined in a second data model, and wherein the second mobile application data is organized in second data nodes in the second data model, wherein each second data node is associated with a synchronization state indicative of synchronization of the second data node with the corresponding first data node of the server cache, and wherein the second data model references the second mobile application data stored within the mobile application cache such that the mobile application can run while not connected to the mobile application server; a controller program file that includes one or more action scripts, wherein each action script is associated with a template from a set of templates, said template used to create a user interface display at the mobile browser; wherein the mobile device running the mobile application is in occasional communication with the mobile application server, and wherein upon receiving an input at the mobile application running on the mobile device, the mobile application invokes a particular action script based on the input, displays, based on the particular action script, one of the set of templates, wherein the one of the set of templates is used to create the user interface display at the mobile browser, determines the synchronization state of each second data node, and based on that determination synchronizes the mobile application data of the mobile application cache with the mobile application data of the server cache, and uses the synchronized mobile application data of the mobile application cache to populate the user interface display at the mobile browser.