APP下载

基于三层架构的软件体系设计与应用

2017-05-10周健

电子技术与软件工程 2017年8期
关键词:表示层插件架构

周健

摘 要

本文首先通过总结三层架构体的实践经验,介绍了在人们熟知的表示层、业务逻辑层和数据存储层这种纵向分层基础上更进一步的内部七层详细划分;又以松耦合组件的实现为重点,介绍了利用插件技术和AOP方法对三层结构在软件体系横向上的分解方法及应用要点;最后介绍了三层结构按地域分布时的应用实践。

【关键词】三层架构 软件体系 插件技术 地域分布

随着软件工程研究与应用的不断进步,软件开发规范以及面向对象编程思想得到了不断深入的应用,人们对软件可维护性和可重用性的要求不断提高,使得传统的二层架构系统愈加显得不能适应软件开发需要,由此在用户界面层与数据库层之间增加一个“中间层”的三层软件架构体系应运而生。这里所说的三层体系,不是指服务器物理设备上的三层配置,也不仅仅有B/S应用才有三层体系结构,三层是指软件系统在应用逻辑设计上的三层。通过引入中间层,将复杂的商业逻辑从传统的二层结构(Client-Server)应用模型中分离出来,并提供了便于扩充、易于访问、易于管理的设计思想和方法,通过将多种应用服务分别封装部署于应用服务器来增强了应用程序的可维护性和可重用性,使用户在管理上所花费的时间最小化,从而实现了安全、稳定和高效的系统应用。

1 软件的三层架构体系

三层架构体系已经成为软件设计领域的基本结构,虽说关于三层架构目前已经有多种不同的描述定义,但在实际应用中它的基本思想都是通过在界面应用层和数据访问层之间增加一个用来衔接两者之间的业务逻辑层,借此来实现系统设计中“高内聚低耦合”的效果,从而达到为系统的扩充和维护创造更多便利条件的目的。我们在应用中以微软DNA架构定义为基础,并且根据实践中的体会对各层的内部进行了进一步的细划,形成了如图1所示軟件的实用型的三层架构体系。

1.1 表示层

表示层的功能就是用于接收用户输入的数据和显示经过系统处理后用户所需要的数据,这一环节在应用中可以再划分为两部分,其中的界面外观层用来实现系统用户界面的设计需求;而界面规则层是通过界面外观层接收的用户指令来调用业务接口层相应的接口,并将界面输入的业务数据传送给业务逻辑层。

1.2 业务逻辑层

业务逻辑层也就是系统的“中间件”,它在系统中发挥着表示层与数据存储层两者之间的联结作用,在系统运行中承担着数据校验、计算处理和业务规则实现等业务逻辑处理功能,对于输入的数据经过加工后保存到数据存储层,而对于用户从数据存储层中检索提取的数据返回给表示层。在具体实施时又可以细分业务接口层,利用它来接收表示层用所提供的指令接口,并将指令操作结果再返回给表示层;业务规则层,则是用来接受用户指令,并将该指令根据需要划分给不同的构造器进行处理,并构造出所对应的实体;实体层则是对数据库对象的抽象,常见的有表、视图、触发器和存储过程等;数据访问层具体用来实现对数据库的连接、查询、插入、更新和删除等操作。

1.3 数据存储层

数据存储层就是系统中的数据库系统或数据仓库系统,其中包含了表、视图、触发器和存储过程等数据库对象。

2 三层结构+插件的应用特点

通常所说的三层架构是对软件系统进行“纵向”分层,而三层架构在实际应用中经常会形成图2所示带有插件的三层架构,它是在三层架构基础上利用各层上所添加的Addin“插件”对软件系统进行了“横向”的分解,这种以纵向分层为基础,以横向分解为扩展的软件架构体系整体上可以被看作是一个“网格”形结构。其中的某些网格可以看作是软件系统的“扩展点”,我们可以利用这些扩展点来挂接“插件”,这样就可以在三层架构的每个内部层级上通过挂接适当的插件来完成该层的一些功能,从而实现了一个软件系统与外接应用程序的“热插拔”式扩展,也就是说可以在少影响甚至不影响系统服务的情况下,动态的实现有关插件的加载、移除或更新等操作,通过采用这种插件技术可以实现以下功能:

(1)对于表示层,可以动态地对某些用户界面进行更新替换,或对新增的用户界面模块进行加载;在业务逻辑层,可以动态地某项业务服务模块进行加载、替换或者删除;在数据访问层,通过使用插件技术我们可以动态地添加对新的数据库类型的支持。这些功能模块的加载、替换或者删除都是在系统整体架构保持稳定的基础上,在运行时就可以实现的。这种插件的“热插拔”功能使得一个应用系统的可扩展性得到了极大的提高。

(2)在需要进行系统升级时,大多可以通过升级某个层级的插件就可以实现了,还可以做到在系统服务整体不间断的情况下进行插件的动态升级。

(3)为了实现系统的“三层架构+插件”结构,在系统设计时就需要对系统内部各层进行“松耦合”的设计,只有满足松耦合要求的组件才可以被做成“插件”。为了更好的实现松耦合的组件设计,在架构模型中可以采用面向切面编程AOP(Aspect Oriented Programmingg)框架进行函数式编程,采用AOP技术的主要作用是可以实现对某些业务逻辑的横向关键点的隔离,从实现了系统中业务逻辑各个部分之间的“低耦合”设计,提高了程序的可重用性,自然也就提高了开发的效率。

3 按地域分布的三层结构应用特点

对于各类跨地域分布的应用系统,可以设计为图3所示的按地域分布的架构,形成一种基于地理位置的服务。地域分布的架构是在上述的三层架构和“三层+插件”架构基础上按应用需求的地域分布式服务体系。它的应用特点如下:

3.1 跨地域分布的服务需求案例

假设某一系统需要为全国的多个城市提供业务功能服务,每个城市的客户量很大,而且每个城市访问的数据需求可能是不一样的,访问的功能模块也各不相同。某客户除了需要向该系统请求服务之外,还会通过该系统与其它客户进行即时通信,而这两个客户可以是在同一个城市,也可能位于不同的城市。

3.2 按地域分布式架构的应用要点

首先,地域分布式架构将用户管理和业务功能服务分开,通过分别构建应用服务器和功能服务器来实现不同的服务,然后将它们部署到不同的系统节点上。应用服务器和功能服务器都是以三层架构为基础,采用了“三层架构+插件”架构的架构。比如,对于北京这一地域,系统可以部署一台应用服务器和一台功能服务器,客户可以通过客户端来访问应用服务器实现服务请求。假设有一天上海地区的客户量大幅度增加,因为系统中的业务计算处理都是在功能服务器上完成的,由此会导致功能服务器的访问压力剧增。在这种局面下,按地域分布式架构将允许系统在不停止任何服务的情况下,动态的加载新增的功能服务器,新添加的功能服务器能够自动注册到应用服务器。系统中的应用服务器可以监控每个功能服务器的负载情况,每当有客户端请求到来时,应用服务器会将请求交给负载最低的功能服务器进行处理,这就实现了功能服务器的负载均衡。地域分布式架构还可以通过配置跨区域应用服务器来解决应用服务器之间的通信问题。所有应用服务器在启动的时候,将自动向跨区域应用服务器进行注册,这样就可以融入到整个地域分布式架构体系中。

4 结束语

研究软件系统三层架构的主要目的就是为开发人员进行系统的开发、部署、维护而服务的。在系统的开发中通过中间层的划分,实现了表示层和数据库层最大程度的脱离,也确保了系统组件的可维护性和可重用性。而“三层+插件”架构,则是利用插件技术和AOP方法在三层结构体系基础上对软件系统的横向分解,目的就是要实现系统组件的松耦合。按地域分布的结构体系,则是三层架构和“三层+插件”架构在跨地域软件系统中的一种解决方案。

参考文献

[1]胡文生,杨剑锋,赵明.面向可维护性的软件体系结构设计[J].微电子学与计算机,2016,33(07):145-149.

[2]谢伟明.面向服务的软件体系架构总体设计[J].电子技术与软件工程,2016,59(24):42.

猜你喜欢

表示层插件架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
自编插件完善App Inventor与乐高机器人通信
LSN DCI EVPN VxLAN组网架构研究及实现
ASP.NET三层构架解析
基于SSH框架科研管理系统的设计
MapWindowGIS插件机制及应用
一种基于FPGA+ARM架构的μPMU实现
基于Revit MEP的插件制作探讨