Methods and systems for simulating an online session between the
client and a remote
server when the
client is offline including simulating a web services API to access information when the
client is offline. The client includes a local interface that can communicate with the remote
server. During an online session, the data and the functional logic that is invoked to manipulate the data reside on the remote
server. As such, the user transmits instructions to view, create, update, delete, or otherwise modify portions of data through the local interface and subsequently through the underlying network. These instructions are ultimately received at the remote server, which then invokes the proper functional logic to perform the instructions in order to manipulate the data. An API is provided that is substantially identical to the web services API that is typically accessed over
the internet, but which simulates online functionality when offline. The client program talks to a single API, and in certain aspects that API determines whether to direct requests to a local
database (which can later be synchronized with the online
system) if the client is offline, or directly against the online
system (e.g., if the client is connected via
the Internet).