各種生活中看似尋常的對象,正被嘗試賦予連網的能力,而能和外在環(huán)境互動,提供許多有趣的應用可能性,然而,要建構出各種應用、落實在生活中,還是得倚靠軟件
物聯網(Internet of Things)」是最近另一火紅的名詞。在市場上,有愈來愈多的裝置、設備,打著物聯網的名號,紛紛快速推出。什么是物聯網呢?簡單來說,傳統的互聯網,連上網的都是計算機,不論是大型還是小型,通通都是計算機,所以基本上是個計算機網絡。
隨著技術進步,大家都知道連移動電話也都具備上網能力了,這是因為現在的智能電話,里子其實也都是計算機,這都是拜計算機技術進步之賜。之后,連電視也上網,所以我們有了智能電視這個名詞,而本質上,智能電視也是計算機。
透過各種裝置連網的機會,已經大幅提升
即使這些外觀上不是計算機的連網裝置本質上都是計算機,也因此得到了連網的能力,但是在普遍的認知上,他們還是我們所熟悉的生活中的常見對象。透過一些對象漸漸獲得了連網能力后,只有計算機才能連網的概念及界線逐漸變得模糊。
而接下來,幾乎可以預測的是,會有更多更多在我們生活中的對象或裝置,都會被賦予連網的能力,而且透過連網的能力,可以因此創(chuàng)造出更多有潛力的生活應用。
舉例來說,在醫(yī)院中做一些基本的健康檢查,會需要量測身高、體重、血壓、……等等數據。傳統的方式,由護理人員量測后,記錄于紙本之上。但是試著想象一下,當這些量測儀器都具備連網、連網傳送數據的能力之后,當受檢者完成檢驗的同時,這些數據已經自動傳送至中央數據庫中,并且和受檢者的身份關聯在一起。少去了人工操作,不但整個程序更快速、也不容易出錯。
各種在我們生活中現在看似尋常的對象,像是電燈、電器開關,在獲得了連網能力,并且足以和外在環(huán)境互動時,的確極有可能提供許多有趣的應用可能性。也因此,在「物聯網」口號喊的震天價響的同時,也正有各種不同型態(tài)的對象,正被嘗試賦予連網的能力,同時構思進階的應用。
物聯網的大方向看起來是確切了,在過去的幾年里,連網手持裝置數量的大幅提升,讓在消費市場中為主的個人計算機,在消費者生活中逐漸的不再居于中心的位置。許多人除非工作,否則已經不太使用個人計算機,因為,他們的需求,絕大多數都可以被平板計算機或是手機所滿足。這是使得平板計算機及手機銷售數量持續(xù)提升的原因。
在過去,個人計算機是我們接觸信息、操作所有設備的中心點,漸漸的,這個角色已經被手持連網裝置所取代。
例如,假設你家里有 Apple TV,過去你的音樂檔案可能儲存在計算機里,然后想要播放時,再從計算機連至 Applet TV 播放出去。但現在,很有可能你常聽的音樂都在手機上了,你會想直接從手機送至 Apple TV 播放,而不會再想打開計算機。
除了手持裝置的數量大幅提升、而且愈來愈重要之外,另一個可以看到的變化是,連網裝置的數量也會開始持續(xù)增加。伴隨著個人計算機數量成長的消退,手持裝置會成為用戶要操作這些連網裝置時的主要接口之一。
物聯網對于軟件應用架構的沖擊
物聯網的重心僅在硬件裝置嗎?其實,在物聯網的應用里軟件也很重要。雖然,物聯網實體上必須倚靠諸般硬件裝置部署到使用端去,但要建構出各種應用、落實在生活中,還是得倚靠軟件。而在物聯網的應用架構下,對于軟件開發(fā)的生態(tài),又會有什么樣的改變呢?我想這是身為程序設計者會關心的議題。
首先,在連網的對象端,我想,初期許多小型的對象都不會擁有實際連上 Internet 的能力,而是透過另一個網關(gateway)裝置來連網,這些小型對象并不直接連上 Internet,因為要連上Internet 所需的計算資源太過沉重了,所以真正連接 Internet 的能力,會被放在網關裝置里,而諸般小型物件,則以一個更輕量級的通訊協議(例如,在藍牙之上,再建構的應用層級協議),來和網關裝置相互連接,并且透過網關裝置對外連網。
在這種架構之下,一個網關裝置可以對應多個小型對象,除了具備管理這些對象的能力之外,同時也提供了這些小型對象對外連網通訊的能力。
這個網關裝置會是個運行典型操作系統的裝置,我想實務上這幾年可以看到的,會是以嵌入式 Linux 為主。接下來的短期內,網關裝置應該還是會有重要的角色,因此,在建構一個物聯網的應用里,在網關裝置上開發(fā)軟件,會是一個必要的工作。而這一塊,就會和傳統上開發(fā)嵌入式 Linux 軟件差不多。
除了網關裝置之外,一些比較「重量級」的裝置、也就是具備較高階計算資源裝置,就不需要網關裝置的輔助,自身即具有連網及計算的能力,像是機頂盒、智能電視、……等等,其操作系統除了 Linux 之外,也有可能是 Android 。
裝置與云端上的軟件應用,影響力大增
在物聯網的軟件組成里,還有一個重心是在手持裝置端。
物聯網中的對象,大多可能都不具備顯示的接口,甚至也沒太多輸入的控制途徑。那么,要怎么和它們互動,像是取得信息、以及做控制呢?手持裝置會是最重要的途徑,因為,手機或平板會成為使用者面對物聯網中裝置的最主要終端,個人計算機反倒不是。
因此,當我們在建構一個物聯網的應用時,終端的界面應該都會先以手持裝置上的 App 為主,個人計算機上的軟件反而可有可無,即使是有,優(yōu)先級可能也會比較低。
實際上,手持裝置上的 App 凌駕于個人計算機應用軟件的這個趨勢,會是一個很重要的變化。之后和使用者互動的終端,勢必以手持裝置上的 App 為主流了。
在個人計算機上,不論是傳統操作系統上的原生應用軟件,或是網頁型態(tài)的服務,都會因為個人計算機角色的弱化,而將部份重要性移轉至手持裝置上的 App。
除了手持裝置 App 的重要性會再持續(xù)提升之外,云端上軟件的重要性,在物聯網的體系下,也只會顯得更關鍵。
原因就在于,物聯網中的對象,除了讓用戶透過手持裝置和其互動之外,更多的時候,這些對象之所以要連網的原因,不單只是為了讓用戶透過手持裝置與其聯系,而且更重要的是,它們得以和云端上的服務交互運用。像是將它們所收集到的信息,上傳到云端的「數據庫」里,或者是從云端的服務取得它們被設置的組態(tài),因而得以依據這些組態(tài),控制它們自身的行為反應,以符合組態(tài)設定。
另一方面,即使物聯網中的裝置擁有連網的能力,但不意謂著他們必然擁有高階的計算能力──在整個架構里,真正有計算能力的,是在云端服務這一層。
舉例來說,若是有一套連網的人臉辨識門禁管理記錄系統,在拍攝裝置欲進入者的臉部圖像后,拍攝裝置可能即將圖傳傳送至云端,由云端上的辨識系統從云端上允許進入的人臉數據庫中進行比對,并且計算是否相符,最后,響應門禁裝置是否授權進入。
從上述的例子就可以說明,云端的服務在對象網的架構中有多重要,因為,云端才是擁有大多數計算資源、提供大多數計算服務的所在。而手持裝置也會透過云端的服務,得以和對象相連接,以進行狀態(tài)取得及相關的控制。因此,整個云端,才是物聯網的中心。
整體而言,物聯網應用下的程序開發(fā),手持裝置的應用程序,以及云端服務的開發(fā)會扮演關鍵的角色。對于程序開發(fā)人員,若有志于此,更可把方向往此設定。
(轉載)