I suggest you get option 1 working before attempting option 2. I
suspect you will find lots of bugs and mismatched assumptions. Once
that is working, option 2 will be much easier to implement since you
know it "Should Work".
-dain
On Apr 25, 2007, at 1:23 PM, Jay D. McHugh wrote:
Hello Raymond,
I think it would almost be a shame if the only option for including
Tuscany in Geronimo was to package the runtime jar in individual
WAR files.
Tuscany would make an excellent (I think) plugin.
Option 2 definitely.
Jay
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