by, 11-07-2011 at 07:49 PM (2159 Views)
To create an implementation of SyncML protocol, you may use sync4j. I will introduce you to sync4j in this post.
You may download it from:
Sync4j possesses layered architecture and the layers are:
Core layer - The actual SyncML handling is done by the core layer. Its responsibilities include XML parsing and conversion of the SyncML markup to an internal object representation. Sync4j can also convert internal object representation to SyncML text. It is responsible for making sure that the SyncML protocol syntax and semantics are correct. Further more, it defines a standard set of exceptions. As a developer, your work load decreases since all the technical stuff is being handled by sync4j.
Transport layer - The standard transport interfaces are defined by this layer. Transports are added by implementing these interfaces. HTTP, OBEX, and WSP, will be implemented in the future.
Framework layer – This layer contains a layer for servers and a layer for clients for building SyncML applications.
Application layer – This layer implements both frameworks. This gives example applications that use sync4j for the actual synchronization.
Although the sync4j project has not actually published any source, it is still under active development.
The sync4j concept is a very well thought-through concept. It is still under development phase. It development plan is clearly laid out and it is believed that its toolkit will be available soon to develop cross-platform SyncML applications with Java.
To establish a standard and to proof that it is actually implementable the creator usually develops a reference implementation. For ISO standards this is even mandatory. To proof that it is actually practical to implement it, and to make it a standard, a reference toolkit (RTK) was published with a very unrestrictive license on the web site.
Just for you interest, the RTK is written in pure C. It does parsing of the XML commands and the creation of SyncML messages. This is equivalent to the core layer of sync4j. the basic transports are also implemented. Please note that you should have good knowledge of SyncML specifications if you want to use the RTK.