工作流簡介:
§工作流是業務流程的全部或部分自動化,在此過程中,文檔、信息或任務按照一定的過程規則流轉,實現組織成員間的協同工作,以達到業務的整體目標。
§工作流治理系統是支持企業經營過程高效執行并監控其執行過程的計算機軟件系統。
§典型的WFMS至少由如下幾個模塊組成:業務流程建模定義工具、過程定義、工作流執行環境(引擎)、任務治理。當然還會包括應用和IT工具。
§目前開源工作流項目眾多(shark、osworkflow、jbpm、ofbiz、werkflow、willow……)
§規范問題
工作流參考模型(參見WMFC):
OSWorkflow簡介:
§所有相關的osworkflow的文檔大家可以到http://wiki.opensymphony.com/space/OSWorkflow處得到
§Osworkflow與目前絕大多數的工作流系統是不同的,而最大的不同點體現在它的韌性上和靈活程度上 。osworkflow所提供的解決方案能夠提供足夠的靈活度來滿足一個大型各種應用的所有需求。
§OSWorkflow是只是一個workflow engine的內核體。我們都說osworkflow非常的易擴展,但是這也同樣說明了,用osworkflow去實現一個能夠運行的工作流系統是非常繁瑣的事情。
§Osworkflow 的api部分將會支持jdk1.3+
§工作流的持久存儲(memorystore(默認)自帶的例子就是如此,SerializableStore,JDBCStore,ofbizstore,和EJBStore. )另外還可以自己實現。
§工作流定義部分(核心)通過osworkflow自帶例子理解
主要是osworkflow.xml 、workflows.xml以及***.xml文件
osworkflow核心概念:
§OSWorkflow是基于FSM(finite state machine,有限狀態機)理論
§理解state,理解doAction。
§一個state到另一個state的轉移(Transtion),依靠于action的發生。在一個workflow的生命周期中,總會存在至少一個或多個state:這就是osworkflow engine的最核心理念。和我們通常所理解的Engine并不是很一樣 ,在一個訪問請求中,一個Workfow對象負責維護一個流程實例的治理和操作。
核心名詞概念解釋:
§step,status,actions ,result,join,split,Functions ,Validators,Registers,Conditions
§Common and global actions
§Unconditional Result 和conditional Result
§PRe function、post function和Trigger Functions
§Validators (不符合條件,拋InvalidInputException)
§TransientVars和PropertySet
§Register
§Permissions and Restrictions
§Auto actions
§Workflow Instance State(CREATED, ACTIVATED, SUSPENDED, KILLED 和 COMPLETED)
§step,status,actions ,result,join,split,Functions ,Validators,Registers,Conditions
§Common and global actions
§Unconditional Result 和conditional Result
§pre function、post function和Trigger Functions
§Validators (不符合條件,拋InvalidInputException)
§TransientVars和PropertySet
§Register
§Permissions and Restrictions
§Auto actions
§Workflow Instance State(CREATED, ACTIVATED, SUSPENDED, KILLED 和 COMPLETED)
核心概念圖見銀狐blog
osworkflow的GUI:
§Osworkflow在2.5.0版本就開始支持圖形操作(designer),2.6.0和2.7.0做了許多改進。打算在3.0中正式推出。所以現在在使用GUI操作時候還是需要進行一些適當的預防手段的。
§可以把osworkflow看做一個低層次的工作流實現。在其他工作流系統中像loops和conditions這樣的情況可以以圖形圖標形式展現出來,在osworkflow中必須進行編碼。就是說最起碼的腳本語言必須來如此設定。所以并不希望非技術人員來修改工作流。盡管一些系統提供了GUI操作來完成簡單的工作流編輯,但是這種做法并不是十全十美的,如當這樣改變流程后,此工作流周邊的應用往往被破壞。所以osworkflow始終認為最好的變更控制辦法就是以開發人員(前提:熟知每個變化)來做這些操作。
可以把osworkflow看做一個低層次的工作流實現。在其他工作流系統中像loops和conditions這樣的情況可以以圖形圖標形式展現出來,在osworkflow中必須進行編碼。就是說最起碼的腳本語言必須來如此設定。所以并不希望非技術人員來修改工作流。盡管一些系統提供了GUI操作來完成簡單的工作流編輯,但是這種做法并不是十全十美的,如當這樣改變流程后,此工作流周邊的應用往往被破壞。所以osworkflow始終認為最好的變更控制辦法就是以開發人員(前提:熟知每個變化)來做這些操作。
新聞熱點
疑難解答