注册 登录
LUPA开源社区 返回首页

盛忠良的个人空间 http://www.lupaworld.com/?928 [收藏] [复制] [分享] [RSS]

我的博客

俺设计的基于J2EE架构的模拟考试系统(转)

已有 20908 次阅读2007-3-22 15:22 |个人分类:JAVA技术

基于J2EE框架的模拟考试系统

一、系统概述

  本系统拟实现基本的网上模拟考试功能,包括学生登陆、在线考试、教师登陆、在线阅卷等模块。

二、设计目标

   系统除了包含最基本的在线考试功能外,最主要的目的是演示J2EE框架的完整应用,包括jsp/servlet、java web start、消息 Bean、会话Bean、实体Bean等J2EE框架中最核心的技术。系统中大量使用了设计模式中的工厂模式、单例模式、委派模式,以及J2EE核心模式 中的DAO模式和Session facade模式,保证了系统的可扩展性和可插入性。

  本系统针对不同的模块,使用了CMP和Hibernate两种OR映射,也试图通过使用本地接口和异步通信等手段优化系统性能。目标是使本系统在保证性能的同时,具有清晰的层次结构,以及良好的伸缩性和扩展性。这样的设计可能比较疯狂,理论价值大于实际价值。

三、方案描述

  系统大致结构如下图:



   系统使用了CMP对examer.student(学生数据表)、examer.teacher(教师数据表)、examer.examin(考试数据 表)进行了映射,原因是这些数据结构相对简单,数据单纯,不需要进行非常复杂、多样的查询,系统对数据表的操作不频繁,通常情况下对性能不敏感,故采用了 CMP。CMP中只提供最基本的查询方法,所有的程序逻辑都封装在对应的会话Bean中,会话Bean和CMP一同部署,故可以采用本地接口访问实体 Bean,提高效率。客户端仅仅与会话Bean进行交互。该设计的好处是隐藏了数据逻辑,MVC的结构非常清楚。后期的数据维护也比较简单。

   系统使用Hibernate框架对examer.question(试题数据表)进行映射,原因是该表格比较复杂,需要进行复杂多样的查询, Hibernate框架可以提供更加灵活的查询,便于扩展。同样的,Hibernate自身不含有商务逻辑,程序逻辑由对应的会话Bean封装,保证多层 的隔离。由于系统可能会对底层数据表进行较为频繁的访问,所以可以考虑更改实现方式,由会话Bean直接使用DAO模式访问数据表,提高系统效率。

   对于examer.answer(答案数据表),系统没有采取OR映射。原因是这个表格的数据保存学生的答题情况,在考试的过程中,该表格会被频繁操 作,但是操作多是单向的(添加新数据),进行查询的时候不多。针对这个特点,系统采用消息Bean+会话Bean,使用DAO模式直接访问数据表,通过使 用J2EE的消息服务提供了一种异步调用机制,保证数据安全可靠,同时效率又得到极大改善。

  由于系统采用EJB开发,所以客户端丰富 多样,既可以是基于浏览器的jsp/servlet,也可以是基于awt/swing/swt的桌面应用程序。为了便于多系统的集成,系统将EJB部署到 Axis,提供web service接口,便于其他平台、其他语言的应用程序访问。

  本系统的Model与control已经全部完成,view部分尚未开工。

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部