李龍江 ,申山宏 ,劉來(lái)軍
(1.電子科技大學(xué) 通信與信息工程學(xué)院,四川 成都 610054;2.中興通訊股份有限公司 南京研究所,江蘇 南京 210012)
隨著計(jì)算機(jī)三維動(dòng)畫(huà)圖形技術(shù)的不斷發(fā)展,三維網(wǎng)絡(luò)技術(shù)受到越來(lái)越多的重視?,F(xiàn)實(shí)世界是三維的,采用三維技術(shù)表達(dá)信息更加直接,尤其適合那些尚未實(shí)現(xiàn)或準(zhǔn)備實(shí)施的立體創(chuàng)意,借助三維網(wǎng)絡(luò)技術(shù)可使用戶(hù)提前領(lǐng)略到最終的實(shí)施效果。正因?yàn)槿S動(dòng)畫(huà)比平面圖更直觀,并能給觀賞者身臨其境的感覺(jué),從而創(chuàng)造全新的人機(jī)交互體驗(yàn)。三維技術(shù)已經(jīng)應(yīng)用于軍事、航天、醫(yī)療和娛樂(lè)領(lǐng)域,并在遠(yuǎn)程教育、工程設(shè)計(jì)與制造、網(wǎng)絡(luò)仿真和電子商務(wù)等方面顯示出了良好的應(yīng)用前景。
當(dāng)前,大部分三維網(wǎng)絡(luò)應(yīng)用都采用客戶(hù)端—服務(wù)器(C/S)(或?yàn)g覽器-服務(wù)器(B/S)模式)[1-2]。客戶(hù)機(jī)/服務(wù)器系統(tǒng)是兩層架構(gòu),但隨著三維服務(wù)器軟件系統(tǒng)規(guī)模越來(lái)越大,功能越來(lái)越多,應(yīng)用業(yè)務(wù)邏輯復(fù)雜并且易變,這樣做會(huì)有很多缺點(diǎn),例如冗余代碼,不利于重用,不利于分工等。為解決這些問(wèn)題,通過(guò)區(qū)分表示層、應(yīng)用邏輯層和數(shù)據(jù)訪問(wèn)層,服務(wù)器模型進(jìn)一步演化為多層服務(wù)器架構(gòu),這樣能簡(jiǎn)化三維軟件的開(kāi)發(fā),但集中式的服務(wù)器的訪問(wèn)仍然是系統(tǒng)的性能瓶頸,常常無(wú)法滿(mǎn)足大規(guī)模三維網(wǎng)絡(luò)應(yīng)用中用戶(hù)對(duì)響應(yīng)延遲、下載延遲等要求。
針對(duì)該問(wèn)題,本文提出了一種面向三維數(shù)據(jù)密集應(yīng)用的可伸縮服務(wù)器架構(gòu),它通過(guò)區(qū)分連接和應(yīng)用的各個(gè)功能,并采用核心通信服務(wù)器統(tǒng)一管理服務(wù)器系統(tǒng),從而以一種對(duì)用戶(hù)透明的方式,改善三維應(yīng)用的整體性能。該系統(tǒng)服務(wù)架構(gòu)由多個(gè)部分組成,除了核心通信服務(wù)器,其他服務(wù)功能在安裝的同時(shí),向核心通信服務(wù)器進(jìn)行自動(dòng)注冊(cè),從而根據(jù)服務(wù)類(lèi)型對(duì)帶寬和存儲(chǔ)的需求差異,服務(wù)提供商具有可以自由地、透明地?cái)U(kuò)展系統(tǒng)的能力?;谒岢龅姆?wù)框架,用戶(hù)只需知道用戶(hù)連接服務(wù)器的地址,就可以透明地訪問(wèn)系統(tǒng)的所有服務(wù),從而在提高服務(wù)器性能的同時(shí),實(shí)現(xiàn)對(duì)用戶(hù)的透明性。
回顧IT產(chǎn)業(yè)的發(fā)展歷程,計(jì)算服務(wù)經(jīng)歷了從大型機(jī)架構(gòu),到客戶(hù)端-服務(wù)器架構(gòu)(C/S),最后到多層服務(wù)架構(gòu)的演化歷程[3],如圖1所示。20世紀(jì)80年代以后,傳統(tǒng)的集中式處理和主機(jī)/啞終端模式越來(lái)越不能適應(yīng)人們的需要,特別是隨著微軟微機(jī)操作系統(tǒng)的出現(xiàn),PC進(jìn)入千家萬(wàn)戶(hù),網(wǎng)絡(luò)互聯(lián)逐漸成為主流。20世紀(jì)90年代后,Internet高速發(fā)展,大部分網(wǎng)絡(luò)服務(wù) (如WWW、FTP等)采用客戶(hù)端—服務(wù)器(C/S)或?yàn)g覽器-服務(wù)器(B/S)模式,并進(jìn)一步演化為多層服務(wù)器架構(gòu)。
圖1 網(wǎng)絡(luò)服務(wù)模型演化
客戶(hù)/服務(wù)器架構(gòu)(C/S)實(shí)質(zhì)就是將數(shù)據(jù)存取和應(yīng)用程序分離開(kāi)來(lái)[3],用數(shù)據(jù)服務(wù)器執(zhí)行數(shù)據(jù)操作,客戶(hù)機(jī)來(lái)執(zhí)行應(yīng)用程序,用戶(hù)在客戶(hù)端通過(guò)網(wǎng)絡(luò)同服務(wù)器打交道??蛻?hù)端又包括用戶(hù)界面和企業(yè)邏輯,網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)主要是客戶(hù)端向服務(wù)器發(fā)出的請(qǐng)求以及服務(wù)器發(fā)給客戶(hù)端的響應(yīng)結(jié)果或出錯(cuò)信息。
當(dāng)前,客戶(hù)服務(wù)器模式仍然是市場(chǎng)的主流軟件模式,但傳統(tǒng)的客戶(hù)服務(wù)器模式優(yōu)點(diǎn)和缺點(diǎn)并存。
(1)提高了可伸縮性。通過(guò)客戶(hù)端分擔(dān)服務(wù)器端功能,降低服務(wù)器端計(jì)算開(kāi)銷(xiāo)和通信開(kāi)銷(xiāo),提高了服務(wù)器端支持的客戶(hù)端數(shù)目,因而可伸縮性得到提高。
(2)不利于軟件維護(hù)。需要在客戶(hù)端和服務(wù)器端同時(shí)安裝并維護(hù)軟件功能,如果軟件需要更新,常常需要客戶(hù)端和服務(wù)器端分別更新軟件,由于通常有大量的客戶(hù)端,安裝麻煩,且易出錯(cuò),一致性不易保證。
(3)不利于代碼重用。隨著軟件系統(tǒng)規(guī)模越來(lái)越大,功能越來(lái)越多,應(yīng)用業(yè)務(wù)邏輯復(fù)雜并且易變時(shí),簡(jiǎn)單的服務(wù)器設(shè)計(jì),導(dǎo)致冗余代碼,不利于重用,不利于分工。
(4)存在性能瓶頸。大量的客戶(hù)端依賴(lài)單一的服務(wù)器功能,服務(wù)器端常常是性能瓶頸。如果服務(wù)器失效,則整個(gè)系統(tǒng)軟件失敗,由于傳統(tǒng)的TCP/IP通信機(jī)制是一種盡力傳輸?shù)臋C(jī)制,不能保證QoS可靠性,因而也導(dǎo)致穩(wěn)定性難以保障。
針對(duì)客戶(hù)端/服務(wù)器端架構(gòu)存在的缺點(diǎn),人們提出了許多改進(jìn)方法,其中一種思路是,針對(duì)簡(jiǎn)單的服務(wù)器端設(shè)計(jì)不利于重用和不利于分工的缺點(diǎn),提出了多層服務(wù)器架構(gòu)。隨著面向?qū)ο蟮木幊趟枷肓餍?,人們采用?lèi)似細(xì)分的方法將傳統(tǒng)的客戶(hù)機(jī)/服務(wù)器兩層架構(gòu)擴(kuò)展到3層,甚至更多層。3層架構(gòu)包括表現(xiàn)層、中間層和數(shù)據(jù)源層。表現(xiàn)層實(shí)現(xiàn)用戶(hù)界面,中間層實(shí)現(xiàn)業(yè)務(wù)邏輯,在數(shù)據(jù)源層存取數(shù)據(jù)。這種方式可以將復(fù)雜的領(lǐng)域邏輯從界面中抽離出來(lái),用對(duì)象加以建模和組織。由于三維網(wǎng)絡(luò)應(yīng)用的特殊性,它通常涉及大量的數(shù)據(jù)交互,導(dǎo)致服務(wù)器的訪問(wèn)仍然是系統(tǒng)的性能瓶頸[4-5]。
在典型的三維應(yīng)用實(shí)踐中,模型下載常常占用大量帶寬,當(dāng)用戶(hù)增多時(shí),常常導(dǎo)致服務(wù)器反應(yīng)延遲顯著增加,用戶(hù)體驗(yàn)較差。簡(jiǎn)單地增加服務(wù)器,能夠改進(jìn)延遲性能,但導(dǎo)致每個(gè)客戶(hù)端都需要分別為多個(gè)服務(wù)器進(jìn)行特殊配置,安裝和維護(hù)費(fèi)用激增。調(diào)查用戶(hù)需求表明,用戶(hù)希望服務(wù)器端的變更對(duì)客戶(hù)端是透明的,簡(jiǎn)化客戶(hù)端的安裝和維護(hù)難度。通過(guò)分析用戶(hù)訪問(wèn)服務(wù)器的過(guò)程發(fā)現(xiàn),用戶(hù)客戶(hù)端訪問(wèn)三維服務(wù)時(shí),通常要經(jīng)歷登錄、模型定位和模型下載等過(guò)程,當(dāng)用戶(hù)規(guī)模大時(shí),用戶(hù)的模型下載過(guò)程常常導(dǎo)致其他用戶(hù)無(wú)法正常登錄。為了改善用戶(hù)訪問(wèn)性能,特別是訪問(wèn)延遲,并保持用戶(hù)訪問(wèn)的透明性,本文提出了一種具有云計(jì)算特點(diǎn)的可伸縮的服務(wù)器架構(gòu),通過(guò)將連接資源虛擬化,區(qū)分連接和其他功能需求,以支持三維計(jì)算的透明訪問(wèn)需求。
多層可伸縮的服務(wù)器框架結(jié)構(gòu)圖如圖2所示,服務(wù)器端包括用戶(hù)連接服務(wù)器 (UCS)、核心通信服務(wù)器(KCS)、認(rèn)證計(jì)費(fèi)服務(wù)器 (CAS)、認(rèn)證計(jì)費(fèi)服務(wù)器(CAS)、內(nèi)容服務(wù)器(CS)、消息服務(wù)器(MS)、應(yīng)用服務(wù)器(AS)和中繼服務(wù)器(PS)。
圖2 多層可伸縮的服務(wù)器框架結(jié)構(gòu)圖
用戶(hù)連接服務(wù)器的主要功能是接收客戶(hù)端首次連接,并提供客戶(hù)端對(duì)其他服務(wù)器的地址查詢(xún)。為了使客戶(hù)端總知道如何訪問(wèn)服務(wù)器,UCS采用公開(kāi)地址。當(dāng)有多種類(lèi)型的用戶(hù)終端接入時(shí),如3G或Wi-Fi,則通??梢圆渴饍蓚€(gè)服務(wù)器,分別具有相應(yīng)的物理通信接口。
整個(gè)系統(tǒng)里只允許有一個(gè)核心通信服務(wù)器,它是系統(tǒng)的根服務(wù)器,其主要功能是負(fù)責(zé)其他所有服務(wù)器之間的協(xié)調(diào)。其他服務(wù)器都需要向KCS進(jìn)行注冊(cè),離開(kāi)或失效時(shí),則由KCS進(jìn)行注銷(xiāo)。KCS維護(hù)服務(wù)器系統(tǒng)目錄,并按照預(yù)定策略將客戶(hù)端請(qǐng)求重定向到特定服務(wù)器。為了安全目的,也可以為系統(tǒng)增加備份的KCS服務(wù)器,這是可選的。
CAS的主要功能是管理用戶(hù)權(quán)限,支持VIP認(rèn)證。如果用戶(hù)訪問(wèn)的是收費(fèi)服務(wù),則對(duì)用戶(hù)的訪問(wèn)和流量進(jìn)行計(jì)費(fèi),并支持對(duì)其他服務(wù)器的用戶(hù)認(rèn)證查詢(xún)功能。
CS的主要功能是負(fù)責(zé)內(nèi)容管理,所有與服務(wù)內(nèi)容相關(guān)的數(shù)據(jù)信息都存儲(chǔ)在CS上,并允許客戶(hù)端進(jìn)行下載或?qū)?nèi)容信息進(jìn)行更新??蛻?hù)端對(duì)CS的任何訪問(wèn)都必須得到CAS的認(rèn)證,以決定是否提供相應(yīng)服務(wù)。
MS的主要功能是處理各種系統(tǒng)消息,包括:場(chǎng)景同步消息、內(nèi)容更新消息、認(rèn)證通知消息、服務(wù)器自動(dòng)切換和故障通知等。用戶(hù)登錄時(shí),如需要提升權(quán)限(如VIP認(rèn)證),也需要通過(guò)MS進(jìn)行消息管理。
AS的主要功能是提供與應(yīng)用相關(guān)的服務(wù),如系統(tǒng)需求配置、公告發(fā)布和新功能部署等。
為了支持服務(wù)器間的負(fù)載均衡,管理用戶(hù)在不同服務(wù)器間切換,中繼服務(wù)器負(fù)責(zé)重定向連接請(qǐng)求和資源定位。
從功能上看,所有服務(wù)器功能可以安裝在同一臺(tái)服務(wù)器設(shè)備上,但為了獲得最佳性能,每個(gè)服務(wù)器可以安裝在不同設(shè)備上,通過(guò)KCS管理,確保對(duì)客戶(hù)端的透明性。每個(gè)服務(wù)器安裝后自動(dòng)向KCS注冊(cè),不需要單獨(dú)配置。可以看出,借助本項(xiàng)目的多層易擴(kuò)展服務(wù)架構(gòu),極大地減少了服務(wù)器集群的配置工作,并能根據(jù)系統(tǒng)負(fù)荷容易的增加服務(wù)器設(shè)備,擴(kuò)充系統(tǒng)容量。
同樣,借助多層易擴(kuò)展服務(wù)架構(gòu),客戶(hù)端訪問(wèn)服務(wù)器端的流程也非常直接??蛻?hù)端的登錄流程如下:
(1)用戶(hù)通過(guò)UCS向 KCS查詢(xún)得到一個(gè) CS和一個(gè)MS的地址;
(2) 用戶(hù)向 MS登錄 (發(fā)送 VIP認(rèn)證信息),MS向CAS注冊(cè)用戶(hù)成功,為用戶(hù)分配通行證ID,并將ID返回給用戶(hù);
(3)用戶(hù)使用 ID向 CS請(qǐng)求訪問(wèn)資源,CS向 CAS認(rèn)證用戶(hù)ID,并報(bào)告資源使用狀況,CAS對(duì)用戶(hù)進(jìn)行計(jì)費(fèi),若無(wú)需計(jì)費(fèi),則進(jìn)行日志記錄(Log)。
可以看出,整個(gè)系統(tǒng)的部署非常簡(jiǎn)單,考慮了未來(lái)業(yè)務(wù)發(fā)展和容量擴(kuò)展需求,且便于負(fù)載均衡,功能非常靈活。多個(gè)客戶(hù)端之間可以通過(guò)MS進(jìn)行交互。用戶(hù)也可以通過(guò)AS方便地發(fā)布新的應(yīng)用。
本文提出的多層可伸縮的服務(wù)器架構(gòu)尤其適合數(shù)據(jù)密集型應(yīng)用。為驗(yàn)證本文所提服務(wù)框架的可行性及性能,在一個(gè)三維虛擬現(xiàn)實(shí)原型系統(tǒng)里對(duì)所提方法進(jìn)行驗(yàn)證。
初步演示效果如圖3所示,所需管理的服務(wù)內(nèi)容以三維內(nèi)容為主,特別是模型數(shù)據(jù)和紋理材質(zhì)數(shù)據(jù),占用存儲(chǔ)和帶寬最大(包括人物及場(chǎng)景,約4 MB),因而在小規(guī)模測(cè)試階段,系統(tǒng)配置了數(shù)臺(tái)內(nèi)容服務(wù)器CS,其他所有服務(wù)內(nèi)容運(yùn)行于同一臺(tái)服務(wù)器上。
圖3 三維虛擬現(xiàn)實(shí)場(chǎng)景初步演示截圖
為測(cè)試系統(tǒng)的可擴(kuò)展性能,本文保持系統(tǒng)其他條件不變,改變CS的個(gè)數(shù)。系統(tǒng)日志(Log)記錄每個(gè)客戶(hù)端對(duì)服務(wù)器的各種訪問(wèn)操作(連接請(qǐng)求、下載完成等)及其時(shí)間戳。
用到的性能指標(biāo)有登錄延遲(Login Latency)、定位延遲(Shapebox Latency)及下載延遲(Download Latency)3個(gè)。登錄延遲指從初次連接請(qǐng)求發(fā)起時(shí)刻到成功登錄之間的時(shí)間長(zhǎng)度。由于三維虛擬現(xiàn)實(shí)應(yīng)用中通常都采用模型的外包(即Shapebox)確定模型的位置,因此在下載模型前,必須知道模型的外包,以判斷模型是否在視野內(nèi),是否需要下載。有了外包信息,客戶(hù)端顯示過(guò)程中不需要下載所有三維模型數(shù)據(jù),而只需要下載當(dāng)前視野附近的模型即可。模型外包相關(guān)的信息成為定位信息,下載定位信息所需的時(shí)間長(zhǎng)度稱(chēng)為定位延遲。下載延遲則指需要下載的模型從下載請(qǐng)求發(fā)出時(shí)刻到下載完成之間的時(shí)間長(zhǎng)度。
圖4和圖5顯示了各個(gè)參數(shù)指標(biāo)與CS個(gè)數(shù)之間的關(guān)系,圖中顯示10次客戶(hù)端訪問(wèn)的平均值,置信度為90%。結(jié)果表明,隨著CS個(gè)數(shù)增加,登錄延遲幾乎沒(méi)有變化,這是由于登錄過(guò)程與CS無(wú)關(guān)。定位延遲及下載延遲都逐漸減少,這是由于增加的CS分擔(dān)了已有CS的下載壓力,因而總體延遲下降。此外,測(cè)試過(guò)程還表明,CS的增加過(guò)程或減少過(guò)程無(wú)需重啟服務(wù)端,而且不會(huì)中斷客戶(hù)端的下載,驗(yàn)證了所提服務(wù)框架的靈活性和高效性。
圖4 登錄延遲和定位延遲
本文針對(duì)數(shù)據(jù)密集型應(yīng)用的服務(wù)需求,提出了一種具有云計(jì)算特點(diǎn)的服務(wù)架構(gòu),能夠以對(duì)客戶(hù)端透明的方式支持各種服務(wù)類(lèi)型對(duì)帶寬和存儲(chǔ)要求的巨大差異。系統(tǒng)服務(wù)架構(gòu)由多個(gè)部分組成,除了核心通信服務(wù)器,其他服務(wù)功能在安裝的同時(shí),向核心通信服務(wù)器進(jìn)行自動(dòng)注冊(cè),從而根據(jù)服務(wù)類(lèi)型對(duì)帶寬和存儲(chǔ)的需求差異,服務(wù)提供商具有可以自由、透明地?cái)U(kuò)展系統(tǒng)的能力。
圖5 三維模型信息下載延遲
基于所提出的服務(wù)框架,用戶(hù)只需知道核心連接服務(wù)器的地址,就可以透明地訪問(wèn)系統(tǒng)的所有服務(wù),從而實(shí)現(xiàn)了云計(jì)算的最重要特點(diǎn)——透明性。未來(lái)進(jìn)一步的工作是研究服務(wù)資源的自動(dòng)負(fù)載均衡機(jī)制,以更智能的方式支持更廣泛的服務(wù)類(lèi)型需求。
[1]COMER D E.Computer networks and internets(international edition)[M].Prentice Hall International Inc., Upper Saddle River, NJ, 1999.
[2]LEWANDOWSKI S M.Frameworks for component-based client/server computing[J].ACM Computing Surveys (CSUR),1998, 30 (1):3-27.
[3]HAYES B.Cloud computing[J].Communications of the ACM,2008, 51(7):9-11.
[4]尹國(guó)定,衛(wèi)紅.云計(jì)算——實(shí)現(xiàn)概念計(jì)算的方法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2003,33(4):502-506.
[5]BUYYA R, YEO C S, VENUGOPAL S.Market-oriented cloud computing: vision, hype, and reality for delivering IT services as computing utilities[C].10th IEEE International Conference on High Performance Computing and Communications, HPCC′08, 2008:5-13.