摘 要: 基于Web的三維可視化仿真及其實(shí)現(xiàn)技術(shù),設(shè)計(jì)了一種基于J2EE平臺(tái)和B/S結(jié)構(gòu)的三維可視化仿真系統(tǒng)框架,,采用JOGL手段構(gòu)建了基于B/S結(jié)構(gòu)模式的三維可視化仿真系統(tǒng)原型,,形成了基于Web的工程系統(tǒng)的三維可視化仿真及其實(shí)現(xiàn)技術(shù)。經(jīng)實(shí)踐驗(yàn)證了所采用的三維可視化仿真技術(shù)的可行性,,展示了基于J2EE平臺(tái)和B/S結(jié)構(gòu)的三維可視化仿真系統(tǒng)的發(fā)展與應(yīng)用前景,。
關(guān)鍵詞: 仿真;三維可視化,;Web,;J2EE;JOGL
隨著數(shù)據(jù)庫(kù)技術(shù),、多媒體技術(shù),、可視化技術(shù)以及虛擬現(xiàn)實(shí)技術(shù)的發(fā)展[1],特別是傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用的普及和新一代互聯(lián)網(wǎng)技術(shù)的到來(lái),,Web技術(shù)從僅能夠提供文字與靜態(tài)圖片瀏覽,,逐漸發(fā)展成為可以支持豐富的影音數(shù)據(jù)流,、海量的數(shù)據(jù)挖掘,、遠(yuǎn)程實(shí)時(shí)交互的監(jiān)控等功能,,基于Web的三維可視化技術(shù)正在成為工程系統(tǒng)三維仿真技術(shù)的發(fā)展方向之一。本文構(gòu)建了一種基于Web結(jié)構(gòu)和J2EE平臺(tái)的工程系統(tǒng)三維可視化仿真框架,,以JOGL為手段,,給出了相應(yīng)的三維仿真及其實(shí)現(xiàn)技術(shù),并運(yùn)用工程數(shù)據(jù)予以檢驗(yàn),。
1 基于J2EE的真三維可視化仿真框架
工程系統(tǒng)(如地礦工程系統(tǒng))大多具有空間屬性,,其仿真技術(shù)需要表現(xiàn)系統(tǒng)的空間屬性及其空間關(guān)系。Web技術(shù)的發(fā)展,,使得工程系統(tǒng)的遠(yuǎn)程真三維仿真成為可能,。為此,本研究設(shè)計(jì)了一種基于J2EE平臺(tái)的三維可視化仿真系統(tǒng)框架,,如圖1所示,。
根據(jù)J2EE定義的服務(wù)和規(guī)范,本研究將三維可視化仿真系統(tǒng)分為客戶(hù)層,、中間層(Web層,、業(yè)務(wù)層)和數(shù)據(jù)層,以實(shí)現(xiàn)工程系統(tǒng)的三維可視化仿真功能,;以JOGL作為三維圖形的顯示工具,,用點(diǎn)、線,、面,、體來(lái)表達(dá)三維工程系統(tǒng);以Applet作為用戶(hù)與三維圖形的交互手段,,用AWT,、Swing等來(lái)響應(yīng)鍵盤(pán)、鼠標(biāo)和其他外圍設(shè)備的事件,;以JRE和JVM作為客戶(hù)層Applet組件的容器和Java運(yùn)行環(huán)境,,用插件等方式運(yùn)行在瀏覽器中;以權(quán)限驗(yàn)證方式作為系統(tǒng)信息安全手段,,用基于角色授權(quán)方式進(jìn)行系統(tǒng)訪問(wèn)安全控制,;以JSP作為應(yīng)用系統(tǒng)基本展示工具,用動(dòng)態(tài)生成的Web頁(yè)面來(lái)進(jìn)行業(yè)務(wù)數(shù)據(jù)的發(fā)布和查詢(xún),;以Struts作為系統(tǒng)邏輯處理,,用XML進(jìn)行業(yè)務(wù)邏輯配置來(lái)控制訪問(wèn)內(nèi)容;以EJB和JavaBean等作為業(yè)務(wù)模型,,用面向?qū)ο蠹夹g(shù)中的類(lèi)來(lái)表示對(duì)象工程系統(tǒng)的三維模型,。在此基礎(chǔ)上結(jié)合數(shù)據(jù)庫(kù)技術(shù),,給出了工程系統(tǒng)的三維可視化仿真技術(shù)。
2 基于J2EE的真三維可視化仿真技術(shù)
2.1 平臺(tái)構(gòu)建的J2EE技術(shù)
J2EE是一個(gè)基于組件——容器模型的系統(tǒng)平臺(tái),,以靈活性,、擴(kuò)展性、模塊化,、跨平臺(tái)和跨數(shù)據(jù)庫(kù)等優(yōu)勢(shì)成為系統(tǒng)建設(shè)和開(kāi)發(fā)的主流,。
本研究中,組件主要包括在客戶(hù)端運(yùn)行的Applet組件和在服務(wù)器端運(yùn)行的Web組件及EJB組件,;容器主要為這三類(lèi)組件提供運(yùn)行環(huán)境的JRE,、JVM和Web Server等。
(1)基于J2EE的系統(tǒng)流程,。根據(jù)J2EE平臺(tái)的規(guī)范,,J2EE系統(tǒng)流程包括的主要步驟:①用戶(hù)在客戶(hù)端啟動(dòng)瀏覽器后,從Web服務(wù)器上下載由JSP動(dòng)態(tài)生成的HTML頁(yè)面,,通過(guò)與頁(yè)面中嵌入的Applet程序交互,,實(shí)現(xiàn)系統(tǒng)的瀏覽、查詢(xún)等功能,;②Web層的Web Server容器在接收到來(lái)自客戶(hù)端的用戶(hù)請(qǐng)求后,,解析相應(yīng)的JSP或Servlet組件生成HTML頁(yè)面,供客戶(hù)端使用,;③業(yè)務(wù)層容器接收到Web層中的業(yè)務(wù)請(qǐng)求后,,將信息提供給EJB組件和數(shù)據(jù)庫(kù)適配器組件,并通過(guò)這兩種組件所構(gòu)建的業(yè)務(wù)領(lǐng)域代碼來(lái)完成對(duì)Web層組件的支持,;④數(shù)據(jù)層中的數(shù)據(jù)庫(kù)服務(wù)器在為業(yè)務(wù)層中的組件提供所需的數(shù)據(jù)支持,,同時(shí)也為地礦工程系統(tǒng)的各類(lèi)工程數(shù)據(jù)提供管理和維護(hù)。
(2)基于J2EE的系統(tǒng)設(shè)計(jì),。在客戶(hù)層中,,系統(tǒng)采用JRE作為Java的插件嵌入到瀏覽器中作為Applet客戶(hù)端運(yùn)行環(huán)境,使用Applet實(shí)現(xiàn)人與系統(tǒng)的交互,,并運(yùn)用JOGL實(shí)現(xiàn)基于Web的工程系統(tǒng)的三維可視化,。在Web層中,采用Struts實(shí)現(xiàn)業(yè)務(wù)邏輯控制功能,,利用JSP組件動(dòng)態(tài)生成頁(yè)面,,使用Web服務(wù)器Tomcat為Web層組件提供服務(wù)。在業(yè)務(wù)層中,,采用EJB技術(shù)和JavaBean等實(shí)現(xiàn)類(lèi)的構(gòu)造和工程系統(tǒng)模型的建立,。
在實(shí)際研究中,考慮到工程系統(tǒng)存在采樣數(shù)據(jù)處理和數(shù)據(jù)規(guī)范化處理等大量數(shù)值運(yùn)算和圖形數(shù)據(jù)處理等海量數(shù)據(jù)吞吐等因素,采用驅(qū)動(dòng)程序接口技術(shù)進(jìn)行數(shù)據(jù)庫(kù)操作,,以應(yīng)對(duì)較高的數(shù)據(jù)庫(kù)存取速度需求,。
2.2 用戶(hù)交互的Applet技術(shù)
Applet是由Java語(yǔ)言編寫(xiě)的應(yīng)用程序,可嵌入瀏覽器中獲取鼠標(biāo),、鍵盤(pán)等外設(shè)信息,,并對(duì)事件做出響應(yīng)。Applet的生命周期包括初始化,、開(kāi)始,、運(yùn)行和結(jié)束四個(gè)階段,在此過(guò)程中始終需要Java運(yùn)行環(huán)境的支持,。
(1)Applet技術(shù)特征。在Web瀏覽器環(huán)境中,,HTML文件通過(guò)Web服務(wù)裝載Applet程序及相關(guān)資源,,在該文件創(chuàng)建時(shí)其內(nèi)部嵌入的Applet程序便開(kāi)始進(jìn)入運(yùn)行狀態(tài),并隨著文件的關(guān)閉,,Applet程序也相應(yīng)結(jié)束運(yùn)行,。Applet程序不僅可以使用窗口環(huán)境開(kāi)發(fā)工具建立標(biāo)準(zhǔn)圖形界面,實(shí)現(xiàn)人機(jī)交互,、系統(tǒng)查詢(xún)等功能,,還可以支持JOGL等技術(shù)進(jìn)行三維圖形的顯示及變換。由于Applet程序基于網(wǎng)絡(luò)進(jìn)行訪問(wèn),,故具有潛在的安全風(fēng)險(xiǎn),。
(2)Applet系統(tǒng)設(shè)計(jì)。在實(shí)際設(shè)計(jì)過(guò)程中,,采用Applet類(lèi)的子類(lèi)JApplet類(lèi)來(lái)完成Applet的功能,,使用戶(hù)能通過(guò)點(diǎn)擊鼠標(biāo)、敲擊鍵盤(pán)等活動(dòng)與系統(tǒng)進(jìn)行會(huì)話,。使用JOGL類(lèi)庫(kù)中的GLCanvas類(lèi)設(shè)置JOGL圖形顯示參數(shù),,并處理JApplet所獲取的用戶(hù)事件,實(shí)現(xiàn)JOGL與JApplet的結(jié)合,。利用JOGL類(lèi)庫(kù)中的CG,、GL等類(lèi)繪制工程系統(tǒng)的三維圖形,并通過(guò)接口程序?qū)崿F(xiàn)圖形的旋轉(zhuǎn),、平移,、裁減和光照設(shè)定等操作。在安全方面,,采用JDK1.2的數(shù)字簽名工具設(shè)定Applet程序的安全性,,通過(guò)比對(duì)網(wǎng)絡(luò)所裝載的數(shù)字簽名和客戶(hù)端所持的數(shù)字證書(shū)實(shí)現(xiàn)程序的安全。
2.3 三維繪制的JOGL技術(shù)
目前,,比較流行的基于Web瀏覽器的三維可視化工具包括VRML,、X3D及基于Java語(yǔ)言的Java3D和JOGL等,。盡管VRML、X3D均可產(chǎn)生交互式的虛擬現(xiàn)實(shí)場(chǎng)景,,但兩者在本質(zhì)上仍屬于數(shù)據(jù)文件,,缺乏對(duì)可視化算法的直接支持?;贘ava的Java3D,、JOGL不僅能夠像VRML、X3D一樣支持視景圖形處理,,還能夠支持更高層次的圖形處理,。
(1)JOGL圖形繪制技術(shù)。JOGL是一種建立在OpenGL公共圖形接口基礎(chǔ)上的技術(shù),,是一個(gè)被認(rèn)可的Java對(duì)OpenGL的綁定,,并得到Java創(chuàng)建者SUN公司和OpenGL創(chuàng)建者SGI公司的共同支持[2]。這就使采用Java開(kāi)發(fā)的工程系統(tǒng)的三維仿真模型在集成了AWT和Swing等窗口界面的同時(shí),,能夠在硬件直接支持下獲得強(qiáng)大的3D圖形繪制功能,。
(2)基于JOGL的系統(tǒng)設(shè)計(jì)。本研究選擇了JOGL作為基于B/S結(jié)構(gòu)的工程系統(tǒng)的三維可視化仿真技術(shù)的實(shí)現(xiàn)手段,,其核心工作過(guò)程包括:調(diào)用GLDrawablefactory類(lèi)創(chuàng)建GLDrawable對(duì)象,;使用GLDrawable類(lèi)中createGLCanvas()方法來(lái)創(chuàng)建GLCanvas對(duì)象;調(diào)用GLCanvas相應(yīng)方法產(chǎn)生GL對(duì)象,;調(diào)用GL的相應(yīng)方法和設(shè)置屬性進(jìn)行三維顯示的設(shè)置和繪制等,;對(duì)GLCanvas添加事件監(jiān)聽(tīng)接口,以實(shí)現(xiàn)用戶(hù)對(duì)于GLCanvas對(duì)象動(dòng)作的響應(yīng),,并對(duì)相應(yīng)的方法進(jìn)行重載,,實(shí)現(xiàn)對(duì)鼠標(biāo)和鍵盤(pán)的控制,從而進(jìn)行人機(jī)交互,。
3 基于J2EE的真三維可視化仿真實(shí)現(xiàn)
本研究以某地下礦山的工程數(shù)據(jù)為例,,運(yùn)用上述的系統(tǒng)框架和技術(shù)方法,實(shí)現(xiàn)了基于B/S結(jié)構(gòu)和J2EE平臺(tái)的地礦工程的真三維可視化仿真系統(tǒng),,包括地表地形,、礦體、井巷工程等三維可視化仿真,,如圖2所示,。
本文深入地研究了基于J2EE平臺(tái)和B/S結(jié)構(gòu)的工程系統(tǒng)的真三維可視化仿真技術(shù),構(gòu)建了基于Web的工程系統(tǒng)的真三維可視化仿真系統(tǒng)框架,,并運(yùn)用JOGL手段,,以某地下礦山的工程系統(tǒng)為例,實(shí)現(xiàn)了基于Web的工程系統(tǒng)的真三維可視化仿真,開(kāi)辟了真三維可視化仿真技術(shù)的遠(yuǎn)程應(yīng)用的途徑,。
參考文獻(xiàn)
[1] 唐澤圣.三維數(shù)據(jù)場(chǎng)可視化[M].北京:清華大學(xué)出版社,,2000.
[2] DAVIS G. Learning Java bindings for OpenGL(JOGL)[M]. Bloomington, Indiana: AuthorHouse,, 2004.
[3] 黃文靜,,唐龍,唐澤圣.體繪制及三維交互技術(shù)在地質(zhì)數(shù)據(jù)可視化中的應(yīng)用[J].工程圖學(xué)學(xué)報(bào),,1998(3):60-64.