1.2 Webアプリケーションとは

1.2 Webアプリケーションとは

WebアプリケーションとはWebの仕組みを利用して動くプログラムのことで、インターネット上にはさまざまなWebアプリケーションが提供されています。Webアプリケーションは、Webブラウザを利用して操作することが想定されており、電子商取引やオンラインバンキング、オンライントレードといったものがあります。身近な例では、オンラインショッピングを行うECサイトや、検索サイト等も代表的なWebアプリケーションです。
これらのWebアプリケーションを支える技術の1つとして、Java言語を利用した「JSP/サーブレット」や「Springフレームワーク」があります。

1.2.1 Webアプリケーションの動作の仕組み

Webアプリケーションは、「Webクライアント」と「Webサーバー」、「アプリケーションサーバー」、そして「データベース」の連携によって動作するのが基本です。それぞれの役割は次の通りです。

Webクライアント

Webサーバーからのデータ(ページ情報)を受け取り、画面に表示するWebブラウザのことです。
ユーザーは、Webブラウザに特定のURLを入力するだけで、アプリケーションを利用できます。

Webサーバー

静的コンテンツ(HTMLファイル、画像等)をWebクライアントに送信するコンピューターのことです。

アプリケーションサーバー

動的コンテンツ(データや条件によって表示内容が変わる画面)を表示する為にプログラムを処理します。

データベース

アプリケーションに必要なデータを管理します。多くのWebアプリケーションでは、さまざまなデータを取り扱います。そのため、データベースを利用する方が良い場合が多くなります。

1.2.2 アプリケーションサーバーとは

アプリケーションサーバーとは、JavaやPHP等のプログラミング言語で記述されたWebアプリケーションを呼び出し、実行する環境を持ったサーバー(コンピューター)のことです。
Webアプリケーションを表示するプログラムは通常のJavaプログラムとは異なり、main()メソッドから実行されるわけではありません。Webブラウザからリクエストがあった際に、表示する画面に合わせて、アプリケーションサーバーが必要なクラスやメソッドを呼び出して処理が行われます。
なお、前項までの説明に使用した図では、Webサーバーとアプリケーションサーバーは別々のものとして描かれていますが、アプリケーションサーバーには、Webサーバーの機能を内部に持っているものも存在します。
本テキストではWebサーバーの機能を内部に持った「Tomcat」と呼ばれるアプリケーションサーバーを利用して学習していきます。

Webサーバーとアプリケーションサーバーの違い

Webサーバーは、HTMLファイルでできた静的なページ(画面アクセス時の状態で表示内容が変わらないもの)をWebブラウザに返すサーバーのことを指します。
アプリケーションサーバーは、プログラムを実行する環境を持ったWebサーバーのことを指します。
Springフレームワーク等で作られた動的なページ(画面アクセス時の状態で表示内容がかわるもの)をWebブラウザに返したい場合は、プログラムの実行環境を持ったアプリケーションサーバーが必要です。

1.2.3 MVCモデル

MVCモデルとは、Webアプリケーションを構成するプログラムやファイルを、モデル(Model)、ビュー(View)、コントローラ(Controller)の3つの要素に分割する設計モデルです。それぞれの役割は以下の通りです。

Model

プログラムのメイン処理やデータの保持、データベースの接続・操作等を行います。

View

Webブラウザからの要求に対してWebページを生成し、その結果画面の表示を行います。
一般的にはHTMLファイル等が担当します。

Controller

プログラムの制御を行います。リクエストにあわせて適切なModel、Viewを呼び出し、処理を実行します。
今回のテキスト内ではサーブレットと呼ばれるJavaファイル等が担当します。


NEXT>> 1.3 Tomcat