STOMP Architecture basics | STOMP protocol in IoT
This page covers STOMP Protocol architecture basics. STOMP is a text based protocol used with message oriented middleware in IoT (Internet of Things). STOMP stands for Simple Text Oriented Messaging Protocol.
• STOMP is text based protocol.
• It is developed to work with message oriented middleware.
• It uses interoperable wire format.
• This format enables clients to communicate with message broker to enable easy and widespread messaging interoperability. This communication is irrespective of languages, platforms and brokers used in the architecture.
• STOMP protocol provides message header with properties and frame body like AMQP.
• It is a simple and light weight with wide range of language bindings. Some transactional semantics are also provided by it.
STOMP Architecture working operation
Figure: STOMP Architecture
Like other broker based protocols, STOMP specifies publish-subscribe mechanism. Here clients subscribe to topics (compare to a path in HTTP) and they will be notified whenever messages have been sent to that particular topic by broker.
• STOMP does not require use of queues and topics.
Instead, it uses "SEND" semantic with "destination" string.
• STOMP is a bi-directional protocol which uses textual headers similar to HTTP.
• The broker must map "destination" string onto something which it understands internally e.g. topic, queue or exchange.
• Consumers subscribe to these destinations.
• Different brokers can support different flavors of destinations as they are not mandatory in the specifications. Hence care need to be taken while porting code between different brokers as it is not straightforward.
EXAMPLE: Generic broker services e.g. RabbitMQ or ActiveMQ use STOMP/AMQP protocols to ease and scale the deployment of modern cloud services. Websockets help to use queuing protocols e.g. STOMP/AMQP directly from web browsers.