Übersicht über Benachrichtigungshubs

Azure-Benachrichtigungshubs stellen eine einfach zu verwendende Infrastruktur bereit, die das Senden von Pushbenachrichtigungen an mobile Geräte von beliebigen Back-Ends aus (in der Cloud oder lokal) an beliebige mobile Plattformen ermöglicht.

Mit Benachrichtigungshubs können Sie auf einfache Weise plattformübergreifende, personalisierte Pushbenachrichtigungen senden und dabei die Details der verschiedenen Plattformbenachrichtigungssysteme (Platform Notification System, PNS) vernachlässigen. Mit einem einzigen API-Aufruf können Sie einzelne Benutzer oder vollständige Zielgruppensegmente mit Millionen von Benutzern auf allen Geräten erreichen.

Sie können Notification Hubs für Unternehmens-und Verbraucherszenarien verwenden. Beispiel:

  • Senden Sie Benachrichtigungen zu aktuellen Nachrichten mit geringer Latenz an Millionen von Benutzern (Notification Hubs unterstützen Bing-Anwendungen, die auf allen Windows- und Windows Phone-Geräten vorinstalliert sind).

  • Senden Sie standortbasierte Gutscheine an Benutzersegmente.

  • Senden Sie Ereignisbenachrichtigungen an Benutzer oder Gruppen für Sport-/Finanz-/Spieleanwendungen.

  • Benachrichtigen Sie die Benutzer über Unternehmensereignisse wie neue Nachrichten/E-Mails und Vertriebsleads.

  • Senden Sie einmal zu verwendende Kennwörter für die Multi-Factor Authentication.

Was sind Pushbenachrichtigungen?

Smartphones und Tablets sind in der Lage, Benutzer zu "benachrichtigen", wenn ein Ereignis eintritt. In Windows Store- und Windows Phone-Anwendungen führt die Benachrichtigung zu einem Toast (ein modusfreies Fenster, das oben auf dem Bilschirm angezeigt wird) oder zu Kachelaktualisierungen auf dem Startbildschirm. Auf Android- und iOS-Geräten werden Benachrichtigungen entsprechend gruppiert in einem Benachrichtigungsbereich angezeigt, auf den der Benutzer problemlos oben auf dem Bildschirm zugreifen kann.

Pushbenachrichtigungen unterstützen Anwendungs-Back-Ends bei der Anzeige aktueller Informationen auf mobilen Geräten – auch, wenn die App auf dem Gerät nicht aktiv ist.

Pushbenachrichtigungen werden über plattformspezifische Infrastrukturen namens Plattformbenachrichtigungssysteme (Platform Notification Systems, PNS) bereitgestellt. Ein PNS bietet grundlegende Funktionen (also keine Unterstützung für Übertragung oder Personalisierung). Außerdem haben die plattformspezifischen PNSs keine gemeinsame Schnittstelle. Um beispielsweise eine Benachrichtigung an eine Windows Store-App zu senden, muss ein Entwickler den Windows-Benachrichtigungsdienst (Windows Notification Service, WNS) kontaktieren. Um eine Benachrichtigung an ein iOS-Gerät zu senden, kontaktiert der gleiche Entwickler APNS (Apple Push Notification Service) und sendet die Nachricht ein zweites Mal. Der Prozess ist für Windows Phone 8- und Android-Apps ähnlich.

Im Prinzip folgen alle Plattformbenachrichtigungssysteme dem gleichen Muster:

  1. Die Clientanwendung kontaktiert das PNS, um den Handle abzurufen. Der Typ des Handles hängt vom System ab. Für WNS ist es ein URI oder "Benachrichtigungskanal". Für APNS ist es ein Token.

  2. Die Clientanwendung speichert diesen Handle für die spätere Verwendung im App-Back-End. Für WNS ist das Back-End normalerweise ein Clouddienst. Für Apple wird das System als Anbieter bezeichnet.

  3. Um eine Pushbenachrichtigung zu senden, kontaktiert das Back-End das PNS mithilfe des Handles, um eine Instanz einer bestimmten Clientanwendung aufzurufen.

  4. Das PNS leitet die Benachrichtigung an das vom Handle angegebene Gerät weiter.

Notification Hubs

Die zum Implementieren des Ablaufs erforderliche Infratstruktur ist relativ komplex und großenteils unabhängig von der Hauptgeschäftslogik der App. Folgende Herausforderungen stellen sich beim Aufbau einer bedarfsgesteuerten Push-Infrastruktur:

  • Plattformabhängigkeit. Um Benachrichtigungen an Geräte auf verschiedenen Plattformen zu senden, müssen Sie mehrere Schnittstellen im Back-End programmieren. Dabei bestehen nicht nur Detailunterschiede, sondern auch die Präsentation der Benachrichtigung (Kachel, Toast oder Signal) ist plattformabhängig. Diese Unterschiede führen zu einem komplexen und schwer zu verwaltenden Back-End-Code.

  • Skalierung: Bei einer Anwendung für Hunderttausende oder Millionen von Mandanten sind Ansätze mit gemeinsamer Datenbanknutzung vorteilhaft, z.B. Bei der Skalierung dieser Infrastruktur sind zwei Aspekte zu berücksichtigen:

    • Nach PNS-Richtlinien müssen Gerätetokens bei jedem Start einer App aktualisiert werden. Das führt zu umfangreichem Datenverkehr (und damit zu vielen Datenbankzugriffen), nur um die Gerätetoken auf dem aktuellen Stand zu halten. Wenn die Anzahl der Geräte steigt (möglicherweise auf mehrere Millionen), sind die Kosten für das Erstellen und Verwalten dieser Infrastruktur nicht mehr zu vernachlässigen.

    • Die meisten PNSs unterstützen keine Übertragungen auf mehrere Geräte. Darum führt eine Übertragung an Millionen von Geräten zu Millionen von PNS-Aufrufen. Das Skalieren dieser Anfragen ist keine einfache Aufgabe, da App-Entwickler normalerweise die Gesamtlatenz gering halten möchten (das letzte Gerät, das die Nachricht empfängt, sollte die Benachrichtigung beispielsweise nicht länger als 30 Minuten nach dem Senden der Benachrichtigungen empfangen, da dies in vielen Fällen der Idee von Pushbenachrichtigungen widersprechen würde).

  • Routing: PNS ermöglichen das Senden einer Nachricht an ein Gerät. In den meisten Apps richten sich Benachrichtigungen allerdings an Benutzer- und/oder Interessengruppen (zum Beipiel an alle Mitarbeiter, die einem bestimmten Kundenkonto zugewiesen sind). Das App-Back-End muss also eine Registry unterhalten, die Interessengruppen Gerätetoken zuordnet, um die Benachrichtigungen an die richtigen Geräte weiterzuleiten. Dieser Aufwand muss der Gesamtmarkteinführungszeit und den Wartungskosten einer Anwendung hinzugefügt werden.

  • Überwachung und Telemetrie. Das Überwachen und Zusammenfassen der Ergebnisse von Millionen von Benachrichtigungen ist keine einfache Aufgabe und normalerweise eine wichtige Komponente jeder Lösung, die Pushbenachrichtigungen verwendet.

Verwenden von Benachrichtigungshubs

Benachrichtigungshubs beseitigen eine große Komplexität: Sie müssen die Herausforderungen von Pushbenachrichtigungen nicht verwalten. Stattdessen können Sie einen Notification Hub verwenden. Notification Hubs verwenden eine vollständige plattformübergreifende und skalierte Infrastruktur für Pushbenachrichtigungen und reduzieren den pushspezifischen Code, der auf dem App-Back-End ausgeführt wird, beträchtlich. Notification Hubs bieten die gesamte Funktionalität einer Pushinfrastruktur. Die Geräte sind nur für die Registrierung ihrer PNS-Handles verantwortlich, während das Back-End plattformunabhängige Nachrichten an Benutzer oder Interessengruppen sendet, wie in der folgenden Abbildung veranschaulicht.

Notification Hubs

Benachrichtigungshubs stellen eine Pushinfrastruktur mit folgenden Vorteilen bereit:

  • Mehrere Plattformen:

    • Unterstützung aller wichtigen mobilen Plattformen (Windows/Windows Phone, iOS, Android).

    • Keine plattformspezifischen Protokolle. Die Anwendung kommuniziert nur mit Notification Hubs.

    • Verwaltung von Gerätehandles. Notification Hubs verwalten die Handleregistrierung und Feedback von PNSs.

  • Funktioniert mit jedem Back-End. Cloud oder am Standort, .NET, PHP, Java, Node usw.

  • Skalierung: Bei einer Anwendung für Hunderttausende oder Millionen von Mandanten sind Ansätze mit gemeinsamer Datenbanknutzung vorteilhaft, z.B. Benachrichtigungshubs können für Millionen von Geräten skaliert werden, ohne dass die Architektur geändert oder Sharding ausgeführt werden muss. In allen Regionen verfügbar.

  • Viele verschiedene Bereitstellungsmuster. Ordnen Sie Tags Geräten zu, die logische Benutzer- oder Interessengruppen darstellen.

    • Broadcast: Ermöglicht eine fast simultane Übertragung an Millionen von Geräten mit einem einzigen API-Aufruf.

    • Unicast/Multicast: Push to Tags, die einzelne Benutzer darstellen, einschließlich aller ihrer Geräte; oder breitere Gruppe; Beispielsweise separate Formularfaktoren (Tablet vs. Smartphone).

    • Segmentierung: Push an komplexe Segmente, die durch Tagausdrücke definiert sind (z. B. Geräte in New York nach den Yankees).

  • Personalisierung. Jedes Gerät kann über eine oder mehrere Vorlagen verfügen, um eine Lokalisierung und Personalisierung pro Gerät ohne Auswirkung auf den Back-End-Code zu erreichen.

  • Sicherheit. Gemeinsamer geheimer Zugriffsschlüssel (Shared Access Secret, SAS) oder Verbundauthentifizierung.

  • Umfangreiche Telemetrie. Verfügbar im Portal und programmgesteuert.

Zusammenfassung

  • Pushbenachrichtigungen sind zu einem zentralen Bestandteil jeder modernen Anwendung geworden, da Sie die Benutzereinbindung für Verbraucherapps und die Nutzung von Unternehmensapps erhöhen.

  • Benachrichtigungshubs stellen eine einfach zu verwende, skalierbare Multiplattform-Pushinfrastruktur bereit, die das Programmieren und Warten des Back-End-Codes der App deutlich reduziert.

  • Benachrichtigungshubs können von jedem Back-End aus (Cloud oder am Standort) verwendet werden, um Pushbenachrichtigungen an alle wichtigen mobilen Plattformen (Windows/Windows Phone, iOS, Android) zu senden.

Weitere Ressourcen

Wie Kunden Notification Hubs verwenden

Tutorials und Anleitungen zu Notification Hubs

Einführungslernprogramme zu Benachrichtigungshubs:

Die relevanten verwalteten .NET-API-Referenzen für Benachrichtigungshubs befinden sich hier:

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications