Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
borderfalse
Column
width15%
Include Page
TUSCANYWIKI: SCA Java Subproject Menu
TUSCANYWIKI: SCA Java Subproject Menu
Column
width85%

(warning) 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.

  • Core type modules- These are modules that enable you to use SCA programming model to create applications
  • Binding type modules - Bindings handle protocols between two services. Tuscany supports many bindings. One or more modules constitute a binding.
  • Component type modules - These are the modules that enable you to use different languages or container models to create SCA components. Tuscany supports different component types. There are a set of modules that support each component type. For example, java, BPEL, Spring, etc. There are specific modules that support a given component type.
  • Policies type modules- There are different policy types. For example security, monitoriing, etc. There are specific modules that support each policy.
  • Databinding type modules - These modules support data types.

    Tuscany

    supports many data bindings, including Jaxb, SDO, Axiom, Json/rpc. There are specific modules that support a given data binding.
  • Runtime Type modules- Tuscany supports different runtimes. There are specific modules that support a given runtime.
  • Now that you understand the different module types, let's identify the module that fall into each category.

    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?