参考:http://wendang.baidu.com/view/951f69a0284ac850ad0242dc.html
1. 整体架构
SCA Java运行时由core和extension组成。Core本质上来说是一个多VM的wiring引擎。该引擎使用IOC(控制反转)和DI(依赖注入)原则来连接组件。设计原则与Spring类似。
Core
SCA Java运行时由core和extension组成。Core本质上来说是一个多VM的wiring引擎。该引擎使用IOC(控制反转)和DI(依赖注入)原则来连接组件。设计原则与Spring类似。
Extension
Core在性能方面是简单而有限的。它将功能单元连接在一起,并提供可以和extension交互的SPI机制。例如服务发现,可靠性,对传输协议的支持等特性都是通过extension来做的。
Extension增强SCA运行时的功能。Extesion类型不是固定的。而core则是通过提供对extension模块开放支持来使得设计尽量灵活。
Ø 组件实现类型,例如:Spring, Groovy 和Javascript
Ø 绑定类型,比如:Axis, CXF ,AMQP ,ActiveMQ, JXTA
Ø 数据绑定类型,比如:JAXB, SDO ,XmlBean
Ø 接口绑定类型,比如:WSDL, Java
Core是设计得可以嵌入于许多不同的主机环境下的。例如,core也许用于OSGI容器、单独的运行时环境、serlvet引擎或J2EE应用服务器中。运行时的性能根据主机环境不同而不同。
Java SCA运行时的高层概述:
下图是由关键的模块/包组成的SCA运行时高层视图
1. SCA Spec API:由SCA Java Client and Implementation定义的API
2. API:扩展了SCA Spec API的Tuscany API
3. Core:运行时实现和SPI扩展机制
4. Extension:
a) Component implementation – 扩展语言支持:例如 BPEL,Python,C++,Ruby等
b) Binding – 扩展协议支持:例如 Axis2, CXF等
c) Interface Binding – 扩展服务定义类型:比如WSDL, Java等
d) Databinding – 扩展数据支持:比如SDO, JAXB等
5. Host platforms:Tuscany运行时的主机环境