Webアプリケーションサーバーのしくみ
Webアプリケーションサーバーのしくみ



クライアントのWebブラウザが出した要求はWebサーバーが受け取る。
そして、サーブレットを呼び出して処理を依頼し、処理結果をクライアントに返す。
サーバー上でWebアプリケーション・サーバーが動作するためにはプログラムが必要だ。

【Java VM】
Javaの実行環境。
Java仮想マシンといわれるもので米国のSun MicroSystemsから
Java Runtime Environment(JRE) として無料でリリースされている。
Java Runtime Environment(JRE) はJ2SDKの中に含まれている。
この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。
【J2SDK】
J2とはJava2の略で、1998年12月に米Sun MicrosystemsがリリースしたJDKの最新版のことである。
SDKとは、Software Development Kitのことである。
J2SDKとは、米Sun Microsystemsが開発しているJavaの基本ソフトウェア。
コンパイラやJava仮想マシン(Java VM),クラスライブラリなどで構成される。
【サーブレットエンジン】
Tomcatがこれに当たり、Javaの基本ソフトウェアであるJava2 SDK上で動作する。
TomcatはJakartaプロジェクトのサブプロジェクトとして開発されているオープンソースのソフトウェアで、Javaサーブレット・JSPを処理するサーブレットコンテナである。
Tomcatは単独でWebサーバーとして動作することも可能だが、ApacheやIISのプラグインと動作できるようになっており、実際にはプラグインとしての利用が主流である。
Tomcatは主なUNIX系OSやWindows、Mac OS Xなどで動作する。
TomcatはSun Microsystems社からJavaサーブレット・JSPのリファレンス実装として認められたソフトウェアで、利用者も非常に多い。
Apache Software Licenseというライセンスに基づいて公開されており、誰でも自由かつ無償で利用・改変・再配布できる。
【サーブレット・JSP・JB】
サーブレットはサーバー上で、Webサーバー(サーブレット・コンテナ)と連携して動作するJavaプログラムである。
Webサーバー(サーブレット・コンテナ)はWebブラウザから要求を受け取ると、サーブレットを起動して処理をい依頼し、その結果をクライアウトに返す。これはWebサーバーで古くから使われているCGIに仕様がにているが、サーブレットはCGIよりパーフォーマンスや安全性に優れている。
JSPは、HTMLの中にJavaのプログラムや、JavaBeansコンポーネントを埋め込んで、動的にWebページを生成する技術である。
JSPは、Microsoftが開発したWebアプリケーション実行環境であるASPとよく似ている。
ASPはWebサーバーIISなどのWindows環境でしか動作しないが、JSPはJava VM及びサーブレット・コンテナが稼動していれば、どのプラットフォームでも動作する。
JBは業務処理に関する部分をJavaBeansとして切り出した、コンポーネント(部品)である。
Webアプリケーションサーバーは、MVC(Model-View-Control)モデルに基づいて作成する。
モデル:必要なデータの保持と業務ロジック
ビュー:画面表示
コントロール:入力情報を受け取り、ビューとモデルを制御する。
Webアプリケーションサーバーでは、コントロールはサーブレットに実装し、画面はJSPに実装し、モデルはJBに実装する。
【Webサーバー】
Apache HTTP Server(アパッチ エイチティーティーピー サーバー)は、世界中でもっとも使われているWebサーバーソフトウェアであり、大規模な商用サイトから自宅サーバーまで幅広く利用されている。単にApacheとも称されている。
【データ・ベース・サーバー】
無料で提供されているRDBMS(リレーショナルデータベースサーバー)には、PostgreSqlとか、Mysqlがある。
Mysqlは高速性にR定評があり、特に更新よりも参照の頻度の高いアプリケーションに向くとされている。
【Webアプリケーションサーバー 
ユーザからの要求を受け付けて、データベースなどの業務システムの処理に橋渡しする機能を持ったサーバーソフトウェア。
ミドルウェアの一種で、ユーザが利用するWebブラウザなどのフロントエンド(クライアント)と、データベース管理システムなどのバックエンドの中間に位置する。これら3つの要素で構築した業務システムを3階層システムと呼ぶ。
クライアントにWebブラウザを用い、HTTPで通信する「Webアプリケーションサーバー」が主流で、単にアプリケーションサーバーと言ったら普通はWebアプリケーションサーバーである。
プログラムの実行環境やデータベースへの接続機能、複数の処理を連結するトランザクション管理機能などを持ち、業務の処理の流れを制御するビジネスロジックを実装しているのがアプリケーションサーバーである。
旧来の、クライアントやバックエンド側にビジネスロジックを実装する方式(2階層システム)に比べ、システムの変更や更新、増強などが容易で、柔軟性が高い。
従来多く見られた、業務プロセスが少しでも変わったら全社員のパソコンのクライアントを更新しなければならなかったり、逆に、高価な基幹データベースの管理システムを買い換えなければならなかったりといった悩みを解消してくれる。
【CGI】
Common Gateway interfaceの略で、HTTPサーバーが他のプログラムを呼び出すためのインタフェース(接続規約)である。
例えば、Webブラウザにxxx.cgiのようにURLを入力してHTTPサーバーにアクセスするとHTTPサーバーはxxx.cgiを実行し、その結果をWebブラウザに戻す。
例えば、訪問カウンタを表示するために、cgiとしてPerlプログラムを呼び出して表示します。
HOME