第一篇:工作流配置方法
自定義工作流的方法
1、在WSS3.0中只有文檔庫,表單庫和列表庫可以使用工作流。
2、以請假管理為例
在請假管理界面中“設(shè)置”按鈕,選擇“列表設(shè)置”。
在列表設(shè)置界面中選擇“版本控制設(shè)置”
在“版本控制設(shè)置”里把審批功能選中
返回設(shè)置界面,然后點擊菜單上的OFFICE按鈕,選擇“sharepoint designer 編輯”
在“新建”中選擇“工作流”
在此界面中輸入工作流的名稱,選擇工作流的模板,以及啟動工作流的方式。
在上圖中也可以知道可以使用工作流的列表。因為我的是sharepoint2007所以可以應(yīng)用的列表比較多。Wss3.0可能沒有這么多。
由于請假的時間不同申批的領(lǐng)導(dǎo)也不同,所以需要輸入請假天數(shù)。這樣在啟動用設(shè)置請假天數(shù),以此來啟動不同的工作流。點擊“啟動”按鈕
添加
下一步
完成,確定
然后在“工作流設(shè)置器”界面點擊下一步
在接下來的界面中輸入工作流執(zhí)行的條件
首先當(dāng)審批狀態(tài)是待定的時候我們才執(zhí)行工作流。所以要先設(shè)這個條件
點擊“域”,選擇審批狀態(tài)
然后再點擊值,選擇“待定”
接下來,要看請假的天數(shù)是幾天,1天以內(nèi)的部門經(jīng)理批,超過一天的要總經(jīng)理批。選擇“比較任意數(shù)據(jù)源”
點擊“值”
點擊“Fx”函數(shù)按鈕,在彈出窗口選擇“工作流數(shù)據(jù)”
確定
點擊“等于”改為“小于等于”
點擊“值”,輸入1
點擊“操作”
點擊“待辦事項”
下一步
在彈出的窗口中輸入待辦事項的名字和說明,完成
點擊“這些用戶”(假使ALAN為IT部門經(jīng)理)。
確定
到此請假一天的工作流,我們已經(jīng)做完了,接下來再做請假超過一天的。超過一天按常理,部門經(jīng)理也需要批準(zhǔn),然后再給總經(jīng)理。操作如下: 點擊“添加IF條件”
同理也是要在審批狀態(tài)是待定的時侯
然后再添加條件
點擊“值”
然后,點擊“操作”,分配待辦事項
點擊“待辦事項”
點擊“這些用戶”
然后再點擊“操作”,分配待辦事項
點擊“完成”
回到SHAREPOINT DESIGNER界面會看到多出一個工作流
回到sharepoint網(wǎng)站
輸入請假的天數(shù),然后啟動
這時我換成ALAN的帳號 查看一下工作流
審批
然后點擊“進(jìn)行中”
“新請假任務(wù)1”選擇“編輯”
點擊完成任務(wù)
1天以上的請假
切換到alan用戶
在任務(wù)界面中會列出需要我審批的任務(wù)
回到請假管理
注意在此步驟中此圖應(yīng)為沒有BEN的內(nèi)容,當(dāng)編輯->完成任務(wù)后,才會出現(xiàn)BEN這一項
切換用戶到BEN
切換回請假申請者chris
流程設(shè)計完畢。
第二篇:調(diào)用外部方法及工作流
調(diào)用外部方法及工作流
公開一個對象,來從執(zhí)行的工作流中傳給宿主應(yīng)用程序,或者從宿主應(yīng)用程序傳給工作流不就行了嗎?其實,使用現(xiàn)有的串行化技術(shù),如.NET Remoting或者XML Web服務(wù),就可完成這些事。串行化,也叫序列化,它可把數(shù)據(jù)從原有的形式轉(zhuǎn)換成合適的形式,以在不同進(jìn)程甚至不同計算機(jī)之間進(jìn)行傳輸。
學(xué)習(xí)完本章,你將掌握:
1.創(chuàng)建并調(diào)用你的工作流外部的本地數(shù)據(jù)服務(wù)
2.理解怎樣使用接口來為宿主進(jìn)程和你的工作流之間進(jìn)行通信。
3.使用設(shè)計的外部方法在你的工作流和宿主應(yīng)用程序之間傳輸數(shù)據(jù)。
4.在一個正執(zhí)行的工作流中調(diào)用其它工作流
在寫前面的章節(jié)時,我自己不斷地思考,“我不能再等了,我要弄清楚在哪里可把(工作流中的)真實數(shù)據(jù)返回到宿主應(yīng)用程序中!”為什么?做了這么多的活動和工作流的演示,但都沒有實際返回某些感興趣的東西給宿主應(yīng)用程序。我不知寫過多少我們感興趣的工作流的實例和演示,但至多只是僅僅處理過數(shù)據(jù)的初始化(就像第一章-WF簡介中你看過的郵政編碼的例子)。但事情變得更加有趣,坦率地說,當(dāng)我們啟動工作流,然后從外部源中尋找并處理數(shù)據(jù)、返回處理后的數(shù)據(jù)給我們的主應(yīng)用程序要更加接近現(xiàn)實。
為什么不這樣呢?公開一個對象,來從執(zhí)行的工作流中傳給宿主應(yīng)用程序,或者從宿主應(yīng)用程序傳給工作流不就行了嗎?其實,使用現(xiàn)有的串行化技術(shù),如.NET Remoting或者XML Web服務(wù),就可完成這些事。串行化,也叫序列化,它可把數(shù)據(jù)從原有的形式轉(zhuǎn)換成合適的形式,以在不同進(jìn)程甚至不同計算機(jī)之間進(jìn)行傳輸。
為什么談到序列化呢?因為你的工作流是在你的宿主進(jìn)程中的不同線程上執(zhí)行,不同線程之間傳送數(shù)據(jù),如不進(jìn)行適當(dāng)?shù)男蛄谢?,將會引發(fā)災(zāi)難,具體原因超出了本書的討論范圍。其實,你的工作流能在一個持久化的狀態(tài)下發(fā)送它的數(shù)據(jù)。這并沒有在不同線程上,甚至它不在執(zhí)行中。
但我們想在我們的工作流和正控制該工作流的宿主進(jìn)程間傳送數(shù)據(jù)時,使用.NET Remoting或者XML Web服務(wù)這樣的技術(shù)為什么并沒有認(rèn)為是多余的呢?其實這絕對有必要!我們將創(chuàng)建local通信,本章將以此出發(fā)。我們將搭建必須的體系來滿足線程數(shù)據(jù)序列化,以進(jìn)行計算機(jī)之間或進(jìn)程之間的數(shù)據(jù)傳輸。
創(chuàng)建ExternalDataService服務(wù)
當(dāng)工作流和它的宿主進(jìn)行通信時,在它發(fā)送和接收數(shù)據(jù)的時候,工作流要使用隊列和消息。WF為我們做的越多,我們就可把重點更多的放到應(yīng)用中特定任務(wù)的解決上。
工作流內(nèi)部進(jìn)程通信
對于簡單的通信任務(wù),WF使用“abstraction layer”來在工作流和宿主之間進(jìn)行緩沖。抽象層像一個黑盒,你為它提供輸入,它會執(zhí)行一些神奇的任務(wù),然后信息流出到另一邊。但我們不用知道它是如何工作的。
在這種情形下,該黑盒就是一個知名的“l(fā)ocal communication”服務(wù)。和WF術(shù)語中的任何一種服務(wù)一樣,它也是另一種可插拔服務(wù)。區(qū)別是它不像WF中的那些已預(yù)先創(chuàng)建好的服務(wù),你需要寫出這個服務(wù)的一部分。為什么呢?因為你在宿主應(yīng)用程序和你的工作流之間傳遞的數(shù)據(jù)有一定的特殊性。更進(jìn)一步說,你可創(chuàng)建各種各樣的數(shù)據(jù)傳輸方法,你可使用你設(shè)計的各種方法從宿主應(yīng)用程序發(fā)送數(shù)據(jù),然后在工作流中接收數(shù)據(jù)。
備注:這里有些事情你需要進(jìn)行關(guān)注,那就是對象或集合的共享問題。因為宿主應(yīng)用程序和工作流運(yùn)行時在同一個應(yīng)用程序域執(zhí)行,因此引用類型的對象和集合就是通過引用而不是值進(jìn)行傳遞。這意味著宿主應(yīng)用程序和工作流實例在同一時間會訪問和使用同一個對象,多線程環(huán)境下這會產(chǎn)生bug,出現(xiàn)數(shù)據(jù)并發(fā)訪問錯誤。因此,對于可能要進(jìn)行并發(fā)訪問的對象或集合,你可考慮傳遞一個對象或集合的副本,或許這可通過實現(xiàn)ICloneable接口,或者考慮親自序列化該對象或集合并傳遞序列化后的版本。
你可寫這種local service,把它插進(jìn)工作流,然后打開連接,發(fā)送數(shù)據(jù)。這些數(shù)據(jù)可以是字符串,DataSet對象,甚至可以是你設(shè)計的任何可被序列化的自定義對象。通信可以是雙向的,盡管在本章我沒有演示它。(這里,我僅僅是把數(shù)據(jù)從工作流中傳回給宿主應(yīng)用程序。)從工作流的角度來說,我們使用工具生成活動的目的是發(fā)送和接收數(shù)據(jù)。從宿主應(yīng)用程序的角度來說,接收數(shù)據(jù)等同于一個事件,而發(fā)送數(shù)據(jù)就是在一個服務(wù)對象上的方法的簡單調(diào)用。
備注:我們在后面幾章看到更多的活動后還會重溫該雙向數(shù)據(jù)傳輸?shù)母拍?。工作流活動從宿主?yīng)用程序中接收數(shù)據(jù)基于一個HandleExternalEvent活動,我們將在第10章“Event活動”中看到。我們也需要更深入地了解這些概念間的相互關(guān)系,這在第17章“宿主通信”中將進(jìn)行介紹。對于當(dāng)前,我們只是在工作流實例完成它的任務(wù)后,簡單地返回復(fù)合數(shù)據(jù)給宿主。
我們需要做的還不僅僅是這一點,我們最終需要添加ExternalDataService服務(wù)到我們的工作流運(yùn)行時中。ExternalDataService是一個可插拔的服務(wù),它方便了工作流實例和宿主應(yīng)用程序之間進(jìn)行序列化數(shù)據(jù)的傳輸。在緊接下來的一節(jié)我們將寫出的該服務(wù)的代碼將做很多事(包括序列化數(shù)據(jù)的傳輸)。讓我們來看看大體的開發(fā)過程。
第三篇:java 工作流
Willow 由Huihoo Power開發(fā)詳細(xì)可到其中文主頁查看。
更多Willow信息
OpenWFE OpenWFE是一個開放源碼的Java工作流引擎。它是一個完整的業(yè)務(wù)處理管理套件:一個引擎,一個工作列表,一個Web界面和一個反應(yīng)器(存放自動代理)。它可以可以跟你的程序很好的給合。
更多OpenWFE信息
jBpm jBpm是一個靈活可擴(kuò)展的工作流管理系統(tǒng)。作為 jBpm運(yùn)行時server輸入的業(yè)務(wù)流程使用簡單強(qiáng)大的語言表達(dá)并打包在流程檔案中。jBmp將工作流應(yīng)用開發(fā)的便利性和杰出的企業(yè)應(yīng)用集成(EAI)能力結(jié)合了起來。jBmp包括一個Web應(yīng)用程序和一個日程安排程序。jBmp是一組J2SE組件,可以作為J2EE應(yīng)用集群部署。
更多jBpm信息
OpenEbXML OpenebXML項目致力于提供一個ebXML框架,主要支持不久將由 UN/CEFACT和OASIS發(fā)布的ebXML規(guī)范2.0版。
更多OpenEbXML信息
Werkflow Werkflow是一個靈活可擴(kuò)展的基于流程和狀態(tài)的工作流引擎。它的目標(biāo)是滿足可以想象的所有工作流程,從企業(yè)級的業(yè)務(wù)流程到小范圍的用戶交互流程。通過使用可插拔和分層結(jié)構(gòu),可以方便地容納各種工作流語義。
更多Werkflow信息
OSWorkflow OSWorkflow是一個靈活的工作流引擎,設(shè)計成可嵌入到企業(yè)應(yīng)用程序中。它提供了許多的持久化API支持包括:EJB,Hibernate,JDBC和其它。OSWorkflow還可以與Spring集成。
更多OSWorkflow信息
wfmOpen WfMOpen是WfMC和OMG中所謂工作流設(shè)施(workflow facility)(工作流引擎)的J2EE實現(xiàn)。工作流通過擴(kuò)展的XPDL描述。
更多wfmOpen信息
OFBiz OFBiz是一個非常著名的開源項目,提供了創(chuàng)建基于最新J2EE/XML規(guī)范和技術(shù)標(biāo)準(zhǔn),構(gòu)建大中型企業(yè)級、跨平臺、跨數(shù)據(jù)庫、跨應(yīng)用服務(wù)器的多層、分布式電子商務(wù)類WEB應(yīng)用系統(tǒng)的框架。OFBiz最主要的特點是OFBiz提供了一整套的開發(fā)基于Java的web應(yīng)用程序的組件和工具。包括實體引擎, 服務(wù)引擎, 消息引擎, 工作流引擎, 規(guī)則引擎等。更多OFBiz信息
ObjectWeb Bonita Bonita 是一個符合WfMC規(guī)范、靈活的協(xié)同工作流系統(tǒng)。對于各種動作如流程概念建模、定義、實例化、流程控制和用戶交互等提供了全面的集成圖形工具。100% 基于瀏覽器、使用SOAP和XML數(shù)據(jù)綁定技術(shù)的Web Services封裝了已有的工作流業(yè)務(wù)方法并將它們以基于J2EE的Web Service形式發(fā)布?;诨顒宇A(yù)測模型的第三代工作流引擎。更多ObjectWeb Bonita信息
Bigbross Bossa 速度非??臁⑤p量級的引擎,使用富有表達(dá)能力的Petri網(wǎng)定義工作流,不要求關(guān)系數(shù)據(jù)庫,使用簡單,能和Java應(yīng)用集成。事實上,它是按嵌入式設(shè)計的。更多Bigbross Bossa信息
XFlow XFlow運(yùn)行于EJB和servlet容器中。
更多XFlow信息
Taverna Taverna項目的目標(biāo)是提供一種語言和軟件工具,方便在eScience中使用工作流和分布計算技術(shù)。
更多Taverna信息
Enhydra Shark Shark完全基于WfMC和OMG標(biāo)準(zhǔn),使用 XPDL作為工作流定義語言。流程和活動的存儲使用Enhydra DODS(一個開源OR映射工具)。
更多Enhydra Shark信息
PowerFolder PowerFolder是一個容易使用,容易安裝基于J2EE的工作流服務(wù)器,包括開發(fā)人員使用的基于web的studio。
更多PowerFolder信息
Open Business Engine Open Business Engine是一個開放源碼的Java工作流引擎,支持WfMC規(guī)范,包括接口1(XPDL)、接口2/3(WAPI)和接口5。OBE為活動的運(yùn)行提供了一個可控的集中環(huán)境。OBE主要基于J2EE實現(xiàn)。
更多Open Business Engine信息
OpenWFE OpenWFE是一個開放源碼的Java工作流引擎。它包括可升級的三個組件:引擎、工作列表和Web界面。它的流程定義語言雖然使用XML格式,其靈感來源于 Scheme,一種Lisp方言。
更多OpenWFE信息
Freefluo Freefluo 是一個使用Web Service的工作流協(xié)同工具,可以處理WSDL的Web Service調(diào)用。支持兩種XML格式的工作流語言:IBM的WSFL和XScufl。Freefluo非常靈活,它的核心是不與任何工作流語言或執(zhí)行架構(gòu)關(guān)聯(lián)的可重用協(xié)同框架。Freefluo包括可執(zhí)行使用WSFL一個子集描述的工作流的運(yùn)行庫。
更多Freefluo信息
Twiste Twister的目標(biāo)是提供新一代、易集成、應(yīng)用Java領(lǐng)域中最新成果、面向B2B的工作流解決方案。流程引擎基于BPEL業(yè)務(wù)流程規(guī)范和Web Service標(biāo)準(zhǔn)。
更多Twiste信息
Con:cern con:cern工作流引擎基于擴(kuò)展的案例(case)處理方法,流程由一組具有前后條件的活動組成。
更多Con:cern信息
JFlower JFlower是一個用Java開發(fā)的工作流引擎,可以通過Java插件來擴(kuò)展。服務(wù)器可以
解析XML文檔來執(zhí)行任務(wù),檢查條件。會話數(shù)據(jù)保存在一個數(shù)據(jù)庫中,所以服務(wù)器是完全可伸縮的。
更多JFlower信息
JFolder JFolder(formerly PowerFolder)是一個工作流服務(wù)器和開發(fā)環(huán)境,它可以配置在任何J2EE服務(wù)器與數(shù)據(jù)庫。
更多JFolder信息
JAWE 基于Java的圖形化工作流編輯器。圖形化工作流編輯器。使用JAVA語言開發(fā),開放源碼。嚴(yán)格遵循WFMC規(guī)范。XPDL(XML Process Definition Language)WFMC的 XML 過程描述語言。工作流定義文件保存在本地的XML文件中
更多JAWE信息
Zebra Zebra是一個工作流引擎。原先的設(shè)計是為了填補(bǔ)商業(yè)開源工作流引擎的空白。它有一些不同于其它工作流系統(tǒng)的特點:
*所有工作流模型都可以在workflow patterns中描述
*一個易于使用的GUI designer
*一個持久層中間件
*OO設(shè)計
*一個基于Turbine的Web應(yīng)用程序
更多Zebra信息
ActiveBPEL ActiveBPEL引擎是一個健壯的運(yùn)行時環(huán)境,它能執(zhí)行依據(jù)BPEL4WS或just BPEL1.1與WS-BPEL2.0規(guī)范編寫的業(yè)務(wù)流程。
更多ActiveBPEL信息
YAWL YAWL(Yet Another Workflow Language)一個開源工作流語言/處理系統(tǒng).它基于現(xiàn)有的工作流處理系統(tǒng)與工作流語言的一個精確分析.不像傳統(tǒng)的系統(tǒng),它提供對大部分工作流模式的直接支持.YAWL支持控制流透視圖,數(shù)據(jù)透視圖并且能與WSDL標(biāo)準(zhǔn)的web服務(wù)相結(jié)合.更多YAWL信息
MOBE MidOffice BPEL Editor(MOBE)是一個開源平臺能夠讓執(zhí)行,監(jiān)控,調(diào)整,結(jié)束每個定義的過程和諧地結(jié)合起來.這個平臺的實現(xiàn)使用到J2EE技術(shù)與公共的標(biāo)準(zhǔn)如:BPEL,XML與SOAP.更多MOBE信息
RUNA WFE RUNA WFE是一個基于JBOSS-JBPM引擎的開源工作流工作平臺它是一個跨平臺適用于商業(yè)流程處理的最終用戶解決方案,很容易與所有SQL數(shù)據(jù)庫管理系統(tǒng)相結(jié)合.更多RUNA WFE信息
micro-workflow micro-workflow框架適用于那些要在他們程序中分離控制與邏輯方面的開發(fā)者,所以這個框架可以使他們的流程相互獨(dú)立。這樣有利于代碼重復(fù)使用與代碼的完整性。更多micro-workflow信息
bexee bexee是一個BPEL執(zhí)行引擎并且是BPEL標(biāo)準(zhǔn)的一個開源實現(xiàn).更多bexee信息
PXE PXE-Process eXecution Engine是一個模塊化的商業(yè)流程執(zhí)行引擎.支持用WS-BPEL2.0或用BPEL4WS1.1規(guī)范描述的商業(yè)流程.
第四篇:工作流技術(shù)研究
工作流技術(shù)研究(1)(2008-09-10 19:29:14)
標(biāo)簽:工作流管理系統(tǒng) 工作流參考模型 雜談 分類:工作流
工作流技術(shù)從起源到現(xiàn)在已有三十年的發(fā)展歷史,為了規(guī)范工作流技術(shù)的管理,1993年成立了工作流管理聯(lián)盟(WfMC)。WfMC統(tǒng)一了工作流的定義,制定了工作流產(chǎn)品結(jié)構(gòu)和工作流參考模型等一系列的標(biāo)準(zhǔn)。本文針對工作流及其參考模型作簡單的介紹。
首先,先了解一下工作流的相關(guān)定義。
一、工作流相關(guān)定義
定義1 工作流(Workflow):工作流的概念定義很多,其中被廣泛引用的是工作流管理聯(lián)盟關(guān)于工作流的定義,該組織為工作流管理系統(tǒng)的相關(guān)術(shù)語、體系結(jié)構(gòu)及應(yīng)用編程接口等方而制定了一系列的業(yè)界標(biāo)準(zhǔn)。工作流管理聯(lián)盟給出的工作流定義是:全部或者部分,由計算機(jī)支持或自動處理的業(yè)務(wù)過程,它已根據(jù)一系列過程規(guī)則、文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進(jìn)行傳遞與執(zhí)行。工作流是指整個或部分經(jīng)營過程在計算機(jī)支持下的全自動化或半自動化。工作流是企業(yè)中各種流的載體,它帶動了信息流、物料流、資金流的流動,并決定了它們的流速和流量。通過工作流,考察信息、物料、資金等隨過程的變化情況,從而可以方便地對一些關(guān)鍵指標(biāo)進(jìn)行跟蹤和計算。其文
檔、信息或任務(wù)可以遵循一組程序上的規(guī)則從一個參與者傳送到另一個參與者。
定義2 工作流管理:工作流管理(Workflow Management, WFM)是人與計算機(jī)共同工作的自動化協(xié)調(diào)、控制和通訊,在計算機(jī)化的業(yè)務(wù)過程上,通過在網(wǎng)絡(luò)上運(yùn)行軟件,使所有命令的執(zhí)行都處于受控狀態(tài)。在工作流管理下,工作量可以被監(jiān)督,分派工作到不同的用戶達(dá)成平衡。
定義3 工作流管理系統(tǒng)(WFMS—Workflow Management System):工作流管理系統(tǒng)是這樣的一個系統(tǒng),詳細(xì)定義、管理并執(zhí)行工作流,系統(tǒng)通過運(yùn)行一些軟件來執(zhí)行工作流,它運(yùn)行在一個或多個工作流引擎上,這些引擎解釋對過程的定義,與工作流的參與者(包括人或軟件)相互作用,并根據(jù)需要調(diào)用其他的軟件工具或應(yīng)用。這些軟件的執(zhí)行順序由工作流邏輯的計算機(jī)表示形式(計算機(jī)化的業(yè)務(wù)規(guī)則——過程定義)驅(qū)動??傮w來說,實際企業(yè)中運(yùn)作的工作流管理系統(tǒng),是一個人與計算機(jī)結(jié)合的系統(tǒng)。
它的基本功能體現(xiàn)在幾個方面:
? 定義工作流,包括具體的活動、規(guī)則等。
? 遵循定義創(chuàng)建和運(yùn)行實際的工作流。
? 監(jiān)察、控制、管理運(yùn)行中的業(yè)務(wù),例如任務(wù)、工作量與進(jìn)度的檢察等。
定義4工作流機(jī):為工作流實例提供運(yùn)行時期的執(zhí)行環(huán)境的軟件服務(wù)器或引擎。工作流機(jī)能處理:
? 解釋過程定義
? 控制過程實例—創(chuàng)建、激活、掛起、終止等
? 為過程的活動導(dǎo)航,可能要包含順序或者平行的操作、最后時間期限、對工作流相關(guān)數(shù)據(jù)進(jìn)行解釋
? 參與者簽名和退出
? 確定任務(wù)項目,實現(xiàn)用戶意圖;提供接口,支持用戶交互
? 維護(hù)工作流控制數(shù)據(jù)和工作流相關(guān)數(shù)據(jù),在應(yīng)用程序間或者用戶間傳遞工作流相關(guān)數(shù)據(jù)
? 提供調(diào)用外部程序的接口,連接所有工作流相關(guān)數(shù)據(jù)
? 提供控制、管理和審查功能
工作流機(jī)可以控制過程集、子過程、或通過對象類型的范圍、及其屬性定義好運(yùn)行范圍的實例。在一個由多個工作流機(jī)構(gòu)成的工作流執(zhí)行服務(wù)器中,要把過程進(jìn)行劃分,分配給工作流機(jī)??梢园凑者^程類型來劃分,某個工作流機(jī)負(fù)責(zé)控制相應(yīng)類型過程;按照功能進(jìn)行劃分,某個工作流機(jī)負(fù)責(zé)控制過程的一些部分,這些部分所需要的用戶或者資源,都在此工作流機(jī)的控制范圍內(nèi)。也可以按照其他的一些機(jī)制來劃分。
定義5 業(yè)務(wù)過程(business process):就是活動的集合,這些活動均關(guān)聯(lián)于特定的托付事項(commitment),為過程的產(chǎn)出增值。相對于“工作流”,業(yè)務(wù)過程是一個更一般化的統(tǒng)稱,而工作流這個詞,則已經(jīng)不能僅從字面含義或原理上去理解,它已經(jīng)被賦予了更深一層的特定含義——專指基于信息技術(shù)規(guī)劃、運(yùn)作、管理的業(yè)務(wù)過程。
定義6 自動與協(xié)調(diào):“自動”(automate)是工作流的一個特征,但這主要是指它自動進(jìn)行的特征,而不是說沒有人的參與。工作流實際上是一個人與計算機(jī)協(xié)調(diào)的混合過程,在一個實際的工作流中,通??傆行┎襟E是人完成的。協(xié)調(diào)是工作流管理的一個目標(biāo)或者特征,這包括了人與人、人與計算機(jī),計算機(jī)軟件之間等多種層面的含義。
定義7 監(jiān)察與控制:監(jiān)察(Monitoring)與控制(Contorl)是工作流系統(tǒng)的重要功能與特征。這不僅包括對正在發(fā)生的業(yè)務(wù)過程(工作流),還包括它的定義或改
變(比如BPR的過程)。這是工作流系統(tǒng)帶給我們的明顯好處之一。定義8 標(biāo)準(zhǔn)化:工作流的概念被明確提出并得到重視的同時,人們就認(rèn)識到了“標(biāo)準(zhǔn)化”在其中的重要性,有關(guān)工作流的標(biāo)準(zhǔn)開發(fā)和推廣,基本是與“工作流”的開發(fā)和推廣同步進(jìn)行的。在這方面目前的權(quán)威性機(jī)構(gòu),是“工作流管理聯(lián)盟”(Workflow Management Coalition, WfMC)。它成立于1993年8月,目前已擁有 130 余個成員,成員包括工作流產(chǎn)品的供應(yīng)者、應(yīng)用者,有關(guān)大學(xué)和研究機(jī)構(gòu)和個人,是一個國際性的非贏利組織。定義9 工作流與重規(guī)劃:從邏輯上,對工作流的關(guān)注和研究可以看作是對業(yè)務(wù)過程重規(guī)劃(BPR)的一種深化。BPR的觀點,要求我們將眼光投向?qū)嶋H業(yè)務(wù)進(jìn)行的過程,但這個過程應(yīng)當(dāng)是什么樣的,怎樣分析、構(gòu)造?工作流就是一個具體的、操作性的答案,它可以令我們從神秘的、難以預(yù)測和控制的“頭腦風(fēng)暴式”的“藝術(shù)的”業(yè)務(wù)過程創(chuàng)造,變成解析的、技術(shù)的、可控制和預(yù)測的工程化過程,如此,才真正體現(xiàn)出
re-engineering 中 engineering 的意義。
工作流與 BPR 的概念,已經(jīng)被幾乎所有的研究者聯(lián)系在一起研究和應(yīng)用。在這個領(lǐng)域有一個非?;钴S的組織,即國際工作流與重規(guī)劃協(xié)會(Workflow And
Reengineering International Association, WARIA)。
工作流管理系統(tǒng)是一個真正的“人—機(jī)”系統(tǒng),用戶是系統(tǒng)中的基本角色,是直接的任務(wù)分派對象,他或她可以直接看到計算機(jī)針對自己列出的“任務(wù)清單”,跟蹤每一項任務(wù)的狀態(tài),或繼續(xù)一項任務(wù),而不必從一個模塊退出,進(jìn)入另一個模塊,搜索相應(yīng)任務(wù)的線索。前者是面向功能或?qū)ο蟮模笳呤侵苯用嫦蛴脩舻?。這樣,用戶的任務(wù)
分派和任務(wù)的完成狀態(tài),可以被最大程度地計算機(jī)化和受到控制。
現(xiàn)在的典型工作流產(chǎn)品是客戶—服務(wù)軟件。而日益增長的重要途徑是通過萬維網(wǎng)界面,它可以令客戶或遠(yuǎn)程的職員更好地參與。工作流的定義經(jīng)常是借助于圖形化
工具,依照業(yè)務(wù)過程實例的情況定義相應(yīng)工作的安排。
二、目標(biāo)領(lǐng)域
使用工作流管理系統(tǒng)的目的之一是作為企業(yè)應(yīng)用系統(tǒng)集成(EAI)的平臺。在當(dāng)前大部分企業(yè)級IT架構(gòu)中,各種各樣的異構(gòu)(heterogeneous)應(yīng)用和數(shù)據(jù)庫運(yùn)行在企業(yè)內(nèi)網(wǎng)中。在這些系統(tǒng)被應(yīng)用到組織時,都有一個清晰的目標(biāo)。例如,客戶管理、文檔管理、供應(yīng)鏈、訂單、支付、資源計劃等等。讓我們稱這些系統(tǒng)為專門應(yīng)用(dedicated applications)。每一個專門應(yīng)用都包含它們所支持業(yè)務(wù)流程的領(lǐng)域知識。這些專門應(yīng)用中的自動化流程,被拼裝到企業(yè)中更大的非自動化流程中。每當(dāng)一個這樣的專門應(yīng)用安裝并投入使用,都會帶來涉及其他多個應(yīng)用的新功能需求。企業(yè)應(yīng)用系統(tǒng)集成(EAI)就是通過使用多個專門應(yīng)用滿足軟件新需求的方法。有時,這只需要在兩個應(yīng)用之間提供數(shù)據(jù)通訊的通道。專門應(yīng)用將很多業(yè)務(wù)流程硬編碼在軟件中??梢赃@么說,在你購買專門應(yīng)用時,你是購買了一組固定的自動化業(yè)務(wù)流程。而工作流管理系統(tǒng)是不必事先知道問題域的相關(guān)信息的。工作流系統(tǒng)將業(yè)務(wù)流程描述作為輸入并管理流程實例的執(zhí)行,這使得它比專門應(yīng)用更靈活(當(dāng)然你也要花精力編寫業(yè)務(wù)流程的規(guī)格化描述)。這就是為什么說工作流系統(tǒng)和專門系統(tǒng)是相互補(bǔ)充的。工作流系統(tǒng)可以用來管理全局的業(yè)務(wù)流程。如果專門應(yīng)用支持你所需要的業(yè)務(wù)流程,那么使用專門應(yīng)用。在此討論的工作流系統(tǒng)的第一種使用方式就是:結(jié)合所有的專門應(yīng)用,使用工作流系統(tǒng)構(gòu)建一個EAI平臺。
工作流系統(tǒng)能夠發(fā)揮很大價值的第二個使用方式是:協(xié)助涉及多人相關(guān)任務(wù)工作流軟件的開發(fā)。為了達(dá)到這個目的,大部分工作流系統(tǒng)都有一個方便的機(jī)制,來生成執(zhí)行任務(wù)的表單。對于專注于ISO 或者CMM認(rèn)證的組織,采用這種方式使用工作流系統(tǒng)能夠顯著提高生產(chǎn)率。不用將過程用文字的形式寫在紙上,工作流系統(tǒng)使你通過
流程定義建模實現(xiàn)過程的自動化(如使用基于Web的應(yīng)用)。
工作流系統(tǒng)的第三種使用方式是:將工作流引擎嵌入到其他應(yīng)用中。在前面我們談到,專門應(yīng)用將指定問題域相關(guān)的業(yè)務(wù)流程固化在軟件中。開發(fā)專門應(yīng)用的公司也可以將工作流引擎嵌入到他們的軟件中。在這里,工作流引擎只是作為一個軟件組件,對于應(yīng)用的最終用戶是不可見的。將工作流引擎嵌入到應(yīng)用中的主要原因是為了重用
(不重復(fù)發(fā)明輪子)和應(yīng)用軟件的可維護(hù)性。
三、工作流參考模型
WfMC定義的工作流參考模型包括若干基本部件和5個基本接口(部件之間的箭頭表示部件之間的接口),如圖1所示。工作流執(zhí)行服務(wù)器周圍的接口是 WAPI(Workflow APIs),通過這些接口可以訪問工作流系統(tǒng)的服務(wù),這些接口還控制工作流控制軟件與其他系統(tǒng)組件間的交互。在5個接口中的許多功能,都是被2個或更多個接口同時擁有的,因此WAPI可以看作是統(tǒng)一的服務(wù)接口,可以交叉使用這5個接口來支持工作流管理功能,而不是單獨(dú)的使用其中某個接口。
首先,我們粗況的了解一下參考模型中的基本部件,然后再對這些基本部件進(jìn)行簡單分析。
(1)過程定義:負(fù)責(zé)給出工作流程的定義,并以一定的數(shù)據(jù)格式提供給工作流引擎解釋。
(2)工作流執(zhí)行服務(wù):工作流管理系統(tǒng)的核心,提供了過程實例執(zhí)行的運(yùn)行環(huán)境。工作流執(zhí)行服務(wù)借助于一個或多個工作流引擎,激活并解釋工作流流程定義,用來創(chuàng)建、管理、執(zhí)行工作流實例。并同外部的應(yīng)用程序進(jìn)行交互,完成工作流過程實例的創(chuàng)建執(zhí)行與管理職能。
(3)管理和監(jiān)視工具:負(fù)責(zé)監(jiān)控工作流的執(zhí)行,對工作流管理系統(tǒng)中過程實例的狀態(tài)進(jìn)行監(jiān)控與管理,如用戶管理、角色管理、審計管理、資源控制等。
(4)工作流客戶應(yīng)用:執(zhí)行者訪問工作流的界面,活動參與者通過這樣的應(yīng)用程序參加工作流活動,獲取自己的任務(wù)。
(5)工作流引擎:過程定義的解釋器,它是工作流執(zhí)行服務(wù)的核心。
(6)被調(diào)應(yīng)用程序:工作流執(zhí)行服務(wù)在過程實例的運(yùn)行過程中,調(diào)用的、用以對應(yīng)用數(shù)據(jù)進(jìn)行處理的程序。在過程定義中包含這種應(yīng)用程序的詳細(xì)信息如類型、地
址信息等。
(7)其他工作流執(zhí)行服務(wù):在大型的工作流管理系統(tǒng)中,工作流可能需要多個工作流引擎共同完成,甚至需要其他異質(zhì)的工作流執(zhí)行服務(wù)來輔助完成,這涉及到工
作流管理系統(tǒng)之間的互聯(lián)。
其中過程定義通常包括一些獨(dú)立的活動步驟,相關(guān)的計算機(jī)和用戶通過一系列的活動步驟操作或制定規(guī)則以管理流程的步驟。
參考模型中定義的五類工作流接口。
(1)接口1(工作流定義轉(zhuǎn)換):工作流服務(wù)和工作流建模工具間的接口,包括工作流模型的解釋和讀寫操作。
(2)接口2(客戶端應(yīng)用程序接口):工作流服務(wù)和客戶應(yīng)用之間的接口,這是最主要的接口規(guī)范,它約定所有客戶方應(yīng)用與工作流服務(wù)之間的功能操作方法。
(3)接口3(應(yīng)用程序調(diào)用接口):工作流引擎和直接調(diào)用的應(yīng)用程序之間的直接接口。
(4)接口4(工作流機(jī)協(xié)作接口):工作流管理系統(tǒng)之間的互操作接口。
(5)接口5(管理和監(jiān)視接口):工作流服務(wù)和工作流管理工具之間的接口。
在實際的應(yīng)用中,很多商用和開源的工作流系統(tǒng)都沒有嚴(yán)格遵照這個標(biāo)準(zhǔn),或者說沒有統(tǒng)一。一個原因是WfMC的標(biāo)準(zhǔn)對于很多細(xì)節(jié)沒有明確說明,在實現(xiàn)時各個系統(tǒng)出現(xiàn)了各自的實現(xiàn)。另一個原因是,工作流系統(tǒng)與業(yè)務(wù)系統(tǒng)關(guān)系密切,受業(yè)務(wù)系統(tǒng)的限制或約束太大,因此支持不同業(yè)務(wù)的工作流在細(xì)節(jié)上差異很大,標(biāo)準(zhǔn)不易統(tǒng)一,做
一個通用的工作流系統(tǒng)難度比較大。
3.1過程定義
1過程定義工具(Process Definition Tools)
過程定義是用來創(chuàng)建一個計算機(jī)可以處理的形式的過程描述??赡芤孕问竭^程定義語言、對象關(guān)系模型、簡單的系統(tǒng)、腳本、或者在參與者間進(jìn)行信息傳遞的路徑集為基礎(chǔ)。工作流定義工具,可能作為工作流產(chǎn)品的一部分、也可能作為業(yè)務(wù)過程分析產(chǎn)品的一部分來提供給用戶,作為業(yè)務(wù)過程分析產(chǎn)品一部分,會有其他的組件來負(fù)責(zé)處理業(yè)務(wù)過程的分析或者模型,這時,必須要有兼容的轉(zhuǎn)換格式,與運(yùn)行時期的工作流軟件進(jìn)行過程定義的相互轉(zhuǎn)換。有許多不同的工具可以用來分析、建模、描述業(yè)務(wù)過程;這樣的工具有很大的不同從非正式的(鉛筆和紙)到成熟的、十分專業(yè)。工作流模型不關(guān)心這些工具的特性,也不關(guān)心在過程建立時期他們是如何交互的。在以前指出過,這些工具可以作為工作流產(chǎn)品的一部分來提供,或者一個單獨(dú)的產(chǎn)品,例如BPR工具集。
有的工作流產(chǎn)品提供了其自己的過程定義工具,從而過程定義一般是保留在工作流產(chǎn)品范圍內(nèi)的,并且可能或者不能被讀/寫信息的編程接口所訪問。而使用單獨(dú)的過程定義和執(zhí)行服務(wù)器產(chǎn)品,過程定義能夠在不同的產(chǎn)品間進(jìn)行轉(zhuǎn)換,并可以被其他產(chǎn)品訪問。
設(shè)計活動和最后的過程模型輸出,稱為過程定義。在運(yùn)行時期過程定義可以被工作流機(jī)解釋。
過程分析工具、建模工具和定義工具,都要有在一個組織結(jié)構(gòu)中模擬過程的能力(盡管這不是工作流參考模型規(guī)定必須有的)。如果組織模型集成到了這些工具中,那么過程定義將包含組織相關(guān)對象。這些都是與系統(tǒng)相關(guān)的控制數(shù)據(jù),例如角色:活動者間的關(guān)系,可能會在過程執(zhí)行期間被引用。工作流定義轉(zhuǎn)換(接口 1)
在建模或定義工具與運(yùn)行時期工作流管理軟件間的接口,被稱為過程定義導(dǎo)入/導(dǎo)出接口。這個接口的特點是:轉(zhuǎn)換格式和API調(diào)用,從而支持過程定義信息間的互相轉(zhuǎn)換。這個接口也支持已完成的過程定義間的互相轉(zhuǎn)換,或過程定義的一部分。例如,過程定義的改變或者活動中屬性的改變。
使用標(biāo)準(zhǔn)的過程定義格式有很多好處:
首先,把建立階段與運(yùn)行時期環(huán)境進(jìn)行了分離,可以使用一個建模工具來產(chǎn)生過程定義,這個過程定義可以作為很多個不同工作流運(yùn)行時期產(chǎn)品的輸入。從而用戶
可以單獨(dú)地選擇建模工具和工作流運(yùn)行時期產(chǎn)品。
其次,可以為幾個工作流機(jī)輸出過程定義,這幾個工作流機(jī)合作來構(gòu)成分布式的工作流執(zhí)行服務(wù)器。
WFMC在此部分作了以下兩個方面的工作:
(1)提出了一個元模型,可以用來表示過程定義中的對象、對象間的關(guān)系和屬性。這個元模型為不同的產(chǎn)品間的過程定義相互轉(zhuǎn)換奠定了基礎(chǔ),并形成了一套轉(zhuǎn)換
格式。
(2)工作流系統(tǒng)間或工作流系統(tǒng)與過程定義產(chǎn)品間的API調(diào)用,提供了公共的方法來訪問工作流過程定義。訪問可能是讀、讀/寫或者只寫操作,并且操作標(biāo)準(zhǔn)對
象集合(在元模型中定義的對象集合),或者產(chǎn)品自己的對象集合。
3基本元模型(A Basic Meta-Model)
WFMC開發(fā)了一個過程定義的元模型。元模型中定義了基本的對象類型集,來滿足簡單的過程定義相互轉(zhuǎn)換?;蛘哂虚_發(fā)者具體擴(kuò)展,或者在增加的功能中定義另
外的一致性級別來增加更多的對象類型。
需要為下邊的類型定義特殊的屬
性:
工作流類型定義(Workflow Type Definition)
? 工作流過程名
? 版本號
? 過程開始/結(jié)束條件
? 安全、審查、控制數(shù)據(jù)
活動(Activity)
? 活動名
? 活動類型
? 進(jìn)入動作和離開動作
? 其他約束
轉(zhuǎn)移條件(Transition Conditions)
? 執(zhí)行條件
工作流相關(guān)數(shù)據(jù)(Workflow relevant data)
? 數(shù)據(jù)名與路徑
? 數(shù)據(jù)類型
角色(Role)
? 名稱與組織實體
? 應(yīng)用程序調(diào)用(Invoked Application)
? 類型和名稱
? 執(zhí)行參數(shù)
? 本地或者訪問路徑
在分布式工作流服務(wù)器中,可能要在過程定義時,為每個工作流機(jī)分配活動,可以作為活動的一個附加屬性。過程定義能影響安全性與管理。定義的交換格式,要支持符號命名方案,這些符號可以映射到工作流執(zhí)行服務(wù)器中的實際名稱與地址。這種映射可以使用動態(tài)地址定位機(jī)制來實現(xiàn)(例如,目錄服務(wù)器),也可以使用其他的外部過程定義機(jī)制實現(xiàn)。也有其他的一些行業(yè)在相關(guān)的方面作研究,例如過程建模和CASE轉(zhuǎn)換工具;WFMC提出的方法也適用與其他行業(yè),預(yù)
先定義適當(dāng)?shù)霓D(zhuǎn)換格式。
4訪問過程定義的 API(APIs to access Process Definitions)
用來支持訪問過程定義數(shù)據(jù)的API命令集。希望規(guī)范中包含下邊列出的通用類型功能。命令集應(yīng)該提供命令操作表,和操作的對象、屬性,包括:
建立會話(Session Establishment)
? 連接/斷開參與系統(tǒng)間的會話
工作流定義操作(Workflow Definition Operationis)
? 從過程定義庫或者其他資源中,獲得工作流過程的名稱列表
? 選擇工作流過程定義,為更多的對象級操作提供會話句柄
? 讀/寫上層工作流過程定義對象
工作流定義對象操作(Workflow Definition Object Operations)
? 創(chuàng)建、恢復(fù)、刪除工作流定義中的對象
? 恢復(fù)、設(shè)置、刪除對象的屬性
3.2工作流執(zhí)行服務(wù)
1什么是工作流執(zhí)行服務(wù)器
由一個或多個工作流機(jī)構(gòu)成的軟件服務(wù)器,用來創(chuàng)建、管理、執(zhí)行工作流實例。應(yīng)用程序可能會通過WAPI來與這個服務(wù)交互。
在模型中,過程與活動控制邏輯間有一個邏輯上的分離,活動控制邏輯構(gòu)成工作流執(zhí)行服務(wù)器;過程與應(yīng)用工具間、與終端用戶任務(wù)間也有一個邏輯上的分離,應(yīng)用工具和任務(wù)建立起對每個相關(guān)活動的處理。這種邏輯上的分離,為制定更多的行業(yè)標(biāo)準(zhǔn)提供了機(jī)會,也為在工作流程序中集成用戶具體的應(yīng)用工具提供了機(jī)會。
使用下邊兩個接口中的一個,就可以使工作流機(jī)訪問外部資源:
客戶端應(yīng)用程序接口(The client application interface),通過這個接口工作流機(jī)可以與任務(wù)表處理器交互,代表用戶資源來組織任務(wù)。然后由任務(wù)表處理器負(fù)責(zé),從任務(wù)表中選擇、推進(jìn)任務(wù)項。由任務(wù)表處理器或者終端用戶來控制應(yīng)用工具的活動。
應(yīng)用程序調(diào)用接口(The invoked application interface),允許工作流機(jī)直接激活一個應(yīng)用工具,來執(zhí)行一個活動。典型的是調(diào)用以后臺服務(wù)為主的應(yīng)用程序,沒有用戶接口;當(dāng)執(zhí)行活動要用到的工具,需要與終端用戶交互,通常是使用客戶端應(yīng)用程序接口來調(diào)用那個工具,這樣可以為用戶安排任務(wù)時間表提供更多的靈活性。
在分布式的工作流執(zhí)行服務(wù)器中,每個工作流機(jī)控制過程執(zhí)行的一部分,并與這部分過程中的活動所要用到的用戶、應(yīng)用工具進(jìn)行交互。在分布式的執(zhí)行服務(wù)器中有公共的名稱空間與管理范圍的,從而過程定義、用戶/應(yīng)用程序的名稱在一致的標(biāo)準(zhǔn)下被處理。分布式工作流系統(tǒng),在工作流機(jī)間采用特殊的協(xié)議和信息轉(zhuǎn)換格式,來同步工作流機(jī)的操作、過程交換和活動控制信息。也許工作流相關(guān)數(shù)據(jù)也要在工作流機(jī)間進(jìn)行傳遞。在單一的工作流執(zhí)行服務(wù)器中,這些操作都是由開發(fā)商自己定義的。
在工作流機(jī)間需要一個標(biāo)準(zhǔn)的交換格式,來實現(xiàn)異種產(chǎn)品間的調(diào)用。使用接口4,執(zhí)行服務(wù)器可以把活動或者子過程轉(zhuǎn)移到另外一個(異種)執(zhí)行服務(wù)器中執(zhí)行。在工作流參考模型中,這被稱作“工作流機(jī)交互(Workflow Engine Interchange)”。
2過程和活動狀態(tài)變遷(Process and Activity Transitions)
工作流執(zhí)行服務(wù)可以看作是一個狀態(tài)變遷機(jī)器,過程或者活動的實例在響應(yīng)外部事件、工作流機(jī)負(fù)責(zé)的控制判斷后,其狀態(tài)發(fā)生改變。
下圖描述了過程實例的基本狀態(tài)變遷方案:
在上圖中,發(fā)生狀態(tài)轉(zhuǎn)移(用箭頭表示)來響應(yīng)WAPI的命令;過程定義中的轉(zhuǎn)移條件滿足,也可能發(fā)生狀態(tài)轉(zhuǎn)移。
初始化(Initiated)—過程實例被創(chuàng)建,包括與過程狀態(tài)相關(guān)的日期、工作流相關(guān)數(shù)據(jù),但是過程還沒有滿足條件,不能執(zhí)行。
運(yùn)行(Running)—過程實例已經(jīng)執(zhí)行,過程中的活動如果條件滿足就可以執(zhí)行。
激活(Active)—過程中的一個或者多個活動已經(jīng)被執(zhí)行。
掛起(Suspended)—過程實例被靜止,并且過程中的活動不能執(zhí)行,直到過程返回到運(yùn)行狀態(tài)。
結(jié)束(Completed)— 過程實例滿足結(jié)束條件;所有的完成后操作都將被執(zhí)行(例如記錄日志、或者統(tǒng)計信息),并且銷毀過程實例。
終止(Terminated)— 過程實例在正常結(jié)束前被停止;所有的完成后操作都將被執(zhí)行(例如記錄錯誤信息、或者恢復(fù)數(shù)據(jù)),并且銷毀過程實例。
活動是不能被中斷的,例如工作流執(zhí)行服務(wù)器一旦開始了一個活動,就不能掛起或者終止這個活動。這就意味著,只有在所有運(yùn)行中的活動結(jié)束后,并且過程返回到運(yùn)行狀態(tài),才能對過程執(zhí)行掛起、重啟、終止等命令。另外,可能需要把幾個活動放在一起作為“原子單元”,這些原子單元要執(zhí)行就全部被執(zhí)行完,如果中途出現(xiàn)異常則返回到開始點,重新執(zhí)行??芍袛嗷顒拥奶幚磙k法和原子活動單元的重新啟動能力,需要進(jìn)一步的考慮,這超出了WFMC的初期工作范圍。
忽略那些額外的復(fù)雜事物,活動實例的基本狀態(tài)和轉(zhuǎn)移如下圖:
一個活動的基本狀態(tài)有:
初始化—過程實例中的活動已經(jīng)被創(chuàng)建,但是還沒有激活(例如,活動的進(jìn)入條件沒有滿足),并且沒有任務(wù)需要處理。
激活 —創(chuàng)建好的任務(wù),分配這個活動來處理。
掛起—活動實例被靜止,并直到活動返回到初始化狀態(tài),才能為其分配任務(wù)。
結(jié)束 —活動實例執(zhí)行完成。
當(dāng)然,一個產(chǎn)品也可以實現(xiàn)一些其他的狀態(tài)類型,或者使用不同基本狀態(tài)和轉(zhuǎn)移來代表上圖中的狀態(tài)和轉(zhuǎn)移。參考模型沒有指定工作流系統(tǒng)的內(nèi)部行為,但是狀態(tài)
轉(zhuǎn)移闡明了,API命令集的影響范圍的基本觀點。工作流應(yīng)用編程接口與數(shù)據(jù)交換(Workflow Application programming Interface & Interchange)
WAPI可以被看作是一套由工作流執(zhí)行服務(wù)器支持的API調(diào)用和數(shù)據(jù)交換集合,這個集合在在工作流執(zhí)行服務(wù)器的邊界處,負(fù)責(zé)與其他資源交互。盡管結(jié)構(gòu)中涉及到了WAPI中的5個接口,但是每一個接口中的許多功能都是公共的(即,同時被2個或者多個接口共同擁有)。
WAPI的主要功能由API調(diào)用組成。同時在WFMC也定義了接口間的,數(shù)據(jù)轉(zhuǎn)換格式,例如過程定義。工作流控制,工作流相關(guān)數(shù)據(jù)和工作流應(yīng)用數(shù)據(jù)
工作流執(zhí)行服務(wù)器維護(hù)內(nèi)部控制數(shù)據(jù),來確定過程實例或活動實例的狀態(tài),并支持其他內(nèi)部狀態(tài)信息。這種內(nèi)部控制數(shù)據(jù)不能被訪問,也不能進(jìn)行轉(zhuǎn)換。但是有些信息內(nèi)容是要對外提供的,來響應(yīng)某些特殊操作(例如,查詢過程狀態(tài)等)。同種工作流執(zhí)行服務(wù)器可能在工作流機(jī)間交換這些信息,通過使用具體的內(nèi)部對話。
工作流控制數(shù)據(jù)—由工作流管理系統(tǒng)和(或)工作流機(jī)管理的內(nèi)部數(shù)據(jù)。
工作流管理系統(tǒng)使用工作流相關(guān)數(shù)據(jù)來判斷轉(zhuǎn)移條件是否滿足,并選擇下一個要執(zhí)行的活動。這些數(shù)據(jù)能被工作流應(yīng)用程序訪問,這些數(shù)據(jù)也需要通過工作流執(zhí)行軟件在活動間傳遞。當(dāng)在同種環(huán)境下進(jìn)行操作時,如果過程的執(zhí)行要在2個或者多個工作流中進(jìn)行,那么這些數(shù)據(jù)就要在工作流機(jī)間進(jìn)行傳遞;這個過程可能需要名稱映射
或者數(shù)據(jù)轉(zhuǎn)化。
工作流相關(guān)數(shù)據(jù)—工作流管理系統(tǒng)用來判斷過程中狀態(tài)轉(zhuǎn)移是否可以執(zhí)行的數(shù)據(jù)。過程實例中的每個活動中可能都需要進(jìn)行數(shù)據(jù)操作。因此,工作流模型必須能夠在所有的處理活動間的“情形數(shù)據(jù)”交換。在一些環(huán)境中,可能需要情形數(shù)據(jù)在不同的工具數(shù)據(jù)格式間進(jìn)行轉(zhuǎn)換,例如,把文檔從一種格式轉(zhuǎn)成另外一種格式。(有的系統(tǒng)中,數(shù)據(jù)轉(zhuǎn)換是工作流執(zhí)行服務(wù)器來完成的;有的系統(tǒng)中直接把數(shù)據(jù)轉(zhuǎn)換定義成過程中的一個活動來執(zhí)行)
工作流應(yīng)用程序數(shù)據(jù)—應(yīng)用程序的具體數(shù)據(jù),并且不能被工作流管理系統(tǒng)訪問。
工作流應(yīng)用程序數(shù)據(jù)不能被工作流執(zhí)行軟件所使用,只與應(yīng)用程序或者用戶任務(wù)的執(zhí)行相關(guān)。就像工作流相關(guān)數(shù)據(jù)一樣,在同種執(zhí)行服務(wù)器中應(yīng)用程序數(shù)據(jù)會在工
作流機(jī)間進(jìn)行傳遞,來保證活動的正常執(zhí)行。
應(yīng)用程序與其需要用到的工作流相關(guān)或應(yīng)用程序數(shù)據(jù)間的關(guān)系,會在工作流定義中說明。在一些情況下,可能是隱含關(guān)系(例如,在一些系統(tǒng)中情形數(shù)據(jù)會作為活動導(dǎo)航的一部分,傳遞到下一個活動中),然而在其他情況下(例如訪問共享對象存儲),就需要明確定義對象的名字和應(yīng)用程序的訪問路徑。在參考模型中,把前一種情況
稱為“直接數(shù)據(jù)交換”,后一種稱為“間接數(shù)據(jù)交換”。數(shù)據(jù)交換(Data Interchange)
工作流相關(guān)數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的交換,都需要訪問WAPI,來支持在3個運(yùn)行時期功能中的協(xié)同工作:
? 任務(wù)表處理器(Interface 2)
? 應(yīng)用程序調(diào)用(Interface 3)
? 工作流機(jī)交換(Interface 4)
本節(jié)講述數(shù)據(jù)交換的基本原理;提出了API命令集,包括從工作流機(jī)中接收/返回工作流相關(guān)數(shù)據(jù)的具體調(diào)用;并為直接數(shù)據(jù)交換和間接數(shù)據(jù)交換定義了,與上述
API命令集不同的命令集。
由Email驅(qū)動的工作流系統(tǒng)是一種典型的應(yīng)用程序數(shù)據(jù)的直接交換,這樣的系統(tǒng)中,應(yīng)用程序數(shù)據(jù)物理地在活動間進(jìn)行傳遞。這種情況下,不需要明確定義活動與應(yīng)用程序數(shù)據(jù)間的關(guān)系;應(yīng)用程序數(shù)據(jù)作為標(biāo)準(zhǔn)工作流活動導(dǎo)航的一部分進(jìn)行傳遞,并且在應(yīng)用程序調(diào)用時在本地直接與程序相關(guān)。需要在活動間提供數(shù)據(jù)格式轉(zhuǎn)換時,應(yīng)用程序需要定義與之相關(guān)的數(shù)據(jù)類型,可以作為一個屬性來定義(這個屬性信息可能存放在軟件執(zhí)行環(huán)境中,或者能被整個工作流執(zhí)行服務(wù)器訪問,例如地址目錄)。這樣,使用同種工作流應(yīng)用程序構(gòu)造的系統(tǒng),就能夠根據(jù)每個應(yīng)用程序所定義的數(shù)據(jù)類型進(jìn)行數(shù)據(jù)轉(zhuǎn)換。需要采用一些協(xié)議來傳遞和保存數(shù)據(jù)類型信息,例如使用 X.400 對象標(biāo)識符,或者Internet mail MIME機(jī)制。
一些類型的工作流系統(tǒng)(例如,使用共享文檔存儲實現(xiàn)的),在活動間不能從物理上傳遞應(yīng)用程序數(shù)據(jù)。在這些系統(tǒng)中,應(yīng)用程序要使用適當(dāng)?shù)脑L問路徑才能進(jìn)行數(shù)據(jù)訪問。這樣,必須要有統(tǒng)一的訪問路徑命名方案,必須是有效的訪問權(quán)限,并且由激活的過程實例來控制訪問權(quán)限。在這種情況下,如果需要,在建模時,數(shù)據(jù)格式轉(zhuǎn)換
也可以作為一個活動。
同種系統(tǒng)中可能使用私有的對象命名協(xié)定和訪問權(quán)限,但是異種系統(tǒng)需要一個公共的方案。在異種系統(tǒng)中,在過程定義時必須包含對應(yīng)用程序數(shù)據(jù)對象存儲的訪問
路徑,或者在活動間的導(dǎo)航必須包含訪問路徑的傳遞。
同種工作流產(chǎn)品進(jìn)行協(xié)調(diào)工作,其必須采用相同的應(yīng)用程序數(shù)據(jù)交換方法,或者通過一個網(wǎng)關(guān)機(jī)制進(jìn)行協(xié)作,網(wǎng)關(guān)機(jī)制通過適當(dāng)?shù)膮f(xié)議,可以在兩種不同的數(shù)據(jù)交換方法間進(jìn)行映射,也可以處理對象命名與數(shù)據(jù)類型轉(zhuǎn)換的不同。以后還需要對這部分進(jìn)行細(xì)化,但有可能制定一個交換標(biāo)準(zhǔn),來包含上述的兩種情況。
工作流應(yīng)用程序或相關(guān)數(shù)據(jù)交換的方法,都是通過3個接口來處理的;下邊列出了這3個接口:
客戶端應(yīng)用程序接口—工作流相關(guān)數(shù)據(jù)可以包含在任務(wù)中。工作流相關(guān)數(shù)據(jù)也可以通過共享的對象存儲形式來間接傳遞。
應(yīng)用程序調(diào)用接口—依靠應(yīng)用程序調(diào)用接口進(jìn)行數(shù)據(jù)轉(zhuǎn)換,可能需要在調(diào)用服務(wù)中把數(shù)據(jù)包含在具體應(yīng)用程序協(xié)議中。激活的工作流應(yīng)用程序可以使用,讀/寫工作
流相關(guān)數(shù)據(jù)的API,或者用這些API來構(gòu)造通用應(yīng)用程序代理。
工作流機(jī)協(xié)作接口—與客戶端應(yīng)用程序接口相似,盡管在不同的系統(tǒng)中支持不同的應(yīng)用程序數(shù)據(jù)交換方法,但是網(wǎng)關(guān)功能的使用,需要在兩種方法間進(jìn)行映射,也
要處理名稱問題。
3.3工作流客戶應(yīng)用:
1工作流客戶端應(yīng)用程序(Workflow Client Applications)
任務(wù)表處理器是在需要調(diào)用人類資源的活動時用來與終端用戶進(jìn)行交互的軟件。任務(wù)表處理器可以作為工作流產(chǎn)品的一部分提供給用戶,也可以由用戶自己開發(fā)。在其他情況中,工作流可能要與普通的辦公系統(tǒng)進(jìn)行集成,例如Email,來為終端用戶提供一個統(tǒng)一的任務(wù)管理系統(tǒng)。這就要求在工作流執(zhí)行服務(wù)器與工作流客戶端應(yīng)用程序
間有一個非常靈活的通信機(jī)制,來構(gòu)建各種可能遇到的運(yùn)行系統(tǒng)。在工作流模型中,通過客戶端應(yīng)用程序與工作流機(jī)間的定義良好的接口進(jìn)行交互。在這個接口中包含任務(wù)表—由工作流機(jī)分配給用戶的任務(wù)序列。最簡單的情況是,工作流機(jī)訪問任務(wù)表,來把任務(wù)分配給用戶;任務(wù)表處理器訪問任務(wù)表,向任務(wù)表中添加任務(wù)項。有許多不同的產(chǎn)品來實現(xiàn)任務(wù)表的交互。
任務(wù)表中任務(wù)項的激活(例如,啟動應(yīng)用程序,連接工作流相關(guān)數(shù)據(jù)),可能是由工作流客戶端應(yīng)用程序或者終端用戶控制的。在工作流客戶端應(yīng)用程序與工作流執(zhí)行服務(wù)器間定義了一系列的方法,用來向任務(wù)表中添加任務(wù)項、從任務(wù)表中刪除完成的活動、激活臨時掛起的活動,等。
任務(wù)表處理器也可以調(diào)用應(yīng)用程序,或者直接調(diào)用,或者由終端用戶調(diào)用。通常希望,任務(wù)表處理器的應(yīng)用程序調(diào)用范圍能夠受到運(yùn)行環(huán)境的限制,盡管這樣會給
模型帶來通用性的限制,但這種情況是一直存在的。
與任務(wù)表相關(guān)的部分活動的數(shù)據(jù),是任務(wù)表處理器用來調(diào)用應(yīng)用程序所必須的信息。當(dāng)應(yīng)用程序數(shù)據(jù)是強(qiáng)類型時,在任務(wù)表處理器中要存放一個聯(lián)接,用來實現(xiàn)程序的調(diào)用。在其他情況中,在任務(wù)表處理器與工作流機(jī)間要進(jìn)行完全的應(yīng)用程序名稱和地址信息的交換;這時,工作流客戶端應(yīng)用程序也可能實現(xiàn)一些應(yīng)用程序調(diào)用接口(接
口3)中的功能,來獲得必要的信息。
任務(wù)表中可能要包含一個過程中的幾個不同實例的相關(guān)任務(wù),或者包含幾個不同過程中的一個共同活動項。一個任務(wù)表處理器可能要與幾個不同的工作流機(jī)、幾個不同的工作流執(zhí)行服務(wù)器進(jìn)行交互。(按照每個產(chǎn)品的實現(xiàn),為每個過程單獨(dú)維護(hù)一個物理上分開的任務(wù)表,或者任務(wù)表處理器把幾個不同的任務(wù)表聯(lián)合到一起,呈現(xiàn)給終端
用戶)
因此,客戶端工作流應(yīng)用程序與工作流機(jī)間的接口必須十分靈活,來滿足下邊的幾方面功能的實現(xiàn)多樣性:
? 過程和活動表示符
? 資源名和地址
? 數(shù)據(jù)引用和數(shù)據(jù)結(jié)構(gòu)
? 可選擇的通訊機(jī)制 工作流客戶端應(yīng)用程序接口(接口 2)
滿足上述需求的方法,在標(biāo)準(zhǔn)API集后,可以為從工作流應(yīng)用程序到工作流機(jī)和任務(wù)表的訪問提供一致的形式,而不管產(chǎn)品的實現(xiàn)特性。
API與其參數(shù)可以映射到幾個不同的通信機(jī)制上,來適應(yīng)各種不同的工作流實現(xiàn)模型。
WFMC在其文檔中,分開發(fā)布API規(guī)范;下邊是對客戶端應(yīng)用程序API使用的一個概述,分成幾個不同的功能。提供了對單獨(dú)或者多個過程活動實例的操作命令,就像任務(wù)表一樣。
建立會話(Session Establishment)
? 連接/斷開參與系統(tǒng)間的會話
工作流定義操作(Workflow Definition Operations)
? 對工作流過程定義名稱或者屬性的恢復(fù)/查詢功能
過程控制功能(Process Control Functions)
? 創(chuàng)建/開始/結(jié)束一個過程實例
? 掛起/喚醒一個過程實例
? 在過程實例或活動實例中強(qiáng)制一個狀態(tài)發(fā)生改變
? 查詢過程實例或活動實例的屬性
過程狀態(tài)功能(Process Status Functions)
? 打開/關(guān)閉過程實例或活動實例的查詢,設(shè)置過濾標(biāo)準(zhǔn)
? 獲取過程實例或活動實例的詳細(xì)信息
? 獲取具體過程或活動的詳細(xì)信息
任務(wù)表/任務(wù)項處理功能(Worklist/Workitem Handling Functions)
? 打開/關(guān)閉任務(wù)表查詢,設(shè)置過濾標(biāo)準(zhǔn)
? 獲取任務(wù)表中的項目
? 通知選擇/重分配/結(jié)束一個任務(wù)項
? 查詢?nèi)蝿?wù)項屬性
過程管理功能(Process Supervisory Functions)
? 改變過程定義或者它的實例的運(yùn)行狀態(tài)
? 改變某種類型的所有過程實例或活動實例的狀態(tài)
? 為某種類型的所有過程實例或活動實例的屬性賦值
? 終止所有過程實例
數(shù)據(jù)處理功能(Data Handling Functions)
? 恢復(fù)/返回工作流相關(guān)或應(yīng)用程序數(shù)據(jù)
應(yīng)用程序調(diào)用(Application Invocation)
? 上邊對功能的概括,為支持任務(wù)表處理器對應(yīng)用程序調(diào)用提供了基礎(chǔ)。應(yīng)用程序調(diào)用功能的一些命令是與客戶端應(yīng)用程序環(huán)境相關(guān)的。
? 有些產(chǎn)品可以只實現(xiàn)全部WAPI的一部分;以后會給出進(jìn)一步的考慮,定義一致性級別,來滿足市場中不同的產(chǎn)品間的,不同的協(xié)作需要。
3.4被調(diào)應(yīng)用程序:
1應(yīng)用程序調(diào)用(Invoked Applications)
所有的WFM產(chǎn)品都沒有足夠的邏輯單元,知道如何調(diào)用所有的應(yīng)用程序,這些應(yīng)用程序存在異種的產(chǎn)品環(huán)境中。這就需要,能夠處理在所有平臺下和網(wǎng)絡(luò)環(huán)境中進(jìn)行調(diào)用的邏輯,并需要能使用公共格式和編碼進(jìn)行應(yīng)用數(shù)據(jù)或相關(guān)數(shù)據(jù)傳遞的方法。
然而,許多工作流系統(tǒng)能夠使用了更多受限制的應(yīng)用程序,特別是那些采用強(qiáng)制數(shù)據(jù)類型和直接與應(yīng)用程序相連的系統(tǒng)。在其他情況中,應(yīng)用程序?qū)Σ僮鞯恼{(diào)用,可能是通過標(biāo)準(zhǔn)的交換機(jī)制來實現(xiàn)的,例如OSI TP協(xié)議或者X.400。一些實現(xiàn)使用了“應(yīng)用程序代理(Application Agent)”,把這些在在標(biāo)準(zhǔn)接口之后的各種方法包含在工作流執(zhí)行服務(wù)器中。也有可能開發(fā)“Workflow enabled”應(yīng)用工具,這種工具使用標(biāo)準(zhǔn)的API集來與工作流執(zhí)行服務(wù)器進(jìn)行通信,來接收應(yīng)用程序數(shù)據(jù)、信號和響應(yīng)活動事件等。這些API可以被應(yīng)用工具直接調(diào)用;也可以被應(yīng)用程序代理過過程調(diào)用,作為與其他應(yīng)用程序(不包含任何工作流技術(shù)的程序)交互的前端。應(yīng)用程序調(diào)用接口(接口 3)
下邊是接口3的結(jié)構(gòu),“工作流”類型的應(yīng)用程序或應(yīng)用程序代理,可以直接使用這個結(jié)構(gòu)。
在簡單的情況中,工作流機(jī)在本地處理應(yīng)用程序調(diào)用,使用過程定義中的信息來確定,活動的性質(zhì)、將要調(diào)用的應(yīng)用程序的類型和所需的數(shù)據(jù)。被調(diào)用的應(yīng)用程序可能存儲在工作流機(jī)中,或者與工作流機(jī)一同存儲在相同的平臺下,或者存放在一個獨(dú)立的網(wǎng)絡(luò)訪問的平臺中;過程定義中有足夠的應(yīng)用程序類型和尋址信息(工作流機(jī)的特殊需求),來實現(xiàn)應(yīng)用程序調(diào)用。在這種情況下,應(yīng)用程序命名與尋址的協(xié)定是處于工作流機(jī)與過程定義之間的。
應(yīng)用程序調(diào)用API的詳細(xì)語法、語義作為WFMC規(guī)范的一部分給出。操作覆蓋了一些不同的基本接口,包括上表中的一部分,其中一些操作是同步的,一些是異步的。API的操作可以是單線程的,也可以是多線程的,后者使用活動ID來區(qū)分線程。下邊是應(yīng)用程序調(diào)用可以使用的一些命令概括:
創(chuàng)建會話(Session Establishment)
? 連接/斷開應(yīng)用程序會話
活動管理功能(Activity Management Functions)
? 開始活動
? 掛起/恢復(fù)/放棄活動
? 活動完成通知
? 信號事件
? 查詢活動屬性
數(shù)據(jù)處理功能(Data Handling Functions)
? 提供工作流相關(guān)數(shù)據(jù)
? 提供應(yīng)用程序數(shù)據(jù)或數(shù)據(jù)地址
更復(fù)雜的情況,異種工作流機(jī)間的協(xié)同工作,可能需要在工作流機(jī)間傳遞應(yīng)用程序調(diào)用信息,或者作為運(yùn)行時期數(shù)據(jù)交換的一部分,或者通過在過程定義階段后導(dǎo)
入過程定義來實現(xiàn)。
3.5其他工作流執(zhí)行服務(wù):
WFMC的一個主要目標(biāo)是,為不同開發(fā)商的工作流系統(tǒng)產(chǎn)品,相互間能夠進(jìn)行無逢傳遞任務(wù)項,定義標(biāo)準(zhǔn)。
工作流產(chǎn)品的特性變化多樣。在WFMC的協(xié)同工作標(biāo)準(zhǔn)中,沒有強(qiáng)迫開發(fā)商必須提供一個只面向用戶需求的產(chǎn)品或者只考慮協(xié)同工作。
WFMC把焦點聚集到,開發(fā)多種不同的協(xié)同工作框架,這些框架可以操作一系列標(biāo)準(zhǔn)的協(xié)調(diào)工作,從簡單的任務(wù)傳遞到整個工作流系統(tǒng)的協(xié)同工作(包括過程定義轉(zhuǎn)換、工作流相關(guān)數(shù)據(jù)交換、通用的界面等)。簡單的協(xié)同工作,WFMC的協(xié)同工作定義將在最初就能支持;而復(fù)雜的協(xié)同工作,還需要進(jìn)一步的研究。
盡管可以開發(fā)一個非常復(fù)雜的協(xié)同工作框架,由許多個工作流機(jī)構(gòu)成個執(zhí)行服務(wù)器,但是這種框架不會在近期實現(xiàn),因為這需要所有的工作流機(jī)都可以解釋一個公共的過程定義和共享公共的工作流控制數(shù)據(jù)集,事實上是維護(hù)異種工作流機(jī)間的一個共享過程視圖。現(xiàn)階段更現(xiàn)實的目標(biāo)是,能夠在運(yùn)行時期傳遞過程的某些部分,來支持不
同的執(zhí)行服務(wù)器運(yùn)行。
WFMC定義了4個協(xié)同工作模型:鏈鎖式,子過程嵌套,P2P(Peer-to-Peer),相似同步,包含多種協(xié)同工作能力級別
3.6管理和監(jiān)視工具:
WFMC規(guī)范的最后關(guān)注的是為管理和監(jiān)視功能開發(fā)公共的接口標(biāo)準(zhǔn),這樣一個開發(fā)商的產(chǎn)品就可以用來管理其他工作流機(jī)的運(yùn)行。通過公共的接口,幾個不同的工
作流執(zhí)行服務(wù)器可以共享,管理和監(jiān)視功能。
盡管,過程狀態(tài)命令在接口定義中已經(jīng)描述了,但一致認(rèn)為,在某些行業(yè)中需要,進(jìn)行全部狀態(tài)監(jiān)視和提取信息的功能。WFMC提出的接口,是要讓用戶能夠得到工作流運(yùn)行狀態(tài)的完整視圖,無論是什么樣的工作流系統(tǒng);同時,也希望能提供一套全面的功能集,進(jìn)行系統(tǒng)管理,包括安全性、控制和權(quán)限。
接口中包含WAPI集中的一些具體命令,來操作管理和監(jiān)視功能。另外,進(jìn)一步的討論,期望能夠確定在什么范圍內(nèi),這個接口可以使用現(xiàn)有的協(xié)議(如CMIP、SNMP),來設(shè)置、恢復(fù)管理狀態(tài)和統(tǒng)計信息(定義在開放MIB中——Management Information Base)
“工作流” 已經(jīng)成為了一個事實存在的概念和名詞,可是到了2007年依然找不到?jīng)]有能夠明確的定義,在互連網(wǎng)上,我們隨便在GOOGLE或百度上搜索,找到關(guān)于工作流的內(nèi)容及定義可以說是百家爭鳴,是標(biāo)準(zhǔn)、是引擎、是技術(shù)、解決方案、是思想、是架構(gòu)。。到底是什么?
工作流到底是什么呢,對于從事做計算機(jī)軟件設(shè)計的人而言,它是一項技術(shù)、是我們?yōu)槲覀兊目蛻籼峁┙鉀Q方案框架的一部分;對于從事企業(yè)信息化管理的人而言,它是一種思想,是我們降低用戶的IT運(yùn)維成本的一種方法;對于從事軟件開發(fā)的人而言,它是一個架構(gòu),是我們?nèi)绾卫贸墒旆€(wěn)定的接口和組件低成本的開發(fā)出適應(yīng)用戶流程變化的應(yīng)用程序??偠灾?,工作流通過技術(shù)的手段,融入管理思想、為管理提供“人、事、物、流程、時間、條件”等多維管理能力,幫助用戶實現(xiàn)管理目標(biāo)。
既然今天談的是“工作流”技術(shù),那文章的重點就是占在技術(shù)的角度來討論工作流,我們可以從以下幾個方面來探討工作流。
1、為什么要使用工作流技術(shù)
對于這個問題我們可以從軟件企業(yè)的解決方案策略、用戶運(yùn)維的成本上及企業(yè)信息化規(guī)劃等幾個角度來考慮這個問題。
首先從解決方案提供者的角度來說,我們的CIO/CTO面臨的一個很大的壓力是在于我們?yōu)橛脩籼峁┑慕鉀Q方案滯后于我們的用戶的商業(yè)策略,我們用戶總是在變化中發(fā)展,商業(yè)策略面臨著市場、競爭對手的壓力而改變,而我們提供的解決方案卻不能夠快速適應(yīng)這樣的變化。工作流技術(shù)使這樣的一種解決方案成為可能,同時工作流技術(shù)也為用戶企業(yè)實現(xiàn)企業(yè)戰(zhàn)略執(zhí)行提供了實現(xiàn)的平臺。
從IT運(yùn)維的角度來說,目前很多IT公司面臨了一種CTO(總體擁有成本)成本比例的變化趨勢。因為大部分IT企業(yè)或IT部門的IT基礎(chǔ)架構(gòu)的現(xiàn)狀,使我們用戶運(yùn)行維護(hù)的成本在逐步的升高,研發(fā)新能力的成本在逐步壓縮,但我們的IT投資始終會變緩,特別是IT運(yùn)行維護(hù)的成本在總體擁有成本中的比例。意味著IT企業(yè)和IT部門利益的空間將越來越小,其實我們身邊的很多案例里就有很多IT企業(yè)被某些項目拖累致倒閉的現(xiàn)象。工作流技術(shù)可以脫離開發(fā)環(huán)境而設(shè)計業(yè)務(wù)流程的特性讓企業(yè)IT運(yùn)行維護(hù)成本大大的降低,從而提高了IT企業(yè)和IT部門的利益空間。
從企業(yè)信息規(guī)劃的角度來說,可以回顧前些年的ERP、進(jìn)銷存、CRM等系統(tǒng),大部分是管事的,系統(tǒng)主要是記錄數(shù)據(jù)及其關(guān)聯(lián)關(guān)系等,是靜態(tài)為主的,但隨著社會的發(fā)展與競爭格局的變化,企業(yè)的策略越來越需要能隨需而動,生產(chǎn)管理活動也始終是“人”參與的活動,很多時候人需要激勵、參與、滿足、約束、被管理等等才能很好達(dá)到管理目標(biāo)。因此新一代管理系統(tǒng)中協(xié)同性、靈活性、擴(kuò)展性需求相當(dāng)重要,工作流是提供協(xié)同性、靈活性、擴(kuò)展性的最佳工具。
2、工作流用在哪里
毫五疑問,工作流技術(shù)是軟件技術(shù),用在軟件設(shè)計領(lǐng)域,工作流分為業(yè)務(wù)型工作流和狀態(tài)型工作流,業(yè)務(wù)型工作流大部分是要用在管理軟件設(shè)計領(lǐng)域,為管理軟件提供靈活性、擴(kuò)展性、協(xié)同性等特質(zhì)。幫助企業(yè)實現(xiàn)戰(zhàn)略管理目標(biāo)。
常用的工作流應(yīng)用場景:
企業(yè)辦公自動化系統(tǒng)
IT服務(wù)管理系統(tǒng)
客戶服務(wù)管理系統(tǒng)
物流攬收調(diào)度系統(tǒng)
設(shè)備運(yùn)維管理系統(tǒng)
質(zhì)量考核監(jiān)督系統(tǒng)
采購系統(tǒng)。。
3、如何使用工作流及哪些人使用
很多時候工作流是一個看不見摸不著的東西,存在于我們的業(yè)務(wù)管理系統(tǒng)軟件中,至于如何使用、哪些人使用可以從幾個方面說明。
工作流引擎是系統(tǒng)功能,是軟件本身去使用的,工作流架構(gòu)是包含工作流引擎使用、接口調(diào)用、業(yè)務(wù)系統(tǒng)應(yīng)用框架的,是開發(fā)人員使用的,開發(fā)人員在工作流架構(gòu)上設(shè)計開發(fā)包含工作流技術(shù)的不同業(yè)務(wù)領(lǐng)域的軟件系統(tǒng)。
工作流平臺一般是包含流程設(shè)計工具的,由企業(yè)流程管理用戶去使用,通過工作流平臺提供的流程管理工具將企業(yè)的戰(zhàn)略和制度轉(zhuǎn)化為執(zhí)行語言。
軟件系統(tǒng)普通用戶使用的則僅僅是包含企業(yè)戰(zhàn)略執(zhí)行語言的業(yè)務(wù)管理系統(tǒng)。
4、工作流技術(shù)的選型
關(guān)于工作流技術(shù)的選型,對于從事IT工作的人員來說是一個需要非常慎重選擇,在這里做些簡單的闡述,工作流技術(shù)分為兩種。一種是業(yè)務(wù)流程型的,比如我們的一些事件處理、服務(wù)流程、物流攬收調(diào)度、合同審批、設(shè)計審核等,需要工作流引擎根據(jù)各種表單的內(nèi)容來人機(jī)交互來自動管理這個過程;另一種是狀態(tài)機(jī)型的,根據(jù)一件事情的狀態(tài)變化而自動進(jìn)行處理,如工業(yè)控制,電路控制管理等。常用于一些工業(yè)自動化控制系統(tǒng)等。
我們經(jīng)常聽到有人說工作流引擎可以很快的就配置出一個業(yè)務(wù)系統(tǒng)出來,自定義表單,自定義流程,自定義報表等等,很快就給用戶提供一個完整的業(yè)務(wù)系統(tǒng),其實這樣的想法是非常理想的,我們在開發(fā)我們的業(yè)務(wù)系統(tǒng)的時候我們會發(fā)現(xiàn)我們的業(yè)務(wù)系統(tǒng)不僅僅是功能的實現(xiàn),它將面臨著各個方面的需求,包括性能,并發(fā)處理能力、易用性、一致性及個性化等等,當(dāng)工作流引擎只能滿足60%的需求時,我們的團(tuán)隊將為另外的40%需求付出多少成本。因此在工作流的選型上很重要的一點就是它對于二次開發(fā)的支持,及接口的友好特性,同時它能支持我們在工作流基礎(chǔ)上設(shè)計思路上的延續(xù)性。
因此工作流技術(shù)的選型不但要考慮工作流引擎本身功能的完整性和穩(wěn)定性,工作流架構(gòu)的擴(kuò)展性、易用性及適應(yīng)能力,還需要考慮工作流涉及開發(fā)人員、企業(yè)管理實施人員、企業(yè)用戶的習(xí)慣和易用性等。純粹的工作流的產(chǎn)品意義并不大,關(guān)鍵是否能很好的幫助企業(yè)實現(xiàn)管理目標(biāo)。
5、工作流技術(shù)的應(yīng)用
E8.Net工作流平臺融入了新一代管理軟件關(guān)注的重點思想,所有功能模塊應(yīng)用將權(quán)限體系、工作流引擎體系、表示邏輯體系、管理控制邏輯體系、擴(kuò)展及個性化接口體系充分結(jié)合,從架構(gòu)的設(shè)計上優(yōu)化企業(yè)個性化業(yè)務(wù)系統(tǒng)實施成本,并通過流程管理工具,為企業(yè)實施個性化的企業(yè)流程,通過記錄、監(jiān)督、跟蹤、回訪、分析企業(yè)日常事務(wù),持續(xù)改善企業(yè)管理流程,E8.Net工作流平臺開源的開發(fā)架構(gòu)設(shè)計過程中充分分析了管理行為中人的特性,基于E8開發(fā)的企業(yè)流程應(yīng)用系統(tǒng)提供了事中監(jiān)督、事后回訪、全程跟蹤的體系架構(gòu),E8工作流引擎功能設(shè)計中也充分考慮了流程和環(huán)節(jié)模型特性、環(huán)節(jié)行為人群體特性和中國特色,流轉(zhuǎn)過程中基于權(quán)限體系提供了人為因素中“主動/被動”異常的解決思路,解決快速實施企業(yè)業(yè)務(wù)流程需求的同時,又提供了人性“非理想”狀態(tài)下的異常解決方案和防范控制解決方案。
工作流技術(shù)在協(xié)同辦公中的實現(xiàn)
http://004km.cn 2008年10月28日 17:04 比特網(wǎng)ChinaByte
一、協(xié)同辦公(OA)系統(tǒng)簡介
協(xié)同辦公(OA)系統(tǒng)是一套兼具企業(yè)信息門戶、知識管理、工作流管理、人力資源管理、客戶與合作伙伴管理、項目管理、財務(wù)管理、資產(chǎn)管理功能的協(xié)同商務(wù)平臺,協(xié)同辦公(OA)系統(tǒng)是一個數(shù)字化的企業(yè)應(yīng)用環(huán)境,真正讓公司所有的信息都在一個平臺上管理,解決信息孤島問題。協(xié)同辦公系統(tǒng)本身具有的網(wǎng)狀結(jié)構(gòu),為企業(yè)打通所有的信息節(jié)點,讓企業(yè)管理者輕松穿梭在客戶、員工、文檔等所有的信息節(jié)點上,因為協(xié)同辦公系統(tǒng)為您提供了一張信息網(wǎng),只要您找到這張信息網(wǎng)中的某個節(jié)點,您就可以輕松的以這個節(jié)點為中心把企業(yè)的整個信息網(wǎng)都提取出來。
同時,協(xié)同辦公(OA)系統(tǒng)可以與后臺的ERP軟件集成在一起,將所有利益相關(guān)者、企業(yè)部門、不同應(yīng)用系統(tǒng)的信息整合到統(tǒng)一的渠道,并提供統(tǒng)一的界面給用戶操作和提取信息,從而實現(xiàn)業(yè)務(wù)處理和信息獲取與共享的一體化,達(dá)到內(nèi)部協(xié)同和外部協(xié)同,為每一個用戶提供一個完全的個性化門戶,用戶在這個個性化的門戶中管理日常的所有事務(wù)。
二、工作流管理簡介
由于工作流預(yù)先定義的特性,已設(shè)定的請求可以很容易的遵守相應(yīng)的規(guī)則和實際操作情況。企業(yè)可以確信所有的請求都是根據(jù)規(guī)則和手續(xù)來輸入和批準(zhǔn)的,從而保證企業(yè)運(yùn)作的規(guī)范化和透明化。上海泛微軟件公司的協(xié)同辦公(OA)系統(tǒng)中實現(xiàn)的工作流e-Workflow管理可以對內(nèi)部以及外部業(yè)務(wù)處理采取電子化管理方式管理,工作流管理是提高組織效率的有效工具。
e-Workflow提供強(qiáng)大的自定義功能,支持企業(yè)復(fù)雜的工作流設(shè)置。企業(yè)可對工作流的組成因素包括流程完成需要的階段、每個階段的負(fù)責(zé)人、流轉(zhuǎn)條件,直至相對底層的表單和字段進(jìn)行自定義,使得工作流的定義完全與企業(yè)的政策和實際運(yùn)營相符合,而不必進(jìn)行復(fù)雜的二次開發(fā)。
e-Workflow同時也提供了可定制的瀏覽和報告的功能,用戶可以對工作流的關(guān)鍵信息進(jìn)行任意的定義以獲得特定的報表。e-Workflow的特性可以使用戶獲得非常靈活和豐富的統(tǒng)計報告以對相關(guān)的決策作出支持。
三、工作流管理實現(xiàn)基本功能
1定義任意形式的工作流程
e-Workflow強(qiáng)大的自定義功能可以滿足企業(yè)對復(fù)雜工作流程的定義,包括文檔流程和表單流程e-Workflow 與 e-HRM結(jié)合對于人員在組織結(jié)構(gòu)中的地位和角色將是工作流設(shè)計的基礎(chǔ)。
2工作流執(zhí)行
可設(shè)定的對工作流的執(zhí)行包括提交、批準(zhǔn)、退回、拒絕、代理、重新打開、歸檔等,e-Workflow會根據(jù)路由的判定條件和當(dāng)前節(jié)點的執(zhí)行操作設(shè)置工作流的下一目標(biāo)節(jié)點。
固定流程和自由流程的結(jié)合
原則上是固定流程,應(yīng)該一步步走下去,但是在某個節(jié)點,加入一個自由流程審批人可以選定下一步的審批人,然后再按照預(yù)定的流程走下去。
如:申請者-部門經(jīng)理-出納-財務(wù)經(jīng)理,對于大一點的公司,有多個出納,哪個出納在崗,就讓哪個出納審,那么就可以把出納那步設(shè)成自由流程,當(dāng)部門經(jīng)理審批完后,會自動列出所有的出納,部門經(jīng)理選擇其中的一個出納然后提交。
4表單數(shù)據(jù)自動生成
表單的有些數(shù)據(jù),不希望由人工輸入獲得,e-Workflow可以根據(jù)被計算字段、原始數(shù)據(jù)和計算方法自動得出目標(biāo)字段數(shù)據(jù),并可以此作為下一路由選擇的判斷條件。
5跟蹤和回溯
e-Workflow保留工作流流轉(zhuǎn)過程中的所有信息以供查詢。對于文檔型的審批,可以保持痕跡。這樣審批人能夠一目了然知道原稿和審批稿的區(qū)別。監(jiān)控和管理
對于某個模板產(chǎn)生的單據(jù),可以設(shè)定監(jiān)督人和管理人,這樣既使他沒有審批權(quán),也可以看到該單據(jù),同時發(fā)送催辦信息。當(dāng)某個單據(jù)因為某種原因需要臨時更改流程時,監(jiān)督和管理人可以修改流程,以避免單據(jù)的積壓提高工作效率
7自動提醒
對于請求的不同狀況,例如新的請求到達(dá)、待處理請求、超時未處理請求、客戶聯(lián)系計劃、請求遞交被處理狀況等,系統(tǒng)都設(shè)定了多種提醒功能以確保請求的處理不致延誤。
8流程自動激活
e-Workflow的一個強(qiáng)大之處就是在于它可以讓系統(tǒng)在運(yùn)作的過程中自動觸發(fā)請求,并且還可以根據(jù)前一個請求的實際狀況對下一個觸發(fā)的請求進(jìn)行智能選擇。
9自動更新數(shù)據(jù)庫
e-Workflow在信息流轉(zhuǎn)的過程中,會自動更新系統(tǒng)原有的相關(guān)數(shù)據(jù)庫,這是 e-Workflow 另一個重要的特性體現(xiàn),通過數(shù)據(jù)自動更新,避免了二次手工錄入帶來的工作效率低下和失誤的情況,真正實現(xiàn)企業(yè)管理和運(yùn)營的電子化。
10分支選擇流
根據(jù)上一步的選擇,選擇不同的分支進(jìn)行流程執(zhí)行。如:如果上一步是總經(jīng)理審批的,會選擇一個分支進(jìn)行流轉(zhuǎn)。如上一步是副總審批的選擇另外一個分支進(jìn)行流轉(zhuǎn)。
11條件流轉(zhuǎn)
以請款單為例:金額小于3000元,審批流程是:普通員工-部門經(jīng)理。如果金額大于3000元的審批流程是:普通員工-部門經(jīng)理-總經(jīng)理,那么在流程定義的時候,需要根據(jù)單據(jù)的填寫值進(jìn)行判斷,系統(tǒng)自動選擇流程。
12傳閱、歸檔等的并發(fā)流
如有一個流程:申請者-副總經(jīng)理的一張單子,申請者需要提交副總審批的一張單子,不需要部門經(jīng)理審批,但是需要讓部門經(jīng)理知曉,稱為傳閱的并發(fā)流。同理有歸檔或者其它的并發(fā)流。這種并發(fā)流的特點是一個流程的執(zhí)行過程中,會產(chǎn)生另外的的流程,互不影響。
13流程門戶定義
通過與企業(yè)信息門戶的結(jié)合,e-Workflow實現(xiàn)流程定義的門戶化,根據(jù)不同的信息門戶設(shè)定不同的流程。
四、小結(jié)
工作流技術(shù)的出現(xiàn)和迅速發(fā)展為企業(yè)先進(jìn)制造戰(zhàn)略的實施提供了重要的技術(shù)支持。本文提出了分布式工作流建模工具的設(shè)計框架,以 SOA設(shè)計模式,通過三層結(jié)構(gòu)的方式很好的實現(xiàn)了工作流建模工具、邏輯、數(shù)據(jù)、視圖的分離,使得系統(tǒng)在可擴(kuò)展性、可靠性與實用性方面都大大提高。以此為原型開發(fā)的泛微e-Workflow工作流管理系統(tǒng)很好的配合了工作流引擎的設(shè)計。在實際中的初步應(yīng)用表明該系統(tǒng)通過分析企業(yè)不同類的經(jīng)營過程,采用有向圖的方法對現(xiàn)實的企業(yè)活動進(jìn)行形式化描述,并嚴(yán)格定義組成有向圖的各類元素的行為特征,從而明確建立企業(yè)經(jīng)營過程到工作流模型的映射機(jī)制.使其與企業(yè)現(xiàn)有應(yīng)用結(jié)合形成一個完整的過程體系。責(zé)任編輯:胡艷麗 工作流管理技術(shù)介紹
2009-11-25 作者:葛志春 來源:希賽網(wǎng)
摘 要:本文主要對工作流技術(shù)的起源,工作流的概念,研究的技術(shù)的內(nèi)容及工作流管理系統(tǒng)作了深入的介紹;并對工作流技術(shù)在國內(nèi)外的應(yīng)用現(xiàn)狀及不足作了深入的分析。
關(guān)鍵詞:工作流、表單
1、工作流技術(shù)應(yīng)用背景
傳統(tǒng)的計算機(jī)管理信息系統(tǒng)的主要功能有三個:即信息處理、事務(wù)處理與決策支持。信息傳遞和信息處理構(gòu)成了企業(yè)和行政管理部門的業(yè)務(wù)工作內(nèi)容之一,也是計算機(jī)信息系統(tǒng)的主要功能之一,它是企業(yè)和行政管理部門進(jìn)行事務(wù)處理和決策支持的基礎(chǔ)。
當(dāng)PC機(jī)沒有作為信息處理工具而出現(xiàn)的時候,紙張是進(jìn)行日常業(yè)務(wù)活動不可取代的載體。這種傳統(tǒng)的紙張為載體的信息傳遞與處理方式的效率很低,需要花費(fèi)相當(dāng)?shù)娜肆Α⑽锪硗瓿尚畔⒌奶幚?、組織、存儲以及查詢檢索,同時這種方式降低了對客戶需求的響應(yīng)速度,給企業(yè)和行政管理部門的生產(chǎn)經(jīng)營都帶來了及不利的影響。在計算機(jī)得到了廣泛普及、計算機(jī)應(yīng)用水平日益提高的情況下,企業(yè)與行政管理單位的工作人員希望能夠以一種無紙化的、計算機(jī)使能的工作環(huán)境來開展日常業(yè)務(wù)工作。一些企業(yè)和行政管理部門因此建立了相應(yīng)的文件、表單傳遞系統(tǒng)(Forms-routing applications)用來實現(xiàn)日常表單處理的電子化與自動化。這種簡單的文件、電子表單系統(tǒng)可以看作是工作流應(yīng)用的雛形。
企業(yè)的經(jīng)營過程是由一系列相關(guān)的任務(wù)組成的;這些任務(wù)按照企業(yè)的管理規(guī)章與業(yè)務(wù)流程串行或并行的執(zhí)行,最終完成企業(yè)的經(jīng)營目標(biāo)。自從進(jìn)入工業(yè)化時代以來,有關(guān)過程的組織管理與流程的優(yōu)化工作就一直在進(jìn)行,它是企業(yè)管理的主要研究內(nèi)容之一。只不過在沒有引入計算機(jī)信息系統(tǒng)的支持以前,這些工作是由人工來完成的。隨著市場經(jīng)濟(jì)的發(fā)展,市場競爭的日益激烈,企業(yè)要求其業(yè)務(wù)過程能夠進(jìn)行快速重組;業(yè)務(wù)過程的不斷變化也相應(yīng)要求信息系統(tǒng)能夠快速重組。這樣,單靠人工對企業(yè)過程進(jìn)行重組和傳統(tǒng)的面向功能的信息化計算機(jī)系統(tǒng)已經(jīng)不能適應(yīng)現(xiàn)代企業(yè)的發(fā)展。因此,企業(yè)希望有一種能夠?qū)崿F(xiàn)企業(yè)快速業(yè)務(wù)流程重組和業(yè)務(wù)過程自動化的軟件系統(tǒng)。在計算機(jī)網(wǎng)絡(luò)技術(shù)和分布式數(shù)據(jù)庫技術(shù)迅速發(fā)展、多機(jī)協(xié)同工作技術(shù)日臻成熟的基礎(chǔ)上于20世紀(jì)80年代中期開始提出了工作流的概念。工作流技術(shù)的提出與發(fā)展為企業(yè)更好的實現(xiàn)這些經(jīng)營目標(biāo)提供了先進(jìn)的手段。
隨著經(jīng)營業(yè)務(wù)的展開企業(yè)的物理位置逐漸分散、部門間的協(xié)作日益頻繁;決策過程的分散性也日益明顯,對日常業(yè)務(wù)活動詳細(xì)信息的需求也日益提高。因此,企業(yè)又要求信息系統(tǒng)必須具有分布性、異構(gòu)性、自治性。在這種大規(guī)模的分布式應(yīng)用環(huán)境下高效地運(yùn)轉(zhuǎn)相關(guān)的任務(wù),并且對執(zhí)行的任務(wù)進(jìn)行密切監(jiān)控已成為一種發(fā)展趨勢。在這種技術(shù)背景下,工作流管理系統(tǒng)也有最初的創(chuàng)建無紙化辦公環(huán)境,轉(zhuǎn)而成為同化企業(yè)復(fù)雜信息環(huán)境、實現(xiàn)業(yè)務(wù)流程自動化的必要工具。這樣的一個轉(zhuǎn)變,把工作流技術(shù)帶入了一個嶄新的發(fā)展階段,使得人們從更深的層次、更廣的領(lǐng)域上對工作流展開了研究。
1993年工作流技術(shù)的標(biāo)準(zhǔn)化組織工作流管理聯(lián)盟(Workflow Manangement Coalition 簡稱:WfMC).的成立標(biāo)志著工作流技術(shù)在計算機(jī)應(yīng)用領(lǐng)域之中被明確的劃分出了自己的一席之地,相應(yīng)的概念與術(shù)語也得到了人們的承認(rèn)。在全球范圍內(nèi),對工作流的技術(shù)研究以及相關(guān)的產(chǎn)品開發(fā)了進(jìn)入了更為繁榮的階段。
2、工作流定義
工作流是從英文單詞Workflow翻譯而來的。Work表示工作或任務(wù);Flow則表示流動、流程或者流量。Flow反映了一種變化及變化的過程,本身意義比較抽象,但是當(dāng)它與某一個具體過程相聯(lián)系時就有了具體的含義,如電流、水流、氣流。在經(jīng)營管理與生產(chǎn)組織中Flow也有重要的意義,如表示物料傳輸過程的物料流、表示資金流動的資金流、反映信息處理和傳遞過程的信息流,同樣還有價值流、決策流、控制流等概念。依此,用活動及活動之間變化的過程表示的業(yè)務(wù)流程就是工作流。
十幾年來,不同的研究者和產(chǎn)品供應(yīng)商從不同的角度給出了工作流的定義,但到目前為止,對于工作流仍沒有統(tǒng)一的定義。下面列舉了一些有代表性的定義,可以使我們對工作流的一些基本特征有一定的理解。
WfMC的定義:工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,根據(jù)一系列過程規(guī)則,文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間傳遞、執(zhí)行。
Forrester Report的定義:日常的業(yè)務(wù)處理或協(xié)同工作能按預(yù)先定義好的規(guī)則和過程進(jìn)行流動,并且這一流動過程能被跟蹤和監(jiān)控。
Giga Group的定義:工作流是經(jīng)營過程中可運(yùn)轉(zhuǎn)的部分,包括任務(wù)的順序以及由誰來執(zhí)行它,支持任務(wù)的信息流、評價與控制任務(wù)的跟蹤、報告機(jī)制。
IBM Almaden Research Center的定義:工作流是經(jīng)營過程中的一種計算機(jī)化的表示模型,定義了完成整個過程所需用的各種參數(shù)。這些參數(shù)包括對過程中每一個單獨(dú)步驟的定義、步驟間的執(zhí)行順序、條件以及數(shù)據(jù)流的建立、每一步驟由誰負(fù)責(zé)以及每個活動所需要的應(yīng)用程序。
Amit Sheth 的定義:工作流是涉及到多任務(wù)協(xié)調(diào)執(zhí)行的活動,這些任務(wù)分別由不同的處理實體完成。一項任務(wù)定義了需要做的某些工作,它可以以各種形式來進(jìn)行定義,包括在文件或電子郵件中的文本描述、一張表格、一條信息以及一個計算機(jī)程序。用來執(zhí)行任務(wù)的處理實體可以是人,也可以是計算機(jī)系統(tǒng)(如:郵遞員、一個應(yīng)用程序、一個數(shù)據(jù)庫管理系統(tǒng))。
以上這些定義,雖然表述方式略有不同,但是基本上都說明了這樣一個問題,即工作流是業(yè)務(wù)過程的一個計算機(jī)實現(xiàn),而工作流管理系統(tǒng)則是這一實現(xiàn)的軟件環(huán)境。使用工作流作為業(yè)務(wù)過程的實現(xiàn)技術(shù)首先要求工作流系統(tǒng)能夠反映業(yè)務(wù)過程的如下幾個問題:即業(yè)務(wù)過程是什么(有哪些活動、任務(wù)組成,也就是結(jié)構(gòu)上的定義)、怎么做(活動間的執(zhí)行條件、規(guī)則以及所交互的信息,也就是控制流與信息流的定義)、有誰來做(人或計算機(jī)程序,也就是組織角色的定義)、做的怎樣(通過工作流管理系統(tǒng)對執(zhí)行過程進(jìn)行監(jiān)控)。因此,可以說工作流是一種反映業(yè)務(wù)流程的計算機(jī)化的模型,它是為了在先進(jìn)計算機(jī)環(huán)境支持下實現(xiàn)經(jīng)營過程集成與經(jīng)營過程自動化而建立的可由工作流管理系統(tǒng)執(zhí)行的業(yè)務(wù)系統(tǒng)。
3、工作流技術(shù)研究的主要內(nèi)容
工作流技術(shù),在初期主要由工作流產(chǎn)品供應(yīng)商推動其發(fā)展。隨著工作流產(chǎn)品在實際應(yīng)用中不斷取得良好的效果而得到了人們?nèi)找娴闹匾?,并且到了迅速發(fā)展。相對于工作流產(chǎn)品的繁榮,工作流相關(guān)理論研究則顯得滯后。在過去很長一段時間里,有關(guān)工作流技術(shù)方面的研究主要有商品化的工作流產(chǎn)品供應(yīng)商所領(lǐng)導(dǎo)。本著把工作流產(chǎn)品推向市場的目的,這些供應(yīng)商大多把研究的注意力放在工作流管理產(chǎn)品的開發(fā)實施方面。目前在工作流設(shè)計方法學(xué),工作流概念模型等方面還沒有形成一套比較成熟的理論和方法。在工作流理論與實施技術(shù)方面,研究的主要內(nèi)容包括:
工作流管理系統(tǒng)體系結(jié)構(gòu);
工作流模型與工作流定義語言;
工作流的事務(wù)特性;
研究如何實現(xiàn)高級事務(wù)處理技術(shù)與工作流管理技術(shù)的結(jié)合,用定義良好的模型語義與恢復(fù)機(jī)制來提高工作流系統(tǒng)的正確性與可靠性,從而能夠更好的支持復(fù)雜的業(yè)務(wù)過程;
工作流實現(xiàn)技術(shù):包括面向?qū)ο蠹夹g(shù)、異構(gòu)分布式計算技術(shù)、圖形化用戶界面、消息通信、數(shù)據(jù)庫、WEB等在內(nèi)的與工作流系統(tǒng)的設(shè)計實現(xiàn)有關(guān)的各項技術(shù)及方法;
工作流的仿真與分析方法;
基于工作流的應(yīng)用集成與互操作技術(shù);
研究異構(gòu)應(yīng)用系統(tǒng)的集成以及不同工作流系統(tǒng)之間的互操作問題;
工作流與經(jīng)營過程的重組:研究如何通過工作流系統(tǒng)的實施支持快速的實現(xiàn)經(jīng)營過程重組;
工作流技術(shù)的其他應(yīng)用:研究如何將工作流技術(shù)在不同的領(lǐng)域進(jìn)行運(yùn)用,包括在CIMS中的應(yīng)用。
上述主要研究課題可以歸納為三個方面(如圖1):第一方面是工作流的理論基礎(chǔ),包括工作流管理系統(tǒng)的體系、模型與定義語言(工作流的建模方法、工作流模型的形式化表示、工作流定義語言)等的研究。這一部分是工作目前相對來說比較薄弱,還有許多問題需要進(jìn)一步研究。第二方面是工作流的實現(xiàn)技術(shù),包括工作流的事務(wù)特性、各種先進(jìn)軟件技術(shù)的應(yīng)用、工作流仿真。這方面研究工作的目標(biāo)是提高工作流管理系統(tǒng)的性能,尤其是提高工作流管理系統(tǒng)可靠性及其在處理大規(guī)模復(fù)雜的且具有并行業(yè)務(wù)的流程方面的能力。第三方面是工作流技術(shù)的應(yīng)用,包括工作流實施技術(shù)在不同應(yīng)用領(lǐng)域的應(yīng)用(如在企業(yè)經(jīng)營過程重組、并行過程、敏捷制造)方法、應(yīng)用軟件集成等。這幾方面研究的目標(biāo)是發(fā)揮工作流管理系統(tǒng)的優(yōu)勢,為解決具體應(yīng)用領(lǐng)域內(nèi)的問題提供有向?qū)崿F(xiàn)手段。
圖1:工作流技術(shù)研究內(nèi)容
4、研究工作流的意義
工作流技術(shù)的應(yīng)用將給組織單位帶來巨大的效益。首先,采用工作流管理將使組織單位改變傳統(tǒng)的按照功能來配置人員的組織結(jié)構(gòu),變成按照要實現(xiàn)的主要業(yè)務(wù)流程來配置組織結(jié)構(gòu),這樣可以大大縮短主要業(yè)務(wù)過程的處理時間,提高對市場的響應(yīng)能力。其次,組織結(jié)構(gòu)的改變將大大減少在組織內(nèi)部不必要的的物料、信息的傳遞時間。當(dāng)然,整個組織結(jié)構(gòu)的調(diào)整首先需要調(diào)整傳統(tǒng)的以部門為單位的做法,變成以項目來組織生產(chǎn)和人員的工作方法,如:一個人可能同時從屬于多個項目。應(yīng)用工作流管理系統(tǒng)主要可以取得如下好處:
1)提高管理的規(guī)范化程度;
2)更好地與上下游單位形成快速響應(yīng)市場的供應(yīng)鏈網(wǎng)絡(luò);
3)降低業(yè)務(wù)過程的整個處理時間,如在辦公自動化環(huán)境中,通過更好的規(guī)劃工作流程,并行執(zhí)行相互獨(dú)立的活動,減少文檔的傳遞時間;
4)降低管理成本,如避免不必要的重復(fù)的工作,提高工作人員的工作效率;
5)改進(jìn)工作質(zhì)量,如自動完成某個任務(wù)所需要的相關(guān)信息。在客戶服務(wù)中,能夠快速方便的訪問所有相關(guān)數(shù)據(jù)和工作流程,從而大大提高客戶服務(wù)質(zhì)量;
6)在工作人員之間更好的均衡負(fù)荷,如在工作人員缺勤的情況下,自動柔性分配替代人員;
7)通過在工作流模型中加入可預(yù)計的故障的處理策略來提高系統(tǒng)的柔性;
8)通過對已經(jīng)完成的工作流實例的分析,找出存在的不足,進(jìn)而不斷改進(jìn)工作流程;
9)使工作內(nèi)容更加豐富,并且提高工作人員的業(yè)務(wù)能力,減少工作人員進(jìn)行單調(diào)乏味并且十分耗時的文檔查找工作。
采用工作流管理系統(tǒng)可以在最大程度上集成組織的現(xiàn)有信息資源,實現(xiàn)資源的充分利用。由于工作流管理系統(tǒng)具有較好的柔性和開發(fā)性,因此,可以保證信息系統(tǒng)能夠順利的擴(kuò)展以滿足不斷變化的市場環(huán)境。另外,工作流管理系統(tǒng)在工作流模型的基礎(chǔ)上進(jìn)行業(yè)務(wù)過程進(jìn)行,這就意味著信息系統(tǒng)已經(jīng)從過去沒有一個具體的可量化指標(biāo)的管理信息系統(tǒng),發(fā)展到了一個建立在工作流模型上(并且是可以利用BPR或者其他仿真工具進(jìn)行優(yōu)化后的模型),按照預(yù)先定義好的規(guī)則進(jìn)行執(zhí)行,并且對于執(zhí)行的結(jié)果隨時進(jìn)行監(jiān)控和評價的規(guī)范化階段。這種由過程建?!的P头治觥颠^程優(yōu)化—〉執(zhí)行結(jié)果—〉統(tǒng)計分析—〉改進(jìn)業(yè)務(wù)過程—〉優(yōu)化運(yùn)作的實施方法為成功地實施信息系統(tǒng)奠定了堅實的基礎(chǔ)。
5、工作流管理系統(tǒng)
工作流技術(shù)是當(dāng)今一項飛速發(fā)展的技術(shù),它最基本的特性就是它能夠結(jié)合人工和機(jī)器的行為,特別是能夠與應(yīng)用程序和工具進(jìn)行交互,從而完成業(yè)務(wù)過程的自動化處理。
工作流是業(yè)務(wù)的自動化處理過程,在這個過程中,根據(jù)預(yù)定義的規(guī)則將文檔、信息在過程參與者中傳遞,最終完成業(yè)務(wù)的處理。工作流管理系統(tǒng)(WFMS)是通過管理一序列工作行為以及與活動步驟、相關(guān)人員、資源設(shè)備來提供業(yè)務(wù)處理程序上的自動控制,它是通過計算機(jī)軟件來定義、管理和執(zhí)行工作流,計算機(jī)的執(zhí)行順序是由工作流邏輯的計算機(jī)描述來驅(qū)動的。
工作流管理系統(tǒng)主要具備以下三個功能特征,如圖2:
工作流定義功能,主要是對業(yè)務(wù)處理過程的計算機(jī)定義,提供了一種或多種分析、建模、系統(tǒng)定義技術(shù),將一個現(xiàn)實世界的業(yè)務(wù)處理過程轉(zhuǎn)換成計算機(jī)可處理的定義;最終的定義叫作過程模型、過程模版或過程定義,可以表現(xiàn)為文本、圖形或自然語言符號。
運(yùn)行控制功能,對過程的定義進(jìn)行解釋,創(chuàng)建并控制過程的運(yùn)行實例,調(diào)度過程的各種行為步驟,調(diào)用適當(dāng)?shù)娜斯ず虸T應(yīng)用程序資源;工作流管理系統(tǒng)的核心部件就是工作流管理控制軟件(工作流引擎)。
運(yùn)行交互接口,提供與人員或IT應(yīng)用程序工具進(jìn)行交互接口來處理各種活動步驟,交互接口對于活動間的控制傳遞是必須的,如確定過程的狀態(tài),調(diào)用應(yīng)用程序工具,傳遞應(yīng)用程序數(shù)據(jù)等。
圖2WFMS的三個特征
6、工作流管理系統(tǒng)的分類
根據(jù)所實現(xiàn)的業(yè)務(wù)過程,工作流管理系統(tǒng)可分為四類:
1)管理型工作流(administrative workflow):在這類工作流中活動可以預(yù)定義并且有一套簡單的任務(wù)協(xié)調(diào)規(guī)則,例如,大學(xué)里的課程選修,完成論文后的學(xué)位申請等。
2)設(shè)定型工作流(ad hoc workflow):與管理型工作流相似,但一般用來處理異常或發(fā)生機(jī)會比較小的情況,有時甚至是只出現(xiàn)一次的情況,這與參與的用戶有關(guān)。
3)協(xié)作型工作流(collaborative workflow):參與者和協(xié)作的次數(shù)較多。在一個步驟上可能反復(fù)發(fā)生幾次直到得到某種結(jié)果,甚至可能返回到前一階段。
4)生產(chǎn)型工作流(production workflow):實現(xiàn)重要的業(yè)務(wù)過程的工作流,特別是與業(yè)務(wù)組織的功能直接相關(guān)的工作流。與管理型工作流相比,生產(chǎn)型工作流一般應(yīng)用在大規(guī)模、復(fù)雜的和異構(gòu)的環(huán)境下,整個過程會涉及許多人員和不同的組織。
根據(jù)底層實現(xiàn)技術(shù),可將工作流產(chǎn)品分為三類:
1)以通訊為中心:以電子郵件為底層的通訊機(jī)制。這種類型的工作流管理系統(tǒng)適合于協(xié)作型工作流和不確定型工作流,而不適于生產(chǎn)型工作流。
2)以文檔為中心:基于文檔路由,它同外界應(yīng)用的交互能力有限。許多基于表的管理型工作流可以用以文檔為中心的工作流實現(xiàn)。
3)以過程為中心:這種工作流系統(tǒng)對應(yīng)生產(chǎn)型工作流。它們一般建立在數(shù)據(jù)庫之上,有自己專用的通信機(jī)制并且提供了同外部進(jìn)行交互的接口。
根據(jù)不同工作流系統(tǒng)所采用的任務(wù)項傳遞機(jī)制的不同,市場上的工作流產(chǎn)品又可以劃分為四類:
1)基于文件的工作流系統(tǒng):以共享文件的方式來完成任務(wù)項傳遞。這種類型產(chǎn)品開發(fā)得最早、發(fā)展最成熟、其產(chǎn)品品種較多。代表產(chǎn)品有FileNet的Visual WorkFlo、IBM的FlowMark、InConcert的InConcert。
2)基于消息的工作流系統(tǒng):通過用戶的電子郵件系統(tǒng)來傳遞文檔信息。這種類型的產(chǎn)品一般都提供與一種或多種電子郵件系統(tǒng)的集成接口。代表產(chǎn)品有Novell與FileNet合作開發(fā)的Ensemble、JetForm公司的InTempo、Keyfile公司的Keyflow。
3)基于Web的工作流系統(tǒng):通過WWW來實現(xiàn)任務(wù)的協(xié)作。這一類產(chǎn)品起步較晚(在95年以后),但是發(fā)展迅速,其市場前景十分看好。許多供應(yīng)商紛紛改進(jìn)原有產(chǎn)品或開發(fā)新產(chǎn)品以增加對Web的支持。代表產(chǎn)品有Action Technologies公司的ActionWorks Metro、Ultimus公司的Ultimus。
4)群件與套件系統(tǒng):雖然這一類產(chǎn)品與上面介紹的三種產(chǎn)品在任務(wù)傳遞方式上有很大程度的重疊,但是在這里卻有必要把它們單獨(dú)劃分成一類,因為這一類產(chǎn)品都需要依賴于自己系統(tǒng)的應(yīng)用基礎(chǔ)結(jié)構(gòu),包括消息傳遞、目錄服務(wù)、安全管理、數(shù)據(jù)庫與文檔管理服務(wù)等,它們本身就構(gòu)成了一個完整的應(yīng)用開發(fā)環(huán)境。代表產(chǎn)品有IBM/Lotus公司的Lotus Notes、Microsoft公司的Office與Exchange、Novell公司的GroupWise。
7、工作流管理系統(tǒng)的實施
工作流管理系統(tǒng)不同于ERP和普通的企業(yè)管理信息系統(tǒng),ERP與普通的企業(yè)管理信息系統(tǒng)是事務(wù)處理系統(tǒng),其主要目的是滿足企業(yè)業(yè)務(wù)操作功能,提高企業(yè)事務(wù)處理的效率和水平。從企業(yè)整體的業(yè)務(wù)流程和企業(yè)經(jīng)營目標(biāo)上看,事務(wù)處理系統(tǒng)一般局限于解決某個或者某些領(lǐng)域的問題;事務(wù)處理系統(tǒng)的另外一個局限性是它一般局限于解決組織內(nèi)部的具體操作問題,面向組織內(nèi)部功能,而不是面向市場和面向客戶的系統(tǒng)。工作流管理系統(tǒng)的著眼點是面向市場、面向客戶,其目標(biāo)是在整個企業(yè)的業(yè)務(wù)層提高企業(yè)的業(yè)務(wù)處理水平、強(qiáng)化企業(yè)的市場意識、提高對市場的應(yīng)變能力。
由于工作流管理系統(tǒng)與普通事務(wù)處理系統(tǒng)存在顯著的差別,工作流管理系統(tǒng)在實施方法上也不同于普通的事務(wù)處理系統(tǒng)。要實施工作流管理系統(tǒng)首先要在戰(zhàn)略層次上對經(jīng)營目標(biāo)進(jìn)行分析,確定戰(zhàn)略目標(biāo)和組織要求。工作流管理系統(tǒng)實施的層次結(jié)構(gòu),如圖3。
圖3 WFMS實施的層次結(jié)構(gòu)
在完成了戰(zhàn)略目標(biāo)分析和工作流實施戰(zhàn)略后,工作流管理系統(tǒng)才能夠進(jìn)入真正的實施階段。工作流管理系統(tǒng)在實際系統(tǒng)中的應(yīng)用一般分為3個階段,如圖4,即模型建立階段、模型實例化階段和模型行階段。模型建立階段通過利用工作流建模工具完成經(jīng)營過程模型的建立,將實際經(jīng)營過程轉(zhuǎn)化為計算機(jī)可處理的工作流模型。模型的實例化階段完成為每個過程設(shè)定運(yùn)行所需的參數(shù),并分配每個活動執(zhí)行所需要的資源(包括資源、人員、應(yīng)用)。模型執(zhí)行階段完成經(jīng)營過程的執(zhí)行,在這個過程中重要的任務(wù)是完成人機(jī)交互和應(yīng)用的執(zhí)行,并對過程與活動的執(zhí)行情況進(jìn)行監(jiān)控與跟蹤。
圖4 WFMS 實施的三個步驟
8、國內(nèi)外應(yīng)用現(xiàn)狀與不足
8.1 應(yīng)用現(xiàn)狀
目前工作流技術(shù)的研究正日益受到人們的重視,許多大學(xué)和研究機(jī)構(gòu)都開展了很多研究項目,取得了重多的研究成果,對工作流技術(shù)的發(fā)展做出了貢獻(xiàn)。
由于工作流應(yīng)用環(huán)境大多是在復(fù)雜的分布異構(gòu)環(huán)境中,如企業(yè)內(nèi)部網(wǎng)或因特網(wǎng),因此應(yīng)用最新的分布對象處理技術(shù)和Web技術(shù),實現(xiàn)工作流管理成為當(dāng)前研究的重點。有影響的工作流原型系統(tǒng)有:
1)美國佐治亞大學(xué)研制的Meteor系統(tǒng):該系統(tǒng)是一個支持多范型的工作流管理系統(tǒng),主要用于處理醫(yī)療保健應(yīng)用。多范型是指該系統(tǒng)能夠支持分布異構(gòu)環(huán)境下的企業(yè)內(nèi)和企業(yè)間的各種工作流。這些工作流可以是數(shù)據(jù)庫管理系統(tǒng)和分布式事務(wù)處理系統(tǒng)中的事務(wù),也可以是EDI等特殊應(yīng)用。Meteor系統(tǒng)可以在Web或CORBA環(huán)境下運(yùn)行。
2)美國普度大學(xué)開發(fā)的CORBAflow系統(tǒng):該系統(tǒng)提出了基于CORBA的體系結(jié)構(gòu),支持跨平臺的異構(gòu)分布系統(tǒng)集成,支持彈性ACID性質(zhì);擴(kuò)展了IDL語言以定義事務(wù)性工作流中的補(bǔ)償事務(wù)。
3)土耳其中東大學(xué)開發(fā)的METUFlow系統(tǒng):該系統(tǒng)提出了一種基于CORBA環(huán)境的工作流服務(wù),包括基于ACTA擴(kuò)展事務(wù)模型的工作流模型、塊結(jié)構(gòu)化定義語言、工作流調(diào)度管理和并發(fā)控制機(jī)制等。
工作流的許多概念來自于辦公自動化、文檔管理、計算機(jī)支持協(xié)同工作(CSCW)等領(lǐng)域。至今約有300個稱為工作流工具的商品化軟件,但只有數(shù)十個是真正的WFMS軟件。一些著名的WFMS產(chǎn)品有:
1)IBM公司的FlowMark系統(tǒng)[9]該系統(tǒng)由對象數(shù)據(jù)庫管理系統(tǒng)ObjectStore支持。主要組件包括服務(wù)器、建立客戶器、運(yùn)行客戶器和程序執(zhí)行客戶器。服務(wù)器負(fù)責(zé)與數(shù)據(jù)庫交互及協(xié)調(diào)工作流執(zhí)行;建立客戶器提供用于設(shè)計工作流的圖形接口;運(yùn)行客戶器提供工作表方式的用戶接口;程序執(zhí)行客戶器提供API調(diào)用方式的應(yīng)用接口。
2)Action公司的ActionWorkflow系統(tǒng)該系統(tǒng)由微軟的SQL服務(wù)器或Lotus Notes支持,包含三個基本組件:①管理系統(tǒng)內(nèi)核用于集成和管理工作流事務(wù);②分析器提供設(shè)計工作流的專門工具;③應(yīng)用建立器用于將工作流定義轉(zhuǎn)化成可執(zhí)行的過程。此外,還提供輔助工具,如報表器用于查詢工作流的進(jìn)展?fàn)顟B(tài)。
3)Sigma圖象系統(tǒng)公司的OmniDesk系統(tǒng)它使用提供ODBC接口的數(shù)據(jù)庫。其中,路徑管理器用于工作流管理和負(fù)載平衡;路徑建立器用于定義路徑邏輯;表格建立器用于創(chuàng)建工作流接口。雖然OmniDesk系統(tǒng)主要是為圖象文檔管理設(shè)計的,但是也可以管理其他類型的工作流。
4)Wang公司的OPEN/workflow系統(tǒng)該系統(tǒng)建立在自含的數(shù)據(jù)庫引擎之上。系統(tǒng)分為數(shù)據(jù)庫服務(wù)、圖形過程建立器、集成工具箱、報表工具。數(shù)據(jù)庫服務(wù)提供基本的完整性、安全性、并發(fā)控制、恢復(fù)和管理功能;圖形過程建立器用于定義過程;集成工具箱提供應(yīng)用之間交互需要的API調(diào)用和通信服務(wù);報表工具如查詢建立器和報表建立器用于訪問有關(guān)過程執(zhí)行的信息。
8.2 工作流應(yīng)用技術(shù)的不足
實際上,大多數(shù)產(chǎn)品的開發(fā)由于沒有清楚地理解用戶的需求,而不能滿足用戶的迫切需要。許多工作流系統(tǒng)主要是解決共享和協(xié)作(某些問題仍未很好解決,如異構(gòu)平臺環(huán)境、多媒體數(shù)據(jù)),而像性能、可伸縮性、可靠性對于復(fù)雜應(yīng)用系統(tǒng)來說至關(guān)重要的問題,現(xiàn)有工作流軟件并沒有考慮。主要原因是,這些系統(tǒng)的建立不是基于在線事務(wù)處理(OLTP)技術(shù)和數(shù)據(jù)庫技術(shù),只是使用數(shù)據(jù)庫做底層存儲,因而在這些領(lǐng)域缺乏技術(shù)成熟性和系統(tǒng)健壯性。
另外,由于已有的絕大多數(shù)WFMS產(chǎn)品和原型系統(tǒng)的設(shè)計是面向普通的辦公室應(yīng)用,因此存在以下不足:
1)工作流模型只能描述如辦公自動化中電子郵件或文檔等簡單的工作流,而不能描述工程設(shè)計等復(fù)雜過程處理。
2)經(jīng)營業(yè)務(wù)流程往往是復(fù)雜的異構(gòu)環(huán)境,現(xiàn)有產(chǎn)品不能提供很好的互操作性。例如,在異構(gòu)環(huán)境中,IBM的FlowMark不提供API接口以支持一個工作流的輸出,作為下一個工作流的輸入。
3)一個工作流可能涉及到多個單位和車間,或多個工廠和企業(yè),例如,在虛擬制造應(yīng)用中,可能包含成百上千個用戶,覆蓋廣域網(wǎng)絡(luò)中的數(shù)十個場地,上百臺計算機(jī)系統(tǒng)。大多數(shù)現(xiàn)有工作流軟件只是設(shè)計為一種協(xié)作工具,適用于小群體之間業(yè)務(wù)的工作流,在體系結(jié)構(gòu)上存在缺陷,缺乏可伸縮性。
4)現(xiàn)代組織應(yīng)用要求系統(tǒng)具備非常高的可用性和健壯性。現(xiàn)有工作流軟件只適合于小團(tuán)體和輕負(fù)載,缺乏有效的后備機(jī)制,不具備強(qiáng)的故障恢復(fù)能力。
為了進(jìn)一步研究開發(fā)支持應(yīng)用集成的CIMS工作流管理技術(shù),我們認(rèn)為,需要解決以下關(guān)鍵技術(shù):
1)面向CIMS的工作流建模技術(shù)包括工作流模型和定義語言。如何采用彈性事務(wù)模型、分層事務(wù)模型和工程數(shù)據(jù)模型相結(jié)合的方法,設(shè)計出一種適合于CIMS工程應(yīng)用的工作流模型。
2)基于CIMS信息集成平臺的工作流管理系統(tǒng)體系結(jié)構(gòu)CORBA軟件總線提供了良好的平臺透明性和分布透明性,以及分布對象操作能力,如何充分利用CORBA軟件總線和信息集成平臺,實現(xiàn)一個高效的工作流管理系統(tǒng)。 3)面向分布對象的工作流管理和執(zhí)行技術(shù)CORBA軟件總線系統(tǒng)提供了對象引用、啟動和聯(lián)編機(jī)制。工作流管理與執(zhí)行機(jī)制需在此基礎(chǔ)上完成作為對象任務(wù)的創(chuàng)建、調(diào)度、執(zhí)行、提交或取消,保證工作流的正確性和可靠性。還需要考慮在CORBA軟件總線上增加新的公共服務(wù),如持久性對象倉儲服務(wù)、故障恢復(fù)服務(wù)等。
4)面向CIMS目標(biāo)產(chǎn)品的集成技術(shù)工作流管理系統(tǒng)是一種中間件技術(shù),適合于任何計算機(jī)分布處理系統(tǒng),在CIMS應(yīng)用集成涉及的有關(guān)系統(tǒng)中,如PDM、MRPII等,都需要這方面的集成技術(shù)。
參考文獻(xiàn)
[1] 林惠萍、范玉順、吳澄,“支持企業(yè)經(jīng)營過程重組的工作流仿真技術(shù)研究”,http://www.simflow.net
[2] 范玉順,《工作流管理技術(shù)基礎(chǔ)》,清華大學(xué)出版社,2001.4
[3] 陶冶、范玉順、羅海濱,“分布式工作流系統(tǒng)的可靠性研究”,http://www.simflow.net
[4] 羅海濱、范玉順、吳澄,“工作流技術(shù)綜述”,http://www.simflow.net
[5] 范玉順、吳澄,“基于工作流的CIMS應(yīng)用集成支持系統(tǒng)研究”,http://www.simflow.net
[6] 劉佚名、范玉順,“基于工作流的企業(yè)過程的建模和仿真技術(shù)研究”,http://www.simflow.net
[7] 范玉順、吳澄,“基于協(xié)調(diào)理論的工作流建模方法”,http://www.simflow.net
[8] 陶冶、范玉順、羅海濱,“提高分布式工作流管理系統(tǒng)的可擴(kuò)展性”,http://www.simflow.net
[9] 鮑震寧、范玉順,“企業(yè)組織模型結(jié)構(gòu)和建模方法研究”,http://www.simflow.net
[10] 羅海濱、范玉順、吳澄,“一種面向企業(yè)用戶的工作流模型”,http://www.simflow.net
第五篇:工作流Activiti的學(xué)習(xí)總結(jié)(四)Spring和Activiti的整合配置講解
工作流Activiti的學(xué)習(xí)總結(jié)
(四)Spring和Activiti的整合配置講解
Spring和Activiti的整合:
在Spring和Activiti的整合中ProcessEngineFactoryBean成為了兩者的整合點。ProcessEngineFactoryBean為org.activiti.spring.ProcessEngineFactoryBean。提供了ProcessEngine的配置和創(chuàng)建的功能。
id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”> ...
name=“processEngineConfiguration”ref=“processEngineConfiguration”/>
如果在包含事物的activiti配置如下:
xmlns:context=“http://004km.cn/schema/context” xmlns:tx=“http://004km.cn/schema/tx” xmlns:xsi=“http://004km.cn/2001/XMLSchema-instance” xsi:schemaLocation=“http://004km.cn/schema/beans http://004km.cn/schema/beans/spring-beans.xsd http://004km.cn/schema/context http://004km.cn/schema/context/spring-context-2.5.xsd http://004km.cn/schema/tx http://004km.cn/schema/tx/spring-tx-3.0.xsd”> id=“dataSource”class=“org.springframework.jdbc.datasource.SimpleDriverDataSource”> id=“transactionManager”class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”> id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”> name=“processEngineConfiguration”ref=“processEngineConfiguration”/> id=“repositoryService”factory-bean=“processEngine”factory-method=“getRepositoryService”/> id=“runtimeService”factory-bean=“processEngine”factory-method=“getRuntimeService”/> id=“taskService”factory-bean=“processEngine”factory-method=“getTaskService”/> id=“historyService”factory-bean=“processEngine”factory-method=“getHistoryService”/> id=“managementService”factory-bean=“processEngine”factory-method=“getManagementService”/> id=“IdentityService”factory-bean=“processEngine”factory-method=“getIdentityService”/> ...工作流中Expressions的使用 在使用spring的SpringProcessEngineConfiguration時,如果沒有beans屬性表示所有bean都可以暴露給activiti的流程文件xml訪問。如果配置beans但是沒有配置map中bean信息,則沒有暴露的bean。如果map中配置部分bean表示只是暴露部分bean給activiti使用。 id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”> ... 暴露的bean可以在activiti的流程xml中使用。如下調(diào)用bean的方法 public class Printer { public void printMessage(){ System.out.println(“hello world”); } } 自動資源部署(Automatic resource deploy) id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”> ...name=“deploymentResources”value=“classpath*:/org/activiti/spring/test/autodeployment/autodeploy.*.bpmn20.xml”/> name=“processEngineConfiguration”ref=“processEngineConfiguration”/> Spring和activit的整合測試 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(“classpath:org/activiti/spring/test/junit4/springTypicalUsageTest-context.xml”) public class MyBusinessProcessTest { @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; @Autowired @Rule public ActivitiRule activitiSpringRule; @Test @Deployment public void simpleProcessTest(){ runtimeService.startProcessInstanceByKey(“simpleProcess”); Task task = taskService.createTaskQuery().singleResult(); assertEquals(“My Task”, task.getName()); taskService.complete(task.getId()); assertEquals(0, runtimeService.createProcessInstanceQuery().count());} } 當(dāng)在spring的配置中配置ActivitiRule時候,測試bean將自動被注入: < /bean>