什么是三层架构?

黄昏时分的东京鸟瞰图

什么是三层架构?

三层架构是一种成熟的软件应用程序架构,将应用程序组织成三个逻辑和物理计算层:表示层(用户界面)、应用层(数据处理层)以及数据层(应用程序数据存储与管理层)。

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

几十年来,三层架构一直是客户端-服务器应用程序的主流架构。 如今,大多数三层架构应用正成为现代化改造的目标,通过采用容器和微服务等云原生技术,并将其迁移至云端。

绝不错过技术突破

通过每月的《展望未来》时事通讯,了解 IBM 专家在 AI、量子、混合云等方面的新兴研究。请参阅《IBM 隐私声明》。

谢谢!您已订阅。

您的订阅将以英语形式提供。您会在每份时事通讯中看到一个取消订阅链接。您可以在此管理您的订阅或取消订阅。更多相关信息,请参阅我们的《IBM 隐私声明》。

各层详解

表示层

表示层是应用程序的用户界面和通信层,终端用户通过该层与应用程序交互。其主要作用是向用户展示信息并收集用户信息。例如,这一顶层可以运行在网页浏览器、桌面应用程序或图形用户界面 (GUI) 中。网页表示层通常使用HTML、CSS 和 JavaScript 开发。桌面应用程序则可根据平台使用不同语言编写。

应用层

应用层(也称为逻辑层或中间层)是应用程序的核心。在该层中,通过业务逻辑(一组特定业务规则)对表示层收集的信息进行处理——有时会结合数据层中的其他信息。应用层还能对数据层进行增删改操作。

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

数据层

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

在三层架构应用程序中,所有通信都经过应用层。表示层与数据层无法直接进行通信。

应用程序开发

开启旅程:云端企业应用程序开发

在本视频中,Peter Haumer 博士通过演示不同的组件和实践(包括 IBM Z Open Editor、IBM Wazi 和 Zowe),探讨了混合云环境中现代企业应用程序的开发现状。

三层架构的优点

重申而言,三层架构的主要优点在于其功能的逻辑分离与物理隔离。每个层级可在最适合其功能要求的独立操作系统和服务器平台上运行,例如,网页服务器、应用程序服务器、数据库服务器。每个层级至少运行于一台专用服务器硬件或虚拟服务器上,因此各层级的服务可独立定制和优化,而不会对其他层级造成影响。

(相较于单层或双层架构的)其他优点 包括:

  • 更快开发速度:由于各层级可由不同团队并行开发,组织能更快将应用程序推向市场。程序员可为每个层级选用最新、最合适的编程语言与工具。

  • 更强扩展能力:各层级可根据需求独立扩展,互不影响。

  • 更高运行可靠性:单一层级的故障不太可能影响其他层级的可用性或性能。

  • 更强安全防护:由于表示层与数据层无法直接通信,设计良好的应用层可充当内部防火墙,有效防范 SQL 注入等恶意攻击。

层级与层的区别

在三层架构讨论中,  常被误 用作 层级的同义词,例如“表示层”或“业务逻辑层”的表述。

两者本质不同。“层”指软件的功能划分,而“层级”指运行在独立基础设施上的软件功能分区。例如,手机中的通讯录应用程序属于  应用程序,但属 单层级 应用程序, 因为所有三层都在同一手机上运行。

这一区别至关重要,因为“层”无法提供与“层级”相同的优点。

网页开发中的三层应用程序

在网页开发中,各层级名称不同 但功能相似:

  • 网页服务器 作为表示层,提供用户界面。这通常是网页或网站,例如,电商网站中用户添加商品至购物车、填写支付信息或创建账户的界面。内容可以是静态或动态的,通过 HTML、CSS 和 JavaScript 进行开发。

  • 应用程序服务器 对应中间层级,承载用于处理用户输入的业务逻辑。以电商场景为例:该层级通过查询库存数据库来返回产品供应情况,或将详细信息添加至客户档案。这一层通常使用 Python、Ruby 或 PHP 开发,并运行 Django、Rails、Symphony 或 ASP.NET 等框架。

  • 数据库服务器 构成网页应用的数据层或后端层级。它运行在数据库管理软件上,例如 MySQL、Oracle、DB2 或 PostgreSQL。

其他多层架构

虽然三层架构无疑是最广泛采用的多层应用程序架构,但在工作或研究中还可能遇到其他架构。

其他架构

双层架构是最初的客户端-服务器架构,由表示层和数据层构成;业务逻辑位于表示层、数据层或两者之中。在双层架构中,表示层能直接访问数据层,而业务逻辑通常较为简单。用户可输入和查询联系人数据的简易通讯管理应用程序,就是双层架构的典型实例。

N 层架构

N 层架构(也称为多层架构) 指包含超过一个层级的 任何 应用程序架构。但超过三层的应用程序较为罕见,因为额外层级带来的益处有限,却可能导致应用程序运行更慢、管理更复杂、运维成本更高。因此,n 层架构通常即为三层架构的同义词。

相关解决方案
IBM Bob

借助您的 AI 合作伙伴 Bob,加速软件交付,实现安全的意图感知型开发。

深入了解 IBM® Bob
AI 编码解决方案

利用可信的 AI 驱动型工具优化软件开发工作,最大限度地减少编写代码、调试、代码重构或代码补全的时间,从而拓展创新空间。

深入了解 AI 编码解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策能力和商业价值。

深入了解 AI 咨询服务
采取后续步骤

利用生成式 AI 和高级自动化技术加速创建企业就绪代码。Bob 通过建模增强开发人员技能,简化并自动执行开发与现代化工作。

  1. 了解 IBM Bob
  2. 深入了解 AI 编码解决方案