APIs for Building SMS and Push Notifications Into Applications
In many ways, text messages/SMS messages delivered to mobile phones are the default for near real-time consumer notifications. The advantage of text messages is that they are fast, reliable, and nearly all Internet connected consumers have access to them, even when they are not at their computers. US consumers are catching up to the rest of the world in familiarity with text messages so people increasingly use them for everything from flight arrival information to bank balance notifications to Twitter updates. The problem is that SMS messages can be expensive for both businesses and consumers. Carrier rates vary, but in general rates for consumer SMS messages have increased. Each message sent or received without a bulk message plan can cost up to $0.20 per message for domestic messages and even higher for international messages An unlimited text messaging plan can cost $20 per month per line. This means that SMS messages can be quite expensive for individuals without a bulk message plan or for those who go substantially over their alloted number of messages. Sending SMS notification messages can be a significant expense for businesses, even with substantial discounts for bulk purchases. Some very large SMS senders have managed to strike deals with carriers as the carriers generate revenue from delivering the messages from the large volume SMS senders.
Developers have many SMS aggregators to choose from such as Bulk SMS, Clickatell, Esendex, and Ribbit that provide developer APIs for integrate SMS into applications. Developers who wish to build their own SMS service can choose from a number of commercial an open source packages. Kannel is the most well known open source SMS (and WAP) gateway. Slingshot SMS from MobileActive is a new open source option that is simple and can run from a laptop or USB drive with a standard GSM modem or cell phone. Slingshot SMS is written in Python and will run on Mac OS X, Windows, and Linux. The O’Reilly ebook How to Build an SMS Service O’Reilly Media by Brian Retford, Jordan Schwartz is an excellent primer on beginning development, although the book was published in 2007 and some information needs an update. The authors describe building SMS services with the open source SMS Toolkit for the .NET Framework from Microsoft Research India.
Push services are rapidly becoming a viable alternative to push data and notifications to smartphones. Push notifications are delivered can be delivered over both cellular data and WiFi data connections. Since most US smartphone users have unlimited data plans, there are no concerns about additional charges from push data. The disadvantage is that push notifications require a data connection and are queued for delivery when a data connection is not available. SMS messages are delivered over the voice channel and arrive even when no cellular data service is available. Users who do not have unlimited data plans or who roam internationally, have a very real concern that push data could result in significant additional charges.
RIM’s BlackBerry has long been known for the speed and reliability of its push-based email service and RIM recently opened up a BlackBerry Push API to developers. Microsoft Exchange ActiveSync Direct Push is well established on the Windows Mobile and Symbian Smartphone platforms. Palm is readying its own push infrastructure for its WebOS on the Palm Pre, called the Mojo Messaging Service. Google will enable the Mobile Java Push API for Android devices in 2009. The Apple Push Notification service (APNS) for iPhone or an Internet connected iPod Touch devices has received far and away the most public attention and developer support.
With first version of the iPhone OS, Yahoo! email was only push-based email option available. The second version of iPhone OS brought support for Microsoft Exchange ActiveSync Direct Push to deliver messages, events, and contacts. Apple’s Push Notification service arrived with the third generation of the iPhone OS. APNS keeps a persistent connection open to each device allows developers to deliver real-time messages. Third party developers are not currently allowed to run applications in the background on the iPhone OS.
For developers, there are a few potential difficulties with Apple push notifications. First, even though the system is designed to be highly reliable, there is no delivery information available. Second, all push notifications are centralized and must be delivered through Apple’s servers. Third, even though all push notifications must be delivered through Apple, developers must run their own infrastructure in order handle push operations for their application, this infrastructure must scale as the user base grows. Urban Airship offers a service to simplify the integration of push notifications into iPhone applications.
Difficulties aside, iPhone developers are rushing to add push notifications where they make sense. Push notifications have only been available for about two months and already AOL, Associated Press, Ebay, E*Trade, Yahoo!, Zillow, and many smaller developers have added push notifications to their applications. Boxed Ice, a UK software development firm has published a nice tutorial called How to build an Apple Push Notification provider server.
Reader Resources
Commentary
- Death of the Hardware Security Appliance | Ronan Kavanagh --CEO; SpamTitan Technologies
- Archiving Challenges and Priorities: Apply Lessons Learned from a Regulated Industry | Stephen Marsh -- Founder and CEO; Smarsh Inc.
- What Can Users Do to Protect Themselves from Bots? | Michael O’Reirdan -- Chairman; Messaging Anti-Abuse Working Group (MAAWG)

Widgets & RSS Feeds
