(计算机软件与理论专业论文)基于j2ee的elearning平台的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于j2ee的elearning平台的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于j2ee的elearning平台的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于j2ee的elearning平台的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于j2ee的elearning平台的设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 当今社会,e - l e a r n i n g 在远程教育、集团培训、高校教学中扮演着越来越 重要的角色。同益扩大的高校规模、分散的校区、电算化教学的开展等都使得现 代高校教学越来越倚重于e - l e a r n i n g 模式。而高校校园网的迅速扩展为 e - l e a r n i n g 提供了基础设施,因此e - l e a r n i n g 平台和工具在高校教学中已经被 越来越广泛地应用。 文章在分析e - l e a r n i n g 平台的研究现状及未来发展方向的基础上,着重介 绍了一套基于j 2 e e 架构、利用s t r u t s 框架开发,以w e b 形式访问的e - l e a r n i n g 平台一一e t p ( e l e a r n in ga n dt e a c h i n gp l a t f o r m ) 。e t p 是一个集在线作业 系统、课件管理、消息管理、交流讨论等于一一身的综合性网络教学平台,较好地 蔼足了工科性院校的教学需求。 本文重点分析了e t p 的系统构架和整体设计,阐述了各个模块的详细设计 与具体实现,并对e t p 中一些适用关键技术进行了总结。 e t p 已经在实际中加以应用,并取得了良好的效果。 毛键词:e - l e a r n i n g ;教学平台;j 2 e e :s t r u t s :e t p a b s t r a c t n o w a d a y se l e a r n i n gi sp l a y i n ga ni m p o r t a n tr o l ei nr e m o t ee d u c a t i o n g r o u p :a i n i n ga n dt e r t i a r ye d u c a t i o n e s p e c i a l l yi nt e r t i a r ye d u c a t i o n ,e - l e a r n i n gi sb e i n g i g h l yv a l u e dd u e t os e v e r a lr e a s o n ss u c ha st h ee x p a n s i o no f i n s t i t u t i o n s ,s c a t t e r e d a m p u s e sa n d t h ed e p l o y m e n to fc o m p u t e r i z e dt e a c h i n g t h er a p i dd e v e l o p m e n to f a m p u si n t e m e th a sp r o v i d e dag o o di n f r a s t r u c t u r ef o re l e a r n i n g ,a n dh a sa l s op u s h e d l ew i d e l ya p p l i c a t i o n so fe l e a r n i n gt o o l sa n dp l a t f o r m s b a s e do nt h et e a c h i n ga s p e c t sa n d r e q u i r e m e n to f o u ru n i v e r s i t y ,w ed e v e l o p a 2 e e b a s e dp l a t f o r mf o rn e t w o r kt e a c h i n g ,i e ,e t p ,s o m eb a s i cf u n c t i o n so f l e a r n i n gp l a t f o r m sa r ei n t e g r a t e di nt h es y s t e m t h e s ef u n c t i o n si n c l u d eo n l i n e ;s i g n m e n ts y s t e m ,c o u r s e w a r em a n a g e m e n t , m e s s a g em a n a g e m e n t ,a n do n l i n e ) m m u n i c a t i o n s , t h ep a p e ra n a l y s e sf u n c t i o n a ld e s i g na n dt e c h n i c a lf r a m e w o r ko fe t p , l t r o d u c e sr e a l i z a t i o ni nd e t a i la n ds u m m a r i z e ss o m ek e yt e c h n o l o g yo f e t p n o we t ph a sb e e nu s e di nt e a c h i n gp r a c t i c ef o rt w oy e a r s i th a sb e e np r o v e nt h a ti th a s o u g h tg r e a tc o n v e n i e n c ef o rt e a c h i n ga n dl e a r n i n gc r o s s i n gc a m p u s e si nau n i v e r s i t y :e yw o r d s :e - l e a r n i n g ;t e a c h i n gp l a t f o r m ;j 2 e e ;s t r u t s ;e t p 3 i i 引言 第一章绪论 当今社会,e - l e a r n i n g 在远程教育、集团培训、高校教学中扮演着越来越 重要的角色。f 1 1 日益扩大的高校规模、分散的校区、电算化教学的开展等都使得 现代高校教学越来越倚重于e - l e a r n i n g 模式。【2 1 而高校校园网的迅速扩展为 e - l e a r n i n g 提供了基础设施,因此e - l e a r n i n g 平台和工具在高校教学中已经被 越来越广泛地应用。f 3 1 1 2 e l e a r n i n g 简介 1 2 1e l e a r n i n g 定义 e l e a r n in g 于1 9 9 0 s 在北美被首先提出,其基本内容是基于网络技术和信 息技术来支撑学习活动。e - l e a r n i n g 的定义指通过因特网或其他数字化内容进 行学习与教学的活动,它充分利用现代信息技术所提供的、具有全新沟通机制与 丰富资源的学习环境,实现一种全新的学习方式:这种学习方式将改变传统教学 中教师的作用和师生之问的关系,从而根本改变教学结构和教育本质。【4 】 1 2 2e l e a r n i n g 的整体特征 1 、媒体技术的功利主义是e l e a r n i n g 的外显特征 从2 0 世纪9 0 年代刀+ 始,多媒体与网络技术的出现为教育的发展注入了新 的活力,使教育的发展产生了质的飞跃,不仅教育信息全球传播,而且最大限度 地实现了全球资源共享。【5 】 2 、人格化的人本主义是e l e a r n i n g 的内在特性 e - - l e a r n i n g 充分实现了个性化学习。在互联网上,没有统一的教材,没有 统一的进度。每一位学习者都可以根据自己的学习特点,在自己方便的时间从互 联网上自出地选择适合的学习资源,按照适合于自己的方式和速度进行学习。6 1 e - l e a r n i n g 改变了学生的、认知过程。文本、图形、图像、音频、视频等媒 体手段的合理应用,使学习内容有形有声有色,具有较强的直观性,能够引导学 生直接认识事物的发展规律和本质属性。 1 3 e - l e a r n i n g 平台的研究现状与技术发展趋势 1 3 1 研究现状 目前大多数e - l e a r n i n g 平台都是采用b s 结构的w e b 技术开发实现的,在 w e b 技术中大多数又是采用a s p 和p h p 技术丌发的。 7 棚而随着j a v a 技术在企业 级开发应用的迅速发展,在e - l e a r n i n g 平台的丌发上也开始呈现其优势。另外 在一些n o v e l i 。网中,也有的采用点对点技术丌发c a i 平台,实现n o v e l l 网内的 实时通讯。f 1 0 】 e - l e a r n i n g 的发展现状:区域上,发展不均衡;业务上,网络还只充当“教 学资源”的发送渠道,将传统的教学硬性搬至到网上柬实现。 i 3 2 技术发展趋势 演进中的w e b 平台和网格技术是构建新一代e - l e a r n i n g 开放平台的基础。 囤际上,f , - l e a r n jn g 领域已经出现了网格应用的研究,如欧盟委员会支持的学 习网格研究要在欧洲范围内建立学习网格基础设施。该小组的宗旨是将网格计算 和e - l e a r n in g 领域的人员( 包括专业学科人员、教授、政府工作人员和学生) 联系到一起,从而: 更深层次地理解、利用网格计算技术到e - l e a r n i n g 的相关问题; 为建立跨欧洲范围内的学习网格基础设施而探讨存在的问题,解决相关挑 战。 从而可支持和实践新的教育方法,如协作学习、个性化学习:同时可创建新的应 用,如学习评测结果的共享与挖掘,以促进教育决策。 “第三届网格与协同计算国际学术会议( g c c 2 0 0 4 ) ”透露,我国第一一个大 型的丁f 式嘲格服务中心一一中国教育科研网格支撑平台在华中科大丌发成功, 并于即同对外开放。这标志着我国的网格技术进入实用阶段。 网格技术可以把分布在各地的计算机连接起柬,让不同用户分享网上资源 ,感觉如同个人使用一台超级计算机一样。f 如电力网为千家万户供电一样, 网格计算的核心是实现跨越整个企业、政府或工作组的资源虚拟共享、管理和 访问。【1 2 1 1 4 系统产生的背景与指导思想 如前所述,现代高校教学已经越来越倚重于e - l e a r n i n g 模式,并且高校校 园网的迅速扩展为e - l e a r n in g 提供了基础设施。然而从现实的发展状况看,伴 随着信息和互联网技术的发展,e - l e a r n i n g 已经改变过去单纯的多媒体课件加 简单互动功能的模式,逐步发展成为满足各种培训需求、适合多种学习类型和习 惯、能够实行实时交互性学习、更为人性化的综合体系。e - l e a r n i n g 要能够综 合利用各种技术和管理手段来有效地推进和组织学习的变革,促进学习者的参 与,还要有能力集成不同j 一商的产品并构建一一个可扩展的技术框架平台,最后还 要能保证项目按时保质地完成。1 8 i f 是在这样的思想策略指导下结合本校计算 机学院的教! 学需求和特点,作者等人丌发了这套基于j 2 e e 的e 一【,e a r n i n g 平 台一一e 1 f 。 随着j a v a 技术的飞速发展,j a v a 技术在企业级的服务端应用开发中丌始占有 越来越重要的地位,应用j a v a 语言进行w e b 应用程序的丌发更是普遍。 1 3 1 而 且j 2 e e 技术是组件性质的,重用性极高这可以大大缩短丌发周期、降低技术 难度。 1 4 1 这些正是我们采用j 2 e e 各项技术来丌发本平台的原因。由于j a v a 语 言所特有的跨平台性,使得e t p 能与多种平台兼容,移植方便。 1 5 本系统相比其他e l e a r n i n g 平台的优点与特点 目前大部分已有的教学平台都是采用a s p 或p h p 等技术丌发的,采用这些技 术的平台在丌发效率和适用而上都没有e t p 好。 在系统设计上,与其他e l e a r n i n g 平台相比,e t p 具有以下优点与特点: ( 1 ) 功能齐全,集在线作业系统、课件管理、消息管理、交流讨论等于一身。 ( 2 ) 作业的组织与管理与知识点紧密结合,智能化定时完成作业的发布与截止, 作业批阅高效便捷,客观题幽计算机批量批改。 ( 3 ) 作业题型多样,图文性质的作业( 如程序、图片、压缩包等) 也可以很方 便的提交和批阅,特别适合工科类院系的需求。而很多已有的作业系统都只有客 观题、问答题等题型。 ( 4 ) 用户分为五种角色:系统管理员、教务管理员、教学指导小组成员、任课 教师、学生。这是按照实际教学中的分工来设计的,比如某门课程的知识点、题 库应该是由教浚课程的所有老师共同商定的,因此本系统中将其归于教学指导小 组成员的功能而不是归于任课教师。很多其他的教学平台可能就只分为管理员和 普通用户两种角色,与实际教学分工不贴近,不能很好的满足需求。 1 6 全文内容的组织与结构 本文介绍了e - l e a r n i n g 的基本概念以及在高校教学的作用与地位,并介绍一 套基于j 2 e e 的e l e a r n i n g 平台的设计与实现。 文章的第二章介绍了系统所使用的各项技术;第三章分析了系统的整体架 构,包括功能结构设计和整体技术框架与流程;第四章阐述了系统的详细设计与 实现:第五章对系统的实际使用情况及e l e a r n i n g 平台的发展方向进行了总结。 1 7 本章小结 本章主要介绍了系统的相关背景,包括e l e a r n i n g 的基本知识、发展现状以 及e l e a r n i n g 平台的现有技术和未来发展趋势。最后介绍了系统产生的指导思 想、与其他同类平台相比的优点和特点。 第二章相关技术简介 这章我们主要来介绍一下系统的捆关技术: 2 1j 2 e e 综述( j a v a2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) j 2 e e 是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可 简化且规范应用系统的刀:发与部署,进而提高可移植性、安全与再用价值。 j 2 e e 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技 术层次,均有共通的标准及规格,让各种依循j 2 e e 架构的不同平台之阀,存在 良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业 内部或外部难以互通的窘境。h 6 l 在j 2 e e 架构下,丌发人员可依循规范基础,进而玎发企业级应用;而不同 j 2 e e 供货商,同会支持不同j 2 e e 版本内所拟定的标准,以确保不同j 2 e e 平台 与产品之问的兼容性。换高。之,基于j 2 e e 架构的应用系统,基本上可部署在不 同的应用服务器之上,无需或者只须要进行少量的代码修改,即能大幅提高应用 系统的可移植性( p o r t a b i l i t y ) 。1 j 2 e e 主要是山s u n 与i b m 等厂商协同业界共同拟定而成的技术规范,以企 业与企业之间的运算为导向的j a v a 丌发环境。j 2 e e 架构定义各类不同组件, 如w e bc o m p o n e n t 、e j bc o m p o n e n t 等,而各类组件可以再用( r e u s e ) ,让已刀: 发完成的组件,或者是经山市匝采购而得的组件,均能进一步组装成不同的系统。 【1 8 对于开发人员而言,只需要专注于各种应用系统的商业逻辑与架构设计,至 于底层繁琐的程序撰写工作,可搭配不同的开发平台,以让应用系统的开发与部 署效率犬幅提升。 j 2 e e 的核心舰范是e n t e r p r i s ej a v ab e a n s ( e j b s ) 。e j b 依照特性的不同,目 前共分为三种,分别是s e s s i o nb e a n 、e n t i t yb e a n ,以及m e s s a g ed r i v e nb e a n 。 其中s e s s i o nb e a n 与e n t i t yb e a n 算是e j b 的始祖,这两种e j b 规格在e j b1 x 版本推出时就已经存在,m e s s a g e d r i v e n b e a n 则是出现在e j b2 0 的规格之中a 【1 9 】 目自f 业界许多程序设计师,或者是网页设计人员,多利用j s w s e r v l e t 的便利 o 性,进而在j 2 e e 服务器之上丌发相关的应用,或是整合公司内部的各种资源。 j a v a 2 平台依照应用领域的不同,共分为三大版本,分别是j 2 e e 、标准版本 j 2 s e ( j a v a2p l a t f o r m ,s t a n d a r de d i t i o n ) 、微型版本j 2 m e ( j a v a2p l a t f o r m m i c r o e d i t i o n ) ,以及j a v ac a r d 等。 2 0 1 2 2s t r u t s 框架 s t r u t s 框架( s t r u t sf r a m e w o r k ) 最初由c r a i gr m c c l a n a h a n ( a p a c h et o m c a t 项目的技术主管) 于2 0 0 0 年5 月提出,目的是为了使w e b 应用程序的表示层能 够从逻辑事务层和数掘层抽象出来,更加迅速和容易的构架基于s e r v l e t 和 j a v a s e r v e rp a g e s ( j s p ) 的w e b 应用程序。它一丌始就得到了丌放源代码社区的 广泛支持,后来成为a p a c h e 软件基金会( a p a c h es o f t w a r ef o u n d a t i o n ,a s f ) 的个项目t h ej a k a r t as t r u t sp r o j e c t 。 2 1 目前,s t r u t s 与j s p 和s e r v l e t 规范的参考实现高度兼容,进而与所有 j 2 e e 应用程序服务器高度兼容。它受到了来自s u n 和i b m 等公司的强有力的支 持,在w e b 应用程序丌发中,已经越来越流行起来了。 2 2 1 2 2 1s t r u t s 概览 s t r u t s 是一个基于s u n3 2 e e 平台的n v c 框架,主要是采用s e r v l e t 和j s p 技术来实现的。s t r u t s 把s e r v l e t 、j s p 、自定义标签和信息资源整合到一个统一 的框架中,丌发人员利用其进行,r 发时不用再自己编码实现全套n v c 模式,极 大的节省了时涮。1 2 3 1 图2 1 展示了s t r u t s 结构的概览: 幽2 1o v e r v i e wo f s t r u t s c l i e n tb r o w s e r ( 客户浏览器) 来自客户浏览器的每个h t t p 请求创建一个事件。 c o n t r o l l e r ( 控制器) 控制器接收来自浏览器的请求,并决定将这个请求发往何处。 s t r u t s c o n f i g x m l 文件配置控制器。 b u s i n e s sl o g i c ( 、j k 务逻辑) 业务逻辑更新模型的状态,并帮助控制应用程序的流程。就s t r u t s 而言, 这是通过作为实际业务逻辑的a c t i o n 类完成的。 m o d e l ( 模型) 的状态 模型表示应用程序的状态。业务对象更新应用程序的状态。a c t i o n f o r m b e a n 在会晤级或请求级表示模型的状态,而不是在持久级。 v i e w ( 视划) 视幽就是一个j s p 文什。 2 4 1 2 2 2s t r u t sf r a m e w o r k s t r u t s 框架联合使用j s p s 、自定义标签( c u s t o mt a g s ) 、s e r v l e t 、和j a v a 对 象来实现m v c2 设计模式。如图2 2 ,是s t r u t s 应用程序的框架示意图。 睦l2 2t h ef r a m e w o r ko f s t r u t sa p p l i c a t i o n 说明: 图2 2 中的c l i e n tv i e w 并不是w e b 应用程序的视图,它是应用程序的视图 ( j s p 文件) 经过j s pe n g i n e 输出的h t m l 。 图2 2 描述了s t r u t s 应用程序的框架结构,a c t i o n s e r v l e t 和a c t i o n 部分共同 组成应用程序的控制器,控制器是以s e r v l e t 实现的一个命令设计模式:j s p 是 应用程序的视图,m o d e l s 是应用程序的数据模型。s t r u t s 应用程序的各个组成部 分将在2 2 节中详细叙述。 图2 2 还描述了大多数s t r u t s 应用程序的请求处理过程,这个过程可以分为 下面5 个基本的步骤,如图2 2 所标: 1 从c l i e n t 浏览器产生个h t t p 清求,例如用户填写一个f o r m ,然后提 交。 2 作为控制器的a c t i o n s e r v l e t 接受请求,在s t r u t s c o n f i g x m l 配置文件中寻 找与请求u r i 对应的a c t i o n 的名字,创建一个具体的a c t i o n 对象,这 个a c t i o n 对象将负责请求的逻辑处理。 3 a c t i o n 对象在数据模型上_ i 进行逻辑处理。 4 a c t i o n 对象处理完毕。返回给控制器一个k e y ,控制器在s t r u t s c o n f i g x m l 配置文件中寻找与这个k e y 相对应的应用程序视图( j s p 文件) 。 5 以h t t p 响应的形式返f f l 给c l i e n t 浏览器,请求处理完毕。 2 2 3s t r u t s 应用程序的组成 从图2 2s t r u t s 框架,我们可以了解s t r u t s 应用程序的组成。实际上,s t r u t s 应用程序的组成与m v c2 设计模式的各个组成部分是相对应的,也主要分为模 型、视图和控制器三部分。 l 、模型 s t r u t s 框架本身没有提供模型组件,一般来说,普通的j a v a 对象、e j b 组件、 j a v a b e a n 组件都可以作为s t r u t s 应用程序的模型,这些模型是由控制器被操作和 处理的,它羽控制器和视图一无所知。 2 、视图 s t r u t s 应用程序中的视图都是用j s p s 来表示的,j s p s 中可能会包含大量的 s t r u t s 自定义标准标签,通过这些标签,使得j s p s 中不包括任何j a v a 代码就可 以实现各种逻辑处理,以及与应用程序的数据交换等操作,提高视图的可移植性 和易修改性。 下面足、。一段表示视图的j s p s 代码的示例: s t r u t sv l i ! w ( t a g l i bu r i - - 2 ”w e b i n f s t r u t s h t m l t i d p r e f i x 2 h t m l ” : : q da l i g n = 1 l e f t ” s t r u t sv i e w c o d el i s t2 1 如c o d el i s t2 1 所示,j s p s 代码中出现大量自定义标签( c u s t o m t a g s ) ,这 些标签是s t r u t s 定义的标准标签,根据实现的功能的不同,s t r u t s 的标准标签可 分为三类: b e a n 标签 s t r u t s 提供的b e a n 标签库,主要用于访问和操作j a v a b e a n s 、h t t p c o o k i e s 和h t t ph e a d e r s 。b e a n 标签库共包括1 1 个标签。其中最常用的是 标签,用于将j a v a b e a n 写入视图。 h t m l 标签 s t r u t s 的h t m l 标签库,主要用于创建输入f o r m s ,同时还包括一些其它 h t m l 标签用于定义用户视图。h t m l 标签库共包括2 2 个标签,常用 的是 相关的一系列标签。 l o g i c 标签 5 s t r u t s 的l o g i c 标签库,主要用于逻辑判断处理,例如相等、不相等、大 于、小于、循环等。l o g i c 标签库共包括1 4 个标签,其中常用的是 ,这个标签经常 标签配合使用,将个 j a v a b e a n 集合写入视图。 3 、控制器 控制器是s t r u t s 框架的核心和精髓。应用程序通过配置文件定义请求的处理 流程,控制器负责实现配罱文件中的定义,按照配置文件处理用户请求。因此, s t r u t s 应用程序的处理过程是可以动态配置的。 s t r u t s 的控制器出一个名n o r g 。a p a c h e s t r u t s a c t i o n 。a c t i o n s e r v l e t 的s e r v l e t 类来 实现。a c t i o n s e r v l e t 接收所有的客户端请求,然后根据请求的u r i 将请求委托给 用户定义的a c t i o n x 来处理,如图2 ,2 所示。a c t i o n x 继承自 o r ga p a c h e s t r u t sa c t i o n a c t i o n 类,用户通过覆写e x e c u t e j j 法来定义请求的逻辑处 理。一旦请求处理完毕,e x e c u t e 方法返| 三| :j 给a c t i o n s e r v l e t - - 个k e y ,a c t i o n s e r v l e t 根掘这个k e y 选择某个视图( v i e w ) 来显示请求的处理结果。请求的真f 的逻辑 处理是用户在覆写a c t i o n 的e x e c u t e 方法时定义的。 a c t i o n s e r v l e t 是s t r u t s 应用程序的控制中心,根据用户请求,创建具体的 a c t i o n 对象进行逻辑处理,根据逻辑处理的结果,返回视图。 2 3j d o 及c a s t o r j d o 长久以来,j a v a 应明程序和持久数掇管理之间的关系直是不容易处理的。 许多持久性机制以关系的方法而不是面向对象方法存储数据。即,数据存储在由 包含字段的记录组成的表中,而不是存储为自包含对象( 这些对象拥有内部数据 和对其它对象的引用,而其它对象也拥有内部数据和引用) 。将面向对象的表示 转换成关系表示直就很麻烦、易出错且会降低应用程序性能。直到最近,少数 几个本质上是非关系型的持久性机制( 例如s q lb l o b 和j a v a 序列化) 使用 起来也很麻烦。大多数持久性机制让丌发人员负责处理持久性,或使用非j a v a 语言( 例如s q l ) 与后端数据存储进行相互作用。( 2 6 】 j d o 的优点在于它很简单。_ 丌发人员使用j a v a 语占持久存储对象实例并 从存储器检索实例。处理逻辑、同步和故障转移等均被透明地处理。丌发人员无 需使用s q l 或j a v a 语毒提供的不便的序列化机制,只使用p o j o ( 无格式 普通j a v a 对织) 即可,利用j d o 接口将对象引用传递到存储器中并从存储 器检索对象引用。【2 7 】 j d o 还采用了很多j d b c 使用的高级体系结构。它使用一种可插入的体系 结构,在这一体系结构中丌发人员将自己的代码编写成标准接口集( j d o a p i ) , 而供应商提供这些接口的实现。这允许使用j d o 接口的应用程序“插入”任何 支持j d oa p i 的数据存储。和j d b c 一样,这可以使移植容易,并促进各供 应商之问的竞争,从而产生更好的产品,因为供应商会力争提供更有效且功能更 强大的实现。 目前,有两种类型的j d o 实现,一种是s u n 的j d o ,另一种是c a s t o rj d o 这两者并不燕容。 要了解c a s t o rj d o 首先要认讨 两个基本的问题: 1 、和s u nj d o 的关系 c a s t o rj d o 和s u nj d o 并不相同,c a s t o rj d o 是独立于s u nj d o 发展起来 的,但足它们所完成的工作非常相似。虽然也可以将c a s t o rj d o 重新定制成s u n j d o 那个样予,但是山于两者在锁定策略上存在的根本差异,这样做并不划算。 在内部,c a s t o rj d 0 为所有事务中的每个活动的持久性列豫只维护一份锁定( 和 缓存) 的备份。而存s u n 中则对每个事务中的每个持久性刘象各维护一个备份, 并且s u n i d o 还需要字节码编辑器,而c a s l o r j d o 并刁i 需要。c a s t o r 还提供了 其他的一些特性,比如说k e yg e n e r a t o r s ,l o n gt r a n s a c t i o ns u p p o r t 以及o q l q u e r y ,这些都在s u n 的j s r 中是看不到的。 2 、和e j b 的关系 c a s t o r 和e j b 很难说谁更好+ 些。 一个实体b e a n 可以管理它自身的持久化。它要么调用b m p ( b e a n m a n a g e d p e r s i s t e n c e ) 来自己管理持久化,要么就依靠它的容器的c m p ( c o n t a i n e rm a n a g e d p e r s i s t e n c e ) 来做到持久化。 对予b m p 柬晚,一个实体b e a n 可以使用c a s t o rj d o 作为它的持久化机制, 也可以使用其他的机制,比如说直接调用j d b c 。 对于c m p 束说,一个e j bc o n t a i n e r 可以将它们的c m p 基于c a s t o rj d o 来 实现,那么c a s t o r j d o 将被用来将实体b e a n 持久化。如果丌发者需要e j b 的 l i f e c y c l e 管理1 w r i t eo n c ed e p l o ya n y w h e r e ”和其他分布式应用程序的优点,那 么建议你聋接使用e j b 。否则,使用c a s t o r 将会更简单,丽且还j | 放源代码,开 销更小,并提供更多的设汁自由性,以及所提供的集成的x m l 支持。我们应当 根据实际情况来选择所使用的机制。 2 4 本章小结 本章主要介绍了系统所用到的相关技术,包括j 2 e e 平台的整体介绍、系统 主要框架s t r u t s 框架、数据持久层c a s t o rj d o 等技术。 第三章系统构架及整体设计 这一章我们主要来介绍系统的构架和整体设计,包括功能和技术两方面 3 1 功能结构设计 3 1 1 功能概述 e t p 具备了大部分同常教学所需求的功能,其功能设计以同常教学中不同人 员的分工为出发点,为5 利,角色的人员( 详见引言) 设计了各自所需的功能。其 中5 种角色共同捌有的功能是进入论坛交流讨论和对消息进行管理,只是不同角 色的人员能发川,的消息范围不同。图3 1 描述了本系统的整体功能: 同志管理朋户管列 知u 地管j | _ - f = 谍教师谍件管列 教务管婵员臀群课程符胖 题库管雕作业管耻 系统 i | 魍毹理 教学仟务符堙梨删公款谋什管邢”、毗批改 论坛 教务消息符_ | = l ,谍挥消息符邢 作业统 论坛 沦坛教学消息管理 论坛 系统管理员教务管理贝酞学指导小! 任渫教! | i i j学生 3 1 2 关联功能设计 应州层 _ e 务逻辑筮 数据库 图3 1 功能概述 在线作业 f 看已改作、f i 情i 浏览或f 拨蝶作 论坛 鉴于实际教学中,许多环节之阿会存在一定的相关制约性,本系统在设计功 能模块时便对这些关联性进行了充分考虑并很好的将它们体现在功能体系中。下 面介绍本系统主要几个存在关联性的功能的笈汁理念。 ( 1 ) 课程相关功能没计 在本系统中,与课程相关的概念有课程、教学任务、知识点、题库等。i 课程可以有多个任课教师。一个任课教师所带的个教学班级称为一个教学任 务。- - f j 课程捌有棵知识点树及一个题库。在本系统中一鲢建立了一一门课程, 那么就提供了建立相关联事物的接口。例如,建立了一门课程,在建立教学任务 时的备选课程中将出现刚爿新建的课程,若没有建立课程,则不能新建该课程的 教学任务,同样,在删除门课程之前必须先删除所有相关的教学任务:建立了 一“门课程,也自动为该课程生成与课程同名的知识点树的根结点,只有建立了该 课程知识点树的根结点,力能在其下添加其他子知议点,也只有建立了知识点树, 才能在各知识点一f 建立题库,也就是蜕题库巾的每一道题目都是挂在知 = h 点树中 某个结点之f 的,在访问题库的时候也是按照知识点树的结构来呈现给用户。 ( 2 ) 作业相关功能设计 与作业相关的有两个概念:作业任务 i o m e w o r k t a s k 与作业i i o m e w o r k 。作业 任务是指教师新建的作j 阢当新建的作业任务到达了发布f = = j 期,系统将自动为选 修该教师该课程( 即教学任务) 的所仃学生创建一个作业任务的副本,我们称为 作业,即作j 比是相对学生面言,每个学生的每个作业任务有一个作业。作业任务 有三种状态:编辑中、已发柿、已截止,作业有六种状态:未丌始、已丌始、已 完成、未提交、来完成、已截止。在设汁与作业相关的功能模块时都充分体现了 作业任务状态列诈、i k 状态的严格制约关系,两者状态的制约关系请参看图3 2 : 图3 _ 2 作业任务与作q k 状态关系图 图中左边为h o m e w o r k 的状念,右边为h o m e w o r k t a s k 的状态,处于同一水平 线上的是两者的对应状态。作j 啦任务发布以后学生方可以做作业,作业任务截止 后,学生办不能再做作业。即当l o n e w o i ,k t a s k 的状态为s t a t u sp u b l i s h e d 时, h o m e w o r k 可能的状态有s t a 7 f u s 一) 4 0 r b e c l n 、s 1 1 a t u s b e g i n 和s t a t u sf i n i s h e d : 当h o m e w o r k t a s k 的状态为s t a t u s c o m p i 。e t e d 时,h o m e w o r k 可能的状态有 s t a t u s n o t c o m m i t 、 s t a t u s d e a d i 。 n e、s t a t u sn o t f i n i s h e d年口 s t a t u s c o r r e c t e da 其中作业任务的状态转变是由一后台线程自动控制的。最后, 当作业任务被删除,备学q :的作业也将自动被删除。 ( 3 ) 用户相关功能设计 用户包括教师、学生两个大类,用户的管理是在教务管理模块中进行的,但 是由于系统主体部分和论坛部分分别采用了两个独立的数据库,有各自的用户表 ( 之所以采用两个数据库足为了方便沦坛的实现) ,为了使得两边用户的资料得以 统一,我们在添加、修改、删除系统主体数据库表中记录的同时,也对论坛数据 库用户表记录进行相应的更改,这就要求我们提供一个同步更新的接口。 ( 4 ) 消息斗_ | = f 关功能设计 在本系统中,设计消息模块时根据现实中的消息发布对象与范围,将消息分 为4 种类型的消息,可参看图3 1 中的4 种消息类型。其中系统消息可以选择是 发送给个人( 老师或学生) 还是所有用户均可褒看:教务消息可以选择发送给个 人、选修某个教学任务的学! l 、选修某门课程的所有学生( 不沦任课老师) 或者 所有系统用户均固接收的消息;课程消息是教学指导小组发郁的针对菜门课程的 消息,同样可以选择发送给个人、选修某个教! 学任务的学生、选修某门课程的所 有学生,但不能发送给所有用j 。:教学消息是任课教师发布的针对某个教学任务 的消息,可以选择发布给某个学生或者选修该教学任务的所有学生。 3 2 整体技术构架 本系统的总体流样央现采用了s t r u t s 框架。黎fs t r u t s 概架,我们设计了盯p 的整体构架。劁3 3 为系统整体构架图: 圈3 3 整体构架模型 如图3 3 所示:客户端浏览器的每个h t t p 请求生成一个事件,控制器接收 来自浏览器的请求,若请求的为一。静态页面( 例如击r 展名为j s p 的页丽) ,则直 接f o r w a r d 到该页丽:若请求的为一动态页i f j :i ( 例如扩展名为d o 的页面) ,则根 据s t r u t s c o n f i g x m l 义件中的对应关系,决定将这个请求发往何处,即分派给哪 个业务逻辑来处理孩请求。业务逻辑更新模型的状态,并帮助控制应用程序的流 程。视图就是个j s p 文件。 根据以川萸型我们构吲:发时将系统分为3 大模块:逻辑处理模块( a c t i o n 类) 、数据存取模块( e v e n t 类) 和页面模块( j s p ) 。 a c t i o n 类传递山请求中获取的参数( 包括f o r m ) 给e v e n t 类,再获取由e v e n t 类返回的数据,并将这些数据以一定的形式传递给j s p 。 e v e n t 类负责根捌a c t i o n 类传递的参数,通过c a s t e rj d o 连接,从数据库中 耿出所需的数掘( 或更新数据库) ,并将数据凹送给a c t i o n 类。 页面模块用柬湿示a c t i o n 类对视图的更新。 另外,在与数掘库的连接上我们的系统摒弃了j d b c 技术,而采用c a s t e rj d o 技术。j d o 技术将数据库表映射成类似j a v a b e a n 的类,从而为存耿数掘库提供了 很大的便利。另一方面,不采用e j b 的原因就是:j d o 明确解决了e j b 部件模 型将持久性和分自刑结合起来的缺陷,j d o 更适合现实的应用需要。与c a s t e r j d o 技术相匹配的数抓:库查嘲语言为o q l ( 丽向对象查询语言) 。o q l 的语法 类似于s q l 的语法,但它却使您能够查嘲对象模型,而不是直接查咖数据库。 下面是一段使用o q l 语言查询数据库的例子: s t r i n gs t r = “s e le c t m r o i l lm e s s a g emw h e f em jd = $ 1 ”: s t r i n gm s g ( ) q 1 = d b g e t o o l o u e r y ( se r ) : m s 9 0 q 1 bj n o ( 1 ) :从m e s s a g e 表罩取出州= l 的记录 r e s u l t s e tr e s u lt s = m s 9 0 q e x e c u t e0 : w h i l e ( r e s u l t s h a s m o r e ( ) ) f m e s s a g em :( m e s s a g e ) f e s o 】ih n e x t0 : m s e t t i e ( “您好”) 修改t i t l e 字段 对m 对象进行其他操作 l 3 3 系统运行环境 3 3 1 硬件环境 s e r v e r c p u :i n t e lp 418 g 或更高 m e m o u :5 1 2 m 或更高 h a l dd i s k :4 0 q 或更高,同系统使用人数多少有关,盘果人数较多,需 要更多的硬锅:窄阳j c l i e n t c p u :i n t e lp 34 5 0m h zo rb e t t e r 3 3 2 软件环境 s e r v e r w i n d o w s :w i n d o w s2 0 0 0 或w i n d o w sx p j d k :v e r s i o n1 4 c l i e n t m i c r o s o r i e60 或更高版本,分辨率1 0 2 4 * 7 6 8 3 4 系统开发环境 操作系统 w i n d o w s :w i n d o w s2 0 0 0 w i n d o w sx p 2 4 j d k : j d kl ,42 w e bs e r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论