最新のRESTアプリケーションは3層アーキテクチャですか、それとも4層アーキテクチャですか?

Aug 20 2020

現在、UMLとデプロイメント/コンポーネント図を学習しており、既存のアプリケーションを3層または4層アーキテクチャにモデル化したいと考えています。私のアプリには次のインスタンスがあります。

  1. Angularアプリケーション
  2. RESTとしてのJavaSpringBootアプリケーション-Webサービス
  3. データベース

3つのインスタンスはすべて、異なるサーバーにデプロイできます。私の考えでは、これは3層アーキテクチャです。しかし、Webブラウザーを備えたクライアントが私のアーキテクチャーの第4層であるかどうかわからないため、今は混乱しています。次のように、WebブラウザとAngularアプリケーションをプレゼンテーション層に含めることができますか?

私はこれについて考えて混乱しています。なぜなら、この投稿では:

これは、3層アーキテクチャにUMLコンポーネント図を使用しても大丈夫ですか?

彼は、アプリケーションとブラウザーをプレゼンテーション層に要約します。

編集:これは私が4層アーキテクチャの配置図としてそれを実現する方法です:

回答

4 muszeo Aug 21 2020 at 12:34

アプリケーションには3層アーキテクチャがあります。ブラウザは、フロントエンドアプリケーションコードの一部を実行している単なる実行環境です。

フロントエンドアプリケーションは、Webサーバーへのデプロイ(少なくとも、Angularを使用しているため)とWebブラウザーに分割されます(Angularを使用しているため)。

APIは2番目の層です。Angularアプリはこれに接続して、ロジックを呼び出し、データにアクセスします。

データベースは第3層です。

上の図を使用しますが、Angularアプリをブラウザー内にネストします。