物聯網(Internet of Things)趨勢快速增溫,伴隨著在物聯網概念下的裝置,不論是類型或是數量都是愈來愈多。當物聯網的應用興起之際,應用不單只關係到硬體,還需要軟體、甚至是網路上的服務彼此相互搭配,才能夠真正實現應用。

因此在前文中提到了,對物聯網的應用來說,程式設計者的重點領域會有幾個方向,包括了物聯網裝置、手持裝置、以及雲端上的服務,這三者會構成物聯網應用中軟體的主要組成。

在過去,有不少的努力投入,讓物聯網中的裝置得以在一個區域範圍內相互溝通、傳遞訊息,它們之間的溝通,可能是透過一些比較輕量級的通訊協定,像 Zigbee,或是藍牙、……等等。這些協定也允許他們與閘道型的裝置相連,並且透過閘道連接上 Internet。

當這些裝置得以連接上 Internet 之後,應用的變化和威力會來到新的境界。

Big Data的處理應用將受到更大的重視

接上了 Internet,就能接上雲端。絕大多數的物聯網裝置本身都很單純、所具備的計算資源,舉凡計算力、通訊能力、儲存空間、…… 等等,也不多。因此,應用所需的計算資源,很顯然都會被匯集至雲端之上。

像是一些感測型的裝置,其作用大多十分簡單,僅能收集感測資料。而裝置本身也沒太多計算力,以及儲存的空間,所以,在應用上很合理的決定,便是將所收集到的感測資料,透過網路傳送至雲端儲存,同時,利用雲端之上更強大的計算力,來進一步處理資料。

物聯網裝置像是過去的Thin Client概念,只是現在這個 Client 可能更 Thin,而雲端服務上基於過去伺服器的角色,卻進化得更多。

當不同類型的物聯網裝置數量迅速增加、而所欲匯集至雲端的資料也源源不斷送出時,分析這些資料並且產生應用上的價值,就成了「大數據(Big Data)」領域中所會關心的議題。

從這個趨勢來看,從事物聯網應用及服務的人們勢必會、也應該要打造出相關的平臺和服務,使得各種不同類型的物聯網裝置,得以更輕易和雲端上的服務介接。如果裝置本身即有Internet 連網能力,那麼,裝置應該要輕易透過類似一組通用型的 API,將資訊送至雲端。而如果裝置本身必須透過閘道裝置方能連網,那麼,裝置和閘道之間仍是利用較輕量級的協定,而連接雲端 API 的使用角色,就會放在閘道之上。

這組 API 應該要涵蓋多種可能的物聯網裝置,而不單只是感測型的裝置,例如溫度感測、濕度感測裝置之類的,因此,必須從現有及未來的應用上,歸納出足夠通用的 API 介面。

因此,在裝置上會有一組 API ,對應到雲端上就是一組服務,這二者會構成一個中介層,讓各種裝置都得以更輕易與雲端相連接。

裝置的管理

或許有些人目前只會關心到資料的收集、匯整及分析,但是,倘若以更整體的角度思考,在建立這樣的中介平臺時,會有更多的元素需要納入考慮。

首先是裝置的認證、授權、以及使用量計算。認證(Authentication)、授權(Authorization),以及使用量計算(Accounting)幾乎是每個系統的基礎了,我想物聯網系統也不例外。當裝置必須和雲端交互活動時,雲端上的服務必須有能力認證裝置、確定裝置的確切身分,只有通過認證的裝置,才能夠以正確的身分來和雲端服務交互作用。如何認證、甚至是否會有一個認證的標準,將會是個有趣的問題。無論如何,在同一個平臺上應該要有統一的認證模式。同時,這服務也必須有能力知道該裝置被授權使用雲端上的那些服務。

當然,裝置使用服務的量,也必須被記錄下來,因為這可能和商業模式有關連,像是以使用服務的量向使用者收取費用,例如,攝影裝置利用雲端服務儲存影片,其儲存的資料量就可能成為計算收費的基準。

而且,這個平臺應該要有能力接收來自裝置的資料操作需求,至於這些資料的操作需求,包括:儲存資料、更新資料,以及查詢資料。

大抵上,我認為,裝置大多時候只會有將資料儲存在雲端的需求,但應該會有些應用需要其他類型的資料操作方式。此外,這邊也會衍生出另一個有趣的議題,即是否需要運用一個通用型的資料查詢語言,好比傳統的 SQL ,但或許更符合物聯網需求的語言,來提供通用性型的資料操作。

人的管理

當我們在討論物與物相連之際,也不能忘了人與物的連結關係,因為最終的使用者還是人。所以在這個物聯網的服務平臺上,使用者還是很重要的角色。因此,我想,這個平臺上,一樣會需要有使用者的認證、授權,以及使用量計算等機制,以利人對服務的使用。

除此之外,很重要的是,使用者必須可以和裝置產生綁定關係(binding)。也就是說,該使用者是有權限對該裝置進行若干動作的。

在現實生活裡,這個使用者,大概可能就像買了裝置回家安裝的用戶,他在這個雲端平臺上,必須被識別出是和此裝置有關係,以及具備了那些操作裝置的權限。而和此裝置無綁定關係的使用者,不僅不能探尋此裝置的存在,更別提對此裝置執行任何的操作了。

裝置、閘道、人、雲,都是建置物聯網的重要元素

從人與物的關係展開,你會知道和特定「人」相關聯的「物」有那些,若是透過閘道裝置來連接到物,那麼關係階層就會多了一層,即「人」與「閘道」、「閘道」與「物」的三層關係。

買了一個裝置回家,只會一個使用者使用嗎?不見得,所以還有人授權裝置給裝置的可能性,因此,還會衍生出人與人的關係,這可能都是這個平臺上需要提供的機制。

那麼「人」和此平臺的溝通媒介是什麼?承前文所言,我想最主要的還是手持裝置上的 App。此平臺所提供的服務,在手持裝置上也會有對應的 API,以便 App 的開發者得以運用。

人透過手持裝置上的 App ,除了可以找出和自己綁定的裝置、查詢裝置的狀態之外,同時,也可以取得在雲端上的應用分析結果,像是前一週運動量不足之類的建議。

使用者也可能透過手持裝置對物聯網裝置做控制,例如,在手機上的 App 對家裡的電燈做開關的動作,或是遠端遙控打開冷氣之類的。

這樣的控制可以怎麼做?或許可以利用一個訊息系統來處理。這個訊息可以允許裝置之間互相交換控制訊息、也可以允許人與裝置之間、人與人之間交換訊息,而且更重要的是平臺本身會提供儲存訊息的機制,使得裝置或人即使有片刻的離線,訊息依然能夠傳遞。有了訊息機制之後,App 可以透過 API 遠距的發送控制訊息予裝置,裝置在接收到來自平臺的控制訊息之後,便可以執行對應的動作。

有了上述的機制,一個以雲端為集散地、連接使用者與物聯網裝置的平臺,就能夠成形,同時,透過一般化的服務及 API,可以使物聯網的應用軟體開發,變得更便利。

專欄作者

熱門新聞

Advertisement