细说SCA V1.0规范(2) --Composite与架构
SCA规范中的"三大件"分别是Component 、Composite和Domain。
在上一篇 细说SCA V1.0规范(1) --component与实现 里面主要说的是Component 。本文将继续说说这第二"大件":Composite !
一、Composite简介
Composite组件是SCA规范中最基本的单元,是部署的最基本单位。Composite组件的图示和简化Composite组件的图示如下:
二、Composite的组成
一个Composite包括0个或多个Property、Service、Component、Reference、Wire和包含的Composite(included Composite).
三、Composite与Component的关系
Component组件是Composite组件的重要组成部分。
四、Composite与Domain的关系
<待续>
五、Composite 在模型中的分类
为了讨论方便,也便于理解,将Composite分成三种类型:(这不是规范中的分类)
这三种类型很像数据结构中的"树"。树有树叶、树跟和树枝。与之对应,Composite架构层分为基本层Base-Composite、顶层Top-Composite和处在基本Composite和顶层Composite之间的Composite层,就叫Arch-Composite吧。
第一种Composite——Base-Composite:它的特征是其implementation不是通过引用Composite实现的。即它的implementation是通过SCA支持的implementation类型提供的实现。它们处于整个Composite架构的底层,为上层的Composite提供服务实现。这些Composite包含了implementation的实现。对整个Composite层而言,可以认为不存在Component层,因为Component是做为Composite的一部分存在的。只要Base-Composite有implementation实现,Composite层不关心是什么技术的实现,以及如何实现的。
目前Tuscany SCA支持的plementation 类型如下表所示:
Implementation Types |
||
implementation.java | Support for SCA components implemented with Java classes | Available from 0.90 |
implementation.script | Support for SCA components implemented with scripting languages | Available from 0.90 |
implementation.bpel | Support for components implemented in BPEL | Available from 1.0 |
implementation.spring | Support for spring | Available from 0.91 |
implementation.resource | exposes file resources | Available from 0.91 |
implementation.osgi | Support for osgi | Available from 1.0 |
implementation.xquery | Support for components implemented in xquery | Available from 1.0 |
第二种Composite——Top-Composite:其特征是它们将成为Domain-Level Composite的一部分,或者说将为Domain-Level Composite提供服务。它们处于Composite架构层的顶端,上面就是Domain层。它们以其他的Composite作为implementation实现,为Domain层提供服务。Composite层的所有Composite的服务都要通过Top-Composite向Domain层暴露,为Domain层提供由Base-Composite实现,Arch-Composite组合而成的各种功能。Top-Composite通过指定一个URI与Domain建立关系。
第三种就是Arch-Composite:它们或者引用(Reference)其他的Composite或者用其他的Composite实现implementation。Arch-Composite可以通过引用实现等形式组合成功能更为复杂的系统功能或者流程。就象工作流的流程那样,通过一系列的Composite实现复杂的功能。
<待续>