Microsoft redefines push mail

by Volker Weber

From the Exchange Team Blog, here is how the Microsoft Exchange "push" email works:

  • The device issues an HTTP request to Exchange, which asks Exchange to report any changes that occur in the mailbox of the requesting user within a specified time limit. The URL of this HTTP request is the same as that of other AirSync commands ("/Microsoft-Server-ActiveSync") with some differing query string parameters. The body of the HTTP request allows the client to specify those folders that Exchange should monitor for changes. Typically, these will be the Inbox, Calendar, Contacts, and Tasks folders.
  • Upon receiving this request, Exchange will monitor the specified folders until either the time limit expires or a change (such as the arrival of a piece of email) occurs in one of those folders, whichever comes first. Exchange will then issue a response to this request that notes in which folders the changes occurred. Of course, this will be empty if the time limit elapsed before any changes occurred.
  • Upon receiving an empty response, the device simply re-issues the request. This loop of issuing a request for change notifications, receiving an empty response, and re-issuing the request for change notifications is called "the heartbeat."
  • Upon receiving a non-empty response, the device issues a synchronization request against each folder in the response. When those complete, it re-issues the request for change notifications.

Let me translate this: HTTP polling over persistant data connection, followed by a full folder sync when changes occur. Does anyone want to bet on the bandwidth requirements? Why would you build "push" mail as a polling solution?

Since, by and large, mobile devices are not internet-routable without a NOC (Network Operation Center) and without having first contacted an internet-resident peer, the means by which AUTD (Always Up To Date) works must be initiated by the device.

Well, this should explain why real push mail solutions have an NOC, shouldn't it? :-)

Comments

It is possible to have an persistent tcp-connection that transmits no packets at all for several hours.

They even claim (and I would really like to know if this works) that - while there is a permanent open tcp-connection in this state and no packets are sent - the GPRS consumes not more power.

The whole system sounds quite reasonable to me.

Connect to exchange server, exchange ssl-keys, transmit some http-headers and then just leave the connection open and wait for some data for 2-5 hours.

Maybe they need a keep alive packet every 30 minutes because the mobile provider has NAT.

Stefan Fügenschuh, 2005-12-04 13:06

It may be that polling solutions based on TCP can be done in ways that consume very little network bandwidth, but this description specifies HTTP as the transport. The http client would have to receive a reply from the server (empty or not) within the http timeout limits, or it will stop waiting for the reply. Thus, the "heartbeat" is continuous (or as often as the client decides to issue the request). This is dumb.

Well,this is exactly how the Blackberry's work, and this is exactly how you can implement this technology on any portable using Domino. The mNotes package is a very good example of this. (Very good package, available today, etc, etc)

So yes - MS are basically "lying" when they claim its push-mail. Its not surprising, lets face it. They're in a fight to regain control over the portable mail space from Backberry, but with at least one arm tied behind their back - the Exchange server itself. A very old, creaky piece of single object store technology that should have been re-architected during Kodiak, but wasnt. Horrible.

---* Bill

Good catch, vowe. You were the first person I read this from, but it seems others have mentioned it.

I took a look, and threw together some random thoughts here:
http://www.not-so-rapid.com/philipstorry/dxblog/not-so-rapid.nsf/dx/thoughts-on-microsofts-push-email-system

Philip, I think you are making a good point regarding this being a good SMB solution.

BTW: There is a hint on the preview page how to make your URL behave like a link. :-)

What is the difference between push and POLL?

Microsoft is NOT sending packets from the phone to the exchange server every 5 minutes or so.

Instead they try to send NO packets at all for hours! (The http timeout surely can be changed)

An open TCP-connection without keep-alive can be seen as PUSH-thing: TCP is bidirectional and the direction from Exchange to the phone gets an IP-paket pushed to the phone when there is new mail.

Is it really important who started the bidirectional tcp-connection?

Don't Blackberries register to RIM that they have network whenever they have connectivity?

Stefan Fügenschuh, 2005-12-05 00:52

I'd like to get clomide, xelode, sarafeme, femere, menosane, sarafeme. Where I may find trusted e-shop? What is somebody's experience?

Post a comment











Shall I remember this for you?




Use your full name and a working email address. Unless you want your comment to be removed. No kidding.



Recent comments

sunny gerscky on Pwnage 2.0 released at 16:00
Tobias Lange on Remember, it's always the cable at 13:16
Volker Weber on Remember, it's always the cable at 12:21
Ian White on Remember, it's always the cable at 11:56
Andy Brunner on Remember, it's always the cable at 11:37
Ben Rose on Remember, it's always the cable at 11:33
Ben Poole on It has only been less than two hours at 09:44
Frank L. Quednau on It has only been less than two hours at 09:29
Martin Hiegl on It has only been less than two hours at 08:27
Stephan H. Wissel on Notes.ini parameter RunFaster=1 is finally here at 05:24
Volker Weber on It has only been less than two hours at 01:33
Thomas "Duffbert" Duff on It has only been less than two hours at 01:26
Chris Linfoot on Planet Lotus not picking up Christopher's feed at 21:56
Yancy Lent on Planet Lotus not picking up Christopher's feed at 19:48
Bruce Elgort on Robin Bloor: Why Google Chrome Will Dominate at 18:51
Mac Guidera on Planet Lotus not picking up Christopher's feed at 16:04
Kevan Emmott on 824 Chrome users so far today at 15:56
Chris Linfoot on Planet Lotus not picking up Christopher's feed at 14:54
Lars Berntrop-Bos on Planet Lotus not picking up Christopher's feed at 13:12
Andreas Braukmann on 824 Chrome users so far today at 11:33
Nick Daisley on Robin Bloor: Why Google Chrome Will Dominate at 10:14
Chris Linfoot on Planet Lotus not picking up Christopher's feed at 09:42
Alper Iseri on 824 Chrome users so far today at 09:38
Jean Pierre Wenzel on 824 Chrome users so far today at 08:37
Jan-Piet Mens on Robin Bloor: Why Google Chrome Will Dominate at 08:26

Ceci n'est pas un blog

vowe.net is a personal website published by Volker Weber a.k.a. vowe. I am an author, consultant and systems architect based in Darmstadt, Germany.

rss Click here to subscribe

Hello

About me
Contact
Publications
Certificates
Frequently asked questions

Twitter Updates

More >

Poll

Can you bring a camera phone to work?

Getting poll results. Please wait...

Local time is 17:42

visitors.gif
150 visitors online

News

Other sources of news, imported into my own format to make them more accessible:

Heise Online
Schlagzeilen
Weather

Archives

As most of my articles roll off the front page rather quickly, I am making an archive of previous posts available here. You can also use the handy search box at the top of the page if you are looking for something particular.

Last 30 days
More archives

Got the T-shirt?

Got the T-shirt?
Are you buying from the US?

Systems Architecture

This site runs on an Apache web server on top of the Linux operating system. The content is managed with MovableType which is implemented in Perl. Last but not least the HTML code your browser sees is put together with PHP.

© 1992-2008 Volker Weber.
All Rights Reserved.

Impressum