Ⅱ-3-5. OSSによるWeb3層アプリケーション

Web3層アプリケーションとは何か解説し、Webアプリケーション開発の特徴や利点について説明する。そのうえで、OSS を活用した3層アプリケーションの具体的な構築例を示し、Web3層アプリケーション開発におけるOSSの効果的な利用方法を解説する。

【学習の要点】

* Web3層アプリケーションとは、Webシステムの構成要素をプレゼンテーション層、アプリケーション層、データ層の3層に分割し、独立したモジュールとして設計するアプリケーションである。

* 3層アーキテクチャを採用することにより、ユーザインタフェース、ビジネスロジック、データベースの相互依存を抑え、変更容易性、拡張性を高めることができる。

* Web3層アプリケーションはプレゼンテーション層を担当するWebサーバ、ビジネスロジックを担当するアプリケーションサーバ、データ層を担当するデータベースサーバによって構築される場合が多い。

図Ⅱ-3-5. OSSによるWeb3層アプリケーション

【解説】

1) Web3層アプリケーション

Web3層アプリケーションとは、Webシステムの構成要素をプレゼンテーション層、アプリケーション層、データ層の3層に分割し、独立したモジュールとして設計するアプリケーションである。多くの場合、3層はそれぞれ別のハードウェア、別のOSで動作可能となるように設計され、実際にそのように運用される場合が多い。

* Web3層アーキテクチャのメリット

3層を独立したモジュールとして設計することにより相互依存性が抑えられるため、要求に応じた機能変更、拡張が容易となる。例えば、データベースの性能が問題となった場合に、データベースサーバのクラスタ化や、OSSからプロプライエタリなデータベースサーバ製品への変更などを行う場合でも、他の部分に対する影響を少なくすることができる。

2) 各層の役割と構成要素

* プレゼンテーション層

ブラウザからのHTTPリクエストを処理し、必要に応じてアプリケーション層に処理を委譲する。また、アプリケーション層から処理結果を受け取り、ブラウザに返す。Webサーバにより構成されApache HTTP Serverなどを利用することができる。

* アプリケーション層

プレゼンテーション層からの要求に応じてビジネスロジックを処理する。必要に応じてデータ層にアクセスし、データの検索、保存などを行う。アプリケーションサーバにより構成されJBossなどを利用することができる。

* データ層

データを管理し、アプリケーション層に対してデータの検索、抽出、保存などのインタフェースを提供する。データベースサーバにより構成されPostgreSQL、MySQLなどを利用することができる。

3) ソフトウェアの3層アーキテクチャ

プレゼンテーション層、アプリケーション層、データ層の3層に分割する手法は、システムアーキテクチャだけでなく、ソフトウェアアーキテクチャにも適用される場合がある。この場合、3層はそれぞれ同一のソフトウェア内のモジュールを指すため、前述の分類とは異なる場合がある。以下にJava EEの場合の例を挙げる。

* プレゼンテーション層

リクエストの処理とユーザインタフェースの提供を行うモジュールであり、ServletやJSPによって実装される。

* アプリケーション層

ビジネスロジックを処理するモジュールであり、Java BeanやEJBのSession Beanによって実装される。

* データ層

ソフトウェアによって扱われるデータを表現したモジュールであり、Java BeanやEJBのEntity Beanによって実装される。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。