I-13-10. MVCアーキテクチャの基本と特徴

Javaアプリケーションを例題として、Webアプリケーションの基本アーキテクチャとして想定されるMVC (Model-View-Controller)モデルの内容とメリットについて解説する。それぞれを構成する要素技術を示し、モデルとの対応関係について説明する。

【学習の要点】

* MVCモデルとは、プログラムをモデル(Model)、ビュー(View)、コントローラー(Controller)という3つに分けて設計する手法のことをいう。

* Webアプリケーションを作る際にも、MVCモデルが適用できる。

* MVCモデルを用いることで、作業の分業が明確になり、開発効率の向上が望める。

図I-13-10. JavaにおけるMVCモデルの概要

【解説】

1) MVCモデルとは

MVCモデルとは、プログラムをモデル(Model)、ビュー(View)、コントローラー(Controller)という3つに分けて設計する手法である。

2) Model、View、Controller

* Model (EJB)

Modelはアプリケーションの根幹をなす部分である。アプリケーションの主たる処理内容とデータを表す。特定の環境に依存しない部分のため、EJBの担当箇所とする設計が適切である。

* View (JSP)

Viewはアプリケーションのユーザーインタフェースを定義する部分である。Webアプリケーションを例にとるならば、フォームやボタンなどの配置を決めてデザインを作る作業が、このViewに当たる。ViewはHTMLを生成しクライアントに送るもののため、JSP担当の設計が適切である。

* Controller (Servlet)

ControllerはViewとModelの間を取り持つ部分である。Viewのフォームなどから入力された値を受け取り、それをModelに送る。クライアントからの入力はJSPでも担当することができるが、Controllerにもロジックが必要なので、サーブレットに担当させる設計が適切である。

3) MVCモデルのメリット

このような手法を採用するメリットは、以下のようなものがある。

* デザイン作り、アプリケーションの根幹、表示とアプリケーションの根幹の間を取り持つ部分といったように開発作業の分業が明確にすることで、開発効率が上がる。

* Model、View、Controllerのそれぞれの独立性が高いので、仕様変更に対しても柔軟に対応することができる。

* ユーザーインタフェース部分を変更するのが容易である。

4) MVCモデルで作られたプログラムの動作の流れ

* クライアントからのリクエストをControllerが受け付ける。

* Controllerが該当するModelに処理を依頼する。もし必要があればViewにも表示の書き換えを指示する。

* Modelが処理結果をViewに渡す。

* Viewは出力(表示)用のデータを整える。

* クライアントにレスポンスを返す。

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