ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matthieu.r...@gmail.com>
Subject Re: IRC chat on Ode/Tuscany integration: Thursday 2nd Nov 4pm GMT/8amPST (was Re: SCA and BPEL)
Date Thu, 02 Nov 2006 17:23:10 GMT
For those who couldn't attend, here is the transcript of the chat session:

[08:00] <MatthieuR> so shall we start on the BPEL / SCA topic a.k.a. ODE /
Tuscany ?
[08:00] <SamTam> yes..ofcourse...
[08:01] <MatthieuR> Alex is here as well, Lance tried to join us but he has
a firewall problem
[08:01] <MatthieuR> can't connect to IRC
[08:01] <ant> hi all
[08:01] <MatthieuR> hi ant
[08:01] <MatthieuR> how are you doing?
[08:02] <boisvert> Hi guys!
[08:02] <ant> doing fine...so Tuscany and Ode
[08:02] <ant> have you all had a look at the white paper and spec on the
osoa website?
[08:02] --> lmsurprenant has joined this channel (i=Lee@nat
[08:03] <boisvert> I'd like to know if anybody here has experience
integrating "engines" into Tuscany
[08:03] <boisvert> It would be good to have a model to follow
[08:03] <MatthieuR> I've had a look at the spec, not the white paper
[08:03] <SamTam> yes..i did look at the white paper ..Ant
[08:03] <SamTam> and SCA C & I model
[08:04] <ant> we have a few Tuscany containers now, which is whats reqd from
tuscany perspective, you can see the code at
[08:05] <MatthieuR> all run under java and c++ or some only run on Java and
others on C++ ?
[08:05] <ant> those are only the java ones
[08:06] <MatthieuR> ok, nice
[08:06] <ant> the C++ has extensions as well but its quite seperate
[08:06] <MatthieuR> the code doesn't seem that big, that's nice
[08:06] <SamTam> Is there  another  way to contact SCA ie by bindings ? Am i
right Ant ?
[08:07] <boisvert> what kind of XML representation does Tuscany use
internally?   DOM?
[08:07] <ant> Sam, yes, but the bpel spec talks about using an
impelementtaion type not a binding
[08:07] <SamTam> oh ok Ant
[08:08] --> Amita has joined this channel (n=amita@
[08:08] <ant> there's a runtime databinding framework which means the
runtime will give the extension data in whatever type it requires
[08:08] <-- lmsurprenant has left this server (Read error: 131 (Connection
reset by peer)).
[08:09] <MatthieuR> and which types are currently supported?
[08:09] <ant> the extesnion tells the ri=untime what it requires, and maybe
contrabutes a databinding extension, and then the runtime uses that to
transform the message to whats needed
[08:09] <ant> right now there's sdo, jaxb, cator and axiom:
[08:10] <ant> i thnk also as part of the runtime DOM and StaAx
[08:10] <ant> what does Ode use internally?
[08:10] <boisvert> neat!
[08:10] <MatthieuR> mostly DOM
[08:11] <MatthieuR> we convert Axiom as well for Axis2
[08:11] <boisvert> and to/from JAXP Sources with JBI
[08:11] <MatthieuR> right
[08:11] <MatthieuR> I guess the format that would make sense for now would
be DOM
[08:12] <ant> so tuscany should be able to just give the Ode extension DOMs
so it should would quite easily
[08:12] <MatthieuR> so how many interfaces you need to implement to build a
[08:15] <ant> ok so a container includes an scdl file defining the classes
it adds to the runtime, for example:
[08:15] <ant>
[08:16] <ant> the loader as the class that handles the XML config file
[08:17] <ant> for BPEL the spec defines the XML as:
[08:17] <ant> <component name="xs:NCName">*
[08:17] <ant>    <implementation.bpel process="xs:QName"/>
[08:17] <ant> </component>
[08:17] --> halehM has joined this channel (n=
[08:18] <MatthieuR> makes sense
[08:18] <ant> so you need a class that has a type name of
[08:18] <ant> and that will pick up the process= attribute
[08:18] <MatthieuR> and how would deployment work? for now we use deployment
packages that contain BPEL files, WSDL and XSD files and a deployment
descriptor, so that's not only a BPEL
[08:19] <ant> what is your deployment package? sometheing liek a jar file?
[08:19] <SamTam> i think they have some war file..(ode.war) ..
[08:20] <MatthieuR> it's either a zip or an exploded directory version of it
that you can copy under a "well-known" location
[08:20] <MatthieuR> the war is the whole thing
[08:20] <SamTam> oh ok
[08:20] <MatthieuR> but when you deploy a "processes" directory gets created
in ode/WEB-INF
[08:21] <MatthieuR> so dropping a directory in processes containing all the
necessary files will trigger hot deployment
[08:21] <MatthieuR> but we also support remote deployment using a ws
[08:21] <MatthieuR> and then you send a SOAP message using a MTOM attachment
with your zip file in there
[08:21] <MatthieuR> but that's for Axis2
[08:22] <MatthieuR> I guess the mechanism would be different with scca
[08:22] <MatthieuR> sca
[08:22] <ant> that would be with Ode handling the sending and receiveing of
WS messages
[08:23] <ant> yes, with a BPEl container i think Tuscany would need to
handle the sending/receiving
[08:23] <MatthieuR> right but the deployment in handled by Tuscany right?
and we would be notified when a complete service bundle is deployed (could
contain bpel, ruby and javascript)
[08:23] <ant> so as in the picture in the white paper:
[08:24] <MatthieuR> right
[08:24] <ant> in the simplest case the service and references would be wired
to WS bindings so the BPEL/Ode process would directly receive/send the WS
messages via tuscany
[08:24] <MatthieuR> yep
[08:25] <ant> one thing i wondered about, one of you samples talked about
receiveing back and endpoint from a partner link to use for future messages
[08:26] <MatthieuR> yes
[08:26] <ant> i'm not sure how we would support that
[08:26] <SamTam> Is partnerlink similar to Service and reference ?
[08:26] <MatthieuR> bpel supports assignment of partner links
[08:26] <MatthieuR> yes
[08:26] <MatthieuR> so you could receive a message containing an endpoint
[08:26] <MatthieuR> the easiest being a simple url
[08:26] <ant> what does "assignmengt of partner links" mean?
[08:27] <MatthieuR> and the you assign that endpoint to a partner link
[08:27] [Notice] -christel- [Global Notice] Hi again! I'm afraid we jumped
the gun a bit too early, the network is not under a DDoS attack, it appears
one of our staffers found a bug in our ircd. We should be all set and good
now. Thank you for using freenode and have a good day.
[08:27] <MatthieuR> it's like saying partnerlink.address = endpoint
[08:27] <MatthieuR> then when you invoke that partner link again
[08:27] <MatthieuR> you use the new endpoint that has just been assigned to
[08:28] <SamTam> client invokes BPEL by a partenrlink right ?
[08:28] <MatthieuR> yes
[08:28] <ant> right now we have no way of doing that in tuscany. the
endpoints associated with arefernece are static
[08:28] <MatthieuR> well, you declare a receive using a partner link
[08:29] <MatthieuR> and how these are called?
[08:29] <MatthieuR> so I define 10 references
[08:29] <MatthieuR> I could assign 1 of these to a partner link
[08:29] <MatthieuR> that would work as long as Tuscany knows them right?
[08:30] <ant> yes
[08:31] <MatthieuR> which interface do we have to implement to invoke
another service in Tuscany?
[08:33] <ant> so thee was the implementation loader we talked about earlier
[08:33] <ant> then there is a builder, eg:
[08:33] <ant>
[08:34] <ant> that creates the runtime component for the container:
[08:34] --> lmsurprenant has joined this channel (i=Lee@nat
[08:34] <ant> eg:
[08:35] <ant> there's SPI helper abstarct classes, AtomicComponentExtension
[08:35] <ant> which that uses
[08:35] <MatthieuR> right, that's the container implementation
[08:35] <MatthieuR> know say that the container has to invoke another
[08:35] <MatthieuR> we have a service name, port some kind of endpoint for
[08:36] <MatthieuR> how would we do that?
[08:36] <ant> that AtomicComponentExtension instance has the referneces set
on it by the runtime
[08:37] <ant> just finding the code, pc's a bit slow...
[08:37] <MatthieuR> no rush :)
[08:37] <ant> they're teh outbound wires
[08:37] <ant> so this code in the component:
[08:37] <ant>         for (List<OutboundWire> referenceWires :
getOutboundWires().values()) {
[08:37] <ant>             for (OutboundWire wire : referenceWires) {
[08:37] <ant>                 Object wireProxy = wireService.createProxy
[08:37] <ant>                 context.put(wire.getReferenceName(),
[08:37] <ant>             }
[08:38] <ant>         }
[08:38] <ant> gets a proxy impementing the java interface for all the
[08:38] <ant> for Ode i guess you may not need a proxy
[08:39] <MatthieuR> what is the proxy for?
[08:39] <ant> so ou could just get he wire handler  directly
[08:40] <MatthieuR> ok, I see
[08:40] <ant> its so you have a proxy object representing the reference
iterface, ie. a reference to a stockquote service would have a proxy with a
method float getQuote(String)
[08:41] <MatthieuR> ok, sounds fine
[08:41] <ant> but you probably don't need that and could just skip the proxy
and send message passing in the DOM and operation name
[08:41] <MatthieuR> yep
[08:42] <MatthieuR> now back to deployment, say I deploy a package with a
Javascript service, calling a BPEL service, calling a couple of ruby
[08:42] <MatthieuR> so I can have several js files in there, bpel and wsdl
files and several ruby files
[08:43] <MatthieuR> what does Tuscany gives to the engine? the list and
location of files associated with my service?
[08:45] <ant> i guess its up to you builder class to sort out. Th
eimplementation loader passes the implementation.bpel xml and creates an
Implementation, thats given to your Buidler class and its up to that to
create the component instance with whatever it needs
[08:45] <ant> it has access to varrious classloaders etc so can read files
and other config
[08:46] <ant> but its really down to the builder to get whatever it needs
[08:46] <MatthieuR> I see, to basically we would get the location of the
BPEL file and then would have to find the other things we need with that?
[08:46] <ant> the whole deployment thing is a bit vague in SCA right now,
apparently up coming versions of the spec may clarify some of that
[08:46] <ant> yes
[08:47] <MatthieuR> ok, I see
[08:47] <MatthieuR> Ode also needs several resources to run, like a
transaction manager, a datasource, a thread executor, ...
[08:48] <MatthieuR> are there ways to get some of these from Tuscany of
would we have to run with Tuscany, say, in Geronimo?
[08:48] <ant> there's a workScheduler thats passed in to the component
[08:49] <MatthieuR> and for tx mgr and datasource?
[08:50] <ant> we don't do transactions just yet, but these things would just
be defined as Tuscany system services and the you'd autowire them to you
componnet with annotations
[08:50] <ant> looking for an example...
[08:52] <ant>
[08:52] <ant> in there it uses @Autowire to pick up things like the wsdl
[08:53] <ant> so you'd could do the same type of thing
[08:53] <ant> what do you need a datasource for?
[08:53] <MatthieuR> getting database connections
[08:55] <ant> there's people working on that type of thing right now in
Tuscany but there's nothing going just yet
[08:55] <ant> maybe almost, i'd have to check
[08:55] <MatthieuR> ok
[08:56] <ant> I'm going to have to go soon
[08:56] --> mszefler has joined this channel (n=
[08:56] <MatthieuR> so for now we would have to implement Tuscany services
to provide a tx manager and a datasource
[08:56] <ant> so whats next
[08:56] <MatthieuR> ok
[08:57] <SamTam> can i say something ?
[08:57] <MatthieuR> sure :)
[08:57] <ant> we'llneed to discuss the bext way to handle those on the
mailing list i think, i'm sure some others will have ideas about how it
should be done
[08:57] <SamTam> why cant we try/start  a very simple helloworld program ...
[08:58] <SamTam> once things go well we can go for more complex things
[08:58] <MatthieuR> the thing is Ode will require a basic set of service to
do even simple things
[08:59] <SamTam> oh ok
[08:59] <ant> so take the Ode axis sample HelloWorld2
[08:59] <SamTam> i am having it ..
[08:59] <MatthieuR> yes, that would be the easiest example
[08:59] <MatthieuR> the thing you could start with
[08:59] <MatthieuR> is just having another SCA component invoke Ode
[08:59] <MatthieuR> without having Ode invoking anything
[09:00] <MatthieuR> just replying to you
[09:00] <MatthieuR> and then you can do the other side
[09:00] <MatthieuR> with Ode invoking somebody else
[09:00] <SamTam> I am listening
[09:00] <ant> so that would be an SCA service with a WS binding wired to a
ode bpel component wired to a reference with a ws binding for the partner
[09:00] <MatthieuR> for all resources, to start with you can reuse the Axis
[09:01] <MatthieuR> yep
[09:01] <SamTam> ok
[09:01] <MatthieuR> our Axis2 IL can run in fairly isolated environments,
like a simple Tomcat
[09:01] <MatthieuR> it's going to use Jotm as tx mgr and create its own
[09:02] <MatthieuR> and then you can clean up little by little and declare
these as Tuscany services
[09:02] <SamTam> ok..
[09:02] <MatthieuR> and we'll see maybe depending on feedback from the
[09:02] <ant> that all sounds a reasonable approach to me
[09:02] <SamTam> will try my very best !
[09:03] <MatthieuR> ant you said you could setup a sandbox for sam to start
[09:03] <MatthieuR> so we can check the code and myabe give him a hand here
and there?
[09:03] <-- oisin has left this server.
[09:03] <ant> yes, thats probably a good way to go
[09:03] <MatthieuR> yes, I think so too
[09:04] <MatthieuR> sam, would that be okay for you?
[09:04] <SamTam> actually i am little new  to this : one sec
[09:05] --> rfeng has joined this channel (n=
[09:05] --> oisin has joined this channel (n=oisin@
[09:05] <SamTam> ok..what is sandbox..a place to practice ?
[09:06] <ant> yes, just a place in SVN to put code
[09:06] <SamTam> ok..
[09:06] <ant> that way we can all see and add code to help things along
[09:06] <SamTam> i am in
[09:06] <MatthieuR> that would still mean working with patches right?
[09:07] <ant> unfortunately yes, i wonder if there's a way around that
[09:08] <ant> can maybe discuss that on the ML, but start with the sanbox
dir for now
[09:08] <MatthieuR> unfortunately I don't think so
[09:08] <MatthieuR> yes
[09:08] <MatthieuR> so sam you would have to create patches and attach them
to Jira issues
[09:09] <ant> is there a sponsoring PMC for Ode or is it the incubator PMC?
[09:09] <MatthieuR> maybe a single Jira issue at least for the start
[09:09] <SamTam> ok..will learn these things
[09:09] <MatthieuR> incubator PMX
[09:09] <MatthieuR> PMC sorry
[09:10] <MatthieuR> nobody could agree whether it should be ws, geronimo or
[09:10] <MatthieuR> so that will be decided upon graduation
[09:11] <ant> ok, i'll go set that up and send an email when done, maybe
copy in some template code and we can go  from there
[09:11] <MatthieuR> cool
[09:12] <ant> i still need to get Ode building so will try to sort that out
[09:12] <MatthieuR> I'll send an e-mail on tuscany-dev  to see if there are
things we can reuse for tx and datasource
[09:12] <ant> ok
[09:12] <MatthieuR> mhh it should build easily know, the apache infra seems
to be back on track
[09:13] <MatthieuR> are we finished?
[09:13] <ant> have tried whil on this chat, can't find:
[09:13] <ant> but i'll try to sort that out
[09:14] <MatthieuR> try to cd to 'dao-hibernate-db-derby' module, run maven
install and then run it again from the root
[09:14] <SamTam> Guys just one info : I am little new so i request you all
to help me out whenever needed
[09:14] <-- vanto has left this server (Read error: 110 (Connection timed
[09:14] <MatthieuR> sure
[09:14] <ant> of course, there's usually someone around on the tuscany irc
[09:15] <SamTam> thank you very much..
[09:15] <MatthieuR> no pb
[09:15] <SamTam> I am doing as my project for my course
[09:15] <MatthieuR> thank you for all your answers ant
[09:15] <SamTam> in college..
[09:15] <ant> Thank you, its been interesting
[09:15] <MatthieuR> yep
[09:16] <ant> we can all hlep you try to get a good mark ;)
[09:16] <SamTam> Thank you both for providing a good support
[09:16] <ant> i need to run...ttyal
[09:17] <SamTam> Me too...
[09:17] <SamTam> Bye Ant..
[09:17] <SamTam> Mattieu...I have to leave too
[09:19] <MatthieuR> ok, bye all
[09:19] <rajith> rfeng, hello
[09:19] <SamTam> Bye...Will keep you guys updated.. Bye

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message