WBSF(WebSphere Business Services Fabric)让我们在 SOA 开发中能够根据服务策略动态调用业务服务。本文通过一个具体的例子,介绍如何通过 WBSF V6.02 的 SCA 编程模型动态调用业务服务。
组装服务流程
创建 AccountQueryProcess 业务流程:
将 WID 切换至”Business Integration” perspective,在 AccountQueryModule 项目中新建 AccountQueryProc 接口 , 该接口包含 query 方法,如图 1 所示:
图 1 创建 AccountQueryProc 接口
在 AccountQueryModule 项目中新建 Business Process “AccountQueryProcess”,为该 bpel 选择接口为 AccountQueryProc。该 bpel 首先调用 AuthorizationService,然后调用 AccountQueryService,如图 2 所示:
图 2 AccountQueryProcess 流程实现
在”Business Integration”视图下,将 AccountQueryProcess 从 Business Logic 中拖入 Assembly Diagram,WID 将生成以该 BPEL 为实现的 SCA 组件。
通过 Dynamic Assembly 组件组装业务服务:
在 Assembly Diagram 中添加一个 Dynamic Assembler 组件,命名为” AuthorServiceDA”,为其添加 AuthorizationService 接口。双击该组件,生成 DA 实现,如图 3 所示。为 AccountQueryProcess 组件添加到 AuthorServiceDA 的引用。
图 3 AuthorServiceDA 实现
按照同样的步骤,添加 AccountQueryDA Dynamic Assembler 组件,为其选择 AccountQueryService 接口,同样将其添加为 AccountQueryProcess 的引用。如图 4 所示。右键单击 AccountQueryProcess 组件,选择”Synchronize interfaces and references”=>”to implementation”。在 bpel 中将生成两个对应的 Reference Partner。
图 4 为 AccountQueryProcess 添加到 DA 的引用
用流程编辑器打开 AccountQueryProcess,为 AuthorizationService 的调用设置 Partner 为生成的 AuthorizationServicePartner,如图 5 所示:
图 5 设置 AuthorizationService Partner
同样为 AccountQueryService 的调用设置 Partner,如图 6 所示:
图 6 为 AccountQueryService 设置 Partner