Riccardo Maldini
• Francesco Gorini
sommario
Nell’ambito dei sistemi distribuiti, sempre più si fa largo l’esigenza di scambiare dati velocemente tramite web browser. Applicazioni come giochi online multiplayer, ad esempio, richiedono sempre più through-put elevato e latenza ridotta; le connessioni devono rimanere attive per lunghi periodi di tempo, con update frequenti e bidirezionali. Protocolli quali HTTP, anche nelle versioni più recenti, presentano pesanti limitazioni sotto questo punto di vista. Risulta inoltre difficile separare lo strato middleware dal resto del sistema, rendendo trasparente la logica sottostante.
Tra i possibili approcci pensati per superare queste limitazioni, ne esiste uno molto particolare e poco conosciuto, che sfrutta in combinazione le peculiarità di tre di differenti tecnologie: il protocollo WebSocket, il protocollo STOMP e i broker di messaggistica.
In primo luogo, WebSocket supporta comunicazioni bi-direzionali, e consente di mantenere aperta la connessione per lunghi periodi di tempo. Risulta inoltre facilmente e ampiamente applicato nelle comunicazioni asincrone via browser.
STOMP è invece un protocollo progettato per permettere uno scambio asincrono di messaggi tra client, sfruttando un nodo server centrale che agisce da mediatore. La sua implementazione standard agisce su TCP, ma una sua estensione molto popolare poggia su WebSocket (StompOverWebsocket), estendendo quest’ultimo con le peculiarità del modello publish-subscribe.
Quindi uno stato middleware, basato su broker di messaggistica, consente di ottenere prestazioni elevate in termini di throughput e latenza.
Questo progetto si propone in particolare di approfondire il secondo aspetto citato: il protocollo STOMP, dimostrando come applicarlo in modo specifico ad un sistema Linda-based ad agenti. Ciò permette di mostrare caratteristiche e peculiarità del protocollo, e di fornire un modello di partenza per altri progetti basati su queste tecnologie.
prodotti