程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> 工作流標准組織( WFMC )

工作流標准組織( WFMC )

編輯:Python
工作流標准組織( WFMC )是在1993年成立,這是由多家公司聯合成立的國際標准組織。

  有許多軟件廠商提供各自的工作流軟件產品,而且新的產品也不斷湧現,用戶有很大的選擇余地,但是如果沒有可遵循的行業標准,就會使這些產品之間存在巨大差異,導致這些產品之間不能協同工作,成為一個個信息的"孤島"。

  在這種背景下,工作流管理聯盟(WfMC)於1993年成立了,這是由多家公司聯合成立的國際標准組織,其目的是通過制定工作流技術及其標准,提高不同工作流產品之間的連通性和協同工作能力。通過使用標准可以使不同的產品之間協同工作,也可以改善工作流產品與其他IT服務(電子郵件、文檔管理)之間的集成。

  該組織由三個委員會組成,分別是技術委員會、對外關系委員會和籌劃指導委員會,WfMC目前有270多個成員組織,遍布世界各地。經過該組織的不懈努力,工作流標准的制定和推廣工作進展得非常迅速,目前,多數工作流產品的生產廠商已經在產品中遵循了全部和部分標准。

一、概述
  企業在進行業務處理時,政府在進行公文審批時,都是以流程形式而進行的,在信息化的過程中,企業、政府也將這些業務處理、公文審批的過程信息化了,早期通常是通過程序硬編碼的方式來處理這些業務、公文的流轉,隨著業務、公文的復雜的處理情況不斷出現以及需求的不斷變更,這種硬編碼的方式顯然已無法應對,這個時候工作流管理系統應運而生,掀起了一股工作流管理系統的熱潮。

  那麼到底工作流管理系統能夠帶來什麼好處?工作流管理系統通過對業務、公文流轉進行分析以及抽象,將不變和變化的部分進行劃分,用戶可輕松的通過可視化的工具對事項的流程、流程環節涉及的人員(角色)、流程環節的表單、流程環節的操作進行修改,從而到達了應對不斷變化的需求的目的,而工作流管理系統通常提供的流程監控、查詢統計模塊更是極大程度的為用戶優化流程提供支持,以提高企業、政府的工作效率。

  本文主要描述工作流管理系統通常的結構、參考模型以及通常使用的調度算法。

二、構成

  工作流管理系統,簡稱WFMS,經過對業務、公文流轉過程的分析以及抽象,工作流管理系統圍繞業務交互邏輯、業務處理邏輯以及參與者三個問題進行解決,業務交互邏輯對應的為業務的流轉過程,在工作流管理系統中對應的提出了工作流引擎、工作流設計器、流程操作來解決業務交互邏輯的問題,業務處理邏輯對應業務流轉過程中的表單、文檔等的處理,在工作流管理系統中對應的提出了表單設計器、與表單的集成來解決業務處理邏輯的問題,參與者對應到的為流轉過程中環節對應的人或程序,在工作流管理系統中通過與應用程序的集成來解決參與者的問題。

  工作流管理系統為方便業務交互邏輯、業務處理邏輯以及參與者的修改,多數通過提供可視化的流程設計器以及表單設計器來實現,為實現工作流管理系統的擴展性,多數提供了一系列的API。

  一個完整的工作流管理系統通常由工作流引擎、工作流設計器、流程操作、工作流客戶端程序、流程監控、表單設計器、與表單的集成以及與應用程序的集成八個部分組成。

2.1. 工作流引擎

  工作流引擎作為工作流管理系統的核心部分,主要提供了對於工作流定義的解析以及流程流轉的支持。工作流定義文件描述了業務的交互邏輯,工作流引擎通過解析此工作流定義文件按照業務的交互邏輯進行業務的流轉,工作流引擎通常通過參考某種模型來進行設計,通過調度算法來進行流程的流轉(流程的啟動、終止、掛起、恢復等),通過各種環節調度算法(SPLIT、AND、OR等)來實現對於環節的流轉(環節的合並、分叉、選擇、條件性的選擇等)。

2.2. 工作流設計器

  工作流設計器為可視化的流程設計工具,用戶通過拖放等方式來繪制流程,並通過對於環節的配置來實現環節操作、環節表單、環節參與者的配置。

  工作流設計器為用戶以及開發商提供了快速繪制、修改流程的方式,工作流設計器的好壞決定到工作流管理系統的易用性。

2.3. 流程操作

  流程操作指所支持的對於流程環節的操作,如啟動流程、終止流程、掛起流程、直流、分流(單人辦理)、並流(多人同時辦理)、聯審等,象這些流程操作都是可直接基於引擎所提供的環節調度算法來直接支持的,而在實際的需求中,通常需要自由的對於流程進行干涉,如取回、回退、跳轉、追加、傳閱、傳閱辦理等,而這些流程操作對於工作流引擎來說是不合理的,因此必須單獨的去實現。

  流程操作支持的好壞直接決定到一個工作流管理系統的實用性。

2.4. 工作流客戶端程序

  工作流客戶端程序為工作流系統的表現形式,通常使用Web方式進行展現,通過提供待辦列表、已辦列表、執行流程操作、查看流程歷史信息等來展現工作流系統的功能。

2.5. 流程監控

  流程監控通過提供圖形化的方式來對流程執行過程進行監控,包括流程運轉狀況,每個環節所耗費的時間等等,而通過這些可相應的進行流程的優化,以提高工作效率。

2.6. 表單設計器

  表單設計器為可視化的表單設計工具,用戶通過拖放的方式來繪制業務所需的表單,並可相應的進行表單數據的綁定。

  表單設計器為客戶以及開發商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統的易用性。

2.7. 與表單的集成

  通常業務流轉需要表單來表達實際的業務,因此需要與表單進行集成來實現業務意義,與表單的集成通常包括表單數據的自動獲取、存儲、修改,表單域的權限控制、流程相關數據的維護以及流程環節表單的綁定。

  與表單的集成的好壞影響到工作流管理系統是否能提高開發效率。

2.8. 與應用程序的集成

  通過與應用程序的集成來完善工作流管理系統的業務意義,主要涉及到的是與權限系統以及組織機構的集成。流程環節需要相應的綁定不同的執行角色,而流程操作通常需要與權限系統、組織機構進行關聯。

三、參考模型

  工作流系統通常通過參考一些標准的模型來進行設計,主要的有WFMC和OMG,在這裡主要介紹一下WFMC。

3.1. WFMC

  WFMC是國際工作流管理聯盟,它於1993年成立,發布了一系列的工作流定義、軟件接口的草案文本,是目前世界上公認的最具權威性的工作流標准制定機構,得到了廣泛的支持和應用。

  2002年10月25日,WFMC發布了基於XML的流程定義語言1.0版的最終文本(Workflow Process Definition Interface----XML Process Definition Language 文檔編號:WFMC-TC-1025),以及此前發布的工作流應用軟件接口規范WFMC-TC-1009, WFMC-TC-1013等系列文件,構成了工作流定義及系統的設計標准。

  為了實現不同工作流產品之間的互操作,WfMC在工作流管理系統的相關術語、體系結構及應用編程接口等方面制定了一系列標准。工作流管理聯盟給出的工作流定義是:工作流是指整個或部分經營過程在計算機支持下的全自動或半自動化。在實際情況中可以更廣泛地把凡是由計算機軟件系統(工作流管理系統)控制其執行的過程都稱為工作流。

  一個工作流包括一組活動及它們的相互順序關系,還包括過程及活動的啟動和終止條件,以及對每個活動的描述。工作流管理系統指運行在一個或多個工作流引擎上用於定義、實現和管理工作流運行的一套軟件系統,它與工作流執行者(人、應用)交互,推進工作流實例的執行,並監控工作流的運行狀態。

  WFMC主要提出了五個接口與工作流執行服務一起共同組成了工作流系統:

  • 接口1(工作流定義交換),用於在建模和定義工具與執行服務之間交換工作流定義。主要是數據交換格式和API。數據交換通過XPDL,API通過WAPI。
  • 接口2(工作流客戶端應用接口),用於工作流客戶端應用訪問工作流引擎和工作列表,通過WAPI完成。
  • 接口3(被調用的應用接口),用於調用不同的應用系統。
  • 接口4(工作流系統互操作接口),用於不同工作流系統之間的互操作。
  • 接口5(系統管理和監控),用於系統管理應用訪問工作流執行服務。

四、核心調度算法

  通常流程引擎采用的核心調度算法主要有FSM以及PetriNet兩種,基於調度算法來完成流程的流轉。

4.1. FSM(有限狀態機)

  FSM的定義為包含一組狀態集(states)、一個起始狀態(start state)、一組輸入符號集(alphabet)、一個映射輸入符號和當前狀態到下一狀態的轉換函數(transition function)的計算模型。當輸入符號串,模型隨即進入起始狀態。它要改變到新的狀態,依賴於轉換函數。在有限狀態機中,會有有許多變量,例如,狀態機有很多與動作(actions)轉換(Mealy機)或狀態(摩爾機)關聯的動作,多重起始狀態,基於沒有輸入符號的轉換,或者指定符號和狀態(非定有限狀態機)的多個轉換,指派給接收狀態(識別者)的一個或多個狀態,等等。

  遵循FSM流程引擎通過狀態的切換來完成流程的流轉。

4.2. PetriNet

  信息流的一個抽象的、形式的模型。指出一系統的靜態和動態性質。petrinet通常表示成圖。圖中有兩類用弧彼此相連的結點(稱為地點和變換)和指示其動態性能的標記(稱為記號)。

  遵循PetriNet流程引擎通過令牌來決定流程的流轉。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved