程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Fire Workflow源碼分析——(基本組成)(3)

Fire Workflow源碼分析——(基本組成)(3)

編輯:關於JAVA

好像分析的順序錯了,應該是先分析流程定義的基本元素好一些,今天就給大家展示一下Fire Workflow的org.fireflow.model.net包。

首先看一下整體類圖:

由圖很顯而易見,Node分為兩大類,Synchronizer和Activity,其中前者又可以分為EndNode和 StartNode。邊Edge兩端關聯兩個Node。Loop和Transition繼承自Edge。由於Fire Workflow是基於Petri 網理論的,Transition也就是Petri net 中的變遷。Fire Workflow在基本Petri網基礎上將處所節點 (Place)給擴展了(雖然當前的流程元素定義還不夠完善,這也是下一步要做的事情)。下面簡要展示 一下每一部分的內容。

Node:工作流網的節點。繼承抽象類AbstractWFElement(見上文)。其第二個構造函數也是調用了基 類的方法。

Activity:繼承自Node,大大豐富了節點的內容,和我們通常認為的工作網中的Activity類似。

Synchronizer:同步器,相當於路由,可以理解為Petri net中的or-split,and-split,or-join, and-join,主要處理分支和會聚。

enteringTransitions:輸入轉移的列表。

leavingTransitions:輸出轉移的列表。

enteringLoops:輸入循環的列表。

leavingLoops:輸出循環的列表。和enteringLoops一起配合Loop來進行循環操作。

StartNode:開始節點,繼承自Synchronizer。每個流程有且只有一個開始節點。

EndNode:結束節點,繼承自Synchronizer。每個流程有且只有一個結束節點。

Edge:工作網中的邊,也就是弧。

fromNode:轉移(或者循環)的源節點。轉移的源節點可以是StartNode、 Activity或者Synchronizer 。循環的源節點必須是Synchronizer或者EndNode,同時循環的目標節點必須是循環源節點的前驅。

toNode:轉移(或者循環)的目標節點。轉移的終止目標可以是EndNode、 Activity或者Synchronizer 。循環的目標節點必須是Synchronizer或者StartNode。

condition:轉移(或者循環)的啟動條件。

Transition:流程轉移。繼承自Edge。目前沒有擴展。

Loop:循環。繼承自Edge。目前也沒什麼擴展。

可以看出,Fire Workflow的工作流網模型已經能滿足基本的流程設計需要,關於Fire Workflow對於 各種工作流模式的實現可以參看非也寫的《Fire Workflow工作流原理、設計與應用》,國內已經有多個 使用案例了,本人正做翻譯方面的工作,打算向國外社區發布Fire Workflow,把Fire推向世界,如有興 趣加入的可以聯系我。

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