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 ([EMAIL PROTECTED] /ibm/x-36f69103afa7a9f8). [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 https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/containers/ [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 ([EMAIL PROTECTED]). [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: https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/databinding/ [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 container? [08:15] <ant> ok so a container includes an scdl file defining the classes it adds to the runtime, for example: [08:15] <ant> https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl [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= [EMAIL PROTECTED]). [08:18] <MatthieuR> makes sense [08:18] <ant> so you need a class that has a type name of implementation.bpel [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 interface [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: http://osoa.org/display/Main/SCA+BPEL+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 you [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> https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponentBuilder.java [08:34] <ant> that creates the runtime component for the container: [08:34] --> lmsurprenant has joined this channel ([EMAIL PROTECTED] /ibm/x-0ebeb92ae1964323). [08:34] <ant> eg: https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponent.java [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 service [08:35] <MatthieuR> we have a service name, port some kind of endpoint for it [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 (wire); [08:37] <ant> context.put(wire.getReferenceName(), wireProxy); [08:37] <ant> } [08:38] <ant> } [08:38] <ant> gets a proxy impementing the java interface for all the references [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 services [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 instance [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> https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java [08:52] <ant> in there it uses @Autowire to pick up things like the wsdl registry [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= [EMAIL PROTECTED]). [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 link [09:00] <MatthieuR> for all resources, to start with you can reuse the Axis implementation [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 datasource [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 mailing-list? [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 working? [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= [EMAIL PROTECTED]). [09:05] --> oisin has joined this channel ([EMAIL PROTECTED]). [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 tlp [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: org.apache.ode:ode-dao-hibernate-db-derby:tar:2.0-SNAPSHOT [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 out)). [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
