SCA 是最初由 IBM 和 BEA 开发、目前被开放面向服务架构合作组织(OSOA)和 OASIS 开放组合服务架构(Open CSA)维护的一组规范。尽管其变得越来越流行,但是架构师和开发者对于 SCA 到底是什么,以及它的能力范围仍缺乏理解。最近,IBM 的 Mike Edwards 发布的两个优秀的幻灯片将有助于更好地理解 SCA 背后的架构和它的实现细节:使用SCA 组合业务解决方案(Composing Business Solutions using SCA)和 SCA 风格的策略和绑定(SCA Approach to Policy and Bindings)。
在关于组合业务解决方案的幻灯片中,Mike 一开始就将 SCA 定义为一个可执行的模型,用来将面向服务应用构建为一个服务组件组合网络。其内容包含(来自 Mike 的幻灯片):
- 装配模型
- 如何定义组合应用的结构
- 客户端和实现(Implementation)规范
- 如何用具体语言编写业务服务
- Java、C++、BPEL、PHP
- 绑定规范
- 如何对方法进行访问
- Web services、JMS、RMI-IIOP、REST
- 策略框架
- 安全、事务、可靠消息传递
Mike 列举了使用 SCA 的好处:
- 松耦合:组件参与集成时无需知道其他组件的实现方式
- 灵活性:组件可方便地被其他组件替换
- 服务可以很容易地被同步或异步调用
- 组合解决方案:被清晰地描述
- 生产力:简化了将组件集成为组合应用的工作
- 异质性:多种实现语言、通信机制
- 声明性:通过声明使用基础设施服务
- 简化了所有开发者、集成者和应用部署者的工作
他还列举了不适合使用 SCA 的场景:
- 不适合为工作流建模
- 使用 BPEL 或其他工作流语言
- 它不是Web 服务
- SCA 可以使用 Web 服务,但是也可构建不使用 Web 服务的解决方案
- 不与特定的运行时环境绑定
- 分布式、异质性、大的、小的
- 不强求使用特定的编程语言和技术
- 旨在包含众多语言和技术
幻灯片接着详细讨论了 SCA 的两种组合方式:自顶向下和自底向上、通过配置和组件实现重用实现、绑定和策略。
Mike 在其策略和绑定幻灯片中提供了关于绑定和策略的进一步细节,文中列举了 SCA 如何通过绑定和策略与组件实现相分离给开发带来了机动性和灵活性。幻灯片描述了 SCA 绑定模型,并随后详细说明了每种绑定类型的细节:
- 特殊细节:
- 访问方法 / 协议 / 传输
- 序列化
- 框架
- 应用于服务和引用
- 一般在部署时增加
- 可扩展性——可增加更多的绑定
Mike 还定义并解释了 SCA 策略模型,它使用声明性模型将复杂性抽象了出来,支持:
- 无代码实现影响
- 通过声明性策略意图(policy intents)简化了使用
- 易于使用和修改
- PolicySets包含了复杂细节
策略模型的主要组件包括:
- SCA 策略意图(intent)
每个代表一个抽象的QoS 需求。例如完整性
可带有限定名。如integrity.message
可有效强制结合绑定 / 策略集合
- SCA 策略集合
具体的策略集合,实现了抽象的 QoS 意图
应用于特殊的绑定类型或实现类型
绑定 / 实现可内在地提供策略
- WS-Policy
策略集合中具体策略的语法
其他形式的语法也是可能的
关于 SCA 未来的发展方向可参见最新 SCA 愿望清单(Updated SCA Wish list)。其中一些非常有趣的可能方向包括:
- SCA“注册中心”:提供集中存储和管理配置和连线(wiring)的能力。
- 改进 / 引入其他的 SCA 绑定,包括 RSS、ATOM、JSON-RPC 等。
- 为数众多的关于安全、可靠消息传递和事务等方面的增强。
欲查看 Mike Edwards 的幻灯片完整内容,请访问:使用SCA 组合业务解决方案(Composing Business Solutions using SCA)和 SCA 风格的策略和绑定(SCA Approach to Policy and Bindings)。关于 InfoQ SCA 的所有内容,也请参见: InfoQ SCA 内容。
查看英文原文: Composing SCA Solutions and SCA’s Approach to Policy and Bindings Presentations
评论