In 2001, the first Java Message Service (JMS) specification revolutionized the message oriented middleware space by offering a standard API for the sending and receiving of messages, thus freeing application developers and architects from being locked into vendor specific APIs. More recently, the Apache community created the .NET Message Service API (NMS) which offers a vendor agnostic .NET interface to a variety of messaging systems. The NMS API gives the flexibility to write .NET applications in C#, VB or any other .NET language, all while using a single API to connect to any number of messaging providers.
While these API’s have helped to reduce the code changes required when switching messaging implementations, they’re only a first step to achieving independence and freedom from all lock-in. Because NMS simply provides a set of .NET interfaces, it is up to each vendor or open source project’s community to match the interface to their wireline protocol (which is frequently non-standard) and the message broker it connects to. Idiosyncrasies in behavior due to non-standard protocols tend to arise when moving to a different messaging implementation, which leads to more test cycles, re-coding and anguish.
Solace has been a big supporter of open APIs and wireline standards for years, as demonstrated by our adoption of MQTT and REST. A year ago, Solace launched an initiative called “Open Data Movement” whereby we clearly defined our commitment to openness and standards. In keeping with that commitment, we developed our own implementation of the AMQP 1.0 standard wireline protocol to be completely interoperable with open source API implementations. The key to enabling vendor independence and mass adoption of technology is to combine open source APIs and standard wireline protocols. To that end we at Solace are putting our money where our mouth is and, working with the Apache community, are creating the AMQP provider for NMS as an open-source Apache project.
Here’s how AMQP 1.0 support within NMS helps the .NET community:
If you are a .NET developer that doesn’t want to be locked into a messaging implementation, check out https://github.com/cjwmorgan-sol-sys/nms-amqp. There you will find the open source code base we are working on and since it is open source, you can provide comments and make your own enhancements. When ready, the project will be folded into the Apache community as they too feel that supporting AMQP with NMS is a worthwhile project.
We at Solace are all about openness which means not just supporting or tolerating open wireline standards and open source standard API’s but embracing them and actively helping to advance them. Our mission is to make the use of messaging as painless as possible for developers while fostering technical innovation to ensure competition.