IoT第四階段 : Web of Things (WoT)

IoT意味著所有設備能夠相互連結,進而形成物聯網。而設備溝通能透過各種方式如Bluetooth, ZigBee 和 WIFI等等。IoT的最後階段WoT則是將這些溝通方式最後都統一透過 Web 標準的方式來達成。這也是以往所有新技術最終能得到蓬勃發展的重要因素之一:統一的標準和規範。


從 Google 的 Physical Web 計畫解讀 IoT 技術趨勢

2015年是 IoT 倍速發展的一年,而且也是 IoT 與 Web 技術開始產生交集的歷史時刻。在距今約十五年前,所提出的 IoT 技發發展藍圖裡,描述了 IoT 的 4 個發展階段,而其中第 4 個階段,就是近幾年被熱烈討的 WoT(Web of Things)。WoT 或許是 Smart Phone 之後,下一個最重要的市場機會。

目前,正好處於第 4 個 IoT 發展階段。去年 Google 發起的 Physical Web 計畫,是一個非常先期的研究計畫,就是為了 IoT 的新階段預做準備。IoT 的第 4 個階段,將聚焦在 Advanced Sensor Fusion 與 Physical-World Web 層面,這二個層面簡單來說,就是 WoT。

M2M  WoT

根據維期百科上的定義,WoT 是 IoT 的 Application Layer,並且是使用 Web 技術來打造 application。也就是說,IoT + Web-enabled technologies 就是 WoT。對 WoT 來說,最重要的觀念,就是以 URL 來表示 IoT 裝置;為 IoT 加入 URL 的觀念,就是 Google 提出的 Physical Web 計畫。

Web of Things 將是主要的 IoT 技術趨勢

所以說,WoT 與 Physical Web 是一體兩面的觀念,都是 IoT 正進入的新發展階段。雖然 WoT 都是使用目前已經存在的軟體技術,但許多觀念都要重新思考,例如:Software Architecture、Application Framework 與 Composition Layer。

一個重新定義的 Application Framework,或是 Application Frontend 的 Composition Layer 設計,將會是 2015 年的 WoT 關鍵技術。因此,筆者利用這次帶領 Mokoversity 農場計畫團隊,到深圳與 Seeed Studio 交流的機會,開始了相關的研究工作。

目前已經完成的實驗性質開發,就是利用 Virtual DOM 技術,來進行 UI 的 Boundary Composition,這個專案叫做 AutomationJS。AutomationJS 是一份輕量級的 MVVM 實作,並且已經釋出第一版的原始程式碼。AutomationJS 是輕量級的 Boundary Composition 實作,並且使用 Backbone 做為 Model-View 的基礎;未來也將接軌 HTML 5 的新技術標準-Shadow DOM。

有了 Application Framework,就能將 IoT 裝封包為物件,並以 REST API 與 WebSocket Client 的方向,做對做數據推送(Data Push);這就是更能符合 WoT 理念的觀念:REST Device Object。同樣的硬體,但採用不同的觀念、技術框架與商業思維來表達,帶來的是非常不一樣的產品思維,以及更有潛力的商業模式。

WebSocket 是 HTML5 標準的一項技術,WebSocket 讓 Client 與 Server 能建立永續性的 TCP 連線。簡單來說,有了 Websocket,就能實作出 Real-time Data Streaming 機制。

WebSocket 技術在 IoT 第 4 階段,同樣也扮演重要的角色,同時也帶來不同的思維:使用 Websocket Channel Service。 Websocket Channel Service 可以將 WoT 封裝成為抽象化的 Data Push Server。一般來說,WebSocket 的使用案例(Use Case)是 Server Push(Data Push)機制,也就是說,WoT 物件本身,應該是扮演 Websocket Server 的角色。

但現實層面,讓 IoT 扮演 Websocket Server 的話,會有一些技術問題。WebSocket Channel Service 的架構,能解決相關的技術問題。ARM mbed 所提供的 sockets.mbed.org 服務,就是一個 Channel Service 平臺。對 Channel 來說,只要能定義好「Channel」的描述結構,就能封裝數以萬計、千萬計的 IoT 物件。

WoT 有豐富的潛在能量,因為它是 Smart Phone、IoT 與 Web 的一場交集表演;所以它或許會像 2006 年開始的 Smart Phone 時代,不但改變過去十年的商業模式,也重構過去十年的競爭形態。

HTTP 舊瓶新裝

Physical Web 與 Web of Things 是現在最重要的 IoT 趨勢。簡單來說,IoT 正在發生三件大事。第一、Going Web:與 Web 融合;第二、Open IoT Cloud Architecture:如上,要與 Web 融合,就要發展一個使用相關開放標準的 IoT Cloud 架構。第三、Physical Object:硬體裝置將與 REST 架構密切結合

這三件大事,其實是一個交互關係:要 Going Web 當然就要以 Web 標準來建立一個 Cloud 架構,要讓硬件與 Cloud 架構結合,就要讓硬件能以 URL 方式表示,或是能推送 Time-Series Data 到 Cloud。

這三件大事,其實說白了就是 HTTP。HTTP 並不是個新技術,也不是什麼困難的技術,與物聯網的交集,不過也就是舊瓶新裝。但難就難在舊瓶新裝,是個哲學思想提昇的過程:這需要一套整體的新思維。

Physical Object

首先,先談談 Physical Object。將 IoT 裝置以 REST API 來表示,這個 IoT 裝置就稱為 REST Device。如果更進一步以「對象」來封裝此觀念的話,也可以稱做 REST Object。例如:

http://wot.city/1/jollenchen/dust/kitchen

REST API 是一種 URI 的形式。所以,也可以這樣說:將 IoT 裝置以 URL 形式來表示;這就是 Google 的 Physical Web 計畫,所提出的觀念。

現在,只需要以 GET 方法(HTTP 協定)來調用這個 REST API,就能得到 IoT 裝置的數據。REST API 是一種表示「資源」的觀念,以上述的 REST API 來說:

  • /1:代表 API 的版本號碼
  • /1/jollenchen:代表這個裝置的對象名稱(Object name)
  • /1/jollenchen/dust/kitchen:代表對象裡的屬性(Attributes),dust/kitchen 可視為dust.kitchen

從 REST 的角度來看,jollenchen 就是一個對象,這個對象只能存在一個,意思是名稱不能重覆。用設計模式的方式來解釋,就是 Singleton。

最後,設計者會賦與 dust.kitchen 一個意義:廚房的空氣感測數據。

Web of ThingsHTTP Use Case

REST Device 是一個實物,也就是硬件設備,因此也稱為 Physical Object。有了 Physical Object 做為基礎,要搭建 IoT 的 Cloud Architecture 並不是一件難事。

IoT Open Architecture:HTTP & REST API

IoT 過去著重在 M2M 使用情境,現在則開始跨入 Machine to Web 的情境。這是 IoT 開始與 Web 融合的階段,產業圏把這個使用情境稱為 Web of Things(WoT)。WoT 之所以重要,在於它開始讓 Web 實體化。過去 Web 是虛擬化的物品,現在則是真正看得到,也摸得到的實體。

Google 把這樣的概念稱為 Physical Web,也就是用 URL 的方式,來表示所有的物聯網裝置。ARM 也有類似的生態系統,稱為 ARM mbed。ARM mbed 的主軸也是 WoT,這從 mbed OS 的幾個重要技術特色可以看出:ARM mbed 定位為 Full Stack OS,並且支援 HTTP、Websocket 與 CoAP 等重要協定。

現在我們知道,只要在 ARM mbed 裝置裡,實現一個輕量化的 Web 服務器,可以將 IoT 裝置「表示為 URL」。並且使用瀏覽器,來「讀取」裝置的感測數據。

IoT  URL

使用 HTTP 與 REST 很容易實現 Physical Object 的設計哲學。但是,這樣的情境並不算最佳。

從數據模式的角度來說,這是「Data Pull」的設計模式;更好的使用情境,應該是「Data Push」。HTML5 的 Websocket 標準,自然被引用到 IoT Open Architecture 裡。ARM mbed 操作系統,也支持 Websocket。

--jollen


資料來源: https://www.mokoversity.com/post/%E5%BE%9E%20Google%20%E7%9A%84%20Physical%20Web%20%E8%A8%88%E7%95%AB%E8%A7%A3%E8%AE%80%20IoT%20%E6%8A%80%E8%A1%93%E8%B6%A8%E5%8B%A2

Sign In or Register to comment.