Welcome!

Web 2.0 Authors: Carmen Gonzalez, Imran Akbar, Elizabeth White, Yeshim Deniz, Liz McMillan

Related Topics: iPhone, PowerBuilder

iPhone: Article

Synchronization and What's Available for iOS

Sybase Unwired Platform Article Series #2

Any Enterprise iOS application should feature some important features. Firstly Security, so encrypt your users application data on the device and that is in addition to any other Device Management & Security that you should be using. Check out Afaria which uses Apple's MDM. Secondly support for Mobile Working, that will work in both off-line and on-line modes, even though connectivity is getting better and better, there will always be the chance of a 'dead-zone'. Finally Integration with existing 'legacy' back office systems, extending existing Enterprise Applications into the Mobile world.

Last year I asked myself, What is available for iOS devices in the world of Enterprise Data Synchronization? So to investigate the issue I spoke to an expert friend of mine with years of iPhone development,  and before that core Objective-C.

My scenario went like this... I want an app that uses SQLite on the device. I would want that device to get DB updates/records, securely over the air,  specific to that user and I want the database to be secure. Those updates/records I want to come from a Server DB, that could be any of the Enterprise Database. I want the user to use the application, which could add, delete or create new records in the device database, then the application should send its changes back securely across the air to the Enterprise DB.

My friend thought on it for a while then said... Based on what you've written, then I would suggest some possibilities:

  1. Wrap any edits to the local database on the iPhone and store the rowId/pk of the changes (for any/all affected changes). Somehow you'll need to store this extra information to facilitate synchronization. This has its own set of issues since you'll probably need to rely on the user's clock being set correctly etc. Then you'll need a way to compare those changes to any incoming data as below.
  2. You describe "secure updates over the air" but you don't specify what you mean by that. So, will there be a button that the user presses to refresh the data on the phone?  Or will this be some kind of background thread?  How often will updates be synchronized? Does it only connect via Wi-fi or is cellular reliable enough to sync, etc. Will you use https with an XML payload or are you going to write some kind of custom socket level stuff to handle secure communication?]
  3. Since there are no native database client libraries for all practical purposes then maybe you'll need to invent a web service for updating modified records and downloading new updates. What do you do when there is a conflict between what the user has chosen and the updates coming in?
  4. At which point, depending on the size of these databases, you might have been better off implementing an intermediary web application/middle tier that handles the actual synchronization, since it is complicated...

The conversation paused, with my head spinning. Dude I don't want to do any of that, I thought to myself. You're right, it's hard and I just want to concentrate on my business problem. I know the Enterprise Database I want to synchronize with and I know the subset of tables, that I want on my iPhone. What you do not want to do is write a synchronization solution, but to reply on a technology leader & innovator that has immense experience. As you can see from the figure below, Sybase has been in this space since 1992 and introduced Mobile Computing Sync in 1995.

 

Sybase Innovation in Mobility

Step in the MEAP solution from Sybase, it uses SQLite and Message Based Synchronization (MBS) bi-directional and with a secure database. The changes for the database are continuously sent back and forth keeping the database on the device and the back-end databases in sync, even if the device has been offline/disconnected for a while. NOTE - from now on I will use the term Remote Database for that on the Device and Consolidated Database for the back-end.

  • Pub-Sub model - SUP publishes MBS packages and mobile applications subscribe to them
  • Valid credential is required for subscription and for all messages
  • Once subscribed, server is responsible for maintaining the state of the subscriber via messages until un-subscription
  • Publishers and subscribers are decoupled by reliable messaging
  • Server maintains states of each subscription via timestamp based mechanism

If you already have experience of SQL Anywhere and Mobilink then check out SQL Anywhere 12 for Mac OS X includes UltraLite, a lightweight relational database and data synchronization client for the iPhone and iPad. iPhone SDK developers can use UltraLite to build robust mobile applications, extending enterprise data to mobile users. Check out a data sheet here

Please check back weekly on a Friday for the next article and please follow me on Twitter @ithain

More Stories By Ian Thain

As one of the Sybase Technical Evangelists, Ian regularly addresses technical audiences all over the world and his sessions are always very well attended. He also writes education classes, whitepapers, demos and articles for various Sybase products and publishes regularly in Journals such as SYS-CON's PBDJ and International Developer Magazine. He is also the Sybase Unwired Platform & PocketBuilder Evangelist and works closely with the team in Dublin, CA and Concord, MA on new features and demonstrations for the products. In his customer-facing Evangelist role, Ian is very involved with the design, production and testing of Enterprise class Unwired Solutions, that have been implemented using Sybase's Unwired tools for Sybase customers around the globe. In addition, Ian is a dedicated technical expert continually working with Sybase's key partners and clients to enhance the capabilities of the Unwired solutions that Sybase can offer to its customers. Ian can also be found on Twitter @ithain

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.