Tuscany SCA Java 1.2 and SDO 1.1 released.
SCA and SDO are a set of specifications initially developed by IBM and BEA and now maintained by OASIS Open Composite Services Architecture (Open CSA). The members of the working group include: IBM, BEA, Primeton, Sun, SAP, Oracle, Red Hat, SOA Software.
The Apache Tuscany SCA 1.2 release includes implementations of the main latest SCA specifications including:
- SCA Assembly Model V1.0
- SCA Policy Framework V1.0
- SCA Java Common Annotations and APIs V1.0
- SCA Java Component Implementation V1.0
- SCA Spring Component Implementation V1.0
- SCA BPEL Client and Implementation V1.0
- SCA Web Services Binding V1.0
- SCA EJB Session Bean Binding V1.0
- An improved SCA distributed domain support with an SCA Domain Manager application
- Support for JAXWS annotations
- Improved and simplified JMS binding
- A new Eclipse plugin providing a Tuscany runtime Library and Tuscany launcher in Eclipse environment.
- Integration with Web Container Testing Framework for Tuscany running in Tomcat, Jetty, Geronimo and Websphere
It also includes implementations of many features not yet defined by SCA specifications, including:
- SCA bindings for Direct Web Remoting, RSS and ATOM Feeds, HTTP resources, JSON-RPC, PUB/SUB Notifications, and RMI.
- Databindings for Service Data Objects (SDO), JAXB, XmlBeans, Axis2's AXIOM, JSON, SAXON, DOM, SAX and StAX
This version was tested with the following runtimes:
- Tomcat 5.5.20 and Tomcat 6.0.14
- Jetty 6.1.3
- Geronimo 2.0.2
- WebSphere 6.1 fix pack 9
Apache Tuscany SDO 1.1 release includes the following new features:
- Support attribute and element with same name
- Support for custom data binding of DataObjects in a Swing UI
It also includes numerous improvements to existing functionality and bug fixes.
InfoQ spoke with Luciano Resende from IBM, who contributed to the Apache Tuscany project.
InfoQ: Among all the features that this release has introduce which ones do you consider most important?
LR: SCA is about building distributed composite applications, and the new SCA distributed domain support with an SCA Domain Manager application allows you to build and deploy your solution into multiple SCA Nodes. These nodes can run on different platforms and runtimes (e.g Geronimo, Tomcat, Jetty, etc) or just plain J2SE. With OSGI support, users can now run Tuscany and SCA in a OSGI Runtime.The new Tuscany Eclipse plugin improves the user experience for developers building SCA applications. It integrates Tuscany with Eclipse to help you add the Tuscany runtime to your project; edit composites by providing code assist, and to run composites directly from your development environment.
InfoQ: Can you describe the plans to improve support for WS-BPELin Tuscany ?
LR: We have just accomplished another milestone towards better WS-BPEL and SCA Integration in the Tuscany trunk code. We now support references to SCA services as WS-BPEL processes partner links. Tuscany uses Apache ODE as a reference WS-BPEL engine, and ships part of ODE with its distribution. As for what's next, the following items come from a discussion on the subject:
- WS_BPEL Process introspection.
- Better support for asynchronous invocations.
- Replacement of ODE deployment descriptor with a SCA composite.
InfoQ: Is it possible to manage SCA configurations centrally?
LR: In the current Tuscany release it is possible to package an application with no binding configuration and define the binding endpoint and other properties at the SCA Domain Composite level. The SCA domain composite is a collection of composite files that are meant to contain that kind of information (network and binding configuration). In this case SCA Domain serves as a registry, which can be either centralized or distributed and track SCA metadata from various sources on your network.
InfoQ: Which policies does this release support out of the box?
LR: For the Web Services bindings, we have enabled authentication, integrity and confidentiality policies. We have also implemented support for JAAS based authentication for implementations using Java containers. We have left out JAAS based authorization because it seemed to be more about exercising authorization controls over Java resources.
The secure Big Bank demo demonstrates the combination of these two, where the web services binding is used to authenticate and pass the authenticated user token to the implementation java container which would then check for authorization.
We also support policies for logging.
InfoQ: Can you provide more details on JMS support?
LR: The JMS support allows you to declare JMS binding on services and references and configure/define a number of settings such as : JNDI URLs, Initial Context Factories, ConnectionFactory, JMS headers, source and destination queue to be used, etc. As for the other details, Tuscany is using ActiveMQ as it's default JMS provider but can be configured to use different providers as well, so some details would depend on the provider being used.
InfoQ: What additional features can we expect in the future?
LR: This will depend on the Tuscany Community, but from current discussions, I can think of following:
- Promote OSGi to a first class Tuscany runtime environment.
- More enhancements to Business Integration (BPEL).
- Updates based on SCA Specification resolved issues moving forward..
We also have various Google Summer of Code project ideas in progress, this might give a boost to Tuscany functionality on the following areas:
- Improved Web 2.0 Support integrating with Google Services.
- Integration with Map/Reduce.
- Mobile story - Running Tuscany on Android.
In addition, The STP/SCA sub project provides a set of tools for SCA development, that can simplify usage of Tuscany SCA implementation. Last month they have released a new tutorial First steps with the SCA Composite Designer, that provides step-by-step instruction on usage of these tools for SCA development.