iot平臺的構成
IoT平臺是基于互聯(lián)網,通過現(xiàn)有的通訊技術來建構的,而不依賴于特定的硬件模塊,用戶可以基于自身的設備技術架構,最終接入物聯(lián)網。
它主要是連接硬件、處理不同的通訊協(xié)議、為設備和用戶提供安全和身份驗證、收集數(shù)據(jù)并進行可視化地分析,以及與其他Web服務進行集成。
一個完整的IoT平臺包括應用使能平臺、設備管理平臺、連接管理平臺、IoT終端代理四部分,其他的功能模塊都是基于這四大功能模塊進行延伸的。下面是關于核心功能模塊的具體內容:
應用使能平臺(Application Enablement Platform,AEP),核心能力為業(yè)務編排、大數(shù)據(jù)分析、行業(yè)套件、API管理,主流陣營為Thingworx、Cumulocity IoT等;
設備管理平臺(Device Management Platform,DMP),核心能力為設備鑒權、數(shù)據(jù)采集、物聯(lián)網協(xié)議適配、訂閱通知;非核心能力為固件升級、告警管理,主流陣營為Bosch BSI、DiGi、Nokia Impact、Sierra Wireless等; 其運作模式有兩種,分別是平臺服務提供方式以集成為主,以及提供完整的端到端解決方案。前者,一般設備管理平臺 DMP 集成在整套端到端 M2M 設備管理解決方案中,不單獨提供。只有少量單獨提供設備管理云端服務的廠商,每臺設備每個月收取一定運營管理費用;而后者,主流DMP平臺運營公司同時提供物聯(lián)網連接設備、傳感產品和管理云平臺服務,使其能同時提供完整的端到端解決方案。
連接管理平臺(Connectivity Management Platform,CMP),核心能力為使得SIM卡接入運營商網絡,實現(xiàn)運營商計費系統(tǒng)對接;主流陣營為思科Jasper、愛立信DCP、沃達豐GDSP等;
IoT終端代理(IoT Agent),核心能力為使得預集成設備快速接入平臺,實現(xiàn)近場控制和邊緣計算。
IOT系統(tǒng)閉環(huán)架構
拋磚引玉:未來某一個周末下午2點,陽光明媚,從窗外照進來,微風拂面,我在客廳的沙發(fā)悠閑的躺下,叫喚:“小沙小沙,給我播放一首催眠的純音樂,再給我的后背按摩,10分鐘就好了”。沙發(fā)便照做了,除了按我說的做,它還通過接觸我的皮膚分析我身體的健康狀況,然后把信息告訴家里的空調,空調自動調節(jié)我最適合的濕度和溫度。當我小睡一會,3點多醒來的時候,想沖個涼,于是告訴沙發(fā),幫我加熱水,當然沙發(fā)通過接觸我的頭發(fā),分析發(fā)質,推薦我要用哪一種洗發(fā)水。沖完涼后我又想出門,于是又拜托家里的機器人傭人,幫我叫車… 整個生活,都很方便。
上述我所說的還沒普及,但是已經有企業(yè)在做了。這種萬物聯(lián)網、萬物智能的系統(tǒng)稱為IOT(Internet of things),也可以叫物聯(lián)網(包括智聯(lián)網),現(xiàn)在隨處可見的ofo小黃車也是一種IOT模式。那么,一個IOT系統(tǒng)的完全閉環(huán)是如何實現(xiàn)的呢?
其實實現(xiàn)原理不難,無非是硬件產品+軟件控制+云端3部分組成,所謂閉環(huán),就是說它們可以構成一個環(huán),實現(xiàn)完整的生產產品鏈。這3部分的關系圖如下所示:
上圖揭示了兩種IOT方式,一種是云端-硬件關方式,一種是云端-軟件-硬件方式,現(xiàn)在常見的共享單車,屬于云端-軟件-硬件方式,軟件部分便是app。那么,這3部分的具體細節(jié)是怎樣的?作為一個后端的開發(fā)人員,我負責的自然是云端部分。云端也是IOT中心臟/大腦級別的角色,為了撐起一個IOT的調度,云端該如何設計?
這兩個問題我沒辦法給出標準答案,因為我也在摸索中。在這里我給出一個云端的解決方案。至于硬件或者軟件控制系統(tǒng),對云端而言都是給出一個接口。云端的設計原理圖如下:
基于上圖的架構,每個部分的作用如下:
文件系統(tǒng)
1 存儲第三方的資料信息,比如做一個智能機器人的產品,機器人的資料要實現(xiàn)收集,以便處理各種行為,給出指令
2 存儲用戶行為系統(tǒng),注意在圖中,有一條黑色實線,由硬件/軟件指向文件存儲,這部分是為用戶行為分析設計的。傳統(tǒng)的用戶行為分析(例如友盟、阿里dataV)采用實時像服務器發(fā)送行為消息(埋點)的模式。可是我窮,買不起一個線上的服務器專門用于處理用戶數(shù)據(jù),因為這種服務器的配置要很高,成本太高!于是,我便將用戶一天/一周/一個月的數(shù)據(jù)存儲在本地,然后每隔一段時間直接上傳到文件存儲,文件存儲可以是第三方的存儲。然后我再用自己的電腦,在下班或者夜晚從文件存儲下載數(shù)據(jù)到本地,跑大數(shù)據(jù)系統(tǒng)分析。具體的細節(jié)在大數(shù)據(jù)系統(tǒng)中會介紹。
數(shù)據(jù)庫
1 mysql集群,存儲邏輯數(shù)據(jù),提供給各個系統(tǒng)使用。
2 數(shù)據(jù)庫的設計要結合終端,尤其是硬件,例如,一個無人機產品,要把它表示出來,數(shù)據(jù)庫的設計就得接近產品本身,其中的字段就包括:芯片(內存、cpu、電阻、電容)、外形、公模等等各個參數(shù)和指標,所以在設計數(shù)據(jù)庫的時候要多跟硬件部門取經。
大數(shù)據(jù)系統(tǒng)
1 統(tǒng)計終端行為規(guī)律,IOT的服務對象是終端,所以對終端設備的統(tǒng)計和分析很有必要,統(tǒng)計使用數(shù)量,用戶在全球的分布規(guī)律等等,以智能家居為例,如果可以統(tǒng)計出用戶的使用習慣,空調的哪一個溫度最多人使用,沙發(fā)的哪個位置最多人坐,用戶的作息時間、健康狀況等等,這些都有助于產品的設計,給運營、給為下一個版本的設計指明方向,還能順便推薦其他關聯(lián)產品等等。
2 發(fā)掘潛在的功能需求
3 給企業(yè)反饋,當一個企業(yè)接入一個IOT系統(tǒng),自然希望看到真實的效果
4 關于我的設計,采用非實時的方式,在管理上很方便,我很明確自己想要哪些數(shù)據(jù),不必全部分析。數(shù)據(jù)的組成要與終端的實際功能相結合,將終端的每個事件定義好,加上時間和gps,發(fā)送到文件存儲系統(tǒng),而區(qū)分不同的終端,只需要在文件上指明即可,這樣做可以減少傳輸字數(shù)。這樣統(tǒng)計出來的數(shù)據(jù)總會比現(xiàn)在要少一天/一周/一個月時間,但是成本大大降低了,因為它不需要一個線上的服務器,只需要一臺本地電腦就好,我可以白天用自己的電腦工作,夜晚跑數(shù)據(jù)分析,0成本?。?!
業(yè)務系統(tǒng)
1 這要結合具體業(yè)務,如果是面對硬件終端的,給終端發(fā)送指令、處理終端的指定,如果是軟件控制的,就提供接口。
2 業(yè)務系統(tǒng)里面可不僅僅是業(yè)務這么簡單,還包括nginx、緩存、數(shù)據(jù)層這樣的應用,只是說它是直接面對終端、處理業(yè)務的。
后臺管理系統(tǒng)
1 主要開放給企業(yè)用戶,定像定制策略、管理終端、查看自己產品的用戶行為規(guī)律,比如一個硬件終端各個指令對應什么功能,推薦其他產品、投放廣告等等,這些由后臺管理系統(tǒng)指定
安全系統(tǒng)
1 分為兩部分,常規(guī)部分是傳統(tǒng)的網絡安全,獲取用戶token、數(shù)據(jù)過濾、加密等,主要應用在對后臺管理系統(tǒng)和業(yè)務接口的傳輸上。
2 但是,對于直接面對硬件終端來說,指令的傳輸安全是特殊的,這個主要借鑒阿里IOT的ID^2 安全模型,就像智能家居,雖然看起來整個家居系統(tǒng)是統(tǒng)一的,其實它們的工作都是獨立的,完全由云端控制,云端把它們連在一起,但是終端本身并不是聯(lián)合的,所以每個終端是獨立接收指令+傳輸加密。沙發(fā)將用戶的身體信息發(fā)送給云端,云端處理,計算出空調應該調節(jié)的溫度和濕度,將這個指令發(fā)送給空調,空調才會做出調整。
終端(硬件、軟件)
1 如果是硬件直接連接云端,那么硬件就要提供聯(lián)網模塊
2 如果是走硬件-軟件-云端,軟件(一般是app)與硬件的連接部分,以wifi、或者藍牙為載體,協(xié)議也要先定義好
上面列舉的結構看起來好像挺簡單的,可是一旦做起來,才知道好多要考慮的,比如硬件的聲音控制,要做到區(qū)分不同人的聲音,就要做聲波過濾,說來慚愧,聲波過濾用到的知識是《模擬電子電路》里面的,碰巧這是我大學掛的第一科, 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)的提取要經過層層統(tǒng)計,設置一級數(shù)據(jù)、二級數(shù)據(jù)、三級數(shù)據(jù),提取的依據(jù)是什么?怎么提???,還有日志管理,報警系統(tǒng),故障容錯…一言難盡,總之,我也是在這條路上勤勤懇懇勞動的一只螞蟻,共勉!
評論