(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf_第1页
(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf_第2页
(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf_第3页
(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf_第4页
(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

(计算机应用技术专业论文)基于组件技术的在线考试系统的构建及性能优化研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 本文的主要目的是构建基于e j b 组件技术的健壮的考试系统,并 解决随着考试人数的增加而产生的系统性能问题。 e n t e r p r i s ej a v a b e a n ( e j b ) ! 1 件是基于j 2 e e 规范的服务器端组件,通 过e j b 规范可以开发和部署可扩展的、健壮的、安全的多层分布式应 用。性能是设计e j b 组件体系时需要考虑的重要因素,只有优越的性 能才能体现出e j b 作为企业级组件的特点。 本文的工作主要集中在: ( 1 ) 分析和比较了j 2 e e 与c o r b a ,c o m d c o m 当前流行的组件技 术和平台,最后得出j 2 e e 的优势所在。 ( 2 ) 探讨了j 2 e e 为开发基于w e b 的多层分布式应用提供的支持, 设计了基于e j b 组件技术的j 2 e e 重量型架构解决方案。该方案通过 分层和集群的方式来处理运算庞大的应用,满足系统要求。 ( 3 ) 对j 2 e e 性能问题进行了深入的研究,分析了可能存在的性能瓶 颈,并在系统配置和代码设计中予以充分的考虑,提出了通过采用 j 2 e e 设计模式、集群技术柬提高系统性能的具体方法。测试结果表明, 系统性能有了明显提高。 ( 4 ) 从提高数据库访问性能出发给出了数据服务层的具体设计方 案。 关键词:在线考试系统,j 2 e e ,e j b ,性能,数据库访问 a b s t r a c i - _ _ _ - - - _ _ - _ _ _ - _ - h - 一 a b s t r a c t t h em a i no b j e c t i v eo ft h i st h e s i si st ob u i l dar o b u s to i l l i n e t e s t i n g s y s t e mb a s e do ne j ba n dt os o l v et h ep r o b l e mo ft h es y s t e mp e r f o r m a n c e r e s u l t i n gf r o mt h ei n c r e a s i n ge x a m i n e e s e n t e r p r i s ej a v a b e a n ( e j b ) i s as e r v e r - s i d e c o m p o n e n t a r c h i t e c t u r e b a s e do nj 2 e e s p e c i f i c a t i o n ,a n dr o b u s t ,s e c u r ea n dd i s t r i b u t e da p p l i c a t i o n s c a nb ed e v e l o p e da n dd e p l o y e du s i n g i t s y s t e mp e r f o r m a n c ei so n eo ft h e m o s ti m p o r t a n ta s p e c t st ob ec o n c e r n e dw h e nd e s i g n i n ge 1 bc o m p o n e n t a r c h i t e c t u r e ,b e c a u s eo n l yp r e e m i n e n tp e r f o r m a n c ec a ng i v ee x p r e s s i o nt o i t se n t e r p r i s e1 e v e lc h a r a c t e r i s t i c t h em a i nc o n t r i b u t i o no ft h i sp a p e ri s : ( 1 ) r e s e a r c h i n ga n da n a l y z i n go nj 2 e e ,c o r b a ,c o m f d c o ma n d t h e i rt e c h n i q u e ,a n dt h e ng e t t i n gt h ec o n c l u s i o nt h a tt h ej 2 e ei ss e c o n dt o n o n e ( 2 ) a n a l y z i n go nj 2 e ef o rt h es u p p o r to ft h ed i s t r i b u t e d m u l t i 1 a y e r a p p l i c a t i o nb a s e do nw e ba n dd e s i g no ft h es o l u t i o nf o rj 2 e ec o m p l e t e a r c h i t e c t u r eb a s e do ne j b t h es o l u t i o nc o u l dm e e tt h en e e d so ft h es y s t e m ( 3 ) r e s e a r c h i n ga n da n a l y z i n go i l t h e p r o b l e mo fj 2 e ep e r f o r m a n c e , a n dt h e n p r e s e n t i n g c o n c r e t em e t h o d so f i m p r o v i n g t h es y s t e m p e r f o r m a n c e t h r o u g hj 2 e ed e s i g np a t t e r na n dd u s t e rt e c h n i q u e t h et e s tr e s u l ts h o w s t h a it h es y s t e mp e r f o r m a n c ei si m p r o v e d g r e a t l y ( 4 ) p r e s e n t i n g t h es o l u t i o nf o re 1 s t i e ri no r d e r t o i m p r o v e t h e p e r f o r m a n c eo f d a t a b a s ea c c e s s k e y w o r d s :o r - l i n et e s t i n gs y s t e m ,j 2 e e ,e j b , p e r f o r m a n c e ,d a t a b a s e a 0 0 e s s 绪论 第一章绪论 1 1 问题的提出 随着信息技术的高速发展和学校计算机基础设施的改善,采用计 算机在网上进行考试便成为可能。通过机考能够提高考试的客观性并 减轻考试的评卷工作量,提高工作效率。如今采用计算机来进行考试 的系统已经很多,但考试系统多采用客户机服务器( c s ) 两层结构, 其特点是使用时需要对所有计算机进行软件安装和维护,工作量较 大,不适合于大规模的考试。这样就有必要设计一套功能完善的在线 考试系统。我们在设计在线考试系统时有如下几个出发点: 考试系统应该基于流行的w e b 设计,而不是桌面应用的方式: 系统应能够满足现有以及今后可能发展的业务要求,具有可 扩展性和可维护性; 系统应对客户端的要求比较低,并且配置方便,实现客户端 配置的“零管理”; 系统应该具有高度的稳定性和可靠性; 系统具有可移植性,以满足不同运行环境的要求; 还有很重要的一点就是,系统能够表现出良好的运行性能。 考试系统应该能适应大规模的集中考试,所以基于w e b 的瘦客户 模式比较适合我们的需求。但是b s 模式下单台w e b 服务器的性能要 想达到校园网内上千人的同时在线考试或异地远程考试是不现实的。 同时,信息的集中处理会给系统带来较大的负荷,另外对系统的安全 性、稳定性和扩展性也提出了较高的要求。在系统设计之初我们采用 北京交通大学硕士学位论文 的系统业务逻辑是封装在j a v a 类中由j s p 页面或s e r v l e t 小程序调用。 经过一段时间的系统调试,我们发现该方案主要存在以下的问题: ( 1 ) w e b 服务器上的页面和j a v a 类库都只能安装在固定的机器上运 行,不能由多台计算机来分摊服务器上的负担,使系统的可扩展性非 常有限,而且,系统本身很难提供对对象池对象的缓存。当访问客户 增多时,系统性能的下降非常明显。 ( 2 ) 对于事务处理来说,程序员必须在程序中进行各种事务处理, 这对程序开发来说是一个繁重的负担。 ( 3 ) 在安全管理上存在着许多潜在的漏洞,而且程序员必须在程序 代码中经常的检验用户的权限,这又增加了新的编程负担,也会影响 程序代码的可读性。 ( 4 ) 由于w e b 层需要在代码中管理诸如事务、数据库连接池等各种 必需的服务,使得系统的规模很难继续扩展,软件的可重用性较差。 而且比起组件技术来,应用中的对象粒度较细,不易于复用。 因此,作者针对系统中的部分功能模块提出了一个基于w e b 的多 层分布式组件技术丌发的解决方案。我们决定在线考试系统采用基于 w e b 的多层架构形式,可以通过集群技术将在一个网络上的两个或更 多的应用服务器合并成一个逻辑实体,实现分布式的计算、负载均衡, 从而有效提高应用程序的可扩展性和有效性。 在开发考试系统的过程中,我们遇到的一个非常棘手的问题就是 系统性能问题。性能问题的最明显表现是网页的响应时问变慢。因此, 在系统开发时,我们除了把主要精力用于满足系统功能性的需求,更 应该切实注意负载、性能等非功能性需求,对那些非功能性需求要有 足够的重视:同时,在测试阶段,必须对于系统负载和性能做充分的 2 测试。因此如何在这些多层的、 件系统设计,来减少性能瓶颈, 统开发的另一个重要保证。 1 - 2 论文的研究工作 分布式应用程序巾进行资源配置或软 改善系统性能,是成功完成在线考系 针对在开发在线考试系统中遇到的实际问题,本论文在以下四个 方面进行了较系统地研究、探讨和实践: ( 1 ) 认真分析和比较了当前流行的组件技术和平台,由于基于j 2 e e 规范的系统架构在可伸缩性、扩展性、易开发性以及系统性能等方面 的优势,最后在整个考试系统的设计中选择了基于f j b 组件技术的 j 2 e e 架构。 ( 2 ) 深入探讨了j 2 e e 为丌发基于w e b 的多层分布式应用提供的支 持,设计了基于e j b 组件技术的j 2 e e 重量型架构解决方案。该方案 通过分层和集群的方式来处理运算庞大的应用,满足系统要求。 ( 3 ) 对j 2 e e 性能问题进行深入的研究,分析可能存在的性能瓶颈, 并在系统配置和代码设计中予以充分的考虑。提出了通过采用j 2 e e 设计模式、集群技术束提高系统性能的具体方法,并经过了简单的测 试。测试结果表明,系统性能有了明显提高。 ( 4 ) 从提高数据库访问性能出发给出了数据服务层的具体设计方 案。 ( 5 ) 最后本文还指出了本课题在设计和实现中存在的不足之处,并 提出了下一步改进的方向。 1 3 研究的目的和意义 随着i n l e r n e t i n t r a n e t 的快速发展和广泛应用,对新代基于 i n t e r n c t i n t a n e t 的信息系统的需求日益增长。而两层结构的客户机,服 3 北京交通大学硕士学位论文 务器模式遭遇了很大的挑战,由于这种系统结构对客户端数目有很大 限制,把企业逻辑跟程序、数据库捆绑在了起,严重影响了应用系 统的并发性、执行效率、可伸缩性、和软件重用性,在进行复杂事务 处理、集成现有信息系统等方面存在缺陷。为此,新的分布式计算技 术应运而生,基于w e b 的分布式多层体系结构作为新一代 i n t e m e t i n t r a n e t 信息系统平台,将应用逻辑从客户端、服务器端中独 立出来,实现了表示逻辑层、业务逻辑层、数据层的分离,具有优化 系统总体性能,提高系统的可靠性和可伸缩性,平衡各节点的负载情 况,利用网络计算资源,集成已有信息系统等优势,使在i n l e m e t 环 境下开发复杂事务的应用系统,集成现有信息系统成为可能,具有重 要的研究意义。 基于w e b 的分布式多层体系结构的研究是当j j i 分稚式计算和w e b 计算技术研究的前沿,技术难度大,涉及较为广泛的技术领域,主要 有分布式对象、分布式事务处理、j a v ae j b 、计算机网络、w e b 计算、 中间件、数据库、应用服务器、系统安全等方面,具有重要的理论意 义及工程应用价值。 而j 2 e e 为w e b 应用找到了一种统一的具有体系结构的计算模式, 基于j 2 e e 规范的应用服务器为从事基于w e b 的程序丌发人员提供了 一种全新的选择。该规范定义了一整套从服务器端到客户端的相关 技术和它们之间的通信机制,基于该规范的应用程序模型能够扩展企 业的业务范围,降低丌发成本,缩短和客户之间的响应时问,也能够 保护已有的投资。并且,j 2 e e 是规范而不是产品,也就是说它不仅是 操作系统平台独立的,而且是独立于应用服务器厂商的,这样的应用 程序无疑更具有可伸缩性和扩展性。 4 绪论 1 4 国内外研究现状 国内已经出现了一些比较成熟的多层应用系统,但是所采用的技 术路线很多是在传统的浏览器w e b 服务器工作模式的基础上集成数 据库系统,缺乏组件、事务方面的支持,并没有实现真正的可扩展、 可伸缩、高性能的企业w e b 计算平台。 分布式多层体系结构的中间层一一应用服务器标准已经趋于成 熟,国外一些大公司先后摧出了应用服务器实用或者测试产品,如 o r a c l ea p p l i c a t i o ns e r v e r 、i b mw e b s p h e r e 、b e a w e b l o g i cs e r v e r 等, 预计应用服务器将成为i n t e r n e t 上信息系统重要的信息平台。目前这 些先进产品大多结合组件技术、分布式对象技术和j a v a 技术各自优 势,采用成熟技术标准研制,代表了应用服务器技术的发展方向。 北京交通人学硕士学位论文 第二章j 2 e e 和e j b 组件技术 2 1 服务器端组件体系的发展 个健壮的服务器端组件的部署需要考虑很多的因素,例如可扩 展性、可维护性、可靠性和安全性等等。因此任何良好的部署都将软 件从逻辑上分成多个层面,让每个层面完成整体部署中的不同任务。 就是把一个完整的应用分成不同的部分,分别在不同的主机上运行, 这些不同部分还可能有层次上的差别,就好比是把一个完整的应用细 分为多个不同的层次,所以又称之为多层结构技术。多层和分布是密 不可分的,综合在一起。 早在7 0 年代术第一个关系数据库管理系统出现时,计算机的数据 库时代就已经悄然开始。那时的观念是由应用程序和数据库共享同一 文件系统,这种数据处理的模式一般称为单层结构,由于这种结构的 数据库程序占用计算机资源较多也不利于多用户环境数据库的访问, 于是在8 0 年代中期,数据库应用丌始转向c s ( c l i e n l s e r v e r ) 结构,也 就是所谓的两层结构。这种结构在近1 0 年不但得到了广泛应用,而 且相当成功。然而,在两层c s 结构成功的背后却暴露出其结构上的 缺陷,其中最明显的问题表现在应用程序的伸缩性和维护方面。在这 种两层结构中,应用中的事务逻辑和用户界面都安装在客户端。所需 的数据库存储在数据库服务器上,这就给应用的维护和安全控制带来 了困难,旦应用程序有一点改动,维护人员就必须修改每一客户端 上的应用。而且客户端的负载太重,因为所有的事务逻辑都安装在客 户端的计算机上,使得客户端过于庞大、负载重、效率低。针对上面 j 2 e e 和e j b 组件技术 这些问题,通过划分客户和服务器之间的功能,分布式计算提供了 种将用户界面从事务逻辑中分离的方法,在分布式环境下,事务逻辑 集中地安装在应用服务器上,应用服务器包括了统”的界面、业务规 则的封装和数据处理逻辑的规定等等。这种新的结构就是所谓的三层 或多层结构。这种结构允许对业务规则和进程进行集中管理,并在整 个网络上分发,实现进程负载的动态调节。另外随着l n l e m e t 的流行, 越来越多的客户需要数据库的前端能在浏览器中运行,于是出现了 b s ( b r o w s e r s e r v e r ) 结构。应用服务器的出现使得原来占用资源较多的 应用程序客户端( 称作肥客户端) 转变为占用资源较少的瘦客户,这样 降低了客户端的负载,也使得瘦客户可以在浏览器中运行。具体来说, 多层结构有如下优点: ( 1 ) 瘦客户。由于客户端只负责操作界商的表示逻辑,客户端使用 浏览器即可胜任此项工作,减轻了客户机的负担,降低了客户机的软 硬件配置要求,减少了客户端软件安装的麻烦。 ( 2 ) 可维护性。客户端不必安装及配置应用软件,而系统维护人员 只需要在服务器端对服务器进行集中的维护,这给应用软件的维护、 升级带来了巨大的好处。 ( 3 ) 安全性高。在基于分布式计算的多层结构中,所有业务逻辑都 位于服务器端,可以进行业务逻辑的封装,便于进行集中的安全控制, 确保系统安全可靠性。 ( 4 ) 每层独立化。层和层之问通过接口进行调用,只要层提供的接 口不变,层里面的类的具体实现改变不会影响到其他层。 ( 5 ) 较低的数据库转变费用。客户端不再直接访问数据库,而是通 7 北京交通大学硕士学位论文 过中间层访问。这样不必重新部署客户端就能移植数据库模式,更换 数据库驱动程序,甚至改变持久化存储类型。 ( 6 ) 性能降低的局部化。当某一层超载时,别的层仍然能够正常工 作。这样很容易在某层里增加服务器,从而减少系统瓶颈。 ( 7 ) 易于重用。采用组件技术,提高了重用性。 ( 8 ) 开发效率高。多层结构中各层在逻辑上相互独立,同时结合组 件技术,各层的开发工作可以同时进行,从而提高系统的开发效率。 但是,由于分层的结构大多采用了分布式的构件,分布式的条件 下潜在地存在着许多的远程调用,每个远程调用都会占用系统和网络 资源,如果远程讽用使用不当,那么应用程序的性能就会很差。因此, 在进行多层应用程序设计时,还需要完成在层问处理负载平衡通信逻 辑,处理多个客户端并发的访问一个组件的结果,将资源进行池化等 工作。 2 2 组件和分布式应用 2 2 1 组件技术 n 层体系结构中普遍采用了组件技术,组件或者构件技术是应用 级别的集成技术,其基本思想是将应用软件分解成为一个个独立的单 元,将软件开发的过程转变成为类似于“搭积木”的搭建过程,通过 组装不同的软件组件单元来实现软件的集成。按照组件技术的观点, 应用软件的开发就成为各种不同组件的集成过程f i j 。 组件根据业务逻辑单元的耦合程度、功能的要求等综台因素来划 8 j 2 e e 和e j b 组件技术 分。我们把耦合紧的业务逻辑单元放在一起,划分成一个组件。因此, 组件内部是高内聚的,组件间的耦合是松散的。 2 2 2 流行的组件技术和平台 1 c o r b a c o r b a 是通用对象请求代理结构的缩写。通常提到的c o r b a 一 般有两层意思,一是指对象管理组织o m g 提出的分布式对象体系结 构标准,另一层意思是按这种体系结构开发的中间件产品。c o r b a 作为一种应用级的互联标准得到了广泛的认同和应用。其主要特征 是: ( 1 ) 在c o r b a 环境下应用系统问的互联是以对象或程序的调用方 式进行的,这样就可以做到系统问实时互操作。这类环境有很强的互 操作能力。原则上,一个系统内部能够完成的操作,在系统之问通过 c o r b a 都可以实现。 ( 2 ) c o r b a 的面向对象的特点还保证了各对象的封装性和内部细 节的隐蔽性。这不仅可以简化各种功能的使用,还提高了系统的安全 性。 ( 3 ) c o r b a 比较适合于分层结构的应用集成,由于电子商务系统的 体系结构本身就是一种多层的结构,所以这技术比较适合于核心业 务逻辑的应用程序的集成。此外,出于目前应用服务器大多提供 c o r b a 接口,这样利用c o r b a 技术完成应用程序和平台之间的无 缝连接也比较容易。 2 m i c r o s o f td c o m 及w i n d o w s d n a 9 北京交通大学硕士学位论文 分布式公共对象模型d c o m 是微软公司以其公共对象模型c o m 为基础提出的分布式应用集成框架,d c o m 和w i n d o w sd n a 是 m i c r o s o f t 公司的组件集成标准,该标准支持基于数据总线和控制 总线的组件集成。 w i n d o w sd n a 是一种分布式的互联网应用框架,它被b i l l g a t e s 称为“数字神经系统”。这种结构的基本出发点是为了改善传 统的c s 两层结构愈发表现出的明显的局限性,以适应更快更复杂的 事务处理任务和快速开发的需要。 w i n d o w sd n a 的技术思想使应用开发有了明确的分工。一部分 人员专注于事务逻辑层c o m 组件的丌发和测试工作,另一部分人员 根据商务逻辑的需要选择和使用c o m 组件,而不需要了解组件功能 实现的内部细节,从而有效地降低了开发的难度。 3 e j b 和j 2 e e j 2 e e 平台规范是一个由s u n 公司定义的用于简化分布式企业级 应用开发与部署的基于组件的模式。它利用j a v a2 平台来简化企业解 决方案的丌发、部署和管理相关的复杂问题。j 2 e e 技术的基础就是核 心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不仅巩固了标准版中的许 多优点,例如“编写一次、随处运行”的特性、方便存取数据库的 j d b ca p i 、c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全 模式等等,同时还提供了对玎b ( e n t e 巾f i s ej a v a b e 柚s ) 、 j a v as e r v l e t s a p i 、 s p 0 a v a s e “e rp a g e s ) 以及x m l 技术的全面支持。 其最终目的就是成为一个能够使企业丌发者大幅缩短投放市场时间 的体系结构。 j 2 e e 和e j b 组件技术 j 2 e e 提供了一个多层次的分布式应用模型和一系列开发技术规 范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每 个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中 运行f 如s e r v l e t 组件在s e r v l e t 容器上运行,e j b 组件在e j b 容器上运 行1 ,容器间通过相关的协议进行通信,实现组件问的相互调用。j 2 e e 应用编程模型如图2 - 1 所示。在该模型当中,业务逻辑处理被分成三 个层次:客户层、中间层和数据层。 数据层 e l st i e r 图2 - 1j 2 e e 应用编程模型 客户层支持不同的客户端,包括基于浏览器的瘦客户端及其他客 北京交通人学硕士学位论文 户端,中间层能够完成企业服务的存取。企业信息系统层负责存储企 业内部的关键商务数据。在j 2 e e 模型中,应用服务被分为两部分, 一一部分是业务及逻辑,由开发人员实现;另部分是标准的系统服务 由j 2 e e 平台提供。 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件, 各个应用组件根据它们所在的层分布在不同的机器上。j 2 e e 提供了三 种开发应用程序组件的技术: ( 1 ) j s p ( j a v a s e r v e rp a g e s ) 。 j s p 页面由h t m l 代码和嵌入其中的j a v a 代码所组成,j s p 使 j a v a 成为一种易学的服务器端脚本语言。j s p 最大的长处在它将页面 的表现和页面的商业逻辑分丌了。 ( 2 ) j a v as e r v l e t 。 s e r v l e t 是- - * 9 ,j , 型的j a v a 程序,是用j a v a 编写的s e r v e r 端程序, 它扩展了w e b 服务器的功能。作为一种服务器端的应用,它与协议和 平台无关。当被请求时开始执行,这和c g ip e r l 脚本很相似。s e r v l e t 提供的功能大多与j s p 类似,不过实现的方式不同。j s p 通常是大多 数h t m l 代码中嵌入少量的j a v a 代码,而s e r v l e t s 全部由j a v a 写成 并且生成h t m l 。 ( 3 ) e j b ( e n t e r p r i s ej a v a b e a n ) 。 e j b 体系结构是分和式组件模型,它是包含了业务逻辑的可复用 的软件单元。e j b 组件运行在e j b 容器里,它实现为应用服务器端的 组件。 事实上,s u n 设计j 2 e e 的初衷正是为了解决两层模式( c l i e n t s e r v e r ) 的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这 j g e e 和e j b 组件技术 种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展 性也不理想,而且经常基于某种专有的协议。它使锝重用业务逻辑和 界面逻辑非常困难。现在j 2 e e 的多层企业级应用模型将两层化模型 中的不同层面切分成许多层。一个多层化应用能够为不同的各种服务 提供一个独立的层。 基于层次化组件模式的j 2 e e 平台把业务逻辑和底层网络技术分 离开来,具有可伸缩性、扩展性、易开发性和易维护性,已经成为企 业级商业分布式网络计算的事实标准。 j 2 e e 是由s u n 公司开发的一套企业级应用规范。现在最高版本是 1 4 。支持j 2 e e 的应用服务器有o r a c l ea p p l i c a t i o ns e r v e r 、i b m w e b s p h e r e 、b e a w e b l o g i cs e r v e r ,j b o s s ,s u n o n e a p p l i c a t i o n s e r v e r 等。 4 三种组件技术的比较 这三种解决方案各自有其优缺点,d n a 架构具有业界强大的软件 公司m i c r o s o f t 的支持,并且有最好、最快的集成开发工具。但是它 的总体架构是以i n t e l 机器和w i n d o w s 平台作为运行的基础,这限制 了它的应用。因为在服务器端技术中,u n i x 和类u n i x 操作系统以其 稳定和良好的性能颇受企业及用户的青睐,而采用d n a 架构开发的 应用只能运行在w i n d o w s 平台下。在开发考试系统时,考虑到系统要 求的安全性、高稳定性和高可靠性,以及以后可能需要的可移植性, 我们最终把方案放在了另外的两个可选的方案上。 c o r b a 系统是一个与平台无关、语言无关的分布式解决方案,具 有可移植性,但是该系统架构是由对象管理组织o m g 发起并负责制 定规范,尽管很多的软件厂商都声明自己的产品是符合c o r b a 规范 北京交通大学硕士学位论文 的,但是他们在实际开发的对象请求代理( o r b ) 产品中都加入了很多 厂家自己的规范,这使得它宣称的最大可移植性受到了极大的挑战。 而且,没有大的、核心软件厂商的支持和行业推动力,没有好的开发 工具等因素都成为了c o r b a 进一步发展的致命伤。 而反观j 2 e e 系统架构,通过“分治法”和抽象平衡的原则,在解 决软件体系结构的立方体模型问题方面,给客户提供了最大限度的灵 活性、最方便的解决方案。基于j 2 e e 规范开发的应用本身是与平台 无关的,达到了可移植性,通过采用稳定、安全、可靠的u n i x 或者 类u n i x 操作系统,以及稳定的企业级应用服务器可以满足应用在能 力方面的要求。采用该系统架构,配置管理基本上都集中在服务器端, 对于客户端来说,只需要一个浏赀器就可以了,能够真正实现客户端 配置的零管理。最重要的是,整个j 2 e e 架构是一个丌发的标准,但 又和c o r b a 不同的是,浚架构得到了像s u n 、i b m 、b e a 、o r a c l e 等非常重要的软件厂+ 商的支持,他们中的许多公司都j 丌发了易用、方 便的集成开发工具,而且,在应用服务器领域,b e a 、i b m 、b o r l a n d 、 o r a c l e 等公司也提供了稳定、安全、可伸缩性强的产品。在技术支持 领域,j c p ( j a v ac o m m u n i t yp r o c e s s ) 负责收集各个解决方案中的问题, 并制定今后的版本规范,而众多的j a v a 开发人员也是该系统架构的成 功实施的一个重要原因。同时,在业界,已经有许多采用j 2 e e 架构 的成功案例,可以满足日访问量多达两百万的企业级要求。综合比较 三种解决方案,在整个系统中采用j 2 e e 架构无疑是一个良好的选择。 2 3e j b 介绍 f i b ,又称企业j a v a b e a n ,是s u n 公司为使j a v a 语言适应飞速发 展的w 曲商务需求而出现的,e j b 是基于组件的开发模型,用于创建 1 4 j 2 e e 和e j b 组件技术 可伸缩、多层次、跨平台分布式应用,使用e j b 可以方便地封装商业 逻辑,使开发人员可以更加详细地划分角色,并按照商业规则来组织 e 1 b 系统和应用的开发和维护。此种模型以j a v a b e a n s 作为构件基础, 通过j a v a 虚拟机o v m ) 提供的远程方法调用( r m l ) 使客户机运行的程 序可以调用远程服务器上对象的方法,它使程序员能够使用类似于单 机上的顺序编程的方法来编制分布式的应用程序,在网络环境下进行 分布式计算。f a b 技术的提出,为企业级应用提供了一个安全、可靠 及灵活的解决方案口i 。 典型的e j b 由e j b 服务器、e j b 容器、e n t e r p r i s eb e a n s 、f a n 客 户等几部分组成。 e j b 服务器是管理e j b 容器的高端进程或应用程序,并提供对系 统服务的访问,如:多重处理、负载平衡、设备访问、j n d i 和事务支 持等。开发者将b e a n 配置到e j b 容器后,利用e 1 b 服务器的部署工 具,把包含多个e n t e r p d s eb e a n s 的多个f a b 容器部署到e j b 服务器 中。 e j b 容器是由开发商提供的,它的作用是提供对各种e n t e r p r i s e b e a n s 的管理和支持,主要有资源管理、状态管理、安全管理、远程 访问和透明的资源定位、生命周期管理和事务处理管理等。当b e a n 的开发者编制好e n t e r p d s eb e a n 之后,通过定义一个配篝文件来声明 e n t e r p r i s e b e a n s 的属性。( b e a n 的r e m o t e 接口、b e a n 的h o m e 接口、 b e a n 类名、b e a n 的名字空间、安全属性和生命周期等) 。服务器的很 多功能都可以由f a b 容器提供,客户端和b e a n 的,i i i = 发者不必关心容 器的实现细节,可以致力于核心功能的开发。 e n t e r p f i s eb e a n 是运行在服务器端的软件组件,并可部署在分布式 北京交通大学硕士学位论文 的多层环境中,它包含了处理企业数据的应用逻辑,描述组件之间事 件登记、传递、识别和属性使用、定制的应用编程接1 3 和语义。 e n t e r p r i s eb e a n 由三类文件组成,b e a n 类文件、b e a n 的h o m e 接口类 文件、b e a n 的r e m o t e 接口类文件。b e a n 类实现e n t e r p r i s eb e a n 内部 应用逻辑,客户程序通过e n t e r p r i s eb e a n 的h o m e 接口和远程接口来 访问e n t e r p r i s eb e a n 的方法。h o m e 接口提供了创建、删除和定位 e n t e r p r i s eb e a n 的方法,而b e a n 的r e m o t e 接口类提供客户调用 e n t e r p r i s eb e a n 实现的应用逻辑函数的接口。对于程序员来说, e n t e r p r i s eb e a n 可以实现代码的重复使用。一旦e n t e r p r i s eb e a n 开发 成功,就可以部署到支持e i b 的平台上,真正实现“编写一次,到处 运行”的好处f ”。 e j b 客户是使用e n t e r p r i s eb e a n s 的客户,通过j n d i 定位到相应 的e n t e r p r i s eb e a n 的h o m e 接口,再通过接口获得e n t e r p r i s eb e a n s 的 方法。 2 4e j b 和j a v a b e a n 的比较 j a v a b e a n 和e n t e r p r i s e j a v a b e a nc r 已j b ) 有一些基本相同之处,它们都是 用一组特性创建,阻执行其特定任务的对象或组件。它们还有从当前所 驻留服务器上的容器获得其它特性的能力。 j a v a b e a n 是j a v a 的组件模型,它提供了基于组件的开发机制,是使 用i a v a b e a n s 包开发的,它是j a v a2 标准版的一部分,是一台机器上同一 个地址空间中运行的组件,它属于进程内组件。它们可以在多个应用系 统中重用。在j a v a 模型中,通过j a v a b e a n 可以无限扩充j a v a 程序的功能, 通过j a v a b e a n 的组合可以快速地生成新的应用程序。对于程序员来说, j 2 e e 和e j b 组件技术 最好的一点就是j a v a b e a n 可以实现代码的重复利用,另外对于程序的易 维护性来说也有很重大的意义。j a v a b e a n 通过j a v a 虚拟机( j a v av i s u a l m a c h i n e ) 可以得到正确的执行,具有平台无关性。b e a n 与其他软件组件 交流信息的主要方式是发送和接收事件。这与对象之问通过消息通信类 似。j a v a b e a n 传统的应用在于可视化的领域,如a w t 下的应用。自从j s p 诞生后,j a v a b e a n 更多的应用在非可视化领域,在服务器端应用方面表 现出来了越来越强的生命力。利用非可视化j a v a b e a n ,来封装事务逻辑、 数据库操作等等,可以很好地实现业务逻辑和前台程序( 妻h j s p ) 的分离, 使得系统具有更好的健壮性和灵活性。j a v a b e a n 可能是至今发现的最好 的过程内部开发的组件模式。j a v a b e a n 的优点如下: ( 1 ) 提高系统的复用性、易维护性。j a v a b e a n 作为一种j a v a 的构件技术, 是满足一定条件的j a v a 类,它可以极大扩展j a v a 程序的功能,很好的实现 逻辑的封装,提高程序的易维护性、复用性。使用j a v a b e a n 的组合可以 快速生成新的应用程序。特别是自从j s p 诞生后,j a v a b e a n 在服务器应用 方面表现出来了越来越强的生命力。j a v a b e a n 在j s p 程序中常用来封装事 务逻辑、数据库操作等等,可以很好的实现业务逻辑和前台程序的分离, 使系统具有良好的健壮性和灵活性。 ( 2 ) 对客户端的配置要求低,只要用户的浏览器支持j a v a ,那么使用 j a v a b e a n 就没有限制,使用的w e b 页面将b e a n 作为小应用程序的一部分, 直接运行。 ( 3 ) 与e j b 有着紧密联系。j a v a b e a n 和e j b 有很多相同之处。他们都用 一组特性创建,以执行其特定任务的对象或组件。因为j a v a b e a n 是与平 台无关的,所阻可以轻易向不同用户推出不同的j a v a b e a n ,而不必创建 或维护不同的版本。j a v a b e a n 可以与执行业务逻辑的e j b 配合使用。客户 1 7 北京交通大学硕士学位论文 方与j a v a b e a n 交互,又j a v a b e a n 将客户端请求转换成对e j b 的引用,并负 责将处理的结果返回给客户方。 e j b 也定义了一个j a v a 组件模型,但是e j b 组件模型和j a v a b e a n 组件 模型是不同的。e n t e r p r i s e b e a n 是使用j a v a x o b 包开发的,它是标 准j d k 的扩展,是j a v a2 e n t e r p r i s ee d i t i o n 的一部分。e n t e r p r i s eb e a n 是 在多台机器上跨几个地址空问运行的组件,因此e n t e r p r i s eb e a n 是进程 间组件。 j a v a b e a n 通常用作g u i 窗口小部件,而e n t e r p r i s e b e a n 则用作分 布式商业对象。 e j b 实际上是在普通j a v a b e a n 的外围作了很多包装。e j b 完全定位于 服务器端,是部署在服务器上的可执行组件或商业对象。有一个协议允 许对其进行远程访问或在特定服务器上安装或部署它们。有一系列机制 允许它们将服务安全性、事务行为、并发性f 出多个客户机同时访问的能 力) 和持久性( 其状念可以保存多久) 的主要方面授权给e i b 服务器上其 所在的容器。当安装在容器中时,它们获得各自的行为,浚行为提供不 同质量的服务,因此,选择f 确的e j b 服务器至关重要。 e j b 是设计成运行在服务器上,并由客户机调用的非可视远程对 象。可通过多个非可视j a v a b e a n 构建e j b 。它们有一个部署描述符, 其目的与j a v a b e a n 属性相同:它是以后可由工具读取的b e a n 的描 述。e j b 还独立于平台,一旦编写好,还可以在任何支持j a v a 的平 台r 包括客户机和服务器) 上使用。 e j b 的主要好处在于:构建b e a n 时,b e a n 开发人员可以规定需 要什么类型的行为,而不必规定如何去做。开发分为两部分:程序员 开发b e a n ,然后验证,它可与构建工具一起工作,并包括标识所需服 j 2 e e 和e j b 组件技术 务质量行为种类的部署描述符。下一步,另一个程序员可以采用这个 b e a n ,并使用读取e j b 部署描述符的部署工具,然后将该b e a n 安装 到e n t e r p r i s e j a v as e r v e r 上的容器中。在第二步中,部署工具采取一 些操作,这可能意味着生成如状态保存代码,放入事务挂钩,或执行 安全性检查这样的代码。所有这些操作由部署工具生成,b e a n 开发人 员和部署人员可以是不同的人。 e j b 的侧重点是详细的定义了一个可以便捷部署j a v a 组件的服务 器框架模型。e j b 能解决在三层结构中由管理分布式商务对象多带来 的问题。j a v a b e a n 也可以作为进行非图形化服务器端j a v a 应用开发的 组件模型。区别是当用j a v a b e a n 创建服务器应用时,需要设计整个的 服务框架。用e j b 框架是现成的,只需遵守它的a p l 。对于复杂的服 务器端应用程序,显然用e j b 更简单。 可以通过使用部署工具,将任何独立于平台的j a v a b e a n 改写成具 有可靠服务质量、特定于平台的e j b ,以满足现有商业系统和应用程 序。 2 5j 2 e e 集群 2 5 1 集群的基本概念 集群( c l u s t e r ) b l l 在多台机器间复制应用表示层及商业逻辑的能力, 使应用负载均衡地分布到多台机器上。从客户端的角度来看,一个集 群只表现为一个独立的应用服务器实例,也就是说,对于客户来说, 这种集群是透明的。 使用集群的主要目的就是: ( 1 ) 可伸缩性( s c a l a b i l i t y ) 。可伸缩性是指一个应用程序能支持不断 1 9 北京交通火学硕士学位论文 增长的用户数量的能力。集群通过增加s e r v e r 来提供额外的工作能力, 多个应用服务器同时给客户提供服务,可以大大提高应用的可伸缩 性,降低响应时间。 ( z ) 高性能( h i g h a v a i l a b i l i t y ) :在集群中,应用程序能够在其中一个 服务器因为错误而停止后仍继续运行。“集群化”的应用程序组件被 发布在多个“集群化”的服务器实例中,如果其中一个因为错误而停 止,其他服务器上的组件可以继续进行,应用程序不会停止。 ( 3 ) 负载均衡( l o a db a l a n c i n g ) :处理单台s e r v e r 不能处理的大量并 发请求,自动将用户的请求均衡地分配集群中的每一个节点上,比如 将最新的请求分配给总负载因子小的服务器上( 当然,这需要高技术的 计算) 。这样令资源的利用最大化。尤其适用

温馨提示

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

评论

0/150

提交评论