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