使 Web 服务易于实现和使用的关键是对现有技术和知识进行增量扩展,从而使 SOA 可以被消费。以 CICS COBOL 事务程序形式存在的服务与用 BPEL 编写的服务差别很大。从数据库存储过程中调用服务与从 JSP 中调用也是不同的;技能和期望值是不同的。通过提供工具的分类来使部件类型适应于各种技能,并适应于开发流程的阶段,你可以实现可消费性(consumability)。
产品架构
图 1. 产品架构

支持 IBM SOA 方案的产品分成两个主要类别:服务端点和连接它们的消息传送结构。这个通用的架构 -- 包含了许多产品,这些产品都不是 IBM SOA 的专用传输工具 -- 如图 1 所示。
核心是服务间的 ESB 提供的连通性。ESB 是多协议的,支持点到点和发布-订阅两种通信类型,并支持快速处理消息的中介服务。IBM WebSphere MQ,IBM WebSphere MQ Integrator Broker 以及支持 Web 服务和 Java 消息服务(JMS)的 WebSphere 都属于第一个类别。
服务存在于抽象的托管环境(容器)中,并且提供了特定的编程框架。容器加载服务的实现代码,提供到 ESB 的连接性,并管理服务实例。不同类型的服务存在于不同的容器中。(在典型的递规设计的例子中,ESB 本身被认为是用于中介服务的容器。)表 1 列出了一些主要的 IBM SOA 托管环境和托管的组件类型。
表 1. 托管各种组件和服务类型的容器

结束语
IBM SOA 编程模型系列文章的第一篇概述了 IBM 工具和产品如何适用于模型,以及开发人员如何有效的在应用程序开发中使用它。
• 使用 SDO 简化数据访问
• 服务定义以及组件模型发展状况的介绍
• 用组件类型来简化开发
• 基本组件类型
• 服务组合和定制
• 流程组件:BPEL 和业务状态机
• 定制服务:设计模式,模板和可变点
• 面向服务的用户接口
• 用于管理的 SOA 方法
• SOA 软件生命周期开发工具
• SOA 的安全性