Service Component Architecture (SCA)

Service Component Architecture (SCA) is a set of specifications that describe a programming model for building applications and systems using a Service-Oriented Architecture (SOA). SCA extends and complements previous approaches to implementing services and builds on open standards such as Web services.

The specifications describe how to create composite applications. A composite application is created by combining one or more components that together implement the business logic of the new application. A component comprises an application program that implements the business logic and configuration information. An application developer can use the same application program with different configurations to form different components. A component offers a service to other components and in turn consumes functions offered by other services using service-oriented interfaces.

An application developer can assemble components together to create a solution for a particular business requirement. A composite application can contain both new components that are created specifically for the business application and existing components that are reused from other applications.

CICS supports the SCA Assembly Model 1.0 specification, which describes how service components can be assembled to form composites. A composite is the unit of deployment in SCA and is described in an XML language called SCDL. Composites can contain components, services, references, property declarations, and the wiring that describes the connections between these elements. Composites can also be used in components with other composites, allowing for a hierarchical construction of composite applications, where high-level services are implemented internally by sets of lower-level services.

Structure of a component

A simple type of component has one service and one reference. A service is an addressable interface for the component that can contain one or more operations. A reference is a dependency on a service that is provided by another component. The bindings for the component can be defined in both the service and the reference:

  • Component services use bindings to describe the access mechanism that other internal components have to use to call the component.
  • Component references use bindings to describe the access mechanism that is used to call other components.

Component services and references are internal and are used only for component-to-component communication. To create an external interface, the component must be deployed inside a composite. A very simple composite has one external service and one external reference:

  • Composite services use bindings to describe the access mechanism that external clients must use to call the service.
  • Composite references use bindings to describe the access mechanism that is used to call another service.

Composite services and references are not part of the component itself, but are a boundary between the component and other external clients or services.

The following diagram shows a composite that contains a simple component with both internal and external services and references.

This diagram shows a box representing a composite in SCA. Entering the box on the left is a large arrow that represents a service. This large arrow connects with a dotted line to a small arrow that represents the internal service for a component. The small arrow is entering a small box in the middle that represents the component. Exiting the component on the right, is a small arrow that represents the internal reference for the component. This small arrow connects with a dotted line to a large reference arrow that is exiting the composite.