web-dev-qa-db-ja.com

Webクライアント(Webブラウザー)をn層アーキテクチャーの層としてカウントする必要がありますか?

コースでは、テストのソリューションは、次の4層アーキテクチャを持っていると言います

enter image description here

しかし、私には3層アーキテクチャーがあるようです。私はクライアント(Webブラウザー)自体を層として数えませんが、テストのソリューションはそれを数えるようです。

ウィキペディアの記事 またはコンセンサスによると、どちらが正しいですか?

2
Ben

この質問に答える上での課題は、不正確な意味を持つ用語(この場合は「ティア」)を扱っていることであり、人によって用語の使い方が異なります。

たとえば、 一般的な見方は、レイヤーと層の間に違いがあるということです 。レイヤーは、ダイアグラム内のコントローラー、ビジネスロジック、データオブジェクトのように、抽象的な分離です。層は物理的な分離です。ダイアグラムの場合、ブラウザ、データベース、およびJavaアプリケーション内のロジックが層です。

その定義を採用すると、図は3層、4層のアーキテクチャを示します。ブラウザは間違いなく階層であり、たとえば、「プレゼンテーション」は階層ではありません。レイヤーです。

しかし、これは根本的に定められた、または広く認識されている定義ではありません。あなたが言及にリンクしているWikipediaの記事として、多くの人々は2つの用語、レイヤーとティアを同じ意味で使用します。その時点で、ユーザーが用語をどのように適用するかを選択する方法に応じて、ダイアグラムは3層または4層になる可能性があります。

2
David Arno

N層アーキテクチャの この定義 に基づいて、層は、層がコンポーネントで構成される多層アーキテクチャです。実際、同業者の1人が提案したこの定義は、科学文献で使用されている 一般に受け入れられている定義 に非常に近いものです。

多層アーキテクチャは、さまざまなソフトウェアコンポーネント層(レイヤー)、専用の機能を提供します。

この定義で重要なのは「コンポーネント」という用語です。これは、さまざまな処理ノードに展開できる自立型のソフトウェアを意味します。

この article 約3層のアーキテクチャは同様の定義を使用し、ユーザーのワークステーションで実行されているコンポーネントを最初の層として識別します(カウントを開始する場所によって異なります)。

4つの層があり、それぞれが自立型コンポーネントで構成されているという事実は、この定義によれば、4層アーキテクチャーになります。

備考:この定義では、コンポーネントの実際の物理的な分布は考慮されていません。 1つのコンポーネントが複数のクライアントで実行され、他の3つのコンポーネントが単一のサーバーにインストールされる、4層のアーキテクチャを完全に実現できます。

2
Christophe