第三章 研究方法
第一節 系統架構
本整合系統之目的為提供各模組所需的資料,並整合其處理結果,因此我們 以儲存庫模型(如圖三-1)作為系統架構的基礎。在此架構之下,各系統間無須了 解其他資料的產生方式,亦無需關心自己所產生的資料將如何被利用,大大簡化 了各系統在開發上的麻煩。
圖三-1 儲存庫模型示意圖
而對於系統的控制方式,則有集中式及以事件為主的兩種控制方式,兩種方 式各有其優缺點。若採用集中式控制(如圖三-2),以我們的系統而言,最大的問 題在於將全盤由整合系統進行控制,如之前所提出的,一旦有子系統需要進行修 改,或是要加入新的子系統。整合系統勢必要進行對應的修改,才能配合各子系 統的增修。而這種方式與我們的系統目標恰恰相反。
圖三-2 集中式控制方式示意圖
而若採用以事件為主的控制方式(如圖三-3),亦即將控制權交到各子系統之 中,整合系統則只提供資料的控管。如此一來,即便有任何子系統的增修,整合 系統亦無需變動,即可滿足需求。
若採用以事件為主的控制方式,其資料傳輸的流程如圖三-4所示。相較於集 中式的控制方式,其資料傳輸多了一個索取資料的步驟。若包含在單一程式內,
這個動作可能僅僅是一個函數的呼叫,並不會對系統的效能造成多大的影響。但 若分散於兩支程式上,甚至這兩支程式可能分別運行於兩台不同的機器上,則此 動作將變為跨程式的訊息傳遞,其所造成的額外負擔勢必對整個系統的效能造成 影響。
圖三-4 資料傳輸流程示意圖
因此,為了兼顧彈性與效能,我們將各單一的子系統化分為兩大區塊,其中 一個區塊負責的是該子系統的控制,包含執行的時間點、頻率以及跟整合系統的 溝通工作等。
另一個區塊則主要有三大類型,第一類為向特定的對象取得資料,像影像擷
核心層主要提供資料的控管,也正是透過資料控管的獨立,使得我們的系統 架構具備應對各子系統增修的彈性。其中,資料控制模組是所有資料儲存的地 方,而為了避免資料的錯誤存取與資料的同步化,我們建立了資料存取程模組一 來對儲存於資料控制模組的資料進行存取。同時,對於存在於整合系統外部的控 制模組,我們提供了訊息分析模組,以便這些外部的控制模組透過訊息傳遞的方 式進行資料存取。
我們將原先各子系統中關於運行流程的相關部分獨立出來,成為了系統層中 的控制模組。對於控制模組我們又提供了兩種實作方式,第一種將其實作於整合 系統的程式內,而透過此實作方式的控制模組我們將其統稱為內部控制模組群。
以此種方式進行實作的話,我們可將圖三-4中的索取資料動作化為點單的函數呼 叫,增加系統的運作效率。
在我們的系統結構中,亦允許將控制模組獨立於整合系統之外,此種方式提 供了其他合作開發者自行建立控制模組的可能性。因此,各子系統不論如何增 修,由於核心層的資料不會變動,因此不論是整合系統抑或是其他的子系統皆無 須修改即可照常執行。
。
原先各子系統之方法核心獨立出來後便成為應用層中的各個應用模組,這些 應用模組依據其功能主要可分為三大類。最普遍的功能為針對邏輯模組所給予的 資料進行處理,再將這些結果傳回給整合系統,以便其他子系統能加以利用。
第二類則是影像擷取,像是與攝影機的溝通,圖像或影片檔的解碼皆屬於此 類,主要是針對各種不同的原始資料來源,擷取資料後,將其傳入整合系統中讓 其他子系統進行使用。透過這種方式,其他子系統的開發者無須明白各種不同型 號的攝影機該如何進行操作,又或是不同的資料格是該如何解碼。
第三類則是使用者介面,將透過使用者介面邏輯模組所提供的資料,以特定 方式,如文字、圖像…等的方式進行呈現。透過這樣的方式,可將所有結果呈現 於單一的畫面上,有助於使用者觀看系統結果。
於此種架構下,我們可針對已知的子系統設計對應的內部控制模組以減少部 分的訊息傳輸負荷。同時,對於子系統增修,亦可新增對應的外部控制模組,如 此即可避免整合系統的變動。亦可於整合系統改版時,將這些外部控制模組修改 為內部控制模組以增進效能。透過此種設計,系統即可同時兼顧效能與彈性。