(57)【要約】【課題】サーバベースコンピューティングシステムにおいて、クライアント装置での表示画質を低下することなく、クライアント装置での表示の高速化を実現する。【解決手段】画面データのイメージデータ、表示コマンド両方のキャッシュの利用を最適化することにより、サーバ装置からクライアント装置へ送信する画面データのデータ量を少なくして画面データの送信時間を短縮し、表示画質を低下することなくクライアント装置での表示を高速化する。【選択図】      図９
2009199173.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させ、前記サービス要求に対応する画面データを前記クライアント装置へ送信するサーバ装置であって、
前記クライアント装置から操作データを受信する操作データ受信手段と、
アプリケーションプログラムを実行して画面データを生成するプログラム実行手段と、
前記画面データを前記クライアント装置へ送信する画面データ送信手段と、
前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段と、
前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段と、
前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段と、
前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記コマンドキャッシュ使用指示手段は、前記画面キャッシュ使用指示手段により、前記画面データがキャッシュデータとして前記クライアント装置に存在しないと判別された場合に有効となる、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
ネットワークを介して接続されたサーバ装置へサービス要求を行い、そのサービス要求に対応したアプリケーションプログラムの動作に従った画面データを受信するクライアント装置であって、
操作データを前記サーバ装置へ送信する操作データ送信手段と、
画面データを前記サーバ装置から受信する画面データ受信手段と、
前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段と、
前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段と、
前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段と、
前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段と、
前記更新された画面データを表示する表示手段と、
を備えることを特徴とするクライアント装置。
【請求項４】
サーバ装置に対してサービス要求を行なうクライアント装置と、該クライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させる前記サーバ装置とが、ネットワークを介して相互に接続可能に構成されたサーバベースコンピューティングシステムにおいて、
前記サーバ装置は、
前記クライアント装置から操作データを受信する操作データ受信手段と、
アプリケーションプログラムを実行して画面データを生成するプログラム実行手段と、
前記画面データを前記クライアント装置へ送信する画面データ送信手段と、
前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段と、
前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段と、
前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段と、
前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段と、
を備え、
前記クライアント装置は、
操作データを前記サーバ装置へ送信する操作データ送信手段と、
画面データを前記サーバ装置から受信する画面データ受信手段と、
前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段と、
前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段と、
前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段と、
前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段と、
前記更新された画面データを表示する表示手段と、
を備えることを特徴とするサーバベースコンピューティングシステム。
【請求項５】
サーバ装置のコンピュータを、
クライアント装置から操作データを受信する操作データ受信手段、
アプリケーションプログラムを実行して画面データを生成するプログラム実行手段、
前記画面データを前記クライアント装置へ送信する画面データ送信手段、
前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段、
前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段、
前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段、
前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段、
として機能させるためのプログラム。
【請求項６】
クライアント装置のコンピュータを、
操作データを前記サーバ装置へ送信する操作データ送信手段、
画面データを前記サーバ装置から受信する画面データ受信手段、
前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段、
前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段、
前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段、
前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段、
前記更新された画面データを表示する表示手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＢＣ（Server Based Computing：サーバベースコンピューティング）環境下にあるサーバ装置においてクライアント装置からの操作指示により実行されたアプリケーションプログラムの実行結果を、ネットワークを介して該ネットワークに接続されているクライアント装置に表示させることができるサーバ装置、クライアント装置、リモート接続システムおよびプログラムに関する。
【背景技術】
【０００２】
サーバベースコンピューティングシステムにおいては、サーバ装置はクライアント装置用のアプリケーションプログラムを実行して表示データを作成し、これをクライアント装置に送る。クライアント装置では、使用者のキーやマウス装置等の操作情報を、ネットワークを介してサーバ装置へ送り、前記サーバ装置側で作成されたクライアント装置用の表示データを受け取って表示する。クライアント装置は、ネットワーク機器、表示装置、マウス装置やキーボード等の入力装置を備えているだけでよく、データをクライアント装置内に持たないためハードディスク等の記憶装置が基本的には不要であり、アプリケーションプログラムの実行を行なわないためクライアント装置に必要となる処理の負荷は軽い。
【０００３】
しかしながら、サーバ装置側で作成されたクライアント装置用の表示データを送信する際に、表示データの量が多い場合は通信時間が長くなり、表示するまでに時間がかかるという問題がある。
【０００４】
また、表示データが頻繁に更新される場合も、表示データの更新の都度、更新された表示データを送信する必要があるので通信時間が長くなり、表示するまでに時間がかかるという問題がある。
【０００５】
表示データの送信方法としては、表示領域をそのまま１つのイメージデータとするイメージ送信と、表示領域を複数の表示コマンドに対応させて分割してから送信するコマンド送信との２種類がある。コマンド送信には、例えば、「座標」「幅」「高さ」「塗りつぶし色」を送信する「単色塗りつぶし送信」と、「座標」「幅」「高さ」「パターンイメージ」を送信する「単一パターン塗りつぶし送信」等がある。
【０００６】
イメージ送信の場合は、送信回数が１回で済み、クライアント装置の表示機能に依存しないというメリットはあるが、データ量が大きくなる。また、コマンド送信の場合は、データ量は小さくなるが、送信回数が増加し、送信できる表示コマンドがクライアント装置の表示機能に依存する。
【０００７】
一般的には、出来るだけ表示データを表示コマンドとして送信し、クライアント装置で処理できないものだけイメージデータとして送信するようにしている。
【０００８】
表示データを送信する際の通信時間を短縮するために、表示データをクライアント装置のＲＡＭ内にキャッシュしておき、キャッシュされた表示データと同じ表示データを表示する場合は、表示データの送信をしないようにする方法が用いられる場合もある。この際のキャッシュとしては、イメージデータまたは表示コマンドのいずれか選択された表示データの形式のキャッシュを使用している。
【０００９】
また、更新の発生した領域の画像データをサーバ装置が最初は低画質のイメージデータとして送信し、その後、改めて高画質のイメージデータとしてクライアント装置へ送信することにより、見かけ上の表示の高速化を実現する技術が開示されている。（例えば、特許文献１参照。）
【００１０】
【特許文献１】特開２００６−２４６１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
特許文献１の方法では、最初に送信される画面データの画質が良くないといった問題があった。また、イメージデータ、表示コマンドのいずれか選択された表示データの形式のキャッシュを使用する場合は、キャッシュのヒットする確率が良いとはいえないと問題があった。
【００１２】
本発明の目的は、クライアント装置での表示画質を低下することなく、サーバ装置からクライアント装置へ送信する画面データのデータ量を、画面データのイメージデータ、表示コマンド両方のキャッシュを利用することにより少なくして、画面データの送信時間を短縮し、クライアント装置での表示の高速化を実現することである。
【課題を解決するための手段】
【００１３】
請求項１に記載のサーバ装置は、ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させ、前記サービス要求に対応する画面データを前記クライアント装置へ送信するサーバ装置であって、前記クライアント装置から操作データを受信する操作データ受信手段と、アプリケーションプログラムを実行して画面データを生成するプログラム実行手段と、前記画面データを前記クライアント装置へ送信する画面データ送信手段と、前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段と、前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段と、前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段と、前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段と、を備えることを特徴としている。
【００１４】
請求項２に記載のサーバ装置は、前記コマンドキャッシュ使用指示手段が、前記画面キャッシュ使用指示手段により、前記画面データがキャッシュデータとして前記クライアント装置に存在しないと判別された場合に有効となる、ことを特徴としている。
【００１５】
請求項３に記載のクライアント装置は、ネットワークを介して接続されたサーバ装置へサービス要求を行い、そのサービス要求に対応したアプリケーションプログラムの動作に従った画面データを受信するクライアント装置であって、操作データを前記サーバ装置へ送信する操作データ送信手段と、画面データを前記サーバ装置から受信する画面データ受信手段と、前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段と、前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段と、前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段と、前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段と、前記更新された画面データを表示する表示手段と、を備えることを特徴としている。
【００１６】
請求項４に記載のサーバベースコンピューティングシステムは、サーバ装置に対してサービス要求を行なうクライアント装置と、該クライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させる前記サーバ装置とが、ネットワークを介して相互に接続可能に構成されたサーバベースコンピューティングシステムにおいて、前記サーバ装置は、前記クライアント装置から操作データを受信する操作データ受信手段と、アプリケーションプログラムを実行して画面データを生成するプログラム実行手段と、前記画面データを前記クライアント装置へ送信する画面データ送信手段と、  前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段と、前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段と、前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段と、前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段と、を備え、前記クライアント装置は、操作データを前記サーバ装置へ送信する操作データ送信手段と、画面データを前記サーバ装置から受信する画面データ受信手段と、前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段と、前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段と、前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段と、前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段と、前記更新された画面データを表示する表示手段と、を備えることを特徴としている。
【００１７】
請求項５に記載のサーバ装置のプログラムは、サーバ装置のコンピュータを、クライアント装置から操作データを受信する操作データ受信手段、アプリケーションプログラムを実行して画面データを生成するプログラム実行手段、前記画面データを前記クライアント装置へ送信する画面データ送信手段、前記画面データをキャッシュデータとして保存するように前記クライアント装置へ指示する画面キャッシュ保存指示手段、前記画面データを生成するためのコマンドをキャッシュデータとして保存するように前記クライアント装置へ指示するコマンドキャッシュ保存指示手段、前記画面データがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合は画面キャッシュの使用を指示する画面キャッシュ使用指示手段、前記コマンドがキャッシュデータとして前記クライアント装置に存在するか否かを判別し、存在する場合はコマンドキャッシュの使用を指示するコマンドキャッシュ使用指示手段、として機能させることを特徴としている。
【００１８】
請求項６に記載のクライアント装置のプログラムは、クライアント装置のコンピュータを、操作データを前記サーバ装置へ送信する操作データ送信手段、画面データを前記サーバ装置から受信する画面データ受信手段、前記サーバ装置から受信した前記画面データをキャッシュデータとして保存する画面キャッシュ保存手段、前記サーバ装置から受信した前記画面データを生成するためのコマンドをキャッシュデータとして保存するコマンドキャッシュ保存手段、前記サーバ装置から受信した画面キャッシュの使用の指示により画面キャッシュを使用して画面データを更新する画面キャッシュ使用手段、前記サーバ装置から受信したコマンドキャッシュの使用の指示によりコマンドキャッシュを使用して画面データを更新するコマンドキャッシュ使用手段、前記更新された画面データを表示する表示手段、として機能させることを特徴としている。
【発明の効果】
【００１９】
本発明によれば、画面データのイメージデータ、表示コマンド両方のキャッシュの利用を最適化することにより、サーバ装置からクライアント装置へ送信する画面データのデータ量を少なくして画面データの送信時間を短縮し、クライアント装置での表示の高速化をクライアント装置での表示画質を低下することなく実現することができる。
【発明を実施するための最良の形態】
【００２０】
以下図面により本発明の実施の形態について説明する。
まず、本実施形態における構成について説明する。
図１は、本発明の実施形態に係るサーバベースコンピューティングシステムの全体構成を示すブロック図である。
このサーバベースコンピューティングシステムは、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）からなるネットワーク３上に接続されたサーバ装置１および複数のクライアント装置２を備える。クライアント装置２はシンクライアント（thin client）とも呼ばれる。
【００２１】
サーバ装置１は、文書作成処理プログラム，表計算処理プログラム，プレゼン資料作成プログラム，メール処理プログラム，インターネット接続処理プログラム、Webブラウザなど、複数のアプリケーションプログラムを有し、当該サーバ装置１に接続されたクライアント装置２からの操作入力（入力イベント）信号に応じて起動しその処理を実行する。本実施例では、Webページを閲覧するためのアプリケーションプログラムであるWebブラウザを実行する。
【００２２】
このサーバ装置１において、クライアント装置２からの操作入力信号に応じたアプリケーションプログラムの実行に伴い、端末用のフレームバッファ１４ａ上に生成された表示出力用の画面データは、アクセス元のクライアント装置２へ送信される。
【００２３】
そして、クライアント装置２では、前記サーバ装置１から転送された画面データがフレームバッファ２５に展開され、表示部に表示される。
つまり、このサーバベースコンピューティングシステムにおける各クライアント装置２は、何れもキーボード及びマウスなどのユーザ操作に応じた入力機能と表示部への出力機能を主要な機能として有し、少なくとも前記サーバ装置１が有している各種のアプリケーション機能やデータファイルの管理機能を一切持っていない。
【００２４】
図２は、本実施形態に係るサーバ装置１の主要部構成を示すブロック図である。
サーバ装置１は、コンピュータとしてのＣＰＵ１１を備え、このＣＰＵ１１には、バス１２を介してＲＯＭ１３、ＲＡＭ１４、フレームバッファＲＡＭ１５、表示装置１６が接続される。
【００２５】
また、ＣＰＵ１１には、バス１２を介してキーボード，マウスなどの入力装置１７、ハードディスクなどの外部記憶装置１８、クライアント装置２，…との通信Ｉ／Ｆ（インターフェイス）１９が接続される。
ＣＰＵ１１は、ＲＯＭ１３に予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってＲＡＭ１４を作業用メモリとし回路各部の動作を制御するもので、入力装置１７からのキー入力信号や通信Ｉ／Ｆ１９を介して受信されるクライアント装置２からのユーザ操作（入力イベント）に応じた処理指令信号などに応じて前記種々のプログラムが起動・実行される。
【００２６】
このサーバ装置１において、クライアント装置２からの入力イベント信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザＩＤに対応付けられて外部記憶装置１８に記憶され、また表示用の画面データは、ＲＡＭ１４内の端末用フレームバッファ１４ａを使用して生成されると共に、通信Ｉ／Ｆ１９からクライアント装置２へ転送されて表示出力される。
【００２７】
なお、当該サーバ装置１自身の表示装置１６にて表示させるための画面データは、フレームバッファＲＡＭ１５上に生成される。
図３は、本実施形態に係るクライアント装置２の主要部構成を示すブロック図である。
クライアント装置２は、コンピュータとしてのＣＰＵ２１を備え、このＣＰＵ２１には、バス２２を介してＲＯＭ２３、ＲＡＭ２４、フレームバッファＲＡＭ２５が接続される。そして、このフレームバッファＲＡＭ２５に書き込まれた画面データが表示装置２６に出力されて表示される。
【００２８】
また、ＣＰＵ２１には、バス２２を介してキーボード，マウス，マイク，光センサなどの入力装置２７、フラッシュメモリなどの外部記憶装置２８、前記サーバ装置１との通信Ｉ／Ｆ（インターフェイス）２９が接続される。
ＣＰＵ２１は、ＲＯＭ２３に予め記憶されているシステムプログラムに従ってＲＡＭ２４を作業用メモリとし回路各部の動作を制御するもので、入力装置２７からのキー入力信号や通信Ｉ／Ｆ２９を介して受信されるサーバ装置１からのアプリケーション応答信号や画面データなどに応じて前記システムプログラムが起動され実行される。
【００２９】
このクライアント装置２において、前記サーバ装置１におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶装置２８に書き込んで記憶させる。また、受信した表示用の画面データは、フレームバッファＲＡＭ２５に書き込まれ表示装置２６に表示出力される。
【００３０】
次に、本実施形態において使用するデータについて説明する。
図４は、サーバ装置１のＲＡＭ１４に記憶される表示データのキャッシュメモリ１４ｂの一例を示す図である。サーバ装置１では、表示データのキャッシュメモリ１４ｂ内には、画面データまたはコマンドデータそのものではなく、画面データまたはコマンドデータのハッシュ値を格納する。ハッシュ値とは、あるデータが与えられた場合にそのデータを代表する数値を得るためのハッシュ関数から得られる数値であり、ＭＤ５（Message Digest 5）やＳＨＡ-１（Secure Hash Algorithm 1）などのハッシュ関数を用いる。
【００３１】
表示データのキャッシュメモリ１４ｂに記憶される表示データは、画面データまたはコマンドデータ毎に識別子としてキャッシュＩＤを付し、画面データまたはコマンドデータを示すフラグと共に画面データまたはコマンドデータのハッシュ値を格納する。フラグの値が「０」の場合はコマンドデータ、フラグの値が「１」の場合は画面データを示す。そして、キャッシュＩＤはそれぞれが互いにポインタによりリンクされており、ポインタの終端はNULLになっている。表示データのキャッシュメモリ１４ｂは所定の容量が確保される。
【００３２】
図５は、クライアント装置２のＲＡＭ２４に記憶される表示データのキャッシュメモリ２４ａの一例を示す図である。クライアント装置２では、表示データのキャッシュメモリ２４ａ内には、画面データまたはコマンドデータそのものを格納する。
【００３３】
表示データのキャッシュメモリ２４ａに記憶される表示データは、画面データまたはコマンドデータ毎に識別子としてキャッシュＩＤを付し、画面データまたはコマンドデータを示すフラグと共に画面データまたはコマンドデータを格納する。フラグの値が「０」の場合はコマンドデータ、フラグの値が「１」の場合は画面データを示す。そして、キャッシュＩＤはそれぞれが互いにポインタによりリンクされており、ポインタの終端はNULLになっている。表示データのキャッシュメモリ２４ａは所定の容量が確保される。
【００３４】
図６は、サーバ装置１からクライアント装置２へ送信される送信データのフォーマットの一例を示す図である。送信データは共通ヘッダ部とデータ部から構成されている。共通ヘッダ部は、キャッシュデータとして登録をする「１」、しない「０」を示すフラグ、表示データのＸ座標とＹ座標とを示す位置、表示データの幅と高さとを示すサイズ、キャッシュの識別子となるキャッシュＩＤ、表示データがイメージデータかコマンドかを示すデータタイプ、から構成されている。
【００３５】
データ部は、データタイプがイメージデータの場合は、ＰＮＧ（Portable Network Graphics）やＧＩＦ（Graphic Interchange Format）などのイメージデータのデータ種別、イメージデータのバイト数、イメージデータの値、から構成されている。また、データタイプがコマンドデータの場合は、コマンドとそのコマンドに付随した各種のパラメータ、から構成されている。
【００３６】
サーバ装置１側の表示データのキャッシュメモリ１４ｂとクライアント装置２側の表示データのキャッシュメモリ２４ａとのデータ内容の同期は、サーバ装置１からクライアント装置２へ送信される図６に示す送信データを用いて、サーバ装置１の主導により行われる。
【００３７】
次に、本実施形態における画面データについて説明する。
図７は、サーバ装置１で作成した画面の一例を示す図である。Webブラウザにより、ある会社の全社ポータルサイトのトップ画面が表示されている。画面は３つの領域に分かれており、上部がタイトル部、左部がインデックス部、右部が詳細部である。詳細部には、トップニュースに関する詳細記事と写真、および新製品の発売に関する詳細記事と写真が表示されている。
【００３８】
図８は、サーバ装置１で作成した画面を表示コマンドまたはイメージデータの表示単位の構成部品に分割した一例を示す図である。この図は、図７に示す画面を表示単位の構成部品に分割したものである。上部のタイトル部は、背景３２Ａ、タイトル３２Ｂ、項目名３２Ｃから構成される。左部のインデックス部は、背景３２Ｄ、タイトル３２Ｅ、項目名３２Ｆから構成される。右部の詳細部は、背景３２Ｇ、１つ目の詳細のタイトル３２Ｈ，１つ目の詳細の説明文３２Ｉ、１つ目の詳細の写真３２Ｊと２つ目の詳細のタイトル３２Ｋ、２つ目の詳細の説明文３２Ｌ、２つ目の詳細の写真３２Ｍから構成される。
【００３９】
次に、本実施形態におけるサーバ装置１の動作について説明する。
図９は、サーバ装置１において実行される表示データの送信処理の詳細を示すフローチャートである。Webブラウザが、図７に示すような画面データをクライアント用フレームバッファ１４ａに作成し、表示データのキャッシュメモリ１４ｂの内容を判別しながらクライアント装置２へ送信するまでの手順を示している。なお、画面データを作成する際に使用した表示コマンドはＲＡＭ１４の所定の領域に記憶してある。
【００４０】
まず、ステップＳ０１では、図７に示すような画面データのハッシュ値をＭＤ５やＳＨＡ-１などのハッシュ関数を用いて生成する。生成したハッシュ値が図４に示す表示データのキャッシュメモリ１４ｂ上の画面データのハッシュ値と一致するか否かを判別する。
【００４１】
ハッシュ値が一致する場合（ステップＳ０２：Yes）は、クライアント装置２に画面データのキャッシュが存在するので、ハッシュ値に対応した画面データのキャッシュＩＤをクライアント装置２へ送信する（ステップＳ０３）。
【００４２】
また、ハッシュ値が一致しない場合（ステップＳ０２：No）は、クライアント装置２に画面データのキャッシュが存在しないので、画面データをクライアント装置２の表示データのキャッシュメモリ２４ａに保存するようにクライアント装置２へ指示する（ステップＳ０４）。
【００４３】
次に、画面データのキャッシュが存在しない場合は、図７に示す画面データを、図８に示すような３２Ａ〜３２Ｍの表示コマンドまたはイメージデータの表示単位に分割してクライアント装置２へ送信する。この時、表示コマンドのキャッシュが存在する場合は、表示コマンドのキャッシュを使用するように指示し、表示コマンドのキャッシュが存在しない場合は、表示コマンドまたはイメージデータを送信する。
【００４４】
ステップＳ０５では、図８に示すような表示単位の中のＲＡＭ１４の所定の領域に記憶された表示コマンドについて、ＭＤ５やＳＨＡ-１などのハッシュ関数を用いてハッシュ値を生成する。生成したハッシュ値が図４に示す表示データのキャッシュメモリ１４ｂ上の表示コマンドのハッシュ値と一致するか否かを判別する。
【００４５】
ハッシュ値が一致する場合（ステップＳ０６：Yes）は、クライアント装置２に表示コマンドのキャッシュが存在するので、ハッシュ値に対応した表示コマンドのキャッシュＩＤをクライアント装置２へ送信する（ステップＳ０７）。
【００４６】
また、ハッシュ値が一致しない場合（ステップＳ０６：No）は、クライアント装置２に表示コマンドのキャッシュが存在しないので、ステップＳ０５へ戻り、次の表示コマンドのキャッシュが存在するが否かのチェックを行い（ステップＳ０８）、次の表示コマンドがなくなるまで繰り返す。
【００４７】
次に、画面の構成部品の中から、以降の処理の対象となる表示コマンドのキャッシュが存在しなかった構成部品を選別する（ステップＳ０９）。
【００４８】
選別した構成部品が表示コマンドの場合（ステップＳ１０：Yes）は、表示コマンドをキャッシュするための指示をクライアント装置２へ送信する（ステップＳ１１）。
【００４９】
選別した構成部品が表示コマンドでない場合（ステップＳ１０：No）は、構成部品をイメージデータとしてクライアント装置２へ送信し（ステップＳ１１）、ステップＳ０９へ戻り、次の構成部品が存在するが否かのチェックを行い（ステップＳ１３）、次の構成部品がなくなるまで繰り返す。
【００５０】
次に、本実施形態におけるクライアント装置２の動作について説明する。
図１０は、クライアント装置２において実行される表示データの受信処理の詳細を示すフローチャートである。サーバ装置１から表示とキャッシュに関するデータを受信し、サーバ装置１の指示に従って処理を行う。
【００５１】
まず、ステップＣ０１では、図６に示すようなフォーマットのデータをサーバ装置１から受信する。共通ヘッダの先頭のフラグの値が「０」の場合は、登録されているキャッシュの読み出し指示となり、共通ヘッダの先頭のフラグの値が「１」の場合は、キャッシュへの登録指示となる。そして、共通ヘッダのデータタイプにより、イメージデータとして処理するか、あるいは、コマンドとして処理するかに処理が分かれる。
【００５２】
受信したデータが、画面データのキャッシュＩＤを付帯させた画面キャッシュの読み出し指示ならば（ステップＣ０２：Yes）、付帯した画面データのキャッシュＩＤを元に、図５に示す表示データのキャッシュメモリ２４ａを検索して該当する画面データのキャッシュデータを読み出して、フレームバッファＲＡＭ２５に書き込む（ステップＣ０３）。その結果、表示装置２６の表示画面が画面データのキャッシュデータの内容に更新される。
【００５３】
受信したデータが、画面データのキャッシュＩＤを付帯させた画面キャッシュの保存指示ならば（ステップＣ０４：Yes）、付帯した画面データのキャッシュＩＤとフレームバッファＲＡＭ２５のデータを、画面データのキャッシュとして表示データのキャッシュメモリ２４ａに書き込み保存する（ステップＣ０５）。
【００５４】
受信したデータが、表示コマンドのキャッシュＩＤを付帯させた表示コマンドの読み出し指示ならば（ステップＣ０６：Yes）、付帯した表示コマンドのキャッシュＩＤを元に、図５に示す表示データのキャッシュメモリ２４ａを検索して該当する表示コマンドのキャッシュデータを読み出してその表示コマンドを実行し、フレームバッファＲＡＭ２５に書き込む（ステップＣ０７）。その結果、表示装置２６の表示画面が表示コマンドのキャッシュデータの内容を反映して更新される。
【００５５】
受信したデータが、表示コマンドの保存指示ならば（ステップＣ０８：Yes）、指示された表示コマンドを実行し、その表示コマンドをフレームバッファＲＡＭ２５に書き込む（ステップＣ０９）。その結果、表示装置２６の表示画面が表示コマンドの内容を反映して更新される。そして、受信した表示コマンドを表示データのキャッシュメモリ２４ａに保存する（ステップＣ１０）。
【００５６】
受信したデータが、表示コマンドの保存指示でもない場合は（ステップＣ０８：No）、イメージデータの表示指示なので、受信したイメージデータをフレームバッファＲＡＭ２５に書き込む（ステップＣ１１）。その結果、表示装置２６の表示画面がイメージデータの内容を反映して更新される。
【００５７】
図９と図１０により、サーバ装置１において実行される表示データの送信処理とクライアント装置２において実行される表示データの受信処理とを説明したが、画面データのキャッシュと表示コマンド双方について、キャッシュの保存と使用に関する処理を、より詳細にサーバ装置１とクライアント装置２とのシーケンス図を用いて説明する。
【００５８】
図１１は、画面キャッシュの保存指示におけるサーバ装置１とクライアント装置２とのシーケンス図である。図９のステップＳ０４と図１０のステップＣ０５の処理に相当する。
【００５９】
まず、シーケンスＳＣ１１で、クライアント装置２の表示データのキャッシュメモリ２４ａに画面データを保存するように、サーバ装置１からクライアント装置２へ指示する。クライアント装置２は、フレームバッファＲＡＭ２５のデータからハッシュ値を生成し（シーケンスＳＣ１２）、サーバ装置１へ送信する（シーケンスＳＣ１３）。
【００６０】
サーバ装置１は、画面データのキャッシュＩＤを生成し（シーケンスＳＣ１４）、生成したキャッシュＩＤと受信したハッシュ値を、図４に示す表示データのキャッシュメモリ１４ｂに保存する（シーケンスＳＣ１５）。そして、生成したキャッシュＩＤを付帯させて、画面データをキャッシュに保存するようクライアント装置２へ指示する（シーケンスＳＣ１６）。クライアント装置２は、受信したキャッシュＩＤとフレームバッファＲＡＭ２５のデータを図５に示す表示データのキャッシュメモリ２４ａに画面データのキャッシュとして保存する（シーケンスＳＣ１７）。
【００６１】
図１２は、画面キャッシュの使用指示におけるサーバ装置１とクライアント装置２とのシーケンス図である。図９のステップＳ０３と図１０のステップＣ０３の処理に相当する。
【００６２】
まず、シーケンスＳＣ２１で、クライアント装置２の表示データのキャッシュメモリ２４ａから画面データを読み出すように、画面データのキャッシュＩＤを付帯させて、サーバ装置１からクライアント装置２へ指示する。クライアント装置２は、付帯した画面データのキャッシュＩＤを元に、図５に示す表示データのキャッシュメモリ２４ａを検索して該当する画面データのキャッシュデータを読み出し（シーケンスＳＣ２２）、読み出した画面データをフレームバッファＲＡＭ２５に書き込む（シーケンスＳＣ２３）。その結果、表示装置２６の表示画面が画面データの内容を反映して更新される。
【００６３】
図１３は、コマンドキャッシュの保存指示におけるサーバ装置１とクライアント装置２とのシーケンス図である。図９のステップＳ１１と図１０のステップＣ１０の処理に相当する。
【００６４】
まず、シーケンスＣＣ１１で、表示コマンドのキャッシュＩＤを生成し、クライアント装置２の表示データのキャッシュメモリ２４ａに表示コマンドを保存するように、生成したキャッシュＩＤを付帯させてサーバ装置１からクライアント装置２へ指示する（シーケンスＣＣ１２）。クライアント装置２は、受信したキャッシュＩＤと表示コマンドを表示データのキャッシュメモリ２４ａに保存する（シーケンスＣＣ１３）。
【００６５】
図１４は、コマンドキャッシュの使用指示におけるサーバ装置１とクライアント装置２とのシーケンス図である。図９のステップＳ０７と図１０のステップＣ０７の処理に相当する。
【００６６】
まず、シーケンスＣＣ２１で、クライアント装置２の表示データのキャッシュメモリ２４ａから表示コマンドを読み出すように、表示コマンドのキャッシュＩＤを付帯させて、サーバ装置１からクライアント装置２へ指示する。クライアント装置２は、付帯した表示コマンドのキャッシュＩＤを元に、図５に示す表示データのキャッシュメモリ２４ａを検索して該当する表示コマンドのキャッシュデータを読み出し（シーケンスＣＣ２２）、読み出した表示コマンドを実行してフレームバッファＲＡＭ２５に書き込む（シーケンスＣＣ２３）。その結果、表示装置２６の表示画面が表示コマンドの内容を反映して更新される。
【００６７】
上述の図１１〜図１４のシーケンスにより、サーバ装置１側の表示データのキャッシュメモリ１４ｂとクライアント装置２側の表示データのキャッシュメモリ２４ａとで、キャッシュデータの整合性が保たれることになる。
【００６８】
サーバ装置１における表示データのキャッシュメモリ１４ｂ、及びクライアント装置２おける表示データのキャッシュメモリ２４ａは、記録するデータが増加するにつれて容量が不足してくるので、不要なデータを削除する必要がある。新たに記録するための充分な領域が不足する場合は、適時古いデータから順に削除することにより領域を確保する。
【００６９】
前記実施形態において、サーバ装置１からクライアント装置２へデータを送信する際に、サーバ装置１側でデータを圧縮し、クライアント装置２側で受信したデータを伸張するようにしてもよい。また、サーバ装置１側でデータを暗号化し、クライアント装置２側で受信したデータを復号化するようにしてもよい。さらに、データの圧縮・伸張とデータの暗号化・復号化とを組み合わせてもよい。
【００７０】
前記実施形態において記載したサーバ装置１、クライアント装置２の処理、すなわち図９及び図１０のフローチャートに示す各処理は、何れもコンピュータが読み取り可能なプログラムとして、外部記憶装置１８、外部記憶装置２８に記憶されている。なお、これらのプログラムは、半導体メモリ（ＲＯＭ、ＲＡＭ等）、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）の記録媒体に記憶してもよく、更に、プログラムの一部若しくは全部をサーバ装置１やクライアント装置２に備えられた記録媒体に記憶し、ネットワーク３を介して受信して読み取る構成にしてもよい。
【００７１】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施形態に係るサーバベースコンピューティングシステムの全体構成を示すブロック図。
【図２】本実施形態に係るサーバ装置１の主要部構成を示すブロック図。
【図３】本実施形態に係るクライアント装置２の主要部構成を示すブロック図。
【図４】サーバ装置１のＲＡＭ１４に記憶される表示データのキャッシュメモリ１４ｂの一例を示す図。
【図５】クライアント装置２のＲＡＭ２４に記憶される表示データのキャッシュメモリ２４ａの一例を示す図。
【図６】サーバ装置１からクライアント装置２へ送信される送信データのフォーマットの一例を示す図。
【図７】サーバ装置１で作成した画面の一例を示す図。
【図８】サーバ装置１で作成した画面を表示コマンドまたはイメージデータの表示単位の構成部品に分割した一例を示す図。
【図９】サーバ装置１において実行される表示データの送信処理の詳細を示すフローチャート。
【図１０】クライアント装置２において実行される表示データの受信処理の詳細を示すフローチャート。
【図１１】画面キャッシュの保存指示におけるサーバ装置１とクライアント装置２とのシーケンス図。
【図１２】画面キャッシュの使用指示におけるサーバ装置１とクライアント装置２とのシーケンス図。
【図１３】コマンドキャッシュの保存指示におけるサーバ装置１とクライアント装置２とのシーケンス図。
【図１４】コマンドキャッシュの使用指示におけるサーバ装置１とクライアント装置２とのシーケンス図。
【符号の説明】
【００７３】
１  …サーバ装置
２  …クライアント装置
３  …通信ネットワーク
１１、２１…ＣＰＵ
１２、２２…バス
１３、２３…ＲＯＭ
１４、２４…ＲＡＭ
１４ａ…クライアント用フレームバッファ
１４ｂ、２４ａ…表示データのキャッシュメモリ
１５、２５…フレームバッファＲＡＭ
１６、２６…表示装置
１７、２７…入力装置
１８、２８…外部記憶装置
１９、２９…通信Ｉ／Ｆ
【図１】
2009199173.tif 000003
【図２】
2009199173.tif 000004
【図３】
2009199173.tif 000005
【図４】
2009199173.tif 000006
【図５】
2009199173.tif 000007
【図６】
2009199173.tif 000008
【図７】
2009199173.tif 000009
【図８】
2009199173.tif 000010
【図９】
2009199173.tif 000011
【図１０】
2009199173.tif 000012
【図１１】
2009199173.tif 000013
【図１２】
2009199173.tif 000014
【図１３】
2009199173.tif 000015
【図１４】
2009199173.tif 000016