« Most annoying sentence I read all day | Main| Meet Domino Superior (or A Tutorial on Why Xpages Are Better Than Cake and Ice Cream) »

iPhone and the Enterprise (or How to Read Beyond a Press Release)


When I was a kid, long distance phone calls were expensive.  My mother and I rarely had much money, so on those occasions when we'd make a road trip, we developed a system to convey information on departures and arrivals without paying for them.

The process was simple: after arriving some where on a trip, we'd make a person-to-person call to where ever we'd left to "I. M. Home" or something similar.  If the someone at our origination point needed to talk to us, they'd simply claim to be I.M. Home and the conversation would begin.  If they only wanted to acknowledge the message, they'd say that I. M. Home wasn't available, and the call would end, free of charge.

In the modern era of caller ID, we can do this even easier.  If my mother leaves my house to drive home, a trip taking about 5 hours, and I see a call coming in from her home number about 5 hours later, I usually don't bother to answer.  Clearly she's arrived home, and if there was some urgency to the matter, she'll call again.  Similarly I often don't bother to leave voice mail messages for my wife.  She'll see my number on the caller ID, and doesn't need to waste time dialing into a recording to know that I'd like her to call me back.

I think about these strategies every time I hear someone talk about "push" messaging to mobile devices.  "Push" information from one device to another on an IP system requires that each device be connected and be addressable.  But staying on the network is exactly the worst thing a mobile device can do, since even digital networks require 5 times the power to stay connected to in a broadcastable mode.  3G devices in stand-by consume about 0.6W, while active connections consume about 3W.

Continued...

That why Apple has stated loudly and repeatedly that iPhone's won't have continuous persistent connections to 3G backbones.  They have, instead, devised an elaborate "push notification system" as a gateway service to allow server-initiated communication with mobile devices.  Basically, they have built a giant reverse proxy system (or maybe a NAT system, depending on the level of operation) for individual iPhones.

How can such a proxy service work while maintaining the goal of keeping power consumption low?  The key is in how the iPhone deals with requests from the proxy service.  If the proxy service functions like the way my family does asynchronous communication, it's really just a question of paying attention to the caller ID and then ignoring the phone call.  If a call comes in from 098-765-4321, the iPhone operating system knows that it's from the proxy service.  It doesn't even have to display the call to the user for answering.  It can know that the call means "wake up and connect to the proxy service -- you've got inbound traffic."

If you have low-level access to the operating system, you could do the same thing with a slightly different protocol.  What if you couldn't monitor inbound caller ID traffic, but you could see SMS messages?  You could encapsulate quite a bit of information in an SMS, even following the character restrictions -- certainly enough to say "hey phone, wake up and connect via HTTP and download this much larger piece of information that can't fit in an SMS."  Indeed, this is such a potent strategy that our friends at Research in Motion have patented it!

Note that this is all very different from how MSFT's ActiveSync actually works.  According to the Exchange ActiveSync product documentation, ActiveSync operates by maintaining a persistent HTTPS session between the device and the server.  Essentially, there's a GET request from the mobile device with a REALLY long timeout that says "anything new?"  In order for the server to send the reply, the device must still be listening and must still have the same IP.  If there's no new traffic, the device renews the request.

That's why Apple calls it "ActiveStink."  It only works in an operating condition of 1) constant background requests with long timeouts, and 2) persistent connection with the network backbone.  Essentially, your phone is always making a call and is always running a web browser in the background.

So while it's certainly within Apple's capacity to use Microsoft's exact protocol to handle push mail services, it seems unlikely that they would do this.  We won't know for sure until the iPhone 2.0 comes out.  It will be very surprising if Apple says "we gave you enterprise connectivity but now your battery life is reduced by 80%"

What about other enterprise features?  The iPhone syncs all mail, contacts and calendar events with both Exchange 2003 and Exchange 2007 servers, as well as allowing syncing with the .mac service.  How might that be working?

The .mac MobileMe service is an interesting starting point.  You can sync your PIM applications from a Mac to Apple's service today.  This is accomplished through calDAV -- essentially iCal and vCard transactions processed through webDAV.  WebDAV itself is a pretty easy protocol to understand.  It uses HTTP as a transport, and expands upon the basic 5 methods for REST services to also include additional methods for commands like COPY, MOVE and PROPFIND.  (Domino actually supports webDAV in a very limited fashion with file & image resources as of version 6.  You can turn on webDAV support and manage resource files attached to NSF templates on your Domino server.)  It's pretty easy to envision an iCal file as a resource on a web server being rescheduled via a MOVE method, right?

Since Apple already has a very effective infrastructure for Mac desktops, it's hard to imagine they'd provide their iPhone service in another way.  The Mac cloud services have been very successful with the webDAV approach, and I think most readers here will understand that technology companies are often loathe to throw away sunk development costs.

What, then, for the Exchange server integration?  Apple says they've licensed ActiveSync to enable enterprise integration, but what does that mean?  We've already seen that ActiveSync's push architecture is the very antithesis of Apple's stated goals with the iPhone, but what about the actual data exchange protocol?

The question turns out to be more complicated than would appear at first blush, because "ActiveSync" turns out to be as loaded a term as "Lotus Notes" is.  Is it an API?  A protocol?  A piece of desktop software?  A server package?  A brand name?

The answer is: yes.  It's all those things.  There is a piece of desktop software called ActiveSync that manages syncing your desktop Outlook instance with a mobile device that's connected via a USB cable (or Bluetooth, I think.)  There's also ActiveSync for Exchange server, that manages the synchronization over HTTP.  Both versions have an API associated with them.  Indeed, the Exchange API even refers to services for "replication."  And of course, since it's Microsoft, it works a lot differently on different versions.

Exchange 2003 and Exchange 2007 have a few API options in common.  Many of the programming options available for 2003 were dropped or deprecated in 2007, in favor of using Exchange Web Services (oh the irony!)  Web Services, however, are not available on Exchange 2003.

But guess what API IS available on both 2003 and 2007?

If you guessed webDAV, get yourself a cookie.  In fact, MSDN specifically documents the use of webDAV for PIM replication, providing clear detail on how to use webDAV methods over HTTP to sync your mail, calendar and contacts.  Of course, webDAV is just a command protocol.  There's still a lot of underlying detail on how the DATA is structured inside those PIM resources to take into account.  A lot of that is documented extensively on MSFT's website, but I haven't finished reading it all yet.  (That part is going to take a while.)

So although we don't have an iPhone 2.0 to look at yet, it seems pretty likely that the similarity of the Exchange 2003/2007 webDAV architecture and the .mac webDAV architecture make it the path of least resistance for Apple to provide hooks to MSFT enterprises.  Exchange webDAV has some proprietary extensions (surprise surprise) that Apple may or may not be supporting, if they are supporting the Exchange SUBSCRIBE method, they'll be doing it through their proxy notification system if they want to conserve the device's battery life.  The SUBSCRIBE method gets routed through the service, which maintains a proxy session, waiting for a response from the Exchange server, which then gets held upon receipt while the iPhone sees an inbound ACIN that it knows means it should pull from the proxy service.

That's an architecture requiring a license and cooperation from Microsoft that doesn't conflict with the iPhone's basic operating principles.  It means that there's probably zero Microsoft code executing on the device, unless Apple convinced MSFT to write the Objective-C code that parses the Exchange XML syntax for calendars and contacts into iCal and vCard.

It's also an architecture that IBM most definitely doesn't have.  At all.

The way Traveler handles mobile device sync is based on a substantially different approach using SyncML, which is an open format, with a lot of detail.  Actions performed on content operations are bundled as XML wrappers, rather than embedded in the HTTP method headers as they are with webDAV.  In short, SyncML works more like a web service than files on a web site.  SyncML is certainly broadly supported, with a long list of participant companies in the Open Mobile Alliance.  But Apple is conspicuously absent from the list.

Does this mean that IBM picked a bad strategy for mobile devices?  I can't really think so.  I certainly think they lagged behind, but honestly, if Traveler had shipped three years ago, it still would have been fundamentally incompatible with the way Apple was already managing it's PIM sync.  Would Apple have shifted their approach to accommodate IBM?  I doubt it.  And yet IBM still has a strategy that's suitable for the billion-device cell market that's already out there.

Brent Peters says that the iPhone is a priority and that IBM is doing the heavy-lifting to get compatibility there.  I'm sure we don't know how this will work until it's done, but the most likely approach seems adding a webDAV layer to Traveler to make it behave like MobileMe.  We already know that Notes/Domino 8.5 works nicely with iCal and vCard.

But I could be completely off base here.  It might turn out that all this technology works completely differently from my speculation.  We really won't be able to tell until either one of the players tells us, or we can get one of the devices and play with it.  (My wife already has an AT&T account, so hopefully she'll appreciate her belated birthday gift on July 10th.)  Even then, we might not be able to really see what's happening until Apple's Push service goes live in September.

What I do hope is clear from all this research is that the decisions on what can be supported on the iPhone is really up to Apple.  The most that any partner can hope to do is be where Apple wants them to be at decision time.  I'm sure there was more to the situation than the fact that MSFT had a webDAV API in the can, while IBM had a SyncML API in the can, and so it was just easier for Apple to work with MSFT.  There's no way that's the end of the story.

So I'm definitely looking forward to how this unfolds in the future.  I think seeing what the iPhone actually does in July is going to be very revealing.

Comments

1 - Very nice analysis Nathan!

As you say, we'll have to wait and see what is actually delivered, but you present a compelling hypothesis.

Critically, one of the major concerns seems to be integration with the iPhones native mail / PIM apps. Even if the notification service allowed for the activation of a third party app, which could then sync up, it would not help native integration.

I'm also not clear what the notification service will actually offer. Will an app actually get woken up? Some reports seem to suggest that the notification will play a sound and add some visual indication to an app's icon, but not actually wake it up.

Ultimately, unless apple and IBM work together we are unlikely to see a compelling Lotus solution on the iPhone. So the question is, does apple care enough to make the effort and does IBM care enough to make it happen?

2 - Kerr, thanks. Since the iPhone SDK only provides hooks to the Address Book, I don't think anything 3rd party could independently produce a solution for the native calendar. (Mail is IMAP, so no big deal there for anybody.) Which is why I said before that Apple has to decide what to do with their native apps.

I know that IBM would like to get that integration done. The aforementioned vice president was very clear about his own urgency on the matter.

3 - Of course, how urgently IBM want it can probably be measured in how much money they are willing to spend. There are ways IBM could up Apples interest in supporting Domino, but doing it without spending a ton of cash might be more difficult.

4 - Excellent piece Nathan, thanks. I suspect you're on the money re webDAV and the path of least resistance. Interestingly, the *other* sync engine that Apple has (this time at the desktop level rather than OTA) is iSync. And this is predicated upon SyncML -- or at least, SyncML is employed to synchronise with certain phone handsets -- which is why it's relatively easy to add new device support to iSync.

As you say, next month will be interesting.

5 - Nathan you really did a very useful recap.

For me the push mail is not very important. The most important is to keep my agenda up-to-date on my mobile device. It's nice to know what tomorrow will look like instantaneously from your mobile gadget.

I thought that I've read somewhere that IBM\Lotus were supposed to release WebCal in Notes/Domino 8. Since it's not in 8.5 Beta1, maybe someone know when it'll be available?

I have the pleasure to use an iPhone and it's really a wonderful device.

Could all the turmoil that has fueled PlanetLotus recently would have occurred if someone at IBM\Lotus took the time to write such a detailed post?

6 - Wow... great post Nathan. Unless you just really want to get an iPhone, how about you save $200 + $40/month and just use mine when I upgrade my software to 2.0... Emoticon The device isn't the iPhone 2.0, but rather the iPhone 3G. The software is 2.0. { Link } Emoticon

7 - "The question turns out to be more complicated than would appear at first blush, because "ActiveSync" turns out to be as loaded a term as "Lotus Notes" is. Is it an API? A protocol? A piece of desktop software? A server package? A brand name?"

Don't forget, it's also a floor wax AND a dessert topping!

{ Link }

8 - Very nice analysis my friend. Thanks.

-Devin.

9 - @Timothy: Shimmer was also the code name for iNotes (aka DWA).

@Nathan: It's somewhat confusing but (Exchange ActiveSync != Exchange WebDAV). They both support syncing but WebDAV was intended to be a more general programmatic interface. And Exchange ActiveSync does compression and uses less bandwidth than WebDAV. Exchange WebDAV has been deprecated. ActiveSync has not.

Exchange WebServices is a newer programmatic interface. Not ironic at all. It's easier to use than WebDAV. WebDAV may be a simple protocol but its difficult to use for certain types of operations (e.g. schedule a meeting, check someone's free/busy status). From what I've read, Apple is including support for EWS in Snow Leopard and is using Exchange ActiveSync on the iPhone.

ActiveSync does *not* require a persistent connection. It's an option. Mobile devices can poll instead. The main advantage to direct push is immediate notifiction rather than relying on a polling cycle.

Regarding battery life, I wonder how Apple handles IMAP on the iPhone. IMAP is session-oriented but how long they keep the connection open?

Tangential topic: the sync protocol used in Workplace between server and client was SyncML.

10 - @9 - I was hoping to draw the attention of someone with more information.

So, in that case, what DOES Exchange ActiveSync use to sync? The documentation says it's an HTTP transport, but doesn't specify the innards of the protocol.

Do you know whether Apple is running any Microsoft-authored code on the iPhone 2.0? I would find that surprising, but enlightening.

And yes, if I wasn't clear in the write up, ActiveSync's DirectPush requires a persistent connection. There are modes of operation other than direct push. But push notification is what all the enterprise buzz is about. Anybody can poll mail -- the iPhone already does that every 15 minutes. (Which is how they handle IMAP today.)

If Snow Leopard is using EWS for sync, then Domino will not be left out of the equation for long.

11 - Exchange WebDAV sync uses the same sync mechanism under the covers as Outlook. EWS does the same. It requires the client to maintain a "sync state". Exchange ActiveSync is somewhat different since it's dealing with memory and bandwidth constrained devices. Under the covers it relies on the same sync mechanism but the bits over the wire are different. And there's the whole device management aspect of ActiveSync that isn't part of WebDAV or EWS.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

11 Aug 

Hire Me 

Lotus-911-Logo.jpg

Search 

Disclaimer 

Welcome to Escape Velocity!

Opinions expressed here by Nathan T. Freeman are not necessarily those of his employer. However, there's a decent chance they are, so check with them if you really want to know.

But really... do you need that kind of validation? Are the opinions expressed here in doubt?

MiscLinks