The Red Hat Patent Problem and AMQP
How a Red Hat 'stealth' patent impinges on a crucial open standard
by Dj Walker-Morgan
The disclosure that Red Hat have applied for a patent on what might strike some as an obscure corner of the software ecosystem has caused others to re-evaluate how open and collaborative Red Hat actually are. As the AMQP 1.0 standard entered into its final phase, a 2007 Red Hat patent application, the company now refers to as a "defensive" patent, on an obvious extension of AMQP, was automatically disclosed and caused quite stir. What is AMQP, why is it important, what has Red Hat done to cause a ruckus within the AMQP community, and what does it mean to open source in general.
Advanced Message Queuing Protocol (AMQP)
Advanced Message Queuing Protocol (AMQP) is an open standard which has been developing for some years now and represents an attempt to unify a large set of proprietary vendors on a single interoperable protocol for passing reliable, queue-able messages around a large network. The proprietary vendors have been in this space, known as MOM, Message Oriented Middleware, for many years. Its use has, for reasons of complexity and cost, been restricted mostly to the financial services business, but, with the ascent of cloud computing, MOM could provide the backbone for many cloud applications to control application servers, provide intelligent load balancing and open the way to massive scaling.
Message-Oriented Middleware (MOM)
Message-Oriented Middleware (MOM), in essence, allows developers to write applications that just send out messages into the messaging backbone. The backbone will ensure the message gets to the right applications by passing the messages to exchanges that use rules to determine the destination of the message and make sure it gets delivered. If it can't be delivered, the exchange will go back to the rules and either queue the message for later delivery or pass it on to another system. A single message can also be delivered to multiple destinations. For example, within a companies ordering system a message that an order has been placed could be sent to the payment processing system, the stock control system and the despatch system. If the company needed to audit all the orders, rather than rewrite the various systems, the administrators would just add a rule to the exchange to say "and the audit database". MOM based systems can also scale in size, with messages which can be many hundreds of megabytes, and scale over time, storing and forwarding messages when the destination systems are available.
The various proprietary MOM systems available used different techniques to layer this flexible and reliable backbone on top of potentially unreliable network protocols, such as TCP/IP, and create bridges between the backbone and mainframe systems. In some cases, MOM messaging is the only supported way to interoperate with mainframes.