
原文作者:施巍松教授
原文作者:施巍松教授
當前全球數字化浪潮蓬勃興起,邊緣計算通過就近提供計算,網絡,智能等關鍵能力;加速賦能經濟轉型升級,已逐步成為計算體系的新方向,信息領域的新業態,產業轉型的新平台,整體上處於高速發展階段。邊緣計算概念普及加速走向務實部署,受到了學術界和產業界的廣泛關注。
二級標題
二級標題
01什麼是邊緣計算
隨著網絡邊緣產生的數據量不斷增加,直接在網絡的邊緣進行數據處理會更加高效。之前已經有人提出了微數據中心,微雲,霧計算等概念,本節我們將解釋什麼是邊緣計算以及針對某些計算服務,為什麼邊緣計算比雲計算更有效。
將所有的計算任務放到雲端執行是一種有效的方式,因為雲端計算能力比邊緣設備強很多。雖然數據處理速度很快,但是網絡帶寬卻很有限。隨著數據不斷增多,數據傳輸速度變成了提升雲計算能力的瓶頸。例如,一架波音787客機每秒會產生5G數據,但是飛機與衛星或基站之間的帶寬卻不能容納這麼大的數據傳輸量。一輛自動駕駛汽車每秒能產生1G數據,同時需要對數據進行實時處理並做出正確的動作。如果將全部數據傳到雲端進行處理,響應時間將會變得非常長,而且支持某片區域內的眾多汽車同時工作對當前的網絡帶寬及可靠性來說也是一個巨大挑戰。因此,這就需要在網絡邊緣設備上直接對數據進行處理。
幾乎所有的電子設備都將成為物聯網的一部分,它們將扮演著數據製造者和消費者的角色,如空氣質量傳感器,路燈,微波爐等等。這些設備數量眾多,它們會產生大量數據,因此傳統雲計算方法將無法支持如此巨大的數據。所以物聯網設備產生的大量數據就不能全部傳到雲端,它們需要直接在網絡邊緣進行處理。
上圖顯示了傳統雲計算的結構。數據製造者生成原始數據並傳到雲端,數據消費者向雲端發送請求然後使用數據。但是這種結構無法滿足物聯網時代的需求。首先,設備產生的數據量太大,會導致大量不必要的帶寬和資源消耗。第二,對保護隱私的需求也阻礙了雲計算的應用。第三,大多數物聯網終端節點都是能量有限的設備,可能由電池供電,而無線通信模塊通常比較耗能,所以直接在邊緣節點上執行一些計算任務是非常有效的。
在雲計算範式中,邊緣上的終端設備通常扮演數據消費者的角色,例如在智能手機上看YouTube視頻。但是現在人們還扮演著數據製造者的身份,它們利用智能手機拍照片,拍視頻,然後分享到YouTube,Facebook,Twitter等等。但是這些圖片和視頻的數據量太大,如果直接傳到網上將佔用大量帶寬。所以可以直接在終端對圖片和視頻進行調整,然後再上傳雲端。另一個例子是可穿戴健康設備,這些設備收集的數據可能比較隱私,因此直接在設備上處理數據而不是上傳雲端會更好地保護數據隱私。
邊緣計算是一種使能技術,它可以在網絡邊緣對物聯網服務的上行數據及雲服務的下行數據進行計算。這裡的“邊緣”指的是在數據源與雲端數據中心之間的任何計算及網絡資源。例如,智能手機就是個人與雲端的“邊緣”,而智能家居中的網關就是家庭設備與雲端的“邊緣”。邊緣計算的基本原理就是在靠近數據源的地方進行計算。從這一點來看,邊緣計算與霧計算類似,但是邊緣計算更側重“物”一側,而霧計算則更側重基礎結構方面。我們認為邊緣計算會像雲計算一樣對我們的社會產生巨大的影響。
二級標題
二級標題
02相關案例
在雲計算範式中,大多數計算發生在雲端,這種計算範式可能導致較長的系統延遲,從而降低用戶體驗。在邊緣計算中,邊緣有一定的計算資源,可以幫助雲端分擔一部分計算任務。
在傳統的內容分發網絡(CDN)中,只有數據緩存在邊緣服務器上。因為在過去的幾十年間,都是內容提供者直接將數據提供在網上。但是在物聯網時代,數據由邊緣製造並消費。所以在邊緣計算中,數據以及對於數據的操作都需要緩存在邊緣上。
邊緣計算的一個優點可以體現在在線購物服務中。消費者可能經常操作購物車,默認情況下,對購物車的操作會在雲端完成,然後更新用戶端的購物車界面。根據網速和服務器負荷情況,這個過程可能需要很長時間,對於移動設備來說需要的時間可能更長。隨著在移動客戶端購物的情況越來越多,為了提升用戶體驗,可以將購物車更新操作移動到邊緣節點。正如前面所說,用戶購物車數據以及對購物車的操作都可以緩存在邊緣節點。當然用戶的購物車數據最終還要同步到雲端,但是這些可以在後台運行。
當用戶從一個邊緣節點移動到另一個邊緣節點,這就涉及多節點的協作問題。我們可以簡單將數據緩存到用戶到達的各個邊緣節點,不過各節點的同步問題就需要再進一步研究了。例如:在一小片區域內導航應用可以將導航或者搜索服務移動到邊緣;在邊緣節點進行內容過濾與整合從而減少數據傳輸量;實時應用如AR可以使用邊緣節點減少反應時間。因此,使用邊緣計算可以減少系統延遲,大大提升用戶體驗。
手機和網絡攝像頭的普及使得視頻分析變成一種新興技術。雲計算不適合做視頻分析,因為數據傳輸的延遲太長以及出於隱私問題的擔憂。這裡我們提到一個尋找丟失兒童的例子。現在城市裡有大量的攝像頭,當某兒童丟失時,他/她很可能被某個攝像頭捕捉到。但是由於隱私問題以及傳輸成本,這些攝像頭數據通常不能全部傳到雲端,所以我們很難利用如此大範圍的攝像頭。
即時可以從雲端訪問這些數據,傳輸和搜索如此大的數據量也會消耗大量時間,這對尋找丟失兒童來說可能是無法忍受的。我們可以利用邊緣計算範式,從雲端向目標區域內的設備發送搜索丟失兒童請求。特定區域內的每台設備,如智能手機會在本地攝像頭數據中進行搜索,然後只回傳搜索結果,這樣搜索時間將大大減少。
物聯網大大改善了家庭環境。市場上已經出現了一些相關產品,如智能燈,智能電視,掃地機器人等等。但是僅僅通過Wi-Fi等無線通信模塊將設備連到雲端還遠不是智能家居。在智能家居中,除了可連接的設備,還應該在房間,管道,地板,牆面等部署大量的傳感器和控制器。它們將產生大量數據,但是考慮到隱私問題和傳輸壓力,這些數據大多需要直接在本地使用。這就使得云計算不再適合智能家居,取而代之的將會是邊緣計算。通過在家庭網關上運行邊緣操作系統(EdgeOS),家庭設備可以連接到網關,然後部署相關服務進行統一管理。
圖3顯示了智能家居中的一種EdgeOS結構。 EdgeOS可以通過Wi-FI,藍牙,ZigBee,蜂窩網絡等收集屋內的各種數據。不同數據源會在數據抽象層進行融合。數據抽象層上面是服務管理層。這一層需要支持可區分性(Differentiation), 可擴展性(Extensibility),隔離(Isolation),可靠性(Reliability)。
邊緣計算範式可以應用在智能家居,社區甚至在城市裡。主要原因有以下幾點:
1.大數據量:據相關數據,一個擁有一百萬常住人口的城市每天將產生180PB的數據,這些數據來自於公共安全,醫療健康,交通運輸等等。建造一個集中式的雲數據中心來處理這些數據是不現實的。邊緣計算則是一個有效的解決方案。
2.低延遲:對於那些需要確定且低延遲時間的應用如醫療設備或者公共安全設備來說,邊緣計算也是一種合適的範式,它可以節省傳輸時間,簡化網絡結構。相比雲端處理來說,在邊緣進行數據處理,做決策也會更加高效。
3.位置感知:對於基於地理位置的應用如交通運輸設施管理,邊緣計算可以獲得更準確的位置信息。可以根據位置收集數據並處理,不需要傳到雲端。
在工業界和學術界,雲可以說是大數據處理的標準計算平台。雲計算要求數據傳到雲端進行處理,但在許多情況下,由於隱私問題和數據傳輸成本,擁有數據的利益相關者很少願意分享數據,因此多個利益相關者合作的機會有限。而邊緣作為一個小型數據中心,連接了雲端和終端用戶。協作式邊緣連接了多個不同邊緣。這種像眾議院一樣的連接方式可以讓不同利益相關者合作及分享數據。
在不久的將來,一個非常有價值的應用是可連接醫療健康應用,如圖4所示。舉個例子,假如流感爆發了,病人流向醫院,同時病人的電子病歷將會更新。醫院統計並分享流感爆發相關信息,如平均治療成本,症狀,患病人數等等。理論上病人會根據處方去藥房拿藥,但也有可能病人沒有遵醫囑進行治療,但是醫院並不知道病人沒有拿藥,所以醫院不得不擔負起再治療的責任。現在通過協作式邊緣,藥房可以向醫院提供病人的購藥記錄,從而使醫療責任更加清晰。
二級標題
二級標題
03機遇和挑戰
上一節我們介紹了幾個邊緣計算的應用實例。本節我們將總結邊緣計算的挑戰並提出一些值得進一步研究的解決方案。主要涉及可編程性,命名,數據抽象,服務管理,隱私和安全,以及優化指標。
1. 可編程性
雲計算中,用戶編寫程序並部署在雲端。雲提供者負責決定在哪裡執行計算任務。用戶並不知道應用是如何運行的,這也是雲計算的一個優點,雲計算的基礎設施結構對用戶來說是透明的。通常情況下由於程序只運行在雲端,是由一種編程語言完成並編譯到特定目標平台運行。但是在邊緣計算中,計算任務分到各種不同平台的邊緣節點上。不同節點運行時間不同,程序開發者面臨著巨大的困難。
為了解決邊緣計算的可編程性問題,我們提出了計算流的概念。它是指在數據傳播途徑上對數據的一系列操作。這些操作可以包含應用的全部或局部功能。計算流是由軟件定義的計算過程,可以在數據產生設備,邊緣節點以及雲環境上以一種分佈式的高效方式對數據進行處理。
2. 命名
2. 命名
在邊緣計算中,一個重要的假設是物的量非常大。在邊緣節點上運行著許多應用,每個應用都有自己的服務組織架構。與所有的計算機系統類似,在邊緣計算中,對於程序設計,尋址,物體識別以及數據通信來說,命名原理都是非常重要的。但是現階段對於邊緣計算範式來說還沒有確定一種高效的標準化的命名機制。為了與各種異構系統進行通信,邊緣開發者需要學習多種網絡通信協議。邊緣計算的命名原理需要解決物體的可移動性,網絡拓撲的高度變化性,隱私和安全保護以及對於大量不確定物體的可擴展性等問題。
傳統命名機制如DNS,URI可以滿足當前大多數網絡要求。但是它們的靈活性不高,無法服務於動態邊緣網絡。因為邊緣上的設備具有高度移動性且資源有限。對於那些資源有限的設備,也無法支持基於IP的命名原理。
新的命名機制如命名數據網絡(NDN)及MobilityFirst可以應用在邊緣計算中。 NDN提供了一種分層命名結構,它擁有很好的擴展性,良好的可讀性,便於服務管理。但是為了適合其它通信協議如藍牙,Zigbee等,還需為其添加額外的代理。 NDN的另一個問題是安全性,因為很難將設備硬件信息與服務提供者分離開來。為了提供更好的移動支持能力,MobilityFirst可以將名字與網絡地址分隔開,不過需要使用全球唯一標識符(GUID)。 MobilityFirst的另一個缺點是不便於服務管理,因為GUID的可讀性不好。
對於比較小的固定邊緣,如家庭環境,可以通過EdgeOS為每個設備分配網絡地址。在一個系統中,每個設備都有唯一一個人類可讀的名字,它描述了下列信息:位置,角色,數據描述。例如“廚房.微波爐.溫度”。
如圖5所示,EdgeOS會為其分配相應的標識符及地址。每個物體都有一個唯一的人類可讀的名字,從而便於服務管理,物體判斷,部件更換。這種命名機制對於用戶和服務提供者來說都是十分方便的。例如用戶會從EdgeOS接收到諸如“臥室天花板上的燈壞掉了”之類的信息,這樣用戶可以直接更換燈泡,不需要查找錯誤代碼或者為燈泡重新配置網絡地址。這種命名機制為服務提供者提供了更好的可編程性,屏蔽了硬件信息,從而更好地保護數據隱私及安全。唯一標識符與網絡地址可以與人類易讀的名字一一對應。 EdgeOS使用標識符進行物體管理。網絡地址如IP地址或MAC地址可以用來支持各種通信協議,如藍牙,WIFI,Zigbee等等。
3.數據抽象
EdgeOS上運行著各種應用,每種應用借助服務管理層API提供特定的服務。在無線傳感器網絡和雲計算範式中已經對數據抽象問題有了深入的研究。但是在邊緣計算中,這個問題變得更具挑戰性。在物聯網時代,網絡中存在大量數據產生設備。這裡我們舉智能家居為例,在智能家居環境中,幾乎所有的設備都會向EdgeOS發送數據。但是大多數網絡邊緣上的設備只會週期性地向網關發送數據。例如溫度計每隔一分鐘發送一次數據,但是在一天之內這些數據只會被真正的用戶使用幾次。另一個例子是家庭安防攝像頭。它會隨時記錄數據並發送到網關,但是這些數據會保存在數據庫中一段時間,並沒有人使用,最終被新數據取代。
根據上述情況,我們認為在邊緣計算中應該盡可能地減少人的介入,邊緣節點應該消費/處理全部的數據,並且以一種積極主動的方式與用戶進行交互。這種情況下,網關需要對數據進行預處理,例如噪聲去除,事件檢測以及隱私保護等等。處理後的數據將發到上層用於提供合適的服務。這個過程面臨幾個挑戰。
首先,如圖6所示,不同設備傳來的數據格式不同。考慮到隱私和安全問題,網關上的應用不應該獲取原始數據,它只需要從完整數據表中獲取感興趣的內容即可。數據表的格式可以是ID,時間,名字,數據(如0000,12:34:56pm 01/01/2022,kitchen.oven2.temperature3, 78)。但是傳感器數據被隱藏起來了,所以可能影響到數據可用性。第二,有時候很難決定數據抽象的程度。如果過濾掉太多的原始數據,某些應用或服務可能就無法獲取足夠的信息。但是如果保留太多原始數據,數據存儲也會很麻煩。有時候由於傳感器精度不高,環境不穩定或者通訊不正常,邊緣設備上的數據信息可能並不可靠,所以如何從不可靠的數據中抽像出有用信息也是一個挑戰。
收集數據是為應用服務的,為了完成特定的服務,應用需要對物體實施控制,如讀寫數據。數據抽象層將數據呈現方式以及相應的操作結合起來,並提供了一個公共接口。此外,由於設備的多樣性,數據的呈現方式與相應的操作都有所差異,所以找到一種通用的數據抽象方式也並非易事。
4.服務管理
對於網絡邊緣上的服務管理,為了保證系統穩定,我們認為需要具有以下幾個特性:可區分性,可擴展性,隔離,可靠性。
可區分性:隨著物聯網的快速發展,網絡邊緣上會部署多個服務。不同服務應該具有不同優先級,關鍵服務如物體判斷和失敗報警應該在其它普通服務之前執行。對於健康相關的服務,心跳停止檢測應該具有最高的優先級。
可擴展性:可擴展性對於網絡邊緣來說是一個巨大挑戰。相對於移動系統,物聯網中的設備更具動態性。用戶購買的新設備能否接入原系統將是一個首先要解決的問題。這些問題可以通過設計一個靈活可擴展的服務管理層來解決。
隔離:隔離是網絡邊緣需要解決的另一個問題。在移動系統中,如果應用崩潰了,整個系統將會重啟。在分佈式系統中,共享資源可以通過不同的同步機制如鎖或令牌環等進行管理。但是在EdgeOS中,這個問題會更複雜。
多個應用會共享相同的資源,例如對燈的控制。如果應用崩潰了或者沒有響應,用戶應該在不破壞整個EdgeOS的情況下依然可以對燈進行控制。當用戶從系統中移除控制燈的應用之後,燈仍然需要與EdgeOS保持連接。我們可以通過部署/取消部署框架解決這個問題。如果在應用安裝之前系統檢測到了衝突,就會向用戶發送警告,從而避免潛在的訪問問題。另一個問題是如何將用戶個人數據與第三方應用隔離開來。例如你的活動追踪應用不能訪問你的用電量數據。為了解決這個難題,我們可以在EdgeOS的服務管理層中加入一種訪問控制機制。
可靠性:可靠性也是一個重要問題。從服務的角度來看,有時候很難準確識別服務失敗的原因。例如,如果一台空調壞了,可能的原因有電源斷開,壓縮機故障,甚至溫度控制器電池耗盡。由於電池耗盡,連接條件惡劣或者部件磨損,傳感器節點可能會與系統失去連接。如果EdgeOS可以提醒用戶哪個部件無響應,或者提前警告用戶系統中的哪個部件有損壞的風險,這種用戶體驗非常好。從系統的角度來看,保持整個系統的網絡拓撲類型非常重要,系統中的每個部件都可以向EdgeOS發送狀態/診斷信息。這樣就可以很容易地部署錯誤檢測,設備替換以及數據質量檢測等服務。
從數據的角度來看,對可靠性的挑戰主要來自於傳感器數據和通信部分。正如之前研究和討論過的,網絡邊緣可能因為各種原因發生故障,發送不可靠的數據。我們也提到了許多用於物聯網數據收集的新型通信協議,它們可以支持大量傳感器節點和動態網絡條件。但是它們的連接可靠性沒有藍牙或者WIFI好。如果數據和通信不可靠,提供可靠的服務將是一個挑戰。
5.隱私和安全
在網絡邊緣,數據隱私和安全保護是一個重要服務。如果物聯網應用部署在家庭中,用戶的大量隱私數據會被收集。例如我們可以通過讀取電量和水量使用數據判斷家中是否有人。因此如何在不涉及隱私的情況下提供服務也是一個問題。有些隱私信息可以在處理數據之前剔除,例如遮蔽視頻中的面部。我們認為在邊緣數據源上進行計算,也就是在家裡,可能是一個不錯的保護隱私和數據安全的方法。
我們要提高對數據隱私和安全的意識。以WIFI網絡為例,在4.39億家庭網絡連接中,49%的WIFI網絡不安全,80%的家庭路由器使用默認密碼。 89%的公共WIFI熱點不安全。所有的利益相關者包括服務提供者,系統和應用開發者以及終端用戶都需要意識到用戶隱私有可能會受到侵害。如果不加防護的話,攝像頭,健康監測器甚至WIFI玩具都可能被他人連接。
第二個要提到的問題是數據的所有權。在移動應用中,終端用戶的數據由服務提供者保存和分析。但是讓數據留在產生數據的地方,讓用戶擁有數據可以更好地保護隱私。與健康數據類似,邊緣收集的用戶數據應該保存在邊緣並且由用戶決定是否提供給服務提供者。
第三個問題是在網絡邊緣上,保護隱私和數據安全的有效工具太少。有些設備的資源有限,當前的一些安全防護方法無法部署在上面。而且網絡邊緣環境多變,因而易受攻擊,不好防護。為了保護隱私,有些平台如移動醫療提出統一健康數據保存標準。但是對於邊緣計算來說,卻缺少處理各種數據的工具。
6.優化指標
在邊緣計算中,有多個層次具有計算能力。那麼應該如何分配工作負載呢?我們可以考慮以下幾個分配策略,如在每層均勻分配負載或者在每層完成盡可能多的任務。極端情況是完全在端點操作或者完全在雲端操作。為了選擇最佳的分配策略,本節我們將討論幾個優化指標,包括延遲,帶寬,能耗和成本。
延遲:延遲是衡量性能的最重要的指標之一,特別是在交互式應用或服務中。雲計算中的服務器可以提供強大的計算能力。他們可以在短時間內處理非常複雜的任務,如圖像處理,語音識別等等。但是延遲不是由計算時間決定的。長網絡延遲會對實時/交互式應用的行為產生深遠的影響。為了減少延遲,最好在最近的物理層完成工作。
例如在智能城市案例中,我們可以先用手機處理本地相片,然後只需向雲端發送丟失兒童相關信息即可,不需要上傳全部相片,因此這種方式速度更快。但是在最近的物理層處理工作並不總是最好的方式。我們需要考慮資源使用情況,避免不必要的等待時間,這樣才可以建立一個最佳的邏輯層次。比如當用戶正在玩遊戲時,由於手機的計算資源已經被佔用了,此時最好將相片傳至最近的網關或微中心進行處理。
帶寬:從延遲的角度來看,高帶寬可以減少傳輸時間。對於短距離傳輸,我們可以建立高帶寬來向邊緣發送數據。一方面,如果數據可以在邊緣進行處理,系統延遲將大大減少,同時也可以節省邊緣與雲端的帶寬。例如在智能家居案例中,通過WIFI或者其他高速傳輸方式,幾乎所有的數據都可以在網關進行處理。此外傳輸可靠性也得到了提升,因為傳輸距離比較短。另一方面,雖然邊緣不能完成全部工作,不能減少傳輸距離,但是至少可以通過對數據進行預處理來顯著減少上傳的數據量。
能耗:對於網絡邊緣上的設備來說,電池是最珍貴的資源。對於端點層,將一部分工作在邊緣完成可以節省能耗。但是關鍵要在計算能耗和傳輸能耗間進行權衡。總的來說,我們先要考慮工作負載的能耗特性。計算量大不大?需要使用多少資源?除了網絡信號強度之外,數據大小和可用帶寬都會影響傳輸能耗。如果傳輸開銷小於本地計算開銷,最好使用邊緣計算。
但是如果我們關注的是整個邊緣計算的過程,而不僅僅是端點,那麼總能耗就應該是每層能耗之和。與端點層類似,每層能耗包括本地計算能耗與傳輸能耗。這樣最佳工作分配策略就有可能改變。例如本地數據中心正忙,那麼工作應該上傳至上層完成。與在端點計算相比,多跳傳輸會顯著增加系統開銷,從而增加能耗。
二級標題
二級標題
04總結
最初有人說要在互聯網上開展業務時,人們認為這是個玩笑。對於邊緣計算,一開始也有很多質疑。工廠車間可以視為IT發展的最關鍵領域,同樣的變革也會發生在工業領域,就像25年前發生在電信領域一樣。處於虛擬模式、虛擬計算機中的通用計算機將徹底改變這一切。之所以會發生,是因為其經濟價值相當誘人,令人無法抗拒。
現在,由於在邊緣處理數據能保證更短的響應時間和更好的可靠性,越來越多的服務從雲端移至網絡邊緣,如果在邊緣處理大量數據,就可以避免將數據傳至雲端,從而節省帶寬。物聯網和移動設備的普及改變了邊緣在計算範式中的角色,邊緣正從單純的數據消費者向數據生產者及消費者轉變。在網絡邊緣處理數據會更加高效。
重新總結一下邊緣計算的價值:作為雲計算的延伸,邊緣計算將雲計算的服務能力延伸至更加靠近用戶的邊緣,從而幫助應用提供更低時延的業務體驗。我們希望,未來邊緣計算讓處理數據更高效,讓生活更美好。
文章僅代表作者觀點,不構成任何投資建議