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

/news/2015/03/23/1626164280S.png

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

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

所以說,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 時代,不但改變過去十年的商業模式,也重構過去十年的競爭形態。