Composite Application Deployment with SCA Domain

The sample scenarios

A retail application is built using SCA. The application is developed and packaged as 3 contributions:

Both Store and Store-Client have dependency (importing the interfaces) on Asset.

There are two deployable composites:

The application will be deployed to different machines or JVMs:

Illustration of an SCA domain

Deployment Steps


Domain Services




Add Assets, Store, and StoreClient contributions to the domain

Install/Uninstall contributions



  • Add contribution URLs to the SCA domain manager
  • Create a workspace.xml to list the contributions
  • Add contributions to a repository
  • Discover contributions from the network 
  • Watch a "contributions" folder

We can build different ways to make contributions available to the SCA domain.

Parse the contributions

Contribution Processing




Resolve dependencies across contributions

Import/Export resolution


  • Automatically calculated using the import/export
  • Assembler can use the admin tool to select a list of contributions for a given composite application

We need to find out a collection of contributions to support a composite application based on the import/export statements

Find/Load/Resolve the composites from the contributions:
Store composite
StoreClient composite

The assembly builders


The endpoints using SCA addresses or relative URIs should be resolved against the physical base URIs for the bindings based on the node configuration.
The resolution can be deferred to runtime over a service registry (which I treat it as a way to form the SCA domain dynamically)

Deployable composites can be designated by the contributions. It's also possible that the assembler to define a deployment composite on the fly.

Configure two nodes to the SCA domain, one to run the StoreClient and the other for Store. The Store one requires WS, ATOM and JSONRPC



  • Node can be predefined to the SCA domain using the admin tools.
  • Node can also be provisioned from the cloud based on the requirements by the composite.
  • Node can also be discovered on the network.There are types of nodes too:
  • Standalone
  • Webapp
  • JEE (JSR-88 based deployment)

The node represents the computing capabilities in the SCA domain.

Assign a deployment composite to a node:
StoreClient --> node1
Store --> node2

Run the composite application by a node


  • Node can connect to the domain manager to get the composite application.
  • The composite application can also be pushed to nodes (running in daemon).
  • The image of the composite application can be saved into a configuration file so that the node can run offline without connecting to the domain manager.
  • Nodes can run p2p to consistute the SCA domain too.

The deployable image of an SCA composite application to a node is the composite and a list of contributions to support the composite application.

Monitor and control the services running on a node

See what's going on, start/stop the services