Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 56640 invoked from network); 10 May 2007 12:25:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 May 2007 12:25:17 -0000 Received: (qmail 99028 invoked by uid 500); 10 May 2007 12:25:22 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 98987 invoked by uid 500); 10 May 2007 12:25:21 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 98972 invoked by uid 99); 10 May 2007 12:25:21 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 May 2007 05:25:21 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of manu.t.george@gmail.com designates 209.85.132.242 as permitted sender) Received: from [209.85.132.242] (HELO an-out-0708.google.com) (209.85.132.242) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 May 2007 05:25:13 -0700 Received: by an-out-0708.google.com with SMTP id d40so152947and for ; Thu, 10 May 2007 05:24:52 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=Wx9jl1FHNxHsF361YOizLhd3EgAUDtlYSqWWvegFmZlbAivwuvinajtHJ2Y/+jWq+x/u4YXze2C22j1oCQlysLl+6Q3MX9cGz91yQ2A5fTrOiValQ93ack4dDlXE8/0o+qgv11EI4RmBchlD2MfzwaXBPD773j68BH1wIdJpi8c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=hVwPPyy/yUg6KenjDOZaxL9pPGi9n7jdbbGBCS0sbyFv06bR31q33MBCno1MDBjnvgwBGCSB6QRh0e3AH4AN/RI6rLOIrOWp86pJA/vZ4SwQuMSxPK1czeUGWSE/4soo9QQmbUiuD4qH8uXljoT4LuO6qKUSWmt3/LK2GfgyXjw= Received: by 10.100.121.12 with SMTP id t12mr140030anc.1178799891377; Thu, 10 May 2007 05:24:51 -0700 (PDT) Received: by 10.100.42.11 with HTTP; Thu, 10 May 2007 05:24:51 -0700 (PDT) Message-ID: <466797bd0705100524j2252cf62yd77284801d4f0810@mail.gmail.com> Date: Thu, 10 May 2007 17:54:51 +0530 From: "Manu George" To: dev@geronimo.apache.org Subject: Re: Geronimo/Tuscany integration Cc: tuscany-dev@ws.apache.org In-Reply-To: <00ad01c78773$af741e40$0300a8c0@rfengt60p> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <00ad01c78773$af741e40$0300a8c0@rfengt60p> X-Virus-Checked: Checked by ClamAV on apache.org Hi Raymond/Jay, I would like to join this effort. I would like to discuss what is expected of the deep integration. I will just list down my understanding of both the current and proposed integrations Understanding of the Current Integration 1) TuscanyContextListener creates an SCA domain when the servlet is created and then destroys it when the servlet is destroyed. 2) During SCA domain creation it looks up the composites and deploys them in the domain Creates a webapp module activator for registering servlet hosts. 3) Finally we have a servlet that forwards requests to the servlet registered with the Tuscany Servlet Host. 4) An SCADomain is created for each application and we can lookup the services from the SCADomain. 5) During SCADomain creation a runtime is also created for the DefaultSCADomain. 7) All tuscany classes are loaded repeatedly for each application in separate classloaders. 8) A runtime is created per application Understanding/Doubts about the proposed Integration. 1) Each SCA application will have an SCA module which will be a jar with an SCDL in META-INF. This jar can also be part of an EAR. . There will be a Tuscany deployer that will take care of deploying the SCA modules. Should WAR files be also able to contain SCA jars? 2) Each App will have an SCA Domain which will be instantiated when the application starts. Is this assumption correct or can there be multiple SCADomains per app? 3) The Tuscany classes are loaded only once and then shared between the different SCA applications. 4) There will be multiple domains instantiated from different applications and there should be a server wide domain registry where applications can look up and invoke different composites from domains different from their own. (Can this be Global JNDI/Gbean refs or is there something specific in tuscany). 5) There should be only a single Tuscany Runtime for the entire geronimo instance. 6) How can we lookup the services running in one geronimo instance from an app in another geronimo instance. Is this supported in Tuscany These are just the initial set of points/questions that hit me when I thought about the integration. Jay /Raymond I guess you guys will be aware of many other points as well. Can you reply with your analysis so that we can flesh out the requirements completely in the mailing list. That way both the communities can contribute their thoughts. If you have already started can you just point me to where I can catch up on what has happened? Thanks Manu On 4/26/07, Raymond Feng wrote: > Hi, Geronimo community. > > As you may know, Tuscany is an Apache project under incubation to provide an > open source SOA infrastructure. For more information, you can visit > http://cwiki.apache.org/TUSCANY/. > > Tuscany implements the SCA specification (http://www.osoa.org) and allows > you to develop and run SCA components in various hosting environments. We > currently integrate with Tomcat and Jetty and would like to try to integrate > with Geronimo as well. I would like to start some discussions here to figure > out the best way to do that. > > After some preliminary investigations of Geronimo, I feel that there are two > options on the table so far. > > 1) Shallow integration: Package SCA applications together with the Tuscany > runtime as WARs and deploy them Geronimo as Web applications. It's basically > the integration with a Web container. We register a TuscanyContextListner > (which implements javax.servlet.ServletContextListener) in web.xml to > start/stop the Tuscany runtime when the web application is started/stopped. > > This will allow us to support the following use cases: > * A Web application hosted by Geronimo with business logic written as SCA > components > * Expose one or more SCA components as Web services over HTTP as supported > by the Web container. > > 2) Deep integration: We package the Tuscany runtime and its dependencies as > Geronimo modules and deploy them to Geronimo (which is similar to how Tomcat > is integrated as the Web container for Geronimo). We can then create a > Tuscany plugin (a collection of modules) so that it can be added to > Geronimo. The Tuscany container will then handle SCA-specific deployment > plans to install SCA applications and provide runtime infrastructure for > them. > > On top of Option 2, we could further integrate Geronimo's J2EE capabilities > such as EJB, WS, JMS and JCA with Tuscany. Basically, SCA components will be > able to access JEE services (using SCA composite references) and SCA > components will be able to expose services (SCA composite services) over JEE > protocols as well. > > This will allow us to support the following use cases: > * Any J2EE application hosted by Geronimo would be able to take advantage of > SCA programming model > * Provide SCA services over various protocols such as RMI/IIOP, JMS and JCA > * Invoke existing JEE applications (EJB, JMS backend, JCA-based EIS or Web > Services) from SCA components > > Any thoughts? > > Thanks, > Raymond > Apache Tuscany committer > >