Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Panel
borderColor#6699ff
bgColor#ffffff
titleBGColor#D5EFFF
titleA quick guide to SCA
borderStylesolid

Purpose of this guide is to help you understand the high level concepts in SCA so that you can build a simple application. For more details on SCA please refer to the various specifications available at www.osoa.org.

Section
Column
width50%

 

...

Anchor
what is SCA
what is SCA
What is SCA?

SCA is an executable model for assembly of services into business solutions. It simplifies component programming model for implementation of business services that can be implemented in any language. The key benefits of SCA are:

...

Now let's get into description of SCA building blocks.

Anchor
sca component implementatino
sca component implementatino
SCA Component Implementation

The basic building block for SCA is a component implementation. When you're writing code for SCA, you are typically writing code that will either be the implementation of a component or will be used by such an implementation. A component implementation is described by the following attributes:

...

The implementation of a component can be in any language that is suitable for the user, for example BPEL for business processes or XSL-T for transformations or Ruby for scripting or pure Java. How the services, references, properties and intents are defined for an implementation is specific to that particular implementation type.

Anchor
sca component implementatino
sca component implementatino
SCA Component Implementation

(lightbulb) A component implementation is the business logic. A component is an instance of a configured component implementation. More than one component can use the same implementation. A component lives in a composite that is described next.

Anchor
sca composite
sca composite
SCA Composite

Individual components like those above can be used on their own, or they can be grouped together in a composite. A composite is a type of component whose implementation is not code but an aggregation of one or more components co-operating to provide Services as a whole. Think of composite as a solution, for example credit check composite. A composite can also be used within a larger solution, for example credit check can be part of a order processing composite. A composite has the same charactersitics as a component. It provides Services, has References to other dependencies, and can be configured using Properties and can have intent policies in just the same way as an individual components can. In the example below, you see a calculator composite which consists of 5 components, a calculator service has references to four components:Add, Subtract, Multiply and Divide.

...

Anchor
sca domain
sca domain
SCA Domain

The implementations of components, either individual or composite, all form reusable units that can be run multiple times in different environments (in much the same way as you have multiple instances of a Java class). A composite, with its configuration information, gets packaged into a deployable unit called a contribution which gets contributed to the domain. Artifacts may be shared between contributions, for example Java classes, XSD files, WSDL files,etc.

...

In a large domain there may be all sorts of policies about where components can run and how they connect to each other or to external services. However, during development one is not concerned with all this. The code is packaged and made available for deployment. Tuscany SCA Java supports contributions in the form of JAR or filesystem.

Below is an example of domain with two contributions.
Image Added