技術 (Radio-frequency Identification)、無線感知網路 (Wireless Sensor Network)
、 嵌 入 式 技 術 (Embedded Intelligence)、奈 米 與 微 機 電 技 術 (Nanotechnology
and Micro Electro Mechanical Systems),以及成本不斷降低的發展之下,現今
Internet of Things 在實務上已經有了不少應用,例如在物流、倉儲系統的管理
應用上 [1],可以提升物流處理中各個流程以及倉儲貨物的監控效率,減少運作
上的成本;或者是在居家安全的監控上,透過各種感測器,監控住家環境,包括
電路 [2]、溫度等等,並採取相對應的措施,以防範災害的發生;在醫療上,也
有透過裝設在病患身上的感測器,即時監控病患生理上的各項數值,並回傳到負
責的醫療機構做分析等應用 [3]、[4],;在農業生產及銷售上,也有結合環境感測
的智慧型耕作系統 [5]、產銷履歷 [6] 的記載等應用;交通方面也有利用道路的監
控,智能交通號誌、分享交通資訊至各種交通工具上,達到改善交通狀況、提升
交通安全的目標 [7]、[8];在工業的安全上,也有利用小型感測器監控大型機具
的運作狀態,以降低機器故障時所帶來的危害等應用 [9]。
1.2 動機
隨著各式各樣在 Internet of Things 的新型應用不斷的開發下,伴隨而來
的問題是,因為 Things 的異質性 (heterogeneous) 過高,不同的裝置要被使用
在同一個應用上時,在通訊上的整合、操作指令上的傳遞都必須要被考慮進
去,造成開發上的困難。因此,目前在 IoT 整體的發展上,出現了許多關於
IoT Middleware 的研究,想要嘗試設計一個 Middleware 來簡化 IoT 應用程式
及服務的開發過程。[10] 中提到 IoT Middleware 應該是一個被放置在應用程
式端與實體的設備中間的一個抽象層 (abstract layer),目的是隱藏底層技術上
的細節、協助應用程式開發者專注於應用面的開發。在 [11] 中則提到了目前
在設計 IoT Middleware 的研究中所遭遇到的、待解決的問題,如互相操作性
(Interoperability)、延 展 性 (Scalability)、 硬 體 抽 象 化 (Abstraction Provision)、
自 發 性 的 交 互 動 作 (Spontaneous Interaction)、 不 固 定 的 基 礎 設 施 (Unfixed
Infrastructure)、通訊上的多樣性 (Multiplicity) 以及安全和隱私 (Security and
Privacy) 等。
目前在各種 IoT Middleware 的發展上尚未有統一的標準,不同的設計能
解決的問題範圍也不同。而現行的研究中,大部分都是從整合底層通訊的角度
出發來做 Middleware 的設計,如 [12] 提出一個基於 CoAP 協定的 Middleware,
使其掛載在每一個 IOT 的節點上,將每一個節點提供的服務視為一個資源,
透 過 RESTful web services 的 概 念 來 做 資 源 的 管 理 及 操 作,[13] 中 提 出 一 個
雙 gateway 的架構,分別處理底層裝置間的通訊以及與上層應用程式間的互
動,[14] 提出一個 SOA-based 的 Middleware,透過 Agent layer 來轉換各種無法
溝通的通訊協定,使其能溝通,[15] 提出將 XMPP 帶進 IoT 的通訊中可以搭起
異質裝置間的橋樑、免去使用 gateway 或類似角色的麻煩,[16] 則闡述在 IoT
的通訊中使用 XMPP 可以對安全性帶來多少提升,[17] 則是在 E-Health 實務中
將 XMPP-based 與 SOA-based 的 Middleware 拿來比較,判斷哪種比較適合在
此領域中應用。
也有不少如 [18–20] 的研究,提出 Semantic 的概念來設計 IoT Middleware
讓裝置具備提供 web service 的功能。還有少部分是依據特定領域用途來設計
的 Middleware,如 [21] 中探討想透過 RFID 的技術來追蹤商品從出貨後到被回
收這段時間的變化並從中分析有用的商業模式的這種用途下 IoT Middleware
須 具 備 的 功 能 面 向,[22] 則 是 探 討 工 業 製 造 上 所 使 用 的 IoT 環 境 所 需 要 的
Middleware 功能,[23] 則是在情境感知的領域中探討如何透過 IoT Middleware
來選取、排序不同應用下適合的感測器來達成應用程式的目標。
1.3 目的
對於軟體開發人員來說,應用程式軟體的開發者所需要的考慮的應該是 IoT
Middleware 提供了什麼樣的介面能降低程式開發的複雜性、增加程式撰寫的效
率、快速建立一個能與裝置端互動的應用。在 [16] 提到支援提供使用者介面
User Interface Provision 在 IoT Middleware 是必要的,尤其是在現今智慧型行動
裝置被大量使用的情況下,使用者介面是能提供服務使用者與實體裝置互動的重
要橋梁,在過去,所有的 IoT 應用開發都必須為被使用到的裝置設計特定形式
的程式介面,很少人談到如何將現實世界中的實體裝置抽象化,使得程式開發人
員可以依據抽象後的描述來對這些裝置進行使用者介面的撰寫。為了簡化 IoT
裝置應用開發上的複雜性,並使 IoT 裝置達到隨插即用的功能,本論文提出一
個 Middleware 平台,設計一套 API(Application Programing Interface) 協助 IoT
應用程式的開發人員進行軟體開發,透過 API 與裝置連線、根據裝置上的使用
者介面描述檔,動態載入可讓使用者操作的使用者介面。