(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf_第1页
(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf_第2页
(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf_第3页
(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf_第4页
(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(通信与信息系统专业论文)基于bs架构的信息平台的设计与实现.pdf.pdf 免费下载

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

文档简介

北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 基于b s 架构的信息平台的设计与实现 摘要 随着网络技术的蓬勃发展和信息化建设的推进,基于b s 架构的 信息平台在各个领域都体现出了很大的需求空间。特别是w e b 应用技 术的出现,更促进了信息平台更深入地渗透到社会各个领域中去。但 目前信息平台的开发并没有一个统一的标准,每开发一个新平台都需 要从头开始,这就造成了大量的重复劳动,而且系统维护的工作量也 很大。这些都不符合软件工程的要求。本论文正是从设计文档复用的 角度出发,针对目前信息平台的特点,提出了信息平台性能和安全通 用设计的概念。 本论文分四部分论述了基于b s 架构的信息平台的设计与实现。 首先,论文介绍了在b s 架构的信息平台中应用的相关技术,并主要 介绍了j 2 e e 技术。其次,论文讨论了对信息平台的性能的设计。主要 从系统应用本身的应用程序与实现、运行环境平台以及关系数据库三 个方面进行。再次,论文从信息平台的应用程序的安全性、运行环境 的安全性两个方面讨论了如何实现安全可靠的系统。最后,论文在教 学教务管理平台的实现中认证了设计的可行性。 本论文的创新之处在于归纳和总结了基于b s 架构的信息管理平 台的性能和安全设计,并将这些设计编写成一个独立、可复用的文 档,不但可以在某一平台中重复使用,更可以方便的复用到其它平台 中。 关键词:j 2 e e ,b s 架构,性能,安全性,教学教务管理平台 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 d e s i g na n dr e a l i z e i n f o r m 【a t i o ns y s t e m sb a s e o nb sa r c h i t e c t u r e a b s t r a c t w i t ht h e d e v e l o p m e n to fi n f o r m a t i o nc o n s t r u c t i o na tf u l ls p e e do f n e t w o r kt e c h n o l o g y , t h ei n f o r m a t i o ns y s t e mb a s eo nb sa r c h i t e c t u r e e m b o d i e sv e r yl a r g ed e m a n ds p a c ei ne a c hf i e l d e s p e c i a l l yw e ba p p e a r a n c e o fa p p l i c a t i o nt e c h n o l o g y , p r o m o t ei n f o r m a t i o ns y s t e mp e r m e a t i n gt h r o u g h s o c i e t yt ot h ea l lf i e l dd e e pe s p e c i a l l y f r o mad i f f e r e n tp e r s p e c t i v e ,t h e r ei s n o tau n i f i e ds t a n d a r di nt h ed e v e l o p m e n to fp r e s e n ti n f o r m a t i o ns y s t e m ; t h i sc a l lc a u s et ow o r kr e p e a t e d l yal a r g ea m o u n to f , t h i sc a n n o ta c c o r dw i t h t h ed e m a n d sf o rs o f tp r o j e c te i t h e r t h i st h e s i sp u t sf o r w a r dt h ec o n c e p to f c o m m o nd o c u m e n td e s i g no np e r f o r m a n c ea n ds e c u r i t y t h et h e s i sb r i n g sf o r w a r dt h es o l u t i o nb yf o u rp a r t s a tf i r s t ,i tp o i n t s o u tt h et e c h n o l o g yo ft h es y s t e m ,e s p e c i a lj 2 e e s e c o n d l y ,t h et h e s i s e m p h a s i z e so nh o w t od e s i g nt h es y s t e mp e r f o r m a n c ef r o mt h r e ea s p e c t s , t h a ti st h es y s t e ma p p l i c a t i o n so w nc o d ed e s i g na n di m p l e m e n t a t i o n ,t h e r u n n i n ge n v i r o n m e n ta n dp l a t f o r ma sw e l la st h eb a c k g r o u n dr e l a t i o n d a t a b a s e t h i r d l y ,t h et h e s i sa n a l y z e sh o w t om a d et h es y s t e ms e c u r i t yb y 3 t h ec o d ea n dt h er u n n i n ge n v i r o n m e n t f i n a l l y ,t h e d e s i g nc a nb eu s e db a s e o nt h ep r a c t i c eo ft h ee - e d u c a t i o n s y s t e m t h ei n n o v a t i o no ft h et h e s i sl i e s i n c o n c l u d i n gc o m m o nd e s i g no n p e r f o r m a n c ea n ds e c u r i t ya b o u tt h ei n f o r m a t i o n s y s t e mb a s eo nb s a r c h i t e c t u r e ,a n do p e r a t et h e s et od e s i g ni n t oa ni n d e p e n d e n t ,r e u s a b l e d o c u m e n t ,n o to n l yc a nr e u s eo no n e s y s t e m ,i ti sb eg e t t i n gm o r e c o n v e n i e n tv e r yt r a n s p l a n tb ys y s t e mo t h e r t o k e yw o i m s : j 2 e e ,b sa r c h i t e c t u r e ,p e r f o r m a n c e ,s e c u r i t y ,e e d u c a t i o n s y s t e m 4 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 申请学 本人签 处,本人承担一切相关责任。 日期:幺! ! :笙 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和 借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或 其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 姓黧薹孑煳警胡适本人签名么鳖:丝:签 导师签名: 刍华b 一日期:堡= _ 二l 二# 一一 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 1 1 信息平台简介 第1 章绪论 随着信息化技术的发展和普及,信息平台网络化工作正进一步展开,但当前 信息平台技术与标准还不够成熟,也没有能完全适应所有信息平台的设计方案, 为了迸一步推动信息平台的发展,必须研究开发适应新时代的基于i n t e r n e t 和 i n t r a n e t 的信息平台,以提高管理的效率,提升企业的绩效。 对于传统的c s 架构的信息平台,其两层结构体系结构显示出了诸多缺陷, 主要体现在以下几个方面: 可扩充性:对于数据库服务器端,每当建立一个数据连接,就会占用大量的 系统资源,当数据连接达到一定数量时,数据库服务器的响应速度与处理速度将 大打折扣。 可维护性:基于传统c s 的数据库应用系统,业务规则通常置于客户端应用 程序中。如果业务规则一旦发生变化,客户端的修改和升级所负担的维护量太 大。 可重用性:采用传统c s 的设计模式,在存储过程调用中,所有处理过程都 在数据库层进行,只是将最终结果返回到客户端,这种结构的业务逻辑需采用专 用语言开发,很难再移植到其他的数据库上去。 安全性:所有客户端均直接( 或通过存储过程) 访问数据库,没有中间环节的 隔离机制,不利于安全性控制,难以防止黑客的恶意攻击:另外,所有业务逻辑均 置于客户端,用户权限等需要集中控制的环节也无法得到有效的管理。 在基于b s 架构的信息平台中,一个应用系统一般由三个部分组成:显示逻 辑部分( 表示层) ,事务处理逻辑部分( 功能层) 和数据处理逻辑部分( 数据层) 。表 示层的功能是实现与用户的交互,功能层的功能是进行具体业务的运算和数据的 处理,数据层的功能是实现对数据库中的数据进行查询、修改、更新、删除等操 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 作。基于b s 架构的信息平台可达到可扩充性、可维护性、可重用性、安全性、 高性能等几点要求。 1 2 论文内容 本论文的是从基于b s 架构的信息平台的体系结构及相关技术出发,将信息 平台中所涉及的性能和安全问题从平台中抽取出来,设计成一份相对独立的文 档,并将这个设计文档在教学教务管理平台中实现。具体如下: 1 ) 绪论; 2 ) 对b s 架构的信息平台相关技术的概述; 3 ) 对信息平台性能的设计; 4 ) 对信息平台安全的设计; 5 ) 信息平台实现的开发实例教学教务管理平台; 6 ) 论文总结。 2 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 第2 章对b s 架构的信息平台相关技术的概述 2 1b s 信息平台相关技术概述 2 1 1j 2 e e 的优势 j 2 e e 为搭建w e b 信息平台提供了良好的机制,具有可伸缩性、灵活性、易维 护性、安全性、高性能等优点,具体表现如下: 1 保留i t 资产 因为企业必须适应新的商业需求,所以应该利用已有的在企业信息平台方面 的投资,而不是重新制定全盘方案。这样,一个以渐进的方式建立在已有系统之 上的服务器端平台机制是公司所需求的。j 2 e e 规范可以充分利用用户原有的投 资,如一些公司使用的b e at u x e d o 、i b mc i c s 、i b me n c i n a 、i n p r i s ev i s i b r o k e r 以及n e t s c a p ea p p l i c a t i o ns e r v e r 。这之所以成为可能,是因为j 2 e e 拥有广泛的业 界支持和一些重要的“企业计算”领域供应商的支持。每一个供应商都对现有的 客户提供了利用已有投资,进入可移植的j 2 e e 领域的升级途径。由于基于j 2 e e 平台的产品几乎能够在任何操作系统和硬件配置上运行,所以现有的操作系统和 硬件能被保留使用。 2 高效的开发 j 2 e e 允许公司把一些通用的、繁琐的服务端任务交给中间件供应商去完成。 这样开发人员就可以集中精力创建商业逻辑,相应的也就缩短了开发时间。高级 中间件供应商提供以下这些复杂的中间件服务: 状态管理服务让开发人员写更少的代码,不用关心如何管理状态,这样 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 能更快地完成程序开发。 持续性服务一一让开发人员不用对数据访问逻辑进行编码就能编写应用程 序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维 护。 分布式共享数据对象c a c h e 服务让开发人员编制高性能的系统,极大 的提高整体部署的伸缩性。 3 支持异构环境 j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序不依 赖任何特定操作系统、中间件、硬件,因此设计合理的基于j 2 e e 的程序只需开发 一次就可部署到各种平台,这在典型的异构企业计算环境中是十分关键的。j 2 e e 标准也允许客户订购与j 2 e e 兼容的第三方的现成的组件,把他们部署到异构环境 中,节省了由自己制定整个方案所需的费用。 4 可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性,来 满足要在他们系统上进行商业运作的大批新客户的需求。基于j 2 e e 平台的应用程 序可被部署到各种操作系统上,例如可被部署到高端u n i x 与大型机系统。这种 系统单机可支持6 4 至2 5 6 个处理器,这是n t 服务器所望尘莫及的。j 2 e e 领域的 供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器 集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业 应用的需要。 5 稳定的可用性 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因 为i n t e r n e t 是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重 损失。若是意外停机,那可能会有灾难性后果。j 2 e e 被部署到可靠的操作环境中 时,它们支持长期的可用性。一些j 2 e e 可以被部署到w i n d o w s 环境中,客户 也可选择健壮性能更好的操作系统如s u ns o l a r i s 、i b mo s 3 9 0 ,最健壮的操作系 统可达到9 9 9 9 9 的可用性或每年只需5 分钟停机时间。 4 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 2 1 2j 2 e e 和n e t 的比较 在论文的开始阶段,除了全面了解j 2 e e 和数据库的各种技术之外,还密切注 意着市场上最新的技术动态。当前面向企业的平台解决方案主要有两种:n e t 和 j 2 e e 。具体比较如下: 1 技术概观 在表现形式上,j 2 e e 是一组规范,而n e t 更像是一组产品。但它们的目的都 是为企业应用提供分布式的、高可靠性的解决方案。所以它们在架构上有着很多 的相似之处。 2 技术比较 1 ) 一对多 微软的n e t 的平台提供了像c 撑、v b n e t 、c o b o l 等多种开发语言,c 撑是 新的,而其他的每一种语言都是在原有的基础上改造而来,c o b o l 等语言先天缺 少面向对象的内涵,现在变成了面向对象的语言,这对传统的程序员来说就会比 较困难。基于面向对象的软件分析、设计、开发、测试是完全不同于基于传统过 程性语言的质变,所以这一过程的转变对传统程序员来讲也是一个痛苦和漫长的 过程。对于传统程序员,微软看似提供了多种解决方法,但对于实际问题而言, 却缺乏实用性。所以一个简单的办法就是:直接使用c 拌。对于独立软件开发商来 讲,其转换成本不容小视。其次,如果在一个软件项目中使用多种语言,开发商 必须同时拥有多种语言专家和多个独立的而又难以互相交流的开发小组,所以, 这也使其软件的维护成本以非线性的曲线增长。 2 ) 跨平台 跨平台是j 2 e e 的最大特点,微软的跨平台解决方案是w e bs e r v i c e s ,它解决 的是异种平台上不同应用之间的连通性问题。从技术角度讲,它只是以x m l 为介 质,并没有什么其他创新。 w e bs e r v i c e s 解决的是异构平台上服务连通性的问题,但在现实中所更迫切需 要的是如何在异构的平台上构造具有可扩展性,高可靠性,高可用性,故障冗 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 余,错误恢复能力的企业应用。如果缺少这一点,那么从结构上讲,n e t 平台还 远未完善。 3 ) 中间层和表示层 在基于组件的中间层和表示层的设计上,两种架构各有特点,它们对于创建 分布式的,复杂的,高效的,高可靠性的应用程序都有着足够的能力。 4 ) 数据访问 j 2 e e 和n e t 以不同的形式支持数据的访问。在j 2 e e 中,j d b c 和a d o 一 样,和所连接的数据库无关,并且通过连接、命令语句和结果集来对数据进行操 作,所以属于中间层次的a p i 。更高一级的数据封装和数据管理是通过实体e j b ( e n t i t ye j b ) 来完成的。基于容器管理的实体e j b 使开发更快捷,管理更方便。事 实上,由于实体e j b 的l o a d 0 和s t o r e 0 方法的同步机制,大大缓解了因并发而使数 据库产生的瓶颈。当然也可以采用不属于j 2 e e 规范的第三方数据访问工具,像 w e b g a i n 的t o p l i n k 。 而微软的n e t 的数据访问工具则由基于x m l 的a d o n e t 代替了基于c o m 组件的a d o 。任何以x m l 为输出的数据源都可以作为a d o n e t 的数据源。相 应的结果集升级为数据集( d a t a s e t s ) ,命令语句则升级为数据集命令 ( d a t a s e t c o m m a n d s ) 。从形式来看,微软的a d o n e t 这种基于x m l 的特性使其 可以处理极其丰富的数据源,并且,因其构架在h t t p 协议之上,易于穿透防火 墙,使沟通更为便利。但由于x m l 本身基于标记的特性,很明显限制了在有超大 数据量和有网络瓶颈时的应用。虽然j 2 e e 的数据访问规则显得略有些单薄,但同 时却更简单,更有效。 总起来说,就企业而言,内部众多平台的整合,平台的延展性、安全性是最 需要注意的议题,而这些都是j 2 e e 的优势,也是微软的不足处。在效率方面, j 2 e e 阵营主张通过硬件的效能增加来弥补软件的不足。开放标准,功能强大,易 于移植这些都是j 2 e e 的优势。 2 2 设计模式 6 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 m v c 是一种目前广泛流行的软件设计模式,早在7 0 年代,i b m 就推出了 s a n f r o n s c i s i c o 项目计划,其实就是m v c 设计模式的研究。近来,随着j 2 e e 的成 熟,它正在成为在j 2 e e 平台上推荐的一种设计模型,也是广大j a v a 开发者非常 感兴趣的设计模型。m v c 模式也逐渐在p h p 和c o l d f u s i o n 开发者中运用,并有 增长趋势。随着网络应用的快速增加,m v c 模式对于w e b 应用的开发无疑是一种 非常先进的设计思想,无论选择哪种语言,无论应用多复杂,它在理解分析应用 模型方面能提供最基本的分析方法,在构造产品方面能提供清晰的设计框架,在 软件工程方面能提供规范的依据。 m v c 英文即m o d e l - v i e w - c o n t r o l l e r ,即把一个应用的输入、处理、输出流程 按照m o d e l 、v i e w 、c o n t r o l l e r 的方式进行分离,这样一个应用被分成三个层 模型层、视图层、控制层。 采用j 2 e e 技术实现m v c 三层分离的具体方法如下: 1 s e r v l e t 是控制器部分,实际上就是一个执行在服务器端的j a v ac l a s s 文 件。接受来自客户端的请求,同时调用相应的j s p 文件; 2 j s p 是整个设计模式的显示部分,对数据不做任何处理,只获取由s e r v l e t 所创建的j a v a b e a n : 3 e j b 是分布式组建模型,包涵了业务逻辑的可复用单元。受s e r v l e t 的控 制,负责处理数据并将结果返回s e r v l e t 。系统模型如图2 1 所示: 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 图2 1 基于m v c 结构的j s p s e r v l e t + e j b j a v a b e a n 结构 j 2 e e 不但提供了面向组件的可复用能力,而且将j 2 e e 技术应用于m v c 结构 还可构建可复用的软件平台框架,使得整个平台框架不做修改或做很少修改就能 用到相似的平台中,从而使平台的开发,维护变得更加有效和快捷。 2 3s t r u t s 概述 s t r u t s 框架是一种基于j a v a 的技术。w e b 应用程序开发人员通过s t r u t s 框架可 以充分利用面向对象设计的代码重用以及“编写一次,到处运行”的优点。s t r u t s 提供了一种创建w e b 应用程序的框架,对应用程序的显示、表示和数据的后段代 码进行了抽象。 s t r u t s 是对m v c 设计模式的一种实现。m v c 设计模式为构建可扩展、可重 用的代码打下了坚实的基础。m v c 设计模式最吸引人之处在于它迫使用户必须抽 象自己的代码,把项目分解为表示、逻辑和控制三部分,各部分之间的关联较 小。以m v c 设计模式构造软件,可以使软件结构灵活、重用性好、扩展性好。 j a k a r t as t r u t sf r a m e w o r k 是一个开放源代码的a p a c h e 项目,由c r a i gr m c c l a n a h a n 于2 0 0 0 年创建,并捐赠给了a p a c h e 基金会,已经成为基于j a v a s e r v l e t 和j a v as e r v e rp a g e ( j s p ) 技术构建w e b 应用程序的最流行的框架包。项 目的创立者希望通过对该项目的研究,改进和提高j a v as e r v e rp a g e s ( j s p s ) 、 s e r v l e t 、标签库以及面向对象的技术水准。s t r u t s 这个名字来源于在建筑和旧式飞 机中使用的支持金属架。它的目的是减少在运用m v c 设计模型来开发w e b 应用 的时间。学习和应用该架构,可以完成其中一些繁重的工作。如果想混合使用 8 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 s e r v l e t s 和j s p 的优点来建立可扩展的应用,s t r u t s 是一个不错的选择。 s t r u t s 是一个基于模型( m o d e l ) - - 视图m e w ) 一控制器( c o n t r o l l e r ) ( m v c ) 模式的 应用架构的开源框架。“模型视图控制器”( m v c ) 是用来帮助控制“变化”的一 种设计模式。m v c 减弱了业务逻辑接口和数据接口之间的耦合。 j s p 页面中可以非常容易地结合业务逻辑( j s p :u s e b e a n ) 、服务端处理过程 ( j s p :s c r i p l e t ) 和h t m l ( ) ,在j s p 页面中同时实现显示,业务逻辑和流程 控制,从而可以快速地完成应用开发。现在很多的w e b 应用就是由一组j s p 页 面构成的。这种以j s p 为中心的开发模型称之为m o d e ll 。当然这种开发模式在 进行快速和小规模的应用开发时,是有非常大的优势,但是从工程化的角度考 虑,它也有一些不足之处,主要在于不方便应用扩展,以及不利于应用平台业务 的重用和改动。考虑到这些问题,在开发大型的w e b 应用时必须采用不同的设计 模式这就是m o d e l2 。 m o d e l2 表示的是基于m v c 模式的框架。“m o d e l ”代表的是应用的业务逻 辑( 通过j a v a b e a n ,e j b 组件实现) ,“v i e w ”是应用的表示面( 由j s p 页面产 生) ,“c o n t r o l l e r ”是提供应用的处理过程控制( 一般是一个s e r v l e t ) ,通过这种设 计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进 行交互和重用。m o d e l2 具有组件化的优点从而更易于实现对大规模系统的开发和 管理。 s t r u t s 是一组相互协作的类、s e r v l e t 和j s p 标记,它们组成一个可重用的 m v c2 设计。这个定义表示s t r u t s 是一个框架,而不是一个库,但s t r u t s 也包含 了丰富的标记库和独立于该框架工作的实用程序类库。s t r u t s 利用t a g l i b 获得可重 用代码和抽象j a v a 代码,利用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 实现对整个系 统导航。增强了开发人员对系统的整体把握,提高了系统的可维护性和可扩充 性。 s t r u t s 是一个w e bf r a m e w o r k ,它继承了m v c 的各项特性,并根据j 2 e e 的特点,做了相应的变化和扩展。它通过把一组相互协作的类,s e r v l e t ,以及标签 库结合在一个统一的框架中,将m v c 模式所具有的“分离业务逻辑和显示逻 辑 的能力发挥到了极点,完全实现了m o d e l 2 ,并很好的帮助j a v a 开发人员开 发j 2 e ew 曲层。 s t r u t s 师出名门,拥有诸多优点,其中最关键的一点就是简单易用,这也是它 迅速普及,越来越流行的根本原因。与其同时代的t u b i n e 、c o c o o n 等,都可以 作为w e b 框架,功能也很强大,但使用起来过于复杂,一直难以流行。作为一名 9 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 普通的j a v a 开发者,只要稍具j s p 开发水平,都可以在一周左右的时间内,基本 学会s t r u t s 。 s t r u t s 还提供了丰富的t a g l i b ,熟练用之,将节省大量的开发时间。 s t r u t s 具有良好的页面导航功能,开发者可以通过一个名为s t r u t s c o n f i g x m l 的文件( 此配置文件名字可以修改) ,把握整个系统各部分之间的联系,这对于后 期维护有着莫大的帮助,尤其是当另一批开发者接手该项目时,这种优势体现得 更加明显。 2 4 数据持久技术 应用程序与后台数据库的交互是通过数据库的接入技术来实现的,对于管理 信息平台来说,访问数据库是最重要的一环。各种开发工具或者程序设计语言连 接数据库的技术不一样,现今有很多的组件来实现,使得数据库的访问和操作变 得更加高效和快捷。 2 4 1j 2 e e 数据持久性技术概述 j 2 e e 平台为管理企业的持久性提供了一组丰富的选项,但如何选择适合于您 体系结构的选项呢? 本论文全面的比较了四种j 2 e e 的数据持久性技术一实体 b e a n 、j d b c 、j d o 和h i b e r n a t e 的优缺点,并对它们被使用的最佳环境进行了详细 的阐述。 1 数据持久性 数据是任何计算机应用程序最重要的部分。计算机应用程序的核心是使某人 或另一个计算机系统能够访问其数据。在企业环境中,数据不仅必须是可访问的 ( 即,与用户界面连接并按一系列业务规则管理) ,而且还必须是持久的。持久数 据存储就是即使在服务器崩溃的情况下仍能存在的数据存储。 持久数据存在于应用程序的活动内存之外,通常在数据库或平面文件系统 中。虽然持久数据被读入瞬时存储器以供使用或修改,但它始终被写到外部数据 存储中以长期存储。美国国家标准与技术研究所( t h eu n i t e ds t a t e sn a t i o n a l i n s t i t u t eo f s t a n d a r d sa n dt e c h n o l o g y ) 定义了三种级别的持久数据: 一部分持久数据是一种仅允许对最新版本更新的持久数据结构。 - 持久数据是一种保留其旧版本的数据结构;即,以前版本和当前版本都可 1 0 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 能被查询。 _完全持久数据是一种维护其数据的所有版本并允许对这些版本更新的持久 数据结构。 大多数业务应用程序至少提供部分持久数据。这种类型的持久性在事务中期 或者在请求中期出现系统故障时容易遭到破坏,这会导致数据不完整且常常遭到 毁坏。另一方面,在持久数据实现中,对系统中断或故障以“回滚( r o l l b a c k ) ”回 应,数据状态被回滚到上一个已知的良好配置。持久数据在实现企业体系结构和 数据库管理系统( d b m s ) 中很常见。完全持久数据实现非常少见。完全持久数据 实现的少数几个示例有:日志记录文件系统、v m s 文件系统( 如v a x 和m a c o sx ) 以及并发版本控制系统( c v s ) 。 2 j 2 e e 中的数据持久技术 在分布式企业计算平台上,必须不惜任何代价保护数据并使其永远持续存 在,即使面临网络故障、内存泄漏和服务器崩溃时,也是如此。为了维护这种持 久性,应用程序组件必须能够处理并发性、连接管理、数据完整性和同步。j 2 e e 的所有四种数据管理技术都为开发人员处理这些功能,但每种技术在处理时略有 不同。 一 实体b e a n ,它提供健壮的数据持久性。b e a n 容器处理大部分的数据完整 性、资源管理和并发性功能,从而使开发人员关注业务逻辑和数据处理, 而不是这些底层细节。使用b e a n 管理的持久性( b e a nm a n a g e d p e r s i s t e n c e ,b ) 实体b e a n 时,开发人员编写持久性代码而容器确定 何时执行该代码。使用容器管理的持久性( 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 ,c ) 实体b e a n 时,容器生成持久性代码并管理持久性逻 辑。 j d b c ( j a v ad a t a b a s ec o n n e c t i o n ,j a v a 数据库连接) ,当与会话b e a n 结合 时,它可提供简便的e j b 开发和与平台无关的部署,而没有象e j b 技 术那样的资源使用和内存开销。象b m p 实体b e a n 一样,该解决方案要 求开发人员编写持久性代码。与b m pb e a n 不同的是,它还要求开发人 员编写持久性逻辑。因而,开发人员负责确定何时将数据持久保留在数据 存储中以及何时从数据存储装入数据。 _ j d o ( j a v a 数据对象是新的持久性机制) 提供了面向对象的持久数据存 储。开发人员使用p o j o ( 无格式普通j a v a 对象,p l a i no r d i n a r yj a v a o b j e c t ) 来装入和存储持久数据。 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 h i b e r n a t e 是一种o r ( 对象和关系) 映射的持久化框架,只用于j a v a 应 用程序通过j d b c 连接关系数据库。它采用反射机制,基于这种机制 h i b e r n a t e 仅需要占用很小的内存。它的特点是:功能专注、足够简单、 效率很高。h i b e r n a t e 不仅仅管理j a v a 类到数据库表的映射,还提供数据 查询和获取数据的方法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间。h i b e r n a t e 的目标是对于开发者通常的数据持久化相关 的编程任务,解放其中的大半任务。 2 4 2 实体b e a n 的特点 1 实体b e a n 的优点 实体b e a n 有下列优点: 一标准化。e 3 b 规范定义一组与供应商无关的接口,j 2 e e 供应商可以实现 这些接口来支持实体b e a n 。这种标准化允许采用最佳实践的开发并缩短 雇用新开发人员时的适应期。 可以使系统快速且可靠。e j b 组件得益于声明性的中间件,例如实例组 合,事务,安全性,资源连接管理,容器管理的持久化,容器管理的关联 和数据缓存,如果使用j d b c 需要自己花时间来编写这些中间件。 - 基于组件的设计,移植性容易实现。实体b e a n 被设计成自包含组件,这 些组件配置有部署描述符,无需更改任何代码就可以将它们部署到任何 j 2 e e 应用程序服务器。所以具有很强的可移植性。 可以使用业界标准工具进行快速开发。虽然短时间看上去j a v a 类开发比 e j b 开发要快,但是实际上有很多工具可以加速e j b 的开发过程。i d e 工 具( 例如:j b u i l d e r ) 可以建立e j b 组件,大大地减少了手工编码量,而 且还减少了手工编码出错的概率,提高了开发的速度和效率。 下面就简单介绍一下事务和资源连接管理的概念。 事务管理:事务就是能以整体的原子操作形式完成的一系列操作。事务能够 保证一个“全有或全无”命题的成立,或者是全部操作都成功,或者是没有一个 操作成功。事务以一种完美,可靠的方式来解决网络或机器故障。事务允许多用 户共享同一数据,并能保证在更新任意数据时可以完整的写入,也避免了其它用 户更新时产生的交叉存取。 事务有四个属性,不可分割性( a t o m i c i t y ) ,一致性( c o n s i s t e n c y ) ,隔离性 ( i s o l a t i o n ) 和稳定性( d u r a b i l i t y ) 。 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 一不可分割性:使许多操作被绑在一起,并且看起来像一个连续的操作单 元。例如:在一个银行系统中,当您从一个帐号转帐到另一个帐号时,您 希望向一个帐号存入资金的同时,从另一个帐号中取出资金,并且使这两 个操作同时发生或都不发生。不可分割性保证了这些操作完成于全有或全 无模式下。 - 一致性:保证了事务结束后,系统状态的一致性。在企业应用中,通常出 现多个客户对某些业务实体的并发访问,一般,e j b 容器通过维护同一个 e j b 实例的多个拷贝,提供给不同的客户,以此提高对客户请求的响应速 度,e j b 容器提供保持实例状态的一致性的机制。而这种特性对于客户来 说是透明的,因此,客户可以认为操作中的e j b 实例是唯一的实例,可 以不用考虑e j b 实例状态在多个并发客户间的一致性 - 隔离性:能够保护同时进行的事务,允许多个事务同时对一个数据库进行 读写,事务系统是通过对后台数据库使用同步协议来实现隔离性的。同步 协议使一个事务与另一个相分离。在事务过程中,自动完成数据锁定,其 它并发事务,无法影响其数据,直到解除锁定为止。这使得多用户可以同 时修改同一数据记录,而不必担心数据交叉存取的发生。 - 稳定性:保证了数据库记录在更新时免遭破坏。如机器故障,网络瘫痪, 硬盘故障或电源问题等等。如果资源出现故障,可以通过访问日志将数据 重建起来。 资源连接管理: 首先,我们要为每一次w e b 请求( 例如察看某一篇文章的内容) 建立一次数 据库连接,对于一次或几次操作来讲,或许觉察不到系统的开销,但是,对于 w e b 程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次, 而是成百上千次( 想想全世界的网友都有可能在您的网页上查找资料) ,在这种情 况下,系统开销是相当大的。事实上,在一个基于数据库的w e b 系统中,建立数 据库连接的操作将是系统中代价最大的操作之一。很多时候,可能网站速度瓶颈 就在于此。 其次,使用传统的模式,必须去管理每一个连接,确保它们能被正确关闭, 如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄漏, 最终将不得不重启数据库。 我们可以使用连接池技术来解决上述问题。 顾名思义,连接池最基本的思想就是预先建立一些连接放置于内存对象中以 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 备使用: 图2 2 连接池原理图 如图2 2 所示,当程序中需要建立数据库连接时,只须从内存中取一个来用而 不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都由连 接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的连接 数、每个连接的最大使用次数等等。通过使用连接池,可以大大提高程序效率, 并可以再通过其自身的管理机制来监视数据库连接的数量、使用情况等。 2 实体b e a n 的缺点 虽然实体b e a n 确实有一系列的优点,但还是要考虑它们的缺点,其缺点如 下: _ 设计复杂。容器管理的服务和自动透明持久性的代价很高。它们在几个级 别上给应用程序设计带来复杂性。首先,为了避免网络开销并强制遵守业 务规则,几乎总是通过会话b e a n 访问实体b e a n 。因此,每个事务至少 涉及两个企业b e a n ( 往往会多得多) 。涉及的组件越多,则体系结构的设 计、编码和维护就变得越复杂。其次,存在自动操作成本。容器有点类似 于有魔力的黑盒。只要它认为适当,就会调用b e a n 回调方法,它可随时 选择创建和破坏b e a n 实例,激活和钝化b e a n ,并且将其状态存储到持 久数据存储中或从其中装入。应用程序代码无法控制这些事情发生的方式 或时间。从积极的方面看,容器的功能减少了编写业务逻辑时要考虑的问 题数量。从消极的方面看,容器对装入条件和数据请求模式的响应是不可 预知的,所以必须在开发过程中添加大量的基于方案的装入测试。 较长的构建周期。由于企业b e a n 和实体b e a n 的复杂性,所以一次迭代 1 4 北京邮电大学硕士论文 基于b s 架构的信息平台设计与实现 ( 设计、构建、测试、集成、测试、部署) 所花的时间比会话b e a n + j d b c 方案所花的时间长很多。 _ 响应时间。根据服务器上的负载和所请求实体b e a n 的相对大小,实体 b e a n 的查询可能有不达标的响应时间。实体b e a n 在本质上受限于b e a n 实例的粒度。要么必须装入整个b e a n ,要么根本无法装入b e a n 。该粒度 会促使体系结构变得更复杂,因为可选择的方案只有两个:是用较差的响 应时间使b e a n 保持原样,还是将数据分成更小的实体,从而使系统的体 系结构变得更复杂。 _系统资源及开发成本。实体b e a n 非常的消耗资源,需要有配置较高的硬 件服务器,另外支持e j b 的中间件软件( w e b l o g i c ,w e b s p h e r e ) 价格比较 皂量 c p 页。 总之,实体b e a n 的缺点是复杂性和较长的构建周期,从而使设计和开发包 含它们的系统变得很困难。在生产中,实体b e a n 因占资源和对大实体的并发请 求响应极慢而声名狼籍。 2 4 3j d b c 接口 j d b c 为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应 用程序设计接口,使开发人员可以用纯j a v a 语言编写完整的数据库应用程序。具 体j d b c 的优点如下:由于j a v a 语言与平台无关,所以利用j d b ca p i 写成的 访问数据库的程序具有很好的通用性,移植方便;设计简单;从体系结构设计观 点来看,通过j d b c 来直接处理数据管理比使用实体b e a n 简单得多;允许开发人 员完全控制整个持久性过程,包括高速缓存、持久性、并发性、同步及其它; j d b c 存在了九年左右;j d b c 的可靠性和最佳实践对于j 2 e e 持久性机制的开 发来说是一笔非常宝贵的资产:因为开发人员完全控制数据访问机制,所以可以 针对某些任务优化数据访问和持久性逻辑;由于直接和有目的的操作,可以产生 极快的响应时间。 总之,j d b c 是一种可用于执行s q l 语句的j a v a 语言的数据库访问接口,它 由一些j a v a 语言编写的类和界面组成。使用j d b c 能使开发人员对数据管理语义 有细粒度的控制权,这一组合利用健壮且成熟的数据管理技术,支持功能优化, 并将它全部封装成一个相对简单的组件体系结构中。 通过使用j d b c ,开发人员可以很方便地将s q l 语句传送给几乎任何一种数 北京邮电大学硕士论文基于b s 架构的信息平台设计与实现 据库。用j d b c 写的程序能够自动地将s q l 语句传送给相应的数据库管理系统 ( d b m s ) 。不但如此,使用j a v a 编写的应用程序可以在任何支持j a v a 的平台 上运行,

温馨提示

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

评论

0/150

提交评论