薛智山 滿君豐 張燦青 彭成 劉鳴
[摘要]靈活的工作流管理系統(tǒng)有助于工作流適應(yīng)不斷變化的環(huán)境要求,然而傳統(tǒng)工作流系統(tǒng)的靈活性不強(qiáng),不符合工業(yè)標(biāo)準(zhǔn),往往會(huì)發(fā)生不可預(yù)知的錯(cuò)誤。因此提出了一種新的方法,這種方法依托BPMN2和業(yè)務(wù)規(guī)則使工作流在設(shè)計(jì)和運(yùn)行時(shí)具有靈活的適應(yīng)性。
[關(guān)鍵詞]工作流管理系統(tǒng):適應(yīng)性:業(yè)務(wù)規(guī)則;BPMN
1 引言
工作流管理系統(tǒng)(Workflow Management System,WfMS)成為許多工業(yè)IT系統(tǒng)環(huán)境的重要組成部分。對(duì)于有些領(lǐng)域,傳統(tǒng)的工作流管理系統(tǒng)已經(jīng)被證實(shí)不具有涵蓋普遍要求的工作流的靈活性。傳統(tǒng)的工作流系統(tǒng)大多存有重用性低、模式單一、缺少靈活性等問(wèn)題,這些工作流模式只能夠在定義時(shí)進(jìn)行操作和修改,若流程確定后就不能再進(jìn)行修改,因此工作流系統(tǒng)的應(yīng)用范圍受到了很大限制,無(wú)法滿足現(xiàn)代工業(yè)流程的發(fā)展進(jìn)度。當(dāng)前面臨的問(wèn)題是:如何通過(guò)將工作流的靈活適應(yīng)性應(yīng)用于特定情形來(lái)應(yīng)對(duì)工作流管理系統(tǒng)的復(fù)雜和變動(dòng)性。
國(guó)內(nèi)外已有很多學(xué)者對(duì)工作流可適應(yīng)性進(jìn)行了大量的研究并提出了相應(yīng)的解決方案。文獻(xiàn)提到,可適應(yīng)的工作流系統(tǒng)應(yīng)具有特點(diǎn):工作流系統(tǒng)應(yīng)具有較為開源的結(jié)構(gòu),使外界能夠獲悉系統(tǒng)內(nèi)部相關(guān)組成部分,即工作流系統(tǒng)應(yīng)具有動(dòng)態(tài)配置、重配置的能力。文獻(xiàn)針對(duì)單個(gè)動(dòng)態(tài)變更提出了的InConcert系統(tǒng),這是一種被用來(lái)開發(fā)具有靈活適應(yīng)性的工作流管理系統(tǒng)。也有不少學(xué)者提出了一些使工作流系統(tǒng)在某些方面實(shí)現(xiàn)適應(yīng)性的解決方案,如在領(lǐng)域?qū)邮褂没谥R(shí)的辦法來(lái)提高工作流管理系統(tǒng)的柔性等。這些方法大都是從特定的角度出發(fā),解決其中特定的問(wèn)題。因而缺乏對(duì)工作流系統(tǒng)整體靈活性的支持。本文從設(shè)計(jì)和運(yùn)行兩方面描述工作流的適應(yīng)性,其研究目的是具體化不同方面的靈活性實(shí)現(xiàn)模塊化,以支持特定應(yīng)用場(chǎng)景的工作流管理系統(tǒng)。
2 BPMN建模機(jī)制
業(yè)務(wù)流程建模是實(shí)現(xiàn)業(yè)務(wù)流程管理(BusinessProcess Management,BPM)的基礎(chǔ)。使用工作流程管理系統(tǒng)有利于提高工作效率,提高工業(yè)競(jìng)爭(zhēng)力。對(duì)于系統(tǒng)分析師來(lái)說(shuō),最理想的建模是可以做到簡(jiǎn)單、易用,能夠?qū)崿F(xiàn)可視化描述業(yè)務(wù)流程,能夠精確驗(yàn)證模型的效率。計(jì)算分析模型的使用性能。要做到以上這些,就需要研究如何利用符號(hào)描述模型、元素意義、建模機(jī)制、執(zhí)行引擎等融合在一塊。這時(shí)BPMN符號(hào)標(biāo)準(zhǔn)成為了當(dāng)前工作流中最流行的一種工作流流程建模的解決方案。
在本節(jié)中提出設(shè)計(jì)和運(yùn)行時(shí)的靈活性的方法,它包括兩個(gè)主要概念組件。涉及到指定工作流的哪一部分可以在運(yùn)行和定義時(shí)做改變,這種適應(yīng)需要應(yīng)用在特定環(huán)境的工作流中。
2.1 自適應(yīng)工作流段
圖1是一個(gè)虛擬的船舶發(fā)動(dòng)機(jī)維修工作流程。在圖的下部是發(fā)動(dòng)機(jī)啟動(dòng)測(cè)試和電機(jī)壽命分析。對(duì)于這些測(cè)試。工程師要等待批準(zhǔn),由于環(huán)境原因同一時(shí)間海港只能有幾條船運(yùn)行引擎。圖1還包括每個(gè)工作流實(shí)例的變量數(shù)據(jù)。有些變量是靜態(tài)的,如船型;有些是可能改變的,如維修工程師的積壓。維護(hù)工作流可以看做是一個(gè)參考模型,即指定工作流的“規(guī)則”的過(guò)程,在許多情況下它的有些自適應(yīng)段需要適合上下文變量的具體值。我們建立在通用的框架用于確定自適應(yīng)工作流程的片段。這些可以適應(yīng)在運(yùn)行時(shí)的結(jié)構(gòu)調(diào)整。
2.2 定義應(yīng)用BPMN2適應(yīng)模式
自適應(yīng)段的執(zhí)行語(yǔ)義定義:如果一個(gè)輸入到一個(gè)自適應(yīng)段是一個(gè)工作流實(shí)例,對(duì)上下文變量進(jìn)行評(píng)估,并最終成為適應(yīng)段。在每段進(jìn)入時(shí)間的自適應(yīng)段,創(chuàng)建一個(gè)一致的獨(dú)立變段,該變化是被忽略或更復(fù)雜的檢查和錯(cuò)誤的解決機(jī)制必須得加以考慮。這可以發(fā)生在進(jìn)入自適應(yīng)段模式中的目錄定義結(jié)構(gòu)的適應(yīng)。在結(jié)構(gòu)的定義也依靠BPMN2語(yǔ)義。每種模式都包括一個(gè)唯一的名稱和描述以及隱式輸入?yún)?shù)
數(shù)據(jù)上下文和適應(yīng)模式之間的連接,現(xiàn)在可以建立業(yè)務(wù)規(guī)則的事件條件作用(ECA)的格式,該事件包括在進(jìn)入事件的自適應(yīng)段,條件構(gòu)成的約束條件的工作流程的上下文變量和行為指定模式的應(yīng)用。他們至少是參數(shù)化和自適應(yīng)段屬于規(guī)則的觸發(fā)事件的入口節(jié)點(diǎn)。因此,這段可以簡(jiǎn)單地封裝在適應(yīng)模式嵌套相應(yīng)元素的關(guān)注BPMN2流程實(shí)例。偽語(yǔ)法中*代表0-n個(gè)重復(fù),可以定義為:
ON entry-event IF
3 不同適應(yīng)目的的工作模式
靈活性類型對(duì)于剪裁操作的模式定義,意在包括和擴(kuò)展基本適應(yīng)模式、時(shí)間模式(TP)和異常處理模式(EHP)。在BPMN2符號(hào)中每個(gè)模式都有唯一的名字、描述、圖形表示,一個(gè)說(shuō)明性的例子以及在BPMN2元素中的最終參數(shù),約束限制這種模式或參數(shù),重利用和改進(jìn)關(guān)系到其他模式和通用模式。下面,該模式將被用于進(jìn)一步闡明模式模塊化和靈活性平衡一致性的問(wèn)題。
模式的范圍和嵌套。由于設(shè)計(jì)模式為有效的BPMN2片段結(jié)合我們的設(shè)計(jì)框架,該框架只允許塊結(jié)構(gòu)的自適應(yīng)工作流段,結(jié)合性自適應(yīng)語(yǔ)法錯(cuò)誤已經(jīng)排除在概念層面。如表1的BAP1模式可以同時(shí)應(yīng)用而沒(méi)有任何語(yǔ)法問(wèn)題。盡管有些限制,然而結(jié)構(gòu)性錯(cuò)誤可能仍然會(huì)發(fā)生,并盡可能排除這些錯(cuò)誤。表1中TAP8模式中一個(gè)說(shuō)明性的例子可直接由模式應(yīng)用實(shí)現(xiàn)。
應(yīng)用和參數(shù)約束。為了防止運(yùn)行時(shí)適應(yīng)引起的結(jié)構(gòu)性錯(cuò)誤,比如完全性違反死鎖和活鎖問(wèn)題。一系列額外的約束必須應(yīng)用在一些適應(yīng)模式中。TAP8約束確保了工作流段具有執(zhí)行的機(jī)會(huì),而不總是在相對(duì)點(diǎn)用于間隔規(guī)范時(shí)跳過(guò)。BAP16和BAP18攜帶一組相當(dāng)復(fù)雜的約束,因?yàn)樗麄冎荒芙Y(jié)合使用實(shí)現(xiàn)動(dòng)態(tài)控制依賴注入。因此,動(dòng)態(tài)適應(yīng)性結(jié)構(gòu)對(duì)應(yīng)于不同的跳躍和插入操作。
模式應(yīng)用的分類。由于部分聲明性,多個(gè)不同的適應(yīng)規(guī)則或認(rèn)為干預(yù)可能需要同時(shí)應(yīng)用。如果這些適應(yīng)性應(yīng)用在任意的規(guī)則中可能會(huì)出現(xiàn)不可預(yù)知的錯(cuò)誤或相互矛盾的業(yè)務(wù)邏輯。例如,如果一個(gè)規(guī)則定義跳躍模式的應(yīng)用(BAP1),而另一個(gè)一個(gè)定義插入模式的應(yīng)用,工作流運(yùn)行時(shí)的行為取決于這兩個(gè)模式的應(yīng)用順序?;谒鼋o定的考慮,一個(gè)有效的應(yīng)用程序排序可以定義如下:
Insert 4 原型實(shí)現(xiàn) 本文已經(jīng)建立了一個(gè)原型基于JBoss Drools支持自適應(yīng)片段的可視化建模和適應(yīng)規(guī)則的規(guī)范。對(duì)于建模和執(zhí)行環(huán)境及適應(yīng)規(guī)則事件感知的工作流程,我們整合和擴(kuò)展Drools,主要是用Eclipse搭建建模環(huán)境和執(zhí)行引擎??刂屏鳟惓J菄@問(wèn)題控制流冗余,網(wǎng)關(guān)條件和穩(wěn)健性。此外,存在的問(wèn)題與缺乏同步和特殊異常它們主要適用于動(dòng)態(tài)的工作進(jìn)行檢查。這是一個(gè)活動(dòng)插入到當(dāng)前活動(dòng)的一個(gè)過(guò)去的(即人通向執(zhí)行當(dāng)前活動(dòng)的路徑)和它提供的數(shù)據(jù)中的未來(lái)活動(dòng)當(dāng)前活動(dòng)可能導(dǎo)致的不一致。在本節(jié)中,簡(jiǎn)要地說(shuō)明了基本的基礎(chǔ)以及BPMN利用參考以規(guī)則為基礎(chǔ)改編的元模型作為一種方法的一個(gè)實(shí)例工作流程,驗(yàn)證設(shè)計(jì)和運(yùn)行建模在工作流的靈活性。 5 結(jié)束語(yǔ) 本文基于工業(yè)標(biāo)準(zhǔn)BPMN2和業(yè)務(wù)規(guī)則的工作流在設(shè)計(jì)和運(yùn)行時(shí)的靈活性的概念,提出依賴于標(biāo)記上下文相關(guān)的工作流自適應(yīng)段的BPMN2元模型為擴(kuò)展的方案。本文的主要貢獻(xiàn)是運(yùn)行時(shí)的異常處理應(yīng)用于適應(yīng)模式,適應(yīng)模式應(yīng)用BPMN2的擴(kuò)展功能。該方法是可以定制的,以限制所需程度的靈活性。建立一系列適應(yīng)模式允許以規(guī)則為基礎(chǔ)的工作流程。有利于建模者熟悉BPMN,更好地檢查模型的整體一致性,特別是模型有較強(qiáng)的實(shí)用性和可擴(kuò)展性。下一步的工作是提供一個(gè)符合規(guī)則的應(yīng)用模式,該模式基于約束集的建模環(huán)境。本方法適用在以規(guī)則為基礎(chǔ)的模式支持下的工作流,對(duì)發(fā)動(dòng)機(jī)制造商的海洋服務(wù)進(jìn)行評(píng)估。