Informazioni su Hub di notificaWhat is Azure Notification Hubs?

Hub di notifica di Azure offre un motore di push di facile uso e con scalabilità orizzontale che consente di inviare notifiche a qualsiasi piattaforma (iOS, Android, Windows, Kindle, Baidu e così via) da qualsiasi back-end (cloud o locale).Azure Notification Hubs provide an easy-to-use and scaled-out push engine that allows you to send notifications to any platform (iOS, Android, Windows, Kindle, Baidu, etc.) from any backend (cloud or on-premises). Hub di notifica funziona perfettamente per scenari aziendali e di consumo.Notification Hubs works great for both enterprise and consumer scenarios. Di seguito vengono forniti alcuni scenari di esempio:Here are a few example scenarios:

  • Invio di notifiche sulle ultime notizie a milioni di utenti con bassa latenza.Send breaking news notifications to millions with low latency.
  • Invio di coupon in base alla posizione a segmenti di utenti interessati.Send location-based coupons to interested user segments.
  • Invio di notifiche sugli eventi a utenti o gruppi per applicazioni di media, sport, finanza e gioco.Send event-related notifications to users or groups for media/sports/finance/gaming applications.
  • Push di contenuti promozionali alle applicazioni per coinvolgere e offrire prodotti ai clienti.Push promotional contents to applications to engage and market to customers.
  • Notifiche agli utenti su eventi aziendali, come nuovi messaggi ed elementi di lavoro.Notify users of enterprise events like new messages and work items.
  • Invio di codici per l'autenticazione a più fattori.Send codes for multi-factor authentication.

Informazioni sulle notifiche pushWhat are push notifications?

Le notifiche push sono una forma di comunicazione tra l'app e l'utente in cui gli utenti delle app per dispositivi mobili vengono informati di determinate notizie desiderate, in genere con una finestra popup o con una finestra di dialogo.Push notifications is a form of app-to-user communication where users of mobile apps are notified of certain desired information, usually in a pop-up or dialog box. Gli utenti possono in genere scegliere di visualizzare o chiudere il messaggio.Users can generally choose to view or dismiss the message. Nel primo caso si aprirà l'applicazione per dispositivi mobili che ha inviato la notifica.Choosing the former opens the mobile application that communicated the notification.

Le notifiche push sono fondamentali per le app di consumo perché aumentano l'interesse e l'uso delle app, mentre per le app aziendali favoriscono la comunicazione di informazioni aziendali aggiornate.Push notifications are vital for consumer apps in increasing app engagement and usage, and for enterprise apps in communicating up-to-date business information. Sono la migliore forma di comunicazione tra app e utente perché consentono un notevole risparmio energetico per i dispositivi mobili, sono flessibili per i mittenti di notifiche e disponibili anche quando le applicazioni corrispondenti non sono attive.It's the best app-to-user communication because it is energy-efficient for mobile devices, flexible for the notifications senders, and available when corresponding applications are not active.

Per altre informazioni sulle notifiche push per alcune piattaforme più comuni, vedere gli argomenti seguenti:For more information on push notifications for a few popular platforms, see the following topics:

Funzionamento delle notifiche pushHow push notifications work?

Le notifiche push vengono recapitate attraverso infrastrutture specifiche della piattaforma denominate Platform Notification System (PNS).Push notifications are delivered through platform-specific infrastructures called Platform Notification Systems (PNSes). Offrono funzionalità push essenziali per il recapito di un messaggio a un dispositivo con handle e non hanno un'interfaccia comune.They offer barebone push functionalities to deliver a message to a device with a provided handle, and have no common interface. Per inviare una notifica a tutti i clienti delle versioni di un'app per Windows, iOS e Android, lo sviluppatore deve usare il servizio APNS (Apple Push Notification Service), il servizio FCM (Firebase Cloud Messaging) e con il servizio WNS (Servizio di notifica di Windows Notification).To send a notification to all customers across the iOS, Android, and Windows versions of an app, the developer must work with Apple Push Notification Service(APNS), Firebase Cloud Messaging(FCM), and Windows Notification Service(WNS).

In particolare, ecco come funziona un push:At a high level, here is how push works:

  1. L'app client decide di voler ricevere una notifica.The client app decides it wants to receive notification. Contatta quindi il PNS corrispondente per recuperare l'handle di push univoco e temporaneo.Hence, it contacts the corresponding PNS to retrieve its unique and temporary push handle. Il tipo di handle dipende dal sistema, ad esempio per WNS si tratta di URI mentre per APNS si tratta di i token.The handle type depends on the system (for example, WNS has URIs while APNS has tokens).
  2. L'app client archivia l'handle nel provder o nel back-end dell'app.The client app stores this handle in the app back-end or provider.
  3. Per inviare una notifica push, il back-end dell'app contatta il PNS usando l'handle per individuare una specifica app client.To send a push notification, the app back-end contacts the PNS using the handle to target a specific client app.
  4. Il PNS inoltra quindi la notifica al dispositivo specificato dall'handle.The PNS forwards the notification to the device specified by the handle.

Flusso di lavoro delle notifiche push

Difficoltà associate alle notifiche pushThe challenges of push notifications

I PNS sono potenti.PNSes are powerful. Richiedono tuttavia un grande impegno da parte degli sviluppatori di app per implementare anche i più comuni scenari di notifica push, come la trasmissione di notifiche push a utenti segmentati.However, they leave much work to the app developer to implement even common push notification scenarios, such as broadcasting push notifications to segmented users.

Il push delle notifiche richiede un'infrastruttura complessa che non è correlata alla logica di business principale dell'applicazione.Pushing notifications requires complex infrastructure that is unrelated to the application's main business logic. Di seguito sono riportate alcune delle difficoltà infrastrutturali:Some of the infrastructural challenges are:

  • Dipendenza dalla piattaformaPlatform dependency
    • Il back-end deve avere una logica dipendente dalla piattaforma complessa e difficile da gestire per inviare notifiche a dispositivi su diverse piattaforme perché i PNS non sono unificati.The backend needs to have complex and hard-to-maintain platform-dependent logic to send notifications to devices on various platforms as PNSes are not unified.
  • RidimensionareScale
    • In base alle linee guida dei sistemi PNS,è necessario aggiornare i token di dispositivo a ogni avvio dell'app.Per PNS guidelines, device tokens must be refreshed upon every app launch. Il back-end si occupa di una grande quantità di traffico e dell'accesso al database solo per mantenere aggiornati i token.The backend is dealing with a large amount of traffic and database access just to keep the tokens up-to-date. Se il numero di dispositivi cresce fino a raggiungere centinaia o milioni di unità, i costi per la creazione e la gestione dell'infrastruttura diventano significativi.When the number of devices grows to hundreds and thousands of millions, the cost of creating and maintaining this infrastructure is massive.
    • La maggior parte dei sistemi PNS non supporta la trasmissione a più dispositivi.Most PNSes do not support broadcast to multiple devices. Una semplice trasmissione a un milione di dispositivi causa un milione di chiamate ai PNS.A simple broadcast to a million devices results in a million calls to the PNSes. La scalabilità di questa quantità di traffico con latenza minima è molto complessa.Scaling this amount of traffic with minimal latency is nontrivial.
  • RoutingRouting
    • Benché i PNS siano un modo per inviare messaggi ai dispositivi, la maggior parte delle notifiche app sono destinate a utenti o a gruppi di interesse.Though PNSes provide a way to send messages to devices, most apps notifications are targeted at users or interest groups. Il back-end deve mantenere un registro per associare i dispositivi ai gruppi, agli utenti, alle proprietà e così via. Questo aumento del carico di lavoro contribuisce inevitabilmente ad aumentare i tempi di produzione e i costi di manutenzione di un'app.The backend must maintain a registry to associate devices with interest groups, users, properties, etc. This overhead adds to the time to market and maintenance costs of an app.

Vantaggi di Hub di notifica di AzureWhy use Azure Notification Hubs?

Hub di notifica elimina tutte le complessità associate al push delle notifiche dal back-end dell'app.Notification Hubs eliminates all complexities associated with pushing notifications on your own from your app back-end. La sua infrastruttura di notifiche push multipiattaforma e con scalabilità orizzontale riduce la codifica correlata al push e semplifica il back-end.Its multi-platform, scaled-out push notification infrastructure reduces push-related coding and simplifies your backend. Con Hub di notifica, i dispositivi devono eseguire soltanto la registrazione dei propri handle PNS su un hub, mentre il back-end è responsabile dell'invio di messaggi a utenti o gruppi di interesse, come mostrato nella figura seguente:With Notification Hubs, devices are merely responsible for registering their PNS handles with a hub, while the backend sends messages to users or interest groups, as shown in the following figure:

Diagramma di Hub di notifica

Hub di notifica è un motore di push pronto all'uso e presenta i vantaggi seguenti:Notification hubs is your ready-to-use push engine with the following advantages:

  • MultipiattaformaCross platforms
    • Supporta tutte le principali piattaforme push tra cui iOS, Android, Window, Kindle e Baidu.Support for all major push platforms including iOS, Android, Windows, and Kindle and Baidu.
    • È dotato di un'interfaccia comune per effettuare il push a tutte le piattaforme in formati specifici o indipendenti dalla piattaforma senza un processo specifico per la piattaforma.A common interface to push to all platforms in platform-specific or platform-independent formats with no platform-specific work.
    • Consente di gestire l'handle di dispositivo in un solo posto.Device handle management in one place.
  • Multi back-endCross backends
    • Cloud o in localeCloud or on-premises
    • .NET, Node. js, Java e così via..NET, Node.js, Java, etc.
  • Insieme completo di modelli di recapitoRich set of delivery patterns
    • Trasmissione a una o più piattaforme: è possibile trasmettere immediatamente a milioni di dispositivi in più piattaforme con una singola chiamata API.Broadcast to one or multiple platforms: You can instantly broadcast to millions of devices across platforms with a single API call.
    • Push al dispositivo: è possibile inviare notifiche ai singoli dispositivi.Push to device: You can target notifications to individual devices.
    • Push all'utente: le funzioni tag e modelli consentono di raggiungere tutti i dispositivi multipiattaforma di un utente.Push to user: Tags and templates features help you reach all cross-platform devices of a user.
    • Push a segmenti con tag dinamico: la funzione tag consente di segmentare i dispositivi e di inviarvi push in base alle esigenze, che si stia eseguendo l'invio a un segmento o a un'espressione di segmenti (ad esempio active AND lives in Seattle NOT new user).Push to segment with dynamic tags: Tags feature helps you segment devices and push to them according to your needs, whether you are sending to one segment or an expression of segments (For example, active AND lives in Seattle NOT new user). Anziché essere limitati a pubblicazione-sottoscrizione, è possibile aggiornare i tag del dispositivo ovunque e in qualsiasi momento.Instead of being restricted to pub-sub, you can update device tags anywhere and anytime.
    • Push localizzato: la funzione modelli consente di ottenere la localizzazione senza influire sul codice di back-end.Localized push: Templates feature helps achieve localization without affecting backend code.
    • Push non interattivo: consente di abilitare il modello push-to-pull inviando notifiche automatiche ai dispositivi, attivandoli in modo da completare determinati pull o azioni.Silent push: You can enable the push-to-pull pattern by sending silent notifications to devices and triggering them to complete certain pulls or actions.
    • Push pianificato: è possibile pianificare l'invio delle notifiche in qualsiasi momento.Scheduled push: You can schedule to send out notifications anytime.
    • Push diretto: è possibile ignorare la registrazione dei dispositivi nel servizio Hub di notifica ed eseguire direttamente push in batch per un elenco di handle di dispositivo.Direct push: You can skip registering devices with the Notification Hubs service and directly batch push to a list of device handles.
    • Push personalizzati: le variabili push del dispositivo consentono di inviare notifiche push personalizzate specifiche per il dispositivo con coppie chiave-valore personalizzate.Personalized push: Device push variables helps you send device-specific personalized push notifications with customized key-value pairs.
  • Telemetria avanzataRich telemetry
    • Dati di telemetria generali di push, dispositivi, errori e operazioni sono disponibili nel portale di Azure e a livello di codice.General push, device, error, and operation telemetry are available in the Azure portal and programmatically.
    • La telemetria per messaggio tiene traccia di ogni push dalla chiamata della richiesta iniziale al corretto invio di push in batch da parte del servizio Hub di notifica.Per Message Telemetry tracks each push from your initial request call to the Notification Hubs service successfully batching the pushes out.
    • Il feedback di Platform Notification System comunica tutto il feedback di Platform Notification System per facilitare il debug.Platform Notification System Feedback communicates all feedback from Platform Notification Systems to assist in debugging.
  • ScalabilitàScalability
    • Invia messaggi veloci a milioni di dispositivi senza riprogettazione o partizionamento orizzontale del dispositivo.Send fast messages to millions of devices without rearchitecting or device sharding.
  • SicurezzaSecurity
    • Firma di accesso condiviso (SAS) o autenticazione federata.Shared Access Secret (SAS) or federated authentication.

Integrazione con le app per dispositivi mobili del servizio appIntegration with App Service Mobile Apps

Per favorire un'esperienza lineare e uniforme nei servizi di Azure, le app per dispositivi mobili del servizio app comprendono il supporto predefinito per le notifiche push mediante Hub di notifica.To facilitate a seamless and unifying experience across Azure services, App Service Mobile Apps has built-in support for push notifications using Notification Hubs. app per dispositivi mobili del servizio app offrono una piattaforma di sviluppo di applicazioni mobili estremamente scalabile e disponibile a livello globale per sviluppatori aziendali e integratori di sistemi, che fornisce un set completo di funzionalità per gli sviluppatori di soluzioni per dispositivi mobili.App Service Mobile Apps offers a highly scalable, globally available mobile application development platform for Enterprise Developers and System Integrators that brings a rich set of capabilities to mobile developers.

Gli sviluppatori di app per dispositivi mobili possono usare gli hub di notifica con il seguente flusso di lavoro:Mobile Apps developers can utilize Notification Hubs with the following workflow:

  1. Recuperare la gestione del dispositivo PNSRetrieve device PNS handle
  2. Registrare il dispositivo con gli Hub di notifica mediante il pratico API Register SDK client delle app per dispositivi mobiliRegister device with Notification Hubs through convenient Mobile Apps Client SDK register API

    Nota

    Si noti che le app per dispositivi mobili consentono di eliminare tutti i tag nelle registrazioni per motivi di sicurezza.Note that Mobile Apps strips away all tags on registrations for security purposes. Usare le hub di notifica dal back-end direttamente per associare tag ai dispositivi.Work with Notification Hubs from your backend directly to associate tags with devices.

  3. Invio di notifiche dal back-end dell'app con hub di notificaSend notifications from your app backend with Notification Hubs

Ecco alcuni vantaggi per gli sviluppatori inclusi in questa integrazione:Here are some conveniences brought to developers with this integration:

  • SDK client per app per dispositivi mobili: questi SDK multipiattaforma forniscono API semplici per la registrazione e per comunicare automaticamente con l'Hub di notifica collegato all'app per dispositivi mobili.Mobile Apps Client SDKs: These multi-platform SDKs provide simple APIs for registration and talk to the notification hub linked up with the mobile app automatically. Gli sviluppatori non hanno bisogno di cercare tra le credenziali di Hub di notifica e lavorare con un servizio aggiuntivo.Developers do not need to dig through Notification Hubs credentials and work with an additional service.
    • Push all'utente: gli SDK assegnano automaticamente tag al dispositivo specificato con l'ID utente autenticato di App per dispositivi mobili per abilitare il push all'utente.Push to user: The SDKs automatically tag the given device with Mobile Apps authenticated User ID to enable push to user scenario.
    • Push al dispositivo: l'ID di installazione di App per dispositivi mobili viene usato automaticamente dagli SDK come GUID per la registrazione in Hub di notifica. In questo modo gli sviluppatori non sono costretti a mantenere più GUID di servizio.Push to device: The SDKs automatically use the Mobile Apps Installation ID as GUID to register with Notification Hubs, saving developers the trouble of maintaining multiple service GUIDs.
  • Modello di installazione: le app per dispositivi mobili funzionano con il modello di push più recente degli Hub di notifica per rappresentare tutte le proprietà di push associate a un dispositivo in un'installazione JSON che sia in linea con i servizi di notifica push e che sia facile da usare.Installation model: Mobile Apps works with Notification Hubs' latest push model to represent all push properties associated with a device in a JSON Installation that aligns with Push Notification Services and is easy to use.
  • Flessibilità: gli sviluppatori possono scegliere di usare direttamente Hub di notifica in qualsiasi momento, anche dopo l'integrazione.Flexibility: Developers can always choose to work with Notification Hubs directly even with the integration in place.
  • Esperienza integrata nel Portale di Azure: il push come funzionalità è rappresentato visivamente nelle app per dispositivi mobili e gli sviluppatori possono utilizzare facilmente l'Hub di notifica associato tramite le App per dispositivi mobili.Integrated experience in Azure portal: Push as a capability is represented visually in Mobile Apps and developers can easily work with the associated notification hub through Mobile Apps.

Passaggi successiviNext steps

Introduzione alla creazione e all'uso di un hub di notifica con l'esercitazione Eseguire il push delle notifiche alle applicazioni per dispositivi mobili.Get started with creating and using a notification hub by following the Tutorial: Push notifications to mobile applications. [0]: ./media/notification-hubs-overview/registration-diagram.png [1]: ./media/notification-hubs-overview/notification-hub-diagram.png [Uso di Hub di notifica da parte dei clienti]: http://azure.microsoft.com/services/notification-hubs [Esercitazioni e guide su Hub di notifica]: http://azure.microsoft.com/documentation/services/notification-hubs [iOS]: http://azure.microsoft.com/documentation/articles/notification-hubs-ios-get-started [Android]: http://azure.microsoft.com/documentation/articles/notification-hubs-android-get-started [Windows Universal]: http://azure.microsoft.com/documentation/articles/notification-hubs-windows-store-dotnet-get-started [Windows Phone]: http://azure.microsoft.com/documentation/articles/notification-hubs-windows-phone-get-started [Kindle]: http://azure.microsoft.com/documentation/articles/notification-hubs-kindle-get-started [Xamarin.iOS]: http://azure.microsoft.com/documentation/articles/partner-xamarin-notification-hubs-ios-get-started [Xamarin.Android]: http://azure.microsoft.com/documentation/articles/partner-xamarin-notification-hubs-android-get-started [Microsoft.WindowsAzure.Messaging.NotificationHub]: http://msdn.microsoft.com/library/microsoft.windowsazure.messaging.notificationhub.aspx [Microsoft.ServiceBus.Notifications]: http://msdn.microsoft.com/library/microsoft.servicebus.notifications.aspx [App per dispositivi mobili del servizio app]: https://azure.microsoft.com/documentation/articles/app-service-mobile-value-prop/ [modelli]: notification-hubs-templates-cross-platform-push-messages.md [portale di Azure]: https://portal.azure.com [tag]: (http://msdn.microsoft.com/library/azure/dn530749.aspx)