Sunday, November 22, 2009

SQL Server CE ? not with iPhone

The first hurdle with creating the iPhone client is to overcome the SQL Server CE synchronization of the current ClickMobile client. In this post, I describe in short the decision I took in the replacement of this technology.

The current ClickMobile solution is storing all the data and the communication into local SQL Server CE database. Then the client taking advantage of the built-in technology of SQL Server CE to synchronize the local instance with the centralized instance on the remote server.

SQL Server CE includes a special "Remote Data Access" object, that communicate with the central SQL Server over HTTP. This object exposes special PUSH and PULL methods for table synchronization. On the server, ClickMobile is an agent, which runs in the background and poll the SQL Server database. This agent is responsible for processing the "requests" records.

I want to have the iPhone client communicating using the same "channel". So I started by creating a WebService with PUSH and PULL methods. This WebService allows the client to perform the table synchronization without running SQL Server CE.

It is now the time to create the client side component. I think it should be a SQLite to SOAP and SOAP to SQLite gateway. The SOAP messages are proprietary and are not following any standard (except of being SOAP messages). Following this client side development, I may also develop compression to save on bandwidth.

Well, off to work now...

4 comments:

  1. WebServices are cool and a wise choice for bypassing MS RDA.
    Do you know of a real push mechanism that can be used? The iPhone like any ClickMobile client will have to Poll the service every 15 sec (demo) - 3 min (prod).
    Is there a way to know the iphones IP and wake him up when an emergency task needs to be pushed?
    Uri P

    ReplyDelete
  2. RE: ur

    The iPhone echo-system includes the option for push notifications. This means that Apple and AT&T are allowing to push notifications (text, sound, and icon) to the user, just like when you receive SMS.

    The user will see the icon of the App changed to mark that new info is available, a message with the text and the sound alert will ask the user to switch to the App. When the user switch to the App, or when he later opens the App, the new data is fetched from the server.

    ReplyDelete
  3. Yoram, how does deployment on Intranet work with iPhone? In the consumer space the only way to get an application onto a iPhone that is not jailbroken is via App Store, whats the corporate equevalent - is there an Apple 'verification' period?

    Also - are you using Mac OS as development environment?

    ReplyDelete
  4. RE: krasik

    My plan is to go legal, so no need to jailbreak your iPhone.

    And yes, I'm using a Mac.

    ReplyDelete

Please keep comments clean at the ClickDev blog.

 
HTML Hit Counter