Panoramica dell'Hub di notifica

Aggiornamento: giugno 2015

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. Mediante un'unica chiamata all'API, è possibile raggiungere utenti singoli o interi segmenti di destinatari contenenti milioni di utenti, indipendentemente dal dispositivo usato.

È possibile usare gli Hub di notifica per scenari sia aziendali che consumer. Ad esempio:

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

  • Inviare coupon basati sulla posizione a segmenti di utenti.

  • Inviare notifiche di eventi a utenti o gruppi per applicazioni sportive/finanziarie/di gioco.

  • Inviare notifiche di eventi aziendali, come nuovi messaggi/posta elettronica, e clienti potenziali.

  • Inviare password monouso richieste per Multi-Factor Authentication.

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 i servizi WNS, è un URI o un "canale di notifica", mentre per il servizio APNS è 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.

Hub di notifica

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 del sistema PNS, i token di dispositivo devono essere aggiornati ogni volta che viene avviata l'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 PNS forniscono 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.

Gli Hub di notifica semplificano notevolmente l'attività degli sviluppatori, evitando la necessita di gestire le difficoltà associate alle notifiche push. Gli Hub di notifica usano infatti un'infrastruttura di notifiche push scalabile orizzontalmente e multipiattaforma, in grado di ridurre considerevolmente il codice specifico del push eseguito nel back-end dell'app. Implementano inoltre 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 interessati, come illustrato nella figura seguente:

Hub di notifica

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 degli handle di dispositivo. Gli Hub di notifica mantengono 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. Disponibilità 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: trasmissione quasi simultanea a milioni di dispositivi con una sola chiamata all'API.

    • Unicast/Multicast: push a tag che rappresentano singoli utenti, con tutti i relativi dispositivi, o a un gruppo più ampio, ad esempio fattori di forma distinti, come tablet piuttosto che telefoni.

    • Segmentazione: push a segmenti complessi definiti da espressioni 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. Autenticazione SAS (Shared Access Secret) o federata.

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

  • 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).

Mostra: