什么是三层架构?

黄昏时分的东京鸟瞰图

什么是三层架构?

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

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

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

绝不错过技术突破

通过每月的《展望未来》时事通讯,了解 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 Enterprise Application Service for Java

完全托管的单租户服务,用于开发和交付 Java 应用程序。

深入了解 Java 应用程序
DevOps 解决方案

使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。

深入了解开发运维解决方案
企业应用程序开发服务

云应用程序开发意味着一次构建、快速迭代和随处部署。

应用程序开发服务
采取后续步骤

借助 IBM 云应用程序开发咨询服务,您可以获得提供专家指导和创新解决方案,使您的云策略更为精简高效。与 IBM 的云专家合作,实现应用程序的现代化改造、扩展和加速,为企业带来变革性的成果。

深入了解应用程序开发服务 开始免费使用 IBM Cloud 进行构建