【IT168 SOA文档】
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等。
- 为数众多的关于安全、可靠消息传递和事务等方面的增强。