已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)集成spring和hibernate及jsf的多层架构的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北工业大学硕士学位论文 摘要 随着i n t e r n e t 技术和企业信息化建设的飞速发展,构建基于w e b 的应用系统 的需求越来越复杂,开发周期要求越来越短,同时对系统的稳定性、扩展性和可 维护性要求也越来越高。 s u n 公司提出了j 2 e e 设计模式,它是一个能够构建分布式企业应用系统并能 满足扩展性、性能、安全性的解决方案。框架技术与架构设计是j 2 e e 中重要的软 件重用技术,框架技术通过重用提高软件的生产效率,几乎所有框架技术都会使 用某种或多种设计。如何选择框架并设计构建一个具有可重用性、可扩展性和易 维护的w e b 应用架构成为j 2 e e 开发的首要问题。 针对以上问题,论文首先对w e b 体系结构、j 2 e e 架构和设计模式做了概要介 绍,探讨了j 2 e e 的体系结构和m v c 模式的概念思想。通过讨论可以发现:基于j 2 e e 和m v c 模式的多层体系结构为搭建具有可伸缩性、灵活性、易维护性的w e b 信息 系统提供了良好的机制。在此基础上,本文再对j s f 、s p r i n g 框架和h i b e r n a t e 技术进行了深入的分析,着重指出它们各自应用于系统不同层次的优势所在:j s f 框架技术中可重用、可扩展、基于组件的用户界面框架大大降低了基于j a v a 的w e b 应用的开发难度,提高了开发效率。s p r i n g 是一种多层的j 2 e e 应用轻量级框架, 可以动态地使系统主要组件之间的耦合变松散,是为解决企业应用程序开发复杂 性而创建的。h i b e r n a t e 是一个面向j a v a 环境的对象关系数据库映射工具。通过 h i b e r n a t e 的使用能够很好的解决对象元素和关系数据库之间不匹配问题,让开发 者解放出来专注于手中的业务逻辑。而且降低了逻辑层和数据库层之间的耦合关 系,降低了逻辑层代码的复杂性。然后根据w e b 系统开发的特点提出了一种集成 j s f 、s p r i n g 和h i b e r n a t e 的w e b 应用的架构模型,论证了这种集成架构的可行性 并将其具体应用到系统的开发中去。最后以双向信息支撑系统为例,详细论述了 多层体系架构的实现以及j s f + s p r i n g + h i b e r n a t e 集成架构在该项目中的应用, 并且,对系统实现过程中遇到的关键技术问题进行了研究和分析。实践表明,应 用这种集成架构整合提高了应用系统开发的效率,同时满足系统扩展性和可维护 性的要求。 关键词:框架,架构,j s f ,s p r i n g ,h i b e r n a t e 湖北工业大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e m e ta n de n t e r p r i s ei n f o n l l a t i o nc o n s t r u c t i o n ,t h e r e q u i r e n l e n t so fw e b b a s e da p p “c a t i o ns y s t e m sh a v eb e c o m em o r ec o m p l e x , t l l e d e v e l o p m e n tc y c l ei si n c r e a s i n 百ys h o r t 瓯s y s t e ms c a l a b i l i t ya n dm a i n t a i n a b i l i t yh a v e b e c o m e m o r es o p h i s t i c a t e d s u ns u b m i t t e di t sj 2 e ed e s i 舯p a t t 锄,i ti st ob u i l dad i s t 曲u t e de 1 1 t e r p r i s e a p p l i c a t i o na n dm e e ts c a l a b i l i t y ,p 娟r r n a n c e ,a n ds e c u r i t ys 0 1 u t i o n s f r a m e w o r k sa n d a r c h i t e c t u r ea r ev e 叫i m p o i r t a n tt e c h n o l o 西e sf o rs o m v a r ew h i c ha r er e u s e di nj 2 e e f r 锄e w o r kc a l lr a i s ep r o d u c t i v i t yo fs o r w a r eb yr e u s i n g a l m o s ta l l 仔锄e w o r l ( su s e o n eo rm o r ed e s i 舀1 s o ,h o wt oc h o o s e 仔a m e w o r k st ob u i l dar e u s a b l e ,s c a l d b b i l i wa n d m a i n t a i n i n gw r e ba r c h i t e c t l l r e ,i tb e c o m et h ep r i m a 料j 2 e ed e v e l o p m e n ti s s u e a i ma ta b o v ep r o b l e l ,t h i sp a p e rb e g i n sw i t ht h eb d e fi n t r o d u c t i o no f 、) v r e b s y s t 锄s ,j 2 e ea r c h i t e c t l j r ea n dd e s i 印p a t t e m ,w h i c hd i s c u s s i n gt h es y s t e ms t r u c t u r eo f j 2 e e a n dt h ec o n c 印t so fm v cp a t t e m t h r o u g hd i s c u s s i o n ,w eh a v ef o u n da m u l t i l a y e rt t l l s sb a s e do nj 2 e ea 1 1 dm v cp a t t e m 、地i c hp r o v i d e sag o o dm e c h a i l i s mf o r at e l e s c o p i c ,n e x i b l ea n de a s ym a i n t a i n i n gb u s i n e s ss y s t 锄t h e nt h ep a p e ra n a l y z e d j s f ,s p n g ,h i b e m a t ed e 印l y ;e r n p h a s i z e dt h e i ra d v a n t a g ei ne a c hl a y e r j s fi sa r e u s a b l e ,s c a l a b b i l i t ya n db a s e d - o nc o m p o n e n t 仔a m e w o r l ( ,i tc a n1 0 w e rt h ed e v e l o p m e n t d i 币c u l t ya n di m p r o v et h ee 历c i e n c y s p r i n gw “c hi sd e s i 印e df o rs o l v i n gm e c o m p l e x i t y 0 fd e v e l o p i n g e n t e 叩d s ea p p l i c a t i o np r o g r a m i sam u l t i t i e rj 2 e e l i g h t w e i g h t 劬m e w o r k l i 曲铆e i 曲tc o n t a i n e ri sd e s i 印e dw i t hd 印e n d e n c yi n j e c t i o n a j l dc a nm a k em a i nc o m p o n e n tl o o s ec o u p l i n gd y n a m i c a l l y h i b e n l a t ei sa no 瓜 m a p p i n gt o o lf o rj a v ae n v i r o n m e n t i tn o to n l ys 0 1 v e su n l n a t c h e dr e l a t i o nb e t w e e i l o b j e c te l e m e n t sa n dr e l a t i o nd a t a b a s e ,m a k e sd e v e l o p e rf o c u so nt h eb u s i n e s s1 0 9 i c p r o b l e m s ,b u ta l s or e d u c e st h ec o m p l e x i t yo fl o 百cl a y e r a c c o r d i n gt ot h ep o i n to fw 曲 a p p l i c a t j o ns y s t e m ,s u b m i t t i n gj s hm u l t i 舶m e da r c h i t e c h t u r e ,a n dd e m o n s t r a t et h e m u l t i - 仔帅e da r c h i t e c h t l l r e sf e a s i b i l i t y ,t h e nd i s c u s s e sa b o u th o wt op u tm u l t i l a y e :r 卸c h i t e c t u r ei n t op r a c t i c e f i n a l l y ,t h r o u 曲a p p l y i n gm i sn e wa r c h i t e c t l l r ei n t oj o i n tc o m m u n i c a t i o ns u p p o r t s y s t e ms u c c e s s 如l l y ;t h i sa r t i c l ed e s c r i b eh o wt od e s i g nt h es y s t e mu s i n gj s f 、s p n n g a 1 1 dh i b e m a t e仔锄e w o r l (i n d e t a i l , a n d t h e n , r e s e a l c ha n da n a l v z et h ec d t i c a l t e c h n o l o g ye n c o u b t e r e di n t h ei m p l e m e n to fm es y s t e m t h er e s u l ts h o w sj s h a r c h i t e c t u r eh a st h ec h a r a c t 甜s t i c so f h i g he 衔c i e i l c y ,e x p a n s i b i l i t ya i l dm a i n t a i n a b i l i t y k e y w o r d s :f r a m e w o r k , a r c h i t e c t u r e ,j s f , s p r i n g , h i b e r n a t e i l 溯班j 董大謦 学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取 得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经 发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均己在文中以明确方 式标明。本声明的法律结果由本人承担。 学位论文作者签名:梅尚 日期:弘哪年,月岁口日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授 权湖北工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存和汇编本学位论文。 学位论文作者签名:辅尚 日期:歹们彦年夕月;p 日 指导教獬:槲幻 日期:加释厂1 月j l o 日 湖北工业大学硕士学位论文 1 1 研究的背景 第1 章概论 当今时代是科技日新月异的年代,随着科学技术的迅速发展,计算机和网络技术日 益成熟,互联网日益成为政府、企业、个人之间进行信息交流不可缺少的工具。社会的 各个领域都在努力利用现有技术建立网络化的应用体系,进而实现信息交互和资源共 享。就现代企业而言,建立一个基于i n t e r n e t i n t r a n e t 的灵活的、易于扩展和维护的 企业信息系统,是企业适应瞬息万变的市场环境,促进自身发展壮大的必然选择。 目前很多应用系统是建立在w e b 基础上,建立依托w e b 的企业应用平台已经成为目 前大部分企业应用的首要选择,b s 框架成为目前主流的企业应用系统的开发体系,基 于b s 结构的w e b 应用程序也成为i n t e r n e t 上使用最为广泛的应用开发技术,因其具 有可重用性高,可维护性好,可扩展性强,而且分布式组件技术尤其适用于网络应用等 优点而迅速发展,它支持实时的信息发布,动态的用户交互及与后台系统灵活安全的连 接幢1 。因此构造功能更加强大、应用更为灵活的、开发更为简便的w e b 应用程序成为当 前i n t e r n e t 技术发展的热点。 1 2 技术应用现状 目前,j 2 e e 平台的成熟,为w e b 应用程序更进一步的发展提供了更广阔的空间。目 前,大部分用过程语言比如a s p ,p h p 开发出来的w e b 应用,初始的开发模板就是混合 层的数据编程,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体 现出业务模型的样子或者模型的重要性口1 。产品设计弹性力度很小,很难满足用户的变 化性需求,与这些传统的开发方法相比,j 2 e e 是一种企业级的应用,有着严格的规范, 更能够胜任迅速丌发一个灵活而又功能强大的w e b 信息系统h 。5 3 。 即使利用最先进的软件平台j 2 e e ,开发功能强大、应用灵活、开发简便的w e b 应用 程序仍然是个难题。在多层w e b 体系结构的设计中,普遍存在着程序可重用程度低、维 护工作繁琐、应变能力较弱等不足。同时,多层w e b 应用软件需要面对复杂的网络环境、 多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次、角色 分工等问题,在业务和技术上也是复杂多变的。 因此,在基于组件的j 2 e e 平台充分内置了灵活性的情况下,如何组织应用程序以 湖北工业大学硕士学位论文 实现简单高效的应用程序升级、维护和扩展,以及如何让不懂程序代码的人员避开程序 数据,成为我们首先要解决的问题。而且,我们还要充分考虑到多层结构的特殊性:各 层之间需要密切配合才能完成最终功能又要在实际开发中尽可能的使各层的开发相对 独立,减少各层之间的耦合程度,避免开发人员相互制约。设计模式使人们可以更加简 单方便的复用成功的设计和体系结构,为开发者提供好的设计经验。其中m v c 模式是一 种目前广泛流行的软件设计模式,随着j 2 e e 的成熟,它j 下成为j 2 e e 平台上推荐的一种 设计模型,将业务处理与显示分离,将应用分为模型、视图以及控制层,增加了应用的 可扩展性睁引。 当前,j 2 e e 多层架构上已经开发出了很多框架,如遵循m v c 设计模式的j s f 框架给 代码复用带来了大的进步。近几年出现的新框架技术s p r i n g 是符合j 2 e e 规范的应用程 序框架,更确切地说它是针对b e a n 的生命周期进行管理的轻量级容器。丌发者可以使 用s p r i n g 来避免使用重量级容器丌发e j b 时的缺点。应用于数据持久层的h i b e r n a t e 0 rm a p p i n g 技术封装了对数据库的访问,为开发者提供足够简单的完备接口,而不必 考虑数据库存储代码。这些框架的使用不但减轻了编程人员的工作量,而且提高了系统 的性能,增强了系统的灵活性和可移植性。 在如此的应用现状下,我们需要一种能够融合m v c 框架、s p r i n g 轻量级容器和利用 0 r m 技术实现数据库持久化层框架的诞生,本文通过j s f + s p r i n g + h i b e r n a t e 三种框架, 结合他们的优点,提出一种新的j s h 应用框架。但它们目前在国内外还处于试用和摸索 阶段,还有许多问题有待解决。 1 3 课题研究内容与特点 1 3 1 课题研究的内容 针对目前软件项目开发中出现的一些缺陷,诸如开发效率低,重复开发低级组件、 性能差等问题,特别是考虑到系统以后的维护和升级问题,简单的技术架构丌发出的系 统远远不能满足客户的需求,为此采用了j 2 e e 作为企业软件的应用平台,并结合j s f 、 s p r i n g 、h i b e r n a t e 等架构,通过这些架构整合起来可以得到一个迅速丌发高度可维护 性、可重用性、可扩展性和安全性的应用系统的完整解决方案。概括起来,研究的主要 内容包括以下几个方面: ( 1 ) 通过对j 2 e e 多层企业应用体系结构和j 2 e e 组件技术的研究,结合m v c 设计 模式,给出多层分布式应用框架,该框架实现了更加明确的系统层次,使各层之间具有 相对的独立性。提高了程序的开发效率和代码的可复用性。为实现高效、灵活的多层w e b 2 湖北工业大学硕士学位论文 体系结构的应用提供一种新的思路及解决方案。 ( 2 ) 根据j s f 、s p r i n g 和h i b e r n a t e 的国内外研究现状的文献,分析了j s f 集成 s p r i n g 的可行性,对j s f 、s p r i n g 、h i b e r n a t e 框架技术进行了较为深入的探讨,提出 了集成三个框架的多层架构模型,并将其实现。 ( 3 ) 将基于j s f + s p r i n g + h i b e r n a t e 整合技术的j 2 e e 应用的解决方案应用到信息 支撑系统中,给予详细实现,验证了总体设计。 1 3 2 课题的特点 本课题有以下几个方面的特点: ( 1 ) 针对项目需求,分析了当前流行的框架j s f 的优势,并对框架:j s f 、s p r i n g 、 h i b e r n a t e 进行再包装,使其形成一个符合项目需求,具有一定集成度的多层架构。 ( 2 ) 针对项目本身的特点,对某一方面进行一定的分析和研究,延伸出新的特性, 减少开发过程中各层之间整合所需的工作量。比如在整合j s f 与s p r i n g 、以及s p r i n g 与h i b e r n a t e 的设计中实现框架之间的解耦。 ( 3 ) 采用先进的设计工具和开发平台,进行大型w e b 应用分析、设计、开发、部 署的成功实践。 1 4 论文的结构和组织 论文结构安排如下: 第一章:概论。介绍论文的研究背景、技术应用现状、研究目的和意义、以及作者 的工作。 第二章:相关技术概述。这一章对j 2 髓多层企业应用体系结构和j 2 e e 组件技术以 及m v c 模式、持久化技术进行研究分析,阐述了多层结构的优越性,为下一章引入j s f 、 s p r in g 、h i b e r n a t e 框架作铺垫。 第三章:多层架构技术的设计和实现。这一章对分别对表示层框架j s f 、业务逻辑 层框架s p r i n g 和数据持久层框架h i b e r n a t e 进行深入研究,在此基础上提出表现层使 用j s f ,业务层使用s p r i n g ,持久层使用h i b e r n a t e 的多架构整合方案。并给出各层的 详细设计与具体实现。 第四章:基于多层架构的双向信息支撑系统。在对系统进行需求分析的基础上,结 合上章提出的架构整合理论对系统中网络支撑服务前移模块的部分应用,从对象的持久 化,业务对象的管理,以及表现层的实现这三个方面详细说明整个研究过程。然后对该 系统涉及的关键技术等问题进行了详细论述。 湖北工业大学硕士学位论文 第五章:总结与展望。对本文的工作进行总结,并对今后的研究工作进行展望。 4 湖北工业大学硕士学位论文 第2 章相关技术概述 2 1j 2 e e 体系结构概述 j a v a 程序设计语言以及j a v a 平台技术自1 9 9 5 年问世以来在信息技术发展中扮演着 越来越重要的角色。j a v a 之所以能够发展得如此快速,取决于互联网发展的迅速。j a v a 可以和浏览器结合在一起,因而很自然地在桌面系统得到广泛应用。从计算的结构来看, j a v a 主要分三大类:第一类是适用于创建服务器应用程序和服务的j a v a 2 平台企业版, 即j 2 e e ;第二类是适用于桌面系统的j a v a 2 平台标准版桌面即j 2 s e 标准版;第三类就 是适用于掌上电脑、移动设备等小型设备的j a v a 2 平台m i c r o 版,即j 2 m em i c r o 版。 j 2 e e 是j a v a 2 平台的企业级版本( j a v a 2p 1 a t f o r me n t e r p r i s ee d i t i o n ) ,是由 s u n 公司于1 9 9 7 年提出的一个构造企业级应用的平台,是一种开放的工业标准,它提供 了一个多层次的分布式应用模型和一系列开发技术规范。目前已经得到了3 0 多个厂商 的支持并且提出了各自的产品。因为提供商己经继承了j a v a 虚拟机j v m ( j a v av i r t u a l m a c h i n e ) ,它在操作系统之上为应用提供了一个通用的运行环境,这使得j 2 e e 支持跨 平台的丌发,真正实现了j a v a 平台的“w r i t eo n c e ,r u na n y w h e r e 的准则1 。 j 2 e e 平台提供了一个多层分布式应用程序模型,这意味着应用程序的各个不同的部 分能够运行在不同的设备上。s u n 设计j 2 e e 的初衷正是为了解决传统两层模式 ( c 1 i e n t s e r v e r ) 的弊端。主要是客户端担当了过多的角色而显得臃肿、程序在第一 次部署的时候比较容易却难于升级或改进、可伸展性不理想、重用业务逻辑和界面逻辑 非常困难等问题。多层结构的设计极大地简化了开发、配置和维护企业应用的过程,它 最大的优点就在于将企业的业务逻辑同系统服务和用户接口分开,并且提供了一系列的 底层服务,如事务管理、缓冲池、安全保障等,使得开发者能够将精力集中于企业的业 务逻辑,而无须过多地关心与业务逻辑不太相干的系统环境等阳1 。 j 2 e e 提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应 用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组 件在分布式服务器的组件容器中运行( 如s e r v l e t 组件在s e r v l e t 容器上运行,e j b 组 件在e j b 容器上运行) ,容器问通过相关的协议进行通讯,实现组件间的相互调用。遵 从这个规范的丌发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速u 训。 j 2 e e 规范定义了以下四个层次,典型的j 2 e e 四层结构如图2 1 所示: 5 湖北工业大学硕士学位论文 j 2 e ej 2 e e a p p i i c 越i o n la 刚i c a d o n 2 圈圈习 l 三三lf 三三习习日。 【竺竺 j【 竺:竺j 二i 二j 沁 图2 1j 2 e e 四层模型 ( 1 ) 客户层( c 1 i e n tt i e r ) 客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些客户端程序也 可实现业务逻辑。可分为基于w e b 的和非基于w e b 的客户端两种情况。基于w e b 的情况 下主要作为企业w e b 服务器的浏览器。非基于w e b 的客户层则是独立的应用程序,可以 完成瘦客户机无法完成的任务。 ( 2 ) w e b 层( w e bt i e r ) 为企业提供w e b 服务。包括企业信息发布等。w e b 层由w e b 组件组成。j 2 e ew e b 组 件包括j s p 页面和s e r v l e t s 。w e b 层也可以包括一些j a v a b e a n s 。w e b 层主要用来处理 客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。2 。 ( 3 ) 业务逻辑层( b u s i n e s st i e r ) 业务层也叫e j b 层或应用层,它由e j b 服务器和e j b 组件组成。一般情况下许多开 发商把w e b 服务器和e j b 服务器产品结合在一起发布,称为应用服务器。e j b 层用来实 现企业级信息系统的业务逻辑。这是企业级应用的核心,由运行在业务层中的e j b 来处 理。一个b e a n 从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。 同样,一个b e a n 也可以从企业信息系统取出数据,发送到客户端程序。业务层中的e j b 要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程 安全管理、资源池等n 引。 ( 4 ) 企业信息系统层( e n t e r p r i s ei n f o 姗a t i o ns y s t e m ) 处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。j 2 e e 将来 的版本支持连接架构( c o n n e c t o ra r c h i t e c t u r e ) 。它是连接j 2 e e 平台和企业信息系统 层的标准a p i 。 6 湖北工业大学硕士学位论文 上述的四层逻辑结构通常是分布在三层物理结构中的,其中客户层运行在客户机上 面,w e b 层和业务逻辑层运行在j 2 e e 服务器上面,企业信息系统层则运行在e i s 服务器 上,因此j 2 e e 应用一般是指三层应用。这三层应用系统通过在客户端程序和后台存储 层之间提供一个多线程的应用服务器的方式,扩展了原来的标准的两层应用系统n 钔。 为实现企业级分布式应用,j 2 e e 定义了丰富的技术标准,符合这些标准的开发工具 和a p i 为开发企业级应用提供支持。这些技术涵盖数据库访问、分布式通信、安全等。 为分布式应用提供多方面的支持n 硼 ( 1 ) 组件技术 j 2 e e 的核心思想是基于组件容器的应用。每个组件提供了方法、属性、事件的接 口。组件可以由多种语言开发。组件是可以重用的、共享的、分布的。 ( 2 ) s e r v l e t s 和j s p s e r v l e t s 用来生成动态页面或接收用户请求产生相应操作( 调用e j b ) 。j s p 基于文 本,通过容器产生相应的s e r v l e t s ,使内容和显示分开。j 2 e e 中提供了s e r v l e ta p i , 用于创建s e r v l e t s 。 ( 3 ) e j b 技术 j 2 e e 技术中最重要也是最核心的技术就是e j b 。它提供了一个框架来开发和实施分 布式商务逻辑,简化了具有可伸缩性和高度复杂的企业级应用的开发。e j b 规范定义了 e j b 组件在何时如何与它们的容器进行交互作用,容器负责提供公用的服务,例如目录 服务、事务管理、安全性、资源缓冲池以及容错性等。但是e j b 并不是实现j 2 e e 的唯 一途径,正是由于j 2 e e 的开放性,使得有的厂商能够以一种和e j b 平行的方式来达到 同样的目的n 6 1 7 l 。 ( 4 ) 数据库访问 无论是传统的企业信息系统还是将来的企业信息系统,数据库都占有重要的地位。 开发分布式系统要求数据库访问具有良好的灵活性和扩展性。j d b c ( j a v ad a t a b a s e c o n n e c t i v i t y ) 是一个独立于特定的数据库管理系统的开发接口。它提供一个通用的访 问s q l 数据库和存储结构的机制,支持基本s q l 功能的一个通用底层的应用程序编程接 口。它在不同的数据库界面上提供了一个统一的用户界面。提供了多种多样的数据库连 接方式。j 2 e e 中提供了j d b ca p i 使多种数据库操作简单、可行n 剐。 ( 5 ) 分布式通信技术 分布式通信技术是分布式企业系统的核心技术。j 2 e e 框架为w e b 应用和e j b 应用提 供多种通信模式。 为了使运行于某一机器上的对象调用另一台机器的对象,j 2 e e 实现了如下通信方 7 湖北工业大学硕士学位论文 式: j a v ar m i ( r e m o t em e t h o di n v o k e ) :远程方法调用。j a v ar m i 实现j a v a 对象间的 远程通信。服务器用注册器把一个名字和远程对象绑在一起,客户机通过名字从服务器 注册器上查找远程对象,找到后下载远程对象的本地代理,调用远程对象的方法。 j a v ai d l ( j a v ai n t e r f a c ed e f i l a t i o nl a n g u a g e ) :接口定义语言。可以实现j a v a 对象的符合c o r b a 规范的远程对象通信。 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 ) :j a v a 命名和目录接口。j n d i 为 分布式系统访问远程对象提供了一个标准的命名接口。e j b 主接口对象、数据源、消息 服务器等都可以用j d n i 树的形式注册到名称服务器中,调用它们的对象通过符合j d n i 的程序接口在j n d l 名称服务器中查找指定名称的远程对象。 j m s ( j a v am e s s a g es e r v i c e ) :j a v a 消息服务。为开发消息中间件应用程序定义了 一套规范。j a v a 客户端和j a v a 中间层访问消息系统只要实现j m s 定义的简单的接口, 就可以实现复杂的应用,而不必去关注低级的技术细节9 j 。 2 2m v c 模式 m v c 最初是在2 0 世纪7 0 年代的x e r o x ( 施乐) p a l oa l t or e s e a r c hc e n t e r ( p a r c , p a l oa l t o 研究中心) 中被开发出来的。它是最先被用来在第一代基于视窗的计算机上 管理g u i 和用户交互。m v c 设计模式可以分离数据访问和数据表现,可以开发一个具有 伸缩性的、便于扩展的控制器来维护整个流程的优势,成为j 2 e e 平台的首选。在j 2 e e 企 业应用开发中,采用m v c 设计模式,能简化开发的过程,加快开发速度,提高软件的性 能和可维护性乜0 。2 1 l 。 m v c 主要由三部分组成:模型( m o d e l ) ,视图( v i e w ) 和控制器( c o n t r 0 1 1 e r ) 。三 者之间的关系如图2 2 所示: 湖北工业大学硕士学位论文 图2 2m v c 设计模式 模型( m o d e l ) :模型表示企业数据和业务规则。在m v c 的三个部件中,模型拥有最 多的处理任务。例如它可能用象e j b s 和c 0 1 d f u s i o nc o m p o n e n t s 这样的构件对象来处 理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能 为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以 减少了代码的重复性乜2 吃驯。 视图( v i e w ) :视图是用户看到并与之交互的界面。对老式的w e b 应用程序来说, 视图就是由h t m l 元素组成的界面,在新式的w e b 应用程序中,h t m l 依旧在视图中扮演 着重要的角色,但一些新的技术已层出不穷,它们包括m a c r o m e d i af 1 a s h 和像x h t m l , ) ( m l x s l ,w m l 等一些标识语言和w e b 服务。如何处理应用程序的界面变得越来越有挑战 性。m v c 一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有 真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只 是作为一种输出数据并允许用户操纵的方式。 控制器( c o n t r 0 1 1 e r ) :控制器接受用户的输入并调用模型和视图去完成用户的需 求。所以当单击w e b 页面中的超链接和发送h t m l 表单时,控制器本身不输出任何东西 和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个 视图来显示模型处理返回的数据。现在我们总结m v c 的处理过程,首先控制器接收用户 的请求,并决定应该调用哪个模型来进行处理,然后模型调用业务逻辑来处理用户的请 求并返回数据,最后控制器调用相应的视图格式化模型返回的数据,并通过表示层呈现 给用户幽3 。 9 湖北工业大学硕士学位论文 2 3o r m 技术和持久层 2 3 10 r m 技术 0 r m ( o b j e c t r e l a t i o n a lm a p p i n g ,对象关系映射) 是这样一种操作:它试图将j a v a 对象的状态映射到关系型数据库的数据上,以便于提供透明的持久化操作。o r 映射具 有自我存储到关系数据库的能力,对对象的改变能够直接得以存储,而不考虑数据库存 取代码。这样,把全部精力集中到对对象和类进行编程,解决业务问题。通过o r 映射, 可以回避对象模式和关系模式的不同,使得用户透明地将对象模式转成关系模式,业务 层不需要了解对象的实际物理存储结构,只需要知道对象外界提供的接口,这样同时减 少了由于对象的内部细节暴露而带来的数据的不安全。而且一定程度上隔离数据管理系 统对面向对象模型的全部影响。本质上来讲,o r 映射的作用就是向业务层隐藏关系数 据库的存在,它的主要功能是负责将应用系统中的对象在选定的数据管理系统中存储, 并将存储结果恢复到应用系统乜引。o r 映射的最大作用是让程序员能够完全用面向对象 的思维来分析和设计系统,让系统能够支持多种不同的数据库平台。 根据抽象对象与关系数据库的特性,o rm a p p in g 在以下几个方面实现: ( 1 ) 类属性到数据表列的映射:在实现时类属性和表列可以不一一对应。一个类 属性可对应零或多个实体表的字段。比如,程序开发过程中作为保存的中间结果,或是 表明类在某一运行时刻的状态就不需要保存在数据库中。 ( 2 ) 类到数据表的映射:不同层次的父类和子类映射到数据表时,应该根据实际 的系统设计结果,从以下几点权衡采用怎样的映射策略:实现难度、数据访问难易度、 对象与数据库耦合度、数据访问速度、数据库字段冗余度以及多态性支持程度。可以采 用的映射策略主要分为以下三种:一个类层次( 父类和子类) 对应一个数据表;一 个实体类( 只有子类) 对应一个数据表;一个类对应一个数据表。 ( 3 ) 类间关系映射为键值,这是映射的关键,主要是体现类关系中的关联和聚合, 在业务逻辑中以编码的方式实现其他的关系。一对一、一对多的关联是通过在关联的某 一方引用对方的i d ,并视关系的紧密程度为外键的字段加上非空以及唯一性的约束。在 生成相关联的类实例时,可根据外键自动获取另一方的实例。多对多的关联需要创建关 联表,或划分成一对多或多对一。聚合关系中的子类对应的数据表中含有指明父类的i d 的域。特别是强制型聚合,子类必须与父类同时存在、同时消亡。数据库键值本身只是 这一关系的体现。 在了解了上述0 r m 的相关定义和方式后,我们可以看出o r m 的优势有以下几点: ( 1 ) 简化代码,减少b u g 数量。通过建立o r m 系统,能够大量减少程序开发代码, l o 湖北工业大学硕士学位论文 实现0 r m 后,开发数据层就比较简单,大大减少了出错机会。 ( 2 ) 提高开发效率,降低开发成本。在实际的开发中,真正对客户有价值的是其 独特的业务功能,而现在的状态是我们花费了大量的时间在编写数据访问,以及数据处 理上。这就是说,我们在实际的丌发中很多的时间都被浪费在根本不创造价值的非业务 事件上了。在使用o r m 之后,我们将不需要再浪费太多的时间在s q l 语句上。0 r m 框架 已经把数据库转变成了我们熟悉的对象,我们将只需要了解面向对象开发就可以实现数 据库应用程序的开发。 ( 3 ) 提高性能。同时通过c a c h e 的实现,能够对性能进行调优,实现了0 r m 隔离 了实际数据存储和业务层之间的关系,能够对每一层进行单独跟踪,增加了性能优化的 可能。 ( 4 ) 隔离数据源,可以方便的转换数据库。利用o r m 可以将业务层与数据层隔开, 开发人员不需要关心实际存储的方式,如果我们需要把s q ls e r v e r 数据库换成0 r a c l e 数据库,只需要修改配置文件就可,不需要修改程序。 2 3 2 面向对象应用程序的持久层 在企业级应用开发中,面向对象的开发方式非常普遍,目前各种用于数据库应用程 序开发的系统和工具都提供了强大的支持面向对象开发的功能,使应用程序丌发人员使 用各种功能和数据库调用构件就可以快速地创建出不同类型数据库应用程序,这大大促 进了数据库应用程序的开发。但是在各种不同的数据库应用程序开发工具中,所提供的 数据库调用构件存在着较大的差异,选用不当将严重影响所开发系统的效率;其次当数 据表的结构发生变化时,必须修改与其有关的所有构件的属性,使应用程序和数据库中 的数据紧密耦合在一起,结果大大影响了数据库应用程序的可维护性和可移植性,对于 规模庞大、业务复杂、变化频繁的数据库应用系统,这种情况尤为突出。这主要是由于 关系数据库系统和面向对象技术之间的不完全匹配所造成的,在关系数据库中数据是以 关系( 表) 的形式存在的,而对象是由数据和行为所组成的,所以丌发人员要花费大量 的时间和精力来避免这两者之间的不匹配、以实现对象持久化,为此,人们提出了通过 建立对象持久层的方法来实现关系数据库和面向对象之间的映射,使应用程序与数据库 中的数据相隔离啪1 。被业界公认的j 2 e e 三层应用也因此被扩展为四层( 表现层、业务 逻辑层、数据持久层、和数据库层) ,即在业务逻辑层和数据库层之间引入持久层。扩 展以后的软件结构如图2 3 所示: 湖北工业大学硕士学位论文 表现层 上 l 业务逻辑层 图2 3 分离出的持久化层 持久层连接着数据资源层和业务逻辑层,隔离业务逻辑与数据库,起着承上启下的 作用。它封装了与数据库交互的底层细节,当应用程序需要与数据库交互时,只需要给 对象发送相应的消息就可以了,无需关心如何连接具体的数据库系统、如何实现数据的 读取和保存、如何实现对象的属性和数据字段之间的映射等持久性对象的实现细节问 题。例如发送保存对象的消息0 b j e c t s a v e ( ) ,就可把持久对象0 b j e c t 的数据保存到数 据库中。这样,应用程序开发人员即可以使用和管理面向对象的数据,又不必关心数据 存储的底层实现细节。持久层实现的另一个主要功能是封装变化,它允许数据库管理员 移动数据表、重命名表、重命名表的属性及重组表,这时通过修改0 rm a p p i n g 的关系 就可保持持久对象的独立性,从而使应用程序远离了数据库变更所带来的影响,即实现 应用程序与数据库的松散耦合,保持了应用程序的独立性。 总的来说引入持久层具有以下优点: ( 1 ) 系统层次更加明确,功能进一步细化。有利于提高程序的开发效率,降低系 统的维护成本。 ( 2 ) 代码的可重用性进一步提高。在采用相关技术进行对象的持久化操作以后, 可以实现对各种不同数据库的访问操作,而不需要大量修改代码。如果需要的话,还能 够同时支持多种数据库平台,便于代码的移植。 ( 3 ) 具有相对独立性。持久化层与业务逻辑层是相对独立的,当持久化层发生改 变的时候,不会影响到上层的实现。 2 4 本章小结 本章主要介绍了j 2 e e 体系结构以及适用于此结构的m v c 模式,并且对o r m 技术和 1 2 湖北工业大学硕士学位论文 持久层的概念也进行了介绍,为下一步多层架构的设计做了必要的前导说明。 湖北工业大学硕士学位论文 第3 章多层架构技术的设计和实现 3 1 j s f 框架技术 3 1 1j s f 框架简介及对m v c 设计模式的实现 j s f 是一个基于j a v a 的“w e b 应用框架”。侧重于用户界面的创建与管理。j a v a s e r v l e t 是j s f 的基础,它定义了如何用服务器端组件( s e r v l e t ) 来封装和实现w e b 应用 程序;j a v as e r v e rp a g e s ( j s p ) 在s e r v l e t 基础上提供了页面模版创建文本内容( 如h t m l )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大连工业大学艺术与信息工程学院教师招聘考试参考题库及答案解析
- 2026年北京林业大学教师招聘考试参考试题及答案解析
- 骨料厂安全培训内容
- 2026河北衡水市医疗保障局公开选聘医疗保障基金社会监督员12名农业考试备考题库及答案解析
- 2026年河北工程大学科信学院教师招聘考试备考题库及答案解析
- 2026年山西老区职业技术学院教师招聘考试备考试题及答案解析
- 2026年广东警官学院教师招聘考试参考题库及答案解析
- 2026年丽江文化旅游学院教师招聘考试备考试题及答案解析
- 2026年肇庆学院教师招聘考试参考题库及答案解析
- 2026年零担物流管理方案
- 《相等城堡》教案-2025-2026学年北师大版(新教材)小学数学三年级下册
- 2026年军需保管员押题宝典题库附参考答案详解【典型题】
- 2026浙江嘉兴市铁路与轨道交通投资集团有限责任公司选聘所属企业领导人员4人笔试模拟试题及答案解析
- 西南医科大学2026年公开招聘编制外工作人员(29人)考试备考试题及答案解析
- 纪检监察建议工作制度
- 普通高中学生心理危机干预工作指南(试行)
- 麦可思2025年中国大学生就业报告(完全详细版)
- 食品生产内审制度
- thinkcell培训教学课件
- 美图秀秀培训课件及教案
- 景区售票处培训课件
评论
0/150
提交评论