当社エンジニアによる書き下ろし技術レポート Close-Up IT

技術レポート 新着RSS(Atom)

この記事に関連するサービス
Webアプリケーションの設計・構築・保守
この記事に関連するお問い合わせ
お問い合わせ

第4章 :サーバーサイドJavaとRDBMSを使ったプログラムの構成と構造

4サーバーサイドJavaとRDBMSを使ったプログラムの実行制御

サーバーサイドJavaを利用したシステムでの、プログラムの実行制御について説明します。汎用機システムのトランザクションモニター (CICS) に相当するのは、Webアプリケーションサーバーです。

※本節の内容は相当複雑なので、難しいとお感じになれば飛ばしてしまってもかまいません。

図4-4.サーバサイドJavaの制御構造
図中のご覧になりたいところをクリックしてください
図4-4.サーバサイドJavaの制御構造 (→汎用機の場合) (2) サーブレットプログラムのロード (4) 会話の継続性の確認 (3) サーブレットプログラムがセッションオブジェクトを生成 (6) インスタンスのアドレス格納 (7) JSPの呼び出し (5) インスタンスの生成とビジネスロジックの実行 (9) インスタンスのアドレスを参照して実行結果の取得 (10) 動的に生成されたページの送出 (8) JSPの翻訳 (1) Controllerという名前のサーブレットの呼び出し

図4-4にWebアプリケーションサーバーにおける制御構造をしめします。図3-4のCICSの制御構造と比較してください。テーブル構造で資源の関連性を制御しているCICSと違って、Webアプリケーションサーバーは、プログラムのロケーションや、インスタンスのアドレスといった手段だけで制御をしています。したがって、CICSのようなきめ細かいサービス (優先制御やグループ化など) は、現在のところできません。

1. ブラウザとサーバーサイドでの処理の関連づけ

インターネットの世界では、SNAのように、固定にアドレスがふられた端末とその状態を保持しながらやり取りすることができません。そのため、どのブラウザとやり取りをしているのかの識別は、「セッションID」というテクニックを使って実現します。セッションIDをブラウザとサーバーの両者で保持し、それをサーバー側で付き合わせることで整合性を確保します。整合性確保には、他にも方法がありますが、主流は、セッションIDをブラウザ側ではCookieに、サーバー側ではセッションオブジェクトに保持することで、ブラウザと処理との関連づけを行う方法です。

ブラウザとの会話が初めて発生する (サーブレットプログラムのロケーションが呼び出される) と (1、2)、サーバー側でサーブレットプログラムがセッションオブジェクトを生成します (3)。そこにセッションIDという、システムで一意に決まるIDを発行します。それはブラウザにも伝えられCookieに格納されます。その後は、会話が継続するたびに、クライアント側のCookieのなかをチェックして (Cookieというファイルをサーバーに送ることで実現)、セッションIDによりステータスを管理します (4)。

2. サーブレットプログラムの起動と実行

ロケーション指定されたサーブレットプログラムが、Webアプリケーションサーバーによってクラスライブラリからロードされ、スレッドとして実行されます (2)。サーブレットプログラムは、JavaBeansのインスタンスを生成し (5)、JSPを呼び出します (7)。JSPは、そのままではどのインスタンスを利用してよいかわかりません。そこでサーブレットはセッションオブジェクトにインスタンスのアドレスを格納しておきます (6)。

3. JSPの翻訳と実行

呼び出されたJSP (これもロケーション指定で呼び出されます) は、JSPプロセッサによってライブラリからロードされます (8)。JSPは、そのままではサーブレットエンジンでは動作ができません。JSPプロセッサによって、実行可能なサーブレットバイトコードに変換されます。
その後サーブレットとして動作し、インスタンスから情報を取り出して (9) コンテンツ生成をした後、Webサーバー経由で、ブラウザにコンテンツが表示されます (10)。


汎用機のトランザクションモニターとは、かなり異なった制御構造になっています。しかし、端末 (ブラウザ) から要求を入力し、結果を受け取るという、見た目の動きは変わりません。

どうでしょうか、サーバーサイドJavaのしくみと動作概要はご理解いただけたでしょうか。次回からは、サーバーサイドJavaに実装されているさまざまなしくみを、もっと掘り下げてご説明します。

このページの先頭へ