随着数据库技术、多媒体技术、可视化技术以及虚拟现实技术的发展[1],特别是传统互联网应用的普及和新一代互联网技术的到来,Web技术从仅能够提供文字与静态图片浏览,逐渐发展成为可以支持丰富的影音数据流、海量的数据挖掘、远程实时交互的监控等功能,基于Web的三维可视化技术正在成为工程系统三维仿真技术的发展方向之一。本文构建了一种基于Web结构和J2EE平台的工程系统三维可视化仿真框架,以JOGL为手段,给出了相应的三维仿真及其实现技术,并运用工程数据予以检验。
1 基于J2EE的真三维可视化仿真框架
工程系统(如地矿工程系统)大多具有空间属性,其仿真技术需要表现系统的空间属性及其空间关系。Web技术的发展,使得工程系统的远程真三维仿真成为可能。为此,本研究设计了一种基于J2EE平台的三维可视化仿真系统框架,如图1所示。
根据J2EE定义的服务和规范,本研究将三维可视化仿真系统分为客户层、中间层(Web层、业务层)和数据层,以实现工程系统的三维可视化仿真功能;以JOGL作为三维图形的显示工具,用点、线、面、体来表达三维工程系统;以Applet作为用户与三维图形的交互手段,用AWT、Swing等来响应键盘、鼠标和其他外围设备的事件;以JRE和JVM作为客户层Applet组件的容器和Java运行环境,用插件等方式运行在浏览器中;以权限验证方式作为系统信息安全手段,用基于角色授权方式进行系统访问安全控制;以JSP作为应用系统基本展示工具,用动态生成的Web页面来进行业务数据的发布和查询;以Struts作为系统逻辑处理,用XML进行业务逻辑配置来控制访问内容;以EJB和JavaBean等作为业务模型,用面向对象技术中的类来表示对象工程系统的三维模型。在此基础上结合数据库技术,给出了工程系统的三维可视化仿真技术。
2 基于J2EE的真三维可视化仿真技术
2.1 平台构建的J2EE技术
J2EE是一个基于组件——容器模型的系统平台,以灵活性、扩展性、模块化、跨平台和跨数据库等优势成为系统建设和开发的主流。
本研究中,组件主要包括在客户端运行的Applet组件和在服务器端运行的Web组件及EJB组件;容器主要为这三类组件提供运行环境的JRE、JVM和Web Server等。
(1)基于J2EE的系统流程。根据J2EE平台的规范,J2EE系统流程包括的主要步骤:①用户在客户端启动浏览器后,从Web服务器上下载由JSP动态生成的HTML页面,通过与页面中嵌入的Applet程序交互,实现系统的浏览、查询等功能;②Web层的Web Server容器在接收到来自客户端的用户请求后,解析相应的JSP或Servlet组件生成HTML页面,供客户端使用;③业务层容器接收到Web层中的业务请求后,将信息提供给EJB组件和数据库适配器组件,并通过这两种组件所构建的业务领域代码来完成对Web层组件的支持;④数据层中的数据库服务器在为业务层中的组件提供所需的数据支持,同时也为地矿工程系统的各类工程数据提供管理和维护。
(2)基于J2EE的系统设计。在客户层中,系统采用JRE作为Java的插件嵌入到浏览器中作为Applet客户端运行环境,使用Applet实现人与系统的交互,并运用JOGL实现基于Web的工程系统的三维可视化。在Web层中,采用Struts实现业务逻辑控制功能,利用JSP组件动态生成页面,使用Web服务器Tomcat为Web层组件提供服务。在业务层中,采用EJB技术和JavaBean等实现类的构造和工程系统模型的建立。
在实际研究中,考虑到工程系统存在采样数据处理和数据规范化处理等大量数值运算和图形数据处理等海量数据吞吐等因素,采用驱动程序接口技术进行数据库操作,以应对较高的数据库存取速度需求。
2.2 用户交互的Applet技术
Applet是由Java语言编写的应用程序,可嵌入浏览器中获取鼠标、键盘等外设信息,并对事件做出响应。Applet的生命周期包括初始化、开始、运行和结束四个阶段,在此过程中始终需要Java运行环境的支持。
(1)Applet技术特征。在Web浏览器环境中,HTML文件通过Web服务装载Applet程序及相关资源,在该文件创建时其内部嵌入的Applet程序便开始进入运行状态,并随着文件的关闭,Applet程序也相应结束运行。Applet程序不仅可以使用窗口环境开发工具建立标准图形界面,实现人机交互、系统查询等功能,还可以支持JOGL等技术进行三维图形的显示及变换。由于Applet程序基于网络进行访问,故具有潜在的安全风险。
(2)Applet系统设计。在实际设计过程中,采用Applet类的子类JApplet类来完成Applet的功能,使用户能通过点击鼠标、敲击键盘等活动与系统进行会话。使用JOGL类库中的GLCANvas类设置JOGL图形显示参数,并处理JApplet所获取的用户事件,实现JOGL与JApplet的结合。利用JOGL类库中的CG、GL等类绘制工程系统的三维图形,并通过接口程序实现图形的旋转、平移、裁减和光照设定等操作。在安全方面,采用JDK1.2的数字签名工具设定Applet程序的安全性,通过比对网络所装载的数字签名和客户端所持的数字证书实现程序的安全。
2.3 三维绘制的JOGL技术
目前,比较流行的基于Web浏览器的三维可视化工具包括VRML、X3D及基于Java语言的Java3D和JOGL等。尽管VRML、X3D均可产生交互式的虚拟现实场景,但两者在本质上仍属于数据文件,缺乏对可视化算法的直接支持。基于Java的Java3D、JOGL不仅能够像VRML、X3D一样支持视景图形处理,还能够支持更高层次的图形处理。
(1)JOGL图形绘制技术。JOGL是一种建立在OpenGL公共图形接口基础上的技术,是一个被认可的Java对OpenGL的绑定,并得到Java创建者SUN公司和OpenGL创建者SGI公司的共同支持[2]。这就使采用Java开发的工程系统的三维仿真模型在集成了AWT和Swing等窗口界面的同时,能够在硬件直接支持下获得强大的3D图形绘制功能。
(2)基于JOGL的系统设计。本研究选择了JOGL作为基于B/S结构的工程系统的三维可视化仿真技术的实现手段,其核心工作过程包括:调用GLDrawablefactory类创建GLDrawable对象;使用GLDrawable类中createGLCanvas()方法来创建GLCanvas对象;调用GLCanvas相应方法产生GL对象;调用GL的相应方法和设置属性进行三维显示的设置和绘制等;对GLCanvas添加事件监听接口,以实现用户对于GLCanvas对象动作的响应,并对相应的方法进行重载,实现对鼠标和键盘的控制,从而进行人机交互。
3 基于J2EE的真三维可视化仿真实现
本研究以某地下矿山的工程数据为例,运用上述的系统框架和技术方法,实现了基于B/S结构和J2EE平台的地矿工程的真三维可视化仿真系统,包括地表地形、矿体、井巷工程等三维可视化仿真,如图2所示。