




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)基于j2ee的安全的多层web系统结构的设计与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学硕士学位论文 摘要 随着w e b 技术的迅猛发展以及多变、复杂的企业需求的快速增长,w e b 系统 的应用越来越广泛,结构也越来越复杂,并逐渐成为下一代软件开发的主流。j 2 e e 目前已成为w e b 系统最常用的系统结构之一,而由于传统j 2 e e 系统结构的不足, 使其使用范围受到了限制。与之相比,基于j 2 e e 的s t r u t s 、s p r i n g 、h i b e m a t e 等 开源框架,由于其明显的优势,正在为越来越多的企业所接受和使用。 本文首先介绍了j 2 e e 的安全性及其多层结构,并对w e b 层、业务层和数据持 久层框架的研究现状进行了分析,提出一个用于开发企业级软件的w e b 系统结构, 并对该系统结构的总体需求、总体结构设计、详细设计进行论述。最后通过一个 具体的应用对系统结构进行实践检验,为基于此系统结构的二次开发人员提供成 功的实践依据。 本系统结构对传统j 2 e e 系统结构进行了改进,分为支撑平台和系统应用框架 两部分。支撑平台在操作系统、j 2 s d 壬。十j 2 e e + j v m 和开源框架基础上增加基本类 库和通用业务服务以提高系统结构的复用性和灵活性,也使开发人员更专注于业 务逻辑的实现,从而降低项目的技术风险与开发成本。系统结构结合使用声明性 安全和编程性安全,抽取安全类库扩展支撑平台,增强系统结构的安全性。系统 应用框架包括视图层、控制层、服务层、持久层和数据库层,各个层次专注于本 层功能的实现,彼此通过各层问的通信接口进行通信,实现松耦合,使系统结构 更有利于扩展和维护。 关键词:j 2 e e ,安全,多层结构,w e b 系统 沈阳理工大学硕士学位论文 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fw e bt e c h n o l o g y , a n dt h er a p i dg r o w t ho fd e m a n d f o rb u s i n e s se n t e r p r i s e s ,t h es t r u c t u r eo ft h ew e bs y s t e mi sg e t t i n gm o r ea n dm o r e c o m p l e x i th a sb e c o m et h em a i nf o r mo ft h es o f t w a r ed e v e l o p m e n t j 2 e ef r a m eh a s b e e nt h em o s tc o m m o nf r a m eo ft h ew e bs y s t e m b u tb e c a u s et h ec o m m o nj 2 e ef r a m e h a ss o m eb u g s ,al o to fc o m p a n i e sm a yn o tc h o o s ei t i nc o n t r a c t ,b e c a u s et h e yh a v ea l o to fa d v a n t a g e s w e bo p e ns o u r c ef r a m e w o r k sb a s e do nj 2 e ea r eb e i n gu s e db ym o r e a n dm o r ec o m p a n i e s t h et h e s i si n t r o d u c e st h es e c u r i t ya n dm u l t i l a y e rs t r u c t u r eo fj 2 e ef r a m ef i r s t t h e r e s e a r c ha n dd e v e l o p m e n ts t a t u sa th o m ea n da b r o a do fw e bt i e r , b u s i n e s sl o g i ct i e r , d a t ap e r s i s t e n c et i e rh a sb e e na n a l y z e d ,p u tf o r w a r dak i n do fw e bs y s t e ms t r u c t u r ef o r d e v e l o p i n gt h eb u s i n e s se n t e r p r i s es o r w a r e t h e nt h e t h e s i sd i s c u s s e s t h eo v e r a l l d e m a n d ,t h eo v e r a l ls t r u c t u r ed e s i g na n dt h ed e t a i l e dd e s i g no ft h ew e bs y s t e ms t r u c t u r e f i n a l l y , t h ew e bs y s t e ms t r u c t u r ei sp r o o f - t e s t e db yas y s t e ma p p l y t h i ss y s t e ms t r u c t u r eh a sm a d et h ei m p r o v e m e n tt ot h et r a d i t i o n a lj 2 e es y s t e m s t r u c t u r e ,d i v i d e si n t ot h es u p p o r tp l a t f o r ma n dt h es y s t e ma p p l i c a t i o nf r a m et w op a r t s t h es u p p o r tp l a t f o r mi n c l u d e so p e r a t i n gs y s t e m ,o p e ns o u r c ef r a m e w o r k ,c o m m o n c l a s s e sa n dg e n e r a ls e r v i c e se t c i ti n c r e a s e st h er e u s a b il i t ya n df l e x i b i l i t yo fs y s t e m s t r u c t u r e ,a l s oc a u s e st h ep r o g r a m m e r st oc o n c e n t r a t em o r eo nb u s i n e s sl o g i ct or e d u c e t h et e c h n i c a lr i s k sa n dd e v e l o p m e n tc o s t s t h es y s t e ms t r u c t u r eu s e sd e c l a r a t i v e s e c u r i t y , p r o g r a m m a t i cs e c u r i t ya n ds e c u r i t yc l a s s e st o e n h a n c et h es e c u r i t yo ft h e s y s t e ms t r u c t u r e t h es y s t e ma p p l i c a t i o nf r a m ei n c l u d e sv i e wt i e r , c o n t r o l l e rt i e r , s e r v i c et i e r , d a t ap e r s i s t e n c et i e ra n dd a t a b a s et i e r e a c ht i e rc o n c e n t r a t e so ni t so w n f u n c t i o n ,e a c ho t h e rt h r o u g ht h ei n t e r f a c et oc o m m u n i c a t e ,c a u s e st h es y s t e ms t r u c t u r e t ob em o r ee x t e n s i b l ea n dm a i n t a i n a b l e 沈阳理工大学硕士学位论文 k e yw o r d s :j 2 e e ,s e c u r i t y , m u l t i l a y e rs t r u c t u r e ,w e bs y s t e m 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者本 人独立完成的。有关观点、方法、数据和文献的引用已在文中指出, 并与参考文献相对应。除文中已注明引用的内容外,本论文不包含任 何其他个人或集体已经公开发表的作品成果。对本文的研究做出重要 贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本 声明的法律结果由本人承担。 作者( 签字) :秋物丽 日期 :劬嘴年多月9 日 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文 的规定,即:沈阳理工大学有权保留并向国家有关部门或机构送交学 位论文的复印件和磁盘,允许论文被查阅和借阅。本人授权沈阳理工 大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或其它复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者繇获砌确指剥币躲撕 日 期:w 略形日期:娜弓g 第1 章绪论 1 1 问题的提出 第1 章绪论 1 1 1w 曲系统的发展 早期的w e b 系统只是提供一些简单的静态内容,远不能满足用户的需要,更 谈不上企业级的应用了。随着现代信息技术的迅猛发展,w e b 系统也随之迅速发 展,基于多层系统结构的w e b 系统正是在这时产生并发展起来的。与传统的客户 机服务器模式( c s 模式) 相比,这种多层模式一般分为三层,“它在原有的客户 机和数据库服务器之间增加了一个中间层,称为应用服务器层,专门负责处理应 用逻辑,并具有事物管理、连接缓冲等功能,而客户机只需通过图形界面和客户 进行交互”m ,这种交互完全通过标准网络浏览器实现,故将这种模式称为浏览器 朋艮务器模式( b s 模式) 。 b s 模式的三层结构分别为客户端、w 曲服务器和数据库服务器。第一层客户 端是用户与整个系统的接口,由用户通过浏览器将请求提交给w 曲服务器。第二层 w 曲服务器将启动相应的进程来响应这一请求,并动态生成h t m l 代码,其中嵌入 处理的结果,返回给客户端的浏览器。如果客户机提交的请求包括数据的存取, w 曲服务器还需要与数据库服务器协同完成这一处理工作。第三层数据库服务器的 任务类似于c s 模式,负责协调不同的w e b 服务器发出的请求,实现数据库的读写 操作。b s 模式通过应用服务器层,把应用逻辑从客户端和数据库服务器独立出来, 向开发者提供了一种创建、部署和维护大规模的w e b 系统的模块化方式,将更适合 开发复杂的w e b 系统。 与c s 模式相比,b s 模式客户端为浏览器,不需要维护,大大减轻了客户机 负荷,简化了系统维护和升级方式。而由于浏览器免费并且标准相对固定,大大 节约了开发成本。b s 模式的诸多优点,促使其更适应日益复杂的w e b 系统的需求。 1 1 2j 2 e e 的安全性 随着i n t e r n e t 的发展,业务过程、事务以及企业信息需要向更广泛的用户群公 1 沈阳理工大学硕士学位论文 开,这一变化给b s 模式下的w e b 系统的安全带来了重大影响。历史上,在安全 性方面的努力集中在建立类似一堵高墙的设施来防止来自网络的攻击。如今,复 杂的业务过程和增长的用户群正在迫使这些途径改进。 j a v a 语言作为i n t e r n e t 时代备受关注的技术之一,在w e b 系统中有重要的作用, j a v a 平台目前有三个版本,分别为适用于小型设备和智能卡的j 2 m e ( j a v a2 p l a t f o r mm i c r oe d i t i o n ) 、适用于桌面系统的j 2 s e ( j a v a2p l a t f o r ms t a n d a r de d i t i o n ) 和适用于企业级应用的j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 。j 2 e e 即j a v a 2 平台企业版,“是s u n 公司推出的多层分布式系统开发模型,提供了构件复用、一 致性的安全模型和灵活的事务控制,并且基于j 2 e e 的应用是真正平台无关的 n ,。 j 2 e e 平台为内网和外网上的w e b 系统、w e b 服务等宿主软件提供了运行环境。 在设计j 2 e e 应用软件系统结构时,非常重要的一个考虑因素是要保护公开的应用 程序及其相应的资源。j 2 e e 各层可以既有受保护的资源也有不受保护的资源。通 常,需要保护资源只有经过授权( a u t h o r i z e d ) 的用户才能访问它们。授权提供了对被 保护资源的受控的访问。授权是基于鉴定( i d e n t i f i c a t i o n ) 和认i 匠e ( a u t h e n t i c a t i o n ) 的。 认证是验证一个用户、设备或者计算机系统里的其它实体的鉴定的过程,通常作 为在系统中允许访问资源的先决条件。1 。 j 2 e e 平台定义了一些在开发人员、装配人员和配置人员之间的公开的规约。 在安全应用的上下文中,应用提供者被要求以一种能够让安全需求在应用配置中 得到满足的方式来声明这些应用的安全需求。在应用中使用的被声明的安全机制 是写在部署描述符( d e p l o y m e n td e s c r i p t o r ,d d ) 中。然后应用开发者使用容器方 面的工具将部署描述符中的应用需求映射:至q j 2 e e 服务器或者w e b 容器提供的安全 机制当中去。需要自己编写的安全( p r o g r a m m a t i cs e c u r i t y ) 是与安全意识应用产生的 安全决策有关的部分。当声明的安全不够表达应用的安全模式时,自己编写的安 全代码将发挥其作用n ,。 以上两种安全性定义为声明性安全( d e c l a r a t i v es e c u r i t y ) 和编程性安全 ( p r o g r a m m a t i cs e c u r i t y ) 。 声明性安全位于w e b 系统程序代码外部,可视为指定底层应用程序服务器内 安全资源使用的一种方法。通过将一组资源与允许访问这些资源的用户逻辑类相 关联,在部署描述符中指定声明性安全,这种关联被称为“角色( r o l e ) 。将特定 第1 章绪论 服务器机制( 例如d d 中的一个j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 名称) 映射到目标环境中的资源。声明性安全不需要开发人员编写任何安全相关的代码, 一切都是通过配置部署描述符来完成的。 编程性安全在声明性安全基础上,包括在业务逻辑中。使安全敏感的应用可以 通过调用被容器提供的a p i 来对安全做出决断。这在声明性的安全性不足以满足 企业的安全模型的情况是非常有用的。 尽管j 2 e e 支持编程性安全,但是使用它是有风险的。它往往导致代码变得缺 乏灵活性,而且易于出现错误。但是,为了实现个性化而使用编程性安全a p i 却 可以收到良好的效果。 2 2 1j 2 e e 的多层结构及问题的提出 j 2 e e 是多层网络应用程序框架,具有诸多优点。首先,它改进了传统的c s 模式,降低了客户端程序逻辑的复杂度,采用不同的方法减少数据库层访问数据 的负载,平衡整个网络的流量,减少用户访问数据库的频率瓶,。其次,j 2 e e 是一套 功能健全的开发企业级中间件的技术规范和企业应用所需的公共底层服务,所有 第三方开发的j 2 e e 应用服务器都须遵循这些标准,为基于j 2 e e 的企业应用提供 基础服务;再次,j 2 e e 也是一种编程模型,容器及服务器提供商为企业应用提供 了许多复杂的、基础的服务,使得企业应用开发人员只需专注于业务逻辑的开发, 无需进行底层复杂的编程,极大地简化了企业应用的开发。 j 2 e e 多层结构包括如下一些层次伟,: 用户层用来与用户交互,并把来自系统的信息显示给用户。j 2 e e 平台支持不 同的类型用户,包括h t m l 用户,j a v a a p p l e t s 和j a v a 应用等。 w e b 层产生表示逻辑,并接收来自客户端的用户反馈。在所接收的客户端请 求的基础上,表示层对用户的请求产生相应的回应。在j 2 e e 平台中,是由w e b 容器内的s e r v l e t 和j s p 来实现这一层的。 业务层处理应用程序的核心业务功能逻辑。业务层为低层业务逻辑提供必要的 接口。业务组件通常被实现为e j b 容器内的e j b 组件。其中,e j b 容器提供组件 生命周期,管理持久性,事务和资源分配等。业务层和w e b 层构成j 2 e e 的中间层。 e i s ( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 即企业信息系统,它包含所有的企业后端 资源,例如数据库等。 沈阳理工大学硕士学位论文 j 2 e e 规范定义组件有应用的客户组件( a p p l i c a t i o nc l i e n tc o m p o n e n t s ) 、 e n t e r p r i s ej a v a b e a n s 组件( e n t e r p r i s ej a v a b e a n sc o m p o n e n t s ) 即e j b 组件、s e r v l e t s 及j a v as e r v e rp a g e s ( j s p 页面) 组件( 也被称作w e b 组件) ( s e r v l e t sa n dj a v as e r v e r p a g e s ( j s pp a g e s ) c o m p o n e n t s ) 、a p p l e t s 。 其中e j b 是一种基于规范性的技术,规范说明了应用程序执行的各个方面,包 括数据类型,组件声明周期,角色分布等。它与j 2 e e 紧密结合,具有很好的伸缩 性,使应用系统的开发更容易。但同时e j b 组件的缺点也尤为显著:首先,e j b 是一个重量级组件,对w e b 服务器要求较高,必须有专门的e j b 服务器用以提供 e j b 容器,支持e j b 的运行;其次,对服务器硬件要求较高,而且e j b 定义了较 为复杂的e j ba p i ,使w e b 系统的设计变得困难,总体性能下降。 由于e j b 存在上述缺点,很多专家、研究机构试图开发一些轻量级、灵活的 j 2 e e 框架,来代替传统的使用e j b 的j 2 e e 框架。对开源框架的重视使得很多项 目的成本大大降低,并且投放使用以及维护速度都大幅度增加。现在的开源框架 都有很高的质量,提供了很好的文档和书籍供开发人员作为参考。即便如此,开 源领域和j 2 e e “标准”的冲突和a o p 的日益重要这两大因素使得开源框架纷繁、 杂乱,缺少统一的应用标准,j 2 e e 领域充满了不确定性。因此,开源框架的选择、 w e b 系统结构的设计及开源框架在各层的结合使用就成了设计人员首要考虑的问 题。本文将从安全和多层结构两个方面探讨基于j 2 e e 的w e b 系统结构的改进方法。 1 2 国内外研究现状 国内很多比较知名的软件企业提出的一些新开发结架、开发体系、中间件及工 具等,其基础核心仍然是国外引进的东西。比如很多软件公司开发的快速开发工 具,构件开发等,都是以s t r u t s 、s p r i n g 、h i b e r n a t e 等为基础,也就是要使用这些 工具进行开发,仍然要学习s t r u t s 、h i b e r n a t e 等。但也有很多像e a s y j f ( 简易j a v a 框架) 这样的开发团队倡导立足本土化应用需求,结合国内外先进技术构件体系, 研究适合国内技术水平现状的j 2 e e 开源应用软件技术,提供简易、实用的j 2 e e 开源产品、中间件及开发工具。 1 2 1w e b 层框架 w e b 层主要是指w e b 系统中用来和用户交互的部分。处于w e b 系统的最顶端。 第1 章绪论 s t r u t s 是a p a c h e 软件组织提供的一项开放源代码项目,它为j a v aw e b 系统提 供了模型视图控制器( m o d e l v i e w c o n t r o l l e r ,m v c ) 框架,尤其适用于开发大 型可扩展w e b 系统。s t r u t s 为w e b 系统提供了一个通用的框架,使开发人员可以 把精力集中在如何解决实际业务问题上。此外,s t r u t s 框架提供了许多可供扩展和 制定的地方,使得应用程序可以方便的扩展框架,来更好地适应用户的实际需求p ,。 w e b w o r k 是由o p e n s y m p h o n y 组织开发的,致力于组件化和代码重用的拉出 式m v c 模式j 2 e ew e b 框架。现在的w e b w o r k 2 x 前身是r i c k a r do b e r g 开发的 w e b w o r k ,但现在w e b w o r k 已经被拆分成了x w o r k l 和w e b w o r k 2 两个项目。x w o r k 简洁、灵活功能强大,它是一个标准的c o m m a n d 模式实现,并且完全从w e b 层脱 离出来。x w o r k 提供了很多核心功能:前端拦截机( i n t e r c e p t o r ) ,运行时表单属性 验证,类型转换,强大的表达式语言( o g n l 一- t h eo b j e c tg r a p hn o t a t i o nl a n g u a g e ) , i o c ( i n v e r s i o no fc o n t r o l 反转控制) 容器等。w e b w o r k 2 则建立在x w o r k 之上, 处理h t t p 的响应和请求。w e b w o r k 2 使用s e r v l e t d i s p a t c h e r 将h t t p 请求的变成 a c t i o n ( 业务层a c t i o n 类) ,s e s s i o n ( 会话) a p p l i c a t i o n ( 应用程序) 范围的映射,r e q u e s t 请求参数映射。w 曲w b 此支持多视图表示,视图部分可以使用j s p ,v e l o c i t y , f r e e m a r k e r ,j a s p e r r e p o r t s ,x m l 等。在w e b w o r k 2 2 中添加了对a j a x 的支持, 该支持是构建在d w r 与d o j o 两个框架的基础之上的。 t a p e s t r y 是一个开源的基于s e r v l e t 的应用程序框架,它使用组件对象模型来 创建动态的,交互的w e b 系统。一个组件就是任意一个带有j w e i d 属性的h t m l 标记。其中j w c 是j a v aw e bc o m p o n e n t 。t a p e s t r y 使得j a v a 代码与h t m l 完全分 离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升 级。t a p e s t r y 支持本地化,其错误报告也很详细。t a p e s t r y 主要利用j a v a b e a n 和 x m l 技术进行开发。目前最新版本为t a p e s t r y 5 ,与t a p e s t r y 4 相比较,t a p e s t r y 5 具有以下新特性:组件类不再需要继承基类;组件类不再是抽象类,而是纯粹的 简单的p o j o ( p l a i no l dj a v ao b j e c t s ) ;不再使用x m l 配置文件和组件定义文件 ( p a g e ,j w c ) ,所有的配置信息使用注释( a n n o t a t i o n s ) 实现;组件类和模板的任何改 变都可以马上反应出来,不需要任何重启;速度更快,。 j s f ( j a v as e r v e rf a c e s ) 是通过j a v ac o m m u n i t yp r o c e s s ( j c p ) 开发的一种 j a v a 标准,用于构建w e b 系统的新标准j a v a 框架。它提供了一种以组件为中心 沈阳理工大学硕士学位论文 来开发j a v a w e b 用户界面的方法,从而简化了开发。j s f 将模型视图一控制器设计 模式集成到自身系统结构当中,确保应用程序具有更高的可维护性n “。 1 2 2 业务层框架 业务层框架主要负责管理业务层的逻辑对象,包括逻辑对象对于底层的事务管 理,分布式管理,逻辑对象的生命周期管理,同时还维护逻辑对象之问的调用关 系,好的业务层框架可以使系统易于开发,测试和维护,是w e b 层与数据持久层 之间的重要桥梁。 s p r i n g 是一个轻量级j 2 e e 框架。相对s u n 的j 2 e e ,具有维护容易、分层清楚、 速度快、代码少、支持最新的o r m 技术与a o p 概念等优点1 。s p r i n g 服务于所 有层面的应用程序,有效的组织了系统中的中间层对象,消除了组件对象创建与 使用藕合紧密的问题,同时消除了使用各种各样格式的属性定制文件的需要,在 整个应用和工程中,可以通过一种一致的方法进行配置。 1 2 - 3 数据持久层框架 数据持久层框架目标是为整个项目提供一个高层、统一、安全和并发的数据持 久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。 j a v a 平台存取数据库的方法很多,如序列化、j d b c 、实体e j b 及j d o 等。 序列化是j a v a 建立的一种传输机制,它能够把对象的信息转换成一系列的字节码, 这些字节码可以被传输到网络或者存储到一个文件中。序列化的使用非常简单, 但必须立即存取对象的特征,而且不适合存取大批量的数据。在更改一个对象的 属性时如果有错误发生则无法实现“回滚 ,因此不适于应用程序对数据完整性的 要求,而且不能实现多个线程或程序异步读写数据。所有这些不足都使得序列化 无法满足大多数数据存储要求。 很多开发者使用j d b ca p i 来操作关系数据库。j d b c 克服了许多序列化中存 在的缺点。它可以操作大批量的数据,有确保数据一致性的机制,支持信息的并 发存取,可以使用已经非常成熟的s q l 语言。但j d b c 使用起来并不像序列化那 么简单。j d b c 使用的关系范例无法用于存储对象,因此不得不放弃在代码中使用 面向对象原则存储数据。 j a v a 平台的企业级应用中引入了实体e j b 。实体e j b 是一个组件,他描述了 第1 章绪论 数据库中的持久性数据信息。e j b 使用类似于对象关系映射的办法,提供了一个 持久性数据的面向对象的表示。不同于对象关系软件,e j b 对于关系数据库没有限 制;它描述的持久性信息可以来自一个企业信息系统( e i s ) 或者其他的存储设备。 而且,e j b 要求遵循一个严格标准,实现它的厂商必须遵循这个标准。然而,e j b 标准在面向对象方面有所欠缺。另外,e j b 的代码编写很复杂,而且它是一个重量 级组建需要消耗应用服务器很多的资源来运行。 j d o 集成了很多上述持久性机制的特性,这使得在j d o 中创建一个持久化类 就像创建一个序列化类一样简单。j d o 支持批量数据的存储、数据一致性、并发 处理和j d b c 的查询功能。就像对象关系映射软件和对象数据库一样,它允许使 用面向对象的高级特性比如“继承 。它避免了像e j b 中实体b e a n 一样必须依赖 于来自厂商定义的严格规范“”。同e j b 一样,j d o 也不规定任何特定的后端数据 库。然而,使用j d o 同样存在着一些限制,并且在性能优化上比较差,因此其它 持久化的方法也就应运而生。 h i b e r n a t e 是一个面向j a v a 环境的对象关系数据库映射框架,把对象模型表示 的对象映射到基于s q l 的关系模型结构中去。它对j d b c 进行了轻量级的对象封 装,使j a v a 开发人员可以随心所欲的使用对象编程思维来操纵数据库。h i b e r n a t e 不仅仅管理j a v a 类到数据库表的映射,还提供数据查询和获取数据的方法,可以 大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间u ”。 i b a t i s 是一个功能强大的,非常有用的s q l m a p 工具,不同于o r m 工具( 如 h i b e r n a t e ) ,它是将s q l 语句映射成j a v a 对象,而对于o r m 工具,它的s q l 语 句是根据映射定义生成的。相对h i b e r n a t e 等“全自动 o r m 解决方案而言,i b a t i s 是一种“半自动化的o r m 实现“”。h i b e r n a t e 对数据库结构提供了较为完整的封 装,提供了从p o j o 到数据库表的全套映射机制。开发人员往往只需定义好了 p o j o 到数据库表的映射关系,即可通过h i b e r n a t e 提供的方法完成持久层操作。 开发人员甚至不需要对s q l 的熟练掌握,h i b e r n a t e 会根据制定的存储逻辑,自动 生成对应的s q l 并调用j d b c 接口加以执行。而i b a t i s 的着力点则在于p o j o 与 s q l 之间的映射关系。i b a t i s 不会为开发入员在运行期间自动生成s q l 。具体的 s q l 需要开发人员自己编写,然后通过映射配置文件,将s q l 所需的参数,以及 返回的结果字段映射到指定p o j o 。使用i b a t i s 提供的o r m 机制,对业务逻辑实 沈阳理t 大学硕士学位论文 现人员而言,面对的是纯粹的j a v a 对象,这一点与通过h i b e r n a t e 实现o r m 而言 基本一致,而对于具体的数据操作,h i b e r n a t e 会自动生成s q l 语句,而i b a t i s 则 要求开发人员编写具体的s q l 语句。相对h i b e r n a t e 等“全自动 o r m 机制而言, i b a t i s 以s q l 开发工作量和数据库移植性上的让步,为系统设计提供了更大的自 由空间。作为“全自动 o r m 实现的一种有益补充,i b a t i s 的出现显得别具意义。 1 3 研究目的及意义 基于w e b 技术的应用,具有很大的优势和应用前景。但是由于i n t e m e t 是一个 开放的系统,本身就不安全,构建于i n t e r n e t 之上的w e b 系统面临着严重的安全威 胁。传统的j 2 e e 平台提供声明性安全和可编程性安全,采用声明性安全可以减轻 开发人员的负担,但系统的安全性能并不理想;而采用编程性安全则是以代码灵 活性为代价。另一方面,由于j 2 e e 的多层结构,且各层开源框架较多较杂,于是 选择哪些开源框架,并结合应用于w e b 系统就成了设计者首要解决的问题。 本文将设计一个安全的多层w e b 系统结构,探索信息时代如何高效开发安全 性高的企业级w e b 系统,在不增加开发人员负担的情况下增强w e b 系统的安全性。 1 4 本文的研究内容及组织结构 本文设计了一种基于j 2 e e 的安全的多层w e b 系统结构。该系统结构首先对支 撑平台进行扩展,支撑平台包括开源框架、基本类库、通用业务服务和安全类库, 为系统结构打下一个坚实的基础。然后将j 2 e e 分为视图层、控制层、服务层、持 久层和数据库,将s t r u t s ,s p r i n g 。h i b e r n a t e ,j d b c 结合使用构建一个安全的,灵 活的多层w e b 系统结构。 系统环境为w i n d o w s 2 0 0 3 企业版+ s p1 。 开发环境使用j d k l 5 0 + e c l i p s e 3 1 + m y e c l i p s e 4 1 ,数据库为s q ls e r v e r 2 0 0 0 , 服务器为a p a c h et o m c a t 5 5 2 3 。 本文首先在绪论中介绍了w e b 系统的发展、j 2 e e 的安全性及其多层结构,然 后介绍了目前j 2 e e 多层结构中的常用技术及框架。 然后着重分析各层开源框架,并在此基础上进行详细设计。 第四章给出系统结构的一个具体应用。 最后分析总结本文的主要成果及不足。 第2 章j 2 e e 系统结构分析 第2 章j 2 e e 系统结构分析 2 1j 2 e e 系统结构简介 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为不同组件,各个应 用组件根据所在的层分布在不同的机器上,这些层分别为客户层( c l i e n tt i e r ) ,w e b 层( w e bt i e r ) 、业务层( b u s i n e s sl o g i ct i e r ) 和企业信息系统层( e i st i e r ) m 1 ,如图2 1 所示。 j 2 e ej 2 e e 应用程序1应用程序2 客户层 w 曲层 业务层 客户端 机器 j 2 e e 服务器 企业信息系统层 i数据库 j 服务器 图2 1j 2 e e 系统结构 客户层:一个j 2 e e 客户层软件可以是基于w e b 的,也可以是基于应用的。 w e b 客户端由w e b 应用层的w e b 组件动态生成w e b 页面,主要是h t m l 文件和 x m l 文件。客户端用户在使用j 2 e e 服务时,无需安装多余软件,只要计算机上 装有一个w e b 浏览器即可,如m si n t e m e te x p l o r e r 、n e t s c a p e 、m o z i l l af i r e f o x 等。 基于应用程序的客户端,可以为用户展示比w e b 客户端更为丰富的人性化的图形 界面,如j a v a a w t s w i n g 开发的图形用户界面。w e b 客户端通过w e b 应用层中的 j s p s e r v l e t 进行通信,而应用程序客户端则可以跳过w e b 组件层直接访问运行在 企业组件层的e n t e r p r i s ej a v a b e a n s 。 w e b 层:w e b 层构件是在j 2 e ew e b 容器上运行的软件程序。w e b 容器主要支 圜 圜圈 沈阳理,丁大学硕士学位论文 持多层结构的表示层。它的功能是在h t t p 协议上对w e b 请求( r e q u e s t ) 进行响应 ( r e s p o n s e ) 。这些所谓响应就是动态生成的网页。用户每在浏览器上点击一个链接 或图标,就是通过w e b 向服务器发出请求。j 2 e e 平台的w e b 构件对这些请求进 行处理后回复给客户相应的h t m l 或x m l 文件。 w e b 系统组件层提供的服务主要依赖于s e r v l e t 和j s p 页面。 s e r v l e t 在w e b 系统中担任重要角色,是w e b 系统开发的基础。它完全用j a v a 语言开发,是j a v a 平台上的c g i 技术。s e r v l e t 运行于s e r v l e t 容器中,可以被s e r v l e t 容器动态加载,来扩展服务器的功能,并提供特定的服务。s e r v l e t 按照要求响应 的工作方式。当用户请求访问某个s e r v l e t 时,s e r v l e t 容器将创建一个s e r v l e t r e q u e s t 对象和s e r v l e t r e s p o n s e 对象。在s e r v l e t r e q u e s t 对象中封装了用户请求信息,然后 s e r v l e t 容器把s e r v l e t r e q u e s t 对象和s e r v l e t r e s p o n s e 对象传给用户所请求的 s e r v l e t 。s e r v l e t 把响应结果写到s e r v l e t r e s p o n s e 中,然后由s e r v l e t 容器把响应结 果传给用户n ”。 在j a v as e r v l e ta p i 中有四个比较重要的类,它们决定了w e b 系统的请求响 应方式及各种共享数据的存放地点。 h t t p s e r v l e t r e q u e s t :s e r v l e t 容器把h t t p 请求信息保存在h t t p s e r v l e t r e q u e s t 对象中,s e r v l e t 组件从r e q u e s t 对象中读取用户的请求数据。此外, h t t t p s e r v l e t r e q u e s t 可以存放r e q u e s t 范围内的共享数据。 h t t p s e r v l e t r e s p o n s e :用于生成h t t p 响应结果。 h t t p s e s s i o n :s e r v l e t 容器为每个h t t p 会话创建一个h 郇s e s s i o n 实例, h t t p s e s s i o n 可以存放s e s s i o n 范围的共享数据。 s e r l e t c o n t e x t :s e r v l e t 容器为每个w e b 系统创建一个s e r v l e c o n t e x t 实例, s e r v l e t c o n t e x t 可以存放a p p l i c a t i o n 范围的共享数据。 在传统的h t m l 文件( * h t m ,木h t m l ) 中加入j a v a 程序片断( s c r i p t l e t ) 和j s p 标签,就构成了j s p 网页。j a v a 程序片断可以操纵数据库、重新定向网页以及发 送e m a i l 等,实现建立动态网站所需的功能。所有程序操作都在服务器端执行, 网络传送给用户端的仅为输出结果。j s p 技术大大降低了对用户浏览器的需求,即 使用户浏览器端不支持j a v a ,也可以访问j s p 网页。 当j s p 容器接收到w e b 系统用户的一个j s p 文件请求时,它对j s p 文件进行 第2 章j 2 e e 系统结构分析 语法分析并生成j a v as e r v l e t 源文件,然后对其进行编译。一般情况下,s e r l e t 源 文件的生成和编译仅在初次调用j s p 时发生。如果原始的j s p 文件被更新,j s p 容 器将监测所做的更新,在执行它之前重新生成s e r v l e t 并进行编译。 尽管j s p 在本质上就是s e r v l e t ,但这两者的创建方式不一样。s e r v l e t 完全由 j a v a 程序代码构成,擅长于流程控制和事务处理,而通过s e r v l e t 来生成动态网页 很不直观;j s p 由h t m l 代码和j s p 标签构成,可以方便地编写动态网页。因此 在实际应用中,采用s e r v l e t 来控制业务流程,而采用j s p 来生成动态网页n ”。 业务层:业务层主要负责处理企业的业务流,并且将相关的业务逻辑封装在 e n t e r p r i s ej a v a b e a n s 中。这一层提供了e j b 的开发、部署和运行时管理环境。每 一个e j b 都是一个可重用的组件。e j b 结构定义了3 种e n t e r p r i s ej a v a 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 容器进 行管理,两种方式都是为了完成实体b e a n 的持久性。消息驱动b e a n 始终处于无 状态。三种类型的e n t e r p r i s ej a v a b e a n 有着不同的生命周期。业务层采用的主流服 务器有:w e b l o g i e 、t o m c a t 、j b o s s 、s u n a p p l i c a t i o ns e r v e r 、w e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市环保局工作总结及工作目标
- 资本证券市场在西部大开发中的效率对策思考
- 公司工商变更管理制度
- 公司消防档案管理制度
- 公司证件原件管理制度
- 福建省三明市第一中学2024-2025学年高一下学期6月月考语文试题(含答案)
- 电动汽车充放电与配电网协调优化调度策略研究
- 2025精密铝件采购合同
- 2025员工劳动合同协议
- 贵州省六盘水市盘州市2023−2024学年高二下册期末考试数学试卷附解析
- 国家开放大学02150-计算机网络(本)期末复习题及参考答案
- 子长市2022年农业面源污染治理项目社会稳定风险评估报告
- 广西2022年广西农村信用社(农村商业银行农村合作银行)管理人员及业务骨干招聘考试参考题库含答案详解
- 国开2023年春《理工英语3》机考网考期末复习资料参考答案
- 全国工会财务知识竞赛题库附答案
- 植物精油提取工艺技术
- 淅川县石槽沟-打磨沟钒矿矿产资源开采与生态修复方案
- GB/T 42381.61-2023数据质量第61部分:数据质量管理:过程参考模型
- 《数据结构》期末考试试题及答案
- 第四章婴儿期的心理发展
- 2023年浙江大学形势与政策题库
评论
0/150
提交评论