本系列文章的第1部分中,概要介绍了业务流程管理(business process management ,BPM)和该领域的规范。描述了订单修改的例子以及在WebLogic Integration中创建业务流程所需的步骤。在第2部分中,介绍了如何创建一个流程应用程序(orderChange)。在该应用程序中我创建了一个名为orderChange.jpd的新流程。为了启动该流程,我们增加了一个接收的ClientRequest,然后添加了Web服务验证配置。
在第3篇文章中,我加入了一个决策点来处理来自验证配置Web服务的结果。决策点有助于处理流程结果中的肯定和否定输出。然后,我给该流程添加了一个数据库控件,该控件检查要更改的订单的状态。最后,我添加了另一个决策点来处理数据库控件的结果。在上一篇文章中,我们介绍了如何将订单修改写入文件中,以及如何把该订单修改添加到基于ERP的系统(SAP)中。我们还分析了该流程的代码。
在本文中,我们将了解如何将创建的JPD文件公开为BPEL文件,以及如何执行这一流程,您还可以看到显示在WebLogic的Test Browser上的最终结果。我们还将了解如何在WLI中监控流程,以及如何使用惠普的OpenView来监控流程。
导出到BPEL
在以前的文章中,我们知道了如何在WLI中创建业务流程。它基于PD4J规范创建一个JPD文件。WLI gives允许用户通过BPEL导出器将该文件导出到WS-BPEL文件。
下面就是前述的JPD文件导出到BPEL后的结果:
<process name="orderchange"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:jpd="http://www.bea.com/wli/jpd"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:wli="http://www.bea.com/workshop/bpel/wli"
xmlns:ctrl="http://www.bea.com/workshop/bpel/ctrl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.openuri.org/"
expressionLanguage="http://www.w3.org/TR/2003/WD-xquery-20031112/" >
合作伙伴信息如下:
<partnerLinks>
<partnerLink name="client" partnerLinkType="generated" myRole="provider"
partnerRole="client" />
<partnerLink name="validateConfignew" partnerLinkType="unresolved-type" />
<partnerLink name="orderstatus1" partnerLinkType="unresolved-type" />
<partnerLink name="ChangeorderFile" partnerLinkType="unresolved-type" />
</partnerLinks>
流程启动:
<variables>
<variable name="orderChangexsd" type="unresolved-type" />
<variable name="fileproperties"
type="com.bea.wli.control.dynamicProperties.FileControlPropertiesDocument" />
</variables>
作为ClientRequest的OrderChangeRequest:
<sequence>
<receive jpd:name="orderChangeRequest" partnerLink="client" portType="clientPT"
operation="orderChangeRequest" variable="orderChangexsd" createInstance="yes" >
</receive>
JPD代码以注释形式出现:
<jpd:javacode code="{
//#START: CODE GENERATED - PROTECTED SECTION - you can safely add code above this
comment in this method. #//
// input transform
// parameter assignment
this.orderChangexsd = orderChangexsd;
//#END : CODE GENERATED - PROTECTED SECTION - you can safely add code below this
comment in this method. #//
}
">
</jpd:javacode>
调用validateConfig Web服务的流程:
<invoke jpd:name="validateConfig" partnerLink="validateConfignew"
portType="unresolved-type" operation="validateConfig" >
</invoke>
第一个决策点用于确定配置是否有效:
<switch jpd:name="Is configuration Valid?">
<case jpd:name="Yes" condition="data(/ns:Status) =
"true"">
调用订单状态数据库控件的流程:
<sequence>
<invoke jpd:name="OrderStatus" partnerLink="orderstatus1"
portType="unresolved-type" operation="getShipDate" >
第2个决策点用于确定订单是否可修改:
</invoke>
<switch jpd:name="Is order changeable?">
<case jpd:name="Yes" condition="jpd:method" jpd:method="condition">
</switch>
流程通过文件控件写文件:
<invoke jpd:name="write" partnerLink="ChangeorderFile" portType="unresolved-type"
operation="write" inputVariable="orderChangexsd" outputVariable="fileproperties" >
</invoke>
</sequence>
</process>
执行流程
在执行流程时,可以在Test Browser中看到测试SOAP消息。执行时,可以看出它遍历了以下步骤:客户机请求;验证Web服务配置;第一个决策点;从数据库获取订单状态信息;第二个决策点;最后,将XML写入文件,流程结束。

显示了流程的验证配置节点。

显示了流程的最后一个节点,即写入文件。
监控流程
进行业务流程管理意味着要确保可以监控单个业务流程实例,以便确定它们在规定时间内完成。我们还希望收集性能指标,以改进和调优进程。可以通过WebLogic Workshop菜单中的WebLogic Integration Administration Console监控业务流程实例。在浏览器地址栏中输入 http://localhost:7001/wliconsole 这个URL。示例集成服务器的默认用户名和密码是weblogic/weblogic。单击Process Instance Monitoring,打开一个页面,进行以下操作(以下内容来自BEA):
- 查看流程实例统计信息,包括每种状态(运行、挂起、异常终止、完成)的实例数。
- 查看选定实例的摘要或详细状态。
- 挂起、恢复或终止选定的实例。

显示了WebLogic Integration Console。
通过HP Open View管理业务流程
前几节所述的对业务流程的管理需要包括以下能力:
- 当出现问题(管理出现异常)时,可以发出警报。例如,业务流程实例超出阈值,或者没有按照服务水平协议(service level agreement,SLA)完成,以及应用程序的某一部分出现错误。
- 使用业务流程视图、消息代理程序、消息代理程序通道、工作列表、适配器和事件生成器查看当前的业务流程状态,并能够追查详细的表征。我们需要给定流程实例的统计信息,以便知道:有多少实例已经完成、有多少实例正在运行、有多少实例在执行时违反了SLA、有多少实例已经终止、有多少实例已经异常终止,等等。
- 对业务流程及相关实体执行特定的操作,比如挂起一个进程或恢复一个挂起的进程。
- 能够实时监控关键的性能指标,如:业务进程的平均执行时间,业务进程成功率,适配器、消息通道和事件生成器的错误数。
- 接收前述性能指标的历史报告。
对于运行在WLI上的应用程序,前面所提到的大部分信息都可以在WLI执行引擎中得到,并且任一个外部程序都可以通过JMX Mbeans获得这些信息。这种信息可用性,与能够收集、分析信息并将信息以正确的形式呈现给正确的人的程序相结合,我们就可以管理业务程序了。
HP OpenView Smart Plug-in for WLI (WLI-SPI)插件就像胶水一样,将HP OpenView与WLI联系起来,使我们可以使用HP OpenView产品家族去管理WLI业务流程。在现有的HP OpenView管理系统中安装WLI-SPI之后,就可以通过工具,使用HP OpenView管理的全部功能来管理业务流程了。这些功能包括(以下内容来自DRC):
- List Business Process Types(列出业务流程类型)、Instances(实例)、Adapters(适配器)、Event Generators(事件生成器)、Message Channels(消息通道)、System Archiver(系统档案库)及其相关属性。通过OV对以上各项执行管理操作。
- 实时监控业务流程的性能及其他相关指标。
- 在执行业务流程时通过通告监控关键性事件。比如,条件失败或违反性能SLA。
- 生成性能指标的历史报告。
- 能够定制SPI,使其包含特定于应用程序的监控和管理功能。

显示了如何使用HP Open View来监控业务流程。
结束语
在本文中,我们介绍了如何将JPD文件导入WS-BPEL文件,以及如何执行业务流程,并在Test Browser中查看结果。我们在Test Browser中看到了不同的流程节点是如何执行的。我们讨论了业务流程的管理。在WLI中可以通过WebLogic Integration Console进行监控。还可以使用HP Open View管理业务流程。HP Open View使用SPI通过JMX Beans管理WLI中的业务流程。 |