(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf_第1页
(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf_第2页
(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf_第3页
(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf_第4页
(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(计算机软件与理论专业论文)基于xml和j2ee的web应用解决方案的研究.pdf.pdf 免费下载

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

文档简介

太原理工大学硕十研究生学位论文 基于x m l 和j 2 e e 的w e b 应用解决方案的研究 摘要 随着网络技术的发展,w e b 应用软件已成为各类大型开发项目的首 要选择。而当前w e b 应用软件的开发并没有一种成熟、快速的开发架构 和解决方案。本文所做的工作就是对这种架构和解决方案的探索和研 究。当前j 2 e e 技术以其良好的跨平台性、较高的可重构性和安全性在 大型应用中得到了广泛的应用。而x m l 技术是当前炙手可热的技术,它 以其良好的数据描述功能和可扩展性成为各种开发平台的一致选择。 本文重点对开源项目s t r u t s 和h i b e r n a t e 的结合使用、组件的构建模式 和x m l 技术的应用进行了分析和研究,提出了基于列l 和j 2 e e 技术构建 w e b 应用的有效解决方案,并将其应用于山西省首批电子政务试点工程 一山西省科技厅电子政务系统。 本文主要从以下方面展开论述。 首先对框架的复用进行了探讨。“复用”是现代软件设计的主题, 也是现代软件设计理论所要解决的主要问题。本文从软件开发的基本 理论出发,针对当前软件开发所面临的主要问题,提出了s t r u t s + h i b e r n a t e 的可复用框架。s t r u t s 是j 2 e e 的一种成熟的m v c 框架,它通 过框架“迫使”开发人员按照m v c 模式进行开发和设计。h i b e r n a t e 是 成熟的并得到广泛使用的o r m ( 对象关系映射) 软件,它使得开发人员 更进一步用面向对象的思想来观察自己的系统。这两个框架的结合使 用使得开发人员的“开发环境”完全是一个对象的环境。在这两个软 件结合使用中,我们又加入了一个d a o ( 数据访问对象) 层,通过这个层 1 太原理工大学硕士研究生学位论文 来分离底层数据细节和上层商务逻辑。 其次,针对于b s 应用客户端表现不足的问题,本文提出了使用增 强客户端功能等技术来解决。在增强客户端功能上主要采用异步提交 技术来完成,这种技术结合了x 肌技术,可以使b s 应用能得n c s 应用 的良好效果。我们提出的b s 和c s 相结合使用的方法也是基于这种原 理来完成的。 总之,论文就是从框架、客户端表现功能这几方面展开研究,力 求通过在这些方面的突破,找到一种w e b 应用的成熟和有效的整体解决 方案。 一 本文所论述的内容已经应用到了山西省科技厅电子政务系统中, 论文相关结论也都在其中得到了验证。本文最后部分以这个系统为实 例,叙述了系统的实施过程。从中可以看出论文中提出的解决方案的 合理性和可推广性。 关键词:解决方案、x m l 、j 2 e e 、a j a x i i 太原理工大学硕士研究生学位论文 r e s e a r c h o nt h es o l u t i o no f 、e ba p p l i c a t i o n b a s e do nx m la n dj 2 e 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 fn e t w o r kt e c h n o l o g ya n do u rc o u n t r yl e g a l p r o m o t i o no f p r o c e s s ,w e ba p p l i c a t i o nh a sa l r e a d yb e c o m ea f i r s tc h o i c eo f a l lk i n d so fl a r g e - s c a l ep r o j e c t s b u tt o d a yw h e nw ed e v e l o ps o , w a r eo f w e ba p p l i c a t i o n , w ew i l l f i n dt h e r ei sn om a t u r eq u i c kd e v e l o p m e n t f r a m e w o r ka n ds o l u t i o n i nt h i sa r t i c l ew ea t t e m p tt or e s e a r c hak i n do f f r a m e w o r ka n ds o l u t i o n b e c a u s eo fo u t s t a n d i n gp e r f o r m a n c ea tc r o s s p l a t f o r ma n ds e c u r i t y , j 2 e eh a sb e e nu s e di nt h ef i e l d so fl a r g e s c a l e p r o j e c t sw i d e l y x m lt e c h n o l o g yi sah o t s p o to ft o d a y , i ti s s e l e c t e d b e c a u s ei tc a nd e s c r i b ed a t aa c c u r a t e l ya n dc a r lb ee x p a n d e de a s i l y t h e f o c u so ft h i sa r t i c l ei st h es t u d i e so fo p e ns o u r c ep r o j e c ts t r u t sa n d h i b e m a t ef r a m e w o r ka n dt h em e t h o do fc r e a t e c o m p o n e n t sa n dx m l t e c h n o l o g y , a n db r i n gu pas o l m i o no fd e v e l o pw e ba p p l i c a t i o ns o f t w a r e b a s e do nj 2 e ea n dx m l a n dt h i ss o l u t i o nh a sb e e na p p l i e di nt h e e g o v e r n m e n ts y s t e m o fs h a n x i p r o v i n c e s c i e n c ea n d t e c h n o l o g y d e p a r t m e n t , t h i sp r o j e c ti so n eo ff i r s tb a t c he - g o v e r n m e n td e m o n s t r a t i o n p r o j e c t si ns h a n x ip r o v i n c e i nt h i sa r t i c l e ,w ed i s c u s si nt h e s e r e s p e c t s f i r s tw ew i l ld i s c u s st h er e u s ef r a m e w o r k r e u s ei sas u b j e c to f i i i 太原理丁人学硕十研究生学位论文 m o d e ms o f t w a r ed e s i g na n di sm a j o rp r o b l e mt h a tw i l lb es o l v e db y m o d e ms o f t w a r e t h e o r y i n a c c o r d a n c ew i t ht h em a i np r o b l e mo f d e v e l o p m e n t o f e g o v e m m e n t t h i sa r t i c l e b r i n g u p r e u s e f r a m e w o r i 卜s t r u t s + h i b e m a t ef r o mb a s i ct h e o r i e s s t r u t si sam a t u r e m v cf r a m e w o r ko fj 2 e e ,i tf o r c ep r o g r a m m e rt od e v e l o pa n dd e s i g nb y m v cm o d e h i b e r n a t ei sm a t u r eo r m ( o b j e c tr e l a t i o nm a p ) s o f t w a r ea n d u s e dw i d e l y i tm a k e sd e v e l o p e ro b s e r v es y s t e mu s i n go b j e c t o r i e n t e d t h i n k i n g i nu s i n go ft h e s et w of r a m e w o r k st o g e t h e rt h ee n v i r o n m e n to f d e v e l o p m e n tw i l lb ea no b j e c t se n v i r o n m e n t a n dw ew i l li m p o r tad a o ( d a t aa c c e s so b j e c t ) l a y e r , t h i sl a y e r w i l l s e p a r a t ed a t a d e t a i lf r o m b u s i n e s sl o g i c f i n a l l yi na c c o r d a n c ew i t ht h eb a dp e r f o r m a n c eo fc l i e n to fb s a p p l i c a t i o nt h i sa r t i c l eb r i n g su pa m e t h o do fc o m b i n a t i o no fb sa n dc s a n ds t u d yt h et e c h n o l o g yo fi m p r o v e m e n to fc l i e n tf u n c t i o n w ea d o p t a j a xt oi m p r o v ec l i e n tf u n c t i o n t h i st e c h n o l o g yi sb a s e do nx m l w e c a l lu s ei tg e te x c e l l e n te f f e c t i nc o n c l u s i o n ,t h i sa r t i c l ed i s c u s st h e s ea s p e c t s :f r a m e w o r k ,c l i e n t f u n c t i o n w et r yt om a k eab r e a k t h r o u g hi nt h e s ea s p e c t sa n dg e tam a t u r e s o l u t i o no f w e ba p p l i c a t i o n t h i ss o l u t i o nh a sb e e nu s e di ns h a n x ip r o v i n c es c i e n c ea n d t e c h n o l o g yd e p a r t m e n te g o vp r o j e c t c o n c l u s i o n so ft h i s a r t i c l eh a v e b e e nv a l i d a t e di nt h i sp r o j e c t a tt h ee n do ft h i sa r t i c l e ,w ew i l ld i s c u s st h e p r o c e s so f u s i n g t h i ss o l u t i o ni nt h i sp r o j e c t a n dw ec a ns e et h i ss o l u t i o ni s r e a s o n a b l e k e yw o r d s :s o l u t i o n 、x 、j 2 e e 、a j a x i v 声明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体。均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名:口尘! 兰墨 日期: t ,y 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定。其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;学校可以学术交流为目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) o 日期-! c 导师签名:一! 塾至二 一 日期:。曼! i 厂 太原理工大学硕士研究生学位论文 第一章绪论 进入2 l 世纪后,“网络时代”这个词已被越来越多的人所熟知并认同。软件 的开发也逐步从单机应用转变为网络应用,单机应用程序已经越束越没有市场。 而传统的c s 应用程序主要是应用于局域网环境,在当前计算机软件用户范围越来 越大的今天,无疑已经很难满足需求。正是在这种条件下,w e b 应用开发方式 b s 结构已经被越来越多的开发者所广泛使用,并得到了广大用户的极大欢迎。一 般来说,b s 结构的应用程序在开发上较传统的c s 应用程序复杂,而且当前应用 软件越来越庞大,所以寻找一个成熟w e b 应用解决方案是非常必要的。 背景: 当前b s 应用程序已经成为软件开发的主流。这种结构的应用程序在部署和安 全性上有明显优势,并且它对用户是要求极低,一般来说只要用户有一台能上网 的电脑,他就可以使用我们的软件。正是由于这些优势,电子商务、电子政务等 大多都采用w e b 方式进行开发,并且取得了广泛的成功。现在我们打开电脑就可以 轻松的使用来自b s 应用软件提供的成千上万的服务,而我们的电脑只需要安装一 个浏览器就可以了。 一方面,由于信息技术的进步,现在我们整个社会活动可以说已经离不开计 算机,计算机已经成为我们正常工作的必备工具。越来越多的传统社会行为被计 算机软件行为所替代,而且这种替代仍将会不断的继续下去,而这个替代过程就 需要我们开发适合的计算机软件来完成。可见计算机软件的需求将会越来越大。 而且由于互联网的广泛使用,当前的软件开发一般都是基于网络,不具网络功能 的应用软件是没有什么生存价值的。为了能使更多的用户方便的得到软件的服务, 现在软件开发大多采用b s 结构。 其次,b s 结构的软件开发过程有别于传统的c s 结构,所以在开发上有一定 的难度,往往一个b s 结构的软件在开发周期上要大于具有同样功能的c s 结构的 太原理l 大学硕士研究生学位论文 软件,所以需要一个成熟的丌发框架应用于开发之中以提高开发效率和开发质量。 另外,由于b s 结构的应用程序在客户端完全依赖于浏览器,这就在先天一卜大 大的束缚了软件客户端的表现能力。虽然当前已有一些对其进行改善的解决方案, 但是这些解决方案都存在这样或那样的问题,不能够尽如人意的解决这个难题。 从以上我们可以看到,当前的软件开发正大量采用w e b 方式,b s 应用的范围 和前景也越来越广阔。但就目前b s 应用软件的开发现状来看,还没有一个成熟的 整体解决方案,并且b s 应用程序在客户端的表现上还存在着先天的缺陷。 选题的目的和意义 目前我国的网络技术无论从软件还是硬件方面来说,都已经具备了开发大规 模应用的基本条件。而且各种成功的电子商务和电子政务的应用已经实施,在这 种情况下越来越多的部门和机构需要将原有的应用转向w e b 或新建完善的w e b 应用 项目。所以寻找一种w e b 应用的成熟开发架构和方案是非常必要的。 山西省科技厅电子政务系统是山西省实施电子政务的试点项目,这个项目是 科技厅整个办公过程的电子化解决方案。同时这个系统还将作为省科技厅面向全 省的一个政务窗口。并为科技厅在制订相关措施时提供决策依据。 论文主要工作 本文将从现代软件开发的基本理论出发,对基于j 2 e e 和x m l 的w e b 解决方案进 行深入研究。 论文将从以下几方面展开研究: 1 w e b 应用软件框架的研究 对采用成熟的j 2 e e 框架构建w e b 应用软件的可行性进行分析,并对整个架构 中所采用的开源的m v c 框架s t r u t s 和所选用的o r m ( 对象关系映射) 软件 - - - h i b e r n a t e 进行了研究和讨论从软件分层开发的角度,论述了如何实现对软件 各层的划分和如何合理进行各层的设计。本文深入的研究了以上两个框架在软件 分层中的应用和如何实现这两个框架结合。并对在软件分层中引入d a o 层的必要性 进行了分析,对d a o 层的开发和实现进行了论述。 2 太原理i :大学硕士研究生学位论文 2 增强b s 应用客户端功能的研究 mt 礴一蔷瀚瓣貉魏獭 本文提出了采用基于x l 的异步提交方式来改善客户端功能的方案,并在文中 对其技术细节和可行性进行了深入讨论。 论文的组织结构与安排 针对论文的主要内容,将论文章节作如下安排: 第一章绪论引出本文的主题,并简述课题研究的主要内容、背景、现状 及意义。 第二章w e b 应用解决方案现状。重点介绍采用w e b 方式开发应用软件的必要 性和这种软件开发方式的发展现状以及存在的问题。 第三章利用j 2 e e 及软件分层思想构建w e b 应用开发框架。从软件开发的基 本理论出发重点研究w e b 应用的开发框架,并提出了s t r u t s + d a o + h i b e m a t e 的解决 方案。 第四章采用异步提交方式克服w c b 应用的客户端功能不足。针对w e b 应用的 不足之处提出异步提交的解决方案。 第五章w e b 应用解决方案在科技厅电子政务中的应用。将第三章和第四章提 出的解决方案应用于山西省科技厅电子政务系统中。 第六章总结与展望。概括了本课题的研究成果和不足,就不足方面结合当 前的技术现状提出了切实可行的展望。 最后是参考文献、致谢和研究生期间发表的学术论文 3 太原理工大学硕十研究生学位论文 2 1 2 1 模式 层和 中在 低、 载体 9 、 s 臼数嚣 委g 斡蜷 图2 - 2b s 结构模型 f i g 2 - 2m o d e lo f b sa r c h i t e c t u r e 4 太原理工大学硕士研究生学位论文 b s 结构即b r o w s e s e r v e r ( 浏览器服务器) 结构是一种瘦客户模式。我们文中 所指的w e b 应用就是指b s 结构的应用程序。b $ 结构的应用程序将软f j 分为三层或 n 层。通常这三层是指:客户层、中间层、数据库层。客户端一般柬说是一个浏览 器比如i e 、n e t s c a p e 、f i r e f o x 等。我们的客户端程序就运行于浏览器中,而我们 的客户端程序一般是由服务端发来的h t m l 文本,它主要的功能就是向客户呈现数 据和接受客户的数据输入。我们可以看到客户端在功能上很弱,这也就足这种结 构为什么被称为瘦客户模式的原因。中间层可以是一层或多层,这一层主要是w e b 服务器,它是我们的应用程序运行的主要容器。软件的编码工作主要集中在这一 部分。包括客户端的代码也是由这部分来动态生成的。数据库层来存储系统的数 据和数据规则。这部分只接受来自于中间层或中间层某一部分的访问,也就是说 客户端是根本无法直接访问数据库层的,这就大提高了数据的安全性和系统的伸 缩性。 2 1 2 选择b $ 结构开发应用程序 从上一小节我们可以看出传统c s 应用程序存在着很多缺陷,其中有一些是致 命的,如它的二层结构使得系统的安全机制不堪一击,也正是由于这个原因,传 统的c s 应用几乎无法在广域网上使用,当然限制其使用的还有数据库连接等方面 的问题。总之,一个传统的c s 应用程序由于其天然的缺陷,使其用户使用受到了 很大局限。另外一个c s 应用难于处理的问题就是客户端的维护问题,用户必须在 每一个客户机上安装应用程序,而这些应用程序一般都对客户端的软硬件平台有 严格的要求,这一方面加大了维护的工作量,另一方面提高了应用成本。 也正是由于c s 存在着诸多问题,人们提出了三层应用结构,而b s 应用是三 层应用结构的很好的体现。所以当前的软件设计大多采用b s 结构。为了迎合这种 开发需求各大软件公司也推出了自己的开发平台,目前主流的开发平台是微软 的n e t 和s u n 的j 2 e e 平台。 b s 应用已经从早期的网站建设渗透到各个领域如电子商务、电子政务、财务、 金融等。我们也可以看出原来c s 应用传统领地已经被b s 应用逐步占领。另外随 着w e b 技术在硬件和软件上的进步,b s 的应用前景将更加广阔。现在的软件业巨 5 太原理 大学硕七研究生学位论文 头如微软、g o o g l e 等要不将重点转 句w e b ,要不就是在w e b 应用中成长起来的。 2 2w e b 应用解决方案现状 w e b 应用程序和传统的c s 应用程序在开发方式上存在着很大的不同,可以说 w e b 应用在开发上较c s 应用更为复杂,一个在c s 应用中很容易实现的功能,在b s 应用中往往要费很大的功夫。这主要是由于b s 应用完全把服务端和客户端分离丌 了,客户端的作用变成更纯的显示和接收命令。 为了提高w e b 应用的开发效率,各软件公司都在寻找一种快速、成熟的w e b 应 用解决方案。但是由我国的具体国情和软件发展现状,我国目前的w e b 应用解决方 案还存在以下问题: 1 、目前我国正在推进软件正版化和国产化,国产的l i n u x 是今后各级政府部门 的优先选择。现在政府部门所采用的操作系统大多是微软的w i n d o w s 系列。 所以目前以w i n d o w s 操作系统为基础的w e b 应用解决方案将面临着很大的改 造困难。 2 、没有一套成熟的w e b 应用解决方案开发框架,使得开发周期都较长,并且可 维护性得不到提高。很难实现软件产品的工程化和产品化,软件基本上是 定制完成。同样一个产品,在一个稍有不同的工作流程环境中,往往要做 非常大量的改动,甚至推翻重做。 3 、由于b s 结构程先天的弱点,其客户端处理能力非常低下,且与服务端进行 数据交互时延时过高,使用户在操作时感觉非常不便。 4 、w e b 打印问题是b s 结构应用程序的难题。由于b s 结构应用程序在客户端完 全依赖浏览器,而浏览器在处理打印方面,能力又相当有限,所有打印问 题一直是b s 应用中的难点。 在本文中我们将试图寻找一种成熟的w e b 应用解决方案来克服以上困难。 6 太原理工大学硕士研究生学位论文 第三章利用j 2 e e 及软件分层思想构建w e b 应用开发框架 3 1j 2 e e 架构的引入 从前面对于w e b 应用软件的分析可以看出,当前各大型软件系统的丌发需要一 种分布式的、高可靠性的企业级解决方案来支持。 当前满足这个要求的开发平台主要有两种: 一是由微软推出的n e t 平台,它在w i n d o w s 环境下可以展现很好的性能。 二是s u n 推出的j 2 e e 平台,它在分布式计算、安全性等方面的诸多优势,使得 其得到了广泛应用。 我国在推行电子政务的过程中,提出了正版化和国产化的要求。而目前我国 政府部门所使用的操作系统大多是微软的w i n d o w s 系列,所以今后软件的正版化和 国产化可能会带来的操作系统的变化。所以软件的跨平台性对于当前电子政务系 统来说是非常重要的。 在以上两种开发平台中j 2 e e 的跨平台优势是非常明显的。所以,我们采用j 2 e e 作为开发平台来完成电子政务的开发。 以下对j 2 e e 的结构和性能进行分析和研究。 j 2 e e ( j a v a 2 企业版) 主要是由一些a p i 组成,它可以被用来创建大规模的、分 布式的、基于组件的、多层的应用程序。但j 2 e e 并不是a p i 的简单组合j 2 e e 和组 成它的a p i 的规范一起构成了创建和部署企业应用程序的标准。 j 2 e e 由客户端层、w e b 服务器层、业务层( e j b ) 、数据库层构成。 j 2 e e 的概念 目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a2 平 台m i c r o 版( j a v a2p l a t f o r mm i c r oe d i t i o n ,j 2 m e ) 、适用于桌面系统的j a v a2 平台标准版( 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 s e ) 、适用于创建服务器 应用程序和服务的j a v a2 平台企业版( 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 ) 。 7 太原理【:大学硕+ 研究生学位论文 j 2 e e 是一种利用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 r n e t 应用中保护数据的 安全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、 j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。其最 终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。 j 2 e e 的优势 j z e e 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制: 1 保留现存的i t 资产:由于企业必须适应新的商业需求,利用已有的企业信 息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进 的( 而不是激进的,全盘否定的) 方式建立在已有系统之上的服务器端平台机制 是公司所需求的。j 2 e e 架构可以充分利用用户原有的投资,如一些公司使用的 t u x e d o 、i b mc i c s 、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 z e e 拥有广泛的业界支持和一些重要的企业计算领域供 应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移 植的j 2 e e 领域的升级途径。由于基于j 2 e e 平台的产品几乎能够在任何操作系统 和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 2 高效的开发:j z e e 允许公司把一些通用的、很繁琐的服务端任务交给中间 件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩 短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: ( 1 ) 状态管理服务一让开发人员写更少的代码,不用关心如何管理状态, 这样能够更快地完成程序开发。 ( 2 ) 持续性服务一让开发人员不用对数据访问逻辑进行编码就能编写应用 程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维 护。 ( 3 ) 分布式共享数据对象c a c h e 服务让开发人员编制高性能的系统,极 大提高整体部署的伸缩性。 8 太原理工大学硕士研究生学位论文 3 支持异构环境:j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设i 合理的基于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 领 域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服 务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来 商业应用的需要。 3 2 软件分层开发的研究 从上面对j 2 e e 的分析中,我们可以看出j 2 e e 的一个很重要的特点就是结构 分层。软件分层开发是现代软件开发的基本做法。它可以使软件的“复用”程度 更高,可维护性更好。 3 2 1 何为软件分层 当前软件体系结构大多为三层或n 层结构“3 ,即:表示层、中间层、数据库层。 表示层将用户接口分离出来。它主要是来关注于向用户呈现其所要的数据,并 接受用户的命令和输入信息。此部分将集中体现用户的意图和用户的行为。这一 部分将最先体现用户的需求。从用户的角度来看,它代表软件的主体。用户认可 软件的成败就是通过这部分来完成。 中间层是接收到表示层的数据并进行相应的处理和运算以及数据库的操作,将 9 太原理【大学硕士研究生学位论文 相关数据返回给表示层。这一部分被认为是被认为是软件开发的主体,所有的程 序编制将主要集中于此部分。当然这部分还可以分为若干层。如w e b b 艮务器层,业 务逻辑层,持久化层等。这就会使软件的三层结构变成了n 层结构。其中w e b 服务 器层用来接收客户端发来的h t t p 请求,并能够产生显示在客户端( 浏览器) 的h t m l 代码。业务逻辑层可以是我们的自定义组件( j a v a b e a n s 或者c o m 组件) ,从开发者 的角度来看,他们的大量工作将集中于业务逻辑组件的开发。持久化层完成对数 据对象的持久化操作,这部分力求透明业务逻辑部分对数据库的操作。它从业务 逻辑层得到要操作的对象,然后将其转化为对数据库表或多表的更新或查询。 数据库层完成数据的存储,它是整个系统数据的主体。这一部分包含有数据的 存储、数据的规则、数据的存储过程等部分。它接受标准的s o l 语句,实现数据的 存储、查询、更新和删除。数据库层包含了整个系统持久化了的全部数据,可以 说它记录了整个应用的状态和历史,如果数据库层遭到破坏,将会带来无法挽回 的损失。由此可见整个系统对于数据库的安全是非常高的。这样也可以看出三层 或n 层结构应用的优越性,在这种结构的应用中,用户是无法直接访问数据库的, 这样也从根本上保证数据库的安全。 整个软件的体系结构如图所示: 图3 1 软件体系结构模型 f j g 3 - 1m o d e lo f s o f t w a r ea r c h i t e c t u r e 3 2 2 软件分层开发遵循的基本原则 软件分层开发是解决现代软件设计框架复用的有力手段。而在软件分层开发 中必须遵循软件开发的基本原则。如何同时提高一个软件系统的可维护性和可复 1 0 太原理工大学硕士研究生学位论文 用性是面向对象设计( 0 0 d ) 要解决的核心问题。经过数代软件设计大师的研究和 总结,而要达到这个目的需要遵循一些基本的原则。 “开一闭”原则( 0 c p o p e n c l o s e d p r i n c i p l e ) d 3 是所有原则的一个基础,也 是要满足面向对象设计要求所要依据的根本原则。它是指一个软件实体应当对扩 展开放,对修改关闭。遵循“开一闭”原则会使软件在增加新功能或者有新的需 求时,对原有部分的改动最小化。 要遵循“开一闭”原则( o c p ) ,在丌发时就必须要对软件部分进行高度的抽象。 也就是说从各部分组件抽象出共同的部分,这共同的部分只作方法的定义而不做 实现。将实现推迟到各部分的子类当中。这就涉及到了另外一个原则,依赖倒转 原则( d i p - - d e p e n d e n c yi n v e r s i o np r i n c i p l e ) o 】。它是指要依赖于抽象,而不 要依赖于实现。这个原则其实是“开一闭”原则( o c p ) 的进一步阐述。它和“开 一闭”原则( o c p ) 是目的和手段的关系,“开一闭”原贝l j ( o c p ) 是目标,依赖倒 转原则是手段。也就是如果违反了依赖倒转原则就无法达到“开一闭”原则( o c p ) 的要求。 ; 囝3 - 2 依赖倒转原则 f i g 3 - 2d e p e n d e n c yi n v e r s i o np r i n c i p l e 从图3 2 中可以看出d o c u m e n t a c c e s s 和e x c h a n g e d a t a 两个类的共同特征即 d o q u e r y ( ) 方法和d o s a v e0 方法被抽象到了i b u s i n e s s 接口当中。而o p e r a t o r 类只 依赖于i b u s i n e s s 接口而不依赖于实现类id o c u m e n t a c c e s s 和e x c h a n g e d a t a 。这就 遵循了依赖倒转原则( d i p ) ,即依赖于抽象的接口而不依赖于具体的实现类。另 一方面,如果再出现了一个新类,它实现了业务接口,它就可以被操作类所使用。 我们从中可以看出,这种方式就遵循了“开一闭”原则。对新的扩展开放,对原 有部分未作修改。 1 1 太原理i :人宁硕士研究生学位论文 如图3 - 3 所示: 目一毋 i l d o c t n t a c c e s l l 【! 妯a n ! c d a t ! i l a n n e n c l a s si ll ii li llil li 图3 - 3 “开一团”原则 f i g 3 3o p e n - c l o s e dp r i n c i p l e 里氏代换原则( l s p - - l i s k o v s u b s t i t u t i o n p r i n c i p l e ) 乜,它是指任何基类可以出 现的地方,子类一定可以出现。这条原则保证了依赖抽象的可用性。它是对抽象 化的具体步骤的规范。一般来说,如果违反了里氏代换原则t l s p ) ,也就违反了 “开一闭”原则( o c p ) 。 合成聚合复用原则( c a r p - - - c o m p o s i t i o n a g g r e g a t i o np r i n c i p l e ) 乜1 ,它是指要 尽量使用合成聚合,而不是继承关系达到复用的目的。在面向对象的程序设计中 要求,继承关系中的父类必须是抽象类。实现类只能处于继承关系的未端。 如图3 - 4 中所示: 图3 - 4 合成聚合复用原则( - ) f i g 3 - 4c o m p o s i t e a g g r e g a t er e u s ep r i n c i p l e ( 1 ) 图3 4 中所示的这种关系是不合理的。依据合成聚合复用原则( c a r p ) 我们 可以将其改为: 1 2 太原理工大学硕士研究生学位论文 图3 - 5 合成聚合复用原则( 二) f i g 3 5c o m p o s i t e a g g r e g a t er e u s ep r i n c i p l e ( 2 ) 迪米特法则( l o d - - l a wo f d e m e t e r ) 乜】,这个法则是指一个软件实体应当与尽 可能少的其它实体发生相互作用。从另一方面讲,就是说一个对象应当对其它对 象有尽可能少的了解。在软件系统中,一个模块设计得好坏最主要的标志,就是 该模块在多大程度上将自己的内部数据和其它与实现有关的细节隐藏起来。这样 一个模块就可以使它和各子系统脱耦,从而允许它们独立地被开发、优化、使用、 修改。这使得维护过程变得更加容易,因为所有的模块都容易读懂,特别是不必 担心对其他模块的影响。 接口隔离原则( i s p - - i n t e r f a c es e g r e g a t i o np r i n c i p l e ) 乜1 ,它是指应当为客户端 提供尽可能小的单独的接口,而不要提供大的总接口。可以看出接口隔离原则与 迪米特法则都是对一个软件实体与其他软件实体的通信限制。迪米特法则要求尽 可能限制通信的宽度和深度。接口隔离原则所限制的是通信的宽度。也就是说, 通信应当尽可能的窄。显然遵循接口隔离原则与迪米特法则,会使一个软件系统 在功能扩展的过程中,不会将修改的压力传递到其他对象。 3 2 3 使用工厂模式实现“开一闭”原则 为了实现“开一闭”原则,我们使用工厂模式。 什么是工厂模式? 工厂模式是创建模式的一种,它是将对象的创建交由一个工厂类来完成。 为什么要用工厂模式? 从上一节,我们可以看出,要实现“开一闭”原则,我们就要遵循依赖倒转原 1 3 太原理工大学硕士研究生学位论文 则( d i p ) 。而依据此原则,我们应依赖抽象,而不应依赖实现。而由于我们遵循了 “开一闭”原则( o c p ) ,所以我们需要满足,对扩展开放,对修改关闭。因为我 们不能对原有程序进行修改,而我们又要使用新加入的类,所以我们必须寻找另 外一个类来完成这些类的创建工作,我们把这个类叫做工厂类。在工厂类中,对 于所有类的创建,都会执行同样的操作。 厂面面 亡 匕 图3 - 6 工厂类模型 f i g 3 - 6f a c t o r ym e t h o d 代码示例: 工厂类: p u b li c c l a s sf a c t o r y p u b l i cs t a t i co b j e c tn e w i n s t a n c e ( s t r i n gf t s r n a m e ) t r y r e t u r nc l a s s f o r n a m e ( f t s r n a m e ) n e w i n s t a n c e0 : ) c a t c h ( e x c e p ti o ne x ) l o g ( “c r e a t ee r r o r ”) : ) r e t u r nn u l l : ) 业务接口: p u b l i ci n t e r f a c ei c u s t o m 1 4 太原理工大学硕士研究生学位论文 p u b li cv o i dd o s a v e ( ) : 实现类: p u b l i cc l a s sc u s t o mi m p l e m e n t si c u s t o m p u b l i cc u s t o m ( ) p u b l i cv o i dd o s a v e0 客户端代码: i c u s t o mc u s = ( i c u s t o m ) f a c t o r y n e w i n s t a n c e ( ”c u s t o m ”) : c u s d o s a v e ( ) : 从中可以看出工厂类的使用使得客户代码只依赖于接1 3 而不依赖于实现。 3 3s t r u t s 在软件分层模式中的应用 从上一节对软件分层开发的研究中,我们发现采用分层开发的思想可以提高 软件框架的复用针对可复用框架,各大软件机构一直在努力寻找到一种成熟的 设计框架和模式。m v c 框架就就是一个经典的开发框架。 3 3 1m v o 框架的研究 m ,c ”是m o d e l - v i e w c o n t r 0 1 1 e r 的简称,即模型一视图一控制器。:是x e r o x p a r c 在上世纪8 0 年代为编程语言s m a l l t a l k 发明的一种软件设计模式,至今已被广 泛使用,最近几年被推荐为s u n 公j 2 e e 平台的设计模式,受到了越来越多的w e b 开发者的欢迎。 1 5 太原理丁人学硕十研究生学位论文 器 图3 7m 、c 模型 f i g 3 7m v c m o d e l 它将整个应用分为三部分:m ( m o d e l ) 数据模型、v ( v i e w ) 视图、c ( c o n t r o l l e r ) 控制器。使用m v c 的目的是将m o d e l 和v i e w 的实现代码分离,从而使同一个程序可 以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示

温馨提示

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

评论

0/150

提交评论