239 lines
8.7 KiB
Text
239 lines
8.7 KiB
Text
|
Apache Tuscany Proposal
|
||
|
|
||
|
RATIONALE
|
||
|
=========
|
||
|
|
||
|
Tuscany provides multiple language implementations of the Service Component
|
||
|
Architecture (SCA) specifications and related technologies such as SDO (links
|
||
|
to these specifications are in the "Initial Source" section of this proposal).
|
||
|
|
||
|
Its overall goal is to simplify the implementation of services and the
|
||
|
composition of heterogeneous service networks by building infrastructure
|
||
|
bridging the gaps between language-specific application component
|
||
|
implementation technologies (e.g. Java EE, BPEL, Spring, etc) using SOA
|
||
|
concepts/design approaches (e.g. web services, loosely coupled asynchronous
|
||
|
messaging, ESBs, etc).
|
||
|
|
||
|
The seed code for the project will consist of in-progress C++ and Java
|
||
|
implementations of several SCA specifications that we intend to continue
|
||
|
development on in conjuction with other Apache communities. More information on
|
||
|
the scope of the seed code can be found in subsequent sections of this
|
||
|
proposal.
|
||
|
|
||
|
CRITERIA
|
||
|
========
|
||
|
|
||
|
Meritocracy:
|
||
|
|
||
|
The Tuscany committers recognize the desirability of running the project as a
|
||
|
meritocracy; indeed, the scope of the project is so broad that we find it hard
|
||
|
to envision success any other way. One of the lessons taken from the historic
|
||
|
development of middleware is that specifications developed in isolation from
|
||
|
real usable code or amongst a narrowly restricted list of contributors often do
|
||
|
not see widespread adoption. We are eager to engage other members of the
|
||
|
community and operate to the standard of meritocracy that Apache emphasizes.
|
||
|
|
||
|
Community:
|
||
|
|
||
|
Tuscany is not based on an existing open source community, but the contributors
|
||
|
involved have experience participating in and building other open source
|
||
|
communities. A primary objective of the project is to build a vibrant community
|
||
|
of users and active contributors.
|
||
|
|
||
|
Core Developers:
|
||
|
|
||
|
Most of the initial committers are members of BEA and IBM development teams. 4
|
||
|
are committers on other Apache projects.
|
||
|
|
||
|
Alignment:
|
||
|
|
||
|
An initial implementation has been written in Java and has already been
|
||
|
integrated with Apache Tomcat as a deployment platform; it is expected that
|
||
|
this implementation will soon be integrated with other Java middleware
|
||
|
environments including Apache Geronimo and ObjectWeb Celtix. This
|
||
|
implementation makes extensive use of projects from the Apache Web Services
|
||
|
community, including Axis and associated tools; future implementation of
|
||
|
policies will increase the collaboration with other web service projects.
|
||
|
|
||
|
Another implementation has also been written in C++ and has been integrated
|
||
|
with Apache HTTPD and the Axis C++ project.
|
||
|
|
||
|
The scope of the project is broader than just Java and C++, and some
|
||
|
development has started on component containers for other programming languages
|
||
|
including BPEL and PHP.
|
||
|
|
||
|
As a broad goal is to present a SOA development model that mediates over a
|
||
|
variety of middleware technologies, there is potential synergy with many other
|
||
|
Apache projects including:
|
||
|
|
||
|
* Customized component/application packaging and deployment on Geronimo
|
||
|
* Data access integration with Beehive controls
|
||
|
* XML model representation and parsing using XMLBeans
|
||
|
* Language/platform neutral messaging infrastructure using Synapse
|
||
|
* OSGi packaging and deployment on Felix
|
||
|
|
||
|
AVOIDING THE WARNING SIGNS
|
||
|
==========================
|
||
|
|
||
|
Orphaned products:
|
||
|
|
||
|
The initial code submission is based on active code developed collaboratively
|
||
|
by BEA and IBM who believe that its continued evolution in an open community
|
||
|
will lead to a stronger, more widely accepted foundation for development of
|
||
|
SOA-based applications.
|
||
|
|
||
|
Inexperience with open source:
|
||
|
|
||
|
Several of the committers have experience working on open source projects and
|
||
|
are committers on other Apache projects. The seed materials have been
|
||
|
co-developed in an environment that is structurally similar to open source
|
||
|
communities (for example, design decisions made over mailing lists based on
|
||
|
technical merit).
|
||
|
|
||
|
Homogenous developers:
|
||
|
|
||
|
The current list of committers includes developers from several different
|
||
|
companies who are geographically distributed across the U.S., Europe, and Asia.
|
||
|
They are experienced with working in a distributed environment, and with
|
||
|
resolving technical differences outside the scope of a common employer.
|
||
|
|
||
|
Reliance on salaried developers:
|
||
|
|
||
|
Most of the initial developers are paid by their employers to contribute to
|
||
|
this project; however, this includes three independent employers with track
|
||
|
records for ongoing investment in open source communities (including Apache
|
||
|
and Eclipse).
|
||
|
|
||
|
No ties to other Apache products:
|
||
|
|
||
|
As described in the Alignment section, this framework already has ties to many
|
||
|
Apache products. The initial codebase is already licensed under the Apache
|
||
|
License 2.0.
|
||
|
|
||
|
A fascination with the Apache brand:
|
||
|
|
||
|
The committers are intent on developing a strong open source community around
|
||
|
frameworks that treat SOA-centric design in a first-class manner. We believe
|
||
|
that the Apache Software Foundation's emphasis on community development makes
|
||
|
it the most suitable choice for such a project.
|
||
|
|
||
|
SCOPE OF SUBPROJECTS
|
||
|
====================
|
||
|
|
||
|
The initial contributors envision an active community of related projects
|
||
|
sharing a common model for SOA applications but targeting specific technical
|
||
|
areas of that model.
|
||
|
|
||
|
Tuscany will be seeded with several projects based on donated material (see
|
||
|
the next section):
|
||
|
|
||
|
* an assembly model defining a mechanism for composing SOA applications
|
||
|
* a Java implementation running on top of Tomcat and Axis
|
||
|
* a Java implementation of SDO2 and a data access subsystem
|
||
|
* a C++ implementation running on top of Apache HTTPD and Axis C++
|
||
|
* a C++ implementation of SDO2
|
||
|
|
||
|
To assist in community building the committers have identified several key
|
||
|
technology areas that will allow new contributors to actively engage in the
|
||
|
project. These include:
|
||
|
|
||
|
* transition web service integration to Axis2
|
||
|
* integration with Axis2 policy implementations for security, transactions,
|
||
|
reliable messaging
|
||
|
* support heterogeneous components written in C/C++, BPEL, PHP and other
|
||
|
languages
|
||
|
* support callbacks, allowing a component to call back to the service that
|
||
|
invoked it
|
||
|
* support asynchronous calls using JMS
|
||
|
* support typesafe SDOs in the C++ implementation of SDO2
|
||
|
|
||
|
These initial projects are intended merely as starting points and should not
|
||
|
be taken as bounding the scope of the Tuscany project as a whole. Some other
|
||
|
potential projects may include:
|
||
|
|
||
|
* Integration with existing development frameworks (such as JEE5/EJB3 or
|
||
|
Spring).
|
||
|
* Integration with rich middleware frameworks (such as Celtix or
|
||
|
ServiceMix).
|
||
|
* Frameworks for providing service-oriented data access to a variety of
|
||
|
existing resources.
|
||
|
* Richer tooling support for SOA-based applications, especially in the
|
||
|
areas of services composition, monitoring and policy administration.
|
||
|
|
||
|
INITIAL SOURCE
|
||
|
==============
|
||
|
|
||
|
A group of vendors are developing a set of specifications relating to the
|
||
|
design and composition of systems using SOA, collectively called Service
|
||
|
Component Architecture (SCA). In progress versions are available at:
|
||
|
|
||
|
* http://dev2dev.bea.com/pub/a/2005/11/sca.html
|
||
|
* http://www.ibm.com/developerworks/library/specification/ws-sca/
|
||
|
* http://www.iona.com/devcenter/sca/
|
||
|
* http://oracle.com/technology/webservices/sca
|
||
|
* https://www.sdn.sap.com/
|
||
|
* http://www.sybase.com/sca
|
||
|
|
||
|
The initial contributors have been developing Java and C++ code bases (already
|
||
|
licensed under the Apache License 2.0) which implement aspects of these
|
||
|
specifications, and intend to donate it to Apache. A snapshot of this code has
|
||
|
been uploaded to JIRA and is is available at:
|
||
|
|
||
|
* http://issues.apache.org/jira/browse/INCUBATOR-8
|
||
|
|
||
|
Although the Tuscany project expects to bootstrap using these materials and in
|
||
|
the case of specifications, to provide feedback that will be incorporated into
|
||
|
their ongoing development, we expect and encourage the open source community to
|
||
|
take the project in new directions not envisioned by them.
|
||
|
|
||
|
ASF resources to be created
|
||
|
mailing list(s)
|
||
|
|
||
|
* tuscany-dev@ws.apache.org
|
||
|
* tuscany-commits@ws.apache.org
|
||
|
|
||
|
Subversion repository
|
||
|
|
||
|
* https://svn.apache.org/repos/asf/incubator/tuscany
|
||
|
|
||
|
Jira
|
||
|
|
||
|
* Tuscany (TUSCANY)
|
||
|
|
||
|
INITIAL COMMITTERS
|
||
|
==================
|
||
|
|
||
|
* Jeremy Boynes
|
||
|
* Frank Budinsky
|
||
|
* Don Cai
|
||
|
* Jean-Sebastien Delfino
|
||
|
* Mike Edwards
|
||
|
* Padmapriya Illindala
|
||
|
* Jim Marino
|
||
|
* Geir Magnusson Jr.
|
||
|
* Eddie O'Neil
|
||
|
* Radu Preotiuc-Pietro
|
||
|
* Rick Rineholt
|
||
|
* Pete Robbins
|
||
|
* Michael Rowley
|
||
|
* Edward Slattery
|
||
|
* Ken Tam
|
||
|
* Alexandre Vasseur
|
||
|
* Kevin Williams
|
||
|
|
||
|
APACHE SPONSOR
|
||
|
==============
|
||
|
|
||
|
The WS PMC has voted to accept this project into the WS project upon successful
|
||
|
incubation.
|
||
|
|
||
|
Champion
|
||
|
|
||
|
* Geir Magnusson Jr.
|
||
|
|
||
|
Mentors:
|
||
|
|
||
|
* Sam Ruby
|
||
|
* Davanum Srinivas (Dims)
|
||
|
|