三层架构

menu icon

三层架构

三层架构将应用程序分为三个逻辑和物理计算层,是传统客户机/服务器应用程序的主要软件架构。

什么是三层架构?

三层架构是一个成熟的软件应用程序 架构,它将应用程序组织到三个逻辑和物理计算层中: 表示层或用户界面;用于处理数据的应用程序层;以及用于存储和管理应用程序关联数据的数据层。

三层架构的主要优势在于,由于每层都在自己的基础架构上运行,因此每层都可以由独立开发团队同时开发,并且可根据需要进行更新或扩展,而不会影响其他层。

数十年来,三层架构都是客户机/服务器应用程序的主要架构。 现今,大多数三层应用程序都成为了使用云原生技术(如容器微服务)进行现代化的目标以及云迁移的目标。

三层架构详细介绍

演示层

演示层是应用程序的用户界面和通信层,供最终用户与应用程序进行交互。 其主要目的是向用户显示信息并从用户收集信息。 此顶级层可以在(例如)Web 浏览器上运行、作为桌面应用程序运行或作为图形用户界面 (GUI) 运行。 Web 表示层通常使用 HTML、CSS 和 JavaScript 开发。 可根据平台以各种不同语言编写桌面应用程序。

应用层

应用层,也称为逻辑层或中间层,是应用程序的核心。 在该层中,将采用业务逻辑(一组特定的业务规则)处理从表示层收集到的信息, 有时也会处理数据层中的其他信息 。 应用层还可以添加、删除或修改数据层中的数据。

应用层通常使用 Python、Java、Perl、PHP 或 Ruby 开发,并使用 API 调用与数据层通信。 

数据层

数据层(有时称为数据库层、数据访问层或后端)可供存储和管理应用程序所处理的信息。 这可以是关系 数据库管理系统,例如 PostgreSQL、MySQL、MariaDB、Oracle、DB2、Informix 或 Microsoft SQL Server,也可以是 NoSQL 数据库服务器,如 Cassandra、CouchDBMongoDB。 

在三层应用程序中,所有通信均通过应用层进行。 演示层和数据层无法直接彼此通信。

层 (tier) 与层 (layer)

在三层体系结构的讨论中,层 (layer) 与层 (tier) 通常被错误地互换使用,比如“表示层 (layer)”或“业务层 (layer)”。   

它们不一样。 “层 (layer) ”是指软件的功能分区,但“层 (tier)”是指在基础架构上运行的独立于其他分区的软件功能分区。 例如,手机中的“联系人”应用程序是一个层 (layer) 应用程序,但是是一个单层 (tier) 应用程序, 因为所有三层 (layer) 都在您的手机上运行。

这个差别很重要,因为层 (layer) 无法提供与层 (tier) 相同的收益。

三层架构的优势

同样,三层架构的主要优势在于其逻辑功能和物理功能的分离。 每个层都可以在最适合其功能需求的单独操作系统和服务器平台上运行, 例如,Web 服务器、应用程序服务器、数据库服务器 。 每个层均在至少一个专用服务器硬件或虚拟服务器上运行,因此可以对每层的服务进行定制和优化,而不会影响其他层。 

其他优势(与单层或双层架构相比) 包括:

  • 加快了开发速度: 因为每个层可以由不同团队同时开发,所以组织可以更快地将应用程序推向市场,而程序员也可以对每个层使用最新、最好的语言和工具。
  • 提高了可扩展性: 任何层都可以根据需要独立于其他层进行扩展。
  • 改进了可靠性: 一个层中的中断不太可能影响其他层的可用性或性能。
  • 提升了安全性: 由于表示层和数据层无法直接通信,因此设计较好的应用层可以充当某种内部防火墙,阻止 SQL 注入和其他恶意漏洞。

Web 开发中的三层应用程序

在 Web 开发中,层具有不同的名称, 但执行类似的功能:

  • Web 服务器 是演示层并提供用户界面。 这通常是一个 Web 页面或 Web 站点,例如,供用户将产品添加到购物车、添加支付详细信息或创建帐户的电子商务站点。 内容可以是静态内容或动态内容,通常使用 HTML、CSS 和 Javascript 开发。
  • 应用程序服务器 对应于中间层,用于存放处理用户输入所用的业务逻辑。 继续以电子商务为例,这是用于查询库存数据库以返回产品可用性或向客户概要文件添加详细信息的层。 此层通常使用 Python、Ruby 或 PHP 开发,并运行诸如 e Django、Rails、Symphony 或 ASP.NET 之类的框架。
  • 数据库服务器 是 Web 应用程序的数据或后端层。 它依托数据库管理软件运行,如 MySQL、Oracle、DB2 或 PostgreSQL 等。

其他多层架构

虽然三层架构很容易成为最广泛采用的多层应用程序架构,但是工作或研究中还可能会遇到其他架构。

双层架构 

双层架构是原始客户机/服务器架构,由表示层和数据层组成;业务逻辑存放在表示层和/或数据层。 在双层架构中,表示层 (最后是最终用户) 具有对数据层的直接访问权,且业务逻辑往往有限。 简单的联系人管理应用程序便是一个双层应用程序的例子,用户可以在其中输入和检索联系人数据。 

N 层架构

N 层架构 也称为多层架构, 指代任何具有多个层的应用程序。 但是,3 层以上的应用程序很少,因为其他层提供的益处很少,却会让应用程序更慢、更难管理且运行成本更高。 因此, N 层架构和多层架构通常指的是三层架构。

三层架构和 IBM 云

IBM Cloud 可提供产品和服务,帮助您在云之旅中实现原有三层应用程序的现代化。

采取第一步行动:

  • 不管是需要有关策略、流程或功能方面的帮助,还是需要全方位关注,请探索 IBM 如何帮助实现应用程序现代化。 
  • 开始使用可以在任何云中运行的容器化中间件,且所有这些均捆绑在 IBM Cloud Paks 中。
  • 通过 IBM Cloud for VMware Solutions 轻松地将现有 VMWare 工作负载迁移到公有云。
  • 在 IBM 的应用程序现代化服务帮助下,在持续的数字化转型过程中规划和执行应用程序现代化策略。

立即开始使用 IBM Cloud 帐户