之前做了一個簡單的工作流引擎,干完了活做點理論總結。
項目見
工作流應用---理論基礎篇、
工作流應用---概念、模型這個工作流引擎主要是根據項目需求和網上看到的一些文章提到的概念做出來的,估計比較野路子,想著把概念和名詞向大師靠攏。
過了年剛來不忙,這幾天抽空看了兩本工作流方面的書,《工作流管理技術基礎》和《工作流管理:模型、方法和系統》,講的比較細致、對基礎概念講的很清楚,就是書老了點。
書中對XPDL標準做了詳細描述,對新出的BPEL沒有涉及。
我自己項目中用到的概念和大師們基本一致,大方向不錯,看來網上找到的那幾篇文章挺靠譜的,當時應該隨手整理出來。
工作流引擎做的比較簡單,沒有使用主流的petri技術,只支持項目需求更負責的需求就夠嗆了,回頭有空再改一版。看了書才發現有這么多種模型實現方法早都有人研究很多年了。
這兩本書在超星網站都能找到電子版。
IPO模型,過程中的每一個活動都由輸入(I)、處理(P)、輸出(O)三部分組成。
理論來自《科學管理》提出的科學管理原則:
一個組織的工作可以描述為一系列的任務,每個任務都是工人們具體、嚴謹的活動過程,管理就是在一定的計劃下讓這些任務以最優的方式進行。
常用的工作流模型:
1.基于活動網絡的過程模型
組成模型的元素包括過程、活動、模塊、控制連接弧、數據連接弧和條件。
以活動作為構成過程的基本單元,以連接弧體現過程邏輯,可以靈活的實現企業經營過程的建模,我做的那個基本上采用的就是這種模型。
過程:為完成目標而定義的一系列步驟;
活動:過程中的步驟;
模塊:跟過程的概念類似;區別在于是否可以多次重復使用
控制鏈接弧:定義兩個活動間的執行順序
數據連接弧:定義兩個活動間的信息流
條件:定義過程執行中的約束
定義在控制連接弧上的條件:轉移條件
活動可以執行和活動被執行:開始條件、結束條件。
優點:
從系統分析的角度來看,有利于通過過程模型提取功能視圖和信息視圖、便于深入分析
從系統實現的角度來看,控制流管理和數據流管理分離,是不同性質的流管理獨立。
2.事件驅動的過程鏈模型
兼顧模型描述能力強和模型易讀兩個方面。
業務事件、業務功能、控制流、邏輯操作符、信息對象、組織單元
3.基于語言行為理論的工作流模型
IPO模型對于觀察信息和物流的流動過程比較合適,但不利于不同角色間的委托和承擔行為。
語言行為理論則側重與解決,數據、物、人協作中IPO模型對人直接協作描述不足的情況。
聽上去不錯,實際中沒有看到用這種模型的,google了一下相關資料,還只是一個理論在軟件領域用來進行協作過程建模的很少。
簡單了解一下先,等大師們研究明白了咱再學習。
4.基于petri網的工作流模型
這個東西看著挺復雜的,不過好多人都說是好東西,研究一下先。
找了兩本有關petri的書,都太理論化看不懂。還是《工作流管理:模型、方法和系統》講得比較通俗。
petri基本概念很好理解,不同于過程化分析,更接近面向對象的思想。看起來我在這個項目中采用的分析方法更接近與petri,原來俺們樸素的想法跟大師很接近哦。
一般的面向對象分析更側重與靜態結構,在動態模型部分描述的都不夠清楚。petri在動態過程方面感覺很細致有效。據說還是經過嚴格熟悉驗證的分析方法,不過那些公式沒看懂,太費勁。分析時用petri分析建模方法就可以了。
.....