Hi, Tuscany and ServiceMix teams !

Some months ago, I have started to develop an SCA JBI Component based on
Tuscany.
At last ApacheCon EU, I met with Jeremy Boynes (and other Tuscany members)
and we
talked about working on a better Tuscany integration with ServiceMix, by
combining the
effort of both communities. We decided to bring that on the devs list, so
here it is.

First, let me expose for the Tuscany teams who are not familiar with JBI,
what a Service Engine
provides, and briefly outline how it works.  When developing a JBI
application, you need:
 * JBI components (Binding Components or Service Engines)
 * JBI Service Assemblies
Components are installed on the JBI container and act themselves as
containers.  BCs' role
is to communicate with services or clients outside the JBI bus by using a
known protocol;
this includes HTTP, HTTP+SOAP, JMS, JMS+SOAP, etc...  SEs on the other side,
are meant
to provide the business logic: they are routers, transformers, services,
orchestration and they
are not tied to any protocol.  Service Assemblies (SA) are composed of one
or more Service Unit
(SU), each SU being targeted to a known component.  The component is fully
responsible for
handling the SU deployment which content is not specified (it will be
different from one component
to another).  Components are thus containers because they will host
deployments of several SUs.

For Tuscany, the component would be a Service Engine, and I think Service
Unit will be SCA modules.
The component is responsible for
 * deploy and manage SU lifecycles
 * accepting JBI exchanges from the JBI container and process them
The current component already handle service unit deployment, but the
message exchange processing
need to be enhanced / rewritten to provide bi-directional access to the JBI
bus.  From my understanding of Tuscany,
this represent a binding (which is the main thing to complete).  The current
one uses JAXB2 for the
marshalling layer, but maybe you will want to switch to SDO (I choose JAXB2
because I was familiar with
it).

I would also propose that this JBI component may be better hosted at Tuscany
instead of ServiceMix,
as a JBI component only relies on the JBI spec, but it will be highly
dependant on Tuscany. I found hard
to keep on with Tuscany changes during the past months, given the all the
refactoring that occured.

The code is available at
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-sca/

--
Cheers,
Guillaume Nodet

Reply via email to