Enabling online and offline operation
First Claim
1. A method for enabling an application to work offline and online, comprising the steps of:
- receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source;
forwarding said request from said client to a server if said client is online, said server is in communication with said first data source, said request includes an identification of said first data source from a plurality of data sources in communication with said server and an indication of a data view for said first data source, said data view describes a portion of said first data source;
if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; and
responding to said application based on said data in said local data store if said client is not online.
8 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides software developers with the capability to create applications that can access information online and offline without having to program such capabilities into their applications. An application can gather information from various remote data sources via a network or other communication means, and still have access to all or a portion of that information when the computing device running the application is no longer connected to the network. In one embodiment, a client manages information access, caching and synchronization for the application. When connected, information accessed is stored in a local data store on (or near) the computing device. When disconnected, requests are run against the local data store instead of the remote data source. When reconnected, information is synchronized between the local data store and the remote data source.
59 Citations
33 Claims
-
1. A method for enabling an application to work offline and online, comprising the steps of:
-
receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source, said request includes an identification of said first data source from a plurality of data sources in communication with said server and an indication of a data view for said first data source, said data view describes a portion of said first data source;
if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; andresponding to said application based on said data in said local data store if said client is not online. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for enabling an application to work offline and online comprises the steps of:
-
receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source; if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; and responding to said application based on said data in said local data store if said client is not online; wherein said step of processing comprises accessing records in said local data store if said data request is a query.
-
-
19. A method for enabling an application to work offline and online, comprising the steps of:
-
receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source; if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; and responding to said application based on said data in said local data store if said client is not online; wherein said step of processing comprises at least one of;
(a) editing an existing record in said local data store based on said request and marking said existing record as dirty, and (b) deleting an existing record in said local data store based on said request and adding an identification of said existing record to a list of deleted records.
-
-
20. A method for enabling an application to work offline and online, comprising the steps of:
-
receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source; if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; responding to said application based on said data in said local data store if said client is not online; receiving a request to synchronize said client with said server; performing a synchronization process with said server; and providing a conflict report to said application. - View Dependent Claims (21)
-
-
22. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
receiving a request at a client, said request is from an application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source; said request includes an identification of said first data source from a plurality of data sources in communication with said server and an indication of a data view for said first data source, said data view describes a portion of said first data source; if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; and responding to said application based on said data in said local data store if said client is not online. - View Dependent Claims (23, 24)
-
-
25. An apparatus, comprising:
-
one or more storage devices; and one or more processors in communication with said one or more storage devices, said one or more processors perform a method comprising the steps of; receiving a request at a client, said request is from an application, said request includes a data request with respect to a first data source, forwarding said request from said client to a server if said client is online, said server is in communication with said first data source, if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source, and responding to said application based on said data in said local data store if said client is not online by creating an executable file that includes at least a subset of said data in said local data store and transmitting said executable file to said application. - View Dependent Claims (26)
-
-
27. A method for enabling an application to work offline and online, comprising the steps of:
-
receiving a request at a client, said request is from said application, said application is separate from said client, said request includes a data request with respect to a first data source; forwarding said request from said client to a server if said client is online, said server is in communication with said first data source; if said client is not online, processing at least a portion of said data request at said client using data in a local data store accessible to said client, said data in said local data store represents a local version of at least a subset of information stored in said first data source; responding to said application based on said data in said local data store if said client is not online; and synchronizing the client with the server when the client is online. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
Specification