MVC模式下多层分布式软件系统架构设计

2018-04-04 09:10刘正张书锋赵鹤鸣
现代电子技术 2018年7期
关键词:软件系统架构设计

刘正 张书锋 赵鹤鸣

摘 要: 为了解决传统基于模式的软件系统架构设计存在复用力度弱以及系统代价高的弊端,设计MVC模式下多层分布式软件系统架构,在分析MVC模式结构的基础上,将MVC设计形式的开发框架Struts,Spring以及Hibemate汇集起来形成SSH框架,设计基于SSH的多层分布式软件系统开发框架,给出SSH框架的组合及其体系结构,并分析了其中的表示层、业务层、持久层、域模型层的功能,详细描述了软件系统的运行流程。设计的软件系统功能模块包括会话管理模块、身份认证模块、授权模块、安全审计模块以及性能检测模块。实验结果说明,所设计软件系统的运行效率和能耗都较优,具备较高的性能。

关键词: MVC模式; 多层分布式; 软件系统; 架构设计; 复用力度; 开发框架

中图分类号: TN911?34; TP311.52 文献标识码: A 文章编号: 1004?373X(2018)07?0135?05

Design of multi?layer distributed software system architecture based on MVC mode

LIU Zheng1, 2, ZHANG Shufeng2, ZHAO Heming1

(1. School of Electronic and Information Engineering, Soochow University, Suzhou 215123, China;

2. Suzhou Industrial Park Institute of Services Outsourcing, Suzhou 215123, China)

Abstract: In order to eliminate the shortcomings of weak reuse strength and high system cost existing in the design of traditional software system architecture based on mode, a multi?layer distributed software system architecture based on MVC mode was designed. On the basis of analyzing the structure of the MVC mode, the development framework Struts, Spring and Hibemate in MVC design mode are assembled to form the SSH framework. The SSH framework based development framework of multi?layer distributed software system was designed. The combination and architecture of the SSH framework are given. The functions of the presentation layer, business layer, persistence layer and domain model layer function are analyzed. The running process of software system is described in detail. The functional modules of the designed software system include session management module, identity authentication module, authorization module, security audit module and performance detection module. The experimental results show that the designed software system has high operating efficiency and performance, and low energy consumption.

Keywords: MVC mode; multi?layer distribution; software system; architecture design; reuse strength; development framework

0 引 言

在持续扩展软件系统领域和增添繁琐度的大环境中,开发设计人员需要解决层出不穷的问题,各种各样的应用解决规划也随之产生。因此,软件系统建立和框架规划具有重要应用价值[1],软件系统的架构是框架實现特殊情况的软件架构。设计、开发软件系统架构时,框架是应用程序的一部分,其可实现完整设计以及代码的复用,实现特定的程序。大幅度提升软件的开发速度,确保软件品质是框架复用的优势。而传统基于模式的软件系统架构设计存在复用力度弱以及系统代价高的弊端。因此,本文设计基于MVC模式下多层分布式软件系统架构,极大地提高了软件系统的性能。

1 MVC模式下多层分布式软件系统架构设计

1.1 MVC设计模式

多层分布式软件系统架构设计模式被称为模型?视图?控制器设计模式(Model?View?Controller,MVC)。MVC设计模式的优势表现为模型层、视图层以及控制层不同层之间层次鲜明,性能分明,不同模块间互不干扰,系统的灵敏性与重复性得到提升。实现三层乃至多层的松散耦合是MVC设计模式的中心内容,应用程序被其抽象为三大类,它们分工明确、相互协作将用户提出的请求完成[2]。MVC构成如图1所示。

用Model,View,Controller的方法对应用的流入、管理、流出过程实施分离即是MVC设计模式。用启发应用系统中事项的方式来更改控制器,并对模式和视图造成影响。本文通过MVC模式的M.V.C交叉图来分析他们间的交叉关系。从图1的描述中可看出,用户用上交的方式对Requests和Controller部分进行交叉。Model部分被Controller部分实例化,在应用的逻辑基础上对他们进行操作。用户显示的View在Model被建立的情况下由Controller确定,且View和Model交叉操纵,用户的有关数据被获取和显现。View可实时修正Model状态,并将功能模块与显示模块进行划分[3],应用系统的维持性、扩大性、转移性以及组件的循环性得到提升。

1.2 SSH的多层分布式软件系统开发框架设计

企业级应用开发中,较优的依据MVC设计形式的开发框架是Struts框架。企业级应用程序全套的处理计划是模块化Spring框架。开源O/R(对象关系)映射框架叫做Hibemate框架,其是对于Java语言而建立的,目的是使保存永久话,使数据库里的对象永久化,并服务于应用程序。基于SSH架构的多层分布式软件系统开发处理计划是本文提出的开发框架,把Struts,Spring,Hibemate汇集起来产生的普遍性框架为SSH框架。依据Struts具备的完备标签库以及对MVC模式的较好实现,运用Struts对视图层进行实现。在对象以及数据库中,关系表的映射机制完成有效的针对对象编程的基础上,Hibemate完成数据的永久层。为了提出贯穿整个过程的处理计划,把不同的专属框架统一成相连的总框架。Spring框架发挥着粘合剂的作用[4],其通过把不同领域优秀的处理计划统一起来构建新框架的方式来服务应用。

1.2.1 组 合

综合塑造的SSH组合框架包括Struts,Spring以及Hibemate三类,采用IOC对不同组件实施整合,获取功能强大的多层分布式软件系统框架?SSH框架。通过Struts架构实现MVC分离,通过Hibemate框架完成持久层服务,业务层通过Spring实现业务控制。通过SSH整合框架开发多层分布式软件系统,其在总体架构以及局部复杂业务模型内具有较低的耦合性,具备较高的灵敏度和可扩展性。

1.2.2 具体架构方案及各层功能

多层分布式软件系统应用被SSH框架依据框架规划原理划分成四个层次,分别为表示层、业务层、持久层、域模型层。Struts为表示层,Spring为业务层,Hibemate为持久层,用图2描述其框架构造。SSH框架中,不同层次的职责被确定[5],不同层的性能方面没有重复,数据的输送以及交叉的实施由通信接口实现。

1) 表示層。表示层通过Struts实现,在SSH框架中Struts扮演操控的角色,其核心是Struts.cntug.xch,MVC中Controller的职责,ActionForm类封装以及用户界面的数据元素由控制组件Actionservlet负责,业务逻辑、动作管理、链接调转由Action类来完成。

2) 业务逻辑层。业务逻辑层通过Spring对业务组件的安装连接进行实现,依据添加DI、AOP应用,针对接口编程技术,对业务组件间的融合度进行减小,使系统相容性和延展性得到提升。依据Spring完成业务逻辑层的不同模块,运作程序时,根据配置文件在具体的调用举措模块中添加详细的业务逻辑实现,配置文件的撰写依据是业务操作进程。

3) 数据持久层。采用ORMaPing工具基于Hibemate的基础上,数据持久层改善了数据库的访问功能,完成了与数据库交叉的CRUD操作(增加、更改、删减、浏览),把数据库表同对象连接起来,运用SQL对数据库表的交叉向径直面向对象的数据库交叉完成转换,使编码效率得到大幅度提升。

4) 域模型层。开发多层分布式软件系统应用程序时,要有转移于各层间的对象集合。现实需要的业务对象构成了域模型层。其中,研究人员只需要注意域对象(domain object)。若数据库中的内容被Hibemate准许储存到域对象(domain object)中,则连续断开时能够在用户界面层显现数据,持久层也能够接收到被退回的对象,并将其完善于数据库中。此模型的优点是在无附带编码的条件下,Java研究人员可以自如应用面向对象编程。

依据上述内容得出,架构在通信接口的基础上彼此联系,不同层间彼此单独,且不同层的性能非常确定。分层有很多积极作用,它减小了系统不同局部间的耦合度,便于研究人员的工作划分,系统的延展性以及维持性得到大幅度加强。

1.2.3 框架的工作流程

SSH框架在客户端请求抵达后进入操作状态。用户操纵网页是表象,实际上,其内部业务管理的经过也在其中,并对操纵和系统做数据交叉。表示层的操纵包括三层,分别是业务层、数据持久层以及域模型层,采用域模型层对表示层、业务层以及数据持久层间的数据进行传输。数据被提炼以及保存的过程中,把持事务以及管理异样情况通过业务逻辑层框架Spring完成[6]。三个框架应相互协作实现交互,三个框架间相互合作的流程如图3所示。

在网页中,用户操作的动作促使Struts框架接收此动作,且在配置文件(Struts?config.xml)里搜索与该动作相吻合的Action,检验配置模块中的属性validate的真假,如果为真,那么通过数据检验框架检验属性name特定的ActionForm。检验合格或属性值为false时,用属性type特定的Action类对其进行管理。此系统中,同业务逻辑层的框架Spring统一后,配置文件中采用的Action类即为采用的Spring框架中所封装的代理类DelegatingActionProxy,采用此代理类的优势是业务进程的控制权能够从Struts调转到Spring。

综合分析得知,Spring框架相当于精简的重量较轻的Web容器,其性能与EJB容器的性能相似,对操控整体系统进程发挥了重大影响,性能的实现需具备能源以及资金大幅度缩减,但是效率得到巨大的提升。Hibemate的数据持久层性能在框架容器的操控下得以实现,事务和安全的操控则借助框架容器中此框架的特征来实现。将Struts与Spring相结合,用Spring管理业务逻辑,通过Spring的操控,大幅度提升了数据管理的准确度。

1.3 系统功能模块设计

本文将基于MVC模式下多层分布式软件系统分成:会话管理模块、身份认证模块、授权模块、安全审计模块以及性能检测模块,以JAASPAM结构为基础的身份认证模块,用户登录系统依靠以多层分布式软件系统客户端为基础的表单,满足支持口令以及X.509证书认证,用户信息存放在关系数据库中,认证证书由密钥库产生和提炼。以JAAS为基础设计的授权模块用来确认认证用户有无进入以关系数据库及XML策略文件为依据设立的特定资源访问库。会话管理模块是身份认证模块和授权模块之间的桥梁,会话信息的安全得到保障才能顺利实现访问过程。出现异常及日常日志数据的维护由安全审计模块负责[7]。性能检测模块计算发生安全事件的情况下从性能及内存消耗方面产生的各种支出。性能检测模块的完成需要凭借MVC模式,具体功能模块调试依靠控制器StrutsAction与Struts相互影响的依附联系来收集用户提交用来进行信息认证及传输过程的完整信息。以各种对象/关系的依附得到POLO对象,凭借Hibemate和DAO对象之间的持久化管理,系统的各部分性能得到加强。具体结构如图4所示。

将这些系统功能进行整理后得到的分散在不同的Action中的连接点称为横切关注点。运用APO技术对系统执行建模及信息拦截功能,Aspect进行封装横切逻辑,在切入点被激活之后传导开始横切逻辑,任务完成后原路返回,流程图如图5所示。

1.3.1 安全数据库和XML策略文件设计

安全数据库作用是保存客户身份识别、批准与核对。它的理论依据是RBAC控制理论,其中包括身份认证和授权,身份认证涵盖用户表、角色表、登录表,授权分为用户登录表、权限表等。以上表格是依照Permissionid,Userid及Roleid进行外部关联。为了更高效地实施管理,角色表中的字段利用Groupid为扩展字段对角色组进行编号,角色间的安全关系表结构用图6描述。用Uri表示权限表中页面浏览流程,可加强对页面安全的维护。审计过程覆盖日志表、安全事件和发生时间等。

1.3.2 会话管理模块设计

会话信息的维护需要从用户登录时直到会话时间结束或用户注销为止,期间的会话信息安全需要会话管理模块来维护。会话信息包含重要的上下文连接信息及客户身份信息?AuthenticateUtil是通过会话管理模块施行的,这一过程只能在身份认证后开始。安全数据库授权之前,由获知会话内容的AuthorizationAspect进行信息传导[8],最终取得认证后主题Subject。会话管理模块是授权稳定进行的关键。图7是会话管理模块结构。

会话管理器(SessionManager)可对会话内容实施修正以及过滤操作。用户实名认证后,会话管理器借助SessionCreator把获取的登录上下文(LoginContet)以及用户登录信息(UserlogiaVo)储存到会话信息(SessionBean)中,共同作用得到会话信息,发现用户使用时间过期或注销时会话信息会自动消除,减少多余的未认证信息造成系统故障。SessionCreator采用工厂法(FactoryMethod)模式得到会话信息,在用户经过认证后,会话信息的回执传送给授权模块在授权发生时。会话信息主要是以JavaBean的模式存在,以getter或者setter两种方式为数据成员提供如登入上下文对象和用户信息对象操作路径,变成可复用的软件组成部分。

2 实验结果与分析

本文设计的多层分布式软件架构的目标是降低系统运行开销,提高系统性能。实验将Aspect当成AOP实现语言。采用静态织入方案,确保Aspect编织器在程序编译以及链接过程时,向核心代码内融入横切代发,实现程序的扩展,使得系统性能提高。图8描述了课题项目不同类型横切关注点的排列情况,标识模块用于描述不同StrutsAction,条形描述授权、日志跟踪以及性能等横切关注点。采用Aspect将功能相似的横切关注点聚集至Aspect实现,解决代码纠缠以及分散问题,提高程序的扩展性和维护效率。

如果身份认证以及授权连接点被激活,则性能监测模块运算系统即刻统计CPU以及内存的能耗,控制台在一次认证授权执行成功过程中呈现的系统性能用图9描述。控制人员采用不同数据对系统运行状态实施监测,若系统存在异常情况,则通过合理的解决方案确保系统的平稳运行。

实验对比分析本文设计的软件系统以及传统基于模式的软件系统架构的运行效率和精度、CPU以及内存的能耗结果,用图10和图11描述。

能够看出,相对于传统基于模式的软件系统,本文设计的软件系统具有更高的运行效率和精度,较低的CPU以及内存能耗,本文设计的软件系统性能更佳,取得了令人满意的效果。

3 结 语

本文设计了MVC模式下多层分布式软件系统架构,通过实验结果说明,所设计系统极大地提高了软件系统的性能,具有较高的应用价值。

参考文献

[1] 仝茵.基于ASP.NET MVC模式的软件开发架构的研究与探讨[J].中国电子科学研究院学报,2016,11(6):599?602.

TONG Yin. The exploration and research of software development architecture based on ASP.NET MVC pattern [J]. Journal of Chinese Institute of Electronic Science, 2016, 11(6): 599?602.

[2] 朱兴宇,杜景林,沈晓燕.基于MVC的多组件融合的气象传感网管理平台[J].科技通报,2016,32(4):59?65.

ZHU Xingyu, DU Jinglin, SHEN Xiaoyan. The management platform based on MVC in the meteorology sensor network with multi?component integration [J]. Bulletin of science and techno?logy, 2016, 32(4): 59?65.

[3] 唐永瑞,张达敏.基于Ajax与MVC模式的信息系统的研究与设计[J].电子技术应用,2014,40(2):128?131.

TANG Yongrui, ZHANG Damin. The research and design of the information system based on Ajax and MVC pattern [J]. Electronic technology applications, 2014, 40(2): 128?131.

[4] 伍旭,戴光明,彭雷,等.基于MVC架构的深空探测任务设计与仿真平台[J].计算机仿真,2014,31(8):92?96.

WU Xu, DAI Guangming, PENG Lei, et al. Deep space exploration mission design and simulate platform based on MVC [J]. Computer simulation, 2014, 31(8): 92?96.

[5] 刘淑珍,王文帅,齐法制.基于MVC模式的研究所评审系统的设计与实现[J].核电子学与探测技术,2014(1):59?62.

LIU Shuzhen, WANG Wenshuai, QI Fazhi. Design and implementation of MVC?based assessment system for institute [J]. Nuclear electronics and detection technology, 2014(1): 59?62.

[6] 刘红霞,陆文迪.改进的MVC设计模式的研究与应用[J].计算机工程与科学,2015,37(9):1688?1691.

LIU Hongxia, LU Wendi. Research and implementation of an improved MVC design pattern [J]. Computer science and engineering, 2015, 37(9): 1688?1691.

[7] 冯智慧,宋春燕,张广洲,等.基于分布式多层体系的输变电工程电磁环境智能实时监测系统[J].中国电力,2016,49(1):109?113.

FENG Zhihui, SONG Chunyan, ZHANG Guangzhou, et al. An intelligent real?time monitoring system for the power transmission electromagnetic environment based on a distributed multi?tier architecture [J]. China electric power, 2016, 49(1): 109?113.

[8] 张永刚,庄卫金,孙名扬,等.大运行模式下面向监控的分布式智能告警架构设计[J].电力系统保护与控制,2016,44(22):148?153.

ZHANG Yonggang, ZHUANG Weijin, SUN Mingyang, et al. Architectural design of distributed intelligent alarm application for equipment monitoring in the "large operation" mode of State Grid [J]. Power system protection and control, 2016, 44(22): 148?153.

猜你喜欢
软件系统架构设计
基于安全性需求的高升力控制系统架构设计
虚拟收费站架构设计与高速公路自由流技术
大数据时代计算机网络应用架构设计
基于数据融合的掘进机截齿磨损状态监测
计算机控制系统的软件抗干扰技术
提高计算机软件系统维护效率的方法研究
高校毕业生就业跟踪反馈系统中的影响因素分析
对称加密算法RC5的架构设计与电路实现
应用于SAN的自动精简配置架构设计与实现
基于星务计算机的系统软件架构设计