(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf_第1页
(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf_第2页
(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf_第3页
(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf_第4页
(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)软件三层架构的重构与优化技术研究.pdf.pdf 免费下载

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

文档简介

厂一 苏州大学学位论文使用授权声明 本人完全了解苏州大学关于收集、保存和使用学位论文的规定, 即:学位论文著作权归属苏州大学。本学位论文电子文档的内容和纸 质论文的内容相一致。苏州大学有权向国家图书馆、中国社科院文献 信息情报中心、中国科学技术信息研究所( 含万方数据电子出版社) 、 中国学术期刊( 光盘版) 电子杂志社送交本学位论文的复印件和电子 文档,允许论文被查阅和借阅,可以采用影印、缩印或其他复制手段 保存和汇编学位论文,可以将学位论文的全部或部分内容编入有关数 据库进行检索。 涉密论文口 本学位论文属 在年一月解密后适用本规定。 论文作者签名: 堑驺拿左日期: 导师签名:兰蹲日期: 软件三层架构的重构与优化技术研究中文摘要 软件三层架构的重构与优化技术研究 中文摘要 架构设计是软件研发周期中重要的组成部分之一,它关系到软件的发布环境、设 计模式以及运行效率。三层架构是目前基于w e b 的系统设计中使用较为广泛的架构 之一,在系统设计和产品研发周期中具有结构清晰和易于管理的优点。但这种架构在 系统前端编程和拓展性方面有一些局限性,对服务器的配置要求也比较高。它把表示 层、业务逻辑层和数据访问层都集中放在w e b 服务器上,页面表单的任何数据请求 都必须通过服务器的控制才能完成。不仅对w e b 容器的要求较高,用户体验和系统 效率也会受到影响。针对上述问题,本文基于三层架构,通过引入j a v a s c r i p t 、s o a 、 b r o w s e rc a c h e 等技术,提出了把表示层的渲染从服务器端转移到客户端的c u l 架构 模型。其创新点体现在: 1 ) 实现了表示层从服务器端到客户端的转移。在引入a j a x 、j s 、j s o n 、c a c h e 、 j q u e r y 等技术的基础上,通过对软件结构和系统资源的优化与组合,实现了表示层 到客户端的转移,并在客户端渲染,从而降低了服务器的压力,提高了访问效率。 2 ) 提出了一种基于j s o n 、c r e d e n t i a l 与s o a 的业务逻辑分解模型。该模型采 用j s o n 作为数据交互的载体i 使用c r e d e n t i a l 保障数据安全,通过化整为零的方法 把复杂的商业逻辑分解成若干个基本的功能模块挂载到s o a 总线上,为来自不同平 台的数据请求提供服务,达到支持跨平台服务的目的。 3 ) 提出了一种基于c u l 的j s 内存管理和优化策略。在引入o o p 、j q u e r y 等 技术的基础上,通过对j s 对象设计和代码管理的优化与组合,实现了对内存资源的 统一分配和回收,从而提高了程序的效率。 基于上述三条创新点,本文构建了一套采用c u l 架构的电子商务模型,目的是 验证c u l 架构的可行性和安全性。 关键词:三层架构,c u l 架构,面向服务的业务逻辑层,数据摘要 作者:郑彩红 指导老师:龚声蓉教授 i m p r o v e m e n to nt h r e e - t i e ra r c h i t e c t u r eo fs o f t w a r e a b s t r a c t a r c h i t e c t u r ed e s i g ni so n eo ft h em o s ti m p o r t a n tp a r td u r i n gt h ep e r i o do fs o f t w a r e d e v e l o p m e n t ,b e c a u s e i tw i l l i m p a c tp r o d u c te n v i r o n m e n t ,c o d ed e s i g na n ds y s t e m p e r f o r m a n c e t h r e e - t i e ra r c h i t e c t u r ei sa nu s u a l l yu s e ds o f t w a r ea r c h i t e c t u r em o d e l ,i ti s e a s yt o u s ea n dc o u l dh e l pp r o d u c t i o nm a n a g e ri m p r o v et h e i r p r o d u c t i o nd e s i g n b u t t h r e e - t i e ra r c h i t e c t u r em o d e la l s oh a ss o m el i m i t si nc l i e n ts i d ea n ds e r v i c e se x t e n s i o n i t p u t st h ed i s p l a y ,b u s i n e s sl o g i ca n ds t o r a g ea c c e s si n t ot h es a m ep r o d u c t i o ns e r v e r ,s oa l l p a g ea c c e s sr e q u e s t sf r o mc l i e n ts i d ea r ec o n t r o l l e db ys e r v e re n v i r o n m e n t s e r v e r e n v i r o n m e n tn e e d sh i g hp e r f o r m a n c ef o ri t ,a n du s e r se x p e r i e n c ew i l la l s ob ei m p a c t e d t oi m p r o v et h i si s s u e ,t h ea r t i c l ew i l lr a i s eo u tan e wa r c h i t e c t u r em o d e lw h i c hi s b a s e do nt h r e e - t i e ra r c h i t e c t u r ea n du s i n g j a v a s c r i p t ,s o a & b r o w s e rc a c h ea s i t s t e c h n o l o g y ,m o v e sd i s p l a y e rl a y e rf r o ms e r v e re n v i r o n m e n tt oc l i e n tp c i t sf e a t u r e s c o n t a i n : m o v ed i s p l a yl a y e rf r o ms e r v e re n v i r o n m e n tt oc l i e n tp c b a s e do ni n t r o d u c i n g s o m et e c h n o l o g i e sl i k ea ,a x ,j s ,j s o n ,c a c h e ,j q u e r ye t c ,m o v ed i s p l a yl a y e rf r o m s e r v e rs i d et oc l i e n ts i d e & d i s p l a yi td i r e c t l yb y i m p r o v i n gs o f t w a r ea r c h i t e c t u r ed e s i g n & s y s t e mr e s o u r c e s i tc o u l dh e l pr e d u c es e r v e rb u r d e na n di m p r o v es y s t e mp e r f o r m a n c e 2 ) r a i s eo u tan e wm o d e lf o rb u s i n e s sl a y e rb a s e do nj s o n & c r e d e n t i a lw h i c h c o u l dh e l ps h a r eb u s i n e s sm o d u l e sc r o s s i n gd i f f e r e n tp l a t f o r m so rp r o d u c t i o n s j s o ni s u s e df o rd a t at r a n s f o r ma n dc r e d e n t i a li sf o r s e c u r i t y ,i ts e p a r a t e sb u s i n e s sm o d e li n t o s e v e r a lb a s i cp a r t sa n dp u tt h e mo n t os o as e r v i c eb u s ,s oo t h e r sc a n a c c e s si ta n dg e td a t a t h r o u g hi n t e m e t i ti su s e df o rp r o v i d i n gc r o s s p l a t f o r ms e r v i c e 3 ) a n e w p o l i c yf o rj sm e m o r ya l l o c a t i n g & d e s t r o y i n g b a s e do ni n t r o d u c i n gs o m e t e c h n o l o g i e sl i k eo o p ,j q u e r ye t c ,j so b je c tc o u l da l l o c a t ei t sm e m o r yr e s o u r c e sa n d d e s t r o yt h e ma to n ep o i n tb yi m p r o v i n gj sc o d em a n a g e m e n t & o b je c ta r c h i t e c t u r ed e s i g n i i i m p r o v e m e n to nt h r e e - t i e ra r c h i t e c t u r eo fs o f t w a r e a b s t r a c t i tc o u l dh e l pi m p r o v ej sp r o g r a mp e r f o r m a n c e b a s e do na b o v e3i t e r n s t h ea r t i c l ef i n a l l ys h o w san e wb u s i n e s ss i t ew h i c hi sb a s e d o nc u la r c h i t e c t u r ea n dp r o v i d es e r v i c e ss h a r eb yu s i n gj s o n c r e d e n t i a l & s p a t h e t a r g e ti st ov e r i f yc u l sw o r k a b l ea n ds e c u r i t y k e y w o r d s :t h r e e t i e ra r c h i t e c t u r e ,c u la r c h i t e c t u r e ,s e r v i c eo r i e n t e da r c h i t e c t u r e , c r e d e n t i a l w r i t t e n b yz h e n gc a i h o n g s u p e r v i s e db yg o n gs h e n g r o n g 一 目录 第一章绪论 1 1 课题研究的目的和意义 1 2 国内外研究现状 1 3 本文的主要研究内容和创新 1 4 本文的章节安排 第二章软件三层架构分析5 2 1 三层架构概述。5 2 2 三层架构原理5 2 3 三层架构的优点和局限性8 第三章基于c u l 重构表示层11 3 1 表示层研究现状1 1 3 2c u l 架构设计1 4 3 2 1c u l 表示层1 7 3 2 2c u l 的优化2 3 3 3 测试与分析2 8 3 4 本章小结3 2 第四章基于s o a 和c r e d e n t i a l 重构业务逻辑层3 4 4 1 业务逻辑层研究现状3 4 4 2 对业务逻辑层的改进3 5 4 2 1 业务逻辑层的局限性3 6 4 2 2 面向服务的业务逻辑层3 6 4 2 3c r e d e n t i a l 的安全认证机制3 9 4 3 测试与分析4 1 4 4 本章小结4 3 第五章c u l 的j s 性能优化策略:4 4 5 1j s 性能现状分析4 4 5 2 基于c u l 的内存管理4 4 5 3c u l 的j s 代码规范4 5 5 4 本章小结4 7 第六章基于c u l 架构的实例研究4 8 6 1 需求分析4 8 6 2 电子商务网站的架构设计5 0 6 2 1 网站硬件平台5 0 6 2 2 网站的软件架构5 2 6 3 网站效果图5 3 第七章结束语5 6 参考文献5 9 攻读学位期间公开发表的论文6 2 致谢6 3 软件三层架构的蕈构与优化技术研究第一章绪论 第一章绪论 1 1 课题研究的目的和意义 架构设计是软件研发周期中最重要的组成部分之一,因为它关系到软件的发布环 境、设计模式、开发成本以及运行效率。在软件体系架构中,分层结构是最常见,也 是最重要的一种结构。分层结构实际上就是追求两点:一是高内聚,二是低耦合。 三层架构是微软推荐的一种分层结构,也是w e b 开发中最常见的一种架构,从 上至下分为表示层、业务逻辑层和数据访问层【l 】。三层架构实现了高内聚、低耦合的 设计目标。开发前端界面的工程师不必了解业务逻辑是怎样执行的,开发业务逻辑的 工程师也不必知道数据库是怎样访问的,更不需要知道数据库的组成结构。从而简化 了开发过程,减少了冗余代码,提高了产品质量。 由于三层架构采用的是多层设计,无形中增加了系统的复杂度,而且在软件架构 设计之初也没有考虑支持面向服务的设计,故三层架构也有其一定的局限性。 首先,三层架构对系统环境要求较高。在三层架构中,表示层的渲染、业务逻辑 的计算以及对数据库的访问都是在服务器端完成的。在大量用户并发访问时,为了满 足大量的页面请求和数据请求,还需要引入系统集群、s e s s i o n 复制和负载平衡。故 三层架构对系统环境的要求是比较高的,无形中抬高了三层架构的准入门槛。 其次,没有考虑面向服务的设计。三层架构在设计之初没有考虑面向服务的设计, 表示层、业务逻辑层和数据访问层都是在同一台服务器上运行的,该服务器上的业务 逻辑模块无法为来自其它平台的数据请求提供服务,即无法在多个平台之间实现共 享,影响到了业务逻辑的重用性。 本课题研究的目的在于如何保持和延续三层架构的优点,同时能够改善它的局限 性。 1 2 国内外研究现状 随着对三层架构研究的不断深入,涌现出了许多源自于三层架构的变化, s t r u t s 和s p r i n g 便是其中的典型代表【2 1 。 s t r u t s t 3 】是a p a c h e 软件基金会赞助的一个开源项目,2 0 0 4 年3 月成为a s f 的项级 项目。它通过采用j a v as e r v l e t j s p 技术【4 1 ,实现了基于j 2 e e 的m v c 5 1 ( 模型视图 第一章绪论软件三层架构的重构与优化技术研究 控制器) 应用框架。在s t r u t s 技术出现以前,多是采用h t m l 和j a v a 代码混合编程 的方式,不可避免的把页面显示和业务逻辑混合在了一起,给项目的前期开发和后期 维护都带来了很大的复杂度【6 j 。s t r u t s 的出现就是为了解决这种矛盾。s t r u t s 把j 2 e e 产品分成了视图层、业务模型和控制层三层。其中视图层就是表示层,负责前端页面 的渲染、显示报表和接收用户的输入;业务模型负责处理业务逻辑和数据库访问,并 将处理后的结果发送到视图层显示,同时它也会接收视图层送来的数据查询请求,根 据请求的命令或类型执行不同的操作;控制层的作用比较特殊,它负责把视图层与业 务模型联系到一起,主要是起到向导的作用【7 1 。 由此可见,s t r u t s 架构与传统的三层架构十分相似,但也有些不同。它把业务逻 辑层同数据访问层合并到了一起,又把控制模块单独作为一层。业务逻辑层和数据访 问层的合并有利于提高数据处理的速度和效率,控制层可以帮助提高各个功能模块的 共享程度,也有利于产品的开发和维护。 同s t r u t s 一样,s p r i n g 也是j a v a 平台上的一个开源应用框架【8 】。它的第一个版本 是由r o bj o h n s o n 完成的,并在2 0 0 4 年3 月推出了它的第一个1 0 版本。s p r i n g 也是 一个基于m v c ( 模型一视图控制器) w e b 应用程序框架,但是与s t r u t s 框架最主要 的不同之处在于s p r i n g 的i o c ( 反向控制) 和a o p ( 面向方向编程) 【9 】,同时s p r i n g 支持多种视图生成技术( j s p 、f r e e m a k e r 、v e l o c i t y 、t i l e s ) 。采用i o c 的原理管 理j a v ab e a n ,而不是像s t r u t s 那样使用j a v ab e a n 的构造函数或是f a c t o r y 来初始化 j a v ab e a n 。好处是更新j a v ab e a n 时不会影响到现有的程序代码,因为j a v ab e a n 的 实例都是通过x m l 反向注入的【l 们。a o p ( 面向方向编程) 跳出了面向对象的设计局 限,为程序运行的实时监控提供帮助【1 1 1 。s p r i n g 支持多种视图生成技术,类似j s p , v e l o c i t y , t i l e s 的技术可以帮助在视图的数据绑定、界面渲染、视图模版和代码共享等 方面发挥重要作用 1 2 l 。 虽然以s t r u t s 和s p r i n g 为代表的w e b 应用程序框架为三层架构的发展做出了重 要贡献,并在实际应用中被广泛采用,但是随着应用范围和用户数量的不断扩大,三 层架构所固有的局限性也逐渐显现出来,即系统环境的准入门槛比较高且不支持跨平 台的数据服务。接下来将针对这两点局限性提出本文的主要研究内容和创新点。 2 软件三层架构的重构与优化技术研究第一章绪论 1 3 本文的主要研究内容和创新 对系统环境要求高和不支持跨平台的数据请求是三层架构的两点局限性,本文将 针对这两点提出对表示层和业务逻辑层的改进设计,实现把表示层从服务器端转移到 客户端的设计目标。其创新点体现在: 1 ) 实现了表示层从服务器端到客户端的转移。在引入a j a x 、j a v a s c d p t 、j s o n 、 c a c h e 、j q u e r y 等技术的基础上,通过对软件结构和系统资源的优化与组合,实现了 表示层到客户端的转移,并在客户端渲染,从而降低了服务器的压力,提高了访问效 率。本文将这种架构称作c u l 架构( c l i e n t u i l a y e r ) 。 2 ) 提出了一种基于j s o n 、c r e d e n t i a l 与s o a 的业务逻辑分解模型。该模型采用 j s o n 作为数据交互的载体,使用c r e d e n t i a l 保障数据安全,通过化整为零的方法把 复杂的商业逻辑分解成若干个基本的功能模块挂载到s o a 总线上,为来自不同平台 的数据请求提供服务,达到支持跨平台服务的目的。 3 ) 提出了一种基于c u l 的j s 内存管理和优化策略。在引入o o p ,j q u e r y 等技 术的基础上,通过对j s 对象设计和代码管理的优化与组合,实现了对内存资源的统 一分配和回收,从而提高了程序的效率。 本课题研究的意义还在于: 降低了架构的复杂度,简化了初学者的学习过程。 缩短了软件开发周期,节省了开发成本。 简化后的架构可以有效地减少对系统环境的要求,降低系统运营的成本。 1 4 本文的章节安排 本文在分析传统三层架构的基础上,针对它的优缺点,提出若干创新点。并结合 实例分析,对这些创新点展开详细的论述。 第一章主要介绍课题研究的主要内容、目的和意义。简要介绍国内外研究的现状, 并提出了本文的研究内容和创新点。 第二章介绍了三层架构的理论基础,并结合实例分析了它的优缺点,为后面章节 的详细论述做好过渡。 第三章采用a j a x 和j a v a s c r i p t 技术,把表示层从服务器端转移到客户端,改进 了设计模式【1 3 】,利用客户端的资源处理表示层界面的生成,本文称之为c u l 架构。 第一章绪论 软件三层架构的荤构j 优化技术研究 并结合实例分析详细阐述c u l 架构的优点。 第四章基于s o a 和c r e d e n t i a l 重构业务逻辑层。为了处理表示层从客户端发送来 的数据请求,业务逻辑层需要一套新的接口来保障请求响应的及时性与合法性。首先、 引入s o a 和j s o n 构建高效的数据服务模块。j s o n 具有冗余量小,解析速度快的优 势,故用j s o n 替代x m l 负责数据的传递。其次,为了验证请求的合法性,采用 c r e d e n t i a l 来确定请求用户的身份和权限。 第五章阐述了c u l 的j s 性能优化策略。j s 的内存泄露问题由来已久,本章采用 对象技术负责内存的分配与回收,在顶层对象中设计统一的规则,使得j s 变量的内 存使用时时刻刻都处在表示层的监控之下,避免内存资源的丢失。 第六章为了验证c u l ( c l i e n t u i l a y e r ) 架构的可行性及其性能,本章采用 c u l ( c l i e n t u i l a y e r ) 架构设计了一套电子商务网站,使之能够成功的运行起来,并 通过运用客户端缓存技术提高了软件的运行效率。 第七章对本文工作进行了总结。 4 软件三层架构的重构与优化技术研究第二章软件三层架构分析 第二章软件三层架构分析 本章在介绍三层架构基本原理的基础上,详细分析了表示层,业务逻辑层和数据 访问层的工作原理,并进一步阐述了三层架构的优点和局限性,目的是为后续章节的 研究打下基础。 2 1 三层架构概述 随着软件工程的不断进步和规范以及面向对象编程思想的应用,人们对封装、复 用、扩展、移置等方面的要求,使得二层架构显然更加臃肿繁琐,三层程序架构体系 应运而生。三层架构是面向对象思想发展中的必然产物。三层架构的提出,对软件系 统的架构产生了巨大的影响,m i c r o s o f t 和s u n 公司都分别提出了自己基于n e t 和j a v a 的三层架构设计。三层架构是指在客户界面和数据库服务之间加入了一个”中间层”, 即业务逻辑层。它与表示层、数据存储层共同构成了三层体系。通过引入中间层,将 复杂的商业逻辑从传统的二层架构( c l i e n t s e r v e r ) 应用模型中分离出来,并提供了可伸 缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器, 同时增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在 管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用。 2 2 三层架构原理 典型的三层架构组织结构如图2 1 所示,分别为表示层、业务逻辑层和数据访问 层。 第二章软件三层架构分析 软件三层架构的重构与优化技术研究 表示层 图2 1 三层架构组织结构 表示层位于最外层,它负责为用户提供可交互的界面。例如,当用户访问页面时, 6 软件三层架构的重构与优化技术研究第二章软件三层架构分析 他所看到的输入框、数据列表、图片、导航条、饼状图等,这些都是在表示层完成展 现的。 之所以把页面展现部分单独列出来作为表示层,是因为页面是直接跟用户打交道 的部分【1 4 1 ,对界面的易用性和友好度都有比较高的要求,界面运行的效率也是需要反 复检查的。这里把表示层单独拿出来,使得前台开发工程师在设计表示层时不需要考 虑业务逻辑和数据库部分,提高了表示层的设计质量和效率。 常见的界面开发语言包括h t m l 、j a v a s c r i p t 、j s p 、j a v a 、a s p 、x m l 、x s l t 等。 常用的开发工具有v i s u a l s t u d i 0 2 0 0 8 ,e c l i p s e 3 2 ,d r e a m w e a v e r 等。 业务逻辑层 业务逻辑层( b u s i n e s sl o g i cl a y e r ) 是系统架构中实现商业逻辑的部分5 。它的 关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计, 也就是说它是与系统所应对的领域( d o m a i n ) 逻辑有关。通常也将业务逻辑层称为 领域层。例如m a r t i nf o w l e r 在( ( p a t t e r n so fe n t e r p r i s ea p p l i c a t i o na r c h i t e c t u r e ) ) 一书中, 将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先 驱e r i ce v a n s ,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层 进一步将领域逻辑与领域逻辑的解决方案分离。 业务逻辑层在体系架构中处于数据访问层与表示层中间,在数据交换中起到承上 启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,改变上层的设 计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的 思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提 下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如 此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同 的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。 数据访问层 数据访问层:有时候也称为持久层,其功能主要是负责数据库的访训1 6 1 ,可以访 问数据库系统、二进制文件、文本文档或是x m l t l 7 1 文档。简单的说法就是实现对数 7 第二章软件三层架构分析软件三层架构的重构与优化技术研究 据表的选择、插入、更新、删除等操作。如果要加入o r m 的元素,那么就会包括对 象和数据表之间的映射,以及对象实体的持久化。 把数据访问层单独列出的好处在于它将数据访问从前台界面设计和业务逻辑设 计中分离了出来。如果数据访问部分没有被单独分列出来,无论前端界面工程师或者 业务逻辑工程师,他们都需要自己去实现访问数据库的操作并实现增删改,不仅带来 了大量的冗余代码,而且任何数据库的微小改动都会导致大量的代码重写。 把数据访问部分的逻辑分离出来之后,所有与数据库访问相关的操作都被封装在 数据访问层中,它与表示层和业务逻辑层属于弱耦合结构,开发界面和业务逻辑的工 程师不必再关心数据库访问是怎样实现的,也不需要了解数据库的组成结构就能够完 成自己的工作。 2 3 三层架构的优点和局限性 从上面的分析可以看出,三层架构具有高内聚、低耦合、适合团队开发等优点。 前台工程师只需要关注表示层的设计,如页面的渲染,数据的绑定,国际化等等;负 责业务逻辑的工程师不需要知道表示层的实现原理,只需要关注业务逻辑层的部分就 可以了,如权限的控制、报表的提取等等;数据访问层也是独立的,同表示层和业务 层之间没有交叉。 尽管三层架构具有上述优点,但也不是万能的。由于三层架构采用的是多层设计, 无形中增加了系统的复杂度,而且在软件架构设计之初也没有考虑支持面向服务的设 计,故三层架构也有其一定的局限性: 由于表示层、业务逻辑层和数据访问层都必须运行在同一台服务器上,对服 务器的可靠性和大量用户并发访问时的处理能力要求比较高。通常是需要做系统集群 和负载均衡来保障系统的可靠性,无形中提高了三层架构的门槛。 在三层架构设计之初并没有考虑提供跨平台的数据服务,即业务逻辑层不能 在不同的产品和平台之间实现服务共享。由于表示层和业务逻辑层都必须是在同一套 系统环境下运行,通过直接调用业务逻辑层的对象实例获取对象的句柄达到获取数据 的目的,所以仅靠三层架构本身不能提供跨平台的服务共享,从而在一定程度上影响 到了业务逻辑的重用性。 针对三层架构的上述两点局限性,本文基于三层架构,在引入a j a x 、j s 、j s o n 、 8 图2 2c u l 架构 9 第一二章软件三层架构分析 软件三层架构的重构0 优化技术研究 2 4 小结 本章在分析三层架构的基础上,分别从表示层、业务逻辑层和数据访问层的工作 原理出发,阐述了三层架构的局限性,为后续章节解决这些问题打下基础。 1 0 软件三层架构的重构与优化技术研究 第三章基于c u l 重构表示层 第三章基于c u l 重构表示层 针对三层架构对系统环境要求较高的局限性,本章从表示层的组织架构入手,在 引入a j a x 、j s 、j s o n 、c a c h e 、j q u e r y 等技术的基础上,通过对软件架构和系统资 源的优化与组合,提出了将表示层的渲染从服务器端转移到客户端的c u l ( c l i e n t u i l a y e r ) 模型。c u l 的特点是能够利用客户端的系统资源帮助处理表示层 的渲染和国际化。当客户访问页面时,通过a p a c h e 高速缓存服务器把表示层的资源 从服务器端下载到客户端,由于有服务器高速缓存和客户端浏览器缓存的双重支持, 不仅下载速度快,而且并发访问量越大时下载效率就会越高。下载完毕后负责表示层 处理的逻辑会自动开始页面渲染、国际化和数据绑定等工作,而且这些工作都是在客 户端的浏览器缓存中进行的,不再依赖于服务器,从而降低了服务器的负载。 3 1 表示层研究现状 s t r u t s 是目前比较常用的具备处理表示层逻辑的一种轻量级架构【1 9 1 。其在表示层 方面的特点是能够自动完成表示层的数据绑定【2 0 1 和国际化,支持以t a g 为代表的代码 重用2 1 1 ,使得一些可以共用界面逻辑模块能够在不同的表示层页面中被重用。通过采 用s e r v l e t ,j s p 和c u s t o mt a gl i b r a r y 2 2 ,2 3 1 等技术,s t r u t s 实现了j 2 e e 应用的快速开 发【2 4 】。 圈 图3 1s t r u t s 框架组件结构 第三章基于c u l 重构表示层软件三层架构的重构j 优化技术研究 如图3 1 所示,浏览器的访问请求通过c o n t r o l l e r 转发给a c t i o n 2 5 1 ,a c t i o n 部 分负责表示层与业务逻辑层的数据交互,表示层提交的数据也是在a c t i o n 中绑定与 解析的。a c t i o n 完成页面数据的处理后,交由j s p 展现出来,同时使用资源文件 a p p l i c a t i o n r e s o u r c e s p r o p e r t i e s 进行国际化【2 6 】。t a gl i b r a r i e s 负责表示层的代 码重用。其中红框内的部分就是s t r u t s 架构的表示层部分。它由j s p 文件、s t r u t s 标签文件和资源文件组成。 下面简要介绍一下s t r u t s 的表示层所采用的几项技术: j s p 文件:用j s p 语言编写的表示层界面,可以通过s t r u t s 标签与j a v ac l a s s 进行绑定。 t a gl i b r a r i e s :s t r u t s 标签文件。用来进行数据绑定,并且提供了一些常 用的页面组件,也支持自定义标签的功能。 a p p l i c a t i o nr e s o u r c e s :资源文件,负责l i o n 的字符串。通过s t r u t s 的标 签可以把这些资源文件映射到j s p 文件中,从而展现在表示层中。 s t r u t s 的其他部分,如s t r u t s - c o n f i g x m l 是s t r u t s 的配置文件,a c t i o n 和 a c t i o n f o r m 是页面模型( m o d e l ) ,他们与c o n t r o l l e r 一起构成了s t r u t s 的控制部分。 图3 2s t r u t s 的u m l 框架 1 2 软件三层架构的重构与优化技术研究第三章基于c u l 重构表示层 图3 2 用u m l 2 7 】的方式给出了s t r u t s 各组成部分的关系。其中j s pp a g e 和 a c t i o n f o r w a r d 负责表示层的展示和国际化;a c t i o nc l a s s 负责与业务逻辑层的数据交 互以及数据的解析与绑定。a c t i o n c o n t r o l l e r 负责流程控制。 c o n t r o l l e r ( 控制器) 的作用是从客户端接收请求【2 引,并且选择执行相应的业务逻 辑,然后把响应结果送回到客户端。在s t r u t s 中c o n t r o l l e r 的功能由图中a c t i o n s e r v l e t 和a c t i o n m a p p i n g 对象构成:核心是一个s e r v l e t 类型的对象a c t i o n s e r v l e t ,它用来 接收客户端的请求。a c t i o n s e r v l e t 包括一组基于配置的a c t i o n m a p p i n g 对象,每个 a c t i o n m a p p i n g 对象实现了一个请求到一个具体的m o d e l 部分中a c t i o n 处理器对象之 间的映射。 s t r u t s 为m o d e l 部分提供了a c t i o n 和a c t i o n f o r m 对象,所有的a c t i o n 处理器对 象都是开发者从s t r u t s 的a c t i o n 类派生的予类。a c t i o n 处理器对象封装了具体的处理 逻辑,调用业务逻辑模块,并且把响应提交到合适的v i e w 组件以产生响应。s t r u t s 提供的a c t i o n f o r m 组件对象,它可以通过定义属性描述客户端表单数据。开发者可 以从它派生子类对象,利用它和s t r u t s 提供的自定义标记库结合可以实现对客户端的 表单数据的良好封装和支持,a c t i o n 处理器对象可以直接对它进行读写,而不再需要 和r e q u e s t 、r e s p o n s e 对象进行数据交互。通过a c t i o n f o r m 组件对象实现了对v i e w 和 m o d e l 之间交互的支持。s t r u t s 通常建议使用一组j a v a b e a n 2 9 1 表示系统的内部状态, 根据系统的复杂度也可以使用像e m i t ye j b 和s e s s i o ne j b 等组件来实现系统状态。 s t r u t s 建议在实现时把“做什么( a c t i o n ) 和“如何做 ( 业务逻辑) 分离。这样 可以实现业务逻辑的重用。 s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。s t r u t s 提供了自定义的标记库 可以使用,通过这些自定义标记可以和系统的m o d e l 部分交互,通过使用这些自定义 标记创建的j s p 表单,可以实现和m o d e l 部分中的a c t i o n f o r m 的映射,完成对用户 数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。 虽然s t r u t s 在数据绑定、国际化以及代码重用等方面具有许多优点,但其对表示 层的逻辑处理还是依赖于服务器环境的。数据的交互绑定是在服务器上通过a c t i o n c l a s s 完成的;j s p 的编译和运行是在服务器的w e b 容器中完成的;表示层的国际化 第三章基于c u i _ 重构表示层软件三层架构的晕构与优化技术研究 也是在服务器上进行的。因此,软件系统的运行对服务器端的要求就比较高,通常需 要l o a db a l a n c e p o 和集群的支持。 接下来本文将针对三层架构对系统环境要求高的问题,通过采用j a v a s c f i p t , a j a x ,j q u e r y 等技术,提出一种把表示层的渲染、数据绑定和国际化从服务器端转 移到客户端的c u l 架构模型。c u l 模型的特点是能够在不依赖于服务器环境的基础 上,驻留浏览器内存,并在浏览器内存中独立运行。只需同数据服务器进行少量的数 据交互即可。 3 2c u l 架构设计 本节将介绍c u l ( c l i e n t u i l a y e r ) 架构。c u l ( c l i e n t - u i l a y e r ) 架构将表示层界面 的渲染和用户的输入从w e b 服务器端转移到客户端,目的是充分利用客户端的系统 资源,降低对服务器的要求,同时能够加快页面的响应速度。 在现有的三层架构中,表示层、业务逻辑层和数据库的访问都是在服务器端完成 的。 1 4 软件三层架构的重构与优化技术研究 第三章基于c u l 重构表示层 图3 3 三层架构 如图3 3 所示,w e b 服务器不仅要完成表示层的显示界面,而且还要负责服务接 口、业务逻辑和数据访问,甚至包括安全认证和系统日志。可以看出在这个模型中, 对w e b 服务器的要求肯定是很高的,常常需要搭建服务器集群才能够真正胜任这样 的工作。 第三章基于c o l 重构表示层软件二三层架构的重构与优化技术研究 图3 4c u l 结构 如图3 4 所示,表示层的显示界面从w e b 服务器端转移到了客户端,即本文所 说的c u l 架构。为了能够在客户端生成显示界面,c u l 架构引入了a j a x ,j sc a c h e , j q u e r y , j s o n ,s o a p , r e s o u r c ef a c t o r y 等关键技术。其关键点在于: 1 ) 表示层的逻辑独立的运行在客户端上,不依赖于服务器的系统资源,从而充 分利用了客户端的资源分担了服务器的负载。 2 ) 使用j s o n + s o a p 代替x m l 作为数据传递的载体。j s o n 是专门针对j s 而 设计的数据格式,不需要专门的解析器就能够轻松解析数据,而且速度非常快,冗余 量小。 3 ) 基于a j a x 实现表示层与w e b 服务的无缝数据交互。a j a x 提交数据时不需 要提交整个页面,可以实现页面的局部刷新。减少了传

温馨提示

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

评论

0/150

提交评论