2009年2月19日 星期四

T20 Component Flow對應的Flow Engine

根據Component設計準則產出的元件,Flow裡就只有流程與呼叫的動作名稱,流程與動作兩個元素正是組成流程圖(或Activity Diagram)的內容。根據這個概念,就有可能製作一個工具,匯入流程圖檔案後依據設定執行,並根據動作的傳回結果分歧到不同的動作步驟。

依流程圖的概念,將流程圖對應匯入到一個Flow Model,每一個動作對應為一個Action Node。定義Start Node指向一個開始的Start Node,還需要Switch Node(或合併在Action Node)根據前一個動作的結果分歧到不同的Action Node,最後走到End Node時再把結果傳出去。

Action Node會需要呼叫時的參數,可能是固定的值也可能是前面執行某動作的結果,需要再定義一個宣告與存放資訊的內部機制,讓同一個流程圖內任何一個地方都可以存取到之前曾經執行到的狀況。這個機制裡存放資訊的物件應繼承自ModelAbstract,如此一來就能讓所有與Model相關的Component都可以操作它。

曾經看過國外某家作主機系統的公司,採用Microsoft Visio製作執行流程圖再用Flow Engine解析運行,雖然繪製與修改流程圖要花很多時間,每個節點只能在執行後立即判斷結果來分歧運行,但是這樣直覺式的設計卻是一種進步。想像有各種不同語言平台的Flow Engine的情境,只要繪製一組流程就有跨平台的效果;或者用特定規則撰寫的文字(通常是XML),也可以轉換為流程執以達成快速開發的效果,這正是時下許多Framework所採用的作法。

沒有留言:

張貼留言