什麼是邊緣計算

轉載自:https://blog.csdn.net/gui951753/article/details/80952907
注:本篇翻譯自施巍鬆教授的論文《Edge Computing : Vision and Challenges》

目錄

摘要

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

簡介

雲計算自從它與2005年提出之後,就開始逐步的改變我們生活、學習、工作的方式。生活中經常用到的google、facebook等軟件提供的服務就是典型的代表。並且,可伸縮的基礎設施和能夠支持雲服務的處理引擎也對我們運營商業的模式產生了一定的影響,比如,hadoop、spark等等。
物聯網的快速發展讓我們進入了後雲時代,在我們的日常生活中會產生大量的數據。思科估計到2019年會有將近500億的事物連接到互聯網。物聯網應用可能會要求極快的響應時間,數據的私密性等等。如果把物聯網產生的數據傳輸給雲計算中心,將會加大網絡負載,網路可能造成擁堵,並且會有一定的數據處理延時。
隨着物聯網和雲服務的推動,我們假設了一種新的處理問題的模型,邊緣計算。在網絡的邊緣產生、處理、分析數據。接下來的文章會介紹爲什麼需要邊緣計算,相關定義。有關雲卸載和智慧城市的一些研究,有關邊緣計算下的編程、命名、數據抽象、服務管理、數據私密和安全性的問題也會在下文討論。

什麼是邊緣計算

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

爲什麼需要邊緣計算

  • 雲服務的推動:雲中心具有強大的處理性能,能夠處理海量的數據。但是,將海量的數據傳送到雲中心成了一個難題。雲計算模型的系統性能瓶頸在於網絡帶寬的有限性,傳送海量數據需要一定的時間,雲中心處理數據也需要一定的時間,這就會加大請求響應時間,用戶體驗極差。

  • 物聯網的推動:現在幾乎所有的電子設備都可以連接到互聯網,這些電子設備會後產生海量的數據。傳統的雲計算模型並不能及時有效的處理這些數據,在邊緣結點處理這些數據將會帶來極小的響應時間、減輕網絡負載、保證用戶數據的私密性。

  • 終端設備的角色轉變:終端設備大部分時間都在扮演數據消費者的角色,比如使用智能手機觀看愛奇藝、刷抖音等。然而,現在智能手機讓終端設備也有了生產數據的能力,比如在淘寶購買東西,在百度裏搜索內容這些都是終端節點產生的數據。

下面兩幅圖,圖1是傳統雲計算模型下的範式,最左側是服務提供者來提供數據,上傳到雲中心,終端客戶發送請求到雲中心,雲中心響應相關請求併發送數據給終端客戶。終端客戶始終是消費者的角色。
圖2是現在物聯網快速發展下的邊緣計算範式。邊緣結點(包括智能家電、手機、平板等)產生數據,上傳到雲中心,服務提供商也產生數據上傳到雲中心。邊緣結點發送請求到雲中心,雲中心返還相關數據給邊緣結點。
這裏寫圖片描述
圖1 雲計算範式
這裏寫圖片描述
圖2 邊緣計算範式

什麼是邊緣計算

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

邊緣計算的優點

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

案例研究

雲卸載

在傳統的內容分發網絡中,數據都會緩存到邊緣結點,隨着物聯網的發展,數據的生產和消費都是在邊緣結點,也就是說邊緣結點也需要承擔一定的計算任務。把雲中心的計算任務卸載到邊緣結點這個過程叫做雲卸載。
舉個例子,移動互聯網的發展,讓我們得以在移動端流暢的購物,我們的購物車以及相關操作(商品的增刪改查)都是依靠將數據上傳到雲中心才能得以實現的。如果將購物車的相關數據和操作都下放到邊緣結點進行,那麼將會極大提高響應速度,增強用戶體驗。通過減少延遲來提高人與系統的交互質量。

視頻分析

隨着移動設備的增加,以及城市中攝像頭布控的增加,利用視頻來達成某種目的成爲一種合適的手段,但是雲計算這種模型已經不適合用於這種視頻處理,因爲大量數據在網絡中的傳輸可能會導致網絡擁塞,並且視頻數據的私密性難以得到保證。
因此,提出邊緣計算,讓雲中心下放相關請求,各個邊緣結點對請求結合本地視頻數據進行處理,然後只返回相關結果給雲中心,這樣既降低了網絡流量, 也在一定程度上保證了用戶的隱私。
舉例而言,有個小孩兒在城市中丟失,那麼雲中心可以下放找小孩兒這個請求到各個邊緣結點,邊緣結點結合本地的數據進行處理,然後返回是否找到小孩兒這個結果。相比把所有視頻上傳到雲中心,並讓雲中心去解決,這種方式能夠更快的解決問題。

智能家居

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

智慧城市

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

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

邊緣協作

由於數據隱私性問題和數據在網絡中傳輸的成本問題,有一些數據是不能由雲中心去處理的,但是這些數據有時候又需要多個部門協同合作才能發揮它最大的作用。於是,我們提出了邊緣協同合作的概念,利用多個邊緣結點協同合作,創建一個虛擬的共享數據的視圖,利用一個預定義的公共服務接口來將這些數據進行整合,同時,通過這個數據接口,我們可以編寫應用程序爲用戶提供更復雜的服務。
舉個多個邊緣結點協同合作共贏的例子。比如流感爆發的時候,醫院作爲一個邊緣結點與藥房、醫藥公司、政府、保險行業等多個節點進行數據共享,把當前流感的受感染人數、流感的症狀、治療流感的成本等共享給以上邊緣結點。藥房通過這些信息有針對性的調整自己的採購計劃,平衡倉庫的庫存;醫藥公司則能通過共享的數據得知哪些爲要緊的藥品,提升該類藥品生產的優先級;政府向相關地區的人們提高流感警戒級別,此外,還可以採取進一步的行動來控制流感爆發的蔓延;保險公司根據這次流感程度的嚴峻性來調整明年該類保險的售價。總之,邊緣結點中的任何一個節點都在這次數據共享中得到了一定的利益。

機遇和挑戰

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

編程可行性

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

命名

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

數據抽象

在物聯網環境中會有大量的數據生成,並且由於物聯網網絡的異構環境,生成的數據是各種格式的,把各種各樣的數據格式化對邊緣計算來說是一個挑戰。同時,網絡邊緣的大部分事物只是週期性的收集數據,定期把收集到的數據發送給網關,而網關中的存儲是有限的,他只能存儲最新的數據,因此邊緣結點的數據會被經常刷新。利用集成的數據表來存儲感興趣的數據,表內部的結構可以如圖4所示,用id、時間、名稱、數據等來表示數據。
這裏寫圖片描述
圖4 相應表結構
如果篩選掉過多的原始數據,將導致邊緣結點數據報告的不可靠,如果保留大量的原始數據,那麼邊緣結點的存儲又將是新的問題;同時這些數據應該是可以被引用程序讀寫和操作的,由於物聯網中事物的異構性,導致數據庫的讀寫和操作會存在一定的問題。

服務管理

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

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

私密性

現存的提供服務的方法是手機終端用戶的數據並上傳到雲端,然後利用雲端強大的處理能力去處理任務,在數據上傳的過程中,數據很容易被別有用心的人收集到。爲了保證數據的私密性,我們可以從以下這些方面入手。
1,在網絡的邊緣處理用戶數據,這樣數據就只會在本地被存儲、分析和處理。
2,對於不同的應用設置權限,對私密數據的訪問加以限制。
3,邊緣的網絡是高度動態化的網絡,需要有效的工具保護數據在網絡中的傳輸。

最優化指標

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

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

小結

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章