现代REST应用程序是3层架构还是4层架构?

问题描述

我目前正在学习UML和部署/组件图,并希望将现有应用程序建模为3层或4层体系结构。我的应用程序具有以下实例:

  1. 角度应用
  2. 作为REST-Webservice的Java Spring Boot应用程序
  3. 数据库

所有三个实例都可以部署在不同的服务器上。在我看来,这是3层架构。但是现在我很困惑,因为我不确定带有Web浏览器的客户端是否是我体系结构的第四层。 网络浏览器和角度应用程序可以在表示层中吗,像这样:

enter image description here

我对此感到困惑,因为在这文章中:

Is this okay to use UML component diagram for a 3-tier Architecture?

他在表示层中总结了应用程序和浏览器。

编辑:这就是我将其实现为4层架构部署图的方式:

enter image description here

解决方法

您的应用程序具有3层体系结构。浏览器只是一个运行环境,正在运行您的前端应用程序代码的一部分。

前端应用程序被划分为Web服务器上的部署(至少,托管构成前端的静态文件,即使(因为您使用的是角度)它什么也没做)和Web浏览器

API是第二层。您的角度应用程序正在与此连接,以调用逻辑并访问数据。

数据库是第三层。

我会继续使用您的顶部图,但是将有角度的应用程序嵌套在浏览器中。