[摘要] 信息技術(shù)的應(yīng)用對企業(yè)資源管理中的工作流有很大幫助。本文論述了在全局應(yīng)用程序狀態(tài)監(jiān)控下,工作流的一種同步器的特殊控制方法,該方法在一致的活動狀態(tài)下計(jì)算出控制謂詞并做出工作流行為的控制決定。
[關(guān)鍵詞] 企業(yè)資源管理 動態(tài)工作流 同步器
進(jìn)入20世紀(jì)90年代, 企業(yè)之間的競爭由過去的局部競爭演變成全球范圍內(nèi)的競爭。要在競爭中取得優(yōu)勢,企業(yè)必須不斷的重新考慮并且優(yōu)化企業(yè)資源和業(yè)務(wù)流程, 改變他們的信息系統(tǒng)和應(yīng)用程序, 從而適應(yīng)不斷變化的內(nèi)部和外部環(huán)境。上述問題迫使企業(yè)必須尋求一種新的技術(shù)來建立新型的業(yè)務(wù)處理流程決策機(jī)制,于是工作流技術(shù)應(yīng)運(yùn)而生。
一、工作流的定義
工作流就是一系列相互銜接、自動進(jìn)行的業(yè)務(wù)活動。如果將整個業(yè)務(wù)過程看作是一條河,其中流過的就是工作流。工作流模型通過定義任務(wù)(活動)、任務(wù)間邏輯順序、數(shù)據(jù)和資源等對流程進(jìn)行抽象處理。工作流實(shí)例可以分為靜態(tài)工作流和動態(tài)工作流。
二、使用同步器進(jìn)行應(yīng)用程序的控制
本文是在應(yīng)用程序全局狀態(tài)的監(jiān)控下基于同步器實(shí)現(xiàn)的動態(tài)工作流技術(shù)。應(yīng)用程序向特殊的同步器程序發(fā)送局部狀態(tài),同步器構(gòu)建了一致的應(yīng)用程序狀態(tài)并在這些狀態(tài)的基礎(chǔ)上進(jìn)行謂詞的計(jì)算。同步器持續(xù)監(jiān)控一致的全局狀態(tài),這些狀態(tài)由成對并發(fā)的局部狀態(tài)所組成。這些狀態(tài)的構(gòu)成和謂詞評估能夠在應(yīng)用程序運(yùn)行時以較低的計(jì)算和內(nèi)存代價(jià)在線進(jìn)行。依據(jù)這些謂詞,同步器可做出控制決定。這些決定以控制信號的方式被發(fā)送到應(yīng)用程序執(zhí)行過程中。信號在執(zhí)行過程中可以激活與它們相關(guān)的控制活動,進(jìn)而在異步方式中影響應(yīng)用程序行為,它們能改變應(yīng)用程序的有效內(nèi)容,修改執(zhí)行順序。
在已知的工作流的環(huán)境中,控制流的實(shí)現(xiàn)都是基于其他的模型或表示方法,例如 petri網(wǎng)模型,BPMN 業(yè)務(wù)流程圖或UML2.0活動圖。在本文中提出了以一種基于同步器來實(shí)現(xiàn)工作流控制的方法。這種方法比我們所知的工作流控制范例能提供更多的通用規(guī)則。因?yàn)楣ぷ髁鞯目刂剖腔谠诠ぷ髁鲌?zhí)行狀態(tài)基礎(chǔ)上進(jìn)行計(jì)算的程序化謂詞。此外,提出的控制實(shí)現(xiàn)方法能方便工作流的程序?qū)崿F(xiàn),并且工作流的組成元素可以顯示運(yùn)行時可修改的功能特征和動態(tài)交互,它與具有活動動態(tài)功能性的動態(tài)工作流相一致。
本文提出的控制方法是基于執(zhí)行過程狀態(tài)監(jiān)控,從程序執(zhí)行過程中返回的狀態(tài)構(gòu)成了全局或局部應(yīng)用程序狀態(tài)。在這些狀態(tài)的基礎(chǔ)上,一組用戶定義的謂詞被評估。當(dāng)一個謂詞滿足,一個控制信號發(fā)出來選擇執(zhí)行過程。這個信號能影響程序執(zhí)行內(nèi)部過程控制流。它僅能傳送一些數(shù)據(jù),這些數(shù)據(jù)可被正在進(jìn)行的計(jì)算所利用。它也能激活與它相關(guān)的程序代碼,取消當(dāng)前計(jì)算使程序執(zhí)行過程忽略程序代碼的當(dāng)前部分。
我們假定執(zhí)行過程的時鐘以一種已知的精確度保持同步, 我們使用持續(xù)一致的全局狀態(tài)并且在這些狀態(tài)的基礎(chǔ)上評估謂詞。它包括附在程序執(zhí)行過程狀態(tài)信息的時間戳,該狀態(tài)信息將由用于過程時鐘同步的假定限度決定。在許多情形中,事件時間戳(還有時間的同步化)可以被忽略而且被監(jiān)控的全局狀態(tài)也可被使用。當(dāng)工作流方案使用這種狀態(tài)監(jiān)控機(jī)制實(shí)現(xiàn)時,這是完全正確的。應(yīng)用程序使用專用的傳送命令發(fā)送關(guān)于它們狀態(tài)的時間戳,而同步器負(fù)責(zé)程序狀態(tài)的接收,全局/局部狀態(tài)構(gòu)建,謂詞評估和控制信號發(fā)送。
一個同步器的工作過程描述如圖所示。同步器等待從程序執(zhí)行過程中返回的狀態(tài)信息并且進(jìn)行檢查是否有一個持續(xù)的/被觀測的全局/局部狀態(tài)已經(jīng)到達(dá)。如果狀態(tài)已經(jīng)到達(dá),同步器會在這個到達(dá)狀態(tài)的基礎(chǔ)上進(jìn)一步檢查哪一個謂詞會被評估并且進(jìn)行評估。獨(dú)立的謂詞,根據(jù)每個定義的區(qū)域(每個區(qū)域是應(yīng)用程序的全集或子集)的全局或局部狀態(tài)而被定義。一個謂詞以與過程相似類型的控制流程圖的形式被描述。
圖 同步器控制流方案
三、用同步器實(shí)現(xiàn)動態(tài)工作流
動態(tài)工作流結(jié)構(gòu)包括:支持型工作流和聯(lián)系型工作流。在工作流中,基于活動中間全局狀態(tài)的分析,它們在控制流的細(xì)節(jié)上有所不同。一是支持型工作流。在支持型工作流中,一組正被執(zhí)行的活動將支持其他主要活動的執(zhí)行,而主要活動提供最終有用的結(jié)果。這兩組活動的相互協(xié)作需要支持型工作流向主工作流部分進(jìn)行信息和狀態(tài)的傳送。二是偶合型工作流。在偶合型工作流中,一系列當(dāng)前被執(zhí)行的活動相互交換中間狀態(tài)來做出控制流管理決定,而這對工作流的執(zhí)行和完成時必需的。許多活動的全局狀態(tài)被監(jiān)控并且根據(jù)需要控制指示將被發(fā)送到特殊活動中,任務(wù)參數(shù)和數(shù)據(jù)相互交換,活動參數(shù)根據(jù)輔助的計(jì)算被更新。
參考文獻(xiàn):
[1]舒后:分布式并發(fā)控制技術(shù)研究. 北京印刷學(xué)院學(xué)報(bào)Sep1, 2003
[2]鄧水光等:動態(tài)工作流建模方法的研究與設(shè)計(jì). 計(jì)算機(jī)集成制造系統(tǒng),Jun, 2004
[3]S.Venkatesan and Brahma Dathan, “Testing and Debugging Distributed Programs Using Global Predicates”, IEEE Trans. Software Eng, 1995
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。