攀多物聯(lián)創(chuàng )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統

周彤 10年前 (2015-10-16)

為了降低物聯(lián)網(wǎng)硬件的開(kāi)發(fā)成本,攀多物聯(lián)基于esp8266設計了物聯(lián)網(wǎng)開(kāi)發(fā)板Tisan,并在Tisan實(shí)現了他們的嵌入式開(kāi)發(fā)框架及物聯(lián)網(wǎng)協(xié)議。

物聯(lián)網(wǎng)的概念一直游走在媒體人和科技工作者之間,卻總是不溫不火的,沒(méi)有出現一個(gè)巨頭,也沒(méi)有什么好的可商業(yè)化的平臺。

就在去年的某個(gè)周末,攀多物聯(lián)創(chuàng )始人曾銳和幾個(gè)技術(shù)小伙伴聚在了一起,決定啟動(dòng)全套可商用物聯(lián)網(wǎng)系統的設計和研發(fā),更重要的是,他們打算在不久的將來(lái)全部開(kāi)源。

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統1

一群基情滿(mǎn)滿(mǎn)的小伙伴便開(kāi)始了他們的事業(yè),一開(kāi)始不是所有的人都全職,但是項目慢慢也啟動(dòng)了起來(lái)。幾個(gè)月后,第一個(gè)商用版本的研發(fā)成功完成。這期間,好幾個(gè)小伙伴辭去了工作,全職進(jìn)行研發(fā)。他們在沒(méi)有融資、沒(méi)有資源的情況下一路走到現在,如今系統已經(jīng)有模有樣了,我們一起來(lái)看一下攀多物聯(lián)是如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統的。

一、整體設計

一個(gè)物聯(lián)網(wǎng)系統涉及硬件、軟件、云端、app各個(gè)環(huán)節,必須從整體進(jìn)行頂層設計,只倚重某個(gè)單一的環(huán)節進(jìn)行設計的系統都不具備良好的適用性和擴展性。團隊在設計時(shí)為了避免這種情況,使系統能夠適應最廣泛的物聯(lián)網(wǎng)場(chǎng)景(甚至包括工業(yè)場(chǎng)景),每次的架構設計討論都是所有團隊成員參與并進(jìn)行多次的修改和驗證。系統架構如下:

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統2

二、協(xié)議

在一個(gè)物聯(lián)網(wǎng)系統中,協(xié)議是串通上下層的關(guān)鍵紐帶。它分為通信層和業(yè)務(wù)層。通信層基本上是傳統互聯(lián)網(wǎng)的網(wǎng)絡(luò )基礎設施,負責將數據在物聯(lián)網(wǎng)系統節點(diǎn)中的傳輸業(yè)務(wù)層分為兩層,底層是負責物聯(lián)網(wǎng)場(chǎng)景下數據交換格式的規范,上層是物聯(lián)網(wǎng)場(chǎng)景需要具體傳輸的業(yè)務(wù)數據規范。

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統3

通信層互聯(lián)網(wǎng)基礎架構目前已經(jīng)非常成熟且通用,但是業(yè)務(wù)層協(xié)議目前還是種類(lèi)繁多??梢源_定的一點(diǎn)是,最終能在物聯(lián)網(wǎng)應用中稱(chēng)霸的協(xié)議,一定也像互聯(lián)網(wǎng)時(shí)代的TCP/IP一樣是開(kāi)放的、免費的。目前符合此特性并使用比較多的有XMPP、MQTT、COAP等。

攀多物聯(lián)的這套系統最終選擇基于MQTT來(lái)作為業(yè)務(wù)傳輸層主要協(xié)議。但是MQTT協(xié)議本身的設計是針對開(kāi)放設備,對于可商用的物聯(lián)網(wǎng)系統不得不保證設備的安全性和完善的授權機制。所以在實(shí)現的過(guò)程中進(jìn)行了一些定制和限制。

目前的物聯(lián)網(wǎng)系統都是各自針對自己的業(yè)務(wù)場(chǎng)景設計協(xié)議規范。但是曾銳堅持要有一個(gè)統一的業(yè)務(wù)數據規范,只有統一了標準,行業(yè)才能更好更健康的發(fā)展。他們抽象出物聯(lián)網(wǎng)節點(diǎn)中傳感器和執行器的業(yè)務(wù)場(chǎng)景,并設計出含有物聯(lián)網(wǎng)業(yè)務(wù)數據語(yǔ)義的業(yè)務(wù)層協(xié)議,曾銳說(shuō)業(yè)務(wù)層協(xié)議目前是全部開(kāi)源的,目的就是希望能夠為廣大愛(ài)好者和從業(yè)者帶來(lái)參考價(jià)值。

三、云端平臺

互聯(lián)網(wǎng)時(shí)代,用戶(hù)上網(wǎng)主要還是靠PC和手機,在未來(lái)的物聯(lián)網(wǎng)時(shí)代,上網(wǎng)終端會(huì )呈現多樣化、海量化趨勢。保守估計每人擁有數十套聯(lián)網(wǎng)設備,數據規模必然也是幾何倍增長(cháng)。所以物聯(lián)網(wǎng)云端平臺注定是一個(gè)大規模的海量分布式系統。

目前很多愛(ài)好者或者廠(chǎng)商通過(guò)用php、nodejs、python實(shí)現簡(jiǎn)單的web接口可以實(shí)現設備的聯(lián)網(wǎng),但是可以想象,在真正的商用場(chǎng)景中,穩定性、性能、擴展性都必然遭受挑戰。攀多物聯(lián)采用microservice分布式架構,并使用docker降低運維成本。大體的云端架構如下圖

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統4

對于海量物聯(lián)網(wǎng)設備的場(chǎng)景,系統的可用性和擴展性將面臨巨大的挑戰。曾銳表示目前攀多物聯(lián)的系統基于go語(yǔ)言開(kāi)發(fā),已經(jīng)發(fā)布到0.8.0版本,后續會(huì )在安裝和運維的便捷性上進(jìn)行優(yōu)化,并計劃在1.0版本時(shí)開(kāi)源發(fā)布。

四、嵌入式

物聯(lián)網(wǎng)硬件的嵌入式軟件除了傳統部分,必須加入聯(lián)網(wǎng)邏輯以及傳感器、控制器的管理。為了提高開(kāi)發(fā)效率、方便復用,攀多物聯(lián)設計并開(kāi)發(fā)了輕量級的物聯(lián)網(wǎng)嵌入式開(kāi)發(fā)框架,并對物聯(lián)網(wǎng)業(yè)務(wù)進(jìn)行了抽象,以便移植到不同的硬件平臺。這樣就可以保證在不需要更改任何業(yè)務(wù)層代碼的情況下,一個(gè)物聯(lián)網(wǎng)嵌入式應用可以在不同的硬件平臺運行。

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統5

曾銳說(shuō):“當前很多大企業(yè)包括華為、惠普、谷歌等都紛紛推出了物聯(lián)網(wǎng)操作系統,后續物聯(lián)網(wǎng)領(lǐng)域會(huì )出現多種操作系統共存的局面。不同的操作系統能運行的最低系統資源以及具體應用場(chǎng)景都不盡相同,但是在物聯(lián)網(wǎng)的上層業(yè)務(wù)是通用的,這也是我們設計物聯(lián)網(wǎng)嵌入式開(kāi)發(fā)框架的原因。”

五、安全

近些日子,各種廠(chǎng)商的物聯(lián)網(wǎng)設備紛紛傳出被黑的消息。從TCL到特斯拉,黑客都成功實(shí)現破解和隨意操控。和互聯(lián)網(wǎng)時(shí)代一樣,安全在物聯(lián)網(wǎng)目前的早期階段注定是容易被忽略的問(wèn)題。安全不是一朝一夕的事情,需要從系統開(kāi)始構建時(shí)就考慮,并不斷完善安全手段和規則。這方面,攀多物聯(lián)做了充足的工作:

所有接入層通信都采用tls進(jìn)行加密,包括對app、業(yè)務(wù)服務(wù)器的開(kāi)放接口;

用戶(hù)、設備關(guān)鍵信息進(jìn)行加密保存;

針對設備有完善的用戶(hù)鑒權機制;

針對互聯(lián)網(wǎng)安全場(chǎng)景的其他安全措施。

六、開(kāi)發(fā)板

為了降低物聯(lián)網(wǎng)硬件的開(kāi)發(fā)成本,攀多物聯(lián)基于esp8266設計了物聯(lián)網(wǎng)開(kāi)發(fā)板Tisan,并在Tisan實(shí)現了他們的嵌入式開(kāi)發(fā)框架及物聯(lián)網(wǎng)協(xié)議。開(kāi)發(fā)板相關(guān)的代碼已經(jīng)全部開(kāi)源,目前在淘寶進(jìn)行眾籌。

攀多物聯(lián)創(chuàng  )始人告訴你如何從零開(kāi)始搭建物聯(lián)網(wǎng)系統6

如果你也是物聯(lián)網(wǎng)和開(kāi)源技術(shù)愛(ài)好者,可以和攀多物聯(lián)聯(lián)系學(xué)習交流:qq交流群488074716。

最后,記得關(guān)注微信公眾號:鎂客網(wǎng)(im2maker),更多干貨在等你!

鎂客網(wǎng)


科技 | 人文 | 行業(yè)

微信ID:im2maker
長(cháng)按識別二維碼關(guān)注

硬科技產(chǎn)業(yè)媒體

關(guān)注技術(shù)驅動(dòng)創(chuàng )新

分享到