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ファイル等が担当します。