Now Use Google App Engine to Sending Out iOS Push Notifications

"CloudPushSample for iOS - Java Backend" open source application use Google App Engine to send out iOS push notifications. Boundary app free to Compute Engine. Test drive VMs in 10 minutes. PubSubHubbub (PuSH) protocol v0.4.

Google Cloud created a simple push notification application CloudPushSample for iOS - Java Backend, that help you get started using Google App Engine to orchestrate push notifications to iOS devices.

"Push notifications are the little pings your phone gives you to let you know that you've got a new message, your friend is waiting for you to take your turn on the latest game or that band you like has just announced a concert in your town," explains google.

"On iOS devices, like iPhones and iPads, push notifications are handled by Apple's Push Notification Service (APNS)," google added. "APNS is hosted by Apple, and acts as a bridge between your server and your mobile clients."

Here's how push notification works:

  • "Your mobile application securely registers itself with Apple to be able to receive push notifications, usually when the app is being launched the first time. It receives a device token, which the mobile application passes to your mobile backend.
  • Your server opens a secure connection to APNS, and when an event occurs that requires a push notification - your server sends a short message including the device token of the device that should receive the message to APNS. APNS will then handle the 'last-mile delivery' of the notification to the device," google expalined.

There are a few important things to consider when implementing push notifications in application such as: "Connection pooling with backend instances and pull queues; Sending bulk notifications with push queues and cursors; and Connecting to APNS."

Google notes, by using this app, "putting all of this together on App Engine require only a simple batch query queue handler and notification worker." And, "everything else is taken care of by App Engine's robust queueing and datatore APIs," google said.

Below are some resources to get you started to add Push Notifications to your app:

  • Download the source to Java-iOS push notification example on Github,
  • Read this in-depth Cloud solutions paper on Orchestrating iOS Push Notifications, which covers this architecture (and more) in greater detail,
  • Read more about push queues (Python, Java), pull queues (Python, Java) and outbound sockets (Python, Java)
  • popular 3rd party libraries such as JavaPNS also work well, and often provide a cleaner higher level interface for sending notifications.

iOS push notification on Google App Engine

Google App Engine Diagram of iOS Push Notification using CloudPushSample for iOS - Java Backend

Update 07/02: v0.4 of the PuSH specification (the PubSubHubbbub), that Google introduced in 2009 released today, advances the support for feed handling. For this update, Google says it worked with Superfeedr and others on the new specification and look forward to it being widely adopted.

"Our improved PuSH hub means we can expose feeds more efficiently, coherently and consistently, from a robust secure access point. Using the PuSH protocol, servers can subscribe to an almost arbitrarily large number of feeds and receive updates as they occur," google stated.

Google encourages to consider PuSH as a means of accessing feeds in bulk. Publishers are also advised to submit their feeds to a public PuSH hub like Google's hub and Superfeedr's Open PubSubHubbub Hub, "if they don't want to implement their own."

"Our PuSH hub offers easy access to hundreds of millions of Google-hosted feeds including Blogger, as well as hundreds of millions of other feeds available via the PuSH ecosystem and through active polling," google adds.

"The PuSH hub is designed to be accessed by bots and it's tuned for large-scale reading from the PuSH endpoints. We have safeguards against abuse, but legitimate users of the access points should see generous limits, with few restrictions, speed bumps or barriers."

In addition, Google also plans some improvements to the Feed API, that allows you to download any specific public Atom or RSS feed using only JavaScript, "enabling easy mashups of feeds with your own content and other APIs."

Google's Feedfetcher is still active, here's a screenshot from FeedBurner:

Google Feedfetcher

"Feedfetcher is how Google grabs RSS or Atom feeds when users choose to add them to their Google homepage or Google Reader. Feedfetcher collects and periodically refreshes these user-initiated feeds, but does not index them in Blog Search or Google's other search services (feeds appear in our search results only if they've been crawled by Googlebot)," explains Google's help center.

Google is offering a free, full functional version of Boundary for Google Compute Engine customers, that help operations teams get early warnings about potential problems, before the dominoes start to fall, so that they can prevent application outages.

"Boundary developed an entirely new SaaS-based monitoring service that supports dynamic environments by streaming data from every system, every second, and applying real-time analytics to that information. In distributed environments, we analyze the flows between every application and infrastructure component to give a comprehensive view on all the inter-dependencies and how the distributed system is performing as a whole," explains Gary Read CEO of Boundary.

"Once this data is collected, Boundary applies big data analytics to the task of IT operations management, and delivers insights through graphical views that are visually exciting and easy to understand. In other words, Boundary makes it practical for IT teams to quickly understand and optimize their modern IT environments," added Read.

You can sign up here for Boundary.

Boundary for Google Compute Engine : Architecture

Update 07/03: Google has posted a video that show how affordable and quick it is to test drive Virtual Machines on Google Compute Engine in just under 10 minutes.

In this video, "we walk through the steps required to create a Google Cloud Platform project and start up a virtual machine. Next, we install a web server (Apache) on the virtual machine and fetch a web page to confirm a successful installation. Finally we tear down the virtual machine to wrap up the exercise - all in less than 10 minutes, and under a cent!," google wrote.