以上介绍的前两个步骤(初始化流程并启用工作流)中,流程状态通过 IProcessHandle 和 IInstanceHandle API 接口以可视化方式进行了更新。
Oracle BPEL 控制台提供了一个基于 Web 的界面,用于部署、管理和调试 BPEL 流程。它是一个使用 JSP 页面和 servlet(调用 BPEL 流程管理器 API)设计的管理工具。因此,您可以轻松地使用 API 开发您自己的 RIA 控制台,以提供一个业务级别的流程监控界面。
该控制台为特定的流程实例提供了可视反馈,甚至还提供了指向与流程中给定步骤关联的审计线索数据的链接。而 RIA 控制台的主要优势在于它能够执行实际分析与计划分析。该控制台显示流程在其执行过程中可能采取的所有可能的步骤;它还显示在执行过程中实际采用的路径。用户可以单击任何流程节点来检索 BPEL 有效荷载,并在对话框中显示该有效荷载信息。
由于提供了以可视化方式描绘的理想与实际流程路径以及在有效荷载级别进行下钻这一功能,最终用户可以自行分析流程并标识故障点,而无需 IT 人员的参与。图 4 描绘了实际与理想流程路径分析的示例;“实际”路径用绿色标记。
图 4 实际与理想的流程路径分析
下面,我们将介绍如何显示流程以实现此分析,以及如何检索审计线索数据并在 RIA 应用程序中以可视化方式描绘它。
显示流程
Flex BPEL 面板组件调用 IProcessHandle 接口来检索整个业务模型的 XML 表示。BPEL 面板使用 IInstanceHandle 接口收集当前实例审计线索的 XML 表示。随后,BPEL 面板将比较并合并这两个 XML 表示,以创建一个可以描述整个模型以及所采用路径的用户界面。
Flex 尤其擅长于通过它的原生 XML 功能执行此类操作。Flex 可以使用 Flex repeater 控件与 ActionScript 的组合轻松地合并两个 XML 表示。组合使用时,它们能够将 XML 转换为数组,然后利用固有的数组处理功能简化 XML 的合并。
由于流程模型 XML 包含所有可能的节点,因此它实际上充当了 BPEL 面板的基础。在流程模型的每个步骤中,都将比较流程模型 ID 与审计线索模型 ID。当流程与审计的 ID 匹配时,该节点的结果将从审计模型复制到流程模型。确定采用哪个路径与查询模型中哪些节点具有与其关联的实例数据一样简单。