https://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-spec-cd03.html#_Toc225073572

SCA

Service Component Architecture (SCA) provides a programming model for building applications and solutions based on a Service Oriented Architecture.

1. Component Type

  • Component type represents the configurable aspects of an implementation.
  • A component type consists of
    • services that are offered
    • references to other services that can be wired
    • properties that can be set.
  • The settable properties and the settable references to services are configured by a component that uses the implementation

1.1 Service

  • A Service represents an addressable interface of the implementation. The service is represented by a service element which is a child of the componentType element. There can be zero or more service elements in a componentType.

1.2 Reference

  • Reference represents a requirement that the implementation has on a service provided by another component. The reference is represented by a reference element which is a child of the componentType element. There can be zero or more reference elements in a component type definition.

1.3 Property

  • Properties allow for the configuration of an implementation with externally set values. Each Property is defined as a property element.  The componentType element can have zero or more property elements as its children

1.4 Implementation

  • Implementation represents characteristics inherent to the implementation itself, in particular intents and policies.  See the Policy Framework specification [10] for a description of intents and policies. The following snippet shows the component type pseudo-schema with the pseudo-schema for a implementation child element

2. Component

  • Components are the basic elements of business function in an SCA assembly, which are combined into complete business solutions by SCA composites.
  • Components are configured instances of implementations. Components provide and consume services. More than one component can use and configure the same implementation, where each component configures the implementation differently.

2.1 Implementation

  • A component element has zero or one implementation element as its child, which points to the implementation used by the component.  A component with no implementation element is not runnable, but components of this kind can be useful during a “top-down” development process as a means of defining the necessary characteristics of the implementation before the implementation is written.
  • At runtime, an implementation instance is a specific runtime instantiation of the implementation – its runtime form depends on the implementation technology used.  The implementation instance derives its business logic from the implementation on which it is based, but the values for its properties and references are derived from the component which configures the implementation. Relationship of Component and Implementation

2.2 Service

  • The component element can have zero or more service elements as children which are used to configure the services of the component. The services that can be configured are defined by the implementation.

2.3 Reference

  • The component element can have zero or more reference elements as children which are used to configure the references of the component. The references that can be configured are defined by the implementation.

3. Composite

  • An SCA composite is used to assemble SCA elements in logical groupings. It is the basic unit of composition within an SCA Domain. An SCA composite contains a set of components, services, references and the wires that interconnect them, plus a set of properties which can be used to configure components.
  • Components contain configured implementations which hold the business logic of the composite.
  • Composite services is actually provided by one of the components within the composite.

3.1 Service

  • The services of a composite are defined by promoting services defined by components contained in the composite. A component service is promoted by means of a composite service element.
  • A composite service is represented by a service element which is a child of the composite element. There can be zero or more service elements in a composite.

3.2 Reference

  • The references of a composite are defined by promoting references defined by components contained in the composite. Each promoted reference indicates that the component reference needs to be resolved by services outside the composite. A component reference is promoted using a composite reference element.
  • A composite reference is represented by a reference element which is a child of a composite element. There can be zero or more reference elements in a composite

3.3 Property

  • Properties allow for the configuration of an implementation with externally set data values. A composite can declare zero or more properties.  Each property has a type, which is either simple or complex.  An implementation can also define a default value for a property. Properties can be configured with values in the components that use the implementation.

3.3 Wiring

  • SCA wires within a composite connect source component references to target component services.

4. Inferface

5. Binding

References