




已阅读5页,还剩83页未读, 继续免费阅读
(计算机软件与理论专业论文)基于设计模式的国家煤矿安全生产系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 中文摘要 摘要:随着电子、通信、以及计算机技术的飞速发展,政府机构应用现代信息和 通信技术,将管理和服务通过网络技术进行集成,建设电子政务系统成为构建和 谐社会的重要手段。w e b 2 0 技术的不断发展使得b s 结构凭借其易于部署等优点 成为网络系统开发的首选。日趋成熟的j 2 e e 技术成为构建企业级应用的标准平台, 从上世纪9 0 年代以来,数据结构和算法已经不成为大型通用软件设计中的问 题,设计一个重用性和扩展性好的软件架构成为软件工程领域中关注的热点。g o f 小组提出的2 3 种经典的设计模式,为大型软件的设计提供了抽象的理论知识和优 秀的解决方案。这为本文系统的构建奠定了理论基础。 本文首先介绍了国家安全生产信息系统构建的背景,意义以及相关技术。紧接 着介绍了设计模式的相关知识,重点总结了设计模式的核心思想,同时介绍了微 架构理论。然后讨论了国家安全生产信息系统的宏观体系结构和设计思想,重点 阐述了体系结构中每一层设计理念和设计模式在每一层中的应用。 最后,文章描述了系统的业务功能,指出了系统的业务结构。接着在系统部署 模型基础上提出了开发模型,详细叙述了开发模型每一层的具体实现。随后以系 统的报表采集业务模块为例,重点介绍如何利用设计模式的微架构思想来设计报 表采集框架的采集流程,外网用户登录和企业编码生成这三个具体的业务单元。 然后,文章详细阐述了报表采集,报表展示,煤矿安全许可证管理以及企业信息 管理模块的具体的设计与实现。 关键词:j 2 e e ;g o f ;设计模式;微架构;s p r i n g ;h i b e r n a t e ;a j a x 分类号:t p 3 1 1 1 北京交通人学硕士学位论文 a bs t r a c t a b s t r a c t :a l o n gw i t ht h er a p i dd e v e l o p m e n to fe l e c t r o n , c o m m u n i c a t i o na n d c o m p u t e rt e c h n o l o g y , t h eg o v e r n m e n to r g a n i z a t i o n su s em o d e mi n f o r m a t i o n a n d c o m m u n i c a t i o nt e c h n o l o g yt oi n t e g r a t em a n a g e m e n ta n ds e r v i c eb yi n t e m e tt e c h n o l o g y , a n db u i l d i n ge l e c t r o n i cg o v e r n m e n t a la f f a i rs y s t e mb e c o m e sa ni m p o r t a n tm e a no f c o n s t r u c th a r m o n i o u ss o c i e t y w i t ht h ec o n t i n u a ld e v e l o p m e n to fw e b2 0t e c h n o l o g y , b ss t r u c t u r eb e c o m e sf i r s ts e l e c t i o no fd e v e l o p i n gw e ba p p l i c a t i o ns y s t e md e p e n d i n g o nb ss t r u c t u r e se a s yt od e p l o ya n do t h e rm e r i t s j 2 e et e c h n o l o g i e sh a v eb e c o m et h e s t a n d a r dp l a t f o r mo fb u i l d i n ge n t e r p r i s el e v e la p p l i c a t i o ns y s t e m ,w h i c ha r eb e c o m i n g m a t u r eg r a d u a l l y f r o mn i n t hd e c a d eo fl a s tc e n t u r y , d a t as t r u c t u r ea n da l g o r i t h md o e sn o tb e c o m eb i g p r o b l e m so fl a r g ec o m m o ns o f t w a r ed e s i g n d e s i g n i n ga w e l lr e u s a b l ea n de x p a n d a b l e s o f t w a r ea r c h i t e c t u r ei sb e c o m i n gh o ti s s u eo fs o f t w a r ee n g i n e e r i n ga r e a t h eg o f ( g a n go ff o u r ) p u tf o r w a r d2 3c l a s s i cd e s i g np a t t e r n s t h i sp r o v i d e sa b s t r a c tt h e o r i e s a n de x c e l l e n ts o l u t i o n sf o rl a r g es o f t w a r ed e s i g n a l s ot h es y s t e mb u i l d i n gt h e o r yo ft h i s p a p e ri sb a s e do nt h e s ed e s i g np a t t e r n s a tf i r s t ,t h i sp a p e rf i r s ti n t r o d u c e st h eb a c k g r o u n d ,s i g n i f i c a n c ea n dt e c h n o l o g yo f b u i l d i n g s t a t es e c u r i t yp r o d u c t i o ni n f o r m a t i o ns y s t e m s e q u e n t i a l l y , t h ep a p e r i n t r o d u c e st h er e l a t e dk n o w l e d g eo fd e s i g np a t t e r na n dt h e nf o c u so ns u m m a r i z i n gt h e c o r e t h i n k i n g o fd e s i g np a t t e r n i nt h e m e a n t i m e , t h ep a p e r i n t r o d u c e st h e m i c r o a r c h i t e c t u r et h e o r y t h e ni td i s c u s s e st h em a c r oa r c h i t e c t u r ea n dd e s i g nt h i n k i n g o ft h es t a t es e c u r i t yp r o d u c t i o ni n f o r m a t i o ns y s t e m i tc o n c e n t r a t e so ne x p l a i n i n gt h e d e s i g ns c h e m eo fe v e r yt i e ro ft h es y s t e ma r c h i t e c t u r ea n dt h ea p p l i c a t i o no fd e s i g n p a t t e r nf o re v e r y t i e r f i n a l l y , t h ep a p e rd e s c r i b e st h eb u s i n e s sc a p a b i l i t i e s ,f i g u r e so u tt h eb u s i n e s s a r c h i t e c t u r eo fo u rs y s t e m t h e ni tb r i n g sf o r w a r ds y s t e md e v e l o p m e n tm o d e l ,e x p l a i n s c o n c r e t ei m p l e m e n to fe a c ht i e ro ft h ed e v e l o p m e n tm o d e li nd e t a i l n e x t ,i tt a k e sr e p o r t s e l e c t i o nb u s i n e s sm o d u l eo ft h es y s t e mf o re x a m p l e ,p l a c e se m p h a s i so nd i s c u s s i n g h o wt oa p p l ym i c r o - a r c h i t e c t u r et h e o r yo fd e s i g np a t t e r nf o rd e s i g n i n gt h r e ec o n c r e t e b u s i n e s su n i t so ft h er e p o r ts e l e c t i o nf r a m e w o r kw h i c hc o n t a i nr e p o r ts e l e c t i o np r o c e s s , i n t e r a c tu s e rl o g o na n dc o m p a n yc o d ec r e a t i o n n e x t ,t h ep a p e rd i s c u s s e st h ec o n c r e t e i m p l e m e n to fr e p o r ts e l e c t i o nm o d u l e ,r e p o r ts h o wm o d u l e ,s e c u r i t yl i c e n c em a n a g e m o d u l ea n dc o m p a n yi n f o r m a t i o nm a n a g em o d u l ei nd e t a i l k e y w o r d s :j 2 e e ;g o f ;d e s i g np a t t e r n ;m i c r o - a r c h i t e c t u r e ;s p r i n g ;h i b e r n a t e ;a j a x c l a s s n o :t p 3 1 1 1 v 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位敝作者虢阀彩仨 签字日期刃f 年月驴e l 一、 导师签名: ,。n 治汛教1 8 i i j 签字日期:揣年6 月i on 独创性声明 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者躲阅彩依签字脚矽厂年汐z j l o 日 致谢 本论文的工作是在我的导师冯凤娟老师的悉心指导下完成的。因此首先,我 要衷心地感谢我的导师冯凤娟老师。在课题研究期间,冯老师在学业上和生活上 给予了我很多的指导、帮助和关心,她高尚的师德、宽以待人的作风以及对学生 认真负责的态度都使我终身难忘。冯风娟老师对我的科研工作和论文都提出了许 多宝贵意见。在此,我向冯风娟老师表示诚挚的敬意和由衷的感谢。 我还要真诚地感谢中国软件技术与服务有限公司所提供的良好的实习环境, 感谢同一项目组的各位同事,由于大家的通力合作与互相帮助,才使得项目能够 顺利完成,使我能够顺利的完成课题的研究、设计、编码、调试以及文档资料整 理等工作,没有他们的帮助,就不会有今天的工作成果。 在研究生学习期间,有很多同学和朋友都给予了我真诚的关心和热情的帮助, 没有他们的帮助就没有今天毕业论文的顺利完成,在此我也衷心的感谢他们。 最后,特别感谢我的家人,他们的理解和支持使我能够在学校专心完成我的 学业! 引言 1 1 选题背景 第1 章引言 随着计算机技术和经济社会的迅速发展,信息化的建设已经广泛地渗透到了 政府管理,监督,执法的各个方面。各级政府对信息化的要求越来越迫切,尤其 是国家安全监管方面。近年来安全事故频发使得政府安全监管的信息化建设刻不 容缓。 为了提高我国安全监管和监察信息采集、处理、加工的能力,实现煤矿安全 监察、监督和行政执法工作的信息化,推动安全生产监督工作的科学发展,为了 有效进行实时事故预测、消除隐患、分析安全生产形势和及时决策,经国家发展 与改革委员会批准,作为国务院主管安全生产综合监督管理的直属机构的国家安 全生产监督管理总局将进行国家安全生产信息系统( “金安工程一期项目) 的建 设。 国家安全生产信息系统建设项目是国家安全生产信息体系建设中的主体工 程,是国家安全生产“十一五”规划中的重大建设项目之一,也是国家电子政务 重点工程项目。建设“金安”一期工程项目是国家为适应我国安全生产工作的需 要、进一步加强对安全生产的监督管理和煤矿安全监察提出的一项重要信息技术 支撑和保障举措。该工程建成后省安全生产信息系统一方面将与国家安全监管总 局联通对接,另一方面省、市、县三级安全监管机构之间实现互联互通,并初步 建立起安全监管基础数据库和应用系统的主体框架,实现安全监管业务的网络化 和信息化,使信息化建设在安全生产工作中更好地发挥作用。 在信息高速发展的今天,传统的两层结构客户端浏览器( c l i e n t s e r v e r 简 称为c s ) 面临着严峻的挑战。胖客户端把表示层和中间层混在一起编写,使得客 户端不仅要进行输入输出,还要进行数据处理,造成了服务器资源与客户端高度 耦合。客户端的连接数量受到服务器处理能力的限制,服务器维持各个客户端的 连接成为了性能的瓶颈。客户端必须要安装相应的商务逻辑,当商务逻辑稍有变 化,需要同时更新服务器和每一个客户机上的应用。c s 结构的这些不足,随着业 务量的变化,出现越来越多的问题,造成开发负担重、维护起来困难。这时基于 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 ) 架构的b s ( b r o w s e r s e r v e r ) 模式成为 了w e b 开发的首选。基于j 2 e e 架构成为国家安全生产信息化建设的一个良好的支 撑平台。j 2 e e 架构为搭建具有可集成性、可用性、可扩展性、开放性的商务系统 北京交通大学硕士学位论文 提供了良好的机制。 1 集成性:集成性主要反映在j 2 e e 平台对应用程序互操作能力的支持上。它 能够使分布在不同硬件平台和操作系统上、采用不同的语言或者开发工具生成的 各类业务应用集成在一起,构成一个统一的系统架构。 2 可用性:无数商业上成功的j 2 e e 解决方案证明j 2 e e 平台是一个成熟的框 架,确保业务应用系统能够稳定、安全、可靠地运行。 3 可扩展性:j 2 e e 平台可扩展性能够适应业务和技术的发展趋势。通过保证 当前应用的可重用性,最大程度地保护投资。 4 开放性:j 2 e e 平台采用开放技术标准,如x m l ( e x t e n s i b l em a r k u p l a n g u a g e ) 等技术,便于与基于不同开发技术实现的各种内外部系统互联互通, 提供了广泛的国际标准兼容性,具有良好的开放式架构。 由此可见,j 2 e e 架构为国家安全生产信息系统提供了强大的支撑平台,成为 该系统建设的优秀的解决方案。 1 2 国内外研究现状和发展趋势 目前国家安监总局已基本建成局机关办公涉密网,基于互联网建成的政府网 站主要实现信息发布、政府公开和初步的服务功能,但联结全国各级安全生产监 管和煤矿安全监察机构、相关单位的资源专网尚未形成,履行安全生产监管、监 察等行政执法职能的基础数据库和政务应用系统( 即国家安全生产信息系统) 仅 是局部的开发和应用,总体上还是处于起步状态。 自设立国家安全生产监督管理局、国家煤矿安全监察局以来,尽管监管监察 队伍的建设得到了不断加强,颁布一系列法律法规,并对危险源和安全隐患进行 普查和深入治理。但由于监督管理手段相对落后,造成了安全生产监管工作滞后、 被动的局面。安全生产信息报送、事故预警和监控、事故应急处理和救护还基本 处在原始的人工处理阶段。这使得对危险源和生产隐患不能有效地跟踪监管,严重 影响行政执法的效力。 放眼世界,主要的工业化国家在二十世纪九十年代初就已建立了较为完整的 政府安全生产行政执法信息系统。以美国为例:美国矿山安全健康管理局在科罗 拉多州的丹佛市为联邦政府的矿山安全执法部门建有美国矿山安全信息中心。它 的任务是负责网管和数据处理,采集矿山危险源实时数据,进行分析判断和预测, 发现事故隐患,记录整改情况,通知现场安全监察员进行监察。同时在网上接收 现场安全监察员每日的报告,对执法情况进行分析统计,确定工作重点,进行人 员调配,发布每同安全生产信息,第一时间通报安全事故等。德国、英国、南非 2 及印度也有类似的系统,为本国的安全生产管理工作提供了完善的服务。可见, 我国安全生产监督管理与国外相比差距较大,不能满足国家对安全生产管理的要 求。 由此可见,建立相对全面完善的国家安全生产业务系统,保证安全生产监管、 监察的开展是大势所趋,人心所向。 1 3 课题研究的意义 国家安全生产信息系统是国家安全生产监督管理总局、国家煤矿安全监察局 以及各级安全生产监管和煤矿监察机构为建立安全生产长效机制,实行监管、监 察与应急救援等的重要基础性建设项目,在当前的形势下,系统的建设具有以下 特点: ( 1 ) 监管与监察机构是新建的,业务不规范。 安全生产监管和煤矿安全监察系统的业务属于近年来发展的新业务,机构也 是新建的,在业务上还不成熟,也不规范,所以要投入大量的工作在业务的信息 化上。 ( 2 ) 监管与监察覆盖的地域广、专业多,专业性很强。 国家安全生产信息系统覆盖到全国各级安全生产监管和煤矿安全监察机构、 及与安全生产相关的各行各业,目前没有成熟的专业系统可供借鉴,因此监管与 监察业务的信息化工作非常艰巨,也非常复杂、难度较大。 ( 3 ) 数据采集是整个信息系统建设的灵魂和基础。 信息采集是系统建设的第一要务,也是安全生产信息系统最大的要务,而采 集信息就要有相应的业务规范和标准,业务指标要一直到企业,如煤矿的瓦斯采 集、重大危险源信息等,没有确定的国家或行业的标准。这就使得全国统一的安 全系统信息化的工作不是短期能够完成的,是一个长期的战略任务。 作为国家安全生产信息系统的重要组成部分煤矿安全信息系统,通过建设国 家制定的一系列有关安全生产的法律法规数据库和开发安全生产监察软件系统, 来实现煤矿安全生产监察的标准化、规范化、高效化,为各级安全生产监察管理 部门提供及时、定量、真实可靠的监察数据和标准的法律法规依据;通过对煤矿 重大灾害的快速处理功能的综合研究开发,提高煤矿安全生产的监察能力;在网 络环境上通过对全国煤矿安全生产信息的监察,达到对国家和地方煤矿安全生产 形势有及时准确的分析和评价。同时系统的建立为提高煤炭行业统计工作质量和 效率提供了信息化工具,使煤炭行业统计报表全面、准确、及时地反映煤炭工业 经济运行态势,为国家宏观管理决策、国家煤矿安全监察提供可靠依据,保持煤 北京交通人学硕十学位论文 炭行业统计工作和统计资料的连续性。 由此可见,国家安全生产信息系统建设项目是关系到国计民生的大事,意义 十分重大。 1 4 论文的组织结构 本文分为六个章节分别进行详细分析和介绍。 第一章:引言。介绍了论文的背景,国内外在该领域的研究现状,提出了研究的 问题及意义。 第二章:系统采用的技术介绍。在此章中,介绍了系统采用的技术知识。 第三章:设计模式理论的研究。在此章中,介绍了设计模式的定义,分类,核心 思想以及微架构理论。 第四章:国家安全生产信息系统宏观设计。此章介绍了系统的总体架构,设计的 核心思想,以及基于j 2 e e 分层设计。最后讨论了设计模式在分层设计中的应用。 第五章:煤矿安全信息系统的实现。在此章中介绍了煤矿安全信息系统的业务描 述,部署模型。并抽象出开发模型。然后重点讨论了设计模式在分层实现中的应 用。最后阐述了煤矿安全信息系统的报表采集,报表展示,煤矿安全许可证管理 以及企业信息管理模块的具体的设计与实现。 第六章:总结与展望。包括对系统的研究与实现过程中经验总结和对软件设计的 体会。并对设计模式在软件设计中未来的发展做了展望。 4 系统相关技术 2 1j 2 e e 概述 第2 章系统相关技术 j 2 e e 是一种利用j a v a 来简化企业解决方案的开发、部署和管理等相关复杂问 题的体系结构。j 2 e e 技术的基础就是核心j a v a 平台或j a v a 2 平台的标准版。j 2 e e 不仪巩固了标准版中的许多优点,例如“编写一次、随处运行”的特征、方便存 取数据库的j d b c ( j a v ad a t ab a s ec o n n e c t i v i t y ) 技术以及能够在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 ) ,s e r v l e t sa p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) ,j s p ( j a v as e r v e rp a g e s ) 等技术的支持【l j 。 j 2 e e 体系结构提供中f 刚层集成框架用来满足应用对高可用性、高可靠性以及 高扩展性的需求。通过提供统一的开发甲台,j 2 e e 降低了开发多层应用的费用和 复杂性,同时对现有的应用程序集成提供了强有力的支持,完全支持e j b ,能很好 地支持打包和部署应用,添加r 录支持,增强了安全机制,提高了软件的性能。 j 2 e e 体系结构分为三个层次,分别是客户表示层、中问逻辑层和数据管理层 及应用系统。该结构具有跨平台的特性,结构中的三个层次可以处于不同的平台 下进行协作应用。皋j :j 2 e e 来实现的w e b 服务的核心框架如图2 1 所示: b u s i n e s s t i e re i st i e r 漏重戮 。麟,浚燃瓣蘩蘩黝 隧夔麟i匿 熏 ,d t 目n l _ h m _ i 躺糕悯 凝缀掰鞠掰缓疆_劳 该翮瓤囝图圈暖孽 x 戮露 酽 圈 嘲翰i 缈” i 貔缀髫瑟巍缓落 2 戮:z 澎缪黧鬻搦撬镕 j 2 e es e r v e r 嗍嗍嘲彬 d a t a b a s e a n d l e g a c y s y s t e m s 豳 图2 1j 2 e e 体系结构 f i g u r e2 1j 2 e ea r c h i t e c t u r e j 2 e e 三层结构的实质就是把二层c s 结构中的业务处理逻辑模块从客户机的任务 中分离出来,由单独组成的+ 层来负担其任务,这样把负荷均衡地分配给了w e b 服务器,使得客户机的压力就大大地减轻了。于是由原来两层的c s 结构转变成 。l-li-lllllllll。ii 一一一一一一 臻 a 北京交通大学硕士学位论文 三层的b s 结构,其优点是灵活性强、界面友好、适用范围广、易于维护。 2 2h i b e m a t e 技术介绍 h i b e r n a t e 是一个开放源代码的对象关系映射框架,是连接j a v a 应用程序和 关系数据库的中间件,在分层的软件架构中它位于持久化层,它以非常优雅的方 式对j d b c 进行了非常轻量级的对象封装,将s q l ( s t r u c t u r e dq u e r yl a n g u a g e ) 操作完全包装成对象化的操作,封装了所有数据访问细节,对系统的业务逻辑层 完全透明,使业务逻辑层可以专注于实现业务逻辑【2 1 。 图2 - 2h i b e r n a t e 框架 f i g u r e2 - 2h i b e r n a t ef r a m e w o r k 通过图2 2 可以看清h i b e r n a t e 提取出了访问数据库的模型,应用程序通过 h i b e r n a t e 与关系数据库发生关系,对数据库进行操作。h i b e r n a t e 通过类的属性文 件( h i b e r n a t e p r o p e r t i e s ) 和类的映射文件( x m lm a p p i n g ) 将对象映射到数据库 中的行,应用程序通过h i b e r n a t e 提供的一些基本类及方法直接访问数据库,而不 必使用j d b c 和s q l 进行数据的操作。它不仅提供了从j a v a 类到关系数据库表之 间的映射,也提供了数据查询和恢复机制。另外h i b e r n a t e 提供类似s q l 的面向对 象的查询语言h q l ( h i b e r n a t eq u e r yl a n g u a g e ) ,它利用代理来简化载入类的过程, 大大减少了操作数据库的编码量,从而节约开发时间和开发成本。h i b e r n a t e 框架 不仅代码可重用性高,几乎完成了所有的数据库的访问操作,而且可移植性好, 可以在多种数据库平台之间随意切换,当其本身发生变化或升级时,不会影响到 6 系统相关技术 应用的上层。 2 3s p r i n g 技术介绍 s p r i n g 是一个开源框架,它由r o dj o h n s o n 创建。它是为了解决企业应用开发 的复杂性而创建的。s p r i n g 使用基本的j a v a b e a n 来完成以前只可能由e j b 完成的 事情。然而,s p r i n g 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦 合的角度而言,任何j a v a 应用都可以从s p r i n g 中受益。简单来说,s p r i n g 是一个 轻量级的控制反转( i n v e r s i o no f c o n t r o l 简称为i o c ) 和面向切面( a s p e c to r i e n t e d p r o g r a m m i n g 简称为a o p ) 的容器框架【3 】。 1 轻量:从大小与开销两方面而言s p r i n g 都是轻量的。完整的s p r i n g 框架可 以在一个大小只有1 m b 多的j a r 文件里发布。并且s p r i n g 所需的处理开销也是 微不足道的。此外,s p r i n g 是非侵入式的。典型地,s p r i n g 应用中的对象不依赖于 s p r i n g 的特定类。 2 控制反转:s p r i n g 通过一种称作控制反转的技术实现了松耦合。控制反转 使得传统依靠程序中硬编码的方式操控类与类之间的关系演变为由容器控制类与 类之间的关系。控制权由应用代码中转移到了外部容器,控制权的转移,就是所 谓的控制反转的思想。使用了i o c ,一个对象依赖的其它对象会通过被动的方式 传递进来,是容器在对象初始化时不等对象请求就主动地将依赖传递给它,而不 是这个对象自己创建或者查找依赖对象。 3 面向切面:s p r i n g 通过面向切面的技术集中处理业务逻辑,减少重复代码, 构建优雅的解决方案。它允许通过分离应用的业务逻辑与系统级服务( 例如审计 和事务管理) 进行内聚性的开发。应用对象只集中完成业务逻辑,而并不需要关 注系统级的服务,例如日志或事务支持。 所有s p r i n g 的这些特征使开发者能够编写更干净、更可管理、并且更易于测 试的代码。它们也为s p r i n g 中的各种模块提供了基础的支持。 7 北京交通大学硕士学位论文 例2 - 3s p r i n g 架构 f i g u r e2 - 3s p r i n ga r c h i t e c t u r e 通过图2 3 ,可以清晰地看到s p r i n g 框架由七个定义良好的模块组成。所有的 模块都是建立在核心容器上的。而通过核心容器管理和配置b e a n 等为s p r i n g 框架 提供基础功能。它为开发者提供了开发企业级系统所需要的一切。它留给开发者 选择模块的权利,开发者可以根据需要选择适合自己系统的模块。这为丌发者提 供了决策上的灵活性。 2 4a j a x 技术介绍 a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx l v i l ) 技术结合了j a v a 、x m l ( e x t e n s i b l e m a r k u pl a n g u a g e ) 以及j a v a s c r i p t 等编程技术【4 】。其可以让开发人员构建基于j a v a 技术的w e b 应用,并打破了使用页面重载的惯例。a j a x 是使用客户端脚本与w e b 服务器交换数据的w e b 应用开发方法。这样,w e b 页面不用打断交互流程进行重 新加裁,就可以动态地更新。使用a j a x ,用户可以创建接近本地桌面应用的直接、 高可用、更丰富、更动态的w e b 用户界面。 8 系统相关技术 图2 _ 4 传统w e b 模型与a j a xw e b 模型比较 f i g u r e2 - 4c l a s s i cw e bm o d e lv sa j a xw e bm o d e l 随着互联网技术的飞速发展,网络信息交互愈发频繁。如图2 4 所示:在传统 的w e b 应用程序模型中,b s 信息交互采用同步方式:用户在提交请求后,被迫 中断当前工作,等待页面的刷新、交换和重载。完整页面的传输会加重网络载荷 和服务器工作量。与此同时,用户在等待服务器响应的过程中面临较长时间的等 待,迟滞了响应的实时性【5 l 。这样既降低了系统性能又不够人性化。而采用a j a x 技术能够很好地解决这个问题。它在客户端加入了一个沟通用户界面与服务器的 中间层,实现页面展现与应用的分离以及用户操作与服务器响应的异步化。这样, 一方面可以利用客户端闲置的处理能力承担一部分服务器的工作,减轻带宽和服 务器的负担;另一方面降低了页面重载的频率,使w e b 用户得到更好的使用体验。 可以说,异步交互是a j a x 的精髓,而异步交互依赖的是多线程。用户提出a j a x 请求,用户可以在页面上继续做自己的操作。而服务器处理完用户的a j a x 请求后 将结果返回给页面,页面可以以一种友好的方式提示用户请求结束,同时将结果 展现在页面上,不会影响到用户当前的操作。 9 北京交通人学硕士学位论文 第3 章设计模式理论 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实 的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式 帮助设计者做出有利于系统复用的选择,避免设计损害了系统复用性。通过提供 一个显式类和对象作用关系以及它们之间联系的说明规范,设计模式甚至能够提 高已有系统的文档管理和系统维护的有效性。简言之,设计模式可以帮助设计者 更快更好地完成系统设计。一个成功的解决方案,它的基础是建立在各种设计模 式综合而灵活的应用上的,所以我们这一章主要研究设计模式相关的内容。 3 1 设计模式概述 3 1 1 设计模式定义 设计模式是人们对软件开发过程中解决过的类似的问题进行研究和分析,总 结出解决该类问题的实践经验,然后对重复出现的该类问题给出一个通用的解决 方案。利用该方案,可以指导软件设计者在以后的软件设计和丌发中更加简单方 便地重复使用成功的设计理念和体系结构,以最佳的方式来解决问题。同时有利 于软件开发者之间进行开发经验的交流和讨论。 “设计模式 这个概念最初产生于建筑行业。正如建筑大师c h r i s t o p h e r a l e x a n d e r 所说【6 】:“每一个模式描述了一个在我们周围不断重复发生的问题,以 及该问题的解决方案的核心。这样,设计者就能一次又一次地使用该方案而不必 做重复劳动”。尽管a l e x a n d e r 所指的是城市和建筑模式,但他的思想也同样适用 于面向对象设计模式,只是在面向对象的解决方案里,用对象和接口代替了墙壁 和门窗。两类模式的核心都在于提供了相关问题的解决方案。于是在8 0 年代后期, “设计模式”从建筑业进入了计算机系统领域。自从1 9 9 5 年g o f 小组总结出2 3 种设计模式以来,“设计模式”作为- - f o 新兴学科迅速地发展了起来,被确认的模 式结构也日益丰富。其中的一些模式结构应用范围非常广泛,影响巨大。 一般而言,一个模式有四个基本要素: 1 模式名称:它就是一个助记名,用一两个词来准确地描述模式的问题、解 决方案和效果。命名一个新的模式增加了设计者的设计词汇。设计模式允许设计 者在较高的抽象层次上进行设计。基于一个模式词汇表,软件设计者之间就可以 1 0 设计模式理论 讨论模式并在编写文档时使用它们。模式名可以引导设计者对遇到的问题进行思 考,便于设计者与其他人交流设计思想及设计结果。 2 问题:其描述了应该在何时使用模式。它解释了设计问题和问题存在的 前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描 述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满 足的一系列先决条件。 3 解决方案:其描述了设计的组成要素,它们之间的相互关系以及各自的 职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方 案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和如何 应用一个具有一般意义的元素组合( 类或对象组合) 方案来解决这个问题。 4 效果:其描述了模式应用的效果及使用模式应权衡的问题。尽管描述设 计方案时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代 价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了 语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对 系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这 些模式很有帮助。 3 1 2 设计模式分类 设计模式在粒度和抽象层次上各不相同。著名的g o f 小组根据模式为软件结 构解耦的解决方式不同,将设计模式分为创建型模式、结构型模式和行为型模式 三种。具体的分类见表3 1 。 1 创建型模式:描述如何抽象实例化过程。它们帮助一个系统独立于如何创建、 组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一 个对象创建型模式将实例化委托给另一个对象。核心思想是将关于该系统使用哪 些具体的类的信息封装起来,并且隐藏了这些类的实例是如何被创建和放在一起 的。整个系统关于特定对象所知道的是由抽象类所定义的接口信息。 2 结构型模式:描述如何组合类和对象以获得更大的结构。其采用继承机制来组 合接口或实现。它们不是对接口和实现进行组合,而是描述了如何对一些对象进 行组合,从而实现新功能的一些方法。 3 行为型模式:描述如何对算法和对象问职责进行分配。其不仅描述对象或类的 模式,还描述它们之间的通信模式。这些模式刻画了在运行时难以跟踪的复杂的 控制流。它们将开发者的注意力从控制流转移到对象间的联系方式上来,使用继 承机制在类之间分派行为。 北京交通大学硕士学位论文 表3 - 1 设计模式分类 t a b l e3 - 1d e s i g np a t t e r nc l a s s i f y 分类设计模式可变的方面 创建型 a b s t r a c tf a c t o r y ( 抽象工厂)对产品对象家族 b u i l d e r ( 生成器)对如何创建一个组合对象 f a c t o r ym e t h o d ( 工厂方法)对被实例化的子类 p r o t o t y p e ( 原型) 对被实例化的类 s i n g l e t o n ( 单件)对一个类的唯一实例 结构型 a d a p t e r ( 适配器) 对对象的接口 b r i d g e ( 桥接)对对象的实现 c o m p o s i t e ( 组成) 对一个对象的结构和组成 d e c o r a t o r ( 装饰)对对象的职责,不生成子类 f a c a d e ( 外观)对一个子系统的接口 f l y w e i g h t ( 享元) 对对象的存储丌销 p r o x y ( 代理) 对如何访问一个对象 行为型 c h a i n so fr e s p o n s i b i l i t y ( 职责链)对满足一个请求的对象 c o m m a n d ( 命令)对何时、怎样满足一个请求 i n t e r p r e t e r ( 解释器) 对一个语言的文法及解释 i n t e r a t o r ( 迭代器)对如何遍历、访问一个聚合的 各元素 m e d i a t o r ( 中介者)对对象问怎样交互、和谁交互 m e m e n t o ( 备忘录)对一个对象中哪些私有信息存 放在该对象之外,以及在 对什么时候进行存储 o b s e r v e r ( 观察者)对多个对象依赖于另外一个对 象,而这些对象又如何保 持一致 s t a t e ( 状态)对对象的状态 s t r a t e g y ( 策略) 对算法 t e m p l a t em e t h o d ( 模板方法)对算法中的某些步骤 v i s i t o r ( 访问者)对某些可作用于一个( 组) 对 象上的操作,但不修改这些对 象的类 1 2 设计模式理论 3 2 设计模式核心思想 通常认为,一个易于维护的系统就是复用率高的系统,而一个复用性较好的 系统,就是一个易于维护的系统。对于面向对象的软件系统设计来说,在支持可 维护性的同时,提高系统的可复用性是一个核心问题。 一个软件开发只需要半年,维护则需要很多年。经验表明:一个软件项目在 其生命周期内,维护上的成本是原始开发成本的两倍。随着性能的变化和用户需 求的改变,一个软件系统要经过一次又一次地扩展、维护和修改。一个可维护性 低的软件系统可能随着这些更改变得不可维护。 导致一个软件设计的可维护性较低的真j 下原因有四个:过于僵硬、过于脆弱、 复用率低和黏度过高【7 】。 1 过于僵硬:很难在一个软件系统中加入一个新的功能,哪怕是很小的都很难。 这是因为加入一个新功能,不仅仅意味着建造一个独立的新模块,而且因为这个 新模块会波及很多其它模块,最后变成跨越几个模块的改动,使得原来只需要几 天的工作,变成持续几个月的连续作战。 2 过于脆弱:与软件过于僵硬同时存在的是软件系统在修改已有代码时过于脆 弱。对一个地方的修改,往往会导致看上去没有什么关系的另一个地方发生故障。 尽管在修改之前,设计师们会竭尽全力预测可能的故障地点,但是在修改完成之 前,系统的原始设计师们甚至都无法确切预测到可能波及到的地方。 3 复用率低:所谓复用,就是指一个软件的组成部分,可以在同一个项目的不同 地方甚至另一个项目中重复使用。每当开发人员发现一段代码、一个函数、一个 模块所做的事情是可以在新的模块、或者新系统中使用的时候,设计者总是发现, 这些已有的代码依赖于一大堆其它的东西,以至于很难将它们分开。最后,设计 者发现最好的办法就是不去碰这些已有的东西,而是重新写自己的代码。这样的 系统就存在了复用率低的问题。 4 黏度过高:有的时候,一个改动可以以保存原始设计意图和框架的方式进行, 也可以以破坏原始设计意图和框架的方式进行。第一种办法无疑会对系统的未来 有益,第二种办法是权宜之计,可以解决短期的问题,但是会牺牲中长期的利益。 一个系统设计,如果总是使得第二种办法比第一种办法容易,就叫做黏度过高。 综上所述,一个好的软件系统设计应该有如下性质:可扩展性、灵活性、可 复用性。这三条性质就是一个软件系统设计应当达到的目标。由此可以得出这样 的结论:软件设计模式的核心思想就是提高软件系统的可扩展性、灵活性和可复 用性。同时这也是面向对象程序设计的核心思想。 1 3 北京交通大学硕士学位论文 3 3 微架构理论 “微架构 最早是用来描述微处理器结构的术语。j 2 e e 平台借用它来描述设 计模式的组合运用。“微”的含义是指“微架构”使用的设计模式只是平台所创建 的所有设计模式中的某些部分,它是用来设计一个系统的部分功能或基于平台提 供的某种应用。微架构是一些设计模式的有机组合,它解决的是设计模式之间相 互操作的关系【8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量管理服务协议合同书
- 四年级小学英语趣味复习计划
- 软件代理合同协议书模板
- 皮肤美容术前协议书范本
- 服装委托加工协议合同书
- 蜂蜜买卖合同协议书范本
- 铲车租赁协议与租赁合同
- 协议签署在哪里签订合同
- 集体售房合同协议书范本
- 争取优先续签合同范本
- 2025年汽车转向系统行业需求分析及创新策略研究报告
- 2025年四川省成都市高新区事业单位招聘考试综合类面试真题模拟试卷
- 2025年秋统编版语文二年级上册全册课件(课标版)
- 七下期末人教版数学试卷
- 2025年六安市裕安区石婆店镇公开招考村级后备干部8名笔试备考试题及答案解析
- 2025年事业单位考试题库及参考答案
- 物流客服培训课件
- 人教版(2024)八年级上册英语Unit 2 Home Sweet Home教案
- 2025年中小学学生校园安全学习教育基本知识试题库(附含答案)
- 公司领导财务知识培训课件
- 2025年农商行农业保险融资担保贷款合同模板
评论
0/150
提交评论