Push vs. Smart Pull

You Can Take it With You

Syndication

News

  • Don't miss the next Windows Mobile Webcast... Unit Testing for Mobile Devices: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032382824&EventCategory=4&culture=en-US&CountryCode=US.

When it comes to performing the actual synchronization of data between devices and a server there are several available techniques: Merge Replication, Remote Data Access (RDA), Web Services plus a number of 3rd party facilities. Each technique is pretty straightforward with the benefits and drawbacks of each well discussed in any number of blogs, whitepapers and conference sessions.

The hard part of managing data synchronization is knowing when to perform the synchronization. Solutions to the problem are generally broken into two categories: pull and push.

Pull solutions put the burden on the device to go retrieve data. They’ve historically been simple implementations using techniques like calling the server on some regular time interval or maybe even relying on the user to initiate the data sync.

Push solutions involve the server somehow notifying the device that data is available. Solutions to this usually require some type of infrastructure to manage the distribution of notifications to the devices. The solution might involve using the mobile phone service provider’s SMS system or might be a custom built system like that created by Research in Motion (RIM) for their Blackberry communications network.

Generally the immediate notification of push is desirable, however when building our own applications, the simplicity of pull is very inviting. This is where smart pull comes in.

The concept of smart pull has been gaining a lot of attention since the announcement of the Microsoft Messaging and Security Feature Pack (MMSF). MMSF provides Windows Mobile 5.0 smartphones with full connectivity to their Exchange server, keeping Outlook data up-to-date including receiving email as soon as it arrives at the server [a feature made popular by one of those other companies ;-) ]. The technique used to maintain synchronization is basically a long-running web service call.

To keep the device in sync with the server, the device makes a web service call to the server; the return value of the call indicates whether or not any new data has arrived. What makes this “smart pull” is that the call is initiated and does not return for several minutes. The smart part is that the GPRS radio that’s being used to make the web service call doesn’t consume power while waiting for the call to return. So basically you get the power efficient, immediate notification normally associated with push technology without needing the infrastructure that push technologies require.

If you’re interested in the details of how MMSF has implemented its smart pull solution, the Exchange team has provided an excellent discussion on the Exchange Team Blog. I found the discussion of the solution really interesting.

The smart pull mechanism seems like the kind of solution that will address many common scenarios faced when developing mobile applications that require close synchronization with a server. If you’re interested in utilizing such a solution in your own mobile application, Alex Yakhnin has written a whitepaper discussing a generic implementation of a smart pull solution.


Posted Oct 28 2005, 06:58 PM by jim-wilson

Add a Comment

(required)  
(optional)
(required)  
Remember Me?