5

従来の意味で、N層とはアプリケーションを「層」に分け、各「層」を異なるサーバーに配置することを意味します。これは、少なくとも3つの理由のために行われました:N層アーキテクチャは現在何を意味していますか?

  1. メンテナンス:

    a)はコードのメンテナンス:バグ修正と機能追加を行うことが容易になります。

    b)ハードウェアのメンテナンス:1台のサーバーを停止しても、他のサーバーからのサービスは中断されません。

  2. パフォーマンス:1つのサーバーでは、Web要求、ビジネスロジックの計算、およびデータベース/ファイルアクセスを同時に処理できないことがよくありました。

  3. スケーラビリティ:具体的には、水平スケーラビリティ

    a)のフォールトトレランス:ティア当たり1台の以上の物理サーバを有する能力は、1台のサーバがダウンしているときに、アプリケーションがまだ全体として機能することができることを意味します。

    b)負荷分散:1つの層の複数のインスタンスを持つことは、大量の要求を処理するのに役立ちます。

今日、ハードウェアとネットワークは、1台のサーバーで毎秒何千もの要求を処理するのに十分高速です。また、今ITの話題は「統合」です。したがって、アプリケーションを複数の層に分割しても、単一のサーバー上で仮想マシンをホストすることになります。

私は最近、人々がN層アーキテクチャについて語っていると思うが、アプリケーション内の懸念の分離について話している。それは物理的な分離よりも論理的分離のほうが多い。私は懸念と疎結合の良い分離を達成している限り、アプリケーションはN層である必要はありません。多くのプログラマーは、N層アーキテクチャはすべてのWebアプリケーションが遵守しなければならないゴールデンスタンダードだと考えているようです。

現在、N層アーキテクチャとは何ですか?

答えて

1

1つのセキュリティ?私はむしろ私のアプリサーバーよりも私のWebサーバーをヒットしたいと思います!

2

人工的な区別であり、いつもそうだったと思います。私はあなたの前提に、今日はコンポーネントの論理的な分離を主に指していることに同意します。しかし、1つのマシンに収めるには大きすぎる(賢明またはデータ的に)アプリケーションがまだたくさんあるため、スケーラビリティの理由からアプリケーションを個別のコンポーネントに分けるというアイデアは間違いなく死んでいません。 Wikipediaの記事

+0

同意します。スケーラビリティ上の理由からディスクリートコンポーネントに分離することはまだ成果ではありませんが、ハードウェアの高速化やネットワークとサーバーの統合は、これを行う必要のあるアプリケーションの数を確実に押し下げています。 –

+0

おそらく死んでいるわけではありませんが、たとえばウェブサイトの場合、より多くのページビューを処理するためのより効果的な方法があります。 – Durden81

3

私が読み取る:

一般に、用語の階層を別のサーバ、コンピュータ、またはネットワーク (処理ノード)上のシステムの 構成要素の物理的分布を記述するために使用されます。 3層アーキテクチャーには、3つの処理ノードがあります( )。層は、1つの処理ノード上に物理的に配置されていてもよいし、配置されていなくてもよい、構成要素の論理グループを指している。 。

「レイヤー」の概念と「ティア」の概念が時間とともに混ざり合ったと思います。 個人的には、私の懸念事項がソフトウェアにしかないPAASソリューションを好むように、階層よりむしろレイヤーについて話したいと思っています。業界はゆっくりとこの方向に向かっています。

また、大幅に拡大する可能性があるアプリケーションを計画している場合、スケーラビリティのためにn層について考える必要はないと思います。 トラフィックが多い非常に人気のあるWebサイトは、 データベースサーバー、Webサーバー(キャッシングサーバーを含む)、および少数のCDN(コンテンツ配信ネットワーク)の3つのコンポーネントに分かれています。 このような分離はどのアプリケーションでも達成できます。

しかし結論として、私はプログラマーは、アプリケーション内の懸念層と分離を、最も重要な(そして困難な)タスク、すなわち長期的には保守性を達成するために考えるべきだと考えます。

+1

同意します。私はマネージャー/上層部/インタビュアーはNティアが正しいとすればメンテナンス性、パフォーマンス、スケーラビリティを提供することが証明されているので、「Nティア」という言葉を使いたいと思います。しかしそれは逆に見なければならない。また、私はスケーラビリティについて話すたびに[この記事](http://teddziuba.com/2008/04/im-going-to-scale-my-foot-up-y.html)を考えます。 –

+1

+1 - レイヤは論理的です。ティアは物理的です。両方のコンセプトはまだまだ関連性が高く、混乱させるべきではありません。 –

関連する問題