基于J2EE的网络虚拟实验平台设计
来源:岁月联盟
时间:2010-08-30
(4)通信技术为客户机与服务器之间、相互协作对象之间,以及容器与组件之间提供了通信机制。J2EE支持以下几种通信技术:Internet协议、远程方法调用协议(RMI)、对象管理(OMG)组协议、消息技术以及数据格式等。在J2EE环境下基于Web的典型应用模式如图1示。 图1 基于J2EE的应用环境可以看出在J2EE环境下开发应用的主要优点是:J2EE服务器作为中间层可以有多层应用程序,使得程序各功能分离,一部分由支持Servlet或JSP的Web服务器来实现的会话层,一部分是由支持EJB的应用服务器来实现的逻辑层,同时Web容器和EJB容器自动处理底层各种复杂的系统级访问服务如事务处理、组件的生命周期和安全控制等。客户端不能直接对后台的数据库进行访问。3 网络虚拟实验平台设计3.1 网络虚拟实验概念网络虚拟实验是在虚拟实验的基础上发展起来的概念,就是在网络环境下,运用虚拟现实技术、仿真技术和互连网技术等相关软件,模拟和仿真各种具体的实验环境、实验对象和实验过程,实现实验教学功能的系统。3.2 系统模块实现根据网上虚拟实验要实现的主要功能,在应用系统设计时根据用户不同可以在客户端按功能划分为三大模块,即系统管理模块(管理员),学生实验模块(学生),老师考核模块(老师)。在J2EE环境中,结合虚拟实验平台的各功能模块,有以下关系图。图2 虚拟实验平台设计模块关联图由图2可见,该平台中各部分与J2EE应用模式联系紧密,用户端(客户层)在小应用程序(Applet)的支持下,利用友好的JSP(Java Server Pages)界面,可以方便地让学生进行实验操作,老师进行作业批改,管理员进行资料的修改更新等;用户提交的操作在服务器端(中间层)进行必要检查,通过服务器端程序(Servlet),利用Beans提供的功能,将用户的合法需求交给后台的数据库;通过强大的后台数据库(信息层)支持,系统进行数据检索查询,得到结果后送回给服务器。可以充分利用J2EE提供的便利功能,开发出功能强大的虚拟实验平台。4 技术实现及难点4.1 技术实现过程系统采用JAVA技术,利用J2EE平台提供的开发环境与模式,与传统的C/S模式相比,能够带来许多技术优点:(1)Web Server解决了多用户死锁和数据库服务器相连的问题;(2)JDBC可以较好地解决Web Server和DataBase Server的数据传输问题,利用JDBC连接池可以提高多用户时系统的效率;JDBC是一种可用于执行SQL(Structured Query Language,结构化查询语言)语句的Java API,可以与ODBC(开放数据库连接)相结合,灵活地进行数据库访问。(3)瘦客户端对用户要求更低,优越性更明显;采用服务器为客户机提供服务的模式,其中Servlet和JSP页面在服务器端运行,用来响应客户端的请求,并返回动态HTML/XML页面。(4)跨平台性,“一次编写,到处运行”,为系统的扩展留下了空间;Java语言的最大特点是可移植性强,利用Java开发的应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动;(5)利用第三方组件(Applet)可以较好地解决虚拟仿真设备和器件的显示问题。客户端对数据的处理(如对器件和设备参数进行动态配置等)都是通过采用在浏览器中嵌入Applet或Plug-in技术来完成,提交后才交付到服务器端,这也大大增强了系统的安全性。4.2 技术实现难点(1)客户端与服务器端通信机制基于Web的网络应用系统,必须考虑到远程数据的传输问题。在一般的网络应用系统中,基本的通信模式是由客户端程序直接与服务器交互,提取远程数据库中的数据;而在J2EE技术平台下,不能直接由客户端小程序(Applet)与远程数据库直接交互,即客户端与服务器端数据库通信必须由“中间程序”来连接,这种运行机制主要是考虑到系统的安全性。在本系统中这种“中间程序”是Servlet和JSP。其主要运行过程如图3所示。
图3 Java的通信过程通过Applet与Servlet通信,Servlet再将信息传递给Javabeans(一种Java组件),让Javabeans同数据库打交道,并将结果传回Applet,同时在网页(JSP)中显示出用户所要的结果,这样Applet就间接与数据库建立了联系,同时不影响整个系统的安全性。(2)实验跟踪与断点记忆该技术主要是实验状态数据的实时保存,即用户在实验过程中,相关实验状态数据按一定的策略实时存入库中,并不需要用户不停地进入手动保存。如系统应该考虑到学生临时需要下线时,不能让学生的实验状态一直处于在线实验状态,应该让学生可以将当前状态保存起来,再次上机时恢复实验即可,既节省了时间又方便了学生;还有一些不可预知的情况下(如突然掉电等),系统应该保存相应实验过程数据,以避免学生重复操作。在实现上主要考虑以下几个方面:一是对数据库的建设提出高要求。在各种表结构的设计中应充分考虑到不同类型的、大量的数据存放,尽量避免在后期维护中因某个表结构的不合理导致对整个数据库进行重建。二是应该根据需要对数据进行存取。即应该主要依据教师在测评学生实验时的需要来制定选择策略,不能将所有的实验数据都存入数据库。(3)实验器件模拟实验中所用到的各种器件和设备等,必须能够进行仿真实现。在Java中对图形支持非常强大,但由于该平台是基于Web的系统,要求各实验器件、设备的相应参数值必须入库,同时能根据用户要求动态地进行显示。如甲用户做A实验用设备1,而乙用户做该实验可能用设备2,系统不应该将实验固定,而应该体现出实验的交互性和动态性。这些数据在实验过程中及实验结束后都必须入库更新,以便在老师及管理员进行访问时可以看到更新的信息。这就要求服务器端对大数据流的存取速度必须足够快,以使用户方便使用。5 结束语网上虚拟实验平台的建设可以满足实验教学各个环节的教学需求,实现优秀资源的共享,对实际教学工作中的实验教学是一种有益的补充和完善。虚拟实验的开发技术难度大、开发周期长,SUN公司推出的J2EE平台为网上虚拟实验的实现提供了很好的接口,并且可以在此基础上引入更多功能如多媒体技术、在线课堂等,更加广泛地实现远程教育模式。该平台在实际教学中正加以逐步应用,并在前期使用过程中取得良好效果。1 孙一林, 彭波.《Java网络编程实例》.清华大学出版社. 20032 田雪松.《J2EE网络编程标准教程》.上海普及出版社. 20043 王强,刘东波. 基于Java平台的信息系统.全国第五届Java技术及应用学术会议集. 20024 SUN公司J2EE应用官方网站