Architecture 现代REST应用程序是三层体系结构还是四层体系结构?

Architecture 现代REST应用程序是三层体系结构还是四层体系结构?,architecture,uml,3-tier,component-diagram,Architecture,Uml,3 Tier,Component Diagram,我目前正在学习UML和部署/组件图,并希望将现有应用程序建模为3层或4层体系结构。我的应用程序具有以下实例: 角度应用 Java Spring启动应用程序作为REST Web服务 数据库 这三个实例都可以部署在不同的服务器上。在我看来,这是一个三层架构。但现在我感到困惑,因为我不确定,带有Web浏览器的客户端是否是我的体系结构的第四层。webbrowser和angular应用程序是否可以在表示层中,如下所示: 我对此感到困惑,因为在这篇文章中: 他总结了表示层中的应用程序和浏览器 编辑:这是

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

  • 角度应用
  • Java Spring启动应用程序作为REST Web服务
  • 数据库
  • 这三个实例都可以部署在不同的服务器上。在我看来,这是一个三层架构。但现在我感到困惑,因为我不确定,带有Web浏览器的客户端是否是我的体系结构的第四层。webbrowser和angular应用程序是否可以在表示层中,如下所示:

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

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

    编辑:这是我如何将其作为4层体系结构部署图来实现的:


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

    前端应用程序分为web服务器上的部署(至少,承载构成前端的静态文件,即使(因为您使用的是angular)它什么也不做)和web浏览器

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

    数据库是第三层


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

    这是否回答了您的问题(如果我理解得很好,则与UML没有真正的联系):感谢您的回答,因为这似乎是有意义的。在评论中,链接了以下帖子:-在这篇帖子中,“presentational”和“client”两个层次被拆分。正如我所料,表示层是angular应用程序,“客户端”是web浏览器-这怎么不正确?我编辑了我的第一个图表。就像你说的,对吗?是的,看起来不错。你的angular应用程序是由Tomcat还是其他什么东西提供的?如果它是由Tomcat服务的,你可能会考虑在Tomcat中嵌套你的角应用程序(因为Tomcat在模型中,我很好奇为什么要在Web服务器上提供角应用程序)。此外,Web浏览器是否直接连接到API或通过应用程序服务器上的一层,如您所示?老实说,我不确定哪个Web服务器为前端服务。在我的“pracitcal”示例中,这些文件只是作为一个静态网站上传到一个S3 Bucket(AWS)中。你对此有什么想法吗?我也不太清楚你的第二个问题。与API的直接连接是什么样子的?现在就像,用户点击一个按钮。点击+数据由angular的“服务”处理。这些服务处理数据并将其发送到api。我做了一些研究,发现通常Apache或Nginx Web服务器用于静态网站,所以我认为您是对的。你最终能帮我命名这两个角度的人工制品吗?如何区分它们?