This page will move to the website when it is complete. Please help to complete it. Thanks.
What this is about
As of release 1.3 Tuscany SCA is distributed via one binary distribution that includes everything. Based on user feedback, choice of a smaller distribution packages is desireable. Tuscany community is in the process of addressing this requirement. Please see mailing list for that discussion. This is not the purpose of this page.
Tuscany users have asked for a write-up that highlights module dependencies. This enables them to build their own distribution which may have a lower or higher granularity than the pre-packaged binary distributions. Purpose of this page is to help users understand how to build their own tuscany SCA light distribution based on module dependency knowledge that is shared here.
Therefore:
This page is not about building Tuscany building binary distributions to distribute
This page is about understanding dependencies so that users can build their own distribution
How to build your own distribution
Let's first understand the different categories of module types in Tuscany. This understanding will help us determine how to put the modules together to have a runnable and useful system.
Tuscany Modules Categorized
SCA programming Model: Assembly, Deployment, Management
SCA provides a programming model for Construction, Assembly, Deployment and Management of network of services. Modules under these catetories support the SCA programming model.
Tuscany Container
Modules in this category are specific to running SCA in a Tuscany environment.
Tuscany container also provides plug points for different host types, bindings, implementations, policies as well as deployment and management (contributions and domain handling).
Policy
Module in this category include support for enabling policies as well as policy types.
Binding
Modules in this category include various bindings that support different protocols. Typically Bindings are used with SCA programming model, Tuscany container and some component implementation types.
Implementation
Modules in this category include support for different component types. Basic SCA environment is needed to use any of these modules.
Host Environment
Modules in this category include support for different host environments, such as Tomcat, Jetty, etc.
Module Category Dependency
This section explains the dependencies amongst various categories. This information can be used to define the scope of modules needed to perform different tasks using Tuscany.
Category |
Dependency |
SCA Programming Model |
None. It runs in any container |
Tuscany Container |
SCA Programming Model. Note that Tuscany Container has plug points for various host environments, but is not dependent on any. |
polciy |
Tuscany Container and SCA PM |
Binding |
Tuscany Container and some host environment depending on the protocol type |
Implementation |
Tuscany Container |
Tuscany Modules Break Down by Category
Functional Area |
Feature |
SCA constructs |
Tuscany Modules |
Descriptions |
Dependencies |
Assembly |
SCA assembly |
composite
componentType |
assembly
assembly-xml
assembly-xsd |
Model interfaces for the SCA assembly model
XML Reader, Writer and Resolver
XSDs for the assemlby model |
|
Assembly |
Interface |
interface.java
interface.wsdl |
interface
interface-java
interface-java-xml
interface-java-jaxws
interface-wsdl
interface-wsdl-xml
xsd
xsd-xml |
Model for interface/operation
Model for java interface
Reader/Writer for interface.java
Interface processor for JAXWS annotation
WSDL port type as the interface definition
Reader/Writer for interface.wsdl
Model for XSD artifacts
Reader/Writer to load/save XSDs |
|
Policy |
Policy |
intent
policySet |
policy
policy-xml
policy-xml-ws
policy-logging
policy-security
policy-security-jsr250
policy-security-ws
policy-transaction
definitions
definitions-xml |
Model for policy
Read/Writer for policy XML
Reader/Writer for WS policy XML |
|
Deployment |
Contribution Processing |
|
contribution
contribution-xml
contribution-impl
contribution-java
contribution-namespace
contribution-osgi
contribution-resource |
Process SCA contribution (archives) and build the model for containing artifacts |
|
Runtime |
Extensibility |
|
extensibility
extensibility-equinox |
Provide the extensibility to plugin tuscany extensions such as utilities, XML processors,
binding providers,
implementation providers and databindings |
|
Runtime |
Runtime core and SPI for extensions |
|
core
core-spi
core-databinding |
Core activates SCA composite and build up the invocation chain between
SCA services and references over the bindings |
|
Rumtime |
Databinding |
|
databinding
databinding-axiom
databinding-fastinfoset
databinding-jaxb
databinding-jaxb-axiom
databinding-json
databinding-saxon
databinding-sdo
databinding-sdo-axiom
databinding-xmlbeans |
A framework to deal with data representation and transformation |
|
Developmemt |
SCA API |
|
sca-api |
SCA Java common APIs and Annotations |
|
Runtime |
SCA Node API, Impl and Launchers |
|
node-api
node-dynamic
node-impl
node-launcher
node-launcher-equinox
thirdparty-library
node-launcher-webapp
node-manager
implementation-node
implementation-node-runtime
host-embedded |
Api used to Start/Stop SCA node which bootstraps SCA runtime to run the application. |
|
Deployment |
SCA Domain Manager |
|
domain-manager
workspace
workspace-impl
workspace-xml |
Define and manage domain |
|
Runtime |
Serviceability: Monitoring, Logging and Tracing |
|
monitor
monitor-logging
tracing-aspectj |
|
|
Binding |
Feed bindings: Atom RSS |
binding.atom binding.rss |
binding-atom binding-atom-abdera binding-rss binding-rss-rome |
Feed support, including atom and rss protocols |
|
Binding |
JSONRPC binding |
binding.jsonrpc |
binding-jsonrpc binding-jsonrpc-runtime |
JSONRPC for AJAX |
|
Binding |
RMI binding |
binding.rmi |
binding-rmi host-rmi |
RMI |
|
Binding |
JMS binding |
binding.jms |
binding-jms binding-jms-runtime |
JMS |
|
Binding |
EJB binding |
binding.ejb |
binding-ejb binding-ejb-runtime host-ejb host-openejb |
EJB |
|
Binding |
CORBA binding |
binding.corba |
binding-corba binding-corba-runtime host-corba host-corba-jee host-corba-jse host-corba-jse-tns |
CORBA |
|
Binding |
GData binding |
binding.gdata |
binding-gdata binding-gdata-runtime binding-gdata-gsoc binding-gdata-runtime-gsoc |
GData |
|
Binding |
HTTP protocol support for all http-based bindings |
|
host-http host-jetty host-tomcat host-webapp host-webapp-junit |
HTTP related hooks |
|
Binding |
HTTP binding |
binding.http |
binding-http binding-http-runtime |
|
|
Binding |
Web Service binding |
|
binding-ws binding-ws-axis2 binding-ws-axis2-policy binding-ws-wsdlgen binding-ws-xml |
|
|
Binding |
SCA binding |
binding.sca |
binding-sca binding-sca-xml binding-sca-axis2 binding-sca-corba binding-sca-jms endpoint |
|
|
Binding |
Java implementation |
implementation.java |
implementation-java implementation-java-xml implementation-java-runtime |
|
|
Component |
BPEL implementation |
implementation.bpel |
implementation-bpel implementation-bpel-jbpm implementation-bpel-ode |
|
|
Component |
EJB implementation |
implementation.ejb |
implementation-ejb |
|
|
Component |
Scripting language based implementation (Groovy, JavaScript, Ruby and Python) |
implementation.script |
implementation-script |
|
|
Component |
Spring implementation |
implementation.spring |
implementation-spring |
|
|
|
|
|
implementation-widget implementation-widget-runtime |
|
|
Component |
OSGi implementation |
implementation.osgi |
implementation-osgi |
|
|
Component |
HTTP Resource implementation |
implementation.resource |
implementation-resource implementation-resource-runtime |
|
|
Component |
XQuery implementation |
implementation.xquery |
implementation-xquery |
|
|
Component |
Data Access Services |
|
data-api data-engine-helper implementation-das implementation-data-xml |
|
|
Minimum rquired to build and run SCA applications
Sample pom
Examples for including bindings
sample pom for one or two bindings?
Examples for including Web20
sample pom
Core with different runtimes? |