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サーバ、ビジネスロジックを担当するアプリケーションサーバ、データ層を担当するデータベースサーバによって構築される場合が多い。
回答ありがとうございます。
2017/03/22 18:32:402-1解釈でシステム構築していそうな話を聞いたりするので、
意見が聞けて良かったです。