Message Queue - Standards and Protocols

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:

    As long as our people quote English standards they dwarf their own proportions.
    Ralph Waldo Emerson (1803–1882)