以下図面により本発明の実施の形態について説明する。
図1は、本発明の実施形態に係るサーバベース・コンピューティング・システムの構成を示すブロック図である。
このサーバベース・コンピューティング・システムは、サーバ装置11および複数のクライアント装置12(12a,12b,12c),…を、LAN(Local Area Network)やWAN(Wide Area Network)からなるネットワーク13上に接続して構成される。
サーバ装置11は、例えばネットワーク13上に有線接続されたパーソナルコンピュータである。クライアント装置12として、12aはネットワーク13上に有線接続されたパーソナルコンピュータ、12bは同ネットワークN上のアクセスポイントAPを介して無線接続された携帯電話、12cは同アクセスポイントAPを介して無線接続された携帯情報端末(PDA)である。
サーバ装置11は、文書作成処理プログラム,表計算処理プログラム,住所録プログラム,メモ帳プログラム,プレゼン資料作成プログラム,メール処理プログラム,インターネット接続処理プログラム、Web表示プログラム(Webブラウザ)など、種々のアプリケーション・プログラムを有し、当該サーバ装置11に接続されたクライアント装置12(12a,12b,12c),…からの操作入力(入力イベント)信号に応じて起動しその処理を実行する。
このサーバ装置11において、クライアント装置12,…からの操作入力信号に応じたアプリケーション・プログラムの実行に伴い生成されたクライアント用の画面描画データは、所定の方式で符号化され、その描画位置とサイズなど記述した転送ヘッダと共にアクセス元のクライアント装置12,…へ送信(転送)される。
そして、クライアント装置12,…では、前記サーバ装置11から転送された画面描画データがその転送ヘッダに基づき復号化され、表示部36に表示される。
図2は、前記サーバベース・コンピューティング・システムにおけるサーバ装置11の回路構成を示すブロック図である。
サーバ装置11は、システムバス20に接続したコンピュータとしてのCPU21を備え、このCPU21には、当該バス20を介してRAMからなるメモリ22、フレームバッファRAM23、ハードディスクやフラッシュROMからなる記憶部24、入力部25、表示部26、クライアント装置12との通信信制御部27、そして、外部記憶媒体28aからデータを読み取る記憶媒体読取り部28が接続される。
CPU21は、記憶部24内に予め記憶されている、あるいは外部記憶媒体28aから記憶部24に読み込まれて記憶されている、あるいはネットワーク13上のプログラムサーバから記憶部24に読み込まれて記憶されているシステムプログラムや種々のアプリケーション・プログラム(サーバ制御プログラム)に従ってメモリ22をワークエリアとし回路各部の動作を制御するもので、入力部25からのキー入力信号や通信制御部27を介して受信されるクライアント装置12,…からのユーザ操作(入力イベント)に応じた処理指令信号などに応じて前記種々のプログラムを起動・実行する。
このサーバ装置11において、クライアント装置12からの入力イベント信号に応じて起動・実行されるアプリケーション・プログラムに従い生成された種々のデータは、例えばそのユーザIDに対応付けられて記憶部24に記憶される。またクライアント表示用の画面描画データは、メモリ22内に各クライアント装置12,…に対応させて用意された仮想フレームバッファ22f,…に書き込まれる。そして、前回画面描画データと今回画面描画データとの画像変化部分(差分画像)を抽出した転送用描画データに変換され、通信制御部27からクライアント装置12へ転送されて表示出力される。
メモリ22には、各クライアント装置12(12a,12b,12c…)毎に、例えばユーザID等によって関連付けられた複数の仮想フレームバッファ22fが設けられている。
フレームバッファRAM23は、本サーバ装置11自身に備えられた表示部26の画面に表示する描画データをフレーム単位で保持するためのバッファメモリである。
記憶部24には、OS(Operating System)プログラムの他、クライアント装置12,…からの各種の入力イベントに応じた仮想画面の描画データを、前記仮想フレームバッファ22f,…に描画して生成するための各種の描画アプリケーション・プログラム24a、前記仮想フレームバッファ22f,…に生成された仮想画面の描画データを、当該各仮想フレームバッファ22f,…に対応するクライアント装置12,…へ転送するための画面転送アプリケーション・プログラム24bなどが記憶される。
入力部25は、例えばキーボード、マウスなどの入力デバイスからなり、オペレータが各種データの入力や指示を行う場合に用いられる。
表示部26は、各種データを表示するものであり、例えばCRT(Cathode-ray tube)やLCD(Liquid Crystal Display)などからなる。
通信制御部27は、ネットワーク13を介して外部の端末との間で通信処理を行うためのものであり、ここではクライアント装置12から送信される入力イベントデータなどの受信処理や、本サーバ装置11側で生成した描画データの送信処理などを行う。
記憶媒体読取り部28は、外部記憶媒体28aに記録されたデータを読み取る。外部記憶媒体28aとしては、例えば磁気ディスク、光ディスク、フレシキブルディスク、メモリカードなどがある。
図3は、前記サーバベース・コンピューティング・システムにおけるクライアント装置12(12a,12b,12c)の回路構成を示すブロック図である。
クライアント装置12は、システムバス30に接続したコンピュータとしてのCPU31を備え、このCPU31には、当該バス30を介してRAMからなるメモリ32、フレームバッファRAM33、フラッシュROMからなる記憶部34、入力部35、表示部36、通信制御部37、RTC(Real Time Clock)38、そして外部記憶媒体39aからデータを読み取る記憶媒体読取り部39が接続される。
前記メモリ32は、CPU31の処理動作に必要な各種データを記憶し、サーバ装置11から受信した受信データの転送ヘッダと描画データとを受信バッファ32aに記憶する。
フレームバッファRAM33は、クライアント装置12自身に備えられた表示部36の画面に表示する描画データをフレーム単位で保持するためのバッファメモリである。このフレームバッファRAM33には、前記サーバ装置11のフレームバッファ22fに生成されて本クライアント装置12に転送され受信バッファ32aに記憶された画面描画データが記憶される。
記憶部34には、プログラム記憶領域34aが設けられ、OS(Operating System)プログラムとサーバ装置11との画面転送を行う接続アプリケーション・プログラムを主とした、クライアント装置12の動作を制御するためのクライアント制御プログラムが記憶される。
CPU31は、記憶部34内のプログラム記憶領域34aに予め記憶されている、あるいは外部記憶媒体39aから記憶部34に読み込まれた、あるいはネットワーク13上のプログラムサーバから記憶部34に読み込まれたシステムプログラム(クライアント制御プログラム)に従ってメモリ32をワークエリアとし回路各部の動作を制御するもので、入力部35からのユーザ操作に伴う入力信号や通信制御部37を介して受信されるサーバ装置11からの受信データ(転送ヘッダ+描画データ)などに応じて前記クライアント制御プログラムが起動され実行される。
入力部35は、例えばキーボード、マウス、タッチパネルなどの入力デバイスからなり、ユーザが各種データの入力や指示を行う場合に用いられる。
表示部36は、各種データを表示するものであり、例えばLCD(Liquid Crystal Display)やELディスプレイなどからなる。
通信制御部37は、ネットワーク13を介して外部の端末との間で通信処理を行うためのものであり、ここではユーザ操作に応じた入力イベントデータなどの送信処理や、前記サーバ装置11から転送された画面描画データ(転送ヘッダ+描画データ)の受信処理などを行う。
このサーバベース・コンピューティング・システムでは、クライアント装置12からのキー入力などのイベントに応じてサーバ装置11にてフレームバッファ22f上に生成された画面描画データは、当該画面描画データが生成更新される毎にその描画更新後に画像変化のあった領域が差分画像として抽出され、クライアント装置12へ転送される。そして、当該クライアント装置12にて既にフレームバッファRAM33に記憶され読み出されて表示されていた描画データに対し、その画像変化の領域のみ順次書き替えられて表示更新されるものである。これにより、前記サーバ装置11からクライアント装置12へのデータ転送量を大幅に削減している。
図4は、前記サーバ装置11からクライアント装置12へ転送される画面描画データのデータフォーマットを示す図である。
先ず、図4(A)に示すように、サーバ装置11からクライアント装置12へ転送される画面描画データは、転送ヘッダと描画データとに分かれる。
転送ヘッダには次の情報が記述されている。
送信先であるクライアント装置12の[IPアドレス]、接続しているユーザの[ユーザID]、描画データの処理番号を示す[DATA_NO]と、画面上のx座標値[X]、y座標値[Y]、幅[W]、高さ[H]、画像符号化手法の種別[ENC]、例えばPNG(Portable Network Graphics),JPEG(Joint Photographic Experts Group)、RLE(Run Length Encoded)などが、描画データ毎に記述されている。
描画データは、サーバ装置11の描画アプリケーションが一回の処理で画面更新した領域の描画データを符号化して形で転送される。
クライアント装置12に受信された画面描画データには、図4(B)に示すように、その転送ヘッダの前にRTC38から取得した受信時刻が付加され、前記受信バッファ32aに記憶される。
図5は、前記クライアント装置12のプログラム記憶領域34aに記憶された接続アプリケーションを主とするクライアント制御プログラムにより実行される機能を示す図である。
クライアント制御プログラム(34a)は、サーバ装置11への接続を行う接続機能(Pa)と、サーバ装置11からのデータ受信を行うデータ受信機能(Pe)と、クライアント装置12側のキー入力やポインティングデバイスやマウス等によるイベント入力をサーバ装置11へ送信するキーイベントの送信機能(Ph)と、受信データに受信時刻を付加する機能(Pf)と、受信データの受信バッファ32aへの書き込み・削除を行う受信バッファ管理機能(Pb)と、受信データ内の転送ヘッダに記述された座標情報(X、Y、W、H)より受信バッファ32a内の旧受信データと新受信データ間での領域の上書き状況を判断する上書き判定機能(Pc)と、旧受信データを受信後に一定時間を超えても新受信データを受信しない場合に行うタイムアウト判定機能(Pg)と、指定した受信データの復号と描画を行い表示するデータの復号・表示機能(Pd)とを有する。
次に、前記構成のサーバベース・コンピューティング・システムの動作について説明する。
図6は、前記サーバベース・コンピューティング・システムのクライアント装置12におけるデータ受信から画面描画までの制御処理を示すフローチャートである。
このクライアント制御処理のフローチャートにおいて、各ステップSnに付記された(Pa)〜(Ph)は、前記図5で示したクライアント制御プログラム(34a)が有する機能を示し、当該ステップSnを実行する機能を示す。
クライアント装置12でのユーザ操作に応じた入力イベントの送信に応答して、サーバ装置11の描画アプリケーション・プログラム24aにより生成された画面描画データ(図4(A)参照)が受信されると、受信カウンタnが+1カウントアップされる(ステップS1)。
すると、前記受信データn(画面描画データ)の転送ヘッダnと描画データnの読み込みが開始され(ステップS2)、図4(B)に示すように、転送ヘッダnの先頭に、RTC38により取得された現在時刻が受信時刻として付加される(ステップS3)。
そして、この受信時刻の付加された受信データnが受信バッファ32aに格納される(ステップS4)。
ここで、前記受信バッファ32aに格納された今回の受信データnの転送ヘッダnと前回の受信データn−1の転送ヘッダn−1との比較処理が実行される(ステップS5)。
この際、前記受信バッファ32aには、受信データが今回受信された1つの受信データnしか存在しないと判断された場合には(ステップS6(=1))、前記サーバ装置11からの次の画面描画データの受信待機状態になる(ステップS7)。
そして、この画面描画データの受信待機中において(ステップS7(無))、前記受信バッファ32aに、1以上の受信データ、つまり今回受信された受信データnが存在していると判断される状態では(ステップS8(≧1))、当該受信データnの先頭に付加された受信時刻からの経過時間Δtimeが、予め設定された時間timeout(例えば20ms)を超えたか否か判断される(ステップS9)。
ここで、前記受信バッファ32aに格納された受信データnについて、その受信時刻からの経過時間Δtimeが、予め設定された時間timeoutを超えないと判断される状態では(ステップS9(Δtime≦timeout))、前記サーバ装置11からの次の画面描画データの受信待機状態が維持される(ステップS7)。
そして、前記次の画面描画データの受信待機中において(ステップS7(無))、前記受信バッファ32aに格納された受信データnについて、その受信時刻からの経過時間Δtimeが、予め設定された時間timeoutを超えたと判断された場合には(ステップS9(Δtime>timeout))、当該受信データnの転送ヘッダnと描画データnが復号化処理される。そして、転送ヘッダnに記述されているx座標値[X]、y座標値[Y]、幅[W]、高さ[H]に従って、描画データnがフレームバッファRAM33の画面描画領域に描画され、表示部36の表示画面に表示される(ステップS10)。
すると、この表示された転送ヘッダnと描画データnからなる受信データnは、前記受信バッファ32aから削除され廃棄される(ステップS11)。
そしてまた、前記サーバ装置11からの次の画面描画データの受信待機状態になる(ステップS7(無)→S8(=0)→S7)。
すなわち、ユーザ入力イベントに応じた画面描画データが、サーバ装置11により生成されてクライアント装置12に受信され、その受信時刻から予め設定された時間timeoutまでに次の画面描画データが受信されない場合には、当該受信済みの画面描画データは、フレームバッファRAM33に展開されて表示部36に表示され、受信バッファ32aから廃棄される(ステップS1〜S11)。
一方、前記受信バッファ32aに格納された受信データnについて、その受信時刻からの経過時間Δtimeが、予め設定された時間timeout(例えば20ms)を超えないと判断される状態で(ステップS9(Δtime≦timeout))、前記サーバ装置11から次の画面描画データが受信されたと判断された場合には(ステップS7(有))、当該受信データの受信カウンタnが+1カウントアップされ(ステップS1)、同受信データの読み込みが開始されると共に(ステップS2)、同受信データnの先頭に受信時刻が付加されて受信バッファ32aに格納される(ステップS3,S4)。
このとき、受信バッファ32aには、今回の受信データnと前回の受信データn−1とが格納された状態になる。
ここで、前記受信バッファ32aに格納された今回の受信データnの転送ヘッダnと前回の受信データn−1の転送ヘッダn−1との比較処理が実行される(ステップS5)。
そして、前記受信バッファ32aには、前回n−1と今回nの2つの受信データが存在すると判断されるので(ステップS6(>1))、次の図7,図8を参照して説明する上書き判定処理へ移行される(ステップSA)。
図7は、前記クライアント装置12の制御処理における前回受信された描画データn−1に対する今回受信された描画データnの上書き判定状態の具体例を示す図である。図面上の水平方向の右向きがx座標値の増加する向きで、垂直方向の下向きがy座標値の増加する向きである。
図8は、前記クライアント装置12の制御処理に伴う上書き判定処理を示すフローチャートである。
例えば図7(A)に示すように、始点座標(X1,Y1)およびサイズ(H1×W1)を記述した転送ヘッダを有する画面描画データが、前回の受信データn−1として前記受信バッファ32aに格納されている状態で、図7(B)に示すように、始点座標(X2,Y2)およびサイズ(H2×W2)を記述した転送ヘッダを有する画面描画データが、今回の受信データnとして前記受信バッファ32aに追加で格納される。そして、各受信データn−1,nの描画データ同士の始点座標[(X1,Y1)対(X2,Y2)]およびサイズ[(H1×W1)対(H2×W2)]の関係が、図7(C)に示すような関係にある場合には、図8における上書き判定処理により次のように判定される。
つまり、今回の画面描画データn−1の始点座標(X2,Y2)は、XY共に前回の画面描画データnの始点座標(X1,Y1)以下であると判断される(ステップA1(Yes)→A2(Yes))。
さらに、今回の画面描画データn−1のサイズ(H2,W2)は、HW共に前回の画面描画データnのサイズ(H1,W1)以上であると判断される(ステップA3(Yes)→A4(Yes))。
すると、今回の画面描画データn−1は前回の画面描画データnを覆い隠すと判定される(ステップA5)。
そして、前記上書き判定処理(ステップSA)により、今回の画面描画データn−1が前回の画面描画データnを覆い隠すと判定した場合には(ステップS12(覆い隠す))、前記受信バッファ32aに格納されている前回の画面描画n−1は、描画・表示処理されることなく削除されて廃棄される(ステップS13)。
すると、前記受信バッファ32aに今回の画面描画データnだけが存在する状態で、前記ステップS7〜S9によるタイムアウト判定を伴う次の画面描画データの受信待機状態になる(ステップS7(無)→S8(>1)→S9(Δtime≦timeout)→S7)。
この後、前記受信バッファ32aに格納されている今回の受信データ(画面描画データ)nについて、その受信時刻からの経過時間Δtimeが、予め設定された時間timeoutを超えたと判断された場合には(ステップS9(Δtime>timeout))、当該受信データnの転送ヘッダnと描画データnが復号化処理される。そして、転送ヘッダnに記述されているx座標値[X]、y座標値[Y]、幅[W]、高さ[H]に従って、描画データnがフレームバッファRAM33の画面描画領域に描画され、表示部36の表示画面に表示される(ステップS10)。
すると、この表示された転送ヘッダnと描画データnからなる受信データnは、前記受信バッファ32aから削除され廃棄される(ステップS11)。
一方、前記図8における上書き判定処理(ステップSA)でのステップA1〜A4の何れか1つの判断処理において(No)と判定された場合には、今回の画面描画データn−1は前回の画面描画データnを覆い隠さないと判定される(ステップA6)。
そして、前記上書き判定処理(ステップSA)により、今回の画面描画データn−1が前回の画面描画データnを覆い隠さないと判定した場合には(ステップS12(覆い隠さない))、当該前回の画面描画データの転送ヘッダn−1と描画データn−1が復号化処理される。そして、前回の転送ヘッダn−1に記述されているx座標値[X]、y座標値[Y]、幅[W]、高さ[H]に従って、前回の描画データn−1がフレームバッファRAM33の画面描画領域に描画され、表示部36の表示画面に表示される(ステップS14)。
そして、前記描画・表示された前回の画面描画n−1は、前記受信バッファ32aから削除され廃棄される(ステップS13)。
すると、前記受信バッファ32aに今回の画面描画データnだけが存在する状態で、前記ステップS7〜S9によるタイムアウト判定を伴う次の画面描画データの受信待機状態になる(ステップS7(無)→S8(>1)→S9(Δtime≦timeout)→S7)。
すなわち、今回(前回)の画面描画データn−1が受信されてから予め設定されたタイムアウト時間(例えば20msec)が経過するまでに、次の(今回)の画面描画データnが受信された際に、当該今回の画面描画データnが前回の画面描画データn−1を覆い隠すとして上書き判定された場合には、前回の画面描画データn−1は描画・表示処理されることなく削除・廃棄される。そして、今回の画面描画データnがそのタイムアウト時間の経過後に描画・表示される。
このため、例えばクライアント装置12における表示画面上のウインドウ領域を素早く拡大操作した際に、前記予め設定されたタイムアウト時間内で順次拡大更新されて受信されるウインドウ領域の画面描画データは、その拡大操作の途中において受信された画面描画データについて実際の描画・表示処理が実行されることなく廃棄される。そして、拡大操作の最後において受信された画面描画データについてのみ描画・表示される。よってこの場合には、ウインドウ領域の拡大操作の途中にその表示画面に乱れを生じさせることなく、拡大操作した最終的なウインドウ領域だけをレスポンス良く快適に表示させることができるようになる(図9〜図11参照)。
また、例えばクライアント装置12における表示画面上のアイコンを素早く移動操作した際に、前記予め設定されたタイムアウト時間内で順次受信される移動前のアイコン消去用の上書き画面描画データと、各移動位置でのアイコンの画面描画データとは、その移動操作の途中において受信されたアイコンの画面描画データについて実際の描画・表示処理が実行されることなく廃棄される。そして、移動操作の最後において受信されたアイコンの画面描画データが描画・表示される。よってこの場合には、アイコンの移動操作の途中にその表示画面に乱れを生じさせることなく、最終移動位置のアイコンだけをレスポンス良く快適に表示させることができるようになる(図12〜図13参照)。
図9は、前記クライアント装置12の制御処理に基づき表示されたウインドウ領域Gの拡大操作に伴う表示の更新動作を示す図である。
図10は、前記図9におけるウインドウ領域Gの拡大操作に伴いサーバ装置11から順次受信されて受信バッファ32aに一時記憶される各画面描画データの転送ヘッダを示す図である。
図11は、前記図9におけるウインドウ領域Gの拡大操作に伴いサーバ装置11から順次受信される各画面描画データの描画処理の時間的流れを示す図である。
クライアント装置12からのイベント入力に応じて、サーバ装置11により生成された最初の画面描画データ(ウインドウ領域)Gが受信された際に、その受信時刻t0から予め設定されたタイムアウト時間(timeout=20ms)までに次の画面描画データの受信がない場合は、当該タイムアウト時間(timeout)の経過判定と同時に、図9(A)に示すように、前記最初の画面描画データ(ウインドウ領域)Gが表示部36に表示される。
ここで、前記初期表示されたウインドウ領域Gを対象に、図9(A)〜(C)に示すように、Y方向への連続的な拡大操作Q1〜Q3をした際に、サーバ装置11により拡大生成された次のウインドウ領域G1が受信され、その受信時刻(t0+500)から1ms経過後に、さらに拡大生成された次のウインドウ領域G2が受信されると、今回受信されたウインドウ領域G2は、前回受信されたウインドウ領域G1の受信時刻(t0+500)からタイムアウト時間(timeout=20ms)内に受信され、且つウインドウ領域G1を覆い隠すと上書き判定されるので、前回受信されたウインドウ領域G1は表示されることなく、受信バッファ32aから廃棄される。
続いて、前記ウインドウ領域G2の受信時刻(t0+501)から2ms経過後に、さらに拡大生成された次のウインドウ領域G3が受信されると、今回受信されたウインドウ領域G3は、前回受信されたウインドウ領域G2の受信時刻(t0+501)からタイムアウト時間(timeout=20ms)内に受信され、且つウインドウ領域G2を覆い隠すと上書き判定されるので、前回受信されたウインドウ領域G2も表示されることなく、受信バッファ32aから廃棄される。
そして、前記ウインドウ領域G3の受信時刻(t0+503)からタイムアウト時間(timeout=20ms)までに次の画面描画データの受信がない場合は、当該タイムアウト時間(t0+523)の経過判定と同時に、図9(D)に示すように、今回受信された最終拡大サイズのウインドウ領域G3が表示部36に表示される。
これにより、ウインドウ領域Gを素早く拡大操作した場合に、その拡大操作の途中において表示の遅れによる画面乱れを生じさせることなく、拡大操作した最終的なウインドウ領域G3だけをレスポンス良く快適に表示させることができる。
なお、便宜上、ウインドウ領域Gの拡大処理を4段階として説明したが、実際にはもっと多数の段階毎にサーバ装置11とクライアント装置12間で画面描画データの送受信処理が実行される。
また、前記ウインドウ領域Gの拡大操作をゆっくりと行った場合には、サーバ装置11から拡大更新された画面描画データが順次受信される毎に、タイムアウト判定により各拡大更新されたウインドウ領域G1,G2,…が順次表示される。
図12は、前記クライアント装置12の制御処理に基づき表示されたフォルダアイコンFの移動操作に伴う表示の更新動作を示す図である。
図13は、前記図12におけるフォルダアイコンFの移動操作に伴いサーバ装置11から順次受信される各画面描画データの描画処理の時間的流れを示す図である。
なお、フォルダアイコンFなど、表示画面内のオブジェクトを移動させて表示させる処理は、移動前のオブジェクトの描画データを、当該オブジェクトに上書きして削除するための削除用描画データにより上書きして削除し、移動後の位置に同オブジェクトを表示することにより実行される。
クライアント装置12からのイベント入力に応じて、サーバ装置11により生成された最初の画面描画データ(フォルダアイコン)Fが受信された際に、その受信時刻t0から予め設定されたタイムアウト時間(timeout=20ms)までに次の画面描画データの受信がない場合は、当該タイムアウト時間(timeout)の経過判定と同時に、前記最初の画面描画データ(フォルダアイコン)Fが表示部36に表示される。
この後、前記初期表示されたフォルダアイコンFを対象に、連続的な移動操作R1〜R2をした際に、サーバ装置11により生成された削除用アイコンDが受信され、さらにその受信時刻(t0+500)から1ms経過後に、移動されたフォルダアイコンF1が受信されると、今回受信されたフォルダアイコンF1は、前回受信された削除用アイコンDの受信時刻(t0+500)からタイムアウト時間(timeout=20ms)内に受信されたものの、前記フォルダアイコンFを覆い隠さないと判定されるので、前回受信された削除用アイコンDが表示されて前記移動前のフォルダアイコンFが削除され、受信バッファ32aから廃棄される。
続いて、前記フォルダアイコンF1の受信時刻(t0+501)から2ms経過後に、当該フォルダアイコンF1を削除するための削除用アイコンD1が受信されると、今回受信された削除用アイコンD1は、前回受信されたフォルダアイコンF1の受信時刻(t0+501)からタイムアウト時間(timeout=20ms)内に受信され、且つフォルダアイコンF1を覆い隠すと上書き判定されるので、前回受信されたフォルダアイコンF1は表示されることなく、受信バッファ32aから廃棄される。
続いて、前記削除用アイコンD1の受信時刻(t0+503)から1ms経過後に、さらに移動されたフォルダアイコンF2が受信されると、今回受信されたフォルダアイコンF2は、前回受信された削除用アイコンD1の受信時刻(t0+503)からタイムアウト時間(timeout=20ms)内に受信されたものの、前記削除用アイコンD1を覆い隠さないと判定されるので、前回受信された削除用アイコンD1は表示され、受信バッファ32aから廃棄される。
そして、前記フォルダアイコンF2の受信時刻(t0+504)からタイムアウト時間(timeout=20ms)までに次の画面描画データの受信がない場合は、当該タイムアウト時間(t0+524)の経過判定と同時に、今回受信された最終移動位置のフォルダアイコンF2が表示部36に表示される。
これにより、アイコンなどのオブジェクトを素早く移動操作した場合に、その移動操作の途中において尾引き表示による画面乱れを生じさせることなく、移動操作した最終的なオブジェクトだけをレスポンス良く快適に表示させることができる。
なお、便宜上、フォルダアイコンFの移動処理を3段階として説明したが、実際にはもっと多数の段階毎にサーバ装置11とクライアント装置12間で画面描画データの送受信処理が実行される。
また、前記フォルダアイコンFの移動操作をゆっくりと行った場合には、サーバ装置11から移動更新された画面描画データが順次受信される毎に、タイムアウト判定により各移動更新されたフォルダアイコンF1,F2,…が順次表示される。
したがって、前記構成のサーバベース・コンピューティング・システムによれば、クライアント装置12からの連続的な入力イベントに応じて、サーバ装置11の描画アプリケーション・プログラム24aにより順次生成更新される各画面描画データがクライアント装置12に受信される場合に、受信された画面描画データの先頭にはその受信時刻が付加されて受信バッファ32aに格納される。そして、受信された画面描画データの受信時刻から一定時間内に次の画面描画データが受信されない場合には、その受信済みの画面描画データが表示され、同一定時間内に次の画面描画データが受信された場合には、前回受信された画面描画データの表示位置・サイズと今回受信された画面描画データの表示位置・サイズとが比較され、今回受信の描画データが前回受信の描画データを覆い隠すか否か上書き判定される。そして、今回受信の描画データが前回受信の描画データを覆い隠すと判定された場合には、当該前回受信の描画データは表示処理されずに受信バッファ32aから削除され、覆い隠さないと判定された場合には、同前回受信の描画データは表示処理されて受信バッファ32aから削除される。
このため、表示画面上のオブジェクトを素早く拡大または縮小操作したり、移動操作したりした場合には、その拡大/縮小/移動操作の途中にて順次更新されて受信される画面描画データの表示は省略され、最終操作あるいは操作速度をゆっくりした後の入力イベントに応じて受信された拡大/縮小/移動後の画面描画データだけ表示されるようになる。よって、同一オブジェクトの素早い拡大/縮小処理に伴う描画の書き替え遅れによる画面の乱れや、素早い移動処理に伴う描画の尾引きによる画面の乱れ無く、快適な表示レスポンスを得ることができる。
また、前述した通り、画面乱れの原因となる素早い拡大/縮小/移動の操作途中での画面描画データの表示処理を省くことにより、キー入力などユーザ入力レスポンスの向上、電力消費量の削減などを実現できる。
なお、前記実施形態において記載したサーバベース・コンピューティング・システムによる各処理の手法、すなわち、図6のフローチャートに示すクライアント装置12の制御処理などの各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記憶媒体39aに格納して配布することができる。そして、クライアント装置12のコンピュータ(制御部31)は、この外部記憶媒体39aに記憶されたプログラムを記憶装置(記憶部34やメモリ32)に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明した同一オブジェクトの書き換え操作に伴う無駄な画面描画データの表示省略機能を実現し、前述した手法による同様の処理を実行することができる。
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(13)上を伝送させることができ、この通信ネットワーク(13)に接続されたコンピュータ装置(プログラムサーバ)から前記のプログラムデータを取り込んで記憶装置(記憶部34やメモリ32)に記憶させ、前述した同一オブジェクトの書き換え操作に伴う無駄な画面描画データの表示省略機能を実現することもできる。
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。