Tuesday, November 4, 2008

Again about synchronization

Once I wrote a post about synchronization in Android on this blog. Although that post is rather obsolete now because the synchronization-related Android API changed a lot, old sins did come back to haunt me. Rushang Shah from CompanionLink Software wrote a kind letter to me because of that old blog entry asking my opinion about their Android-based synchronization solution.

Disclaimer: Although I have no relationship whatsoever with CompanionLink, I do advertise their product now because of that nice letter. :-)

The product is an Android-based synchronization solution for PIM and CRM data. Try it, it is a great product but I use it as a pretext to emphasize again my mania about synchronization as a key mobile enabler. I have already written a post about it, there is also a more detailed paper involved there. My claim is that synchronization should not be considered as part of PIM or CRM systems, it is a general enabler because mobility inherently requires disconnected operation due to varying network conditions. Therefore my dream synchronization solution is not restricted to predefined data types but can be used as a building block in any application.

In order to demonstrate my point, here is a larger Android client-Java server application I wrote some time back. The application itself probably cannot be executed on the latest Android platform because the API changed since and I was lazy to bring up the application to the latest API. It does demonstrate, however, that synchronization needs can be identified in any mobile application, for any type of mobile data.

So Rushang, if you listen to me, you turn your product into a general-purpose synchronization component.


Anonymous said...

what would you do if you were looking for a highly scalable android synchronization client/server solution. Where would you start?

Gabor Paller said...

What do you mean by "looking for"?
The Android software market is nascent. As my post about Android synchronization framework shows (quoted in this post), Google has identified a need for it early on so they may offer a solution. Right now, however, you have small companies like the one mentioned in the post.

If "looking for" means a product strategy, I would go for standards like SyncML Datasync. The project you can download from the link in the post (the Peeble project) contains SyncML DS client-server application. There are established, highly scalable SyncML DS servers on the market, you just need to create a client. The Peeble sources come with no chains - completely free, copyleft software - but this is not more than a prototype. Personally, I would go for a general-purpose Android client-side SyncML DS component that is interoperability-tested with at least one established SyncML DS server. General-purpose means that the solution must be able to synchronize any data type, not just the popular PIM or CRM data so that you can embed the component into your application. Mobile operation means potentially disconnected operation, disconnected operation means synchronization. If you need the quoted paper, write to me: gaborpaller at gmail.com

Anonymous said...

Rather cool blog you've got here. Thank you for it. I like such topics and anything connected to them. I would like to read more on that blog soon.

Bhaskar said...

hello ,i am android beginner and working on peer to peer sync in mobile on android platform .To implement this what should be the approach to start .is there any API to sync two mobile devices?

Gabor Paller said...

Bhaskar, no, there is no such an API. Understandably, Google is not very keen on providing P2P APIs. E.g. the XMPP API could be used for P2P messaging in early (pre-1.0) versions of the SDK, that feature was removed.