多層および/または分散型アプリ、それらは同じ意味を持っていますか?
これらのアプリのレイヤーについて話すとき、それは物理レイヤー(データベース、ブラウザー、Webサーバーなど)ですか、それとも論理レイヤー(データアクセスレイヤー、ビジネスレイヤーなど)ですか?
多層および/または分散型アプリ、それらは同じ意味を持っていますか?
これらのアプリのレイヤーについて話すとき、それは物理レイヤー(データベース、ブラウザー、Webサーバーなど)ですか、それとも論理レイヤー(データアクセスレイヤー、ビジネスレイヤーなど)ですか?
おそらく、これらの 2 つの文は、分散型と多層型の違いを直感的に伝えています。
あるケースでは、同じ処理が複数のノードに複製されます。それ以外の場合、各層には個別の責任があり、各層で実行される処理は異なります。
両方の概念は排他的ではありません: 非分散型の多層アプリ (冗長性/レプリケーションの形式がない場合)、多層型ではない分散型アプリだけでなく、分散型の多層型アプリ (冗長性/レプリケーションがある場合) も使用できます。何らかの形式の冗長性)。
この違いについては、まだまだ言いたいことがたくさんありますが、(私にとって)違いは本質的にそこにあります。
ewernliはここでほぼ正しい答えを持っています。元の質問から唯一欠けているのは、物理層と論理層に関するものです。
分散および/または多層の観点からは、レイヤーが物理的に分離されているか、単に論理的に分離されているかは重要ではありません。つまり、それは問題ではありません。同じマシン インスタンス上に完全に存在する多層アプリケーションや分散アプリケーションを作成できます。
とはいえ、層をそのタイプの負荷専用に構築された異なるマシンに分割するのがより一般的です。たとえば、Web サーバーとデータベース サーバーです。または、Web サーバー、複数の Web サービス マシン、および 1 つ以上のデータベース サーバーです。
これらのすべての機能、分散型、多層型、および/または論理層および/または物理層による負荷分散は、アプリケーション設計の機能にすぎません。
さらに、今日の仮想マシンの世界では、1 台の実マシンの範囲内で、多層、分散、および負荷分散されたアプリケーションをセットアップすることは完全に可能です (そして可能性さえあります)。ただし、ロード バランシングと分散サービスのポイントは通常、可用性またはスループットを向上させることであるため、この方法をお勧めすることはありません。
多層とは、アプリケーションが異なるタスク(データベース、Webアプリケーションなど)を持つ複数のマシンに基づいていることを意味します。分散とは、アプリケーションが複数のマシンで同時に実行されることを意味します。たとえば、Webサイトを3つの異なるサーバーでホストできます。
多層アプリケーションの場合、一般的に物理層について話します。ただし、すべてのアプリケーションで、異なる論理レイヤーを使用できます/使用する必要があります。