Översikt över Notification Hubs

Azure Notification Hubs tillhandahåller en lätthanterlig infrastruktur som gör att du kan skicka mobila push-meddelanden från valfri serverdel (i molnet eller lokalt) till valfri mobilplattform.

Med Notification Hubs kan du enkelt skicka plattformsoberoende, personliga push-meddelanden och abstrahera information om de olika plattformsspecifika meddelandesystemen (PNS). Med ett enda API-anrop kan du rikta in dig på enskilda användare eller hela målgruppssegment som innehåller miljontals användare, oavsett vad de använder för enheter.

Du kan använda Notification Hubs för både företags- och konsumentscenarier. Exempel:

  • Skicka meddelanden med de senaste nyheterna till miljoner användare med kort svarstid (Notification Hubs ger stöd för Bing-appar som finns förinstallerade i alla Windows-operativsystem och i Windows Phone-enheter).

  • Skicka platsbaserade kuponger till användarsegment.

  • Skicka händelsemeddelanden till användare eller grupper med sport-/ekonomi-/spelappar.

  • Meddela användare om företagshändelser, till exempel nya meddelanden/mejl och säljleads.

  • Skicka engångslösenord som krävs för Multi-Factor Authentication.

Vad är push-meddelanden?

Smartphones och surfplattor kan "meddela" användare när en händelse har inträffat. I Windows Store och Windows Phone-program resulterar meddelandet i ett popup-meddelande (ett lägeslöst fönster visas överst på skärmen) eller med paneluppdateringar på Startskärmen. På Android- och Apple-iOS-enheter visas meddelanden på samma sätt grupperade i en meddelandepanel som är lättillgänglig överst på skärmen.

Push-meddelanden hjälper appserverdelar att visa ny information på mobila enheter även om appen på enheten inte är aktiv.

Push-meddelanden levereras via plattformsspecifika infrastrukturer som kallas för plattformsspecifika meddelandesystem (Platform Notification Systems, PNS). En PNS erbjuder barebones-funktioner (dvs. inget stöd för sändning eller anpassning) och de plattformsspecifika PNS:erna har inget gemensamt gränssnitt. För att till exempel skicka ett meddelande till en Windows Store-app måste en utvecklare kontakta WNS (Windows Notification Service). Om du vill skicka ett meddelande till en iOS enhet kontaktar samma utvecklare APNS (Apple Push Notification Service) och skickar meddelandet en andra gång. Processen är liknande för Windows Phone 8 och Android appar.

På hög nivå följer alla plattformsaviseringssystem samma mönster:

  1. Klientprogrammet kontaktar PNS för att hämta dess handtag. Handtagstypen varierar beroende på vilket system som används. För WNS är det en URI eller "meddelandekanal". För APNS är det en token.

  2. Klientprogrammet lagrar handtaget i appens serverdel för senare användning. För WNS är serverdelen vanligtvis en molntjänst. För Apple kallas systemet för en provider.

  3. För att skicka ett push-meddelande kontaktar appens serverdel PNS med handtaget för att rikta in sig på en instans av ett specifikt klientprogram.

  4. PNS-systemet vidarebefordrar meddelandet till den enhet som anges av handtaget.

Notification Hubs

Infrastrukturen som krävs för att implementera det här flödet är ganska komplex och är huvudsakligen orelaterad till appens huvudsakliga affärslogik. Några av utmaningarna med att bygga en push-infrastruktur av typen på begäran är:

  • Plattformsberoende. För att kunna skicka meddelanden till enheter på olika plattformar måste du koda flera gränssnitt i serverdelen. Informationen på låg nivå skiljer sig inte bara, utan även presentationen av meddelandet (panel, popup-meddelande eller märke) är plattformsberoende. Dessa skillnader leder till komplex och svårbehållen serverdelskod.

  • Skala. Skalningen av denna infrastruktur består av två delar:

    • Enligt PNS-riktlinjerna måste enhetstoken uppdateras varje gång appen startas. Detta leder till en stor mängd trafik (och därmed databasåtkomst) bara för att hålla enhetstoken uppdaterade. När antalet enheter växer (möjligen till miljoner) är kostnaden för att skapa och underhålla den här infrastrukturen oprövade.

    • De flesta PNS stöder inte sändning till flera enheter. Därför resulterar en sändning till miljontals enheter i miljontals anrop till PNS:erna. Det är inte svårt att skala dessa begäranden eftersom apputvecklare vanligtvis vill hålla den totala svarstiden låg (till exempel bör den sista enheten som tar emot meddelandet inte ta emot meddelandet 30 minuter efter att meddelandena har skickats, eftersom det i många fall skulle motverka syftet med push-meddelanden).

  • Routing. PNS-system ger dig ett sätt att skicka meddelanden till en enhet. I de flesta appar riktas dock meddelanden mot användare och/eller intressegrupper (till exempel alla anställda som har tilldelats ett visst kundkonto). Därför måste appens serverdel underhålla ett register som associerar intressegrupper med enhetstoken för att dirigera meddelandena till rätt enheter. Den här kostnaden ökar den totala tiden till marknaden och underhållskostnader för ett program.

  • Övervakning och telemetri. Det är inte helt enkelt att spåra och aggregera resultatet av miljontals meddelanden, och det är vanligtvis en viktig komponent i alla lösningar som använder push-meddelanden.

Använda Notification Hubs

Notification Hubs eliminerar en stor komplexitet: du behöver inte hantera utmaningarna med push-meddelanden. Du kan i stället använda en Notification Hub. Notification Hubs använder en komplett multiplattform, med en utskalad infrastruktur för push-meddelanden, och ger en betydligt mindre push-specifik kod som körs i appens serverdel. Notification Hubs har alla funktioner som en push-infrastruktur behöver. Enheterna används enbart för att registrera PNS-handtag. Det är serverdelen som sköter sändandet av plattformsoberoende meddelanden till användare eller intressegrupper, så som visas på följande bild:

Notification Hubs

Notification Hubs tillhandahåller en push-infrastruktur med följande fördelar:

  • Flera plattformar:

    • Stöd för alla större mobila plattformar (Windows/Windows Phone, iOS, Android).

    • Inga plattformsspecifika protokoll. Appen kommunicerar bara med Notification Hubs.

    • Hantering av enhetshandtag. Notification Hubs underhåller handtagsregistret och feedbacken från PNS-systemen.

  • Fungerar med valfri serverdel. Moln eller lokalt, .NET, PHP, Java, Node osv.

  • Skala. Notification Hubs skalas till miljontals enheter utan behov av omarkitektur eller horisontell partitionering. Tillgänglig i alla regioner.

  • Omfattande uppsättning leveransmönster. Associera enheter med taggar som representerar logiska användare eller intressegrupper.

    • Sändning: Gör att du kan utföra en nästan simultan sändning till miljoner enheter med ett enda API-anrop.

    • Unicast/Multicast: push-överföring till taggar som representerar enskilda användare, inklusive alla deras enheter; eller bredare grupp. till exempel separata formfaktorer (surfplatta kontra telefon).

    • Segmentering: push-överföring till komplext segment som definieras av tagguttryck (till exempel enheter i New York som följer Yankees).

  • Anpassning. Varje enhet kan ha en eller flera mallar för att uppnå lokalisering och anpassning per enhet utan att påverka serverdelskoden.

  • Säkerhet. SAS (Shared Access Secret) eller federerad autentisering.

  • Omfattande telemetri. Tillgänglig i portalen och programmatiskt.

Sammanfattning

  • Push-meddelanden har blivit en integrerad del av alla moderna program, eftersom de ökar användarengagemanget för konsumentappar och verktyget för företagsappar.

  • Notification Hubs tillhandahåller en lätthanterad, utskalad push-infrastruktur med flera plattformar, vilket avsevärt minskar kodningen och underhållet av appens serverdelskod.

  • Notification Hubs kan användas från valfri serverdel (moln eller lokalt) för att skicka push-meddelanden till alla större mobila plattformar (Windows/Windows Phone, iOS Android).

Ytterligare resurser

Hur kunder använder Notification Hubs

Självstudiekurser och guider om Notification Hubs

Självstudier för att komma igång med Notification Hubs:

Relevanta .NET-hanterade API-referenser för meddelandehubbar finns här:

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications