消息队列 ibm_在IBM Business Process Manager中使用消息路由复杂的分配

消息队列 ibm

您可以使用IBM BPM为各种用例建模和优化业务流程。 尽管有很多方法可以将任务分配给流程的用户,但是每种方法都需要将任务分配给用户或团队。 在流程应用程序中考虑任务分配时,理解此概念很重要。

借助IBM BPM,您可以使用负载平衡方法来分配任务,以便每个用户拥有相同的编号,使用循环方法来按顺序将每个传入任务分配给用户,使用通道分配方法来将任务分配给团队,并使用动态团队分配方法,可使用团队过滤器服务根据过滤器标准分配给团队。 所有这些方法都要求在创建任务时对其进行分配。 使用其解决方案默认提供的IBM BPM功能的组织必须使用这些分配方法之一,或更改其流程以适应该模式。

但是,如果企业不能改变其商业惯例怎么办? 如果流程应用程序必须具有严格的推式或拉式分配机制,以确保用户仅具有一定数量的任务并且不能“挑选”任务,该怎么办? 本教程回答了这些问题,并研究了在IBM BPM中实现非标准类型的分配结构的三种方法。 使用IBM BPM中的卧底代理和消息事件功能,您可以通过一种使用消息来路由分配的模式(也称为消息驱动),轻松地启动,前进,返回和结束与应用程序和外部应用程序中的需求相关的流程。路由。

本教程适用于中级IBM BPM开发人员。 您应该具有建模过程和路由任务的经验。 您应该了解如何在JavaScript API中使用秘密卧底代理和TWSearch对象。 有关更多信息,请参见“ 相关主题”部分。 本教程适用于IBM BPM V8.0.1和更高版本。

在IBM BPM中可以使用多种高级方法来路由流程。 在任务上,您可以配置分配策略,例如“负载均衡”选项(将任务分配给打开任务最少的用户)和“循环”选项(分配由系列中每个流程实例创建的每个任务) ,然后是团队中的另一个用户。 另外,您可以通过团队过滤器服务路由任务分配,该服务允许将诸如记录系统之类的组件合并到分配策略机制中。 而且,当您需要定义动态返回一组用户和管理员的服务时,可以使用团队检索服务。

但是,对于根据流程参与者的收件箱容量分配的任务,您需要考虑更高级的模式和功能,如本教程以下示例中所述。

示例分配方案

除了IBM BPM中缺省可用的功能之外,在许多情况下可能需要其他分配模式。

您的应用程序可能需要请求分配模式,您的流程用户必须先主动请求任务,然后才能将任务发送到收件箱。 这种模式使您的流程参与者可以更严格地管理其收件箱。 拉取分配模式允许根据技能进行“樱桃采摘”。 例如,考虑需要任务分配方案的应用程序所有者,该方案阻止业务用户从列表中选择较简单的任务,因为他们只能看到选择的特定任务供他们查看。

应用程序所有者可能还希望使用推送模式进行任务分配。 考虑一个示例,其中该应用程序需要一个受严格监管的收件箱:每个业务用户一次只能执行4个任务。 完成任务后,将根据技能矩阵扫描可用的未完成任务,以找到最适合业务用户的任务。 然后,将任务分配给正确的用户,并通过消息进行路由,也称为消息驱动的路由。 或者,组织可能需要严格审核的收件箱以用于度量目的。

考虑到企业可能还希望实现这种推式分配方式,以便对系统中的任务进行优先级排序和快速跟踪。 使用IBM BPM中缺省情况下可用的分配功能,您可以增加优先级或输入截止日期。 但是,这两个选项都不强制流程参与者仅完成该特定任务。

IBM BPM包含一些选项,您可以使用这些选项来实现专门的分配模式。 对于流程应用程序中的经理来说,使用任务的“分配”选项卡上的选项直接将任务直接分配给流程用户很简单。 您的组织还可以使用团队过滤器服务来选择要将任务分配给的特定用户或组。 但是,默认情况下,没有可用的选项都允许严格控制流程参与者收件箱中的任务数量。 任务进入系统后,始终会立即分配该任务,并显示在各个用户的收件箱中。

如果实施消息驱动的路由模式,则组织可以同时使用推式和拉式分配以及严格审核的收件箱。 而且您的组织可以继续使用IBM BPM Process Portal,因此您无需为流程参与者创建定制页面。

通过消息进行路由分配使其他系统可以轻松地与IBM BPM中的任务进行交互。 例如,考虑处理错误的流程:您使用IBM BPM为解决其他系统中创建的错误的流程参与者创建和分配任务。 解决系统中的错误后,将通过Web服务(或其他方式)将消息发送到流程,该服务将关闭IBM BPM中针对流程参与者的任务。 现在,企业所有者可以访问以前无法获得的有关流程错误的见解,并且可以更快地响应系统故障。

消息驱动的分配路由还可以确保任务平均分配,因为您可以防止流程参与者挑选简单的任务。 当您需要为IBM BPM系统外部的事件创建任务时,通过消息路由分配对于Business Activity Monitor应用程序解决方案也很有用。 有关详细的示例,请参见“其他功能示例”部分。

推和拉分配的示例实现

您可以使用类似的模式,主要依靠秘密代理和JavaScript API中的TWSearch对象,在IBM BPM中本节中的场景。 使用卧底代理,流程可以在需要时推进或关闭任务。 您使用TWSearch对象来确定流程用户的能力及其在收件箱中接收任务的能力。

业务流程图

图1中的业务流程图(BPD)显示了一个基本的消息驱动的路由模板,您可以将其用于分配路由中的推和拉策略。 使用此模式,您还可以实现容量受限制的收件箱,并使管理人员能够通过系统为“快速通道”优先级选择任务。

图1.消息驱动路由BPD示例
示例消息驱动路由BPD的屏幕截图

当任务首次进入系统时,将使用TWSearch对象评估所有用户的收件箱。 您可以使用搜索来查找低于系统设置容量的用户。 将系统的容量设置为环境变量可能会很有用。 初始容量验证可以基于任何其他业务标准。

最初验证任务后,令牌将路由到Hold for Admin任务。 在这里,在任务选项中设置的条件将检查“ 评估收件箱”服务的输出。 该检查允许令牌以管理任务停止(例如,如果所有用户收件箱都已满),或者直接路由到“ 完成任务” (例如,如果用户具有可用容量)。

如果令牌保留在“管理员保留”任务中,请注意有一个分配了该任务的管理员团队,并且该活动具有消息事件。 您不希望没有推进任务的潜力,因此将它们分配给一组管理员用户。 此外,保留未分配给用户的任务不是IBM BPM的良好做法。 在此示例中,如果系统出现问题,则管理团队中的用户可以推进任务。 此任务还可以使业务经理用户对流程有更多控制,以便他们可以根据需要将任务直接分配给其他业务用户。 如果需要,管理人员可以确定任务的优先级或将任务置于快速通道。

如前所述,将消息事件附加到“ 保留用于管理员”任务。 对于消息事件,可以在完成分配活动中以拉式分配模式推进任务 。 要实现pull组件,请将TWSearch对象放在完成后运行的Complete Task活动中。 TWSearch运行时,如果找到用户可用的容量,则将触发秘密代理并为用户分配完成任务的下一个任务

评估服务

图2显示了可以在收件箱评估服务中使用的示例基本轮廓。

图2.评估收件箱示例服务
评估收件箱服务示例的屏幕截图

评估收件箱服务会找到系统中具有可用容量的第一个用户。 该服务具有一个输出变量: signedUser 。 您可以在“ 消息驱动的路由 BPD”和“ 完整任务”服务中重用“ 评估收件箱”服务。

您可以使用TWSearch API查询根据任何条件进行评估。 请参阅IBM知识中心上的产品文档中的TWSearch信息。 相关标准的其他示例包括外出状态和技能可用性。 您可以轻松地将用户属性合并到此模式中。 并且,您可以将REST服务用于其他或更优化的功能。

管理员或经理的人工任务

您需要基本的人工服务才能根据评估来执行任务,如图3所示。

图3. Hold for Admin任务示例
“为管理员保留”任务示例的屏幕截图

保留为管理员”任务允许其他用户(例如管理员或经理)打开任务并将其分配给特定用户。 这种任务为您提供以下优点:

  • 任务完成时间更贴切地反映了在任务上花费的实际时间。
  • 经理可以根据需要加快任务的优先级。
  • 任务管理得到简化。

如果用户要分配任务,则可以通过传统或自定义仪表板或自己的收件箱找到任务。 然后,他们选择一个用户名来分配任务,活动将输出该用户名。

一个完成此人工任务的简单教练看起来像图4中的用户界面示例:

图4. Hold for Admin任务的教练示例
“保留管理员”任务的示例教练的屏幕截图

完成任务活动

您可以实现一个简单的人工服务,该服务使用此示例分配模式,如图5所示。该示例显示了完成服务的外观,您可以在要使用pull分配的流程中遵循该模式。

图5. Complete Task人员服务示例
示例“完整任务”人工服务的屏幕截图

当您实现拉式分配模式时,“ 完成任务”人工服务必须在完成时评估用户负载。 如果该服务为用户找到了额外的容量,它将使用TWSearch查询拉出任务。 基于IBM知识中心上的产品文档,实现TWSearch

在此示例中, TWSearch查找以“ 保留管理员”任务为标题的任务。 找到的第一个任务将在具有任务ID的“ 分配用户”卧底代理中触发。

必须将“ 完成任务”活动的当前分配用户输入到卧底特工,以便可以分配任务。 “ 保留为管理员”任务上的消息事件接收到一条消息,并且令牌前进到“ 完成任务”人工服务。 令牌前进的结果是,“ 完成任务”被分配给当前用户。

您可以通过在“ 查找任务”和“ 分配用户”之间合并其他逻辑和网关来轻松扩展模式,以解决其他情况。

避免流程参与者挑选樱桃

上一节显示了可用于实现推式和拉式分配策略的步骤和基本模式。 这种模式可以轻松地与流程应用程序具有更多功能的更高级策略或流程集成。 例如,您可以扩展模式以允许备用系统在分配任务后关闭它。

常见的应用需求是业务部门的管理团队希望避免分配给一个组的任务多于一个的情况,并且各个团队成员都有能力从任务列表中选择工作量较小的任务。 IBM BPM解决方案的最终目标是在任务可用时自动将任务分配给单个BPM用户。 通常将业务需求声明为一次分配给用户的任务数量不超过一个。 此要求与在分配任务时应用负载平衡或轮询选项不同,后者可能导致为每个用户分配多个任务。

该方案的解决方案实质上是前一个示例中推送模式实现的一种变体。 创建一个系统任务,根据组织的标准将令牌路由到最不忙的用户。 这种方法似乎类似于负载平衡或循环任务分配策略选项,但是与使用负载平衡或循环策略的可配置性相比,您拥有更大的自由度。 路由标准可以与许多分配的任务相关,例如,用户容量,用户专业化或特定于任务的属性。 与上一节一样,您可以使用TWSearch API查询来检索有关分配的任务和用户的信息。

这个想法是让流程参与者同时专注于一项任务。 在这种情况下,需要将任务分配给没有任务的用户,或者-如果所有用户都分配有任务,则新任务应该分配给专用的管理员组,类似于上一个场景。

在某些简化方案中,过多的任务可以分配给专门为此目的创建的用户帐户。 然后,始终可以在一个位置上找到分配给该专用用户帐户的“停放”任务。

考虑以下示例:用户正在完成当前工作,没有新任务要进来,但是有“停放”任务可用。 如果使用此模式,则一种选择是在用户活动结束时提供一项服务,该服务使用TWSearch API查询来检查用户是否有任何新分配的任务以及是否有合格的“停放”任务可用。 如果两个答案都是肯定的,并且满足所有其他组织标准,则该服务会将停放的任务重新分配给用户。

如果路由规则涵盖了所有可能的分配方案,则此方法可为您的流程最终用户提供自动驱动的全自动路由实施。 “停放”任务已分配给专用用户这一事实使您可以轻松构建简单的用户界面屏幕,以便您的流程参与者可以管理这些任务,并在需要时手动重新分配它们。

此模式的特定实现与上一部分有关管理员或管理员人工任务的方式相同。

整合错误处理

消息驱动的分配路由模式的另一个用例是通用错误处理过程。 在业务活动监视解决方案的上下文中,将错误处理合并到分配策略中非常有用,在该解决方案中,没有真正的流程,只有另一个系统正在运行并受到监视。

如果捕获到错误,则可以通过添加其他消息事件和秘密代理来扩展IBM BPM消息驱动的路由模式,如图6所示。

图6.消息驱动的路由错误解决方案BPD示例
示例消息驱动的路由错误解决方案BPD的屏幕截图

解决错误上的其他卧底代理必须具有备用相关字段,以便可以启动卧底代理。 相关性ID必须与基础系统可用的信息相关,以便这些ID是正确的并且可以重新创建。

您可以按照与错误处理BPD中相同的模式,将任务与基础系统同步。 这种方法可以确保错误任务代表系统或进程的当前状态,并可以通过简单的关联ID来实现它们。

使用错误处理BPD(在图6中称为“ 消息驱动的路由错误解决” ),您可以将使用相关ID的秘密代理添加到Hold for Admin任务中。 在基础系统中解决任务后,附加到卧底代理的消息事件将关闭任务。 这种方法可确保错误任务与外部系统同步。

如果在具有多个任务的系统中使用此模式,则可以对更高级的TWSearch查询遵循相同的常规模式。 为确保启动正确的任务类型,请确保单个Hold Hold Admin任务的名称包括搜索查询中相应的“ 解决错误”任务的名称。 如果您将此模式用于多个消息,则“ 保留管理员”任务的名称对于每个“ 解决错误”任务必须是唯一的。

其他功能示例

IBM Business Monitor中的业务活动监视功能用于监视各种异构系统并报告流程实例状态。 您可以在业务活动监视应用程序中使用消息驱动的路由来为特定的非IBM BPM系统事件创建任务。

默认情况下,业务活动监视的组件可以向用户发出有关服务级别协议违规的警报,但是该功能不包括管理违规行为并采取措施的机制。 但是,通过消息驱动的路由,您可以扩展功能。

您可以使用上一部分中讨论的IBM BPM模式来允许流程应用程序的用户与服务级别协议冲突进行交互并采取措施,以确保合规性。 例如,即使IBM BPM流程没有必要使违规行为自动化,IBM BPM系统也会对源自外部系统的违规行为做出React。 您可以在IBM BPM异常处理流程实例中的业务活动监视应用程序中使用任何相关ID,这为整个企业提供了可扩展和可扩展的基础解决方案。

结论

本教程检查了实现注意事项以及可用于流程应用程序用户的消息驱动的分配路由的推拉模式。 您学习了如何使用这些模式对流程参与者进行严格的收件箱监管,为流程提供更具体的任务完成指标,以及为业务活动监视应用程序构建错误处理。

现在,您可以将这些模式和示例应用于流程应用程序,以改进业务用户的任务分配策略和实践。

致谢

作者要感谢James Carr借给我们他的技术专长并审阅了本教程。


翻译自: https://www.ibm.com/developerworks/bpm/library/techarticles/1605_grant-trs/1605_grant.html

消息队列 ibm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值