動作原理と環境の構築
本稿では、WebSphereを使って解説を進めるので、まずはWebSphereのセットアップから話を始めたい。しかしその前に、JavaServletの動作原理について、少し触れておこう。
Java Servletの動作原理
Java Servletは、HTTPサーバをアプリケーション・サーバに変身させるテクノロジである。では、実際にはどのような構造をしているのだろうか。
「サーブレット」と単純に言った場合、それはアプリケーションを指す。これはサーバ上で実行されるものであり、文字どおり「サーバ」が必要である。サーブレットを実行するためのサーバを「サーブレット・エンジン」という。
サーブレット・エンジンは、それ単体では役に立たない。サーブレットは処理結果をHTML化しWebブラウザに表示する。つまり、HTTPサーバが必要である。通常、多くのサーブレット・エンジンは、別のHTTPサーバにプラグインされて稼働する。
HTTPサーバが導入されているマシンにサーブレット・エンジンを導入すると、プラグイン・モジュールが同時に導入され、HTTPサーバの構成ファイルが書き換えられる。これがプラグインという作業であり、サーバ管理者が自分で構成ファイルを書き換えることはほとんど必要ないはずだ。
サーブレット・エンジンはサーバプロセスとしてサーバマシン上に常駐する。プラグイン・モジュールは、共用メモリやTCP/IPなどを通してHTTPサーバに投げられたWebブラウザからのHTTPリクエストを、適宜サーブレット・エンジンに転送する。
サーブレット・エンジンは、リクエストが転送されてくると、該当するサーブレットをロードし、初期化してサービス・メソッドを呼び出す。繰り返し同じリクエストが来た場合は、ロードと初期化の処理は必要なく、サービス・メソッドの呼び出しのみが行われ、しかもこれはサーバプロセスのスレッドとして呼び出される。
サーブレットはCGIとは違い、サーブレット・エンジンがサーバプロセスとして常駐し、必要なときにユーザー・アプリケーションをロードするので、リソースやパフォーマンスの面で有利である。ユーザーがHTML上で入力した内容や、操作した内容(ラジオボタンやチェックボックスの選択など)は、HTTPプロトコル上に「パラメータ」と呼ばれるデータとしてサーバに送られる。これらの情報はアプリケーション・サーバ・プロセスが読み取り、分解してUnicodeに変換した後、リクエスト・オブジェクトにセットする。これをJava Servletコードで取り出すには、「getParameter」メソッドが使える。
WebSphereのセットアップ
ひと昔前のサーバ製品では、HTTPサーバ、JDK、アプリケーション・サーバ、RDBなどを別々に導入し、それぞれ正しく構成しないとうまく稼働しないというものが多かったが、最近のサーバ製品ではセットアップが非常に簡単になってきている。
それでは、WebSphere Application Server V3.5でのセットアップ手順を紹介しよう。なお本稿では、WebSpherに依存する内容と一般的な内容とを背景の色で分けている。以下のように背景の色がグレーの部分はWebSphereに関連した内容であることに注意してほしい。
WebSphere Application Server V3.5は、IBMから提供されているJavaアプリケーション・サーバである。OS/390、Linux/390、AS/400、AIX、Sun Solaris、HP-UX、Linux(Intel版)、Windows NT/2000という豊富なプラットフォームを動作環境として持つ。また、サーバ製品だけでなく、開発環境や管理製品を1つのブランドとして提供しており、メインフレームと連携するためのコネクタも充実している。また、多数のHTTPサーバをプラグインの対象としているのも特徴である。
今回の記事の執筆にあたって使用した製品の一覧は以下のとおりだ。カッコ内は略号であり、覚えていただくと今後役に立つだろう。
OS | Windows 2000 |
---|---|
HTTPサーバ | IBM HTTP Server V1.3.12(IHS) |
アプリケーション・サーバ | WebSphere Application Server V3.5(WAS) |
ウェブ開発ツール | WebSphere Studio V3.5(WSS) |
Java開発ツール | VisualAge for Java V3.5(VAJ) |
また、EJBの開発を行うためには、WASアドバンスト版とVAJエンタープライズ版が必要である。サーブレット開発のみであれば、WASスタンダード版、VAJプロフェッショナル版で可能だ。
これらの試用版を次のURLからダウンロードできるので、興味がある方はダウンロードしてテストしてみてほしい(http://www.jp.ibm.com/software/download.html)。
さて、サーバのセットアップはいたって簡単である。特にV3.5になって「クイックインストール」という形態のセットアップができるようになった。Windows NTでsetup.exeを実行するだけで、HTTPサーバ、UDB DB2(アドバンスト版以上にバンドルされている)、Java2、HTTPサーバ、アプリケーション・サーバなどが自動的に導入され、利用可能になる。
WebSphereでは、インストール後にやらなければいけないことがいくつかあるので、ここで一通り概要を紹介する。詳しくは製品に付属しているマニュアルなどを参照してほしい。
(1) リポジトリDBの作成
WebSphereでは、分散環境で設定情報を共有するためにRDBに設定情報を作成する。スタンダード版はこれに対応しないため、「インスタントDB」というDBに設定情報が作成されるが、アドバンスト版、エンタープライズ版ではDB2 UDBに作成する。導入して最初のリブートでこの作業が行われ、初めてのサーバ起動によってDBの中身が初期化される。特に作業は必要ないが、サーバが起動できないときには知っておいた方が良い。RDBに作成されるDB名は、「WAS」である。
(2) 管理サーバの起動
WebSphereのサーバは、Windows NT/2000の「サービス」の1つとして稼働する。管理サーバとサーバ・プロセスに分かれていて、管理サーバが、サーブレットやEJBのサーバ・プロセスを起動する。また、管理サーバは、管理コンソールのサーバとしても機能する。
(3)アプリケーション・サーバの起動
WebSphereは、ワークロード分散などの機能をもっていのが理由で、いくぶん複雑な構造をもっていて設定項目が多いが、簡単に扱えるようにデフォルトの設定が最初から入っている。セットアップしただけではサーバは停止状態なので、一度手動で起動してやる必要がある。手順としては、WASの管理コンソールを起動し、「Default Server」を選択して開始ボタンを押す。
以上の操作で、WebSpehre Application Server上でサーブレットとJSPを稼働させる準備が整った。ローカルでWebブラウザを起動して、テスト用のサンプルサーブレットを表示してみよう。
Copyright © ITmedia, Inc. All Rights Reserved.