设计一个MVC模式的 快速Web应用程序开发外文翻译资料

 2022-10-27 10:10

设计一个MVC模式的

快速Web应用程序开发

作者: Dragos-Paul Pop*, Adam Altar

作者单位: 罗马尼亚,美国大学,1B Expozitiei

大道,布加勒斯特,012101,罗马尼亚

刊名: Procedia Engineering ,2014,vol.69

来源数据库: 爱思唯尔期刊

翻译: 李 超

2016年2月29日

摘要

在本文中,我们提出了快速Web应用程序开发的范例。这个模型是基于模型 - 视图 - 控制器体系结构(MVC),并具备安全性、表单生成和验证、数据库访问以及路由等其他一些有用的组件。该模型是使用PHP编程语言实现的,但它可以在使用相同概念的其他开发语言和环境中实现。在开发和维护的时间上的改进已成为这项研究的主要目标,这也给纠正和维护代码增加了好处。

copy;2014年 作者.爱思唯尔出版

由DAAAM International Vienna选择和同行 - 审查。

关键词:模型; 视图;控制器; MVC; Web应用程序;设计模式。

1.介绍

自从万维网出现,Web应用程序开发就迎来了很长的路。目前有大量的技术和编程语言用于构建Web应用程序,但由于万维网发展的方式和它发展的速度,这些技术并没有时间去发展以跟上万维网发展的步伐。很多玩家试图想出不同的或者奇特的的技术,他们的主要目的是是改善用户体验,并帮助开发人员构建速度更快,功能更强大的Web应用程序。其中一些技术在网络发展中起到重要作用,但人们仍可以发现在过去几年里其使用量的一个严重下降,例如Java Applet和微软银光。在另一方面,许多技术已经逐步从设计简单的玩具发展成为今天的网络生态系统中强大和重要的组成部分,像JavaScript,Flash和XML。

今天的网络环境是使用HTML和CSS将数据提供给用户,相互作用是通过JavaScript实现的。这些技术被称为“前端”或“客户端”的技术。另一方面,“后端”或“服务器端”技术指数据存储和处理技术。

2.问题形成

前端和后端技术共同构建Web应用程序,但因为万维网在这样一个快节奏中发展,开发人员需要使用相当多的技术来仅仅构建一个单一的Web应用程序,这样造成的结果就是他们的工作很多时候难以维护和修复。

开发者把HTML代码与服务器端编程语言结合去创建动态网页和应用程序,这会非常混乱并且产生难以维护的代码。

另一个问题的发展已经超出了网络技术正越来越多地用于构建各种复杂应用这一事实。微软相信网络技术,鼓励开发人员构建其最新的操作系统(Windows 8)的应用程序同时,大量框架的存在是为了帮助Web开发人员为移动设备编写应用,像PhoneGap和Appcelerator Titanium。更有甚者,一个移动操作系统是期望以后应用网络技术是完全为了开发人员的应用程序界面(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框架,Laravel,Fuel PHP,Ruby on Rails和ASP.NET MVC。

3.MVC模式和文献综述

在本节中,我们将审查这一领域的研究现状并查看MVC模式背后的文献,描述该模式的主要功能部件。

MVC设计模式最早是由Trygve Reenskaug在20世纪70年代在Xerox PARC的设想。据他介绍,“MVC的主要目的是弥合人类用户的心理模型和存在于计算机中的数字模型之间的差距”[1]

后来,于1988年,MVC模式被克拉斯纳和教皇在他们的文章中详细的描述,“一种利用在Smalltalk-80模型视图控制器用户界面范式的食谱”在面向对象编程的杂志上发表。

他们强调指出,如果一个人考虑用模块化来建立应用将会带来巨大的利益。 “彼此分离功能单元尽可能使应用设计者更容易理解和修改每个特定单元,而无需知道有关其他单元的一切”[2]

一个应用程序被分成三个主要类别:主应用程序域的模型,在该模型中数据的呈现以及用户交互[2]

MVC模式把责任分裂为三个主要角色从而能实现更有效的合作[3]。这些主要作用是开发、设计和集成。

发展中的作用是由有经验的程序员,负责应用程序的逻辑采取。他们打理数据查询,验证,处理等等。

设计的作用是对于那些负责应用的外观和感觉的开发者。他们显示从第一角色工作的开发人员提供的数据。

一体化中的角色聚集开发人员的责任去联系前两个角色的工作。

MVC设计模式就是这样非常适合Web应用程序的开发,因为他们结合多种技术通常划分成一系列的层次。此外,MVC特定的行为可以是发送具体的意见至不同类型的用户代理。

“用户与MVC应用程序的交互遵循如下自然循环:用户采取一项动作,以及响应该应用程序改变其数据模型,并提供一个更新的视图给用户。然后重复循环。这是一个非常方便的适合递送作为一系列HTTP请求和响应的web应用程序”[4]

图一.MVC模式.

3.1.模型

模型是管理与数据相关的所有任务的系统的一部分:验证,会话状态和控制,数据源结构(数据库)。模型大大降低了开发人员需要编写的代码的复杂性[5]

模型层负责应用程序的业务逻辑。将封装方法来访问数据(数据库,文件等),并且将可重复使用的类库可用。通常一个模型的建立伴随着思想上的数据抽象,验证和认证[4]

此外,该模型是由用于定义感兴趣的域类形成的。属于该域的这些对象经常多次封装存储在数据库中的数据,但是也包括用于操作该数据和执行业务规则代码[6]

作为结论,模型主要是处理数据访问抽象和验证。模型具有与不同数据源交互的方法。

我们相信薄型化的做法,它说,一个模式应该尽可能保持简单,只包含了严格与已建模现实生活中物体联系的数据处理。简单的模型再加上复杂的控制器,里面包含了大部分应用程序所需的数据处理。通过这种方式,模型在应用程序之间变得高度可重复使用,大部分开发者的工作放进了控制器中。

我们的模型系统带给MVC世界的新颖之处在于在版本控制系统的基础上的迁移的想法,那不仅仅是跟踪的数据结构而是数据本身。该系统使用的XML文件存储迁移之间的数据,使版本控制过程的数据库变成容易实现的事情。

3.2. 视图

视图负责图形用户界面管理。这意味着所有形式,按钮、图形元素以及在应用程序内的所有其他HTML元素。也可以用于产生用于聚合的RSS内容或Flash演示。通过从应用程序的逻辑分离应用程序的设计,我们大大减少了当设计者决定通过改变标志或一个表来改变该应用程序的接口时出现错误的风险。同一时间,开发者的工作大大减少了,因为他不再需要看HTML代码元素、设计元素和图形元素[5]

视图层一般是可以被称为网页设计或模板的。它控制显示数据的方式以及用户如何与它进行交互。它也提供了用于将数据从用户处收集的方法。主要用于视图的技术是HTML,CSS和JavaScript[4]

作为一般规则,一个视图不应该包含属于应用逻辑的元素,为了使其更容易被设计师使用它。这意味着逻辑块应保持在最低限度。

大多数Web应用程序框架目前使用某种模板引擎,利用其生成元素的优势来保持HTML代码在最低限度同时减少打字错误的风险。这些生产者通常是用来制作复杂的网络部分,如表单,表格,列表,菜单等等。我们确定在这种情况下的问题是这个想法的所有的实现是在幕后使用或者是不透明的一代的局部模板。这种方式,前端开发人员只能看到结果代码的生成后,几乎是没有办法修改模板。我们的系统使用特殊的HTML内容来插入和生成基于同样的只有HTML文件的模板的局部模板。预处理系统使用的相关的评论来解释的特殊命令以便将数据插入模板。这使得整个过程对前端开发人员都非常透明,这些前段开发人员在渲染视图之前可以看到整个的标记。

3.3. 控制器

控制器负责事件处理。这些事件可以由与应用程序交互的用户或一个系统程序来触发。控制器接受请求和准备数据响应。它还负责建立该响应的格式。控制器与模型相互作用以获取所需的数据并生成视图。这个过程也被称为一个动作或一个动词。当一个请求到达服务器,MVC框架将分派这个请求到基于URL的控制器的方法中。

控制器绑定的所有应用程序的逻辑,把视图中的展示与模型中的功能相结合。它负责从视图中进行数据检索,并建立用于该应用程序的执行路径。控制器将访问模型的功能,它会解释接收到的数据,以便它可以由视图显示。它还负责错误处理。

一个控制器管理视图和模型之间的关系。它响应用户请求,与模型交互,并决定哪些视图应该生成和显示[6]

正如上面提到的,我们包罗复杂的控制器的方法,认为所有的特定应用程序数据的处理应该在控制器级别进行处理。

我们的控制器系统是基于REST和支持JSON(P)的,为请求和响应文本和XML数据格式。

4.数据库抽象

在面向对象的编程中应用程序是使用对象构建。这些对象反映现实生活的对象,也同时包含数据和行为。在应用中被广泛的用来存储数据的关系模型,使用表来存储数据,数据操纵语言与该数据交互。某些数据库管理系统具有面向对象的特点,但它们不是完全兼容。很显然,这两种架构得到广泛使用,并且将会使用很长一段时间。此外,关系模型和面向对象的编程大部分的时间一起使用来建立每个尺度的应用程序。但是,这两种技术结合起来的方式是远远不够完善。用于这种不匹配的术语是“对象关系阻抗不匹配”。

这种不匹配背后的原因是这两个技术依赖于不同的概念。面向对象的程序设计依赖于探明的编程概念,而关系模型依赖如下数学原理。

对象关系映射系统被唯一开发来解决这个问题。

图二 ORM系统

对象关系映射系统(ORM)被定义为一种工具,它提供了一种方法和一种用于面向对象的系统在数据库中安全并且长期存储数据的机构,具有对它们的事务的控制,但如果需要的话,是被表达为在应用程序中的对象[8]

一个ORM系统释放了担心知道数据库结构或模式的开发者。数据访问是通过反映开发者的业务对象的概念模型完成的[9]

总之,我们可以说,一个对象 - 关系映射系统,是从编程语言类关系系统中去关联数据的方法,允许开发人员利用面向对象编程的知名概念来工作,这样就可以从关系系统中管理数据。

一个MVC平台必须为开发人员提供了一种与数据库管理系统进行交互的方式,以存储和检索数据。很多时候,这是一个综合的ORM系统。

因为在MVC架构中模型是与数据的交互层,ORM系统是它背后隐藏的。基本上,每一个模型被连接到ORM系统,它使用系统与数据交互。但开发人员可能访问的ORM系统的资源时并不需要使用一个模型。

我们的ORM系统支持对象之间的多对多的关系,并具有用于对对象联动最大深度级别的设置。

另外,我们提供了一个选项,以保持一定的数据集是存储的,并跳过数据库查询,减少响应时间至最小。

至于NoSQL数据存储而言,我们支持访问许多这样的系统的一个接口。此接口是ORM系统的一部分。

5.安全性

Web应用漏洞是商业环境的用户遭受攻击的主要原因[10]

有很多东西需

剩余内容已隐藏,支付完成后下载完整资料


Designing an MVC Model for Rapid Web Application Development

Author: Dragos-Paul Pop*, Adam Altar

Address: Romanian-American University,1b Expozitiei Blvd.,

Bucarest,012101,Romania

Periodical: Procedia Engineering ,2014,vol.69

Database: Elsevier Journal

Abstract

In this paper, we present a model for rapid web application development. This model is based on the Model-View-Controller architecture (MVC) and has several other useful components like security, form generation and validation, database access and routing. This model was implemented using the PHP programming language, but it can be implemented in other development languages and environments using the same concepts. Improvements in both development and maintenance time have been the main objectives of this research, with the added benefit of correct and maintainable code.

copy; 2014 The Authors. Published by Elsevier Ltd.

Selection and peer -review under responsibility of DAAAM International Vienna.

Keywords: model; view; controller; MVC; web application; design pattern

1. Introduction

Web application development has come a long way since the beginning of the World Wide Web. A myriad of technologies and programming languages are now used to build web applications, but because of the way the World Wide Web evolved and because of the speed at which it did so these technologies didnrsquo;t really have time to evolve and cope with the pace. Many players tried to come up with different and exotic technologies to mainly improve the user experience and help developers build faster and more powerful web applications. Some of these technologies have played an important role in web development but have seen an important drop in usage over the last years, like Java Applets and Microsoft Silver light. On the other hand many technologies have evolved from simple toys to powerful and important parts of todayrsquo;s web ecosystem, like JavaScript, Flash and XML.

The web environment today uses HTML and CSS to present data to users and interaction is accomplished via JavaScript. These technologies are called “front-end” or “client-side” technologies. On the other hand, “back-end” or “server-side” technologies refer to data storage and processing technologies.

2. Problem formulation

Front end and back end technologies come together to build web applications, but because the World Wide Web has evolved at such a fast pace and because developers need to use a rather large number of technologies to build just a single web application, the result of their work is oftentimes difficult to maintain and fix.

Developers combine HTML code with server side programming languages to create dynamic web pages and applications and this leads to highly entangled and unmaintainable code.

Another problem has grown out of the fact that web technologies are increasingly used to build all sorts of complex applications. Microsoft embraces web technologies to encourage developers to build applications for itsrsquo; latest operating system, Windows 8. Also, a lot of frameworks exist that help web developers write applications for mobile devices, like PhoneGap and Appcelerator Titanium. Even more, a mobile operating system is in the works and devices are expect later this year that uses web technologies entirely for the developer API (Mozilla Firefox OS). For these reasons a web application is generally created by a whole team of specialized developers, each working with their favorite technology, like HTML and CSS for the presentation layer, JavaScript for client-side interaction,PHP (or ASP, Java, Python, Pearl, Ruby, etc.) for server-side logic and MySQL (or Oracle Database, Microsoft SQL Server, etc.) for data storage and management.

Each of these specialist needs to work with their colleagues in such a way that their code pieces fit inside the overall design of the application. For example, the client-side (data presentation) developer needs to alter the HTML and CSS code in such a way that he doesnrsquo;t break the server-side developersrsquo; code that resides in the same file. Also, when a database developer alters the schema for an application the server-side developer may need to change a lot of code to make the application work.

The important thing to note here is that there is an acute need to separate presentation from logic and data storage in an application.

There are some application design paradigms and patterns that offer solutions to this problem, but the focus nowadays is on the MVC pattern.

In conducting the research we have used our experience is building web applications with various systems and frameworks and we have tried to identify both strengths and weaknesses of these systems while providing our own view on how these practices could be improved. Studied frameworks and systems include: Symfony, CakePHP, CodeIgniter Zend Framework, Laravel, Fuel PHP, Ruby on Rails and ASP.NET MVC.

3. The MVC pattern and literature overview

In this section we will review the current status of the research in this field and take a look at the literature behind the MVC pattern, describing the main functional parts of the pattern.

The MVC design pattern was first envisioned by Trygve Reenskaug in the 1970s at the Xerox Parc. According to him, “the essential purpose of MVC is to bridge the gap between the human users mental model and the digital model that exists in the computer”. [1]

Later on, in 1988, the MVC paradigm was described in detail by Krasner and Pope in their article “A cookbook for using the model-view controller user interface parad

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[153772],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。