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

原创 2004年08月27日 10:57:00
基于J2EE框架的模拟考试系统

一、系统概述

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

二、设计目标

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

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

三、方案描述

  系统大致结构如下图:
user posted image

  系统使用了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部分尚未开工。

声明:发布本文章的目的,是想与各位朋友共同探讨该方案的缺陷与不足,以促改进,并不打算提供源代码的下载。但是自发布以来,有太多朋友前来索要代码,我专门建立了一个msn分组,已经人满为患。我不想block别人,所以如果你是冲着代码来的,请你作罢。特此声明

J2EE架构下系统设计模式

1.1 J2EE应用模型 J2EE提供了一个企业级的计算模型和运行环境用于开发和部署多层分布式结构的应用模型。该模型具有重用组件的能力、基于扩展标记语言(XML)的数据交换、统一的安全模式和灵活的事...
  • jbjwpzyl3611421
  • jbjwpzyl3611421
  • 2014年06月14日 08:24
  • 2053

J2EE的体系架构——J2EE

J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分...
  • dandanzmc
  • dandanzmc
  • 2014年06月01日 07:40
  • 35778

多层J2EE系统的架构与模式设计

多层J2EE系统的架构与模式设计 目录 ---------- 摘要……………………………………………………………………2 文献综述………………………………………………………………3 ...
  • lymxiang
  • lymxiang
  • 2013年03月05日 10:34
  • 4697

java分布式通信系统(J2EE分布式服务器架构)

一、序言 近几个月一直从事一个分布式异步通信系统,今天就整理并blog一下. 这是一个全国性的通信平台,对性能,海量数据,容错性以及扩展性有非常高的要求,所以在系统的架构上就不能简单的采用...
  • xyw591238
  • xyw591238
  • 2016年07月11日 16:04
  • 4496

J2EE 企业级应用架构简述

企业应用的特点 多环境多系统的交互海量数据、高并发、高TPS安全等级高自动化集群管理 架构的原则 CAP原则(一致性、可用性、分区容错性)复杂的事情简单化 ...
  • zwx19921215
  • zwx19921215
  • 2017年03月12日 20:12
  • 684

J2EE的体系架构

J2EE 即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型,这个多层通常通过三层或四层来实现:          1、客户层,运行...
  • u012468540
  • u012468540
  • 2014年07月05日 18:28
  • 2080

J2EE架构简介

J2EE 体系结构简介J2EE (Java 2 Platform, Enterprise Edition)即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2016年05月04日 13:56
  • 1450

J2EE 领域的一些技术框架结构图

1.Spring 架构图     Spring 是一个开源 框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE...
  • dufufd
  • dufufd
  • 2016年07月27日 15:57
  • 1035

Webservice架构设计

关于j2ee中webservice的搭建以及不同系统中的访问,我已经在一篇博文《webservice之cxf实现》中进行了介绍,下面我们来谈谈webservice的架构设计要考虑的一些因素。  ...
  • smallTengGer
  • smallTengGer
  • 2014年07月25日 09:29
  • 768

【J2EE】:MVC是框架?是设计模式?是架构?还是……

上篇博客简单聊了聊MVC模式,但是有一个很重要的问题我没有提到,那就是对MVC的定位,它是什么? 很多人都知道MVC,都知道就是把将数据和显示分离,知道Model—View—Controller,...
  • u010929604
  • u010929604
  • 2016年03月14日 07:58
  • 3598
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:俺设计的基于J2EE架构的模拟考试系统
举报原因:
原因补充:

(最多只允许输入30个字)