20. Nov 2011 03:11
3 Kommentare

Push Notification

iPhone Push Notification von der Tagesschau
iPhone Push Notification von der Tagesschau
Aufgrund einer kleinen Anwendung, die ich derzeit schreibe, habe ich mich mit dem Thema Push Notification ausseinandergesetzt. Der Sinn solcher Push Benachrichtigungen ist, dass man nicht immer irgendeine Aktion ausführen muss, sondern relevante Informationen direkt zugesendet bekommt. So soll man E-Mails mit Push Notification direkt bekommen und nicht erst abholen müssen und auch Facebook Statusinformationen und Nachrichten der Tagesschau kann man per Push Notification empfangen.

In diesem Artikel über Push Notifications möchte ich einmal detailliert darauf eingehen, wie diese Push Notifications technisch funktionieren, was die Unterschiede zwischen Android, iPhone und Blackberry Push ist und warum Push Notification eigentlich häufig garkeine echte "Push" Methode sind.

Was ist eine Push Notification

Beim Datentransfer hat man sich eine logische Unterscheidung ausgedacht. Da wäre zum Einen "Pull" (zu Deutsch "ziehen"), welches das aktive Abholen von Daten von einem Server durch den Client bzw. das Gerät  beschreibt. Dazu gibt es dann eben das sog. "Push", bei welchem der Client die Daten nicht aktiv abholen muss, sondern einfach zugesendet bekommt.

Push Notification unter Android
Push Notification unter Android
Auf die klassische Briefpost übertragen wäre Pull, wenn man immer morgens zur Post müsste, um nachzufragen ob ein Brief da ist - auch wenn keiner da ist. Push Notification ist dann entsprechend, dass der Brief vom Postboten direkt in den Briefkasten gesteckt wird. Es erfolgt also eine Push Notification vom Postboten in den Briefkasten sozusagen.

Im Mobilfunk ist da als Pendant z.B. der SMS (Short Messaging Service oder auf dt. "Kurznachrichtendienst"), die als Nachricht so gut wie unmittelbar auf dem Mobiltelefon erscheint. Man muss nicht erst auf "Abholen" drücken, sondern die Nachricht erscheint direkt im Display. Früher, also zu Palm-Zeiten, hatte man noch das Problem, dass man E-Mails immer vom Server "abholen" musste. Durch die Einführung des Blackberry änderte sich dies. E-Mails landeten direkt und fast unmittelbar auf dem Telefon. Android und iPhone Telefone folgten dem Blackberry und Push E-Mail ist mittlerweile üblich geworden.

Push-Verfahren im UMTS und GSM Mobilfunknetz

Bevor Ich jetzt im Detail auf Android, iPhone und Blackberry eingehe, sollte ich einmal erläutern, wie Push Notification schon seit Mitte der 90er Jahre (seit Existenz von GSM) bereits einwandfrei funktioniert und die Basis für Telefonate und Textnachrichten (SMS) bildet. Der Hintergrund, den wir uns gleich im Detail ansehen werden, ist relativ einfach: Jemand ruft ein Mobiltelefon an, während dieses scheinbar aus ist. Das Telefon muss erkennen, dass ein Anruf eingeht, sich vollständig einschalten und das Gespräch bei Wunsch entgegennehmen können.

GSM Call Setup für PCH Push NotificationDer eigentliche Funkchip im Mobiltelefon, der für sämtliche Kommunikation mit der Basisstation zuständig ist kommuniziert mit der BTS  - kurz für Base Transceiver Station - und damit mit der dahinter geschalteten BSC - kurz für Base Station Controller, welche die "Steuereinheit" für die BTS darstellt (steuert also die Sende-/Empfangsstation).

Egal ob komplett eingeschaltet oder nur im Stand By überwacht das Gerät bzw. der Funkchip permanent den sogenannten Paging Channel (kur PCH), über welchen das Netzwerk "Notifications" also zu Deutsch Benachrichtigungen versendet. Das sind also die Push Notifications im GSM/UMTS Mobilfunknetz.

Ruft also nun ein Teilnehmer einen anderen an, so baut der anrufende Teilnehmer einen Kanal zur BTS auf und der BSC baut dann über die dahinterliegenden Systeme eine Verbindung zum BSC auf, der sich im Bereich des Zielteilnehmers befindet. Dieser erhält dann über den PCH die Information, dass er bitte einen Kanal aufbauen soll. Er baut dann einen SDCCH (Standalone Dedicated Control Channel) auf, identifiziert sich am Netz, bestätigt gegebenenfalls das Telefonat und baut dann mit dem FACCH später den Traffic Channel (TCH) auf.

GSM BTS Basisstation
GSM BTS Basisstation
Bei einer SMS ist das ähnlich, jedoch wird diese direkt nach dem PCH über den SACCH transportiert und es ist kein gesonderter Traffic Channel notwendig. Dies zeigt aber auch, dass die SMS unter Umständen nicht so schnell zugestellt werden kann, wie ein Telefonat. Zudem ist der Inhalt einer SMS ja auch bedeutend größer als die Informationen bei der Anrufsignalisierung.

Man sieht also, wei schnell, effizient und energieoptimiert Push Notifications im Mobilfunknetz versendet werden. Die Verfahren sind zudem erprobt und lange Jahre in der Praxis bewährt. Sie bilden die Grundlage für den SMS Versand, den wir heute kennen und der in wenigen Sekunden komplett vollzogen ist. Es handelt sich hierbei um "echtes" Push, da das Telefon hier nicht ständig und wechselndem Abstand Daten zur BTS senden muss. Bei einem eingehenden Anruf gehen die Daten direkt zum Telefon ohne dass dieses sich vorher melden muss.

Blackberry's Push Notification

RIM, der Hersteller der Blackberry Geräte, war zwar nicht erste Anbieter, der Push Notification anbot, aber hat diese in gewisser Weise auf dem Massenmarkt durchgesetzt. Mittlerweile verwenden Blackberry Geräte Push Notification nicht nur für E-Mail sondern auch für den Blackberry Messenger, welcher es erlaubt Kurznachrichten zu versenden. Im Gegensatz zu SMS verwendet der Messenger hierfür die Verbindung zu seinem Blackberry Server.

Blackberry verwendet für Push Notification mit WAP PAP 2.2 das Push Access Protocol (Nachweis: Technische Funktionen des Blackberry Push Service), welches auch als WAP Push bekannt ist. Bei der Entwicklung von WAP Push legten die Mobilfunkbetreiber große Hoffnung in diese Technologie. Da jedoch weder Microsoft noch Netscape damals Interesse daran hatten eine solche Push Technologie zu entwickeln, verschwand letztendlich nicht nur WAP Push sondern das komplette WAP Protokoll wieder und setzte sich nicht durch.

Der Ein oder Andere mag jetzt schmunzeln oder lachen, aber es sei gesagt, dass das WAP PAP unter Verwendung von SMS über die SMS Zentrale SMSC technisch sehr effizient und energieschonend ist. Das Gerät kann sich in Standby versetzten und auf dem Paging Channel PCH auf die Push Notification in Form einer SMS warten. Der Nachteil hier ist, dass man einen Blackberry Server benötigt, der die Push Notification versendet und zudem auch beim Netzbetreiber eine Blackberry Option gebucht werden muss, damit entsprechende WAP Push Nachrichten empfangen werden können, was mit einem gewissen Entgelt verbunden ist, da der Netzbetreiber ja SMS versenden muss.

Push Notification unter Android

Seit Android Version 2.2 gibt es das sog. Google Android Cloud To Device Messaging Framework, welches als permanenter Dienst auf dem Gerät lauft. In regelmäßigen Abständen verbindet sich dieser Dienst mit dem Google Server und holt dort jede etwaige "Push Notification" ab. Man spricht bei dieser Implementierung von einem sog. Poller, also einer Applikation die permanent im Hintergrund läuft und in regelmäßigen Abständen eine Verbindung zum Server aufbaut, um Push Notifications abzuholen. Bei deisem Verfahren kann man keinenfalls ernsthaft von Push sprechen. Eher von einer Art Pseudo-Push, da zwar die Nachrichten auf dem Display des Benutzers automatisch erscheinen, aber nicht automatisch auf das Gerät gelangen.

Abgesehen von der Tatsache, dass dies ein absolut energieineffizientes Verfahren für den Akku ist, unnötig Signale versendet und das Mobilfunknetz belastet, ist dieses Vefahren auch noch extrem langsam. Gleichwohl ich meine Artikel hier immer sachlich schreibe, möchte ich als persönliche Meinung noch hinzufügen, dass dieses Vorgehen so dermaßen unglaublich unglücklich ist, dass ich bis heute nicht verstanden habe, warum man ein solches Verfahren einsetzen sollte. Zu den genauen Folgen und der dadurch verzögerten Versandabfolge gehe ich weiter unten noch ein. Man kann aber sagen, dass es bei dem Cloud To Device Messaging Framework gegenüber WAP PAP bzw. WAP Push in der Entwicklung um einen klaren Rückschritt im Bezug auf Push Notifications handelt.

Push Notification auf dem iPhone

Nachdem ich von RIM und Google eine recht gute Anzahl an Informationen bzgl. Push Notification gefunden habe, wie Push Notifications dort funktioniert, musste ich bei Apple sehr lange suchen. Defakto gibt es keine detaillierte Beschreibung, wie Push Notifications im Detail funktionieren. Man muss die Einzelteile hier zusammensuchen und das habe ich einmal gemacht. Es handelt sich bei Apple's Push Verfahren ebenso um Pseudo-Push, da hier Long Polling über TCP Port 5223 mit permanent offen stehender verschlüsselter TCP Verbindung eingesetzt wird. Es besteht also dauerhaft eine Verbindung zum Apple Server, was in UMTS als voll paketorientiertem System noch halbwegs passabel geht, aber in GSM mit GPRS schon sehr auf die Batterie schlägt. Weswegen ich zudem las und selber bestätigen kann, dass im GRPS Apple Push Notifications sehr langsam, verzögert oder gar nicht erscheinen.

Der Vorteil bei diesem Verfahren ist, dass - im Gegensatz zum Google Push Notification Polling - der Overhead für neue Verbindungen entfällt und die TCP Pakete entsprechend sofort zum Gerät gelangen. Das Gerät kann jedoch nicht vollständig in den Standby Modus gehen, da es permanent einen Datenkanal benötigt. Das Apple Push Verfahren ist ein bisschen geschickter als das Google Push Verfahren, schlägt nichts desto trotz genauso auf das Mobilfunknetz, verbraucht im Vergleich zu normalen Telefon unglaublich viel Strom und benötigt deutlich intensivere Sendekapazitäten.

Versanddauer einer Push Notification nach Verfahren

Bevor ich detailliert darauf eingehen möchte, warum Google und Apple sich gegen die gängigen Verfahren in Mobilfunknetzen für ihre exzessiven Verfahren mit Pseudo-Push entschieden haben, führe ich einmal die zweite Kehrseite der Medaillie auf und zeige, wie lange die Push Nachrichten im Schnitt brauchen, bis diese Ihren Empfänger erreichen getestet habe ich hier Push Notifications direkt von den Anbietern zum Gerät und auch zwischen Mobilfunknetzen hin- und her, wobei ich Vodafone, T-Mobile und O2 verwendet habe.

  • Anruf (PCH): 6 Sekunden
  • SMS, BlackBerry (PCH/WAP PAP): 14 Sekunden
  • iPhone (Long Polling TCP): 37 Sekunden*
  • Android (Standard Polling): 60 Sekunden

Die Laufzeiten beim iPhone hängen stark davon ab, ob man im GSM/GPRS oder UMTS Netzwerk unterwegs ist und ich habe hier einfach einmal einen Mittelwert genommen. Immer ausgehend vom Quellsignal, also dem Dienst, der die Push Notification beauftragt hat. Android hat hier am schlechtesten abgeschnitten, gleichwohl es hier immer davon abhängt, wie gut man gerade den Zeitpunkt des Pollings erwischt. Wie bereits eingangs erwähnt schlägt das Mobilfunknetz mit seinen eingebauten Singalisierungmethoden bzw. "eingebauten Push Notifications" die Push Notification Implementierung von Google und Apple bei Weitem. Da stellt sich dem neutralen Beobachter die Frage, wieso Google und Apple dann eben solche Pseudo-Push Verfahren einsetzen und nicht einfach analog RIM auf den Mobilfunkstandard GSM und UMTS setzen.

39,99 €
Jetzt bestellen »
Grundkurs Mobile Kommunikationssysteme: UMTS, HSDPA und LTE, GSM, GPRS und Wireless LAN
Versandfertig in 1 - 2 Werktagen

Anrufsignalisierung mit iPhone und Android Push nicht möglich

Bei solchen Reaktionszeiten von größer 30 Sekunden erklärt sich auch von selbst, warum VoIP Applikationen wie Skype sowohl auf dem iPhone als auch auf Android Geräten kein Push für eingehende Anrufe verwenden. Es wäre schlicht und einfach sinnlos: 30 Sekunden entspricht etwa 5 Freizeichen, da jedes eine Sekunde braucht und danach etwa 5 weitere Sekunden pause sind. Noch dazu würde dann nach 30 Sekunden es beim Teilnehmer überhaupt erst klingeln. Das entspricht einer Telefonie-Qualität, die selbst die Dame vom Amt wahrscheinlich besser geboten hätte. Skype hat sich deshalb auch lange durchringen müssen, um schlussendlich eine Version herauszubringen, die einen Hintergrunddienst hat, der im Endeffekt durchgehend eine aktive Verbindung hält - also eben kein Push.

Gründe für Pseudo-Push von Push Notifications

Beschäftigen wir uns also einmal mit den Gründen, warum man Pseudo-Push Verfahren einsetzen sollte anstelle von gängigen Push-Verfahren im GSM und UMTS, die ja dort bereits existieren und etabliert sind. Betrachtet man die Geräteklassen und die technischen Ausstattungen, dann stellt man auch schnell fest, dass z.B. der iPod, das iPad und so einige Android Geräte nur mit WLAN ausgestattet sind und daher garkeine GSM oder UMTS Chipsätze an Bord haben. Im Angesicht der massiven Nachteile der Pseudo-Push Methoden gegenüber dem gängigen Standard Push-Verfahren im Mobilfunk hätte man hier jedoch getrost zwei Methoden implementieren können.

Ein weiterer Grund ist mit Sicherheit wirtschaftlicher Natur. Netzbetreiber wollen für SMS, Telefonate und eine Blackberry Option vom Teilenehmer Geld sehen. Möchte man die Limitierung des Netzbetreibers umgehen und den Endnutzern am "Netzbetreiber vorbei" solche Push-Dienste anzubieten. Das macht dann in der Wertschöpfungskette Einen weniger. Gleichwohl ich nicht bei Google und Apple hineinschauen kann, wird dies wohl eines der größten Gründe gewesen sein.

Dies bedeutet aber eben auch, dass aufgrund der enormen Zusatzbelastung der Netze die Netzbetreiber in den Ausbau eben jener investieren müssen. D.h. solch kleine Implementierungen wie eben diese Pseudo-Push Dienste, die die Netze enorm beanspruchen ist der Leidtragende der Netzbetreiber und dadurch auch dessen Kunde. Denn selbst jener, der garkein Smartphone besitzt, muss durch seine Entgelte den dafür nötigen Ausbau mittragen. Die Diskussion über Netzneutralität hat also auch mit solchen Fehlimplementierungen wie Pseudo-Push Diensten zu tun. Darüber mehr im Detail in folgendem Abschnitt.

Pseudo-Push Notifications und Ihre Negativfolgen

Antenne einer UMTS Basisstation
Antenne einer UMTS Basisstation
Der Hauptleidtragende von solchen energieverschwendenen Pseudo-Push Verfahren, wie sie Apple und Google einsetzen ist primär erst einmal die Umwelt. Netzbetreiber wie die Deutsche Telekom und Vodafone haben im Zuge der "Always On" Mentalität der Smartphones ihre Netze massiv ausbauen müssen und verbrauchen dadurch natürlich auch bedeutend mehr Strom, was sich negativ auf die Energiebilanz auswirkt. Was aber mit "Always On" gemeint ist, ist nichts anderes als eben jene Bereitschaft für "Push Notifications" - denn auch jedes "normale" Mobiltelefon ist "Always On", denn sonst könnte man es garnicht anrufen. Gemeint ist also die stetig bestehende Internetverbindung, für welche die Geräte am Netz immer einen PDP Context benötigen (Datensitzung mit dem Netz bzw. dem Gateway abgekürzt GGSN und/oder SGSN).

239,99 €
Jetzt bestellen »
BlackBerry Bold 9000 Smartphone (WLAN, GPS, QWERTZ-Tastatur, Kamera mit 2 MP, MP3-Player) schwarz
Versandfertig in 1 - 2 Werktagen

Der normale Endnutzer eines Smartphones zahlt zusätzlich Datenverbindungen für Pseudo-Push Nachrichten, gleichwohl er vielleicht überhaupt garkeine Nachrichten erhält. Er zahlt also beim Netzbetreiber für Nichts. Bei einem solchen "Verseuchen" der Mobilfunknetze, wird verständlich wieso insbesondere Mobilfunknetzbetreiber das Thema Netzneutralität ansprechen.

Selbstverständlich möchte der Netzbetreiber zum Sichern seines Netzbetriebes den Pseudo-Push Datenverkehr möglichst gering halten, um die Kapazitäten für "echte" Datenverbindungen, Textnachrichten über SMS und Sprachtelefonie frei zu halten. Im Zuge dessen ist es dann verständlich, dass Google sich auf die Seite der Netzneutralisten schlägt. Da das jetzt jedoch zu sehr vom sachlichen abschweift, habe ich mir überlegt zum Thema Push Notification mit einem persönlichen Kommentar abzuschließen.

299,00 €
Jetzt bestellen »
Apple iPhone 4S Smartphone (8,9 cm (3,5 Zoll) Touchscreen Display, 8 Megapixel Kamera, 16GB, UMTS, iOS 5) schwarz
Versandfertig in 6 - 10 Werktagen

Abschließender Kommentar zu Push Notifications

Selbstverständlich ist es schön, E-Mails direkt auf das Telefon zu bekommen, für Bilder von Freunden keine 0,39 € pro MMS bezahlen zu müssen, ständig über Facebook-Neuigkeiten informiert und von der Tagesschau auf aktuellem Stand gehalten zu werden. Aber zu welchem Preis? Diesen Komfort aus dem Hause Google und Apple liefert man uns wirtschaftlich auf Kosten der Mobilfunknetzbetreiber, die hier als Geknechtete mitlaufen müssen, um nicht Gefahr laufen zu müssen hier Einbußen gegenüber Konkurrenten hinnehmen zu müssen. Im Gegenzug wird massiv ausgebaut und das geht auf Kosten der Umwelt. Mutter Natur muss hier einen sehr hohen Preis für einen sehr kleinen Komfort bezahlen.

Einmal mehr zeigt dies auch, wie weit Umweltbelange nach Hinten rücken müssen, wenn es um wirtschaftliche Vorteile geht. Sowohl Google als auch Apple verfügen über genug Experten und sollten sich ihrem umweltschädlichen Verhalten bewusst sein. Hier scheint der finanzielle Anreiz größer gewesen zu sein, aber auch die Netzbetreiber wie die Telekom, Vodafone, E-Plus oder O2 hätten rechtzeitig einlenken und effizientere Möglichkeiten bereitstellen können, wenn man sie nur danach gefragt hätte. Bei RIM scheint es mit den Blackberrys ja auch funktioniert zu haben.

Wer also schnelle, zuverlässige und weniger umweltschädliche Push Notifications haben möchte, verwendet also entweder direkt SMS oder eben WAP PAP auf dem Blackberry. Technisch wäre es für jeden App Entwickler auch einfach möglich WAP PAP auf dem iPhone und Android in seiner App zu implementieren - das geht schon heute mit Android und iOS einfach so.

Bücher zum Thema „Android Programmierung“

Die nachfolgenden Bücher behandeln das Thema "Android Programmierung" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
34,90 €
Jetzt bestellen »
Android 7: Das Praxisbuch für Entwickler. Inkl. Einstieg in Android Studio. 70 Projekte zu allen Android-Funktionen: Multimedia, Kamera, Organizer, Sensoren, Datenbanken, Android Wear u. v. m.
Thomas Künneth, Rheinwerk Computing
22,50 €
Jetzt bestellen »
Android: Der schnelle und einfache Einstieg in die Programmierung und Entwicklungsumgebung
Dirk Louis, Carl Hanser Verlag GmbH & Co. KG
24,90 €
Jetzt bestellen »
Android-Apps entwickeln für Einsteiger: Eigene Apps und Spiele mit Android Studio 2.2
Uwe Post, Rheinwerk Computing
24,90 €
Jetzt bestellen »
Eigene Apps programmieren: Schritt für Schritt mit LiveCode zur eigenen App – für Windows, Mac, iOS und Android.
Hauke Fehr, Rheinwerk Computing

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
19 Besucher haben auch das gelesen
19 Besucher haben auch das gelesen
19 Besucher haben auch das gelesen
18 Besucher haben auch das gelesen
18 Besucher haben auch das gelesen
18 Besucher haben auch das gelesen

Kommentare zum Thema „Push Notification“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
15.05.2012 20:26
Hallo Jan Sehr interessanter Artikel und guet recherchiert wie es mich dünkt. Aber ist das Ganze wegen den Negativfolgen nicht ein wenig übertrieben? Sind die Datenmengen wirklich so gross, dass es für die Netzbetreiber zum Problem wird? Ich denke gerade surfen und Videos braucht da einiges mehr an Daten.. Besten Dank für deine Antworten! Gruss Fabian
28.11.2013 09:48
Vielen Dank für Deine Mühe, diesen Artikel zu schreiben. Ist überaus interessant. Auch weil ich ähnliches realisieren möchte bzw. muss und die Pseudo-Push Funktionalitäten von Google und Apple nicht verwenden will. Aus verschiedenen Gründen (z.B. Sicherheit und Netzbelastung). Vielen Dank!
08.06.2016 11:12
Ein Punkt, weshalb alle Anbieter auf ein normales Polling gewechselt sind, könnte folgender sein: es funktioniert auch ohne GSM Netz, also auch wenn Datenverbindung deaktiviert oder nicht vorhanden ist. Gibt ja auch einige Tablets, die nur über WLAN verfügen. Würde mich freuen, wenn Du den Artikel noch mal aktualisieren würdest (GCM ist jetzt Firebase, wie macht man es bei Windows Mobile?, ...), man findet so gut wie nichts im Netz darüber. Tolle Arbeit jedenfalls, danke!
Jetzt zum Kommentieren anmelden