田欣,黃媛潔,司忠平北京工商大學(xué)
基于SOA科學(xué)工作流引擎關(guān)鍵技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)
田欣,黃媛潔,司忠平北京工商大學(xué)
通過對(duì)SOA及科學(xué)工作流系統(tǒng)進(jìn)行分析,提出了基于SOA架構(gòu)的科學(xué)工作流系統(tǒng)模型,并在此模型的基礎(chǔ)上探究了科學(xué)工作流引擎的關(guān)鍵技術(shù),提出了基于結(jié)構(gòu)元的深度遍歷算法以及工作流執(zhí)行算法。并以實(shí)例驗(yàn)證了科學(xué)工作流建模、解析和執(zhí)行過程。
SOA;工作流引擎;映射算法;解析算法
SOA(Services Oriented Architecture)即面向服務(wù)架構(gòu),它的核心是將系統(tǒng)的每一個(gè)功能模塊都進(jìn)行封裝并定義為服務(wù),其它服務(wù)可以通過接口進(jìn)行調(diào)用。鑒于SOA架構(gòu)對(duì)松耦合系統(tǒng)支持的特點(diǎn)[1],本文將SOA架構(gòu)應(yīng)用到科學(xué)工作流系統(tǒng)[2]之中并提出了基于SOA架構(gòu)的科學(xué)工作流系統(tǒng)模型,如圖1所示。
工作流引擎是科學(xué)工作流系統(tǒng)的核心,其作用就是將界面上抽象的流程圖進(jìn)行解析,生成中間件可以處理的信息以方便集群進(jìn)行計(jì)算。在圖1中,中間件的映射BPEL語言模塊與工作流語言解析模塊構(gòu)成了此模型的工作流引擎。這兩個(gè)模塊的關(guān)鍵技術(shù)即工作流引擎的關(guān)鍵技術(shù),包括:(1)界面流程語言到工作流語言的映射算法;(2)工作流語言的解析算法。本文所采用的界面流程語言為BPMN(Business Process Model and Notation)[3],工作流語言為BPEL(Business ProcessExecution Language)[4]。
圖1 基于SOA架構(gòu)的科學(xué)工作流系統(tǒng)模型
通過對(duì)科學(xué)工作流引擎關(guān)鍵技術(shù)的研究,本文提出了:
(1)鑒于SOA架構(gòu)對(duì)松耦合系統(tǒng)支持的特點(diǎn),本文將SOA架構(gòu)應(yīng)用到科學(xué)工作流系統(tǒng)之中并提出了基于SOA架構(gòu)的科學(xué)工作流系統(tǒng)模型,如圖1所示。
(2)通過對(duì)映射算法進(jìn)行比較[5-7],提出了一種基于結(jié)構(gòu)元的深度遍歷算法,并將目前兩種主要的業(yè)務(wù)流程規(guī)范標(biāo)準(zhǔn):基于有向圖的BPMN和基于塊結(jié)構(gòu)語言BPEL用于科學(xué)工作流的映射算法中。
(3)對(duì)工作流執(zhí)行算法進(jìn)行研究,提出一種迭代解析算法,將BPEL的不同關(guān)鍵字進(jìn)行不同的處理,通過迭代算法得到的數(shù)據(jù)進(jìn)行計(jì)算,得到可視化的界面。
綜合BPMN和BPEL兩種高級(jí)建模語言的優(yōu)缺點(diǎn),可知模型轉(zhuǎn)化是業(yè)務(wù)流程建模的關(guān)鍵。BPMN使用的是直觀的圖形來描述所需要的工作流程,而BPEL則使用塊結(jié)構(gòu)語言來描述流程,兩種不同層次語言的轉(zhuǎn)換是具有挑戰(zhàn)性的。
結(jié)構(gòu)元概念
結(jié)構(gòu)元即控制模式,它是BPMN流程模型的組成單元,由不同BPMN元素排列組合而成,所有的BPMN流程模型都可以由這些結(jié)構(gòu)元組合嵌套而成。把BPMN流程模型轉(zhuǎn)變?yōu)橛山Y(jié)構(gòu)元表示的流程模型,不但簡(jiǎn)化了流程模型的復(fù)雜程度,而且降低了映射的難度。本文采用了分支結(jié)構(gòu)元、并行結(jié)構(gòu)元、順序結(jié)構(gòu)元和循環(huán)結(jié)構(gòu)元,如圖2所示。
圖2 四種結(jié)構(gòu)元
映射算法原理
本文將結(jié)構(gòu)元的思想與深度遍歷算法融合在一起,用于BPMN流程模型到BPEL的轉(zhuǎn)換算法。這是一種分層分解BPMN模型的策略,算法的主要思想是將整個(gè)BPMN流程看成一個(gè)順序結(jié)構(gòu)的流程,流程結(jié)構(gòu)為{開始節(jié)點(diǎn),子流程,結(jié)束節(jié)點(diǎn)}。算法首先從根節(jié)點(diǎn)開始深度遍歷BPMN流程樹,若后繼結(jié)點(diǎn)是任務(wù)節(jié)點(diǎn),則將其添加到順序結(jié)構(gòu)元中,若后繼結(jié)點(diǎn)為一個(gè)網(wǎng)關(guān)節(jié)點(diǎn),順序結(jié)構(gòu)元遍歷完成,并將此路由節(jié)點(diǎn)相對(duì)應(yīng)的路由合并節(jié)點(diǎn)之間的所有節(jié)點(diǎn)歸為相對(duì)應(yīng)的結(jié)構(gòu)元,繼而深度優(yōu)先遍歷[8]其結(jié)構(gòu)元內(nèi)部的節(jié)點(diǎn),當(dāng)遍歷到此結(jié)構(gòu)元的合并節(jié)點(diǎn)時(shí),該結(jié)構(gòu)元的映射結(jié)束,繼續(xù)遍歷其后續(xù)節(jié)點(diǎn),遞歸完成后,則遍歷完整條BPMN流程樹,深度遍歷結(jié)束。映射的結(jié)果即為BPEL代碼。
在執(zhí)行BPEL語言時(shí),會(huì)創(chuàng)建一個(gè)流程實(shí)例,在本文科學(xué)工作流管理系統(tǒng)中,如果執(zhí)行的為
圖3 工作流執(zhí)行算法流程
下面將結(jié)合圖4來展示工作流執(zhí)行算法的執(zhí)行過程,圖5為圖4基于結(jié)構(gòu)元的深度遍歷算法得到的BPEL代碼中的并行部分代碼。而圖6是執(zhí)行算法結(jié)束后的對(duì)于此部分代碼,工作流執(zhí)行算法的執(zhí)行過程是:
(1)節(jié)點(diǎn)為flow,給每個(gè)分支建立線程,并行執(zhí)行sequence1和sequence2子流程,遍歷后繼節(jié)點(diǎn)。
(2)sequence1的后繼節(jié)點(diǎn)為switch,得到switch的每個(gè)分支條件,判斷條件選擇執(zhí)行子流程sequence3還是sequence4,遍歷后繼節(jié)點(diǎn);同時(shí),sequence2的后繼節(jié)點(diǎn)為invoke,執(zhí)行該實(shí)例模塊對(duì)應(yīng)的操作,回溯到flow節(jié)點(diǎn),等待其他的并行線程完成。
(3)sequence3/sequence4的后繼節(jié)點(diǎn)為invoke,執(zhí)行該實(shí)例模塊對(duì)應(yīng)的操作,回溯到flow節(jié)點(diǎn),等待其他的并行線程完成。
(4)當(dāng)flow節(jié)點(diǎn)的子線程全部執(zhí)行完畢,遍歷后繼節(jié)點(diǎn)。
本文以科學(xué)計(jì)算可視化中的一個(gè)三維渲染可視化科學(xué)工作流程為例進(jìn)行說明,科學(xué)工作流如圖4所示。
圖4 科學(xué)工作流程實(shí)例
圖5 實(shí)例BPEL代碼
本文實(shí)例中三維立體圖的顯示借助了VTK(visualization tool?kit)來實(shí)現(xiàn),圖6為在VTK中科學(xué)工作流實(shí)例的顯示效果。
圖6 科學(xué)工作流BPEL映射實(shí)例效果圖
通過對(duì)SOA及科學(xué)工作流系統(tǒng)進(jìn)行分析,提出了基于SOA架構(gòu)的科學(xué)工作流系統(tǒng)模型,并在此模型的基礎(chǔ)上探究了科學(xué)工作流引擎的關(guān)鍵技術(shù),提出了基于結(jié)構(gòu)元的深度遍歷算法以及工作流執(zhí)行算法。并以實(shí)例驗(yàn)證了科學(xué)工作流建模、解析和執(zhí)行過程。
[1]錢振剛、邵子華,20世紀(jì)中國(guó)文學(xué)名作導(dǎo)讀[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的模型轉(zhuǎn)換方法[J].計(jì)算機(jī)應(yīng)用研究,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-),男,山東聊城,北京工商大學(xué),學(xué)生,碩士研究生研究方向:信息可視化。