第三章 設計理念
3.4 階層式封裝元件
圖 18: 階層式軟體開發架構
在未來的環境裡,智能家電裝置的發展會隨著人們環境的需求而日漸成長,配合著家電 裝置所產生出的即時反應系統也會越來越被重視,這些由開發者設計出的即時反應系統,
預期將不單單只使用在單一家電裝置內,而是可以與多項家電裝置整合,形成更多功能 的系統。在設計或整合一套系統的運作流程時,所有的設計都是在具有人性化拖曳及圖 形化介面的WF技術平台上開發,若是這些設計開發的過程中,配合著軟體開發方式一 起進行,將使得開發過程更加的快速,階層式封裝即是為此目的而使用在本架構中。圖 18可以看出在一個系統的運作流程內,對於環境、即時反應系統、裝置與流程活動之間 的階層關係,環境(Environment)內擁有且整合多個即時反應系統,而每個系統可以整合 多個裝置(Device)或服務,裝置內的工作流程再以階層式活動(Activity)完成。本架構封 裝共可分為活動元件階層、工作流程元件階層以及元件模組封裝:
3.4.1 活動元件階層封裝
活動元件(Activity)是WF技術中的最小元件,由多個功能性的活動元件組成一個系統的 流程,這些活動元件在WF技術中可透過客製化活動(Custom Activity)的功能來完成,我 們以一個系統運作流程所需要的功能來將這些活動做階層式的分類,每個活動都有其特 定的功能,從最低層直接控制裝置的活動,中層具有即時反應功能的活動,到高層描述 多個裝置彼此互相溝通的活動元件,這些活動元件的發展使得設計運作流程更具有彈性
[圖 19]。接下來將介紹這些活動元件的內容:
圖 19: 活動元件階層式封裝架構
裝置功能活動(Device Activity):裝置功能活動在一個運作流程中屬於最低層的活動。
活動中的標準程式碼活動(Code Activity),將 UPnP 控制點(Control Point)操控裝置所 提供功能的程式碼封裝在其中,對於運作流程要操縱家電裝置的功能,是絕對不可 少的活動。這樣的活動並沒有包含任何的自動化功能,使用者將直接給予動作和變 數來操控 UPnP 裝置。
運作流程活動(Operation Activity):是操控一個智能家電裝置的主要運作流程。此活 動為了與 UPnP 裝置做溝通,需加入欲操控的裝置功能活動。也會實作運作流程,
根據從外部環境接收到的數值判斷接下來欲進行的活動,在將判斷的數值交給已封 裝完成的裝置功能活動,來完成運作流程活動。
多裝置整合活動(Multi-Device Activity):智能家電裝置在智能環境中,其實並不是 以一個獨立的個體出現,環境中的各項裝置對於彼此是會互相影響的,如對於空調 裝置來說,燈光裝置的亮度會影響到室內溫度,而再影響到一個家中的睡眠系統。
將多個已封裝的運作流程活動加入在同一活動內,再透過控制流程將它們整合後封 裝,最高層的多裝置整合活動即完成。圖 19為感測器裝置和燈光控制器裝置形成
的一個多裝置整合活動的例子。
演算法活動:在運作流程中,會有許多的控制流程的決定會經過複雜的演算法來計 算,而這些複雜的演算法可能因為不同的裝置或不同的開發者而會更動,演算法活 動即產生。與低層裝置功能活動相同,演算法活動將以程式碼活動(Code Activity) 做為核心,將複雜的演算法計算封裝在內,再給開發者在設計運作流程時加入使用,
當演算法改變的時候,抽換演算法活動也將會更容易且快速。
3.4.2 工作流程元件階層封裝
工作流程元件也具有階層式封裝,對於架構中所擁有的Workflow,通用可分為三階層[圖 20],在封裝架構中都有各自的功能特色以及彼此之間階層式運用:
圖 20: 工作流程階層式封裝架構
運作工作流程(Operation Workflow):即為3.2.3.2的元件模組,在階層式封裝過程中,
是屬於最低層的元件,其內容即為前一節的整體活動元件,開發者在設計開發系統 流程時,可整合多個封裝活動元件完成工作流程。
服務工作流程(Service Workflow):為3.2.3.1的模組,加入了自動偵測裝置進入的功 能以及可以呼叫原先低層的運作工作流程。在工作流程元件階層中,服務工作流程 是一個最完整系統流程,完整的從自動在網路上取得裝置加入,到開始進行即時反
應流程,所以此部份的封裝是系統中不可或缺的。
環境工作流程(Environment Workflow):環境工作流程是系統中最上層的工作流程,
管理了智能環境裡所有的即時反應系統的啟動與終止。服務工作流程則是在此流程 中加入或移除的目標元件。
3.4.3 模組元件封裝
當開發者要整合已開發的系統擴展形成一個新的系統時,模組元件的加入絕對是不可少 的,除了前述在 WF 技術中加入的服務工作流程及運作工作流程之外,其他必要的模組 元件或其功能也要進行封裝且一同加入,以下則是欲封裝的模組元件:
控制點模組啟動:控制點模組是在WF技術中啟動的,我們將控制點模組的啟動機 制封裝成一個活動元件[圖 21],提供各開發者更快的在Workflow中加入此模組的啟 動機制。
圖 21: 活動—控制點啟動封裝
事件處理模組:在啟動工作流程執行引擎(WF Runtime Engine)之前,就要將欲執行 的即時反應系統的事件處理模組加入到引擎內,而事件處理模組需要是有一個完整 的封裝才能更方便的使用[表 4]。執行引擎可以加入不只一個事件處理模組。
表 4: 程式碼—加入事件處理模組機制
ExternalDataExchangeService exchangeService = new ExternalDataExchangeService();
workflowRuntime.AddService(exchangeService);
exchangeService.AddService(StaticObject.SLocalService);
調控介面模組:若是以 Windows Form 產生出來的調控介面模組,其被封裝的控制 項元件,可與其他的控制項元件進行擴充與整合,做成更大的使用者介面。
這些模組或變數名稱在各自的即時反應系統中都可以任意命名,也就是說,雖然命名的 名稱相同,但是根據命名空間(Namespace)可以分辨出是屬於哪個即時反應系統,封裝成 函式庫加入到新的設計時,是不會混淆的。