1、基于Flex与J2EE多层架构的RIA智能网络考试系统的设计与实现拓守恒作者简介:1。拓守恒(1978.9),男,宁夏中卫县人,陕西理工学院讲师,硕士,研究方向为软件工程,人工智能。陕西理工学院项目基金,项目编号SLG0818。(陕西理工学院计算机系 陕西汉中723003)摘要:论文首先介绍网络应用系统发展的现状,提出采用应用Flex作为表示层实现,应用Hibernate作为持久层实现,并结合Spring技术作为业务层搭建富英特网应用(RIA)系统模型。采用粒子群优化PSO算法组卷,从而设计出了一套多层次、高性能、智能化的网络考试系统。关键词:富英特网,智能,考试系统,多层架构Design a
2、nd Realization of RIA intelligent network examination system based on Flex and J2EE Multi-tier ArchitectureTUO Shou-heng(Dept. of Computer Science & Technology, Shaanxi University of Technology, Hanzhong 723003, China)Abstract : this paper briefly reviews the present situation of development of netw
3、ork application system. we propose using the Hibernate framework technology to the persistence layer, the presentation layer utilized by Flex technology and the business layer utilized by Spring technology to put up rich internet application model, and using Particle Swarm Optimization Algorithm to
4、group test paper. Results show that this new framework helps design an Multi-Hierarchy ,High Performance and intelligent network examination system. Keywords: rich internet ,intelligence, network examination, multi-tier architecture随着网络技术的高速发展,Internet已经日益成为应用程序部署运行的默认平台。传统的B/S、C/S模式系统逐渐暴露出功能单一、接口专用
5、、不易部署、不易升级、安全性低等缺点。为了提高用户体验,出现了一种新类型的Internet应用程序。那就是Rich Internet Application (RIA)。RIA将桌面型计算机软件应用的最佳用户界面功能性与web应用程序的普遍采纳和低成本部署以及互动多媒体通信的长处集于一体,最终实现一种可以提供更直观、响应性和有效的用户体验应用程序。 本文采用Adobe Flex与J2EE多层架构作为RIA 智能网络考试系统的技术解决方案。网络考试系统的智能抽题策略是智能试题库研究的一个重点和难点。智能抽题策略的效率与质量直接取决于抽题算法的设计。智能抽题是典型的约束问题的求解过程。通常抽题过程
6、在“强约束”下,经常会出现无法满足性能要求的试卷,使得约束问题变成了一个NP(Non Polynomial)问题。如何从庞大的试题库中采用一定的抽题策略,选择符合要求的试题,与试卷题目的章节分布、平均难度、题型以及分数分布等因素相关,涉及到全局寻优和收敛速度等问题。近年来,一些研究人员尝试将智能化方法用于考试抽题组卷的研究中,取得了一些有效的研究成果1。本文在建立智能抽题的数学模型的基础上,采用粒子群优化PSO(Particle Swarm Optimization) 算法对模型进行优化求解,为开发更加有效的智能抽题组卷系统提供了一条新途径。1网络考试系统的结构设计1.1 基于Flex和J2E
7、E多层架构的网络考试系统体系结构设计随着Web应用需要更复杂的表现和逻辑处理,J2EE采用多层体系架构,本文提出了基于Flex+Spring+Hibernate框架的J2EE多层架构模型,采用Flex作为表示层,Spring实现业务逻辑层,持久化层采用Hibernate技术进行框架整合,如图1所示。该结构分为客户层, 表示层(Web层)、业务逻辑层、数据持久层,数据库层23。HTTPHTTPDAO Classes 客户层表示层业务逻辑层数据持久层数据库层Web浏览器/flash playerHttpService,WebService, RemoteObjectFlex MVC(model,v
8、iew ,controller)HTTP SOAP AMFBusiness Service Classes, EJBSpring Transaction/ Session ManagementDatasource/Connection Pool, Query Language SupportHibernateDataBaseDataBase图1 基于Flex 和J2EE的多层体系结构域模块业务对象(Domain Model Business Objects)Flex的职责:(1)提供用户界面View(学生在线考试界面、老师试题库维护界面、管理员系统管理界面等),管理用户的请求,做出相应的响应。
9、(2)提供一个Cnortoller,委派调用业务逻辑和其它上层处理。(3)UI验证。Flex作为表示层,本文采用MVC设计模式实现,Controller控制器组件负责接受用户请求,调用Remoting-config.xml中合适的业务对象来执行相应的业务逻辑,然后将业务逻辑执行结果返回到Controller,Controller将必要的数据存放在Model中,由于在Flex中,View组件采用绑定Model中的数据,当Model中的数据发生变化后,立刻反映在Client View中。Spring的职责:(1)、处理系统应用程序的业务逻辑和业务校验。(2)管理事务。(3)提供与其它层协同工作的接
10、口。(4)管理业务层级别的对象的依赖。(5)、在表示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起。(6)、通过揭示从表示层到业务层之间的Context来得到business services。(7)、管理程序的执行(从业务层到持久层)。Hibernate的职责:(1)、查询对象的相关信息的语句。(2)、存储,更新,删除数据库记录。(3)、支持大部分主流数据库,并且支持Parent/child关系,事物处理,继承和多态。数据持久层的实现,由于,Spring 对 Hibernate 提供了良好支持,除了上面提到的对 Hibernate 的 SessionFactory 进行整合,
11、并采用面向 Hibernate 的事务管理器实现 HibernateTransactionManager 来对 Hibernate 会话进行 基 于 容 器 的 、 统 一 的 事 务 管 理 外 。1.2考试系统整体结构模块设计网络考试系统功能模块如下:(1) 基础管理:基础管理是对系统基本信息的管理,包括院系机构信息、任课班级信息、班级学生信息、课程信息(章节、知识点、考试开关)、教学大纲信息、掌握程度信息及题库题型信息。(2) 题库管理:该模块完成试题题型管理(添加、删除,修改)和试题管理(试题添加,修改,删除等)的功能。(3) 试卷管理:试卷管理实现策略拟定、试卷策略审核、组卷(PSO
12、智能组卷,人工组卷)、编辑、审核及导出WORD。(4) 考试安排:实现学生考试时间、场次的安排,课程考试开关维护。(5) 成绩管理:实现学生成绩查询、学生成绩分析、试卷分析、成绩打印、导出等。(6) 系统管理:系统管理实现密码修改、系统注册、权限组管理、用户信息管理、用户权限管理及系统操作日志。(7) 成绩管理模块:该模块完成成绩库的初始化、成绩的排序、统计、查询等功能。(8) 在线考试:该模块是直接面向考生的一个集成考核环境,所有的考核系统统一由一个考核主模块控制。考生在此环境下进行考试,考试完毕提交后,考生答题结果将自动存放在组织部门的中心服务器上。(9) 阅卷模块:该模块完成大批量的试卷
13、批阅工作,组织部门实现系统自动阅卷,教师在线阅卷(主观题),统计考生的各题分数和总分数。2 基于PSO的智能组卷2.1 试卷的期望题型及期望内容分布系数在考试系统的算法设计中,最重要也是最难的就是系统抽题组卷了,抽题中希望能够更加合理、全面地考察学生的综合能力,所以在抽题过程中题型应该尽可能涉及到所有类型,如选择、填空、判断、回答、计算、证明等;同时,考察内容也应该尽可能涉及到所有的章节,而且由于不同题型及章节在考试中占的比重有所不同,即相对重要性有所差别,所以在抽题时应予以考虑。为了合理评价抽题的效果,需要用户事先给出理想试卷的评估标准,因此引入期望题型分布系数以及期望内容分布系数的概念。定
14、义1 期望题型分布系数是用户希望试卷所包含不同题型分布与该题型在整个试卷中相对重要度的加权求和。 (1)式中:h为不同题型的期望分布;X为题型的相对重要度;n为题型的总数。定义2 期望内容分布系数是用户希望试卷所涵盖的章节分布与内容在试卷中相对重要度的加权求和。 (2)式中:l为考察不同内容(章节)的期望分布;E为内容的相对重要度;m为内容的总数。由于期望题型分布及期望内容分布本身是定性的指标,无法直接参与运算.在此,采用专家经验评判的方法将其转换为定量指标,作为评价抽题效果的指标。2.2 粒子群优化算法(Particle Swarm Optimization)粒子群优化算法是由Kennedy
15、博士与Eberhart博士提出的一种新的全局优化算法4,最初是处理连续优化问题,目前其应用已扩展到很多组合优化问题5。相对其它优化算法和演化式计算方法,PSO算法最大的特点就是搜索的速度快,考虑智能组卷过程对试卷质量的高要求以及优化参数的表示形式,采用PSO算法对自动抽题组卷问题进行研究。2.2.1 粒子的编码设计采用二进制方式进行粒子的编码设计6,形式为O1,O2,Om(m表示试题库中试题的总数),以构成染色体.其中,Oi=0,1,题目选中的用“1”表示,没有选中的为0,且满足Oi=n(n表示试卷的题目总数).例如:题库中有16道题目,共7道被选中,分别为第2,4,5,8,10,14,15道
16、试题,则题库中被选中题目即可表示为0,1,0,1,1,0,0,1,0,1,0,0,0,1,1,0.其中,每一道试题在数据库中的位置分别为:TRES2,TRES4,TRES5,TRES8,TRES10,TRES14,TRES15,是通过链表的形式表达的,每个结点的内容即为其属性值(5个属性值) 。2.2.2 适应度函数选取在抽题策略中,采用粒子所对应试卷指标与成卷指标要求之间的关于试题内容、题型、难度方差加权和作为适应度函数,即, (3)式中:A,B,C分别为期望题型分布、期望内容分布以及难度相对整个试卷要求的重要度。PSO算法中,每个粒子的位置就是一个潜在的解。PSO随机初始化一群粒子和粒子的
17、速度。第i个粒子在 d维空间的位置表示为 Xi=(xi1,xi2,xid);速度 Vi=(vi1,vi2,vid),它决定粒子在搜索空间单位迭代次数的位移,d为实际解决问题中的自变量个数。计算每一个粒子的适应度,适应度函数一般由实际问题中被优化的函数决定;根据每一个粒子的适应度,更新每个粒子的个体最优值 pi=(pi1,pi2,pid)和全局最优值 Pg=(Pg1,Pg2,Pgd)。粒子根据以下公式来更新其速度和位置:Vi(t+1)=Vi(t)+C1R1Pi(t)-Xi(t)+C2R2Pg(t)-Xi(t) (4)Xi(t+1)=Xi(t)+Vi(t+1) (5)其中,为惯性权重,C1和 C2
18、为加速常数,R1和 R2为0,1之间的随机数。微粒通过不断学习更新,最终飞至解空间中最优解所在的位置,最后输出的Pg就是算法找到的全局最优解。式(7)等号右边的第 1部分为微粒先前的速度,它维持算法拓展搜索空间的能力;第 2部分为“认知”部分,表示微粒自身的思考,防止算法陷入局部最优;第 3部分为“社会”部分,表示微粒间的信息共享和互相合作。在更新过程中,粒子在每一维飞行的速度不能超过算法设定的最大速度Vmax 。设置较大的可Vmax以保证粒子种群的全局搜索能力,Vmax较小则种群的局部搜索能力加强。同时,粒子每一维的坐标也被限制在允许范围 Xmax内。Vmax与 Xmax都是常数,由用户设定
19、,并且每一维的 Xmax可以不同。迭代终止条件根据具体问题一般选为计算达到最大迭代次数或满足规定的误差标准为止。在标准 PSO算法中,惯性权重是控制历史速度对当前速度的影响程度、平衡 PSO算法的全局搜索能力和局部搜索能力的,其值应随算法迭代的进行而自动减小,通常定义为: (9)Tmax为最大迭代次数,t为当前迭代次数 max、min分别为最大、最小惯性权重。2.2.3 PSO算法优化步骤 PSO优化步骤6如图2.3.系统的特点与性能分析本系统的开发基于J2EE开发平台,设计采用基于Flex+Spring+Hibernate的多层体系结构,实现了MVC设计模式,使用Flex实现表示层,Spri
20、ng实现业务逻辑层,Hibernate实现持久层。我们从以下几个方面来总结本系统的特点7:1)移植性:在跨平台方面,由于Flex和Java语言本身的平台无关性及J2EE标准的平台无关性,本系统可以在不同的操作系统之间进行切换。2)可维护性:系统采用基于Flex+Spring+Hibernate的多层结构设计,使用MVC模式分离了表示层和业务层,隐藏了业务逻辑,使得两层间松散耦合,各自的修改不影响对方,提高了可维护性。3) 架构层次清晰性:在系统设计中,系统分为表示层、业务层、数据持久层和域对象层四层结构,每层结构都是独立于其他结构,各层之间用配置文件关联,具有很强的独立性,便于大型系统中多项目
21、开发人员的协同开发。4) 组件独立性:本系统采用多架构的框架开发模式,四层结构各结构之间相互独立。5) 代码重用性:本系统各部分具有很强的独立性,因此代码具有最大限度的重用性。6) 针对接口编程:在业务层中,通过把对接口编程而不是对类编程。在清晰代码逻辑的同时,也能够促进开发人员养成好的编程习惯。4. 结束语本文设计出了一种基于Flex+J2EE多层架构的RIA智能网络考试系统,采用PSO优化算法智能组卷,通过对框架模型主要层次的功能分析,提供了一种实现多层RIA Web应用系统开发的解决方案。将Flex技术与J2EE的集成,不仅可以利用Flex提供的各种优秀功能,而且利用了J2EE平台的强大
22、的功能,以创建个性化的丰富的多媒体Web应用程序,极大的提高用户体验,彻底革新用户与Web的交互关系。参考文献1 张爱文,樊红莲.自适应遗传算法用于自动组卷中的数学模型设计J,哈尔滨理工大学学报,2006,11(5):18-202 拓守恒,基于Flex和J2EE多层架构的RIA教学质量评价系统的研究与实现D,电子科技大学,2008-10-013拓守恒 ,基于Flex+Spring+Hibernate框架技术的RIA教学测评系统的设计与实现,电脑开发与应用,2009-09-054 KennedyJ. Particle swarm optimizationC,IEEE International
23、Conference on Neural Networks, 1995:1942.5 Eberthart R C, Shi Y. Particle swarm optimization:developments,applications and resourcesC. Proceedings of the IEEE Congress on Evolutionary Computation. Piscataway,2001:81-86.6 阎峰;安晓东,基于粒子群优化算法的智能抽题策略研究J,中北大学学报(自然科学版),2008.4:8333-3377 柏银,基于Struts+Spring+Hibernate多架构的性能分析系统D, 四川大学,2006.5