Inside Apple's move to open up SMS-style messaging to non-mobile clientsApple unveiled a new iMessaging app that brings SMS-style messaging to iOS devices that lack a mobile data connection, such as WiFi-only iPads and the iPod touch. The technology behind the software presents several advantages for mobile devices over offerings from rival Google and Microsoft, and is also likely to soon find its way to iChat on Mac.
The new messaging service is based on the same technology Apple uses to power Push Notifications for iOS apps: part of the open XMPP (eXtensible Messaging and Presence Protocol) specification related to PubSub or Publish and Subscribe. XMPP powers Jabber IM, Google Talk and Apple's own iChat Server and local iChat IM over Bonjour.
XMPP was designed to be an open alternative to proprietary chat systems such as AOL's IM, ICQ, Yahoo IM, Microsoft MSN and other desktop PC chat networks that use incompatible systems for discovering online buddies and delivering short messages between them.
In the mobile telephony industry, SMS and MMS originated as interoperable standards for phone makers and mobile carriers to distribute short messages between users, but such services require a mobile account and are not free in the sense of Internet email, where anyone can set up a server and begin sending and receiving messages.
Proprietary IM services for computer users have historically been offered for free, but technology barriers between AOL, Yahoo, Microsoft and others have complicated the ability of users to connect to their friends on other services (again, this is in contrast to modern email, where a user's email provider has no impact on whether they can send or receive emails from other users on different servers).
Apple's iChat and Google Talk both support XMPP (aka Jabber) as an open way for users to chat using interoperable standards similar to those used by internet mail, and therefore are compatible with each other and other XMPP chat clients and servers.
The prioritization of messaging features in the development of iOS
When Apple introduced the iPhone, it incorporated support for SMS, but prioritized access to standard Internet email, making it not just possible for users to send and receive desktop emails with attachments from a mobile device, but actually making email the preferred method for sending and receiving messages and attachments such as photos and documents. Apple didn't even add support for MMS (multimedia messages) until iOS 3.
However, Apple didn't initially add built-in support for IM on iOS, which it does support on the Mac via iChat. Instead, IM vendors such as AOL can offer their own third party iOS apps for IM. One of the challenges of desktop IM on mobile devices is the requirement that the chat client keep a persistent network connection open in order to allow other users (and the service itself) to see that the user is available for chat. This is referred to as "presence," and displayed as a "Buddy List."
The client must keep notifying the server that the user is online in order for other users to see that the user is available, but this requires regular network activity, which in turn demands precious battery life. A chat client capable of servicing various IM services would have to do this for each IM network it supported, quickly using lots of battery just to enable basic chat functionality with users on each chat service, a poor tradeoff between end user value and battery life consumption.
Rather than bringing one or more proprietary IM chat services to iOS (as it has done in iChat for Mac users), Apple instead prioritized the development of two other services: the first being push messaging used for both app notifications and push email and contacts, and the second being FaceTime. Both services internally use an IM-like system to deliver alert notifications, push messages or incoming FaceTime calls, and in all cases the technology used is open XMPP messages.
One set of plumbing, lots of fixtures
By building a unified XMPP notification system into iOS, Apple efficiently provided push notifications, push messaging, and FaceTime call notifications without having to keep multiple open connections to several different IM chat provider services, while also avoiding additional dependance upon a mobile account required by SMS. In contrast, Google's Android notifications are based on SMS.
This underlying XMPP plumbing in iOS is now allowing Apple to launch its own chat service, one that doesn't require an SMS mobile account nor an AIM/Yahoo/MSN account, making it both free to use and efficient to support in terms of battery demands. Since iOS already uses XMPP for push notification and messaging, adding support for iMessaging adds no new networking demands.
While some observers had predicted that Apple might use its XMPP notifications infrastructure to create a competitor to Twitter (which itself is a proprietary alternative to SMS or AOL-style IM, but lacking any sort of "buddy presence" system), the company has instead incorporated support for system-wide single sign on for sending Twitter messages on demand from various iOS apps, and has targeted its own XMPP servers at providing an alternative to SMS, AIM, Yahoo IM, and MSN.
This gives iOS users a maximum return on utility without adding new battery demands. Users who want to connect to proprietary IM services can choose to install a third party app. Even then, Apple doesn't allow third party apps to maintain persistent background connections of their own, instead requiring them to use the unified push notifications plumbing to receive incoming message alerts.
iMessaging for iChat?
Being independent from either telephony-oriented SMS or conventional IM systems designed for desktop PCs, Apple's iMessaging service build on open XMPP standards enables the company to add new features, some of which are already visible in iChat via Bonjour (such as an indication of when the remote user is typing). Apple hasn't yet stated that iMessaging will be available from Mac OS X, but it appears the company will add support for the service to iChat, just as it eventually brought FaceTime from iOS to the Mac App Store.
Unlike FaceTime, which only uses push notifications to establish direct video chat conversations between devices (again, independently of telephony standards or proprietary IM networks), Apple's new iMessaging service appears to work more like iChat on the desktop, as it requires a near persistent connection to indicate users as being available for chat. Therefore, iMessaging is likely to be incorporated as a new chat service type in iChat on the desktop rather then being presented as a separate Mac app in the way FaceTime was.
Apple's overall messaging strategy, built on top of XMPP, stands in contrast to both Google's SMS-based notifications for Android as well as the recent acquisition of Skype by Microsoft. Skype offers both video and text chat (and presence information) using proprietary and unique peer to peer technology, but is unrelated to Microsoft's existing MSN messenger service.