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; 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.
- 2. A method according to claim 1, wherein:
said step of responding to said application includes 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.
- 3. A method according to claim 1, wherein:
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.
- 4. A method according to claim 1, wherein:
said request is in a mark-up language format.
- 5. A method according to claim 1, wherein said method further comprises the following steps if said client is online:
receiving a response at said client from said server, said response corresponds to said request forwarded from said client to said server; determining whether said response includes data information; if said response includes data information, storing said data information in said local data store; and forwarding said data information to said application.
- 6. A method according to claim 5, wherein:
said response is an executable file; and said step of determining includes parsing said executable file.
- 7. A method according to claim 5, wherein:
said data information includes text, integers and media.
- 8. A method according to claim 1, further comprising the steps of:
receiving said request at said server; identifying an appropriate data connector associated with said first data source, said step of identifying is performed in response to said step of receiving said request at said server; performing said data request using said identified data connector in communication with said first data source; creating an executable that includes a result of said step of performing; and transmitting said executable to said client.
- 9. A method according to claim 1, wherein said step of processing comprises the step of:
accessing records in said local data store if said data request is a query.
- 10. A method according to claim 1, wherein said step of processing comprises the steps of:
creating a new record in said local data store, said new record includes new data provided by said request; assigning an identification to said new record; and marking said new record as dirty.
- 11. A method according to claim 1, wherein said step of processing comprises the steps of:
editing an existing record in said local data store based on said request; and marking said existing record as dirty.
- 12. A method according to claim 1, wherein said step of processing comprises the steps of:
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.
- 13. A method according to claim 1, wherein said step of processing comprises the steps of:
if said data request is a query, accessing records in said local data store; if said data request is a request to add data, creating a new record in said local data store, assigning an identification to said new record and marking said new record as dirty; if said data request is an update request, editing a target record in said local data store based on said request and marking said target record as dirty; and if said data request is a delete request, deleting a particular record in said local data store based on said request and adding an identification of said particular record to a list of deleted records.
- 14. A method according to claim 1, further comprising the steps of:
receiving a request to synchronize said client with said server; gathering dirty records from said local data store; gathering a set of indications of records deleted from said local data store; transmitting said dirty records and said set of indications of records deleted to said server from said client as part of a synchronization request; receiving a response to said synchronization request from said server at said client; removing indication of records deleted for records deleted in said local data store that are not in conflict with said first data source; removing indications of being dirty for dirty records in said local data store that are not in conflict with said first data source; adding new records to said local data store that correspond to new records in said first data source; and updating records in said local data store that were updated in said first data source but not in conflict with said local data store.
- 15. A method according to claim 14, further comprising the step of:
reporting, to said application, conflicts between said local data store and said first data source.
- 16. A method according to claim 1, further comprising the steps of:
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.
- 17. A method according to claim 16, further comprising the steps of:
receiving a conflict request from said application, said conflict request instructs how conflicts between said local data store and said first data source should be resolved; sending information in said conflict request from said client to said server; receiving a responding message to said information in said conflict request from said server, said responding message being based on said information in said conflict request; and editing data in said local data store based on said information in said conflict request.
- 18. A method according to claim 1, wherein:
said client includes a proxy server in communication with said server and said application.
- 19. A method according to claim 1, wherein:
said client includes a platform having a set of library functions accessible by said application; and said steps of receiving, forwarding and responding are performed by said library functions.
- 20. A method according to claim 1, further comprising the steps of:
creating said application, said application includes calls to functions in said client, said client is a generic client that can be called by multiple applications; downloading said application with said client to a user location; and installing said application and said client at said user location.
- 21. A method according to claim 20, further comprising the step of:
generating an ID for said application, said ID is unique for said server, said step of forwarding uses said ID.
- 22. A method according to claim 1, wherein:
said local data store is a cache.
- 23. A method according to claim 1, further comprising the steps of:
setting up said application as a network distributed application; and setting up said application to operate with said client including providing for said application to request one or more services of said client, said step of setting up said application to operate with said client being separate from said step of setting up said application as a network distributed application, said application runs online by communicating with said server via said client and runs off-line by using said client and a local data store.
- 24. A method for enabling an application to work offline or online, comprising the steps of:
setting up a previously created first application as a network distributed application; and setting up said previously created first application to operate with a client separate from said first application including providing for said first application to request one or more services of said client, said step of setting up said first application to operate with said client being separate from said step of setting up said first application as a network distributed application, said first application runs online by communicating with said server via said client and runs off-line by using said client and a local data store.
- 25. A method according to claim 24, wherein said step of setting up said first application to operate with said client comprises the steps of:
creating a configuration file; creating version information; and associating media.
- 26. A method according to claim 24, further comprising the steps of:
downloading said first application with said client to a location remote from said server; installing said first application and said client at said location remote from said server; generating an ID for said client, said ID is unique with respect to said server; optionally updating said first application if a newer version exists; and operating said first application and client offline and online.
- 27. A method according to claim 24, further comprising the steps of:
operating said first application as a network distributed application; operating said first application online by communicating with said server via said client; and operating said first application off-line by using said client and said local data store.
- 28. 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 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.
- 29. One or more processor readable storage devices according to claim 28, wherein:
said step of responding to said application includes 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.
- 30. One or more processor readable storage devices according to claim 28, wherein:
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.
- 31. One or more processor readable storage devices according to claim 28, wherein said method further comprises the following steps if said client is online:
receiving a response at said client from said server, said response corresponds to said request forwarded from said client to said server; determining whether said response includes data information; if said response includes data information, storing said data information in said local data store; and forwarding said data information to said application.
- 32. 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 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.
- 33. An apparatus according to claim 32, wherein:
said step of responding to said application includes 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.
- 34. An apparatus according to claim 32, wherein:
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.
- 35. An apparatus according to claim 32, wherein said method further comprises the following steps if said client is online:
receiving a response at said client from said server, said response corresponds to said request forwarded from said client to said server; determining whether said response includes data information; if said response includes data information, storing said data information in said local data store; and forwarding said data information to said application.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/349,671, entitled, “Interactive System,” filed on Jan. 16, 2002, incorporated herein by reference.
[0002] This Application is related to the following two Applications: “Interface Engine Providing A Continuous User Interface,” by J. Bret Simister, Adam G. Wolff, Max D. Carlson, Christopher Kimm, and David T. Temkin, Attorney Docket No. LZLO-01002US0, filed on Mar. 5, 2002; and “Presentation Server,” by Eric D. Bloch, Max D. Carlson, Christopher Kimm, James B. Simister, Oliver W. Steele, David T. Temkin and Adam G. Wolff, Attorney Docket No. LZLO-1001US0, filed on Mar. 5, 2002. Both of these applications are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60349671 |
Jan 2002 |
US |