什么是三层架构?
三层架构就是为了符合“高内聚,低耦合”思想,是一种十分完善的软件应用程序架构,它将应用程序组织成三个逻辑和物理计算层:表示层(或用户界面)、应用层(负责处理数据)和数据层(负责存储和管理与应用程序相关的数据),各层之间采用接口相互访问,并通过对象模型的实体类作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。
三层架构区分层次的目的是为了 “高内聚,低耦合”。开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。
三层架构的开发原理
三层架构中主要功能与业务逻辑一般要在业务逻辑层进行信息处理和实现,其中三层体系架构中的客户端和数据库要预设中间层,成为组建层。三层架构中的三层具有一定的逻辑性,即是将三层设置到同一个计算机系统中,把业务协议、合法校验以及数据访问等程序归置到中间层进行信息处理,一般客户端无法和数据库进行数据传输,主要是利用 COM/DCOM 通讯和中间层构建衔接通道,实现中间层与数据库的数据传输,进而实现客户端与是数据库的交互。
表示层
表示层又称表现层 UI,位于三层构架的最上层,与用户直接接触,主要是 B/S 信息系统中的 Web浏览页面。作为 Web浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到 BBL 系统中进行数据处理,处理后会将处理结果反馈到表示层中。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,并用 BLL 或者是 Models 进行调试,保证用户体验 。
业务逻辑层
业务逻辑层 BLL 的功能是对具体问题进行逻辑判断与执行操作,接收到表现层 UI 的用户指令后,会连接数据访问层 DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥梁,实现三层之间的数据连接和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层 UI 中,实现软件功能。
数据访问层
数据访问层 DAL 是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层 BLL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写 Data AccessCommon,保证数据访问层 DAL 数据处理功能。
每一层的区分方法
1:数据访问层:主要看数据层里面有没有包含逻辑处理,实际上它的各个函数主要完成各个对数据文件的操作。而不必管其他操作。
2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
三层架构的优势
同样,三层架构的主要优势在于其逻辑功能和物理功能的分离。 每一层都可以在最能满足其功能需求的单独操作系统和服务器平台上运行,例如 Web 服务器、应用程序服务器或数据库服务器。 每一层均在至少一个专用服务器硬件或虚拟服务器上运行,因此可以对每一层的服务进行定制和优化,而不会影响其他层,也就是高内聚、低耦合,可以降低层与层之间的依赖。
其他优势(与单层或双层架构相比)包括:
- 加快了开发速度:因为每个层可以由不同团队同时开发,所以组织可以更快地将应用程序推向市场,而程序员也可以对每个层使用最新、最好的语言和工具。
- 提高了可扩展性:任何层都可以根据需要独立于其他层进行扩展。
- 改进了可靠性:一个层中的中断不太可能影响其他层的可用性或性能。
- 提升了安全性:由于表示层和数据层无法直接通信,因此设计良好的应用层可以充当某种内部防火墙,阻止 SQL 注入和其他恶意攻击。
三层架构的缺点
- 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
- 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
- 增加了开发成本。