国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ActiveXML動(dòng)態(tài)自適應(yīng)工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)

2017-11-18 16:18趙軍富譚躍生王猛
現(xiàn)代電子技術(shù) 2017年22期
關(guān)鍵詞:自適應(yīng)

趙軍富 譚躍生 王猛

摘 要: 當(dāng)前工作流管理系統(tǒng)發(fā)展的瓶頸問題是其缺乏支持動(dòng)態(tài)變化、不具有動(dòng)態(tài)修改能力及自適應(yīng)性。引入分布式數(shù)據(jù)管理語言作為工作流模型定義語言,來創(chuàng)建能夠動(dòng)態(tài)修改的工作流模型。設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)自適應(yīng)工作流引擎,該引擎在工作流執(zhí)行過程中能夠動(dòng)態(tài)修改過程模型,允許對(duì)流程中的未執(zhí)行節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)的增加、刪除和修改,給出了流程動(dòng)態(tài)修改策略及自適應(yīng)算法,解決工作流動(dòng)態(tài)變化帶來的正確性、一致性和自適應(yīng)性的問題。

關(guān)鍵詞: Active XML; 動(dòng)態(tài)修改; 自適應(yīng); 工作流引擎

中圖分類號(hào): TN911?34; TP391 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)22?0075?03

Abstract: Lack of dynamic change support, the dynamic modification ability and adaptation has become the current development bottleneck for the workflow management system. Therefore, the Active XML (distributed data management language) was taken as a workflow model definition language to create a workflow model supporting dynamic modification. A dynamic and adaptive workflow engine was designed and implemented, which can not only dynamically modify the process model in the workflow execution, but also allow it to add, delete and modify the non?execution nodes dynamically. The dynamic modification strategy in flow path and adaptive algorithm are presented to solve the problems of correctness, consistency and adaptability caused by the dynamic change of workflow.

Keywords: Active XML; dynamic modification; self?adaptation; workflow engine

0 引 言

隨著工作流管理系統(tǒng)在企業(yè)中應(yīng)用的不斷深入,企業(yè)對(duì)工作流管理系統(tǒng)提出更高的需求。工作流管理系統(tǒng)無法事先確定所有的流程,往往在流程的執(zhí)行過程中并不是一成不變,導(dǎo)致工作流系統(tǒng)出現(xiàn)“死鎖”現(xiàn)象[1]。設(shè)計(jì)具有實(shí)時(shí)的動(dòng)態(tài)修改和自適應(yīng)性的工作流引擎,解決當(dāng)前工作流發(fā)展的瓶頸,成為當(dāng)前工作流管理系統(tǒng)研究的熱點(diǎn)。

本文首先分析了動(dòng)態(tài)修改和自適應(yīng)工作流動(dòng)態(tài)性的內(nèi)在實(shí)質(zhì)和外在表現(xiàn),引入分布式數(shù)據(jù)管理語言(Active XML)作為工作流模型定義語言,創(chuàng)建能夠進(jìn)行動(dòng)態(tài)修改的工作流模型。設(shè)計(jì)具有自適應(yīng)性的工作流引擎框架[2],然后給出流程的動(dòng)態(tài)修改規(guī)則及動(dòng)態(tài)修改算法,并在動(dòng)態(tài)修改后如何保證工作流系統(tǒng)運(yùn)行的數(shù)據(jù)一致性和正確性問題進(jìn)行討論。

1 動(dòng)態(tài)自適應(yīng)工作流分析

工作流的動(dòng)態(tài)性主要表現(xiàn)在工作流定義階段可以動(dòng)態(tài)修改預(yù)先定義的流程,在工作流運(yùn)行階段,能夠動(dòng)態(tài)修改過程模型和實(shí)例。能夠?qū)α鞒讨袪顟B(tài)為未執(zhí)行的節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)的增加、刪除和修改。同時(shí),能夠?qū)σ粋€(gè)實(shí)例的具體活動(dòng)的屬性及狀態(tài)的動(dòng)態(tài)進(jìn)行修改。

因此,能夠動(dòng)態(tài)修改和具有自適應(yīng)的工作流必須支持如下三個(gè)功能[3]:

(1) 對(duì)工作流的過程定義能夠動(dòng)態(tài)進(jìn)行編制和修改;

(2) 能夠給出工作流對(duì)過程和活動(dòng)的動(dòng)態(tài)修改規(guī)則;

(3) 給出對(duì)流程動(dòng)態(tài)修改算法,來保證工作流系統(tǒng)的數(shù)據(jù)一致性和正確性問題。

2 可動(dòng)態(tài)修改的自適應(yīng)工作流模型

工作流模型是工作流管理系統(tǒng)的核心,工作流模型是由流程中的相關(guān)過程和活動(dòng)構(gòu)成,下面給出工作流模型[4]及相關(guān)定義[5]:

定義1(工作流):是一個(gè)由一系列的相關(guān)過程組成的集合,過程與過程之間可能是相互獨(dú)立,也可能存在著數(shù)據(jù)或控制的關(guān)聯(lián)。工作流可表示為:WF=(P1,P2,…,Pm,R(s))(m≥1)。其中,P={P1,P2,…,Pm}為工作流過程的集合;R(s)=(R1,R1,…,Rn)(n≥1)是工作流過程之間關(guān)聯(lián)規(guī)則集合。

定義2(工作流過程):是一個(gè)由一系列工作流的活動(dòng)組成有序集合。一個(gè)工作流過程包含了過程運(yùn)行中涉及到的所有數(shù)據(jù)和相關(guān)規(guī)則。工作流過程可表示為:P=(A1,A2,…,Aj,Rules),其中A1,A2,…,Aj是組成該過程的活動(dòng)集合,Rules代表組成該過程的活動(dòng)之間的關(guān)聯(lián)規(guī)則的集合。

定義3(工作流活動(dòng)):可以表示為一個(gè)六元組Activity =(A_Id,A_Name,A_T,A_Data,A_State,A_Attribute)。其中:A_Id表示活動(dòng)標(biāo)號(hào);A_Name表示活動(dòng)名稱;A_T (邏輯表達(dá)式)表示該活動(dòng)完成的一個(gè)具體的動(dòng)作;A_Data 表示與該活動(dòng)有關(guān)的一組輸入/輸出數(shù)據(jù);A_State表示活動(dòng)的狀態(tài)[4];A_Attribute 表示該活動(dòng)在執(zhí)行時(shí)的行為屬性。

如圖1所示,工作流模型[6]主要是由過程和活動(dòng)構(gòu)成的,為了能夠創(chuàng)建具有動(dòng)態(tài)修改和自適應(yīng)能力的工作流實(shí)例,工作流模型必須將工作流過程定義中的過程、活動(dòng)和相關(guān)規(guī)則進(jìn)行抽象描述。endprint

同時(shí),工作流模型必須具有能夠在定義階段表示不確定的過程或活動(dòng);能夠允許在運(yùn)行階段修改預(yù)先定義的流程。

3 基于AXML動(dòng)態(tài)自適應(yīng)工作流引擎的設(shè)計(jì)

本工作流管理系統(tǒng)以AXML作為過程定義語言,來建立工作流引擎。對(duì)于AXML文檔的解析由于篇幅所限在此就不做太詳細(xì)的敘述。工作流引擎首先將工作流模型進(jìn)行解析,解析后在數(shù)據(jù)庫中采用存儲(chǔ)有向圖的方法來對(duì)模型信息(過程、活動(dòng))進(jìn)行實(shí)時(shí)存儲(chǔ),每個(gè)模型文檔只需解析一次。同時(shí)對(duì)流程的動(dòng)態(tài)修改信息在數(shù)據(jù)庫中進(jìn)行適時(shí)更新和記錄,如圖2所示為可動(dòng)態(tài)修改的自適應(yīng)工作流引擎框架[3]。

由圖2可知,在自適應(yīng)工作流引擎框架中,解析器首先在工作流模型文檔庫中查找要進(jìn)行解析的過程模型,由Dom解析器和XML綁定技術(shù)根據(jù)模型具體信息解析出其中的“活動(dòng)”、“ 關(guān)聯(lián)規(guī)則”、“相關(guān)數(shù)據(jù)”分別存入對(duì)應(yīng)的數(shù)據(jù)表。

分配器[7]是對(duì)活動(dòng)的屬性、狀態(tài)、關(guān)聯(lián)規(guī)則的管理,首先根據(jù)工作流實(shí)例的ID,以該實(shí)例中的活動(dòng)為依據(jù)進(jìn)行任務(wù)分配,生成工作列表,并將第一個(gè)活動(dòng)狀態(tài)置“就緒”。

路由選擇器是對(duì)過程的相關(guān)數(shù)據(jù)和關(guān)聯(lián)規(guī)則進(jìn)行管理,根據(jù)過程與過程之間關(guān)聯(lián)規(guī)則、過程執(zhí)行結(jié)構(gòu)(順序、并行、循環(huán)、選擇),控制活動(dòng)的執(zhí)行順序。任務(wù)分配器和路由選擇器必須支持動(dòng)態(tài)修改,既要保持維護(hù)工作流數(shù)據(jù)的一致性,又要保持工作流控制的一致性。

4 流程動(dòng)態(tài)修改規(guī)則及算法

4.1 動(dòng)態(tài)修改規(guī)則

流程動(dòng)態(tài)一般在工作流定義階段和流程運(yùn)行階段進(jìn)行修改。對(duì)于一個(gè)給定的工作流定義來講,在過程定義階段的修改[4]可以使用未知的活動(dòng)X來代替該流程的動(dòng)態(tài)性和不確定性,如圖3所示。在流程的執(zhí)行期間,假設(shè)未知的活動(dòng)為X,X 將隨著工作流執(zhí)行中的一些結(jié)果逐漸明確,逐漸明確X的內(nèi)部具體含義(如空節(jié)點(diǎn)或一組活動(dòng)節(jié)點(diǎn))。確保自適應(yīng)工作流模型在定義階段能夠準(zhǔn)確對(duì)過程和活動(dòng)的狀態(tài)變化進(jìn)行修改。

處于運(yùn)行階段的工作流,要對(duì)流程進(jìn)行動(dòng)態(tài)修改,需要進(jìn)行一系列的相關(guān)操作才可以完成。比如,要在正在運(yùn)行的流程當(dāng)中插入一個(gè)新的活動(dòng),并且在這個(gè)新活動(dòng)插入后,保證修改后的工作流過程與已執(zhí)行的工作流實(shí)例之間具有前后連續(xù)性。由于流程處于運(yùn)行狀態(tài),所以要完成動(dòng)態(tài)修改涉及到幾個(gè)關(guān)鍵步驟:首先,對(duì)流程進(jìn)行暫停執(zhí)行;其次,對(duì)活動(dòng)或關(guān)聯(lián)規(guī)則修改;然后,對(duì)正確性和一致性驗(yàn)證;最后,對(duì)流程進(jìn)行恢復(fù)執(zhí)行。圖4給出插入一個(gè)活動(dòng)的具體動(dòng)態(tài)修改流程圖。

流程暫停執(zhí)行是指當(dāng)工作流引擎執(zhí)行過程中接到一個(gè)修改操作的消息時(shí),引擎首先需要對(duì)該流程中正在運(yùn)行的活動(dòng)的狀態(tài)置為暫停并掛起,然后才可以對(duì)活動(dòng)或過程進(jìn)行修改;對(duì)于插入的新活動(dòng)需要描述出該活動(dòng)的相應(yīng)屬性內(nèi)容或流程關(guān)聯(lián)規(guī)則,方可完成流程的動(dòng)態(tài)修改;工作流修改后在引擎執(zhí)行前需要對(duì)正確性和一致性驗(yàn)證(對(duì)正確性和一致性驗(yàn)證在下節(jié)講解);最后在保證流程的正確性和一致性沒有問題的情況下,繼續(xù)恢復(fù)流程的啟動(dòng)。

4.2 流程正確性和一致性驗(yàn)證

在工作流的動(dòng)態(tài)修改中,不但要保證過程與過程間的數(shù)據(jù)一致性,而且還應(yīng)保證流程的正確性。本文使用事務(wù)的特點(diǎn),在過程的動(dòng)態(tài)修改中,各相關(guān)過程要么全部執(zhí)行,要么一點(diǎn)都不執(zhí)行。

流程正確性和一致性驗(yàn)證必須考慮以下幾方面問題[8]:

(1) 新活動(dòng)的插入是否會(huì)影響到原流程的運(yùn)行狀態(tài),包括已執(zhí)行部分被撤銷的活動(dòng)、重新插入的活動(dòng)開始繼續(xù)向后執(zhí)行、向前回退到某個(gè)活動(dòng)以及向后跳到其他活動(dòng)執(zhí)行[9]。

(2) 新插入活動(dòng)與原先的活動(dòng)間存在的數(shù)據(jù)關(guān)聯(lián)和控制關(guān)聯(lián),這些關(guān)聯(lián)關(guān)系是什么,這些必須有相應(yīng)的關(guān)聯(lián)規(guī)則進(jìn)行約束。

(3) 動(dòng)態(tài)修改后的工作流必須對(duì)其進(jìn)行驗(yàn)證,是否破壞了數(shù)據(jù)一致性和控制的一致性。下面通過動(dòng)態(tài)修改算法來保證動(dòng)態(tài)修改后的流程的正確性和一致性。

4.3 動(dòng)態(tài)修改算法

為了確保流程的正確性和一致性,防止錯(cuò)誤的修改,本文只對(duì)流程中插入新增節(jié)點(diǎn)的操作進(jìn)行算法[1]實(shí)現(xiàn),對(duì)于修改和刪除節(jié)點(diǎn)算法不做講解。

流程插入節(jié)點(diǎn)算法及步驟:

(1) 定義函數(shù)AddNode(int NodeId,NodeProperty),其中NodeId為當(dāng)前節(jié)點(diǎn)的Id,NodeProperty為新增節(jié)點(diǎn)屬性。

(2) 讀取當(dāng)前要修改流程信息,根據(jù)NodeId找到當(dāng)前運(yùn)行節(jié)點(diǎn)及其下一個(gè)節(jié)點(diǎn)NextId。

(3) 調(diào)用AddNode函數(shù)生成一個(gè)新節(jié)點(diǎn),由NodeProperty信息為該節(jié)點(diǎn)的各個(gè)屬性賦值。同時(shí),將NextId賦值給該節(jié)點(diǎn)的孩子節(jié)點(diǎn)。

(4) 將步驟(2)中獲得的節(jié)點(diǎn)的孩子節(jié)點(diǎn)NextId的屬性賦值為步驟(3)中新生成的節(jié)點(diǎn)NodeId。

(5) 將動(dòng)態(tài)修改信息在工作流模型數(shù)據(jù)庫中進(jìn)行適時(shí)更新和記錄。

假設(shè)節(jié)點(diǎn)A的輸出連接到節(jié)點(diǎn)B,即A,B處于順序關(guān)系。在A,B兩節(jié)點(diǎn)之間插入一個(gè)新節(jié)點(diǎn)C所需要做的操作包括:記錄A的輸出(A節(jié)點(diǎn)的屬性);修改C的輸入連接為A的轉(zhuǎn)出;修改A的輸出連接指向C。使節(jié)點(diǎn)C的輸出作為節(jié)點(diǎn)B的輸入,節(jié)點(diǎn)A,C,B處于順序關(guān)系。

5 結(jié) 論

本文首先利用Active XML的動(dòng)態(tài)特性建立可動(dòng)態(tài)修改自適應(yīng)工作流模型,根據(jù)工作流在流程和活動(dòng)方面的修改建立可支持動(dòng)態(tài)修改的工作流引擎,給出了流程動(dòng)態(tài)修改的策略、流程動(dòng)態(tài)修改算法、流程正確性和一致性驗(yàn)證方法。工作流動(dòng)態(tài)修改過程中出現(xiàn)異常如何處理,是筆者下一步的研究工作。

參考文獻(xiàn)

[1] REICHERT M, DADAM P. ADEPT flex?supporting dynamic changes of workflow without losing control [J]. Journal of intelligent information system, 2013(10): 93?129.endprint

[2] HSIEH Fu?Shiung, LIN Jim?Bon. A self?adaptation scheme for workflow management in multi?agent systems [J]. Journal of intell manuf, 2016, 27: 131?148.

[3] 郭玉彬,蔡澤野,林澤偉,等.輕量級(jí)動(dòng)態(tài)工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(3):1105?1109.

[4] CAO Jian, YAO Yan, WANG Yi. Mining change operations for workflow platform as a service [J]. World wide Web, 2015, 18: 1071?1092.

[5] LIU Ji, PACITTI Esther, VALDURIEZ Patrick. Marta Mattoso: a survey of data?intensive scientific workflow management [J]. Journal of grid computing, 2015, 13: 457?493.

[6] 楊磊,吳哲輝,吳振寰.基于面向?qū)ο驪etri網(wǎng)的組織間工作流建模[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(8):59?62.

[7] 余陽,王潁,劉醒梅,等.基于社會(huì)關(guān)系的工作流任務(wù)分派策略研究[J].軟件學(xué)報(bào),2015,26(3):562?573.

[8] KIM Kyong Ju, YUN Won Gun, LEE Ju?hyun, et al. Schedule compression in tunneling projects by adjusting workflow variability [J]. KSCE journal of civil engineering, 2014, 18(6): 1625?1631.

[9] KAMMER P J. Techniques for supporting dynamic and adaptive workflow [J]. Computer supported cooperative work, 2014, 9(3/4): 269?292.endprint

猜你喜歡
自適應(yīng)
淺談網(wǎng)絡(luò)教育領(lǐng)域的自適應(yīng)推送系統(tǒng)
以數(shù)據(jù)為中心的分布式系統(tǒng)自適應(yīng)集成方法
自適應(yīng)的智能搬運(yùn)路徑規(guī)劃算法
Ka頻段衛(wèi)星通信自適應(yīng)抗雨衰控制系統(tǒng)設(shè)計(jì)
電子節(jié)氣門非線性控制策略
多天線波束成形的MIMO-OFDM跨層自適應(yīng)資源分配
九龙城区| 塘沽区| 湟源县| 措勤县| 黎川县| 叶城县| 铜鼓县| 谢通门县| 凤庆县| 泗洪县| 远安县| 富平县| 西和县| 两当县| 普安县| 咸丰县| 新邵县| 休宁县| 任丘市| 麻栗坡县| 保亭| 玉龙| 洪湖市| 陈巴尔虎旗| 嘉善县| 奎屯市| 大冶市| 高阳县| 镇远县| 南岸区| 金昌市| 五常市| 寻乌县| 武隆县| 玛多县| 正镶白旗| 中牟县| 九江县| 双城市| 吴桥县| 思南县|