XPDL是xml工作流定義語(yǔ)言,使wfmc制定的一個(gè)國(guó)際標(biāo)準(zhǔn),期望建立一個(gè)統(tǒng)一的標(biāo)準(zhǔn),并且通過(guò)此標(biāo)準(zhǔn),能夠讓不同的流程引擎能夠相互交戶。
wfmc工作流定義的元模型如下圖:
圖中的方框,我們稱之為實(shí)體(entity),其中Activity這里翻譯為活動(dòng),Participant翻譯為參與者,relevant data翻譯為關(guān)聯(lián)數(shù)據(jù)。
1.1. XPDL實(shí)體概述
數(shù)據(jù)模型呈現(xiàn)了工作流定義中的最基本的組成實(shí)體,下面逐個(gè)對(duì)每個(gè)實(shí)體簡(jiǎn)單介紹一下:
1.1.1. 工作流定義
工作流定義為工作流中其他實(shí)體提供了上下文描述,包含自身信息,流程制定人和管理者的信息,或者是流程運(yùn)行時(shí)需要用的數(shù)據(jù),比如說(shuō)初始化參數(shù)、流程限制時(shí)間、檢查點(diǎn)、需要通知的人等。
1.1.2. 工作流活動(dòng)(Activity)
工作流是由一個(gè)或多個(gè)活動(dòng)組成的,每個(gè)活動(dòng)都是由一個(gè)有邏輯的、自包含的工作組成?;顒?dòng)體現(xiàn)為工作,工作可以是參與者參與的,也可以是計(jì)算機(jī)的應(yīng)用程序。其他的可選的信息包含活動(dòng)是否由流程管理系統(tǒng)自動(dòng)開(kāi)始或者結(jié)束,活動(dòng)相對(duì)于同一個(gè)流程中其他活動(dòng)的對(duì)資源的優(yōu)先級(jí),活動(dòng)也可以指定流程中特殊的關(guān)聯(lián)數(shù)據(jù),也可以指定為一個(gè)子流程。
一個(gè)活動(dòng)可以包含子流程,子流程可以是同一個(gè)流程引擎解析,也可以是遠(yuǎn)程調(diào)用其他流程引擎解析。子流程定義清楚了該子流程包含的活動(dòng)、trasition、參與者等信息。子流程成中的關(guān)聯(lián)數(shù)據(jù)可以作為子流程輸入和輸出。
活動(dòng)可以包含一個(gè)活動(dòng)塊,這個(gè)活動(dòng)塊執(zhí)行一組活動(dòng),活動(dòng)和活動(dòng)之間有Transition,這些活動(dòng)與transition共用相同的命名空間。
1.1.3. Transition信息
活動(dòng)與活動(dòng)之間通過(guò)Transition連接的。一個(gè)Transition有三部分組成,起始活動(dòng)(From-Activity)、終止活動(dòng)(To-Activity)以及轉(zhuǎn)換條件(Condition),連接活動(dòng)與活動(dòng)之間的Transition可以通過(guò)條件判斷是否允許通過(guò)。Transition能連接串行的或者并行的活動(dòng)。Transition的連接類型有split和join兩種。Split是指由活動(dòng)分出去的類型,Join是連接到活動(dòng)的類型。
1.1.4. 工作流參與者定義
參與者定義了各個(gè)關(guān)卡的執(zhí)行者,參與者可以為預(yù)先定義好的人、也可以為計(jì)算機(jī)的應(yīng)用程序或者是計(jì)算機(jī)設(shè)備。參與者為人時(shí),不一定是一個(gè)人,也可以為一組人。
1.1.5. 資源庫(kù)
資源庫(kù)使得參與者能夠?yàn)槿?、設(shè)備或者是應(yīng)用程序,經(jīng)典的資源庫(kù)就是組織模型。
1.1.6. 工作流應(yīng)用程序定義
工作流應(yīng)用程序定義的是一個(gè)工作流程、或者活動(dòng)能調(diào)用的應(yīng)用程序或者是接口。這些應(yīng)用程序可能是設(shè)備、企業(yè)中其他應(yīng)用程序或者是接口。工作流應(yīng)用程序定義指的是連接工作流引擎的應(yīng)用程序或者接口,其中包含需要傳遞的參數(shù)。
1.1.7. 工作流關(guān)聯(lián)數(shù)據(jù)
流程執(zhí)行過(guò)程中流程實(shí)例產(chǎn)生或者用到的數(shù)據(jù),這些數(shù)據(jù)可能作用于運(yùn)行過(guò)程中的活動(dòng),也可能是用于顯示的數(shù)據(jù),也可能是用于決定活動(dòng)與活動(dòng)之間Transition中條件的數(shù)據(jù),也可能是用戶獲取參與人的數(shù)據(jù)。XPDL定義了基礎(chǔ)或者復(fù)雜類型的關(guān)聯(lián)數(shù)據(jù),活動(dòng)、應(yīng)用程序、Transition中的條件會(huì)引用這些數(shù)據(jù)。
1.1.8. 系統(tǒng)與環(huán)境數(shù)據(jù)
系統(tǒng)與環(huán)境數(shù)據(jù)是通過(guò)工作流管理系統(tǒng)或者本地系統(tǒng)維護(hù)的,這些數(shù)據(jù)可以被活動(dòng)訪問(wèn)到,也會(huì)用戶Transition中條件的判斷。
1.1.9. 數(shù)據(jù)類型和表達(dá)式
工作流模型定義了一組數(shù)據(jù)類型,比如字符型、引用型、整型、浮點(diǎn)型、日期型等,這些類型將會(huì)用于定義關(guān)聯(lián)數(shù)據(jù)、環(huán)境數(shù)據(jù)以及參與者數(shù)據(jù)。通過(guò)這些類型的數(shù)據(jù),Transition中的條件能執(zhí)行表達(dá)式。數(shù)據(jù)類型能通過(guò)xml或者擴(kuò)展資源擴(kuò)展。
1.1.10. 流程與包
上圖所示,流程由各種各樣的實(shí)體組成,通常情況下,參與者、關(guān)聯(lián)數(shù)據(jù)經(jīng)常會(huì)被多個(gè)流程引用到。數(shù)據(jù)模型呈現(xiàn)了關(guān)聯(lián)工作流管理系統(tǒng)的,控制組成流程的各種類型實(shí)體的流程定義的庫(kù)的用處。
包就是一個(gè)容器,包含了一些公共屬性,比如作者、版本、狀態(tài)等。包中的每個(gè)流程定義都可以繼承這些公共屬性,如果他們自己定義了,則不再繼承。
包中會(huì)定義一些全局的實(shí)體,以便其他流程可以引用,這些實(shí)體一般為:
n 工作流參與者
n 工作流應(yīng)用程序定義
n 工作流關(guān)聯(lián)數(shù)據(jù)定義
包允許引用包內(nèi)部定義的實(shí)體,也可以引用其他包定義的東西,比如:
n 其他包中的流程id作為子流程
n 工作流參與者定義
聯(lián)系客服