物聯網(Internet of Things)」是最近另一火紅的名詞。在市場上,有愈來愈多的裝置、設備,打著物聯網的名號,紛紛快速推出。什麼是物聯網呢?簡單來說,傳統的網際網路,連上網的都是電腦,不論是大型還是小型,通通都是電腦,所以基本上是個電腦網路。

隨著技術進步,大家都知道連行動電話也都具備上網能力了,這是因為現在的智慧型電話,裡子其實也都是電腦,這都是拜電腦技術進步之賜。之後,連電視也上網,所以我們有了「智慧型電視」這個名詞,而本質上,智慧型電視也是電腦。

透過各種裝置連網的機會,已經大幅提升

即使這些外觀上不是電腦的連網裝置本質上都是電腦,也因此得到了連網的能力,但是在普遍的認知上,他們還是我們所熟悉的生活中的常見物件。透過一些物件漸漸獲得了連網能力後,只有電腦才能連網的概念及界線逐漸變得模糊。

而接下來,幾乎可以預測的是,會有更多更多在我們生活中的物件或裝置,都會被賦予連網的能力,而且透過連網的能力,可以因此創造出更多有潛力的生活應用。

舉例來說,在醫院中做一些基本的健康檢查,會需要量測身高、體重、血壓、……等等數據。傳統的方式,由護理人員量測後,記錄於紙本之上。但是試著想像一下,當這些量測儀器都具備連網、連網傳送資料的能力之後,當受檢者完成檢驗的同時,這些資料已經自動傳送至中央資料庫中,並且和受檢者的身份關聯在一起。少去了人工作業,不但整個程序更快速、也不容易出錯。

各種在我們生活中現在看似尋常的物件,像是電燈、電器開關,在獲得了連網能力,並且足以和外在環境互動時,的確極有可能提供許多有趣的應用可能性。也因此,在「物聯網」口號喊的震天價響的同時,也正有各種不同型態的物件,正被嘗試賦予連網的能力,同時構思進階的應用。

物聯網的大方向看起來是確切了,在過去的幾年裡,連網手持裝置數量的大幅提升,讓在消費市場中為主的個人電腦,在消費者生活中逐漸的不再居於中心的位置。許多人除非工作,否則已經不太使用個人電腦,因為,他們的需求,絕大多數都可以被平板電腦或是手機所滿足。這是使得平板電腦及手機銷售數量持續提升的原因。

在過去,個人電腦是我們接觸資訊、操作所有設備的中心點,漸漸的,這個角色已經被手持連網裝置所取代。

例如,假設你家裡有 Apple TV,過去你的音樂檔案可能儲存在電腦裡,然後想要播放時,再從電腦連至 Applet TV 播放出去。但現在,很有可能你常聽的音樂都在手機上了,你會想直接從手機送至 Apple TV 播放,而不會再想打開電腦。

除了手持裝置的數量大幅提升、而且愈來愈重要之外,另一個可以看到的變化是,連網裝置的數量也會開始持續增加。伴隨著個人電腦數量成長的消退,手持裝置會成為使用者要操作這些連網裝置時的主要介面之一。

物聯網對於軟體應用架構的衝擊

物聯網的重心僅在硬體裝置嗎?其實,在物聯網的應用裡軟體也很重要。雖然,物聯網實體上必須倚靠諸般硬體裝置部署到使用端去,但要建構出各種應用、落實在生活中,還是得倚靠軟體。而在物聯網的應用架構下,對於軟體開發的生態,又會有什麼樣的改變呢?我想這是身為程式設計者會關心的議題。

首先,在連網的物件端,我想,初期許多小型的物件都不會擁有實際連上 Internet 的能力,而是透過另一個閘道(gateway)裝置來連網,這些小型物件並不直接連上 Internet,因為要連上Internet 所需的計算資源太過沉重了,所以真正連接 Internet 的能力,會被放在閘道裝置裡,而諸般小型物件,則以一個更輕量級的通訊協定(例如,在藍牙之上,再建構的應用層級協定),來和閘道裝置相互連接,並且透過閘道裝置對外連網。

在這種架構之下,一個閘道裝置可以對應多個小型物件,除了具備管理這些物件的能力之外,同時也提供了這些小型物件對外連網通訊的能力。

這個閘道裝置會是個運行典型作業系統的裝置,我想實務上這幾年可以看到的,會是以嵌入式 Linux 為主。接下來的短期內,閘道裝置應該還是會有重要的角色,因此,在建構一個物聯網的應用裡,在閘道裝置上開發軟體,會是一個必要的工作。而這一塊,就會和傳統上開發嵌入式 Linux 軟體差不多。

除了閘道裝置之外,一些比較「重量級」的裝置、也就是具備較高階計算資源裝置,就不需要閘道裝置的輔助,自身即具有連網及計算的能力,像是機上盒、智慧型電視、……等等,其作業系統除了 Linux 之外,也有可能是 Android 。

裝置與雲端上的軟體應用,影響力大增

在物聯網的軟體組成裡,還有一個重心是在手持裝置端。

物聯網中的物件,大多可能都不具備顯示的介面,甚至也沒太多輸入的控制途徑。那麼,要怎麼和它們互動,像是取得資訊、以及做控制呢?手持裝置會是最重要的途徑,因為,手機或平板會成為使用者面對物聯網中裝置的最主要終端,個人電腦反倒不是。

因此,當我們在建構一個物聯網的應用時,終端的介面應該都會先以手持裝置上的 App 為主,個人電腦上的軟體反而可有可無,即使是有,優先順序可能也會比較低。

實際上,手持裝置上的 App 凌駕於個人電腦應用軟體的這個趨勢,會是一個很重要的變化。之後和使用者互動的終端,勢必以手持裝置上的 App 為主流了。

在個人電腦上,不論是傳統作業系統上的原生應用軟體,或是網頁型態的服務,都會因為個人電腦角色的弱化,而將部份重要性移轉至手持裝置上的 App。

除了手持裝置 App 的重要性會再持續提升之外,雲端上軟體的重要性,在物聯網的體系下,也只會顯得更關鍵。

原因就在於,物聯網中的物件,除了讓使用者透過手持裝置和其互動之外,更多的時候,這些物件之所以要連網的原因,不單只是為了讓使用者透過手持裝置與其聯繫,而且更重要的是,它們得以和雲端上的服務交互運用。像是將它們所收集到的資訊,上傳到雲端的「資料庫」裡,或者是從雲端的服務取得它們被設置的組態,因而得以依據這些組態,控制它們自身的行為反應,以符合組態設定。

另一方面,即使物聯網中的裝置擁有連網的能力,但不意謂著他們必然擁有高階的計算能力──在整個架構裡,真正有計算能力的,是在雲端服務這一層。

舉例來說,若是有一套連網的人臉辨識門禁管理記錄系統,在拍攝裝置欲進入者的臉部圖像後,拍攝裝置可能即將圖傳傳送至雲端,由雲端上的辨識系統從雲端上允許進入的人臉資料庫中進行比對,並且計算是否相符,最後,回應門禁裝置是否授權進入。

從上述的例子就可以說明,雲端的服務在物件網的架構中有多重要,因為,雲端才是擁有大多數計算資源、提供大多數計算服務的所在。而手持裝置也會透過雲端的服務,得以和物件相連接,以進行狀態取得及相關的控制。因此,整個雲端,才是物聯網的中心。

整體而言,物聯網應用下的程式開發,手持裝置的應用程式,以及雲端服務的開發會扮演關鍵的角色。對於程式開發人員,若有志於此,更可把方向往此設定。

專欄作者

熱門新聞

Advertisement