以下図面により本発明の実施の形態について説明する。
図1は、本発明の実施形態に係るSBC(Server Based Computing)システムの構成を示すブロック図である。
このSBCシステムは、有線または無線のLAN(Local Area Network)やWAN(Wide Area Network)からなるネットワークN上に接続されたサーバ装置10および複数のクライアント装置(Thin client)20,…を備える。
サーバ装置10は、テキスト作成処理プログラム,Webブラウザプログラム,表計算処理プログラム,メール処理プログラムなど、複数のアプリケーションプログラムを有し、当該サーバ装置10に接続されたクライアント装置20,…からの操作入力(入力イベント)信号に応じて起動しその処理を実行する。
このサーバ装置10において、クライアント装置20,…からの操作入力信号に応じたアプリケーションプログラムの実行に伴い、クライアント用のフレームバッファRAM14a(図2参照)上に生成された表示出力用の描画データGは、イメージ送信やコマンド送信を組み合わせてアクセス元のクライアント装置20,…へ転送される。
そして、クライアント装置20,…では、前記サーバ装置10から転送された描画データGがフレームバッファRAM25(図4参照)に展開され、表示装置26の表示画面に表示される。
つまり、このSBCシステムにおける各クライアント装置(Thin client)20,…は、何れもキーボードやマウスなどのユーザ操作に応じた入力機能とLCD表示部及びプリンタなどへの出力機能を主要な機能として有し、前記サーバ装置10が有している各種のアプリケーション機能やデータファイルの管理機能を持っていない。
そして、クライアント装置20,…からの操作入力(入力イベント)信号に応じてサーバ装置10にて起動実行される各種の処理に伴い生成されたデータファイルは、原則として、当該サーバ装置10内あるいは該サーバ装置10にて接続管理される磁気ディスクなどの記憶装置にユーザアカウント毎あるいは共有ファイルとして記憶され保存される。
図2は、前記SBCシステムにおけるサーバ装置10の回路構成を示すブロック図である。
サーバ装置10は、コンピュータとしてのCPU11を備え、このCPU11には、バス12を介してROM13、RAM14、フレームバッファRAM15、表示装置16が接続される。
また、CPU11には、バス12を介してキーボード,マウスなどの入力装置17、外部記憶装置18、クライアント装置20,…との通信I/F(インターフェイス)19が接続される。
CPU11は、ROM13のプログラムメモリ13aに予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってRAM14を作業用メモリとし回路各部の動作を制御するもので、入力装置17からのキー入力信号や通信I/F19を介して受信されるクライアント装置20からのユーザ操作に応じた処理指令(入力イベント)信号などに応じて前記種々のプログラムが起動・実行される。
このサーバ装置10において、クライアント装置20からの入力イベント信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザIDに対応付けられて外部記憶装置18に記憶される。またクライアント表示用の描画データGは、RAM14内のクライアント用フレームバッファRAM14aを使用して生成されると共に、通信I/F19からクライアント装置20へ転送されて表示出力される。
例えばクライアント装置20からの入力イベントがWebページHPの表示を要求するイベントである場合に、これに応答してサーバ装置10のWebブラウザプログラムにより取得されたWebページHPの全体データから、クライアント装置20の表示画面(26)に合わせた描画データGが生成されてクライアント用フレームバッファRAM14aに記憶される(図3(A)参照)。
そして、前記クライアント用フレームバッファRAM14aに生成された描画データGは、適切な圧縮方式で圧縮処理された後、適切なタイミングでクライアント装置20へ転送され、そのフレームバッファRAM25(図4参照)に記憶され表示される。
なお、前記クライアント用フレームバッファRAM14aに生成された描画データGは、前回の入力イベントに応じて生成された描画データG-1と画像に差のある部分を含む矩形の領域のみイメージで抽出され、表示画面(26)上の表示位置を指示する座標と共に送信される。
この際、前記クライアント用フレームバッファRAM14aに生成された描画データGのうち、前回の入力イベントに応じて生成された描画データG-1と画像に差のない矩形領域については、当該矩形領域のコピーコマンド共に、表示画面(26)上の表示位置を指示する座標が送信される。
図3は、前記サーバ装置10のクライアント用フレームバッファRAM14a上に生成されるWebページHPの描画データGと、画面スクロール時(1スクロール毎)にクライアント装置20へ送信される描画データG(Gk+Gnew)との関係を示す図である。
クライアント装置20からの入力イベントに応じて生成されたクライアント表示用の描画データGについて、図3(A)の状態において画面スクロールが発生すると、図3(B)に示すように、画像に変化がない矩形領域Gkについては、当該矩形領域Gkのコピーコマンドと共に、1スクロールの幅Dsに応じた表示画面(26)上の表示位置を指示する座標(a,b)が送信される。
これと共に、1スクロールの幅Dsで画像が変化した矩形領域Gnewについては、そのイメージデータと共に、表示画面(26)上の表示位置を指示する座標(c,d)が送信される。
一方、サーバ装置10自身の表示装置16にて表示させるための描画データは、フレームバッファRAM15上に生成される。
図4は、前記SBCシステムにおけるクライアント装置20の回路構成を示すブロック図である。
クライアント装置20は、コンピュータとしてのCPU21を備え、このCPU21には、バス22を介してROM23、RAM24、フレームバッファRAM25が接続される。そして、このフレームバッファRAM25に書き込まれた描画データG(図3参照)が、表示装置26の表示画面に表示される。
また、CPU21には、バス22を介して入力装置27、外部記憶装置28、前記サーバ装置10との通信I/F(インターフェイス)29が接続される。
CPU21は、ROM23のプログラムメモリ23aに予め記憶されているシステムプログラムに従ってRAM24を作業用メモリとし回路各部の動作を制御するもので、入力装置27からのキー入力信号、通信I/F29を介して受信されるサーバ装置10からのアプリケーション応答信号や転送描画データGなどに応じて前記システムプログラムが起動され実行される。
このクライアント装置20において、前記サーバ装置10におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶装置28に読み込ませて記憶させ、また生成転送された表示用の描画データGは、そのイメージやコマンドに従いフレームバッファRAM25に展開され表示装置26で表示出力される。
図5は、前記サーバ装置10とクライアント装置20におけるソフトウエア・モジュールの構成を示す図である。
サーバ装置10のプログラムメモリ13aに記憶されるサーバ制御プログラムは、RTT(Round Trip Time)測定モジュール13a1、画面制御モジュール13a2、通信モジュール13a3を有する。
RTT測定モジュール13a1は、ネットワークNにおけるクライアント装置20との間での伝送遅延の度合いを測定し、この測定結果を画面制御モジュール13a2に通知する機能を有する。
画面制御モジュール13a2は、クライアント装置20からの入力イベントに応じたアプリケーションプログラムを起動させて表示用の描画データGをクライアント用フレームバッファRAM14a上に生成し、前記RTT測定モジュール13a1から通知された伝送遅延の測定結果や画面スクロールの状態などに応じて、前記描画データGのクライアント装置20への送信スケジュールを制御する機能を有する。
通信モジュール13a3は、クライアント装置20から受け取った入力イベントデータやRTT測定のためのデータを、画面制御モジュール13a2やRTT測定モジュール13a1に引き渡す機能、およびRTT測定モジュール13a1から受け取ったRTT測定のためのデータや画面制御モジュール13a2から受け取った描画データGをクライアント装置20へ送信する機能を有する。
一方、クライアント装置20のプログラムメモリ23aに記憶されるクライアント制御プログラムは、通信モジュール23a1、入力モジュール23a2、画面表示モジュール23a3を有する。
通信モジュール23a1は、サーバ装置10との間でRTT測定のためのデータを受信/送信する機能、および入力モジュール23a2から受け取った入力イベントデータをサーバ装置10へ送信し、サーバ装置10から受信された表示用の描画データGを画面表示モジュール23a3に引き渡す機能を有する。
入力モジュール23a2は、ユーザ操作に応じた入力イベントデータを通信モジュール23a1に引き渡す機能を有する。
画面表示モジュール23a3は、通信モジュール23a1から受け取った表示用の描画データGを、そのイメージやコマンドに従いフレームバッファRAM25に展開して表示装置26に表示させる機能を有する。
図6は、前記サーバ装置10のRAM14に用意される主要なデータメモリを示す図である。
RAM14には、前記クライアント用フレームバッファRAM14aの他に、コピー命令タイムスタンプメモリ14b、コピー命令連続回数メモリ14c、スクロール中フラグメモリ14d、描画更新領域座標メモリ14e、画面送信FIFOメモリ14f、送信スケジューリングタイマメモリ14g、RTTメモリ14h、描画更新モードメモリ14i、画面転送予約数メモリ14jなどが用意される。
コピー命令タイムスタンプメモリ14bには、クライアント装置20からの入力イベントに応じたアプリケーションプログラムに従い発行される描画コマンドが、描画データGkのコピーコマンドであると判断された場合に、そのコマンド発行毎にタイムスタンプのデータが記憶される。
コピー命令連続回数メモリ14cには、前記コピー命令タイムスタンプメモリ14bに記憶された前回と今回のコピーコマンド発行に伴うタイムスタンプ間の差分が予め設定された閾値以下である場合に、そのコピーコマンドの発行回数が加算されて記憶される。
スクロール中フラグメモリ14dには、前記コピー命令連続回数メモリ14cに記憶されたコピーコマンドの発行回数が予め設定された閾値以上になった場合に、連続的な画面スクロールによる描画データGの更新が発生していることを示すフラグが記憶される。
描画更新領域座標メモリ14eには、クライアント表示用の描画データGが更新された場合に、前回の描画データG-1との画像変化部分を含む画像全体の中での矩形領域の座標が記憶される。
画面送信FIFOメモリ14fには、クライアント用フレームバッファRAM14aにて生成された描画データGが、クライアント装置20へ転送されるデータとしてバッファリングされるもので、この際、前回の描画データG-1との比較により更新された前記矩形領域のデータだけが圧縮処理され、例えば当該描画データGを生成したアプリケーションにより設定される画面スクロールの幅Ds(図3参照)の単位で記憶される。
送信スケジューリングタイマメモリ14gには、画面送信のスケジュール設定を一定時間毎に繰り返し実施するためのタイマデータが記憶される。
RTTメモリ14hには、前記RTT測定モジュール13a1によるRTT測定機能により測定されたクライアント装置20との間での伝送遅延時間tが記憶される。
前記サーバ装置10のRTT測定モジュール13a1によるRTT測定処理のシーケンス(1)〜(5)は次の通りである。
(1)サーバ装置10は、RTT測定リクエストを一定間隔毎にクライアント装置20へ送信する。
(2)クライアント装置20において、前記サーバ装置10から送信されたRTT測定リクエストが受信されると、上りのRTT測定パケットを前記サーバ装置10へ送信する。
(3)サーバ装置10において、前記クライアント装置20から送信された上りのRTT測定パケットが受信されると、下りのRTT測定パケットを前記クライアント装置20へ送信する。
(4)クライアント装置20において、前記サーバ装置10から送信された下りのRTT測定パケットが受信されると、前記上りのRTT測定パケット送出時のタイムスタンプと、当該下りのRTT測定パケット受信時との差分を伝送遅延時間tとし、サーバ装置10へ通知する。
(5)サーバ装置10に通知された伝送遅延時間tは、前記RTT測定モジュール13a1に渡されてRTTメモリ14hに記憶されると共に、前記画面制御モジュール13a2に渡される。
前記画面制御モジュール13a2は、前記スクロール中フラグメモリ14dに記憶されるフラグのセット(on)/リセット(off)の状態、および前記RTTメモリ14hに記憶されたクライアント装置20との間での伝送遅延時間tに基づき、クライアント画面更新のための描画データGの送信スケジュールを、後述する「Eager Updateモード」または「Lazy Updateモード」に設定して制御する。
図7は、前記サーバ装置10のスクロール中フラグの状態およびRTT測定モジュール13a1により取得された伝送遅延時間tに応じて設定される「Eager Updateモード」と「Lazy Updateモード」とによる画面送信スケジュールを対比して説明する図である。
サーバ装置10が画面を送信するスケジューリング方式は、主に以下の2つがあげられる。
(1)アプリケーションが描画コマンドを発行したタイミングに応じてその描画データGをリアルタイムに送信する方式(Eager Updateモード:図7(A)参照)。
(2)一定時間のインターバルを置き、その間の描画データGを前記一定時間のタイムアップに応じて纏めて送信する方式(Lazy Updateモード:図7(B)参照)。
クライアント画面更新のための描画データGの送信スケジュールについて、理想的には、図7(A)に示すように、余計な待ちが少なく、描画コマンドを生成順にリアルタイムに送信するEager Updateモードが望ましい。
しかしながら、伝送遅延の大きな環境でデータ量の大きい描画データGの送信(高品質な送信)を何度も繰り返すと、送信オーバヘッドが何度も起こって伝送遅延を更に助長してしまう。
このため、更新された描画データGの送信を何度も繰り返す必要のある連続的な画面スクロールが発生した場合、高圧縮(低画質)にしたデータ量の少ない描画データGを、伝送遅延の小さいときにEager Updateモードで送信することで、クライアント装置20の側でレスポンス良く更新画面を表示させる。そして、連続的な画面スクロールが終わった後に、前記高圧縮(低画質)で送信した既に更新済の描画データGについて、低圧縮(高画質)にした描画データGを、Lazy Updateモードで再送信することで、画面クロール後に素早く画質の回復を図る。
前記RAM14内の描画更新モードメモリ14iには、前記スクロール中フラグメモリ14dにおけるフラグがセット(on)状態にあって、且つ前記RTTメモリ14hに逐次更新されて記憶される伝送遅延時間tが、予め設定された閾値TH以下の場合に、前記Eager Updateモードを示すデータが記憶され、前記スクロール中フラグがリセット(off)状態にあるか、または前記伝送遅延時間tが閾値THを超える場合に、前記Lazy Updateモードを示すデータが記憶される。
画面転送予約数メモリ14jには、前記画面送信FIFOメモリ14fにバッファリングされた描画データGのクライアント装置20への転送待ち予約数(画面スクロールの場合はDs単位)が記憶される。
次に、前記構成のSBCシステムのサーバ装置10の動作について説明する。
図8は、前記SBCシステムのサーバ装置10が実行する描画更新処理の概要を示すフローチャートである。
クライアント装置20からの入力イベントに応じて実行されるアプリケーションプログラム(例えばWebブラウザプログラム)により、インターネットN上のWebサイトからWebページHPが取得され、クライアント表示用の描画データGが新規または更新されてフレームバッファRAM14a上に生成されると、描画コマンドの内容に応じて、今回の描画データGの生成処理が連続的な画面スクロール(スクロール中)に伴う描画更新処理であるか否か判断される(ステップSA)。
ここで、連続的な画面スクロール(スクロール中)に伴う描画更新処理であると判断されると(ステップSj(Yes))、当該連続的な画面スクロールに特化した描画データG(スクロール幅Ds分の矩形領域の描画データGnew)の画像圧縮処理が実行される(ステップSBs)。一方、連続的な画面スクロールに伴う描画更新処理中でないと判断されると(ステップSj(No))、通常の画像圧縮処理が実行される(ステップSBn)。
また同様に、連続的な画面スクロールに伴う描画更新処理中であると判断されると(ステップSj(Yes))、当該連続的な画面スクロールに特化した画面転送スケジューリング処理が実行される(ステップSCs)。一方、連続的な画面スクロールに伴う描画更新処理中でないと判断されると(ステップSj(No))、通常の画面転送スケジューリング処理が実行される(ステップSCn)。
そして、前記連続的な画面スクロールに伴う描画更新処理中かそうでないかに応じて画像圧縮処理されスケジューリングされた更新描画データGが、Eager UpdateモードまたはLazy Updateモードによる送信形態に応じて送信される(ステップSD)。
図9は、前記サーバ装置10が実行する描画更新処理に伴う連続的な画面スクロール(スクロール中)の判断処理(SA)を示すフローチャートである。
クライアント用フレームバッファRAM14aに対する描画データGの生成に伴い、アプリケーションプログラム(例えばWebブラウザプログラム)から発行される描画コマンドが確認されると(ステップA1)、当該描画コマンドにコピーコマンドが含まれるか否か判断される(ステップA2)。
ここで、前記描画コマンドにコピーコマンドが含まれると判断されると(ステップA2(Yes))、当該コピーコマンドの発行に伴うタイムスタンプがコピー命令タイムスタンプメモリ14bに記憶される(ステップA3)。
すると、前記コピー命令タイムスタンプメモリ14bに記憶された前回のタイムスタンプと今回のタイムスタンプとの差分(時間間隔)が求められ(ステップA4)、当該前回〜今回間のタイムスタンプの差分が、予め設定された閾値以下か否か、つまり、ある短い時間間隔で連続して描画データGの更新のためのコピーコマンドが発行されたか否か判断される(ステップA5)。
ここで、前記予め設定された時間間隔で連続して描画データGの更新のためのコピーコマンドが発行されたと判断されると(ステップA5(Yes))、当該連続したコピーコマンドの発行回数がコピー命令連続回数メモリ14cにカウントされて記憶される(ステップA6)。
すると、前記コピー命令連続回数メモリ14cに記憶された連続したコピーコマンドの発行回数が予め設定された閾値以上か否か、つまり、ある短い時間間隔で、且つある回数以上連続して描画データGの更新のためのコピーコマンドが発行された否か判断される(ステップA7)。
ここで、前記予め設定された回数以上連続して短い時間間隔のコピーコマンドが発行されたと判断されると(ステップA7(Yes))、連続的な画面スクロールに伴う描画更新処理の状態にあると判断され、スクロール中フラグメモリ14dにスクロール中を示すフラグがセット(on)される(ステップA8)。
一方、前記ステップA2において、前記描画コマンドにコピーコマンドが含まれないと判断された場合(ステップA2(No))、画面スクロールに伴う描画更新処理の状態にない(例えば、1画面分の描画データGが新規生成される場合)と判断され、前記スクロール中フラグ(14d)はセットされない。
また、前記ステップA5において、前回〜今回間のコピーコマンドに伴うタイムスタンプの差分が、予め設定された閾値以下でなく、短い時間間隔での連続したコピーコマンドの発行ではない(または、なくなった)と判断された場合(ステップA5(No))、前記コピー命令連続回数メモリ14cに記憶されている連続したコピーコマンドの発行回数がリセットされると共に、前記スクロール中フラグメモリ14dにセットされているスクロール中フラグがリセットされる(ステップA9)。
また、前記ステップA7において、前記コピー命令連続回数メモリ14cに記憶された連続したコピーコマンドの発行回数が予め設定された閾値以上に到達しないと判断された場合(ステップA7(No))、連続的な画面スクロールに伴う描画更新処理の状態ではないと判断され、前記スクロール中フラグ(14d)はセットされない。
こうして、連続的な画面スクロールに伴う描画更新処理の状態にあると判断されると、スクロール中フラグメモリ14dにフラグがセット(on)される。
図10は、前記サーバ装置10が実行する描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた更新描画データGの圧縮処理(SB)を示すフローチャートである。
前記スクロール中フラグメモリ14dにスクロール中フラグがセット(on)されているか否か(off)判断され(ステップB1,B2)、当該スクロール中フラグがセットされていると判断されると(ステップB2(Yes))、今回の画面スクロールにより更新されたスクロール幅Ds分の矩形領域(Gnew)(図3参照)の画像全体の中での座標が抽出され、描画更新領域座標メモリ14eに記憶される(ステップB3)。
すると、前記スクロール幅Ds分の矩形領域の描画データGnewが高圧縮モードで少ないデータ量に圧縮され(ステップB4)、表示画面上での描画位置を指示する座標情報と共に画面送信FIFOメモリ14fに登録される(ステップB5)。
一方、前記ステップB2において、前記スクロール中フラグメモリ14dにスクロール中フラグがセットされてない(off)と判断されると(ステップB2(No))、今回画面更新された描画データGは、通常圧縮モードで圧縮され(ステップB6)、画面送信FIFOメモリ14fに登録される(ステップB5)。
こうして、連続的な画面スクロールに伴い描画更新された描画データGnewは、高圧縮処理されて画面送信FIFOメモリ14fに登録され、後の画面送信処理(SD)に従いクライアント装置20へ送信される。一方、例えば画面全体が描画更新された描画データG、あるいは連続的でない単発的な画面スクロールに伴い描画更新された描画データGnewは、通常圧縮処理されて画面送信FIFOメモリ14fに登録され、後の画面送信処理(SD)に従いクライアント装置20へ送信される。
図11は、前記サーバ装置10が実行する描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた画面転送スケジューリング処理(SC)を示すフローチャートである。
送信スケジューリングタイマメモリ14gに記憶されたタイマデータに応じてタイマハンドラが起動されると(ステップC1)、前記描画更新領域座標メモリ14eに、既に高圧縮処理されて画面送信FIFOメモリ14fへ送られ送信されたスクロール幅Ds分の矩形領域(Gnew)(図3参照)の座標が記憶されているか否か判断される(ステップC2)。
ここで、前記描画更新領域座標メモリ14eに、スクロール幅Ds分の矩形領域(Gnew)の座標が記憶されていると判断されると(ステップC2(Yes))、スクロール中フラグメモリ14dの内容が読み出され(ステップC3)、そのスクロール中フラグがリセット(off)されているか否か判断される(ステップC4)。
そして、前記スクロール中フラグがリセット(off)されている、つまり現在、連続的な画面スクロールの後だと判断されると(ステップC4(Yes))、RTTメモリ14hの内容が読み出され(ステップC5)、その伝送遅延時間tが予め設定された閾値TH以下にあるか否か判断される(ステップC6)。
そして、前記伝送遅延時間tが予め設定された閾値TH以下にある、つまり現在、サーバ−クライアント間の伝送遅延が小さく良好な通信状態にあると判断されると(ステップC6(Yes))、さらに、画面転送予約数メモリ14jの内容が読み出され(ステップC7)、前記画面送信FIFOメモリ14fにバッファリングされて未送信となっている描画データGの転送待ち予約数が予め設定された閾値以下にあるか否か判断される(ステップC8)。
ここで、前記画面送信FIFOメモリ14fにバッファリングされている描画データGの転送待ち予約数が予め設定された閾値以下にある、つまり現在、本サーバ装置10の画面転送に伴う負荷が軽い状態にあると判断されると(ステップC8(Yes))、前記描画更新領域座標メモリ14eに記憶されているスクロール幅Ds分の矩形領域の座標に対応する描画データGnew(高圧縮モードで圧縮・送信済)が、通常圧縮(高品質)モードで圧縮される(ステップC9)。
そして現在、クライアント装置20からの入力イベントが無いことが確認されると(ステップC10(Yes))、前記通常圧縮(高品質)モードで圧縮された描画データGnewが、表示画面上での描画位置を指示する座標情報と共に画面送信FIFOメモリ14fに登録され、後の画面送信処理(SD)に従いクライアント装置20へ送信される(ステップC11)。
すると、前記通常圧縮処理されて画面送信FIFOメモリ14fに登録されたスクロール幅Ds分の矩形領域の座標が、前記描画更新領域座標メモリ14eから消去され(ステップC12)、さらに、前記送信スケジューリングタイマメモリ14gに記憶されたタイマデータが初期セットされる(ステップC13)。
一方、前記ステップC2において、描画更新領域座標メモリ14eに、高圧縮処理して送信処理済みであるスクロール幅Ds分の矩形領域(Gnew)の座標が記憶されてないと判断されるか(ステップC2(No)、または、同高圧縮送信済の矩形領域(Gnew)の座標が記憶されていると判断されても(ステップC2(Yes))、前記ステップC4において、スクロール中フラグがリセット(off)されてない、つまり現在、連続的な画面スクロール中であると判断されるか(ステップC4(No))、または、同スクロール中フラグがリセット(off)されていると判断されても(ステップC4(Yes))、前記ステップC6において、サーバ−クライアント間の伝送遅延時間tが予め設定された閾値TH以下にないと判断されるか(ステップC6(No))、または、前記ステップC8において、画面送信FIFOメモリ14fにバッファリングされている描画データGの転送待ち予約数が予め設定された閾値以下にないと判断されると(ステップC8(No))、前記矩形領域(Gnew)に対応する描画データGnewの通常圧縮モード(高品質)での圧縮・送信処理(ステップC9〜C12)は実行されず、前記送信スケジューリングタイマメモリ14gに記憶されたタイマデータが初期セットされる(ステップC13)。
また、前記スクロール中フラグ(off)(ステップC4(Yes))、RTT閾値TH以下(ステップC6(Yes))、画面転送予約数閾値以下(ステップC8(Yes))、の各条件がクリアされ、ステップC9において、スクロール幅Ds分の矩形領域の座標に対応する描画データGnew(高圧縮送信済)の通常圧縮(高品質)モードによる圧縮がされても、現在、クライアント装置20からの入力イベントが有ると判断されると(ステップC10(No))、当該通常圧縮処理された描画データGnewの送信処理(ステップC11,C12)は実行されず、前記送信スケジューリングタイマメモリ14gに記憶されたタイマデータが初期セットされる(ステップC13)。
こうして、連続的な画面スクロールに伴い、前記画像圧縮処理(SB)において高圧縮モードで圧縮処理され送信処理されたスクロール幅Ds分の矩形領域の描画データGnewは、この画面転送スケジューリング処理(SC)において、連続的な画面スクロール中でないこと、伝送遅延が小さいこと、画面転送予約数が少ないこと、クライアント装置20からの入力イベントがないことを条件に、通常圧縮モード(高品質)で圧縮処理され再送信される。
図12は、前記サーバ装置10が実行する描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた画面送信処理(SD)を示すフローチャートである。
前記スクロール中フラグメモリ14dにフラグがセット(on)されているか否か(off)が判断され(ステップD1,D2)、当該スクロール中フラグがセットされていると判断されると(ステップD2(Yes))、RTTメモリ14hに記憶されている伝送遅延時間tが予め設定された閾値TH以下にあるか否か判断される(ステップD3)。
そして、前記伝送遅延時間tが予め設定された閾値TH以下にある、つまり現在、サーバ−クライアント間の伝送遅延が小さく良好な通信状態にあると判断されると(ステップD3(Yes))、前記画面送信FIFOメモリ14fに記憶されているクライアント画面更新のための描画データG(Gnew)の送信スケジュールが「Eager Updateモード」に設定され、描画更新モードメモリ14iに記憶される(ステップD4)。
一方、前記ステップD2において、スクロール中フラグがリセット(off)されていると判断された場合(ステップD2(No))、または、スクロール中フラグがセット(on)されていると判断された場合でも(ステップD2(Yes))、前記伝送遅延時間tが予め設定された閾値TH以下になく、現在、サーバ−クライアント間の伝送遅延が大きい通信状態にあると判断された場合には(ステップD3(No))、前記画面送信FIFOメモリ14fに記憶されているクライアント画面更新のための描画データG(Gnew)の送信スケジュールが「Lazy Updateモード」に設定され、描画更新モードメモリ14iに記憶される(ステップS4)。
したがって、前記構成のSBCシステムのサーバ装置10によれば、連続的な画面スクロール中には、伝送遅延が小さいときに限り、スクロール幅Dsに対応する矩形領域の描画データGnewを、「高圧縮モード」で少ないデータ量(低品質)に圧縮すると共に、「Eager Updateモード」でリアルタイムにクライアント装置20へ送信して表示更新させる。そして、前記連続的な画面スクロールが終わった後、伝送遅延が小さく、且つ画面送信予約数が少なく、且つクライアント装置20からの入力イベントがないときを判断して、前記高圧縮して送信済である描画データGnewを、「通常圧縮モード」(高品質)で圧縮すると共に、「Lazy Updateモード」で纏めてクライアント装置20へ再送信し、高画質に表示更新させる。
このため、特に、操作レスポンスが悪化しやすい連続的な画面スクロールによる描画更新処理を実行する場合に限り、その画面スクロール中は、順次更新される描画データGnewを高圧縮(低品質)でリアルタイムに送信してレスポンス性を確保し、画面スクロール後は、前記送信済の描画データGnewを低圧縮(高品質)で纏めて送信して閲覧性を確保するという2段階の画面転送を、何れも伝送遅延が小さいときを確認して実施できる。よって、無線WANのように伝送遅延が避けられないネットワーク環境においても、システム全体への負荷を抑制しつつ、快適な画面スクロールのレスポンスを実現できる。
なお、前記実施形態において記載したSBCシステムのサーバ装置10による各処理の手法、すなわち、図8のフローチャートに示す描画更新処理、図9のフローチャートに示す前記描画更新処理に伴う連続的な画面スクロール(スクロール中)の判断処理(SA)、図10のフローチャートに示す前記描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた更新描画データGの圧縮処理(SB)、図11のフローチャートに示す前記描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた画面転送スケジューリング処理(SC)、図12のフローチャートに示す前記描画更新処理に伴う連続的な画面スクロール中か否かの判断処理(SA)に応じた画面送信処理(SD)等の各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記録装置18の媒体に格納して配布することができる。そして、サーバ装置10のコンピュータ(CPU11)は、この外部記憶装置18の媒体に記憶されたプログラムを記憶装置(フラッシュROM13やRAM14)に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記実施形態において説明した連続的な画面スクロールに伴う描画更新処理に特化した描画データGnewの2段階送信機能を実現し、前述した手法による同様の処理を実行することができる。
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(N)上を伝送させることができ、この通信ネットワーク(N)に接続されたコンピュータ装置(プログラムサーバ)から前記のプログラムデータをサーバ装置10に取り込んで記憶装置(フラッシュROM13やRAM14)に記憶させ、前述した連続的な画面スクロールに伴う描画更新処理に特化した描画データGnewの2段階送信機能を実現することもできる。
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。