資源描述:
《web工作流管理系統(tǒng)開發(fā)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、web工作流管理系統(tǒng)開發(fā)web工作流管理系統(tǒng)開發(fā)之一工作流概念?????曾經在2001年做CRM產品的時候,因為CRM產品的客戶狀態(tài)升遷,每個具體用戶的升遷規(guī)則可能會不一樣,技術主管說要集成一個工作流軟件工具......,那是我第一次聽說工作流。當時很不理解,這工作流軟件如何能做到將業(yè)務流程定義進去呢?當然,那時候工作流軟件工具還不成熟和完善,也或者我們也沒有達到那個層次,后來終究還是沒有用上工作流。??????工作流軟件,顧名思義,就是業(yè)務信息數據在多個環(huán)節(jié)模塊之間的流轉。按照工作流管理聯盟的定義,工作流指的是“業(yè)務過程的部分
2、或全部在計算機應用環(huán)境下的自動化”。在實際應用過程中,為了實現對業(yè)務過程的工作流管理,需要對業(yè)務流程及其各個步驟之間業(yè)務規(guī)則的抽象,概括,做成一個統(tǒng)一通用的流程管理軟件系統(tǒng),這種軟件系統(tǒng)就是工作流管理系統(tǒng)。???????????工作流管理系統(tǒng)的主要功能是通過計算機技術的支持去定義、執(zhí)行和管理工作流,協調工作流執(zhí)行過程工作之間以及群體成員之間的信息交互。工作流管理系統(tǒng)將業(yè)務流程中工作如何組織協調在一起的規(guī)則抽象出來,從而分離了具體工作的邏輯和流程組織的邏輯。實現對業(yè)務過程的抽象建模、業(yè)務過程仿真分析、業(yè)務過程優(yōu)化、業(yè)務過程管理與集
3、成。從而最終實現業(yè)務過程的流程自動化管理。???開發(fā)人員或者流程的應用人員遵從工作流管理系統(tǒng)的規(guī)則或約定,設計和實現具體的業(yè)務流程。??工作流系統(tǒng)結構圖:????????????????天藍色藍色:軟件構件,完成工作流管理系統(tǒng)不同組成部分功能的實現;??黃色:系統(tǒng)控制數據,工作流管理系統(tǒng)中的一個或多個軟件構件使用的數據;???棕色:應用與應用數據,對于工作流管理系統(tǒng)來說,它們不是工作流管理系統(tǒng)的組成部分,而是屬于外部系統(tǒng)和數據,它們被工作流系統(tǒng)調用來完成整個和部分工作流管理的功能。????web工作流管理系統(tǒng)主要功能:???業(yè)務
4、流程建模;???參與的用戶,權限,角色設計;???工作流測試運行;???業(yè)務表單模塊的建立;???流程發(fā)布運行;???流程管理和監(jiān)控;???流程出錯后的修復。?????????通常開發(fā)一個工作流管理系統(tǒng)主要包含如下幾個部分:?????????工作流引擎開發(fā)?????工作流定義工具???自定義表單模塊???流程管理和監(jiān)控?????????工作流引擎:?主要是實現業(yè)務流程的規(guī)則抽象,模型的建立,解釋,以及為流程實例提供運行環(huán)境,并解釋執(zhí)行流程實例。??????工作流定義工具:主要是實現工作流的描述文件的定義和建立,通過可視化的方式把
5、復雜的流程定義以圖形化的方式顯示出來,并加以操作。????自定義模塊:主要指自定義表單,實現業(yè)務模塊的工具。???流程管理和監(jiān)控:主要指組織機構、角色,流程實例等數據的維護管理和流程執(zhí)行情況的監(jiān)控;???工作流引擎,主要是實現業(yè)務流程的規(guī)則抽象,模型的建立,解釋,以及為流程實例提供運行環(huán)境,并解釋執(zhí)行流程實例。?????工作流引擎必須要包含一個工作流模型的設計,工作流模型就是對業(yè)務流程抽象的一個模型,是整個工作流引擎的基礎。所以模型設計的好壞決定引擎的功能是否靈活,也決定了工作流管理系統(tǒng)從設計實現到運行實施等諸多環(huán)節(jié)。? 在信
6、息管理自動化的環(huán)境下,工作流模型必須采用簡單、直觀、又具有較強描述能力的模型。我們公司的自定義工作流系統(tǒng)采用了有限狀態(tài)機的數學模型來實現工作流模型,有限狀態(tài)機(FSM)又稱為有限狀態(tài)自動機或簡稱狀態(tài)機,是表示有限個狀態(tài)以及這些狀態(tài)之間的轉移和動作等行為的數學模型。狀態(tài)轉換圖:???上圖左數第一個圖:為初始狀態(tài),用粗線圈表示;????????????????????????????SX,S0,S01,S011,S0110為狀態(tài)名稱???????????????????????????U=0表示處于該狀態(tài)的輸入???????????
7、?????????????????連線箭頭上的0或1表示導入狀態(tài)轉換時的輸入??????工作流模型正是利用這種狀態(tài)和動作,動作的結果導致狀態(tài)的轉移來達到流程的流轉。??????工作流引擎的每一種狀態(tài)(state)被描述成為一個步驟(step)和步驟的狀態(tài)(status)。工作流實例從一種狀態(tài)(state)升遷到另外一種狀態(tài)是通過執(zhí)行動作(action)來達到的,動作的結果(result)導向另外一種狀態(tài)(state),這樣達到流程的流轉。在一個工作流實例的生命周期內通常有一個或者多個活動的狀態(tài)(state)。這些簡單的思想表現在
8、工作流引擎的核心包里面,并且通過一個簡單的XML文件來描述業(yè)務工作流程。??一個簡單的流程描述xml文件是這樣的:上圖xml流程的圖解狀態(tài)過程如下:開始節(jié)點-》初始化動作--》步驟節(jié)點-》動作節(jié)點--》結束工作流引擎的基本元素:步驟(step)???一個step