(57)【要約】【課題】  サーバ装置がクライアント装置から受信したリクエストを解析する処理を各機能で共通化することを目的とする。【解決手段】  サーバ装置１００において、リクエスト受信部１０１はクライアント装置５０からのリクエストを受信する。リクエスト解析部１０２はリクエストを解析して、クライアント装置５０の入力データを取得する。リクエスト画面反映部１０３は入力データを同期画面管理部１０４が管理する同期画面１０５に反映させる。機能部１０６は同期画面１０５から入力データ及びその他必要なデータを取得し、ビジネスロジックを実行し、その実行結果を同期画面１０５に反映させる。レスポンス送信部１０７は、同期画面１０５の内容を含むレスポンスをクライアント装置５０に送信する。【選択図】        図３
2006221393.tif 000002
【特許請求の範囲】
【請求項１】
出力データを画面上に出力するクライアント装置と通信を行うサーバ装置において、
前記クライアント装置から入力データを含むリクエストを受信するリクエスト受信部と、
前記リクエスト受信部が受信したリクエストを解析して前記クライアント装置が入力した入力データを取得するリクエスト解析部と、
前記クライアント装置が画面上に出力すべき出力データを画面ごとに同期画面として管理する同期画面管理部と、
前記リクエスト解析部が取得した入力データを前記同期画面管理部が管理する同期画面に反映させるリクエスト画面反映部と、
前記リクエスト画面反映部が前記入力データを反映させた同期画面に基づいて所定の処理を行い、当該処理の結果を当該同期画面に反映させる機能部と、
前記機能部が前記処理の結果を反映させた同期画面を前記出力データとして含むレスポンスを生成し、生成したレスポンスを前記クライアント装置に送信するレスポンス送信部とを備えることを特徴とするサーバ装置。
【請求項２】
前記レスポンス送信部は、
前記クライアント装置に前記出力データを出力する画面が同時に複数存在する場合、当該画面のうち２つ以上の画面に入力した入力データを１つのリクエストに含めて送信するために前記クライアント装置が実行するプログラムを含むレスポンスを生成することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記クライアント装置は、前記出力データをＷｅｂブラウザのウィンドウとフレームとダイアログとのうち少なくともいずれかの画面上に出力し、
前記同期画面管理部は、
前記Ｗｅｂブラウザの画面が同時に複数存在する場合、当該画面のいずれかを親子関係の親にあたる同期画面とし、他のいずれかを親子関係の子にあたる同期画面として管理することを特徴とする請求項１又は２に記載のサーバ装置。
【請求項４】
出力データを画面上に出力するクライアント装置と通信を行うサーバ装置が実行するサーバプログラムにおいて、
前記クライアント装置から入力データを含むリクエストを受信するリクエスト受信処理と、
前記リクエスト受信処理が受信したリクエストを解析して前記クライアント装置が入力した入力データを取得するリクエスト解析処理と、
前記クライアント装置が画面上に出力すべき出力データを画面ごとに同期画面として管理する同期画面管理処理と、
前記リクエスト解析処理が取得した入力データを前記同期画面管理処理が管理する同期画面に反映させるリクエスト画面反映処理と、
前記リクエスト画面反映処理が前記入力データを反映させた同期画面に基づいて所定の処理を行い、当該処理の結果を当該同期画面に反映させる機能処理と、
前記機能処理が前記処理の結果を反映させた同期画面を前記出力データとして含むレスポンスを生成し、生成したレスポンスを前記クライアント装置に送信するレスポンス送信処理とをコンピュータに実行させることを特徴とするサーバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置及びサーバプログラムに関するものである。特に、Ｗｅｂサーバ又はＷｅｂサーバを実行する装置であって、Ｗｅｂブラウザなどのクライアント又はクライアントを実行する装置からリクエストを受信し、受信したリクエストに基づいて所定の処理を実行し、その実行結果に基づいてレスポンスを作成し、作成したレスポンスを返信する装置及びプログラムに関するものである。
【背景技術】
【０００２】
Ｗｅｂシステムでは、クライアント装置が実行するＷｅｂブラウザなどのクライアントが、リクエストを送信し、サーバ装置が実行するＷｅｂサーバが、リクエストを受信し、リクエストの内容に基づいて所定の処理（以下、ビジネスロジックという）を実行し、処理の結果をレスポンスとしてクライアント装置に送信する。
【０００３】
このようなシステムの一種として一般化してきているものに、Ｊ２ＥＥ（Ｊａｖａ（登録商標）  ２  Ｐｌａｔｆｏｒｍ，  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ）システムがある。Ｊ２ＥＥシステムでは、サーブレット、ＪＳＰ（登録商標）（Ｊａｖａ（登録商標）  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）、ＥＪＢ（登録商標）（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ（登録商標）  Ｂｅａｎｓ）によりＷｅｂサーバの一種であるＪ２ＥＥサーバを構築する。Ｊ２ＥＥサーバにおいて、サーブレット及びＪＳＰ（登録商標）はクライアントからリクエストを受け取り、必要に応じてＥＪＢ（登録商標）を使用してビジネスロジックを実行し、その実行結果に基づくレスポンスをクライアントに返す。
【０００４】
例えば、上記のようなシステムにおいて、Ｗｅｂサーバのサービス（以下、機能という）を利用するユーザが、Ｗｅｂブラウザのウィンドウ、フレーム、ダイアログといった画面に対してデータを入力し、入力したデータ（以下、入力データという）の送信を指示すると、Ｗｅｂブラウザは入力データをＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストに含めてＷｅｂサーバに送信する。Ｗｅｂサーバは、ＨＴＴＰリクエストに含まれるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などから、要求された機能を特定し、その機能の処理を実行する。Ｗｅｂサーバは、図１４に示すように、機能ごとに規定された方法でＨＴＴＰリクエストを解析して入力データを取得し、異なる機能から参照可能なセッション情報を取得し、入力データを用いて各機能に対応するビジネスロジックを実行し、前述のセッション情報を更新し、機能ごとに規定された方法で実行結果の表示内容をＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で構築し（以下、この内容を出力データという）、出力データをＨＴＴＰレスポンスに含めてＷｅｂブラウザに送信する。Ｗｅｂブラウザは、ＨＴＴＰレスポンスを受信し、受信したＨＴＴＰレスポンスから出力データを取得し、その内容を画面に表示する。
【０００５】
このような機能が他の機能と関連して処理される場合、Ｗｅｂサーバは、さらに、各ビジネスロジックの実行結果などをメモリ上にセッション情報として管理し、セッション情報を利用することによって複数のリクエストに対する処理を一連の処理として実行する。この場合、ＨＴＴＰリクエストにはセッションＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）が含まれ、Ｗｅｂサーバは、セッションＩＤから特定したセッション情報を取得し、セッション情報に含まれるデータを用いてビジネスロジックを実行し、実行結果を基に必要に応じてセッション情報を更新する。
【０００６】
上記のようにクライアント装置とサーバ装置とが通信を行い、通信したデータを画面上に表示するシステムでは、複数のクライアント装置が表示する画面を同期して共有するもの（例えば、特許文献１）や、複数の画面に表示されるデータをクライアント装置に一括して送信するもの（例えば、特許文献２）がある。また、サーバ装置が共通化された方法で画面の表示データを編集して送信し、クライアント装置が送信されたデータをそれぞれの画面に合わせて最終的に編集するもの（例えば、特許文献３）や、サーバ装置が最終的に画面の表示データを編集して送信し、クライアント装置が送信されたデータをそのまま画面に表示するもの（例えば、特許文献４）がある。
【特許文献１】特開平９−２５９０８３号公報
【特許文献２】特開２００１−２４３１８９号公報
【特許文献３】特開平６−１７５８０３号公報
【特許文献４】特開２０００−１２２９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のＷｅｂシステムでは、Ｗｅｂサーバがリクエストの解析から表示内容の構築までを機能ごとに異なる処理として行っていた。そのため、システムの開発において、多くの手間、時間、コストがかかっていた。
【０００８】
また、従来のＷｅｂシステムでは、ユーザがＷｅｂブラウザの画面においてデータの送信を指示した場合、その画面中に入力されたデータしか送信できなかった。例えば、Ｗｅｂブラウザの１つのウィンドウ内に２つのフレームが表示されている場合、両方のフレームに入力したデータを１つのリクエストに含めてＷｅｂサーバに送信することができなかった。
【０００９】
本発明は、例えば、サーバ装置がクライアント装置から受信したリクエストを解析する処理を機能ごとに開発することを不要にすることを目的とする。また、例えば、クライアント装置が複数の画面に入力されたデータを１つのリクエストでサーバ装置に送信することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のサーバ装置は、
出力データを画面上に出力するクライアント装置と通信を行うサーバ装置において、
前記クライアント装置から入力データを含むリクエストを受信するリクエスト受信部と、
前記リクエスト受信部が受信したリクエストを解析して前記クライアント装置が入力した入力データを取得するリクエスト解析部と、
前記クライアント装置が画面上に出力すべき出力データを画面ごとに同期画面として管理する同期画面管理部と、
前記リクエスト解析部が取得した入力データを前記同期画面管理部が管理する同期画面に反映させるリクエスト画面反映部と、
前記リクエスト画面反映部が前記入力データを反映させた同期画面に基づいて所定の処理を行い、当該処理の結果を当該同期画面に反映させる機能部と、
前記機能部が前記処理の結果を反映させた同期画面を前記出力データとして含むレスポンスを生成し、生成したレスポンスを前記クライアント装置に送信するレスポンス送信部とを備えることを特徴とする。
【００１１】
前記レスポンス送信部は、
前記クライアント装置が前記出力データを出力する画面が同時に複数存在する場合、当該画面のうち２つ以上の画面に入力した入力データを１つのリクエストに含めて送信するために前記クライアント装置が実行するプログラムを含むレスポンスを生成することを特徴とする。
【００１２】
前記クライアント装置は、前記出力データをＷｅｂブラウザのウィンドウとフレームとダイアログとのうち少なくともいずれかの画面上に出力し、
前記同期画面管理部は、
前記Ｗｅｂブラウザの画面が同時に複数存在する場合、当該画面のいずれかを親子関係の親にあたる同期画面とし、他のいずれかを親子関係の子にあたる同期画面として管理することを特徴とする。
【００１３】
本発明のサーバプログラムは、
出力データを画面上に出力するクライアント装置と通信を行うサーバ装置が実行するサーバプログラムにおいて、
前記クライアント装置から入力データを含むリクエストを受信するリクエスト受信処理と、
前記リクエスト受信処理が受信したリクエストを解析して前記クライアント装置が入力した入力データを取得するリクエスト解析処理と、
前記クライアント装置が画面上に出力すべき出力データを画面ごとに同期画面として管理する同期画面管理処理と、
前記リクエスト解析処理が取得した入力データを前記同期画面管理処理が管理する同期画面に反映させるリクエスト画面反映処理と、
前記リクエスト画面反映処理が前記入力データを反映させた同期画面に基づいて所定の処理を行い、当該処理の結果を当該同期画面に反映させる機能処理と、
前記機能処理が前記処理の結果を反映させた同期画面を前記出力データとして含むレスポンスを生成し、生成したレスポンスを前記クライアント装置に送信するレスポンス送信処理とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明では、サーバ装置において、リクエスト解析部が、クライアント装置が送信したリクエストを解析してクライアント装置が入力した入力データを取得し、同期画面管理部が、クライアント装置が画面上に出力すべき出力データを画面ごとに同期画面として管理し、リクエスト画面反映部が、入力データを同期画面に反映させ、機能部が、同期画面に基づいて機能ごとの処理を行い、処理の結果を同期画面に反映させ、レスポンス送信部が、同期画面を出力データとして含むレスポンスをクライアント装置に送信することにより、サーバ装置がクライアント装置から受信したリクエストを解析する処理を機能ごとに開発することが不要となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について、図を用いて説明する。
【００１６】
図１は、下記実施の形態におけるサーバ装置の外観の一例を示す図である。
【００１７】
図１において、サーバ装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置９０１、キーボード（Ｋ／Ｂ）９０２、マウス９０３、コンパクトディスク装置（ＣＤＤ）９０５、プリンタ装置９０６、スキャナ装置９０７を備え、これらはケーブルで接続されている。さらに、サーバ装置１００は、ローカルエリアネットワーク（ＬＡＮ）９４２、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１８】
図２は、下記実施の形態におけるサーバ装置のハードウェア構成の一例を示す図である。
【００１９】
図２において、サーバ装置１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、ＣＲＴ表示装置９０１、Ｋ／Ｂ９０２、マウス９０３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）９０４、磁気ディスク装置９２０、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７と接続されている。
【００２０】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
【００２１】
通信ボード９１５は、ＬＡＮ９４２などに接続されている。
【００２２】
例えば、通信ボード９１５、Ｋ／Ｂ９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部の一例である。また、例えば、通信ボード９１５、ＣＲＴ表示装置９０１などは、出力部の一例である。
【００２３】
ここで、通信ボード９１５は、ＬＡＮ９４２に限らず、直接、インターネット９４０、あるいはＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）などのＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット９４０、あるいはＩＳＤＮなどのＷＡＮに接続されている場合、サーバ装置１００は、インターネット９４０、あるいはＩＳＤＮなどのＷＡＮに接続され、ゲートウェイ９４１は不用となる。
【００２４】
磁気ディスク装置９２０には、オペレーティングシステム（ＯＳ）９２１、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３は、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２５】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００２６】
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の実行結果」として説明するものが、「〜ファイル」として記憶されている。
【００２７】
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などのその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００２８】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、ハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００２９】
また、以下に述べる実施の形態を実施するプログラムは、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などのその他の記録媒体による記録装置を用いて記憶されても構わない。
【００３０】
実施の形態１．
図３は、本実施の形態に係るサーバ装置の構成を示すブロック図である。
【００３１】
サーバ装置１００は、ＬＡＮ、ＷＡＮ、インターネットなどのネットワークを介して、クライアント装置５０と接続される。サーバ装置１００は、リクエスト受信部１０１、リクエスト解析部１０２、リクエスト画面反映部１０３、同期画面管理部１０４、機能部１０６、記憶部１０８、レスポンス送信部１０７を有する。サーバ装置１００は、例えば、Ｊ２ＥＥサーバとして実装され、サーブレット又はＪＳＰ（登録商標）により各部が制御される。
【００３２】
クライアント装置５０は、Ｗｅｂブラウザ５１を実行する。クライアント装置５０は、Ｗｅｂブラウザ５１のウィンドウ、フレーム、ダイアログといった画面を１つ又は２つ以上表示し、各画面においてユーザからの入力データを受け付ける。クライアント装置５０は、画面中に用意されたボタンがクリックされたときなど、入力データの送信が指示されると、入力データをＸＭＬデータにエンコードし、エンコードしたＸＭＬデータをリクエストに含めてサーバ装置１００に送信する。また、クライアント装置５０は、リクエストに対するレスポンスをサーバ装置１００から受信し、レスポンスに含まれるＨＴＭＬページを取得して画面上に出力する。
【００３３】
ここで、Ｗｅｂブラウザ５１のウィンドウ、フレーム、ダイアログは、画面の種類である。フレームは、ウィンドウ又はフレームの中に表示される画面で、１つのウィンドウ又はフレームには、フレームが１つも含まれないか、１つ又は２つ以上のフレームが含まれる。ダイアログは、エラーメッセージの表示や操作の確認要求などに用いられる画面で、他の画面とは独立して表示される。ウィンドウ、フレーム、又はダイアログに対する入力を基に、他のウィンドウが生成されることがある。
【００３４】
本実施の形態では、クライアント装置５０において、データの入力や画面の出力などにＷｅｂブラウザ５１を用いているが、他のプログラム（例えば、．ＮＥＴベースのプログラム、アプレット）を用いてもよい。また、サーバ装置１００がクライアント装置５０に送信するレスポンスにＨＴＭＬページ以外のテキスト、画像、その他のデータが含まれ、Ｗｅｂブラウザ５１でそのデータを表示又は再生してもよい。前述のようにＷｅｂブラウザ５１ではなく、．ＮＥＴベースのプログラム又はアプレットを用いていれば、例えば、サーバ装置１００がクライアント装置５０に、同期画面管理部１０４が管理する同期画面１０５の情報を反映したＸＭＬデータを送信し、クライアント装置５０の．ＮＥＴベースのプログラム又はアプレットがそのＸＭＬデータを所定の方法で表示してもよい。
【００３５】
サーバ装置１００において、リクエスト受信部１０１は、クライアント装置５０からリクエストを受信する。リクエスト解析部１０２は、リクエスト受信部１０１が受信したリクエストに含まれるＸＭＬデータをデコードすることにより、リクエストを解析して、クライアント装置５０の入力データを取得する。
【００３６】
本実施の形態では、クライアント装置５０において、入力データをＸＭＬデータにエンコードしているが、エンコードを行わないか、又は他の方式によりエンコードを行ってもよい。同様に、サーバ装置１００において、ＸＭＬデータを入力データにデコードしていいるが、デコードを行わないか、又は他の方式によりデコードを行ってもよい。
【００３７】
サーバ装置１００のリクエスト画面反映部１０３は、リクエスト解析部１０２が取得した入力データを同期画面管理部１０４が管理する同期画面１０５に反映させる。同期画面管理部１０４は、クライアント装置５０が画面上に出力すべきＨＴＭＬページに含まれる出力データを画面ごとに同期画面１０５として管理する。「出力すべき」ＨＴＭＬページとは、例えば、Ｗｅｂブラウザ５１において一般的なブラウザが備える「戻る」ボタンが使用されたときなどに、キャッシュ内のＨＴＭＬページが表示され、その表示内容が最新のものと異なる場合でも、「出力している」ＨＴＭＬページではなく最新のＨＴＭＬページの出力データが同期画面１０５で管理されることを示す。この出力データは、ＨＴＭＬページそのものであってもよいが、ここでは、画面の外観などの情報を抜いたデータであるとする。同期画面管理部１０４は、例えば、Ｊａｖａ（登録商標）のオブジェクトとして、同期画面１０５を管理する。
【００３８】
機能部１０６は、リクエスト画面反映部１０３が入力データを反映させた同期画面１０５に基づいてビジネスロジックを実行し、その実行結果を同期画面１０５に反映させる。例えば、サーバ装置１００をＪ２ＥＥサーバとして実装する場合、機能部１０６をＥＪＢ（登録商標）として実装することができる。
【００３９】
記憶部１０８は、スクリプトファイル１１０、イメージファイル１１１、設定ファイル１１２などを記憶する。スクリプトファイル１１０は、例えばＪａｖａｓｃｒｉｐｔ（登録商標）であり、クライアント装置５０がＷｅｂブラウザ５１の画面を同時に複数表示している場合、２つ以上の画面に入力された入力データを１つのリクエストに含めて送信するためのスクリプト（プログラム）が記述されたファイルである。イメージファイル１１１は、例えばＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）形式のファイルである。設定ファイル１１２は、例えばＣＳＳ（Ｃａｓｃａｄｌｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ）ファイルである。
【００４０】
レスポンス送信部１０７は、機能部１０６がビジネスロジックの実行結果を反映させた同期画面１０５を用いてＨＴＭＬページを作成し、作成したＨＴＭＬページを含むレスポンスを生成し、生成したレスポンスをクライアント装置５０に送信する。また、レスポンス送信部は、必要に応じて、記憶部１０８に記憶されたスクリプトファイル１１０、イメージファイル１１１、設定ファイル１１２などを含むレスポンスを生成し、クライアント装置５０に送信する。
【００４１】
図示していないが、サーバ装置１００は、入力部や出力部を備えていてもよい。例えば、入力部はファイルを入力し、記憶部１０８に記憶させる。また、例えば、出力部は記憶部１０８に記憶されたファイルを出力する。
【００４２】
ここで、同期画面管理部１０４の同期画面１０５の管理方法についてその詳細を説明する。
【００４３】
図４は、クライアント装置５０の画面構成の一例を示す図である。
【００４４】
図４の例では、Ｗｅｂブラウザ５１のウィンドウ５２である画面（１）の中に、フレーム５３である画面（１１）と画面（１２）が表示されている。画面（１１）のフレーム５３の中には、さらに、その子フレーム５４である画面（１１１）と画面（１１２）が表示されている。
【００４５】
各画面には、例えばＨＴＭＬのＨｉｄｄｅｎ機能を用いて、画面ＩＤや画面の生成・更新時間が埋め込まれている。また、各画面には、テキスト入力エリア、複数テキスト入力エリア、ボタン、ラジオボタン、セレクトボックスなどの表示要素が配置される。
【００４６】
図５は、図４の画面構成に対応するサーバ装置１００の同期画面１０５の構成を示す図である。
【００４７】
同期画面管理部１０４は、同期画面１０５に親子関係を設定し、各同期画面１０５をツリー構造によって管理する。クライアント装置５０が、図４の例に示した各画面を表示している場合、サーバ装置１００の同期画面管理部１０４は、図５のような構成により同期画面１０５を管理する。図中の矢印は親子関係を示す。
【００４８】
それぞれの同期画面１０５には、クライアント装置５０が画面上に出力すべきＨＴＭＬページに含まれる出力データのほか、サーバ装置１００が用いる制御情報も保持される。制御情報には、例えば、その同期画面１０５が生成された時間又は更新された時間を示す生成・更新時間（図中、生成・更新時間を示すｔは同期画面１０５ごとに独立した値である）、その同期画面１０５の子にあたる同期画面の子画面ＩＤ、その同期画面１０５に配置される表示要素を識別する表示要素ＩＤ（図中、表示要素ＩＤを示すｎ１、ｎ２などは同期画面１０５ごとに独立した値であり、表示要素ＩＤの個数も同期画面１０５ごとに決まる）、各表示要素に係るパラメータの表示要素値（図中、表示要素値を示すｍ１、ｍ２などは同期画面１０５ごとに独立した値であり、表示要素値の個数も同期画面１０５ごとに決まる）が含まれる。同期画面管理部１０４は、同期画面１０５の制御情報を含む各データをセッション情報に保存する。
【００４９】
図６は、クライアント装置５０が送信するリクエストのフォーマットの一例を示す図である。
【００５０】
図６は、例えば、図４の画面（１）に配置されたボタンをユーザがクリックした場合のクライアント装置５０のリクエストに含まれるＸＭＬデータの一例を示している。このＸＭＬデータでは、ルートタグとしてＲｅｑタグが設定され、その属性として、ＷｉｎｄｏｗＩｄにリクエストを送信する指示を受けた画面、即ち画面（１）の画面ＩＤが、ＥｌｅｍｅｎｔＩｄにクリックされたボタンの表示要素ＩＤが設定されている。画面（１）の子画面である画面（１１）、画面（１２）については、Ｗｉｎｄｏｗタグが使用され、その属性として、ＷｉｎｄｏｗＩｄに画面ＩＤが、Ｔｉｍｅｓｔａｍｐに生成・更新時間が設定されている。それぞれの画面内の各表示要素は、Ｗｉｎｄｏｗタグの子タグとしてＥｌｅｍｅｎｔタグで設定され、ＥｌｅｍｅｎｔＩｄに表示要素ＩＤが、ＥｌｅｍｅｎｔＶａｌにユーザが入力した値などの表示要素値が設定されている。
【００５１】
図７は、クライアント装置５０の画面遷移の一例を示す図である。
【００５２】
図７の例では、Ｗｅｂブラウザ５１の親画面５９である画面（２）において、ユーザが実行ボタンをクリックすると、画面（３）の掲示板が表示され、画面（３）の中には子画面６０である画面（３１）が表示される。画面（３１）は、表示要素としてテキスト入力エリアを有している。この場合、サーバ装置１００の同期画面管理部１０４が管理する同期画面１０５の構成は図８のようなものになる。
【００５３】
図８の例では、図７のＷｅｂブラウザ５１の親画面５９である画面（２）が、画面ＩＤ（２）の同期画面１０５として管理されている。画面（２）の子画面は存在しないため、この同期画面１０５には子画面ＩＤが設定されていない。画面（２）において、ユーザが実行ボタンをクリックすると、所定のビジネスロジックが実行され、画面が遷移する。このとき、同期画面管理部１０４は、画面ＩＤ（２）の同期画面１０５を削除し、図７の画面（３）に対応する画面ＩＤ（３）の同期画面１０５を生成する。さらに、同期画面管理部１０４は、図７の画面（３）の子画面６０である画面（３１）に対応する画面ＩＤ（３１）の同期画面１０５を生成する。画面ＩＤ（３）の同期画面１０５は、子画面ＩＤ（３１）を保持する。
【００５４】
次に、サーバ装置１００の動作について説明する。
【００５５】
図９は、サーバ装置１００の動作を示すフローチャートである。
【００５６】
まず、クライアント装置５０がリクエストを送信すると、サーバ装置１００において、リクエスト受信部１０１がリクエストを受信する（ステップＳ１）。次に、リクエスト解析部１０２がリクエストを解析して、クライアント装置５０の入力データを取得する（ステップＳ２）。図６の例に示したように、リクエストには画面ＩＤ、生成・更新時間などの制御情報が含まれており、リクエスト解析部１０２は同時にこれらを取得する。そして、各画面の画面ＩＤや生成・更新時間を、同期画面管理部１０４が管理する同期画面１０５のものと比較して、リクエストの妥当性をチェックする（ステップＳ３）。取得した画面ＩＤに該当する同期画面１０５がない場合や、取得した生成・更新時間が該当する同期画面１０５のものと一致しない場合は、エラーと判断し、同期画面１０５を更新せず、後述するステップＳ６の処理を行う。ただし、同期画面管理部１０４がクライアント装置５０のＷｅｂブラウザ５１について管理している同期画面１０５が１つもない場合は、図１０のような初期画面をクライアント装置５０に送信する。
【００５７】
ステップＳ３でリクエストが妥当なものだと判断された場合、リクエスト画面反映部１０３が入力データを同期画面管理部１０４が管理する同期画面１０５に反映させる（ステップＳ４）。続いて、機能部１０６が同期画面１０５から入力データ及びその他必要なデータを取得し、ビジネスロジックを実行し、その実行結果を同期画面１０５に反映させる（ステップＳ５）。このとき、機能部１０６として、例えば図６のルートタグにあるＥｌｅｍｅｎｔＩｄ（ボタンの表示要素ＩＤ）に対応するものが選択される。また、ステップＳ５で同期画面１０５が生成又は更新された場合、同期画面管理部１０４がその生成・更新時間を設定する。最後に、レスポンス送信部１０７が、同期画面１０５の内容を含むＨＴＭＬページを作成し、作成したＨＴＭＬページを含むレスポンスを生成し、生成したレスポンスをクライアント装置５０に送信する（ステップＳ６）。
【００５８】
以上のように、本実施の形態では、サーバ装置１００において、クライアント装置５０から受信するリクエストを解析する処理、解析したリクエストを同期画面１０５に反映する処理、同期画面１０５をセッション情報にて管理する処理を各機能（ビジネスロジック）で共通化することにより、これらの処理を機能ごとに開発することが不要となる。
【００５９】
また、レスポンス送信部１０７が、クライアント装置５０がＷｅｂブラウザ５１の画面を同時に複数表示している場合、２つ以上の画面に入力された入力データを１つのリクエストに含めて送信するためのスクリプトを送信することにより、サーバ装置１００は、例えばＷｅｂブラウザ５１に複数のフレームを表示させ、それらのフレームから同時に入力データを取得したり、それらのフレームに表示されるデータを同時に更新したりすることが可能となる。
【００６０】
実施の形態２．
本実施の形態では、図３に示した実施の形態１と同様のサーバ装置において、同期画面管理部１０４が同期画面１０５を削除する動作について説明する。
【００６１】
図１１は、本実施の形態におけるクライアント装置５０の画面遷移の一例を示す図である。
【００６２】
図１１の例では、まず、Ｗｅｂブラウザ５１のウィンドウ５２である画面（４）の中に、フレーム５３である画面（４１）が表示されている。画面（４１）のフレーム５３の中には、さらに、その子フレーム５４である画面（４１１）と画面（４１２）が表示されている。クライアント装置５０が、画面（４１）において、ユーザからデータの送信指示を受けてリクエストをサーバ装置１００に送信し、ビジネスロジックが実行された結果としてレスポンスを受信した後、Ｗｅｂブラウザ５１のウィンドウ５２である画面（４）はそのまま表示され、レスポンスに含まれるデータから、新しいフレーム５３である画面（４２）が表示される。この場合、サーバ装置１００の同期画面管理部１０４が管理する同期画面１０５の構成は図１２のようなものになる。
【００６３】
図１１及び図１２の例では、画面（４１）から画面（４２）に遷移するため、同期画面管理部１０４は、セッション情報から、画面（４１）、画面（４１１）、画面（４１２）の同期画面１０５を削除し、画面（４２）の同期画面１０５を生成する必要がある。同期画面管理部１０４は、実施の形態１と同様に、各同期画面１０５をツリー構造によって管理するため、画面（４１）、画面（４１１）、画面（４１２）の同期画面１０５を１つ１つ指定して削除するのではなく、画面（４１）の同期画面１０５を指定するだけで、その子画面の同期画面もすべて削除することができる。
【００６４】
以上のように、本実施の形態では、同期画面管理部１０４が、同期画面１０５に親子関係を設定し、各同期画面１０５をツリー構造によって管理することにより、例えば親子関係の親にあたる同期画面１０５を削除する場合、その同期画面１０５を指定するだけで子にあたる同期画面１０５をすべて削除することができ、効率のよいセッション情報の管理を行うことが可能となる。
【００６５】
実施の形態３．
実施の形態２では、クライアント装置５０の画面遷移の一例として、Ｗｅｂブラウザ５１がウィンドウ５２の中に複数のフレームを表示するものを挙げた。本実施の形態では、Ｗｅｂブラウザ５１がウィンドウ５２のほかに複数のダイアログを表示する例を説明する。
【００６６】
図１３は、本実施の形態におけるクライアント装置５０の画面遷移の一例を示す図である。
【００６７】
図１３の例では、まず、Ｗｅｂブラウザ５１のウィンドウ５２である画面（４）のほかに、画面（４）の子画面にあたりダイアログ６１である画面（４１）が表示されている。画面（４１）のダイアログ６１のほかには、さらに、その子画面にあたりフレーム５３である画面（４１１）と画面（４１２）が表示されている。クライアント装置５０が、画面（４１）において、ユーザからデータの送信指示を受けてリクエストをサーバ装置１００に送信し、ビジネスロジックが実行された結果としてレスポンスを受信した後、Ｗｅｂブラウザ５１のウィンドウ５２である画面（４）はそのまま表示され、レスポンスに含まれるデータから、新しいダイアログ６１である画面（４２）が表示される。この場合、サーバ装置１００の同期画面管理部１０４が管理する同期画面１０５の構成は、実施の形態２と同様に、図１２のようなものになる。
【図面の簡単な説明】
【００６８】
【図１】実施の形態１におけるサーバ装置の外観の一例を示す図。
【図２】実施の形態１におけるサーバ装置のハードウェア構成の一例を示す図。
【図３】実施の形態１に係るサーバ装置の構成を示すブロック図。
【図４】実施の形態１におけるクライアント装置の画面構成の一例を示す図。
【図５】図４の画面構成に対応するサーバ装置の同期画面の構成を示す図。
【図６】実施の形態１におけるクライアント装置が送信するリクエストのフォーマットの一例を示す図。
【図７】実施の形態１におけるクライアント装置の画面遷移の一例を示す図。
【図８】図７の画面構成に対応するサーバ装置の同期画面の構成を示す図。
【図９】実施の形態１に係るサーバ装置の動作を示すフローチャート。
【図１０】実施の形態１におけるクライアント装置が表示する初期画面の一例を示す図。
【図１１】実施の形態２におけるクライアント装置の画面遷移の一例を示す図。
【図１２】図１１の画面構成に対応するサーバ装置の同期画面の構成を示す図。
【図１３】実施の形態３におけるクライアント装置の画面遷移の一例を示す図。
【図１４】従来のＷｅｂシステムの構成を示す図。
【符号の説明】
【００６９】
５０  クライアント装置、５１  Ｗｅｂブラウザ、５２  ウィンドウ、５３  フレーム、５４  子フレーム、５５  ログイン画面、５６  ログイン名入力欄、５７  パスワード入力欄、５８  ログイン実行ボタン、５９  親画面、６０  子画面、６１  ダイアログ、１００  サーバ装置、１０１  リクエスト受信部、１０２  リクエスト解析部、１０３  リクエスト画面反映部、１０４  同期画面管理部、１０５  同期画面、１０６  機能部、１０７  レスポンス送信部、１０８  記憶部、１１０  スクリプトファイル、１１１  イメージファイル、１１２  設定ファイル、９０１  ＣＲＴ表示装置、９０２  Ｋ／Ｂ、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2006221393.tif 000003
【図２】
2006221393.tif 000004
【図３】
2006221393.tif 000005
【図４】
2006221393.tif 000006
【図５】
2006221393.tif 000007
【図６】
2006221393.tif 000008
【図７】
2006221393.tif 000009
【図８】
2006221393.tif 000010
【図９】
2006221393.tif 000011
【図１０】
2006221393.tif 000012
【図１１】
2006221393.tif 000013
【図１２】
2006221393.tif 000014
【図１３】
2006221393.tif 000015
【図１４】
2006221393.tif 000016