A mobile communication system uses a runtime environment program which can
communicate with a server. Applications are used with their own
corresponding application data store. The application data store is
persistent even when the applications are not running. The runtime
environment program can obtain data from the server to update the
application data store. The application can use the application data
store. Messages can be cached at the mobile device and the server to
allow for possible downtimes in the communication in the mobile unit and
the server.