Dev2Dev论坛

 找回密码
 注册
搜索
查看: 636|回复: 0

一个现实中的业务流程模型,第5部分 [复制链接]

old-dev2dev 发表于 2010-2-8 11:10:48 |显示全部楼层
作者:Anjali Anagol-Subbarao
日期:2005-10-27

  本系列文章的第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中的业务流程。

  最后,要了解更多有关HP OpenView和BEA应用程序管理解决方案的信息,请访问http://openview.hp.com/bea站点。您会发现,BEA与HP OpenView的结合将为您提供更多的控制权和更大的灵活性,从而为您赢得竞争优势。

参考资料

原文出处 http://wldj.sys-con.com/read/117487.htm

您需要登录后才可以回帖 登录 | 注册

Archiver|Dev2Dev

GMT+8, 2012-5-21 12:37 , Processed in 0.052652 second(s), 11 queries .

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部