跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 IBM Business Process Manager Advanced V7.5 实现 Facade 模式

最大限度地提高效率和重用

Denis F. Brodeur, 高级软件开发人员、Integration Designer Test Tooling 团队技术负责人, IBM
Denis Brodeur 照片
Denis Brodeur 在 IBM 工作了 20 年。目前是一位高级软件开发人员兼 IBM 多伦多实验室的 IBM Integration Designer Test Tooling 团队的负责人。

简介: 在最近的一篇 IBM® BPM Journal 文章 配套使用 IBM Integration Designer 和 IBM Process Designer 时的最佳实践 中,作者推荐了 Facade 模式:“避免过多或意外破损的一个良好模式是将数据类型和接口放在正面,将模型与通过其他工具引入的更改分隔开”。在本文中,我们将更加详细地探讨 Facade 模式。具体来说,我们将向您展示如何使用 IBM Business Process Manager 高效地实现 Facade 模式,同时最大限度地实现服务重用。 本文来自于 IBM Business Process Management Journal 中文版

发布日期: 2012 年 2 月 09 日
级别: 中级 原创语言: 英文
访问情况 : 533 次浏览
评论: 


简介

在 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 的工具箱。由于部署到服务器的每个流程应用程序都将部署它所包含的工具箱的副本,包括工具箱中实现(用于重用)的大量 AIS,然后在多流程应用程序中重用工具箱将导致在服务器中部署大量的工具箱副本。图 2 显示三个流程应用程序重用工具箱中实现的 AIS 而导致在流程服务器中部署了三个 EAR。部署大量的 EAR 可能对服务器性能产生负面影响,使管理任务更加复杂。


图 2. 每个已部署的流程应用程序实例都导致新的工具箱实现 EAR
每个已部署的流程应用实例都导致新的工具箱实现 EAR

本文介绍了用于可重用 AIS 实现的高效运行实现的设计模式,无需部署多个 AIS 实现。


创建 Facade 模式手册概述

在本文中,我们将介绍一种 “中间满足” 法,其中企业用户定义 Automated Claim AIS,IT 开发人员已经实现了企业用户定义的 AIS。

我们将涵盖以下主要步骤,如图 3 所示:

  1. 创建一个 Services Facade TK 工具箱:企业用户创建一个 Services Facade TK 工具箱,其中定义了 Automated Claim Processing AIS。这是企业用户用来与服务进行通信的接口。
  2. 创建一个 Service Facade TK 工具箱 AIS 实现:IT 开发人员创建一个框架式 AIS Facade 实现。这是 “无逻辑” 服务实现,将简化代理调用到实际服务实现。
  3. 创建一个 Service Implementation PA 流程应用程序:IT 开发人员创建一个 Service Implementation PA 流程应用程序,其中定义了 AIS 实现逻辑。
  4. 将 AIS 定义连接到 AIS 实现:IT 开发人员将 Service Implementation PA 流程应用程序实现连接到 Services Facade TK 工具箱中的 AIS 定义。
  5. 重用 AIS:企业用户将 Service Facade TK 工具箱包含在 Service Consumer PA 流程应用程序中,并重用来自该工具箱的 AIS。

图 3. 主要开发步骤总结
主要开发步骤总结

第 1 步:创建 Services Facade TK 工具箱

在这一步中,企业用户将创建 Facade 工具箱,然后定义将成为 AIS 接口组成部分的业务对象。这是 Service Implementation PA 流程应用程序需要符合的接口。该工具箱将由 Claims Processing PA 流程应用程序和 Service Implementation PA 流程应用程序共享。

  1. 企业用户使用 Process Designer 创建一个新的工具箱,使用的命名规则反映了这是 Service Facade 工具箱这个事实,如图 4 所示:

    图 4. 创建 Facade 工具箱
    创建 Facade 工具箱

  2. 企业用户打开 Process Designer 中的工具箱,如图 5 所示,然后创建将成为 AIS 接口组成部分的业务对象,如图 6 所示。

    图 5. 创建业务对象
    创建业务对象



    图 6. 添加 BO 参数
    添加 BO 参数

  3. 企业用户创建 AIS,如图 7 所示。在该样例代码中,AIS 名称为 AutomatedClaim。然后,用户添加输入和输出参数,如图 8 所示。

    图 7. 创建 AIS
    创建 AIS



    图 8. 添加参数
    添加参数

  4. 然后企业用户创建一个快照,需要该快照才能重用 Facade 工具箱。

第 2 步:创建 Service Facade 工具箱 AIS 实现

在这一步中,IT 开发人员创建 Facade AIS 实现的框架。该实现最终将调用实际的 AIS 实现。

  1. 开发人员打开 Integration Designer 中的 Facade 工具箱,如图 9 所示。

    图 9. 打开 Integration Designer 中的 Facade 工具箱
    打开 Integration Designer 中的 Facade 工具箱

  2. 然后,开发人员实现 Facade AIS,如图 10 所示,并选择一个空实现。

    图 10. 实现 Facade AIS 作为空实现
    实现 Facade AIS 作为空实现

    装配图现在显示了 Sservice Component Architecture (SCA) AIS 导出,如图 11 所示。



    图 11. 装配图中的 SCA AIS 导出
    装配图中的 SCA AIS 导出

稍后,我们将把 SCA AIS 导出连接到实际实现。请谨记 Facade 模式的关键点是不要在工具箱中实现逻辑!


第 3 步:创建 Service Implementation PA 流程应用程序

在这一步中,IT 开发人员创建一个流程应用程序,实现 Facade 工具箱中定义的服务。

  1. IT 开发人员使用 Integration Designer 创建用于 facade 实现的流程应用,如图 12 所示。

    图 12. 创建实现流程应用
    创建实现流程应用

  2. 开发人员打开工作区中的流程应用程序,然后选择 Change Toolkit Dependencies,如图 13 所示,使流程应用程序依赖于 Service Facade 工具箱。创建这种工具箱依赖性的原因是为了将 AIS 接口显示给实现逻辑。

    图 13. 创建对服务实现工具箱的依赖性
    创建对服务实现工具箱的依赖性

  3. 开发人员然后选择 Open Snapshot in Workspace,如图 14 所示,将工具箱的只读(因此变灰,如图 15 所示)内容带入到工作区。

    图 14. 将 Facade 工具箱带入工作区
    将 Facade 工具箱带入工作区

    请注意,这也带来 AIS 接口,如图 15 所示。



    图 15. 工作区中的 AIS BO 和接口
    工作区中的 AIS BO 和接口

  4. 开发人员将 ServicesFacade Library 添加到服务实现模块的 Dependencies,如图 16 所示。需要该操作使模块能够访问 AIS 接口。

    图 16. 使实现模块能够访问 ServicesFacade 库
    使实现模块能够访问 ServicesFacade 库

  5. 然后,IT 开发人员为 Service Facade 实现(使用 Service Facade 中的 AIS 接口)创建 SCA 导出,如图 17 所示。

    图 17. 实现的 SCA 导出
    实现的 SCA 导出

  6. 开发人员提供 Service Facade 实现逻辑,如图 18 所示。在我们的示例中,实现已经存在,但是拥有不同的接口,这很典型的。开发人员提供调解逻辑,该调解逻辑可以是 BPEL 微流,WebSphere™ ESB 调解,甚至是一个接口调解组件(在最简单的案例中)。

    图 18. 带有调解的 Service Facade 实现
    带有调解的 Service Facade 实现


第 4 步:将 AIS 连接到实现

下一步是重新访问 Service Facade 工具箱,并将 AIS SCA 导出连接到在 Service Facade Implementation 流程应用程序中定义的 AIS 实现,如图 19 所示。


图 19. 通过 SCA 导出将 AIS 连接到实现
通过 SCA 导出将 AIS 连接到实现
  1. IT 开发人员打开 Integration Designer 中的 Service Facade 工具箱。
  2. 在装配图中,开发人员使用与 SCA AIS 导出相同的接口创建 SCA 导入,并将 AIS 导出连接到 SCA 导入,如图 20 所示。

    图 20. 连接到实现的 SCA 导入的 AIS 导出
    连接到实现的 SCA 导入的 AIS 导出

  3. 然后,开发人员配置 ServiceImplementation SCA 导入绑定以调用服务实现的 SCA 导出,如图 21 所示。

    图 21. 提供 SCA 绑定信息
    提供 SCA 绑定信息

    Module name 是 AIS 实现模块的重整名称。在我们用例中,是 Service_Implementation_PA_Implementation,其前缀为当前部署的流程应用程序的首字母缩写和版本 PJP3。由于我们还没有实现流程应用程序的快照,因此版本为 TipTip 是用在对流程中心服务进行首次测试。当将代码推送到流程服务器时,前缀需要更改。例如,如果快照名称为 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)


第 5 步:重用 AIS

现在,开发人员已经为 AIS 创建了 Facade,并创建了实现,企业用户现在可以在他或她想要重用 AIS 的任何流程应用程序中参考 Service Facade 工具箱。

  1. 企业用户使用 Process Designer 创建一个流程应用程序。
  2. 然后,企业用户添加 Service Facade 工具箱并选择要包括的版本,如图 22 所示。

    图 22. 在流程应用程序中重用 Service Facade 工具箱
    在流程应用程序中重用 Service Facade 工具箱

  3. 现在可以从 Service Facade 工具箱使用 AIS,如图 23 所示。

    图 23. 现在可以重用 Service Facade 工具箱中的 AIS
    现在可以重用 Service Facade 工具箱中的 AIS

  4. 在我们的示例中,AutomatedClaimsProcessing AIS 在 BPD 的 Automated Claims Processing 步骤中重用,如图 24 所示。

    图 24. 在 BPD 中重用 Service Facade 工具箱的 AIS
    在 BPD 中重用 Service Facade 工具箱的 AIS


结束语

在本文中,我们介绍了如何实现 Service Facade 模式。该模式允许从多个流程应用程序或工具箱引用 AIS 实现,同时只需在服务器上部署一次即可。图 25 重组了 Facade 模式设计。


图 25. Service Facade 模式设计总结
Service Facade 模式设计总结

参考资料

学习

获得产品和技术

讨论

关于作者

Denis Brodeur 照片

Denis Brodeur 在 IBM 工作了 20 年。目前是一位高级软件开发人员兼 IBM 多伦多实验室的 IBM Integration Designer Test Tooling 团队的负责人。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=792437
ArticleTitle=使用 IBM Business Process Manager Advanced V7.5 实现 Facade 模式
publish-date=02092012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。