图2描述了HTTP客户端对一个JSP文件请求的处理过程,当Web Container接收到浏览器端的一个JSP文件请求时,Web Container读入该请求文件,并执行其中的Java程序代码段,在JSP中嵌入的Java代码调用运行在EJB Container中的EJB组件,以实现复杂的事务逻辑,然后将执行的结果以HTML格式返回给客户端。所有程序操作都在服务器端执行,网络上传送给用户的仅是一般符合HTML格式操作的结果。
调用
回传 浏览器 Web Container EJB Container 数据库 请求
请求 请求
回传 回传
客户层 中间件层 数据层
图 2 J2EE应用体系结构图
3.2 MVC模式图
随着J2EE的成熟,MVC正成为J2EE平台上推荐的一种设计模型。在软件规模日益庞大的今天,这两种技术的结合为大型软件应用的开发提供了成功的保证。为此,在本系统的设计与实现当中,采用了J2EE技术体系和MVC模式相结合的方式,使用模型-视图-控制器(MVC)结构来开发本系统。
模型(Model)是业务流程/状态的处理以及业务规则的制定的设计,其设计是MVC最主要的核心;视图(View)代表用户交互界面;控制器(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。MVC的关键是商业模型的设计与实现可以独立于应用系统的结构设计与实现(控制)和界面的设计与实现(视图)。
J2EE体系包括JSP、Servlet、EJB、WebService等多项技术,其与MVC的映射关系可以分为以下三个组成部分:
·Model:JavaBeans and Enterprise JavaBeans;
·View: Java Server Pages、HTML等;
·Controller: Servlets。
控制器(Controller)
Servlet
浏
览
器 1
Request
3 创 2
建
视图(View)
HTML、JSP等
模型(Model) 5 4 JavaBean、EJB等
Response
应用服务器
图 3 MVC模式图
本系统的MVC模式图如图3所示,在这里,Servlets用作Controllers,用于接收HTTP的POST请求,创建JSP页需要使用的Bean和对象,并且负责将POST上来的数据传送给Model,然后选择用哪一个JSP页面来显示Model处理的结果,在JSP页内没有处理逻辑,它仅负责检索原先由Servlets创建的对象或Beans,从Servlets中提取动态内容插入静态模板。这种方法清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。
3.3 系统的设计方案
本文所研究的软件项目开发虚拟实训网络教学系统是一个教学网站,依据3.1,3.2的分析和讨论,所以本系统采用了代表发展趋势的J2EE体系结构和广泛使用的MVC设计模式,并采用相关技术来加以实现。同时为了提高系统的安全性,我们在J2EE体系结构的基础上增加了安全认证模块,该网络教学系统的体系结构如图4所示。
通用数据接口 数据库管理系统
SCI 数据库 通用数据接口 功
能
列
表
Web Container
EJB
Container
浏
览
器
数据通道
数据管道
客户层 中间层 数据层
安全认证服务器
安全认证层
图4 软件虚拟实训系统体系结构图
由图4可知,整个软件项目开发实训网络教学系统的体系结构可以划分为四层:客户层、中间层、安全认证层和数据层。
(1)客户层:客户端是Web浏览器。采用J2EE分布式的客户端技术实现。在J2EE的环境中,这部分可以用JSP技术来实现,它们运行在Web容器中,通过Web容器响应客户端的请求。客户端的浏览器与服务器端的Web服务器之间,除了进行通常的HTML文件交流信息外,还增加了由服务器控制的安全通道,实现了客户端与服务器端之间关键数据的加密/解密和安全传输。
(2)中间层:该层利用J2EE的组件和容器技术来构建虚拟实训系统的各部分功能,主要由3部分组成:①Web Container,所有的用户界面都在这里得到体现。系统采用JSP实现用户界面,主要产生的用户界面包括用户登录和验证界面以及用户学习界面、用户信息反馈界面等。②EJB Container,主要管理J2EE应用程序的EJB的执行。这些EJB组件主要实现的事务逻辑包括用户的验证和登记、学生学习资料的产生、学生考试试卷的生成等。③数据库连接,EJB Container的实体EJB是通过数据库连接和数据库管理系统交互信息的,对于不同的数据库系统,其访问形式是不同的,但是通过标准的JDBC-ODBC连接接口来访问数据库,可使需要得到的数据库服务程序存取异质数据库,使系统具有很强的扩展性。
该层对外有三类接口:Web服务器接口、安全认证接口SCI(Security Certification Interface)、通用数据接口GDI(General Data Interface)。Web服务器通过运行JSP程序,实现用户请求和数据响应。功能调度程序对用户请求进行分析并找到相应的功能模块予以运行。为了数据访问的安全性,我们在功能模块向数据库服务器发送数据请求之前,先通过SCI与安全认证服务器联系,获取加密/解密算法,并对所要访问的数据进行注册。同时从安全认证服务器获得访问数据库服务器的ID和Password。在办齐所有数据访问手续后,通过GDI等待数据库服务器的回应。数据库服务器回应并认可通信后,Web服务器与数据库服务器之间通过数据管道进行数据交换。