You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by James Strachan <ja...@gmail.com> on 2007/06/06 11:12:39 UTC
Re: Camel vs. Synapse vs. ServiceMix
Great mail BTW; sorry for the delay responding, am just back from vacation
On 5/30/07, Jerome Banks <je...@gmail.com> wrote:
> There seem to be a lot emerging open-source ESB/Message routing frameworks
> developing these days.
:)
> This is a somewhat open-ended question, but what are
> the relative strengths and weaknesses of Camel, Synapse, and ServiceMix.
> They all seem to be Apache ESB-like projects with some overlap, but they
> must complement each other in some way.
Great question :)
> Which use-cases are best handled by which projects? In particular, which
> use-cases are best handled by Camel?
So Synapse is a mediation engine for Axis2; so if you're using Axis2
and want to mediate, Synapse is worth a look.
ServiceMix is a JBI based ESB which provides a JBI container and
component suite. The big win of JBI is that its a standard that many
vendors support which allows integration components to interoperate
across ESBs
Camel is a routing and mediation engine which can be deployed inside
ServiceMix as a JBI component, used with ActiveMQ, CXF or MINA or used
stand alone. Camel focusses on implementing the Enterprise Integration
Patterns using a neat Java language to minimse the amount of XML
required to configure routing and mediation rules. So you can view
Camel as a reusable framework which can be used in your web services
stack, your ESB or message broker etc.
> Also, this might be flame-bait, but is Camel a pun on "Mule"?
LOL. Well, a Camel can carry 4 times as much load as other beasts of burden :)
http://activemq.apache.org/camel/why-the-name-camel.html
> How does
> Camel compare the the Mule ESB project?
I guess from 30,000 feet they're kinda similar beasts; they're both
kinds of routing/mediation engines. The main differences are as
follows (warning, I'm kinda biased :)
* Camel uses a Java DSL in addition to Spring XML for configuring the
routing rules and providing EIP implementations
http://activemq.apache.org/camel/enterprise-integration-patterns.html
* Camel's API is smaller & cleaner (IMHO) and is closely aligned with
the APIs of JBI, CXF Bus API and JMS; based around message exchanges
(with in and optional out messages) which more closely maps to REST,
WS, WSDL & JBI than the UMO model Mule is based on
* Camel allows the underlying transport details to be easily exposed
(e.g. the JmsExchange, JbiExchange, HttpExchange objects expose all
the underlying transport information & behaviour if its required)
http://activemq.apache.org/camel/how-does-the-camel-api-compare-to.html
* Camel supports implicit type coercion from the core API to make it
simpler to connect components together requiring different types of
payload & headers
http://activemq.apache.org/camel/type-converter.html
* Camel uses the Apache 2 License rather than Mule's restrictive
commercial license
I hope that helps clear things up a bit; I admit all this SOA/ESB
stuff can be a bit confusing
--
James
-------
http://macstrac.blogspot.com/