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]
