When the Smart Client works with the Application Server it does so by using the Services provided by the Application Server. When consuming a service the Smart Client connects to the Application Server provides the data needed to access the service and retrieves the result of the service call. After that the connection to the Application Server is closed again. I.e. there is no continuous connection between the Smart Client and the Application Server. This approach is very common in internet enabled applications and it has several implications you should be aware of.
Last save wins
When two Smart Clients modify the same entity on the Application Server by loading the entity data modifying it locally and the saving it again, the version of Smart Client who saves last will be the one that will be persisted on the Application Server. I.e. when loading the data of an entity to the Smart Client that data is not locked on the server, but can be modified simultaneously by different clients.
Errors with non existing data
When the Smart Client modifies data of an entity it first loads the data from the Application Server modifies it locally and then calls another Application Server service to save the modified data. In the meantime between loading and saving other clients might have modified the data of the same entity or might have modified data of other entities that this entity refers to. If these other clients deletes the modified entity or deletes an entity the modified entity refers to this will lead to errors when the Smart Client tries to save the data.
Client must save changes
Changes the Smart Client applies to data are only applied locally. To post this changes to the Application Server the Smart Client has to call another Service of the Application Server. I.e. unsaved data will be lost if the Smart Client is not closed gracefully or if the user decides to cancel data modifications. If therefore you modify data on the Smart Client you can cancel the modification by simply closing the window in which modifications were made without saving.
Reload from server button
Many forms have a reload data from Application Server button in the Toolbar. This will reload data from the Application Server. If not saved local changes will be lost when reloading data from the Application Server.
Figure 1: The Reload button in the toolbar of the View Explorer