英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
2013年第24届DAAAM智能制造与自动化国际研讨会
为快速Web应用程序开发设计的MVC模型
Dragos-Paul Pop*, Adam Altar
罗马尼亚裔美国人大学,1b Expozitiei大道,布加勒斯特,012101,罗马尼亚
摘要:在本文中,我们提出了一个快速Web应用程序开发的模型。该模型基于模型 - 视图 - 控制器体系结构(MVC),并具有其他一些有用的组件,如安全性,表单生成和验证,数据库访问和路由。该模型使用PHP编程语言实现,但可以使用相同的概念在其他开发语言和环境中实现。开发和维护时间的改进是本研究的主要目标,具有正确和可维护代码的额外好处。
copy;2014 The Authors. 由Elsevier Ltd出版。根据CC B Y -NC-ND许可证开放访问。DAAAM国际维也纳负责选拔和同行评审
关键词:模型; 视图; 控制器; MVC; Web应用程序; 设计模式
1 简介
自万维网开始以来,Web应用程序开发已经走过了漫长的道路。现在使用了无数的技术和编程语言来构建Web应用程序,但由于万维网的发展方式以及它的速度,这些技术并没有真正的时间来发展和应对速度。许多用户试图提出不同的和异国情调的技术,主要是改善用户体验,并帮助开发人员构建更快,更强大的Web应用程序。其中一些技术在Web开发中发挥了重要作用,但在过去几年中,Java Applets和Microsoft Silverlight的使用率却出现了重大下降。另一方面,许多技术已经从简单的玩具演变为当今网络生态系统的强大而重要的部分,如JavaScript,Flash和XML。
* 通讯作者。电话: 40-724-261-805 ; 电子邮件地址:pop.dragos.paul@profesor.rau.ro
1877-7058copy;2014作者。由Elsevier Ltd.出版。根据CC B Y -NC-ND许可证开放访问。DAAAM International Vienna doi负责的选拔和同行评审:10.1016 / j.proeng.2014.03.106
今天的Web环境使用HTML和CSS向用户呈现数据,并通过JavaScript完成交互。这些技术被称为“前-端”或“客户端-端”技术。在另一方面,“后-端”或“服务器-侧”技术指的数据存储和处理技术。
2 问题制定
前端和后端技术共同构建Web应用程序,但由于万维网的发展速度如此之快,并且开发人员需要使用相当多的技术来构建单个Web应用程序,他们的工作经常难以维护和修复。
开发人员将HTML代码与服务器端程序语言相结合,以创建动态网页和应用程序,这会导致高度混乱和无法维护的代码。
另一个问题来自于Web技术越来越多地用于构建各种复杂应用程序的事实。微软采用Web技术鼓励开发人员为其构建应用程序最新的操作系统,除Windows 8外,还有许多框架可以帮助Web开发人员为移动设备编写应用程序,如PhoneGap和Appcelerator Titanium。更重要的是,移动操作系统正在开发中,设备预计将在今年晚些时候完全用于开发人员API(Mozilla Firefox OS)。出于这些原因,Web应用程序通常由整个专业开发人员团队创建,每个团队使用他们喜欢的技术,如表示层的HTML和CSS,客户端交互的JavaScript,PHP(或ASP,Java,Python,Pearl),Ruby等)用于服务器端逻辑和MySQL(或Oracle数据库,Microsoft SQL Server等),用于数据存储和管理。
这些专家中的每一个都需要与他们的同事一起工作,使他们的代码部分适合应用程序的整体设计。例如,客户端(数据演示)开发人员需要改变HTML和CSS代码。此外,当数据库开发人员更改应用程序的架构时,服务器端开发人员可能需要更改大量代码以使应用程序正常工作。
这里需要注意的重要一点是,迫切需要将表示与应用程序中的逻辑和数据存储分开。
有一些应用程序设计范例和模式为这个问题提供了解决方案,但现在的重点是MVC模式。
在进行研究时,我们使用了我们的经验,即使用各种系统和框架构建Web应用程序,我们尝试确定这些系统的优点和缺点,同时提供我们自己对如何改进这些实践的看法。研究的框架和系统包括:Symfony,CakePHP,CodeIgniter Zend Framework,Laravel,Fuel PHP,Ruby on Rails和ASP.NET MVC。
3 MVC模式和文献综述
在本节中,我们将回顾该领域的研究现状,并查看MVC模式背后的文献,描述模式的主要功能部分。
MVC设计模式最初是由Trygve Reenskaug在20世纪70年代在施乐公园(Xerox Parc)设想的。据他说,“MVC的基本目的是弥合人类用户的心理模型与计算机中存在的数字模型之间的差距”。[1]
后来,在1988年,Kras ner和Pope在他们的文章“使用Smalltalk-80中的模型 - 视图 - 控制器用户界面范例的指导书”中详细描述了MVC范例,该文章发表在面向对象编程期刊上。
他们强调,如果构建具有模块化的应用程序,那么可以获得巨大的好处。“尽可能地将功能单元彼此隔离,使应用程序设计人员能够理解和修改每个特定单元,而无需了解其他单元的所有内容。”[2]
应用程序分为三个主要类别:主应用程序域的模型,该模型中的数据表示和用户交互。[2]
MVC模式将职责分为三个主要角色,从而实现更高效的协作。[3]这些主要角色是开发,设计和集成。
开发角色由负责应用程序逻辑的有经验的程序员承担。他们负责数据查询,验证,处理等。
设计角色适用于负责应用程序外观的开发人员。它们显示从处理第一个角色的开发人员提供的数据。
集成角色使开发人员有责任粘合前两个角色的工作。[3]
MVC设计模式非常适合Web应用程序开发,因为它们结合了通常分为一组层的多种技术。此外,MVC特定的行为可以是将特定视图发送到不同类型的用户代理。[13]
“用户与MVC应用程序的交互遵循一个自然循环:用户采取行动,作为响应,应用程序更改其数据模型并向用户提供更新的视图。然后循环重复。对于作为一系列HTTP请求和响应提供的Web应用程序,这非常方便。“[4]
图1 MVC模式
3.1模型
模型是管理与数据相关的所有任务的系统的一部分:验证,会话状态和控制,数据源结构(数据库)。该模型大大降低了开发人员需要编写的代码的复杂性。[5]
Model层负责应用程序的业务逻辑。它将封装访问数据(数据库,文件等)的方法,并将提供可重用的类库。通常,模型是在考虑数据抽象,验证和身份验证的情况下构建的。[4]
此外,模型由定义感兴趣领域的类组成。钍属于域ESE对象时常封装存储在数据库中的数据,而且还包括用来操纵这些数据,并实施业务规则的代码。[6]
作为结论,该模型主要处理数据访问抽象和验证。该模型包含与不同数据源交互的方法。
我们相信精简模型方法,它认为模型应该尽可能简单,只包含严格依赖于建模的现实生活对象的数据处理。瘦模型与Fat控制器耦合,后者包含应用程序所需的大部分数据处理。这样,模型在应用程序之间变得高度可重用,并且大多数开发人员的工作都保存在控制器中。
我们的模型系统为MVC世界带来的新颖性是基于迁移思想的版本控制系统,它不仅跟踪数据结构而且跟踪数据本身。系统使用xml文件在迁移之间存储数据,使数据库的版本控制过程变得容易实现。
3.2视图
视图View负责图形用户界面管理。这意味着其负责显示应用程序内的所有表单,按钮,图形元素和所有其他HTML元素。视图还可用于为聚合器或Flash演示文稿生成RSS内容。通过将应用程序的设计与应用程序的逻辑分离,当设计者决定通过更改徽标或表格来更改该应用程序的界面时,我们可以大大降低出现错误的风险。同时,开发人员的工作大大减少,因为他不再需要查看HTML代码元素,设计元素和图形元素。[5]
View层通常可以称为Web设计或模板。它控制数据的显示方式以及用户与之交互的方式。它还提供了从用户收集数据的方法。主要用于视图的技术是HTML,CSS和JavaScript。[4]
作为一般规则,视图不应包含与应用程序逻辑相关的元素,以便设计人员更容易使用它。这意味着逻辑块应保持在最低限度。
今天大多数Web应用程序框架都使用某种模板引擎,该引擎利用生成器元素将HTML代码保持在最低限度并降低键入错误的风险。这些生成器通常用于制作复杂的Web部分,如表单,表格,列表,菜单等。我们在这种情况下发现的问题是这个想法的所有实现都使用幕后或不透明的部分生成。这样,前端开发人员只能在生成代码后才能看到生成的代码,h几乎没有办法修改模板。我们的系统使用特殊的HTML注释来插入和生成基于模板的部分,这些模板也是仅HTML文件。预处理系统使用注释来解释特殊命令,以便将数据插入模板中。这使得整个过程对于前端开发人员非常透明,前端开发人员可以在呈现视图之前查看整个标记。
3.3控制器
财务主管负责事件处理。这些事件可以由用户与应用程序交互或由系统进程触发。控制器接受请求并准备响应数据。它还负责确定该响应的格式。Controller与模型交互以检索所需数据并生成视图。此过程也称为动作或动词。[5]当请求到达服务器时,MVC框架会根据URL将其调度到控制器中的方法。[14]
Controller绑定所有应用程序逻辑,并将View中的显示与模型中的功能组合在一起。它负责从View中检索数据并确定应用程序的执行路径。Controller将访问Model功能,它将解释收到的数据,以便View可以显示。它还负责错误处理。[4]
Controller管理视图和模型之间的关系。它响应用户请求,与模型交互并决定应生成和显示哪个视图。[6]
如上所述,我们采用Fat Controller方法,认为应该在控制器级别处理所有特定于应用程序的数据处理。
我们的控制器系统是RESTful,支持请求和响应的JSON(P),文本和XML数据格式。
4 数据库抽象
在面向对象编程中,应用程序使用对象构建。这些对象反映了现实生活中的对象,它们包含数据和行为。广泛用于应用程序中的数据存储的关系模型使用表来存储数据和数据操作语言以与该数据交互。某些数据库管理系统具有面向对象的功能,但它们并不完全兼容。很明显,这两种架构被广泛使用,并且从现在开始将持续很长时间。而且,关系模型和面向对象编程
大多数时候一起使用来构建各种规模的应用程序。但这两种技术相结合的方式远非完美。用于这种不匹配的术语是“物体- 关系阻抗不匹配”。[7]
这种不匹配背后的原因是这两种技术依赖于不同的概念。面向对象编程依赖于经过验证的编程概念,而关系模型遵循数学原理。
开发对象关系映射系统仅仅是为了解决这个问题。
图2 ORM系统
对象关系映射系统(ORM)被定义为一种工具,它为面向对象的系统提供了一种方法和机制,以便以安全的方式在数据库中长时间存储数据,对数据库进行事务控制,但是如果需要,表示为应用程序内的对象。[8]
ORM系统使开发人员免于担心知道数据库结构或模式。数据访问是
使用反映开发人员业务对象的概念模型完成。[9]
总之,我们可以说对象关系映射系统是一种将来自关系系统的数据与编程语言中的类相关联的方法,允许开发人员使用面向对象编程中的众所周知的概念来管理来自该关系的数据。系统。
MVC平台必须为开发人员提供与数据库管理系统交互以存储和检索数据的方法。大多数时候,这是一个集成的ORM系统。
因为在MVC架构中,Model是与数据交互的层,所以ORM系统隐藏在它后面。基本上,每个模型都连接到ORM系统,它使用系统与数据交互。但是开发人员可以访问ORM系统的资源而无需使用模型。
我们的ORM系统支持对象之间的多对多关系,并具有对象链接的最大深度级别设置。
此外,我们提供了将某些数据集保留在内存中并跳过数据库查询的选项,从而将响应时间降至最低。
就NoSQL数据存储而言,我们支持访问许多此类系统的接口。该接口是ORM系统的一部分。
5 安全
Web应用程序漏洞是从业务环境中攻击用户的主要原因。[10] 在构建Web应用程序时,开发人员需要注意很多事情。安全风险可分为几类:[11]
X |
用户输入验证:缓冲区溢出,跨站点脚本,SQL注入,规范化; |
X |
身份验证:网络嗅探,暴力攻击,字典攻击,cookie伪造,身份盗用; |
X |
授权:访问权限违规,私人数据显示,数据更改,跟踪攻击; |
X |
配置管理:未经授权访问管理界面,未经授权访问 |
<p 剩余内容已隐藏,支付完成后下载完整资料
资料编号:[20238],资料为PDF文档或Word文档,PDF文档可免费转换为Word </p |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。