日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

過程建模EPC,我拿什么拯救你

 若水為 2007-12-04

EPC是一種過程建模方法,全稱是Event-driven Process Chain。在九十年代初期才由Keller等人提出。對(duì)于EPC,國(guó)內(nèi)開發(fā)人員是陌生的,可能很多人聽說EPC【01】,也僅僅是在ARIS(Architecture of Integrated Information System)系統(tǒng)框架中接觸過一些。EPC可能很多人是陌生的,但SAP R3可能很多人或多或少聽過,SAP R3就是基于EPC過程建模的。

 

 作者    :胡長(zhǎng)城 [ 銀狐999 ]
http://www.
http://blog.csdn.net/james999
完成日期2006-10-8 version 1.0
聯(lián)系信箱:james-fly@vip.sina.com
MSN     fcxiao2000@hotmail.com

 

       EPC是一種過程建模方法,全稱是Event-driven Process Chain。在九十年代初期才由Keller等人提出。對(duì)于EPC,國(guó)內(nèi)開發(fā)人員是陌生的,可能很多人聽說EPC【01】,也僅僅是在ARIS(Architecture of Integrated Information System)系統(tǒng)框架中接觸過一些。EPC可能很多人是陌生的,但SAP R3可能很多人或多或少聽過,SAP R3就是基于EPC過程建模的。
 
       我也僅僅只是在2004年中的時(shí)候才接觸過EPC這個(gè)概念的,那時(shí)候還在思維加速公司(現(xiàn)在叫起步公司了)研發(fā)Biz5.0系統(tǒng),為了在Process Model這一層尋找一套方法論的支持,查閱了大量的建模方法資料,其中就包括EPC。
       但那時(shí)候接觸的業(yè)務(wù)場(chǎng)景和業(yè)務(wù)范圍很局限,雖然對(duì)EPC很認(rèn)同,卻不敢輕易的深入和采用,加上當(dāng)時(shí)受Alast的YAWL的影響,所以更加癡迷于PetriNet。——很遺憾的是,那個(gè)時(shí)候沒有看出EPC與PN之間是有很大關(guān)聯(lián)性的,這是后話。
 
       2004年底進(jìn)入U(xiǎn)SE(用友軟件工程),接手了工作流引擎的開發(fā)。雖然那時(shí)候很想按照自己的思路采用PN或EPC的模型來開發(fā),但當(dāng)時(shí)在我之前的開發(fā)人員已經(jīng)花費(fèi)了大量時(shí)間在XPDL模型語言上,并做出了一款可運(yùn)行的Deme和設(shè)計(jì)器,對(duì)我來說,當(dāng)時(shí)的首要任務(wù)是重構(gòu)出一款實(shí)際可用的引擎,而不是重新開發(fā)一個(gè)工作流系統(tǒng)。
       不得已,我只能采用XPDL流程模型,也只能選擇重構(gòu),這在我去年寫的《工作流引擎核心調(diào)度算法與PetriNet》【03】已經(jīng)稍稍提及了。雖然模型這個(gè)層面讓我很被動(dòng),但是由于至少還可以把握引擎結(jié)構(gòu)和調(diào)度算法這一層,或多或少?gòu)浹a(bǔ)了很多。
 
       其實(shí),那個(gè)時(shí)候即使允許采用PN或EPC,心里其實(shí)也是沒有多少底的。畢竟早先我很多的研究基礎(chǔ)也是基于WfMC的參考模型和XPDL描述語言的。兩年之后再回過頭來看看,心中已經(jīng)很清晰了,至少那幾個(gè)過程模型的思想已經(jīng)很有把握了。
 
       說道這兒,順帶說兩個(gè)方面的個(gè)人觀點(diǎn),這兩個(gè)方面與主題沒有直接關(guān)系,但是有間接關(guān)系。以后我會(huì)寫專門的文檔來闡述我的這兩個(gè)觀點(diǎn),此處我就不多加解釋了,“仁者見仁,智者見智”,有心者自己把握吧。
 
       第一:我不是很喜歡XPDL流程描述模型,但目前國(guó)內(nèi)絕大多數(shù)的廠商采用的是XPDL描述模型及擴(kuò)展,這沒有任何不妥。目前國(guó)內(nèi)的流程應(yīng)用范圍主要還集中在類似OA審批流之類的應(yīng)用上,這一層面的應(yīng)用XPDL的模型所描述的語義基本可以滿足大家的理解和應(yīng)用了。再加之絕大多數(shù)的客戶更偏重于“離散型活動(dòng)關(guān)系”,這就讓建模的約束又淺了一層。
       第二:在引擎構(gòu)建上,需要把握關(guān)鍵的三點(diǎn):過程模型建模、引擎調(diào)度算法和狀態(tài)變遷、實(shí)例之間的對(duì)象關(guān)系。把握了這三點(diǎn),則基本能夠奠定一個(gè)引擎的主線結(jié)構(gòu)。這好比是寫文章的“主線”。當(dāng)然,一篇好的文章,光有一個(gè)好的主線邏輯和構(gòu)思是不夠的,但主線是核心,寫工作流引擎,也類似。
      
       自從2005年初寫出那款引擎之后,就很長(zhǎng)時(shí)間沒有想去寫一個(gè)引擎的沖動(dòng)了。這似乎是開發(fā)人員的一種詬病,如果感覺現(xiàn)在所做的研發(fā)或者開發(fā),不能讓自己超越現(xiàn)在的自己,則會(huì)喪失很大興趣,甚至放棄。我當(dāng)時(shí)就是那種狀態(tài)。
       我沒有再去做工作流研發(fā),但是卻沒有放棄對(duì)工作流的研究。從2005年中開始,我自己利用業(yè)余時(shí)間在默默地研究,也利用給別人培訓(xùn)和講課的機(jī)會(huì),對(duì)相關(guān)知識(shí)進(jìn)行鞏固和升華。這一年多來,收獲是不小的,但是卻沒有再公開什么文章,是比較沉寂的一年。
 
 
       前面廢話說了一堆,現(xiàn)在正式轉(zhuǎn)入正題。
 
       前段時(shí)間,公司接了一個(gè)物流的項(xiàng)目,其中有一個(gè)子系統(tǒng)是要做WMS(倉(cāng)儲(chǔ)管理系統(tǒng)),主要是處理物品入庫(kù)、出庫(kù)、庫(kù)存的流程管理。我看這個(gè)WMS子系統(tǒng)的需求之后,對(duì)其內(nèi)部所需要處理的流程、單據(jù)狀態(tài)等業(yè)務(wù)場(chǎng)景,腦海中第一個(gè)念頭就是應(yīng)該采用EPC用于建模抽象。可惜這只是腦海中的一個(gè)念頭而以,現(xiàn)實(shí)中,是不可能這么去實(shí)施這個(gè)項(xiàng)目的。(這是令人痛心的,不過國(guó)內(nèi)很多項(xiàng)目的實(shí)施,是很應(yīng)付性的,也很難聽取開發(fā)人員的意見)。
回到家后,又把之前所搜刮到的有關(guān)EPC的資料翻了翻。其中有兩篇文檔在這里提一提:
 
       第一篇就是《SAP R/3 Business Blueprint:Understanding Enterprise Supply Chain Management》【02】,這本書有一章節(jié)專門講了EPC建模的要素,并且在后續(xù)章節(jié)中,用了大量的圖例詮釋了如何用EPC流程構(gòu)建業(yè)務(wù)流程。
       書中主要點(diǎn)了EPC的四個(gè)主要要素:事件(Event)、功能(Function)、組織單元(Orgnization Unit)、信息(Data)(事實(shí)上,OU和Data這兩個(gè)要素是ARIS系統(tǒng)框架中的)。由于本書的宗旨主要在于業(yè)務(wù)詮釋,所以對(duì)于這幾個(gè)要素講解的不夠概念化、形式化。但讀完后,用EPC的圖例繪制業(yè)務(wù)流程圖,估計(jì)沒有多大難度了。
 
 
元素
圖例
描述
Event
描述了狀態(tài)的發(fā)生,同時(shí)又充當(dāng)了一個(gè)觸發(fā)器
Function
功能描述了一個(gè)任務(wù)的執(zhí)行,代表了一個(gè)start event和end event轉(zhuǎn)換過程
Orgnization Unit
 
Data
 
Process Path
流程之間的連接關(guān)系
Logical Connectors
邏輯連符號(hào):AND,OR,XOR
 
 
讓我們來看一個(gè)例子,可以加深對(duì)EPC所構(gòu)建的流程模型的理解:下圖顯示的是一個(gè)貨物接收處理的流程。
 
 
 
       第二篇就是Alast大師寫的《Formalization and Verification of Event-driven Process Chains》【04】。Alast是位Petri Net領(lǐng)域的專家,這篇文檔也依然沒有脫離PN角度。
       這篇文檔從“過程”角度給出了EPC的幾個(gè)元素解釋:
元素
描述
Functions
A function corresponds to an activity (task, process step) which needs to be executed.
Events
Events describe the situation before and/or after a function is executed. Functions are linked by events. An event may correspond to the postcondition of one function and act as a precondition of another function.
Logical connectors
Connectors can be used to connect activities and events. This way the flow of control is specified. There are three types of connectors: AND, XOR (exclusive or) and OR
      
       Alast這篇文章另外一個(gè)重要內(nèi)容,就是做了EPC到PetriNet的映射,但不涉及到對(duì)OR邏輯連接符的映射,因?yàn)镺R的語義有多種詮釋,不是非常清晰明確,這在Alast的這篇文檔中也已經(jīng)說明。
       EPC的Event可以映射為PN中的庫(kù)所(Place),而Function可以映射為PN中的變遷(Transition)。而至于邏輯連接符AND和XOR的映射在采用Place的控制,很容易表示:
          

          

  
國(guó)內(nèi)EPC應(yīng)用的匱乏
       看到這兒,估計(jì)大家對(duì)EPC過程模型能夠有個(gè)基本的認(rèn)識(shí)。因?yàn)楸酒皇侵v解EPC的,而只是想說明:EPC在業(yè)務(wù)建模方面為我們提供了很好的參考,但是國(guó)內(nèi)當(dāng)前基于EPC模型的流程產(chǎn)品或業(yè)務(wù)產(chǎn)品幾乎沒有。在網(wǎng)絡(luò)上搜索中文EPC的資料,僅有寥寥幾篇,而且主要還都是因?yàn)橹v解ARIS框架而順帶提及的。
 
       到不是說EPC是一劑萬能的良藥,事實(shí)上EPC也僅是過程建模的一種。幾個(gè)過程建模諸如PetriNet、EPC、Activity Diagram、FSM等,如果可能的話,XPDL的定義元模型也算一種。
 
       但是國(guó)內(nèi)這幾年的工作流相關(guān)的產(chǎn)品和應(yīng)用發(fā)展,受WfMC的XPDL影響很深。
一方面是因?yàn)閲?guó)內(nèi)自身的理論研究過于薄弱和蒼白,可能有些研究人員會(huì)注意到上述的那些過程建模方法,但是由于這些過程建模方法并沒有形成完整的形式化描述語言支持(事實(shí)上,是有一些的,比如基于PN的PNML,基于EPC的EPML等,但是這些xml的描述語言過于理論化,不像XPDL那樣偏應(yīng)用),所以很難直接被一些開發(fā)廠商了解。
而另一方面,這幾年國(guó)內(nèi)工作流應(yīng)用的主要領(lǐng)域依然是OA及相關(guān)審批流程。在這樣一個(gè)“偏重用戶自主行為控制”的流程應(yīng)用領(lǐng)域,XPDL所闡述的流程元模型對(duì)象:Process、Activity、Transition、Participant已經(jīng)基本可以描述一個(gè)完整的流程。在可以完整描述完一個(gè)流程之后,大部分廠商都把重點(diǎn)放在了:(1)通過擴(kuò)展屬性來豐富流程定義;(2)通過完善引擎的功能支持一些用戶行為化的操作,諸如退回、自由流等。
 
       但很少有廠商真正的反思一下,XPDL的過程建模就一定完善嗎?合適嗎?。對(duì)于XPDL來說,有個(gè)最大的缺陷就是缺少對(duì)State和Event的描述(在XPDL2.0中已經(jīng)部分的納入Event概念了)。
 
       而對(duì)于其他過程建模PetriNet、EPC、Activity Diagram、FSM這幾個(gè)來說,State是一個(gè)核心的元素:
過程建模方法
基本模型元素
表示State的對(duì)象
PetriNet
Place,Transition
Place
EPC
Event,Function,Connectors
Event
Activity Diagram
State,Decision
State
FSM
State,Action
State
XPDL Metedata
Activity,Transition
 
      
       在這幾個(gè)過程建模方法中,EPC是最偏重于商業(yè)業(yè)務(wù)化流程的。但是卻是國(guó)內(nèi)應(yīng)用卻是空白的。
       據(jù)我所知道的,目前國(guó)內(nèi)已經(jīng)有兩三家廠商已經(jīng)采用PetriNet作為流程描述模型;OSWorkflow和jBpm這兩款開源引擎的應(yīng)用,也已經(jīng)讓部分廠商在不知不覺中采用了FSM和Activity Diagram模型。唯獨(dú)EPC沒有應(yīng)用(當(dāng)然那些采用SAP R3的除外)。
       我記得在2001年,我還在有生博大公司研發(fā)RiseOffice5.0公文流程系統(tǒng),那時(shí)候采用的是Task和Action對(duì)象,有些類似FSM的State和Action。不過現(xiàn)在有生博大新版的RiseOffice工作流系統(tǒng),已經(jīng)采用XPDL模型了?!?其實(shí)這也是國(guó)內(nèi)很多廠商的一個(gè)開發(fā)趨勢(shì):雖然不了解“過程建模”,但是知道XPDL可以描述流程。
 
事實(shí)上,EPC所抽象的模型,很適合諸如B2B、供應(yīng)鏈流程管理、倉(cāng)儲(chǔ)物流管理等商業(yè)化業(yè)務(wù)流程。這樣的業(yè)務(wù)流程有個(gè)很共同的特點(diǎn),對(duì)于“活動(dòng)處理的前后狀態(tài)”很在意。一旦把握了狀態(tài),則可以依據(jù)狀態(tài)來豐富業(yè)務(wù)對(duì)象的生命周期控制和業(yè)務(wù)規(guī)則控制,這兩點(diǎn)在業(yè)務(wù)系統(tǒng)中是比較重視的。
相比較而言,XPDL的元模型則僅僅只描述了“活動(dòng)與活動(dòng)之間的連接關(guān)系”,則很難在模型角度就看清楚活動(dòng)之間所影響的狀態(tài)及變更關(guān)系。
 
但很少有開發(fā)商或者開發(fā)人員去反思這個(gè)問題:活動(dòng)與狀態(tài)。XPDL雖然屏蔽了“狀態(tài)”這個(gè)理念,但是由于其是目前最為“完善的XML描述化流程語言”(當(dāng)然,這里我們不去談?wù)揃PEL、BPML之類的規(guī)范),對(duì)于開發(fā)商來說,只需要考慮遵循規(guī)范和擴(kuò)展,則可以基本清晰的描述一個(gè)“流程”,雖然不能夠表達(dá)流程各個(gè)區(qū)段的狀態(tài)問題,但是卻可以清楚地展現(xiàn)“活動(dòng)之間的關(guān)系”。
 
更況,國(guó)內(nèi)的流程發(fā)展,這幾年主要依賴于辦公自動(dòng)化和審批流,加上國(guó)內(nèi)應(yīng)用偏重于“離散活動(dòng)點(diǎn)的組合關(guān)系”,也就是說,在很多客戶眼力:流程就是一個(gè)個(gè)離散的任務(wù),這些任務(wù)在不同情況下可以很隨意的組合。而這樣的需求,是XPDL所依賴于的Activity和Transition所基本可以描述的。
加之WfMC畢竟是一個(gè)有著十多年的國(guó)際化標(biāo)準(zhǔn)組織,對(duì)客戶,對(duì)開發(fā)商來說,這樣的組織和標(biāo)準(zhǔn),都是比較容易接受的。
 
而EPC,PetriNet,FSM,Activity Diagram則顯得很脆弱,沒有國(guó)際化的組織支撐,沒有完善的描述語言支撐。最令人嘆息的就是,在XPDL的描述模型中,幾乎找不到任何這四個(gè)模型的影子,似乎WfMC在有意回避這幾個(gè)建模思想。
 
國(guó)內(nèi)的業(yè)務(wù)化建模流程,應(yīng)該吸納EPC這樣建模方法,特別是在業(yè)務(wù)化系統(tǒng)中,比如B2B、供應(yīng)鏈流程管理、倉(cāng)儲(chǔ)物流管理等商業(yè)化流程系統(tǒng)中。當(dāng)然這樣的代價(jià)是比較高的,需要基于這些模型元素和思想,自主摸索出一套完整描述語言。事實(shí)上,SAP R3的成功是很值得大家借鑒的

 
下面把倉(cāng)儲(chǔ)管理系統(tǒng)中的一個(gè)入庫(kù)流程中的“入庫(kù)訂單處理”用EPC模型表示,如下:
 
      
 
01】G. Keller, M. Nüttgens, A.-W. Scheer. Semantische Prozessmodellierung auf
der Grundlage ?Ereignisgesteuerte Prozessketten (EPK)“. Ver?ffentlichung
des Institut für Wirtschaftsinformatik, Paper 089, Saarbrücken, 1992
 
02】Thomas A. Curran, Andrew Ladd. SAP R/3 Business Blueprint:Understanding Enterprise Supply Chain Management,2003
 
03】胡長(zhǎng)城,《工作流引擎核心調(diào)度算法與PetriNet》,2005年
 
04】W.M.P. van der Aalst, Formalization and Verification of Event-driven Process Chains

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多