(计算机科学与技术专业论文)基于ror框架研究与应用.pdf_第1页
(计算机科学与技术专业论文)基于ror框架研究与应用.pdf_第2页
(计算机科学与技术专业论文)基于ror框架研究与应用.pdf_第3页
(计算机科学与技术专业论文)基于ror框架研究与应用.pdf_第4页
(计算机科学与技术专业论文)基于ror框架研究与应用.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机科学与技术专业论文)基于ror框架研究与应用.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 在经济全球化、社会信息化不断发展的今天,随着h c 钉n e t 和w 曲技术的 迅速发展,越来越多的企业业务处理转向w 曲平台。但随着w 曲应用的增长以 及需求的多样化,其业务规则和内容越来越复杂,w 曲开发技术的方法和效率 面i 艋很大的挑战。为了促使w 曲应用程序开发简单化开发过程、降低开发成本 和提高开发效率,w 曲框架技术和敏捷开发方法应运而生。在r l l b yo nr a i l s 框 架出现之前,主流的w | c b 应用开发框架有j 2 e e 平台的框架体系以及n e t 平台 的w 曲f o 衄框架。它们以优秀的框架设计、成熟的软件模型以及大量可直接 复用的构件或代码赢取了市场上大多数企业级w 如应用的份额。但随着企业业 务环境的不断变化,j 2 e e 和n e t 平台框架也逐渐暴露出自身的缺陷:j 2 e e 平 台主张通过大量的捌l 配置来协调框架内各构件之间的接口或通信,这就增 加了配置复杂度和开发难度。并且随着需求的增多,不断加入的各种组件和逐 渐膨胀的删l 配置文档时的j 2 e e 框架变得臃肿不堪,在开发效率和应用性能 上越来越不能满足实际的需要。n e t 平台框架并非开源软件,开发成本较高。 而且由于源代码没有公开,导致框架自身灵活性和扩展性都比较差。r u b yo n l l s 框架的出现正是为解决现代w 曲开发框架中这些缺陷的。 r u b y 锄r a i l s ,是一个基于r l l b y 语言并严格按照m v c 设计模式开发的开 源w 曲应用框架。胁l s 力图使自身保持简单,来使实际的应用开发时的代码更 少,使用最少的配置。l l s 的设计原则包括“不要重复自己 ( d o n t t 风:p e 韪t y o 璐d f ) 和。约定优于配置 ( c v 渤no v 贸c o 血g l l 姐硒n ) 。r a i l s 框架实现 了与r l l b y 动态语言的无缝结合,使得开发变得简单快捷,缩短了应用程序开 发周期。i 乙a i l s 在迅速开发和部署w 曲应用、降低开发代价方面体现了强大的优 势。 本文从软件架构、框架以及设计模式的角度介绍了贼l s 框架的产生背景及 意义,研究了r a i l 框架的各种特性、架构设计风格、核心体系结构以及关键技 术。并将r a i l s 框架与当前流行的j 2 e e 框架进行了详细的对比,深入分析了贼l s 数据库模型a 嘶e r e c 0 以组件与j 2 e e 的h i b 锄a t e 数据模型组件的差异。深入 研究了a c t i v e 风:c 0 耐源代码,给出了a c t i v e 】删组件的类图。并在此基础上, 运用r l l b y l 湖s 框架实际开发了m r i 管理系统,在开发过程中运用了多种敏 捷开发的方法,充分利用了r 且n s 的新特性如代码生成器、a j a x 技术等多项技 术。 关键字:r 1 1 b y 锄贼1 s ,j 2 e e n e t ,框架,m v c 武汉理工大学硕士学位论文 a b s t r a c t 删a yi s 破雠s 姆o fm ec c 0 础醇0 b a l i z 蕊0 n 觚d 位c o n 恤1 l o u s 如e l o p m 耐o fs o c i a l 蛐姗a t i o n w i mm cr a p i dd e v e l o p m 姐to fi n t 咖e t 觚dw e b 童池l o l o g y m o r ea n dm o r e 伽【t 唧r i s eb u s m 铝st i 圳陷t ow e bp l a t f o r m s b u t 鹤m e i n c 崩n e n to fw 曲a p p l i 训o n 锄dt h ed i v e r s i f i c a t i o no fr c q l l i i 锄t ,m eb l 璐i l l c s s r u l e 稻锄dc o n t e n tc 0 m 鹤m o r c 姐d 加o r cc o m p l e 毛s ot l 地m e t h o da n d 喊c i e 皿拶o f w 曲d 亭v c l o p l i 咖t 内g r t 曲l a l l g 鹤r i 0p l 砌o t e 也ew ,曲a p p l i 咖o n d e v e l o p m e n t 丽t has i m p l ed e v e 唧p f o c 销s ,1 0 wc o s t sa n dh i 酿e 伍d 髓c y w 曲 丘缸n 铡o f k sa l 通a 罟i l ed e v c l o l 腿眦m e t i l o dc 锄eo 哺b e f o r c 也e 既眦嗵嬲o f r t 】:b y o nr 砌s 鼬唧。如也c 舶施眺o h w 曲a p p l i 谢o nd e v d o p m 吼ti n c l u d e 缸m 伽0 d 岱s u c h 豁s t r u :t s ,s :叫n g0 rh i b e m a t cb 酗e d 衄j 2 e ep l a 哟衄a n dw 曲 f o 咖妇n 跚破b 鹤e d0 n n e tp l 晌锄b o n lo f m 锄p 州d e 锄c x 础钮ts o 脚躺 d e s i 印p a t t a ma n da 蛳s t i c a t e ds o 脚a r em o d e l ,嬲w e l l 舔al a r g em m l b e ro f r e 姻a b l ec o m p 0 呦t s0 rc o d 伪,w i l i c ha c l l i e v e 也en 坷o r i t yo fm a r 叠谳o fm e a 咴菠p r i s e - s c a l l ew 曲a p p l i c a d o n s h o w e 哪;勰t h ei l l c r 锄e n to fb 磷妇髓s 九l l 懿, 触:n c w o 凰b 罄e d0 nj 2 e e 觚d n e t 鲥u a l l ye x p o s e d 也血l i n l i 锄。璐:缸n 鲫o r k s b 勰e d 锄j 2 e ea d v a 主e 也ea d o p t i o no fal a 曙e 衄m b 盯o fx m lc o 碰逗:i l r 撕 d o c i m l t st oc o o f d i n a t et h ei n t 叮f a c 璐o f 匝。璐c c 聊l p 嘲伽晒a n d 棚m 髓i 饿o n s 撇n gt h 饿la nt 量l e 辩:x m lc 0 畦g i l 础o nd c | 啷呦t sc ( m 埘m l i t e 蕾oab l o a t e d 丘瓤姗嗽w h i d hi sl m a :b l et o 船垃s 母也e 越:t l l a l 托q i l i l 髓n 僦i n 也ed e 、j r e l o p l n e n t e 伍c i 舶【c y 锄dp 幽m l 柚c e a s n c ti s 舯t 觚o p u r p l 缅r m ,t l l en 强i b i l i t y 锄ds c a l a b i l 毋o f 缸啦嘲m i ( sb 勰e d 蚀n 戗m & yb cp 0 0 r r u b yo nr a n si sa 跚a e w o f kt op r 0 啊d e 也es e t t l e m e n t 董0 rm 伪ed e f 酏t se x i s t i n gi nm o d 锄w g b m 删0 p m e n t 丘卸肭r l ( s r u b y 傩r 面l s ,a l f e 矗。瞅:dt 0 嬲r a i l s ,i s 触叩s o u 溉w 曲a p p l i c a t i o n 鼬l 咖嗽w 岫b a s e d m cr 曲yl 觚g 哪觚ds t r i 嘶d e s i 鲥b ym v c 的脚a 他d e s i 萨p a 位e 旭r o rt r i 伪t 0k o 印i t 科fs i m p l e 幻m a k ea 坞a 咖l a p p l 删磁d c v c l o p 嘲吐w 池妇c 0 豳8 n d 妇n 丘昏僦嘟m 0 8 t i m p 0 一硼td 岱i 伊埘n d p l e so fr a i l s 砌u d e 竹d r ya 咖、r 印鼯ty 0 麟1 矿髓d 武汉理工大学硕士学位论文 ”c o c ( c 0 n v 钮垃0 no v e rc 0 蚯g l l r 撕o n ) i ti s 畔i s e l yb c c a u s e 吐i es 翩“铭s i n t e g r a t i o nb e t 、) l 啪r a i l s 缸dt l l ed ) ,n a n l i cl 锄毋l a g 岛r d b y ,r a i l 8e m i b l 器a s i e f d e 、,e l o p m c n tw a ya i l da 幽【o r t e rd e v e l o p m e n tc y d e r o r 印p r sas 仃o n g a d v 觚l 协g pi n 瑚p i dd e v e l o p m e n ta n dd 印l o ) ,珏l 锄to fw c ;b 印p l b 撕o l l 锄da 1 s 0 r e d l j d n gd l e l o p m e n tc o s t s h lt 1 1 i sp a p e r ;i ti n t r o d l l c e s 也eb a c l g f 0 蚰da n ds i g n i 右c a l l c eo fr a i l sf 锄e w o r i ( s 自o mt l l e 拼鹞p 剃v eo fs o f t 、7 i r a r ea r c k t e c t l l i 龟丘a m e w o r k s 觚dd 商g np a t t e m ;w h a t s 皿吣,i td 0 锶ar 铭翰rc :ho nm ev a d o l l sf e 越u r 懿o ft h er a i l 纳m e w o 嗽删t e c 舰l r e d 妫i g n 叫e ,也e 伽i t e 缸c l l i t 烈m h _ e 锨l dc n l c i a lt e c h n o l o g 汹i tt a :k 鼯ad e t a i l e d c o m p 耐s o nb e t h c 伽玎即t 删a rj 2 e e 纳m e w o i k 锄dr a i l s 缸嘶c v 岫r k 锄d g i v 鹤趾i n 矗e p t ha n a l ) 哂so nt h ed i 钎酹髓l o 鹧b c t w 啪也er a i l s 也l t a :b 鹞e 栅e l a 砸w 瓜e c o r dc o m p 0 n t sa n dj 2 e e h i b e m a t cd a t am o d dc o m l ,o r 暾l t 1 1 臌l “ 硎娩懿馈屺a c t i l a ld e v e l o p i l - e n to ft t l em r im a n a g 锄e n ts y s t e mb 勰e do nr u b yo n r 砌s 铂m e w 0 i l 【诵mav a r i e t ) ro f4 西l ed e v e l o p m 即t 砌锄o d s ,城【i n ga d v a n t a g eo f s o m e 饿- w 纯咖r 舔鲫c h 弱m er a i l sc o d eg e n e m t o f 向a ) 【蛐l o g 弘孤do 惦 t c 6 l i l i q u i 懿 曩r e yw o r d s :r u b y0 n 蹦l s ,j 2 髓,n 吒丘砌e 0 d ( m v c m 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名:啦日期:掣弘 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 觥c :纠社捌弼嘲即彳曳,声 f 武汉理工大学硕士学位论文 第l 章绪论 1 1 论文研究的背景与意义 目前,随着h n e n l e t 的不断发展,越来越多的企业应用系统都转向i l l t e n l e t 平台。基于h t m l 标准和h t r p 协议的应用也呈几何数量级增长。w 曲技术 也从一开始的以h n n 、h t i i l l 、s h t n l l 和x “为后缀的静态文档发展到 以唧、j s p 、p h p 、p e d 、c 西为后缀的动态网页,直到以w 曲s e r v i c e 为主导 的w 曲2 o 时代。但随着科学技术的不断进步,企业的业务流程越来越复杂。面 向企业的w 曲开发技术在处理复杂的业务流程时,开发效率和成本都受到严重 的制约和挑战。因此,现代软件开发逐步向简单化和专业化发展。w e b 应用开 发框架技术正是为了解决复杂的w e b 开发而生,如基于j a v a 语言的s 删s 、s p 血l g 框架、基于p h p 语言的p r a d o 、c a l ( e p h p 、t r a 】【、t h i p h p 及a k e l o s 等。框架 可以松散地定义为不同用途而修改的应用程序生成器或者部分应用程序。一套 优秀的框架继承了软件开发在某一业务领域内已经成熟的组件和设计模式。基 于r u b v 语言的r a i l s 框架在2 0 0 4 年7 月由2 6 岁的丹麦入d a v i dh e i n e m e i e r h a l l s 0 n 首次发布了,r a i l s 框架的出现为w 曲开发提供了一个更符合实际需求 而且高效的框架,它结合了p h p 框架体系快速开发以及j a v a 体系框架程序规整 的优点,因此r a i l s 在发布后很短时间内就受到了业内广泛的关注,正迅速成为 创建w 曲应用程序的领先技术平台。 r a i l s 是构建于r l l b y 语言之上的框架,用于开发、维护和部署w 曲应用程 序。r u b v 语言是一种动态、纯面向对象的脚本语言,具有很好的灵活性、稳定 性和可靠性。r a i l s 框架汲取了r u b y 的所有优点并始终遵循d l w ( d o n tr e p e a t y o u r s e l f ) 和“约定由于配置( c o n v e l l t i o no v e rc o n f i g i l r a t i o n ) 两大核心设计 原则,设计中贯彻到底的敏捷开发思想,使得基于r a i l s 框架的应用程序开发变 得简单快捷。r a i l s 框架与现有的其他主流w 曲应用开发框架如j a v a 的s 咖t s 、 c # 的w 曲f o 姗s 以及p h p 的p r a d o 相比的最大优势在于:r a i l s 框架让w 曲 应用开发周期大大缩短,一个简单的w 曲应用程序用其它框架开发可能需要几 个星期,用r a i l s 框架开发可能只需要几天;若是复杂的其它框架可能需要几个 月开发的w e b 应用程序,r a i l s 可能只需要几个星期。r a i l s 框架以自身的简单 武汉理工大学硕士学位论文 易用、在w 曲开发的高效灵活以及对w 曲s e r v i c e 、匀a x 技术的良好支持,使 得它成为建立中小型企业w 曲应用开发的首选框架。 m r j 管理系统就是一个用以管理一定范围内医疗或科研机构的中小型系 统,它主要用于实现对医疗机构中核磁共振仪的操作文档、样品、使用人员以 及机构的分权管理。r a i l s 框架能够很好满足m r i 系统的各项性能需求。 1 2 国内外研究现状 r 曲y o nr a i l s 于2 0 0 4 年7 月,r a i l s 的创始入d a v i dh e i n 锄e i e r h a n s o n 从 3 7 s i 鳕a l s 公司的项目管理工具b a s e c 锄p 里面分离出r u b y0 nr a i l s ,并且以开 源方式发布了r a i l s 的第一个版本。r a i l s 在发布以后的短短的时间内就迅速获 得很多开发人员欢迎,并以它r c s t 开发风格迅速征服了w 曲应用开发领域。 d a _ v i d 本人由于在r a i l s 方面的工作,在2 0 0 5 年被g 西e 和o r e i l l y 合办的 o s c o n 大会授予最佳h a c k c f 大奖,而2 0 0 6 年他又凭借r a i l s1 o 获得了年度卓 越w 曲开发工具大奖。2 0 0 6 年初发布了具有数据库移植功能和提供i u s 支持 的r a i l s l 1 版本,2 0 0 7 年初发布了支持r e s t 架构设计风格的r a i l s l 2 版本, 而到2 0 0 7 年1 2 月6 日,具有众多新特性和高性能的r a i l s 2 o 已经发布。截止 至当i j ,获得了r a c k 支持的正式版r a i l s 2 3 和合并了先前竞争对手m e r b 框架 的首个r a i l s 3 0b e t a 版本。国外商业化r a i l s 应用产品如b a s e c 踟p 、o d e o 、 4 3 也i n g s 等印证了r a i l s 在协同运作、内容管理、社区以及电子商务等多方面的 开发势力,r u b y o nr a i l s 开源社区也不断地成为丰富和发展r a i l s 的中坚力量, 多种插件和引擎相继不断被r a i l s 框架兼并。r u b 灿r g e 发展成为r u b yo nr a i l s 开源项目的主要仓库,很多知名企业和i t 公司如i b m 、g o o 烈e 的开源代码都 对r a i l s 提供了支持,其它主流w 曲框架如p h p 的一些框架、m i c r o s o f t 的n e t 框架均融入了r a i l s 框架设计的相关设计和思想。 在国内,r a i l s 所表现出来的强大生产力和成功的技术宣传使其在很短的时 问内得到了开发者的青睐,并且在w e b 开发方面成绩斐然,越来越多的采用r a i l s 快速开发的w e b 应用平台在短期内上线。2 0 0 5 年年初,在国内主要j a v a 社区 和其他开发社区开始出现关注国外动态语言的文章,出现了r a i l s 与j a v a 相关 框架的w 曲开发效率相差十倍之说,并由此引发了对j a v a 的反思和r a i l s 的憧 憬。2 0 0 5 年6 月,f i k k o 创建了第一个r u b yo nr a i l s 中文社区论坛r a i l s c l l 。这 标志着r a i l s 在国内开始公开应用,短时间内聚集了大量r u b yo nr a i l s 的爱好 2 武汉理工大学硕士学位论文 者和学习者。2 0 0 6 年6 月3 日,世界知名的软件开发大师1 u g b t w 砌【s 公司 首席科学家m a i t i i lf o w l e r 出席了c s d n 与t h o 岖l t w o r l ( s 共同举办的首届“敏 捷中国 开发者大会( a 西l ec l l i 姐d e v e l o p e r sd a y ) ,并在上海举办了“敏捷专 家圆桌论坛”。本次会议推广了敏捷软件开发思想与r a i l s 的完美结合。之后随 着s o o p i e 和i e a s e 这些w 曲2 0 模式网站的上线,新的中文应用也越来越多。但 国内对r a i l s 框架的研究却相对滞后。 r a i l s 专业服务发展从优秀到卓越的道路中,必然呼唤更为广泛的业界支 持、推广和较大规模开发团队的形成,r a i l s 专业公司也势必形成并通过不断的 开发实践是的r a i l s 服务从优秀走向卓越。 1 3 论文内容和组织结构 本文主要研究了r - a i l s 框架的核心体系和关键技术,探寻了使得r a i l s 框架 得以高效开发的内在机制。对框架进行了补充和改进,并在实际项目中运用框 架特性完成开发。 本文分为六章: 第l 章绪论,主要阐述了本文的研究背景意义以及r a i l s 框架在国内外的 研究现状。 第2 章r o r 背景知识及其相关概念, 主要阐述了软件架构、框架、设计 模式以及三者之间的关系,论述了软件开发框架的必要性以及基于框架开发的 过程模型,阐述了w 曲s e i c e s 、r e s t 以及敏捷开发的相关知识。 第3 章r o r 体系结构分析,介绍了r u b y 语言的特性、r o r 框架的特点。 主要阐述了i 汕y o nr a i l s 框架的组成和原理。将r a i l s 框架与j 2 e e 框架对比, 重点研究了r a i l s 核心框架体系和关键技术。 第4 章基于r o r 的m r i 系统分析与设计,包括m r i 系统需求分析、总 体设计以及数据库设计。 第5 章基于r o r 的m r i 系统的实现,介绍了r a i l s 开发环境配置,系统 开发中采用的关键技术以及主要功能模块的核心代码。 第6 章总结与展望,对本文所做的工作进行了总结,讨论了r a i l s 框架在 特定领域的可行性,并对进步需要研究的内容和趋势作了展望。 武汉理工大学硕士学位论文 第2 章r o r 背景知识及其相关概念 2 1 软件架构、框架及模式概念 2 1 1 软件架构 软件架构( s o 胁a r e 觚l l i t e c t u r e ) ,亦称软件体系结构,是在组件彼此间和 环境间的关系,引导设计发展原则中体现的系统的基本结构,其中系统是指为 了实现某些特殊作用的组件的集合,环境决定了开发、操作、策略和其他影响 系统的设置和条件,任务是指系统为了实现对象设置的使用或者操作【l 】。软件 架构是对软件系统组织、结构部分和系统包含接口的选择、集合部分的特定行 为、较大子系统部分的构成和架构风格的重大决定的设置【2 j 。其中包含了大量 可重复使用的框架、构件。软件架构的重要工作是合理选择构件以及使这些构 件在一直的协议和标准下协同工作。它在很多情况下表现为一种软件设计思想 或一个系统蓝图。是决定软件系统质量的最重要因素,直接影响到软件的质量 以及整体的成功。例如:面向服务的体系结构( s e i c e o r i e n t e da r c h i t e c t u r e , s o a ) 是一种i t 体系结构风格,支持业务转换为一组相互链接的服务或者重复 业务任务,可在需要时通过网络访问这些服务和任务。 2 1 2 软件框架 软件框架是一个可实例化的、部分完成的软件系统或子系统,它为一组系 统或子系统定义了架构,并提供了构造系统的基本构造块,还为实现特定功能 定义了可调整点。在面向对象环境中,框架由抽象类和具体类组成【3 1 。软件框 架提供了若干操作接口,这些接口可以完成特定的功能,且这些接口的实现过 程是不可见的。框架技术是构件技术、软件体系结构研究和应用软件开发三者 发展结合的产物,在很多情况下,框架通常以构件库的形式出现,但构件库只 是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流 模式。随着软件系统的发展,软件系统的规模和复杂度不断增长,软件开发涉 及到的知识、内容、问题太多。而在某领域的软件开发能使用一套成熟的框 架可以帮助开发者处理很多细节问题,而且扩展性好。框架的最大好处在于软 4 武汉理工大学硕士学位论文 件构件和设计模式的重用,由于框架是针对某一应用领域开发的,因此它提炼 了该领域应用软件的共性部分,应用框架开发项目的过程中只需要在已有框架 的基础上做进一步的开发和调整即可满足应用需求。这就让开发过程更敏捷快 速、大大缩短软件开发周期、降低软件开发及维护成本。例如:e j b ( e n t e 印r i s e j a v ab e 锄s ) 是j a v a 应用于企业计算的框架。 2 1 3 软件设计模式 软件设计模式( s o 脚a r ed e s i 龋p a t t 锄) 是由e r i c hg 觚l i i l a 等人,从建筑 设计领域引入到计算机科学里去的。是对软件设计中普遍存在( 反复出现) 的 各种问题,所提出的解决方案。设计模式并不直接用来完成程式码的编写,而 是描述在各种不同情况下,要怎么解决问题的一种方案【4 l 。模式既是一个事物, 也是对类似事物的描述。模式是人们在长期的设计软件、管理组织软件开发等 大量实践经验中提炼和抽象出来的,是可以服用的软件设计方法和开发思路。 模式有助于建立一个复杂的架构,每个模式提供组件、作用以及相互关系的预 定义集,设计模式能更加简单便捷地复用成熟的框架和体系结构。设计模式又 可分为:创建型、结构型和行为型三大类。例如:m v c 设计模式就属于结构型 设计模式类。 2 1 4 软件架构、软件框架和设计模式的关系 软件架构、软件框架和软件设计模式他们的关系可以理解为:设计模式主 要侧重于设计重用,软件构件由一个或者多个设计模式组成,通常是框架中的 代码重用的a p i 、类库或者工具包。软件架构由多个相互作用的、可重用的构 件组成,并定义了构件之间的相互通信协议以及共同的标准,而当面向某一领 域的特定的软件架构又会慢慢变成可操作的软件框架,框架中既有设计重用, 也有代码重用。在某一领域的所有应用软件均可以基于该领域的成熟软件框架 来开发实现。 2 1 5 软件开发框架的必要性 一套成熟稳定的应用软件开发框架能很好继承领域内软件开发已有的成熟 方法和模块。框架是面向对象软件设计思想不断发展的最好的复用方式,框架 中所有构件都采用统一定义的内部接口,这样就使得框架内部构件之间的通信 5 武汉理工大学硕士学位论文 变得简单,而且也具有很好的扩展性。框架的另外一个优势在于应用框架开发 应用程序能很好的约束所有开发人员共同遵循同一套设计思想来分析问题、遵 守同一套约束规则和易于按照框架中各构件进行开发任务的合理系统分工协 作。当前一些主流的应用软件开发框架都提供了数据持久性、安全性、数据流 控制、应用集成、事务等问题的解决方案,成熟稳健的框架可以帮助开发人 员处理系统很多的细节难题。一般讲,采用框架来开发软件的必要性体现在以 下几点: ( 1 ) 框架可以带来更高的代码和设计复用,即对于某一领域的应用程序开 发绝大部分代码可以复用成熟框架的代码; ( 2 ) 基于框架开发可以保证应用软件结构的一致性,这是由框架内部构件 间己定义的成熟接口决定的,开发人员只能严格按照框架接口进行应用开发或 扩展应用; ( 3 ) 应用框架开发是软件开发人员更专注于某一特定领域的了解,提高软 件开发人员的熟练程度,带来高效的开发效率和更短的软件开发周期,减少软 件开发成本; ( 4 ) 应用框架开发的应用软件具有更好的可移植性,框架在多种平台上的 通用性让基于框架开发的应用程序也具有更好的可移植性; ( 5 ) 基于框架的软件开发有利于软件开发人员之间的协同合作。 2 1 6 基于框架的应用开发过程模型 基于框架应用软件开发过程主要包括应用需求分析、应用系统设计、软件 框架选择、框架学习、根据框架结构开发应用构件、组装应用构件、应用测试 等几大部分1 5 1 。与一般软件开发过程一样,基于框架的软件开发过程也具有迭 代性。图2 1 表示了基于软件框架的应用程序开发过程模型。其中最主要的部 分是应用设计和应用实现部分,应用设计部分首先要根据已有的软件系统需求 分析做出软件体系结构的设计,然后需要从软件所在领域中已有成熟框架中选 择最合适的框架进行学习和应用构件设计。此外,在应用框架软件开发过程中 还可能根据软件的需求和实际开发情况对已有框架进行扩展和修改。 6 武汉理工大学硕士学位论文 2 2w e bs e r v i c e s 图2 1 基于框架的应用丌发过程模型 随着互联网与w 曲技术的不断成熟以及基础设施的不断完善,越来越多 的企业应用已经不满足于w 曲1 o 时代的门户网站,而是朝自动处理复杂的自动 化电子交易流方向发展。以w 曲s e i c e s 技术的为核心的w 曲2 o 时代的到来正 是顺应了这一发展趋势。w 曲s e r 、,i c e 是一个平台独立的、松耦合的、 自包含 的、基于可编程的w e b 的应用程序,可使用开放的l 标准描述、发布、 发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序扣j 。 w 曲s e r v i c e s 是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。 各应用程序通过网络协议和规定的一些标准数据格式( h t t p ,x m l ,s o a p ) 来访 问w 曲s e r v i c e ,通过w e bs e r v i c e 内部执行得到所需结果。w 曲s e r v i c e 可以执 行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他w 曲s e r v i c e 应用程序可以发现并调用它部署的服务。 w 曲s e r v i c e s 体系结构的基本组件如下图所示: 7 武汉理工大学硕士学位论文 服务代理者 ( s e r 访c er e 西s 仃y ) 多现d发表p u b l i s h ) 励 曲1 服务提供者 i 。s 篡鬈骱, + 一绑定( b i n d ) ( s e r v i c ep v i d e r ) 图2 2w 曲s e r v i c e s 体系结构的基本组件 如图2 2 所示,w 曲s e r v i c 骼体系主要包括服务提供者、服务代理、服务 请求者三种组件: ( 1 ) 服务提供者提供服务,进行注册并将其服务发布到服务代理的一个目 录下使服务可用; ( 2 ) 服务代理是服务交换所,服务提供者和服务请求者之间的媒体; ( 3 ) 服务请求者向服务代理请求服务,然后按照服务代理者提供的路径去 搜索该服务,得到被请求服务的信息后再调用这些服务创建应用程序。一旦服 务请求得到了调用服务的信息后,就可以直接与服务提供者进行通信而无需经 过服务代理。 与此三种组件对应的w 曲s e i c e s 也包括发布、发现和绑定三组操作: ( 1 ) 发布不发钮( p u b l i s h 肘n p u b l i s h ) :是提供者向代理发布服务或不发布 这些服务的注册; ( 2 ) 发现( f i n d ) :由服务请求者向服务代理执行f i n d 操作,服务请求者 描述要找的服务,服务代理分发匹配的结果; ( 3 ) 绑定( b i n d ) :是在服务请求者和服务提供者之间绑定,这两部分协商 以使请求者可以访问和调用提供者的服务。 w 曲s e r v i c e 技术的优势在于它既能支持常见的业务问题,又能根据市场 需要的变化做到随需应变。它能通过不断发展将企业遗留应用的功能转换为可 复用的、自包含、自描述的服务标准方法,并方便、灵活地进行应用集成。 基础的w 曲s e r v i c 髓平台由订l ( e x t e i l s i b l em a r k u pl a i l g u a g e ) 与h t t p ( h y p e r t e x tt r 锄s f e rp r o t o c 0 1 ) 构成。h 1 r r r p 协议提供了网络通信功能,而x m l 则提供了一种可以用于不同平台和编程语言的标准语言。一般,在构件和使用 8 武汉理工大学硕士学位论文 w 曲s e r v i c 骼时,主要用到s q 心、w s d l 、u d d 这几个关键技术和基本元素。 w 曲s e r v i c 懿协议栈如图2 3 所示: 2 2 1s o a p 图2 3w e bs e i c e 协议栈 s o a p ( s i m p l ec i b j e c t a c c e s sp r o t o c 0 1 ) ,即简单对象访问协议,是一种基于 x m l 的简易协议,可以使应用程序在h 1 瞪之上进行信息交换或访问网络服务 的协议【7 1 。s o a p 是以煳l 为基础,它的消息格式是由删ls c h e m a 模式定义, 通过l 命名空间使s o a p 具有很强的扩展性。s o a p 支持四种消息传递模式: r p c l i t e r a l ,d o c u m e 州l i t e r a l ,p r c e n c o d e d ,d o c 啪e n t e n c o d e d ) 。s o a p 消息包 含路由、处理、安全性、事务处理和其他服务相关的信息,它规范定义了w 曲 s e i c e s 之问通信的格式以及怎样通过h r r p 协议来使用s o a p 。一条s o a p 消 息主要包含三个部分: ( 1 ) s q ”e n v e l o p c 元素:必须的s o a pe n v e l o p e 元素是s o a p 消息的根 元素,它可以把x m l 文档定义为s o a p 消息; ( 2 ) s o a ph e a d e r 元素:可选的s o a ph e a d e r 元素可以包含有关s o a p 9 u d d i 服务发现( s e 州c ed i s c o v e r y ) 服务发布( s e 州c e 印b l i c a t i o n ) 武汉理工大学硕士学位论文 消息的应用程序专用信息; ( 3 ) s o a pb o d y 元素:必需的s o a pb 0 d y 元素可包含打算传送到消息最 终端点的实际s o a p 消息。 个s o a p 请求和响应的实例如下: s o a p 请求消息: 咖l e s s o a p 响应消息: 1 9 0 叫s o a p :b o d y 2 2 2w s d l w s d l ( w 曲s e i c e sd e s 嘶p t i o nl a l l g u a g e ) ,w 曲服务描述语言是一种基 于x m l 用来描述w 曲服务和说明如何与w 曲服务通信的语言。w s d l 将服 务定义为一个网络端点的集合,或者说端口的集合,在w s d l 里面,端点及 消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以 i o 武汉理工大学硕士学位论文 重用这些抽象定义:消息,需要交换的数据的抽象描述;端口类型,操作的抽 象集合。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的 绑定。一个端口定义成网络地址和可重用的绑定的连接,端口的集合定义为服 务。因此一个w s d l 文档在定义网络服务的时候使用如下的元素8 】: ( 1 ) w s d l 端口:锄r t 聊e 元素是最重要的w s d l 元素。它可描述 一个w e bs e “i c e 、可被执行的操作,以及相关的消息。可以把锄咖e 元 素比作传统编程语言中的一个函数库( 或一个模块、或一个类) 。 ( 2 ) w s d l 消息: 元素定义一个操作的数据元素。 每个消息 均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用 的参数。 ( 3 ) w s d l 类型: 元素定义w e bs e 州c c 使用的数据类型。 为 了最大程度的平台中立性,w s d l 使用ls c l l 伽a 语法来定义数据类型。 ( 4 ) w s d lb i n d i n g s : 元素为每个端口定义消息格式和协议细 节。 w s d l 给客户提供了一个模板,方便客户描述和绑定服务。一个w s d l 文档的主要结构是类似这样的: d e f i n i t i o no ft y p e s d e f i n i t i o no fap o r t d e f i n i t i o no fa b i n d i n g 武汉理工大学硕士学位论文 2 2 3u d d i u d d i ( u l l i v e r s a ld e s c r i p t i o n ,d i s c o v e 眄锄di l l t e 鳕a t i o n ) ,统一描述、发现 和集成协议是一套基于w 曲的、分布式的、为w - e b 服务提供的信息注册中心的 实现标准规范,提供了一种基于标准的规范用于发布和查找w 曲服务【9 】。u d d i 构建于网络传输层,且基于s 伪心的江l 消息传输层之上。u d d i 包含于完整 的w 曲s e n ,i c e s 协议栈之内,是协议栈基础的主要部件之一,支持创建、说明、 发现和调用w 曲服务。 u d d i 消息的传输如图2 - 4 所示,u d d is o a p 请求消息通过h t t p 从客 户机的s o a p 请求传到注册中心节点,然后再反向传输。注册中心服务器的 s o a p 服务器接收u d d is q a p 消息、进行处理,然后把s o a p 响应返回给 客户机。就注册中心条例而言,客户机发出的要修改数据的请求必须确保是安 全的、经过验证的事务。u d d i 客户机请求操作包括:创建、查询、更新和删 除u d d i 注册。 2 3 2 3 1r e s t 简介 r e s t ( r 印r e s 饥t a t i o n a ls t a t et r a l l s 衙) 是有r o yt h o m a sf i d d i n g 在其博士 论文“a 战:l l i t e c t u r a ls t y l e sa l l d 廿l ed e s i 踟o f n e 觚o r l ( - b a s e ds o f i 、7 矿a r ea r c h i t e c t u i 髑” 中提出来的。r e s t 本身不是标准,而是为分布式超媒体系统设计的一种架构 风格。r e s t 风格的w 曲服务作为传统w 曲服务( 以s o a p 为基础) 的一种 1 2 武汉理工大学硕士学位论文 替代方式,以其轻量化、易于构建、无状态以及使用哪协议等优势受到了 很多开发语言以及框架的重视【l o j 。r e s t 指的是一组架构约束条件和原则,满 足这些约束条件和原则的应用程序或设计就是r e s t 如l 【】。i 也s t 核心思想就 是:以u r i 形式将状态机表现为动态的节点图,我们就能引入动态负载平衡 ( d ) ,i l 锄i cl o a d - b a l a l l c i n g ) 、数据重导向( d a t a - d h c t e d r 0 1 j t i n 岛v e r s i o i l i n g ) 等 其他正常的w 曲底层设计架构w 曲i n 五礤t r t l c t u f e ,从而使客户端和服务器之间 享受w 曲架构的好处【1 2 】。r e s t 从资源的角度来观察整个网络,分布在各处的 资源由u r i 确定,而客户端的应用通过u r i 来获取资源的表形。获得这些表形 致使这些应用程序转变了其状态。随着不断获取资源的表形,客户端应用不断 地在转变着其状态。目前几乎所有的主流开发语言,如j a v a ,c + + ,c 撑等都 提供了开发i 江s t 风格应用的扩展包。f i e l d i n g 的论文描述了r e s t 应用程 序联网策略。r e s t 与全堆栈w 曲s e 州c e s 根本不同,主要原因有三个: ( 1 ) r e s t 的核心抽象是远程资源而不是远程过程调用。 ( 2 ) r e s t 没有发明一个详尽的标准列表,而是采用现有的m t e n l e t 标 准,包括h t r p 、x m l 和t c p i p 。 ( 3 ) r e s t 没有覆盖每个可能场景,而是覆盖了最常见的问题。 r e s t 架构遵循了c r u d 原则,c r u d 原则对于资源只需要四种行为:c r e a t e ( 创建) 、r e a d ( 读取) 、u p d a t e ( 更新) 和d e l e t e ( 删除) 就可以完成对其操 作和处理。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可 以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。 r e s t 架构让人们真正理解我们的网络协议h t l l p 本来面貌,对资源的操作包 括获取、创建、修改和删除资源的操作正好对应h 盯p 协议提供的g e t 、p o s t 、 p u t 和d e l e t e 方法,因

温馨提示

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

评论

0/150

提交评论