交互服务
图 3 中显示了具有 ESB 的服务集成点的交互服务。这些交互服务节点可以作为用户的 SOA 入口点。这些交互服务为 SOA 提供表示层,其中对相关的接口进行 了抽象,并聚合了最终用户和 SOA 应用程序之间的各个信息源。
交互服务可以分为三类主要的服务:
用户接口服务
由使用仪表板进行决策制定和可视化操作的门户应用程序组成。
用户交互服务
由可视化、协作、组合应用程序、警报和表格组成。
部署服务
包含移动设备、浏览器和富客户端。
交互服务使用支持的模板组件以简单地创建组合应用程序。这些组合应用程序:
- 为外包的或者内部的服务应用程序提供基础。
- 支持富客户端和移动设备最终用户客户端。
- 提供高度自定义和动态的数据,这将提供实时的可见性,以便将结果与基础业务流程度量关联起来。
- 作为仪表板进行使用,为用户提供该项目的关键性能指标 (KPI) 的实时视图。

图3 交互服务
组合应用程序中的每个部分都可能包含预先构建的、具有特定功能和相关联的工作流的 Portlet。交互服务还可以具有内置的筛选功能、基于浏览器的配置向导、交互的 Web 窗体、搜索、Web 2.0 技术和协作。例如,协作服务组件是一个完全集成的、基于门户的协作环境,该环境包括电子邮件、日历和日程安排、即时消息传递、Web 会议、文档以及 Web 内容管理。
流程服务
图 4 显示了用于在 SOA 域内执行其功能的流程服务和组件。流程服务使用业务流程和中介模块来实现它的业务流需求。流程服务使用 SCA 编程模型对使用和产生业务数据的业务服务进行建模。

图4 流程服务
可以使用业务流程执行语言 (BPEL) 来定义业务流程。业务流程是在预定义的序列中调用以实现业务目标的一组业务相关的活动、规则和条件。业务规则是一种通过业务功能的外部化来实现和实施业务策略的手段。外部化支持从应用程序的其他方面独立地管理业务规则。这种独立性支持动态业务规则更新功能,从而提供了更加灵活的业务。
SCA 组件由接口、引用和实现组成。服务组件可以包含使用 Java 编写的接口或者 WSDL 端口类型。业务流程类型组件由流程实现类型组成,这个流程实现类型可以通过 Java 接口或者 WSDL 端口类型接口实现一个或者多个 SCA 接口。流程运行的时间可能很长,也可能很短;运行时间很短的流程称为微流。运行时间很长的业务流程可以与多个合作伙伴进行交互,并且通过执行标准的、无状态的 Web 服务调用来进行交互。
可以通过 Web 服务接口与各个合作伙伴发生交互。BPEL 基于 WSDL 和 XML 模式构建。可以按 BPEL 规范定义的那样,使用一个用于语法扩展的 XML 模式,以及应用于语义约束的一组全面的规则,来完成对流程模型的验证。