Standards and Protocols
Historically, Message Queuing has used proprietary, closed protocols, restricting the ability for different operating systems or programming languages to interact in a heterogenous set of environments.
An early attempt to make Message Queuing more ubiquitous was Sun Microsystem's JMS specification, which provided a Java only abstraction of a client API. This allowed java developers to switch between providers of Message Queuing in a fashion similar to that of developers using SQL databases. In practice, given the diversity of Message Queuing techniques and scenarios, this wasn't always as practical as it could be.
More recently, three standards have emerged which address making Message Queuing open and ubiquitous:
- Advanced Message Queuing Protocol
- MQTT
- Streaming Text Oriented Messaging Protocol
All of these are at different stages of standardisation and adoption. All of them operate at the same level as HTTP.
Some proprietary implementations also use HTTP to provide Message Queuing by some implementations, such as Amazon's SQS. This is because it is always possible to layer asynchronous behaviour (which is what is required for Message Queuing) over a synchronous protocol using request-response semantics. However, such implementations are constrained by the underlying protocol in this case and may not be able to offer the full fidelity or set of options required in message passing above.
Read more about this topic: Message Queue
Famous quotes containing the word standards:
“With his brows knit, his mind made up, his will resolved and resistless, he advances, crashing his way through the host of weak, half-formed, dilettante opinions, honest and dishonest ways of thinking, with their standards raised, sentimentalities and conjectures, and tramples them all into dust. See how he prevails; you dont even hear the groans of the wounded and dying.”
—Henry David Thoreau (18171862)