<menu id="4i6sg"><em id="4i6sg"></em></menu>
<dfn id="4i6sg"><code id="4i6sg"></code></dfn>
  • <rt id="4i6sg"><code id="4i6sg"></code></rt>
  • 四川中衛(wèi)北斗科技有限公司

    在線咨詢
    微信

    微信掃一掃

    長按二維碼關注微信加好友

    淺談G7物聯網平臺架構

    發(fā)布時間:2018-06-26 16:46

    說起軟件架構總是一個很經典的話題,軟件行業(yè)發(fā)展了很多年,從最早說的C/S,B/S,到IOC,AOP,設計模式這些概念,再到最近幾年的大數據,CAP理論,微服務化,容器化??梢哉f近十多年來,隨著軟件行業(yè),尤其是互聯網行業(yè)的發(fā)展,軟件架構在變得越來越復雜,從單機軟件架構,逐漸發(fā)展到了一個大規(guī)模分布式的架構,整個過程可以說是非常的精彩。

    今天,軟件行業(yè)最火的三個概念毫無疑問是物聯網、AI和區(qū)塊鏈。相比互聯網行業(yè),這三個行業(yè)的發(fā)展起步較晚,因此軟件架構思想相對還不是那么成熟,也正因為此,給了從業(yè)技術人員一次探索和創(chuàng)造新技術的機會。我3年前有幸加入G7,隨著公司的快速發(fā)展也一起建設了G7的物聯網平臺架構體系,一路走來心得體會不少,借此也做一次梳理。


    物聯網技術和互聯網技術有什么不同?


    百度百科對于物聯網的詞條里有一段話,說的比較精煉,我在此引用下:「物聯網是指通過各種信息傳感設備,實時采集任何需要監(jiān)控、連接、互動的物體或過程等各種需要的信息,與互聯網結合形成的一個巨大網絡。其目的是實現物與物、物與人,所有的物品與網絡的連接,方便識別、管理和控制。」

    可以看出,物聯網的主要場景是對通過各種傳感器對物體進行監(jiān)控,識別和控制。在物聯網之前,技術發(fā)展最成熟的無疑是互聯網,我自己也是從互聯網行業(yè)出來的,因此在對物聯網技術的探索過程中,少不了和互聯網的技術去做比較,在我看來,由于業(yè)務場景的不同,二者的技術關注點還是不太一樣的。

    首先,傳統互聯網面對的是人,而物聯網面對的是物。這是本質的不同,人有人的特點,比如人的時間大多數是在看(獲取數據),而不是在寫(創(chuàng)造數據),這就決定了傳統互聯網是一個相對讀多寫少的場景。此外人白天得上班,晚上得睡覺,這就決定了互聯網的流量波動會出現明顯的周期特征。

    而物聯網呢,我們要做的是對物體的監(jiān)控和控制,那么對這個物體的當前狀態(tài),變化情況,都要變成數據傳輸到服務器,相比之下,人去看這些數據倒成了一個低頻行為。與此同時,這些物體產生的每個數據都和物體本身所在的時間和空間緊密相關,所以我們稱這些數據具備明顯的時空屬性。        

    其次,相比傳統互聯網,物聯網開發(fā)是一個更長鏈條的協作過程。做一個傳統互聯網軟件,我們通常是先基于業(yè)務設計數據庫結構,然后開發(fā)對數據庫操作的代碼和界面,整個過程是很容易在一個小團隊里閉環(huán)的。而做一個物聯網平臺,需要從設備研發(fā)做起,通過各種傳感器來將周邊的現實狀態(tài)轉化為數據,再通過網絡將數據傳輸到平臺,平臺再這些數據進行加工處理,變成業(yè)務所需要的結構化數據,最終再來開發(fā)對這些數據的展示,或者我們要操作一個現實中的物體,也是要完成從界面到平臺到設備,最后再到控制系統的協作過程。


    物聯網技術都包含什么東西?

    之前畫的一個物聯網技術體系的簡圖,從下往上有5個層次,分別是感知層、接入層、數據層、業(yè)務層和展現層,我下面簡單說下這5層分別需要什么能力。

    感知層

    感知層能力就是硬件能力,是物聯網最基礎的一層,是真正在創(chuàng)造原始數據的層面。如果沒有好的原始數據,意味著我們的數據基礎是不可靠的。在一個不牢靠的基礎上,進行的業(yè)務應用和數據分析也是不可靠的。因此,如何保證穩(wěn)定準確的數據感知和上報,是這一層的重中之重。這其實是一個挺多維度的問題,包括采用的感知方案是否合理,安裝實施工藝是否簡易,信號接收是否穩(wěn)定,功耗情況是否合理等。硬件本身,從芯片選擇到主板設計,每一個領域都需要精雕細琢。同時,硬件之上的軟件設計,如何快速,穩(wěn)定的在一個相對局限的資源里進行計算,進行數據的過濾,都是需要考慮的事情。

    接入層

    接入層能力是架構和適配能力,關注的重點首先是可用性。接入層要連接大量的設備,這些設備每時每刻都在上報數據,而且如前文談到的,設備是不會休息的,因此這種場景是24小時高強度的寫入。這就對接入層的穩(wěn)定性提出很大的挑戰(zhàn),需要通過很好的架構和實現,去支撐這種海量的數據上傳場景。

    另一個需要關注的重點是適配能力。我們會接入很多不同種類的設備,很多設備的功能是類似的。這個適配就要分為兩個問題去看:一個問題是如何快速的適配這些設備的協議,讓設備進入我們的平臺;另一個問題是,要如何把不同的設備協議,基于業(yè)務轉換成標準的數據結構,為后面的分析和挖掘工作打好數據基礎。

    數據層

    如果說感知層和接入層是在創(chuàng)造標準化的數據,那么到這一層的重點,就變成了要存儲和應用這些數據。因此我們首先要考慮,如何存儲如此海量而且在不斷增加的數據量。我們的存儲架構要考慮可擴展性,數據安全性,數據的易用性,以及存儲這些數據的成本。同時,我們如何對海量數據進行計算,是一個典型的大數據問題。因此我們需要通過大數據架構來支撐這些計算。對數據的分析,如果要變成對未來的預言和決策,機器學習算法也是必不可少的。換句話說,數據層是物聯網公司的技術核心層。這一層的技術積累深度,決定了我們能夠把數據價值發(fā)揮出多少。

    業(yè)務層

    業(yè)務層的主要工作是考慮如何利用數據和算法,解決具體的業(yè)務問題。業(yè)務層和數據層應該是一個相互驅動的關系。業(yè)務會基于用戶的需求,對數據層的技術提出更高的要求。技術也需要不斷提升,反向為業(yè)務去提供更好的架構基礎、算法能力。因此,單純的技術驅動和產品驅動都是不夠的,只有技術和產品相結合才能發(fā)揮最大的價值。

    如果從技術層面看,業(yè)務層面對的技術壓力是來自于直接的用戶訪問。因此,傳統互聯網公司的微服務化,緩存策略,消息訂閱等技術在這一層是很適用的。同時,物聯網的業(yè)務還是很有自身的特點:比如會有大量的實時計算需求,去快速的給客戶反映當前的情況。我們生成的各種事件報警,都離不開要設計實時流式處理的算法,需要不斷對一段時間的數據進行統計,也是一大特點。物聯網的數據有明顯的時間序列性和位置相關性。因此,基于這兩個特點的業(yè)務會特別多,都需要用專門的技術方案來支持。

    展現層

    展現層就是用戶界面。在G7這一層會更加偏重于數據的展現?;氐絼偛耪f到的物聯網數據兩大特性:時間序列性和位置相關性。實際上這兩個特性在從數據層開始,再到業(yè)務層和展現層,都在影響著我們的設計。因此,展現層需要去考慮:如何針對兩個特點去進行數據UI組件的設計。另外,物聯網中有很多大數據分析,對大數據的直觀展現,也是展現層需要考慮的問題。


    如何支持業(yè)務快速創(chuàng)新


    如上文所說,物聯網領域的技術開發(fā)是一個長鏈條,高復雜度的過程,而G7又是一家不斷的在進行業(yè)務創(chuàng)新的公司,如何通過良好的架構設計來支持快速的業(yè)務創(chuàng)新,是我們必須要去深入思考的問題。

    我們也在這個問題上經過一段時間的探索,并得到了兩個基本認知:

    • 小團隊自包含是支持快速創(chuàng)新的唯一保證

    • 需要通過一個強大的平臺來提供小團隊自包含所需要的各項能力

    第一點很容易理解,無論有多好的過程管理,跨團隊協作也比不上一只自包含的團隊,我們需要思考的是如何讓這個團隊真正的能做到自包含,需要為這個小團隊提供什么能力來提高他們的速度。

    我們給出的答案是IoT PaaS平臺和IoT業(yè)務中臺,下面分別解釋一下這兩個平臺的作用。


    IoT PaaS


    PaaS不是新的概念,但基于IoT的PaaS應該如何打造,我們認為IoT的PaaS應該具備5個能力:

    • 設備接入能力:通過可自動伸縮的容器化技術,提供統一的的連接管理和監(jiān)控能力,僅僅把協議解析的核心代碼部分暴露出來給到業(yè)務方自行開發(fā)。

    • 數據獲取能力:通過一個統一的消息隊列來讓業(yè)務方能夠自行獲取數據,業(yè)務可按照自己需要的方式來進行處理。

    • 數據存儲能力:提供統一的數據庫存儲方案,集中為業(yè)務解決物聯網的海量時序數據存儲問題。

    • 實時計算能力:提供統一的流式計算平臺,讓業(yè)務方可以在此之上自行進行實時計算,不用考慮資源問題。

    • 離線計算能力:提供統一的離線計算平臺,使大數據處理和任務調度也變得容易。

    為此,我們提供了5個平臺來提供上面所說的5個能力,分別是Eacoon, GMQ, CubeDB , GLink和GStove。

    所有平臺提供統一的運維保障,而業(yè)務可以基于這一套平臺實現從接入到處理到存儲的一站式處理,真正實現小團隊自包含。


    IoT業(yè)務中臺


    上一節(jié)中的IoT PaaS體系實現了創(chuàng)新業(yè)務的自包含開發(fā),但與此同時,我們還要去抽取這些業(yè)務的共性部分,進一步簡化業(yè)務開發(fā)的工作量,IoT業(yè)務中臺因此應運而生。

    IoT業(yè)務中臺是對IoT業(yè)務的高度抽象,從抽象程度的由低到高包含三層即:設備抽象,車輛抽象和物流業(yè)務抽象。

    設備抽象:目的是把遠程的設備變成在平臺上的一個設備實體,可以簡單的對其進行操控和數據的獲取。

    車輛抽象:在這個層面上我們開始忽略設備本身,設備只是去獲取車輛數據的方式,通過這個抽象我們能夠以車輛的維度來控制和獲取數據,而無需關心上面裝了什么設備。

    物流業(yè)務抽象:在這個層面上我們通過對車上數據的理解,把其轉換成物流業(yè)務的維度,包括當前站點,任務狀態(tài),司機狀態(tài),道路偏離等。


    因此,G7的IOT業(yè)務中臺,就是要把這幾層抽象不斷的完善,做到極致,通過這幾個層面的抽象,也能夠使得業(yè)務在開發(fā)的時候,能夠很多的現有的抽象可以使用,而不需要從頭做起,從而極大的提高業(yè)務開發(fā)的效率。

    總結:

    本文總體介紹了物聯網平臺的技術特點,也簡單闡述了一個成熟的物聯網架構的基本思想和架構方法,希望能夠使大家更加清楚一個合理的物聯網架構的形態(tài),里面的細節(jié)我們后續(xù)再展開討論。

    作者簡介:趙云濤,從事軟件技術十多年,經歷了企業(yè)開發(fā)、互聯網、移動互聯網、物聯網+AI多個技術大潮。曾任職于搜狐,聯想,阿里巴巴,現為G7技術合伙人,負責G7 IoT平臺和管車軟件平臺研發(fā)。




    掃一掃在手機上閱讀本文章

    版權所有? 四川中衛(wèi)北斗科技有限公司    蜀ICP備14007264號-3    技術支持: 竹子建站
    国产在线不卡一区无码视频,一区 二区 欧美 日韩 动漫精品,日韩人妻无码一区二区三区,四虎国产精品永久在线观看
    <menu id="4i6sg"><em id="4i6sg"></em></menu>
    <dfn id="4i6sg"><code id="4i6sg"></code></dfn>
  • <rt id="4i6sg"><code id="4i6sg"></code></rt>