InfoQ

News

Strengthening the Alliance Between Java EE and SCA

Posted by Boris Lublinsky on Apr 03, 2008 09:00 AM

Community
SOA
Topics
WS Standards,
SOA Platforms
Tags
Service Component Architecture,
Java EE

The Open SOA collaboration has just published a 0.9 draft of the SCA Java EE Integration specification. This specification defines the integration of SCA and Java EE within the context of a Java EE application, the use of Java EE components as service component implementations, and the deployment of Java EE archives either within or as SCA contributions. It defines a model of using SCA assembly in the context of a Java EE runtime that enables integration with Java EE technologies on a fine-grained component level as well as use of Java EE applications and modules in a coarse-grained large system approach.

The specification defines support for the following scenarios of Java EE and SCA integration:

  • Consumption of SCA-exposed services from Java EE components. The specification defines how a web component (a servlet or a JSP) can consume a service implemented by a SCA service component.
  • Usage of Session Beans as Service Component Implementations. The specification defines how to use a session bean as service component implementations. Using RMI, JMS and web services traffic.
  • Exposure of Enterprise Applications into an SCA domain. The specification defines relationships between SCA and Java EE Assembly models and describes a deployment model for SCA contributions that provides cross-enterprise application assembly capabilities when layered over Java EE.
  • Usage of Recursive SCA Assembly in Enterprise Applications. The specification describes how SCA Assembly can be used to provide means for defining sophisticated application assembly for enterprise applications.
  • Deployment of SCA Components as a Part of a Java EE application. The specification defines a deployment model for components implemented in “foreign” technologies (for example BPEL) as part of a Java EE application, taking advantage of whatever tooling and infrastructure support exists for the deployment and life cycle management of Java EE applications.
  • Usage of Java EE Archives as Service Component Implementation. The specification defines creation of high level SCA applications that contain multiple Java EE archives, through wiring of Java EE archives to each other and to components implemented using other technologies. This use-case requires a high-level view of the Java EE application as a single SCA component, providing services and consuming references as a single component.

Additionally, support for SCA annotations in EJB classes or session bean interfaces is defined.

This specification aims to further strengthen relationships between Java EE and SCA, putting SCA in a better position for becoming a prevalent technology for SOA implementation in Java EE. One of the major motivations for doing so is that currently, the Java community is still split between SCA and JBI.  The JSR 316: Java Platform, Enterprise Edition 6 (Java EE 6) Specification is still considering both, but has not made a definite decision which way to go.While the majority of vendor’s application servers support SCA, open source implementation are still mostly based on JBI.

The standardization process for SCA is currently driven by OASIS and OSOA and still lacks full support by Java.

2 comments

Reply

It's not JBI versus SCA by Peter Walker Posted Apr 4, 2008 11:43 AM
TLA-itis by Jim Leonardo Posted Apr 4, 2008 4:56 PM
  1. Back to top

    It's not JBI versus SCA

    Apr 4, 2008 11:43 AM by Peter Walker

    This misrepresents the technical reality. There's really very little overlap between JBI and SCA and as described for example at the OSOA site here. The two can be complementary. An SCA system can be built atop a Java EE platform augmented by JBI. JBI is all about pluggability in the infrastructure not directly the creation of service networks. Peter.

  2. Back to top

    TLA-itis

    Apr 4, 2008 4:56 PM by Jim Leonardo

    Just a general comment... SCA is probably not in quite common enough use yet to throw in a headline without defining in the body of the article. SCA: Society for Creative Anachronism? Scottish Canoe Association? Software Communications Architecture? Service Component Architecture?

Exclusive Content

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.

Segundo Velasquez and Agile as Seen Through the Customer's Eyes

Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.

Fine Grained Versioning with ClickOnce

David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.

Implementing Manual Activities in Windows Workflow

Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.

Markus Voelter about Software Architecture Documentation

In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.