Hi,

Nice volunteering indeed!

So on the Ode side, I'd go with implementing a specific integration layer
for Tuscany instead of reusing the Axis2 one. That would allow in-VM SCA /
BPEL interactions and a greater integration between the two.

Ode provides an integration API that you have to implement if you want to
plug the engine into something else. The engine uses this API to get
whatever it needs to work, like the ability to send and receive messages, to
get some representation of the services it's going to interact with, or even
threads and transactions. So you would just wire up all services Tuscany
provides into the engine when implementing these interfaces.

To see what those look like you can have a look at [1]. We currently have 3
working implementations for these interfaces: Axis2, JBI and test. The Axis2
one is wrapped around Axis2 in a WAR and works in any servlet container. The
JBI one is bundled in a Service Assembly and can be deployed in ServiceMix.
The test one works in-memory in a standalone manner. These are great
examples to look at to see how the required services are provided to the
engine and how everything is initialized. In particular you can have a look
at ODEServer [2] for Axis2 and OdeLifeCycle [3] for JBI, these are where all
the initialization and wiring up logic happens for these 2 integrations.

I'd start from the test IAPI implementation [4] [5] to see how things work
out, this will run in memory so you won't have to worry about providing a
datasource and a transaction manager to start with. Then you can bring some
pieces from the Axis2 and JBI integrations (copy / paste is your friend) and
increment from that. Implement the different communication interfaces by
using Tuscany services and you should be all set.

Now I think we could discuss about the details and how to use Tuscany
services in Ode during an IRC chat session as I proposed in the other
thread? So we can all have a better understanding of how this will work and
you'll have more information to start from.

Matthieu

[1]
https://svn.apache.org/repos/asf/incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/iapi/
[2]
https://svn.apache.org/repos/asf/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
[3]
https://svn.apache.org/repos/asf/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
[4]
https://svn.apache.org/repos/asf/incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java
[5]
https://svn.apache.org/repos/asf/incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/

On 10/26/06, ant elder <[EMAIL PROTECTED]> wrote:

On 10/26/06, sam tam <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I am a student and I have been looking into this topic for my project
> work.
> I'd like to contribute as much in this with some help from you folks.
> For
> now here is what I have been doing as ground work.
>
> - Tried out Tuscany M1 release and also recently from the current
> development branch.
> - With Apache ODE I deployed sample process in Tomcat and have been able
> to
> call it using a SOAP message.
>
> At the present moment I am trying to figure out how to integrate ODE
into
> Tuscany.  One obvious thought I have in my mind is to use the Tuscany
> Axis2
> Binding and invoke the BPEL process as a reference.  I am going to be
> digging into the OSOA specs for this and hope to get better clarity as I
> go
> along.
>
> I'd be happy to take advice from you folks on taking this forward.
>
> Thanks.
>
> Sam.
>
>
Hi Sam,

Its great you're interested in this, it would be really good to have BPEL
support in Tuscany. In case you didn't see due to all the ASF email
problems
over the last few days, the Ode guys have also just started talking about
this: http://www.mail-archive.com/[email protected]/msg10042.html.

I talked about how to start a new container in this old mail:

http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200610.mbox/browser
.
I'd start with trying to get a simple helloworld going which for this
would
be a combination of the Tuscany helloworldws sample and the Ode
axis2-examples HelloWorld2.

Basically start by copying the existing sample and one of the Tuscany
containers, rename everything to BPEL. Remember when you do the
copy/rename
there's scdl in the META-INF/sca directory that you'll need to edit to
update with the new class names.

As there's an existing SCA spec for this you get some help with what to
do.
The spec defines what the implementation element looks like:

      <implementation.bpel process="xs:QName"/>

So you'll need something like a BPELImplementation and
BPELImplementationLoader for that. Use one of the existing ones and just
change the  QName constant to be "implementation.bpel" and the code to
read
in the attribute named "process". A harder part will be how Tuscany
locates
the BPEL process XML, for now its likely easiest to add a location
attribute
and have the loader just read it in, and then sort this part out properly
later oncee things are working. So that would become:

      <implementation.bpel process="xs:QName" location="urlToBpelXml"/>

The SCA BPEL spec talks about using introspection to work out the services
and references used by the BPEL process, i'd leave this for later also and
just require a .componentType side file for now. Again, just use some
existing ComponentType and ComponentTypeLoader classes unchanged.

Copy some XxxComponent and XxxComponentBuilder classes and change them to
set up and create the necessary Ode objects, and an XxxInvoker to do the
invoking of the bpel process.

As the Ode people are also interested in doing this maybe you should try
to
work together. How about start with small patches which I can get
committed
to our sandbox so everyone can see how things progress.

Or would it help if I created a folder and template for this in the
sandbox
first for you all to send patches in against? Let me know...

   ...ant


Reply via email to