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

Are modern REST-Applications 3-Tier-Architecture or 4-Tier-Architecture?

我目前正在学习 UML 和 Deployment/Component 图,并希望将我现有的应用程序建模为 3 层或 4 层架构。我的应用程序有以下实例:

  1. Angular申请
  2. Java Spring 作为 REST-Web 服务启动应用程序
  3. 数据库

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

我正在思考这个问题并感到困惑,因为在这个 post:

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

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

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

您的应用程序具有 3 层架构。浏览器只是一个执行环境,它是 front-end 应用程序代码的 运行 部分。

front-end 应用程序在 Web 服务器上的部署之间分开(至少托管构成您的 front-end 的静态文件,即使(因为您正在使用 angular)它什么都不做)和网络浏览器。

API为第二梯队。您的 angular 应用程序正在连接到此以调用逻辑和访问数据。

数据库是第三层。

我会使用你的顶部图表,但将你的 angular 应用嵌套在浏览器中。