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.