説明

HTTPトンネルサーバ装置およびその制御プログラム

【課題】HTTPトンネルを利用したクライアント・サーバ間のレスポンス性能を大幅に向上することが可能なHTTPトンネルサーバ装置及びその制御プログラムを提供する。
【解決手段】クライアントからの入力データの受信直後に応答データを送信せず、最大Wait時間を設定して待機し、待機中にサーバから受信された表示用画面データを応答データとしてクライアントへ転送する。クライアントは入力データの送信後に改めてデータ要求を送信する必要なく、1セッションでサーバからの表示用画面データを受信表示できる。また、前記待機中にサーバから表示用画面データが受信されない場合、及び定期ポーリングであるデータ要求が受信された際にサーバから表示用画面データが受信されてない場合も、直ちに空の応答データをクライアントへ送信する。クライアントではデータ受信の待機状態が無駄に長引かず、速やかに次の入力データの送信待機状態に移行できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ・クライアント・システムにおいて、サーバ装置とクライアント装置との通信経路の途中に介在されるHTTP(Hyper Text Transfer Protocol)トンネルサーバ装置およびその制御プログラムに関する。
【背景技術】
【0002】
サーバ・クライアント・システムにおいて、サーバ装置とクライアント装置とが直接通信するのではなく、当該サーバ装置とクライアント装置との通信経路の途中に介在したHTTPトンネルサーバ装置を経由して通信する場合がある。
【0003】
前記HTTPトンネルサーバ装置には、例えばクライアント装置からの任意のTCP(Transmission Control Protocol)データをHTTPポートのサーバ装置へ転送する場合に、プロトコルを変換する機能を持たせたり、あるいはクライアント装置とサーバ装置との間のリクエストとレスポンスを単に通過転送する場合に、通信を記録する機能を持たせたりしている。
【0004】
図4は、従来のHTTPトンネルサーバ装置[Server(HTTP Tunnel)]を使用したサーバ・クライアント・システムにおける動作シーケンスを示す図である。
【0005】
従来のHTTPトンネルサーバ装置[Server(HTTP Tunnel)]では、クライアント装置[Client]から何らかのデータが受信された場合、直ちに当該クライアント装置[Client]へ応答を送信する。
【0006】
すなわち、クライアント装置[Client]から例えばユーザ入力に応じたクライアントデータ[Data(Client)]を受信した場合、当該クライアントデータ[Data(Client)]をサーバ装置[Server(Application)]へ転送するが、その直後、つまり前記クライアントデータ[Data(Client)]に応じてサーバ装置[Server(Application)]により生成されるサーバ応答データ[Data(Server)]が送られて来ない状態で、クライアント装置[Client]へ空の応答データ[Data(NULL)]を送信しなければならない。
【0007】
このため、クライアント装置[Client]は、前記空データ[Data(NULL)]を受信した後にさらにデータ要求[Request]を前記HTTPトンネルサーバ装置[Server(HTTP Tunnel)]へ送信することにより、その間に前記サーバ装置[Server(Application)]により生成されてHTTPトンネルサーバ装置[Server(HTTP Tunnel)]に受信されたサーバ応答データ[Data(Server)]を、前記データ要求[Request]の応答として受信する。
【0008】
従って特に、伝送遅延の大きいネットワーク環境下では、クライアント装置[Client]から送信された実データ[Data(Client)]に応じて、サーバ装置[Server(Application)]により生成されたサーバ応答データ[Data(Server)]が前記クライアント装置[Client]に転送されて受信されるまでの間に無駄な時間[Loss]が多く含まれレスポンス性能が悪い。
【0009】
そこで、クライアント装置からの何らかのデータを受信した場合、その応答データを直ちにクライアント装置へは返さずに待機し、前記サーバ装置により生成されたサーバ応答データが受信されると、直ちに同サーバ応答データをクライアント装置へ転送するHTTPトンネリングサーバが考えられている(例えば、特許文献1参照。)。
【0010】
これによれば、HTTPトンネリングサーバでは、サーバ装置により生成されたサーバ応答データ[Data(Server)]が受信された際には、クライアント装置からの次のデータ要求[Request]の受信を待つことなしに直ちに同サーバ応答データ[Data(Server)]をクライアント装置へ転送できる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2004−151964号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
前記従来のHTTPトンネリングサーバによれば、クライアント装置からのユーザ入力等による実データ[Data(Client)]に応じてサーバ装置により生成されるサーバ応答データ[Data(Server)]を当該クライアント装置へ転送する必要がある場合に、無駄な時間[Loss]が発生せずレスポンス性能を向上できる。
【0013】
しかしながら、前記従来のHTTPトンネリングサーバでは、クライアント装置からのユーザ入力等による実データ[Data(Client)]が受信された場合に限らず、例えば単なるポーリングであるデータ要求[Request]が受信された場合にも、その応答データを返さずに待機処理へ移行する。
【0014】
このため、クライアント装置としては、単なるポーリングであるデータ要求[Request]を送信しただけであるにも関わらず、サーバ装置から動画更新等のための何らかのサーバデータ[Data(Server)]が送信されてHTTPトンネリングサーバにおける待機処理が解除され、当該サーバデータ[Data(Server)]が受信されるまでは、次のポーリングやユーザ入力等に応じたデータを送信することができなくなる。
【0015】
よって、クライアント装置から送信された実データに応じて、サーバ装置により速やか且つ正常にサーバ応答データが生成されて送信される場合以外は、前記HTTPトンネリングサーバにおける待機処理が、クライアント・サーバ間のレスポンス効率を逆に悪化させてしまう問題がある。
【0016】
本発明は、このような課題に鑑みなされたもので、HTTPトンネルを利用したクライアント・サーバ間のレスポンス性能を大幅に向上することが可能になるHTTPトンネルサーバ装置およびその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
請求項1に記載のHTTPトンネルサーバ装置は、サーバ装置の応答時間を取得する応答時間取得手段と、この応答時間取得手段により取得されたサーバ装置の応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する待機時間設定手段と、クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データをサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段と、この応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段と、前記応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段と、前記クライアント装置からデータを受信した際に、受信したデータが実データを含まないデータ要求情報である場合は、当該データ要求に応じた応答データを直ちにクライアント装置へ送信する要求応答データ送信手段と、を備えたことを特徴としている。
【0018】
請求項2に記載のHTTPトンネルサーバ装置は、前記請求項1に記載のHTTPトンネルサーバ装置において、前記応答受信判断手段による待機時間外に前記サーバ装置から実データを受信した場合に、受信した実データを記憶するサーバ実データ記憶手段を備え、前記要求応答データ送信手段は、前記クライアント装置から受信したデータが実データを含まないデータ要求情報である場合において、前記サーバ実データ記憶手段により前記サーバ装置から受信された実データが記憶されている場合は、当該記憶されている実データを応答データとして直ちにクライアント装置へ送信し、前記サーバ実データ記憶手段により前記サーバ装置から受信された実データが記憶されてない場合は、実データを含まない応答データを直ちにクライアント装置へ送信する、ことを特徴としている。
【0019】
請求項3に記載のHTTPトンネルサーバ装置は、前記請求項1または請求項2に記載のHTTPトンネルサーバ装置において、前記応答時間取得手段は、前記応答受信判断手段により前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合に、当該サーバ応答データが受信されたときの実際の応答時間を取得する実応答時間取得手段を有し、前記待機時間設定手段は、前記実応答時間取得手段により取得されたサーバ装置の実際の応答時間の平均応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する、ことを特徴としている。
【0020】
請求項4に記載のHTTPトンネルサーバ装置は、前記請求項3に記載のHTTPトンネルサーバ装置において、前記待機時間設定手段は、前記実応答時間取得手段により取得されたサーバ装置の実際の応答時間の平均応答時間および当該応答時間の変動に応じたマージンに基づき、当該サーバ装置からの応答を待機する待機時間を設定する、ことを特徴としている。
【0021】
請求項5に記載の制御プログラムは、HTTPトンネルサーバ装置のコンピュータを制御するためのプログラムであって、サーバ装置の応答時間を取得する応答時間取得手段、この応答時間取得手段により取得されたサーバ装置の応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する待機時間設定手段、クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データをサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段、この応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段、前記応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段、前記クライアント装置からデータを受信した際に、受信したデータが実データを含まないデータ要求情報である場合は、当該データ要求に応じた応答データを直ちにクライアント装置へ送信する要求応答データ送信手段、として機能させることを特徴としている。
【発明の効果】
【0022】
本発明によれば、HTTPトンネルを利用したクライアント・サーバ間のレスポンス性能を大幅に向上することが可能になるHTTPトンネルサーバ装置およびその制御プログラムを提供できる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施形態に係るHTTPトンネルサーバ装置10を使用したサーバ・クライアント(Thin Client)・システムの構成を示すブロック図。
【図2】前記サーバ・クライアント(Thin Client)・システムにおけるクライアント装置30でのクライアント処理とHTTPトンネルサーバ装置10でのトンネルサーバ処理とを関係付けて示すフローチャート。
【図3】前記HTTPトンネルサーバ装置10を使用したサーバ・クライアント・システムにおける動作シーケンスの一部を示す図。
【図4】従来のHTTPトンネルサーバ装置[Server(HTTP Tunnel)]を使用したサーバ・クライアント・システムにおける動作シーケンスを示す図。
【発明を実施するための形態】
【0024】
以下図面により本発明の実施の形態について説明する。
【0025】
図1は、本発明の実施形態に係るHTTPトンネルサーバ装置10を使用したサーバ・クライアント(Thin Client)・システムの構成を示すブロック図である。
【0026】
このサーバ・クライアント・システム(Server Based Computing System)は、サーバ装置20からHTTPトンネルサーバ装置10を介在して、無線または有線の通信ネットワークN上にある複数のクライアント装置(Thin Client)30…が接続されて構成される。
【0027】
先ず、前記クライアント装置(Thin Client)30は、携帯電話等の端末装置からなり、制御部(コンピュータ)であるCPU(Central Processing Unit)31を備えている。
【0028】
このCPU31には、バス32を介して、フラッシュROMやRAMからなる記憶部33、キーボードなどの入力部34、LCD(Liquid Crystal Display)からなる表示部35、通信制御部36などが接続される。
【0029】
CPU31は、記憶部33に予め記憶された端末制御プログラムに従い、入力部34により入力された信号、あるいは通信制御部36を介して前記HTTPトンネルサーバ装置10から受信された信号に応じて各部の動作を制御する。
【0030】
記憶部33には、送信バッファ33a、受信バッファ33b、フレームバッファ33cなどが確保される。
【0031】
送信バッファ33aには、入力部34のユーザ操作に応じて入力されたキー入力データなどが一時記憶され、この送信バッファ33aに記憶されたデータが前記通信制御部36からHTTPトンネルサーバ装置10へ送信される。
【0032】
受信バッファ33bには、通信制御部36を介して前記HTTPトンネルサーバ装置10から受信された表示用の画面データなどが記憶される。
【0033】
フレームバッファ33cには、前記受信バッファ33bに表示用の画面データが記憶された場合に、当該画面データがビットマップデータに展開されて記憶され、このフレームバッファ33cに記憶された画面データが前記表示部35に出力されて表示される。
【0034】
次に、前記HTTPトンネルサーバ装置10は、制御部(コンピュータ)であるCPU11を備えている。
【0035】
このCPU31には、バス12を介して、HDD(Hard Disk Drive)やフラッシュROM,RAMからなる記憶部13、キーボードなどの入力部14、LCD(Liquid Crystal Display)からなる表示部15、通信制御部16、CD−ROMやメモリカードなどの外部記憶媒体17に記憶された種々のデータを読み込む記憶媒体読み込み部18などが接続される。
【0036】
CPU11は、記憶部13に予め記憶されたトンネルサーバ制御プログラム、あるいは外部記憶媒体17から読み込まれたトンネルサーバ制御プログラム、あるいは通信ネットワークN上の他のサーバ装置(プログラムサーバ)から通信制御部16を介してダウンロードされたトンネルサーバ制御プログラムに従い、通信制御部16を介して前記クライアント装置30やサーバ装置20から受信された信号、あるいは入力部14により入力された信号に応じて各部の動作を制御する。
【0037】
記憶部13には、受信バッファ13a、送信バッファ13b、実Wait時間[αn]メモリ13c、総累積Wait時間[Σαi:i=1〜n]メモリ13d、所定回累積Wait時間[Σαi:i=n-9〜n]メモリ13e、マージン係数[β]メモリ13f、第1最大Wait時間[(Σαi/n)×β:i=1〜n]メモリ13g、第2最大Wait時間[(Σαi/10)×β:i=n-9〜n]メモリ13hなどが確保される。
【0038】
受信バッファ13aには、前記クライアント装置30から通信制御部16に受信されたユーザ操作に応じた入力データや単なるポーリングなどのデータ要求が記憶され、この受信バッファ13aに記憶された実データは、前記サーバ装置20へ送信される。
【0039】
送信バッファ13bには、前記サーバ装置20から通信制御部16に受信されたサーバ応答データや画面更新データなどが一時記憶され、この送信バッファ13bに記憶された実データは、前記通信制御部36からクライアント装置30へ送信される。
【0040】
実Wait時間[αn]メモリ13cには、前記受信バッファ13aに記憶されたクライアント装置30からの実データをサーバ装置20へ送信してから当該サーバ装置20のアプリケーションプログラム21に従い生成された表示用画面データなどのサーバ応答データが実際に受信されるまでの応答時間が、実Wait時間[αn]として記憶される。
【0041】
総累積Wait時間[Σαi:i=1〜n]メモリ13dには、前記クライアント装置30とサーバ装置20との接続が確立されてから現在までの前記サーバ応答データの受信に伴う前記実Wait時間[αn]の合計が、総累積Wait時間[Σαi:i=1〜n]として記憶される。
【0042】
所定回累積Wait時間[Σαi:i=n-9〜n]メモリ13eには、前記サーバ応答データの受信に伴う前記実Wait時間[αn]の直近10回分の合計が、所定回累積Wait時間[Σαi:i=n-9〜n]として記憶される。
【0043】
マージン係数[β]メモリ13fには、前記受信バッファ13aに記憶されたクライアント装置30からの実データをサーバ装置20へ送信した際に、当該実データに応じたサーバ応答データがサーバ装置20により生成されて受信されるまで前記クライアント装置30への応答をせずに待機するための最大Wait時間を設定するにあたり、サーバ応答時間の変動に応じた許容値を含ませるためのマージン係数[β1][β2]が記憶される。
【0044】
このマージン係数[β1]は、サーバ装置20からの応答の遅延変動が少ない場合の前記最大Wait時間を設定するのに使用され、例えば[β1=1.2]とする。
【0045】
また、マージン係数[β2]は、サーバ装置20からの応答の遅延変動が大きい場合の前記最大Wait時間を設定するのに使用され、例えば[β2=1.5]とする。
【0046】
第1最大Wait時間[(Σαi/n)×β1:i=1〜n]メモリ13gには、サーバ装置20からの応答の遅延変動が少ない場合において、前記クライアント装置30への応答をせずに待機するための第1最大Wait時間[(Σαi/n)×β1:i=1〜n]が、前記総累積Wait時間[Σαi:i=1〜n]メモリ13dに記憶された総累積Wait時間[Σαi:i=1〜n]、前記サーバ装置20からサーバ応答データが受信された回数[n]、前記マージン係数[β]メモリ13eに記憶されたマージン係数[β1]に基づき計算され記憶される。
【0047】
第2最大Wait時間[(Σαi/n)×β2:i=n-9〜n]メモリ13hには、サーバ装置20からの応答の遅延変動が少ない場合において、前記クライアント装置30への応答をせずに待機するための第2最大Wait時間[(Σαi/10)×β2:i=n-9〜n]が、前記所定回累積Wait時間[Σαi:i=n-9〜n]メモリ13eに記憶された所定回累積Wait時間[Σαi:i=n-9〜n]、前記マージン係数[β]メモリ13eに記憶されたマージン係数[β2]に基づき計算され記憶される。
【0048】
サーバ装置20内部のブロック構成は、前記HTTPトンネルサーバ装置10のブロック構成と略同様であるが、記憶部に記憶される各種のバッファやメモリの構成は異なる。このサーバ装置20の記憶部には、予め記憶されるサーバ制御プログラム以外に、前記クライアント装置30からのユーザ入力などに伴う実データに応じて起動・実行される種々のアプリケーションプログラム21が記憶される。
【0049】
なお、前記HTTPトンネルサーバ装置10は、前記サーバ装置20と一体に構成してもよい。
【0050】
すなわち、このサーバ・クライアント・システム(SBCシステム)のクライアント装置(Thin Client)30は、入力部34のユーザ操作に応じた入力イベントデータをサーバ装置20へ送信する機能、当該送信した入力イベントデータに応じてサーバ装置20により実行されるアプリケーションプログラム21に従い生成された表示用の画面データをサーバ応答データとして受信する機能、当該受信した表示用の画面データを表示部34に表示させる機能、サーバ装置20でのアプリケーションプログラム21の実行に伴い自動更新された表示用の画面データを定期的にポーリングして受信するためのデータ要求を送信する機能を基本機能として有する。
【0051】
また、サーバ装置20は、クライアント装置30から送信された入力イベントデータに応じたアプリケーションプログラム21を実行し、当該プログラムの実行内容に対応した表示用の画面データを生成する機能、生成された表示用の画面データをサーバ応答データとしてクライアント装置30へ送信する機能、前記プログラムの実行内容に対応してその表示用の画面データが自動更新された場合に、更新された表示用の画面データを随時送信する機能を基本機能として有する。
【0052】
そして、HTTPトンネルサーバ装置10は、以下の基本機能(a)〜(f)を有する。
【0053】
(a)クライアント装置30からサーバ装置20宛の入力イベントデータが受信された際に、サーバ装置20からクライアント装置30宛の表示用の画面データが受信され保存されている場合には、当該画面データをクライアント装置30へ直ちに送信(転送)し、前記受信された入力イベントデータをサーバ装置20へ送信(転送)し、待機時間(第1or第2最大Wait時間)を設定して前記サーバ装置30からの前記入力イベントデータに応じた表示用画面データの受信を待機する機能。
【0054】
(b)待機時間(第1or第2最大Wait時間)中にサーバ装置20から前記入力イベントデータに応じた表示用画面データが受信された場合には、当該画面データをクライアント装置30へ送信(転送)する機能。
【0055】
(c)待機時間(第1or第2最大Wait時間)中にサーバ装置20から前記入力イベントデータに応じた表示用画面データが受信されない場合には、空の応答データをクライアント装置30へ送信する機能。
【0056】
(d)クライアント装置30からサーバ装置20宛の入力イベントデータが受信された際に、サーバ装置20からクライアント装置30宛のデータが受信されてない場合には、前記受信された入力イベントデータをサーバ装置20へ送信(転送)し、待機時間(第1or第2最大Wait時間)を設定して前記サーバ装置30からの前記入力イベントデータに応じた表示用画面データの受信を待機する機能。
【0057】
(e)クライアント装置30からサーバ装置20宛のデータ要求が受信された際に、サーバ装置20からクライアント装置30宛の表示用の画面データが受信され保存されている場合には、当該画面データを直ちにクライアント装置30へ送信(転送)する機能。
【0058】
(f)クライアント装置30からサーバ装置20宛のデータ要求が受信された際に、サーバ装置20からクライアント装置30宛の表示用の画面データが受信されてない場合には、空の応答データを直ちにクライアント装置30へ送信する機能。
【0059】
次に、前記構成のHTTPトンネルサーバ装置10を使用したサーバ・クライアント(Thin Client)・システムの動作について説明する。
【0060】
図2は、前記サーバ・クライアント(Thin Client)・システムにおけるクライアント装置30でのクライアント処理とHTTPトンネルサーバ装置10でのトンネルサーバ処理とを関係付けて示すフローチャートである。
【0061】
図3は、前記HTTPトンネルサーバ装置10を使用したサーバ・クライアント・システムにおける動作シーケンスの一部を示す図である。
【0062】
クライアント装置30とサーバ装置20との接続が確立された状態で、クライアント装置30において、入力部34がユーザにより操作されると(ステップA1(Yes))、当該ユーザ操作に伴うキーやマウスからの入力イベントデータが送信バッファ33aに保存される(ステップA2)。
【0063】
そして、前記送信バッファ33aに入力イベントデータ(送信データ)が保存されたと判断されると(ステップA3(Yes))、当該入力イベントデータ[Data(Client)]が通信制御部36を介してHTTPトンネルサーバ装置10を前段にしたサーバ装置20宛てに送信され(ステップA4)、当該サーバ装置10からのデータ受信待機状態になる(ステップA6)。
【0064】
HTTPトンネルサーバ装置10では、先ず、サーバ装置20またはクライアント装置30からのデータ受信待機状態になり(ステップB1)、サーバ装置20からのデータ受信があるか否か判断される(ステップB2)。
【0065】
ここで、サーバ装置20からのデータ受信がないと判断されると(ステップB2(No))、前記クライアント装置30からのデータ受信があるか否か判断される(ステップB4)。
【0066】
ここで、前記クライアント装置30からユーザ操作に応じて送信された入力イベントデータ[Data(Client)]が受信されたと判断されると、当該入力イベントデータは受信バッファ13aに記憶される(ステップB4(Yes))。
【0067】
すると、送信バッファ13bにおいて、サーバ装置20からの受信データが記憶されているか否か判断される(ステップB5)。
【0068】
ここで、前記送信バッファ13bには、サーバ装置20からの受信データが記憶されてないと判断されると(ステップB5(No))、前記受信バッファ13aに前記クライアント装置30からの入力イベントデータ(実データ)[Data(Client)]が記憶されているか否か判断される(ステップB6)。
【0069】
そして、前記受信バッファ13aには、前記クライアント装置30からの入力イベントデータ(実データ)が記憶されていると判断されると(ステップB6(Yes))、当該入力イベントデータ[Data(Client)]がクライアント装置20へ送信(転送)される(ステップB7)。
【0070】
すると、前記クライアント装置30からの入力イベントデータに応じてサーバ装置20により生成される表示用画面データ(応答データ)の受信を待機するための最大Wait時間(初期値:例えば1000ms)が設定され、この最大Wait時間の10分の1時間毎に前記サーバ装置20からの応答データが受信されたか否か判断される(ステップB8〜B10(No)→B8)。
【0071】
この最大Wait時間を設定したサーバ装置20からのデータ受信待機状態[Wait]において、前記クライアント装置30からの入力イベントデータに応じてサーバ装置20のアプリケーションプログラム21により生成された表示用の画面データ[Data(Server)]が当該サーバ装置20から受信され送信バッファ13bに記憶されたと判断されると(ステップB9(Yes))、前記ステップB7においてサーバ装置20へ入力イベントデータを送信してから今回の表示用画面データが受信されるまでの実Wait時間[αn](実応答時間)が取得され、実Wait時間メモリ13cに記憶される(ステップB11)。
【0072】
すると、前記実Wait時間メモリ13cに記憶された今回の実Wait時間[αn]が、総累積Wait時間メモリ13dに記憶された今回までの総累積Wait時間[Σαi:i=1〜n]をその回数nで除算した平均Wait時間[Σαi/n:i=1〜n]以上か否か判断される(ステップB12)。
【0073】
ここで、今回の実Wait時間[αn]が、平均Wait時間[Σαi/n:i=1〜n](初回は最大Wait時間1000ms)未満であると判断された場合は(ステップB12(No))、前記ステップB8での次回待機用として第1最大Wait時間[(Σαi/n)×β1:i=1〜n]が計算され、第1最大Wait時間メモリ13gに記憶される(ステップB13)。
【0074】
また、前記最大Wait時間を設定した2回目以降のサーバ装置20からのデータ受信待機状態において(ステップB8〜B10(No)→B8)、サーバ装置20から前記入力イベントデータに応じた表示用の画面データが受信された際に(ステップB9(Yes))、今回の実Wait時間[αn]が、平均Wait時間[Σαi/n:i=1〜n]以上であると判断された場合は(ステップB12(Yes))、前記ステップB8での次回待機用として第2最大Wait時間[(Σαi/10)×β2:i=n-9〜n]が計算され、第2最大Wait時間メモリ13hに記憶される(ステップB14)。
【0075】
そして、前記サーバ装置20から受信されて送信バッファ13bに記憶された表示用の画面データ[Data(Server)]がサーバ応答データとして前記クライアント装置30へ送信(転送)される(ステップB15)。
【0076】
クライアント装置30において、前記HTTPトンネルサーバ装置10により転送された表示用の画面データ[Data(Server)]が受信され、受信バッファ33bに記憶されると(ステップA6,A7(Yes))、当該画面データはフレームバッファ33cに描画され、表示部35に表示される(ステップA8)。
【0077】
これにより、クライアント装置30のユーザ操作に伴う入力イベントデータ[Data(Client)]に応じて、サーバ装置20により実行されるアプリケーションプログラム21に従い生成された表示用の画面データ[Data(Server)]が、同クライアント装置30に受信されて表示される。
【0078】
一方、前記HTTPトンネルサーバ装置10における最大Wait時間を設定したサーバ装置20からのデータ受信待機状態において(ステップB8〜B10(No)→B8)、当該サーバ装置20からの表示用の画面データが受信されることなく(ステップB9(No))、前記最大Wait時間を経過したと判断されると(ステップB10(Yes))、クライアント装置20へ空の応答データが送信される(ステップB16)。
【0079】
クライアント装置30において、前記HTTPトンネルサーバ装置10により送信された空の応答データが受信されると(ステップA6,A7(No))、次のユーザ操作に応じた入力イベントデータの送信待機状態(ステップA1)、または定期的なポーリングとしてのデータ要求の送信処理に移行される(ステップA1(No)→A3(No)→A5)。
【0080】
したがって、このケースの場合、前記HTTPトンネルサーバ装置10は、クライアント装置30からの入力イベントデータ[Data(Client)]の受信直後に同クライアント装置30へ応答データを送信することなく、最大Wait時間を設定して待機し[Wait]、その待機中にサーバ装置20から受信された表示用の画面データ[Data(Server)]を応答データとして同クライアント装置30へ転送する。よって、クライアント装置30は、入力イベントデータの送信後に改めてデータ要求を送信する必要なく、1セッションでサーバ装置20から表示用の画面データを受信して表示できる。
【0081】
そればかりでなく、前記サーバ装置20により生成される表示用画面データ(応答データ)の受信を待機するための最大Wait時間は、当該待機処理の繰り返しに従い、第1最大Wait時間[(Σαi/n)×β1:i=1〜n]の場合、サーバ装置20からの応答の遅延変動が小さいときに効果的な総累積Wait時間[Σαi:i=1〜n]の平均Wait時間に収束するように設定される。また、第2最大Wait時間[(Σαi/10)×β2:i=n-9〜n]の場合、サーバ装置20からの応答の遅延変動が大きいときに効果的な直近所定回の累積Wait時間[Σαi:i=n-9〜n]の平均Wait時間に収束するように設定される。よって、この待機処理に伴い設定される待機時間(最大Wait時間)と実際のサーバ装置20からの応答時間(実Wait時間[αn])との差分として発生する無駄な待機時間を、応答時間の変動に関わらず極力少なくすることができる。
【0082】
また、前記HTTPトンネルサーバ装置10は、前記最大Wait時間を設定した待機中にサーバ装置20からの表示用画面データ(応答データ)が受信されない場合は、直ちに空の応答データをクライアント装置30へ送信する。よって、クライアント装置30では、データ受信の待機状態が無駄に長引いてしまうことなく、速やかに次のユーザ操作に応じた入力イベントデータの送信待機状態に移行できる。
【0083】
一方、前記最大Wait時間を設定した待機中にサーバ装置20からの表示用画面データ(応答データ)が受信されず、クライアント装置30へ空の応答データが送信された後、同サーバ装置20から表示用画面データが受信された場合、またはサーバ装置20で実行中のアプリケーションプログラム21に従い自動更新された表示用画面データが受信された場合、当該受信された表示用画面データは送信バッファ13bに保存される(ステップB1〜B3)。
【0084】
クライアント装置30から定期的なポーリングとして送信されたデータ要求が(ステップA5)、HTTPトンネルサーバ装置10に受信された際に(ステップB4(Yes))、その送信バッファ13bに表示用画面データ(実データ)が記憶されている場合は(ステップB5(Yes))、前記待機処理(ステップB8〜B10)に移行されることなく、前記表示用画面データは直ちに応答データとしてクライアント装置30へ送信される(ステップB17)。
【0085】
そして、クライアント装置30に受信された前記表示用画面データは、フレームバッファ33cに描画されて表示部35に表示される(ステップA6〜A8)。
【0086】
よって、このケースの場合も、クライアント装置30は、1セッションで速やかにサーバ装置20から表示用の画面データを受信して表示できる。
【0087】
また、クライアント装置30から定期的なポーリングとして送信されたデータ要求が(ステップA5)、HTTPトンネルサーバ装置10に受信された際に(ステップB4(Yes))、その送信バッファ13bに表示用画面データ(実データ)が記憶されてない場合は(ステップB5(No))、空の応答データが直ちにクライアント装置30へ送信される(ステップB6(No)→B18(No)→B19)。
【0088】
よって、このケースの場合も、クライアント装置30では、速やかに次のユーザ操作に応じた入力イベントデータの送信待機状態に移行できる。
【0089】
したがって、前記構成のHTTPトンネルサーバ装置10を使用したサーバ・クライアント(Thin Client)・システムによれば、クライアント・サーバ間のレスポンス性能を大幅に向上できる。
【0090】
なお、前記構成のHTTPトンネルサーバ装置10を使用するサーバ・クライアント・システムは、伝送遅延が大きくレスポンス性能が悪化しがちな無線通信のシンクライアント端末を用いた、所謂、サーバベース・コンピューティング・システム(SBCシステム)において特に有効であるが、各種のアプリケーションを単独でも実行可能な通常の携帯端末を用いたサーバ・クライアント・システムにおいても、クライアント・サーバ間のレスポンス性能を向上するのに有効であるのは勿論である。
【0091】
前記実施形態において記載したHTTPトンネルサーバ装置10による処理の手法、すなわち、図2のフローチャートに示すトンネルサーバ処理の手法は、コンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記憶媒体17に格納して配布することができる。そして、HTTPトンネルサーバ装置10のコンピュータ(CPU11)は、この外部記憶媒体17に記憶されたプログラムを記憶装置(13)に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明したHTTPトンネル機能を実現し、前述した手法による同様の処理を実行することができる。
【0092】
また、前記手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(N)上を伝送させることができ、この通信ネットワーク(N)に接続されたコンピュータ装置(プログラムサーバ)から前記のプログラムデータを取り込んで記憶装置(13)に記憶させ、前述したHTTPトンネル機能を実現することもできる。
【0093】
なお、本願発明は、前記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【0094】
10 …HTTPトンネルサーバ装置
11 …CPU
12 …バス
13 …記憶部
13a…受信バッファ
13b…送信バッファ
13c…実Wait時間[αn]メモリ
13d…総累積Wait時間[Σαi:i=1〜n]メモリ
13e…所定回累積Wait時間[Σαi:i=n-9〜n]メモリ
13f…マージン係数[β]メモリ
13g…第1最大Wait時間[(Σαi/n)×β:i=1〜n]メモリ
13h…第2最大Wait時間[(Σαi/10)×β:i=n-9〜n]メモリ
16 …通信制御部
17 …外部記憶媒体
18 …記憶媒体読み込み部
20 …サーバ装置
21 …アプリケーションプログラム
30 …クライアント装置(Thin Client)
33c…フレームバッファ
34 …入力部
35 …表示部
N …通信ネットワーク

【特許請求の範囲】
【請求項1】
サーバ装置の応答時間を取得する応答時間取得手段と、
この応答時間取得手段により取得されたサーバ装置の応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する待機時間設定手段と、
クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データをサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段と、
この応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段と、
前記応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段と、
前記クライアント装置からデータを受信した際に、受信したデータが実データを含まないデータ要求情報である場合は、当該データ要求に応じた応答データを直ちにクライアント装置へ送信する要求応答データ送信手段と、
を備えたことを特徴とするHTTPトンネルサーバ装置。
【請求項2】
前記応答受信判断手段による待機時間外に前記サーバ装置から実データを受信した場合に、受信した実データを記憶するサーバ実データ記憶手段を備え、
前記要求応答データ送信手段は、前記クライアント装置から受信したデータが実データを含まないデータ要求情報である場合において、前記サーバ実データ記憶手段により前記サーバ装置から受信された実データが記憶されている場合は、当該記憶されている実データを応答データとして直ちにクライアント装置へ送信し、前記サーバ実データ記憶手段により前記サーバ装置から受信された実データが記憶されてない場合は、実データを含まない応答データを直ちにクライアント装置へ送信する、
ことを特徴とする請求項1に記載のHTTPトンネルサーバ装置。
【請求項3】
前記応答時間取得手段は、
前記応答受信判断手段により前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合に、当該サーバ応答データが受信されたときの実際の応答時間を取得する実応答時間取得手段を有し、
前記待機時間設定手段は、前記実応答時間取得手段により取得されたサーバ装置の実際の応答時間の平均応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する、
ことを特徴とする請求項1または請求項2に記載のHTTPトンネルサーバ装置。
【請求項4】
前記待機時間設定手段は、前記実応答時間取得手段により取得されたサーバ装置の実際の応答時間の平均応答時間および当該応答時間の変動に応じたマージンに基づき、当該サーバ装置からの応答を待機する待機時間を設定する、
ことを特徴とする請求項3に記載のHTTPトンネルサーバ装置。
【請求項5】
HTTPトンネルサーバ装置のコンピュータを制御するためのプログラムであって、
サーバ装置の応答時間を取得する応答時間取得手段、
この応答時間取得手段により取得されたサーバ装置の応答時間に基づき、当該サーバ装置からの応答を待機する待機時間を設定する待機時間設定手段、
クライアント装置からデータを受信した際に、受信したデータが実データである場合は、当該実データをサーバ装置へ送信した後に、前記待機時間設定手段により設定された待機時間内に前記サーバ装置からサーバ応答データが受信されたか否かを判断する応答受信判断手段、
この応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されたと判断された場合は、当該サーバ応答データを前記クライアント装置へ送信する待機内応答データ送信手段、
前記応答受信判断手段により前記待機時間内に前記サーバ装置からサーバ応答データが受信されないと判断された場合は、実データを含まない応答データを前記クライアント装置へ送信する待機後応答データ送信手段、
前記クライアント装置からデータを受信した際に、受信したデータが実データを含まないデータ要求情報である場合は、当該データ要求に応じた応答データを直ちにクライアント装置へ送信する要求応答データ送信手段、
として機能させるための制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−154651(P2011−154651A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−17294(P2010−17294)
【出願日】平成22年1月28日(2010.1.28)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】