在 IBM Business Process Manager Advanced V7.5 编程模型中,高级集成服务 (AIS) 用于实现复杂的集成逻辑,在创建 BPM 以人为中心的流程中可以重用。在 BPM 应用程序(流程应用程序)中重用 AIS 是一个理想的目标,在设计和封装 AIS 时应一直追寻该目标。如图 1 所示,Claims Processing BPD 重用 Services Facade TK 工具箱中定义的 Automated Claim Processing AIS。
图 1. 流程应用程序重用工具箱中实现的 AIS
当流程应用程序重用 AIS 时,它必须包含实现 AIS 的工具箱。由于部署到服务器的每个流程应用程序都将部署它所包含的工具箱的副本,包括工具箱中实现(用于重用)的大量 AIS,然后在多流程应用程序中重用工具箱将导致在服务器中部署大量的工具箱副本。图 2 显示三个流程应用程序重用工具箱中实现的 AIS 而导致在流程服务器中部署了三个 EAR。部署大量的 EAR 可能对服务器性能产生负面影响,使管理任务更加复杂。
图 2. 每个已部署的流程应用程序实例都导致新的工具箱实现 EAR
本文介绍了用于可重用 AIS 实现的高效运行实现的设计模式,无需部署多个 AIS 实现。
在本文中,我们将介绍一种 “中间满足” 法,其中企业用户定义 Automated Claim AIS,IT 开发人员已经实现了企业用户定义的 AIS。
我们将涵盖以下主要步骤,如图 3 所示:
- 创建一个 Services Facade TK 工具箱:企业用户创建一个 Services Facade TK 工具箱,其中定义了 Automated Claim Processing AIS。这是企业用户用来与服务进行通信的接口。
- 创建一个 Service Facade TK 工具箱 AIS 实现:IT 开发人员创建一个框架式 AIS Facade 实现。这是 “无逻辑” 服务实现,将简化代理调用到实际服务实现。
- 创建一个 Service Implementation PA 流程应用程序:IT 开发人员创建一个 Service Implementation PA 流程应用程序,其中定义了 AIS 实现逻辑。
- 将 AIS 定义连接到 AIS 实现:IT 开发人员将 Service Implementation PA 流程应用程序实现连接到 Services Facade TK 工具箱中的 AIS 定义。
- 重用 AIS:企业用户将 Service Facade TK 工具箱包含在 Service Consumer PA 流程应用程序中,并重用来自该工具箱的 AIS。
图 3. 主要开发步骤总结
第 1 步:创建 Services Facade TK 工具箱
在这一步中,企业用户将创建 Facade 工具箱,然后定义将成为 AIS 接口组成部分的业务对象。这是 Service Implementation PA 流程应用程序需要符合的接口。该工具箱将由 Claims Processing PA 流程应用程序和 Service Implementation PA 流程应用程序共享。
- 企业用户使用 Process Designer 创建一个新的工具箱,使用的命名规则反映了这是 Service Facade 工具箱这个事实,如图 4 所示:
图 4. 创建 Facade 工具箱
- 企业用户打开 Process Designer 中的工具箱,如图 5 所示,然后创建将成为 AIS 接口组成部分的业务对象,如图 6 所示。
图 5. 创建业务对象
图 6. 添加 BO 参数
- 企业用户创建 AIS,如图 7 所示。在该样例代码中,AIS 名称为
AutomatedClaim。然后,用户添加输入和输出参数,如图 8 所示。
图 7. 创建 AIS
图 8. 添加参数
- 然后企业用户创建一个快照,需要该快照才能重用 Facade 工具箱。
第 2 步:创建 Service Facade 工具箱 AIS 实现
在这一步中,IT 开发人员创建 Facade AIS 实现的框架。该实现最终将调用实际的 AIS 实现。
- 开发人员打开 Integration Designer 中的 Facade 工具箱,如图 9 所示。
图 9. 打开 Integration Designer 中的 Facade 工具箱
- 然后,开发人员实现 Facade AIS,如图 10 所示,并选择一个空实现。
图 10. 实现 Facade AIS 作为空实现
装配图现在显示了 Sservice Component Architecture (SCA) AIS 导出,如图 11 所示。
图 11. 装配图中的 SCA AIS 导出
稍后,我们将把 SCA AIS 导出连接到实际实现。请谨记 Facade 模式的关键点是不要在工具箱中实现逻辑!
第 3 步:创建 Service Implementation PA 流程应用程序
在这一步中,IT 开发人员创建一个流程应用程序,实现 Facade 工具箱中定义的服务。
- IT 开发人员使用 Integration Designer 创建用于 facade 实现的流程应用,如图 12 所示。
图 12. 创建实现流程应用
- 开发人员打开工作区中的流程应用程序,然后选择 Change Toolkit Dependencies,如图 13 所示,使流程应用程序依赖于 Service Facade 工具箱。创建这种工具箱依赖性的原因是为了将 AIS 接口显示给实现逻辑。
图 13. 创建对服务实现工具箱的依赖性
- 开发人员然后选择 Open Snapshot in Workspace,如图 14 所示,将工具箱的只读(因此变灰,如图 15 所示)内容带入到工作区。
图 14. 将 Facade 工具箱带入工作区
请注意,这也带来 AIS 接口,如图 15 所示。
图 15. 工作区中的 AIS BO 和接口
- 开发人员将 ServicesFacade Library 添加到服务实现模块的 Dependencies,如图 16 所示。需要该操作使模块能够访问 AIS 接口。
图 16. 使实现模块能够访问 ServicesFacade 库
- 然后,IT 开发人员为 Service Facade 实现(使用 Service Facade 中的 AIS 接口)创建 SCA 导出,如图 17 所示。
图 17. 实现的 SCA 导出
- 开发人员提供 Service Facade 实现逻辑,如图 18 所示。在我们的示例中,实现已经存在,但是拥有不同的接口,这很典型的。开发人员提供调解逻辑,该调解逻辑可以是 BPEL 微流,WebSphere™ ESB 调解,甚至是一个接口调解组件(在最简单的案例中)。
图 18. 带有调解的 Service Facade 实现
下一步是重新访问 Service Facade 工具箱,并将 AIS SCA 导出连接到在 Service Facade Implementation 流程应用程序中定义的 AIS 实现,如图 19 所示。
图 19. 通过 SCA 导出将 AIS 连接到实现
- IT 开发人员打开 Integration Designer 中的 Service Facade 工具箱。
- 在装配图中,开发人员使用与 SCA AIS 导出相同的接口创建 SCA 导入,并将 AIS 导出连接到 SCA 导入,如图 20 所示。
图 20. 连接到实现的 SCA 导入的 AIS 导出
- 然后,开发人员配置 ServiceImplementation SCA 导入绑定以调用服务实现的 SCA 导出,如图 21 所示。
图 21. 提供 SCA 绑定信息
Module name 是 AIS 实现模块的重整名称。在我们用例中,是 Service_Implementation_PA_Implementation,其前缀为当前部署的流程应用程序的首字母缩写和版本
PJP3。由于我们还没有实现流程应用程序的快照,因此版本为Tip。Tip是用在对流程中心服务进行首次测试。当将代码推送到流程服务器时,前缀需要更改。例如,如果快照名称为V1.0.0,那么模块名称将是PJP3-V1.0.0-Service_Implementation_PA_Implementation。完成该操作可能有点棘手。首先,决定流程应用程序快照的名称,然后更改 Modulename 使之包含该名称,例如PJP3-V1.0.0-Service_Implementation_PA_Implementation。其次,获取 Facade 工具箱的快照。然后,更新实现流程应用程序中的工具箱依赖性,指向刚刚创建的 Facade 工具箱快照。最后,获取 AIS 实现流程应用程序的快照,名称参考工具箱 (V1.0.0)。
现在,开发人员已经为 AIS 创建了 Facade,并创建了实现,企业用户现在可以在他或她想要重用 AIS 的任何流程应用程序中参考 Service Facade 工具箱。
- 企业用户使用 Process Designer 创建一个流程应用程序。
- 然后,企业用户添加 Service Facade 工具箱并选择要包括的版本,如图 22 所示。
图 22. 在流程应用程序中重用 Service Facade 工具箱
- 现在可以从 Service Facade 工具箱使用 AIS,如图 23 所示。
图 23. 现在可以重用 Service Facade 工具箱中的 AIS
- 在我们的示例中,AutomatedClaimsProcessing AIS 在 BPD 的 Automated Claims Processing 步骤中重用,如图 24 所示。
图 24. 在 BPD 中重用 Service Facade 工具箱的 AIS
在本文中,我们介绍了如何实现 Service Facade 模式。该模式允许从多个流程应用程序或工具箱引用 AIS 实现,同时只需在服务器上部署一次即可。图 25 重组了 Facade 模式设计。
图 25. Service Facade 模式设计总结
学习
- 配套使用 IBM Integration Designer 和 IBM Process Designer 时的最佳实践
- IBM Business Process Manager V7.5 信息中心
-
developerWorks BPM 专区
-
IBM developerWorks 中国 WebSphere 专区:为使用 WebSphere 产品的开发人员准备的技术信息和资料。这里提供产品下载、how-to 信息、支持资源以及免费技术库,包含 2000 多份技术文章、教程、最佳实践、IBM Redbook 和在线产品手册。
获得产品和技术
- 最受欢迎的 WebSphere 试用软件下载:下载关键 WebSphere 产品的免费试用版。
- IBM developerWorks 软件下载资源中心:IBM deveperWorks 最新的软件下载。
- IBM developerWorks 工具包:下载关键 WebSphere 最新的产品工具包。
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。
