前記
OSWORKFLOW因其極大的靈活性而在工作流程系統中獨樹一幟。這段時間以來看到越來越多的人開始關注它,甚至出現了遷移到.net的工作流程系統,對於.net程式員來說,這是一個十分可喜的現象。我也是OSWORKFLOW的初學者,在這裡將把看到的關於OSWORKFLOW的文章登入出來,或者做一些串連或轉貼。自己所寫的文字大都翻譯於OSWORKFLOW的英文文檔,介於英語水平有限且對工作流程瞭解不深,可能會出現很多錯誤,請發現者指正,並與廣大初學者共勉。
OSWORKFLOW的簡介
不管是在商業上,還是在開源世界中,OSWorkflow都與其他的工作流程系統有很大的不同。什麼使OSWorkflow如此不同呢?那就是它非常的靈活。然而,這一開始比較難於掌握。例如,OSWorkflow不要求使用圖形工具來開發工作流程,推薦的方法是手工寫xml形式的工作流程描述符。像現有的代碼和資料庫一樣,提供這種一體化的東西是應用開發人員的責任。這對那些尋找隨插即用的工作流程解決方案的人來說可能是個問題,但是我們發現,在一個成熟的應用中,這樣的解決方案從不能提供足夠的靈活性來適應所有的需求。
OSWorkflow給了你這樣的靈活性
OSWorkflow可以被稱為是一個“低層”的工作流程執行機。像在其他工作流程系統中可以用表徵圖表示的“迴圈(loops)”、“條件(conditions)”這樣的情形,在OSWorkflow中都必須“編代碼”。這並不是說需要實際的代碼來實現這些情形,但是需要一種指令碼來具體說明這些條件(conditions)。我們不希望非技術人員來修改工作流程。我們發現,雖然一些系統提供供簡單編輯工作流程的圖形化使用者介面,但當作了這樣的改動的時候,工作流程的應用程式環境通常遭到顯著的破壞。我們相信,由一位能夠意識到各種改變的開發人員來做這些改動是最好的。曾經說過,最新版本將提供一個協助編輯工作流程的圖形設計工具。
OSWorkflow完全基於有限狀態機器(finite state machine)的概念。每一個state(狀態)都使用一個step ID(步驟ID)和一個status(狀態)共同描述。如果事先沒有一個action(動作)發生,一個state不能變遷到另一個state。在一個工作流程的生命週期中,至少有一個或以上的active states存在。這些簡單的概念正是OSWorkflow engine的核心所展現出來的,並可以把一個簡單的xml檔案轉變成事務工作流程進程(business workflow processes)。