(57)【要約】【課題】ＳＢＣシステムのネットワーク上で伝送遅延が発生し易い環境にあって、クライアント装置でのユーザ操作感覚が悪化するのを改善するサーバ装置を提供する。【解決手段】ユーザ入力イベントに応じたアプリプログラムにより生成された画面描画データの描画コマンドをクライアント装置20へ送信する際、RTT測定される伝送遅延時間ｔが設定閾値TH内である場合、Eager Updateモードで描画データの生成順にその描画コマンドをリアルタイム送信し、遅延時間ｔが閾値THを超えている場合、Lazy Updateモードで描画更新タイマ間隔Tnに合わせたインターバルを置きその間の描画コマンドを纏めて送信する。Lazy Updateモードでは、描画コマンドの種別(ユーザ注目度)に応じた送信優先度を設定、同一優先度内の描画コマンドはサイズの小さい順にソートし、前記タイマ間隔Tnを初期に短く次第に長く多段階制御して優先度順に描画コマンドを送信する。【選択図】      図１４
2010035105.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介したクライアント装置からの入力イベントに応じたアプリケーションプログラムに従い描画データを生成し、クライアント装置へ送信転送して表示させるサーバベース・コンピューティング・システムのサーバ装置であって、
前記ネットワークの伝送遅延速度を測定する伝送遅延測定手段と、
この伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値以下の場合は、前記描画データの描画命令を当該描画データの生成順にリアルタイムに前記クライアント装置へ送信する第１の描画命令送信手段と、
前記伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値を超えている場合は、初期に短く次第に長くなる描画更新間隔を設定しこの設定された更新間隔に合わせて、前記生成された描画データの描画命令を当該描画命令の送信優先度順に前記クライアント装置へ送信する第２の描画命令送信手段と、
を備えたことを特徴とするサーバ装置。
【請求項２】
前記描画命令の送信優先度は、当該描画命令の種別に応じて異なる優先度を定めた優先度テーブルに基づき設定することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記第２の描画命令送信手段により送信優先度順に送信する描画命令について、同一優先度の複数の描画命令はデータサイズの小さい順にソートして送信することを特徴とする請求項２に記載のサーバ装置。
【請求項４】
前記第２の描画命令送信手段により描画命令を送信する描画更新間隔は、多段階の更新間隔を定めた更新間隔テーブルに基づき設定することを特徴とする請求項１ないし請求項３に記載のサーバ装置。
【請求項５】
前記伝送遅延測定手段は、前記クライアント装置と協働して当該クライアント装置との間の伝送遅延速度を測定することを特徴とする請求項１ないし請求項４に記載のサーバ装置。
【請求項６】
ネットワークを介したクライアント装置からの入力イベントに応じたアプリケーションプログラムに従い描画データを生成し、クライアント装置へ送信転送して表示させるサーバベース・コンピューティング・システムのサーバ装置のコンピュータを制御するためのサーバ制御プログラムであって、
前記コンピュータを、
前記ネットワークの伝送遅延速度を測定する伝送遅延測定手段、
この伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値以下の場合は、前記描画データの描画命令を当該描画データの生成順にリアルタイムに前記クライアント装置へ送信する第１の描画命令送信手段、
前記伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値を超えている場合は、初期に短く次第に長くなる描画更新間隔を設定しこの設定された更新間隔に合わせて、前記生成された描画データの描画命令を当該描画命令の送信優先度順に前記クライアント装置へ送信する第２の描画命令送信手段、
として機能させるようにしたコンピュータ読み込み可能なサーバ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＢＣ(Server Based Computing)システムにおいて、サーバ装置にて生成される画面描画データをクライアント装置へ送信転送して表示させるためのサーバ装置およびサーバ処理プログラムに関する。
【背景技術】
【０００２】
サーバ・クライアント・システムにおいて、例えばクライアント装置からのリモート操作によりサーバ装置側で所望のアプリケーションプログラムを起動実行させるＳＢＣ(Server Based Computing)システムがある。
【０００３】
このＳＢＣシステムでは、クライアント装置の操作入力に応じてサーバ装置のアプリケーションプログラムにより生成されるクライアント表示用の画面描画データが、該サーバ装置からその描画更新の都度クライアント装置へと送信転送されて表示される。
【０００４】
従来、ＳＢＣシステムは、社内ＬＡＮ(Local Area Network)のような、遅延の存在しない高速ネットワークを前提に設計されている。しかしながら、画面更新のデータ量が大きかったり、ネットワークの通信速度（帯域幅）が低速（狭い）であったりした場合には、クライアント装置の操作入力に対してサーバ装置により生成される画面描画データが当該クライアント装置に送信転送されて１画面として完成表示されるまでに時間が掛かり、応答性の悪い問題となる。
【０００５】
そこで、クライアント装置におけるユーザの見かけの反応を良くするため、最初は低画質にしたデータ量の少ない画面描画データを送信し、その後インターバルを置いて高画質の画面描画データを送信する画面転送装置が考えられている（例えば、特許文献１参照。）。
【特許文献１】特開２００６−２４６１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方、例えばネットワークが無線ＷＡＮ(Wide Area Network)などにより伝送遅延が発生しやすい環境でも、クライアント装置の操作入力に対して応答性が悪くなる問題が生じる。
【０００７】
本発明は、このような課題に鑑みなされたもので、ネットワーク上で伝送遅延が発生し易い環境にあって、クライアント装置でのユーザ操作感覚が悪化するのを改善することが可能になるサーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載のサーバ装置は、ネットワークを介したクライアント装置からの入力イベントに応じたアプリケーションプログラムに従い描画データを生成し、クライアント装置へ送信転送して表示させるサーバベース・コンピューティング・システムのサーバ装置であって、前記ネットワークの伝送遅延速度を測定する伝送遅延測定手段と、この伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値以下の場合は、前記描画データの描画命令を当該描画データの生成順にリアルタイムに前記クライアント装置へ送信する第１の描画命令送信手段と、前記伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値を超えている場合は、初期に短く次第に長くなる描画更新間隔を設定しこの設定された更新間隔に合わせて、前記生成された描画データの描画命令を当該描画命令の送信優先度順に前記クライアント装置へ送信する第２の描画命令送信手段と、を備えたことを特徴としている。
【０００９】
請求項２に記載のサーバ装置は、前記請求項１に記載のサーバ装置において、前記描画命令の送信優先度は、当該描画命令の種別に応じて異なる優先度を定めた優先度テーブルに基づき設定することを特徴としている。
【００１０】
請求項３に記載のサーバ装置は、前記請求項２に記載のサーバ装置において、前記第２の描画命令送信手段により送信優先度順に送信する描画命令について、同一優先度の複数の描画命令はデータサイズの小さい順にソートして送信することを特徴としている。
【００１１】
請求項４に記載のサーバ装置は、前記請求項１ないし請求項３に記載のサーバ装置において、前記第２の描画命令送信手段により描画命令を送信する描画更新間隔は、多段階の更新間隔を定めた更新間隔テーブルに基づき設定することを特徴としている。
【００１２】
請求項５に記載のサーバ装置は、前記請求項１ないし請求項４に記載のサーバ装置において、前記伝送遅延測定手段は、前記クライアント装置と協働して当該クライアント装置との間の伝送遅延速度を測定することを特徴としている。
【００１３】
請求項６に記載のサーバ制御プログラムは、ネットワークを介したクライアント装置からの入力イベントに応じたアプリケーションプログラムに従い描画データを生成し、クライアント装置へ送信転送して表示させるサーバベース・コンピューティング・システムのサーバ装置のコンピュータを制御するためのサーバ制御プログラムであって、前記コンピュータを、前記ネットワークの伝送遅延速度を測定する伝送遅延測定手段、この伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値以下の場合は、前記描画データの描画命令を当該描画データの生成順にリアルタイムに前記クライアント装置へ送信する第１の描画命令送信手段、前記伝送遅延測定手段により測定された前記ネットワークの伝送遅延速度が、予め設定された閾値を超えている場合は、初期に短く次第に長くなる描画更新間隔を設定しこの設定された更新間隔に合わせて、前記生成された描画データの描画命令を当該描画命令の送信優先度順に前記クライアント装置へ送信する第２の描画命令送信手段、として機能させることを特徴としている。
【発明の効果】
【００１４】
本発明によれば、ネットワーク上で伝送遅延が発生し易い環境にあって、クライアント装置でのユーザ操作感覚が悪化するのを改善することが可能になるサーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラムを提供できる。
【発明を実施するための最良の形態】
【００１５】
以下図面により本発明の実施の形態について説明する。
【００１６】
図１は、本発明の実施形態に係るＳＢＣ(Server Based Computing)システムの構成を示すブロック図である。
【００１７】
このＳＢＣシステムは、有線または無線のＬＡＮ(Local Area Network)やＷＡＮ(Wide Area Network)からなるネットワークＮ上に接続されたサーバ装置１０および複数のクライアント装置(Thin client)２０，…を備える。
【００１８】
サーバ装置１０は、テキスト作成処理プログラム，Ｗｅｂブラウザプログラム，表計算処理プログラム，メール処理プログラムなど、複数のアプリケーションプログラムを有し、当該サーバ装置１０に接続されたクライアント装置２０，…からの操作入力（入力イベント）信号に応じて起動しその処理を実行する。
【００１９】
このサーバ装置１０において、クライアント装置２０，…からの操作入力信号に応じたアプリケーションプログラムの実行に伴い、クライアント用のフレームバッファＲＡＭ１４ａ（図２参照）上に生成された表示出力用の描画データＧは、イメージ送信やコマンド送信を組み合わせてアクセス元のクライアント装置２０，…へ転送される。
【００２０】
そして、クライアント装置２０，…では、前記サーバ装置１０から転送された描画データＧがフレームバッファＲＡＭ２５（図３参照）に展開され、表示装置２６の表示画面に表示される。
【００２１】
つまり、このＳＢＣシステムにおける各クライアント装置(Thin client)２０，…は、何れもキーボードやマウスなどのユーザ操作に応じた入力機能とＬＣＤ表示部及びプリンタなどへの出力機能を主要な機能として有し、少なくとも前記サーバ装置１０が有している各種のアプリケーション機能やデータファイルの管理機能を一切持っていない。
【００２２】
そして、クライアント装置２０，…からの操作入力（入力イベント）信号に応じてサーバ装置１０にて起動実行される各種の処理に伴い生成されたデータファイルは、基本的には、当該サーバ装置１０内あるいは該サーバ装置１０にて接続管理される磁気ディスクなどの記憶装置にユーザアカウント毎あるいは共有ファイルとして記憶され保存される。
【００２３】
図２は、前記ＳＢＣシステムにおけるサーバ装置１０の回路構成を示すブロック図である。
【００２４】
サーバ装置１０は、コンピュータとしてのＣＰＵ１１を備え、このＣＰＵ１１には、バス１２を介してＲＯＭ１３、ＲＡＭ１４、フレームバッファＲＡＭ１５、表示装置１６が接続される。
【００２５】
また、ＣＰＵ１１には、バス１２を介してキーボード，マウスなどの入力装置１７、外部記憶装置１８、クライアント装置２０，…との通信Ｉ／Ｆ（インターフェイス）１９が接続される。
【００２６】
ＣＰＵ１１は、ＲＯＭ１３のプログラムメモリ１３ａに予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってＲＡＭ１４を作業用メモリとし回路各部の動作を制御するもので、入力装置１７からのキー入力信号や通信Ｉ／Ｆ１９を介して受信されるクライアント装置２０からのユーザ操作に応じた処理指令（入力イベント）信号などに応じて前記種々のプログラムが起動・実行される。
【００２７】
このサーバ装置１０において、クライアント装置２０からの入力イベント信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザＩＤに対応付けられて外部記憶装置１８に記憶される。またクライアント表示用の描画データＧは、ＲＡＭ１４内のクライアント用フレームバッファＲＡＭ１４ａを使用して生成されると共に、通信Ｉ／Ｆ１９からクライアント装置２０へ転送されて表示出力される。
【００２８】
なお、当該サーバ装置１０自身の表示装置１６にて表示させるための描画データは、フレームバッファＲＡＭ１５上に生成される。
【００２９】
図３は、前記ＳＢＣシステムにおけるクライアント装置２０の回路構成を示すブロック図である。
【００３０】
クライアント装置２０は、コンピュータとしてのＣＰＵ２１を備え、このＣＰＵ２１には、バス２２を介してＲＯＭ２３、ＲＡＭ２４、フレームバッファＲＡＭ２５が接続される。そして、このフレームバッファＲＡＭ２５に書き込まれた描画データＧが、表示装置２６の表示画面に表示される。
【００３１】
また、ＣＰＵ２１には、バス２２を介して入力装置２７、外部記憶装置２８、前記サーバ装置１０との通信Ｉ／Ｆ（インターフェイス）２９が接続される。
【００３２】
ＣＰＵ２１は、ＲＯＭ２３のプログラムメモリ２３ａに予め記憶されているシステムプログラムに従ってＲＡＭ２４を作業用メモリとし回路各部の動作を制御するもので、入力装置２７からのキー入力信号、通信Ｉ／Ｆ２９を介して受信されるサーバ装置１０からのアプリケーション応答信号や転送描画データＧなどに応じて前記システムプログラムが起動され実行される。
【００３３】
このクライアント装置２０において、前記サーバ装置１０におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶装置２８に読み込ませて記憶させ、また生成転送された表示用の描画データＧは、フレームバッファＲＡＭ２５に展開され表示装置２６で表示出力される。
【００３４】
図４は、前記サーバ装置１０とクライアント装置２０におけるソフトウエア・モジュールの構成を示す図である。
【００３５】
サーバ装置１０のプログラムメモリ１３ａに記憶されるサーバ制御プログラムは、ＲＴＴ(Round Trip Time)測定モジュール１３ａ１、画面制御モジュール１３ａ２、通信モジュール１３ａ３を有する。
【００３６】
ＲＴＴ測定モジュール１３ａ１は、ネットワークＮにおけるクライアント装置２０との間での伝送遅延の度合いを測定し、この測定結果を画面制御モジュール１３ａ２に通知する機能を有する。
【００３７】
画面制御モジュール１３ａ２は、クライアント装置２０からの入力イベントに応じたアプリケーションプログラムを起動させて表示用の描画データＧをクライアント用フレームバッファＲＡＭ１４ａ上に生成し、前記ＲＴＴ測定モジュール１３ａ１から通知された伝送遅延の測定結果に応じて、前記描画データＧのクライアント装置２０への送信スケジュールを制御する機能を有する。
【００３８】
通信モジュール１３ａ３は、クライアント装置２０から受け取った入力イベントデータやＲＴＴ測定のためのデータを、画面制御モジュール１３ａ２やＲＴＴ測定モジュール１３ａ１に引き渡す機能、およびＲＴＴ測定モジュール１３ａ１から受け取ったＲＴＴ測定のためのデータや画面制御モジュール１３ａ２から受け取った描画データＧをクライアント装置２０へ送信する機能を有する。
【００３９】
一方、クライアント装置２０のプログラムメモリ２３ａに記憶されるクライアント制御プログラムは、通信モジュール２３ａ１、入力モジュール２３ａ２、画面表示モジュール２３ａ３を有する。
【００４０】
通信モジュール２３ａ１は、サーバ装置１０との間でＲＴＴ測定のためのデータを受信／送信する機能、および入力モジュール２３ａ２から受け取った入力イベントデータをサーバ装置１０へ送信し、サーバ装置１０から受信された表示用の描画データＧを画面表示モジュール２３ａ３に引き渡す機能を有する。
【００４１】
入力モジュール２３ａ２は、ユーザ操作に応じた入力イベントデータを通信モジュール２３ａ１に引き渡す機能を有する。
【００４２】
画面表示モジュール２３ａ３は、通信モジュール２３ａ１から受け取った表示用の描画データＧをフレームバッファＲＡＭ２５に展開して表示装置２６に表示させる機能を有する。
【００４３】
図５は、前記サーバ装置１０のＲＡＭ１４に用意される主要なデータメモリを示す図である。
【００４４】
ＲＡＭ１４には、前記クライアント用フレームバッファＲＡＭ１４ａの他に、ＲＴＴメモリ１４ｂ、描画更新モードメモリ１４ｃ、更新間隔テーブルメモリ１４ｄ、更新間隔タイマメモリ１４ｅ、コマンド優先度テーブルメモリ１４ｆ、Real Time FIFOメモリ１４ｇ、Priority FIFOメモリ１４ｈ、Normal FIFOメモリ１４ｉなどが用意される。
【００４５】
ＲＴＴメモリ１４ｂには、前記ＲＴＴ測定モジュール１３ａ１によるＲＴＴ測定機能により測定されたクライアント装置２０との間での伝送遅延時間ｔが記憶される。
【００４６】
図６は、前記サーバ装置１０のＲＴＴ測定モジュール１３ａ１によるＲＴＴ測定処理のシーケンスを示す図である。
【００４７】
図７は、前記サーバ装置１０のＲＴＴ測定処理に伴いクライアント装置２０へ送信されるＲＴＴ測定リクエストのフォーマットを示す図である。
【００４８】
先ず、サーバ装置１０は、ＲＴＴ測定リクエストを一定間隔毎にクライアント装置２０へ送信する（Ｐ１）。
【００４９】
このＲＴＴ測定リクエストのフォーマットは、図７に示すように、そのコマンド番号、データサイズ、測定番号、上り測定用の送信データ数(byte)とその分割回数、下り測定用の送信データ数(byte)とその分割回数を記述してなる。
【００５０】
クライアント装置２０において、前記サーバ装置１０から送信されたＲＴＴ測定リクエストが受信されると、前記フォーマット設定された上り測定用の送信データ数(byte)とその分割回数に従って、上りのＲＴＴ測定パケットを前記サーバ装置１０へ送信する（Ｐ２）。
【００５１】
サーバ装置１０において、前記クライアント装置２０から送信された上りのＲＴＴ測定パケットが受信されると、前記フォーマット設定された下り測定用の送信データ数(byte)とその分割回数に従って、下りのＲＴＴ測定パケットを前記クライアント装置２０へ送信する（Ｐ３）。
【００５２】
クライアント装置２０において、前記サーバ装置１０から送信された下りのＲＴＴ測定パケットが受信されると、前記上りのＲＴＴ測定パケット送出時のタイムスタンプと、当該下りのＲＴＴ測定パケット受信時との差分を伝送遅延時間ｔとし、サーバ装置１０へ通知する（Ｐ４）。
【００５３】
サーバ装置１０に通知された伝送遅延時間ｔは、前記ＲＴＴ測定モジュール１３ａ１に渡されてＲＴＴメモリ１４ｂに記憶されると共に、前記画面制御モジュール１３ａ２に渡される。
【００５４】
前記画面制御モジュール１３ａ２は、前記ＲＴＴメモリ１４ｂに記憶されたクライアント装置２０との間での伝送遅延時間ｔに基づき、クライアント画面更新のための描画データＧの送信スケジュールを、「Eager Updateモード」または「Lazy Updateモード」に設定して制御する。
【００５５】
図８は、前記サーバ装置１０のＲＴＴ測定モジュール１３ａ１により取得された伝送遅延時間ｔに応じて設定される「Eager Updateモード」と「Lazy Updateモード」とによる画面送信スケジュールを対比して説明する図である。
【００５６】
サーバ装置１０が画面を送信するスケジューリング方式は、主に以下の２つがあげられる。
【００５７】
（１）アプリケーションが描画命令を発行したタイミングに応じてその描画データＧをリアルタイムに送信する方式（Eager Updateモード：図８（Ａ）参照）。
【００５８】
（２）一定時間のインターバルを置き、その間の描画データＧを前記一定時間のタイムアップに応じて纏めて送信する方式（Lazy Updateモード：図８（Ｂ）参照）。
【００５９】
クライアント画面更新のための描画データＧの送信スケジュールについて、理想的には、図８（Ａ）に示すように、余計な待ちが少なく、描画コマンドを生成順に送信するEager Updateモードが望ましい。しかしながら、伝送遅延の大きな環境で小さな送信を何度も繰り返すと、送信オーバヘッドが何度も起こってしまう。このため、伝送遅延の大きな環境では、図８（Ｂ）に示すように、パケット数を減らすべく、Lazy Updateモードが望ましい。
【００６０】
前記ＲＡＭ１４内の描画更新モードメモリ１４ｃには、前記ＲＴＴメモリ１４ｂに逐次更新されて記憶される伝送遅延時間ｔが、予め設定された閾値ＴＨ以下の場合に、前記Eager Updateモードを示すデータが記憶され、同閾値ＴＨを超える場合に、前記Lazy Updateモードを示すデータが記憶される。
【００６１】
Lazy Updateモードでは、上述したとおり、一定時間のインターバルを置き、その間の描画コマンドをタイマのタイムアップに応じて纏めて送信する方式である。しかし、この一定時間のタイマ間隔が長過ぎると、ユーザの入力イベント（キーボードやマウスなど）に対する描画更新の反応が悪くなり、一方で、この一定時間のタイマ間隔を短くすると、Eager Updateモードと同様に送信オーバヘッドが増加してしまう。そこで本実施形態のサーバ装置１０では、前記タイマ間隔を多段階に制御する。
【００６２】
図９は、前記サーバ装置１０でのLazy Updateモードによる描画更新タイマ間隔の多段階制御を示すイメージ図である。
【００６３】
図１０は、前記サーバ装置１０でのLazy Updateモードによる描画更新タイマ間隔を多段階に設定するための更新間隔テーブルを示す図である。
【００６４】
すなわち、クライアント装置２０からのユーザ操作に伴う入力イベントが受信検出された直後は、送信インターバルを短めに設定し（描画更新タイマ間隔Ｔ１＝５ｍｓ）、その後、Ｔ２（＝１５ｍｓ）〜Ｔ４（＝２５ｍｓ）と徐々にインターバルを長くしてデフォルト値Ｔ０（＝３０ｍｓ）に戻す。こうすることで、ユーザが入力イベントを発行した直後は、反応よく、早めに画面更新がなされ、その後は、伝送遅延に応じた一定の長さのインターバルで送信オーバヘッドを回避することができる。
【００６５】
前記ＲＡＭ１４内の更新間隔テーブルメモリ１４ｄには、前記図１０で示した更新間隔テーブルが記憶される。
【００６６】
前記ＲＡＭ１４内の更新間隔タイマメモリ１４ｅには、前記テーブルメモリ１４ｄに記憶された更新間隔テーブルに従い設定される描画更新タイマ間隔Ｔｎがセットされ、前記描画データＧを送信して描画更新するタイミングが制御される。
【００６７】
なお、前記Lazy Updateモードによって、一定時間のインターバルを置き、その間に描画更新された複数の描画データＧを前記タイマメモリ１４ｅにセットされた描画更新タイマ間隔Ｔｎのタイムアップに応じて纏めて送信する場合、各描画データＧの重なる領域についてはマージされ最新のものだけが送信される。
【００６８】
また、前記Lazy Updateモードによって、描画更新された複数の描画データＧを纏めて送信する場合、当該各描画データＧの描画コマンドの種別に応じた優先度（高・中・低）を判断し、この判断された優先度に対応して用意されたFIFOメモリ(Real Time FIFO(高)・Priority FIFO(中)・Normal FIFO(低))を使用して送信する。
【００６９】
前記Lazy Updateモードにおける描画コマンドの優先度（高・中・低）は、原則そのデータサイズの小さなものから高→中→低の順で判断される。すなわち、画面転送システムでは、「データサイズが小さなものほど処理時間が短い」という前提に基づき、データサイズの小さなものを優先にして送信する。一般に、コンピュータシステムのＧＵＩ(Graphic User Interface)において、データサイズの小さなコマンドは、ユーザの着目度が高いといえる。例えばフォントやウィンドウの背景の塗りつぶしは、画像データに比べればデータサイズが小さい。Ｗｅｂサイトの場合、ユーザが着目したいのは基本構成である背景部分やテキストであって、バナーや広告画像ではない。従って、伝送遅延が大きい場合でも、ユーザの着目度が高いコンテンツは早めに見られるようにする。
【００７０】
図１１は、前記サーバ装置１０でのLazy Updateモードにおいて描画コマンドに優先度を設定するためのコマンド優先度テーブルを示す図である。
【００７１】
このコマンド優先度テーブルは、前記ＲＡＭ１４内のコマンド優先度テーブルメモリ１４ｆに記憶される。
【００７２】
図１２は、前記サーバ装置１０のＲＡＭ１４に用意されたReal Time FIFOメモリ１４ｇ、Priority FIFOメモリ１４ｈ、Normal FIFOメモリ１４ｉのそれぞれにおける描画コマンド格納状態の一例を示す図である。
【００７３】
すなわち、クライアント装置２０からの入力イベントに応じたアプリケーションプログラムにより生成された画面描画データＧの描画コマンドが、例えば「カーソル(Cursor)」の描画コマンドである場合には、優先度フラグ“高(0)”にセットされてReal Time FIFOメモリ１４ｇに格納され、また、例えば「単色(SFILL)」や「フォント(Font)」の描画コマンドである場合には、優先度フラグ“中(1)”にセットされてPriority FIFOメモリ１４ｈに格納され、また、例えば「イメージ(Image)」や「単一パターン(PFILL)」の描画コマンドである場合には、優先度フラグ“低(2)”にセットされてNormal FIFOメモリ１４ｉに格納される。
【００７４】
なお、Real Time FIFOメモリ１４ｇに格納される優先度フラグ“高(0)”の描画コマンドについては、Lazy Updateモードであっても、その描画データＧが生成されたタイミングで逐次リアルタイムに送信される。
【００７５】
そして、Priority FIFOメモリ１４ｈに格納される優先度フラグ“中(1)”の描画コマンドと、Normal FIFOメモリ１４ｉに格納される優先度フラグ“低(2)”の描画コマンドについては、何れの場合もその平均応答時間を最小にする「最短ジョブスケジューリング」の手法に従い小さいサイズ順にソートされて格納され、前記更新間隔タイマメモリ１４ｅにセットされた描画更新タイマ間隔Ｔｎのタイムアップに従い、当該Priority FIFOメモリ１４ｈ内のデータ、Normal FIFOメモリ１４ｉ内のデータの順で送信される。
【００７６】
前記図１２において、各FIFOメモリ１４ｇ，１４ｈ，１４ｉに格納されているデータＡ，Ｂ，Ｃ，…は、当該各データＡ，Ｂ，Ｃ，…の生成された順番を示している。
【００７７】
図１３は、画面転送システムにおける最短ジョブスケジューリングについて説明する図である。
【００７８】
例えば順次生成された４つのデータＡ（サイズ“８”）、Ｂ（サイズ“４”）、Ｃ（サイズ“４”）、Ｄ（サイズ“４”）を処理するのに、図１３（Ａ）に示すように、当該データＡ，Ｂ，Ｃ，Ｄをその順番通りに処理した場合の１データ当たりの平均応答時間は“１４”になるが、図１３（Ｂ）に示すように、最短ジョブスケジューリングによってサイズの小さいデータから順にＢ，Ｃ，Ｄ，Ａとして処理した場合には、その１データ当たりの平均応答時間は“１１”と短縮される。
【００７９】
従って、前記画面描画データＧの描画コマンドは、そのデータサイズに応じた優先度（高・中・低）を判断して各対応するFIFOメモリ（Real Time FIFOメモリ１４ｇ“高”，Priority FIFO“中”メモリ１４ｈ，Normal FIFOメモリ“低”１４ｉ）に振り分け、リアルタイムにまたは描画更新タイマ間隔Ｔｎに応じたインターバルを置いて順次送信するだけでなく、当該インターバルを置いて順次送信するPriority FIFO“中”メモリ１４ｈとNormal FIFOメモリ“低”１４ｉに格納する描画コマンドについては、「最短ジョブスケジューリング」に従い小さいサイズ順にソートして平均応答時間を最小化しながら送信する。
【００８０】
このため、伝送遅延が大きい環境でも、送信オーバヘッドを回避しながら、ユーザの注目度の高いテキストや背景のようなコンテンツを優先して送信でき、ユーザの操作感覚を向上できる。
【００８１】
次に、前記構成のＳＢＣシステムにおけるサーバ装置１０の画面描画データ更新機能について動作を説明する。
【００８２】
図１４は、前記サーバ装置１０による描画更新モード切り換え・送信処理を示すフローチャートである。
【００８３】
サーバ装置１０において、クライアント装置２０からの入力イベントに応じたアプリケーションプロクラムの実行により、クライアント用フレームバッファＲＡＭ１４ａに画面描画データＧが生成されると、ＲＴＴ測定モジュール１３ａ１（図４参照）に従い、図６で示したように測定されてＲＴＴメモリ１４ｂに記憶されている最新の伝送遅延時間ｔが読み出され（ステップＳ１）、当該伝送遅延時間ｔが予め設定された閾値ＴＨ以下か否か判断される（ステップＳ２）。
【００８４】
ここで、測定された最新の伝送遅延時間ｔが予め設定された閾値ＴＨ以下であると判断された場合には（ステップＳ２（ＹＥＳ））、クライアント画面更新のための描画データＧの送信スケジュールが「Eager Updateモード」に設定され、描画更新モードメモリ１４ｃに記憶される（ステップＳ３）。
【００８５】
一方、前記測定された最新の伝送遅延時間ｔが予め設定された閾値ＴＨを超えていると判断された場合には（ステップＳ２（ＮＯ））、クライアント画面更新のための描画データＧの送信スケジュールが「Lazy Updateモード」に設定され、描画更新モードメモリ１４ｃに記憶される（ステップＳ４）。
【００８６】
ここで、前記伝送遅延時間ｔが閾値ＴＨ以下で（ステップＳ２（ＹＥＳ））、「Eager Updateモード」に設定された場合は（ステップＳ３）、前記クライアント用フレームバッファＲＡＭ１４ａに生成された画面描画データＧの描画コマンドについて、コマンド優先度テーブルメモリ１４ｆに記憶されているコマンド優先度テーブル（図１１参照）に従い優先度が設定される（ステップＳ５）。そして、この設定された優先度順に順次、前記画面描画データＧの描画コマンドがクライアント装置２０へ送信されて描画更新される（ステップＳ６）。
【００８７】
一方、前記伝送遅延時間ｔが閾値ＴＨを超えていることで（ステップＳ２（ＮＯ））、「Lazy Updateモード」に設定された場合は（ステップＳ４）、前記クライアント用フレームバッファＲＡＭ１４ａに生成された画面描画データＧの描画コマンドについて、図１５におけるコマンド優先度決定処理に従い、コマンド種別に応じた優先度が決定されてReal Time FIFOメモリ１４ｇまたはPriority FIFOメモリ１４ｈまたはNormal FIFOメモリ１４ｉに格納される（ステップＳ５）。そして、図１６における描画更新間隔設定処理に従い、初期に短く次第に長くなる描画更新タイマ間隔Ｔｎが設定され、この設定された描画更新タイマ間隔Ｔｎに応じたタイミングで前記Priority FIFOメモリ１４ｈおよびNormal FIFOメモリ１４ｉに格納された各描画コマンドのデータが順次クライアント装置２０へ送信される（ステップＳ６）。
【００８８】
ここで、前記Real Time FIFOメモリ１４ｇに格納された画面描画データＧの描画コマンドについては、前記描画更新タイマ間隔Ｔｎに関わらずリアルタイムに送信される。
【００８９】
図１５は、前記サーバ装置１０による描画更新モード切り換え・送信処理に伴い「Lazy Updateモード」が設定された状態でのコマンド優先度決定処理を示すフローチャートである。
【００９０】
このコマンド優先度決定処理では、前記クライアント用フレームバッファＲＡＭ１４ａに生成された画面描画データＧの描画コマンドについて、コマンド種別が確認され（ステップＳ５１）、コマンド優先度テーブルメモリ１４ｆに記憶されているコマンド優先度テーブル（図１１参照）に従い、優先度フラグ“０(高)”か（ステップＳ５２（Ｙｅｓ））、優先度フラグ“１(中)”か（ステップＳ５４（Ｙｅｓ））、優先度フラグ“２(低)”か（ステップＳ５４（Ｎｏ））、が判断される。
【００９１】
ここで、優先度フラグ“０(高)”と判断された描画コマンドについては（ステップＳ５２（Ｙｅｓ））、図１２（Ａ）で示したように、Real Time FIFOメモリ１４ｇに格納され（ステップＳ５３）、当該格納順にリアルタイムでクライアント装置２０へ送信される（ステップＳ６）。
【００９２】
一方、優先度フラグ“１(中)”と判断された描画コマンドについては（ステップＳ５４（Ｙｅｓ））、図１２（Ｂ）で示したように、Priority FIFOメモリ１４ｈに格納され（ステップＳ５５）、また、優先度フラグ“２(低)”と判断された描画コマンドについては（ステップＳ５４（Ｎｏ））、図１２（Ｃ）で示したように、Normal FIFOメモリ１４ｉに格納される（ステップＳ５６）。
【００９３】
前記Priority FIFOメモリ１４ｈに格納された優先度フラグ“１(中)”の描画コマンド、前記Normal FIFOメモリ１４ｉに格納された優先度フラグ“２(低)”の描画コマンドについては、その何れも「最短ジョブスケジューリング」に従い小さいサイズ順にソートされて格納され（ステップＳ５７）、図１６における描画更新間隔設定処理に従い設定される描画更新タイマ間隔Ｔｎに応じたタイミングで、その優先順にクライアント装置２０へ送信される（ステップＳ６）。
【００９４】
図１６は、前記サーバ装置１０による描画更新モード切り換え・送信処理に伴い「Lazy Updateモード」が設定された状態での描画更新間隔設定処理を示すフローチャートである。
【００９５】
この描画更新間隔設定処理では、クライアント装置２０からの入力イベントが検出されることで、当該入力イベントに応じたアプリケーションプログラムの実行により、前記クライアント用フレームバッファＲＡＭ１４ａに画面描画データＧが生成されると（ステップＡ１）、更新間隔テーブルメモリ１４ｄに記憶されている更新間隔テーブル（図１０参照）の更新間隔番号（Ｔｎ）がそのデフォルト値“０”から“１”にインクリメントされ（ステップＡ２）、当該更新間隔番号（Ｔ１）に対応付けられた最短の更新間隔（５ｍｓ）が更新間隔タイマメモリ１４ｅにセットされる（ステップＡ３）。
【００９６】
ここで、前記ステップＡ３にて更新間隔タイマメモリ１４ｅにセットされた最短の更新間隔Ｔ１（＝５ｍｓ）が経過してタイムアップすると、現在タイマセットされている更新間隔番号（Ｔｎ）が最後の更新間隔番号“４”となったか否か判断される（ステップＡ４）。
【００９７】
この場合、現在タイマセットされている更新間隔番号（Ｔ１）が最後の更新間隔番号“４”に到達していないと判断されるので（ステップＡ４（Ｎｏ））、前記ステップＡ２にて当該更新間隔番号（Ｔ１）がさらにインクリメントされて（Ｔ２）になり（ステップＡ２）、当該更新間隔番号（Ｔ２）に対応付けられた２番目に短い更新間隔（１５ｍｓ）が更新間隔タイマメモリ１４ｅにセットされる（ステップＡ３）。
【００９８】
この後、前記同様にステップＡ２〜Ａ４の処理が繰り返されることで、更新間隔タイマメモリ１４ｅに対しセットされる更新間隔がＴ２[15ms]→Ｔ３[20ms]→Ｔ４[25ms]と次第に長くなる。
【００９９】
そして、前記ステップＡ４において、現在タイマセットされている更新間隔番号（Ｔ４）が最後の更新間隔番号“４”に到達したと判断されると（ステップＡ４（Ｙｅｓ））、当該更新間隔番号（Ｔｎ）は前記デフォルト値“０”に戻され（ステップＡ５）、当該更新間隔番号（Ｔ０）に対応付けられた長めの更新間隔（３０ｍｓ）が更新間隔タイマメモリ１４ｅにセットされる（ステップＡ６）。
【０１００】
このような描画更新間隔設定処理により、Lazy Updateモードでの描画更新の時間間隔（Ｔｎ）は、Ｔ１[=5ms]→Ｔ２[=15ms]→Ｔ３[20ms]→Ｔ４[25ms]→Ｔ０[30ms]と初期に短く次第に長くなるよう設定され、前記Priority FIFOメモリ１４ｈに格納された優先度フラグ“１(中)”の描画コマンド、前記Normal FIFOメモリ１４ｉに格納された優先度フラグ“２(低)”の描画コマンドが、前記描画更新タイマ間隔Ｔｎに応じたタイミングで、その優先順にクライアント装置２０へ送信される（ステップＳ６）。
【０１０１】
したがって、前記構成のＳＢＣシステムにおけるサーバ装置１０の画面描画データ更新機能によれば、クライアント装置２０からのユーザ入力イベントに応じたアプリケーションプログラムの実行により、クライアント用フレームバッファＲＡＭ１４ａに生成された画面描画データＧの描画コマンドを前記クライアント装置２０へ送信する際に、ＲＴＴ測定モジュール１３ａ１によりクライアント装置２０との間で測定される伝送遅延時間ｔが予め設定された閾値ＴＨ以内である場合には、前記入力イベントに応じた画面描画データＧが生成された順にその描画コマンドをリアルタイムに送信する「Eager Updateモード」を設定する。また、伝送遅延時間ｔが予め設定された閾値ＴＨを超えている場合には、描画更新タイマ間隔Ｔｎに合わせたインターバルを置いてその間の描画コマンドを纏めて送信する「Lazy Updateモード」を設定する。
【０１０２】
そして、前記「Lazy Updateモード」では、描画コマンドの種別（ユーザ注目度）に応じた送信優先度を設定すると共に、同一優先度内の描画コマンドはデータサイズの小さい順にソートし、前記描画更新タイマ間隔Ｔｎを初期に短く次第に長くなるよう多段階に制御して、前記送信優先度順にその描画コマンドを送信する。
【０１０３】
このため、伝送遅延が大きい環境でも、送信オーバヘッドを回避しながら、ユーザの注目度の高いテキストや背景のようなコンテンツを優先して送信でき、クライアント装置２０でのユーザの操作感覚を向上できるようになる。
【０１０４】
なお、前記実施形態において記載したＳＢＣシステムのサーバ装置１０によるに各処理の手法、すなわち、図１４のフローチャートに示す描画更新モード切り換え・送信処理、図１５のフローチャートに示す前記描画更新モード切り換え・送信処理に伴うコマンド優先度決定処理、図１６のフローチャートに示す前記描画更新モード切り換え・送信処理に伴う描画更新間隔設定処理等の各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード（ＲＯＭカード、ＲＡＭカード等）、磁気ディスク（フロッピディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の外部記憶装置１８の記録媒体に格納して配布することができる。そして、サーバ装置１０のコンピュータ（ＣＰＵ１１）は、この外部記憶装置１８の記録媒体に記憶されたプログラムを記憶装置（フラッシュＲＯＭ１３やＲＡＭ１４）に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明した画面描画データ更新機能を実現し、前述した手法による同様の処理を実行することができる。
【０１０５】
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク（Ｎ）上を伝送させることができ、この通信ネットワーク（Ｎ）に接続されたコンピュータ装置（プログラムサーバ）から前記のプログラムデータを取り込んで記憶装置（フラッシュＲＯＭ１３やＲＡＭ１４）に記憶させ、前述した画面描画データ更新機能を実現することもできる。
【０１０６】
なお、本願発明は、前記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係るＳＢＣ(Server Based Computing)システムの構成を示すブロック図。
【図２】前記ＳＢＣシステムにおけるサーバ装置１０の回路構成を示すブロック図。
【図３】前記ＳＢＣシステムにおけるクライアント装置２０の回路構成を示すブロック図。
【図４】前記サーバ装置１０とクライアント装置２０におけるソフトウエア・モジュールの構成を示す図。
【図５】前記サーバ装置１０のＲＡＭ１４に用意される主要なデータメモリを示す図。
【図６】前記サーバ装置１０のＲＴＴ測定モジュール１３ａ１によるＲＴＴ測定処理のシーケンスを示す図。
【図７】前記サーバ装置１０のＲＴＴ測定処理に伴いクライアント装置２０へ送信されるＲＴＴ測定リクエストのフォーマットを示す図。
【図８】前記サーバ装置１０のＲＴＴ測定モジュール１３ａ１により取得された伝送遅延時間ｔに応じて設定される「Eager Updateモード」と「Lazy Updateモード」とによる画面送信スケジュールを対比して説明する図。
【図９】前記サーバ装置１０でのLazy Updateモードによる描画更新タイマ間隔の多段階制御を示すイメージ図。
【図１０】前記サーバ装置１０でのLazy Updateモードによる描画更新タイマ間隔を多段階に設定するための更新間隔テーブルを示す図。
【図１１】前記サーバ装置１０でのLazy Updateモードにおいて描画コマンドに優先度を設定するためのコマンド優先度テーブルを示す図。
【図１２】前記サーバ装置１０のＲＡＭ１４に用意されたReal Time FIFOメモリ１４ｇ、Priority FIFOメモリ１４ｈ、Normal FIFOメモリ１４ｉのそれぞれにおける描画コマンド格納状態の一例を示す図。
【図１３】画面転送システムにおける最短ジョブスケジューリングについて説明する図。
【図１４】前記サーバ装置１０による描画更新モード切り換え・送信処理を示すフローチャート。
【図１５】前記サーバ装置１０による描画更新モード切り換え・送信処理に伴い「Lazy Updateモード」が設定された状態でのコマンド優先度決定処理を示すフローチャート。
【図１６】前記サーバ装置１０による描画更新モード切り換え・送信処理に伴い「Lazy Updateモード」が設定された状態での描画更新間隔設定処理を示すフローチャート。
【符号の説明】
【０１０８】
１０  …サーバ装置
２０  …クライアント装置
１１、２１…ＣＰＵ
１２、２２…バス
１３、２３…ＲＯＭ
１３ａ、２３ａ…プログラムメモリ
１３ａ１…ＲＴＴ測定モジュール
１３ａ２…画面制御モジュール
１３ａ３、２３ａ１…通信モジュール
２３ａ２…入力モジュール
２３ａ３…画面表示モジュール
１４、２４…ＲＡＭ
１４ａ…クライアント用フレームバッファＲＡＭ
１４ｂ…ＲＴＴメモリ
１４ｃ…描画更新モードメモリ
１４ｄ…更新間隔テーブルメモリ
１４ｅ…更新間隔タイマメモリ
１４ｆ…コマンド優先度テーブルメモリ
１４ｇ…Real Time FIFOメモリ
１４ｈ…Priority FIFOメモリ
１４ｉ…Normal FIFOメモリ
１５、２５…フレームバッファＲＡＭ
１６、２６…表示装置
１７、２７…キー入力装置
１８、２８…外部記憶装置
１９、２９…通信Ｉ／Ｆ
Ｎ  …通信ネットワーク
【図１】
2010035105.tif 000003
【図２】
2010035105.tif 000004
【図３】
2010035105.tif 000005
【図４】
2010035105.tif 000006
【図５】
2010035105.tif 000007
【図６】
2010035105.tif 000008
【図７】
2010035105.tif 000009
【図８】
2010035105.tif 000010
【図９】
2010035105.tif 000011
【図１０】
2010035105.tif 000012
【図１１】
2010035105.tif 000013
【図１２】
2010035105.tif 000014
【図１３】
2010035105.tif 000015
【図１４】
2010035105.tif 000016
【図１５】
2010035105.tif 000017
【図１６】
2010035105.tif 000018