Alternative Push-Dienste für Android

Soll ein Smartphone mit möglichst geringer Verzögerung aus dem Internet über Neuigkeiten informiert werden, kommt in der Regel ein Push-Dienst zum Einsatz. Gängige Anwendungen dafür sind etwa die Benachrichtigung über neue Emails und Sofortnachrichten sowie Breaking News und Sportereignisse.

Auf Android realisiert man Push in den meisten Fällen mit Google Cloud Messaging (GCM), einem Teil der Google Play Services. Somit verpflichtet man den Nutzer zur Verwendung des Google Dienstes und eines passenden Accounts. Doch was kann man tun, wenn man auf Google verzichten möchte oder gar muss?

Über Push

Smartphones sind aus dem Internet nicht erreichbar, wenn sie z.B. per WLAN über einen NAT-Router oder über das Mobilfunknetz mit dem Internet verbunden sind, da sie in diesen Fällen keine globale IP-Adresse erhalten. Ein Server kann also nicht ohne Weiteres eine Verbindung zu einem Client auf dem Smartphone aufbauen, um eine Nachricht auszuliefern. Stattdessen muss das Smartphone die Verbindung zum Server initiieren.

Beim Polling fragt der Client auf dem Smartphone regelmäßig den Server, ob neue Nachrichten vorliegen. Im ungünstigsten Fall wird eine Nachricht dabei genau um das Abfrageintervall verzögert. Prüft ein Emailclient beispielsweise alle 15 Minuten auf neue Emails, und trifft eine Email unmittelbar nach einer Abfrage ein, dann bemerkt das der Client erst 15 Minuten später bei der nächsten Abfrage. Je kürzer das Abfrageintervall ist, desto öfter prüft der Client vergebens auf neue Nachrichten. Dafür muss das Gerät jedes mal aus dem Energiesparmodus geweckt und eine Internetverbindung aufgebaut werden.

Um die Verzögerungen und den Energie- und Datenverbrauch durch vergebliche Abfragen zu vermindern, baut der Client eines Push-Dienstes eine Verbindung zum Push-Server auf, die offen gehalten wird. Der Server kann dann bei neuen Nachrichten auf dieser bestehenden Verbindung Antworten und die Neuigkeiten mitteilen.

Beide Varianten stellen hohe Ansprüche an den Energiehaushalt des Smartphones, die Netzwerkinfrastruktur und die Softwareentwickler. Verstärkt werden die Probleme – insbesondere der Energiebedarf, wenn mehrere Anwendungen auf dem Smartphone unkoordiniert pollen.

Alternativen zu Google

Ein vernünftig implementierter Push-Client, der von mehreren Anwendungen verwendet werden kann, macht also definitiv Sinn. GCM bietet genau das, doch welche Optionen gibt es, wenn man auf Google verzichten möchte oder muss?

Amazon Device Messaging (ADM)

ADM ist Amazons Pendant zu GCM für ihre Android-Geräte (Fire) und funktioniert praktisch identisch. Der Dienst ist kostenlos.

Parse

Parse ist ein Paket verschiedener Dienste, darunter Push für Android und andere Plattformen. Der Dienst läuft ab Android 2.3 und verwendet GCM oder kümmert sich in einem eigenen Hintegrunddienst um den Empfang von Nachrichten, falls GCM nicht verfügbar ist.

Der Server zum Versand von Push-Nachrichten wird von Parse bereitgestellt. Empfänger können über Kanäle adressiert werden, auf denen diese sich zuvor registriert haben, oder anhand von Suchkriterien ausgewählt werden. Bis zu 1.000.000 Empfängern ist der Dienst kostenlos.

Openmobster

Openmobster ist eine Opensource Plattform für die Anbindung von Mobilgeräten an Cloud-Dienste und enthält auch Push-Funktionalität. Die Library ist für Android ab Version 3.0 und für iOS verfügbar. Den javabasierten Server muss man selbst betreiben. Der Code wurde bis Ende 2013 regelmäßig aktualisiert.

RabbitMQ

RabbitMQ ist ein Nachrichtenverteiler bestehend aus Server- und Clientsoftware. Es ist kein Push-Dienst, man kann mit dem Paket allerdings selbst einen Push-Dienst realisieren, wie es etwa Simon Dixon in seinem Blog beschreibt.

CloudAMQP bietet fertige Serverinstallationen von RabbitMQ an. Den Dienst gibt es in verschiedenen Preisklassen. Das kostenlose Angebot ist beschränkt auf 3 gleichzeitige Verbindungen, 100 Nachrichtenkanäle und 10.000 ausstehende Nachrichten.

Deacon

Deacon ist eine Opensource Library, die Push Nachrichten für Android bzw. Java zur Verfügung stellen soll. Die Library ist für die Zusammenarbeit mit einem Meteor Server als Versender der Push-Nachrichten konzipiert. Seit 2012 scheint Deacon leider stillzustehen.

Amazon Simple Notification Service (SNS)

Amazon SNS ist ein Benachrichtigungsdienst als Teil der Amazon Web Services. Es implementiert keinen eigenen Push sondern stützt sich auf bestehende Dienste, darunter GCM und ADM und Dienste anderer Plattformen. Darüber hinaus können Benachrichtigungen auch per SMS versandt werden. Der Dienst konzentriert sich auf ein Kanal-System, d.h. Sender erstellen Kanäle, auf denen sich dann Empfänger registrieren können. Der Preis skaliert mit der Nutzung des Dienstes und ist für kleine Benachrichtigungsvolumina kostenlos.

Urban Airship

Urban Airship unterstützt neben Android auch Windows, iOS, Blackberry und PhoneGap (Android und iOS Crossplatform). Es bietet keinen eigenen Push-Dienst sondern verteilt Push-Nachrichten über die gängigen Push-Dienste auf den einzelnen Plattformen. Für Android sind das die Dienste GCM und ADM.

Die Kosten des Dienstes ergeben sich nach einer 45-tägigen Probezeit monatlich aus der Anzahl der aktiven Installationen der jeweiligen Anwendung mit Push-Funktion.

Fazit

Ein Paket, das keine Wünsche offen lässt, ist schwer zu finden. Amazon liefert eine Infrastruktur, die der von Google ähnelt, beschränkt sich aber auf die eigenen Fire-Geräte. Parse geht einen interessanten hybriden Weg, indem es sich auf GCM verlässt und als Fallback einen eigenen Push-Client an Bord hat.

Alle anderen Dienste erfordern entweder eine eigene Infrastruktur für die jeweilige Anwendung, was sich ungünstig auf den Energie- und Datenverbrauch sowie die Performence auswirken kann. Oder sie stützen sich lediglich auf bestehende Push-Dienste wie GCM. Diese Dienste haben oft den Vorteil, dass sie plattformübergreifend funktionieren.

DEIN KONTAKT ZUR APP-KANTINE


LINEAS Software GmbH
Theodor-Heuss-Str. 2
38122 Braunschweig

Tel.: +49 531 88 52 – 3000
Fax: +49 531 88 52 – 3500

E-Mail: info@app-kantine.de