質問: 一般的な『Web3層アーキテクチャ』構成とは? webサーバ周りの勉強をしていて疑問に思ったので質問です。 サーバ構成について『Web3層アーキテクチャ』や単に『3層構造』と呼ばれるものが一般的な構成だというのでwebで調べてみたのですが、どのページもその言葉が指し示すものが異なっているように感じます。 大きくまとめてみると、 ・解釈1.クライアント ⇔ APサーバ ⇔ DBサーバ ・解釈2.クライアント ⇔ webサーバ ⇔ APサーバ ⇔ DBサーバ という解釈に別れ、また解釈2の場合でも、 ・解釈2-1.webサーバ=リバースプロキシ機能(Apache HTTP Serverなど) APサーバ=Tomcat+StrutsのようなHTTPサーバ機能+ビジネスロジック ・解釈2-2.webサーバ=Tomcat+StrutsのようなHTTPサーバ機能+AP呼出コントローラ APサーバ=EJBのようなHTTPサーバ機能のないビジネスロジック と別れているように感じます。 そこで質問なのですが、一般的と言われる『3層構造』とはどんな構成を示しているのでしょうか。そして、それはどんな効果を狙っているのでしょうか。 (負荷分散という意味でいうと、個人的には解釈2-2が最も腑に落ちる構成なのですが...)
回答: 2-2でよいと思います。目的は、変更容易性、拡張性を高めるためです。 ?-3-5. OSSによるWeb3層アプリケーション | 日本OSS推進フォーラム > 【学習の要点】 > * Web3層アプリケーションとは、Webシステムの構成要素をプレゼンテーション層、アプリケーション層、データ層の3層に分割し、独立したモジュールとして設計するアプリケーションである。 > > * 3層アーキテクチャを採用することにより、ユーザインタフェース、ビジネスロジック、データベースの相互依存を抑え、変更容易性、拡張性を高めることができる。 > > * Web3層アプリケーションはプレゼンテーション層を担当するWebサーバ、ビジネスロジックを担当するアプリケーションサーバ、データ層を担当するデータベースサーバによって構築される場合が多い。 > >