DELETE- Java SCA Architecture Overview (TUSCANY) edited by Raymond Feng
      Page: 
http://cwiki.apache.org/confluence/display/TUSCANY/DELETE-+Java+SCA+Architecture+Overview
   Changes: 
http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=47661&originalVersion=39&revisedVersion=40

Comment:
---------------------------------------------------------------------



Change summary:
---------------------------------------------------------------------



Change summary:
---------------------------------------------------------------------



Change summary:
---------------------------------------------------------------------



Change summary:
---------------------------------------------------------------------



Content:
---------------------------------------------------------------------

{panel:title=Apache Tuscany SCA Java Architecture 
|borderStyle=solid|borderColor=#6699ff|titleBGColor=#D5EFFF|bgColor=#ffffff}
*This page is work in progress. Thanks for your contribution* :)
At the moment we are pulling different pieces of information in one place and 
then we'll decide on how to organize the information.
* [Architecture Overview|#Architecture Overview]
* [Core|#Kernel Definition]
** [Kernel 
Architecture|http://cwiki.apache.org/confluence/display/TUSCANY/Java+SCA+Kernel+Architecture+Guide]
** [How it looked in M2 
release?|http://cwiki.apache.org/confluence/download/attachments/47512/TuscanyJAVASCA.pdf]
* [Extension|#Extension Definition]
* [Runtime|#Runtime Definition]
* [Data Binding |#Mediator]

\\
 
{panel}{section}{section}

h3. {anchor:Architecture Overview}{color:#0099cc}Architecture Overview{color}
The SCA Java runtime is composed of a _kernel_ and extensions. The kernel is 
essentially a multi-VM wiring engine that connects components together using 
the principles of [Dependency 
Injection|http://en.wikipedia.org/wiki/Dependency_injection], or [Inversion of 
Control|http://en.wikipedia.org/wiki/Inversion_of_control].

h3. {anchor:Kernel Definition}{color:#0099cc}Kernel{color}
The kernel is designed to be simple and limited in its capabilities: it wires 
functional units together. Capabilities such as service discovery, reliability, 
support for transport protocols, etc. are provided through extensions. The 
kernel extension model is based on the SCA 1.0 Java programming and assembly 
model. In otherwords, the kernel uses SCA to bootstrap itself. The mechanics of 
how this is done are described in detail in [Kernel Architecture 
Guide|http://cwiki.apache.org/confluence/display/TUSCANY/Java+SCA+Kernel+Architecture+Guide].
 

The kernel is divided into a number of modules: _api_, _host_api_, _spi_ and 
_core_. The _api_ module defines Tuscany proprietary programming model 
annotations and APIs. The _host_api_ module defines APIs for interacting with 
the kernel. The _spi_ module defines extension points and abstract helper 
classes. The _core_ module contains the kernel implementation. 

h3. {anchor:Extension Definition}{color:#0099cc}Extension{color}
Extensions enhance the kernel with specific sets of functionality. Extension 
types are not fixed and the kernel is designed to be as flexible as possible by 
providing an open-ended extension model. From the kernel perspective, 
extensions are just a set of SCA components. However, there are a number of 
known extension types defined by the _spi_ module, including:

* *Component implementation types*, e.g. Spring, Groovy, and JavaScript
* *Binding types*, e.g. Axis, CXF, AMQP, ActiveMQ, JXTA
* *DataBinding types*, e.g. JAXB, SDO, XmlBeans

There are also a number of add-on extensions that do not correspond to a 
well-know type:

* The JPA extension for O/R mapping
* The Geronimo Transaction Manager extension for transactional support in the 
runtime
* The HOWL-based Persistent Store extension for high-throughput persistence of 
conversational state      

More detail can be found in the [Extensions Guide| SCA Java Extension 
Development Guide].

h3. {anchor:Runtime Definition}{color:#0099cc}Runtime{color}
The kernel is designed to be embedded in, or provisioned to, a number of 
different host environments. For example, the kernel may be provisioned to an 
OSGi container, a standalone runtime, a servlet engine, or JEE application 
server. There is even a Maven runtime that embeds kernel for integration 
testing. Runtime capabilities may vary based on the host environment.     


h3. {anchor:mediator}{color:#0099cc}Data Binding {color}
(?) Not sure if this belongs to this page or not

Data  provides transparent data mapping between different types of data that 
can be exchanged between caller of a service and the service itself given the 
format of the data that will be supplied by the client. Data Mediator will do 
this transformation given the following information:
# format of the data that can be consumed by the service
# format of the data that will be sent by the client

You can find more detailed information about databinding at this 
[link|http://cwiki.apache.org/confluence/display/~rfeng/Tuscany+Databinding]

{HTMLcomment:hidden}{children:sort=creation}{HTMLcomment}



---------------------------------------------------------------------
CONFLUENCE INFORMATION
This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences
   http://cwiki.apache.org/confluence/users/viewnotifications.action

If you think it was sent incorrectly contact one of the administrators
   http://cwiki.apache.org/confluence/administrators.action

If you want more information on Confluence, or have a bug to report see
   http://www.atlassian.com/software/confluence


Reply via email to