A plethora of message queuing products exist in today's EAI market, all aimed at providing solutions to the problem of application integration. Few can however lay as much claim to fame as ActiveMQ, an open source Message Broker and JMS/Enterprise Integration Patterns provider which is licensed, developed and distributed under the open source Apache emblem. ActiveMQ provides support for Cross Language Client and Protocols as well as a powerful messaging broker which is supported in Java, C, C++, C#, Ruby, Perl, Python, PHP.
Enterprise messaging plays a significant and increasingly important role in enterprise application integration and computing. Over the decade there has been a major trend away from synchronous processing on the enterprise level to a more loosely coupled asynchronous model. This enables an application to simply put a message on a queue and not have to wait for a response (fire and forget). This decoupling allows applications to be more responsive and operate independently of time constraints resulting in flexible and highly scalable enterprise software solutions, which are able to scale beyond application and enterprise system boundaries.
ActiveMQ provides a very robust and flexible publish-subscribe communication mechanism based on the JMS specification. It is exceedingly simple to work with, and combines enterprise level best practice capabilities with a light foot print which easily makes it a highly viable option for both queue based peer to peer messaging as well as topic based Publish-Subscribe Communication. In David PallMann's article (in Search of Publish-Subscribe), he briefly examines a number of Microsoft based publish-subscribe strategies such as Biztalk Server, WCF, MSMQ and SQL Server elucidating capabilities in each. As opposed to ActiveMQ which provides a Publish-Subscribe Channel as an explicit feature of its JMS based API, MSMQ does not provide a similar level of support for using the publish/subscribe semantics and also contains message size constraints. In current EAI initiatives we are working on, we have found ActiveMQ to be a highly reliable, and very capable alternative to MSMQ, especially when it comes to implementing EAI patterns such as durable subscribers, publish subscribe communications etc. For those of you who are new to ActiveMQ and its implementation in .NET, a good starting point which makes compelling reading is provided by Mark Bloodworth (see here). In future we will provide you with further postings on ActiveMQ and its implementation within the .NET framework. This will be based on the well documented Industry based Enterprise integration Patterns.