(57)【特許請求の範囲】
【請求項１】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、
前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を一時的に格納する画面情報一時格納手段と、
前記クライアント装置に表示するために前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を格納する画面情報格納手段と、
前記コマンド実行画像を一時的に格納する際に、前記コマンドを関連づけて記憶するコマンドテーブルを作成するコマンドログ手段と、
前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、該当する前記コマンドを前記クライアント装置へ送信する送信手段と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記コマンドログ手段により作成された前記コマンドテーブルは、前記コマンドに関する情報と前記コマンドを領域別に関連付ける情報とを含むことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
さらに、
前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、前記コマンド実行画像が前記コマンドにより描画する領域に含まれる場合は、前記コマンドにより描画する領域を前記コマンド実行画像を描画する領域となるように前記コマンドを変更するコマンド変更手段、
備えることを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、
前記サービス要求を構成する各コマンドが実行されたことにより生成される各コマンド実行画像を一時的に格納する画面情報一時格納手段、
前記クライアント装置に表示するために前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を格納する画面情報格納手段、
前記コマンド実行画像を一時的に格納する際に、前記コマンドを関連づけて記憶するコマンドテーブルを作成するコマンドログ手段、
前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、該当する前記コマンドを前記クライアント装置へ送信する送信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを動作させるサーバ装置に対してサービス要求を行なうクライアント装置と、クライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバ装置とが、ネットワークを介して相互に接続可能に構成されたサーバベースコンピューティングシステムに関する。
【背景技術】
【０００２】
近年、ネットワークの高速化に伴い、サーバ装置の画面をリアルタイムにネットワークを介して送信し、遠隔のクライアント装置に表示させ、遠隔からサーバ装置の操作を行なうサーバベースコンピューティングシステム（シンクライアントシステム）が広まってきている。たとえば、リモートマシンのデスクトップを手元のマシンから使えるようにするＶＮＣ（Virtual Network Computing）などがそのサーバベースコンピューティングシステムの例としてある。
【０００３】
サーバベースコンピューティングシステムとは、クライアント装置（シンクライアント装置とも呼ばれる）とサーバ装置とがネットワークを介して相互に接続可能に構成されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行なうと、サーバ装置がクライアント装置からのサービス要求に基づいて、データの管理およびアプリケーションプログラムを動作させるというものである（例えば、特許文献１参照。）。
【０００４】
サーバ装置はクライアント装置用の表示データを作成し、これをクライアント装置に送る。クライアント装置では、使用者のキーやマウス装置等の操作情報を、ネットワークを介してサーバ装置へ送り、前記サーバ装置側で作成されたクライアント装置用の表示データを受け取って表示する。クライアント装置は、ネットワーク機器、表示装置、マウス装置やキーボード等の入力装置を備えているだけでよく、データをクライアント装置内に持たないためハードディスク等のストレージが不要であり、アプリケーションプログラムの実行を行なわないためクライアント装置に必要となる処理の負荷は軽い。
【０００５】
図１は、サーバベースコンピューティングシステムの構成を示す図である。
図１に示すとおり、サーバベースコンピューティングシステムは、クライアント装置１０からは、キーボードやマウスなどの入力装置からの入力情報をサーバ装置２０へ送り、その入力情報に基づいてサーバ装置２０が処理を実行し、更新された画面情報（座標、大きさと画像）をクライアント装置１０へ送るというものである。クライアント装置１０は、その画面情報を表示装置に反映させる。
【０００６】
図２は、サーバベースコンピューティングシステムの概要を説明するための図である。
図２に示す通り、クライアント装置１０とサーバ装置２０は、ネットワーク（通信網）を介して互いに接続され、サーバベースコンピューティングシステムを形成している。クライアント装置１０が無線通信を行なう場合には、中継装置３０およびネットワークを介してサーバ装置２０と通信を行なう。
【０００７】
このようなサーバベースコンピューティングシステムでは、例えば、サーバ装置２０からクライアント装置１０に画像データを転送する際に、更新の発生した画像データを低画質で送信することにより、画像転送に利用可能な帯域の制限が受けにくくなり、画面転送のリアルタイム性が向上し、低画質データの送信後に改めて高画質の画像データを送信することにより、画質の劣化を目立たせなくするという技術が開示されている（例えば、特許文献２参照。）。
【０００８】
このようなサーバベースコンピューティングシステムにおいて、サーバ装置２０内の画面に変更が発生した場合は、仮想のＶＲＡＭから変更前後の差分データを抽出し、その差分データを画面データとしてクライアント装置１０へ送信している。通常、その画面データの送信方法としては、
【０００９】
（１）イメージ送信
（２）コマンド送信
の二通りの送信方法が存在する。
【００１０】
（２）コマンド送信には、例えば、「座標」「幅」「高さ」「塗りつぶし色」を送信する「単色塗りつぶし送信」と、「座標」「幅」「高さ」「パターンイメージ」を送信する「単一パターン塗りつぶし送信」とがある。
【００１１】
前者のイメージ送信は、仮想のＶＲＡＭに保存された画面のピクセルデータをイメージ情報として（圧縮し）送信する方法であり、後者のコマンド送信は、画面を構成するベクトルデータのみを送信し、ピクセルデータへの展開はクライアント装置１０側にゆだねる方法である。
【００１２】
このような前者のイメージ送信の場合、データ量が大きくなる欠点があるがクライアント装置１０に依存しないという特徴があり、後者のコマンド送信の場合、データ量は削減できるがクライアント装置１０に依存してしまうという特徴がある。
【００１３】
サーバベースコンピューティングシステムにおいては、データ量の削減がパフォーマンスに影響するため、後者のコマンド送信のコマンド対応を如何に効率的に実装するかが重要な問題である。
【００１４】
ここで、クライアント装置１０に表示させる画面情報のサーバ装置２０からの送信（画面転送）を考えるとき、サーバ装置２０内部での描画処理の考え方が大切になる。サーバ装置２０内の画面描画の描画先は大きく分けて、（１）オンスクリーン（OnScreen）メモリと（２）オフスクリーン（OffScreen）メモリの二つのメモリ領域が存在する。前者のオンスクリーンメモリは、画面の変化に対応して表示するためのメモリ領域であり、後者のオフスクリーンメモリは、一度描画した画面を再利用するために保存する一時メモリ領域であり、画面には反映されない。例えば、ウインドウズシステムのメニューバーにある「ファイル（Ｆ）」という画面は何度も利用され、画面には反映されない。
【００１５】
図３は、オフスクリーンメモリ２１１とオンスクリーンメモリ２１２との関係を説明するための図である。
クライアント装置１０から要求されたサービスは各種のコマンドから構成されており、これらの各種コマンドは、主に、オフスクリーンメモリ２１１に対する表示コマンド、オンスクリーンメモリ２１２に対する表示コマンド、オフスクリーンメモリ２１１に格納された画像データをオンスクリーンメモリ２１２に複写するためのコピーコマンドと３種類に分類することができる。
【００１６】
図３に示したように、オフスクリーンメモリ２１１に格納された画像データをクライアント装置２０の画面に反映させるには、オフスクリーンメモリ２１１の内容をオンスクリーンメモリ２１２に複写（コピー）することで実行される。複写された画像データがクライアント装置１０への送信対象となっていた。
【００１７】
【特許文献１】特開２００５−２２８２２７号公報
【特許文献２】特開２００６−２４６１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
図４は、従来の問題点を説明するための図である。
上述したような従来のサーバベースコンピューティングシステムの場合、図４に示したように、オフスクリーンメモリ２１１の内容をオンスクリーンメモリ２１２に複写する際、複数のコマンドの実行結果が画像データとしてマージされるため、クライアント装置１０への送信はイメージをそのまま又は圧縮して送信するしかなく、データ量が増大しがちになり、その結果、パフォーマンスが劣化する傾向にあるという問題点があった。
【００１９】
本発明は、上記問題点に鑑みてなされたものであり、サーバ装置２０からクライアント装置１０へ送信する画面データのデータ量を少なくすることにより、画面データの送信速度を速くすることが可能なサーバベースコンピューティングシステムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のサーバ装置は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を一時的に格納する画面情報一時格納手段と、  前記クライアント装置に表示するために前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を格納する画面情報格納手段と、前記コマンド実行画像を一時的に格納する際に、前記コマンドを関連づけて記憶するコマンドテーブルを作成するコマンドログ手段と、前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、該当する前記コマンドを前記クライアント装置へ送信する送信手段とを備えることを特徴とする。
【００２１】
また、本発明のサーバ装置は、前記コマンドログ手段により作成された前記コマンドテーブルが、前記コマンドに関する情報と前記コマンドを領域別に関連付ける情報とを含むことが望ましい。
【００２２】
また、本発明のサーバ装置は、さらに、前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、前記コマンド実行画像が前記コマンドにより描画する領域に含まれる場合は、前記コマンドにより描画する領域を前記コマンド実行画像を描画する領域となるように前記コマンドを変更するコマンド変更手段を備えることが望ましい。
【００２３】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、前記サービス要求を構成する各コマンドが実行されたことにより生成される各コマンド実行画像を一時的に格納する画面情報一時格納手段、前記クライアント装置に表示するために前記サービス要求を構成するコマンドが実行されたことにより生成されるコマンド実行画像を格納する画面情報格納手段、前記コマンド実行画像を一時的に格納する際に、前記コマンドを関連づけて記憶するコマンドテーブルを作成するコマンドログ手段、前記画面情報一時格納手段に格納されたコマンド実行画像を前記画面情報格納手段に複写する際に、前記コマンドログ手段により作成されたコマンドテーブルを参照し、該当する前記コマンドを前記クライアント装置へ送信する送信手段として機能させるためのプログラムである。
【発明の効果】
【００２４】
本発明によれば、サーバ装置２０からクライアント装置１０へ送信する画面データをイメージデータではなく、コマンドデータとして送信するので、データ量が少なくなり、画面データの送信速度を速くすることができる。
【００２５】
また、本発明によれば、従来、オフスクリーンメモリ２１１のデータをオンスクリーンメモリ２１２へ複写する際に、イメージデータとして複写することしかできなかったが、オフスクリーンメモリ２１１へ書き込んだコマンドのままコマンドログに格納しているので、コマンドのままオフスクリーンメモリ２１１のデータをオンスクリーンメモリ２１２へ複写することが可能となる。
【００２６】
また、本発明によれば、オフスクリーンメモリ２１１のデータをオンスクリーンメモリ２１２へコピーする際、コマンドの種類を判別してイメージデータとしてもオフスクリーンメモリ２１１のデータをオンスクリーンメモリ２１２へ複写することができるので、コマンドの種類によって最適な送信方法が選択することが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について図面を参照しながら説明する。
まず、本発明の実施の形態について概略を説明する。
本発明が適用されるサーバ装置２０は、ネットワークを介したクライアント装置１０からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置１０へ送信するサーバ装置２０である。そして、イメージデータ、場合によっては圧縮したイメージデータとクライアント装置１０側で再生可能なコマンドデータとの双方をクライアント装置１０へ送信することが可能であり、オフスクリーンメモリ２１１に対して実行された描画コマンドのログを管理し、オフスクリーンメモリ２１１のデータがオンスクリーンメモリ２１２に反映された場合、それをコマンドとしてクライアント装置１０に送信する機能を有する。
【００２８】
また、オフスクリーンメモリ２１１の情報とコマンド情報とをリストとして保持し、オフスクリーンメモリ２１１からオンスクリーンメモリ２１２へ複写が発生した場合に、該当するコマンドリストをクライアント装置１０に送信することでデータ量を削減する。
【００２９】
図５は、クライアント装置１０のハードウェア構成の概略を示す図である。
図５において、クライアント装置１０は、ＣＰＵ（中央処理装置：Central Processing Unit）３０２、各種のデータや信号等を入力するための入力装置３０３、画像やその他の情報を表示するための表示装置３０４、クライアント装置１０において実行する処理を実行するプログラムの他、クライアント装置１０の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ３０５やＲＡＭ３０６、表示装置３０４に表示するための画像を一時的に格納するフレームバッファＲＡＭ３０７、無線ＬＡＮや携帯電話網等のネットワークに接続するための通信Ｉ／Ｆ３０８、画像データ、通信データを始め様々な情報を記録するための外部記憶装置３０９や補助記憶装置３１０がバス３０１に接続されて構成され、ＣＰＵ３０２がこれらの各部を制御している。
【００３０】
図６は、サーバ装置２０のハードウェア構成の概略を示す図である。
図６において、サーバ装置２０は、ＣＰＵ２０２、各種のデータや信号等を入力するための入力装置２０３、画像やその他の情報を表示するための表示装置２０４、サーバ装置２０において実行する処理を実行するプログラムの他、サーバ装置２０の各機能を制御し実行するための制御プログラム及びテーブルデータなどが収納されたＲＯＭ２０５やＲＡＭ２０６、表示装置２０４に表示するための画像を一時的に格納するＶＲＡＭ２０７、ＬＡＮ等のネットワークに接続するための通信Ｉ／Ｆ２０８、画像データ、通信データを始め様々な情報を記録するための外部記憶装置２０９や補助記憶装置２１０、クライアント装置１０からのサービス要求を構成する各コマンドが実行されたことにより生成される各コマンド実行画像を一時的に格納するオフスクリーンメモリ２１１、クライアント装置１０の表示装置３０４に表示するためにクライアント装置１０からのサービス要求を構成する各コマンドが実行されたことにより生成される各コマンド実行画像を格納するオンスクリーンメモリ２１２がバス２０１に接続されて構成され、ＣＰＵ２０２がこれらの各部を制御している。
【００３１】
図７は、コマンドログを説明するための図である。
図７において、コマンドログは、クライアント装置１０からのサービス要求を構成する各コマンドのうち、描画関連のコマンドが、コマンド別に図１１に示すような画面領域毎に各コマンドが前後のポインターによりリンクされた形で格納されている。そして、クライアント装置１０へ送信するための送信キュー（Queue）には、そのままコマンドとして格納される。
【００３２】
次に、本発明を更に具体的に説明する。本発明は、サーバ装置２０において実行されるサーバ処理として実現する。
上述したように、サーバ装置２０の内部における画面描画は目に見える形でのオンスクリーンメモリ２１２への描画と、目に見えない形でのオフスクリーンメモリ２１１への描画に大別される。
【００３３】
後者のオフスクリーンメモリ２１１は、一度作成した画面を再利用するために存在するが、この際には、図３及び図４を用いて上述したように、オフスクリーンメモリ２１１のメモリ領域をオンスクリーンメモリ２１２のメモリ領域に単純にメモリコピー（複写）をすることで実現されている。つまり、コピー元（以下、「ＳＲＣ」（Sourceの略）と表記する）がオフスクリーンメモリ２１１であり、コピー先（以下、「ＤＳＴ」（Destinationの略）と表記する）がオンスクリーンメモリ２１２の場合に、再利用されるオフスクリーンメモリ２１１が画面に反映される。この場合に、図７に示したように管理されたオフスクリーンメモリ２１１への描画ログをクライアント装置１０側に送信できれば、図４に示したようにコマンド情報を失わずに、コマンドをコマンドのまま少ないデータ量でクライアント装置１０に送信することが可能となる。
【００３４】
ここでの本発明のポイントは、
（１）オフスクリーンメモリ２１１への描画コマンドをどのように管理するか
（２）オンスクリーンメモリ２１２に複写されるとき、複写されるべき描画コマンドをいかに抽出するか
【００３５】
の２点にある。
次に、上述の本発明の２点のポイントを順に説明する。
図８は、オフスクリーンメモリ２１１またはオンスクリーンメモリ２１２の描画メモリ配列を示す図である。
【００３６】
通常、コンピュータの画面を保持するためのメモリは、オフスクリーンメモリ２１１のメモリ領域とオンスクリーンメモリ２１２のメモリ領域とを問わずこれらが統合した形で、画面番号とオフスクリーンメモリ２１１かオンスクリーンメモリ２１２かを識別するためのフラグ（例えば、オフスクリーンメモリ２１１を示すフラグが「０」で、オンスクリーンメモリ２１２を示すフラグが「１」）をもつ形で構成されている。
【００３７】
まず、「（１）オフスクリーンメモリ２１１への描画コマンドをどのように管理するか」について、図９を用いて説明する。
図９は、サーバ装置２０において実行されるサーバ処理の流れを示すフローチャートである。
【００３８】
ステップＳ９０１において、描画コマンドを受信すると、ステップＳ９０２において、領域番号を使って領域情報の検索を実行する。描画コマンドは、図３に示したようなに、オフスクリーンメモリ２１１またはオンスクリーンメモリ２１２のいずれかのメモリ領域に対して実行されるが、この場合、かならず図８に示した領域番号が渡される。
【００３９】
次に、ステップＳ９０３において、フラグの値がオンスクリーンメモリ２１２を示すフラグ「１」であるか否かを判断する。
そして、領域番号からデータ構造を検索して、フラグが「１」であると判断された場合（ステップＳ９０３：ＹＥＳ）、すなわちオンスクリーンメモリ２１２のメモリ領域への描画の場合であれば、目に見える変更であるので、ステップＳ９０４において、画面データをそのままクライアント装置１０に送信する。他方、フラグが「０」であると判断された場合（ステップＳ９０３：ＮＯ）、すなわちオフスクリーンメモリ２１１のメモリ領域への描画の場合であれば、図１０を用いて後述するサブルーチン「オフスクリーンコマンド管理処理」のようにしてコマンドログを管理する。
【００４０】
描画コマンドがオフスクリーンメモリ２１１に対するものである場合、コマンドログを管理する必要がある。ここで、オフスクリーンメモリ２１１に格納されたデータがオンスクリーンメモリ２１２に反映されるのは、複写コマンドのＳＲＣがオフスクリーンメモリ２１１であって、かつＤＳＴがオンスクリーンメモリ２１２の場合である。この場合、複写コマンドについては、ＳＲＣ及びＤＳＴそれぞれの「領域番号」「Ｘ座標」「Ｙ座標」「幅」「高さ」が渡されるため、これらの情報と、コマンド特有の情報（例えば、上述の「単色塗りつぶし送信」の場合、「塗りつぶし色」がこれに相当）を保存しておく必要がある。
【００４１】
次に、「（２）オンスクリーンメモリ２１２に複写されるとき、複写されるべき描画コマンドをいかに抽出するか」について、図１０及び図１１を用いて説明する。ＳＲＣがオフスクリーンメモリ２１１であり、ＤＳＴがオンスクリーンメモリ２１２である場合に、オフスクリーンメモリ２１１に書き込まれたものがオンスクリーンメモリ２１２に反映されるトリガとなる。このとき、領域番号、Ｘ座標、Ｙ座標、幅、高さが渡されるので、これらの情報をもとにオフスクリーンメモリ２１１のコマンドログを作成し、作成したコマンドログに基づいて必要なコマンドをクライアント装置１０に送信する。
【００４２】
図１０は、サブルーチン「オフスクリーンコマンド管理処理」の流れを示すフローチャートであり、図１１は、コマンドログの抽出を説明するための図である。
まず、図１０のステップＳ１００１において、複写コマンド（コピーコマンド）を受信する。
【００４３】
図１１に示したように、コマンドログのデータ構造は、（ア）領域番号管理配列と（イ）コマンドリスト保持リストとの２つのデータ構造によって管理され、（ア）には（イ）のコマンドリスト保持リストの先頭リストのアドレスと、図８に示した領域番号と同じ領域番号が保持されている。
【００４４】
そして、図１０のステップＳ１００２において、複写描画の関数に渡される領域番号をもとに、図１１の（ア）から、ＳＲＣとなるオフスクリーンメモリ２１１の配列を検索する。
【００４５】
次に、図１０のステップＳ１００３において、図１１の（イ）の先頭アドレスを取得する。
図１１の（イ）は、双方向リンクリストのデータ構造であり、それぞれのリストはコマンド実行順にリストに保持される。各リストは１つ前のリストと１つ後のリストのアドレスを保持する。なお、該当するものがない場合は、ＮＵＬＬポインタを指す。各リストには前述した必要なリスト（Ｘ座標、Ｙ座標、幅、高さ、コマンド情報）を保持する。これにより、オフスクリーンメモリ２１１からオンスクリーンメモリ２１２に複写コマンドが発行される際、どのコマンドを複写すべきであるか、必要な情報を保持することができる。
【００４６】
次に、図１０のステップＳ１００４において、リストの末尾に達したか否かを判断する。末尾に達したら（ステップＳ１００４：ＹＥＳ）、本サブルーチン「オフスクリーンコマンド管理処理」を終了する。
【００４７】
リストの末尾に達していなかった場合（ステップＳ１００４：ＮＯ）は、ステップＳ１００５において、ＳＲＣの領域（Ｘ座標、Ｙ座標、幅、高さ）から送信すべきコマンドリストを探し出し、領域が含まれない場合は次のリストへと移る。
【００４８】
そして、ステップＳ１００６において、領域が完全に含まれるか否かを判断し、完全に含まれない場合（ステップＳ１００６：ＮＯ）、すなわち一部だけ含まれる場合は、ステップＳ１００７において、図１２及び図１３を用いて後述するサブルーチン「オフスクリーンコマンド管理処理」を実行することにより、ステップＳ１００８において、該当領域だけを切り出してクライアント装置１０へと送信する。
【００４９】
他方、領域が完全に含まれる場合（ステップＳ１００６：ＹＥＳ）は、ステップＳ１００８において、そのリストをそのままクライアント装置１０へと送信する。
そして、ステップＳ１００９において、次にリストに移り、ステップＳ１００４以降をリストの末尾に達するまで（ステップＳ１００４でＹＥＳと判断されるまで）繰り返す。
【００５０】
このように、サブルーチン「オフスクリーンコマンド管理処理」は、オフスクリーンメモリ２１１から渡された情報に基づいて、サーバベースコンピューティングシステムが対応している描画コマンドの場合はコマンド情報をクライアント装置１０に送信し、対応していない場合はイメージデータそのものをオフスクリーンメモリ２１１の仮想ＶＲＡＭから切り出し、それをイメージ圧縮することでクライアント装置１０に送信して、一連の処理を終了する。
【００５１】
図１２は、サブルーチン「含まれる領域の切り出し処理」を説明するための図であり、図１３は、サブルーチン「含まれる領域の切り出し処理」の流れを示すフローチャートである。
【００５２】
まず、ステップＳ１３０１において、複写領域のＸ座標である「ｓｘ」がリスト領域のＸ座標である「ｌｘ」より大きいか否かを判断し、大きいと判断した場合（ステップＳ１３０１：ＹＥＳ）は、ステップＳ１３０２において、変数「ｍｘ」に複写領域のＸ座標である「ｓｘ」を代入し、大きくないと判断した場合（ステップＳ１３０１：ＮＯ）は、ステップＳ１３０３において、変数「ｍｘ」にリスト領域のＸ座標である「ｌｘ」を代入する。
【００５３】
次に、ステップＳ１３０４において、複写領域のＹ座標である「ｓｙ」がリスト領域のＹ座標である「ｌｙ」より大きいか否かを判断し、大きいと判断した場合（ステップＳ１３０４：ＹＥＳ）は、ステップＳ１３０５において、変数「ｍｙ」に複写領域のＹ座標である「ｓｙ」を代入し、大きくないと判断した場合（ステップＳ１３０４：ＮＯ）は、ステップＳ１３０６において、変数「ｍｙ」にリスト領域のＹ座標である「ｌｙ」を代入する。
【００５４】
次に、ステップＳ１３０７において、リスト領域のＸ座標である「ｌｘ」とリスト領域の幅である「ｌｗ」との和（ｌｘ＋ｌｗ）が複写領域のＸ座標である「ｓｘ」と複写領域の幅である「ｓｗ」との和（ｓｘ＋ｓｗ）より小さいか否かを判断する。そして、小さいと判断した場合（ステップＳ１３０７：ＹＥＳ）は、ステップＳ１３０８において、リスト領域のＸ座標である「ｌｘ」とリスト領域の幅である「ｌｗ」との和（ｌｘ＋ｌｗ）から、ステップＳ１３０２で複写領域のＸ座標である「ｓｘ」を代入した、またはステップＳ１３０３でリスト領域のＸ座標である「ｌｘ」を代入した変数「ｍｘ」の値を減算して、変数「ｍｗ」に代入する。他方、ステップＳ１３０７で小さくないと判断した場合（ステップＳ１３０７：ＮＯ）は、ステップＳ１３０９において、複写領域のＸ座標である「ｓｘ」と複写領域の幅である「ｓｗ」との和（ｓｘ＋ｓｗ）から、ステップＳ１３０２で複写領域のＸ座標である「ｓｘ」を代入した、またはステップＳ１３０３でリスト領域のＸ座標である「ｌｘ」を代入した変数「ｍｘ」の値を減算して、変数「ｍｗ」に代入する。
【００５５】
次に、ステップＳ１３１０において、リスト領域のＹ座標である「ｌｙ」とリスト領域の高さである「ｌｈ」との和（ｌｙ＋ｌｈ）が複写領域のＹ座標である「ｓｙ」と複写領域の高さである「ｓｈ」との和（ｓｙ＋ｓｈ）より小さいか否かを判断する。そして、小さいと判断した場合（ステップＳ１３１０：ＹＥＳ）は、ステップＳ１３１１において、リスト領域のＹ座標である「ｌｙ」とリスト領域の高さである「ｌｈ」との和（ｌｙ＋ｌｈ）から、ステップＳ１３０５で複写領域のＹ座標である「ｓｙ」を代入した、またはステップＳ１３０６でリスト領域のＹ座標である「ｌｙ」を代入した変数「ｍｙ」の値を減算して、変数「ｍｈ」に代入する。他方、ステップＳ１３１０で小さくないと判断した場合（ステップＳ１３１０：ＮＯ）は、ステップＳ１３１２において、複写領域のＹ座標である「ｓｙ」と複写領域の高さである「ｓｈ」との和（ｓｙ＋ｓｈ）から、ステップＳ１３０５で複写領域のＹ座標である「ｓｙ」を代入した、またはステップＳ１３０６でリスト領域のＹ座標である「ｌｙ」を代入した変数「ｍｙ」の値を減算して、変数「ｍｈ」に代入する。
【００５６】
そして、ステップＳ１３１３において、コマンドの矩形領域のｘ座標を、ステップＳ１３０２またはステップＳ１３０３で代入された変数ｍｘの値に変更し、コマンドの矩形領域のｙ座標を、ステップＳ１３０５またはステップＳ１３０６で代入された変数ｍｙの値に変更し、コマンドの矩形領域の幅を、ステップＳ１３０８またはステップＳ１３０９で代入された変数ｍｗの値に変更し、コマンドの矩形領域の高さを、ステップＳ１３１１またはステップＳ１３１２で代入された変数ｍｈの値に変更する。
【００５７】
以上説明したように、オフスクリーンメモリ２１１に対して実行された描画コマンドをコマンドログとして管理するため、コマンドに付随するセマンティック（意味的）な情報が消失するようなことがない。これにより、コマンドをコマンドとしてクライアント装置１０に送信できるため、データ量を削減する効果があり、パフォーマンス向上につながる。
【００５８】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、サーバ装置の一機能としてハードウェアまたはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）ボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。
【００５９】
また、本発明が適用されるサーバ装置は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００６０】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、サーバ装置に供給し、そのサーバ装置のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【００６１】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【００６２】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００６３】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００６４】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【００６５】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００６６】
【図１】サーバベースコンピューティングシステムの構成を示す図である。
【図２】サーバベースコンピューティングシステムの概要を説明するための図である。
【図３】オフスクリーンメモリ２１１とオンスクリーンメモリ２１２との関係を説明するための図である。
【図４】従来の問題点を説明するための図である。
【図５】クライアント装置１０のハードウェア構成の概略を示す図である。
【図６】サーバ装置２０のハードウェア構成の概略を示す図である。
【図７】コマンドログを説明するための図である。
【図８】オフスクリーンメモリ２１１またはオンスクリーンメモリ２１２の描画メモリ配列を示す図である。
【図９】サーバ装置２０において実行されるサーバ処理の流れを示すフローチャートである。
【図１０】サブルーチン「オフスクリーンコマンド管理処理」の流れを示すフローチャートである。
【図１１】コマンドログの抽出を説明するための図である。
【図１２】サブルーチン「含まれる領域の切り出し処理」を説明するための図である。
【図１３】サブルーチン「含まれる領域の切り出し処理」の流れを示すフローチャートである。
【符号の説明】
【００６７】
１０      クライアント装置
２０      サーバ装置
３０      中継装置
２０１    バス
２０２    ＣＰＵ
２０３    入力装置
２０４    表示装置
２０５    ＲＯＭ
２０６    ＲＡＭ
２０７    フレームバッファＲＡＭ
２０８    通信Ｉ／Ｆ
２０９    外部記憶装置
２１０    補助記憶装置
２１１    オフスクリーン（OffScreen）メモリ
２１２    オンスクリーン（OnScreen）メモリ
３０１    バス
３０２    ＣＰＵ
３０３    入力装置
３０４    表示装置
３０５    ＲＯＭ
３０６    ＲＡＭ
３０７    フレームバッファＲＡＭ
３０８    通信Ｉ／Ｆ
３０９    外部記憶装置
３１０    補助記憶装置
【図１】
0004946667.tif 000002
【図２】
0004946667.tif 000003
【図５】
0004946667.tif 000004
【図６】
0004946667.tif 000005
【図９】
0004946667.tif 000006
【図１０】
0004946667.tif 000007
【図１３】
0004946667.tif 000008
【図３】
0004946667.tif 000009
【図４】
0004946667.tif 000010
【図７】
0004946667.tif 000011
【図８】
0004946667.tif 000012
【図１１】
0004946667.tif 000013
【図１２】
0004946667.tif 000014