Tuscany Proposal

0.  Rationale

Recent years have seen the introduction of a variety of specifications,
frameworks and products (both commercial and open source) that have
focused strongly on ease-of-development for enterprise applications by
reducing the complexity for a typical application developer.  In
parallel, the architectural style known as Service-Oriented Architecture
(SOA) has been growing in popularity, with its emphasis on loose
coupling of heterogeneous functional units, well-defined business-level
interfaces and contracts between those interfaces, and clean separation
between interface and implementation.

While SOA principles are not new, best practices and implementation
technologies tailored for them are in their infancy. To simplify the
composition of SOA-based systems, a set of frameworks and solutions are
needed that are designed from the ground up to define these practices
and provide widely accessible implementation technologies.  These
technologies differ from existing solutions in that they must address
the challenges in assembling large-scale, loosely-coupled,
service-oriented applications.

Tuscany aims to provide the infrastructure to bridge the gap between
current language-specific application component implementation
technologies and higher-level SOA concepts and design approaches.  As a
truly open, language-neutral, community focused organization operating
under open licensing terms, Apache is in a unique position to help
pioneer work in this nascent area.


0.1 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.

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

0.2  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.

1. Scope of the 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).
 * 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.

2. Identify the initial source from which the subprojects are to be
populated

A group of vendors are developing a set of specifications relating to
the design and composition of systems using SOA.  In progress versions
are available at:

* [WWW] http://dev2dev.bea.com/pub/a/2005/11/sca.html
* [WWW] http://www.ibm.com/developerworks/library/specification/ws-sca/
* [WWW] http://www.iona.com/devcenter/sca/
* [WWW] http://oracle.com/technology/webservices/sca
* [WWW] https://www.sdn.sap.com/
* [WWW] http://www.sybase.com/sca

The initial contributors have been developing a Java and C++ code base
(already licensed under the Apache License 2.0) which implements 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:

* [WWW] 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 the open source
community to take the project in new directions not envisioned by them.


3. Identify the ASF resources to be created

3.1 mailing list(s)

    * tuscany-ppmc
    * tuscany-dev
    * tuscany-commits
    * tuscany-user

3.2 Subversion repository

    * [WWW] https://svn.apache.org/repos/asf/incubator/tuscany

3.3 Jira

    * Tuscany (TUSCANY)

4. Identify the initial set of committers:

    * Jeremy Boynes
    * Frank Budinsky
    * 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

5. Identify Apache sponsoring individual

We request that the Apache Incubator PMC sponsor Tuscany as an
incubating project, with the eventual goal of graduation as a TLP.  The
initial contributors feel the scope of the project doesn't clearly
overlap with any existing TLP, and is broad enough to justify eventual
TLP status.

Champion:    Geir Magnusson Jr.

Mentors:     Sam Ruby
             Davanum Srinivas (Dims)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to