by Sandy Gupta on September 29, 2009 06:15am

Microsoft recently made a significant code drop to the Apache Qpid project. For those of you who don't know, Qpid is Apache's implementation of the Advanced Message Queuing Protocol (aka AMQP), which is an exciting new reliable messaging protocol developed by some of the world's biggest messaging users (think names like JPMorgan Chase). 

What we've done is a Windows Communication Foundation (WCF) Channel for AMQP. Our goal is to provide a first class AMQP experience for the .NET developer. And, since this is an Apache project we're talking about, all our code is obviously open source.

A couple of years ago the announcement of Microsoft making a major contribution to an open source project would have been sensational news, but things have moved on a little bit since then. Now it's just another day's work at Microsoft.

As the manager of this effort at Microsoft, I'd like to talk a little about what we bring to the open source table. We joined the Apache Qpid project, which was essentially focused on Linux, to help the community develop a port on Windows and integration with the .NET stack.

That was reflected both in the code itself and also in the build environment it used (autotools). One of the areas where we invested was the introduction of a cross-platform build and test environment (CMake), so as to smooth the way for cross-platform work.

We have continued to adopt our typical product development quality assurance mechanisms when working with open-source. These include team-based design and code reviews. We also use automated code-quality tools, such as StyleCop, to ensure consistent style and to detect common programming errors.

We developed the initial version of the WCF Channel on a private Subversion repository and used a private bug database for logging issues and work items. Now we have made the initial drop to the community, we intend to do all revisions in the Apache repository and switch to using the community Jira-based bug tracking system.

Today we have a group of 5 engineers working with Qpid, both vendors and full-time Microsoft employees. Over time, it's our goal for many of these folks to achieve committer status on the project.To date, we've worked on the following work items:

  • The port of the C++ broker and client library to Windows
  • Introduction of the CMake-based cross-platform build and test environment
  • Windows Communication Foundation (WCF) Channel to provide a first class AMQP experience for the .NET developer
  • Improved packaging for Windows, including adding DLL support and a Windows installer
  • In progress: Persistence provider for Windows leveraging SQL Server and the Common Log File System (CLFS)

Starting soon:

  • SSL support on for the Windows client library and broker

For me, leading AMQP initiative at Microsoft has been quite a learning experience. Our collaboration with the community has been strong and we have received full support from our executives.

Here at Microsoft we understand that AMQP can become the SMTP for Messaging. This means AMQP is going to have a huge beneficial impact on all kinds of users in the years to come, and we want to help make that happen.

Helping develop the open source AMQP reference implementation at Apache Qpid as part of a broad community effort is our way of moving the AMQP ball forward. I'll have a lot more news to report about our efforts in the months to come.