Guillaume has greatly summarize our discussion.
Our discussion starts from some facts:
1/ JBI is dead. The JBI 2.0 specification will never be released. It's
not due to technical leaks but, as Guillaume said, mainly due to politic
reasons.
2/ All that we can do with JBI could be achieved by Camel: if Camel
could manage most of message format (stream, binary, etc), of course it
can manage XML payload like JBI does. JBI imposes the XML message format
whereas Camel supports it and the developers just need to use it
(eventually using a Normalizer pattern). The MEP is defined in the Camel
route itself (depending of the from(), to(), etc statements).
3/ The maintenance cycle on the ServiceMix components is lower than the
Camel components. As it's more simple to write Camel components, the
Camel components scope is larger than the ServiceMix components one.
There are only one component present in ServiceMix which is not
available in Camel: servicemix-smpp. I'm gonna submit a patch to Camel
proposing a camel-smpp component.
4/ in the past, I had in mind to add WSDL publication in all ServiceMix
components to be able to use WS-BPEL in ODE. To be honest, after
thinking about that, I'm not sure if the best way to add BPM in
ServiceMix (see later :)).
As Guillaume, ServiceMix is really a great brand in OpenSource ESB. We
didn't speak about deleting ServiceMix project, but more adopt a clear
position.
My vision is the following:
- ServiceMix 3 should be marked as deprecated and unmaintained release.
- ServiceMix 4 should stay as it is currently: based on Karaf, adding
ActiveMQ, Camel, CXF and NMR/JBI
- I propose to preparate ServiceMix 5. ServiceMix 5 is clearly an ESB,
In ServiceMix 5, the JBI layer should be set as deprecated. It means
that we always provide the JBI features but not installed by default.
The users could installed it for backward compatibility if required.
ServiceMix 5 is a complete ESB, based on OSGi, gathering:
- Apache Felix + Apache Karaf
- Apache ActiveMQ: more than a message broker, ActiveMQ could be the
cluster and fail-over player
- Apache Camel: the integration and mediation layer, providing the
components and routing bases
- Apache CXF: I think that CXF directly ServiceMix will not make sense.
CXF will be provided by Camel CXF components, that is enough.
- BPM: ServiceMix 5 should embed a BPM engine. ODE requires the usage of
XML as it's based on WS-BPEL. I think that Activiti could be more
interesting as it's based on BPMN2.
- Tooling: ServiceMix 5 should provide more friendly tooling.
Especially, starting to the fact that we use Camel, we can provide a web
tool to see, design and monitor the Camel components and routes.
- Extensions: why not thinking about integrating (as optional or not)
others technologies. For example, I'm thinking about extending the Aries
usage, providing DOSGI using CXF, or supporting EJB3 using
OpenEJB/Geronimo. We have no limit to provide extra features to give a
full scoped ESB (I don't see any others ESBs that is able to cover or
extend as ServiceMix).
So, ServiceMix is not dead at all !!! More over, I think that, with a
clear position, providing and gathering differents technologies,
ServiceMix will an awesome platform, ESB oriented but very extensible.
So welcome to the new area of ServiceMix 5 :)
Regards
JB
On 10/14/2010 04:35 PM, Guillaume Nodet wrote:
I've had an interesting discussion today with jbonofre about ServiceMix
future so I think we should get that on the dev list, hence this mail to
start the discussion. I've heard more and more people wondering about the
value in ServiceMix compared to Karaf + Camel for example. I wonder what
your feedback is, how you feel about the future of ServiceMix and what we
should do as a community.
As for my personal opinion, I think ServiceMix has a very strong brand as an
open source ESB, but since ServiceMix 4.x, people tend to be confused about
it. I think there are several path forward.
The first thing to state is that the JBI spec did not fulfill its promises.
For various reasons (mostly political I think), the specs has not been
backed by enough big vendors. JBI 2.0 will never happen so the JBI spec is
kinda dead. The second fact is that more and more users tend to start new
projects directly with Camel for a lot of valid reasons, mainly its ease of
use and tons of connectors. That does not mean they don't use ServiceMix as
the runtime, just that they tend to let aside some features such as the JBI
or NMR layer.
Given those facts, I think one possible future would be to officially
deprecate the JBI layer and components (i.e. maintaining those for
compatibility, but not necessarily add new features) and focus on more value
added such as better integration with third party projects (Ode, Hise,
etc...) and maybe more tooling (monitoring, etc...).
Anyway, it's just my personal opinion and feedback, but i'd like to here
what other think about that, so that we can move forward. I'm sure there
are a lot of different ways for ServiceMix' future, but the most important
thing to me is to come up with a clear position that we all agree on and be
in a better position to move forward and bring ServiceMix to the next level.