(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf_第1页
(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf_第2页
(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf_第3页
(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf_第4页
(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)dot+net平台下web+application三层模式的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 随着因特网的飞速进步和发展,分布式系统和w e b 应用系统在当 今的计算机科学中起着越来越重要的作用。在i n t e r n e t 平台之上的动 态w e b 开发是一个系统性任务,需要从网络、体系结构和数据库等角度 出发进行综合性分析和设计。 本文的主要工作是以提高软件性能、加强软件可扩展性和解决软件 维护问题为出发点,设计了一个基于n e t 平台三层w e b 应用的生产一 消费模式。首先,从面向对象和数据流角度出发,以m v c 模式和层模式 为基础,对w e b 系统进行横向分割,提出三层开发模式;其次,从用户 需求角度出发,为了增强w e b 系统的扩展性,把得到的三层模式进行纵 向分割,实现生产系统和消费系统的分离,方便开发人员在生产系统这 个大框架下,可以根据用户随时提出的需求对系统进行扩展,而对原来 的系统不会产生很大改动;再次利用给出的模式设计了吉林省自考办考 务系统来,同时这个三层的生产一消费模式进行测试和分析;最后针对 此设计模式,提出几点安全性看法。 关键字:w e bb $ 生产一消费开发模式n e t a b s t r a c t w i t ht h er a d i da d v a n c e m e n ta n dd e p l o y m e n to fi n t e r n e t d i s t r i b u t e ds y s t e m sa n dw e ba p p l i c a t i o n sp l a ya ni m p o r t a n tr o l e i nc o m p u t e rs c i e n c en o w a d a y s t h em o s tw i d e l yd e p l o y e dw e b a p p l i c a t i o na r c h i t e c t u r ei st h eb ss y s t e m ,w h i c hi sc o m p o s e do f ab r o w s e r ,af r o n t e n dw e bs e r v e r ,a na p p li c a t i o ns e r v e ra n da b a c k e n dd a t a b a s e s od e v e l o p i n gad y n a m i cw e ba p p l i c a t i o ni sa s y s t e m i ct a s k ,w h i c hn e e d sc o m p r e h e n s i v ea n a l y s i sa n dd e s i g nf r o m t h ea s p e c to fn e t w o r k ,a r c h i t e c t u r ea n dd a t a b a s e t h ec o n t e n to ft h ep a p e rt a k e sr a i s i n gs o f t w a r ef u n c t i o na n d m a k i n gs o f t w a r em a i n t e n a n c ee a s i l ya sp o i n to fd e p a r t u r e ,d e s i g n s at h r e el a y e r sd e s i g np a t t e r no fw e ba p p l i c a t i o nb a s e do nd o tn e t f i r s t l y ,u n d e r s t a n dt h ep r i n c i p l ea n dc h a r a c t e r i s t i c so fw e b 。 h a v eat h o r o u g hr e s e a r c hi nt w of a m e dd e s i g np a t t e r na n dc o m b i n e d t w op a t t e r na c c o r d i n gt ot h e i rc h a r a c t e r i s t i c si nt o l e n g t h w a y s d e s i g nm o d e s e c o n d l y ,i n v e n tah o r i z o n t a lp r o d u c e c o n s u m e p a t t e r na c c o r d i n gt ot h es t r o n ga l t e r n a n tc h a r a c t e r i s t i a so fw e b t h i r d l yat e s t b e di sb u i i tt om e a s u r em o d e lp a r a m e t e r sc a l l e d e x a m - m a n a g i n go fs e l f - e d u c a t e de x a m i n eo f f i c eo fj i l i np r o v i n c e l a s t l y ,g i v es o m ea t t i t u d eo ns e c u r i t ya b o u to u rd e s i g np a t t e r n k e y w o r d s :w e b b s p r o d u c e - c o n s u m ed e s i g np a t t e r n n e t 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文, d o tn e t 平台下w e b a p p l i c a t i o n 三层模式的研究与实现是本人在指导教师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全 意识到本声明的法律结果由本人承担。 储躲瓤阻呤孕日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学 位论文版权使用规定”,同意长春理工大学保留并向国家有关部门或机 构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权 长春理工大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者躲劫卫型幽年厶4 日 指导导师签名 年一月一日 第一章绪论 1 1 本课题研究目的和意义 随着i n t e r n e t 的快速发展,w e b 应用已经成为i n t e r n e t 上应用最 为广泛的服务,成为i n t e r n e t 应用的基础平台。w e b 习惯上也被称为 网站。吉林省自学考试办公室考务系统( s e m m i s ) 是吉林省教务管理的 重要组成部分。原来己经建立了一个网站,但是原网站是静态网站,在 更新、交互、平台增值等方面有很大制约。现在准备重新规划建设一个 新的动态网站,网站分为两期来完成,首先建设一个以考务管理为主要 内容的的网站。主要包括个人工作、单位信息、单位工作和系统管理几 个模块,设计公告、发文、工作日程、应急通讯、考务指挥、工作汇报、 短消息和论坛等等功能:第二期再加上在线视频会议等内容。本次完成 了一期内容的建设。本人参加了该考务平台的分析、设计和编码实现等 工作。本文的撰写即以此项目的完成为背景,通过s e 删i s 验证本文阐 述的生产消费模式,以达到研究的目的。 近十年来,基于i n t e r n e t 的应用正以前所未有的高速度向前发展, 其中一个重要的方向就是基于w e ba p p l i c a t i o n 的发展。w e b 应用系统 规模和复杂程度的不断增大,给系统的开发带来了许多新的问题,如:程 序代码的耦合度增大,代码的可维护性、应用框架及组件的可重用性降 低等。针对这些问题,在基于类似于m v c 的多层w e b 体系结构基础上, 对多层开发模式做进一步研究,设计了一种优化的分层模型,详细描述 了分层模型的设计思想与实现技术,并通过实例说明了该分层模型的具 体应用。另外,随着工作节奏的加快,用户需求也随着时间、空间变化 产生很大的可变性。针对这个问题,本文所研究的生产一消费模式合理 解决生产一消费分离这个难题,开发人员可以根据用户随时提出的新的 需求对功能模块增添以及修改。可以发现,该优化分层模型方案增加了 模型部分的重用性,降低了层与层之间的耦合度,使得系统具有更好的 可维护性、可扩充性和可移植性,并在软件人性化上下了很大的工夫。 软件工程也是同样的道理,一个成熟的软件行业,在一些相关项目和系 统中,不同的部件是可以随意换装的,比如微软的许多桌面软件,在很 多操作模块( 如打开文件,保存文件等等) 都是复用的同一套功能模块, 而这些接口又通过一些类库提供给了桌面应用程序开发者方便挂接,这 就是复用化的模块设计明显的一个佐证。 通过分析传统w e b 分层设计的思想,讨论了利用n e t 框架实现w e b 分层设计的优势:并且以吉林省自学考试办公室考务管理系统的开发为 例,给出了n e t 框架下如何设计分层的w e b 应用程序以及如何利用n e t 的类结构来实现这种设计,解决了开发中的一些关键问题,对同类系统 的开发具有一定的指导作用。 1 2 开发模式研究现状 尽管人们己经普遍认识到,模式的设计选择对于软件的长远成功是 至关重要的,但是在现实实践中,软件体系结构的理论和工具还没有形 成系统、规范的概念和描述。人们普遍使用自己定义的符号、线条、图 形、洗明来描述自己的系统设计。甚至在表达那些人们普遍接受的设计 部件时,不同的设计者也常采用各自的表达。初看起来,当前体系结构 描述中存在的这些不规范性,似乎说明了模式描述对于软件设计来说是 无足轻重的。然而,事实恰好相反,这种不规范的现象的存在主要是由 两方面的原因造成的: 首先,由于模式所处的背景、使用环境、开发目的、历史发展的不 同,在长期的工程实践中,软件设计人员和公司已经形成自有的概念、 用语和软件系统的设计表达方式,这种习惯势力的影响在众多领域中都 可以见到。当前体系结构的研究己经说明,体系结构的表达是多层次, 多方面的,虽然已经提出了多种模式的表达视图,但是目前还没有形成 统一的结构表达方法。所以,目前采用的各种模式表达,对于模式的总 体目标而一言都是不全面的。 其次,对于实际系统的构成而言,高层次的模式反映的是系统各组 成部分之间较粗的、抽象的关系。然而,系统代码的构成细节,对于理 解诸如吞吐量、通信模式、控制结构、司一扩展性的系统层面的概念, 己经提供了直接而自然的分析框架。模式的描述不过是把这些特性更加 表面化。虽然这不能说明我们不需要模式的形式化描述和更加严格的分 析方法,但是在已经完成了代码后再建立体系结构描述,大多数开发人 员都认为这是一种画蛇添足的做法。 造成这种现象的原因,在于传统的软件设计的重点是关注功能分析 和代码实现,而不是关注于系统的体系结构。也就是说,没有采用以体 系结构的中心的软件开发方法。软件建模语台的发展和成熟,为以体系 结构为中心的软件升发方法提供了有力的描述工具支持。软件体系结构 建模是工业化生产、软件开发的基本工作。复杂的系统难以被人们完全 理解,通过建立良好的模型,可以为开发成功的软件系统打下基础。 2 1 3 本课题研究内容和论文结构安排 1 3 1 本课题研究方内容 本课题研究的内容主要包括以下几点: 1 将面向对象的u m l 建模与w e b 应用系统开发相结合,以面向对象 和数据流理论为基础将整个系统分成适合a s p n e t 开发方式的用户界 面层、业务逻辑层、数据底层三层结构。以此方式构造的w e b 应用不仅 达到了代码组织结构清晰明朗、高重用性、适用性、易于维护和移植的 目标,而且可以提高w e b 应用系统的开发速度。解决了目前大型w e b 程 序开发中,代码适用性、重用性差,及难于维护和移植的问题。 2 然后以即时满足用户需求为灵感,对传统的层次模式进行纵向分 解,生成生产一消费模式。这种生产一消费分离的理论将大大提高整个 w e b 系统的可扩展性,形成一个即插即用产品,满足用户对功能模块进 行增添以及修改的需求。通过分析生产一消费模型的优越性,提出了一 种用于开发和设计w e b 应用程序的设计模型。将一个大型的,错综复杂 的应用系统分解成一些相对独立的,具有高度复用性的,并能仅仅依靠 几个参数完成数据联系的模块组合,是本文的一个主要研究方向。 3 利用这种设计模型开发吉林省自学考试办公室考务管理系统。 4 对该模式进行安全性进行研究,提出几点提高安全性的看法。 1 3 1 论文结构安排 第一章绪论,介绍了本课题主要研究内容和意义,并对课题在国 内外的发展现状进行分析,最后阐述了本文的主要研究内容。 第二章基于i n t e r n e t 的分布式多层开发模式,主要研究了与本文 相关的理论知识,并总结出一种叫做生产一消费的三层模式。 第三章生产一模式分析与设计,本章首先详细阐述了生产消费模 式的主要内容,对模式功能细致分析,然后给出了由功能分析到模式的 详细映射步骤,最后按照得到的模式结构映射出一个系统模型。 第四章基于生产一消费模式吉林省自考办考务系统设计与实现, 本章介绍了如何利用生产消费模式设计s e m m i s 。 第五章系统安全性实现,给出生产消费模式的几点安全性看法。 第六章总结本文的工作,提出了本文未能解决一些关键问题下一 步的主要工作。 第二章基于in t e r n e t 布式多层开发模式 二十世纪六十年代的软件危机让人们开始重视软件工程的研究。起 初人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统 规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重 要。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说 明比起对计算的算法和数据结构的选择己经变得明显重要得多。在这种 背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的 系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的 最有希望的途径。 二世纪九十年代以来,随着个人计算机和上作站的普及以及网络通 信技术的发展,计算资源和信息资源被分布在网络的各个节点上,这使 得计算模式由原来的主机系统向客户端服务器模式发展,分布计算逐 渐成为计算技术的主流。分布计算技术和面向对象技术衔接而形成的分 布式对象技术已经发展成为分布异构环境下建立应用系统的核心技术。 与此相对应的出现了基于多层结构的分布式应用系统。 本章主要对不同的设计模式进行分析,根据分治法的思想从横向和 纵向两个角度出发,然后根据生产一消费模式的目的和意义进行修改和 综合,以达到提出的要求。 但是在分析和提出开发模式之前,我们先讨论一下w e b 的原理和技 术,来保证我们的开发模式有的放矢。 2 1w e b 原理 w e ba p p l i c a t i o n “3 是基于i n t e r n e t 的种应用和服务,i n e r n e 的实现基于t c p i p 协议簇0 3 ,t c p i p 协议簇的实现形成一种四层模型 的t c p i p 网络体系结构。其中,w e b 应用程序属于应用层范畴,属于 应用层的协议主要有h t t p 、f t p 、s m t p 等,w e b 服务器与浏览器交互时 以h t t p 协议作为数据传送基础。 w e b 的实现主要依赖于三个机制:一是资源定位机制,如u r l : 二 是通信机制,如h t t p 协议;三是信息显示机制,如h t m l 。 4 2 1 1w e b 特点 第一、w e b 是图形化的和易于导航的 w e b 非常流行的一个很重要的原因就在于它可以在一页上同时显示 色彩丰富的图形和文本的性能。在w e b 之前i n t e r n e t 上的信息只有文 本形式。w e b 可以提供将图形、音频、视频信息集合于一体的特性。同 时,w e b 是非常易于导航的,只需要从一个连接跳到另一个连接,就可 以在各页各站点之间进行浏览了。 第二、w e b 与平台无关 无论你的系统平台是什么,你都可以通过i n t e r n e t 访问w w w 。浏 览w w w 对你的系统平台没有什么限制。无论从w i n d o w s 平台、u n i x 平 台、m a c i n t o s h 还是别的什么平台我们都可以访问w w w 。对w w w 的访问 是通过一种叫做浏览器( b r o w s e r ) 的软件实现的。如n e t s c a p e 的 n a v i g a t o r 、n c s a 的m o s a i c 、m i c r o s o f t 的e x p l o r e r 等。 第三、w e b 是分布式的 大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至 无法预知信息的多少。对于w e b 没有必要把所有信息都放在一起,信息 可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使 在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些 信息是一体的。 第四、w e b 是动态的 由于各w e b 站点的信息包含站点本身的信息,信息的提供者可以经 常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。 一般各信息站点都尽量保证信息的时间性。所以w e b 站点上的信息是动 态的、经常更新的。这一点是由信息的提供者保证的。 第五、w e b 动态的特性还表现在w e b 是交互的 w e b 的交互性首先表现在它的超连接上,用户的浏览顺序和所到站 点完全由他自己决定。另外通过f o r m 的形式可以从服务器方获得动态 的信息。用户通过填写f o r m 可以向服务器提交请求,服务器可以根据 用户的请求返回相应信息。 从客户的角度看,w e b 是w e b 页面的集合。w e b 页面一般是采用h t m l ”1 ( h y p e r t e x tm a r k u pl a n g u a g e ,超文本标记语言) 描述超媒体信息的文 本格式文件,h t m l 使用标记将信息组织成结构化的形式,这种形式是 与操作系统和应用平台无关的。客户端浏览器能够按照h t m l 语法解析 h t m l 文件,并将解析结果输出到可视化界面实现w e b 与用户的交互。 一种较新的x 札“( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 文 档也可以描述w e b 数据。h t m l 与x m l 的区别在于,h t m l 只能显示w e b 数据,但并不包含w e b 数据的逻辑结构信息;x m l 不仅能标记w e b 数据, 而且可以通过标记展示出数据的层次结构。实际上,h t m l 是国际标准 化组织制订的一种通用标记语言s g m l ( s t a n d a r dg e n e r a li z e dm a r k u p l a n g u a g e ,标准通用标记语言) 的一个应用程序,x m l 是对s g m l 进行 简化后形成的一个s g m l 子集。s g m l 和x m l 都是一种可用来定义其他语 言的元语言。w 3 c 组织已经采用x m l 对h t m l 进行了重新定义,形成了 比h t m l 更为严密的x h t m l 。但目前,h t m l 仍然是w e b 页面显示的主流 规范。 2 1 ,2w e b 两种模式 w e b 主要分为静态和动态两种模式。所谓“静态”指的就是网站 的网页内容“固定不变”,当用户浏览器通过互联网的h t t p 协议向w e b 服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态h t m l 文档传送给用户浏览器。其页面的内容使用的仅仅是标准的h t m l 代码, 若网站维护者要更新网页的内容,就必须手动地来更新其所有的h t m l 文档。如图2 1 所示: w e b 服务器 浏览器 ( 3 ) h r r p 返回到浏览器 图2 1 静态w e b 动态w e b 。1 页面是服务器接收到页面请求后,服务器端应用程序实 时生成所请求页面,并返回给客户。因此,不同客户或在不同时刻访服 务器,可能得到不同的w e b 页面。过程如图2 2 所示: 6 w e b 服务器 ( 4 ) h t t p 返回到览器 浏览器 图2 2 动态w e b 动态w e b 具备以下几个基本特征: 1 交互性:网页会根据用户的要求和选择而动态地改变和响应,浏 览器作为客户端,成为一个动态交流的桥梁,动态网页的交互性也是今 后w e b 发展的潮流。 2 自动更新:即无须手动更新h t m l 文档,便会自动生成新页面, 可以大大节省工作量。 3 因时因人而变:即当不同时间、不同用户访问同一网址时会出现 不同页面。 从客户的角度看,w e b 是种交互式系统。w e b 交互性的双方分别 是信息的生产者和消费者。可以把w e b 交互性描述为两个层次:第一层 次的反应,第二层次的反馈。作为第一层次的反应,信息消费者可以选 择信息生产者提供的信息,即控制信息集合中的信息呈现顺序。用y 表 示消费者当前看到的信息,用x 表示信息生产者提供的信息集合,则 反应可以表示为:y = x ,| x ,x :,x 。) 。 作为第二层次的反馈,信息消费者也参与到信息的生产,信息的内 容是信息生产者的输入的函数。用y 表示消费者当前看到的信息,用x 表示信息消费者的输入,f 表示输入到输出的映射关系,单向反馈可以 表示为:y = f ( x ) ,如w e b 的查询功能就是这种情况。某些情况下,反 馈是双向的,w e b 交互性的双方互为生产者和消费者,消费者的输入也 是生产者所提供信息的一种映射,如论坛网站。 2 1 3 动态w e b 先进性 从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以 展示基本的文字和图片信息,但从网站开发、管理、维护的角度来看就 有很大的差别。网站一般特点简要归纳如下: 1 动态网页以数据库技术为基础,可以大大降低网站维护的工作 量。 2 采用动态网页技术的网站可以实现更多的功能,如用户注册、用 户登录、在线调查、用户管理、订单管理等等。 3 动态网页实际上并不是独立存在于服务器上的网页文件,只有当 用户请求时服务器才返回一个完整的网页。 2 2 分层模式分析 所谓的横向分层是指把整个w e b 系统横向分解。这里主要从两个出 发点,仔细探讨层模式和m v c 模式。 2 2 1 层模式分析 2 2 1 1 层次结构适应的设计问题 一个系统的设计,是由一系列高层和底层处理构成的,且高层操作 依赖于底层,底层的操作要处理诸如硬件操作、传感器输入、从通信线 路中读信号。系统的另一端是诸如多用户电话收费的高层服务,通过通 信实现对底层的请求、应答、接受事件和传输的数据。1 这种系统需要 与垂直调用相交的水平结构,它们处在操作的统一抽象层面上。系统需 求描述了高层任务,并且构造了运行平台。系统的外部边界必须遵守预 先定义好的接口规范。层次结构系统的出现主要是为了适应以下的设计 问题: 1 对系统某处的修改不应该影响整个系统,而应该被限定在一个 部件内部而不造成其它影响。 2 接口应当稳定,甚至可以标准化。 3 系统的构成应该灵活、可更换。部件可以被其它类似的部件替 换而不造成其它影响。 4 将来有必要用当前的底层设计来支持其它系统的设计。 5 系统的开发需要划分多个部分,比如由多个团队协作开发。 2 2 1 2 层次结构模型 从高层来看层次结构模型非常简单,它把系统分成几个层次并且它 们一层层的叠加起来,最下面的抽象层成为第一层,它是系统的基础。 依此类推,把第j 层放在第j 一1 层上,只到系统顶层,称为n 层。层 次结构如图2 3 所示: 的最高级 的最低级 图2 3 层次结构抽象图 第j 层的大部分服务是由第j 一1 层提供的。换句话说,每一层的 服务都是由其下面各层提供的。层j 的服务也许会依赖于层j 的其它服 务。为此,第j 层的某些服务仅仅是把需求传递到第j l 层,而自己 没有完成任何实质性的操作。该模型方案的主要特定是层j 的服务仅仅 被层j + 1 调用,各层之间没有更多的依赖性。这种结构类似于堆栈的 层结构,每一独立的层都保护较低的层次不被更高的层次直接访问。 2 2 1 3 层次结构实现 下面的步骤描述了关于层次结构定义的逐步细化的一般方法。对于 不同的设计问题,每个步骤并不都是必需的。 1 定义为合适的分层而采取的抽象标准。这种标准通常反映了与 平台概念的差距“3 。例如,在软件开发中,根据距硬件接近或距应用接 近的程度建立层次,这样,某个应用可能建立如下分层:用户界面、特 定功能模块、公共服务、操作系统接口、操作系统、硬件层。 2 抽象标准”。决定模型层次的数目。有时从抽象到层次的映射关 9 系不是很明显。当要把一层分成两层或把两层合成一层是要考虑层次的 平衡。 3 给各个层次命名”和分配任务。最顶层的任务就是整个系统从 用户出发的任务。如果采用自底向上的工作方式,较高层次就建立在较 低层次之上。这种方式需要对问题域具有丰富的经验,以便在确定高层 次之前找到低层次的合适抽象。最重要的原则是层次之间要严格分开, 确保没有部件会跨越两层以上删。层j 函数的参数、返回值、错误类型 都应当限定在程序语言的系统类型、层j 定义的类型或从共享数据模块 引用的类型内。尽量争取在较高的层次定义更多的服务,相反,底层应 该设法保持“瘦小”,这样可以避免开发者了解太多的底层细节。这常 常被称为“倒金字塔式的复用”。 4 减少层次内各部件之间的藕合。一个层次内往往存在多个互相 作用的部件,在层次的数目和各个层次的任务确定以后,接着便要整理 层次内部各个部件之间的关系,应该使各个部件之间保持相对独立。在 这五个步骤之后,层次结构的设计实现工作并没有完全结束。在具体的 应用环境中,层次体系结构的实现还有许多问题需要考虑,如错误处理 策略。对于层次结构,错误处理过程比较复杂。对错误的处理可以在错 误发生的地方,或是送到上一层处理。对于后者,底层必须提供对于高 层有意义的错误描述。尽可能的把错误在底层处理,可以避免高层陷入 更多的错误处理细节和编写更多的代码。 2 2 1 4 层次结构优缺点 层次结构优点主要包括一下几个方面: 1 层次的复用性“。如果层次很好地体现了抽象并且具有定义良 好、文档化的接口,那么该层能在多个环境中使用。 2 对标准化的支持。清晰定义并广泛接受的抽象层次能够促进实 现标准化的任务和接口开发,同样接口的不同实现能够互换使用。 3 依赖性本地化。层次间的标准接口通常把代码变化的影响限制 在其所在的层次之内。硬件、操作系统、窗口系统、特别数据格式等等 的变化常常仅仅影响一个层次,并且可以仅改变受到影响的,而不必要 更改其余的层次。这样做支持了系统的可移植性和可测试性“。 4 可替换性。独立层次的实现能够轻易地被功能相同的模块替换。 如果层次之间的联系在代码中是固定的,那么联系能够根据新层次实现 的名称来更新“。 当然层次结构也有他自己不足的地方,主要包括一下几个方面: 1 改变行为的连锁效应。当某个层次的构成和行为发生变化时会 1 0 产生严重的连锁反应问题n “。在维护升级时,如果必须在许多层次上做 大量的工作,那么层次结构将变成一种缺点。 2 低效率。分层结构通常要比单层结构的效率低“。如果高层服 务严重地依赖底层服务,那么必须穿越许多中间层进行数据的传送,甚 至需要传送多次。这种现象对于底层产生的结果和错误信息的处理也会 发生。例如,通信协议在从高层传送信息是需要增加信息头和尾。 3 包含许多不必要的工作。如果底层执行某些高层并不需要的甚 至重复地工作,对于软件的整体性能就有消极的影响。高层请求通常会 导致多次对底层的同样的要求。层次数太多还会在层次间传送变量和返 回值时带来额外的开销。 2 。2 2w c 模式分析 m v c ( m o d e l v i e w c o n t r o l l e r ) 设计模式是一种最早应用于 s m a l l t a l k 8 0 的设计范式“。m v c 中m o d e l 表示用户与之交互的对象, 通常包括业务数据和业务逻辑,v i e w 从m o d e 中抽取数据并将其以用 户易于理解和交互的方式显示( 输出) ,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 和v i e w 对m o d e l 有充分的了解,而m o d e l 对c o n t r o l l e r 和v i e w 除了 知道它们存在以外知之甚少。因此,m v c 设计模式的一个主要优点就是: 对c o n t r o l l e r 和v i e w 的改变,不会影响m o d e l 。比如,对于一个原先 为p c 机上的浏览器而开发的w e b 应用,如果需要改变为支持p d a 上的 浏览器,那么仅仅需要改变c o n t r o l l e r 和v i e w ,而不需要改变m o d e l 。 c 设计模式因其模块划分清晰、责任明确、易重用、易伸缩和易 维护,已成为当今设计交互式应用的事实上的标准。在j 2 e ew e b 。应 用中,m v c 设计模式已经有比较成熟和广泛的应用的设计方案,比如 s t r u t s 。但在n e tw e b 应用中,由于m i c r o s o f t 推荐使用c o d eb e h i n d “6 代码来处理每一页面的用户交互,怎样应用m 、,c 设计模式,一直是许 多人感到困惑的问题。 2 2 3 层模式和m v o 模式综合分析 本质上讲,这两个模式是解决问题的不同视图的描述,他们在抽象 层次上是相同的,在处理思想上是相通的,在方法论上是部分重台的。 两种模式都针对一个软件系统的体系结构,分析处理的思想和方法是: 采用面向对象的分析方法,将一个系统视为对象的组合,将对象分离, 使得一个对象的改变能够影响另外一些对象,而这个对象并不需要知道 那些被影响的对象的细节;或者,一个对象的改变能够影响系统的功能, 但并不影响其它的对象。二者都强调显示与逻辑的分离。 m v c 模式主要从面向对象角度出发形成视图,层模式主要从数据流 角度出发形成视图。 应用这两种模式应该注意:对系统进行适当的逻辑分解:对象的分 解应该高内聚、低偶合;考虑子系统间的接口和通信。对模式的不恰当 使用,可能反而增加复杂性、降低效率。 2 3 提出生产一消费模式 经过对m v c 模式和层模式的分析,将他们的思想、要点和结构应用 到本次具体开发的动态w e b ,衡量传统w e b 开发与当今流行的w e b 开发 模式的优缺点,形成一种生产一消费体系结构模式的动态w e b ,并据 此进行系统的开发和设计。 2 3 1 生产一消费模式描述 从数据流的角度看,数据库是动态w e b 应用系统的核心和支撑,数 据库是关键信息的容器,信息生产者提供的关键信息被放入数据库,信 息消费者所得到的关键信息来自于数据库。动态w e b 一般包括前台、后 台两个子系统,前台完成与终端用户的交互,后台完成数据库管理。 为此,可以用一种分层层结构的生产消费模式u ”,描述动态w e b 的逻辑体系结构,这种模式基于两个出发点:生产系统、消费系统” 组成一个整体体系,动态w e b 是一种数据库驱动的应用系统。在b s 结 构中,w e b 应用程序是与客户端无关的,因为客户端浏览器已经是客户 端操作系统的一部分,只要服务器端没有限制,客户端可以任意成为或 退b s 中的b 。因此,只需从服务器端考虑w e b 的模式。 首先从动态和b 的逻辑实体功能出发,进行垂直方向的切分,分为 生产、消费两部分。生产和消费部分既是组成动态w e b 的两个逻辑实体, 也是动态w e b 要完成的两个功能。生产者与消费者不发生直接联系,以 数据库为中介,数据库是业务数据的存储池,因此成为连接两个子系统 的枢纽“。生产部分响应信息生产者对数据库的管理请求,数据被写入 数据库,消费部分响应信息消费者的消费请求,从数据库读出数据并呈 现给消费者。模式结构如图2 4 所示: 1 2 生产存储消费 用户界面层用户界面层 厂、 lff 篁墨 、- 、, 管理 - 一 数据库 业务逻辑层 - - - - - - - 一- - - 业务逻辑层 数据 数据 、 图2 4 三层的生产一储存一消费模式 其次,从程序构造的逻辑结构出发,在生产部分和消费部分各自内 部,进行水平方向的切分,划分为n 层。一般的w e b 应用,n 可以为3 , 从高到低为:用户界面层,业务逻辑层( 可分为应用层、数据服务层) 、 数据底层。业务逻辑完成界面显示,接受用户请求。业务逻辑层包含控 制信息和业务逻辑,处理用户请求,向用户端返回相应数据。完成从数 据库读、写数据的功能。数据底层储存业务数据和系统数据等支撑信息。 2 3 2 生产一消费模式进一步分析 生产一消费模式中层的关系与特点:强调用户界面层的独立性,实 现界面与计算的分离;各层相对独立,便于分工开发,以及修改和维护: 与数据库的交互仅由业务逻辑层中的数据服务层完成,其他层通过数据 服务层完成数据库相关操作,数据库成为公共的数据池。 在业务逻辑层中的应用层、数据服务层内部,还可以根据功能划分, 形成一些纵向划分的子系统,子系统经过两层的分割,形成一些平行的 相对独立的子部件,他们之间可能功能相关,但是互相之间没有直接关 联,一个子部件的变化不会影响其他的子部件,所有子部件与外界的联 系通道只是子部件所在层与其他层的接口。因为子系统是里纵向平行, 当软件需求发生变化,需要修改或增加一个子系统时,每一个需求变动 的影响限制在某一个子系统的范围内,而不会涉及到其他线索,这样, 就把软件需求变动的影响局部化了。 其次,两个子系统内部会有不同的对象,这些对象呈纵向分布,对 象的属性和方法可以分散在横向划分的四个层次中,因此当这些对象的 属性和方法发生改变时,只需在属性和方法所在的层对其进行修改即 可,因此分层和面向对象相结合,可以缓冲对象内部的变动对系统的影 响。例如,一个电子商务w e b 中,产品就是一种对象,产品属性的数据 存储在数据库中:数据服务层读取这些数据,并通过接口供应用层调用: 应用层读取数据服务层提供的数据并完成对订购、查询等方法的调用: 用户界面层完成对访问产品的交互界面的呈现。当产品的处理逻辑发生 变化时,可以只在应用层中对类的方法进行修改,或者修改数据服务层 中的数据调用规则。 这种划分层次的思想借鉴了结构化分析方法的思想。结构化方法是 针对数据流处理而产生和发展的,它适于分析数据流驱动并且数据流向 比较清晰的中小系统,一般这些数据之间自然存在着一种层次关系,划 分层次的方法反映出了动态w e b 的这种特点,这正是这种层次结构的生 命力所在。 总的来看,生产一消费模式形成一种正交的体系结构,纵向划分以 对象和功能为主,横向划分以数据层次为主,这样能比较清晰全面地展 示动态w e b 逻辑体系结构,也有助于适应系统变化,使系统易于维护和 扩展。 w e b 应用较为简单时,也可以将数据服务层合并进应用层。w e b 应 用较为复杂时,还可以对应用层进行细分,形成更多层。 1 4 第三章生产一模式分析与设计 开发一个系统,用户最看重的是系统的功能性,因此首先应明确系 统应该完成哪些功能。根据生产一消费模式,消费子系统和生产子系统 是动态w e b 中两个相对独立的模块,在功能分析时,分别对这两个模块 进行分析。经过调查、分析和交流,确定这两个模块应该有以下功能。 3 1 模式功能分析 3 1 1 生产子系统功能分析 生产子系统简要描述系统的目的、主要功能及约束条件。细分为系 统总体设计思想,系统总体设计结构和系统模块划分。生产子系统设计 思想说明系统设计所遵循的标准和规范,为实现需求所采取的思路,系 统的可靠性、可用性如何保证等;总体设计结构通过系统结构图描述系 统的总体结构。 生产子系统,不是一组a p t 库,而是一种半成品,来提供二次开发 的方便。而所i f f - - 次开发,并非是指编码,而特指在此基础上的操作和 配置。即,一个应用在使用生产系统后,新的业务功能由系统统一配置 使用,倘有未提供消费系统实现,则可以通过插件之方式。 因此,生产一消费模式的长处在于开发的高效,周期短,易于客制 化,并且对于既有的解决方案进行足够的重用,同时通过框架的统一性 达到其可维护和知识共享的目的。 基于此原因,生产系统的设计方向要本着以下的几个原则: 首先要有足够细粒度的框架模块,包括配置;其次要弱化生产系统 本身在应用中的体现,凸现功能模块;再次弱化生产系统对模块的限制, 即形成模块制约的效果,而不是生产系统的制约;还需要约定模块的技 术开始标准,在标准中弱化技术对业务之制约;最后要针对性的面对管 理水平不够的企业提出管理方案、案例。 一般生产系统的功能如下: 1 功能模块管理 系统管理员可以根据工作需要对功能模块进行合理配置,包括添 加、修改、删除。满足不同用户的各种实际需求。 2 用户管理 系统管理员对用户的管理包括对用户本身和对用户权限的管理。 3 登录管理 管理员进入管理功能之前,首先进行登录,对不同的管理员显示不 同的管理功能。 以上这些功能是从用户从自身角度出发提出的功能,因此是系统开 发的基础,系统开发可以有多种方法、结构和模式,但是最后呈现给用 户的系统应该能够完成用户提出的功能。 3 1 2 消费子系统功能分析 消费子系统即系统的前台,为w e b 访问者提供信息的呈现,消费予 系统的用户是w e b 的访问者。为w e b 提供各种应用的功能模块,满足用 户各种需求。因此,消费子系统的开发需要开发人员与用户进行详尽的 沟通。消费子系统中各个功能模块划分清晰描述系统的模块总体结构, 在报告中描述清楚各模块子系统的功能、界面、接口、数据存储要求、 确定系统的实现概貌以作为详细设计的基础,要在图中显著地区分出本 系统内部的模块子系统和外部的模块子系统。模块的获取开始时根据 业务逻辑先做出初始的模块子系统划分,然后描述系统各项功能的流 程,在描述流程的过程中,参照上述的模块子系统的划分原则,也许 就会发现初始划分的不合理处,再根据需要修改模块子系统的划分, 这样反复迭代,就形成了合理的模块子系统的划分。 因此消费系统的功能性设计要考虑以下几个必要步骤: 逐个描述系统的功能性需求以及可能转化为功能性需求的质量属 性需求和安全性需求的实现流程,目的是明确系统功能实现的流程、明 确各模块子系统的具体功能、明确各模块子系统之间的接口、明确系 统的外部接口。 针对每个功能给出其场景描述,一个功能通常包含多个场景,每个 场景是执行这个功能的一个实例,这个实例反映了这个功能的这个场景 中各个相关对象的行为和关联。一般地,我们会分析出一个功能包含哪 些典型的场景,包括正常情况场景和异常情况场景,通过描述这些典型 场景来充分地说明这个功能。 实际上每个消费子系统豆都相当于一个独立的系统,因此开发的时 候也应该严格按照软件工程的瀑布理论进行设计开发。 3 2 功能分析到结构模式映射 用户功能是一个系统的用户角度的视图,下一步应该据此设计系统 的开发者视图,即怎样映射到生产一消费三层结构模式中,映射的方法 采用面向对象的分析和设计方法,并采用了u m l 建模方法。 3 2 1 面向对象方法 面向对象方法( o b j e c t o r i e n t e dm e t h o d ) 是一种把面向对象的思 想应用于软件开发过程中,指导开发活动的系统方法,简称o o ( o b j e c t o r i e n t e d ) 方法1 ,是建立在“对象”概念基础上的方法学。 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关 系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有 层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基 于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、 刻画客观世界和设计、构建相应的软件系统。 面向对象方法作为一种新型的独具优越性的新方法正引起全世界 越来越广泛的关注和高度的重视,它被誉为”研究高技术的好方法”,更 是当前计算机界关心的重点。十多年来,在对o o 方法如火如荼的研究 热潮中,许多专家和学者预言:正像7 0 年代结构化方法对计算机技术 应用所产生的巨大影响和促进那样,9 0 年代o o 方法会强烈地影响、推 动和促进一系列高技术的发展和多学科的综合o ,。 面向对象方法都支持三种基本的活动“”:识别对象和类,描述对象 和类之间的关系,以及通过描述每个类的功能定义对象的行为“。 为了发现对象和类,开发人员要在系统需求和系统分析的文档中查 找名词和名词短语,包括可感知的事物( 报文、工作汇报、李明) ;角 色( 管理员、普通用户、注册用户) ;事件( 登陆、发文、发消息) ;互 相作用( 批文、视频会议、人员变动) ;人员;场所;组织;设备;和 地点。通过浏览使用系统的脚本发现重要的对象和其责任,是面向对象 分析和设计过程的初期重要的技术。 当重要的对象被发现后,通过一组互相关联的模型详细表示类之间 的关系和对象的行为,这些模型从四个不同的侧面表示了软件的体系结 构:静态逻辑、动态逻辑、静态物理和动态物理m 。 静态逻辑模型描述实例化( 类成员关系) 、关联、聚集( 整体部分) 、 和一般化( 继承) 等关系。这被称为对象模型。一般化关系表示属性和 方法的继承关系。定义对象模型的图形符号体系通

温馨提示

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

评论

0/150

提交评论