Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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%
Column
width50%

 

...

  • Services describe the function this type of component provides
  • References are dependencies this type of component has in order to function
  • Properties define configuration parameters for this type of component
  • Intents describe assumptions this type of component has on how it will be used
  • and Implementation is some code that actually does the work (i.e. what a developer writes)

Although the Tuscany runtime is written in Java, the The implementation of a component can be in other languages some of which may be more suitable to the form of implementation than Java code (for example, 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; Tuscany provides several including:

  • Java for POJO style components
  • JUnit for integration testing of SCA components
  • Spring for integrating Spring components
  • JavaScript for components written in JavaScript

Please see each sub-section for detailed information on implementing components in any of these languages.

Anchor
sca composite
sca composite
SCA Composite

...

The typical implementation of a composite is described using XML defined by the SCA Assembly Specification (known as SCA Component Definition Language or SCDL). For information on how this is used in Tuscany, please see:

>> Comment: Is this a good place to talk about wires? We talk about wires in the next section for the first time and it is out of context

...


add more information and a diagram

Anchor
sca contribution
sca contribution
SCA Contribution

Anchor
sca domain
sca domain
SCA Domain

The implementations of components above, 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 component or composite becomes instantiated when it is actually used in an SCA environment. This is done by using it as part of the assembly of an SCA Domain.

...

  • a very small domain could be one within a test environment inside an IDE
  • a medium sized domain could be a single server or small cluster supporting a single application
  • a large domain could describe all the services within a department or company

A domain is self-defining - it is what it is. It is really just a logical view of running applications or a coherent grouping of components that are working together, connected to each other using SCA wiring. 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 but . However, during development the goal is to make that Someone Else's Problem as all that baggage really just gets in the way of writing code.Making it Someone Else's Problem though does mean that at some point you need to hand them the implementations that you have been developing. This generally goes better if the code being handed over has been well tested and packaged up nicely (sometimes with a bow on it)one is not concerned with all this. The code is packaged and made available for deployment. Tuscany provides some build-time tools to help with this:

...

packaging. For example, a war Maven plugin to package a self contained web application

...

place holder for text

you develop an app and package it as a contribution. The app may consist of one or more composites.
Contribution is an installable piece. So, you then install the contribution and then activate the deployed composites in the contribution. The SCA domain is the logical view of running applications that can span multiple SCA runtimes.

place holder for text

you develop an app and package it as a contribution. The app may consist of one or more composites.
Contribution is an installable piece. So, you then install the contribution and then activate the deployed composites in the contribution. The SCA domain is the logical view of running applications that can span multiple SCA runtimes.