Introduction to the ApacheTuscany Incubator Project
Apache Tuscany
is an open source project in incubation at Apache that implements an SOA programming model supporting SCA and SDO specifications. It provides a simple "on ramp" for developers who want to create applications using a service-oriented approach, as well as allowing infrastructure developers to extend the Tuscany runtime by contributing additional component implementation types, protocol bindings, policies, and other extensions.
Tuscany provides a lightweight runtime that is not tied to any product or technology stack and can easily be embedded as a solution. Its flexible and extensible design allows it to integrate service implementation types ranging from programming logic components in a number of implementation and scripting languages such as BPEL, Rubby, Python, Spring to more specialized components providing capabilities such as database access, data transformation, and process choreography.
Tuscany was approved as an Apache incubator project in December 2005, with the initial code drop in January 2006. The first downloadable release (Tuscany M1) was produced in June 2006 and there has been multiple releases since then. (See "Project Links" below to download this.) The open source community implementing Tuscany has grown since its initial launch and now includes contributors and committers from a number of different companies and individual contributors and it is expected to increase further. Tuscany community [welcomes your contributions|http://incubator.apache.org/tuscany/getting-involved.html].
Technical Overview of Tuscany and Related Projects
The Tuscany is working towards completing implementation of SCA 1.0 specification in Java and C++ and provides support for SCA components written in the Java, JavaScript, Ruby, BPEL, and C++ programming languages, with bindings for Web services (Axis2), JSON/RPC and more. It also includes SDO 2.1 support for the Java and and SDO 2.01 support for C++ languages, and a relational Data Access Service for Java and C++.
SDO 2.01 support for PHP is available from the PECL site (PHP open source extensions repository) rather than as part of the Tuscany project. There are ongoing discussions in the SCA specification group about how SCA can be supported in the PHP environment. At the time of writing, there is no publicly available implementation of SCA for PHP.
Tuscany Relationship to the SCA and SDO Specifications
As an early implementer of the SCA and SDO specifications, the Tuscany project is able to provide valuable and timely feedback on the specifications and input to their evolution. In this way, Tuscany provides most of the benefits of a "reference implementation" of the specifications. However,Tuscany does not follow the typical "reference implementation" model of limiting its interests to the current content of the specifications. Instead, Tuscany aims to meet the needs of its users by providing an implementation that is a blend of the current specifications and additional capabilities. These additional capabilities may become part of the evolving specifications, or they may provide implementation-specific support that does not come within the scope of the specifications.
Tuscany Relationship to other Technologies
Tuscany integrates and interoperates with a number of other open source projects and related technologies. Tuscany can be hosted by Apache Tomcat so that Web applications can invoke and expose SCA services. Ode BPEL integration with Tuscany that allows BEPL components to be used in a composition ServiceMix is implementing a bridge to Tuscany that allows services in Tuscany to be accessed from the ServiceMix JBI environment. SCA services in Tuscany can interoperate with Microsoft WCF (Indigo) services using standard Web service bindings. Tuscany integration with Geronimo will be available soon.
Project Links
Apache Tuscany Incubator Web site![]()
Apache Tuscany Incubator release![]()
Apache Tuscany Incubator code![]()
SDO for PHP code![]()
SOA PHP Homepage