admin 管理员组文章数量: 1086019
2024年1月12日发(作者:网页制作与设计软件)
学术探讨蓉金顼目 j =====:==_二:=::===:==:::====:==::=::= {20l2率第7期 基于MVCA模式的多层WEB系统架构设计 郑建华 陈尔晓 (计算机科学与工程学院仲恺农业工程学院,广东 广州 510225) [摘要] 在分析了MVC模式对AOP技术支持的不足之后,提出了MVCA模式,该模式将横切关注点封装成方面层, 并隐形动态织入到MVC各层中。随后基于MVCA模式,设计了多层WEB系统架构,该架构将WEB系统分成MVCA模式层 和数据库架构层,较好地实现核心关注点与横切关注点的解耦与管理。 [关键词] 面向方面编程;MVCA模式;横切关注点 块不能重用,导致模块重用性低;3)由于横切和核心关注点 1.引言 代码交织,对系统的修改容易破坏“开放封闭”原则,系统扩 展性低。 针对MVC模式的不足以及在开发中所遇到的问题,本 文提出MVCA模式。MVCA模式是在MVC模式基础上增加 方面层(Aspect),形成了控制层、模型层、视图层、方面层的四 层架构。方面是对横切关注点的封装,其它层次的操作当要使 用到横切关注点时,Aspect就会主动地插入到某一层的某个 步骤当中,这种插入对于其它各层是隐藏的,其它层并不知道 面向方面编程m(Aspect—Oriented Programming:AOP 以 解决横切关注点为出发点,用最松散的耦合处理每个关注 点,将横切关注点封装在一个独立的模块里,通过系统全模 块化的方式降低软件复杂性,促进核心功能模块和横切关 注点模块的复用。当前WEB系统广泛采用MVC (Mode1.View.Controller)Z层架构模式,通过控制器连接视 图层和业务层,这种模式有效降低了两个层次之间的耦合, 降低了系统开发的复杂度,但是MVC模式并没有直接支持 AOP技术,文献[2】仅仅考虑在业务层内应用AOP技术,文 献[3]则将面向方面技术引入Struts,即主要支持展示层和控 制层,为此本文提出将AOP技术应用于MVC各层的 MVCA模式,以弥补文献[2.3】中的不足。另外对WEB系统 而言,随着功能和规模的扩大,各层的复杂性都会增加,迫 切需要一个应用系统架构以便能较好解决核心关注点和横 方面的存在。这样在MVCA模式中,程序员不必修改原有的 代码,只是编写方面层,最后采用动态隐形织入技术[6】将横切 关注点织入到其它三层当中,本文称这种开发方式为“编织式 开发”。MVCA模式如图l所示圆角矩形框中所示,圆角矩形 框中主要包括控制器、视图、模型、方面4个层次,以及一个 Weaving织入器,该织入器主要负责将方面织入到其它三层 之中。图1还表示了一个完整的WEB系统的结构框架,及 Browser代表的表示层,而Database代表数据库。 与MVC模式相比,MVCA模式的优势主要表现在以下 方面: 切关注点解耦和管理问题,虽然文献[4]提出一种基于MVC 模式的AOP访问控制框架MAACF,但其侧重点在于如何 提高分布式企业级应用的安全标准,而对于本文提出的问 题则涉及不深,为此本文设计了基于MVCA模式的多层 EB系统架构以解决此问题。W 2.MVCA模式设计 //,—t } 一—一 、 f1—一 l模型.视图.控制器(MVC)模式自从八十年代发明以 来已被广泛使用,主要优点【5】是使各层次分工明确、实现各 层的解耦合。但随着软件规模的不断扩大,特别是随着如日 志、安全、异常处理等这样系统级的横切关注点概念的提 出,MVC模式表现出一定的不适用性。MVC模式中重点关 注核心关注点,对于横切关注点则没有单独考虑,在每个层 ... 次中依然掺杂着横切关注点。实际开发过程中这些横切关 注点功能都是在开发时混杂添加到核心关注点上,本文称 这种开发开发方式为“混杂式开发”,其存在以下不足:l')‘‘混 杂式开发”使得系统横切和核心关注点代码交织,系统模块 图1 MVCA模式示意图 (1)彻底地模块化 MVCA模式把系统的关注点分为核心关注点和横切关 化不彻底;2)由于模块化不彻底,使得核心和横切关注点模 注点,再把横切关注点织入到系统各个模块中,这样就把系 作者简介:郑建华,男,湖南嘉禾人,博士,讲师,研究方向:软件架构、模型驱动、企业架构。 基金项目:广东省科技计划项目“罗定市生态茶叶产业科技集成服务平台及创新服务模式研究”,项目编号:2010A040207003。 一30—
统划分为核心模块和横切模块,使得系统彻底地模块化和 彻底解耦。 f2)复用性高 MVCA模式中开发的Aspect层具有高度可复用性,使 得系统的核心关注点和横切关注点都可以实现复用,加快 了开发的效率。 (31敏捷响应业务需求 MVCA模式引入了Aspect层,并采用“编织式开发”,开 发人员可以只关注业务变更模块的修改,而无需关注横切 关注点对不同模块的影响,加快了系统对业务需求变更的 响应。 3.基于MVCA模式的多层WEB系统架构设计 目前基于MVC模式的WEB系统多采用3层开发架 构,而在MVCA中由于方面层的引入,传统的WEB系统架 构已经不适用,特别是如何针对方面层建立单独的数据保 存机制?为此本文基于MVCA模式建立了多层WEB系统 架构,如图2所示。该架构有两大层次架构,分别为MVCA 模式层(MVCA Pattern Architecture Layer)和数据库架构层 (Database Architecture Layer:DAL)。其中MVCA模式架构 层是在本论文提出MVCA模式的基础上演变而来分层架 构。数据库架构层主要是数据库方面的架构。这两层的设置 很好实现了核心关注点和横切关注点的解耦和管理问题。 3.1 MVCA模式架构层 本层旨在解决MVC模式实现的多层架构的不足,有效 的促进横切关注点和核心关注点的解耦。本层引入2小节 设计的MVCA模式,并结合WEB系统的实际需要,对 WEB多层架构上进行更细粒度的换分,主要分为表示层 (Presentation Layer)、控制层(Controller Layer)、业务层 (Business Layer)、持久层(Persistence Layer)、方面层(Aspect Layer)、框架解决方案层(Framework Solution Layer)。 其它各层的解释请参看MVCA模式中的解释,在此不 再赘述。 框架解决方案分为核心框案(Core Framework) ̄II横切框 架(Crosscutting Framework)。核心框架主要包括解决控制器 层的控制流转框架和业务层的框架,如常用的SSH开源框 架,而横切框架负责方面层的管理问题。 MVCA模式架构层最大的优点是能将方面层隐形的织 入到MVC的各层,并提出在不同的层次使用不同的框架支 撑该层的解决。另外如图1所示,方面层在客户端请求发生 时,当请求还没有到达控制层时,已经织入了安全性检查 (Security Check)等操作来过滤比如一些SQL注入的网络安 全问题。在过滤完之后,控制器才收到客户端的请求进行那 个转发操作,这样也保证了系统的安全性。 3.2数据库架构层 数据库架构层包含关注数据库层(Concern Database Layer)和物理数据库层(Physics Database Layer)两层,这两层 的分离实现了核心关注点和横切关注点的有效管理。 (1)关注数据库层(Concern Database Layer) f 基金项目学术探讨 ————— 百 『『一 关注数据库层的设计思想基于MVCA模式的多层 WEB系统架构中一个重要的概念,本层为了解决核心关注 点与横切关注点之间的耦合和混淆,将数据库分为核心关注 点数据库和横切关注点数据库,这两个数据库彼此之间不进 行通讯。使得开发人员在开发期间的思路更加清晰,核心关 注点层的数据存放到核心关注点的数据库中,横切关注点的 数据存放到横切关注点的数据库。 二驽… … … …-。-。● 锤嘲 — ; , m…一0 图2基于MVGA模式的多层WEB系统架构 (2)物理数据库层(Physics Database Layer) 物理数据库层主要是实现数据的存储,对于系统的所使 用的数据库不做限定,应用系统中可以选择不同的数据库,零 系统架构师在前期分析设计系统时只要在持久层采用面向 接口设计,使得后期的开发可以根据户的需求随意换不同的 数据库,无论哪一种数据库,只要使用对特定的数据库进行 实体关系(ORM)映射,都可以进行面向对象的数据操作。 4.结束语 将本文提出的多层WEB系统架构用于《罗定市生态茶 叶产业科技集成服务平台》开发过程,该平台主要包括:茶 叶生产服务、茶叶文化、茶叶产品流通服务、科技培训服务 等模块,这些模块将作为系统的核心关注点模块,同时本文 把系统日志的记录、权限的认证、安全性检查、异常的抛出 等抽取出来作为方面,形成方面层,作为系统的横切关注点 模块,系统地实现有效的验证了本文提出的多层WEB系统 架构的可行性和优点。 (下转第34页) 31一
学术探讨蓉金硬目 二 .一一.l:.:.::::::::::=======::===.::::::::::====.. ’ l 2012苹第7期 lpc2210 mach 函数的最初,根据 的体系init0 LPC2210 发成本等有着非常重要的作用,也为嵌入式系统实践教学和 建立虚拟实验室提供了新方法。 参考文献: 【1]韩超,康烁,李明.嵌入式系统实践教程fM1_北京:机械工业出 版社.2008 结构调用相关函数将处理器设置为ARMv4。下一步初始化 过程中,将为this mach变量挂载主要的函数指针。 4.3修改Makefile 对于增加一个新的处理器的支持,需要修改Makefile来 添加新增加的skyeyemachlpc2210.C和lpc2210.h文件,实 __现编译过程中的支持。 至此,模拟LPC2210处理器的工作已经完成。 5.结束语 【2]SkyEye官网【ZB/OL].http://www.skyeye.org/. 【3陈渝,李明,杨晔等.源码开放的嵌入式系统软件分析与实践一 3]基于SkyEye和ARM开发平台fM】.北京:北京航空航天大学出版社, 2004. SkyEye为嵌入式系统学习者培养开发能力及嵌入式系 统的工程师提高开发效率提供了一个平台。应用SkyEye设 计和仿真嵌入式系统,这对于提高产品的开发效率、降低开 [4】陈渝,杨晔,李明等.嵌入式系统仿真环境一skyEye U】.电子设 计应用,2004(2):65—68. The Application Research of SkyEye OpenSource Software in the Simulation of Embedded System Deng Xiaowu Li Senlin Hu Ping (Huaihua University,Huaihua 418008,Hunan) 【Abstract】Simulation software is more and more important in the development of embedded systems,and it becomes indispensable in embedded development.This paper analyzes the designed principle,simulation structure and configure file of SkyEye;thenitfocuses onmodifyand extension ofSkyEye. 【Keywords】SkyEye;desined gprinciple;structure of simulation;configure ifle;method of spread (上接第31页) 随着软件复杂度性的增加和规模的变大,必须考虑核心 关注点和横切关注点分离的问题,虽然AOP技术是解决横 切关注点的有效手段。但是现有的MVC模式并不能很好的 支持AOP技术,为此本文提出了MVCA模式,该模式将横 切关注点封装成方面层,并动态隐形地织入到MVC各层 中。在此基础上,设计了基于MVCA模式的多层WEB系统 架构,该主要由MVCA层和数据库架构层构成,MVCA模 式架构层主要是基于MVCA模式,并提出了在不同的层次 参考文献: [1]曹东刚,梅宏.面向Aspect的程序设计一一种新的编程范型 U J.计算机科学,2003,30(9):5-10. 【2】赵成勇,周南,张晓泉基于AOP与MVC模式的WEB应用 架构的设计与实现 . 南京大学学报(自然科学版),2005,41 (10):718—724 [3]中立军,基于AOP的MVC模式研究与应用【D】,大连海事大 学硕士学位论文,2008. 【4】高觐悦,张功萱.基于MVC模式的AOP访问控制技术研究 使用不同的框架支撑该层的解决,而数据库架构层的创新 是提出了核心关注点数据库和横切关注点数据库分离模 式,较好地减少了核心关注点和横切关注点的耦合。 D】,南京工程学院学报(自然科学版),2010,8(1):34—38; 【5】黎永良,崔杜武.MVC设计模式的改进与应用【I】.计算机工 程,2005,30(9):96—98. 【6】郑建华,陈尔晓.MVCA模式设计及应用研究U】.电脑知识 与技术,2012,8(1)199—203. Design of Multi—Layers WEB System Architecture Based on MVCA Model Zheng Jianhua Chen Erxiao (Zhongkai Universiy tofAgriculture&Engineering,Guangzhou 510225,Guangdong) 【Abstract】After analyzing the deficiency of MVC mode for supporting AOP technology,MVCA mode is proposed,which encapsulates the cross-cutting concerns as aspect layer and Can weave aspect into MVC layers dynamically and invisibly.Then Multi-layers WEB System Architecture based on MVCA pattern is introduced.The architecture divides the WEB system into MVCA pattern layer and database architecture layer,which can realize the decoupling and management of core concern and cross-cutting ConCem. 【Keywords】Aspect-Oriented Programming(AOP); 一cA pattern;cross—cutting concern 34—
版权声明:本文标题:基于MVCA模式的多层WEB系统架构设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1705057333a471504.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论