iPhone Push Notification Server tied to Snow Leopard Server
Snow Leopard Push
While Snow Leopard's Mail, iCal, and Address Book are set to gaining high profile support for Exchange Server messaging, they're also being updated to support open push messaging with Apple's own Snow Leopard Server. Rather than being based on EAS, Apple's own server push products are based on interoperable, open standards, the same as PNS.
Apple's iCal Server, which the company debuted both in Leopard Server and as an open source CalDAV calendar server project, is being updated to use XMPP publish-subscribe, an IETF open standard branching from the core of the Jabber IM service. That means Snow Leopard's iCal Server 2 will push calendar updates to clients using extended instant messages, making it an inherently push service. Like IMAP-IDLE, the system only sends a lightweight notification that new data has arrived, leaving iCal to fetch the new data itself in response.
In contrast, Microsoft's Exchange Server handles calendar events and other data as specially formatted emails, requiring additional infrastructure (RIM' BES or Microsoft's EAS) to supply push functionality for immediate updates. That also requires Microsoft to support a separate set of protocols when talking to desktop clients (MAPI) and mobile devices (EAS).
Instant messaging is always push
The main difference between IM and email is that IM is inherently push. That's because the IM service constantly monitors the location of the client, enabling it to send rapid updates in both directions. The presence indicator systems that IM users must log into required more infrastructure than typical email servers did, resulting in an initial domination of the IM business by proprietary protocols from AOL, Yahoo, and MSN. However, the Jabber project has since introduced an open source IM protocol that has expanded to become the eXtensible Messaging and Presence Protocol (XMPP).
Apple began embracing XMPP in Mac OS X Tiger, with iChat gaining Jabber support on the desktop (next to AOL's proprietary IM protocol), and iChat Server being entirely based upon the open Jabber XMPP specification. That allowed iChat to work with other Jabber IM providers that appeared, including Google's GTalk.
In Snow Leopard Sever, iCal Server is paired with a Notification Server to provide push calendar updates using XMPP's publish-subscribe specification. Also known as pubsub, the service works like a "push RSS feed," so rather than polling an RSS file on a server to discover new updates, the Notification Server pushes out just what's changed to all of the clients who have subscribed to the update system (and who have been authenticated to receive updates). In some respects, the Notification Server is like a secured Twitter feed, with iCal server sending tweets to listening iCal clients to keep them abreast of changes.
Security is important to users who only want to notify themselves, their delegates, and their mobile devices of updates on their server-based calendar. Apple's PNS has similar requirements; adequate security is required to make sure that only a known developer is able to send notification updates through the system, and that only updates requested by the user are sent to their specific phone. Last year's WWDC attendees described Apple's PNS as a secured web service that simply relayed tiny XML messages. Why not use the same XMPP system to relay notification updates to the iPhone as will be used to deliver push calendar and contact notifications? That may be exactly what Apple has in mind, tying the release of PNS with the completion of Snow Leopard Server's own Notification Server.
On Topic: iPhone
- Firehouse Subs rolls out support for Apple Pay to over 800 locations nationwide
- Apple's iPhone commands record high 89% of smartphone profits while Android plummets to record low
- iOS, Android dominate smartphone market with 96% combined stake
- Rumor: Samsung tapped to supply DRAM for 'A9' chip in Apple's next iPhone
- Stanford researchers develop method for tracking mobile devices using battery charge data