(57)【特許請求の範囲】
【請求項１】
他のサーバ装置の応答時間を取得する応答時間取得手段と、
この応答時間取得手段により取得された他のサーバ装置の応答時間に基づき、当該他のサーバ装置からの応答を待機する待機時間を設定する待機時間設定手段と、
クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データを他のサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記他のサーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段と、
前記応答受信判断手段による待機時間外に前記他のサーバ装置から実データを受信した場合に、受信した実データを記憶するサーバ実データ記憶手段と、
前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段と、
前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段と、
前記クライアント装置から受信したデータが実データを含まないデータ要求情報である場合において、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されている場合は、当該記憶されている実データを応答データとして直ちにクライアント装置へ送信し、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されてない場合は、実データを含まない応答データを直ちにクライアント装置へ送信する要求応答データ送信手段と、
を備えたことを特徴とするサーバ装置。
【請求項２】
前記応答時間取得手段は、
前記応答受信判断手段により前記待機時間設定手段により設定された待機時間内に前記他のサーバ装置からサーバ応答データが受信されたと判断された場合に、当該サーバ応答データが受信されたときの実際の応答時間を取得する実応答時間取得手段を有し、
前記待機時間設定手段は、前記実応答時間取得手段により取得された他のサーバ装置の実際の応答時間の平均応答時間に基づき、当該他のサーバ装置からの応答を待機する待機時間を設定する、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記待機時間設定手段は、前記実応答時間取得手段により取得された他のサーバ装置の実際の応答時間の平均応答時間および当該応答時間の変動に応じたマージンに基づき、当該他のサーバ装置からの応答を待機する待機時間を設定する、
ことを特徴とする請求項２に記載のサーバ装置。
【請求項４】
クライアント装置からの要求に対して応答するサーバ装置であって、
前記クライアント装置からの要求が入力イベントを含む要求種別か否かを判別する第１判別手段と、
前記第１判別手段で前記入力イベントを含む要求種別であると判別された場合は、他のサーバ装置に対して前記要求を送信し、その要求後の応答を待機する待機時間外に当該要求に対応して生成された生成実データを当該他のサーバ装置から受信した場合に、受信した生成実データを記憶手段に記憶制御する記憶制御手段と、
前記クライアント装置からの要求があった際に、前記記憶手段に前記生成実データが記憶されているか否かを判別する第２判別手段と、
前記第２判別手段で前記生成実データが記憶されていると判別された場合は、当該生成実データを応答データとして前記クライアント装置へ送信し、一方、前記第２判別手段で前記生成実データが記憶されていないと判別され、前記第１判別手段で前記入力イベントを含まない要求種別であると判別された場合は、データ生成が無いことを示す応答データを前記クライアント装置へ送信する要求応答送信手段と、
を備えたことを特徴とするサーバ装置。
【請求項５】
サーバ装置のコンピュータを制御するためのプログラムであって、
他のサーバ装置の応答時間を取得する応答時間取得手段、
この応答時間取得手段により取得された他のサーバ装置の応答時間に基づき、当該他のサーバ装置からの応答を待機する待機時間を設定する待機時間設定手段、
クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データを他のサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記他のサーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段、
前記応答受信判断手段による待機時間外に前記他のサーバ装置から実データを受信した場合に、受信した実データを記憶するサーバ実データ記憶手段、
前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段、
前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段、
前記クライアント装置から受信したデータが実データを含まないデータ要求情報である場合において、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されている場合は、当該記憶されている実データを応答データとして直ちにクライアント装置へ送信し、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されてない場合は、実データを含まない応答データを直ちにクライアント装置へ送信する要求応答データ送信手段、
として機能させるための制御プログラム。
【請求項６】
クライアント装置からの要求に対して応答するサーバ装置のコンピュータを制御するためのプログラムであって、
他のサーバ装置からの応答を待機する待機時間を設定する待機時間設定手段、
前記クライアント装置からの要求が入力イベントを含む要求種別か否かを判別する第１判別手段、
前記第１判別手段で前記入力イベントを含む要求種別であると判別された場合は、他のサーバ装置に対して前記要求を送信し、その要求後に前記待機時間設定手段で設定された待機時間外に当該要求に対応して生成された生成実データを当該他のサーバ装置から受信した場合に、受信した生成実データを記憶手段に記憶制御する記憶制御手段、
前記クライアント装置からの要求があった際に、前記記憶手段に前記生成実データが記憶されているか否かを判別する第２判別手段、
前記第２判別手段で前記生成実データが記憶されていると判別された場合は、当該生成実データを応答データとして前記クライアント装置へ送信し、一方、前記第２判別手段で前記生成実データが記憶されていないと判別され、前記第１判別手段で前記入力イベントを含まない要求種別であると判別された場合は、データ生成が無いことを示す応答データを前記クライアント装置へ送信する要求応答送信手段、
として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ・クライアント・システムにおいて、サーバ装置とクライアント装置との通信経路の途中に介在されるＨＴＴＰ(Hyper Text Transfer Protocol)トンネルサーバ装置およびその制御プログラムに関する。
【背景技術】
【０００２】
サーバ・クライアント・システムにおいて、サーバ装置とクライアント装置とが直接通信するのではなく、当該サーバ装置とクライアント装置との通信経路の途中に介在したＨＴＴＰトンネルサーバ装置を経由して通信する場合がある。
【０００３】
前記ＨＴＴＰトンネルサーバ装置には、例えばクライアント装置からの任意のＴＣＰ(Transmission Control Protocol)データをＨＴＴＰポートのサーバ装置へ転送する場合に、プロトコルを変換する機能を持たせたり、あるいはクライアント装置とサーバ装置との間のリクエストとレスポンスを単に通過転送する場合に、通信を記録する機能を持たせたりしている。
【０００４】
図４は、従来のＨＴＴＰトンネルサーバ装置[Server(HTTP Tunnel)]を使用したサーバ・クライアント・システムにおける動作シーケンスを示す図である。
【０００５】
従来のＨＴＴＰトンネルサーバ装置[Server(HTTP Tunnel)]では、クライアント装置[Client]から何らかのデータが受信された場合、直ちに当該クライアント装置[Client]へ応答を送信する。
【０００６】
すなわち、クライアント装置[Client]から例えばユーザ入力に応じたクライアントデータ[Data(Client)]を受信した場合、当該クライアントデータ[Data(Client)]をサーバ装置[Server(Application)]へ転送するが、その直後、つまり前記クライアントデータ[Data(Client)]に応じてサーバ装置[Server(Application)]により生成されるサーバ応答データ[Data(Server)]が送られて来ない状態で、クライアント装置[Client]へ空の応答データ[Data(NULL)]を送信しなければならない。
【０００７】
このため、クライアント装置[Client]は、前記空データ[Data(NULL)]を受信した後にさらにデータ要求[Request]を前記ＨＴＴＰトンネルサーバ装置[Server(HTTP Tunnel)]へ送信することにより、その間に前記サーバ装置[Server(Application)]により生成されてＨＴＴＰトンネルサーバ装置[Server(HTTP Tunnel)]に受信されたサーバ応答データ[Data(Server)]を、前記データ要求[Request]の応答として受信する。
【０００８】
従って特に、伝送遅延の大きいネットワーク環境下では、クライアント装置[Client]から送信された実データ[Data(Client)]に応じて、サーバ装置[Server(Application)]により生成されたサーバ応答データ[Data(Server)]が前記クライアント装置[Client]に転送されて受信されるまでの間に無駄な時間[Loss]が多く含まれレスポンス性能が悪い。
【０００９】
そこで、クライアント装置からの何らかのデータを受信した場合、その応答データを直ちにクライアント装置へは返さずに待機し、前記サーバ装置により生成されたサーバ応答データが受信されると、直ちに同サーバ応答データをクライアント装置へ転送するＨＴＴＰトンネリングサーバが考えられている（例えば、特許文献１参照。）。
【００１０】
これによれば、ＨＴＴＰトンネリングサーバでは、サーバ装置により生成されたサーバ応答データ[Data(Server)]が受信された際には、クライアント装置からの次のデータ要求[Request]の受信を待つことなしに直ちに同サーバ応答データ[Data(Server)]をクライアント装置へ転送できる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−１５１９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
前記従来のＨＴＴＰトンネリングサーバによれば、クライアント装置からのユーザ入力等による実データ[Data(Client)]に応じてサーバ装置により生成されるサーバ応答データ[Data(Server)]を当該クライアント装置へ転送する必要がある場合に、無駄な時間[Loss]が発生せずレスポンス性能を向上できる。
【００１３】
しかしながら、前記従来のＨＴＴＰトンネリングサーバでは、クライアント装置からのユーザ入力等による実データ[Data(Client)]が受信された場合に限らず、例えば単なるポーリングであるデータ要求[Request]が受信された場合にも、その応答データを返さずに待機処理へ移行する。
【００１４】
このため、クライアント装置としては、単なるポーリングであるデータ要求[Request]を送信しただけであるにも関わらず、サーバ装置から動画更新等のための何らかのサーバデータ[Data(Server)]が送信されてＨＴＴＰトンネリングサーバにおける待機処理が解除され、当該サーバデータ[Data(Server)]が受信されるまでは、次のポーリングやユーザ入力等に応じたデータを送信することができなくなる。
【００１５】
よって、クライアント装置から送信された実データに応じて、サーバ装置により速やか且つ正常にサーバ応答データが生成されて送信される場合以外は、前記ＨＴＴＰトンネリングサーバにおける待機処理が、クライアント・サーバ間のレスポンス効率を逆に悪化させてしまう問題がある。
【００１６】
本発明は、このような課題に鑑みなされたもので、レスポンス性能を大幅に向上することが可能になるサーバ装置およびその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
請求項１に記載のサーバ装置は、他のサーバ装置の応答時間を取得する応答時間取得手段と、この応答時間取得手段により取得された他のサーバ装置の応答時間に基づき、当該他のサーバ装置からの応答を待機する待機時間を設定する待機時間設定手段と、クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データを他のサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記他のサーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段と、前記応答受信判断手段による待機時間外に前記他のサーバ装置から実データを受信した場合に、受信した実データを記憶するサーバ実データ記憶手段と、前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段と、前記応答受信判断手段により前記待機時間内に前記他のサーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段と、前記クライアント装置から受信したデータが実データを含まないデータ要求情報である場合において、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されている場合は、当該記憶されている実データを応答データとして直ちにクライアント装置へ送信し、前記サーバ実データ記憶手段により前記他のサーバ装置から受信された実データが記憶されてない場合は、実データを含まない応答データを直ちにクライアント装置へ送信する要求応答データ送信手段と、を備えたことを特徴としている。
【００２０】
請求項４は、クライアント装置からの要求に対して応答するサーバ装置であって、前記クライアント装置からの要求が入力イベントを含む要求種別か否かを判別する第１判別手段と、前記第１判別手段で前記入力イベントを含む要求種別であると判別された場合は、他のサーバ装置に対して前記要求を送信し、その要求後の応答を待機する待機時間外に当該要求に対応して生成された生成実データを当該他のサーバ装置から受信した場合に、受信した生成実データを記憶手段に記憶制御する記憶制御手段と、前記クライアント装置からの要求があった際に、前記記憶手段に前記生成実データが記憶されているか否かを判別する第２判別手段と、前記第２判別手段で前記生成実データが記憶されていると判別された場合は、当該生成実データを応答データとして前記クライアント装置へ送信し、一方、前記第２判別手段で前記生成実データが記憶されていないと判別され、前記第１判別手段で前記入力イベントを含まない要求種別であると判別された場合は、データ生成が無いことを示す応答データを前記クライアント装置へ送信する要求応答送信手段と、を備えたことを特徴としている。
【発明の効果】
【００２２】
本発明によれば、レスポンス性能を大幅に向上することが可能になるサーバ装置およびその制御プログラムを提供できる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係るＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント（Thin Client）・システムの構成を示すブロック図。
【図２】前記サーバ・クライアント（Thin Client）・システムにおけるクライアント装置３０でのクライアント処理とＨＴＴＰトンネルサーバ装置１０でのトンネルサーバ処理とを関係付けて示すフローチャート。
【図３】前記ＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント・システムにおける動作シーケンスの一部を示す図。
【図４】従来のＨＴＴＰトンネルサーバ装置[Server(HTTP Tunnel)]を使用したサーバ・クライアント・システムにおける動作シーケンスを示す図。
【発明を実施するための形態】
【００２４】
以下図面により本発明の実施の形態について説明する。
【００２５】
図１は、本発明の実施形態に係るＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント（Thin Client）・システムの構成を示すブロック図である。
【００２６】
このサーバ・クライアント・システム(Server Based Computing System)は、サーバ装置２０からＨＴＴＰトンネルサーバ装置１０を介在して、無線または有線の通信ネットワークＮ上にある複数のクライアント装置(Thin Client）３０…が接続されて構成される。
【００２７】
先ず、前記クライアント装置(Thin Client）３０は、携帯電話等の端末装置からなり、制御部（コンピュータ）であるＣＰＵ(Central Processing Unit)３１を備えている。
【００２８】
このＣＰＵ３１には、バス３２を介して、フラッシュＲＯＭやＲＡＭからなる記憶部３３、キーボードなどの入力部３４、ＬＣＤ(Liquid Crystal Display)からなる表示部３５、通信制御部３６などが接続される。
【００２９】
ＣＰＵ３１は、記憶部３３に予め記憶された端末制御プログラムに従い、入力部３４により入力された信号、あるいは通信制御部３６を介して前記ＨＴＴＰトンネルサーバ装置１０から受信された信号に応じて各部の動作を制御する。
【００３０】
記憶部３３には、送信バッファ３３ａ、受信バッファ３３ｂ、フレームバッファ３３ｃなどが確保される。
【００３１】
送信バッファ３３ａには、入力部３４のユーザ操作に応じて入力されたキー入力データなどが一時記憶され、この送信バッファ３３ａに記憶されたデータが前記通信制御部３６からＨＴＴＰトンネルサーバ装置１０へ送信される。
【００３２】
受信バッファ３３ｂには、通信制御部３６を介して前記ＨＴＴＰトンネルサーバ装置１０から受信された表示用の画面データなどが記憶される。
【００３３】
フレームバッファ３３ｃには、前記受信バッファ３３ｂに表示用の画面データが記憶された場合に、当該画面データがビットマップデータに展開されて記憶され、このフレームバッファ３３ｃに記憶された画面データが前記表示部３５に出力されて表示される。
【００３４】
次に、前記ＨＴＴＰトンネルサーバ装置１０は、制御部（コンピュータ）であるＣＰＵ１１を備えている。
【００３５】
このＣＰＵ３１には、バス１２を介して、ＨＤＤ(Hard Disk Drive)やフラッシュＲＯＭ，ＲＡＭからなる記憶部１３、キーボードなどの入力部１４、ＬＣＤ(Liquid Crystal Display)からなる表示部１５、通信制御部１６、ＣＤ−ＲＯＭやメモリカードなどの外部記憶媒体１７に記憶された種々のデータを読み込む記憶媒体読み込み部１８などが接続される。
【００３６】
ＣＰＵ１１は、記憶部１３に予め記憶されたトンネルサーバ制御プログラム、あるいは外部記憶媒体１７から読み込まれたトンネルサーバ制御プログラム、あるいは通信ネットワークＮ上の他のサーバ装置（プログラムサーバ）から通信制御部１６を介してダウンロードされたトンネルサーバ制御プログラムに従い、通信制御部１６を介して前記クライアント装置３０やサーバ装置２０から受信された信号、あるいは入力部１４により入力された信号に応じて各部の動作を制御する。
【００３７】
記憶部１３には、受信バッファ１３ａ、送信バッファ１３ｂ、実Wait時間[αn]メモリ１３ｃ、総累積Wait時間[Σαi:i=1〜n]メモリ１３ｄ、所定回累積Wait時間[Σαi:i=n-9〜n]メモリ１３ｅ、マージン係数[β]メモリ１３ｆ、第１最大Wait時間[(Σαi/n)×β:i=1〜n]メモリ１３ｇ、第２最大Wait時間[(Σαi/10)×β:i=n-9〜n]メモリ１３ｈなどが確保される。
【００３８】
受信バッファ１３ａには、前記クライアント装置３０から通信制御部１６に受信されたユーザ操作に応じた入力データや単なるポーリングなどのデータ要求が記憶され、この受信バッファ１３ａに記憶された実データは、前記サーバ装置２０へ送信される。
【００３９】
送信バッファ１３ｂには、前記サーバ装置２０から通信制御部１６に受信されたサーバ応答データや画面更新データなどが一時記憶され、この送信バッファ１３ｂに記憶された実データは、前記通信制御部３６からクライアント装置３０へ送信される。
【００４０】
実Wait時間[αn]メモリ１３ｃには、前記受信バッファ１３ａに記憶されたクライアント装置３０からの実データをサーバ装置２０へ送信してから当該サーバ装置２０のアプリケーションプログラム２１に従い生成された表示用画面データなどのサーバ応答データが実際に受信されるまでの応答時間が、実Wait時間[αn]として記憶される。
【００４１】
総累積Wait時間[Σαi:i=1〜n]メモリ１３ｄには、前記クライアント装置３０とサーバ装置２０との接続が確立されてから現在までの前記サーバ応答データの受信に伴う前記実Wait時間[αn]の合計が、総累積Wait時間[Σαi:i=1〜n]として記憶される。
【００４２】
所定回累積Wait時間[Σαi:i=n-9〜n]メモリ１３ｅには、前記サーバ応答データの受信に伴う前記実Wait時間[αn]の直近１０回分の合計が、所定回累積Wait時間[Σαi:i=n-9〜n]として記憶される。
【００４３】
マージン係数[β]メモリ１３ｆには、前記受信バッファ１３ａに記憶されたクライアント装置３０からの実データをサーバ装置２０へ送信した際に、当該実データに応じたサーバ応答データがサーバ装置２０により生成されて受信されるまで前記クライアント装置３０への応答をせずに待機するための最大Wait時間を設定するにあたり、サーバ応答時間の変動に応じた許容値を含ませるためのマージン係数[β1][β2]が記憶される。
【００４４】
このマージン係数[β1]は、サーバ装置２０からの応答の遅延変動が少ない場合の前記最大Wait時間を設定するのに使用され、例えば[β1=1.2]とする。
【００４５】
また、マージン係数[β2]は、サーバ装置２０からの応答の遅延変動が大きい場合の前記最大Wait時間を設定するのに使用され、例えば[β2=1.5]とする。
【００４６】
第１最大Wait時間[(Σαi/n)×β1:i=1〜n]メモリ１３ｇには、サーバ装置２０からの応答の遅延変動が少ない場合において、前記クライアント装置３０への応答をせずに待機するための第１最大Wait時間[(Σαi/n)×β1:i=1〜n]が、前記総累積Wait時間[Σαi:i=1〜n]メモリ１３ｄに記憶された総累積Wait時間[Σαi:i=1〜n]、前記サーバ装置２０からサーバ応答データが受信された回数[n]、前記マージン係数[β]メモリ１３ｅに記憶されたマージン係数[β1]に基づき計算され記憶される。
【００４７】
第２最大Wait時間[(Σαi/n)×β2:i=n-9〜n]メモリ１３ｈには、サーバ装置２０からの応答の遅延変動が少ない場合において、前記クライアント装置３０への応答をせずに待機するための第２最大Wait時間[(Σαi/10)×β2:i=n-9〜n]が、前記所定回累積Wait時間[Σαi:i=n-9〜n]メモリ１３ｅに記憶された所定回累積Wait時間[Σαi:i=n-9〜n]、前記マージン係数[β]メモリ１３ｅに記憶されたマージン係数[β2]に基づき計算され記憶される。
【００４８】
サーバ装置２０内部のブロック構成は、前記ＨＴＴＰトンネルサーバ装置１０のブロック構成と略同様であるが、記憶部に記憶される各種のバッファやメモリの構成は異なる。このサーバ装置２０の記憶部には、予め記憶されるサーバ制御プログラム以外に、前記クライアント装置３０からのユーザ入力などに伴う実データに応じて起動・実行される種々のアプリケーションプログラム２１が記憶される。
【００４９】
なお、前記ＨＴＴＰトンネルサーバ装置１０は、前記サーバ装置２０と一体に構成してもよい。
【００５０】
すなわち、このサーバ・クライアント・システム（ＳＢＣシステム）のクライアント装置(Thin Client)３０は、入力部３４のユーザ操作に応じた入力イベントデータをサーバ装置２０へ送信する機能、当該送信した入力イベントデータに応じてサーバ装置２０により実行されるアプリケーションプログラム２１に従い生成された表示用の画面データをサーバ応答データとして受信する機能、当該受信した表示用の画面データを表示部３４に表示させる機能、サーバ装置２０でのアプリケーションプログラム２１の実行に伴い自動更新された表示用の画面データを定期的にポーリングして受信するためのデータ要求を送信する機能を基本機能として有する。
【００５１】
また、サーバ装置２０は、クライアント装置３０から送信された入力イベントデータに応じたアプリケーションプログラム２１を実行し、当該プログラムの実行内容に対応した表示用の画面データを生成する機能、生成された表示用の画面データをサーバ応答データとしてクライアント装置３０へ送信する機能、前記プログラムの実行内容に対応してその表示用の画面データが自動更新された場合に、更新された表示用の画面データを随時送信する機能を基本機能として有する。
【００５２】
そして、ＨＴＴＰトンネルサーバ装置１０は、以下の基本機能(a)〜(f)を有する。
【００５３】
(a)クライアント装置３０からサーバ装置２０宛の入力イベントデータが受信された際に、サーバ装置２０からクライアント装置３０宛の表示用の画面データが受信され保存されている場合には、当該画面データをクライアント装置３０へ直ちに送信（転送）し、前記受信された入力イベントデータをサーバ装置２０へ送信（転送）し、待機時間（第１or第２最大Wait時間）を設定して前記サーバ装置３０からの前記入力イベントデータに応じた表示用画面データの受信を待機する機能。
【００５４】
(b)待機時間（第１or第２最大Wait時間）中にサーバ装置２０から前記入力イベントデータに応じた表示用画面データが受信された場合には、当該画面データをクライアント装置３０へ送信（転送）する機能。
【００５５】
(c)待機時間（第１or第２最大Wait時間）中にサーバ装置２０から前記入力イベントデータに応じた表示用画面データが受信されない場合には、空の応答データをクライアント装置３０へ送信する機能。
【００５６】
(d)クライアント装置３０からサーバ装置２０宛の入力イベントデータが受信された際に、サーバ装置２０からクライアント装置３０宛のデータが受信されてない場合には、前記受信された入力イベントデータをサーバ装置２０へ送信（転送）し、待機時間（第１or第２最大Wait時間）を設定して前記サーバ装置３０からの前記入力イベントデータに応じた表示用画面データの受信を待機する機能。
【００５７】
(e)クライアント装置３０からサーバ装置２０宛のデータ要求が受信された際に、サーバ装置２０からクライアント装置３０宛の表示用の画面データが受信され保存されている場合には、当該画面データを直ちにクライアント装置３０へ送信（転送）する機能。
【００５８】
(f)クライアント装置３０からサーバ装置２０宛のデータ要求が受信された際に、サーバ装置２０からクライアント装置３０宛の表示用の画面データが受信されてない場合には、空の応答データを直ちにクライアント装置３０へ送信する機能。
【００５９】
次に、前記構成のＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント（Thin Client）・システムの動作について説明する。
【００６０】
図２は、前記サーバ・クライアント（Thin Client）・システムにおけるクライアント装置３０でのクライアント処理とＨＴＴＰトンネルサーバ装置１０でのトンネルサーバ処理とを関係付けて示すフローチャートである。
【００６１】
図３は、前記ＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント・システムにおける動作シーケンスの一部を示す図である。
【００６２】
クライアント装置３０とサーバ装置２０との接続が確立された状態で、クライアント装置３０において、入力部３４がユーザにより操作されると（ステップＡ１（Ｙｅｓ））、当該ユーザ操作に伴うキーやマウスからの入力イベントデータが送信バッファ３３ａに保存される（ステップＡ２）。
【００６３】
そして、前記送信バッファ３３ａに入力イベントデータ（送信データ）が保存されたと判断されると（ステップＡ３（Ｙｅｓ））、当該入力イベントデータ[Data(Client)]が通信制御部３６を介してＨＴＴＰトンネルサーバ装置１０を前段にしたサーバ装置２０宛てに送信され（ステップＡ４）、当該サーバ装置１０からのデータ受信待機状態になる（ステップＡ６）。
【００６４】
ＨＴＴＰトンネルサーバ装置１０では、先ず、サーバ装置２０またはクライアント装置３０からのデータ受信待機状態になり（ステップＢ１）、サーバ装置２０からのデータ受信があるか否か判断される（ステップＢ２）。
【００６５】
ここで、サーバ装置２０からのデータ受信がないと判断されると（ステップＢ２（Ｎｏ））、前記クライアント装置３０からのデータ受信があるか否か判断される（ステップＢ４）。
【００６６】
ここで、前記クライアント装置３０からユーザ操作に応じて送信された入力イベントデータ[Data(Client)]が受信されたと判断されると、当該入力イベントデータは受信バッファ１３ａに記憶される（ステップＢ４（Ｙｅｓ））。
【００６７】
すると、送信バッファ１３ｂにおいて、サーバ装置２０からの受信データが記憶されているか否か判断される（ステップＢ５）。
【００６８】
ここで、前記送信バッファ１３ｂには、サーバ装置２０からの受信データが記憶されてないと判断されると（ステップＢ５（Ｎｏ））、前記受信バッファ１３ａに前記クライアント装置３０からの入力イベントデータ（実データ）[Data(Client)]が記憶されているか否か判断される（ステップＢ６）。
【００６９】
そして、前記受信バッファ１３ａには、前記クライアント装置３０からの入力イベントデータ（実データ）が記憶されていると判断されると（ステップＢ６（Ｙｅｓ））、当該入力イベントデータ[Data(Client)]がクライアント装置２０へ送信（転送）される（ステップＢ７）。
【００７０】
すると、前記クライアント装置３０からの入力イベントデータに応じてサーバ装置２０により生成される表示用画面データ（応答データ）の受信を待機するための最大Wait時間（初期値：例えば1000ms）が設定され、この最大Wait時間の１０分の１時間毎に前記サーバ装置２０からの応答データが受信されたか否か判断される（ステップＢ８〜Ｂ１０（Ｎｏ）→Ｂ８）。
【００７１】
この最大Wait時間を設定したサーバ装置２０からのデータ受信待機状態[Wait]において、前記クライアント装置３０からの入力イベントデータに応じてサーバ装置２０のアプリケーションプログラム２１により生成された表示用の画面データ[Data(Server)]が当該サーバ装置２０から受信され送信バッファ１３ｂに記憶されたと判断されると（ステップＢ９（Ｙｅｓ））、前記ステップＢ７においてサーバ装置２０へ入力イベントデータを送信してから今回の表示用画面データが受信されるまでの実Wait時間[αn]（実応答時間）が取得され、実Wait時間メモリ１３ｃに記憶される（ステップＢ１１）。
【００７２】
すると、前記実Wait時間メモリ１３ｃに記憶された今回の実Wait時間[αn]が、総累積Wait時間メモリ１３ｄに記憶された今回までの総累積Wait時間[Σαi:i=1〜n]をその回数ｎで除算した平均Wait時間[Σαi/n:i=1〜n]以上か否か判断される（ステップＢ１２）。
【００７３】
ここで、今回の実Wait時間[αn]が、平均Wait時間[Σαi/n:i=1〜n](初回は最大Wait時間1000ms)未満であると判断された場合は（ステップＢ１２（Ｎｏ））、前記ステップＢ８での次回待機用として第１最大Wait時間[(Σαi/n)×β1:i=1〜n]が計算され、第１最大Wait時間メモリ１３ｇに記憶される（ステップＢ１３）。
【００７４】
また、前記最大Wait時間を設定した２回目以降のサーバ装置２０からのデータ受信待機状態において（ステップＢ８〜Ｂ１０（Ｎｏ）→Ｂ８）、サーバ装置２０から前記入力イベントデータに応じた表示用の画面データが受信された際に（ステップＢ９（Ｙｅｓ））、今回の実Wait時間[αn]が、平均Wait時間[Σαi/n:i=1〜n]以上であると判断された場合は（ステップＢ１２（Ｙｅｓ））、前記ステップＢ８での次回待機用として第２最大Wait時間[(Σαi/10)×β2:i=n-9〜n]が計算され、第２最大Wait時間メモリ１３ｈに記憶される（ステップＢ１４）。
【００７５】
そして、前記サーバ装置２０から受信されて送信バッファ１３ｂに記憶された表示用の画面データ[Data(Server)]がサーバ応答データとして前記クライアント装置３０へ送信（転送）される（ステップＢ１５）。
【００７６】
クライアント装置３０において、前記ＨＴＴＰトンネルサーバ装置１０により転送された表示用の画面データ[Data(Server)]が受信され、受信バッファ３３ｂに記憶されると（ステップＡ６，Ａ７（Ｙｅｓ））、当該画面データはフレームバッファ３３ｃに描画され、表示部３５に表示される（ステップＡ８）。
【００７７】
これにより、クライアント装置３０のユーザ操作に伴う入力イベントデータ[Data(Client)]に応じて、サーバ装置２０により実行されるアプリケーションプログラム２１に従い生成された表示用の画面データ[Data(Server)]が、同クライアント装置３０に受信されて表示される。
【００７８】
一方、前記ＨＴＴＰトンネルサーバ装置１０における最大Wait時間を設定したサーバ装置２０からのデータ受信待機状態において（ステップＢ８〜Ｂ１０（Ｎｏ）→Ｂ８）、当該サーバ装置２０からの表示用の画面データが受信されることなく（ステップＢ９（Ｎｏ））、前記最大Wait時間を経過したと判断されると（ステップＢ１０（Ｙｅｓ））、クライアント装置２０へ空の応答データが送信される（ステップＢ１６）。
【００７９】
クライアント装置３０において、前記ＨＴＴＰトンネルサーバ装置１０により送信された空の応答データが受信されると（ステップＡ６，Ａ７（Ｎｏ））、次のユーザ操作に応じた入力イベントデータの送信待機状態（ステップＡ１）、または定期的なポーリングとしてのデータ要求の送信処理に移行される（ステップＡ１（Ｎｏ）→Ａ３（Ｎｏ）→Ａ５）。
【００８０】
したがって、このケースの場合、前記ＨＴＴＰトンネルサーバ装置１０は、クライアント装置３０からの入力イベントデータ[Data(Client)]の受信直後に同クライアント装置３０へ応答データを送信することなく、最大Wait時間を設定して待機し[Wait]、その待機中にサーバ装置２０から受信された表示用の画面データ[Data(Server)]を応答データとして同クライアント装置３０へ転送する。よって、クライアント装置３０は、入力イベントデータの送信後に改めてデータ要求を送信する必要なく、１セッションでサーバ装置２０から表示用の画面データを受信して表示できる。
【００８１】
そればかりでなく、前記サーバ装置２０により生成される表示用画面データ（応答データ）の受信を待機するための最大Wait時間は、当該待機処理の繰り返しに従い、第１最大Wait時間[(Σαi/n)×β1:i=1〜n]の場合、サーバ装置２０からの応答の遅延変動が小さいときに効果的な総累積Wait時間[Σαi:i=1〜n]の平均Wait時間に収束するように設定される。また、第２最大Wait時間[(Σαi/10)×β2:i=n-9〜n]の場合、サーバ装置２０からの応答の遅延変動が大きいときに効果的な直近所定回の累積Wait時間[Σαi:i=n-9〜n]の平均Wait時間に収束するように設定される。よって、この待機処理に伴い設定される待機時間（最大Wait時間）と実際のサーバ装置２０からの応答時間（実Wait時間[αn]）との差分として発生する無駄な待機時間を、応答時間の変動に関わらず極力少なくすることができる。
【００８２】
また、前記ＨＴＴＰトンネルサーバ装置１０は、前記最大Wait時間を設定した待機中にサーバ装置２０からの表示用画面データ（応答データ）が受信されない場合は、直ちに空の応答データをクライアント装置３０へ送信する。よって、クライアント装置３０では、データ受信の待機状態が無駄に長引いてしまうことなく、速やかに次のユーザ操作に応じた入力イベントデータの送信待機状態に移行できる。
【００８３】
一方、前記最大Wait時間を設定した待機中にサーバ装置２０からの表示用画面データ（応答データ）が受信されず、クライアント装置３０へ空の応答データが送信された後、同サーバ装置２０から表示用画面データが受信された場合、またはサーバ装置２０で実行中のアプリケーションプログラム２１に従い自動更新された表示用画面データが受信された場合、当該受信された表示用画面データは送信バッファ１３ｂに保存される（ステップＢ１〜Ｂ３）。
【００８４】
クライアント装置３０から定期的なポーリングとして送信されたデータ要求が（ステップＡ５）、ＨＴＴＰトンネルサーバ装置１０に受信された際に（ステップＢ４（Ｙｅｓ））、その送信バッファ１３ｂに表示用画面データ（実データ）が記憶されている場合は（ステップＢ５（Ｙｅｓ））、前記待機処理（ステップＢ８〜Ｂ１０）に移行されることなく、前記表示用画面データは直ちに応答データとしてクライアント装置３０へ送信される（ステップＢ１７）。
【００８５】
そして、クライアント装置３０に受信された前記表示用画面データは、フレームバッファ３３ｃに描画されて表示部３５に表示される（ステップＡ６〜Ａ８）。
【００８６】
よって、このケースの場合も、クライアント装置３０は、１セッションで速やかにサーバ装置２０から表示用の画面データを受信して表示できる。
【００８７】
また、クライアント装置３０から定期的なポーリングとして送信されたデータ要求が（ステップＡ５）、ＨＴＴＰトンネルサーバ装置１０に受信された際に（ステップＢ４（Ｙｅｓ））、その送信バッファ１３ｂに表示用画面データ（実データ）が記憶されてない場合は（ステップＢ５（Ｎｏ））、空の応答データが直ちにクライアント装置３０へ送信される（ステップＢ６（Ｎｏ）→Ｂ１８（Ｎｏ）→Ｂ１９）。
【００８８】
よって、このケースの場合も、クライアント装置３０では、速やかに次のユーザ操作に応じた入力イベントデータの送信待機状態に移行できる。
【００８９】
したがって、前記構成のＨＴＴＰトンネルサーバ装置１０を使用したサーバ・クライアント（Thin Client）・システムによれば、クライアント・サーバ間のレスポンス性能を大幅に向上できる。
【００９０】
なお、前記構成のＨＴＴＰトンネルサーバ装置１０を使用するサーバ・クライアント・システムは、伝送遅延が大きくレスポンス性能が悪化しがちな無線通信のシンクライアント端末を用いた、所謂、サーバベース・コンピューティング・システム（ＳＢＣシステム）において特に有効であるが、各種のアプリケーションを単独でも実行可能な通常の携帯端末を用いたサーバ・クライアント・システムにおいても、クライアント・サーバ間のレスポンス性能を向上するのに有効であるのは勿論である。
【００９１】
前記実施形態において記載したＨＴＴＰトンネルサーバ装置１０による処理の手法、すなわち、図２のフローチャートに示すトンネルサーバ処理の手法は、コンピュータに実行させることができるプログラムとして、メモリカード（ＲＯＭカード、ＲＡＭカード等）、磁気ディスク（フロッピディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の外部記憶媒体１７に格納して配布することができる。そして、ＨＴＴＰトンネルサーバ装置１０のコンピュータ（ＣＰＵ１１）は、この外部記憶媒体１７に記憶されたプログラムを記憶装置（１３）に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明したＨＴＴＰトンネル機能を実現し、前述した手法による同様の処理を実行することができる。
【００９２】
また、前記手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク（Ｎ）上を伝送させることができ、この通信ネットワーク（Ｎ）に接続されたコンピュータ装置（プログラムサーバ）から前記のプログラムデータを取り込んで記憶装置（１３）に記憶させ、前述したＨＴＴＰトンネル機能を実現することもできる。
【００９３】
なお、本願発明は、前記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【００９４】
１０  …ＨＴＴＰトンネルサーバ装置
１１  …ＣＰＵ
１２  …バス
１３  …記憶部
１３ａ…受信バッファ
１３ｂ…送信バッファ
１３ｃ…実Wait時間[αn]メモリ
１３ｄ…総累積Wait時間[Σαi:i=1〜n]メモリ
１３ｅ…所定回累積Wait時間[Σαi:i=n-9〜n]メモリ
１３ｆ…マージン係数[β]メモリ
１３ｇ…第１最大Wait時間[(Σαi/n)×β:i=1〜n]メモリ
１３ｈ…第２最大Wait時間[(Σαi/10)×β:i=n-9〜n]メモリ
１６  …通信制御部
１７  …外部記憶媒体
１８  …記憶媒体読み込み部
２０  …サーバ装置
２１  …アプリケーションプログラム
３０  …クライアント装置(Thin Client)
３３ｃ…フレームバッファ
３４  …入力部
３５  …表示部
Ｎ    …通信ネットワーク
【図１】
0005544903.tif 000002
【図２】
0005544903.tif 000003
【図３】
0005544903.tif 000004
【図４】
0005544903.tif 000005