Summary
The Java DataSync API, JSR 230, now in draft specification format in the JCP, aims to provide a common set of synchronization commands to synchronize application data stored in a mobile device with data stored on a server, replicating changes made to either instance of the data. Will it make J2ME more useful on mobile devices?
Advertisement
Synchronizing data between an intermittently connected client, such as a mobile phone, and a back-end server, is an important requirement of many mobile applications. The most widely used data synchronization standard is SyncML, developed by the Open Mobile Alliance, that provides an XML-based synchronization protocol. Most mobile device makers support SyncML (but only higher-end mobile phones sold in the US have SyncML capabilities).
Although many J2ME applications must support data synchronization, J2ME itself has not defined a standard Java data synchronization API. Instead, Java applications often relied on Sync4J, a Java binding for SyncML.
While long in the works, the JCP has finally delivered a draft specification of a standard Java synchronization API. JSR 230, Java DataSync API aims to provide a standard Java synchronization API that sits on top of platform-specific synchronization mechanisms:
This JSR will be a J2ME optional package that can be used with the J2ME configurations CLDC and CDC. It enables applications to synchronize their application specific data stored in the terminal with corresponding data stored on a server, replicating any changes made to either instance of the data. It should provide a generic interface to the data synchronization device implementation, to enable data synchronization via underlying implementations of data synchronization protocols. One example of the data synchronization protocols to be accessed from Java applications will be SyncML / OMA Data Synchronization.
The API should be a high level API, that provides a common set of synchronization commands.
Will a built-in data synchronization API make J2ME more relevant to consumers?