Design of Occasionally Connected Smart Clients

Nowadays we live in increasingly connected world. However, our client applications cannot obtain network connect in many cases, or need to work explicitly disconnecting from the network. Smart Clients can allow users to continue working when the application cannot connect to network resource, then synchronize data at a later time when connecting can use. This article discusses the problems of designing the occasionally connected smart clients, and gives the solutions. These solutions include inspecting of network connecting, client data caching, data synchronizing, and handling data concurrency.