賈維嘉,周小杰
(上海交通大學電子信息與電氣工程學院,上海 200240)
隨著人們對計算和存儲資源需求的不斷提升,個人計算機在很大程度上已經不能滿足人們的需求。對此,云計算帶來的按需付費(pay as you go)的模式使人們可以用一種相對低廉的價格獲取所需的計算和存儲資源[1]。然而云計算需要將數據發往密集的云中心進行處理,在實際應用場景上不可以提供移動性的支持,這對車聯網、無線接入網等移動場景下的網絡來說是一種限制[2]。與此同時,由數據的長距離傳輸所帶來的不可接受的時延也使云計算不適用于時延敏感的應用[2]。更進一步地,長距離的傳輸也使數據被攻擊的可能性提升,從而影響數據的安全性[3]。
對此,需要在本地部署帶有計算和存儲功能的設備以縮短終端用戶到計算和存儲資源的距離。因此,霧計算的概念應運而生。通過在遠程的云和設備之間引入中間霧層,以部署本地化的計算和存儲資源[2]。霧層不僅可以自己向用戶直接提供服務,還可以利用云層更為強大的計算和存儲能力協同進行服務[4]。相較于傳統的云計算模型,這種方法無疑更加適合車聯網[5]、無線接入網[6]等移動場景和時延敏感的應用[7]。對此,CISCO?提出了霧計算的設想[8],HP?實驗室在其之上更進一步地提出了霧計算的概念[9]。不難看出,這樣的想法與過往的如移動計算(mobile computing)[10]、移動云計算(mobile cloud computing)[11]、邊緣計算(edge computing)[12]等計算模式存在著一定的相似性。因此,本文對從云到霧的過程進行相應闡述,并將霧計算與這些相似的計算模式進行了比較。
霧計算作為一個新興的研究熱點,其各部分的功能受到了廣泛的研究。其關鍵主要在于網絡管理與霧層資源調度上。在網絡管理上需要完成終端設備發現、任務數據轉發的功能;而在資源調度上,考慮的是如何安排任務取得盡可能高的收益。對于這2個關鍵問題的闡述也是本文的重點所在。
由于霧計算相較于云計算適用于移動場景和時延敏感的應用,因此,以智能交通為代表的需要移動性支持的應用和以大數據無線傳感網絡為代表的對于時延敏感,又需要相對較大處理能力的應用適合通過霧計算的方式進行處理[13]。對此,前人提出了不少霧計算在這些應用上的應用實例和實現平臺。
霧計算的概念最早由 CISCO?提出,其在云和終端設備之間引入中間霧層部署運算、存儲等設備。中間霧層主要面向一個較小的區域提供計算、存儲、網絡傳輸服務[2]。對此,CISCO?提出了IOx框架,使用戶可以在上面開發部署應用[8]。在此基礎上,HP?實驗室對于霧計算給出了更為明確的定義:“霧計算是由大量異構普遍存在的無線(有時為無線自組織)分布式設備通過網絡相互協作在無第三方干預的情況下共同完成計算和存儲任務的場景。這些任務可能是關于網絡等基本功能的,也可能是關于具體應用的。用戶可以通過有償租用這些分布式設備來獲取這樣的服務[9]”。這個定義中不僅包含了 CISCO?先前所提出的霧計算的計算、存儲、網絡傳輸服務這3個功能,還包括了霧計算相較于云計算的分布式,通過無線網絡進行協作、自組織等特點。
由此可見,霧計算的概念由云計算引申而來。這2種計算模式間的主要差別在于與終端用戶的接近程度、能否支持地理分布與能否支持邊緣的數據分析和挖掘這3個方面[14]。此外,眾多學者還在服務質量、訪問控制、時延功耗等方面對于霧計算和云計算進行了比較[6~7,9,15~18]。表 1對霧計算和云計算在通信訪問方式、控制管理、服務質量、采用設備以及目標用戶這5個方面的差別進行了總結。
根據比較的結果不難發現,霧計算這一模式相當于把云拉到地上,在本地部署帶有計算和存儲功能的設備,以縮短終端用戶到計算存儲資源的距離。這樣部署的本地化設備雖然可以降低時延、提供移動性的支持,但也受限于自身的計算和存儲能力。霧計算并不是云計算的替代品,而是通過這些本地化的設備不僅可以自己向用戶直接提供服務,還可以利用云層更為強大的計算和存儲能力協同進行服務[4]。除云計算外,移動計算、移動云計算、邊緣計算等概念與霧計算有一定的相似之處。
2.2.1 移動計算與移動云計算
移動云計算的前身是移動計算。移動計算顧名思義就是在手機、便攜式電腦等移動設備上進行計算存儲的模式[10]。但這種計算模式下任務主要在移動終端設備中進行計算和存儲,會遇到資源稀缺性、電源不足和連接不穩定等問題,不足以應付圖像處理、自然語言處理等計算任務[19],因而提出移動云計算,將計算任務由移動端發送到云端,再由云端將結果傳回移動端。相較于傳統的云計算,其對移動性提供了支持[20],但沒有改變云計算需要將計算任務傳送到云端所帶來的時延和對于網絡所帶來的巨大負載[21]。與此同時,設備上傳任務到云端所帶來的發送功耗和資費成本有時也是不可接受的[10]。對此,霧計算在本地化引入計算存儲設備,通過在本地形成小的數據中心[22],可以在不失去移動性支持、保證一定程度的處理能力下,很好地解決上面提到的時延、功耗和資費等問題[23]。

表1 霧計算和云計算的比較
2.2.2 邊緣計算
邊緣計算的初衷也是由于大部分的任務在網絡的邊緣產生,將其傳輸到遠端的云數據中心時延過大,因此考慮在數據的邊緣外加計算和存儲設備,接受任務并與云數據中心進行協同處理[12]。因而其與霧計算有很大的相似性[15]。其中,邊緣計算中的邊緣是相對于用戶層來說的概念,而霧計算的霧是相對于云層的概念。邊緣計算更加關注用戶,而霧計算更加關注霧層服務提供商、霧層中各設備的擁有者與管理者[24]。
2.2.3 分布式云數據中心與迷你數據中心
顧名思義,分布式云數據中心(distributed cloud data center)、迷你數據中心(mini datacenter)就是將服務器分布在各地,建立小的數據中心[25]。相較于將用于計算和存儲的服務器分布在世界各地,霧計算可以緩解傳統云計算將服務器集中部署帶來的傳輸距離大、容易遭受分布式拒絕服務攻擊(DDoS, distributed denial of service)等問題。與此同時,也更能因地制宜地提高能源使用效率。但這樣的數據中心和霧計算在部署的密度上通常有著不小的差距。分布式云數據中心之間的距離一般很大,往往相距106m以上,仍然不能有效降低時延[26],而霧計算的服務器之間相距很小,能將時延控制在可控范圍內。
2.2.4 微云
微云(cloudlet)和霧計算也有很大的相似性,它也是在靠近用戶的位置分布式地部署計算設備,為用戶時延敏感、帶寬有限的應用提供服務。其一開始基于移動計算所提出,因此,同樣具備對移動性的支持[27]。但它與霧計算主要有2個不同之處:1) 微云主要針對的是計算任務,而霧計算除計算外還可通過智能網關(smart gateway)、路由器等設備支持存儲、路由等服務[16];2) 微云基于移動計算所提出,主要針對移動設備,但是霧計算除了移動設備外,對于固定的設備也適用[15]。
2.2.5 內容分發網絡
內容分發網絡(CDN, content delivery network)通過分布式的緩存服務器(cache server)進行信息存儲,以減少用戶對于信息獲取的時間。相較于霧計算,內容分發網絡的通用性不夠強(一般只緩存特定的信息),而且計算能力也比較弱[16]。
綜上所述,從這些比較中不難發現,霧計算在降低時延、移動性支持和信息安全上相比于傳統的計算模式有著不小的優勢。霧計算相當于在移動云計算的基礎上在靠近設備終端的位置上引入了由密集的服務器構成的中間霧層。
相較于云計算終端用戶層、網絡層和云層的3層架構,霧計算的系統在引入中間霧層后架構可以分成5層,分別是終端用戶層(end user layer)、接入網絡層(access network layer)、霧層(fog layer)、核心網絡層(core network layer)和云層(cloud layer),如圖1所示。不難看出,離底層越近,分布的區域越大,且終端用戶數據傳輸到該層的時延越小[14]。表2給出了這5層的主要設備和主要功能。

圖1 霧計算的系統架構
3.1.1 終端用戶層
終端用戶層主要由用戶的手機、便攜式電腦等終端設備構成[14],而且隨著傳感器網絡技術的發展,傳感器節點也將在這一層中發揮重要作用[28]。這些設備既有可能是安放在某處的固定設備,如放在交通燈上、道路兩旁的傳感器[29],也有可能是移動的終端,如用戶的手機、便攜式電腦[14]。在這一層中,這些設備將起到內容的生產者(content producer)和內容的消費者(content consumer)的作用。任務將在這一層中產生,處理后的結果也將返回到這一層。此外,終端設備還需要發現并指定對應任務轉發的霧節點[23]。
3.1.2 接入網絡層
當終端用戶層的用戶生成內容后,會由接入網絡的網絡設備將這些信息按照預定的規則發送到對應的霧節點上。由于底層設備既包含有線設備,又包含無線設備,因此在這一層中通信的網絡既包含有線局域網,又包含Wi-Fi、5G等無線接入網絡[6]。

表2 霧計算各層主要設備與功能
3.1.3 霧層
這是霧計算的核心。在霧層中部署有貼近用戶的、高密度的計算和存儲設備[30],極大地降低了傳統云計算的時延,同時也能給予用戶移動性的支持。這些設備被稱為霧節點(fog node)??梢詫㈧F節點按照其部署位置和功能分成3類:霧邊緣節點(fog edge node)、微霧(foglet)和霧服務器(fog server)[17]。霧邊緣節點一般由智能網關、邊界路由器等構成[31],是距離終端用戶層最近的霧節點,提供一定程度的計算、存儲和通信功能。對于一些簡單的任務,可以在上面直接進行處理并返回結果,但對于較為復雜的任務,這些節點的處理能力往往不能滿足要求,只能起到數據預處理、預分析等作用,然后將處理后的結果發往霧服務器進行進一步的處理。而霧服務器相比于霧邊緣節點具有較強的計算能力和較大的存儲空間,能夠應對較多的請求。其可直接與遠端的云數據中心通過網絡進行連接,因而對于超出霧服務器處理能力的請求將會被發往云數據中心。對于相對復雜的霧層結構來說,在霧邊緣節點和霧服務器之間可能還有其他的霧節點,這些節點既不直接與底層的終端設備相連,也不直接通過網絡與遠端云數據中心相連,而是在霧邊緣節點和霧服務器之間起著預處理、路由等中間件(middleware)的作用,這些節點被稱為微霧,通過SDN(software defined network)可以實現流量的智能轉發,避免擁塞。對此,文獻[32]設計了基于 SDN的霧節點通信方法,并用 MQTT作為其通信協議。與此同時,對于一些相對簡單的霧層結構,可能存在有些節點既直接與底層的終端設備相連,也直接通過網絡與遠端云數據中心相連,那么這些節點將同時起到霧服務器和霧邊緣節點的功能。
對于霧節點來說,其需要提供存儲計算等服務,其內部可以分成底層硬件和上層服務2層[14],這2層通過API相連。底層硬件又可以細分為硬件與虛擬層(hardware & virtualization layer)和硬件資源分配與監控層(hardware allocation & monitor layer)。在硬件與虛擬層中包括內存、CPU等實體和虛擬的硬件設備;而在硬件資源分配與監控層中則是對實體和虛擬的資源進行監控,如進行系統監控、網絡管理、負載均衡等。上層服務同樣可以分成服務層(service layer)和應用層(application layer)2層,服務層可以直接通過API與底層硬件進行交互,提供加密驗證、計價等服務;而應用層基于服務層,內有用戶定義的應用程序。
3.1.4 核心網絡層與云層
對于超出霧層計算或存儲能力的任務,會被霧服務器通過IP核心網絡發往云數據中心。相比于接入網絡,這里一般是多跳的有線網。同樣地,SDN技術也將在網絡資源管理、流量高效轉發上發揮巨大的作用[16]。
而云層主要由遠端的云數據中心服務器構成,這些服務器往往具備霧層服務器更強的計算能力和更大的存儲能力,因此,其一般起到數據備份、大計算量任務處理的作用。與霧層相類似,云端的服務器也是相連的,裝載有任務的虛擬機可在云服務器間來回遷移,以增大執行效率[23]。
在具體實現上,CISCO?提出了 IOx框架,使用戶可以在上面開發部署應用[8]。而對于一些小型的基于霧的應用,文獻[33]用樹莓派實現了一個小型的通用霧計算平臺。此外,針對一些類似于智慧城市、智能交通等的特定的應用場景,現有工作也設計了一些面向專門應用場景的霧計算平臺[34]。此類平臺將在第5節詳細敘述。而對于虛擬仿真平臺方面,文獻[35]提出了一個名為 iFogSim的仿真平臺。該仿真平臺通過Java語言進行實現。在該仿真平臺上可以對終端設備、云計算中心與網絡鏈路進行配置,并根據自己的需要實現不同場景下的霧計算資源調度與管理算法,并可通過時延、功耗、網絡資源占用、控制成本等指標對設計的算法進行性能的衡量。雖然這給調度算法研究者帶來了福音,但是其功能仍比較有限,仿真效果與實際效果仍存在比較大的差別。
相比于云計算這樣的計算模式,霧計算中引入了中間霧層。這一方面使網絡變得更為復雜,需要更加高效地進行管理;另一方面也使部分的任務可以直接在霧層進行處理從而提升效率。前者保障的是傳輸上的高效性,后者保證的是任務在計算和存儲上的高效性。
霧計算中引入了中間霧層,因此,網絡結構顯得更為復雜,變成了終端節點到霧層的接入網絡、霧層設備間的局域網絡與霧層到云層之間的廣域核心網絡這3層。其中,終端節點到霧層的接入網絡主要為Wi-Fi、藍牙、5G等無線網絡;而霧層設備間的局域網絡與霧層到云層之間的廣域核心網絡則主要為有線網絡。
4.1.1 霧計算的無線接入網絡
霧計算的接入網絡與移動云計算、分布式數據中心的接入網絡相同,均通過無線信道進行傳輸。相比于云計算主要通過有線網絡的模式更能提供移動性的支持,霧計算相比于移動云計算與分布式數據中心也存在其特點。在霧計算中終端節點只需要將任務上傳至最近的霧節點。這樣的直接好處是節省了任務傳輸的時間和終端節點的功耗并降低了數據在傳輸過程中受到威脅的可能性。而間接上由于一個霧節點對應的傳感器數目的減少,也使無線網絡的結構變得更為簡潔,感知的內容變得更為有序。
對此,文獻[16]提出了一種基于面向應用和地理位置的底層網絡協議。在這個方案中,某個霧節點只服務一個指定的區域,同時提供有限的服務,一方面保證了這個區域的網絡信號強度,另一方面一個較小區域內的服務的特性和需求往往是可預測的,從而保證了網絡服務質量。文獻[36]同樣利用這種地域相似性的特點,考慮在內容分發的情境下通過點到點、尋找最近的霧節點和本地分布式協同這3種模式進行數據分發。其中,點到點模式中用戶將從一定區域內支持點到點的設備中獲取數據;最近的霧節點模式則是從最近的霧節點中進行數據獲取,對于不支持點到點或一定范圍內沒有其他擁有該內容的點到點的設備的情況下只能用此方法;而本地分布式協同模式則是向區域內所有有此內容的霧節點進行請求[6]。其通過對接入網絡的建模分析,提出了一種自適應模式選擇機制,并通過蒙特卡洛模擬加以驗證。
這種內容的有序除了帶來上述的好處外,還為內容的抽象帶來了可能。由于其可以在一定程度上預測終端節點的需求,因此,可以采用霧節點主動向終端節點發送預測值的方法,使終端節點只需要傳輸與預測值不一致的參數,來進一步降低其功耗。
4.1.2 霧計算的有線網絡
在霧計算中,霧節點既可以依靠自己的計算能力處理任務,也可以將任務遷移到更為合適的其他霧節點或云數據中心。由于霧節點均是預先部署的,因此,霧節點的數據轉發行為可以很方便地進行集中控制。這為高效的數據轉發提供了可能,非常適合采用SDN這種進行網絡集中管理的技術[16]。通過分離邏輯控制層與物理轉發層,對網絡進行集中管理,相比于傳統的類似于OSPF的網絡協議能夠提升數據分組的投遞率(delivery ratio),減輕擁塞,降低時延[37]。
然而SDN技術雖然有不少優勢,但也同時具備一些挑戰。首先是控制器的部署和協同問題,即對一個現有網絡需要多少控制器,這些控制器部署在什么位置的問題。對此,文獻[38]對于現存的多種拓撲結構進行了研究,并根據時延得出了部署的方案。但這種方案對于霧計算來說仍然存在問題,原因在于霧計算中節點的種類繁多,所執行的功能各異,可能存在不同種類的控制器,而這些控制器如何進行協同是一個問題。其次是霧計算中對于時延、移動性等有比較高的要求,而傳統的SDN的控制開銷比較大,如何對SDN協議進行設計優化也是亟待研究的問題。此外,將有線網絡與無線接入網絡進行整合,通過SDN進行控制也是非常有前景的一項研究。文獻[6]對于SDN在接入網絡上進行部署的可行性進行了討論,其認為SDN可以擴展到接入網絡中,更高效地管理接入網絡。但這種擴展目前仍不成熟,原因在于SDN需要進行集中控制而底層設備是分布的。并且SDN要求設備周期性地向控制器匯報狀態,這種控制開銷也是不可接受的。
由于需要大量部署霧節點,因此,為節約成本,每個霧節點的資源相對有限,容易受到惡意流量的攻擊。這使霧計算中的訪問控制與入侵檢測顯得尤為關鍵。
在訪問控制上,需要防止對任何資源進行未授權的訪問。由于霧計算中大多為時延敏感的應用,因此,霧計算中的訪問控制的關鍵在于提升效率。對此,文獻[39]設計了一個基于策略的訪問控制方法,對于不同的資源類型的要求,在霧節點上進行協同訪問控制,以提升單節點的處理效率。
而在入侵檢測中,需要及時發現內部攻擊、泛洪攻擊等攻擊行為。對此,文獻[40]對于云計算中的入侵檢測進行了總結。但傳統的應用于云計算的檢測方法不一定都能應用到霧計算上,因為霧計算相比于云計算的運算能力有限,且在霧計算中計算效率很關鍵。為此,文獻[41,42]對于霧計算中內部攻擊的形式進行了討論。文獻[43]設計了一套對智能電網中異常流量進行高效識別和處理的算法。
在霧計算中,任務將被裝載在虛擬機(VM,virtual machine)或容器(container)中運行[14]。這些虛擬機或容器可以在物理機之間進行遷移,以更高效地利用物理機的資源。虛擬機或容器遷移的位置依賴于調度算法的設計。在調度算法的設計上,相比于云計算的復雜之處,一方面,霧計算對時間的敏感程度很高,因此,用戶到霧節點的時間、任務在不同霧節點中遷移的時間、霧節點將任務轉發到云數據中心的時間都可能被納入考量。另一方面,霧節點除了計算節點外可能還設置了存儲相關的節點,這些節點的放置方式也會影響到相關的服務質量。因此,在進行調度算法的設計上需要考慮如下因素。
1) 存儲容量(storage capacity)
存儲是霧層的一大功能,霧層相比于云層的存儲優勢在于用戶可以直接從霧層中獲取所需數據,從而降低了數據獲取的時延。與此同時,對于計算任務,其所需的源數據也可能分散在各霧節點上。對于存儲則希望數據能盡量靠近需求,但也同時希望使用盡量少的存儲空間[37]。對此,最為經典的評價指標是數據獲取時間。數據獲取時間可以直接反映數據的局部性,但一味追求局部性可能導致一份數據同時存放在很多不必要的地方,而這可以通過限制數據備份數目進行控制。因此,這2個指標一般會同時出現作為存儲情況的衡量。
2) 時延(delay)
除存儲外,霧層中霧節點更多地承擔著計算的功能,而時延是對于計算能力的一個重要的衡量指標。霧計算相比于云計算,計算任務可以在霧節點上進行而不必將任務上傳到云數據中心,從而有效地降低了時延。對此最為準確的定義方式是往返時延(round-trip time),即從任務開始在終端設備進行上傳到終端設備收到任務返回結果所用的時間。這樣的定義在同樣的任務進行橫向比較下直觀且方便,但這種方法沒有考慮到任務計算量大小與任務所需傳輸的數據量大小的差異。即使采用單位時間執行的指令數目,也可能因為用戶具體實現的原因使人們并不能保證該程序以一個恒定的 CPU利用率進行處理,從而使這種衡量方法在衡量計算時延上存在問題[44]。對于計算時延來說,采用如違反服務等級協議(SLA violation)[45]這樣的對于資源短缺程度的衡量方法將更為合理[46]。在違反服務等級協議中,對于短缺程度的定義為其中,m為任務的數目,ri(t)為第i項任務在t時間所請求的資源量,ai(t)為第i項任務在t時間所實際分配到的資源量。由式(1)可知,資源占用率的程度越高,時延程度越大。這兩者在一定條件下存在著線性關系。對此,證明如下。

假設每個任務相互獨立,所請求的資源量為Xi,均值為μi,所分配的資源量為Xi+εi,那么在違反服務等級協議下資源短缺程度的期望值為

由于資源量不足,而產生時延的指令數的期望值為
顯然,資源短缺程度的期望值與時延的指令數的期望值呈正比,而由于時延的指令數又與時延的時間呈正比,因此,可得出資源短缺程度的期望值與時延的時間呈正比。
不難發現,這樣的衡量方法無法反映網絡中的差分服務的時延代價,也無法反映非線性的時延代價。因此,對于時延代價的定義還有進一步研究的空間。
3) 功耗(power consumption)
這也是對于計算能力的一個重要的衡量指標。為提升資源使用效率,任務一般加載在虛擬機中執行,同一設備上的虛擬機將共享該設備的資源。圖2展示了一些服務器的功耗參數。

圖2 服務器功耗參數
從圖2中不難看出,對于一臺設備來說,其功耗與CPU資源的占用率大致遵循線性關系。因此,可通過如下的定義進行功耗的建模

其中,m為服務器總數,分別為第i臺服務器的空閑時功耗與滿載時功耗,ai(t) 、ci分別為該臺服務器占用的資源量與資源總量。從圖2中還可以看出,CPU占用率為0時的功耗遠大于休眠時的功耗。因此,人們寄希望于將盡量多的虛擬機打包到盡量少的設備上面,但打包的程度越大,資源短缺的風險越大,從而時延的風險也隨之增大。因此,一般會結合功耗和時延對計算能力進行統一的考量。此外,還有一些類似的指標也可以起到相同的效果,例如,與資源消耗量呈正比的二氧化碳排放量。
4) 效用(utility)
霧和云一樣具有其商業價值。雖然當前霧計算的部署大多具有特定的應用場景,且以私用霧為主。但隨著霧計算的普及,將任務上傳至私有的霧節點不一定能滿足自身的需求??赡芪磥砣藗兛梢韵褡庥迷品掌饕粯幼庥渺F節點,例如,在車聯網中利用周圍車輛與道路兩旁的智能傳感器所提供的算力進行計算,而在這里面就產生了計價的問題。但由于現在還沒有一個像云按需服務這樣成熟的商業模式,因此,這項指標主要針對具體的情景,但相信其未來會是一個研究的重點。
5) 網絡資源占用與遷移時間(network utilization/migration time)
為了達到更高的收益,可以在必要時對虛擬機進行遷移。由于網絡資源有限,虛擬機在網絡上進行遷移存在代價,而這個代價一般通過網絡資源占用和遷移時間來反映。其中,網絡資源占用直接衡量帶寬的資源,而遷移時間不僅間接反映了帶寬的情況,與此同時還反映了在網絡線路傳輸過程中的時延。但由于霧節點之間距離較小,這種時延實際上可以忽略不計,因此,這2種衡量方法均可采用。
霧計算中的調度策略如表 3[13,47~55]所示,現有很多研究從上面這些因素出發對于調度策略進行了研究(表3中√表示該項研究中考慮了這項指標,括號內為對該指標的描述,×表示該項研究中沒考慮這項指標)。不可忽視的是,霧計算相比于云計算調度的難度更大,原因在于霧計算相較于云計算各項指標的波動更為明顯,如何應付這樣的明顯波動是調度算法在實際應用上的一個主要問題。對此,可以通過霧節點只服務于有限范圍的有限應用,利用在應用特征上的局部相似性,通過人工智能的方法加以分析和預測[23],其或多或少存在對任務情況的假設(例如,假設任務的到來服從速率為λ的泊松分布[50]或服從均值為μ、協方差矩陣為 Σ的高斯混合分布[56])與參數的人為設定的傳統算法的表現不佳。對此,可認為不需預先假設分布并可根據任務的實際情況進行在線學習(online learning)的強化學習(reinforcement learning)方法是一種很好的解決方案。在該方法中會對歷史的分流行為進行打分,并不斷引導將任務按照分高的策略進行分流。
與此同時,由于霧計算中需要考慮的因素較多、狀態復雜,不少學者采用深度學習進行問題的降維。文獻[57]將深度強化學習用到網絡資源調度中。文獻[58]提出了在云數據中心中一種權衡整體資源分配和電源管理問題的新穎層次框架,采用深度強化學習(DRL, deep reinforcement learning)技術,結合自動編碼器(auto-encoding)、LSTM等神經網絡,可以有效地在功耗和處理時延間取得最佳權衡。此外,還有一個不足之處在于,之前的算法幾乎都是基于獨立任務的優化。而在實際情況下,任務之間是存在著依賴關系的。這些依賴關系會對任務執行的順序和任務分配的位置有著直接的影響。對此,文獻[59]提出了基于任務依賴關系的云數據中心的任務調度方法。文獻[55]在霧數據中心的調度中也考慮到了依賴關系,但是只考慮了時間因素,沒能考慮功耗、網絡質量等因素。但是如果依靠深度學習進行在線學習,從而達到自適應將極其消耗計算資源,這在霧計算中的適用性仍存在著疑問。當前高效低耗的自適應調度算法仍是一個重要的研究課題。

表3 霧計算中的調度策略
由于霧計算相比于云計算具有貼近用戶、能夠提供地理分布與移動性支持的特點,因此其適于4種應用類型:1)以大型網絡游戲、超高清視頻的加載為代表的具有大數據量但要求較低時延的應用;2)以無線傳感網絡為代表的基于地理分布的應用;3)以車聯網、可穿戴設備為代表的需要快速反饋的移動應用;4)以智能電網、智能交通指揮系統為代表的大規模分布式決策系統[13]。
5.1.1 具有大數據量但要求較低時延的應用
對于大型網絡游戲、超高清視頻這樣的應用來說,霧計算可以像內容分發網絡一樣,將大數據緩存在靠近用戶的位置,從而減少了從遠端數據中心獲取數據的時延,也節省了網絡的帶寬。與此同時,霧節點也可以進行一定程度的數據處理,從而降低了終端設備的計算任務,提升了應用的性能[37]。
5.1.2 基于地理分布的應用
霧節點可以部署在靠近傳感器的位置以減少從終端設備到霧節點的距離[4]。這樣做可以有效降低傳感器的傳輸距離,從而節約了傳感器的能耗,保證了數據的質量,降低了數據被窺探的風險。與此同時,霧節點可以協助終端傳感設備進行計算,提升了數據的計算效率。對此,在2015年11月,ARM、思科、戴爾、英特爾等公司在北美建立了國際霧計算產學研聯盟(OpenFog聯盟)。而在2017年4月,國際霧計算產學研聯盟(OpenFog聯盟)大中華區在上海成立。該聯盟意在針對物聯網制訂出嚴格的功能和架構要求以及詳盡的應用程序接口和性能標準,以指導實施可互操作的設計,加速霧計算的商用化[60]。
5.1.3 快速反饋的移動應用
相比于云計算,霧計算通過安裝在移動物體上的傳感器與該區域內固定裝載的傳感器進行協同感知,然后及時交由對應的霧節點進行處理,并將得到的結果立即反饋給用戶,可以有效降低時延。對此,文獻[5]將霧計算引入車聯網,并發掘了車輛本身作為霧節點的巨大潛力,其認為北上廣深等大城市汽車的保有量大,在任意的區域內都有足夠多的汽車能夠提供足夠強大的算力,從而用戶的任務可以直接轉發到鄰近的汽車上進行處理,而不必都傳輸到遠端的云數據中心。這種時延的降低對于未來的無人駕駛大有裨益。文獻[61]設計了一款基于霧計算的健康監測系統。該系統的測量結果可以直接在本地的智能網關進行處理,從而可以對人體的突發病癥及時報警。
5.1.4 大規模分布式決策系統
在大規模分布式決策系統中,霧計算可以改善傳統的基于云計算在位置感知、移動性支持和時延上的問題,形成快速有效的物聯信息決策系統,以達到更有效、更智能的決策的目的。其中,典型的應用有智能交通、智能電網和智能建筑。在智能交通中,通過在車輛上與道路兩旁部署的傳感器,可以及時發現駕駛員的危險駕駛行為,及時做出預警并進行合適的處罰[62]。同時也可以利用車速、道路狀況等傳感得到的信息,自動調節交通燈的顏色,使無車輛時自動關閉交通燈,還可根據實際情況(行人、救護車)調控交通燈的顏色,并及時向駕駛員發出警告以減速[29]。而在智能電網中,通過在網絡的邊緣部署能量平衡的應用,可以智能調度風能、水能等能源的使用方式,從而提升能源的使用效率[63]。在智能建筑中,將建筑中的傳感器進行聯網,通過智能網關對傳感得到的數據進行處理,并根據處理后的數據和預先指定的規則進行控制。
5.2.1 智能駕駛示范應用
智能駕駛示范應用如圖3所示,在傳統的駕駛模式中,車輛利用GPS傳感器從衛星處獲取位置信息,并將該信息發往導航軟件的云數據中心。數據中心在收集數據后經過計算得到導航信息并將信息通過網絡發至車輛。受限于網絡的時延和安全性,這樣得到的信息較為粗放,只能呈現出車輛經過哪些道路的大致的行駛路徑,而不能對車輛在實時路況下的加速、減速、避讓等行為做出判斷,從而無法實現無人駕駛。而智能駕駛相比于傳統駕駛模式,可以通過攝像頭、超聲等傳感設備獲取道路的實際情況,實現車輛的無人駕駛。在這些場景中需要解決的關鍵問題在于對收集到的信息進行快速傳輸、處理與驗證。

圖3 智能駕駛示范應用
在霧計算的具體應用中,時延的瓶頸極可能出現在網絡傳輸與任務處理上。對于網絡傳輸來說,據4.1節所述,在霧計算中主要涉及終端用戶到霧節點、霧節點之間與霧節點到云數據中心這3個部分的網絡。由于霧節點需要負責時延敏感的任務的處理,因此,終端用戶到霧節點的無線接入網絡的傳輸質量尤為關鍵。在智能駕駛中,車輛的導航信息對于時延的需求不大,因此,可以交由遠端云數據中心進行處理。但要在行駛過程中實現對其他車輛與行人的避讓對于時延的需求很高,稍有時延極有可能車毀人亡,因此,必須在近地的霧節點中進行數據的收集與處理[64]。但當前無線網絡的傳輸速度與信號質量仍不能達到這樣的需求。未來當 5G技術成熟并商用后,利用5G比4G快數10倍的傳輸速度,可以使霧計算在智能駕駛等對于時延極其敏感的應用上成為可能。因此,結合5G技術的霧計算將會是非常重要的研究方向。
而在任務處理上,4.2節對現有的資源調配算法進行總結,從而使霧計算服務提供商可以更高效、更有效益地完成任務。由于車輛本身的計算能力可能有限,因此,任務有可能遷移至車外的霧節點中進行執行。當前不論是虛擬機的遷移還是容器的遷移都需要移動大量的信息,而這很可能帶來不可接受的時延。且當前對于霧計算的虛擬化技術研究仍處于空白階段。此外,由于霧計算需要應付實際的網絡環境,而該環境變化較為劇烈且存在一定的時空性。對此不宜預先假設分布,而需要采用自適應的算法加以解決。當前自適應的算法主要通過強化學習算法進行實現,但該方法要達到自適應的效果極其消耗計算資源,因此,其在霧計算中的適用性仍存在著疑問。此外,由于在智能駕駛中車輛的位置隨時間會發生較大的變化,而這種變化也可能會帶來額外的傳輸時延。因此,如何采用一個高效低耗的自適應調度算法來選擇合適的霧節點進行遷移,使信息的消費者能夠盡快地拿到數據是其中一個亟待解決的問題。
由于在智能駕駛中霧節點主要部署在開放的場景中,因此如果有不法分子進行信息的竊取,甚至是信息的篡改很可能造成災難性影響[65]。例如,如果后車已經做出了準備超車的決定,但前車沒有及時收到該信息或者收到了錯誤的信息而沒能及時避讓就很可能釀成交通事故。這關鍵在于保障消息的完整性和可用性。雖然當前已有文獻對于霧計算中可能出現的攻擊行為[4,65]進行分析,但當前所提出的解決方案在具體應用上的時延和頑健性仍未得到測試。因此在霧計算中高效的加密和驗證算法也將是研究的重點。
5.2.2 工業互聯網示范應用
當前工業生產主要基于云計算進行。但在實踐中發現由于云服務器的時延過大,很多精細化的操作(例如微型元件的切割)無法按時完成。此外,企業在底層所收集到的數據量不斷上升也使企業的骨干網備受考驗。工業互聯網示范應用如圖 4所示,為了解決此類問題,企業可以在終端設備和云數據中心之間部署霧層計算和存儲設備,以處理時延敏感的應用與大數據特征的提取。這除了對時延和安全性有要求外,還對平臺的統一性和云霧間協同提出了更高的要求[66]。

圖4 工業互聯網示范應用
首先,由于工業生產環境涉及的底層元件較為復雜,為使這些元件的數據能夠很好地收集并進行控制,需要制作統一的控制平臺對云霧端架構進行有效的覆蓋和連接[14]。同時,實現軟件定義霧節點群組,對云平臺、異構網絡和海量終端設備進行承上啟下的有效覆蓋和連接,形成具備云端融合能力的標準API接口及規范。但在當前對于統一接口的研究仍處于起步階段。與此同時,對于控制器部署數量以及位置的問題研究仍不充分,無法將網絡、存儲和計算等資源進行統一管理。而這些都是未來亟待解決的問題。
其次,工業生產環境中的霧節點除了要應對時延敏感的應用外,還需要對提交到云數據中心進行處理的數據進行初步的特征提取,以降低企業骨干網的負荷。這就涉及云霧端融合的關鍵技術。在該技術中需要研究霧層要將什么樣的任務提交到云數據中心,以什么狀態提交到云數據中心,提交到云數據中心的哪個服務器,通過怎樣的路由進行提交等核心問題。
霧計算作為云計算引申出的新型計算模式,其相比于傳統的計算模式具有低時延、能提供地理分布與移動性的支持等特點。本文對霧計算的概念、架構、研究問題與應用進行了綜述,并相信霧計算未來在基于地理分布、移動性等應用和大規模分布式決策系統上有著巨大的發展潛力。而在理論研究方面,未來的重要研究點仍將主要集中在霧層中,尤其是高效的網絡通信協議、系統安全算法、霧層虛擬化技術、云霧端融合技術等方向。與此同時,在霧計算的應用中,既要保證算法的效率又要保證算法的頑健性,而這也是霧計算應用上急需攻關的重要課題。
[1] ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4)∶50-58.
[2] BONOMI F, MILITO R, ZHU J, et al. Fog computing and its role in the internet of things[C]//Edition of the Mcc Workshop on Mobile Cloud Computing. 2012∶13-16.
[3] HASHIZUME K, ROSADO D G, FERNáNDEZ-MEDINA E, et al.An analysis of security issues for cloud computing[J]. Journal of Internet Services and Applications, 2013, 4(1)∶5.
[4] STOJMENOVIC I, WEN S. The fog computing paradigm∶ scenarios and security issues[C]// Federated Conference on Computer Science and Information Systems. 2014∶1-8.
[5] HOU X, LI Y, CHEN M, et al. Vehicular fog computing∶ a viewpoint of vehicles as the infrastructures[J]. IEEE Transactions on Vehicular Technology, 2016, 65(6)∶3860-3873.
[6] PENG M, YAN S, ZHANG K, et al. Fog-computing-based radio access networks∶ issues and challenges[J]. IEEE Network, 2015,30(4)∶46-53.
[7] LU R, ZHU H, LIU X, et al. Toward efficient and privacy-preserving computing in big data era[J]. IEEE Network, 2014, 28(4)∶46-50.
[8] BONOMI F. Connected vehicles, the internet of things, and fog computing[C]//The Eighth ACM International Workshop on Vehicular Inter-Networking (VANET). 2011∶ 13-15.
[9] VAQUERO L M, RODERO-MERINO L. Finding your way in the fog[J]. ACM SIGCOMM Computer Communication Review, 2014,44(5)∶27-32.
[10] FERNANDO N, SENG W L, RAHAYU W. Mobile cloud computing∶a survey[J]. Future Generation Computer Systems, 2013,29(1)∶84-106.
[11] DINH H T, LEE C, NIYATO D, et al. A survey of mobile cloud computing∶ architecture, applications, and approaches[J]. Wireless Communications & Mobile Computing, 2013, 13(18)∶1587-1611.
[12] DAVIS A, PARIKH J, WEIHL W E. Edge computing∶ extending enterprise applications to the edge of the internet[C]// International Conference on World Wide Web-Alternate Track Papers & Posters.2004∶180-187.
[13] DENG R, LU R, LAI C, et al. Optimal workload allocation in fog-cloud computing toward balanced delay and power consumption[J]. IEEE Internet of Things Journal, 2017, 3(6)∶1171-1181.
[14] YI S, HAO Z, QIN Z, et al. Fog computing∶ platform and applications[C]// Hot Topics in Web Systems and Technologies. 2015∶73-78.
[15] FIRDHOUS M, GHAZALI O, HASSAN S, et al. Fog computing∶ will it be the future of cloud computing?[C]// International Conference on Informatics & Applications. 2014∶ 1-8.
[16] LUAN T H, GAO L, LI Z, et al. Fog computing∶ focusing on mobile users at the edge[J]. arXiv Preprint, arXiv∶ 1502.01815, 2015.
[17] LI J, JIN J, YUAN D, et al. EHOPES∶ data-centered fog platform for smart living[C]//Telecommunication Networks and Applications Conference. 2015∶308-313.
[18] HAJIBABA M, GORGIN S. A review on modern distributed computing paradigms∶ cloud computing, jungle computing and fog computing[J]. Journal of Computing & Information Technology, 2014,22(2)∶69.
[19] SATYANARAYANAN M. Fundamental challenges in mobile computing[J]. ACM Symposium on Principles of Distributed Computing,1996∶1-7.
[20] LI W, ZHAO Y, LU S, et al. Mechanisms and challenges on mobility-augmented service provisioning for mobile cloud computing[J].IEEE Communications Magazine, 2015, 53(3)∶89-97.
[21] TULI A, HASTEER N, SHARMA M, et al. Exploring challenges in mobile cloud computing∶ an overview[C]// Confluence 2013∶ the Next Generation Information Technology Summit. 2013∶496-501.
[22] NISHIO T, SHINKUMA R, TAKAHASHI T, et al. Service-oriented heterogeneous resource sharing for optimizing service latency in mobile cloud[C]// International Workshop on Mobile Cloud Computing &NETWORKING. 2013∶19-26.
[23] BITTENCOURT L F, LOPES M M, PETRI I, et al. Towards virtual machine migration in fog computing[C]// International Conference on P2P, Parallel, Grid, Cloud and Internet Computing. 2015∶1-8.
[24] SHI W, CAO J, ZHANG Q, et al. Edge computing∶ vision and challenges[J]. IEEE Internet of Things Journal, 2016, 3(5)∶637-646.
[25] CHURCH K, GREENBERG A, HAMILTON J. On delivering embarrassingly distributed cloud services[C]//Hotnets. 2008∶ 55-60.
[26] GU C, LIU C, ZHANG J, et al. Green scheduling for cloud data centers using renewable resources[J]. Proceedings-IEEE INFOCOM,2015, 2015∶ 354-359.
[27] SATYANARAYANAN M, BAHL P, CACERES R, et al. The case for VM-based cloudlets in mobile computing.[J]. IEEE Pervasive Computing, 2009, 8(4)∶14-23.
[28] YANNUZZI M, MILITO R, SERRAL-GRACIA R, et al. Key ingredients in an IoT recipe∶ fog computing, cloud computing, and more fog computing[C]// IEEE International Workshop on Computer Aided Modeling and Design of Communication Links and Networks.2014∶325-329.
[29] LUAN T H, CAI L X, CHEN J, et al. VTube∶ towards the media rich city life with autonomous vehicular content distribution[C]// Sensor,Mesh and Ad Hoc Communications and Networks. 2011∶359-367.
[30] GARCIA L P, MONTRESOR A, EPEMA D, et al. Edge-centric computing∶ vision and challenges[J]. ACM Sigcomm Computer Communication Review, 2015, 45(5)∶37-42.
[31] JUTILA M. An adaptive edge router enabling Internet of things[J].IEEE Internet of Things Journal, 2016, 3(6)∶1061-1069.
[32] XU Y, MAHENDRAN V, RADHAKRISHNAN S. Towards SDN-based fog computing∶ MQTT broker virtualization for effective and reliable delivery[C]// International Conference on Communication Systems and Networks. 2016∶1-6.
[33] KRISHNAN Y N, BHAGWAT C N, UTPAT A P. Fog computing—network based cloud computing[C]// International Conference on Electronics and Communication Systems. 2015∶250-251.
[34] BRUNEO D, DISTEFANO S, LONGO F, et al. Stack4Things as a fog computing platform for smart city applications[C]// IEEE INFOCOM 2016-IEEE Conference on Computer Communications Workshops.2016∶848-853.
[35] GUPTA H, VAHIDDASTJERDI A, GHOSH S K, et al. iFogSim∶ a toolkit for modeling and simulation of resource management techniques in the Internet of things, edge and fog computing environments[J]. Software∶ Practice and Experience, 2017, 47(9)∶ 1275-1296.>
[36] YAN S, PENG M, WANG W. User access mode selection in fog computing based radio access networks[J]. arXiv present, arXiv∶1602.00766, 2016.
[37] YI S, LI C, LI Q. A survey of fog computing∶ concepts, applications and issues[C]// The Workshop on Mobile Big Data. 2015∶37-42.
[38] HELLER B, SHERWOOD R, MCKEOWN N. The controller placement problem[C]// Workshop on Hot Topics in Software Defined Networks. 2012∶7-12.
[39] DSOUZA C, AHN G J, TAGUINOD M. Policy-driven security management for fog computing∶ preliminary framework and a case study[C]// IEEE International Conference on Information Reuse and Integration. 2015∶16-23.
[40] MODI C, PATEL D, BORISANIYA B, et al. Review∶ a survey of intrusion detection techniques in cloud[J]. Journal of Network &Computer Applications, 2013, 36(1)∶42-57.
[41] KULKARNI S, SAHA S, HOCKENBURY R. Preserving privacy in sensor-fog networks[C]// Internet Technology and Secured Transactions. 2015∶96-99.
[42] STOLFO S J, SALEM M B, KEROMYTIS A D. Fog computing∶mitigating insider data theft attacks in the cloud[C]// IEEE Symposium on Security and Privacy Workshops. 2012∶125-128.
[43] VALENZUELA J, WANG J, BISSINGER N. Real-time intrusion detection in power system operations[J]. IEEE Transactions on Power Systems, 2013, 28(2)∶1052-1062.
[44] STONE M. Cross-validatory choice and assessment of statistical predictions[M]// Introduction to chaos∶ Institute of Physics Pub.1999∶111-147.
[45] FARAHNAKIAN F, LILJEBERG P, PLOSILA J. Energy-efficient virtual machines consolidation in cloud data centers using reinforcement learning[C]// Euromicro International Conference on Parallel,Distributed, and Network-Based Processing. 2014∶500-507.
[46] HAN Z, TAN H, CHEN G, et al. Dynamic virtual machine management via approximate Markov decision process[C]// IEEE Conference on Computer Communications. 2016∶ 1-9.
[47] BEATE OTTENW?LDER, KOLDEHOFE B, ROTHERMEL K, et al.MigCEP∶ operator migration for mobility driven distributed complex event processing[C]// ACM International Conference on Distributed Event-Based Systems. 2013∶183-194.
[48] DO C T, TRAN N H, PHAM C, et al. A proximal algorithm for joint resource allocation and minimizing carbon footprint in geo-distributed fog computing[C]// International Conference on Information NET-WORKING. 2015∶324-329.
[49] ZHANG H, XIAO Y, BU S, et al. Fog computing in multi-tier data center networks∶ a hierarchical game approach[C]// IEEE International Conference on Communications. 2016∶1-6.
[50] ZENG D, GU L, GUO S, et al. Joint optimization of task scheduling and image placement in fog computing supported software-defined embedded system[J]. IEEE Transactions on Computers, 2016, 65(12)∶3702-3712.
[51] HUANG C Y, XU K. Reliable realtime streaming in vehicular cloud-fog computing networks[C]//IEEE/CIC International Conference on Communications in China. 2016∶1-6.
[52] ZHANG H, ZHANG Q, DU X. Toward vehicle-assisted cloud computing for smartphones[J]. IEEE Transactions on Vehicular Technology,2015, 64(12)∶5610-5618.
[53] OUEIS J, STRINATI E C, BARBAROSSA S. The fog balancing∶ load distribution for small cell cloud computing[C]// Vehicular Technology Conference. 2015∶1-6.
[54] HONG H J, TSAI P H, HSU C H. Dynamic module deployment in a fog computing platform[C]// Network Operations and Management Symposium. 2016∶1-6.
[55] PHAM X Q, HUH E N. Towards task scheduling in a cloud-fog computing system[C]//Network Operations and Management Symposium(APNOMS). 2016∶ 1-4.
[56] YANG J, ZHANG S, WU X, et al. Online learning-based server provisioning for electricity cost reduction in data center[J]. IEEE Transactions on Control Systems Technology, 2016, PP(99)∶1-8.
[57] MAO H, ALIZADEH M, MENACHE I, et al. Resource management with deep reinforcement learning[C]// ACM Workshop on Hot Topics in Networks. 2016∶50-56.
[58] LIU N, LI Z, XU J, et al. A hierarchical framework of cloud resource allocation and power management using deep reinforcement learning[C]//2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS). 2017∶ 372-382.
[59] ZHU X, CHEN H, YANG L T, et al. Energy-aware rolling-horizon scheduling for real-time tasks in virtualized cloud data centers[C]//High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing(HPCC_EUC). 2013∶ 1119-1126.
[60] OpenFog Consortium Architecture Working Group. OpenFog reference architecture for fog computing[J]. OPFRA001, 2017, 20817∶ 162.
[61] CAO Y, HOU P, BROWN D, et al. Distributed analytics and edge intelligence∶ pervasive health monitoring at the era of fog computing[C]// The Workshop on Mobile Big Data. 2015∶43-48.
[62] ROY S, BOSE R, SARDDAR D. A fog-based dss model for driving rule violation monitoring framework on the Internet of things[J]. International Journal of Advanced Science & Technology, 2015, 82∶23-32.
[63] FADLULLAH Z M, KATO N. On optimally reducing power loss in micro-grids with power storage devices[M]// Evolution of Smart Grids.Springer International Publishing. 2015∶ 1361-1370.
[64] KOPETZ H, POLEDNA S. In-vehicle real-time fog computing[C]//IEEE/IFIP International Conference on Dependable Systems and Networks Workshop. 2016∶162-167.
[65] KHAN S, PARKINSON S, QIN Y. Fog computing security∶ a review of current applications and security solutions[J]. Journal of Cloud Computing, 2017, 6(1)∶19.
[66] LOM M, PRIBYL O, SVITEK M. Industry 4.0 as a part of smart cities[C]//Smart Cities Symposium Prague. 2016∶1-6.