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