1. 程式人生 > >邊緣計算:願景和挑戰

邊緣計算:願景和挑戰

一、摘要

物聯網技術的快速發展和雲服務的推動使得雲端計算模型已經不能很好的解決現在的問題,於是,這裡給出一種新型的計算模型,邊緣計算。邊緣計算指的是在網路的邊緣來處理資料,這樣能夠減少請求響應時間、提升電池續航能力、減少網路頻寬同時保證資料的安全性和私密性。這篇文章會通過一些案例來介紹邊緣計算的相關概念,內容包括雲解除安裝、智慧家居、智慧城市協同邊緣節點實現邊緣計算。希望這篇文章能夠給你一些啟發並讓更多的人投入邊緣計算的研究中來。

二、簡介

雲端計算自從它與2005年提出之後,就開始逐步的改變我們生活、學習、工作的方式。生活中經常用到的google、facebook等軟體提供的服務就是典型的代表。並且,可伸縮的基礎設施和能夠支援雲服務的處理引擎也對我們運營商業的模式產生了一定的影響,比如,hadoop、spark等等。 

物聯網的快速發展讓我們進入了後雲時代,在我們的日常生活中會產生大量的資料。思科估計到2019年會有將近500億的事物連線到網際網路。物聯網應用可能會要求極快的響應時間,資料的私密性等等。如果把物聯網產生的資料傳輸給雲端計算中心,將會加大網路負載,網路可能造成擁堵,並且會有一定的資料處理延時。 

隨著物聯網和雲服務的推動,我們假設了一種新的處理問題的模型,邊緣計算。在網路的邊緣產生、處理、分析資料。接下來的文章會介紹為什麼需要邊緣計算,相關定義。有關雲解除安裝和智慧城市的一些研究,有關邊緣計算下的程式設計、命名、資料抽象、服務管理、資料私密和安全性的問題也會在下文討論。

三、什麼是邊緣計算

在網路邊緣產生的資料正在逐步增加,如果我們能夠在網路的邊緣結點去處理、分析資料,那麼這種計算模型會更高效。許多新的計算模型正在不斷的提出,因為我們發現隨著物聯網的發展,雲端計算並不總是那麼高效的。接下來文章中將會列出一些原因來證明為什麼邊緣計算能夠比雲端計算更高效,更優秀。

3.1 為什麼需要邊緣計算

  • 雲服務的推動:雲中心具有強大的處理效能,能夠處理海量的資料。但是,將海量的資料傳送到雲中心成了一個難題。雲端計算模型的系統性能瓶頸在於網路頻寬的有限性,傳送海量資料需要一定的時間,雲中心處理資料也需要一定的時間,這就會加大請求響應時間,使用者體驗極差。
  • 物聯網的推動:現在幾乎所有的電子裝置都可以連線到網際網路,這些電子裝置會後產生海量的資料。傳統的雲端計算模型並不能及時有效的處理這些資料,在邊緣結點處理這些資料將會帶來極小的響應時間、減輕網路負載、保證使用者資料的私密性
  • 終端裝置的角色轉變:終端裝置大部分時間都在扮演資料消費者的角色,比如使用智慧手機觀看愛奇藝、刷抖音等。然而,現在智慧手機讓終端裝置也有了生產資料的能力,比如在淘寶購買東西,在百度裡搜尋內容這些都是終端節點產生的資料。

下面兩幅圖,圖1是傳統雲端計算模型下的正規化,最左側是服務提供者來提供資料,上傳到雲中心,終端客戶傳送請求到雲中心,雲中心響應相關請求併發送資料給終端客戶。終端客戶始終是消費者的角色。 

圖2是現在物聯網快速發展下的邊緣計算正規化。邊緣結點(包括智慧家電、手機、平板等)產生資料,上傳到雲中心,服務提供商也產生資料上傳到雲中心。邊緣結點發送請求到雲中心,雲中心返還相關資料給邊緣結點。 


圖1 雲端計算正規化 
 
圖2 邊緣計算正規化

3.2 什麼是邊緣計算

邊緣計算指的是在網路邊緣結點來處理、分析資料。這裡,我們給出邊緣結點的定義,邊緣結點指的就是在資料產生源頭和雲中心之間任一具有計算資源和網路資源的結點。比如,手機就是人與雲中心之間的邊緣結點,閘道器是智慧家居和雲中心之間的邊緣結點。在理想環境中,邊緣計算指的就是在資料產生源附近分析、處理資料,沒有資料的流轉,進而減少網路流量和響應時間

3.3 邊緣計算的優點

  • 在人臉識別領域,響應時間由900ms減少為169ms
  • 把部分計算任務從雲端解除安裝到邊緣之後,整個系統對能源的消耗減少了30%-40%。
  • 資料在整合、遷移等方面可以減少20倍的時間。

四、案例研究

4.1 雲解除安裝

在傳統的內容分發網路中,資料都會快取到邊緣結點,隨著物聯網的發展,資料的生產和消費都是在邊緣結點,也就是說邊緣結點也需要承擔一定的計算任務。把雲中心的計算任務解除安裝到邊緣結點這個過程叫做雲解除安裝。 

舉個例子,移動網際網路的發展,讓我們得以在移動端流暢的購物,我們的購物車以及相關操作(商品的增刪改查)都是依靠將資料上傳到雲中心才能得以實現的。如果將購物車的相關資料和操作都下放到邊緣結點進行,那麼將會極大提高響應速度,增強使用者體驗。通過減少延遲來提高人與系統的互動質量。

4.2 視訊分析

隨著移動裝置的增加,以及城市中攝像頭布控的增加,利用視訊來達成某種目的成為一種合適的手段,但是雲端計算這種模型已經不適合用於這種視訊處理,因為大量資料在網路中的傳輸可能會導致網路擁塞,並且視訊資料的私密性難以得到保證。 

因此,提出邊緣計算,讓雲中心下放相關請求,各個邊緣結點對請求結合本地視訊資料進行處理,然後只返回相關結果給雲中心,這樣既降低了網路流量, 也在一定程度上保證了使用者的隱私。 

舉例而言,有個小孩兒在城市中丟失,那麼雲中心可以下放找小孩兒這個請求到各個邊緣結點,邊緣結點結合本地的資料進行處理,然後返回是否找到小孩兒這個結果。相比把所有視訊上傳到雲中心,並讓雲中心去解決,這種方式能夠更快的解決問題。

4.3 智慧家居

物聯網的發展讓普通人家裡的電子器件都變得活潑了起來,僅僅讓這些電子器件連上網路是不夠的,我們需要更好的利用這些電子元件產生的資料,並利用這些資料更好的為當前家庭服務。考慮到網路頻寬和資料私密保護,我們需要這些資料最好僅能在本地流通,並直接在本地處理即可。我們需要閘道器作為邊緣結點,讓它自己消費家庭裡所產生的資料。同時由於資料的來源有很多(可以是來自電腦、手機、感測器等任何智慧裝置),我們需要定製一個特殊的OS,以至於它能把這些抽象的資料揉和在一起並能有機的統一起來。

4.4 智慧城市

邊緣計算的設計初衷是為了讓資料能夠更接近資料來源,因此邊緣計算在智慧城市中有以下幾方面優勢:

  • 海量資料處理:在一個人口眾多的大城市中,無時無刻不在產生著大量的資料,而這些資料如果通通交由雲中心來處理,那麼將會導致巨大的網路負擔,資源浪費嚴重。如果這些資料能夠就近進行處理,在資料來源所在的區域網內進行處理,那麼網路負載就會大幅度降低,資料的處理能力也會有進一步的提升。
  • 低延遲:在大城市中,有很多服務是要求具有實時特性的,這就要求響應速度能夠儘可能的進一步提升。比如醫療和公共安全方面,通過邊緣計算,將減少資料在網路中傳輸的時間,簡化網路結構,對於資料的分析、診斷和決策都可以交由邊緣結點來進行處理,從而提高使用者體驗。
  • 位置感知:對基於位置的一些應用來說,邊緣計算的效能要優於雲端計算。比如導航,終端裝置可以根據自己的實時位置把相關位置資訊和資料交給邊緣結點來進行處理、邊緣結點基於現有的資料進行判斷和決策。整個過程中的網路開銷都是最小的。使用者請求得以極快的得到響應。

4.5 邊緣協作

由於資料隱私性問題和資料在網路中傳輸的成本問題,有一些資料是不能由雲中心去處理的,但是這些資料有時候又需要多個部門協同合作才能發揮它最大的作用。於是,我們提出了邊緣協同合作的概念,利用多個邊緣結點協同合作,建立一個虛擬的共享資料的檢視,利用一個預定義的公共服務介面來將這些資料進行整合,同時,通過這個資料介面,我們可以編寫應用程式為使用者提供更復雜的服務。 

舉個多個邊緣結點協同合作共贏的例子。比如流感爆發的時候,醫院作為一個邊緣結點與藥房、醫藥公司、政府、保險行業等多個節點進行資料共享,把當前流感的受感染人數、流感的症狀、治療流感的成本等共享給以上邊緣結點。藥房通過這些資訊有針對性的調整自己的採購計劃,平衡倉庫的庫存;醫藥公司則能通過共享的資料得知哪些為要緊的藥品,提升該類藥品生產的優先順序;政府向相關地區的人們提高流感警戒級別,此外,還可以採取進一步的行動來控制流感爆發的蔓延;保險公司根據這次流感程度的嚴峻性來調整明年該類保險的售價。總之,邊緣結點中的任何一個節點都在這次資料共享中得到了一定的利益。

五、機遇和挑戰

以上是邊緣計算在解決相關問題的潛力和展望,接下來會分析在實現邊緣計算的過程中將要面臨的機遇和挑戰。

5.1 程式設計可行性

在雲端計算平臺程式設計是非常便捷的,因為雲有特定的編譯平臺,大部分程式都可以在雲上跑。但是邊緣計算下的程式設計就會面臨一個問題,平臺異構問題,每一個網路的邊緣都是不一樣的,有可能是ios系統,也有可能是安卓或者linux等等,不同平臺下的程式設計又是不同的。因此我們提出了計算流的概念,計算流是資料傳播路徑上的函式序列/計算序列,可以通過應用程式指定計算髮生在資料傳播路徑中的哪個節點。計算流可以幫助使用者確定應該完成哪些功能/計算,以及在計算髮生在邊緣之後如何傳播資料。通過部署計算流,可以讓計算儘可能的接近資料來源。

5.2 命名

命名方案對於程式設計、定址、事物識別和資料通訊非常重要,但是在邊緣計算中還沒有行之有效的資料處理方式。邊緣計算中事物的通訊是多樣的,可以依靠wifi、藍芽、2.4g等通訊技術,因此,僅僅依靠tcp/ip協議棧並不能滿足這些異構的事物之間進行通訊。邊緣計算的命名方案需要處理事物的移動性,動態的網路拓撲結構,隱私和安全保護,以事物的可伸縮性。傳統的命名機制如DNS(域名解析服務)、URI(統一資源標誌符)都不能很好的解決動態的邊緣網路的命名問題。目前正在提出的NDN(命名分發網路)解決此類問題也有一定的侷限性。在一個相對較小的網路環境中,我們提出一種解決方案,如圖3所示,我們描述一個事物的時間、地點以及正在做的事情,這種統一的命名機制使得管理變得非常容易。當然,當環境上升到城市的高度的時候,這種命名機制可能就不是很合適了,還可以進行進一步的討論。 
 
圖3 命名機制

5.3 資料抽象

在物聯網環境中會有大量的資料生成,並且由於物聯網網路的異構環境,生成的資料是各種格式的,把各種各樣的資料格式化對邊緣計算來說是一個挑戰。同時,網路邊緣的大部分事物只是週期性的收集資料,定期把收集到的資料傳送給閘道器,而閘道器中的儲存是有限的,他只能儲存最新的資料,因此邊緣結點的資料會被經常重新整理。利用整合的資料表來儲存感興趣的資料,表內部的結構可以如圖4所示,用id、時間、名稱、資料等來表示資料。 
 
圖4 相應表結構 

如果篩選掉過多的原始資料,將導致邊緣結點資料報告的不可靠,如果保留大量的原始資料,那麼邊緣結點的儲存又將是新的問題;同時這些資料應該是可以被引用程式讀寫和操作的,由於物聯網中事物的異構性,導致資料庫的讀寫和操作會存在一定的問題。

5.4 服務管理

邊緣結點的服務管理我們認為應該有以下四個特徵:包括差異化、可擴充套件性、隔離性和可靠性,進而保證一個高效可靠的系統。

  • 差異化:隨著物聯網的發展,會有這種各樣的服務,不同的服務應該有差異化的優先順序。比如,有關事物判斷和故障警報這樣的關鍵服務就應該高於其它一般服務,有關人類身體健康比如心跳檢測相關的服務就要比娛樂相關服務的優先順序要高一些。
  • 可擴充套件性:物聯網中的物品都是動態的,向物聯網中新增或刪除一件物品都不是那麼容易的,服務缺少或者增加一個新的結點能否適應都是待解決的問題,這些問題可以通過對邊緣os的高擴充套件和靈活的設計來解決。
  • 隔離性:所謂隔離性是指,不同的操作之間互不干擾。舉例而言,有多個應用程式可以控制家庭裡面的燈光,有關控制燈光的資料是共享的,當有某個應用程式不能響應時,使用其他的應用程式依然能夠控制燈光。也就是說這些應用程式之間是相互獨立的,互相併沒有影響;隔離性還要求使用者資料和第三方應用是隔離的,也就是說應用不應該能夠跟蹤使用者的資料並記錄下來,為了解決該問題,應當新增一種全新的應用訪問使用者資料的方式。
  • 可靠性:可靠性可以從服務、系統和資料三方面來談論。
    • 從服務方面來說,網路拓撲中任意節點的丟失都有可能導致服務的不可用,如果邊緣系統能夠提前檢測到具有高風險的節點那麼就可以避免這種風險。較好的一種實現方式是使用無線感測器網路來實時監測伺服器叢集。
    • 從系統角度來看,邊緣作業系統是維護整個網路拓撲的重要一部分內容。節點之間能夠互通狀態和診斷資訊。這種特徵使得在系統層面部署故障檢測、節點替換、資料檢測等十分的方便。
    • 從資料角度來看,可靠性指的是資料在感測和通訊方面是可靠地。邊緣網路中的節點有可能會在不可靠的時候報告資訊,比如當感測器處於電量不足的時候就極有可能導致傳輸的資料不可靠。為解決此類問題可能要提出新的協議來保證物聯網在傳輸資料時的可靠性。

5.5 私密性

現存的提供服務的方法是手機終端使用者的資料並上傳到雲端,然後利用雲端強大的處理能力去處理任務,在資料上傳的過程中,資料很容易被別有用心的人收集到。為了保證資料的私密性,我們可以從以下這些方面入手。 

  1. 在網路的邊緣處理使用者資料,這樣資料就只會在本地被儲存、分析和處理。 
  2. 對於不同的應用設定許可權,對私密資料的訪問加以限制。 
  3. 邊緣的網路是高度動態化的網路,需要有效的工具保護資料在網路中的傳輸。

5.6 最優化指標

在邊緣計算當中,由於節點眾多並且不同節點的處理能力是不同的,因此,在不同的節點當中選擇合適的排程策略是非常重要的。接下來從延遲、頻寬、能耗和花費這四個方面來討論最優化的指標。

  • 延遲: 很明顯雲中心具有強大的處理能力,但是網路延遲並不單單是處理能力決定的,也會結合資料在網路中傳輸的時間。拿智慧城市距離來說,如果要尋找丟失的小孩兒資訊,在本地的手機處理,然後把處理結果返回給雲明顯能加快響應速度。當然,這種事情也是相對而言的,我們需要放一個邏輯判斷層,來判斷把任務交給哪一個節點處理合適,如果此時手機正在打遊戲或者處理其他非常重要的事情,那麼手機就不是很適合處理這種任務,把這種任務交給其他層次來處理會更好些。
  • 頻寬:高頻寬傳輸資料意味著低延遲,但是高頻寬也意味著大量的資源浪費。資料在邊緣處理有兩種可能,一種是資料在邊緣完全處理結束,然後邊緣結點上傳處理結果到雲端;另外一種結果是資料處理了一部分,然後剩下的一部分內容將會交給雲來處理。以上兩種方式的任意一種,都能極大的改善網路頻寬的現狀,減少資料在網路中的傳輸,進而增強使用者體驗。
  • 能耗:對於給定的任務,需要判定放在本地運算節省資源還是傳輸給其他節點計算節省資源。如果本地空閒,那麼當然在本地計算是最省資源的,如果本地正在忙碌狀態,那麼把計算任務分給其他節點會更合適一些。權衡好計算消耗的能源和網路傳輸消耗的能源是一件非常重要的事情。一般當網路傳輸消耗的資源遠小於在本地計算消耗的能源時,我們會考慮使用邊緣計算把計算任務解除安裝到其他空閒的節點上,幫助實現負載均衡,保證每一個結點的高效能。
  • 花費:目前在邊緣計算上的花費包括但不限於邊緣結點的構建和維護新型模型的開發等。利用邊緣計算的模型,大型的服務提供商在處理相同工作的情況下能夠獲取到更大的利潤。

六、小結

物聯網的發展和雲端計算的推動使得邊緣計算的模型出現在社群之中。在邊緣結點處理資料能夠提高響應速度,減少頻寬,保證使用者資料的私密性。這篇文章當中,我們提出了邊緣計算可能在以後的生活中一些相關場景的運用,也提到了邊緣計算以後發展的展望和挑戰。希望以後有更多的同僚能夠關注到這麼一個領域。

 

轉自:https://blog.csdn.net/gui951753/article/details/80952907#comments

注:本篇翻譯自施巍鬆教授的論文《Edge Computing : Vision and Challenges》