《基于edsh的web框架的研究与应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
万方数据中图分类号——UDC硕士学位论文学校代码——密级——基于EDSH的W.eb框架的研究与应用ResearchandApplicationofWrebFr锄e、ⅣorkBasedonEDSH作者姓名学科专业研究方向学院(系、所)指导教师论文答辩日期世歹、里:陈珊:信息与通信工程:网络安全:信息科学与工程学院:刘连浩教授答辩委员会主席獬中南大学2014年5月 万方数据学位论文原创性声明本人郑重声明,所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中南大学或其他教育机构的学位或证书而使用过的材料。与我共同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。申请学位论文与资料若有不实之处,本人承担一切相关责任。作者签名:险日期:丛年土月—生日学位论文版权使用授权书本学位论文作者和指导教师完全了解中南大学有关保留、使用学位论文的规定:即学校有权保留并向国家有关部门或机构送交学位论文的复印件和电子版;本人允许本学位论文被查阅和借阅;学校可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用复印、缩印或其它手段保存和汇编本学位论文。保密论文待解密后适应本声明。作者签名:隘生导师签名:≤l垒逝 万方数据基于EDSH的Web框架的研究与应用摘要:随着W曲技术的迅猛发展,W曲应用越来越普及。如何快速、方便的开发出界面美观、功能强大的应用系统,并具有较强的可扩展性、可重用性以及低耦合性是开发人员重点考虑的问题。在这种情况下,Wreb框架应运而生,框架技术不仅为软件的重用做出了重大贡献,同时它也是提升软件开发效率的重要保障。当前所流行的W曲框架并不能满足每个Wreb应用开发的需求,因此寻找一种新的框架开发W,eb应用成了开发人员的当务之急。本文首先介绍了课题的研究背景、来源与意义及ⅪA技术、W|eb应用框架的国内外研究现状,然后详细分析了应用系统模式、富客户端技术、JSON技术及ExtJS框架、DWR框架、Spring框架、Hibemate框架的原理与优势,接着分析了当前使用较频繁的W-eb框架——SSH存在的问题,针对目前Wreb开发框架中存在的问题,从w曲应用的表示层着手,整合了一个新的w-eb框架——EDSH。该框架使用了目前比较流行的ExtJS与DWR框架替代了SSH中的Struts框架,降低了各层之间的耦合度,提升了系统的可扩展性、可移植性以及可维护性:接着对EDSH框架开发的Wreb应用存在的安全问题进行了研究,针对其主要安全问题提出了具体的解决方法,对使用该框架开发的W.eb应用提供了可靠的安全保障。最后通过将EDSH框架应用于固定资产投资计划系统中,证明其新的框架具有组件化程度高、开发简单、易于维护等特点,与之前的SSH框架相比,不仅提高了应用界面的美观度、缩短了应用的响应时间、减轻了开发人员的工作任务、提升了应用的开发效率,而且使系统的安全性能有更可靠的保障。关键词:EXtJS;EDSH;DWR;蹦PMS;安全性分类号:口393 万方数据ResearchaIldApplicationofWebFra脚eworkBasedonEDSHAb咖ct:With恤rapiddeVel叩mentofWebTecllIIolo鼢Webapplicationhasbecomemoreandmorepopular.Howt0quicHya11deasilydeVelop印plicationswithbeauti如linterfacea11dpowermlfhnctions,witllStrongscalabili坝reusabili锣a11dlowcoupleisakeyconsiderationofissuesfordevelopers.Int11iscase,Wbb仔ameworkc锄eintobeing,m珊eworkhasmadeasignificalltcontributionforso胁arereuse,besides,it’salsoanimportantguaranteetoimproVethee佑ciencyofso矗waredeVelopment.Cun-ently,popularW曲丘甚meworkcaJl’tmeett11eneedsofeachWreb印plicationdeVelopment,solookforanew也mleworkf.0rdeVelopingW曲applicationshaSbecomeapriori够fordeVelopers.Thefirst,thisp印erin们ducestheresearchbackgroullda11dmeaningofthetopicanddomesticandoverseaSresearchsta_tusofW曲application疳锄eworka11d砒AtecllIlology;tllesecond,t11ispaperaIlalyzest11e印plicationsyst锄model,tlleⅪAtechnology,JSoNtecllIl0109),aswellasnleprincipleandadVaIl_tageofEXtJS触nework,DWR矗amework,Springf}锄ework,Hibemate缸unework;廿le廿1irdtllispaperanalyzesmeproblemofcurrentused6.equentlyW曲application矗amework—SSH,aIldt11ent11isprojectaimingattlleproblemofcurrentW曲印plication仔锄ework,startiIlg董吣mt11epresentationlayerofW曲application,integrateanewWeb‰ework—EDSH胁nework.nlis台锄eworkusingtllecurrentrelatiVelypopularintlleExtJSandDWR仔ameworktoreplacetlleS廿utsf}锄eworkofSSH,hasreducedtllecouplingbe帆eenthe1eVel,improVedt11escalabilit),andmaintainabili锣of也esyStem;thentheEDSHsecurityproblemsoftlledevelopmemofwebapplication仔锄eworkarestudied,accordingtomemainsaf.e够problemsput 万方数据forwardmeconcretesolution,theuseofthedevelopmentofW-ebapplication丘锄e、ⅣorkproVidestllereliablesecuri吼Finally,byus证gEDSH也啪eworkint11enxedassetsinvestIrlentplaIlsystem,haspr0Vedmodulardegreeofnewframeworkishi曲,besides,it’seasytodevelopandmaintain.ComparedwimtheSSH舶Illlework,thenewmuneworknotonlyimproves廿1eaestlleticsof廿leinterf-ace,shonellsreSponsetime,reduces仕ledevelopers’work,iInprovestheemciencyofapplicationdeVeIopment,andmakethesystemmorereliablesecuri哆perfo肌ance.Keywords:EXtJS;EDSH;DWR;RUPMS;Secudtyperf撕nanceCIassification:TP393lII 万方数据目录l绪论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.:⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.1课题研究背景、来源与意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11.1.1课题研究背景与来源⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.1.2课题研究意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21.2国内外研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..21.2.1ItM技术研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一21.2.2W曲应用框架国外研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..41.2.3w曲应用框架国内研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一51.3论文的主要研究内容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯61.4论文的组织结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯62相关技术的研究⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯82.1W如应用系统模式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.82.2关键技术分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.2.1富客户端技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.92.2.2ExtJS框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.122.2.3DWR框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一142.2.4S埘ng框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯152.2.5Hibemate框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯162.2.6JSON技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.182.30raCle数据库⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯192.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一203EDSH框架及其安全性的研究⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2l3.1SSH框架存在的问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯213.1.1SSH整体设计的问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2l3.1.2SSH分层设计的问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯213.2EDSH框架的研究与设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯223.2.1表示层框架的分析与设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯233.2.2业务逻辑层框架的分析与设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯243.2.3数据持久层框架的分析与设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯263.2.4EXtJS+DWR+Sp血g+Hibemate框架的整合⋯⋯⋯⋯⋯⋯⋯⋯..273.3EDsH框架安全性的研究⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯29IV 万方数据3.3.1客户端安全⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯293.3.2SQL注入⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.303.3.3参数篡改⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯313.3.4数据库安全⋯⋯⋯⋯;..⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.323.4系统安全问题的解决方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..333.4.1身份认证和访问控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯333.4.2密码的校验及加密传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯333.4.3防sQL注入和参数篡改攻击⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一353.5本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..364EDSH框架在FAIPMS中的应用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯374.1关于FAIPMS⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯374.1.1FAIPMS功能需求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一374.1.2FAIPMS开发平台⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.384.1.3FAIPMS开发流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.394.2FAIPMS中EDSH框架的整合⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯404.2.1表示层实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯404.2.2业务逻辑层实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯424.2.3数据持久层实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯444.3FAIPMS的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯454.3.1登录模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯454.3.2地市项目申请、上报模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯474.3.3项目核定模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯484.3.4数据统计汇总模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯504.3.5固定资产投资计划管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5l4.3.6Excel表格的导入⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..524.3.7地市申请拨款、省公司拨款模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯534.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯535总结与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.545.1总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..545.2展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..55参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.56攻读硕士学位期间主要成果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.60致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯61V 万方数据硕士学位论文l绪论1绪论1.1课题研究背景、来源与意义1.1.1课题研究背景与来源近年来,随着Intenlet与W曲技术的迅猛发展,W曲软件应用越来越广泛,用户对其的要求也日益提高,传统wreb应用中简单发布消息的功能,已远远不能满足当今用户的需求,用户对w曲应用的交互性、响应速度的要求不断提升,使Web应用开发逐渐复杂化。如何快速、方便的开发出界面美观、功能强大的应用系统,并具有高可扩展性、可重用性、可维护性、安全性以及低耦合性【1.3】是开发人员重点考虑的问题。实践证明,选取一种合适的系统开发框架是解决上述问题的最好的方式。目前,软件开发中使用的比较多的框架如ExtJS、Spring便实现了代码的可重用性。w曲应用是建立在B/S模式基础上的,其使用方便已广泛用于企事业单位、政府机关、学校等场所,为了适应各种需求,w曲系统应用模式也越来越完善。web应用中传统的C/S模式逐渐被当前的B/S模式所取代【4】,与c/s架构相比B/S架构最突出的特点就是客户端是通过浏览器来实现,用户通过浏览器按照H1vrP协议向服务器发出请求,服务器处理完请求后,再将用户所需信息返回给浏览器,为用户的使用提供了方便【51。而且B/S模式成功的实现了应用环境与开发环境分离,更加便于系统的升级与维护【6'7】。为了满足在同领域开发不同Web系统的相同需求,针对其共同点探索一套稳健的开发方案,并配上相应的开发工具很必要【引,多层分布式的W.eb应用框架便可满足该需求。以往使用较多的是基于MvC模式的J2EE多层架构,它将c/S模式的w曲应用开发分成N层,每一层都有自己特有的功能【9l。这种开发模式降低了软件各层间的耦合度,让开发人员可以同时开发而互不影响。但这个平台并不能在任何情况下都满足开发人员的需求,并且其业务逻辑层的EJB解决机制也存在一些不足:很多的接口和编程规范,兼容性不够高,限制了业务逻辑组件的移植。针对这些类似的问题在寻求统一解决方法时,w.cb应用框架面世了。目前比较流行的w曲应用开发框架SSH(即S仇lts、Spring、HibeHlate)就是一种比较好的实现分层系统开发的方式【协Bl。SsH框架给w曲应用开发带来方便的同时,也存在一些不足:①界面开发过度依赖JsP技术;②需要配置大量的文件;③必须遵循‰ts框架的特定标准;④SSH框架中不同层次之间的耦合度古114,15I。这使应用的开发难度增加,开发效率降低。 万方数据硕士学位论文l绪论本课题是依据本人在公司实习时所开发的项目来完成——设计并实现湖南邮政固定资产投资计划管理系统,实现了对以往W曲开发框架进行改进以满足当前应用的需求,达到了开发的应用系统具有美观的界面、良好的人.机交互性、及时响应用户请求及较好的可扩展性、可易维护性、开发周期短的目的。1.1.2课题研究意义鉴于高开发效率、高交互性、高可扩展性一直是w曲应用开发人员所追求的,开发框架又是提高这些性能的有效途径,因此选择一个合适的开发框架很有必要。当前流行的富客户端技术便能实现高互动性、用户体验,尤其是新兴的AjaX客户端框架EXtJs及服务端框架DwR不仅完善了开发的规范性、提高了系统的开发效率、提升了代码的可复用性、增加了应用界面的美观度,还简化了客户端与服务器端间的异步通信。综上所述,为了满足当前W曲应用的发展需求,该课题从表示层(PresentationLayer)入手开发构建了一种新的w曲应用框架,在改进SSH架构的基础上,充分利用优秀的开源技术,全面引入动态的富客户端技术Aj觚【16J,将EXtJS、DWR、S研ng以及Hibemate技术进行综合,充分发挥各种技术的优点,解决传统w曲应用存在的系统交互性、用户体验以及开发周期长等问题。1.2国内外研究现状1.2.1Rn技术研究现状ⅪA(mchIntemetApplication)即富互联网应用程序,自从2002年3月份被提出后,由于各种原因,一直没有受到用户的青睐,发展很慢。随着近年来Intemet与W曲技术的快速发展,具有较好人.机交互性、丰富用户体验以及强大功能的富客户端越来越受到用户的欢迎,同时也越发受到了软件开发商的重视,并相继发布了对A框架。在他们的共同推动之下,富客户端逐渐步入了发展高峰期。随着RIA使用逐渐增多,实现富客户端的技术也如雨后春笋般涌现,众所周知的AjaX技术,发展日趋成熟的FleX技术,迅猛发展的SilverLi曲t技术,崭露头角的JaVaFX,以及近期备受关注的HTML5。(1)开源的岗aX2005年初,匀a)【最先由Jesse-J锄esGarrett在一篇题为“Aja)【:ANewApproachtow曲Application”的文章中提出,这篇文章的广泛流传迅速提高了人 万方数据硕士学位论文l绪论们使用该技术的意识【17】。Aja)【技术在保证数据正常通信的同时,不需要中断用户当前执行的操作也能实时更新页面,满足了用户期望应用具有动态交互能力的要求【18】。Aja)【的兴起,给互联网的发展注入了新的力量,在G009leMail、Goo酉e地图中的应用便得到了很好的证明,同时MozillaFireFox对Ajax的支持使得它使用更为方便,发展日趋成熟【19J。(2)Adobe的FlexFlex是Adobe公司为满足ⅪA的应用需求而推出的。Flex的出现不仅解决了传统W曲应用开发中表示层的技术问题,让用户享受了丰富的用户体验,更重要的是它纯面向对象和组件的架构,让w曲表示层的开发具有更分明的层次,大大提升了应用的开发效率。为了更好的使Adobe公司的W|eb应用开发技术相结合,Adobe公司推出了一款跨操作系统的RL~开发平台——AIR(AdobeIntegratedRlmtiIIle),整合了FlaSh、Flex、Hn他、Ai戤的技术优势【2们,实现了不必经过浏览器就可以对网络应用进行控制。(3)微软的SilverLi擘m微软公司研发的SilverLight富客户端技术实现了w曲应用的跨平台性,同时达到了兼容各种浏览器的目标。SilverLi咖的最新版本为SilverLight5。silVerLight实现了用户体验的高品质要求,它所具有的高跨平台性、简单易用的编程模型、特有的技术——内核技术等把w曲应用的开发推向了一个新层面【2¨。但是,到目前为止,不管是国内还是国外的研究都仅限于如何借助SilverLight实现R工A,并没有基于SilverLight开发出一种适合w曲应用开发的框架技术,因此使silverLight的使用受到了限制,无法通过使用它全面提高各种系统的运行性能和用户体验瞄】。(4)SUN公司的JavaFXSUN公司为了适应Wreb技术中富客户端应用的发展,于2008年12月正式发布了富客户端技术——JaVaFx,JavaFX它并不是一种编程语言,而是SUN公司为了实现富客户端应用推出的一种组合产品【23】,它主要是针对PC等移动设备的界面开发而推出的。JavaFx中的编程语言JavaFXScript是2007年5月由SUN公司研发的一种脚本语言【24】,它具有重用性、封装性、声明性,这使得JaVaFX实现ⅪA技术更加方便。但是同Adobe的Flex和微软的silverLight技术相比,JavaFX面世的时间比较晚,发展前景也不如Flex和SilverLight。(5)HT]ML5HTML5是至今为止出现的最新的RJA技术,与以往的HTML不同的是,H州L5不再是单纯的表示W曲内容,而是将W曲应用引入到一个图像、视频、 万方数据硕士学位论文1绪论动画以及音频与电脑之间的交互都被规范化的平台上。HTML5实际上是将HTML4、JaVaScIipt脚本语言、FlaSh以及层叠样式表等合并发展起来的,而且在此基础上形成了统一的标准【25】。Hn肌5是近些年来W.eb应用技术发展上的巨大进步。H刑L5与富客户端技术的结合,不仅弱化了B/S与C/s两种系统应用模型的区别,而且它还可以获得当前热门技术——云计算的支持。因此,H刑L5的出现必将为W曲领域的发展开创一个新局面。1.2.2Web应用框架国外研究现状W曲应用开发框架主要包括两种:轻量级开发框架与重量级开发框架。重量级的开发框架是以EJB为核心实现的,其之所以应用广泛是因为EJB在事务的处理、分布式处理、大数量访问等方面都具有优势,然而这种技术的实现对各方面的要求均很高,在使用之前需引入EJB架构的一些接口和类,是一种侵入性的技术,且不太适合中小型项目开发,因此在w曲应用的开发中轻量级开发框架越来越占据主导地位。目前,比较流行的轻量级开发框架有stmts、Sp血g、W色bwork、Hibemate、iBatis等等。(1)Stmts框架w曲前端框架随着前端控制器的提出逐渐面世了,最先出现的便是stmts框架,随后w曲、Ⅳork、ExtJS等框架也纷纷涌现。2001年,Stmts开发框架被正式发布【26】,stmts的出现强制w曲应用开发人员用MVC模式来进行开发,将应用的表现层和业务逻辑层进行分离126。,简化了开发人员的工作,缩短了应用的开发周期,自S袱s问世后就受到热捧,’并被广泛应用【27J。尽管S虮lts框架在推出之后取得了很大的成功,但它也存在一些不足,在后来的应用中也对其进行了改善。2005年,‰ts与Webwork【23】整合,发布了S饥lts2.O,整合了w曲w0呔的S仇lts2.O功能变得更加强大,且更简单易用,当前发布的最新版本是S饥ns2.3.16.1。(2)Spring框架2001年在《ExpertOne—on.OneJ2EEDesigna11dDevelopment》中RodJohnSon【29】提出了Sp血g的一些核心思想,接着在《Expert0lIle.on—OneJ2EE、ⅣittloutEJB》中进一步阐述了不使用EJB开发企业级应用的设计思想和方法,并正式推出了S研ng框架。这两本书出版一度轰动广泛流传,推动了S曲ng的发展。在S埘ng的框架中引入了IOC、AOP的概念,借助Spring中那些轻量级的容器来实现中小型Web应用的开发。自从第一个版本O.92被Sprillg于2003发布后,受到了大量开发人员的热捧,至今为止最新版本即为3.2.5。4 万方数据硕士学位论文1绪论(3)Hibemate框架2001年,Hibematef30】的第一个版本发布于SourCeForge,它是一个开源代码的ORM(ObjectRelationalM印piIlg)持久层架构1311,它对JDBC(JavaDataBaSeCo如ection)进行了轻量级的对象封装,为软件的开发提供了强大、高效的对Java对象进行持久化的服务,开发人员可以根据自己的需求使用面向对象编程的思想对数据库进行操作,这样可以简化程序员的编码工作,使他们能更多的关注程序的逻辑与应用的实现‘321,并且可以使用Hibemate所提供的HQL(HibenlateQueryLallguage)完成Java对象和数据库之间的转换。(4)DWR框架DWR(DirectW曲Remo血g)是一个W曲远程调用框架,于2004年4月发布了2.0版本,这个框架的出现让匀a)【技术中的异步通信变得很简单,因为在DwR中封装了异步通信的细廿【33】。只要配置好dwLxml便可以在客户端通过JaVaScript直接调用服务器端的Java方法。目前,DWR框架的最新为3.O版本。(5)ExtJS框架EXtJS是基于Aja)【技术的客户端框架,它于2007年正式发布。ExtJs建立在业务逻辑层的框架——Spring的基础上的,它整合了开发w曲用户界面的组件对象,而且对其组件对象原有的能力进行了提升,为实现构建美观的应用页面,丰富用户体验,局部刷新数据的应用提供了可能。1.2.3W曲应用框架国内研究现状由于富客户端技术——Aia)‘广泛应用,其优势逐渐凸显,国内的相关学者们也开始着手研究Aia)【技术在W曲系统中的使用。严丽萍等指出尽管在W曲应用开发中使用Aja)【技术会给系统带来不一样的特征,但是他们却忽略了Aja)【技术在实际开发过程中存在的问题,而且他们也未曾考虑过简aX技术在Web应用开发中应当发挥什么样的作用。AjaDc是w曲应用框架的重要技术之一,如何发挥其在Wreb应用框架开发中的优势,使开发系统周期更短、维护更简单,是衡量其开发框架是否合适的主要因素嗍。对于W曲应用开发框架国内对其还是做了比较深入的研究的,许劲松【35】等研究了目前比较流行的几种软件架构,但其主要停留在对理论的研究上,并没有将其应用于系统的实际开发中:王磊【36】等分析了当前W-eb应用开发中使用比较多的ssH框架,并阐述了SSH框架如何应用于电子商务中;黄烟波【37J等也着重研究了SSH框架和它在wreb系统开发中的应用。正是SSH框架的广泛应用,其由‰ts实现表示层的缺点日益凸显,例如:踟叫s框架开发界面时对JsP技术 万方数据硕二L学位论文l绪论过度依赖,开发过程中使用大量的模板,应用程序中需要频繁解析模板,大大加重了服务器与网络的负担。随着技术的成熟,W曲应用框架也越来越多,鉴于SSH框架存在着一些不可避免的缺点,各种新的整合框架如Easy,w曲Jdon、Fr啪ework便逐渐出现了。本课题通过对目前比较流行的开源框架技术的研究,设计了一个新的W曲应用系统的开发框架,这个框架不仅借鉴了当前比较优秀的组合框架的设计思想,而且还融入了新的实现层次解耦的方案,用其设计出的W曲系统更能满足当前用户的需求。1.3论文的主要研究内容本文主要对当前比较流行的w曲应用的整合框架进行了深入的研究,总结了它们在应用中存在的问题,针对其缺点并结合当前w曲应用开发的需求,设计了以EXtJS、D、ⅣR、Spring、Hibemate框架整合的架构体系,实现了系统具有丰富的用户体验、较短的开发周期、极强的交互性、较快的响应的功能;研究了该种框架在应用过程中可能出现的的安全问题并针对每种安全问题进行分析提出了有效的解决方案;最后通过将EDSH运用在固定资产投资系统中,阐述了其在系统开发过程中凸显的优势,证明了EDSH架构所具有的特性。1.4论文的组织结构本论文总共分为五章,每章的重点及相关内容如下所述。第一章对本课题的研究背景、来源与研究意义进行了介绍,并对RIA技术、W.eb应用框架的国内外研究现状进行了分析,阐明了开发一个实时性高、交互性好、界面美观的wreb应用,选取一个优秀的开发框架是非常重要的,最后概述了本论文的主要研究内容及论文组织结构。第二章对W曲应用开发中所用的应用系统模式、关键技术、各层开发框架以及数据库进行了详细的论述。第三章对当前使用比较多的ssH框架存在的问题进行了分析,详细介绍了W曲应用开发中的表示层、业务逻辑层、数据持久层所选取的框架,并对各层的开发框架进行了整合,接着对使用该开发架构的w曲应用系统存在的安全问题进行了分析,最后针对该系统的主要安全问题提出了有效的解决方案。第四章为本文设计的框架在固定资产投资计划系统中的应用,首先介绍了固定资产投资计划系统的功能需求、开发平台以及开发流程,接着阐述了EDSH框架在系统中是如何设计与应用的,最后详细介绍了系统的实现。6 万方数据硕士学位论文l绪论第五章是对全文的总结与展望,总结了使用本课题研究的EDSH框架开发的Ⅳ岬MS系统具有的特点,以及对本课题的研究成果与下一步要做的工作进行了阐述。7 万方数据硕士学位论文2相关技术的研究2.1Web应用系统模式目前,软件体系结构包括C/S与B/S两种,C/S(clie州seⅣer)即客户朋艮务器模式,B/S(Browser/Server)即浏览器/服务器模式。C/S模式是典型的两层结构,它主要的特点就是能将系统任务合理分配到客户端和服务器端来实现,既充分发挥了PC的处理能力,又减少了网络带宽的浪费。但当前软件的复杂度日益提高,C/S的缺点逐渐凸显,因此在当前的W曲应用开发中开发人员一般采用B/S结构模式。、B/S模式是随着Intemet技术的兴起对C/S模式的扩展。在B/S模式中所有的应用程序及数据库均放在服务器端,客户端通过浏览器来实现。用户通过浏览器向Server发出请求,Sen,er处理完请求后,再将用户所需信息返回给浏览器,使用起来非常方便。彤S体系结构如图2.1所示。图2-1B/S模式结构图第一层为表示层,由浏览器来实现。用户借助浏览器对系统进行操作,首先用户在地址栏输入URL向W|eb应用服务器提出请求,W如应用服务器通过帅协议将用户所需资料传给用户,最后客户机接受返回的结果并显示在浏览器上。第二层为功能层,由w曲服务器实现。即W曲服务器接受客户的请求,以CGI(co衄nongateinterface)与数据库连接后对客户请求进行处理,然后服务器端将结果返回给wreb服务器,再由w.eb服务器传送给客户端浏览器。第三层为数据层,由数据库服务器实现。数据库服务器根据客户的请求独立进行数据处理。B/s模式与C/s模式相比,其优点如下所述。(1)维护和升级简单 万方数据硕士学位论文2相关技术的研究在C/S模式的系统中,每个用户都需要在自己的电脑上安装一个客户端,因此每次系统的维护或升级都要对每个客户端进行重新安装,其耗费的人力、物力比较多,且c/s模式的数据库要实现物理上的分离,问题便变得更加复杂,需要大量的相关技术支持和维护工作【391。而B/S架构的软件因其应用程序和数据库全部在服务器上,所以在系统升级时只要管理服务器即可。(2)数据库性能更高①安全性更高,与C/S架构的软件相比,B/S架构软件的数据集中存放于服务器端的数据库服务器上,和客户端是分开的,安全系数更高。②数据一致性更好,B,S架构的软件的数据是统一存储,每次对客户端数据进行操作都和数据库中的数据同时进行,不存在数据不一致的问题。③数据实时性更强,C/S结构不能实时体验到数据的更新,而B/S结构则不同,它可以实时更新当前操作的所有业务,方便了数据共享、快速决策。(3)适应范围更广B/S模式的应用软件一般只需操作系统和浏览器,比C/S模式软件适应范围更广。B/s建立在广域网之上,不需要专门的网络硬件环境。而C/S模式是建立在局域网上,必须通过专门服务器才能在局域网之间提供连接和数据交换服务。(4)系统开放性更好开放性是应用系统必须具有的,它将为不同厂商产品协同合作创造良好的条件,但这些相关的产品也应该遵循统一的标准。在B/s模式的系统中,采用了相同的H丁口协议以及一些其他约定的原则,确保系统的通用性和跨平台性124】。(5)平台无关性更强在B/S模式的系统中,应用程序基本都布署在服务器上,客户端只是一个浏览器,客户端与服务器之间通信均是采用H1vrP及TCP/】P等协议,因此,客户端与服务器端是相互独立的,用户可以自由的选择自己喜欢并熟悉的平台使用。2.2关键技术分析2.2.1富客户端技术(1)富客户端富客户端是为了解决传统W曲应用中存在的用户体验问题而出现的,富客户端简称剐A,它是一种以文件形式提供,用H,兀P传送的已编译客户端应用程序的运行环境。mA允许我们在因特网上部署富客户端程序,使客户端具有更强的交互性、更丰富的用户体验以及更强大的功能。富客户端技术最核心的部分就凸显在“富”上。“富”包含了两层含义:第一是其具有丰富的界面元素,它提9 万方数据硕士学位论文2相关技术的研究供了比传统W曲应用中HTML更为丰富的界面元素,为用户提供了更好的体验效果:第二是其具有丰富的数据模型,在富客户端中提供了多种数据模型来处理客户端的数据操作。ⅪA集传统W曲应用程序与桌面应用程序的优势于一体,集低成本部署、快速响应以及实时通信于一身,是新一代w曲应用系统开发的规范【4UJ。富客户端技术为W如应用开发提供了一个非常强劲的技术平台,使客户机的能力复原到与使用C/S软件架构模式开发的系统中的客户端的功能相似。它不仅适合以往应用的多层开发模式,而且还可以与原有的开发环境融合,实现对已有的应用扩展。同时,使用这种技术开发的应用还能允许用户进行离线工作。对A还具有在客户端进行数据的缓存的能力,正是由于ⅪA所具有的这个特点使它能开发出与服务器交互次数更少、响应速度更快的应用界面。特别是对于那些偶尔需要连接或者是无需连接的无线设备来说,以后肯定是朝富客户端方向发展的。目前,主要的富客户端技术如表2.1所示。表2.1主流的富客户端技术在上表三类富客户端技术中,浏览器技术是开发刚A最宣接的技术,其中Ajax技术应用很广泛,并且认为Aja)(技术是开发R队的不二选择,它可以在不同的操作系统和浏览器上运行,是一个不错的跨平台、跨操作系统、跨浏览器的富客户端技术。Aja)【的出现使B/S模式开发的系统界面设计上升到了一个新的层面,使客户端的交互变得更加友好,也解决了客户端一次性提交和响应缓慢的问题。因此,使用浏览器技术中的AiaX技术是开发W曲应用系统的一个不错的选择,本课题的wreb应用开发中即采用了Aia)【技术。(2)富客户端与传统客户端的区别lO 万方数据硕士学位论文2相关技术的研究富客户端与传统客户端的区别主要在于客户端和服务器端之间的交互方式。①传统客户端与服务器端的交互在传统客户端下工作,首先用户在浏览器中进行操作,从客户端向服务器端发出请求,服务器端收到该请求之后,便进行业务逻辑处理,.从数据库中取出所需的数据并在服务器端组织好数据,发送给客户端,客户端收到数据后对其进行解析然后在浏览器上显示出来。传统客户端与服务器端的交互流程如图2.2所示。/,client、厂Server、嘲uest》取出数据显示组织数据Qes洳\//\//图2—2传统客户端与服务器端的交互②富客户端与服务器端的交互富客户端与传统客户端不同的是富客户端多了一个W.eb应用服务器,在这种情况下,服务器端需要做的仅仅是业务的逻辑处理和操作,而不需要像传统客户端一样还要关注数据的表现形式,所以客户端与服务器端可以说是相互独立的,这样便实现了数据的异步交互,提高了系统的响应速度,给用户提供了一种连续的用户体验。富客户端与服务器端的交互流程如图2.3所示。/,C“ent、厂、\卜嘲uest》use∑HtmI∥ServerJaVaScriptExtJSCSS/1Q唧onsejGenerateN\//\\//图2—3富客户端与服务器端的交互 万方数据硕士学位论文2相关技术的研究通过对传统客户端与服务器端的交互与富客户端与服务器端的交互相比,可以看出富客户端更能满足用户的更高的体验要求,所以在本课题的EDSH框架的应用开发中采用心这种技术。2.2.2ExtJS框架在砒A技术的介绍中我们知道Aia)(是开发ⅪA的不二选择,用它开发的W曲应用可以在不同的浏览器上运行,是一个不错的跨平台的富客户端技术;使用AjaX技术开发的应用系统不需要等待服务器响应,用户便可以在同一页面上继续操作,提供给用户一种连续的体验,这正是传统的w曲应用急需解决的问题;同时减少了网络带宽开销、减轻了服务器的负荷,加快了响应速度、缩短了用户等待时间、提高了系统的交互能力⋯】。ExtJS便是富客户端技术——AjaX的一种应用,它是一种由JavaScript编写的Aia)(技术的客户端框架,主要用来创建和设计界面,是一种几乎与后台技术无关的前端框架,因此,它可以应用于PHP、Java等不同后台技术开发的应用中。ExtJS最初来源于YUI(Y她oouserInterfaceLibraw),是由JackSloc啪研究开发的,实现了组件的可视化、提高了界面的美观度、解决了数据解析处理上的问题,是一款非常不错的基于Aiax技术的砌渔应用框架。EXtJS的UI组件模型和开发理念分离,它包含了许多定制用户界面的控件,该框架是基于Hn他、Css与Javascript脚本语言等技术开发的,提供兼容各种浏览器的组件,采用自带的数据交换格式JSON完成数据交换,减轻了服务器端的负担,从而真正达到富客户端的开发效果【42J。ExtJs框架提供了丰富的组件库,组件库细分为基本组件、工具栏组件和表单元素组件,总共有50多种,另外还有一些其他的扩展组件,满足了开发富客户端应用的各种需求。ExtJS框架中的控件是通过Component这个类来定义的,在定义控件时它对每一个组件都赋予了一个属性值,用ⅪⅦe来标识,因此只要通过这个属性值就可以找到其对应的组件。EXtJS框架的组件结构如图2.4所示。JQuery、YuI、Dojo以及ProtoType都属于非常核心的JS库。虽然YUI与JQuery都构建了一系列的UI器件,不过却没有一个完全整合好的程序开发平台。尽管这些底层的核心库已经很不错了,但当真正投入到实际开发环境中,仍然需要开发者去完善很多不足之处,ExtJS的出现解决了这些问题。与其他AjaX框架相比,EXtJS主要有以下3个优势。 万方数据硕士学位论文2相关技术的研究图2-4EXtJS组件结构图(1)丰富的UI组件EXtJS框架之所以能开发出美观且交互性好的界面是因为其开发用户界面的组件具有重用代码、便于使用、功能齐全的特性。W曲应用开发人员不需要太懂CSS布局和PhotoShop等美工知识就可以开发出美观的用户界面。而且开发者不仅能直接使用这些控件开发用户界面,还可以自行对uI组件进行扩展,形成符合自己需求的用户界面组件库。(2)优秀的源码ExtJS框架的设计秉承了面向对象编程的设计理念,因而其具有定义全局变量名的空间且拥有规范相同的特点。正因为在ExtJS框架的设计中使用了大量的设计模式,使得其设计更加巧妙、框架结构更加清晰。因此,基于EXtJS框架所设计的W曲应用系统比其他系统更易于扩展,且增强了代码的可维护性以及提升了系统的性能。(3)实现了数据与组件的分离开发人员在使用EXtJS框架设计用户界面时,不需要考虑客户端与服务器端交换的数据的格式,因为其对数据操作均是通过调用定义好的接口来实现,这也是使用ExtJS框架开发前端界面时可以不考虑后台使用什么语言开发的原因所在。ExtJS除了具备上文所介绍的三个优点之外,拥有大量的参考资料也是它一个突出的优势。ExtJs提供了完整的应用程序接口文档和各种开发实例,应用程序接口文档对ExtJS组件的作用、属性、配置项等都进行了详细的介绍,开发实例对初学者来说具有更强的指导意义。此外,ExtJs的较高的使用频率与其代码的开放性也使其论坛一直很有人气,这些论坛上对EXtJs设计的应用出现的一些 万方数据硕士学位论文2相关技术的研究问题的解答帮助了开发者的学习以及ExtJS的自我完善,这样使ExtJs开发框架越来越完善,技术越来越成熟。因此,在使用Aja)【技术开发富客户端应用时,E赋JS是开发人员开发系统界面的一个不错的选择。2.2.3DWR框架基于Aja)【使用xMLH卸Request对象进行异步通信过程比较繁琐,因而出现了许多基于匀a)【技术的用来解决客户端与服务器端异步通信繁琐问题的框架。DWR(DirectW曲Remoting)即直接w曲远程调用。它是一个服务器端的Aja)【框架,可以把后台的任何JaVa对象公开为可以通过浏览器中的JavaScript访问的远程对象。这个框架为开发人员提供了实现界面开发的常见的JaVaScript工具箱,由于目前对JaVascript代码的编写还没有一个统一的工具,所以工具箱的出现既减少了程序员的代码编写量又减轻了他们调试JavaS嘶pt代码的负担。通过这个框架隐藏了客户端与服务器端之间异步通信的细节,为开发人员开发w曲应用系统提供了更多的方便,同时也提高了系统的开发效率。DwR基于Java类动态创建JavaScript代码,开发者可以利用浏览器中的Javascript代码调用远程的Java方法,就像是JaVa代码在浏览器中一样。这样便实现了将w曲应用中的客户端的请求与服务器端的响应函数进行结合。基于Aiax技术的DwR框架在W曲应用开发中主要发挥了两个作用:其一,它能对dwr.xml配置文件中设置为公开的JaVa方法动态的生成对应的JaVaScript函数供客户端调用,并在服务器端执行ⅪⅥLHnpRequest对象实现异步通信;其二,当客户端用户发送操作请求给DwR的时候,DwR会将其解析成服务器端能够识别的与其功能对应的功能函数,并将其函数返回的值传送给客户端,再编码成JaVaScript,原理如图2.5所示。web客户端w曲服务器端Javascript/IItml3aNaFllllct.on“entH卸dle哟{publicclassAjaxServiceAj毅Service.g∞pti∞(populateList);.,/1卜{)