如果要在IBM Business Process Manager(BPM)Advanced V8.5.5和更早版本中实现高级集成服务,请遵循本教程中的步骤。 要在IBM BPM V8.5.6和更高版本中使用高级集成服务,请参阅为IBM Business Process Manager V8.5.6开发高级集成服务 。
在结合使用IBM Integration Designer和IBM Process Designer的最佳实践中 ,作者建议使用Facade模式:“避免过度或意外损坏的一个好的模式是'facade'数据类型和接口,将模型与通过引入的更改隔离开其他工具。” 本文将更详细地探讨外观模式。 了解如何使用IBM BPM有效地实现外观模式并最大化服务重用。
在IBM BPM Advanced的编程模型中,高级集成服务用于实现复杂的集成逻辑,这些逻辑可以在构建以IBM BPM以人为中心的流程中重用。 在设计和打包Advanced Integration服务时,要在IBM BPM应用程序(流程应用程序)中重用Advanced Integration服务是一个理想的目标。 如以下屏幕截图所示, 索赔处理 BPD重用了Services Facade TK工具包中定义的自动索赔处理高级集成服务。
当流程应用程序重用Advanced Integration服务时,它必须包括实现Advanced Integration服务的工具包。 由于部署到服务器的每个流程应用程序都将部署其自己的工具箱副本,包括在一个工具箱中包含大量Advanced Integration Service实现(用于重用),然后在多个Process Apps中重用该工具箱将导致大量工具箱副本部署到服务器。 以下屏幕截图显示,三个Process Apps重用了工具包中实现的Advanced Integration服务,导致将三个EAR部署到Process Server。 大量已部署的EAR可能会对服务器性能产生负面影响,并使管理任务更加复杂。
本文介绍了一种用于IBM BPM V8.5.5和更早版本中的可重用Advanced Integration Service实现的有效运行时实现的设计模式,该模式消除了多个Advanced Integration Service实现的部署。
创建外观模式食谱概述
在本文中,我们将介绍一种“中间人会议”方法,其中业务用户定义了自动索赔高级集成服务,而IT开发人员已经拥有了业务用户定义的高级集成服务的实现。
我们将介绍以下主要步骤,如以下屏幕截图所示:
- 创建Services Facade TK工具包–业务用户创建了Services Facade TK工具包,并在其中定义了自动索赔处理高级集成服务。 这是业务用户将用于与服务通信的界面。
- 创建Service Facade TK工具包Advanced Integration服务实施– IT开发人员创建骨架的Advanced Integration Service Facade实施。 这是服务的“无逻辑”实现,它将简单地将调用代理到实际的服务实现中。
- 创建服务实施PA流程应用程序-IT开发人员创建一个服务实施PA流程应用程序,其中定义了高级集成服务实施逻辑。
- 将高级集成服务证书连接到高级集成服务实现– IT开发人员将服务实施PA流程应用程序中的实现连接到Services Facade TK工具包中的高级集成服务定义。
- 重用高级集成服务–业务用户在Service Consumer PA process app中包括Service Facade TK工具包,并重用该工具包中的Advanced Integration服务。
步骤1.创建Services Facade TK工具包
在此步骤中,业务用户创建Facade工具包,然后定义将成为Advanced Integration服务接口的一部分的业务对象。 这将是Service Implementation PA流程应用程序需要遵循的界面。 该工具包将由Claims Processing PA流程应用程序和Service Implementation PA流程应用程序共享。
- 业务用户使用Process Designer使用命名约定创建新的工具箱,该命名约定反映了这是Service Facade工具箱这一事实,如以下屏幕截图所示。
- 业务用户在Process Designer中打开工具箱,如以下屏幕截图所示:
然后,业务用户创建一个业务对象,该业务对象将成为“高级集成”服务界面的一部分,如以下屏幕截图所示: - 业务用户将创建Advanced Integration服务,如以下屏幕截图所示。 在示例代码中,高级集成服务名称为
AutomatedClaim
。
然后,用户将添加输入和输出参数,如以下屏幕截图所示。 - 然后,业务用户创建快照,这是快照才能重新使用外观工具包所必需的。
步骤2.创建服务外观工具包Advanced Integration服务实现
在此步骤中,IT开发人员将为立面高级集成服务实现创建框架。 此实现最终将调用实际的Advanced Integration Service实现。
- 开发人员在Integration Designer中打开Facade工具包,如以下屏幕截图所示。
- 然后,开发人员将实现Facade Advanced Integration服务,如以下屏幕截图所示,并选择一个空的实现。
现在,组装图显示了Sservice组件体系结构(SCA)高级集成服务导出,如以下屏幕截图所示。
稍后,我们将SCA Advanced Integration服务导出连接到实际实现。 请记住,外观模式的关键是在工具包中不要包含任何实现逻辑!
步骤3.创建服务实施PA流程应用
在此步骤中,IT开发人员将创建一个流程应用程序,以实现外观工具包中定义的服务。
- IT开发人员使用Integration Designer为外观实现创建流程应用程序,如以下屏幕截图所示。
- 开发人员在工作区中打开流程应用程序,然后选择Change Toolkit Dependencies ,如以下屏幕截图所示,使流程应用程序依赖于Service Facade工具包。 创建此工具包依赖项的原因是将高级集成服务接口公开给实现逻辑。
- 然后,开发人员选择“ 在工作区中打开快照” ,如以下屏幕截图所示,将工具箱的只读内容(如下一个屏幕截图所示,不可用)带入工作区。
请注意,这还引入了Advanced Integration Service界面,如以下屏幕截图所示。
- 开发人员将ServicesFacade库添加到服务实现模块的Dependencies中,如以下屏幕截图所示。 为了使模块可以访问高级集成服务界面,这是必需的。
- 然后,IT开发人员使用服务外观中的Advanced Integration服务接口为服务外观实现创建SCA导出,如以下屏幕截图所示。
- 开发人员提供了服务外观实现逻辑,如以下屏幕截图所示。 在此示例中,实现已经存在,但是具有不同的接口,这是典型的。 开发人员提供了调解逻辑,它可以是BPEL微流,WebSphere™ESB调解,或者在最简单的情况下甚至可以是接口调解组件。
步骤4.将Advanced Integration服务连接到实施
下一步是重新访问Service Facade工具包,并将Advanced Integration Service SCA导出连接到Service Facade Implementation流程应用程序中定义的Advanced Integration Service实现导出,如以下屏幕截图所示。
- IT开发人员在Integration Designer中打开服务外观工具箱。
- 在组装图中,开发人员创建具有与SCA Advanced Integration Service导出相同接口的SCA导入,并将Advanced Integration Service导出连接到SCA导入,如以下屏幕截图所示。
- 然后,开发人员将ServiceImplementation SCA导入绑定配置为调用服务实现的SCA导出,如以下屏幕截图所示。
模块名称是高级集成服务实现模块的名称。 在我们的情况下,这是Service_Implementation_PA_Implementation,其前缀是当前部署的Process App
PJP3
的首字母缩写和版本。 由于我们还没有实现过程应用的快照,因此版本为Tip
。 首次在Process Center中测试服务时使用Tip
。 将代码提升到Process Server时,需要更改前缀。 例如,如果快照名称为V1.0.0
,则模块名称将为PJP3-V1.0.0-Service_Implementation_PA_Implementation
。 完成此操作可能会有些棘手。 首先,确定流程应用程序快照名称是什么,然后更改模块名称以包括该名称,例如PJP3-V1.0.0-Service_Implementation_PA_Implementation
。 接下来,拍摄立面工具箱的快照。 然后在实施流程应用程序中更新工具箱依赖项,以指向刚刚创建的外观工具箱快照。 最后,使用工具箱(V1.0.0
引用的名称拍摄Advanced Integration Service实施过程应用程序的快照。
步骤5.重用高级集成服务
现在,开发人员已经为Advanced Integration Service构建了Facade,并创建了实现,业务用户现在可以在他或她要重用Advanced Integration Service的任何流程应用程序中引用Service Facade工具包。
- 业务用户使用Process Designer创建一个流程应用程序。
- 然后,业务用户添加服务外观工具箱,并选择要包括的版本,如以下屏幕截图所示。
- 现在可以从服务外观工具箱中使用Advanced Integration服务,如以下屏幕截图所示。
- 在我们的示例中,AutomatedClaimsProcessing高级集成服务在BPD中的“自动索赔处理”步骤中被重用,如以下屏幕截图所示。
结论
在本文中,我们描述了如何实现服务外观模式。 此模式允许从许多Process Apps或工具包中引用Advanced Integration服务实现,而仅将其部署到服务器一次。 以下屏幕截图概述了立面图案设计。
翻译自: https://www.ibm.com/developerworks/websphere/bpmjournal/1112_pacholski/1112_pacholski.html