「レイヤー」と「ティア」の違いは何ですか?
13 に答える
論理レイヤーは、コードを整理するための手段にすぎません。典型的なレイヤーには、従来の 3 層モデルと同じように、プレゼンテーション、ビジネス、およびデータが含まれます。しかし、レイヤーについて話しているときは、コードの論理的な編成について話しているだけです。これらのレイヤーが異なるコンピューター上で、または単一のコンピューターの異なるプロセスで、または単一のコンピューターの単一のプロセスでさえも実行される可能性があることを意味するものではありません。私たちが行っているのは、コードを特定の関数によって定義された一連のレイヤーに編成する方法について話し合っていることだけです。
ただし、物理層は、コードが実行される場所に関するものにすぎません。具体的には、層は、レイヤーがデプロイされ、レイヤーが実行される場所です。つまり、層は層の物理的な展開です。
出典: Rockford Lhotka、すべてのアプリを n 層にする必要がありますか?
この問題に関する Scott Hanselman の投稿をお読みください: 「Three/Multi Tier/Layer Architecture/Design」に関するリマインダー:
ただし、「Scott World」(できればあなたの世界でもあります:)) では、「Tier」は展開の単位であり、「Layer」はコード内の責任の論理的な分離であることを忘れないでください。「3 層」システムを使用していると言うかもしれませんが、それを 1 台のラップトップで実行しています。「3 層」システムを使用していると言うかもしれませんが、データベースと対話する ASP.NET ページしかありません。精度には力があります。
レイヤーとは、コードの論理的な分離を指します。論理レイヤーは、コードをより適切に整理するのに役立ちます。たとえば、アプリケーションには次のレイヤーを含めることができます。
- プレゼンテーション レイヤーまたは UI レイヤー
- ビジネス層またはビジネスロジック層
- データ アクセス層またはデータ層
上記の 3 つのレイヤーは、それぞれ独自のプロジェクト (3 つまたはそれ以上のプロジェクト) に存在します。プロジェクトをコンパイルすると、それぞれのレイヤー DLL が取得されます。これで 3 つの DLL ができました。
アプリケーションのデプロイ方法に応じて、1 ~ 3 層になる場合があります。現在 3 つの DLL があるため、すべての DLL を同じマシンに展開すると、物理層は 1 つしかなく、論理層は 3 つになります。
各 DLL を別々のマシンにデプロイすることを選択した場合、3 つの層と 3 つのレイヤーができます。
したがって、レイヤーは論理的な分離であり、ティアは物理的な分離です。層は層の物理的な展開であるとも言えます。
なぜいつも複雑な言葉を使おうとするのですか?
レイヤー=コードの一部。アプリケーションがケーキの場合、これはスライスです。
層=物理マシン、サーバー。
層は 1 つ以上の層をホストします。
レイヤーの例:
- プレゼンテーション層 = 通常、ユーザー インターフェイスに関連するすべてのコード
- データ アクセス レイヤー = データベース アクセスに関連するすべてのコード
階層:
あなたのコードはサーバーでホストされています = あなたのコードは階層でホストされています。
コードは 2 つのサーバーでホストされています = コードは 2 つの層でホストされています。
たとえば、Web サイト自体 (プレゼンテーション レイヤー) をホストする 1 台のマシンと、よりセキュリティが重要なコード (実際のビジネス コード - ビジネス レイヤー、データベース アクセス レイヤーなど) をホストする、より安全な別のマシンがあります。
階層化アーキテクチャを実装することには、非常に多くの利点があります。これは扱いが難しく、レイヤード アプリケーションを適切に実装するには時間がかかります。いくつかお持ちの場合は、Microsoft の次の投稿をご覧ください: http://msdn.microsoft.com/en-gb/library/ee658109.aspx
レイヤーは論理的な分離であり、層は物理的な分離であるという定義を見つけました。
レイヤー はアプリケーション内の論理的な分離でrelated-functional[code]
あり、レイヤー間の通信は明示的で疎結合です。[ Presentation logic
, Application logic
, Data Access logic
]
層 は、個々のコンピューター (プロセス) 内の[でホストされる]の物理的な分離です。layers
Individual servers
図に示すように:
1-Tier & 3-Layers « App Logic with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer « Browser View[php], App Logic[jsp], DataStorage
n層の利点:
優れたセキュリティ
スケーラビリティ : 組織が成長するにつれて、他の層に影響を与えることなく、DB クラスタリングを使用して DB 層をスケールアップできます。
保守 性 : Web デザイナーは、他の層の他のレイヤーに触れることなく、View-code を変更できます。
簡単にアップグレードまたは拡張[例: アプリケーション コードを追加したり、ストレージ領域をアップグレードしたり、モバイル、タブレット、PC などのデバイスごとに複数のプレゼンテーション レイヤーを追加したりできます]
ブログ
の図
はい、親愛なる友人は正しく言いました。層はアプリケーションの論理パーティションですが、層はシステム層の物理パーティションであり、層のパーティションに依存します。アプリケーションが単一のマシンで実行されるのと同じように、3 層のアーキテクチャに従っているため、レイヤー アーキテクチャは層アーキテクチャに存在する可能性があると言えます。簡単に言えば、3 層アーキテクチャは 1 台のマシンに実装できるため、1 層アーキテクチャであると言えます。各層を別々のマシンに実装すると、それは 3 層アーキテクチャと呼ばれます。レイヤーは、複数の層を実行することもできます。レイヤーアーキテクチャ関連のコンポーネントで、相互に簡単に通信できます。
以下のアーキテクチャに従うのと同じように
- プレゼンテーション層
- ビジネスロジック層
- データ アクセス層
クライアントは「プレゼンテーション レイヤー」と対話できますが、セキュリティ上の理由により、下のレイヤーのパブリック コンポーネント (ビジネス ロジック レイヤーのパブリック コンポーネントなど) から「ビジネス ロジック レイヤー」にアクセスします。
Q * なぜレイヤー アーキテクチャを使用するのですか? レイヤーアーキテクチャを実装すると、次のようにアプリケーションの効率が向上するためです
==>セキュリティ
==>管理性
==>スケーラビリティ
アプリケーションを開発した後、dbms を変更したり、ビジネス ロジックを変更したりする必要があるなど、その他の必要性があります。
Q * なぜ階層アーキテクチャを使用するのですか?
各レイヤーを物理的に実装すると効率が向上するため、レイヤーアーキテクチャがなければ、層アーキテクチャを実装できません。別の層を実装するための別のマシンと、別の層は1つ以上の層を実装するため、それを使用します。
フォールト トレランスの目的で使用されます。==>メンテナンスが簡単。
簡単な例
銀行が部屋で開くのと同じように、従業員は次のカテゴリに分類されます。
- ゲートキーパー
- 現金を求める人
- 銀行制度を導入する責任者
- マネジャー
それらはすべてシステムの関連コンポーネントです。
ローン目的で銀行に行く場合は、まずゲートキーパーが笑顔でドアを開けてから、ローンのすべてのスキームを紹介する人の近くに行き、マネージャーキャビンに行ってローンを渡します。その後、最後にレジに行き、ローンを取ります。これらは銀行のレイヤーアーキテクチャです。
ティアはどうする?ある町に銀行の支店があり、その次は別の町に、その次は別の町に、それぞれの支店の基本的な要件は何ですか
- ゲートキーパー
- 現金を求める人
- 銀行制度を導入する責任者
- マネジャー
レイヤーと層の概念はまったく同じです。
レイヤーを使用して、ソリューションのコンポーネント内のアーキテクトまたはテクノロジ スタックを説明します。通常、ネットワークまたはプロセス間通信が関係する場合は、層を使用してこれらのコンポーネントを論理的にグループ化します。
レイヤーは概念的なエンティティであり、ソフトウェア システムの機能を論理的な観点から分離するために使用されます。システムを実装するときは、さまざまな方法を使用してこれらのレイヤーを整理します。この状態では、それらをレイヤーではなく層と呼びます。