什么是三层架构?
三层架构是一种成熟的软件应用程序架构,它将应用程序组织成三个逻辑和物理计算层:表示层或用户界面;处理数据的应用层;和数据层,存储和管理与应用程序关联的数据。
三层架构的主要好处是,因为每一层都在自己的基础设施上运行,每一层都可以由单独的开发团队同时开发,并且可以根据需要进行更新或扩展,而不会影响其他层。
详细的三层
表示层
表示层是应用程序的用户界面和通信层,最终用户与应用程序进行交互。其主要目的是向用户显示信息并从用户那里收集信息。例如,此顶级层可以在 Web 浏览器上运行,作为桌面应用程序或图形用户界面 (GUI)。Web 表示层通常使用 HTML、CSS 和 JavaScript 开发。取决于平台,桌面应用程序可以用多种语言编写。
应用层
应用程序层,也称为逻辑层或中间层,是应用程序的核心。在这一层中,在表示层中收集的信息会被处理——有时会对照数据层中的其他信息——使用业务逻辑,一组特定的业务规则。应用层还可以添加、删除或修改数据层中的数据。
应用层通常使用 Python、Java、Perl、PHP 或 Ruby 开发,并使用API调用与数据层通信。
数据层
数据层,有时称为数据库层、数据访问层或后端,是存储和管理应用程序处理的信息的地方。这可以是关系数据库管理系统,例如PostgreSQL、MySQL、MariaDB、Oracle、DB2、Informix 或 Microsoft SQL Server,也可以是NoSQL数据库服务器,例如 Cassandra、CouchDB或MongoDB。
在三层应用程序中,所有通信都通过应用程序层。表示层和数据层不能直接相互通信。
层与层
在三层架构的讨论中,layer 经常被互换使用——并且错误地——用于 tier,如“表示层”或“业务逻辑层”。
他们不一样。“层”指的是软件的功能划分,而“层”指的是软件的功能划分,它在与其他划分分开的基础设施上运行。例如,您手机上的联系人应用程序是一个三层应用程序,但也是一个单层应用程序,因为所有三层都在您的手机上运行。
区别很重要,因为层不能提供与层相同的好处。
三层架构的好处
同样,三层架构的主要好处是其逻辑和物理功能分离。每一层都可以在单独的操作系统和服务器平台上运行——例如,Web 服务器、应用程序服务器、数据库服务器——最适合其功能需求。并且每一层都运行在至少一个专用服务器硬件或虚拟服务器上,因此每一层的服务都可以定制和优化,而不会影响其他层。
其他好处(与单层或两层架构相比)包括:
更快的开发:因为每一层可以由不同的团队同时开发,组织可以更快地将应用程序推向市场,程序员可以为每一层使用最新和最好的语言和工具。
改进的可扩展性:任何层都可以根据需要独立于其他层进行扩展。
提高可靠性:一个层的中断不太可能影响其他层的可用性或性能。
改进的安全性:由于表示层和数据层不能直接通信,设计良好的应用层可以作为一种内部防火墙,防止 SQL 注入和其他恶意攻击。