APP下载

分层软件架构设计及其应用研究

2017-07-12李冶高源

电脑知识与技术 2017年13期
关键词:架构技术分层

李冶 高源

摘要:分层软件架构设计是对软件功能予以细化的,实现软件解耦的设计思想,是现代软件设计过程中常用的软件设计思路。分层软件结构在系统的复用度、可扩展性以及开发难度的降低方面有着先天性的优势。该文以软件分层设计为核心题,介绍了其基本概念,从设计优势以及应用方式两个方面予以了简要讨论,为开发人员和软件系统设计人员在分层软件应用技术方面提供参考。

关键词:计算机;软件;分层;技术;架构;应用

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)13-0089-02 1分层软件架构设计介绍

分层软件架构设计是随着软件规模的扩大而逐渐产生的软件设计方面的技术,其核心内容是将软件结构中功能相同的部分集中起来完成特定的功能任务,而将功能差异较大的部分进行分离处理,从而是实现了软件结构的相对隔离,使得软件体系结构层次性更加清晰。在软件工程领域中所说“高内聚、低耦合”就是软件分层技术最为简单的描述,利用分层技术能够实现软件开发和维护的高度灵活性以及功能模块的复用度。在软件层次结构分层架构设计中,最为著名的就是人们所说的MVC模式,其中V是指VIEW视图层,主要是指软件的界面、用户接口,其实现方式既可以是客户端软件形式,还可以是以HTML为主要表现形式的浏览器形式,其核心功能是进行数据展示和对用户操作的接受、反馈;而M则是MODEL模型的意思,通过获得VIEW層用户数据或者提取持久化层数据构建相应的数据模型,服务于数据操作;而C则是指CONTROL控制层,将不同的业务逻辑予以控制,完成数据处理以及视图展现。当然,软件分层是根据项目的实际情况予进行划分的,应在层次划分的复杂度与开发维护成本方面予以综合考量。

2分层软件架构设计的优势分析

1)提升软件的复用度

软件各构建的复用程度是现代计算机软件工程利于研究的重要课题,传统的一体化设计,从视图展示、数据构建、业务处理、到数据持久化过程都在一个软件构建中予以完成,一旦需求发生了变更,软件维护所耗费的精力和修改复杂度是难以估量的,更别说软件的复用程度了。利用软件分层设计,将各个层次予以划分,数据展现层的变更和维护并不涉及到后续数据模型的构建、业务逻辑的处理、以及持久化部分,仅仅需要对相应的视图层予以变更即可完成,如果数据模型相同,后续的持久化模块以及业务逻辑模块便可实现高度软件复用功能,这是传统的一体式设计所不具备的软件架构模式。还有一些中间件的技术,对外提供相应的业务处理接口,只要实现相应接口构建交付于中间件即可实现相应业务的处理,达到了软件复用的效果。

2)降低软件开发难度

利用分层技术,可以将软件开发的各个模块予以划分,开发人员不必关注其他方面的内容,只需要将所涉及的功能模块予以设计、编码即可完成,有效地降低了软件开发难度,提升开发人员自信心,保障软件开发进度。除此之外,处在不同层次的开发设计人员,可以更加专注于其所涉及的层次,例如视图展现层,甚至可以利用美工人员进行开发;而数据库设计人员更关注于底层持久化的设计,从而实现了开发人员高度协调,降低整个软件项目的开发难度。利用传统的开发模式,这种优势是无法展现出来的。

3)提升了软件的扩展性

分层技术也为软件的可拓展性提供了天然的便利,要提升软件的扩展性无非是设计相应的接口功能,而软件分层架构正是这种接口设计的实现。下层结构为上层结构提供相应服务,下层结构同时提供相应服务接口,这与计算机网络结构ISO分层模型设计思想是极其一致的。因此利用软件分层架构的设计是极其容易实现整个系统拓展功能。这里需要指出的是,如果设计人员对接口加以统一性的设计,那么对于标准化的软件实现也是具有非常重要的意义。由此可见,利用好软件分层能够极大地提升软件的扩展性。

3软件分层结构的应用

3.1单项业务在软件开发中的应用

所谓的单项结构也就是最为传统客户端/服务器模式(这里所说的客户端既可以是专用的客户端软件,也可以是通用的浏览器),将用户业务处理、数据持久化直接在视图层完成,代码相对集中,这种数据处理方式对于用户量极少、服务器要求较低的业务开发是可行的,但是其维护工作量较大,软件的复用度以及系统的拓展性都是较差的。一旦用户数量变多,其系统的性能将变得极其低下,系统的稳定性也是急剧下降,总之,这种单项业务处理开发模式仅仅出现在最初的客户端/服务器交互模式使用过程中,系统的运行速度以及用户体现度相对较差。

3.2二、三层技术在计算机软件开发中的应用

为了克服单项数据模型的缺陷,二层技术应运而生,主要是将数据展现的视图层与系统结构予以分离,视图层更加清晰、便于设计,但是其性能与系统运行速度同样不容乐观,在此就不进行讨论了。

三层技术则是对二层技术进行进一步细分,后台系统结构划分为数据持久化层以及业务逻辑层,至此现代化的软件模型基本形成,分别是视图层、业务处理层、数据持久化层,其中视图层进行单一的数据展示和用户交互功能的实现,其展现方式也更加多元化;业务处理层通过对视图层所传递过来的数据以及从持久化层抽取的数据进行相应的数据处理过程,分别予以交付和存储,实现新视图数据的递交以及变化后持久化数据的完成,使得业务处理逻辑更加清晰;数据持久化层是与后台数据库进行直接交互的层次模型,实现对数据库的增删改查、函数、过程等的调用,完成数据持久化的过程。这种三层软件架构基本上与现代的软件开发模式接近,系统执行效率以及系统的稳定性都有了较大程度的提升,但是业务处理逻辑往往与视图层和持久化层划分清晰度仍存在一定的问题,这就导致了现如今应用更为广泛的四层或者更多层的软件结构。

3.3四层技术在计算机软件开发中的应用

四层软件分层技术通常是在三层结构上添加数据模型层,全部的数据交互都是以数据模型的方式予以进行的,而不是进行数据的直接传递,从而使得软件层次机构更加清晰,使得业务逻辑层、视图层、持久化层的划分更加明确,克服三层结构划分不清晰的问题。多层结构则是在四层结构上进一步系统,例如构建多层数据模型、其他中间件的利用等等予以实现的。

3.4中间件技术分层开发中的应用

中间件技术从本质上来讲也是完成相对独立功能、复用度较高的软件构建,用户按照既定的接口参数进行数据传递即可完成相应功能的处理技术,中间件技术往往由第三开发商予以完成,对于降低整个系统的开发难度有着重要的意义。除此之外,利用一些中间件的技术可以在异构系统之间进行数据交互,最为典型的就是webservice技术,通过利用该技术将异构的数据模型通过XML数据转换,实现了异构系统之间的系统接入,对于拓展系统功能,具有极其重要的意义。当然一些中间件技术是收费的,但相对而言这些技术往往在可靠性方面具有一定的积极因素,能够有效缩短开发周期,也是分层技术中常用的技术手段。

另外,需要说明的是,并不是所有的分层都是严格按照上述的分层模式予以系统层次的划分,例如一些不涉及到视图层的命令式的软件其层次的划分相对就较少,当然不同系统和不同技术应用的时候还是有所差异,分层架构的软件开发应根据系统设计时的实际情况予以合理的应用。

猜你喜欢

架构技术分层
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
一种沉降环可准确就位的分层沉降仪
雨林的分层
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
跨越式跳高递进与分层设计