Notifiche push multi-piattaforma con i notification hub di Azure

Lo sviluppo di applicazioni mobile è ormai all'ordine del giorno. Smartphone e tablet sono così diffusi che nuove app di qualsiasi tipo nascono ogni giorno. Essendo dispositivi mobili, sviluppare per essi comporta alcuni accorgimenti per noi programmatori. Batteria e capacità computazionali sono limitate perciò ogni risorsa che andiamo ad utilizzare dev'essere sfruttata nel miglior modo possibile. Per raggiungere questo obiettivo, le push notification sono un meccanismo adottato in modo molto simile da tutte le piattaforme più conosciute, quali Windows 8, Windows Phone, Apple, Google e Amazon, che ci permettono di avvisare l'utente o di mantenere aggiornate le informazioni senza che la nostra app sia necessariamente attiva e soprattutto evitando di utilizzare processi in background che effettuano un polling continuo di interrogazione dei servizi per sapere se qualcosa è cambiato ed agire di conseguenza.

Insomma, se la nostra app dispone di un backend e di uno strato di servizi, implementare le push notification è un must. Questo compito però, non è affatto facile e spesso scoraggia i programmatori, perché molteplici sono le questioni da gestire. Innanzitutto su ogni piattaforma dobbiamo chiamare le API specifiche per ottenere il canale di push. In genere è un URI sul quale poi mandare il payload contenente la notifica. A questo punto ogni client deve prendere il canale e notificarlo al back end che lo devo memorizzare. Questo comporta la scrittura di un servizio che accetti il canale e lo persista. Successivamente quando vogliamo mandare una notifica push dobbiamo caricare la lista dei canali e ad ognuno mandare il payload con una precisa chiamata REST, che varia a seconda della piattaforma. Quest'ultima operazione è la più delicata, perché la chiamata potrebbe non andare a buon fine per diversi motivi. Il canale potrebbe essere non essere più attivo, oppure fallisce perché non connesso, oppure perché semplicemente il server di push ha dato un errore generico. Dobbiamo quindi effettuare più tentativi di invii, il tutto creando un'infrastruttura che sia scalabile e performante. Se le notifiche da inviare diventano mille o un milione, molto probabilmente non è più sufficiente un solo server e dobbiamo quindi preoccuparci anche della suddivisione dei carichi.

I notification hub di Microsoft Azure risolvono e semplificano tutti questi problemi e addirittura sono gratuiti se utilizzati sotto certi volumi. In questo articolo vediamo come si configura un notification hub, come si utilizza con un'applicazione WinRT (Windows 8 e il prossimo Windows Phone 8.1) e come possiamo inviare le notifiche attraverso questo servizio.

Registrazione dell'hub

Il servizio di notification hub fa parte della piattaforma di service bus contenuta in Microsoft Azure, perciò, come per qualsiasi altro servizio, dobbiamo aprire il portale su http://manage.windowsazure.com/ e creare un nuovo namespace attraverso il pulsante crea. E' sufficiente inserire il nome univoco e come al solito selezionare in quale regione eseguire il namespace e con quale sottoscrizione.

Creato il namespace possiamo proseguire alla creazione dell'hub, il quale identifica l'app. Per ogni hub, infatti, convergono tutte le registrazioni e le configurazioni di ogni rispettivo metodo di invio delle push per ogni rispettiva app. Selezionato il namespace, con il pulsante nuovo possiamo creare un nuovo hub.

Nella figura precedente creiamo un hub per l'app AboutWeather che vogliamo creare. A questo punto siamo già pronti per poter registrare i canali per ogni rispettiva piattaforma.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

Notifiche push multi-piattaforma con i notification hub di Azure 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti