views:

674

answers:

2

Hi,

I am new to Messaging and want to know the difference between ActiveMQ, Mule, ServiceMix and Camel

Anyone knows how each of these product is different?

Thanks in advance !

EDIT: Also would like to know any good place/resource to learn these things.

+4  A: 

ActiveMQ is a pure JMS play. It lets you implement queues or topics and write listeners or subscribers to respond to queue events.

Mule and ServiceMix are open source ESB (enterprise service bus). An ESB has capabilities beyond JMS: queuing is key, but so are transformation, routing, logging, security, etc.

Apache Camel is an implementation of the patterns in Enterprise Integration Patterns. It uses JMS and other ideas to put the ideas from that book into place.

JMS is fundamental to the other technologies, like JDBC is the foundation for Hibernate, iBatis, etc.

JMS is a spec. ActiveMQ is a particular implementation of it. Camel might be using ActiveMQ, but I'm not certain. I doubt that it's using either Mule or ServiceMix. You can tell by downloading it and looking at the JAR dependencies.

I just did exactly that - no ServiceMix, Mule, or ActiveMQ JARs in Camel. It does use Spring, Lucene, and other technologies.

duffymo
Does Apache Camel uses ActiveMQ, Mule and ServiceMix to implement those patterns? Or is it using raw JMS?
peakit
Camel can support any JMS provider; it has shortcuts in it's syntax for using ActiveMQ but can use any other JMS queue just as fine.
matt b
+6  A: 

JMS is a Java messaging protocol specification.

ActiveMQ is an implementation of the above.

Camel is a message routing engine implementing Enterprise Integration Patterns. It provides a lot of predefined components. One of its key component supports JMS.

ServiceMix is an ESB implementation compatible with JBI (Java Business Integration) specification. It also provides many infrastructural features not available in Camel (like services OSGI bundle support). SM makes heavy use of Camel.

Mule is an another implementation of ESB, but not related to the Camel/ServiceMix family.

Henryk Konsek