監控流程活動
以上介紹的前兩個步驟(初始化流程並啟用工作流程)中,流程狀態通過 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 匹配時,該節點的結果將從審計模型複製到流程模型。確定採用哪個路徑與查詢模型中哪些節點具有與其關聯的執行個體資料一樣簡單。