The Apache Tuscany team has released version 0.99 of its open source implementation of the Service Component Architecture (SCA). SCA is a set of specifications aimed at simplifying SOA Application Development which are being standardized at OASIS as part of Open Composite Services Architecture (Open CSA).
InfoQ had the chance to talk to lead developer Jean-Sebastien Delfino to get some more information.
Asked what parts of the SCA specifications are still missing, Jean-Sebastien replied:
It is difficult to predict what the OASIS OPENCSA workgroups are going to produce, but here are the areas of the spec that still need work IMO:
- Support for more languages in addition to Java, C, C++ and BPEL, with scripting languages including PHP, JavaScript, Ruby, Python, Groovy. Tuscany already supports these languages and we’re going to work on proposals for the spec workgroups. We also just got a code contribution to support XQuery, that’s another candidate proposal for the spec.
- More bindings, in Tuscany we have developed extensions for JSON-RPC, DWR, ATOM/RSS, RMI. I’d like to see the Web 2.0 bindings make their way to the spec.
- More SCA policies, including a Transaction policy (the spec Policy workgroup is already working on it).
There has been some debate before about whether the assembly model or the programming model part of SCA is more important. Tuscany supports both the SCA assembly model (both as a programming model and service network configuration model) and the SCA Java APIs and annotations. Jean-Sebastien is aware of these debates, and shared his opinion:
A business/integration application developer shouldn’t have to know 10 different APIs to develop in an SOA. For example, let’s take an application that needs to talk to a database, an ERP system, Web services and feed or two, and integrates with a Web 2.0 UI. With SCA and Tuscany, you will view all these things through a single Service programming model, not 10 different APIs… SCA is about simplifying the business application developer’s life, and the APIs are an important part of that story.
The Tuscany SCA-Java project does not only support the Java language, but also Groovy, Python, Ruby, Javascript (available in 0.99), XQuery (not included in 0.99 but already working in the trunk planned for 1.0). BPEL support, based on Apache ODE is scheduled for 1.0 as well (see also Paul Brown’s article on ODE here on InfoQ).
There are also Tuscany SCA-Native and SDO-C++ subprojects, which already had three releases. SCA-C++/Native provides support for SCA components written in C++, but also Python, Ruby and PHP, with good integration with the native Python, Ruby and PHP interpreters, support for Web Services with Axis2C, and REST with an integration with Apache Httpd as an Apache Httpd module. SDO-C++ provides a high performance implementation of the SDO API in C++ and integration with Axiom from Apache Axis2/C. There is also PHP support, provided by the SCA-SDO-PHP project.
Tuscany SCA-Java 0.99 is the last release before 1.0. IBM WebSphere Application Server V6.1 Feature Pack for SOA is one commercial product that leverages Tuscany already. According to Jean-Sebastien, the idea is to cut the 1.0 release branch mid September to get a 1.0 release out by the end of September.
Jean-Sebastien also asked us to point out that the Apache Tuscany team appreciates any contribution, including code, testing, improving the documentation, or bug reporting. To download or for more information about the release go to: http://incubator.apache.org/tuscany/sca-java-releases.html.