田欣,黃媛潔,司忠平北京工商大學
基于SOA科學工作流引擎關鍵技術的設計與實現
田欣,黃媛潔,司忠平北京工商大學
通過對SOA及科學工作流系統進行分析,提出了基于SOA架構的科學工作流系統模型,并在此模型的基礎上探究了科學工作流引擎的關鍵技術,提出了基于結構元的深度遍歷算法以及工作流執行算法。并以實例驗證了科學工作流建模、解析和執行過程。
SOA;工作流引擎;映射算法;解析算法
SOA(Services Oriented Architecture)即面向服務架構,它的核心是將系統的每一個功能模塊都進行封裝并定義為服務,其它服務可以通過接口進行調用。鑒于SOA架構對松耦合系統支持的特點[1],本文將SOA架構應用到科學工作流系統[2]之中并提出了基于SOA架構的科學工作流系統模型,如圖1所示。
工作流引擎是科學工作流系統的核心,其作用就是將界面上抽象的流程圖進行解析,生成中間件可以處理的信息以方便集群進行計算。在圖1中,中間件的映射BPEL語言模塊與工作流語言解析模塊構成了此模型的工作流引擎。這兩個模塊的關鍵技術即工作流引擎的關鍵技術,包括:(1)界面流程語言到工作流語言的映射算法;(2)工作流語言的解析算法。本文所采用的界面流程語言為BPMN(Business Process Model and Notation)[3],工作流語言為BPEL(Business ProcessExecution Language)[4]。

圖1 基于SOA架構的科學工作流系統模型
通過對科學工作流引擎關鍵技術的研究,本文提出了:
(1)鑒于SOA架構對松耦合系統支持的特點,本文將SOA架構應用到科學工作流系統之中并提出了基于SOA架構的科學工作流系統模型,如圖1所示。
(2)通過對映射算法進行比較[5-7],提出了一種基于結構元的深度遍歷算法,并將目前兩種主要的業務流程規范標準:基于有向圖的BPMN和基于塊結構語言BPEL用于科學工作流的映射算法中。
(3)對工作流執行算法進行研究,提出一種迭代解析算法,將BPEL的不同關鍵字進行不同的處理,通過迭代算法得到的數據進行計算,得到可視化的界面。
綜合BPMN和BPEL兩種高級建模語言的優缺點,可知模型轉化是業務流程建模的關鍵。BPMN使用的是直觀的圖形來描述所需要的工作流程,而BPEL則使用塊結構語言來描述流程,兩種不同層次語言的轉換是具有挑戰性的。
結構元概念
結構元即控制模式,它是BPMN流程模型的組成單元,由不同BPMN元素排列組合而成,所有的BPMN流程模型都可以由這些結構元組合嵌套而成。把BPMN流程模型轉變為由結構元表示的流程模型,不但簡化了流程模型的復雜程度,而且降低了映射的難度。本文采用了分支結構元、并行結構元、順序結構元和循環結構元,如圖2所示。

圖2 四種結構元
映射算法原理
本文將結構元的思想與深度遍歷算法融合在一起,用于BPMN流程模型到BPEL的轉換算法。這是一種分層分解BPMN模型的策略,算法的主要思想是將整個BPMN流程看成一個順序結構的流程,流程結構為{開始節點,子流程,結束節點}。算法首先從根節點開始深度遍歷BPMN流程樹,若后繼結點是任務節點,則將其添加到順序結構元中,若后繼結點為一個網關節點,順序結構元遍歷完成,并將此路由節點相對應的路由合并節點之間的所有節點歸為相對應的結構元,繼而深度優先遍歷[8]其結構元內部的節點,當遍歷到此結構元的合并節點時,該結構元的映射結束,繼續遍歷其后續節點,遞歸完成后,則遍歷完整條BPMN流程樹,深度遍歷結束。映射的結果即為BPEL代碼。
在執行BPEL語言時,會創建一個流程實例,在本文科學工作流管理系統中,如果執行的為

圖3 工作流執行算法流程
下面將結合圖4來展示工作流執行算法的執行過程,圖5為圖4基于結構元的深度遍歷算法得到的BPEL代碼中的并行部分代碼。而圖6是執行算法結束后的對于此部分代碼,工作流執行算法的執行過程是:
(1)節點為flow,給每個分支建立線程,并行執行sequence1和sequence2子流程,遍歷后繼節點。
(2)sequence1的后繼節點為switch,得到switch的每個分支條件,判斷條件選擇執行子流程sequence3還是sequence4,遍歷后繼節點;同時,sequence2的后繼節點為invoke,執行該實例模塊對應的操作,回溯到flow節點,等待其他的并行線程完成。
(3)sequence3/sequence4的后繼節點為invoke,執行該實例模塊對應的操作,回溯到flow節點,等待其他的并行線程完成。
(4)當flow節點的子線程全部執行完畢,遍歷后繼節點。
本文以科學計算可視化中的一個三維渲染可視化科學工作流程為例進行說明,科學工作流如圖4所示。

圖4 科學工作流程實例

圖5 實例BPEL代碼
本文實例中三維立體圖的顯示借助了VTK(visualization tool?kit)來實現,圖6為在VTK中科學工作流實例的顯示效果。

圖6 科學工作流BPEL映射實例效果圖
通過對SOA及科學工作流系統進行分析,提出了基于SOA架構的科學工作流系統模型,并在此模型的基礎上探究了科學工作流引擎的關鍵技術,提出了基于結構元的深度遍歷算法以及工作流執行算法。并以實例驗證了科學工作流建模、解析和執行過程。
[1]錢振剛、邵子華,20世紀中國文學名作導讀[M],北京:作家出版社,1998
[2]New to SOA and web services[EB/OL].http://www-128.ibm. com/developerworks/webservices/newto/,2005-06-14.
[3]Zhang H,Fan X,Zhang R,etal.Extending BPEL2.0 forGrid-Based Scientific Workflow Systems[C]//Asia-Pacific Services Comput?ing Conference,2008.APSCC'08.IEEE.IEEE,2008:757-762.
[4]White S.Using BPMN tomodel a BPEL process[J].BPTrends, 2005,3(3):1-18.
[5]Yu GE,Zhao P,Di L,etal.BPELPower—A BPEL execution engine for geospatial web services[J].Computers&Geosciences, 2012,47:87-101.
[6]魏明,夏永霖,魏峻.BPMN到BPEL 2.0的模型轉換方法[J].計算機應用研究,2008,25(11):3363-3366.
[7]Dumas M.Case study:BPMN to BPELmodel transformation[C]//5th International Workshop on Graph-Based Tools–GraBaTs. 2009.
[8]Recker JC,Mendling J.On the translation between BPMN and BPEL:Conceptualmismatch between processmodeling languages [C]//The 18th International Conference on Advanced Information Sys?tems Engineering.Proceedings of Workshops and Doctoral Consor?tium.NamurUniversity Press,2006:521-532.
[9]Downey R G,FellowsM R.Depth-First Search and the Plehn–Voigt Theorem[M]//Fundamentals of Parameterized Complexity. Springer London,2013:291-300.
田欣(1989-),男,山東聊城,北京工商大學,學生,碩士研究生研究方向:信息可視化。