摘 要: 介紹利用UML工具設(shè)計(jì)和分析基于網(wǎng)格計(jì)算環(huán)境的虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)模型,從系統(tǒng)需求和問(wèn)題領(lǐng)域出發(fā),分析系統(tǒng)用例圖,并從靜態(tài)和動(dòng)態(tài)方面考慮系統(tǒng)的結(jié)構(gòu)模型。
關(guān)鍵詞: 虛擬現(xiàn)實(shí) 網(wǎng)格計(jì)算 虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng) UML
虛擬現(xiàn)實(shí)是一種先進(jìn)的計(jì)算機(jī)用戶(hù)接口,它通過(guò)給用戶(hù)同時(shí)提供諸如視覺(jué)、聽(tīng)覺(jué)、觸覺(jué)等各種直觀而又自然的實(shí)時(shí)感知交互手段,最大限度地方便用戶(hù)的操作。其中分布式虛擬現(xiàn)實(shí)(Distributed Virtual Reality,DVR)系統(tǒng)是指基于網(wǎng)絡(luò)的虛擬環(huán)境。在這個(gè)環(huán)境中,位于不同物理位置的多個(gè)用戶(hù)或多個(gè)虛擬環(huán)境通過(guò)網(wǎng)絡(luò)相聯(lián)接,并共享信息。虛擬現(xiàn)實(shí)系統(tǒng)運(yùn)行在分布式環(huán)境下有二方面的原因:(1)充分利用分布式計(jì)算機(jī)系統(tǒng)提供的強(qiáng)大計(jì)算能力。(2)有些應(yīng)用本身具有分布特性,如多人通過(guò)網(wǎng)絡(luò)進(jìn)行游戲和虛擬戰(zhàn)場(chǎng)模擬等。
網(wǎng)格是一種把地理位置上分散的資源集成起來(lái)的基礎(chǔ)設(shè)施。其基本特征是:資源共享,通過(guò)通信網(wǎng)絡(luò)提供了計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專(zhuān)家資源和設(shè)備資源的全面共享。網(wǎng)格把同通信手段連接起來(lái)的資源無(wú)縫集成為一個(gè)有機(jī)整體。它給用戶(hù)提供一種基于國(guó)際互聯(lián)網(wǎng)的新型計(jì)算機(jī)平臺(tái),即網(wǎng)格計(jì)算(Grid Computing)環(huán)境,在這個(gè)平臺(tái)上對(duì)來(lái)自客戶(hù)的請(qǐng)求和提供資源的能力進(jìn)行合理的匹配,為用戶(hù)的請(qǐng)求選擇合適的起源服務(wù),實(shí)現(xiàn)廣域范圍的資源共享。要想給用戶(hù)、資源提供暢通的渠道,提供安全、高效、高質(zhì)量的服務(wù),網(wǎng)格必須具備4個(gè)基本特點(diǎn):虛擬性、共享性、集成性和協(xié)商性。
網(wǎng)格計(jì)算利用分布式計(jì)算(Distributed Computing)機(jī)網(wǎng)絡(luò)處理大計(jì)算量任務(wù),最大限度地利用了現(xiàn)有網(wǎng)絡(luò)的計(jì)算能力,實(shí)現(xiàn)資源共享。網(wǎng)格為分布式虛擬現(xiàn)實(shí)提供了強(qiáng)有力的支持,順應(yīng)了當(dāng)前分布式虛擬現(xiàn)實(shí)的發(fā)展,使得分布式虛擬戰(zhàn)場(chǎng)擁有廣泛的應(yīng)用前景。
1 網(wǎng)格環(huán)境分析
網(wǎng)格可以簡(jiǎn)單地劃分為分布式資源、網(wǎng)格系統(tǒng)和網(wǎng)格應(yīng)用3個(gè)層次。網(wǎng)格應(yīng)用層處于網(wǎng)格的頂層,分布式資源為網(wǎng)格的物理層即為網(wǎng)格底層,網(wǎng)格系統(tǒng)處在分布式資源和應(yīng)用層之間,在應(yīng)用層和資源之間起到橋梁作用。完整的網(wǎng)格系統(tǒng)需要有如圖1所示的基本管理功能。
(1)信息管理:為網(wǎng)格中的活動(dòng)提供依據(jù)。
(2)資源管理:負(fù)責(zé)管理網(wǎng)格中的所有資源。
(3)數(shù)據(jù)管理:管理數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的標(biāo)識(shí)和副本等。
(4)通信與安全管理:保證網(wǎng)格上的活動(dòng)合法,信息通達(dá)。
(5)界面管理:負(fù)責(zé)用戶(hù)和網(wǎng)格之間信息的轉(zhuǎn)換和表現(xiàn)。 (6)作業(yè)管理:支持用戶(hù)在計(jì)算資源上運(yùn)行自己的代碼。
(7)公共管理:包括用戶(hù)的管理、網(wǎng)格的監(jiān)控、記賬等。
網(wǎng)格用戶(hù)通過(guò)界面管理的支持將作業(yè)提交給網(wǎng)格,最后從網(wǎng)格得到計(jì)算結(jié)果。網(wǎng)格在提供服務(wù)之前,首先需要通過(guò)信息管理確認(rèn)網(wǎng)格中哪些資源目前可用。分配好可用資源后還需要進(jìn)行資源管理。在作業(yè)計(jì)算過(guò)程中,需要使用網(wǎng)格中的數(shù)據(jù),網(wǎng)格需要通過(guò)數(shù)據(jù)管理傳輸遠(yuǎn)程節(jié)點(diǎn)上的數(shù)據(jù)。整個(gè)過(guò)程需要通信和安全管理作保障以防泄漏關(guān)鍵數(shù)據(jù)等。
2 基于網(wǎng)格環(huán)境的虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)的具體分析
虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)模型在本文中屬于網(wǎng)格的應(yīng)用,也是本文設(shè)計(jì)的重點(diǎn)。網(wǎng)格應(yīng)用區(qū)別于傳統(tǒng)應(yīng)用的特點(diǎn)在于其運(yùn)行環(huán)境是網(wǎng)格,而且網(wǎng)格應(yīng)用可以調(diào)用整個(gè)網(wǎng)格上的各種遠(yuǎn)程服務(wù)??偟恼f(shuō)來(lái),網(wǎng)格應(yīng)用應(yīng)該具有如下一些特點(diǎn):
(1)黏合性。網(wǎng)格應(yīng)用可以通過(guò)把不同的網(wǎng)格構(gòu)件黏合在一起來(lái)實(shí)現(xiàn)。這些黏合在一起的構(gòu)件可以是不同程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)出來(lái)的,可以運(yùn)行在不同的操作系統(tǒng)和硬件設(shè)備上。
(2)動(dòng)態(tài)性。網(wǎng)格應(yīng)用的運(yùn)行環(huán)境是動(dòng)態(tài)的,即所用資源在網(wǎng)格上的來(lái)去是動(dòng)態(tài)的,運(yùn)行應(yīng)用的目標(biāo)機(jī)器的選擇也是動(dòng)態(tài)的。構(gòu)成一個(gè)網(wǎng)格應(yīng)用的構(gòu)件隨著宿主設(shè)備的進(jìn)入和退出,網(wǎng)格呈現(xiàn)出的是可用和不可用的動(dòng)態(tài)性。
(3)平臺(tái)獨(dú)立性。網(wǎng)格應(yīng)用應(yīng)該與具體的平臺(tái)無(wú)關(guān)。盡管網(wǎng)格的思想中并不排斥某種特定的運(yùn)行環(huán)境,但這只是從兼容的角度強(qiáng)調(diào)網(wǎng)格上可以運(yùn)行所有的傳統(tǒng)應(yīng)用。網(wǎng)格應(yīng)用應(yīng)該脫離具體的平臺(tái),可以在任何具體環(huán)境下運(yùn)行。
(4)網(wǎng)格應(yīng)用具有可伸縮性。在網(wǎng)格資源充裕的情況下,一個(gè)應(yīng)用可以利用多個(gè)資源實(shí)現(xiàn)自己的操作。如果網(wǎng)格資源比較緊張,同樣一個(gè)應(yīng)用在少數(shù)幾個(gè)資源上運(yùn)行也可以完成要做的事情。即網(wǎng)格應(yīng)用對(duì)資源的需求也應(yīng)該有伸縮性。
(5)自我管理性。網(wǎng)格應(yīng)用活動(dòng)涉及網(wǎng)格中的多個(gè)資源,在很多情況下,應(yīng)用的啟動(dòng)者也難以判斷活動(dòng)在哪個(gè)具體的機(jī)器上執(zhí)行,一旦出現(xiàn)故障,就需要應(yīng)用能配合網(wǎng)格管理系統(tǒng)實(shí)現(xiàn)自我管理,做好故障恢復(fù)和處理,做到不會(huì)影響其他應(yīng)用的正常執(zhí)行。
2.1 虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)系統(tǒng)需求和問(wèn)題域分析
該模型在初始化階段需要有一定的安全性,支持注冊(cè)、登錄、注銷(xiāo)和退出系統(tǒng)等功能。登錄上系統(tǒng)的網(wǎng)格用戶(hù)可通過(guò)EAI(External Authoring Interface)外部編程接口和虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)中的本地虛擬化身交互通信。一方面隨著本地用戶(hù)的化身在虛擬戰(zhàn)場(chǎng)中不斷地運(yùn)動(dòng)變化,一些本地信息如用戶(hù)序列號(hào)、方位、旋轉(zhuǎn)角度等都在不斷地發(fā)生變化,這些信息對(duì)于該網(wǎng)格用戶(hù)而言?xún)H僅是需要在網(wǎng)格客戶(hù)端本地處理而已;另一方面在網(wǎng)格客戶(hù)端隨著代表該網(wǎng)格用戶(hù)的虛擬化身的不斷運(yùn)動(dòng)變化以及與其他虛擬化身的交互,如炮擊對(duì)方、在線聊天等,虛擬場(chǎng)景也要做出相應(yīng)的變化。這些數(shù)據(jù)信息都需要通過(guò)虛擬組織網(wǎng)格服務(wù)接口將客戶(hù)端網(wǎng)格服務(wù)發(fā)布到網(wǎng)格服務(wù)端,由網(wǎng)格服務(wù)端來(lái)管理虛擬戰(zhàn)場(chǎng)應(yīng)用并將其相應(yīng)的各種原語(yǔ)交付給任務(wù)調(diào)度中心和資源管理中心來(lái)進(jìn)行統(tǒng)籌調(diào)度處理。
圖2即為在網(wǎng)格環(huán)境下所要實(shí)現(xiàn)的應(yīng)用系統(tǒng)——虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)的UML用例圖。具體描述如下:
普通用戶(hù)通過(guò)注冊(cè)成為網(wǎng)格用戶(hù),網(wǎng)格用戶(hù)在登錄上系統(tǒng)之后,可以進(jìn)行注銷(xiāo)、退出系統(tǒng)或是與其他網(wǎng)格用戶(hù)進(jìn)行交互,如發(fā)射武器、更新其他網(wǎng)格用戶(hù)虛擬場(chǎng)景中化身的方位等。這些操作都可被視為網(wǎng)格客戶(hù)端信息的處理。虛擬戰(zhàn)場(chǎng)中的化身亦代表虛擬戰(zhàn)場(chǎng)用戶(hù),它主要是處理無(wú)需通過(guò)網(wǎng)格環(huán)境的本地信息,如更新自身的方位、旋轉(zhuǎn)角度等。而網(wǎng)格客戶(hù)端信息則通過(guò)客戶(hù)端網(wǎng)格服務(wù)發(fā)布到虛擬組織,再由VR應(yīng)用管理進(jìn)行資源調(diào)度和任務(wù)調(diào)度等。
2.2 基于網(wǎng)格的虛擬戰(zhàn)場(chǎng)靜態(tài)模型結(jié)構(gòu)分析
虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)位于網(wǎng)格系統(tǒng)的應(yīng)用層,對(duì)該戰(zhàn)場(chǎng)的設(shè)計(jì)分為實(shí)現(xiàn)功能設(shè)計(jì)和模型界面設(shè)計(jì)。
(1)實(shí)現(xiàn)功能設(shè)計(jì):同一個(gè)局域網(wǎng)共享一個(gè)虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng),實(shí)現(xiàn)三方軍隊(duì)相互交戰(zhàn),其中所有同在一個(gè)局域網(wǎng)且通過(guò)身份驗(yàn)證的用戶(hù)均可通過(guò)網(wǎng)格環(huán)境參與到該戰(zhàn)場(chǎng)場(chǎng)景中,此時(shí)該用戶(hù)即被稱(chēng)為在線用戶(hù)。所有在線用戶(hù)均可利用某些儀器如鼠標(biāo)、鍵盤(pán)等對(duì)虛擬場(chǎng)景進(jìn)行操作,如代表在線用戶(hù)的化身在本地客戶(hù)場(chǎng)景中作轉(zhuǎn)身、移動(dòng)等動(dòng)作,與此同時(shí)其他在線用戶(hù)化身的客戶(hù)場(chǎng)景中同樣記錄著這些動(dòng)作信息,并以此改變自身客戶(hù)場(chǎng)景中此化身的狀態(tài)變化。另一方面,基于虛擬戰(zhàn)場(chǎng)的特性,每個(gè)在線用戶(hù)勢(shì)必會(huì)與敵方交戰(zhàn),他們可以在自身的客戶(hù)場(chǎng)景中運(yùn)用鼠標(biāo)和鍵盤(pán)熱鍵發(fā)射炮彈,攻擊對(duì)方等,這些作戰(zhàn)情況都會(huì)記載在本地客戶(hù)場(chǎng)景信息中。另外,各個(gè)在線用戶(hù)因是交互作戰(zhàn),彼此之間的語(yǔ)言交流必不可少。因此本地客戶(hù)場(chǎng)景中應(yīng)集成有在線聊天功能,便于在線用戶(hù)之間的交流。
(2)模型界面設(shè)計(jì):虛擬戰(zhàn)場(chǎng)系統(tǒng)共有6個(gè)界面子模塊:用戶(hù)登錄界面、武器選擇界面、本地化身信息界面、本地化身作戰(zhàn)情況界面、在線用戶(hù)界面和虛擬戰(zhàn)場(chǎng)場(chǎng)景圖。首先用戶(hù)在登錄界面中輸入身份驗(yàn)證信息,通過(guò)驗(yàn)證后方可進(jìn)入虛擬場(chǎng)景作戰(zhàn);同時(shí)在線用戶(hù)界面中會(huì)為該合法用戶(hù)提供此刻同在虛擬戰(zhàn)場(chǎng)中的各個(gè)在線用戶(hù)名。另外,客戶(hù)化身在鼠標(biāo)和鍵盤(pán)的控制下,可以在虛擬戰(zhàn)場(chǎng)場(chǎng)景中隨意暢游,本地化身信息界面中會(huì)實(shí)時(shí)地記錄下化身的方位數(shù)據(jù)信息,并提供彼此間聊天功能;而本地化身作戰(zhàn)情況界面也會(huì)在化身之間進(jìn)行交互作戰(zhàn)時(shí),可視化地顯示出本地化身的作戰(zhàn)情況,如生命值、得失分情況、攻擊是否成功等信息。
該虛擬戰(zhàn)場(chǎng)的UML類(lèi)圖如圖3所示,其中網(wǎng)格客戶(hù)端體系結(jié)構(gòu)使用C/S模式構(gòu)造,在實(shí)現(xiàn)中分5個(gè)模塊組成:服務(wù)端監(jiān)控中心模塊、多線程發(fā)送器模塊、本地處理機(jī)模塊、多線程接收器模塊和后臺(tái)數(shù)據(jù)庫(kù)維護(hù)模塊。由于本地處理機(jī)模塊必須監(jiān)聽(tīng)各種事件,并做出相應(yīng)的事件處理,所以需要實(shí)現(xiàn)事件監(jiān)聽(tīng)接口。
2.3 基于網(wǎng)格的虛擬戰(zhàn)場(chǎng)動(dòng)態(tài)行為模型分析
需要指出的是,本系統(tǒng)使用EAI外部編程接口實(shí)現(xiàn)用戶(hù)界面的可視化,使虛擬現(xiàn)實(shí)場(chǎng)景更利于控制和管理,這就需要用到Java Applet。由于Applet存在安全性和sandbox(沙盒)機(jī)制問(wèn)題,需要有個(gè)服務(wù)器容器作為HTTP SERVER來(lái)下載Applet,初始階段只需在客戶(hù)端輸入服務(wù)器的IP地址及文件存放位置,這樣就可以訪問(wèn)到存放在HTTP SERVER如Tomcat中的HTML。至此可以在客戶(hù)端開(kāi)始與服務(wù)端和其他客戶(hù)的交互。
以發(fā)射武器為例,由于采用EAI外部編程接口,武器完全可以在虛擬場(chǎng)景中通過(guò)EAI接口動(dòng)態(tài)生成。網(wǎng)格用戶(hù)向VR場(chǎng)景發(fā)送某個(gè)消息表示需要發(fā)射武器,其整個(gè)過(guò)程如圖4所示。具體描述如下:
(1)網(wǎng)格客戶(hù)端創(chuàng)建好線程MultiSender多用戶(hù)發(fā)送器,一個(gè)線程就代表一個(gè)網(wǎng)格用戶(hù)。
(2)本地處理機(jī)客戶(hù)端獲得VRML瀏覽器對(duì)象,以便通過(guò)EAI接口控制VRML場(chǎng)景。
(3)本地處理機(jī)客戶(hù)端獲得虛擬戰(zhàn)場(chǎng)用戶(hù)化身的節(jié)點(diǎn),由此可以通過(guò)節(jié)點(diǎn)的入事件和出事件屬性來(lái)監(jiān)視和控制虛擬化身。
(4)本地處理機(jī)客戶(hù)端創(chuàng)建線程MultiReceiver多用戶(hù)接收器,接收從其他網(wǎng)格用戶(hù)中發(fā)來(lái)的更新信息或是虛擬場(chǎng)景中的動(dòng)態(tài)數(shù)據(jù),如由于化身不斷運(yùn)動(dòng)變化而帶來(lái)的虛擬場(chǎng)景的更新變化等。
(5)通過(guò)對(duì)發(fā)射武器的屬性(如大小、形狀、顏色等)進(jìn)行描述而動(dòng)態(tài)地在虛擬場(chǎng)景中生成它。
(6)武器生成后需要在各個(gè)在線網(wǎng)格用戶(hù)的虛擬場(chǎng)景中發(fā)射,并沿著一定的軌跡運(yùn)動(dòng)。這些軌跡的位置和轉(zhuǎn)向數(shù)據(jù)的計(jì)算通過(guò)網(wǎng)格環(huán)境來(lái)解決。
(7)多用戶(hù)發(fā)送器將計(jì)算武器發(fā)射軌跡數(shù)據(jù)的操作通過(guò)網(wǎng)格服務(wù)發(fā)布接口發(fā)布相應(yīng)的網(wǎng)格服務(wù)。
(8)向網(wǎng)格服務(wù)器請(qǐng)求執(zhí)行完成網(wǎng)格服務(wù)。
(9)網(wǎng)格服務(wù)完成,返回結(jié)果。
(10)向網(wǎng)格客戶(hù)端返回計(jì)算結(jié)果。
(11)線程MultiSender多用戶(hù)發(fā)送器向每個(gè)網(wǎng)格用戶(hù)的線程MultiReceiver多用戶(hù)接收器發(fā)送同步消息,將武器發(fā)射軌跡數(shù)據(jù)發(fā)送到接收器。
(12)接收到武器發(fā)射軌跡數(shù)據(jù)后,通過(guò)EAI接口實(shí)時(shí)更新虛擬戰(zhàn)場(chǎng)中的武器發(fā)射軌跡。
3 結(jié)束語(yǔ)
網(wǎng)格作為計(jì)算機(jī)發(fā)展的新興技術(shù),它著眼于高性能和分布式計(jì)算能力。本文簡(jiǎn)單介紹了網(wǎng)格技術(shù),并著重分析了基于網(wǎng)格環(huán)境的虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)模型的UML建模。整個(gè)虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)模型建立在網(wǎng)格基礎(chǔ)上。網(wǎng)格應(yīng)用的安全要求并不高,只需簡(jiǎn)單地進(jìn)行網(wǎng)格用戶(hù)身份檢驗(yàn)核對(duì),因?yàn)榫W(wǎng)格安全工作的核心應(yīng)放在網(wǎng)格基礎(chǔ)安全如CA認(rèn)證等方面。所以下一步的工作就是如何考慮整個(gè)網(wǎng)格的安全如CA認(rèn)證等。另外,由于虛擬現(xiàn)實(shí)戰(zhàn)場(chǎng)完全可以充分利用網(wǎng)格環(huán)境中強(qiáng)大的分布式計(jì)算能力,因此該模型的可擴(kuò)展性和實(shí)時(shí)性能都比較理想。
參考文獻(xiàn)
1 Ames A,Nadeau D R,Moreland J.VRML資源手冊(cè).北京:電子工業(yè)出版社,1998
2 Julier S,King R,Colbert B et al.The Software Architecture of a Real-time Battlefield Visualization Virtual Environment.IEEE,1999;(13~17)
3 Zhang B,Chen Ye-sho.Enhancing UML Conceptual Modeling through the Use of Virtual Reality.System Sciences,2005.HICSS′05.Proceedings of the 38th Annual Hawaii International Conference on,2005
4 Matijasevic M,Gracanin D,Valavanis K P et al.A Framework for Multiuser Distributed Virtual Environments. Systems,Man and Cybernetics,Part B.IEEE Transactions on,2002;32(4)
5 趙小林.網(wǎng)頁(yè)制作技術(shù)教程——虛擬現(xiàn)實(shí)篇.北京:國(guó)防工業(yè)出版社,2002
6 徐志偉,馮百明,李偉.網(wǎng)格計(jì)算技術(shù).北京:電子工業(yè)出版社,2004
7 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例.北京:人民郵電出版社,2003
8 雷鳴,馮永浩,張軍.基于VRML技術(shù)的分布交互式虛擬戰(zhàn)場(chǎng)仿真.計(jì)算機(jī)仿真,2003;20(11)
9 胡少林,吳玲達(dá),張茂軍.3D虛擬戰(zhàn)場(chǎng)環(huán)境構(gòu)造技術(shù)研究. 小型微型計(jì)算機(jī)系統(tǒng),2002;23(12)