使用 Spring Framework 设计和开发 SCA 组件,第 1 部分: 三剑客:Spring、SCA 和 Apache Tuscany
2009-11-23 00:00:00 来源:WEB开发网与 Spring bean 类似,SCA 组件可以包含到其他组件所提供的服务的引用,并且有一些属性可供配置。与 Spring 形成对比的是,SCA 是一种跨语言的分布式组件架构,它支持多种组件通信机制。通过将 Spring beans 发布为可由其他组件访问的服务并为 Spring beans 提供关联到其他(可能为远程)组件的服务的引用,SCA 可以扩展 Spring 组件的功能。
要将 SCA 与 Spring 相结合,一种有效的方法是使用 Spring 来构建 “粗粒度” 的服务组件实现,并引入到 SCA 中以便公开服务、关联服务组件以及处理异构和分布式系统。SCA 可以在使用 Spring 实现的应用程序中添加一些有用的功能,比如说:
对远程组件以及多种协议的扩展支持
支持使用不受 JVM 支持的各种编程语言来编写组件
支持 WS-Policy 针对安全性和事务等活动指定的策略
易于测试组件是 Spring 的一项优异的特性。缺少 API 和注入技术导致您只能使用简单的模拟对象进行测试。SCA 在服务方面对此进行了补充,因为关于服务组件的 SCA 复合集可以方便地切换到模拟配置以进行测试。
将 Spring 应用程序定义为 SCA 组件
在 Apache Tuscany SCA 实现中,SCA 使用 Spring 作为其组件在 SCA 复合集中的实现技术。可以将 Spring 应用程序定义为 SCA 复合集中的 SCA 组件,即 SCDL,其格式如下所示。
清单 1. 包含一个 Spring 组件的 SCA 复合集
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
targetNamespace="http://calc"
xmlns:c="http://calc"
name="Calculator">
<component name="CalculatorServiceComponent">
<implementation.spring location="targetURI"/>
</component>
</composite>
更多精彩
赞助商链接