一种新的网络应用程序开发框架mvc外文翻译.docx
《一种新的网络应用程序开发框架mvc外文翻译.docx》由会员分享,可在线阅读,更多相关《一种新的网络应用程序开发框架mvc外文翻译.docx(10页珍藏版)》请在冰豆网上搜索。
![一种新的网络应用程序开发框架mvc外文翻译.docx](https://file1.bdocx.com/fileroot1/2022-12/7/4af0b714-e664-4b09-8bce-7ef7824d1e82/4af0b714-e664-4b09-8bce-7ef7824d1e821.gif)
一种新的网络应用程序开发框架mvc外文翻译
外文资料翻译译文
一种新的网络应用程序开发框架——MVC*
摘要:
MVC(Model/View/Controller)的设计模式出现在在Smalltalk-80,并在软件的设计中广泛应用。
本文介绍一种基于MVC框架的的新网络应用程序。
这种框架把实施逻辑与表现形式独立开来。
它也提高了系统的可维护性,可扩展性以及使用模块数据库备案、模板数据库,通讯对象和缓冲队列的性能。
关键词:
MVC、设计模式、网络应用程序
1.简介
网络应用系统是一个基于B(rowser)/S(erver)模型应用系统。
它利用多种动态网页开发技术。
目前,软件设计的主题之一是网络应用开发模式和工具的。
它们直接影响系统的几个关键因素,比如可维护性、可扩展性、稳定性和安全性。
本文中,基于MVC[1]的网络应用程序的设计模式是为解决这两类因素——扩展性和可维护性这些不易处理的问题。
把MVC设计模式引入网络应用程序开发,执行逻辑可以独立于系统的表现形式。
MVC由三种对象组成。
1)模型:
是应用对象,2)视图:
是它的屏幕的显示,3)控制器:
定义用户界面并对输入的信息做出响应。
在出现MVC之前,用户界面的设计倾向于把这些东西做在一起。
然而,MVC独立了它们,增加系统的灵活性和可重用性。
MVC把视图和模型独立开来,在它们之间建立了“subscribe/notify”协议。
一个视图必须确保其正确反映模型的状态。
每当模型的数据发生改变,视图会得到相应的通知。
作为回应,每个视图都会有更新自身的机会。
这个方法可以让你附上一个模型的多个视图以便提供不同的报告。
你也可以不改变原模型同时创建新的视图。
2.背景和存在的问题
虽然MVC的设计模式已经在smalltalk-80中提出了,并广泛应用于软件设计,介绍它到网页应用程序开发却仍很困难的。
主要由于以下两个因素:
1)首先,很难独立
来自OC的编程语言。
早期的CGI程序使用字符串输出创造了HTML内容。
默认的,将HTML文本分成几份,然后把他们嵌入到CGI程序中。
脚本语言出现后,变成了脚本语言编写的程序嵌入到HTML文本中。
然而,这两种方法有一个共同的不足,使他们不能完全独立于HTML文本。
因此,这两种方法使采用MVC分离三层模式十分难以实现。
2)第二,脚本语言的功能太弱。
他们缺乏一些必要的技术支持来采用MVC的设计模式,如消息机制和事件回应机制。
直到Model2版,这种情况并没有受到任何改善。
依靠强大的OC语言功能,Model2[4]某种程度上实行MVC设计理念。
图1显示了MVC的机制:
•模型(数据层):
它是封装到企业JavaBean。
•视图(表示层):
view负责的网页方式,如报告的格式,分页等。
•控制器(控制层):
Servlet受到网页上的用户的输入并执行有关的操作(呼叫相应的EJB组件),给出了相关视图,所以会呈现这些结果。
Model2机制主要满足了开发商对要求Web应用逻辑和用户界面独立的需求。
但制仍然存在某些限,例如,尽管Model2已经实施采用MVC设计模式的基本理念,三个层次之间的相互关系(Servlet,JavaBean/EJB)仍然封闭。
特别是,就Servlet当控制器,不仅控制选择同时响应模型的模块,还负责对处理JSP转移数据提供模块。
因为这一过程,Servlet本身已实现非常复杂的执行逻辑,对于体系的发展和维护这是正是一个棘手的问题。
因此,在下面的网络应用系统框架,我们会进一步划分出功能的控制器。
3.解决方案
图2中显示,这一系统框架包含三个内核控制对象/类(UIViewController,ModelCenter,andLPM(LogicalPageModule)Center)和它们的核心数据库(systemdescriptiondatabase,modeldatabase,andLPMdatabase)。
这三个控制对象/类根据原始的控制器划分。
通过这些控制对象/类和数据库,下文将解释部分的设计思想和该系统框架的实现机制。
首先,我们考虑UIViewController和系统的描述数据库。
他们负责接收用户的要求
和根据这些请求搜索有关的执行逻辑。
系统描述数据库可以是一个XML[2]文件或一套XML文件。
这个数据库描述了不同的执行逻辑与不同的用户请求。
执行逻辑主要包括互动模式、数据来源与异常处理等,这些组织在一个树形结构中。
而UIViewController可以搜索系统描述数据库。
它结合了用户的要求和来自数据的执行逻辑,然后把它们交给传输器来封装。
UIViewController有两种方法搜索数据库。
其一是使用DOM对象(DocumentObjectModel)[3]。
当应用程序系统开机,这样需要DOM解析器分析整个数据库备案后载入内存。
数据库将保留在内存中的DOM树结构。
另一种是使用SAX(SimpleAPIforXML)接口。
两者有各自的优缺点。
使用DOM可以实现结构搜索。
它可以在大型数据库上使用,但是会暂用更多的系统资源。
而SAX接口以高效率和更少的系统资源占用率著称。
唯一的缺点是它获得信息比DOM难。
其次,我们考虑模型中心和模型数据库。
该层通过调用给定模块完成定义执行逻辑。
模型数据库包括大量的对象和模块。
这些对象和模块根据特定的执行逻辑封装响应方法。
当模式中心接收到的执行消息,它根据封装在信息里的执行逻辑选择合适的对象或模块。
然后按照给定的数据格式封装模块,冰传输给LPM中心。
此外,每个对象或模块只需要关心如何实现给定的事务的逻辑以及如何获得必要的
数据而不提交这些数据。
最后,我们研究一下LPM中心和LPM数据库。
LPM是实施描述的某一种数据类型的项目集合,它可以当成是一个或一组磁盘文件。
在另一方面,有一个网页可有一个逻辑页或多条逻辑页。
一个LPM的功能是很简单的:
它只需要在没有被得到执行逻辑和原数据内容的情况下给定数据类型。
因此事实上,LPM是作为标签库(JSP)或数据捆绑(.net)而开发的。
此外,这种类型的服务器脚本可以很容易由客户开发人员在UI(userinterface)设计阶段理解,what-you-see-is-what-you-get(所见即所得)工具也很容易开发。
在这部分,LPM中心从模型中心收到数据。
它根据给定数据类型和执行逻辑选择适当的逻辑页模块,然后封装逻辑页的输出模块到HTTP响应并将发布到客户端。
注意到这3个控制对象,除了UIViewController,另外两个不是直接进入自己的核心数据库。
例如,模式中心不直接从模型数据库调用对象或模块。
它实现了通过ModelFactory的存取。
(过程见图2)
通过分析系统框架,可以看出整个系统完全符合MVC设计模式。
在在系统的开发时期各部分的开发者三者冰不具有相互的干涉。
当系统框架已确定,各部分惊人的发现开发的相似。
在过去这对网络应用程序的开发来说是不可能的。
因为我们已经把控制器分为3个部分,MVC三层(模型/视图/控制器)的联系变得更加宽松。
所以它可以明显提高整个系统的可扩充性。
在下一节,我们将向你展示一个简单的例子去解释如何在三层MVC模式的过程通过增加中间执行步骤扩大系统框架。
4.相关问题
检查目前的网络应用程序设计模式(如CGI,Model2等等),我们可以获得初步结果:
MVC模式是一个优于其他系统逻辑框架的网站应用系统开发模式,它平衡了合作开发、系统的可扩展性和可维护性。
这主要由于旧设计模式对系统逻辑框架的独立性的不足之处。
例如,在通过CGI开发的网页系统中,CGI程序不仅需要处理执行逻辑,同时也负责系统报告的格式。
因此,它要求开发者有很强的编程能力(他们必须非常熟悉执行规划和界面设计)。
此外,它甚至会使系统的逻辑层次混乱。
最后,混沌编码会带来一系列的问题。
使用服务器脚本语言(如ASP,PHP等等)实现的网页应用系统也不符合要求。
其原因是,这些脚本语言都有天生的缺陷(例如,他们却没有有好的对象支持和事件响应机制等);他们不能令人满意地缩短网络应用系统的执行逻辑。
由此Model2的不足已在上文描述过了,所以没有这个必要在这赘述了。
5.结论
从上述对系统框图的分析,我们可以做一个结论。
改进后的MVC设计模式框架比传统方法有更清楚的结构,每个模块间的联系甚少。
框架解决是一个大问题,曾困惑很多网络开发者。
它将执行逻辑从表现模式独立出来,实施并行进行发展。
此外,利用模型数据库和LPM数据库,这个更系统的灵活性、可维护性和可扩充性得到了显著提高。
本篇讨论的框架已经在UEST网络应用系统上得以实施()。
外文原文
ANovelWebApplicationFrame
DevelopedbyMVC
LuoGuangChunWangYanhuaLuXianliangHanhong*
(InformationCenterofUESTofChina,ChengDu,China610054)
Abstract
TheMVC(Model/View/Controller)designpatternwasdevelopedinSmalltalk-80andwidelyusedinsoftwaredesign.ThispaperintroducesanovelWebapplicationframebasedonMVC.Thisframeseparatesthetransactionlogicfromthepresentationformat.Italsoimprovesthesystemmaintainability,scalabilityandperformancebyusingthemoduledatabase,templatedatabase,messagingobjectandbufferqueue.
Keywords:
MVC,DesignPattern,WebApplication
1.Introduction
WebapplicationsystemisatransactionsystembasedonB(rowser)/S(erver)model.ItexploitsmanykindsofdynamicWebdevelopingtechnologies.Atpresent,Webapplicationdevelopingpatternsandtoolsareoneofthetopicsofthesoftwaredesign.Theydirectlyinfluenceseveralkeyfactorssuchasmaintainability,scalability,stabilityandthesecurity.Inthispaper,thepurposeofMVC[1]-basedWebapplicationdesignpatternistoresolvethetwofactors–maintainabilityandscalability,whicharethestubbornproblemsintheWebapplicationdevelopment.ByintroducingtheMVCdesignpatternintotheWebapplicationdevelopment,theimplementationofsystemtransactionlogiccanbeseparatedfromthesystempresentation.
MVCconsistsofthreekindsofobjects.1)theModel:
istheapplicationobject,2)theView:
isitsscreenpresentation,3)theController:
definesthewaytheuserinterfacereactstouserinput.BeforeMVC,userinterfacedesignstendedtolumptheseobjectstogether.However,MVCdecouplesthemtoincreasetheflexibilityandreuse.MVCdecouplesviewsandmodelsbyestablishinga“subscribe/notify”protocolbetweenthem.Aviewmustensurethatitsappearancereflectsthestateofthemodelcorrectly.Wheneverthemodel’sdatachanges,themodelnotifiesviewsthatdependonit.Inresponse,eachviewgetsanopportunitytoupdateitself.Thisapproachletsyouattachmultipleviewstoamodeltoprovidedifferentpresentations.Youcanalsocreatenewviewsforamodelwithoutrewritingit.
2.BackgroundandProblems
EventhoughtheMVCdesignpatternwasalreadyputforwardinsmalltalk-80andwidelyusedinsoftwaredesign,itisdifficulttointroduceitintotheWebapplicationdevelopment.Itwasmainlyduetothefollowingtwofactors:
1)First,itwasdifficulttoseparatetheprogramminglanguagefromHTML.EarlyCGIprogramscreatedtheHTMLcontentbyusingcharacterstringoutput.Innature,itdividedtheHTMLcontentintoseveralportions,andtheninsertedthemintotheCGIprograms.AftertheappearanceofScriptlanguages,thewaychangedtoinserttheprogramswrittenbyscriptlanguagesintoHTMLcontent.However,thesetwowayshadacommondeficiencythattheycouldnotseparatetheprogramsfromtheHTMLcontentabsolutely.Therefore,itisverydifficulttoimplementtheMVCdetachedthree-layerpatternbasedonthesetwoways.2)Second,functionsofthescriptlanguagesarelessweak.TheylacksomenecessarytechnologiestosupporttheMVCdesignpattern,suchasmessagemechanismandeventresponsemechanism.ThissituationdidnotgetanyimprovementuntilthereleaseoftheJSPModel2[4].DependingonthepowerfulfunctionsofOClanguage,theJSPModel2implementstheMVCdesignideatosomeextent.Figure1showsthemechanism:
•Model(thedatalayer):
itisencapsulatedintotheEnterpriseJavaBean.
•View(thepresentationlayer):
JSPisresponsibleforthepresentationofpages,suchasthepresentationformat,paging,etc.
•Controller(thecontrollayer):
Servletreceivestheuserinputinpagesandexecutestherelevanttransaction(callingthecorrespondingEJBmodules),thengivestheresultstotherelevantView,soJSPcanpresenttheseresults.
ThismechanismofJSPModel2basicallymeetsthedevelopers’requirementstodetachtheWebapplicationtransactionlogicfromtheuserinterface.Butsomelimitsstillexist.Forexample,althoughJSPModel2hasimplementedthebasicideaoftheMVCdesignpattern,therelationshipofthesethreelayers(Servlet,JavaBean/EJBandJSP)isstillclose.EspeciallytheServlet,whichactsastheController,notonlycontrolstheselectionandcallofModel’smodules,butalsoisresponsiblefortransferringdataprovidedbymodulestothecorrespondingJSPtohandle.Becauseofthisprocess,Servlethastoimplementverycomplicatedtransactionlogicbyitself,whichisatoughproblemforthesystemdevelopmentandmaintenance.Thus,inthefollowingWebapplicationsystemframe,wewillfurtherdividethefunctionsoftheController.
3.Solution
AsshowinFigure2,thissystemframecontainsthreekernelcontrolobjects/classes(UIViewController,ModelCenter,andLPM(LogicalPageModule)Center)andtheirownkerneldatabase(systemdescriptiondatabase,modeldatabase,andLPMdatabase).Thesethreecontrolobjects/classesaredividedfromtherawController.Usingthesecontrolobjects/classesanddatabases,thefollowingpartsofthispaperwillexplainthedesignideaandimplementationmechanismofthissystemframe.
Firstly,weconsidertheUIViewControllerandtheSystemDescriptionDatabase.Theyareresponsibleforreceivingtheuserrequestsandsearchingtherelevanttransactionlogicaccordingtotheserequests.TheSystemDescriptionDatabasecanbeaXML[2]fileorasetofXMLfiles.Thisdatabasedescribesthedifferenttransactionlogicrelatedtodifferentuserrequestsonebyone.Thetransactionlogicsmainlyincludetheinteractivemode,datasources,anderrorhandling,etc.Theyareorganizedinatreestructure.TheUIViewControllersearchestheSystemDescriptionDatabase.Itcombinestheuserrequestsandthetransactionlogicsearchedoutfromthedatabase,andthendeliversthemtoMessengertoencapsulate.TherearetwowaysforUIViewControllertosearchthedatabase.OneusestheDOM(DocumentObjectModel)object[3].Whentheapplicationsystemboots,thiswayrequiresthewholedatabasetobeloadedintoRAMafteranalyzedbytheDOMParser.ThedatabaseresidesintheRAMinaDOMtreestructure.TheotheroneusesSAX(Simpl