InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Apache Tuscany Open Source SCA Implementation Approaches 1.0 Release

Posted by Stefan Tilkov on Sep 06, 2007

Sections
Development,
Enterprise Architecture
Topics
SOA Platforms ,
Java ,
SOA ,
SOA Appliance
Tags
Service Component Architecture

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.

  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.