【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了基于ROR框架研究与应用 - 硕士论文相关资料,希望对各位网友有所帮助!
武汉理工大学 硕士学位
论文基于ROR框架研究与应用 别:硕士专业:计算机科学与技术 指导教师:薛胜军 20100501 武汉理工大学硕士学位
论文 摘要 在
经济全球化、社会信息化不断发展的今天,随着hc钉net和W曲技术的迅速发展,越来越多的企业业务处理转向W曲平台。
但随着W曲应用的增长以及需求的多样化,其业务规则和内容越来越复杂,W曲开发技术的方法和效率面I艋很大的挑战。
为了促使W曲应用程序开发简单化开发过程、降低开发成本和提高开发效率,W曲框架技术和敏捷开发方法应运而生。
在Rllby on Rails框架出现之前,主流的W|cb应用开发框架有J2EE平台的框架体系以及.Net平台的W曲Fo衄框架。
它们以优秀的框架设计、成熟的软件模型以及大量可直接复用的构件或代码赢取了市场上大多数企业级W如应用的份额。
但随着企业业务环境的不断变化,J2EE和.Net平台框架也逐渐暴露出自身的缺陷:J2EE平台主张通过大量的捌L配置来协调框架内各构件之间的接口或通信,这就增加了配置复杂度和开发难度。
并且随着需求的增多,不断加入的各种组件和逐渐膨胀的删L配置文档时的J2EE框架变得臃肿不堪,在开发效率和应用性能上越来越不能满足实际的需要。
.Net平台框架并非开源软件,开发成本较高。
而且由于
源代码没有公开,导致框架自身灵活性和扩展性都比较差。
Ruby onlⅦls框架的出现正是为解决现代W曲开发框架中这些缺陷的。
Ruby锄Rails,是一个基于Rllby语言并严格按照MVC设计模式开发的开源w.曲应用框架。
胁ls力图使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
lⅫls的设计原则包括“不要重复自己”(Dontt风:pe韪tYo璐df)和。
约定优于配置”(C∞v∞渤n ov贸Co血gll姐硒n)。
Rails框架实现了与Rllby动态语言的无缝结合,使得开发变得简单快捷,缩短了应用程序开发周期。
I乙ails在迅速开发和部署W曲应用、降低开发代价方面体现了强大的优势。
本文从软件架构、框架以及设计模式的角度介绍了贼ls框架的产生背景及意义,研究了Rail框架的各种特性、架构设计风格、核心体系结构以及关键技术。
并将Rails框架与当前流行的J2EE框架进行了详细的对比,深入分析了贼ls数据库模型A嘶eR.ec0以组件与J2EE的Hib锄ate数据模型组件的差异。
深入研究了Active风:c0耐源代码,给出了Active】删组件的类图。
并在此基础上,运用Rllby∞l湖s框架实际开发了MRI管理系统,在开发过程中运用了多种敏捷开发的方法,充分利用了R且ns的新特性如代码生成器、Ajax技术等多项技术。
关键字:R11by锄贼1s, J2EE..Net,框架,MVC 武汉理工大学硕士学位
论文 Abstract 删ay is破雠s姆of me cc0础醇0baliz蕊0n觚d位con恤1lous如elOpm耐of social蛐姗ation.Wim mc rapid developm姐t of int咖et觚d web童池lology’more and more伽【t唧rise busm铝s tI圳陷to web platforms.But鹤meinc崩nent of w曲appli训on锄d the diversification of rcqlliI.锄%t,me bl璐illcssrule稻锄d content C0m鹤morc姐d加orc comple毛so tl地method and喊cie皿拶ofw曲d.亭vcloplI咖t内∞gr%t曲lall∞g鹤.rI’0 pl砌ote也e W,曲appli咖ondevelopment丽th a simple deve唧pfoc销s,10w costs and hi酿e伍d髓cy’W.曲丘缸n铡ofks al通a罟ile deVclOl腿眦metIlod c锄e o哺.Beforc也e既眦嗵嬲of R砌s鼬唧。
如也c舶施‰眺oh W曲appli谢on Rt】:byon deVdopm吼t include缸m伽0d岱such豁stru:tS,s:叫ng 0r hibematc b酗ed衄J2EE pla哟衄and W曲Fo咖妇n跚破b鹤ed 0n.Net pl晌锄.Bonl ofm锄p州de锄cx础钮t so脚躺desi印pattam and a蛳sticated so脚are model,嬲well舔a large mmlber ofre姻able comp0呦ts 0r cod伪,WIlich acllieve也e n坷ority of mar叠谳of me W曲applicadons.Howe哪;勰the illcr锄ent of b磷妇髓s九ll懿,a咴菠prise-scalle触:ncwo凰b罄ed 0n J2EE觚d.Net鲥ually exposed也血linli锄。
璐:缸n鲫orksb勰ed锄J2EE adV∞a主e也e adoption of a la曙e衄mb盯of XML co碰逗:Ilr撕∞docIml%ts to coofdinate the int叮f.ac璐ofⅥ匝。
璐cc聊lp嘲伽晒and∞棚m髓i饿ons撇ng th饿L An t量le辩:XML c0畦gIl础on d‘’c|啷呦ts c(m埘mlIte蕾o a bloated丘瓤姗嗽Whidh is lma:ble to船垃s母也e越:tllal托qIlil髓n僦in也e de、Jreloplnent e伍ci舶【cy锄d p幽ml柚ce.As.Nct is舯t觚op∞∞ur∞pl缅rm,tlle n强ibility 锄d scalabil毋of缸啦嘲mI(S b勰ed蚀.N戗m&y bc p00r.Ruby on Rans is a &跚aewofk to pr0啊de也e settlement董.0r m伪e def酏tS existing in mod锄Wgb m删0pment丘卸肭rl(s. Ruby傩R面ls,al∞fe矗。
瞅:d t0嬲Rails,is触叩%sou溉W曲application 鼬l咖嗽w岫based∞mc R曲y l觚g哪觚d stri嘶deSi鲥by MVC a坞a咖l appl删磁dcvclop嘲吐w池妇c0豳8nd妇∞n丘昏僦嘟.‰m08t 的脚a他deSi萨pa位e旭RoR ko印it科f tri伪t0 simple幻make imp0一硼t d岱i伊埘ndples Rails砌ude竹DRY a咖、R印鼯t Y0麟1矿髓d of Ⅱ 武汉理工大学硕士学位
论文”CoC¨(C0nv钮垃0n oVer C0蚯gllr撕on).It is畔isely bcCause吐Ie s翩“铭sintegration bet、)l『’啪Rails缸d tlle d),nanlic l锄毋lag岛Rdby,Rail8 emIbl器a∞Siefde、,elopmcnt way aIld a幽【orter deVelopment cyde. ROR印p%rs a s仃ongadV觚L协gp in瑚pid development and d印lo),珏l锄t of wc;b印plb撕oll’锄d a1S0redlJdng dlⅣelopment costs. hl t11is paper;it introdllces也e bacl‘gf0蚰d and signi右Callce of Rails f}锄eworI(s自om tlle拼鹞p剃Ve of soft、7Irare arcKtectllI龟丘ameworkS觚d d商gn pattem;What’s皿吣∞,it d0锶a r铭翰rc:h on me Vadolls fe越ur懿of the Rail纳mewo嗽删tec舰lred妫ign叫e,也e伽ITe缸cllit烈mH_e锨ld cnlCial technolog汹.It ta:k鼯a detailedcomp耐son be四thc伽玎即t删ar J2EE纳mewoIk锄d Rails缸嘶cv岫rk’锄dgiV鹤趾in矗epth anal)哂s on the di钎酹髓lo鹧bctw啪也e Rails也lta:b鹞e栅elA砸w瓜ecord comp0∞nts and J2EE—Hibematc data modd coml,or暾lt.11臌l’“硎娩懿馈屺actIlal deVelopIl-ent of ttle MRI manag锄ent system b勰ed on Ruby onR砌s铂mew0Il【诵m a variet)r of 4西le developm即t砌锄odS,城【ing adVantage ofsome饿-w纯咖r舔鲫Ch弱me Rails code genemtof’向a)【蛐log弘孤d o惦tc6}lIliquI懿.曩rey words:Ruby 0n蹦ls,J2髓,.N吒丘砌eⅣ0d(’MvC m 独创性声明 本人声明,所呈交的
论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其他教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说 签名:啦日期:掣弘明并表示了谢意。
学位
论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位
论文的规定,即学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权武汉理工大学可以将本学位
论文的全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存或汇编本学位
论文。
同时授权经武汉理工大学认可的国家有关机构或
论文数据库使用或收录本学位
论文,并向社会公众提供信息服务。
(保密的
论文在解密后应遵守此规定)觥c四:纠社…捌弼嘲即彳曳,声 f 武汉理工大学硕士学位
论文 第l章绪论1.1
论文研究的背景与意义 目前,随着hnenlet的不断发展,越来越多的企业应用系统都转向Illtenlet平台。
基于HTML标准和HTrP协议的应用也呈几何数量级增长。
W曲技术也从一开始的以.hnn、.htIIll、.Shtnll和.x“为后缀的静态
文档发展到以.唧、.jsp、.php、.ped、.c西为后缀的动态网页,直到以W曲Service为主导的w曲2.O时代。
但随着科学技术的不断进步,企业的业务流程越来越复杂。
面向企业的w曲开发技术在处理复杂的业务流程时,开发效率和成本都受到严重的制约和挑战。
因此,现代软件开发逐步向简单化和专业化发展。
web应用开发框架技术正是为了解决复杂的web开发而生,如基于Java语言的S删s、Sp血lg框架、基于PHP语言的Prado、Cal(ePHp、Tra】【、ThiPHP及Akelos等。
框架可以松散地定义为不同用途而修改的应用程序生成器或者部分应用程序。
一套优秀的框架继承了软件开发在某一业务领域内已经成熟的组件和设计模式。
基于Rubv语言的Rails框架在2004年7月由26岁的丹麦入David HeinemeierHallS0n首次发布了,Rails框架的出现为w曲开发提供了一个更符合实际需求而且高效的框架,它结合了PHP框架体系快速开发以及Java体系框架程序规整的优点,因此Rails在发布后很短时间内就受到了业内广泛的关注,正迅速成为创建W曲应用程序的领先技术平台。
Rails是构建于Rllby语言之上的框架,用于开发、维护和部署W曲应用程序。
Rubv语言是一种动态、纯面向对象的脚本语言,具有很好的灵活性、稳定性和可靠性。
Rails框架汲取了Ruby的所有优点并始终遵循‘Dlw(Don’t RepeatYourSelf)和“约定由于配置(Convelltion Over ConfigIlration)”两大核心设计原则,设计中贯彻到底的敏捷开发思想,使得基于Rails框架的应用
程序开发变得简单快捷。
Rails框架与现有的其他主流w曲应用开发框架如JaVa的S咖ts、C#的w曲Fo姗s以及PHP的Prado相比的最大优势在于: Rails框架让W曲应用开发周期大大缩短,一个简单的W曲应用程序用其它框架开发可能需要几个星期,用Rails框架开发可能只需要几天;若是复杂的其它框架可能需要几个月开发的web应用程序,Rails可能只需要几个星期。
Rails框架以自身的简单 武汉理工大学硕士学位
论文易用、在W曲开发的高效灵活以及对w曲Service、匀ax技术的良好支持,使得它成为建立中小型企业W曲应用开发的首选框架。
MRJ
管理系统就是一个用以管理一定范围内医疗或科研机构的中小型系统,它主要用于实现对医疗机构中核磁共振仪的操作
文档、样品、使用人员以及机构的分权管理。
Rails框架能够很好满足MRI系统的各项性能需求。
1.2国内外研究现状 Hein锄eierHanson从 R曲yon Rails于2004年7月,Rails的创始入DaVid37si鳕als公司的项目管理工具BaSec锄p里面分离出Ruby 0n Rails,并且以开源方式发布了Rails的第一个版本。
Rails在发布以后的短短的时间内就迅速获得很多开发人员欢迎,并以它Rcst开发风格迅速征服了w曲应用开发领域。
Da_vid本人由于在Rails方面的工作,在2005年被G∞西e和o’Reilly合办的OSCON大会授予最佳Hackcf大奖,而2006年他又凭借Rails 1.O获得了年度卓越W曲开发工具大奖。
2006年初发布了具有数据库移植功能和提供IUS支持的Railsl.1版本,2007年初发布了支持REsT架构设计风格的Railsl.2版本,而到2007年12月6日,具有众多新特性和高性能的Rails2.O已经发布。
截止至当Ij{『,获得了Rack支持的正式版Rails2.3和合并了先前竞争对手Merb框架的首个Rails3.0 Beta版本。
国外商业化Rails应用产品如Basec踟p、Odeo、43也ingS等印证了Rails在协同运作、内容管理、社区以及电子商务等多方面的开发势力,Rubyon Rails开源社区也不断地成为丰富和发展Rails的中坚力量,多种插件和引擎相继不断被Rails框架兼并。
Rub灿rge发展成为Ruby on Rails开源项目的主要仓库,很多知名企业和IT公司如IBM、Goo烈e的
开源代码都对Rails提供了支持,其它主流W曲框架如PHP的一些框架、Microsoft的.Net框架均融入了Rails框架设计的相关设计和思想。
在国内,Rails所表现出来的强大生产力和成功的技术宣传使其在很短的时问内得到了开发者的青睐,并且在web开发方面成绩斐然,越来越多的采用Rails快速开发的web应用平台在短期内上线。
2005年年初,在国内主要JaVa社区和其他开发社区开始出现关注国外动态语言的文章, 出现了Rails与Java相关框架的W曲开发效率相差十倍之说,并由此引发了对Java的反思和Rails的憧憬。
2005年6月,Fikko创建了第一个Ruby on Rails中文社区论坛RailsCll。
这标志着Rails在国内开始公开应用,短时间内聚集了大量Ruby on Rails的爱好 2 武汉理工大学硕士学位
论文者和学习者。
2006年6月3日,世界知名的软件开发大师1№ugbtW砌【s公司首席科学家MaItiIl Fowler出席了CSDN与Tho岖ltW.orl(S共同举办的首届“敏捷中国”开发者大会(A西le clli姐Developers Day),并在上海举办了“敏捷专家圆桌论坛”。
本次会议推广了敏捷软件开发思想与Rails的完美结合。
之后随着soopie和ieaSe这些w曲2.0模式网站的上线,新的中文应用也越来越多。
但国内对Rails框架的研究却相对滞后。
Rails专业服务发展从优秀到卓越的道路中,必然呼唤更为广泛的业界支持、推广和较大规模开发团队的形成,Rails专业公司也势必形成并通过不断的开发实践是的Rails服务从优秀走向卓越。
1.3
论文内容和组织结构 本文主要研究了R-ails框架的核心体系和关键技术,探寻了使得Rails框架得以高效开发的内在机制。
对框架进行了补充和改进,并在实际项目中运用框架特性完成开发。
本文分为六章: 第l章绪论,主要阐述了本文的研究背景意义以及Rails框架在国内外的研究现状。
第2章ROR背景知识及其相关概念, 主要阐述了软件架构、框架、设计模式以及三者之间的关系,论述了软件开发框架的必要性以及基于框架开发的过程模型,阐述了W曲SeⅣices、REST以及敏捷开发的相关知识。
第3章RoR体系结构分析,介绍了Ruby语言的特性、ROR框架的特点。
主要阐述了I汕yon Rails框架的组成和原理。
将Rails框架与J2EE框架对比,重点研究了Rails核心框架体系和关键技术。
第4章基于ROR的MRI系统分析与设计,包括MRI系统需求分析、总体设计以及数据库设计。
第5章基于ROR的MRI系统的实现,介绍了Rails开发环境配置,系统开发中采用的关键技术以及主要功能模块的核心代码。
第6章总结与展望,对本文所做的
工作进行了总结,讨论了Rails框架在特定领域的可行性,并对进~步需要研究的内容和趋势作了展望。
武汉理工大学硕士学位
论文 第2章ROR背景知识及其相关概念2.1软件架构、框架及模式概念2.1.1软件架构 软件架构(so胁are觚llitecture),亦称软件体系结构,是在组件彼此间和环境间的关系,引导设计发展原则中体现的系统的基本结构,其中系统是指为了实现某些特殊作用的组件的集合,环境决定了开发、操作、策略和其他影响系统的设置和条件,任务是指系统为了实现对象设置的使用或者操作【l】。
软件架构是对软件系统组织、结构部分和系统包含接口的选择、集合部分的特定行为、较大子
系统部分的构成和架构风格的重大决定的设置【2J。
其中包含了大量可重复使用的框架、构件。
软件架构的重要工作是合理选择构件以及使这些构件在一直的协议和标准下协同工作。
它在很多情况下表现为一种软件设计思想或一个系统蓝图。
是决定软件系统质量的最重要因素,直接影响到软件的质量以及整体的成功。
例如:面向服务的体系结构(SeⅣice.oriented architecture,SOA)是一种IT体系结构风格,支持业务转换为一组相互链接的服务或者重复业务任务,可在需要时通过
网络访问这些服务和任务。
2.1.2软件框架 软件框架是一个可实例化的、部分完成的软件系统或子系统,它为一组系统或子系统定义了架构,并提供了构造系统的基本构造块,还为实现特定功能定义了可调整点。
在面向对象环境中,框架由抽象类和具体类组成【31。
软件框架提供了若干操作接口,这些接口可以完成特定的功能,且这些接口的实现过程是不可见的。
框架技术是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物,在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。
框架的关键还在于框架内对象间的交互模式和控制流模式。
随着软件系统的发展,软件系统的规模和复杂度不断增长,软件开发涉及到的知识、内容、问题太多。
而在某~领域的软件开发能使用一套成熟的框架可以帮助开发者处理很多细节问题,而且扩展性好。
框架的最大好处在于软 4 武汉理工大学硕士学位
论文件构件和设计模式的重用,由于框架是针对某一应用领域开发的,因此它提炼了该领域应用软件的共性部分,应用框架开发项目的过程中只需要在已有框架的基础上做进一步的开发和调整即可满足应用需求。
这就让开发过程更敏捷快速、大大缩短软件开发周期、降低软件开发及维护成本。
例如:EJB(Ente印riseJaVa Be锄s)是Java应用于企业计算的框架。
2.1.3软件设计模式 软件设计模式(So脚are DeSi龋Patt锄)是由Erich G觚lIIla等人,从建筑设计领域引入到
计算机科学里去的。
是对软件
设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
设计模式并不直接用来完成程式码的编写,而是描述在各种不同情况下,要怎么解决
问题的一种
方案【4l。
模式既是一个事物,也是对类似事物的描述。
模式是人们在长期的设计软件、管理组织
软件开发等大量实践经验中提炼和抽象出来的,是可以服用的软件设计方法和开发思路。
模式有助于建立一个复杂的架构,每个模式提供组件、作用以及相互关系的预定义集,设计模式能更加简单便捷地复用成熟的框架和体系结构。
设计模式又可分为:创建型、结构型和行为型三大类。
例如:MVC设计模式就属于结构型设计模式类。
2.1.4软件架构、软件框架和设计模式的关系 软件架构、软件框架和软件设计模式他们的关系可以理解为:设计模式主要侧重于设计重用,软件构件由一个或者多个设计模式组成,通常是框架中的代码重用的API、类库或者工具包。
软件架构由多个相互作用的、可重用的构件组成,并定义了构件之间的相互
通信协议以及共同的标准,而当面向某一领域的特定的软件架构又会慢慢变成可操作的软件框架,框架中既有设计重用,也有代码重用。
在某一领域的所有应用软件均可以基于该领域的成熟软件框架来开发实现。
2.1.5软件开发框架的必要性 一套成熟稳定的应用软件开发框架能很好继承领域内软件开发已有的成熟方法和模块。
框架是面向对象软件设计思想不断发展的最好的复用方式,框架中所有构件都采用统一定义的内部接口,这样就使得框架内部构件之间的通信 5 武汉理工大学硕士学位
论文变得简单,而且也具有很好的扩展性。
框架的另外一个优势在于应用框架开发应用程序能很好的约束所有开发人员共同遵循同一套设计思想来分析问题、遵守同一套约束规则和易于按照框架中各构件进行开发任务的合理系统分工协作。
当前一些主流的应用软件开发框架都提供了数据持久性、安全性、数据流控制、应用集成、事务等问题的解决方案, 成熟稳健的框架可以帮助开发人员处理系统很多的细节难题。
一般讲,采用框架来开发软件的必要性体现在以下几点: (1)框架可以带来更高的代码和设计复用,即对于某一领域的应用程序开发绝大部分代码可以复用成熟框架的代码; (2)基于框架开发可以保证应用软件结构的一致性,这是由框架内部构件间己定义的成熟接口决定的,开发人员只能严格按照框架接口进行应用开发或扩展应用; (3)应用框架开发是软件开发人员更专注于某一特定领域的了解,提高软件开发人员的熟练程度,带来高效的开发效率和更短的软件开发周期,减少软件开发成本; (4)应用框架开发的应用软件具有更好的可移植性,框架在多种平台上的通用性让基于框架开发的应用程序也具有更好的可移植性; (5)基于框架的软件开发有利于软件开发人员之间的协同合作。
2.1.6基于框架的应用开发过程模型 基于框架应用软件开发过程主要包括应用需求分析、应用系统设计、软件框架选择、框架
学习、根据框架结构开发应用构件、组装应用构件、应用测试等几大部分151。
与一般软件开发过程一样,基于框架的软件开发过程也具有迭代性。
图2.1表示了基于软件框架的应用程序开发过程模型。
其中最主要的部分是应用设计和应用实现部分,应用设计部分首先要根据已有的软件系统需求分析做出软件体系结构的设计,然后需要从软件所在领域中已有成熟框架中选择最合适的框架进行学习和应用构件设计。
此外,在应用框架软件开发过程中还可能根据软件的需求和实际开发情况对已有框架进行扩展和修改。
6 武汉理工大学硕士学位
论文 图2.1基于框架的应用丌发过程模型2.2 W.eb Services 随着互联网与W曲技术的不断成熟以及基础设施的不断完善, 越来越多的企业应用已经不满.