Timeline
Chat
Prospettiva
Streaming Text Oriented Messaging Protocol
protocollo di comunicazione Da Wikipedia, l'enciclopedia libera
Remove ads
Streaming (o Simple) Text Oriented Message Protocol (STOMP), precedentemente noto come TTMP, è un semplice protocollo di comunicazione basato sul testo (text-based), di livello applicativo nella pila ISO/OSI, progettato per lavorare con middleware orientati ai messaggi (MOM). Fornisce un wire format interoperabile che consente ai client STOMP di parlare con qualsiasi broker di messaggi che supporti il protocollo.[1]
Remove ads
Descrizione
Riepilogo
Prospettiva
Il protocollo è sostanzialmente simile a HTTP e funziona su TCP utilizzando i seguenti comandi (frame lato client):
- CONNECT (dalla versione 1.0) o STOMP (dalla versione 1.2)[2] (utilizzato dal client che deve specificare l'header host, per indicare con quale host virtuale desidera connettersi, e l'header accept-version, per indicare la versione del protocollo STOMP che supporta)[2]
- SEND (utilizzato dal client che vuole comportarsi da produttore nel problema del produttore/consumatore)[2]
- SUBSCRIBE (utilizzato dal client che vuole comportarsi da consumatore nel problema del produttore/consumatore, indicando la coda o il topic di destinazione verso cui vuole consumare)[2]
- UNSUBSCRIBE
- BEGIN (per iniziare una transazione, specificando obbligatoriamente un identificatore della transazione con l'header transaction)[3]
- COMMIT (per fare il commit di una transazione in corso, specificandone obbligatoriamente l'identificatore)[4]
- ABORT (per fare il rollback di una transazione in corso, specificandone obbligatoriamente l'identificatore)[5]
- ACK (per indicare di aver consumato un messaggio proveniente da una sottoscrizione che si è effettuata)[6]
- NACK (per indicare di non aver consumato un messaggio)[6]
- DISCONNECT (per disconnettersi dal server e chiudere la socket, in modo asincrono)[7]
La comunicazione da client a server avviene attraverso un “frame” lato client tra quelli precedentemente indicati, composto da un certo numero di righe. La prima riga contiene il comando, seguito da intestazioni nella forma <chiave>: <valore> (una per riga), seguita da una riga vuota e quindi dal contenuto del corpo, che termina con un carattere null. La comunicazione da server a client avviene attraverso i frame lato server MESSAGE, RECEIPT o ERROR con un formato simile di intestazioni e contenuto del corpo. La codifica di caratteri utilizzata di default da STOMP è UTF-8.[2]
Remove ads
Implementazioni
Tra i prodotti MOM che supportano STOMP, vi sono:
- Apache ActiveMQ[8]
- HornetQ[9]
- Open Message Queue (OpenMQ)[10]
- RabbitMQ[11]
- Fuse Message Broker[12]
- syslog-ng con un plugin apposito[13]
Tra le librerie per utilizzare STOMP dal lato client, vi sono stomp.py per Python e Net::STOMP::Client per Perl.[14]
Note
Collegamenti esterni
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads