The Service Component Architecture (SCA) consists of a set of specifications that describe a model for building applications and systems using a Service-Oriented Architecture approach.
The Service-Oriented Architecture (SOA) is a framework that combines individual business functions and processes, called services, to implement sophisticated business applications and processes. In a SOA framework, relatively coarse-grained business components are exposed as services. SOA structures IT assets as a series of reusable services, which are loosely coupled and are platform- and implementation-neutral. SOA designs solutions as assemblies of services, which are connected through well-specified interfaces and contracts.
SCA encourages an SOA organization of business application code based on components that implement business logic, which offer their capabilities through service-oriented interfaces and which consume functions offered by other components through service-oriented interfaces, called service references.
The SCA specification simply defines a way of modeling a service interface. A service interface is the separation between the two parts of an SOA application. The service interface specifies what the provider (SOA-SP) has to implement and what the coordinator (SOA-SC) can invoke. An SCA service interface is a fell-fledged interface, ultimately realized as a WSDL document or as a Java™ interface.
The service provider implementations in an SCA are called service components. A service component implementation can be a:
Service implementations and service clients
Service implementations are concrete implementations of business logic, which provide services and/or consume services. These implementations use any one of many implementation technologies, such as Java or C++. The implementation is the servant of the business process. An implementation can provide a service, which is a set of operations defined by an interface used by other components.
Implementations can also use other services, called service references, which indicate the implementation's dependency on services provided elsewhere. An implementation may also have one or more configurable properties. A property is a data value that can be externally configured and affects the business function of the implementation.
SCA services typically use document-style business data for parameters and return values, and preferably these parameters are represented using as Service Data Objects (SDOs) (please see the Resources section for more information). Services, references and properties are the configurable aspects of an implementation -- SCA refers to them collectively as Component type.
Configuring a reference is done by binding the reference to a target service, which will then be used by the implementation when it invokes the reference. Configuration of a property involves setting a specific data value for the property. In a SCA framework, one implementation can be used to build multiple different components, with each component having a different configuration of the references and properties. Components and their services are used by other local components, or components can be used for remote access.
Module assembly
An SCA module is the largest composition of tightly-coupled components that are developed and deployed together into a SCA system. It is the basic unit of loosely-coupled composition within a SCA System. An SCA module contains a set of components, external services, entry points, and the wires that interconnect them. Modules contribute service implementations to a SCA System.
Entry points define the public services provided by the module, which can either be used by other components within the same module or which can be made available for use outside the module. These are used to publish services provided by a module using a specified binding.
External services within a module represent remote services provided by other modules. They are external to the SCA module that uses the service. These external services can be accessed by components within the module like any service provided by a SCA component. External services use bindings to describe the access to external services.
Building an SCA project
All SCA project development occurs on the WebSphere® Integration Developer system. Refer to the WebSphere Integration Developer information center at http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp for detailed information.