Quoting the JBI spec:
"SEs are the business logic drivers of the JBI system."
"BCs are used to send and receive messages via particular protocols and
transports."

Let's talk about the jsr181 component. I think the definition for BCs
clearly indicates
that the jsr181 component is not a BC, so I think it must be a SE ;)
The fact that you deploy some java code on it is just a side point: each JBI
component
has its own deployment model for service units and I would not consider a
java class
on a different level than a BPEL process.  If you do not want to deal with
classpath issues,
we could add a default classpath location of "." to the SU if nothing is
specified.
And I do think that the service deployed on the jsr181 component contains
the business logic
in the same way a BPEL process do.

The lwcontainer is a bit of a problem.  If possible, i would not categorize
it as a BC or SE.
Actually, the lwcontainer will never send or receive exchange itself.  The
only operation performed
is to start / stop lightweight components (which can be BCs or SEs).

For the shared-library part, it would be cool to put lightweight components
in a shared library.
However, due to classloader considerations, this shared library would need
to contain all the
dependencies of all lightweight components, and that would make a very big
SL (in tens of MBs).
WE could also put all these dependencies in the lwcontainer, but the problem
would be the same.
I' m not very keen on having a 30 Mb component just to use a lightweight
component i would have
created on my own.

Btw, SL can not really be used when embedding servicemix -- or you use the
full JBI feature set
(component installation, SU deployment, etc) and it is not really embedded
anymore ;)

Feel free to argue :)

Cheers,
Guillaume Nodet

On 7/24/06, Philip Dodds <[EMAIL PROTECTED]> wrote:

I have been working through the lw-container, JSR181 and wanted to share
some thoughts on these service engines.

I'm wondering whether then should be service engines,  since they each
require a additions to the classpath I'm wondering if they shouldn't be
Binding Component Archetypes.  I suppose the question becomes one on how
best to define the JBI spec.

Here is the logic for my argument:

If a binding component is meant to broker some interaction with an
external
system then the JSR-181 and lw-container are most likey doing that.  If I
can presenting a service interface to the ESB for business logic (most
common usecase in the JSR181) then I would have thought I was a binding
component.  In a binding component we would be able to handle additions to
the classpath through the JBI descriptor,  while in the Service Units this
is don't outside of JBI.

I'm thinking that the lw-container and jsr-181 se could be better places
as
shared libraries that archetypes use - such that you can create an
archetype
(even add classes to the dependencies) and still have the functionality.

This leads into the ServiceMix components and LW-Container - I'm wondering
whether servicemix-components would be better off being a Shared Library,
then you could create a binding component based on the lightweight
component
shared library and the servicemix components shared library and hopefully
the class path would be resolved.  The only problem I see here is that if
you are working in a servicemix embedded model you might need to be able
to
reference shared libraries in your servicemix.xml to force them to load in
there so that the packaging can be consistent.

I realize this is all large scale changes but I wanted to throw them out
there to see what people think?

Cheers

P


Reply via email to