Broadcast push notifications to millions of mobile devices using Windows Azure Notification Hubs

Today we released a number of great enhancements to Windows Azure. 

I blogged earlier today about the general availability (GA) release of Windows Azure Media Services.  Windows Azure Media Services provides everything you need to quickly build great, extremely scalable, end-to-end media solutions for streaming on-demand video to consumers on any device.

We also today released a preview of a really cool new Windows Azure capability – Notification Hubs.  Notification Hubs provide an extremely scalable, cross-platform, push notification infrastructure that enables you to efficiently route push notification messages to millions of mobile users and devices. 

Broadcast Push Notifications with Notification Hubs

Push notifications are a vital component of mobile applications.  They are critical not only in consumer apps, where they are used to increase app engagement and usage, but also in enterprise apps where up to date information increases employee responsiveness to business events.

Sending a single push notification message to one mobile user is relatively straight forward (and is already incredibly easy to-do with Windows Azure Mobile Services).  Efficiently routing push notification messages to thousands or millions of mobile users simultaneously is much harder – and the amount of code and maintenance necessary to build a highly scalable, multi-platform push infrastructure capable of doing this in a low-latency way can be considerable.

Notification Hubs are a new capability we are adding today to Windows Azure that provides you with an extremely scalable push notification infrastructure that helps you efficiently route push notification messages to users.  It can scale automatically to target millions of mobile devices without you needing to re-architect your app or implement your own sharding scheme, and will support a pay-only-for-what-you-use billing model.

Today we are delivering a preview of the Notification Hubs service with the following capabilities:

  • Cross-platform Push Notification Support. Notification Hubs provide a common API to send push notifications to multiple device platforms.  Your app can send notifications in platform specific formats or in a platform-independent way.  As of January 2013, Notification Hubs are able to push notifications to Windows 8 apps and iOS apps.  Support for Android and Windows Phone will be added soon.
  • Efficient Pub/Sub Routing and Tag-based Multicast. Notification Hubs are optimized to enable push notification broadcast to thousands or millions of devices with low latency.  Your server back-end can fire one message into a Notification Hub, and thousands/millions of push notifications can automatically be delivered to your users.  Devices and apps can specify a number of per-user tags when registering with a Notification Hub. These tags do not need to be pre-provisioned or disposed, and provide a very easy way to send filtered notifications to an infinite number of users/devices with a single API call.  Since tags can contain any app-specific string (e.g. user ids, favorite sports teams, stock symbols to track, location details, etc), their use effectively frees the app back-end from the burden of having to store and manage device handles or implement their own per-user notification routing information. 

  • Extreme Scale. Notification Hubs enable you to reach millions of devices without you having to re-architect or shard your application.  The pub/sub routing mechanism allows you to broadcast notifications in a super efficient way.  This makes it incredibly easy to route and deliver notification messages to millions of users without having to build your own routing infrastructure.

  • Usable from any Backend App. Notification Hubs can be easily integrated into any back-end server app.  It will work seamlessly with apps built with Windows Azure Mobile Services.  It can also be used by server apps hosted within IaaS Virtual Machines (either Windows or Linux), Cloud Services or Web-Sites.  This makes it easy for you to take advantage of it immediately without having to change the rest of your backend app architecture.

Try Notification Hubs Today

You can try the new Notification Hub support in Windows Azure by creating a new Notification Hub within the Windows Azure Management Portal – you can create one by selecting the Service Bus Notification Hub item under the “App Services” category in the New dialog:

image

Creating a new Notification Hub takes less than a minute, and once created you can drill into it to see a dashboard view of activity with it.  Among other things it allows you to see how many devices have been registered with it, how many messages have been pushed to it, how many messages have been successfully delivered via it, and how many have failed:

image

You can then click the “Configure” tab to register your Notification Hub with Microsoft’s Windows Notification System and Apple’s APNS service (we’ll add Android support in a future update):

image

Once this is setup, its simple to register any client app/device with a Notification Hub (optionally associating “tags” with them so that you can have the Notification Hub automatically filter for you who gets which messages).  You can then broadcast messages to your users/mobile apps with only a few lines of code.

For example, below is some code that you could implement within your server back-end app to broadcast a message to all Windows 8 users registered with your Notification Hub:

var hubClient = NotificationHubClient.CreateClientFromConnectionString(connectionString, "scottguhub");

var notificationBody = WindowsNotificationXmlBuilder.CreateToastImageAndText04Xml("myImage.jpg", "text1", "text2", "text3");

 

hubClient.SendWindowsNativeNotification(notificationBody.InnerXml);

The single Send API call above could be used to send the message to a single user – or broadcast it to millions of them.  The Notification Hub will automatically handle the pub/sub scale-out infrastructure necessary to scale your message to any number of registered device listeners in a low-latency way without you having to worry about implementing any of that scale-out logic yourself (nor block on this happening within your own code).  This makes it incredibly easy to build even more engaging, real-time mobile applications.

Learn More

Below are some guides and tutorials that will help you quickly get started and try out the new Notification Hubs support:

I also highly recommend watching these two videos by Clemens Vasters:

Summary

Notification Hubs provide an extremely scalable, cross-platform, push notification infrastructure that enables you to efficiently route push notification messages to millions of mobile users and devices.  It will make enabling your push notification logic significantly simpler and more scalable – and enable you to build even better apps with it.

You can try out the preview of the new Notification Hub support immediately.  If you don’t already have a Windows Azure account, you can sign-up for a free trial and start using it today.  We are looking forward to seeing what you build with it!

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

15 Comments

  • great i like it

  • Great news Scott, but what happened to Windows 7 in areas like push notifications and smooth streaming? For push notifications we have to use service bus, which is difficulet to shard, as you just pointed out, and for smooth streaming, we have to use a webbrowser control and link to an HTML page with a Silverlight player.. I would think with the amount of Windows 7 licenses in the wild, it would still be an attractive platform for you to target?

  • Microsoft is kicking butt on a large scale!

  • I'm wondering what the price plan will look like and how it compares to other services like nudge, pushwoosh, urban airship, xtify, etc.

  • Interesting stuff - my app needs to send to 1000's of mobile clients in a short space of time - so far I'm getting ~1000rps through the PNS from my code.
    Any idea on pricing?
    What are the limits you can send to during the trial?
    Also interesting that one of the msdn articles you linked to mentions that apps can be cracked :-)

  • Except for support for other client platforms, how is this different from the existing Microsoft Push Notification Service (MPNS) that is commonly used to send notifications to Windows Phones? (http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402558(v=vs.105).aspx)

  • Wow. Totally blown away. You guys are really turning that crank!

  • Great new feature!
    I have a question how Windows Azure Mobile Service with their Push Notifications align with this feature? Is this a replacement? Addition? How do we position this?





  • Great feature with high potential - Thanks :-)




  • We have posted some intitial info on pricing as well as quotas during the Preview period on the Azure pricing page (under Messaging). For convenience:

    During preview, Service Bus Notification Hubs offer customers push notification services up to 10,000 users [per namespace] at no charge. Price during General Availability will be based on the number of users (active registrations) receiving push notifications, and will be priced competitively to provide high-volume, multi-platform push notifications at a low monthly fee.

    A limitation of 100 operations per user per day will be enforced during preview. Operations include both notifications sent and received as well as queries, updates and deletions of registrations.

  • Hi Tomasz,

    I am a Program Manager on the Service Bus team.
    Notification Hubs will not replace the push functionality in Windows Azure Mobile Services, they will be a complement to it. Notification Hubs will be able to be used from any Mobile Service back-end very soon, adding high-scale broadcast capabilities and tag support.

  • I heard of this feature in the grape fine. I think it compleets the Azure service Bus features. Looks cool. can,t wait to use it in an app :-)

  • Just walked through the tutorial for Win8 app. If anyone is looking for the completed sample code, check out it here at http://blogs.msdn.com/b/zxue/archive/2013/01/24/creating-windows-store-apps-with-windows-azure-notification-hubs.aspx

  • Hello,

    It really sounds great. But I wonder - can I use it, if my server back-end written on different from .Net technologies (Python, Ruby, etc.) I mean is there any cross-platform API for message broadcast? (HTTP, etc.)

    Thanks

  • Great news Stuff, Its complalty blown away.
    Its extremely scalable Thanks :)




    Try network monitoring tools Free for 30 days - http://tinyurl.com/c9d97wl

Comments have been disabled for this content.