Developer

Scaling Urban Airship’s Messaging Infrastructure to Light Up a Stadium in One Second

More than two years ago we embarked on a journey to bring our push infrastructure to Android and tackle the world of high scalability for mobile apps. We’ve detailed some of our past achievements like C500k in past blog entries. We’ve more than quadrupled the performance reported in that post, and have moved on to address the rest of our infrastructure as we march towards supporting billions of connected devices.

We’re now focused on finishing a massive rework of our messaging infrastructure to support our exponential growth in push notification volume. The result will be released with Segments.

We deal with lots of big numbers. Big numbers are often difficult to reason about. As a metaphor, we came up with “light up a stadium in a second” as our throughput goal. Specifically, we now have the capability to send a message in one second to every fan seated in the biggest stadium in college football, Michigan Stadium.

Here’s a high-level look at what we’ll be rolling out:

  • Push Tag & Broadcast Service (codenamed Metalstorm) — Manages associations between applications, devices and tags. This new service supports extremely high push throughput and gives us the ability to perform complex tag queries for apps with hundreds of millions of users across a horizontally scalable architecture.
  • Segments Data Storage (codenamed Penelope) — A customized, distributed database optimized for querying spatial information including custom location data.
  • Message Routing Service (codenamed Gooey ButterCake) — Routing tier that uses a Sort-Merge-Join algorithm to assemble results from queries across multiple heterogeneous systems, for example application tags joined with device location information.
  • Edge Message Delivery Service (codenamed Yaw) — Handles last-mile delivery to third-party platform push providers such as the Apple Push Notification System (APNS) with high throughput and low latency. Yaw manages TLS negotiation, message TTL (time to live) and protocol compliance across hundreds of thousands of connections all performing message delivery.

Helium, our end-to-end message delivery platform for Android devices, is optimized to work with this improved messaging infrastructure and works on an expanding universe of devices including Amazon’s Kindle Fire, Nook, and soon Tizen.

We’re also going to leverage Helium for companies moving away from native apps to HTML5. We built a C++ Helium client library for Linux and are working on Tizen integration (more detail on this effort is here). The new Linux Helium client architecture includes a web runtime plugin that provides JavaScript bindings for easy development of HTML5 browser extensions for push notifications.

How improved is the new infrastructure? Our initial dark launch of the new system delivered broadcast pushes at a throughput of over 100,000 messages per second, with a 90th percentile latency of two seconds to first message delivery. We also delivered tag pushes (one API call with arbitrary tags pushing to one or more devices) at over 100,000 messages per second throughput with 90th percentile latency of two seconds before first push delivery.

What does this mean for apps? If your app has 100,000 users, and the app triggers a push notification, your users will receive that message in less time than it takes you to complete a yawn. If your app has 500,000 users, and the app triggers a push notification, your users will receive that message in less time than it takes you to pour a cup of coffee. More than a million users? Pour that coffee, add sugar and stir.

We’re just getting started. This is the low end of what we can achieve with this architecture and we will continue to invest in throughput and latency improvements. Look for an upcoming blog post on the implementation details or better yet, see us talk about it live at upcoming events such as GLUE Conference and HBaseCon.

We’re still working on rollout plans, but this massive scalability for real-time push will be available for everyone who needs it soon. We’ve already moved many of our largest customers to the new architecture. If you have a need for speed right now, and think your system can handle these performance levels before we add configurable speed throttling, let us know.

We’re also interested in understanding your expectations for push notification delivery. Complete this brief survey to get an Urban Airship t-shirt.

Urban Airship Takes the Stage at the Tizen Developer Conference

Today Urban Airship is delivering a technical session at the Tizen Developer Conference to offer a demo and code-level preview of the upcoming Urban Airship library for Tizen and how the Helium push notification infrastructure will integrate to offer app developers a real-time messaging system.

Tizen is an open source, standards-based software platform supported by leading mobile operators, device manufacturers, and silicon suppliers. The Tizen SDK and API will allow developers to use web run-time and related web technologies to write applications that run across multiple device segments, including smartphone, tablet, smart TV and in-vehicle infotainment.

Push notifications on Tizen are powered by an open-source OS-level push daemon that manages state, user preferences, notification display, power consumption and network access. This daemon allows applications to register for notifications and associate tags or an alias with the device. It also offers an API that will allow developers to specify sounds and use icon badges and other notification types offered by the device.

The Urban Airship library will provide JavaScript hooks into the native push daemon along with drop-in web run-time sample user interface code that developers can integrate into their apps. The library will simplify the integration process and offer additional features that will allow developers to track app opens, time in app, push conversions, opt-in rates and ultimately the impact push notifications have on their users’ engagement.

Screenshots of Urban Airship’s Tizen phone demo including the lock screen, notification center and notification menu

Having delivered 20B push messages to mostly iOS and Android devices, we’ve seen the tremendous lift in app retention and engagement that push messaging delivers and are very excited to bring this functionality to a broader range of devices and consumers. Developers will leverage these real-time alerts to deliver the right information at the right time on the right device to their users.

It’s entirely possible that in the future your refrigerator may message your car’s heads-up display as you approach the grocery store with items you are running low on, which would then be transferred to your smartphone as you pull into the parking lot and turn off your car.

Introducing Urban Airship Newsstand Publisher

Today we’re rolling out some product changes in response to how our publishing customers have been leveraging Newsstand with our Subscriptions and In-App Purchase products.

The Guardian and Future Publishing are among the ingenious Urban Airship early adopters who released an app mash-up of Newsstand plus our Push Notifications, Rich Push®, Subscriptions, and In-App Purchase as a unified digital publishing solution on the iOS platform. The result has been stable and successful, and we’ve decided to mirror their efforts.

The result is Newsstand Publisher, a new, bundled Urban Airship solution that’s available now to Premium Plan customers. For more information, download the product sheet.

Announcing Changes to the Urban Airship Pro Plan

You spoke, and we listened. That’s why we’re excited to introduce some changes to our Pro plan that will make billing more predictable for new Pro plan customers.

Current Pro plan customers and Pro In-App Purchase plan customers will not see a change in their account or billing terms.

We built the Pro plan that was introduced in September 2011 to meet the needs of customers who wanted the features used by high-push-volume organizations but didn’t have the user count of an enterprise company. The plan was configured to serve the needs of an organization serving up to 10,000 users for $199 per month, with $.01 per additional user.

Since the Pro plan was introduced, many of you that adopted it have acquired a lot more than 10,000 users in a very short time. The result—besides lots more app users and more success for you—was that your invoice amount changed from month to month. This unpredictability in cost created issues for some of our customers and prompted this change.

The new Pro plan pricing, effective on May 1, 2012, will be a flat rate per month based on the number of active app users for that month for up to 100,000 users. If you are a current Pro Plan customer and want to view your user count, or upgrade to the new, more predictable plan, you can do so at go.urbanairship.com.

In addition to the Pro plan pricing change, we are eliminating the Pro In-App Purchase plan option as most customers requiring this functionality went with the Premium plan for additional features like custom on-boarding services, Shared Access and User Insight reports. Also introduced today, our new publishing solution, Newsstand Publisher, combines all of this functionality and subscriptions in a single solution.

To see the updated plan details, check out the new pricing page. For more information about Newsstand Publisher, read the data sheet.

App Management Made Easier

Many Urban Airship customers manage multiple apps and have several people including outside agencies that are assigned to handle app-related responsibilities such as composing push and Rich Push messages, evaluating messaging performance, and comparing app engagement metrics across their portfolio.

Today we’re happy to announce Shared Access capabilities added to our administrative interface that makes all of this easier by establishing functional roles for each app with user-assignable permissions. Urban Airship Premium Plan customers will see this new capability after they log in to the Urban Airship portal. The App Owner manages roles and assignments using a pop-up window in the App Details view. Individuals will only see the tasks assigned to them in the App Details view.

Owner's view of the app details

Shared Access makes it a lot easier to share the workload of managing multiple apps and reporting on results. To see how Shared Access works, get the Here’s How guide.

Urban Airship Expands In-App Purchases to the Windows PC Platform

Today we’re excited to announce our collaboration with the Intel AppUpSM program to offer in-app purchase technology to Intel AppUp developers, increasing monetization of apps developed for Windows-based PCs and Ultrabook™ devices. Best of all, Intel will cover the in-app purchase costs through March 31, 2015 for developers enrolled in the Intel AppUpSM developer program.

With virtual goods spending in the U.S. hitting $2 billion in 2011, both mobile and PC app developers have a growing opportunity to build features and content into applications that sustain engagement and drive incremental revenue. Urban Airship offers open source libraries and simple RESTful APIs that make it easy for developers to integrate in-app purchase functionality, enabling consumers to purchase upgrades, new content and complementary features directly within apps.  Urban Airship also manages receipt verification and content delivery of mobile purchases, replacing the need for developers to build their own IAP content server.

To date, we’ve powered more than 18.5 million in-app purchases for iOS and Android developers, and the relationship with Intel AppUp center will expand our services to a broader group of developers and apps across platforms. We’ve seen many customers achieve tremendous success with in-app purchase, including Future Publishing, which grossed over $1 million in incremental revenue in just 45 days after launching in-app purchase functionality for many of its 180 special-interest publications.

Urban Airship Removes UDID from Libraries

Today we’re releasing an updated iOS library to our developer community that removes all UDID-gathering functionality. Apple deprecated this field in the summer of 2011, and is now moving to disallow it. We’re happy to support Apple’s direction and think it makes sense for app users and the entire mobile ecosystem, including Urban Airship.

Our push notifications only reach users that have opted in to receive push, and the ability to opt in or out is important. We think that eliminating the ability to identify users automatically via their device identifiers is the right thing to do. Privacy really matters to app users, and we want our developer community to be able to honor users’ privacy concerns with tools that follow the latest best practices.

The UDID has been a part of our libraries primarily for support purposes when looking up user transaction histories in our Subscriptions product. It has always been transmitted and stored as a hashed value to help guard users’ privacy. Since our services do not require the UDID, we’ve changed our approach to tracking app installation identifiers only. With this change our developers can expose a unique user ID through their app settings that will continue to allow for support lookups. This identifier is unique to Urban Airship products and services, and has been present in our previously distributed libraries for more than a year.

Our iOS library has always been open sourced, and developers are welcome to view the changes we’ve made if that speeds your time to market. Or, simply download the latest version and upgrade your iOS project to use this new library. If you use Subscriptions in your app, you will also want to expose the user ID within your app in order to continue using our support tools. You don’t need to worry about your existing install base, as all our services are backward-compatible with this change.

We have a support FAQ that covers common questions about this change. As always, if you have any additional questions don’t hesitate to contact us.

Bringing Sexy Back to Java

At QConSF in November I delivered a talk about how developers can be much more pragmatic in their use of Java. The video is now up, and you know how us Airshippers like to share and contribute, so check it out if you have the chance.

There are some long-standing misconceptions about Java that need to be rectified. By thinking about and applying Java differently, you can achieve very effective results and promote a nimble environment.

Buddy is the Latest App Development Platform to Choose Urban Airship

Urban Airship is committed to making it easy for app developers to build engagement and monetization into their apps. As such, it’s extremely important for us to pursue partnerships with complementary solutions that together help make mobile easier, more successful and more profitable.

We are pleased to announce that Buddy Platform Inc. has joined Urban Airship’s strategic platform partner program and will utilize Urban Airship to power push notifications and Rich Push® for iOS, Android and Blackberry apps developed on its platform.

Buddy is a fully cross-platform, hosted cloud backend for mobile app developers. Buddy’s hosted collections of APIs can be called by apps on any connected device on any OS platform to power end-to-end scenarios like geo-location, photo albums, user accounts, friends & group lists, messaging/chat, analytics and push notifications. With Buddy you can forget about writing server-side code and focus entirely on building out your app experience.

Buddy joins a host of other development platforms that have partnered with Urban Airship including Appcelerator, Cabana, Kinvey, PhoneGap and ShoutEm.

There’s more room on the Airship so let us know if you want to come aboard.

OS X Mountain Lion’s Notification Center

Last week Apple announced a developer preview for their new OS X version, Mountain Lion, and one of the most talked about features is the Notification Center, which takes the system-wide notification system added in iOS 5.0 and extends it to the Mac. While Apple added push notification capability to Mac apps in its prior OS X update, in Mountain Lion the Notification Center makes notifications much more useful with built-in alerting and a centralized roll-up for messages you might have missed.

Last week we had our latest Free Friday, and I checked out the preview to see how Urban Airship’s iOS push capabilities worked with the new system. To my pleasant surprise, everything just worked. I was up and running from scratch in about an hour in Xcode, and I set up a few RSS feeds in the Urban Airship dashboard to alert my test app of breaking news.

This is one part of iOS that I’m glad to see arrive on the desktop, and I’m excited to see how developers will use Notification Center and push notifications in Mountain Lion. Are you a developer with a Mac App Store app, or are you working on one? We’d love to know how you plan to use notifications!