一種多服務(wù)器dve系統(tǒng)中保持連通性的動態(tài)匹配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多服務(wù)器結(jié)構(gòu)DVE系統(tǒng)中的動態(tài)匹配技術(shù),具體涉及一種多服務(wù)器DVE系統(tǒng)中保持連通性的動態(tài)匹配方法。
【背景技術(shù)】
[0002]分布式虛擬環(huán)境(Distributed Virtual Environment,簡稱DVE)系統(tǒng)由于其低開銷,可重復(fù)性以及安全性等優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用于在線游戲,遠(yuǎn)程教育以及軍事訓(xùn)練等多個領(lǐng)域。伴隨著用戶規(guī)模的不斷擴(kuò)大,系統(tǒng)的可擴(kuò)展性問題日益嚴(yán)重,因此,具有高可擴(kuò)展性的多服務(wù)器結(jié)構(gòu)DVE系統(tǒng)得到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。如圖1所示,在現(xiàn)有的某多服務(wù)器DVE系統(tǒng)中,整個虛擬環(huán)境系統(tǒng)由通過高速互聯(lián)網(wǎng)絡(luò)相互連接的多臺服務(wù)器(Server#l?Server#4)共同維護(hù)。同單服務(wù)器結(jié)構(gòu)DVE系統(tǒng)不同,在多服務(wù)器結(jié)構(gòu)下,客戶端可以由系統(tǒng)中任意一臺服務(wù)器提供服務(wù),因此如何在運(yùn)行時將眾多的客戶端分配給合適的服務(wù)器,即通常所謂的匹配問題,就成為了影響系統(tǒng)運(yùn)行效果的關(guān)鍵問題。恰當(dāng)?shù)钠ヅ淇梢杂行Ц纳葡到y(tǒng)的響應(yīng)能力、平衡服務(wù)器之間的工作負(fù)載并有效降低服務(wù)器間的通信開銷。相反,不恰當(dāng)?shù)钠ヅ淇赡軙?yán)重影響系統(tǒng)的整體性能,進(jìn)而破壞用戶在虛擬環(huán)境中的交互體驗。
[0003]由于客戶端在虛擬環(huán)境中的機(jī)動性,匹配結(jié)果通常需要在運(yùn)行期進(jìn)行動態(tài)的調(diào)整,即采用所謂的動態(tài)匹配方法,將客戶端所屬的部分虛擬空間在不同的服務(wù)器之間進(jìn)行迀移。在動態(tài)匹配過程中,通常有三方面的要素需要注意,即客戶端與服務(wù)器間通信延遲,服務(wù)器間的負(fù)載平衡以及虛擬世界的完整性。保持客戶與服務(wù)器之間的低通信延遲可以保證用戶在虛擬環(huán)境中很好的交互體驗,而在服務(wù)器間保持負(fù)載均衡同樣是為了避免過載的服務(wù)器無法為用戶提供可接受的響應(yīng)能力,現(xiàn)有的研究工作也主要集中在優(yōu)化這兩個要素。然而事實(shí)上,保持虛擬世界完整性這一要素也同樣重要。所謂保持虛擬世界完整性是指在將整個虛擬空間劃分為多個區(qū)域并分配給不同的服務(wù)器時,盡可能地保證每個服務(wù)器負(fù)責(zé)區(qū)域的連通性與完整性。如果匹配結(jié)果不能保持較好的虛擬世界完整性,比如虛擬世界被劃分為大量的細(xì)小碎片并且大部分的相鄰碎片都被分配到不同的服務(wù)器上。這種匹配結(jié)果一方面增加了虛擬世界地圖維護(hù)的復(fù)雜性,另一方面也大大的增加了客戶端在各個服務(wù)器之間迀移的概率以及各個服務(wù)器之間的通訊開銷。因此,如何能在動態(tài)匹配過程中盡量保持較好的虛擬世界完整性就成為了多服務(wù)器結(jié)構(gòu)下DVE系統(tǒng)需要解決的一個關(guān)鍵問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題:針對現(xiàn)有技術(shù)的上述問題,提供一種匹配過程速度快、效果好,能夠有效保證各服務(wù)器維護(hù)區(qū)域的連通性,能夠保障多服務(wù)器DVE系統(tǒng)虛擬世界完整性要素、用戶真實(shí)體驗好、適用性好的多服務(wù)器DVE系統(tǒng)中保持連通性的動態(tài)匹配方法。
[0005]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種多服務(wù)器DVE系統(tǒng)中保持連通性的動態(tài)匹配方法,步驟包括: 1)在多服務(wù)器DVE系統(tǒng)運(yùn)行前,預(yù)先將多服務(wù)器DVE系統(tǒng)的虛擬環(huán)境的二維空間根據(jù)服務(wù)器數(shù)量劃分為多個無孔的連通區(qū)域,每個區(qū)域都由具有相同大小的正方形的區(qū)塊組成,所述區(qū)塊為負(fù)載均衡過程中不同服務(wù)器之間進(jìn)行二維空間迀移的最小單位;所述連通區(qū)域指組成該區(qū)域的所有區(qū)塊可組成強(qiáng)連通子圖,對于該區(qū)域中的任何兩個區(qū)塊,都可以在該區(qū)域內(nèi)找到一條路徑連接這兩個區(qū)塊,且該路徑只包括水平和垂直兩個方向的連接線,并不包括45度角的斜線;所述無孔的連通區(qū)域是指該區(qū)域內(nèi)部不包含不屬于該區(qū)域的區(qū)塊,描述為該連通區(qū)域的補(bǔ)充區(qū)域也是連通區(qū)域,所述該連通區(qū)域的補(bǔ)充區(qū)域是指虛擬空間中除去該連通區(qū)域的之外其他區(qū)塊共同組成的區(qū)域;將劃分得到的多個無孔的連通區(qū)域分別指派給不同的服務(wù)器,每個服務(wù)器負(fù)責(zé)維護(hù)所分配區(qū)域及其上運(yùn)行的客戶端實(shí)體;
2)在多服務(wù)器DVE系統(tǒng)運(yùn)行期間,各個服務(wù)器周期性地檢查自身的負(fù)載情況,如果負(fù)載超出預(yù)設(shè)的負(fù)載閾值,則啟動動態(tài)匹配過程,根據(jù)區(qū)域連通性檢查法則和區(qū)塊滿意度優(yōu)化原則對所分配區(qū)域的備選迀移區(qū)塊進(jìn)行選擇,并根據(jù)選擇結(jié)果將相應(yīng)區(qū)塊發(fā)送給維護(hù)相鄰區(qū)域的服務(wù)器。
[0006]優(yōu)選地,所述步驟2)的詳細(xì)步驟包括:
2.1)在多服務(wù)器DVE系統(tǒng)運(yùn)行期間,各個服務(wù)器周期性地檢查自己的負(fù)載情況,判斷自身的負(fù)載是否超出預(yù)設(shè)的負(fù)載閾值,如果自身的負(fù)載超出預(yù)設(shè)的負(fù)載閾值,則跳轉(zhuǎn)執(zhí)行步驟2.2),否則在下一個周期時跳轉(zhuǎn)執(zhí)行步驟2.1);
2.2)當(dāng)前服務(wù)器向在多服務(wù)器DVE系統(tǒng)虛擬環(huán)境的二維空間中維護(hù)相鄰區(qū)域的服務(wù)器發(fā)送區(qū)塊迀移請求,收到區(qū)塊迀移請求的服務(wù)器根據(jù)自身目前負(fù)載情況給予反饋,若目前處于低負(fù)載情況則反饋可以迀移,否則反饋無法迀移;
2.3)當(dāng)前服務(wù)器接收來自其他服務(wù)器的反饋,若其他服務(wù)器均反饋無法接收當(dāng)前服務(wù)器的迀移請求,則本周期的動態(tài)匹配過程中止,在下一周期跳轉(zhuǎn)執(zhí)行步驟2.1),否則當(dāng)前服務(wù)器從自身維護(hù)的區(qū)域中選擇備選迀移區(qū)塊準(zhǔn)備進(jìn)行動態(tài)匹配;
2.4)當(dāng)前服務(wù)器根據(jù)區(qū)域連通性檢查法則對備選迀移區(qū)塊進(jìn)行篩選,保留可以保持迀出與迀入服務(wù)器的無孔連通性的區(qū)塊;
2.5)當(dāng)前服務(wù)器根據(jù)區(qū)塊滿意度優(yōu)化原則對可迀移區(qū)塊進(jìn)行排序;
2.6)當(dāng)前服務(wù)器根據(jù)排序結(jié)果選擇區(qū)塊發(fā)送給反饋可以進(jìn)行迀移的服務(wù)器實(shí)施迀移;
2.7)當(dāng)前服務(wù)器判斷自身的負(fù)載情況是否仍然超出預(yù)設(shè)的負(fù)載閾值,如果仍然超出預(yù)設(shè)的負(fù)載閾值,則跳轉(zhuǎn)執(zhí)行步驟2.4);否則迀移過程結(jié)束,在下一個周期跳轉(zhuǎn)執(zhí)行步驟
2.D0
[0007]優(yōu)選地,所述步驟2.4)的詳細(xì)步驟包括:
2.4.1)對備選迀移區(qū)塊和待迀出區(qū)域按照區(qū)塊迀出區(qū)域的無孔連通性保持原則進(jìn)行檢查,如果可以保持,則在可迀移區(qū)塊列表中保留該區(qū)塊,否則剔除該區(qū)塊;
2.4.2)對備選迀移區(qū)塊和待迀入?yún)^(qū)域的補(bǔ)充區(qū)域按照區(qū)塊迀出區(qū)域的無孔連通性保持原則進(jìn)行檢查,如果可以保持,則在可迀移區(qū)塊列表中保留該區(qū)塊,否則剔除該區(qū)塊。
[0008]優(yōu)選地,所述區(qū)塊迀出區(qū)域的無孔連通性保持原則包括下述規(guī)則:①如果區(qū)塊與區(qū)域的交界線有一個,則該區(qū)塊迀出該區(qū)域不會影響區(qū)域的無孔連通性;②如果區(qū)塊與區(qū)域的交界線有兩個、且交界線位于區(qū)塊相對的兩側(cè),則該區(qū)塊迀出該區(qū)域會影響區(qū)域的無孔連通性;③如果區(qū)塊與區(qū)域的交界線有兩個、且交界線位于區(qū)塊相鄰的兩側(cè),當(dāng)該區(qū)塊在相鄰交界線的對角區(qū)塊也屬于該區(qū)域時,則該區(qū)塊迀出該區(qū)域不會影響區(qū)域的無孔連通性,否則當(dāng)該區(qū)塊在相鄰交界線的對角區(qū)塊不屬于該區(qū)域時,則該區(qū)塊迀出該區(qū)域會影響區(qū)域的無孔連通性,所述相鄰交界線的對角區(qū)塊是指與該區(qū)塊相鄰的兩個區(qū)塊也都相鄰的區(qū)塊;④如果區(qū)塊與區(qū)域的交界線有三個,當(dāng)該區(qū)塊在兩組相鄰交界線的對角區(qū)塊都屬于該區(qū)域時,則該區(qū)塊迀出該區(qū)域不會影響區(qū)域的無孔連通性,否則當(dāng)該區(qū)塊在兩組相鄰交界線的對角區(qū)塊不都屬于該區(qū)域時,則該區(qū)塊迀出該區(qū)域會影響區(qū)域的無孔連通性,所述相鄰交界線的對角區(qū)塊是指與該區(qū)塊相鄰的兩組區(qū)塊分別相鄰的兩個區(qū)塊;⑤如果區(qū)塊與區(qū)域的交界線有四個,則該區(qū)塊迀出該區(qū)域會影響區(qū)域的無孔連通性。
[0009]優(yōu)選地,所述步驟2.5)的詳細(xì)步驟包括:對備選迀移區(qū)塊按區(qū)塊不滿意度調(diào)整值由高到低的順序進(jìn)行排序,所述區(qū)塊不滿意度調(diào)整值為該備選迀移區(qū)塊在迀出服務(wù)器的不滿意度減去該區(qū)塊在待迀入服務(wù)器的不滿意度,所述區(qū)塊在服務(wù)器的不滿意度是指該區(qū)塊中與該服務(wù)器的通信延遲高于額定延遲的客戶端的數(shù)量。
[0010]本發(fā)明多服務(wù)器DVE系統(tǒng)中保持連通性的動態(tài)匹配方法具有下述優(yōu)點(diǎn):本發(fā)明面向多服務(wù)器結(jié)構(gòu)DVE系統(tǒng)中影響系統(tǒng)運(yùn)行效果的關(guān)鍵問題動態(tài)匹配問題,在保持現(xiàn)有匹配方法重視服務(wù)器間負(fù)載的均衡性以及客戶端與服務(wù)器之間的延遲情況的同時,進(jìn)一步考慮了虛擬世界完整性對系統(tǒng)運(yùn)行效果的影響,通過引入?yún)^(qū)域連通性檢查法則對備選迀移區(qū)塊進(jìn)行篩選,