楊星華,李蜀瑜
(陜西師范大學(xué) 陜西 西安 710062)
云計(jì)算[1]服務(wù)模式和部署模型已經(jīng)成熟,隨著這些技術(shù)的盛行和云計(jì)算模式[2]的衍變,云協(xié)作[3]成為關(guān)鍵問題,現(xiàn)在,混合云模型,互聯(lián)云,跨云和云聯(lián)盟成為熱點(diǎn)問題?;旌显茩?quán)衡可用性和私密性是重要問題,使用專有解決方案和標(biāo)準(zhǔn),解決移植性和協(xié)作性以實(shí)現(xiàn)混合云。然而,互聯(lián)云和云聯(lián)盟是多個(gè)云互惠互利模式的協(xié)作,但是,云聯(lián)盟更注重以提供商商為中心的解決方案,互聯(lián)云提供了未來標(biāo)準(zhǔn)和開源接口的機(jī)會(huì)。需求策略是要通過互聯(lián)云協(xié)作解決不同云環(huán)境的的異質(zhì)問題。
目前,一些跨云計(jì)算的實(shí)現(xiàn)雖然可用,但是他們是基于提供商的專有解決方案,例如亞馬遜的EC2,而極少有基于代理實(shí)現(xiàn)作為開源,例如OpenQRM,這些方案不是對(duì)提供商關(guān)閉就是與特定環(huán)境高耦合。OpenQRM是一個(gè)封閉平臺(tái),沒有可協(xié)作性和聯(lián)盟,而OpenNebula和Nimbus僅僅與亞馬遜的EC2環(huán)境兼容。云協(xié)作中,Boto和jclouds是可用的,但是不能以標(biāo)準(zhǔn)形式編目云資源,云資源是云協(xié)作域的集成部分。
為消息交互提供一種標(biāo)準(zhǔn)機(jī)制,文獻(xiàn)[4]介紹了一種基于XMPP和RDF的互聯(lián)云目錄和消息交互協(xié)議,該協(xié)議利用XMPP基于UDDI的特性作為一個(gè)云注冊(cè)表模塊,這拓展了互聯(lián)云的通信能力?;谧?cè)的XMPP特性,該實(shí)現(xiàn)依賴第三方服務(wù)器管理所有互聯(lián)云節(jié)點(diǎn)的資源,這種解決方案成功的將互聯(lián)的云解耦,但同時(shí)又將云與關(guān)聯(lián)的注冊(cè)服務(wù)器耦合。文獻(xiàn)[5]介紹了一個(gè)以資源集成為目的的三階段的跨云聯(lián)盟模型,這個(gè)解決方案基于XML,利用XMPP,XACML和SAML。文獻(xiàn)[6]提出了以獨(dú)立控制和通信的多代理中間件系統(tǒng),這個(gè)系統(tǒng)將DDS[4]和本體論實(shí)現(xiàn)相結(jié)合,基于樹的本體論結(jié)構(gòu)用于定義服務(wù)質(zhì)量策略,結(jié)合DDS[7],在一個(gè)特定空間中,提取通信信息,識(shí)別一個(gè)代理位置。
文中利用剛剛提到的兩種相似技術(shù),主要針對(duì)云計(jì)算基礎(chǔ)設(shè)施服務(wù)模式的協(xié)作問題,解決公有云平臺(tái)下云方間基礎(chǔ)設(shè)施協(xié)作和云方資源編目,解除對(duì)第三方注冊(cè)的高度依賴,降低云方與云方之間,云與第三方的耦合度,給云方部署代理,稱為云方代理。為了區(qū)分云節(jié)點(diǎn),本文中稱一個(gè)云節(jié)點(diǎn)為一個(gè)云方。因?yàn)樵品絽f(xié)作的重點(diǎn)是一個(gè)云方發(fā)現(xiàn)另一個(gè)可協(xié)作的云方,這種發(fā)現(xiàn)由公有云域維護(hù),公有云域中,代理部署在云方中,代理是基于DDS的實(shí)現(xiàn),云資源敘述基于XML技術(shù),本文主要研究云方基礎(chǔ)設(shè)施資源協(xié)作。
多個(gè)云方構(gòu)成一個(gè)云域,相當(dāng)于一個(gè)云方簇群,每一個(gè)云方都有一個(gè)云參與節(jié)點(diǎn)即云方代理節(jié)點(diǎn)注冊(cè)到一個(gè)云域。每個(gè)代理節(jié)點(diǎn)需要有運(yùn)行DDS應(yīng)用的能力。云域劃分應(yīng)用,一個(gè)應(yīng)用程序和一個(gè)云域存在多對(duì)一的關(guān)系,一個(gè)應(yīng)用程序可以屬于多個(gè)云域,然而,數(shù)據(jù)寫者和數(shù)據(jù)讀者只歸屬于創(chuàng)建他們的云域,歸屬于不同云域的數(shù)據(jù)寫者和數(shù)據(jù)讀者不能交換數(shù)據(jù),即使是在同一云方上。為了實(shí)現(xiàn)基于服務(wù)的云方協(xié)作,云域中創(chuàng)建和部署獨(dú)立的應(yīng)用程序如圖1所示。
圖1 云方協(xié)作結(jié)構(gòu)圖Fig.1 Structure of cloud collaboration
云域ID標(biāo)識(shí)特定的云域。云方代理部署在所有云方參與節(jié)點(diǎn)上并創(chuàng)建云域參與者,擁有一致屬于云域的云域ID。每個(gè)云域參與者是每個(gè)云方的代理節(jié)點(diǎn),其部署有云方代理。
圖2給出了云方代理層次圖,是一個(gè)3層的體系結(jié)構(gòu),資源層負(fù)責(zé)對(duì)云方基礎(chǔ)設(shè)施資源信息的詳細(xì)描述,是云方協(xié)作的橋梁,數(shù)據(jù)分發(fā)服務(wù)DDS主要為云方協(xié)作提供一種基于發(fā)布訂閱的實(shí)時(shí)高效通信模式。
基礎(chǔ)架構(gòu)層為以上兩層提供底層支持,包括構(gòu)成云方平臺(tái)的物理環(huán)境即硬件資源,還有在物理環(huán)境基礎(chǔ)上構(gòu)建的云方平臺(tái),提供云協(xié)作的實(shí)驗(yàn)環(huán)境。
以下小節(jié)將主要介紹資源定義層和數(shù)據(jù)分發(fā)服務(wù)層。
圖2 云方代理層次圖Fig.2 The layer of cloud proxy
云方協(xié)作需要一個(gè)正式的對(duì)其云方資源信息的敘述,基于xml的文檔具有快速傳播信息資源,而且更易于檢索者查找和利用這些優(yōu)點(diǎn),因此本文采用以xml形式敘述資源以及資源在架構(gòu)形式中的關(guān)系。云方請(qǐng)求協(xié)作時(shí)期,資源敘述文件作為云方發(fā)布數(shù)據(jù)的一部分供其他云方與之匹配以完成云方間的協(xié)作。雖然本文主要針對(duì)基礎(chǔ)設(shè)施資源進(jìn)行云協(xié)作介紹,但是為了支持云協(xié)作可擴(kuò)展性,不僅僅提供云方基礎(chǔ)設(shè)施資源協(xié)作,還要擴(kuò)展其他資源的云方協(xié)作,因此基于xml的云方資源敘述結(jié)構(gòu)如圖3所示:一個(gè)完整的云方資源敘述包括五個(gè)部分內(nèi)容,每個(gè)資源都可以進(jìn)一步進(jìn)行細(xì)粒度劃分,圖中主要針對(duì)本文基礎(chǔ)設(shè)施資源層做了細(xì)粒度劃分,其他部分不在此做重點(diǎn)敘述。
圖3 云方資源結(jié)構(gòu)圖Fig.3 Structure of cloud resource
核心資源敘述云方核心信息資源,核心資源可以進(jìn)行細(xì)粒度劃分,細(xì)粒度劃分的核心資源諸如操作系統(tǒng),集群中間件,虛擬機(jī)監(jiān)控器等資源信息。
軟件資源敘述云方軟件資源信息,細(xì)粒度劃分為應(yīng)用程序資源。
平臺(tái)資源敘述云方使用平臺(tái)資源信息,這個(gè)平臺(tái)資源信息可進(jìn)一步細(xì)分為安全資源,管理資源,負(fù)載均衡資源,運(yùn)行時(shí)刻資源等平臺(tái)資源。
基礎(chǔ)設(shè)施資源敘述云方基礎(chǔ)設(shè)施資源信息,細(xì)粒度劃分的資源信息包括計(jì)算資源,通信資源,數(shù)據(jù)存儲(chǔ)資源,這些資源還可以進(jìn)行進(jìn)一步粒度劃分,例如計(jì)算資源包含虛擬機(jī),通信資源包含QoS。數(shù)據(jù)存儲(chǔ)資源包含文件系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng)。
硬件資源敘述云方硬件相關(guān)資源信息,包括耗電量,數(shù)據(jù)中心管理,調(diào)度等資源。
資源敘述文件與云方代理共享,該文件能夠用于不同的云方環(huán)境之間的資源匹配的請(qǐng)求。根據(jù)資源匹配,成為云協(xié)作中的一方。
云方資源敘述具有兩種類型的文件形式,全局資源敘述和本地資源敘述參與云方代理實(shí)現(xiàn),全局資源敘述所有存在于云域中的概念,負(fù)責(zé)云域資源的全局?jǐn)?shù)據(jù)管理,云域擁有全局資源敘述文件,敘述云域中全體物理節(jié)點(diǎn)資源和虛擬機(jī)資源,包括云域編號(hào),云域包含云方節(jié)點(diǎn)數(shù)量,云域中所有云方節(jié)點(diǎn)編號(hào)等全局資源信息,,本地資源敘述特定的云方部署資源,只包括與本地相關(guān)的概念,包括云方節(jié)點(diǎn)編號(hào),云方節(jié)點(diǎn)所在云域編號(hào)和云方本地資源信息,本地資源敘述符合全局資源敘述形式。
文中主要敘述基礎(chǔ)設(shè)施層資源,以cup使用率,內(nèi)存,存儲(chǔ),網(wǎng)絡(luò)帶寬,操作系統(tǒng)os來敘述云基礎(chǔ)設(shè)施物理節(jié)點(diǎn)資源和虛擬機(jī)資源,例如,一個(gè)云方節(jié)點(diǎn)資源包含如下資源信息:云方物理節(jié)點(diǎn)信息:云方節(jié)點(diǎn)ID,云域ID,cpu使用率,內(nèi)存使用率,磁盤容量,云方IP,虛擬資源信息:虛擬機(jī)ID,虛擬機(jī)鏡像ID,虛擬機(jī)cpu使用率,虛擬機(jī)內(nèi)存使用率,磁盤ID,虛擬機(jī)IP。
DDS是一個(gè)3層的體系結(jié)構(gòu),其中兩層是本文所用,在云平臺(tái)中,這兩層能夠可擴(kuò)展和及時(shí)的分發(fā)有用資源信息,一層是DCPS,以數(shù)據(jù)為中心的發(fā)布訂閱,它可以提供數(shù)據(jù)為中心,基于主題和實(shí)時(shí)的發(fā)布訂閱標(biāo)準(zhǔn),同時(shí)提供有效,可擴(kuò)展和可預(yù)測(cè)的數(shù)據(jù)分發(fā)能力。DCPS運(yùn)行在RTPS層上,該層提供DDS互操作有線協(xié)議。圖4所示,DDS層主要包括具有數(shù)據(jù)通信能力的發(fā)布者,訂閱者,數(shù)據(jù)寫者,數(shù)據(jù)讀者和基于主題的通信,負(fù)責(zé)將資源層的資源敘述發(fā)布出去,并且只由注冊(cè)請(qǐng)求主題的發(fā)布的云方做出響應(yīng),以期完成云方協(xié)作。
圖4 數(shù)據(jù)分發(fā)服務(wù)DDS層Fig.4 The layer of DDS
與其他發(fā)布訂閱中間件相比,DDS的特色是富裕的QoS支持,由DCPS層提供。DDS能夠控制資源使用,例如,帶寬,內(nèi)存,還有非功能屬性,例如可靠性和及時(shí)性。
根據(jù)資源敘述,如何利用DDS進(jìn)行請(qǐng)求響應(yīng)云方協(xié)作,圖5展示了DDS實(shí)體uml圖:
消息封裝發(fā)現(xiàn)可互協(xié)作的云計(jì)算環(huán)境請(qǐng)求和可協(xié)作云方的響應(yīng)。請(qǐng)求和響應(yīng)與常規(guī)請(qǐng)求和響應(yīng)通信不能混淆。云域中,請(qǐng)求和響應(yīng)實(shí)體都是發(fā)布實(shí)體。
消息類型枚舉消息的細(xì)化分類,用于判定區(qū)分請(qǐng)求類型,以此確定請(qǐng)求處理過程。例如,一個(gè)資源遷移請(qǐng)求或前期發(fā)送的消息處置請(qǐng)求,這意味著前期發(fā)送的請(qǐng)求是無效的,因此,需要停止和取消無效請(qǐng)求的處理過程。
圖5 5D云方代理DDS實(shí)體圖Fig.5 DDS entity of cloud proxy
QoS參數(shù)枚舉DDS提供的服務(wù)質(zhì)量參數(shù)。QoS策略為每個(gè)發(fā)布和訂閱訂閱定義QoS參數(shù)集合。
資源敘述是對(duì)云方資源的正式定義,即是一個(gè)云方資源敘述的容器,2.1小節(jié)已對(duì)云方資源敘述進(jìn)行詳細(xì)介紹。
圍繞基于DDS進(jìn)行云方協(xié)作問題,分別從以下角度來剖析解決云方協(xié)作關(guān)鍵問題:
1)請(qǐng)求響應(yīng)主題
云域中,主題是云方代理數(shù)據(jù)類型的實(shí)現(xiàn)和數(shù)據(jù)移動(dòng)的單位。面向?qū)ο缶幊讨校黝}實(shí)例是請(qǐng)求和響應(yīng)的實(shí)例,其中請(qǐng)求和響應(yīng)是基于用戶定義的主題類型。一個(gè)主題的多個(gè)實(shí)例可以存在于云方代理環(huán)境中,而每個(gè)實(shí)例擁有除關(guān)鍵值之外的可變值,特定實(shí)例的一組值稱為一個(gè)樣本,云方代理可攜帶一個(gè)主題實(shí)例的多個(gè)樣本。
2)透明配置QoS
DDS利用服務(wù)質(zhì)量參數(shù)控制發(fā)布和訂閱[6],參數(shù)構(gòu)成QoS策略。QoS簡(jiǎn)化發(fā)布者和訂閱者間復(fù)雜通信需求,云方代理能夠利用QoS進(jìn)行創(chuàng)新,云域中,選取特定需求的參數(shù),枚舉定義QoS,形成QoS策略,兩個(gè)云方進(jìn)行通信,雙方 QoS策略必須兼容。
DDS通信時(shí)由發(fā)布者和訂閱者控制資源信息的QoS屬性,控制方法是給發(fā)布者和訂閱者配置QoS屬性。然而,存在著一些問題,例如,訂閱者徹底理解 QoS策略多樣范圍,避免訂閱者之間QoS沖突,因此云方代理使得訂閱者不需要處理這些問題,同時(shí)對(duì)訂閱者屏蔽DDS的存在,意味著訂閱者只負(fù)責(zé)使用DDS服務(wù),不關(guān)心DDS。
3)發(fā)布訂閱
在云方參與節(jié)點(diǎn)發(fā)布和訂閱主題,通過應(yīng)用程序接口使用DDS的數(shù)據(jù)寫者和數(shù)據(jù)讀者。當(dāng)云方代理需要寫出一個(gè)發(fā)布主題,數(shù)據(jù)寫者對(duì)象此時(shí)被創(chuàng)建,相應(yīng)的,當(dāng)云方代理接收到一個(gè)主題時(shí),數(shù)據(jù)讀者對(duì)象被創(chuàng)建。
當(dāng)云方發(fā)出云方協(xié)作請(qǐng)求,云方代理使用數(shù)據(jù)寫者對(duì)象發(fā)送請(qǐng)求主題。一個(gè)數(shù)據(jù)寫者與單一請(qǐng)求相關(guān);然而,多個(gè)數(shù)據(jù)寫者和主題在云方代理中可以存在。當(dāng)云方代理調(diào)用數(shù)據(jù)寫者的write(),請(qǐng)求對(duì)象傳遞給發(fā)布對(duì)象,云域中進(jìn)行實(shí)際的數(shù)據(jù)序列化。
同樣,云方代理使用數(shù)據(jù)寫者對(duì)象接收請(qǐng)求主題。一個(gè)數(shù)據(jù)寫者與單一請(qǐng)求有關(guān),然而,多個(gè)數(shù)據(jù)讀者和主題在云方代理中可以存在。接收到數(shù)據(jù)之后,數(shù)據(jù)首先被參與節(jié)點(diǎn)的發(fā)布者對(duì)象反序列化,其次數(shù)據(jù)樣本被存儲(chǔ)在適當(dāng)?shù)臄?shù)據(jù)讀者中。云方代理可以通過監(jiān)聽或輪詢讀取請(qǐng)求。
本文實(shí)驗(yàn)環(huán)境配置如下:3個(gè)節(jié)點(diǎn)pc,分別稱為云方A,云方B,云方C。由于OpenStack為基礎(chǔ)設(shè)施即服務(wù) (簡(jiǎn)稱IaaS)提供了開放協(xié)作的環(huán)境,符合本實(shí)驗(yàn)云方基礎(chǔ)設(shè)施服務(wù)需求。同時(shí)openStack的Grizzly版本提供安全支持,因此,3個(gè)云方物理環(huán)境下均部署openStack Grizzly版本,并安裝虛擬機(jī)監(jiān)控器KVM with libvirt,云方A依次開啟API服務(wù),網(wǎng)絡(luò)服務(wù),卷服務(wù),對(duì)象存儲(chǔ)服務(wù)和調(diào)度器服務(wù),云方B和云方C分別運(yùn)行計(jì)算服務(wù),因篇幅有限和現(xiàn)有資源匹配技術(shù)比較成熟,此處不再詳細(xì)介紹資源匹配算法,因此本實(shí)驗(yàn)直接采用文獻(xiàn)[8]提出的資源匹配算法進(jìn)行云方資源匹配。.
現(xiàn)做如下云方協(xié)作實(shí)驗(yàn):云方A發(fā)布請(qǐng)求將自己平臺(tái)中的虛擬機(jī)A遷徙到云方B平臺(tái),為了實(shí)驗(yàn)需求,云方B注冊(cè)請(qǐng)求主題,云方C不注冊(cè)請(qǐng)求,因此會(huì)忽略發(fā)布,云方C同時(shí)作為云域節(jié)點(diǎn),負(fù)責(zé)全局?jǐn)?shù)據(jù)的管理。
云方A平臺(tái)的云方代理發(fā)起虛擬機(jī)遷徙請(qǐng)求:以下將云方A稱為發(fā)布云方,云方B稱為響應(yīng)云方。
發(fā)布云方通過創(chuàng)建請(qǐng)求主題樣本啟動(dòng)處理過程。使用虛擬機(jī)遷徙需求值,如操作系統(tǒng)os,內(nèi)存RAM,存儲(chǔ)容量等,初始化基于xml格式的本地云方資源敘述文件,如圖6所示,作為發(fā)布數(shù)據(jù)的一部分。 數(shù)據(jù)寫者發(fā)布擁有唯一請(qǐng)求ID的請(qǐng)求作為云域中的中的異步消息。隨后,發(fā)布云創(chuàng)建擁有一致請(qǐng)求ID的響應(yīng),注冊(cè)給讀的監(jiān)聽器。請(qǐng)求ID是唯一標(biāo)識(shí)符,響應(yīng)一致的已發(fā)布的請(qǐng)求ID。讀的生命周期取決于時(shí)間期限,當(dāng)創(chuàng)建響應(yīng)主題時(shí),定義QoS策略參數(shù)。
圖6 云方A資源敘述Fig.6 Resource of cloud side A
云域中,所有部署有云方代理的代理節(jié)點(diǎn)都能接收到發(fā)布,然而,只有已注冊(cè)請(qǐng)求主題的云方代理處理。如果有云方注冊(cè)訂閱,相應(yīng)的數(shù)據(jù)寫者存儲(chǔ)和處理請(qǐng)求樣本。本地云方資源敘述對(duì)象被加載并與訂閱云方資源敘述對(duì)象處理匹配進(jìn)行一步的評(píng)估。
圖7 虛擬機(jī)遷徙示例Fig.7 Example diagram of virtual machine
云域能夠定制資源敘述文件匹配技術(shù)和算法,參與云方可以互相商定這些技術(shù)。訂閱節(jié)點(diǎn)的云方代理加載本地資源庫(kù)信息,該實(shí)例的請(qǐng)求協(xié)作并得到響應(yīng)過程如圖7所示。
加入云方代理是解決多個(gè)云方協(xié)作問題,基于DDS的發(fā)布訂閱解耦消息通信促進(jìn)云方間共享工作負(fù)載。云方代理是基于DDS的實(shí)現(xiàn),有效利用基于域安全性,基于主題發(fā)布訂閱,基于服務(wù)質(zhì)量通信,跨平臺(tái)部署和可靠的發(fā)布訂閱消息通信模型提供異質(zhì)云協(xié)作需求,云方部署有基于DDS實(shí)現(xiàn)的云方代理達(dá)到異構(gòu)云方協(xié)作,未來工作中,將進(jìn)一步研究云方資源監(jiān)控的問題,同時(shí),跨云協(xié)作將是以后研究重點(diǎn)。
[1]李燁.云計(jì)算的發(fā)展研究[M].北京:北京郵電大學(xué),2011.
[2]Wikipedia,Cloud monitoring[EB/OL].2015-2-26.http://en.wikipedia.org/wiki/Cloud_computing.
[3]Niyato D,Wang P,Hossain E,et al.Game Theoretic Modeling of Cooperation Among Service Providers in Mobile Cloud Computing Environments[C]//Paris, France, 1-4 April 2012.Wireless Communications and Networking Conf.
[4]David Bernstein,Deepak Vij.Intercloud Directory and Exchange Protocol Detail using XMPP and RDF[C]//World Congress on Services,2010.
[5]Antonio Celesti,F(xiàn)ranco Tusa,Massimo Villari,et al.How to Enhance Cloud Architectures to Enable Cross-Federation[C]//International Conference on Cloud Computing,2010.
[6]Jose L Poza,Juan L.Posadas and Jose E.Simo, “Adding an Ontology to a Standardized QoS-Based MAS Middleware,”distributed computing, artificial intelligence, ioinformatics,soft computing,and ambient assisted living[M].Lecture Notes in Computer Science,2009:83-90.
[7]Object Management Group.DDS.Data Distribution Service for Real-time Systems[S].2007.
[8]曹懷虎,牛娃,張艷梅.基于語義本體論的網(wǎng)格資源描述及匹配算法[J].四川大學(xué)學(xué)報(bào),2007,39(S1):174-177.