Modelli di Interazione
I protocolli di comunicazione candidati si differenziano per modelli di interazione.
Modello Richiesta-Risposta
Il modello di comunicazione richiesta-risposta è uno dei paradigmi di comunicazione più elementari.
Un client richiede informazioni a un server che riceve il messaggio di richiesta, lo elabora e restituisce un messaggio di risposta.
Evoluzione di HTTP:
- HTTP 1.0: la connessione TCP viene chiusa dopo una singola coppia HTTP richiesta/risposta
- HTTP 1.1: introdotto un meccanismo di keep-alive, che consente di riutilizzare una connessione TCP per inviare più richieste al server senza attendere la risposta (pipelining). Una volta che le richieste sono state inviate, il browser inizia ad ascoltare le risposte e la specifica HTTP 1.1 richiede che il server invii le risposte a tali richieste nello stesso ordine in cui le richieste sono state ricevute
- HTTP 2.0: introduce un metodo di multiplexing con cui possono essere inviate più richieste HTTP e le risposte possono essere ricevute in maniera asincrona attraverso una singola connessione TCP
- CoAP: a differenza delle altre, non dipende da una connessione TCP per scambiare messaggi di richiesta/risposta tra il client e il server
Modello Publish-Subscribe
Il modello publish-subscribe è nato dall'esigenza di fornire una comunicazione distribuita, asincrona e loosely coupled tra chi genera i dati e chi li riceve.
Numerosi middleware publish-subscribe orientati ai messaggi (MoM) sono stati recentemente oggetto di numerose ricerche e implementazioni concrete.
Servizio di Notifica
Il servizio di notifica è l'elemento chiave all'interno di tale modello. Esso unisce chi pubblica e chi invece è inscritto (quindi vuole ricevere i dati) e funge da mediatore.
Compiti del servizio di notifica:
- Memorizzazione delle sottoscrizioni
- Bufferizzazione degli eventi pubblicati
- Distribuzione delle notifiche
Implementazione Broker