第四章 系統介紹
4.3 系統實作
<exceptionhandler/>
<body>
<activity>
<exception>SayService not complete, say is fail <exception>
……
</activity>
</body>
</processdef>
由於所有的工作都是自我滿足的,且完整的紀錄下來。所以可以透過流程管理介 的概念,但是省略了複雜繁瑣的部分以利我們發展與測試。Web Service 透過 Socket 收到 Xml 即可以依 Xml 的內容去執行相關的動作,並將結果以 Xml 回傳 給呼叫的對象。為了達到抽象的整合方式 BioOrch 對網路服務定義不同的 Type,
對 BioOrch 來說擁有相同 Type 的網路服務就會支援相同的操作,而關於 Type 的資訊與服務服務的發布我們使用 Domain 來記錄,使用者可以透過 Domain 來 找到符合需求的網路服務。雖然這樣的架構不是標準的 Web Service,但是也可 以很容易的與 Web Service 整合起來,因為流程的核心並沒有牽涉到底層傳輸的 部分,如下圖所示。
BioOrch Flow Layer
VOS Service Layer
Xml Message Layer
Socket Transform Layout
圖表 10、BioOrch Stack
在流程核心中主要包含了幾個部份:定義管理者、流程管理者、流程引擎、
人員管理者等。由於流程除了一開始使用到流程定義外,執行時都不需要流程定 義的參與,因為相關的定義都已經紀錄在流程裡了,而管理定義的網路服務我們 稱之為 Definition Manager(DM)。Definition Manager 使的流程管理者能專注在流 程本身。而流程定義的部分也有專責的網路服務處理。在流程管理的部份都交由 流程管理者負責,流程管理者對外提供流程服務,對內則提供流程的管理以及維 護流程的狀態。流程管理者收到流程起始的訊息後,會使用流程定義起始一個新 的流程,此流程會包含所有流程定義的內容,並加入一些流程需要紀錄的資訊如 流程的識別碼、流程的狀態與流程的屬性等,之後交由流程引擎處理。流程管理 者除了會將流程的資訊保留下來外,對於流程所包含的工作也會另外保存下來。
由於我們定義的流程與工作可以使用 Xml 序列化,所以我們可以透過將流程與 工作序列化後存在檔案系統內,並於流程更新時,一併更新檔案系統。來達到流 程狀態的保存。
系統核心部份的流程引擎(Flow Engine)也是一個 Task Processor,負責協助 Task 執行其內容。在我們的實作中使用另一個網路服務我們稱為 Dispatcher(DP) 來負責實際工作的執行。 Dispatcher 本身也是一個 Task Processor,所以也會分
派與回傳。使用如此的設計可將 workflow 的執行和實際的工作執行抽離,避免 底層的動作影響到正常環境的運行。下圖說明工作如何在流程管理者、流程引擎 與分配者之間傳遞。
圖表 11 工作傳遞示意圖
另一個主要的 Task Processor 是人員管理者,負責管理人員資訊 ,記錄人員 相關 Task 的資訊 ,協助參與者執行工作..等。如流程與工作一般,人員(User) 也可以用 Xml 序列化,將及存於檔案系統中。User 除了紀錄使用者的資訊外還 包含使用者需要執行的工作紀錄,使用者管理收到工作時會判斷此工作屬於哪一 個使用者或群組。在將工作交由該使用者執行
除了網路服務的部份,我們還開發了一些圖形化的工具,協助使用者完成工 作。BioOrch 的使用者介面是架構於一個整合性的工作平台,我們稱之為 Explorer。Explorer 類似一個 Container 可以依照實際的需要加入不同的工具。在 Explorer 中,工具可以定義彼此之間要如何的互動。在這裡主要包含三種工具:
流程定義工具、流程管理工具與使用者執行工具。流程定義工具主要是提供使用 者友善的視窗介面,並將流程以圖形化的方式呈現。使用者可以透過滑鼠的拖曳 或是填入一些參數來完成流程定義的設計。整個工具包含四個部分,如下圖所 示。位於左邊的流程定義瀏覽器列出了所有可執行的流程定義。透過流程定義瀏 覽器使用者可以新增流程定義、起始流程、刪除流程定義與重新整理瀏覽器。位 於中間的流程定義圖將流程以圖型的方式呈現,配合右邊的工作屬性表與下方的 文字定義區塊,讓使用者可以很容易且快速的設計流程。
圖表 12 流程定義工具
流程管理工具提供使用者監控與管理系統內執行的流程。如下圖所示,位於左邊 的流程瀏覽器列出了所有的流程。使用者可以透過流程瀏覽器新增流程、暫停流 程、恢復流程與刪除流程。位於右邊的區塊則將流程資訊顯示出來,包含流程的 屬性表、流程的狀態圖、流程 Xml 顯示,與流程的輸入輸出。
圖表 13、流程管理工具
使用者執行工具可以協助使用者完成工作的執行,如下圖所示。使用者執行工具 從 User Manager 得到使用者需執行的所有工作,並將所有工作列於使用者工作 列表。在執行工具的右邊則包含了工作的內容與工作的流程圖。使用者透過工作
列表可以開啟相關工具來完成工作,而這些工具與工作的連結是事先定義在使用 者執行工具裡的。當工作完成後,會將工作結果傳會去 User Manager,並更新使 用者的工作列表。
圖表 14、使用者執行工具