1. A method for operating an application on a client, the method comprising: deploying the application in a runtime environment on the client, wherein the application is configured to run in either a disconnected mode or a connected mode; providing, via the runtime environment, an interface to a data store and a messaging layer, wherein the data store manages data for the application, and a communication component of the messaging layer manages the interaction between the client and a remote server; generating messages from the application, wherein when the application is in the connected mode messages are transmitted to and from the remote server; and wherein when the application is in the disconnected mode, the application operates on the client independent of server connectivity by accessing and transmitting data from and to the data store, by using communication services to transmit messages within the client to other applications on the client and by queuing messages to be sent to the remote server; providing for a plurality of message handlers when the application in the disconnected mode for a plurality of message types, wherein the plurality of message handlers process messages received from the remote server and define a set of functions preformed in response to the messages; queuing, via the runtime environment, messages being sent from the application operating in the disconnected mode to the remote server until server connectivity is established, and; reestablishing interactions between the client and the remote server, wherein the step of reestablishing interactions includes transmitting the message to the remote server in a first message format including an action, wherein through the message exchanged with the remote server, the application is able to update the data store and trigger the action on the server, and modifying data stored on the client in response to the message received from the remote server responsive to communications with the remote server becoming connected with the client.