OverviewObject class is a group of objects that are synchronized together. Examples of object classes are Contacts, Calendar entries, ToDo Items, Categories, Ringtones etc.
While the word "Class" is used, the class of object identifies particular set of objects of the same type (i.e. those having the same properties), given that the set is formed based on decision of server's business logic. If you are acquainted with the concept of Views in Database Management, you can treat the class as a "View" to the data set stored on the server.
For example, your server contains a huge list of contacts. Server developer can decide that the client can access personal contacts (the data specific to each client) and shared contacts, which are shared between all users. Private contacts would constitute one class, and shared contacts would constitute another class. Alternatively server developer can decide to represent all contacts available to the client as one class. In the latter case the exact set of contacts visible to the client would be different for each client, but the class would be the same - it's "Contacts" class.
Use of classesObject classes are identified using string IDs (normally GUIDs which prevent possible collision between classes defined by different vendors).
During synchronization the client asks the server to lock the class in order to prevent modification of data by other clients. After synchronization is complete, the class should be unlocked by the client.
Server-side synchronization code should unlock classes if the session is closed and the class remains locked.
Got questions or comments about this topic? Tell us about them.