一个SCA的组合式应用可以包含不同的部件实现技术, 而且SCA支持递归式组装. SCA可以将其他组装模型(Spring, JEE等)包装成SCA的部件. 举例来说, 如果你的SCA应用有以下类型:
1. A Web 2.0 Widget Component
2. A Java Component
3. A component implemented as a Spring application context
4. A component implemented as a JEE component
5. A component implemented as a BPEL process
当你发布该应用时,
1 --> 流览器
2 --> Tuscany
3 --> Spring
4 --> JEE应用服务器
5 --> BPEL引擎
并不是支持任何一个SCA的部件实现技术都需要SCA的容器. SCA提供一个部件和拼装模型, 该模型可以有不同的支持手段:
1. 运行环境: SCA容器直接解释SCA的元数据(Metadata), 其他部件实现和通讯技术嵌入在SCA容器中
2. 模型映射: 如果该模型可以映射到具体技术的发布描述, 那么该部件就可以直接发布到支持其实现技术的容器而不需要SCA容器.
3. 混合环境: SCA容器和其他容器协同
说到SCA和BPEL, 其本质区别在于:
SCA定义应用的逻辑结构, 即该应用包含那些业务服务, 它们之间的依赖关系, 以及如何拼装. (类似UML的Class图)
BPEL定义应用的控制流程, 即应用内的业务服务的调用时序, 分支条件 (类似UML的Sequence图).
Raymond
综上,个人认为tuscany只适合提供后台核心服务,而应用中web相关内容的,则应按照传统web应用一样部署于一个应用服务器中,web应用中的数据,操作均来自前面提到的由tuscany
runtime上运行后台核心服务。
一点建议,上面我提到的这种架构下,web层和核心服务层是逻辑上分离的。而目前它们之间的通讯(web -->
核心层,除ajax调用)是通过远程调用的方式,tuscany是否可以提供一个客户端调用机制,来优化交互。
2008/10/29 chenqj <che...@gmail.com>:
--
ken
Raymond
--------------------------------------------------
From: "ken" <ken.c...@gmail.com>
Sent: Thursday, October 30, 2008 7:55 PM
To: <tuscany-s...@googlegroups.com>
Subject: Re: sca容器