Modular distributed mobile data applications
Abstract
Computer-implemented system and methods for deploying a distributed client-server system, enabling developers to rapidly create and deploy read-write distributed data interfaces for host database systems. The disclosed system is especially advantageous for mobile clients as connection to the server environment can be intermittent without unduly impeding local (disconnected) operations. One important aspect of the invention is an incremental process for executing an application servo in a client device. This process includes building and incrementally maintaining a logical context tree in which each node expresses a complete current state of the execution process.
Claims
exact text as granted — not AI-modified1 . (canceled)
2 . A computer-implemented, incremental process for executing an application servo on a mobile computing device in a distributed computing system for intermittently networked devices based on a specified set of matching criteria, the process comprising:
selecting a servo to provide services, the servo stored in local storage on the mobile computing device, the servo comprising
a declaration of a datasource on the mobile computing device, the declaration including or referencing a schema, and
a declaration of a view, the declaration including a plurality of transformation rules mapping schema components to abstract interface objects or concrete interface objects;
identifying on the mobile computing device, the datasource defined by the declaration of the datasource in the selected servo; initializing on the mobile computing device an execution context tree structure by creating a root node of the context tree associated with an initial transformation rule of the servo; choosing a context of the context tree that satisfies the matching criteria; executing a transformation rule of the servo associated with the chosen context; responsive to said executing step, creating zero or more new child contexts in the context tree, each new child context including content defining a current internal evaluation state of the process; repeating said choosing, executing and creating steps over subsequent transformation rules of the servo until no context satisfies the matching criteria; responsive to changes to the datasource, marking dependent contexts as unverified; choosing a marked context of the context tree; performing a transformation rule of the servo associated with the chosen context; responsive to said executing step, creating zero or more new child contexts in the context tree and removing or modifying zero or more existing child contexts; unmarking the chosen context and marking zero or more dependant contexts as unverified; and repeating said choosing, performing, creating, removing, modifying, unmarking and marking steps over subsequent transformation rules of the servo until no contexts are left marked.
3 . A process according to claim 2 wherein the content of the child context includes:
a pointer to an element within the selected servo; and
a pointer that identifies a current data context by pointing into a source tree.
4 . A process according to claim 2 wherein the content of the child context includes;
a reference to a parent context;
an ordered, potentially sparse, list of pointers to zero or more child contexts; and definitions for any symbols introduced by the context.
5 . A process according to claim 2 further including, responsive to said executing and performing steps, creating zero or more child spacers in the context tree representing unmaterialized child contexts; and wherein said choosing a context includes choosing either a context or a spacer.
6 . A process according to claim 5 wherein the context tree is implemented using a relative b-tree structure, and each spacer is reflected in an interior node entry in the relative b-tree structure to facilitate searching unmaterialized contexts.
7 . A process according to claim 2 wherein the b-tree node entry includes a field to track a linear value associated with a graphical display output object.
8 . A process according to claim 2 wherein the process creates and maintains both the context tree and a geometry tree, the geometry tree representing the spatial structure of a predetermined graphical user interface.
9 . A process according to claim 2 wherein the servo is defined using a servo definition language that references XML schema definitions as its core vocabulary.
10 . A process according to claim 9 wherein the servo definition language comprises:
application data schema;
transformation rules; and
opportunity rules.
11 . An interpreter stored in a non-transitory computer-readable medium of a mobile computing device in a distributed computing system, the interpreter for interpreting a servo definition language for defining a distributed application that supports disconnected operation on the mobile computing device, the language comprising:
application data schema; transformation rules; transaction rules; transaction handling rules; interface object specifications; opportunity rules to realize automatic extension or integration of servos through opportunity-based linking of an interface component representing an instance of a schema fragment to a template.
12 . An interpreter according to claim 11 further comprising access rules.
13 . An interpreter according to claim 11 wherein the template specifies at least one of a transformation rule, a transaction handling rule and an interface object specification.
14 . An interpreter according to claim 11 and further comprising an abstract interface object definition.
15 . An interpreter according to claim 11 wherein the application data schema comprises an XML-based schema.
16 . An interpreter according to claim 11 defined using XML schema definitions XSD as the core vocabulary.
17 . An interpreter according to claim 11 including a view element for selecting a group of the said transformation rules to define at least a part of an output interface.
18 . An interpreter according to claim 11 including a storage declaration element that enables an author to reserve and name persistent storage on the mobile computing device for use by the servo and any other servos authorized to access the corresponding data, wherein data in the storage on the mobile computing device is synchronized with replica data on a server computing device in the distrubuted computing system.
19 . An interpreter according to claim 18 wherein the storage declaration element includes a locally scoped name for a corresponding storage tree and identifies a schema to which the storage tree must conform.Join the waitlist — get patent alerts
Track US2011125804A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.