Microsoft embraces AMQP open middleware standard
October 27, 2008
By Jeff Gould, CEO & Director of Research, Peerstone Research
The surprising word out of Redmond is that Microsoft is about to make a small but remarkable overture toward the open standards world. No, they aren’t porting Office or SQL Server to Linux. At least, not as far as I know. But they are about to embrace a very interesting though relatively little known enterprise messaging standard known as the Advanced Message Queuing Protocol, or AMQP for short.
What is AMQP, and why should anybody care whether Microsoft adopts it? Well, I’ve already blogged at considerable length about where AMQP comes from and how it works, so I won’t rehash all that here. Suffice it is to say that AMQP is to high-value, reliable business messaging what SMTP is to e-mail. The proprietary message oriented middleware (MOM) products on the market today like IBM’s MQ or Tibco’s Rendezvous fulfill the same function as AMQP. But they operate exclusively in single-vendor fashion and utterly fail to interoperate with each other. They are also – perhaps not by coincidence – burdensomely expensive. As a result their use is mostly limited to wealthy organizations such as Wall Street banks (at least the ones who are still in business) that need to exchange huge volumes of business messages very reliably and very quickly. But AMQP’s supporters feel the market for such reliable messaging could be much larger if a less expensive and truly open solution became available.
Contrary to the proprietary MOMs, AMQP is a user driven effort. It got started five years ago at banking giant JPMorgan Chase, where a smart engineer named John O’Hara decided he could build a better messaging mousetrap. He put together a group of like-minded users and started work on an open specification. He then hired European open source design bureau iMatix to build a first implementation. AMQP is now a draft protocol standard on the verge of reaching version 1.0 status. The working group has grown to include more than a dozen members, among which Goldman Sachs, Credit Suisse, and JPMorgan Chase. It has also attracted participation from several vendors, including Cisco, Iona (now part of Progress Software), Novell, Red Hat and – coming soon – Microsoft. However, despite feelers put out by the group, IBM and Tibco remain for the time being conspicuously absent from its membership list. One can only hope that these tenors of message oriented middleware will reconsider their stance as AMQP matures.
Unlike the Java Message Service (JMS) to which it is sometimes wrongly compared, AMQP is not an API but a language-independent, wire-level protocol like TCP/IP or HTTP. That is the key to interoperability. Most interestingly for such a young standard, it is not just a paper spec either, but already boasts three working implementations:
- the original iMatix implementation now known as OpenAMQ, which includes a message broker in C plus client libraries for C/C++ and JMS;
- the innovative RabbitMQ implementation, which builds its broker on Ericsson’s high-performance Open Telecom Platform and offers both a .NET/C# client with support for WCF (Windows Communication Foundation) and a Java client (for background, see my interview with RabbitMQ developer Alexis Richardson);
- the Apache Qpid project, which implements both Java and C++ brokers along with client APIs for C++, Java, Ruby, Python and .NET/C# as well as a JMS version.
Although these projects have obviously chosen very different platforms and languages, the word from working group members is that interoperability across the three implementations is quite good. This represents a radical departure from the traditionally closed world of message oriented middleware, where neighbors don’t even try to speak to each other.
A Microsoft move to adopt AMQP raises all sorts of interesting questions. Is Microsoft going to start contributing code to one or more of these open source projects? Will it actually join the Apache Qpid project – which as far as I know would be a first for Redmond? And mind you, this isn’t just any Apache project either, but one where Red Hat has a significant presence (see my interview with Red Hat’s Carl Trieloff about his company’s plans for Apache Qpid here). These are mind-boggling thoughts.
It looks as though we could be on the threshold of a sea-change in Microsoft’s attitude toward open source, one that could have all sorts of ramifications in other product areas. I suspect that a decision like this couldn’t happen unless the highest levels of the company had signed off on it. We’ll probably have to wait a while to see just how far this shift will really go. But one thing for sure is that if Microsoft does end up joining some of these AMQP projects and building the code into its product line, it’s going to give this fledgling standard a big shot in the arm. And given the massive presence of Windows Server in the financial sector, it’s going to seriously commoditize what until now has been a very lucrative business for IBM and Tibco in proprietary middleware.
AMQP
Microsoft
Open Source
Open Standards 


Reader Comments (4)
Good starting point for Microsoft. But IMHO, I still want to see a Microsoft adopting a Unix-based kernel, just like what Apple did when they where about to sank. Microsoft, you still have the upper hand. Switch your kernel to Unix-based and most of your security holes will go away.
Look at what Apple is now doing. They could easily release a major release to their OS X as they don't have to concentrate on fixing major security holes every now and then.
I think this move to open standards from microsoft is a good thing. I wonder if they choose a small standard, because they liked it, or because they can start to own it.
"[W]e could be on the threshold of a sea-change in Microsoft’s attitude...."
Er, no. Microsoft floats on a sea of open protocols, including HTTP (server & client), FTP, SMTP, Kerberos, not to mention TCP/IP itself. It has never contributed anything toward them. AMQP is just one more. Microsoft connects to an open protocol whenever the alternative is significant isolation. The bottom line is the bottom line.
Microsoft has also consistently sought to prevent protocols from becoming open, the most notable case being SMB. If a change in approach were coming, surely that would be the best place to start.
More likely, past is prolog: a somewhat broken implementation that everyone else will have to cope with.
Does this mean that MSMQ will be replaced, or is this complimentary?