三层架构是一种成熟的软件应用程序架构,将应用程序组织成三个逻辑和物理计算层:表示层(用户界面)、应用层(数据处理层)以及数据层(应用程序数据存储与管理层)。
表示层是应用程序的用户界面和通信层,终端用户通过该层与应用程序交互。其主要作用是向用户展示信息并收集用户信息。例如,这一顶层可以运行在网页浏览器、桌面应用程序或图形用户界面 (GUI) 中。网页表示层通常使用HTML、CSS 和 JavaScript 开发。桌面应用程序则可根据平台使用不同语言编写。
应用层(也称为逻辑层或中间层)是应用程序的核心。在该层中,通过业务逻辑(一组特定业务规则)对表示层收集的信息进行处理——有时会结合数据层中的其他信息。应用层还能对数据层进行增删改操作。
应用层通常使用 Python、Java、Perl、PHP 或 Ruby 开发,并通过 API 调用与数据层进行通信。
数据层(有时称为数据库层、数据访问层或后端)用于存储和管理经应用层处理的信息。这可以是 关系 数据库管理系统 ,如 PostgreSQL、MySQL、MariaDB、Oracle、Db2、Informix 或 Microsoft SQL Server,也可以是 NoSQL 数据库服务器,如 Cassandra、 CouchDB 或 MongoDB。
在三层架构应用程序中,所有通信都经过应用层。表示层与数据层无法直接进行通信。
重申而言,三层架构的主要优点在于其功能的逻辑分离与物理隔离。每个层级可在最适合其功能要求的独立操作系统和服务器平台上运行,例如,网页服务器、应用程序服务器、数据库服务器。每个层级至少运行于一台专用服务器硬件或虚拟服务器上,因此各层级的服务可独立定制和优化,而不会对其他层级造成影响。
(相较于单层或双层架构的)其他优点 包括:
在三层架构讨论中, 层 常被误 用作 层级的同义词,例如“表示层”或“业务逻辑层”的表述。
两者本质不同。“层”指软件的功能划分,而“层级”指运行在独立基础设施上的软件功能分区。例如,手机中的通讯录应用程序属于 三层 应用程序,但属 单层级 应用程序, 因为所有三层都在同一手机上运行。
这一区别至关重要,因为“层”无法提供与“层级”相同的优点。
在网页开发中,各层级名称不同 但功能相似:
虽然三层架构无疑是最广泛采用的多层应用程序架构,但在工作或研究中还可能遇到其他架构。
双层架构是最初的客户端-服务器架构,由表示层和数据层构成;业务逻辑位于表示层、数据层或两者之中。在双层架构中,表示层能直接访问数据层,而业务逻辑通常较为简单。用户可输入和查询联系人数据的简易通讯管理应用程序,就是双层架构的典型实例。
N 层架构(也称为多层架构) 指包含超过一个层级的 任何 应用程序架构。但超过三层的应用程序较为罕见,因为额外层级带来的益处有限,却可能导致应用程序运行更慢、管理更复杂、运维成本更高。因此,n 层架构通常即为三层架构的同义词。
完全托管的单租户服务,用于开发和交付 Java 应用程序。
使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。
云应用程序开发意味着一次构建、快速迭代和随处部署。