MVC与三层结构技术的应用研究

2013-04-29 00:44孟勋
软件工程 2013年9期
关键词:代码框架服务器

摘 要:本文介绍MVC与三层结构技术的内容和区别,包括MVC框架的结构和三层结构技术的内容,并对两者的主要应用(包括B/S架构下)进行阐述;对两者结合设计软件的应用和性能做了说明和论述。因为MVC与三层结构技术在软件开发(尤其在Web技术下的数据库系统开发)具有的重要作用和地位,对其研究具有重要的现实意义。

关 键 词:MVC ;三层结构技术;软件框架;B/S;Web

1.MVC与三层结构技术简介

MVC是一种软件,是一种软件框架[1]。软件框架是对通用功能操作进行抽象的软件,这些抽象的功能操作的代码可以根据应用程序的功能要求有选择的改变,并复用框架代码,进而形成特定的应用软件。

就是把一些通用的功能,通过开发平台以代码和架构的形式表示出来,开发者通过框架提供的接口进行功能开发,可以复写框架代码,而不必从开始编写。框架提供了一些软件功能的默认实现,在特定的开发平台下,就是说开发平台已经代替开发者实现了一些通用功能并提供了相应的代码,开发者只需重写或添加功能代码。注意:框架内部代码不可重写;应用程序流程必须在框架内部。

三层结构技术[2]是一种设计架构模式,是一种软件的设计思想。可以把软件设计分为表示层、中间层和数据层,已利于软件功能的设计和实现,称为三层结构技术。

框架给出了应用程序的体系结构,设计模式给出了具体设计的解决方案;设计模式可用不同语言和不同方式来实现,而框架则是开发平台给出的设计和代码的混合体;设计模式与语言无关的,具体设计受制于开发平台框架的具体实现环境。利用框架开发软件应体现设计模式的基本思想,软件设计模式思想的实现要选择合适的软件框架并受制于框架。

2.MVC结构

2.1组成

由Servlet(Controller)、JSP(View)、JavaBean(Model)三部分构成。Model是负责保持状态、数据的应用组件,通常这个状态持久于数据库之中。View是负责用户界面的组件(UI),通常这个UI是使用Model模型数据来创建的。Controller用来处理用户交互,控制器行为(Action)用来完成用户发过来的每一个请求,操作Model(模型)最终会选择用哪个View(视图)来显示UI的组件。

2.2特点

视图、控制和模型分离,近一步提高了复用程度,三者可以独立变化,降低了耦合性并进一步提高了模块的复用性;合作效率得到充分发挥,开发成员的分工界面更加清晰;当出现问题时更容易锁定问题。

2.3结构

3.三层结构技术[3]

所谓三层体系结构,就基于Web的数据库开发而言就是在客户端与数据库之间加入了一个中间层,也叫组件层。

而软件设计的一般三层体系结构[4]分为:

(1)表现层(UI):就是展现给用户的界面,即用户在使用一个系统的时候展现在操作员或用户的所见与所得及其过程。

(2)业务逻辑层(BLL):针对具体问题的操作,对数据库系统而言也可以说是对数据层的操作,对数据业务逻辑处理和一些事务办理。

(3)数据访问层(DAL):该层所做事务是对数据库直接操作,针对存储数据进行数据的增添、删除、修改、更新、查找等功能实现。

完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层。这样就为软件设计提供了架构设计思想,利于代码的模块设计和功能的设计实现,修改和重组。

4.三层结构在B/S上的应用

在Browser/Server三层体系结构下,应用软件三层结构设计的软件系统被分割为表示层(Presentation)、功能层(Business Logic)、数据层(Data Service)三个相对独立的单元。

第一层:表示层,Web浏览器上的软件设计。

表示层包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上,相应数据由此被获得和显示。

第二层:功能层,具有应用程序扩展功能的Web服务器上的软件设计,实现数据处理和事务处理。

功能层包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库服务器进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后等数据库服务器将数据处理和事务处理的结果提交给Web服务器,再由Web服务器传送回客户端。

第三层:数据层,数据库服务器上的软件设计,主要是对数据库直接进行数据处理。

数据层含系统的数据处理逻辑,位于数据库服务器端。其任务是接受Web服务器对数据库数据操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果和数据提交给Web服务器。

5.主要的MVC[5]

(1)Struts:Struts是Apache软件基金下Takarta项目的一部分。Struts框架的主要架构设计和开发者是Craig R.McClanahan。Struts 是Java Web MVC框架中不争的王者。

(2)Spring:Spring实际上是Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。

(3)Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

(4).NET:.NET MVC是微软官方提供的以MVC模式为基础的.NET Web应用程序 (Web Application)框架。

6.MVC与三层结构技术应用

传统的软件设计代码繁琐,代码模块间耦合性高,可重用性差,开发更简洁地设计一款代码整洁,耦合性低,可重用性更高,可扩展性更好的软件,MVC与三层结构技术被采用。

(1)Hibernate:Hibernate是一个开放源代码的对象关系映射框架;它是一个基于J2EE的java应用框架。Hibernate有六个核心接口,分别为Session、SessionFactory、Transaction、Query、Criteria和Configuration。不仅进行持久化对象操作,还进行事务控制操作,通过这六个核心接口,业务逻辑和数据显示分离,体现了对象编程的思想。

(2).NET:在传统的.NET的WEB软件开发中,显示页面和逻辑页面,代码耦合性高,可维护性差,采用MVC架构,和三层结构技术有效地节约了代码开发工作量,表示层和业务逻辑层及数据层分离,降低了代码的耦合性,提高了系统的可维护性及可复用性。

仅仅使用了XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。三层结构技术应用于分布式开发,极大地提高了代码的可读性和可移植性。基于ASP的集中式和Web Service的分布式开发,采用MVC和三层结构技术成为一股潮流。

7.性能

7.1 可重用性

在使用MVC三层结构技术的软件设计中,代码重用有非常明显的效益和应用场合。使用MVC框架,编码工作需要逐步细化,可通过局部修改和重组,同时保持整体稳定性,因此能大量节省程序设计人员的时间,因此为一般人所接受。

7.2 简洁性

MVC已给出软件设计的框架,三层结构技术使表示层,业务逻辑层及数据层彻底分离,由此开发出的软件代码易于进行模块设计,功能分工更是简洁易于设计开发和使用掌握。

7.3 可移植性

功能模块的设计在该模式下易于实现,软件框架已给出,需要实现各种功能模块,三层结构模块的彻底分离,使软件设计的功能模块易于独立实现,并通过接口连接,实现数据和控制的交互。需要做得很大一部分工作是各个功能的细化,和独立实现,各个模块的耦合性低,可移植性增强。

7.4 可扩展型

软件各个部分和各个功能模块通过接口连接,更能的增减通过接口连接功能模块实现,因此软件的可扩展型非常高和容易实现,要做好软件模块的接口设计和功能代码封装。

7.5 可维护性

简洁的框架流程和模块设计思想,使软件的可读性增高,代码之间的耦合性低,和较高的可移植性,带来了软件维护工作的便利。使用MVC和三层结构技术使系统的可维护性显著增强和可行。

8.结束语

MVC框架三层结构技术在软件设计和开发中有着广泛的应用市场和开发效益,随着Web和数据库技术的发展和推广,具有重要的作用和地位。MVC是一种软件框架,三层结构技术体现出一种设计思想。本文简要介绍了MVC和三层结构技术与区别,以及主要应用(包括在B/S的应用),并对MVC和三层结构技术开发软件的性能做了重要阐述,具有重要的研究意义。

参考文献

[1] 温昱.软件架构设计[M].北京:电子工业出版,2007.

[2] 徐爱兰.计算机软件开发中的分层技术探讨[J].计算机光盘软件与应用, 2012,24:162-163.

[3] 孟勋.基于面向对象技术的学校人员管理系统的设计与研究[J].科技创新与应用,2013,20:7-9.

[4] 百度百科 http://baike.baidu.com/view/687468.htm

[5] 百度百科 http://baike.baidu.com/view/5432454.htm

猜你喜欢
代码框架服务器
框架
广义框架的不相交性
通信控制服务器(CCS)维护终端的设计与实现
创世代码
创世代码
创世代码
创世代码
WTO框架下
中国服务器市场份额出炉
得形忘意的服务器标准