blob: 4fb0106d64d1843059300ecbffdbfff52c67573b [file] [log] [blame]
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)