使用 WebSphere BPM 套件实现多模块监测

  介绍

  在本文中您将了解如何利用 IBM® WebSphere Business Modeler V6.2(此后称作 Modeler) 可下载插件 提供新功能来实现多模块监测我们插件提供了:

  Modeler 中监测集编辑器可用于定义监测集监测集 包含个或多个对应于各业务项目属性属性可允许用户识别共同构成个端到端流程区别业务流程相应例子

  您可以使用新导出选项将项目导出以便对个或多个业务流程实现端到端监测

  您将了解如何使用 Modeler 可下载插件:

  定义监测集

  使用 Modeler 导出向导中插件提供 WebSphere Business Modeler End-to-End Process Monitoring 导出选项自动完成多模块监测

  将代码自动生成监测模型导入到 WebSphere Integration Developer (Integration Developer)使用 Integration Developer 中 Business Monitor(此后称作 Monitor)监测模块编辑器 (MME) 来编辑它们生成 Monitor J2EE 项目将模型发布到 WebSphere Process Server (Process Server) 并通过在 Business Space 定义小组件来查看被监测活动

  背景

  在 Modeler 中创建流程和业务度量时通常会实现两种类型监测模型:

  高级监测模型 (HMM):业务级监测模型可从 Modeler 中导出并可在随后导入到模型编辑器中

  低级监测模型 (LMM):通过 Process Server 生成 IT 级监测模型可实现 Modeler 中设计业务流程

  文章 Put capabilities of business activity monitoring (BAM) to work, Part 6: Integrating high-level and low-level monitor models(developerWorks 2008Miles 和 Ewan)向您介绍了如何集成对监测模型:高级模型和低级监测模型这些模型通过事件通信来协同作业本文将向您介绍如何使用监测模型编辑器集成这两种监测模型:在 Modeler 中创建高级模型以及实现 Modeler 所描述务流程 Integration Developer 应用生成低级模型通过这过程您将了解如何:

  创建 XML 事件定义

  根据低级模型中事件定义发送出站事件

  在高级模型中接收入站事件

  使用事件中信息更新高级模型中度量和关键绩效指标 (KPI)

  在运行时:

  当特定任务 T 执行时低级模型接收由应用发出事件

  低级模型每次在任务 T 结束时都会发送个事件

  高级模型接收低级模型发送事件

  高级模型中度量和关键绩效指标从事件信息中接收各自

  本文提供两个 可下载插件 可自动化上述流程使用 Modeler 中监测集编辑器您可以创建个或多个监测集并将它们绑定到个或多个希望监测业务项目属性然后您可以选择所需监测集进行监测并选择要监测流程组件然后使用 Modeler 导出向导 WebSphere Business Modeler End-to-End Process Monitoring 中新选项将它们导出

  根据监测集选择插件会自动生成度量和 XML 事件定义而这些定义随后又将插入到 Modeler WebSphere Integration Developer 导出选项生成监测模型中度量将使用低级监测模型中监测集(恰好是业务项目属性)中字段并且将基于高级监测模型作为入站事件接收到出站事件中低级监测模型高级监测模型使用从相同端到端业务流程区别例子接收到度量值来组配端到端应用在本文中我们将剖析这种监测端到端流程过程将多个单独流程拆解为详细步骤并通过个极其简单贷款应用业务流程(在 Modeler 中建模)来详述各个步骤 举例项目 针对端到端监测场景提供

  安装插件

  要安装插件请执行以下操作:

  将所提供 两个 JAR 文件 复制到 Modeler V6.2 安装 \plugins 目录如果已经将 Modeler 安装到默认位置则这个目录应该为 C:\Program Files\IBM\WBModeler62\plugins

  重新启动 Modeler

  场景概述

  为了实现监测您需要在 Modeler 中创建个模型该模型应该在个端到端流程中包含了多个流程并且业务项目将由这些流程使用各流程还应指定要监测

  为了帮助您入门我们提供了个现成可用贷款流程您可以 点此处下载它解压文件并将 .mar 文件导入到 Modeler 中思路方法是选择 File => Import => WebSphere Business Modeler Import => WebSphere Business Modeler project

  导入该项目的后打开 LoanEndToEndProcess您应该能看到如图 1 所示流程

图 1. 端到端贷款应用流程


  端到端流程中两个任务或流程将被监测第 3个 Review Loan And Update 流程是个手动流程因此未被监测我们来看看这两个被监测流程即 Loan_InitiationOne 和 Loan_CompletionOne如图 2 和图 3 所示

图 2. Loan_InitiationOne 流程


图 3. Loan_CompletionOne 流程


  查看原图(大图)

  注意各流程都使用个业务项目(在本例中为 LoanApplicationType 和 LoanType)在流程的间传递数据我们将使用这些业务项目来创建监测集

  这时您可能希望查看需要监测个或多个流程业务度量为此单击该流程图任意位置您将在 Business Measures 视图中看到所显示数据图 4 显示了 Loan_InitiationOne 流程业务度量

图 4. Loan_InitiationOne 业务度量


  查看原图(大图)

  您可以检查 Loan_InitiationOne 流程中这些活动以便于监测它们Modeler Export to WebSphere Integration Developer 功能将为 Loan_InitiationOne 流程监测模型中监测各活动创建个监测上下文插件从低级监测模型上下文中提取这些业务度量以便实现端到端监测我们将在 创建监测集 中详细描述这方面信息对于 LoanCompletionOne 流程业务度量应如图 5 所示

图 5. Loan_CompletionOne 业务度量


  查看原图(大图)

  注意甚至 LoanEndToEndProcess 端到端流程也有业务度量您不需要检查端到端流程业务度量便可实现端到端监测端到端流程中各流程监测模型可处理所有必要监测工作

  通常对于用户希望导入到 Integration Developer 中 Modeler 项目中各流程(除了端到端流程)中个独立活动都必须选中 Business Measures 选项卡下 Monitored Values 选项卡中 Processing Time 复选框除了 Processing Time 的外您还可以选择其他要监测您需要这样做以确保导出生成最终监测模型包含相应活动监测上下文监测模型中监测上下文将接收低级 BPEL 事件并确保监测模型能接收到和这些活动相关数据值(比如业务项目属性值)

  现在我们来看所使用实际业务项目即 LoanApplicationType(图 6)和 LoanType(图 7)

图 6. LoanApplicationType 业务项目


  各业务项目都有些属性其中任何属性都可用于创建监测集在我们创建模型中LoanApplicationType 所有属性类型都是 Text但是您可以使用任何原始类型比如 Integer 和 Date

  举例来说在 LoanType 中我们包括了个 Boolean 和个 Date 属性如图 7 所示

图 7. LoanType 业务项目


  启用端到端监测

  在本节中您将了解如何创建个监测集利用 Modeler 中已有选项创建基本监测模型以及使用插件新增 WebSphere Business Modeler End-to-End Monitoring 导出选项来集成基本监测模型以便您能够监测端到端流程在 端到端监测特性限制 中我们将描述这种新导出选项限制

  创建监测集

  我们为您提供了模型和监测集但如果您在开发自己模型则需要自己创建监测集在 Modeler V7.0 中我们计划在个特殊位置存放监测集但就 Modeler V6.2 而言您需要采用区别方式来访问监测集编辑器我们提供代码可以允许您创建个 “伪” 监测集它具备监测集完整功能但必须通过普通业务项目编辑器来创建它

  如前所述在本文中您不需要创建监测集监测集 MonitorSet_MS 已包含在项目中但是如果您需要创建监测集则需要创建个新业务项目思路方法是选择 Business items => New => Business Item如图 8 所示

图 8. 创建监测集


  然后为监测集指定个名称它必须以 _MS 或 Monitoring Set 结尾然后保存它并关闭项目编辑器例如监测集名称可以是 MyMonitorSetForLoans_MS

  您可以通过以下操作来编辑监测集:

  在项目树中右键单击监测集(在本例中为 MonitorSet_MS)然后选择 Open Monitor Set Editor如图 9 所示

图 9. 打开监测集编辑器




  注意:

  在 Modeler V7 中我们希望允许您双击项目树中监测集并提供普通 Modeler GUI 来创建这类新对象我们还希望删除任何特殊命名限制

  我们不建议使用业务项目编辑器打开和修改 “伪” 监测集如果执意如此我们无法保证其结果

  监测集编辑器将打开如图 10 所示


图 10. 监测集编辑器


  查看原图(大图)



  如果打开贷款场景项目提供监测集例子则会看到它具有如图 10 所示绑定关联在任何情况下您都可以添加和删除键(编辑器左侧)以及创建或更改任何键绑定关系(编辑器右侧)

  Add 和 Remove 按钮功能和您熟悉业务项目编辑器非常类似只是在编辑 Type 列时您只能看到原始类型如图 11 所示它是监测集中有效类型(注意:键顺序没有意义)


图 11. 为监测集添加键




  为确保监测集使用绑定关系需要确保以下两点:(1)任何绑定中出现任何业务项目都必须出现在所有绑定中;以及(2)任何业务项目/属性对只可能绑定到个键因此在删除绑定时或者在第次添加绑定时监测集会暂时处于不状态这将由状态条中红色消息指示

  要创建新绑定从编辑器主区域选择个键单击编辑器详细区域中 Bind如图 12 所示

图 12. 将属性绑定到监测集中




  这将打开个向导可帮助您选择要绑定到当前所选键业务项目及其属性

  在第个页面中如图 13 所示选择业务项目确保它将在需要监测流程中使用

图 13. 选择要绑定到监测集业务项目




  注意如果业务项目没有正确类型属性(换句话说和刚才创建监测集键相匹配属性类型)则不会列出它另外如果某个业务项目有正确类型属性但该属性已经在监测集中完成了绑定则不会列出业务项目

  单击 Next然后选择要在绑定中使用业务项目属性如图 14 所示

图 14. 将业务项目属性绑定到监测集




  单击 Finish您将在监测集编辑器中看到新绑定

  保存监测集

  导出监测模型

  现在您可以开始导出监测模型了这需要两个步骤涉及导出到 Integration Developer 中然后将 fexport 集成低级监测模型 (LMMs) 和高级监测模型 (HMM) 导出到 Integration developer

  首先将项目导出到 Integration Developer请右键单击项目树并选择 File => Export => WebSphere Business Modeler Export => WebSphere Integration Developer

  在第个页面中指定希望存放导出文件文件夹我们建议您创建个新文件夹如果在 Target directory 字段中指定了个新目录则向导会询问您是否希望创建它确保选中了 Export entire project and related projects如图 15 所示然后单击 Next

图 15. 选择导出项目目标目录




  在下个页面中接受所有默认结果并单击 Next

  在下个页面中选中 Export business measures as a monitor model or models并确保选中了 Export to a single monitor model…然后单击 Next如图 16 所示

图 16. 选择将业务度量导出为监测模型或模型




  验证导出正确无误然后单击 Finish导出完成后您应该能看到两个警告如图 17 所示

图 17. 导出到 Integration Developer 的后警告


  查看原图(大图)



  导出项目 Integration Developer 目录现在应该包含以下两个压缩文件(文件生成日期和时间将有所区别):

  wfm1_62c_WeFinanceLoanModelProject_2010-01-06T11.42.53.zip

  wfm1_62c_WeFinanceLoanModelProject_Monitor_2010-01-06T11.42.52.zip

  包含 _Monitor_ 子压缩文件夹应该包含监测模型它使用后缀 .mm分别针对选择导出项目中各个流程除了众多文件它应该包含以下监测模型:

  Loan_InitiationOne.mm

  Loan_CompletionOne.mm

  Loan_UpdateOne.mm

  LoanEndToEndProcess.mm

  选择 File => Export => WebSphere Business Modeler Export => WebSphere Business Modeler End-to-End Process Monitoring(注意:这是插件提供个新选项)

  选择步骤 2 中项目导出目录然后选择要监测端到端流程(本例中为 LoanEndToEndProcess)如图 18 所示.然后单击 Next

图 18. 选择要导出端到端流程


注意:如果此目录包含超过两个压缩文件或者超过个包含子串 _Monitor_ Zip 文件则导出将以失败告终

  在下个页面中选择将要使用监测集(在本例中为 MonitorSet_MS)如图 19 所示然后单击 Finish

图 19. 选择要导出监测集


  端到端流程监测功能工作原理

  完成上节中步骤的后插件提供端到端监测特性会将包含 _Monitor_ 子压缩文件夹解压到指定目标目录这个压缩文件夹应该包含所执行 Integration Developer 导出中监测模型

  对于所选监测集中各个 k 键代码将确定将哪些业务项目属性绑定到它对于这些属性代码将确定哪些输入和输出流程并创建个独立流程列表以确保排除端到端流程对于各流程代码将定位并打开相应监测模型文件 (suffix .mm) 并插入个度量和个出站事件作为流程输入或输出业务项目属性有效载荷并确保哪些需要绑定到所选监测集 k 键

  此外对于各出站事件代码将在端到端流程的后指定高级监测模型中创建个入站事件并定义个关联度量用于将从端到端流程中区别流程低级监测模型接收到入站事件有效载荷关联在通过比较从区别监测模型(监测端到端流程部分)接收到这些度量高级监测模型将能够识别相同端到端流程相应例子代码还将为入站/出站事件创建个 XML 事件定义并将它保存到 ModelOutboundEvent.XSD 文件中

  举例来说在本文提供举例贷款项目中监测集 MonitorSet_MS 包含 LoanID 键该键映射到 LoanApplicationType 业务项目 LoanId 属性同时还映射到 LoanType 业务项目 LoanID 属性 LoanApplicationType 将由 Loan_InitiationOne 流程引用而 LoanType 将由 Loan_CompletionOne 流程引用因此WebSphere Business Modeler 端到端流程监测导出选项将插入个出站事件和度量到 Loan_InitiationOne 流程监测模型

  清单 1 显示了来自 Loan_InitiationOne_Mon.mm 出站事件 XML

清单 1. Loan_InitiationOne 流程监测模型中出站事件

<outboundEvent displayName="ModelOutboundEvent" 
  extensionName="ActionServicesEvent" 
  id="ModelOutboundEvent" rootElement="cbe:CommonBaseEvent"> 
  <eventPart displayName="correlation part" 
    id="correlationpart" 
    path="cbe:CommonBaseEvent/correlationpart" type="mn:ModelCorrelationEvent"/> 
  <map> 
    <trigger ref="Loan_InitiationOne_Termination_Trigger"/> 
    <outputValue> 
      <assignments> 
      <assignment 
        leftValue="ModelOutboundEvent/extendedData/BusinessSituationName" 
        rightValue="'Loan_InitiationOne event'"/> 
      <assignment 
        leftValue="ModelOutboundEvent/correlationpart/ModuleName" 
        rightValue=""Loan_InitiationOne""/> 
      <assignment 
        leftValue="ModelOutboundEvent/correlationpart/CorrelationString0" 
        rightValue="LoanId"/> 
      </assignments> 
    </outputValue> 
  </map> 
</outboundEvent> 


  在清单 2 中度量 LoanId 将通过 expression 字段进行该字段指示可以找到 LoanId 值监测上下文中位置出站事件(清单 1 中)将这个值发送给高级监测模型如清单 2 所示ReceiveLoanApplication 是 Loan_InitiationOne 流程中个活动

清单 2. 插入度量带有效负荷在 Loan_InitiationOne 流程监测模型中

<metric displayName="LoanId" id="LoanId" type="xsd:"> 
  <map> 
   <outputValue> 
     <singleValue 
      expression="ReceiveLoanApplication/ReceiveLoanApplicationENTRY/Input/LoanId"/> 
   </outputValue> 
  </map> 
</metric> 


  代码还将出站事件和度量插入到 LoanCompletionOne 流程监测模型中(在本例中为 Loan_CompletionOne_Mon.mm)出站事件到达高级监测模型其中包含个度量值该值是高级监测模型关联端到端流程相同例子所必不可少清单 3 显示了这个插入出站事件

清单 3. Loan_CompletionOne 流程监测模型中出站事件

<outboundEvent displayName="ModelOutboundEvent" 
  extensionName="ActionServicesEvent" 
  id="ModelOutboundEvent" rootElement="cbe:CommonBaseEvent"> 
  <eventPart displayName="correlation part" 
    id="correlationpart" 
    path="cbe:CommonBaseEvent/correlationpart" type="mn:ModelCorrelationEvent"/> 
  <map> 
    <trigger ref="Loan_CompletionOne_Termination_Trigger"/> 
    <outputValue> 
      <assignments> 
        <assignment 
          leftValue="ModelOutboundEvent/extendedData/BusinessSituationName" 
          rightValue="'Loan_CompletionOne event'"/> 
        <assignment 
          leftValue="ModelOutboundEvent/correlationpart/ModuleName" 
          rightValue=""Loan_CompletionOne""/> 
        <assignment 
          leftValue="ModelOutboundEvent/correlationpart/CorrelationString0" 
          rightValue="LoanID"/> 
      </assignments> 
    </outputValue> 
  </map> 
</outboundEvent> 


  在清单 4 中度量 LoanID 将通过 expression 字段进行该字段指示 Loan_CompletionOne 监测模型在监测上下文中位置其中可以找到 LoanID 值 度量 expression 字段中 VeryRiskOfficerInvolvement 是 Loan_CompletionOne 流程中个活动出站事件(参见清单 3)将来自 Loan_CompletionOne 流程监测模型这个度量值发送给高级监测模型

清单 4. Loan_CompletionOne 流程监测模型中插入 LoanID 度量

<metric displayName="LoanID" id="LoanID" type="xsd:"> 
  <map> 
   <outputValue> 
     <singleValue 
expression="VeryRiskOfficerInvolvement/VeryRiskOfficerInvolvementENTRY/Input/LoanID"/> 
   </outputValue> 
  </map> 
</metric> 


  清单 5 显示了出站事件事件定义它是由插件代码自动创建此事件定义将保存在 ModelCorrelationEvent.XSD 文件中

清单 5. 出站事件 XML 定义

<xsd:schema 
      targetNamespace="http://MultiModuleMonitoring_lib" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  <xsd:complexType name="ModelCorrelationEvent"> 
    <xsd:sequence> 
      <xsd:element minOccurs="0" name="ModuleName" type="xsd:"/> 
      <xsd:element minOccurs="0" name="ModuleId" type="xsd:"/> 
      <xsd:element minOccurs="0" name="ActivityId" type="xsd:"/> 
      <xsd:element minOccurs="0" name="EventId" type="xsd:"/> 
      <xsd:element minOccurs="0" name="CorrelationString0" type="xsd:"/> 
    </xsd:sequence> 
  </xsd:complexType> 
</xsd:schema> 


  如清单 6 所示高级监测模型 LoanEndToEndProcess_Mon.mm 将接收两个入站事件个来自 Loan_InitiationOne 低级监测模型个来 Loan_CompletionOne 低级监测模型

清单 6. 高级模型中从低级监测模型接收到两个入站事件

<inboundEvent displayName="Loan_InitiationOne event" 
  extensionName="ActionServicesEvent" 
  id="Loan_InitiationOne_event" 
  multipleCorrelationMatches="raiseException" 
  noCorrelationMatches="createNewContext" 
  oneCorrelationMatch="deliverEvent" rootElement="cbe:CommonBaseEvent"> 
  <eventPart displayName="correlation part" 
    id="correlationpart" 
    path="cbe:CommonBaseEvent/correlationpart" 
    type="mn:ModelCorrelationEvent"/> 
  <correlationPredicate 
  expression="LoanID = Loan_InitiationOne_event/correlationpart/CorrelationString0"/> 
  <filter expression="Loan_InitiationOne_event/extendedData/BusinessSituationName = 
    'Loan_InitiationOne event'"/> 
</inboundEvent> 
 
<inboundEvent displayName="Loan_CompletionOne event" 
  extensionName="ActionServicesEvent" 
  id="Loan_CompletionOne_event" 
  multipleCorrelationMatches="raiseException" 
  noCorrelationMatches="createNewContext" 
  oneCorrelationMatch="deliverEvent" rootElement="cbe:CommonBaseEvent"> 
  <eventPart displayName="correlation part" 
    id="correlationpart" 
    path="cbe:CommonBaseEvent/correlationpart" 
    type="mn:ModelCorrelationEvent"/> 
  <correlationPredicate 
  expression="LoanID = Loan_CompletionOne_event/correlationpart/CorrelationString0"/> 
  <filter expression="Loan_CompletionOne_event/extendedData/BusinessSituationName = 'Loan_CompletionOne event'"/> 
|-------10--------20--------30--------40--------50--------60--------70--------80--------9| 
|-------- XML error: The previous line is longer than the max of 90 characters ---------| 
</inboundEvent> 


  如清单 7 所示高级监测模型将使用从 Loan_InitiationOne 和 Loan_CompletionOne 监测模型接收到 LoanID 度量值来个本地度量 LoanID高级监测模型将比较接收到度量如果它们相同则本地度量为真

清单 7. 从低级监测模型接收到度量值

<metric displayName="LoanID" id="LoanID" isPartOfKey="true" type="xsd:"> 
  <map> 
    <outputValue> 
      <singleValue 
       expression="Loan_CompletionOne_event/correlationpart/CorrelationString0"/> 
    </outputValue> 
  </map> 
  <map> 
    <outputValue> 
      <singleValue 
       expression="Loan_InitiationOne_event/correlationpart/CorrelationString0"/> 
    </outputValue> 
  </map> 
</metric> 


  插件代码在高级监测模型中插入了个布尔度量以显示 HMM 是否接收到任何入站事件对于贷款场景代码定义了个布尔度量用于显示 HMM 是否从 Loan InitiationOne 监测模型接收到了个入站事件以及另个布尔度量用于显示 HMM 是否从 Loan_CompletionOne 监测模型接收到了个入站事件清单 8 显示了插入 XML

清单 8. 显示 HMM 接收传入事件布尔度量

<metric 
  displayName="Loan_CompletionOne_LoanID" 
  id="Loan_CompletionOne_LoanID" 
  type="xsd:boolean"> 
  <map> 
    <outputValue> 
      <singleValue 
  expression="fn:exists(Loan_CompletionOne_event/extendedData/BusinessSituationName)"/> 
    </outputValue> 
  </map> 
  <defaultValue> 
    <singleValue expression="false"/> 
  </defaultValue> 
</metric> 
 
<metric 
  displayName="Loan_InitiationOne_LoanId" 
  id="Loan_InitiationOne_LoanId" 
  type="xsd:boolean"> 
  <map> 
    <outputValue> 
      <singleValue 
  expression="fn:exists(Loan_InitiationOne_event/extendedData/BusinessSituationName)"/> 
    </outputValue> 
  </map> 
  <defaultValue> 
    <singleValue expression="false"/> 
  </defaultValue> 
</metric> 


  输出文件

  完成导出的后代码将创建个新压缩文件夹(其名称包含子串 EndToEndMonitor)其中包含经过修改现在支持端到端监测监测模型以及 Integration Developer 导出创建原始文件集图 20 显示了 WebSphere Business Modeler End-to-End Monitoring 导出完成后目标文件夹个举例(您日期和时间后缀会有所区别)我们还在本文 下载 中提供了这些压缩文件夹

图 20. 端到端监测导出后目标目录


  端到端监测特性限制

  插件提供端到端监测特性具有些限制目前它仅支持单监测集监测虽然这个监测集可以有多个键但每个键必须绑定到引用相同业务流程业务项目属性这是必不可少我们当前未提供定义监测集键的间或者甚至区别监测集的间关系功能我们正在研究定义高级业务流程关联模型功能

  Integration Developer 中监测

  现在您可以开始编辑和部署 Integration Developer V6.2 中监测模型我们测试了 WebSphere Integration Developer 对监测模型生成支持以及 WebSphere Process Server 上 WebSphere Business Monitor 配置文件

  将项目导入到 Integration Developer

  现在您需要将 下载 中提供两个项目交换文件导入到工作空间中Integration Developer 要求您首先依次导入模型交换文件夹和监测交换文件夹

  在 Integration Developer 中选择 File => Import

  在 Select and import source 字段中指定 er或者在深层次中找到 Project Interchange如图 21 所示然后选择 Project Interchange 并单击 Next

图 21. 将 Modeler 项目导入到 Integration Developer




  在下个页面中浏览到下载模型交换压缩文件并选中它如图 22 所示(时间戳会有所区别)此时将显示这些文件夹列表单击 Select All然后单击 Finish

图 22. 选择要导入文件夹


  查看原图(大图)



  等待直到导入完成并导入 EndToEndMonitor 项目交换压缩文件如图 23 所示(时间戳会有所区别)

图 23. 选择要导入 EndtoEndMonitor 项目




  工作空间已经创建完成这步后(也只能在这步的后)建议 “清理工作空间”为此选择 Project => Clean => Clean all projects然后单击 OK这将重建工作空间在继续的前请等待工作空间构建完成点非常重要选择 Problems 选项卡查看工作空间中是否存在任何

  成功导入项目交换文件的后视区中工作空间应该如图 24 所示


图 24. 导入后 Integration Developer 工作空间


  查看原图(大图)



  接下来我们将做些建议更改打开 Loan_InitiationOne 流程并在 Properties 视图 Details 部分中将 Automatically delete the process after completion 更改为 No这将允许您在工作流程成功完成的后检查 Business Process Choreographer Explorer 中流程例子

  切换到 Properties 视图 Event Monitor 选项卡 如图 25 所示并确保已经启用事件事件采用 XML 格式且支持模式以及为整个流程及各监测活动发送了适当 Common Event Infrastructure (CEI) 事件(Event Monitor)

图 25. Properties 视图中 Event Monitor 选项卡


  查看原图(大图)



  对 Loan_CompletionOne 流程重复步骤 6 和 7

  从 Modeler 中导出 BPEL 工作流程还不能运行要成功执行它们必须提供些服务供我们并未实现 Web 服务而是使用简单 Java™ 实现它可直接关联到 BPEL 工作流程

  为此选择 wfm1_62c_WeFinanceLoanModelProject_impl => Assembly Diagram 并右键单击中间流组件中 Reference Partner 端口它们代表服务(如 VeryRiskOfficerInvolvement)然后选择 Wire References to New => Components这将创建个新无类型引用组件即 ReferencePartner

  要实现该组件双击它并选择 OK在出现对话框中从实现类型列表中选择 Java选择 Default Implementation然后单击 OK 此时将打开个新编辑器其中包含 Java 代码

  在编辑器中可以看到如图 26 所示 InputCriterion(DataObject input) 思路方法如果这个思路方法返回 void则不需要做出更改但如果它返回 DataObject则可以将最后行从 null; 更改为 input;

  如果希望确定该思路方法将于何时在服务器日志文件中还可以添加以下内容: .out.prln("VeryRiskOfficerInvolvement method called")

图 26. VeryRiskOfficerInvolvement 活动 BPEL 工作流程 Java 实现中 InputCriterion 思路方法


  查看原图(大图)



  对集合图中各服务组件重复步骤 10-13或者您也可以选择定义自己服务实现但 StoreComment 不在此列它是 Loan_UpdateOne 流程部分

  现在服务实现已经就绪并且您可以开始部署工作流程并使用它们

  生成 J2EE

  定义 BPEL 工作流程的后您需要在服务器上部署监测模型在 Integration Developer Business Monitoring 视区中您应该能看到两个监测模型(Loan_InitiationOne 和 Loan_CompletionOne)以及个高级监测模型 (LoanEndToEndProcess)您可以忽略 Loan_UpdateOne 检测模型它是个手动流程

  右键单击各监测模型文件(除 Loan_UpdateOne 的外)然后选择 Generate Monitor J2EE Projects如图 27 所示

图 27. 生成 Monitor J2EE 项目




  如果监测服务器尚未启动则在 Servers 视图中启动它如图 28 所示

图 28. 启动 Monitor 服务器


  查看原图(大图)



  启动服务器的后右键单击服务器并选择 Add and Remove Projects以添加项目

  在出现对话框中选择所有模块包括 wfm1_62c_WeFinanceLoanModelProject_implApp 和 wfm1_62c_WeFinanceLoanModelProject并单击 Add如图 29 所示

图 29. 将项目发布到服务器




  现在您可以开始运行工作流程并监测它们运行工作流程以便查看贷款流程监测状态最简单思路方法是使用 Business Process Choreographer Explorer要打开 Choreographer在您 Web 浏览器中键入其 URL通常为 http://localhost:9444/bpc/faces/pages/Login.jsp

  要启动工作流请单击左侧 Process Templates并检查要运行流程模板如图 30 所示.

图 30. Business Process Choreographer 中流程模板


  查看原图(大图)



  选中 Loan_InitiationOne 并单击 Start Instance

  提供输入参数比如 455 作为 LoanID并单击 Submit如图 31 所示

图 31. 提交 Loan_InitiationOne 以便执行


  查看原图(大图)



  对 Loan_CompletionOne 流程模板重复步骤 7 和 8如图 32 所示

图 32. 提交 Loan_CompletionOne 以便执行


  查看原图(大图)



  定义监测业务空间

  在工作流程运行过程中您可以使用 Business Space 中监测小组件来查看它们状态

  打开 Business Space这需要在浏览器中输入正确 URL通常为 http://localhost:9444/BusinessSpace/login.jsp

  如图 33 所示创建个名称为 TestMonitoring 业务空间并为以下功能添加新页面:

  监测贷款化 (MonitorLoanInit)

  监测贷款完成(MonitorLoanDone)

  监测端到端贷款流程 (MonitorLoanEndToEnd)


图 33. 查看被监测事件新业务空间




  在各页面上添加两个小组件分别针对 Instances 和 Diagrams并配置它们如图 34 所示

图 34. 配置业务空间中 Loan_InitiationOne 小组件


  查看原图(大图)



  要为 Loan_InitiationOne 配置 Instances 小组件请选择相应监测模型 Loan_InitiationOne 并单击 Set as default然后选择所有要显示可用列在 Wiring 选项卡中单击 Enable this widget to send events over wires然后单击 Apply 并单击 OK

  要配置 Diagrams 小组件请选择 Loan_InitiationOne 作为 Monitoring Context 如图 35 所示然后单击 Apply 和 OK

图 35. 选择要显示


  查看原图(大图)



  现在您应该能够打开 MonitorLoanInit 和 MonitorLoanDone其中可看到在 Business Process Choreographer Explorer 中运行流程 Loan_InitiationOne(图 36)和 Loan_CompletionOne(图 37)例子以及它们 LoanID 或 LoanId

图 36. Loan_InitiationOne with LoanId = 455 例子成功运行


  查看原图(大图)

图 37. Loan_CompletionOne with LoanID = 455 例子成功运行


  最后您可以看到端到端流程监测打开创建小组件开始监测端到端贷款流程如图 38 所示

图 38. HMM 检测到 LoanID = 455 端到端流程


  查看原图(大图)

  使用 Integration Developer 监测模型编辑器进行可选定制

  使用 Integration Developer 中监测模型编辑器 (MME)您可以选择性地在各监测模型中定制可视模型(例如更改度量值载入时颜色)如图 39 所示

图 39. 在监测模型编辑器中编辑可视模型


  举例来说您可以根据所执行流程来更改 Loan_InitiationOne 和 Loan_CompletionOne 活动框颜色其属性在树 fill color 叶中指定如图 39 所示您可以始终将通过业务空间事件接收到度量值显示为文本通过编辑各监测模型中可视模型您可以启用业务空间小组件中图中活动以更改监测信息时颜色和/或显示文本

  图 39 中定制结果将显示在 Business Space 中如图 40 所示活动将变为橙色并且 LoanID 度量值将在检测到 LoanID = 222 贷款应用例子时显示

图 40. Business Space 中显示定制结果


  查看原图(大图)

  故障排除

  如果未在高级监测模型中看到流程例子(在 Business Space MonitorLoan 页面中)请检查来自 Loan_InitiationOne 和 Loan_CompletionOne 监测模型事件为此打开 Common Base Event Browser(通常为 http://localhost:9044/ibm/console/cbebrowser/)单击 GetEvent选择 Creation Time Date 范围并单击 Get Events

  在 WebSphere Integrated Solutions Console 中启用事件记录

  确保 WebSphere Integrated Solutions Console 启用了事件记录要完成此任务:

  选择 Applications => Monitor Services => Recorded Events Manager如图 41 所示.

图 41. 使用 Integrated Solutions Console 执行故障排除


  查看原图(大图)



  选择 Events Management 选项卡并选中 Enable event to be recorded

  将事件导出到 XML以确定低级监测模型是否在接收和发送事件在 Web 浏览器或文本编辑器中打开导出 XML 文件并确定是否发送了预期事件

  如果重复运行流程那么您可能会希望删除旧例子以简化测试过程为此打开 Integration Developer 管理控制台通常为 http://localhost:9044/ibm/console/secure/securelogon.do

  选择 Applications => Enterprise Applications 查看流程如图 42 所示要删除旧流程例子请选择中并单击 Un系统将提示确认然后单击 Save

图 42. Integration Developer 管理控制台




  潜在

  从 Modeler 导入项目文件到 Integration Developer 中时您可能会在 LoanEndToEndProcess_Mon.mm 中发现个编译器是在从 Modeler V6.2 向 Integration Developer V6.2 导入项目时发生位于 monitoringContext(displayName 为 LoanEndToEndProcess)标记中并且会影响属性 eventSequenceIDPath 如果遇到此请尝试删除这个属性和它然后重新编辑工作空间思路方法是从 Project 菜单中选择 Clean => Clean All Projects

  结束语

  在本文中您了解了如何使用单监测集实现端到端监测您还了解了如何自动生成高级监测模型它可以关联从低级监测模型接收到事件以便使用在监测集中指定键将它们组配成端到端流程

  下面是 Modeler 中步骤概述:

  从 Modeler 中贷款应用项目开始将它导出到 Integration Developer

  然后定位到包含导出文件文件夹并使用插件 WebSphere Business Modeler End-to-End Process Monitoring 特性再次将它们导出到 Modeler 中

  现在目标目录中已经有 3个压缩格式文件夹其中个在名称中包含 EndToEndMonitor其中包含插入了代码以支持端到端监测监测模型

  将以下两个压缩文件导入到 Integration Developer 中:

  wfm1_62c_WeFinanceLoanModelProject_<DATE>.zip

  wfm1_62c_WeFinanceLoanModelProject_EndToEndMonitor_<DATE>.zip

  在 Integration Developer 中确保项目文件正确编译且没有然后切换到 Business Integration 视区并为项目中所有活动定义个 BPEL 实现(除手动流程 LoanUpdate 的外)然后为 Loan_InitiationOne、Loan_CompletionOne 和 LoanEndToEndProcess 监测模型生成 Monitor J2EE 文件并将它们发布到 Monitor 服务器

  在 Business Process Choreographer 中启动个 Loan_InitiationOne 和 Loan_CompletionOne 例子指定所需 LoanID

  在 Business Space 中定义小组件用于查看 3个监测模型所监测事件并验证 LoanEndToEndProcess 高级模型从 Loan_InitiationOne 和 Loan_CompletionOne 低级模型接收到了事件并且能够使用从它们接收到 LoanID 来组配个相同端到端贷款流程例子

  完成本文中步骤的后您已经了解了如何使用 所提供插件 自动监测和关联相同端到端流程

  未来增强

  我们考虑在 WebSphere Business Modeler V7 中对端到端监测功能进行以下增强:

  允许监测集作为监测集编辑器中个类对象

  在监测集编辑器中定义更加强大关联模式

  使用多个监测集执行监测

  自动验证用户定义监测集能实现有用和有意义监测

  允许以业务流程图形式可视化监测模型

  支持监测模型多层层次

下载

描述 名字 大小 下载思路方法
监测集编辑器 com.ibm.btools.blm.ui.monitoreditor_6.2.0.201001061532.jar 408KB HTTP
监测集导出 com.ibm.btools.blm.ui.monitorexport_6.2.0.201001061532.jar 151KB HTTP
贷款应用 .mar 文件 wfm1_62c_WeFinanceLoanModelProject.zip 88KB HTTP
贷款应用项目 (1) wfm1_62c_WeFinanceLoanModelProject_2010-01-12T23.18.45.zip 1005KB HTTP
贷款应用项目 (2) wfm1_62c_WeFinanceLoanModelProject_Monitor_2010-01-12T23.18.44.zip 3044KB HTTP
插件代码生成样例项目 wfm1_62c_WeFinanceLoanModelProject_EndToEndMonitor_2010-01-12T23.20.03.zip 227KB HTTP



  

Tags: 

延伸阅读

最新评论

发表评论