1 简介
通常在一个应用中,也很难有固定的分层。
软件体系结构为软件系统提供了结构、行为和属性的高级抽象,
在使用时可能随着时间推移分层越来越多,
这些抽象和分层由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
而软件层次式体系结构是最通用的架构,
也被叫作N层架构模式(n-tier architecture pattern)。
这种架构模式非常适合传统的IT通信和组织结构,
很自然地成为大部分应用的第一架构选择。
在分层次体系结构中的组件被划分成几个层,每个层代表应用的一个功能,都有自己的角色和职能。
分层架构的一个特性就是关注分离(separation of concerns)。
该层中的组件只负责本层的逻辑,组件的划分很容易明确组件的角色和职责,
也比较容易开发、测试、管理和维护。
分层架构(Layered Architecture)是最常见的软件架构,也是事实上的标准架构。
事实上人类认知方式也是通过层次划分,在现实宇宙中,如太阳系从内层到外层结构:
2 如何设计层次架构
考虑软件体系结构通常从三个方面出发:
- (1)利益相关人员之间的交流。
软件体系结构是一种常见的系统抽象,代码级别的系统抽象仅仅可以成为程序员的交流工具,
而包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来作为相互沟通的基础。
- (2)系统设计的前期决策。
软件体系结构是我们所开发的软件系统最早期设计决策的体现,
而这些早期决策对软件系统的后续开发、部署和维护具有相当重要的影响。
这也是能够对系统进行分析的最早时间点。
- (3)可传递的系统级抽象。
软件体系结构是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。
由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,
特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。
分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。
层与层之间通过接口进行通信。分层架构通常明确约定软件一定要分成多少层,
但是,最常见的是四层结构,
如下所述。
●表现层(Presentation Layer);
用户界面,负责视觉和用户互动;
●业务层(Business Layer):
实现业务逻辑;
●持久层(Persistence Layer):
提供数据,SQL语句就放在这一层;
●数据库(Database Layer):
保存数据。
有的项目在逻辑层和持久层之间加了一个服务层(Service),提供不同业务逻辑需要的一些通用接口。
用户的请求将依次通过这四层的处理,不能跳过其中任何一层。
分层式体系结构是一种最常见的架构设计方法,能有效地使设计简化,使设计的系统机构清晰,便于提高复用能力和产品维护能力。
3 小结
分层架构强调关注点分离,将组件划分为多个层,如表现层、业务层、持久层和数据库层,各层有明确职责,通过接口通信。
分层架构利于交流、早期决策和系统抽象,但可能降低整体敏捷性、易部署性和性能,适合对稳定性和可维护性要求高的系统。