Le app iOS (le applicazioni mobile in generale) spesso sfruttano il client-server, sfruttando datacenter remoti per archiviare le informazioni e richiamandole all'occorrenza tramite chiamate web service. I vantaggi di questa architettura sono molteplici: dalla condivisione di risorse tra gli utenti allo spostamento di attività computazionali (anche complesse) su server dedicati.
Se a questo sommiamo una diffusione dei servizi cloud che spinge le maggiori società informatiche (come Apple, Google e Microsoft) a rilasciare le proprie le piattaforme cloud, diventa evidente la connessione tra le due tecnologie.
In particolare, lo scopo di questa guida è quello di fornire gli strumenti necessari a sviluppare un'applicazione iOS che effettui delle chiamate a Windows Azure, la piattaforma di cloud computing di Microsoft.
Questa piattaforma ci consentirà di creare servizi web utilizzando semplicemente l'interfaccia web messa a disposizione (non dovremo scrivere linee di codice, salvo in rari casi) e di creare una struttura dati di tipo relazionale (che possiamo vedere come un normalissimo database) per effettuare le più comuni operazioni quali inserimento, modifica, cancellazione e lettura.
Vedremo inoltre come, con semplice codice JavaScript, sia possibile aggiungere dei controlli di validazione sulle richieste che vengono effettuate dai client.
Registrazione
Per poter utilizzare le funzionalità offerte da Windows Azure è necessario creare un account; Microsoft consente sia la registrazione di un account gratuito (ovviamente con delle limitazioni) sia un account a pagamento.
Ovviamente per gli scopi di questo tutorial possiamo registrare un account gratuito; se possediamo già un indirizzo mail di Microsoft (live o hotmail) sarà sufficiente effettuare il login su questa pagina. Una volta entrati apparirà la seguente schermata che ci consentirà di attivare l'account Windows Azure:
Procediamo compilando i campi relativi alle nostre informazioni personali dopodiché inseriamo un numero di telefono al quale verrà inviato un codice di conferma e clicchiamo su "invia messaggi di testo".
A questo punto l'interfaccia si aggiornerà mostrando un nuovo campo di testo per l'immissione del codice ricevuto tramite messaggio.
Inseriamo il codice, clicchiamo sulla freccia in basso a destra e, se il codice è corretto, apparirà un form per l'inserimento dei dati di una carta di credito:
L'inserimento di questi dati è per garanzia di identità ed è obbligatorio per poter utilizzare le funzionalità di Windows Azure anche se utilizziamo un account gratuito.
Per terminare la registrazione accettiamo le condizioni di utilizzo e clicchiamo su "Iscriviti".
Creare un servizio mobile
Ora siamo pronti per creare il primo servizio che poi interrogheremo dalla nostra applicazione iOS. Andiamo sul pannello di amministrazione del nostro account Windows Azure:
Nella parte sinistra dell'interfaccia troviamo tutti i servizi che possiamo utilizzare, ma per il momento focalizziamo l'attenzione sui servizi mobili
e clicchiamo su crea nuovo servizio mobile. Si aprirà la seguente schermata nella quale verrà richiesto l'inserimento di alcuni dati:
In particolare:
Campo | Descrizione |
---|---|
URL | indica il nome del sottodominio per il servizio mobile che vogliamo creare |
Database | viene richiesto di selezionare un database SQL. Dato che stiamo creando il nostro primo servizio mobile selezioniamo l'opzione create a new SQL database |
Nel nostro caso creiamo il servizio articles, perché prevediamo di memorizzare e gestire articoli.
Terminata la compilazione del form clicchiamo sulla freccia in basso a destra e compiliamo il nuovo form che ci verrà mostrato come segue:
Analizziamo i campi del form più rilevanti:
Campo | Descrizione |
---|---|
Nome | Il nome che vogliamo dare al nostro database |
Server | Anche in questo caso, dato che stiamo creando il primo servizio mobile, selezioniamo l'opzione nuovo server di database SQL |
Nome di accesso e Password | inseriamo uno username e una password per poter accedere al database |
A questo punto clicchiamo sul check
in basso a destra e dopo qualche secondo, la pagina relativa ai servizi mobili del nostro account Windows Azure, mostrerà le informazioni relative ai servizi presenti:
La procedura di creazione del servizio consente di realizzare esclusivamente l'infrastruttura del servizio stesso, ovvero abbiamo creato un punto di comunicazione tra il server (sul quale è presente il database che conterrà tutti dati) e l'applicazione iOS che chiederà di reperire i dati salvati proprio sul server.
Vedremo poi come aggiungere una tabella nel database dal quale il servizio attingerà i dati che verranno poi inviati all'applicazione iOS.
Windows Azure: pannello di amministrazione di un servizio mobile
Una volta creato il servizio Mobile che invocheremo dalla nostra applicazione iOS, dobbiamo collegare ad esso la struttura dati che consenta di salvare in maniera permanente le informazioni che vogliamo inserire.
Andiamo dunque nel managment portal
e selezioniamo la voce di menu servizi mobili
. La pagina mostrerà solo il servizio mobile articles
, che abbiamo creato. È sufficiente cliccare sulla label articles
per accedere al dettaglio del servizio mobile selezionato. La pagina mostrata sarà la seguente:
Il menu che troviamo in alto nella pagina ci permetterà di configurare il nostro servizio mobile secondo le nostre esigenze. Concentriamoci sulle prime due voci del menu: dashboard e dati.
Cliccando sulla voce dashboard si accede ad un vero e proprio riepilogo sull'utilizzo del servizio mobile selezionato, come possiamo vedere nello screenshot seguente:
Grazie a questa vista possiamo tenere sotto controllo l'utilizzo del servizio mobile, i dati in uscita, l'utilizzo della memoria e molto altro. Ovviamente i contatori relativi al nostro servizio sono tutti valorizzati a zero dato che non abbiamo fatto nessuna chiamata e quindi non c'è ancora stato uno scambio di dati tra applicazione e servizio.
Fatta una breve panoramica sulla dashboard, che approfondiremo una volta effettuati i primi scambi dati tra servizio e applicazione, clicchiamo sulla voce del menu dati, che mostrerà la lista di strutture dati, in particolare tabelle, che il servizio mobile utilizza per effettuare la memorizzazione dei dati:
Come possiamo vedere dallo screenshot ci viene notificato che non abbiamo ancora creato nessuna tabella per questo servizio.
Creare una tabella da associare al servizio mobile
È giunto il momento di creare la nostra prima tabella. Clicchiamo sul bottone Aggiungi una tabella
; verrà mostrata la seguente interfaccia:
Come si vede, la maschera è divisa in due parti:
- l'inserimento del nome della tabella, nel nostro caso scriviamo "articledata"
- l'assegnamento dei vari permessi in relazione alle operazioni eseguibili sulla tabella (inserimento, aggiornamento, cancellazione e lettura). Ovviamente, per ognuna di queste operazioni, è possibile selezionare permessi differenti a seconda della criticità dell'operazione.
Facciamo una breve panoramica sui permessi assegnabili alle singole operazioni:
Permesso | Descrizione |
---|---|
Everyone | è il permesso meno restrittivo e vincolante di tutti. Qualsiasi richiesta associata all'operazione (inserimento, modifica etc.) verrà accettata. Di conseguenza il modello di dati risulta totalmente aperto e dunque potenzialmente pericoloso |
Anybody with the Application Key | le operazioni sulla tabella vengono eseguite solo se viene utilizzando l'application key . Affrofondiremo questo concetto quando creeremo l'applicazione iOS |
Only Authenticated Users | consente l'operazione solo se prima viene effettuata un'autenticazione. Anche in questo caso vedremo come autenticare un utente tramite l'applicazione iOS |
Only Scripts and Admins | consente l'operazione solo agli admins oppure agli script associati alla tabella. Ovviamente questo permesso è il più restrittivo tra quelli a disposizione |
Fatta questa breve digressione sui permessi associati alle tabelle, per il nostro esempio impostiamo tutti i permessi a Everyone
e clicchiamo sull'icona del check in basso a destra. La pagina effettuerà un refresh e ci verrà notificato che adesso il nostro servizio possiede una tabella:
Una volta creata la tabella sembra naturale inserire le colonne per darle una struttura. Questa operazione non è permessa tramite interfaccia web, ma sarà possible aggiungere colonne alla tabella esclusivamente tramite l'applicazione iOS (in maniera molto semplice) e vedremo come fare nelle prossime lezioni.
Vediamo ora invece come gestire una tabella. Clicchiamo sul nome della tabella (che appare nella schermata precedente) e accediamo al relativo pannello di amministrazione:
Analizziamo brevemente le voci di menu:
Voce di menu | Descrizione |
---|---|
Sfoglia | mostra la lista dei record inseriti all'interno della tabella. Ovviamente nel nostro caso la tabella è vuota |
Script | mostra la lista di script associati alla tabella divisi per tipo di operazione (approfondiremo più avanti cosa sono e come possono essere utilizzati gli script) |
Colonne | mostra la struttura della tabella |
Autorizzazioni | consente la modifica dei permessi associati alle operazioni della tabella |
Al momento ci interessa esclusivamente capire la struttura della tabella che abbiamo creato, presumibilmente vuota dato che non abbiamo inserito nessuna colonna. Cliccando sulla voce Colonne
noteremo una particolarità:
Come possiamo vedere è presente una colonna id
; tale colonna viene generata automaticamente in fase di creazione della tabella e rappresenta la primary key
della tabella stessa.
A questo punto il lavoro sul pannello di amministrazione di Windows Azure è terminato e possiamo dedicarci alla creazione dell'applicazione iOS.
Uno speciale ringraziamento va a Eva Gjeci di Microsoft per l'aggiornamento di parte di questa pagina