Condividi tramite


Panoramica dell'Hub di notifica

Gli Hub di notifica di Azure offrono un'infrastruttura intuitiva che consente di inviare notifiche push da qualsiasi back-end (nel cloud o in locale) a qualsiasi piattaforma mobile.

Con gli Hub di notifica è possibile inviare facilmente notifiche push personalizzate e multipiattaforma, eliminando i dettagli dei diversi sistemi di notifica tramite piattaforma. Con una singola chiamata di API, è possibile indirizzarsi a singoli utenti o interi segmenti di destinatari contenenti milioni di utenti, in tutti i dispositivi.

È possibile utilizzare Hub di notifica per scenari aziendali e di consumo. Ad esempio:

  • Inviare notifiche relative alle ultime notizie a milioni di utenti con bassa latenza (Hub di notifica alimenta applicazioni Bing preinstallate in tutti i dispositivi Windows e Windows Phone).

  • Inviare coupon basati sulla posizione a segmenti di utenti.

  • Inviare le notifiche degli eventi a utenti o gruppi per applicazioni di sport, finanza e gioco.

  • Notificare agli utenti eventi aziendali, come nuovi messaggi/posta elettronica e clienti potenziali.

  • Inviare password monouso richieste per Multi-Factor Authentication.

Cosa sono le notifiche push?

Smartphone e tablet sono in grado di "notificare" agli utenti il verificarsi di un evento. Nelle applicazioni di Windows Store e Windows Phone, la notifica produce un avviso popup (una finestra non modale visualizzata nella parte superiore della schermata) o aggiornamenti dei riquadri sulla schermata Start. Analogamente, nei dispositivi Android e Apple iOS, le notifiche appaiono raggruppate in un apposito riquadro facilmente accessibile dalla parte superiore della schermata.

Le notifiche push consentono ai back-end delle app di visualizzare informazioni aggiornate sui dispositivi mobili, anche quando l'app non è attiva nel dispositivo.

Le notifiche push vengono recapitate attraverso infrastrutture specifiche della piattaforma chiamate sistemi di notifica tramite piattaforma (PNS, Platform Notification System). Un sistema PNS offre funzioni limitate (non fornisce, ad esempio, il supporto per la trasmissione o la personalizzazione) e i PNS specifici della piattaforma non hanno un'interfaccia comune. Per inviare una notifica a un'app di Windows Store, ad esempio, uno sviluppatore deve contattare i Servizi notifica Push Windows (WNS, Windows Push Notification Service). Per inviare una notifica a un dispositivo iOS, lo stesso sviluppatore deve contattare il servizio di notifiche push Apple (APNS, Apple Push Notification Service) e inviare nuovamente il messaggio. Il processo è simile per le app per Windows Phone 8 e Android.

A livello generale, i sistemi di notifica tramite piattaforma seguono tutti lo stesso modello:

  1. L'applicazione client contatta il sistema PNS per recuperare il proprio handle. Il tipo di handle dipende dal sistema. Per WNS, si tratta di un URI o di un "canale di notifica". Per il servizio APN, si tratta di un token.

  2. L'applicazione client archivia l'handle nel back-end dell'app per un utilizzo successivo. Per i servizi WNS, il back-end è generalmente un servizio cloud. Per i servizi Apple, il sistema prende il nome di provider.

  3. Per inviare una notifica push, il back-end dell'app contatta il PNS usando l'handle per individuare un'istanza di una specifica applicazione client.

  4. Il PNS inoltra quindi la notifica al dispositivo specificato dall'handle.

Notification Hubs

L'infrastruttura necessaria per implementare questo flusso è relativamente complessa e piuttosto distante dalla logica di business di base dell'app. Di seguito sono illustrate alcune delle principali difficoltà associate alla creazione di un'infrastruttura push su richiesta:

  • Dipendenza dalla piattaforma. Per inviare notifiche a dispositivi basati su piattaforme diverse, è necessario scrivere codice per più interfacce nel back-end. Non solo, infatti, i dettagli di livello base sono diversi, ma la presentazione stessa della notifica (riquadro, avviso popup o badge) dipende dalla piattaforma. Queste differenze determinano inevitabilmente un codice di back-end complesso e difficile da gestire.

  • Scalabilità. Il ridimensionamento di questa infrastruttura deve tenere in considerazione due aspetti:

    • In base alle linee guida dei sistemi PNS,è necessario aggiornare i token di dispositivo a ogni avvio dell'app. Questo comporta la produzione di un volume elevato di traffico (e del conseguente accesso al database) solo per tenere aggiornati i token di dispositivo. Se il numero di dispositivi cresce (fino a raggiungere milioni di unità), i costi per la creazione e la gestione dell'infrastruttura diventano piuttosto significativi.

    • La maggior parte dei sistemi PNS non supporta la trasmissione a più dispositivi. Per la trasmissione a milioni di dispositivi, è quindi necessario effettuare milioni di chiamate ai sistemi PNS. La corretta scalabilità di queste richieste, pertanto, è un obiettivo difficile da raggiungere, perché in genere gli sviluppatori vogliono tenere bassa la latenza totale (l'ultimo dispositivo a cui viene inviato il messaggio, ad esempio, dovrebbe ricevere la notifica non più di 30 minuti dopo l'invio della prima notifica, perché altrimenti verrebbe annullato il presupposto essenziale delle notifiche push).

  • Routing. I sistemi PNS offrono un modo per inviare un messaggio a un dispositivo. Nella maggior parte delle app, tuttavia, le notifiche sono destinate a utenti e/o gruppi interessati (ad esempio, tutti i dipendenti assegnati a un determinato account cliente). Il back-end dell'app deve quindi mantenere un registro in cui i vari gruppi interessati siano associati ai relativi token di dispositivo, in modo che le notifiche vengano indirizzate ai dispositivi corretti. Questo sovraccarico contribuisce inevitabilmente ad aumentare i tempi di produzione e i costi di manutenzione di un'applicazione.

  • Monitoraggio e telemetria. Tenere traccia e aggregare i risultati di milioni di notifiche non è semplice ed è normalmente un processo essenziale di qualsiasi soluzione che usi notifiche push.

Uso degli Hub di notifica

Hub di notifica elimina una grande complessità: non è necessario gestire le sfide delle notifiche push. se si utilizzano gli Hub di notifica. Usano un'infrastruttura completa per notifiche push con scalabilità orizzontale e multipiattaforma, in grado di ridurre considerevolmente il codice specifico del push eseguito nel back-end dell'app. Gli Hub di notifica implementano tutte le funzionalità di un'infrastruttura push. I dispositivi devono eseguire soltanto la registrazione dei propri handle PNS, mentre il back-end è responsabile dell'invio di messaggi indipendenti dalla piattaforma a utenti o gruppi di interesse.

Notification Hubs

Gli Hub di notifica assicurano un'infrastruttura push che offre i vantaggi seguenti:

  • Supporto multipiattaforma:

    • supporto di tutte le principali piattaforme mobili (Windows/Windows Phone, iOS, Android).

    • Nessun protocollo specifico della piattaforma. L'applicazione comunica solo con gli hub di notifica.

    • Gestione dell'handle di dispositivo. Hub di notifica gestisce il registro degli handle e il feedback proveniente dai PNS.

  • Compatibilità con qualsiasi back-end. Cloud o locale, .NET, PHP, Java, Node e così via.

  • Scalabilità. Gli Hub di notifica offrono la scalabilità per inviare notifiche a milioni di dispositivi senza la necessità di partizionamento o riprogettazione dell'architettura. Disponibile in tutte le aree.

  • Serie completa di modelli di distribuzione. I dispositivi possono essere associati a tag che rappresentano utenti o gruppi di interesse.

    • Trasmissione: consente la trasmissione quasi simultanea a milioni di dispositivi con una singola chiamata API.

    • Unicast/Multicast: push ai tag che rappresentano singoli utenti, inclusi tutti i dispositivi; o gruppo più ampio; ad esempio, fattori di forma separati (tablet e telefono).

    • Segmentazione: push in un segmento complesso definito dalle espressioni di tag (ad esempio, dispositivi a New York che seguono gli Yankees).

  • Personalizzazione. Ogni dispositivo può avere uno o più modelli, per una localizzazione e una personalizzazione basate sul dispositivo, che non incidono sul codice di back-end.

  • Sicurezza. Firma di accesso condiviso (SAS) o autenticazione federata.

  • Telemetria avanzata. Disponibile nel portale e a livello di codice.

Riepilogo

  • Le notifiche push costituiscono un elemento essenziale delle moderne applicazioni, perché aumentano il coinvolgimento dell'utente con le app consumer e l'utilità delle app aziendali.

  • Gli Hub di notifica forniscono un'infrastruttura push intuitiva, multipiattaforma e scalabile orizzontalmente, che consente di ridurre notevolmente il lavoro di scrittura e gestione del codice del back-end dell'app.

  • Possono inoltre essere usati da qualsiasi back-end (cloud o locale) per inviare notifiche push a tutte le principali piattaforme mobili (Windows/Windows Phone, iOS, Android).

Risorse aggiuntive

Uso di Hub di notifica da parte dei clienti

Esercitazioni e guide su Hub di notifica

Introduzione ad Hub di notifica:

Di seguito sono riportati i riferimenti pertinenti per l'API gestita .NET relativa agli hub di notifica:

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications