茍曦 饒錫如
摘要:本文分析了BPEL下的業(yè)務(wù)流程集成,并用實(shí)例描述了具體流程。
關(guān)鍵詞:BPEL 業(yè)務(wù)流程執(zhí)行語言 業(yè)務(wù)流程 集成
近年來,隨著我國(guó)信息技術(shù)的不斷發(fā)展成熟,Web服務(wù)的應(yīng)用范圍也進(jìn)一步擴(kuò)展,它作為一種新型技術(shù),實(shí)現(xiàn)了分布式應(yīng)用,并以其獨(dú)立性、可復(fù)用性以及開放性等優(yōu)勢(shì)贏得了用戶的一致肯定和好評(píng)。但在此過程中,隨著用戶群體的劇增,用戶的需求和標(biāo)準(zhǔn)也越來越趨于多樣化,這就要求Web服務(wù)系統(tǒng)不斷更新?lián)Q代,以不斷完善系統(tǒng)功能,適應(yīng)復(fù)雜的外部環(huán)境。本文就BPEL下的業(yè)務(wù)流程作了系統(tǒng)介紹,并引入具體實(shí)例進(jìn)行分析。
1 BPEL簡(jiǎn)介
BEPL又稱業(yè)務(wù)流程執(zhí)行語言,它使用XML進(jìn)行編寫,主要應(yīng)用于與Web服務(wù)密切相關(guān)的一系列開發(fā)項(xiàng)目中,具有可移植性。BPEL是目前使用最為廣泛的標(biāo)準(zhǔn)化流程語言[1],它實(shí)現(xiàn)了平臺(tái)服務(wù)、數(shù)據(jù)處理、故障診斷以及系統(tǒng)維護(hù)的一體化,極大地節(jié)約信息整理時(shí)間,提升了工作效率[2]。為進(jìn)一步了解和掌握BPEL下的業(yè)務(wù)流程集成,現(xiàn)就BPEL的元模型節(jié)點(diǎn)及含義作簡(jiǎn)要介紹與分析:①partnerLink伙伴鏈接: 在整個(gè)業(yè)務(wù)流程中,與其流程交互的服務(wù)均可以稱為BPEL的伙伴。在對(duì)伙伴進(jìn)行定義時(shí),要根據(jù)其連接類型來決定。②Variable變量:Variable變量不僅對(duì)流程中的中間數(shù)據(jù)進(jìn)行了定義,還對(duì)系統(tǒng)信息進(jìn)行了保管與存放。③Activity活動(dòng):在BPEL流程中,所有的步驟與操作被稱為活動(dòng),根據(jù)其構(gòu)成類型的不同可將其分為基本活動(dòng)和結(jié)構(gòu)化活動(dòng)兩大類。④CorrelationSet關(guān)聯(lián)集:即業(yè)務(wù)流程中與各業(yè)務(wù)具有交互關(guān)系的相關(guān)集合。
2 業(yè)務(wù)流程模型的BPEL轉(zhuǎn)換
為明確業(yè)務(wù)與業(yè)務(wù)需求的內(nèi)在關(guān)系,規(guī)范業(yè)務(wù)流程,提升業(yè)務(wù)處理效率,管理人員一般會(huì)采用構(gòu)建模型(通常是圖形模型)的方式分析和驗(yàn)證業(yè)務(wù)流程的科學(xué)性與準(zhǔn)確性。這些圖形模型主要包括一些基本流程結(jié)構(gòu),對(duì)于那些構(gòu)成較為復(fù)雜的模型,管理人員則可以通過構(gòu)建多個(gè)模型并根據(jù)實(shí)際需求有機(jī)結(jié)合的方式完成,BPEL將專門的結(jié)構(gòu)化定義用于表達(dá)流程模型間的映射關(guān)系,最終分析實(shí)現(xiàn)了用戶的實(shí)際需要。
3 案例研究
以電子政務(wù)系統(tǒng)為例,整個(gè)流程主要包括申請(qǐng)、審核以及審批三部分,假設(shè)該流程主要涉及ABC三個(gè)部門,則其流程定義如下:
3.1 定義BPEL流程的接口WSDL 首先要對(duì)流程的接口WSDL進(jìn)行定義,其WSD文件代碼片段如下:
<!--定義部門服務(wù)端口類型-->
3.2 定義合作伙伴的鏈接 在進(jìn)行連接時(shí)系統(tǒng)實(shí)現(xiàn)了服務(wù)與鏈接的結(jié)合,其代碼片段如下:
name=”ApplyInfo” partnerLinkType=”tns: ApplyInfoPL”/> <!--定義DepartA,DepartB,Rellease的合作伙伴--> … 3.3 BPEL主流程定義 最后調(diào)用接完成整個(gè)流程,其代碼片段如下: <!--BPEL主流程執(zhí)行活動(dòng)定義--> PortType=”tns:ApplyInfo”operation=”getApplyInfo” variable=”request” createInstance=”yes”> portType=”dp:DepartPL” operation=”getExamInfo” inputVariable=”req-depA” outputVariable=”res- depA”/> <!—調(diào)用DepartA和DepartB的伙伴鏈接--> … operation=”getReleaseInfo” variable=”getReleaseInfoResponse”/>
參考文獻(xiàn):
[1]Alsonso G,Casati F,Kuno H. Web Service-Concepts, Architectures and Applications[M]. Springer Verlag,2004.
[2]Tony Andrews,F(xiàn)rancisco Curbera,Yardon Goland. Business
Process Execution Language for Web Services(BPEL4WS),2003.3.
[3]張偉剛,谷建華,王云嵐,趙天海.BPEL工作流管理系統(tǒng)中人工交互的研究[J].科學(xué)技術(shù)與工程,2011(13).