引言
在面向服务的体系结构(SOA)中,业务服务(Business Service)代表了一组业务功能,其业务行为能够根据创建的策略和运行时上下文自适应调整,以更好地满足服务使用者的需求。
业务服务具有以下特点:
1.从业务层面对业务功能进行设计
2.通过业务策略和元数据来实现灵活,自适应的业务行为
3.通过参照行业模型以简化各个系统之间的互操作
4.基于web service 和行业标准构建
因此,通过业务服务构建IT 应用使得 IT 实现与业务需求吻合,非常好地体现了如下SOA理念:低成本,灵活自适应的的解决方案;最大化 IT 资产的可重用性;通过增量的解决方案降低了开发风险。
IBM WebSphere Business Services Fabric(WBSF)是对业务服务进行建模,组装,部署,管理和监控的软件平台。其产品包由三个部分组成:
IBM WebSphere Business Services Foundation Pack:基于WebSphere Process Server 构建的业务服务管理和运行时环境。
IBM WebSphere Business Services Tool Pack:基于WID(WebSphere Integration Developer)的Eclipse 插件,提供业务服务的设计和组装工具。
Industry Content Packs( 可选 ):一组基于行业标准和行业经验的SOA 资产,例如行业模型,规则,通用服务等,可以加速行业 SOA 解决方案的开发。
具体来说,WBSF 能够根据服务的上下文 (Context) 信息动态地调用在其服务模型库 (Service Repository) 登记的业务服务,如图 1 所示 .。在运行时刻,WBSF 通过服务上下文信息对与之相关的策略 (Policy) 进行计算与检查,得到一组业务服务应该满足的断言 (Assertion),以选择调用最佳的物理服务来满足业务服务请求。
图 1 WBSF 动态服务选取工作原理
在6.02 版本中,WBSF 最重要的增强在于在业务服务的设计和组装中引入了SCA 编程模型的支持。WBSF 引入了新的SCA组件用于对业务服务进行建模和组装。在WID中对业务服务进行组装时,可以通过Dynamic Assembler(DA) 对业务服务进行组装;对于业务服务的动态组合,WBSF提供了5 种 SCA扩展方便开发者对业务服务的调用进行定制。我们在后续部分介绍这 5 类 SCA扩展。
什么是Context
Context 即上下文信息,是运行时与服务相关的一组元数据。在WBSF中,服务的上下文信息主要包括如下内容:
Service Interface( 必需 ):服务接口名称的URI,WBSF 将在运行时选择与此接口匹配的endpoint作为候选。
Subscription ID( 可选 ):用户对业务服务登记的ID。该 ID 将用户与服务的一组上下文信息 ( 服务所属的Application Suite,Application, Business Service, service Interface, Channel,Role,User 等 ) 关联起来。在WBSF中,应用程序套件 (Application Suite) 是最广泛的概念,包括一个或者多个应用程序 (Application),应用程序包括一个或多个特定业务功能相关的业务服务(Business Service), 业务服务代则是表示特定的业务功能,包括一组特定的服务。通道 (Channel) 是用户使用业务服务的通道,Role 和 User 则是通过特定通道使用业务服务的用户组和用户。WBSF 在运行时根据 Subscription ID 获与此调用者相对应的从上至下一组上下文信息。
Additional Properties( 可选 ):所有基于服务内容 (Content)的属性,用于基于内容的断言 (Content based Assertion)扩展。例如,在申请贷款的业务服务中,用户的信用值属于服务内容 ( 服务参数 ),同时也可以作为业务服务的上下文信息,用于选择不同级别的服务。
所有 Context 属性均以“名字 - 值”对的形式表示。
Context 属性有两种类型,一种是基于上下文的属性,主要包括 Service Interface, 以及与Subscription ID相关的一组与服务内容无关的非功能属性,可以为任何服务拥有。另一类为基于服务内容的属性,这种属性只为特定类型的服务拥有,一般与服务功能或者内容相关。例如,用户信用值属性是贷款申请相关类型的服务所特有的。