2. I web sockets
Lo scopo di queste slide è quello di fornire una breve descrizione di cosa sono i web sockets. I web sockets sono una alternativa alla comunicazione HTTP (Hyper
Text Markup Language) nelle applicazioni web. La logica di base è la comunicazione bidirezionale tramite scambio di messaggi JSON.
Una volta stabilita la connessione, il canale rimane aperto con una bassa latenza e poco sovraccarico.
3. I web sockets
Diversamente dall’HTTP, con una web socket si può inviare un messaggio al client senza che il client ne faccia specifica richiesta. Il client ed il server possono
parlare tra loro contemporaneamente.
I web sockets sono utili per la comunicazione in tempo reale e di lunga durata. Di seguito viene mostrato un esempio di client web socket (estensione di chrome
liberamente installabile):
6. Server web socket
La creazione di un web server socket avviene sfruttando
nodeJS (javascript lato server) nella maniera mostrata a lato.
Per prima cosa si utilizza la libreria WS e si istanzia una classe
server di tipo webSocket.
Successivamente si sviluppa il codice di gestione dei messaggi
in entrata al server. Nel caso di scambio messaggi via JSON è
necessario ogni qualvolta effettuare un parsing del json, come
viene mostrato nella terza immagine a lato.
7. Client web socket
Nel codice javascript a lato è presente un esempio minimale di
client web socket. La porta non sarà 8080 ma 1234 come
mostrato nel codice del server.
8. Architettura REST
Scopo delle prossime slide è quello di illustrare brevemente cosa si intende per REST. REST è l’acronimo di Representational State Transfer. E’ un tipo di
architettura software. E’ uno standard nella creazione di web A.P.I (Application Program Interface).
Con REST si descrive ogni tipo di interfaccia per lo scambio di messaggi tramite protocollo HTTP.
Un web service invece è un modulo software pensato per favorire l’interoperabilità tra le applicazioni.
9. Architettura REST
Ci sono due approcci per creare un web service:
• SOAP (Simple Object Access Protocol) il quale sfrutta un meccanismo chiamato RPC =Remote Procedure Call
• REST
L’approccio REST si basa su cinque principi:
• Identificazione delle risorse
• Utilizzo esplicito dei metodi HTTP
• Risorse auto descritte
• Collegamenti tra risorse
• Comunicazione senza stato
10. Web services
I web services si basano sul concetto di risorsa. Per risorsa si intende un qualsiasi oggetto su cui è possibile effettuare delle operazioni. Ogni risorsa viene
identificata in modo univoco da un URI (Uniform Resource Identifier).
Le operazioni effettuabili su una URI sono i metodi predefiniti HTTP, ossia:
• GET -> lettura
• POST -> creazione
• PUT -> aggiornamento
• DELETE -> Cancellazione
Queste sono tipiche operazioni CRUD (Creation, Read, Update, Delete)
11. Alcune considerazioni
L’esempio mostrato nelle slide precedenti è stato sviluppato in NodeJS, un framework Javascript che permette di sviluppare e di utilizzare Javascript lato server. Si
basa sulla programmazione asincrona con un modello di programmazione «event-driven».
Per installare pacchetti Javascript si usa il comando NPM ossia il classico gestore di pacchetti Node Package Manager.