(57)【要約】シンサーバ装置からシンクライアント装置への更新表示データを送信する方法であって、送信対象の新しい更新表示データを表す（短い）キーを生成するステップと、新たに生成されたキーと以前に生成された１つまたは複数のキーを比較するステップと、前記クライアント装置への送信対象メッセージを編集するステップとを有する方法であって、前記メッセージはヘッダと前記更新表示データを表すコードワードとから構成され、前記ヘッダは前記比較ステップの結果に応じて、前記クライアント装置に対し前記更新表示データがキャッシュ済、キャッシュ予定、あるいはキャッシュされないか特定するよう設定されることを特徴とする方法。好ましくは、ＤＣＴ符号化が利用される。本方法を利用したシンクライアントサーバシステムはより高速かつ効率的なものである。
2005501355.tif 000002
【特許請求の範囲】
【請求項１】
シンサーバ装置からシンクライアント装置への更新表示データを送信する方法であって：
送信対象の新しい更新表示データを表すキーを生成するステップ；
新たに生成されたキーと以前に生成された１つまたは複数のキーを比較するステップ；及び
前記クライアント装置への送信対象メッセージを編集するステップ；
を有する方法であって、前記メッセージは、前記比較ステップの結果に応じて、前記クライアント装置に対し前記更新表示データがキャッシュ済、キャッシュ予定、あるいはキャッシュされないか特定するよう設定されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記メッセージは、キャッシュ指示フィールドとシーケンス識別フィールドとを有するヘッダを有することを特徴とする方法。
【請求項３】
請求項２記載の方法であって、前記キャッシュ指示フィールドは、「キャッシュ」「キャッシュ不要」及び「キャッシュ済」のコマンドの１つに対応する指示を有し、前記シーケンス識別フィールドはキャッシュアドレスを有することを特徴とする方法。
【請求項４】
請求項３記載の方法であって、前記キャッシュアドレスは、前記コマンドが「キャッシュ済」である場合、前記適合するキーのアドレスであることを特徴とする方法。
【請求項５】
請求項３記載の方法であって、前記キャッシュアドレスは、前記コマンドが「キャッシュ」である場合、新しいアドレスであることを特徴とする方法。
【請求項６】
請求項１記載の方法であって、前記キーは前記更新表示データの変換符号化により生成されることを特徴とする方法。
【請求項７】
請求項６記載の方法であって、前記キーは前記符号化された更新表示データのすべてのコードワードの合成された長さを有することを特徴とする方法。
【請求項８】
請求項２記載の方法であって、さらに、前記更新表示データのサイズをチェックし、該サイズが所定の値未満である場合、前記キャッシュ指示フィールドに「キャッシュ不要」を設定する初期ステップを有することを特徴とする方法。
【請求項９】
請求項１記載の方法であって、前記比較ステップは、さらに、前記新たな更新表示データのサイズとキャッシュされている更新表示データのサイズをまず比較することを特徴とする方法。
【請求項１０】
請求項８記載の方法であって、前記更新表示データのサイズは、前記データの幅及び高さを有することを特徴とする方法。
【請求項１１】
請求項１記載の方法であって、さらに、複数の適合したキーが前記キャッシュデータにおいて特定される場合、新しい更新表示データのコードワードとキャッシュされている更新表示データを比較するステップを有することを特徴とする方法。
【請求項１２】
請求項２記載の方法であって、前記クライアント装置は、前記シーケンス識別フィールドが前記クライアントのメモリからデータが喪失されていることをフラグする場合、前記サーバに送信コードワードメッセージを送信することを特徴とする方法。
【請求項１３】
請求項１記載の方法を実行するよう適応されたシンクライアントサーバコンピュータシステム。
【請求項１４】
請求項１記載の方法をプロセッサにより実行可能とするコンピュータソフトウェア。
【請求項１５】
請求項１４記載のコンピュータソフトウェアを有するデータキャリア。
【請求項１６】
サーバ装置；及び
クライアント装置；
を有するコンピュータシステムであって、前記サーバ装置は、キャッシュメモリと、キャッシュメモリアドレスを特定するシーケンス識別生成装置と、ソースデータエンコーダと、符号化されたソースデータを表すキーを生成するキー生成装置と、生成されたキーと１つ以上のキャッシュされているキーを比較する比較器と、該比較器に接続され、該比較器の出力に応じて異なるメッセージを生成するメッセージ生成装置と、前記メッセージを前記クライアント装置に送信する送信機とを有し、前記クライアント装置は、前記サーバから前記メッセージを受信する受信機と、キャッシュメモリと、メッセージ読取器と、ディスプレイとを有することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
本発明は、キャッシュ方法に関し、特にシンクライアントサーバコンピュータシステム（ｔｈｉｎ  ｃｌｉｅｎｔ  ｓｅｒｖｅｒ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ）のためのキャッシュ方法に関する。
【０００２】
シンクライアントサーバコンピュータシステムは、コンピュータアプリケーションプログラムがクライアント装置でなくサーバ装置にインストールされているシステムである。クライアント装置は、シンクライアント表示プロトコルを遠隔的に利用することにより、アプリケーションの実行が可能とされる（また、遠隔フレームバッファ技術として知られる）。シンクライアント表示プロトコルは、サーバ装置にロードされる部分と、クライアント装置にロードされる部分とから構成されるコンピュータプログラムである。クライアントプログラムは、コードサイズが小さく、そのためクライアント装置に比較的わずかなリソース（メモリと処理パワー）しか要求しないということから、いわゆるシンプログラムである。このシステムでは、比較的シンプルで安価なクライアント装置によるより強力なサーバサービスへのアクセスが可能である。
【０００３】
そのようなシンクライアント表示プロトコルは、ＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）であり、互いに通信を行うシンサーバプログラム「ＶＮＣサーバ」とシンクライアントプログラム「ＶＮＣビューア」とから構成され、クライアント装置はサーバ装置にコマンドを転送し、そこで当該コマンドの処理と更新情報あるいはフレームバッファデータのいわゆる更新領域での生成が行われる。これはクライアント装置のスクリーン更新に必要な基本ユニットである。それはウィンドウ形式を採用してもよい。更新領域はサーバ装置からシンクライアント装置に転送される。プロトコルの表示サイドは、クライアント装置にクライアントスクリーン上の所与のｘ，ｙ位置で矩形の画素データを配置するよう効果的に指示する。
【０００４】
シンクライアントサーバコンピュータシステムにおける問題は、サーバ装置とクライアント装置との間で転送されるデータ量がかなり大きなものとなり、これによりシステムにおける遅延、特にサーバ装置からデータを抽出するクライアント装置における遅延が発生する可能性がある。
【０００５】
異なるデータパターンに対し異なる符号化アルゴリズムを利用することにより、またＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓによる１９９６年３月１６日の「インディペンデントコンピューティングアーキテクチャテクニカルペーパー（Ｉｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｔｅｃｈｉｎｉｃａｌ  Ｐａｐｅｒ）」及びアダプティブインターネットプロトコル（Ａｄａｐｔｉｖｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）において説明されるようなオブジェクト対応キャッシュ方法（ｏｂｊｅｃｔ  ａｗａｒｅ  ｃａｃｈｅ  ｍｅｔｈｏｄ）により、シンサーバからシンクライアントへのフレームバッファデータのより効率的な送信が可能とされてきた。しかしながら、これらの方法はソフトウェアプラットフォームに依存したものであり、コンピュータ上で実行されるオペレーティングシステムに応じた修正なく、広く採用可能なものではない。ＶＮＣのような非オブジェクト対応プロトコルが好ましい。
【０００６】
インターネット環境におけるより効率的な装置間での通信のためのキャッシュ方法が提案されてきた。しかしながら、インターネットとシンクライアントサーバコンピュータシステムの特性は全く異なるため、これらの方法はシンクライアントシステムに容易に適用することができない。例えば、プロキシサーバでのキャッシュ処理は、ワールドワイドウェブ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）へのアクセスに対する知覚されるレスポンス時間を減少させる。プロキシサーバはキャッシュ処理のため文書の一部を選ぶが、キャッシュされた文書の整合性の維持のための追加的ステップが必要となる。
【０００７】
本発明の課題は、シンクライアントコンピュータシステムの効率を向上させ、データ転送を高速化することである。本発明は、独立クレームにより定義され、従属クレームが効果的な実施例を定義する。
【０００８】
好ましくは、メッセージは、「キャッシュ」「キャッシュ不要」及び「キャッシュ済」のコマンドの１つに対応する指示を有するキャッシュ指示フィールドと、例えば、適合するキーのアドレスや必要に応じ新しいアドレスなどのキャッシュアドレスを有するシーケンス識別フィールドとを有するヘッダから構成される。
【０００９】
キーは、圧縮符号化された更新表示データのコードワードの合成された長さからなる。圧縮符号化は、好ましくは、空間領域から周波数領域にデータを変換する離散コサイン変換（ＤＣＴ）、特に２Ｄ−ＤＣＴによる。
【００１０】
一実施例は、さらに、例えば、ＪＰＥＧ符号化及びエントロピー符号化によるデータ量子化から構成される。
【００１１】
本発明の好適な実施例によると、符号化されたデータのサイズ、例えば、高さや幅の大きさがチェックされ、サイズが所定の値未満である場合、キャッシュ処理は実行されない。サイズはまた、予備的な比較ステップとして利用することができる。キー間の対応が検出されると、ローカルにキャッシュされたデータがクライアント装置により表示される。複数の対応が検出された場合、コードワードが比較される。データがクライアント装置から喪失された場合、サーバ装置に再送メッセージが送られる。
【００１２】
計算の簡単化のため各更新領域に利用されるサーバとフレーム内符号化で実行される比較により、非候補領域のフィルタリング除去の便利、高速かつ比較的コスト効果的な方法を提供することができる。
【００１３】
本発明のよりよい理解のため、そしてどのように実行に移されるかを示すため、添付される図面が参照される。
【００１４】
図１のフローチャートでは、シンサーバプログラムが実行されている。これは典型的には「ＶＮＣサーバ」であるが、他の同様のプログラムもまた有効である。以下のステップが行われる。
【００１５】
サーバＳＥでは：
Ａ．  更新表示データまたは更新領域は、高さＨと幅Ｗを有し、ソースデータ１として表される。
Ｂ．  ソースデータ１は、図２及び図３を参照して説明されるように、コードワードの生成のため符号化される。
Ｃ．  幅及び高さに関して符号化されたソースデータをチェックする。
Ｄ．  幅及び高さが閾値未満の場合、メッセージヘッダのキャッシュフィールドが「キャッシュ不要」に設定される（更新が極めて小さい場合、キャッシュ処理から得られる効果はない）。この状況は以下に説明される図５に示される。
Ｅ．  シーケンス識別ＳＩＤがＮＵＬＬに設定され、更新メッセージがクライアントに送信される。以下で説明されるステップＰを参照せよ。
Ｇ．  幅及び高さが閾値以上の場合、メッセージヘッダのキャッシュフィールドが「キャッシュ」に設定される。この状況は以下で説明される図６に示される。
Ｈ．  データ/画像シグネチャを表す領域キーＲＫＥＹが、図２に関して以下で説明される方法を利用して、コードワードの長さを合成することにより生成される。
Ｉ．  その後サーバにより、以前にキャッシュされた更新領域があるか、及びキャッシュ領域の幅及び高さが更新領域に適合するかがチェックされる。
Ｊ．  以前にキャッシュされた更新領域がなければ、サーバにより次の利用可能なシーケンス識別ＳＩＤが取得され、ＳＩＤフィールドをメッセージヘッダに設定することにより、したがってメッセージヘッダのキャッシュフィールドを「キャッシュ」に設定することにより、クライアントへの送信対象メッセージがフォーマットされる。
Ｋ．  サーバにより、メッセージ（ＳＩＤ，ＲＫＥＹ及び圧縮データのコードワードから構成される）の複製が保持され、クライアントにメッセージが転送される。以下のステップＰを参照せよ。
Ｌ．  以前にキャッシュされた更新領域がある場合、適合したキャッシュ領域のＲＫＥＹをチェックするときにこの領域がサーバにより認識される。
Ｍ．  適合した領域キーＲＫＥＹが特定されない場合、ステップＪが繰り返され、更新領域を表す圧縮データと共に、新たなメッセージがクライアントに送信される。
Ｎ．  適合したものが１つのみである場合、キャッシュフィールドが「キャッシュ」に設定され、対応するＳＩＤが圧縮データのコードワードなしにクライアントに送信される。これは、以下で説明される図７に示される。
Ｏ．  複数の領域キーＲＫＥＹの適合が検出された場合、圧縮データの新たなコードワードとローカルキャッシュバッファのコードワードが比較され、適合したコードワードが特定されれば、キャッシュフィールドが「キャッシュ」に設定され、圧縮データのコードワードなしの対応するＳＩＤが送信される。
Ｐ．  当該メッセージがサーバから送信される。
【００１６】
クライアントＣＬでは：
Ｑ．  メッセージがクライアントにより受信される。
Ｒ．  クライアントは、まずメッセージのキャッシュフィールドをチェックし、当該更新領域をキャッシュすべきか判断する。
Ｓ．  キャッシュフィールドが「キャッシュ」に設定されている場合、クライアントは更新領域のコードワードの複製を保持し、コードワードをデコードし、ステップＶに移る。
Ｔ．  キャッシュフィールドが「キャッシュ不要」に設定されている場合、クライアントはメッセージの中のコードワードをデコードし、これを保存することなくステップＶに移る。
Ｕ．  キャッシュフィールドが「キャッシュ済」に設定されている場合、クライアントはクライアントキャッシュからキャッシュされているコードワードを抽出し、このコードワードをデコードしてステップＶに移る。
Ｖ．  デコードされた更新領域が表示される。
【００１７】
図２の上部に、符号化を利用した更新領域ソースデータ１からの更新キー６の生成が示され、図２の下部に、この符号化データのデコード処理が示される。ソースデータ１、すなわち、更新領域シグネチャを表すデータ及び画像が、２において順方向離散コサイン変換ＦＤＣＴにより圧縮され、３において量子化される。その後、４においてエントロピー符号化され、５においてコードワードの長さが合成され、キー６が生成される。その後キー６はサーバのキャッシュメモリ７にコピーされ、シーケンス識別標識８が１だけインクリメントされる。これが、図１の上部に示されている。
【００１８】
その後、データはデコードされ、９におけるエントロピーデコード処理、１０における逆量子化、１１における解凍により復元データ１２が生成される。シーケンス生成装置１３はキャッシュ１４の異なる位置へのポインティング毎にインクリメントされる。
【００１９】
図３は、８×８の格子における６４個の２桁の数の格子からなるブロック３１に分類されたオリジナルソース画像データの符号化を示す。順方向ＤＣＴ処理により、当該ブロックは６４個の直交信号（ＤＣＴ係数と呼ばれる）に圧縮される。１つの係数は両方のサイズでゼロの周波数を有し、これはＤＣ係数と呼ばれる。他の６３個はＡＣ係数である。視覚的に重要でない情報を破棄し、量子化及びエントロピー処理を行った後、合計３５ビットのバイナリワードの文字列からなる圧縮コードワード３２となる。ソース画像に対し８ビット圧縮を利用したこの例では、圧縮率は約１５：１である。
【００２０】
図４は、サーバからクライアントへの送信のためのメッセージフォーマットを表す。当該フォーマットは、キャッシュフィールド２１（「キャッシュ」「キャッシュ不要」または「キャッシュ済」）とシーケンス識別フィールドＳＩＤ２２から形成されるメッセージヘッダ２０を有する。また、圧縮メッセージのコードワードからなるメッセージフィールド２３を有する。
【００２１】
図５は、サーバが「キャッシュ不要」を示す場合における、図４のメッセージの構成を示す。これは、例えば、更新領域のサイズが閾値未満であり、キャッシュするに値しない場合に生じる。キャッシュフィールド２１は「キャッシュ不要」に設定され、ＳＩＤフィールド２２はヘッダにおいて「ｎｕｌｌ」に設定され、圧縮コードワードはメッセージフィールド２３に添付される。
【００２２】
図６は、サーバが「キャッシュ」を示す場合における、図４のメッセージの構成を示す。
【００２３】
これは、更新領域のサイズが閾値以上である場合に生じる。キャッシュフィールド２１は「キャッシュ」に設定され、ＳＩＤフィールド２２はヘッダにおいて「Ｎ」に設定され、圧縮コードワードはメッセージフィールド２３に添付される。
【００２４】
図７は、サーバが「キャッシュ済」を示す場合における、図４のメッセージの構成を示す。
【００２５】
この場合、メッセージヘッダ２０は、キャッシュフィールド２１の指示「キャッシュ済」とＳＩＤフィールド２２の「Ｍ」から構成され、圧縮コードワードは添付されない。なぜならこの場合、それらはクライアント装置のローカルキャッシュから抽出可能であり、サーバとクライアント間の送信帯域幅の節約が可能となり、システムの高速化及び効率化が可能となる。
【００２６】
図８は、図５から図７により表された各ケースに対して、システムが経時的にどのように反応するか示す。
【００２７】
第１更新領域データ１ａがサーバ装置において生成され、(１)において、サイズは閾値未満であり、サーバは「キャッシュ不要」を示す。図５に示されるようなメッセージが生成され、コンピュータネットワーク上のクライアント装置に送信され、これによって更新領域がクライアントディスプレイに表示される。これはケースＩとしてラベル付けされる。
【００２８】
その後すぐに、第２更新領域データ１ｂが生成される。更新領域１ｂのサイズは閾値以上であり、領域キーＲＫＥＹが生成され、サーバのコンテンツキャッシュバッファ７（図２を参照せよ）と比較される。これは(２)として示されている。(３)では、以前にキャッシュはなく、メッセージ「キャッシュ」がデータと共にクライアントに送信される。これはケースIIとしてラベル付けされている。(４)では、対応するキーがキャッシュ７で検出される。ＳＩＤが抽出され、メッセージ「キャッシュ済」が適当なＳＩＤと共に、しかしデータはなしで、クライアント装置に送信され、これにより送信スペースを時間の節約が可能になる。これはケースIIIとしてラベル付けされている。
【００２９】
ＳＩＤ数は、最も最近の更新領域データの格納が保証される一方、典型的には、メモリスペースの節約のため１から９９９まで循環するよう設定される。
【００３０】
キャッシュバッファが２つしか利用可能でない場合、図９の状況が当てはまり、最も最近の２つの更新領域をキャッシュするため循環リストが保持される。例えば、メッセージＡはケースIIのメッセージ「キャッシュ」である（なぜなら以前にキャッシュされているものがないので）。従って、キャッシュバッファ１４は第１キャッシュ位置２５にＡを格納する。その後、メッセージＢが生成され、このメッセージはケースIのメッセージ「キャッシュ不要」であり、このためＢは格納されず、第２キャッシュ位置２６は空である。メッセージＣはもう１つのケースIIのメッセージ「キャッシュ」であり、Ｃはキャッシュ位置２６に格納される。メッセージＤも同様にケースIIであり、従ってＤは位置２５のＡと交換される。
【００３１】
その後メッセージＣが再度受信され、これはケースIIIのメッセージ「キャッシュ」である。なぜなら、サーバがキャッシュされたメッセージＣとの対応を検出したからである。従って、クライアント装置へのメッセージには、ローカルキャッシュ１４から対応するデータを抽出するための位置２６のＳＩＤが含まれる。同様に、メッセージDが再送信されると、対応が検出され、ケースIIIのメッセージがクライアントに位置２５におけるローカルキャッシュバッファ１４からデータを抽出するよう指示する。
【００３２】
上記実施例は、発明の限定のためでなく、例示のためのものであり、当業者は添付されたクレームの範囲を逸脱することなく他の様々な実施例を考え出すことができるであろう。クレームにおいて、括弧の中に書かれた任意の参照符号はクレームを限定するものと解釈されるべきでない。「有する（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、クレームに列挙された要素またはステップ以外の要素またはステップの存在を排除するものではない。要素に前に置かれる「ある（ａまたはａｎ）」は当該要素が複数あることを排除するものではない。いくつかの相異なる要素を有するハードウェア、及び適切にプログラムされたコンピュータによって本発明を実現することができる。いくつかの手段を列挙する装置クレームでは、これら手段のいくつかは１つかつ同一のハードウェアによる実現が可能である。ある手段が互いに異なる従属クレームで繰り返されるという事実は、これらの手段の組み合わせが効果的に利用されえないということを意味するものではない。
【図面の簡単な説明】
【００３３】
【図１】図１は、シンクライアントサーバシステムのサーバ及びクライアントに適用される本発明の方法のフローチャートである。
【図２】図２は、図１の方法において領域キーを生成する方法を示すフローチャートである。
【図３】図３は、図２の領域キーの生成においてデータブロックの圧縮の概念的な例である。
【図４】図４は、図１から図３の方法による利用のためのメッセージフォーマットを示す。
【図５】図５は、第１ケースのための本発明の方法の部分を示す。
【図６】図６は、第２ケースのための本発明の方法の部分を示す。
【図７】図７は、第３ケースのための本発明の方法の部分を示す。
【図８】図８は、本発明の方法の一例を示す。
【図９】図９は、本発明の方法の他の例を示す。
【図４】
2005501355.tif 000003
【図５】
2005501355.tif 000004
【図６】
2005501355.tif 000005
【図７】
2005501355.tif 000006
【図８】
2005501355.tif 000007
【図９】
2005501355.tif 000008
【国際公開パンフレット】
2005501355.tif 000009
2005501355.tif 000010
2005501355.tif 000011
2005501355.tif 000012
2005501355.tif 000013
2005501355.tif 000014
2005501355.tif 000015
2005501355.tif 000016
2005501355.tif 000017
2005501355.tif 000018
2005501355.tif 000019
2005501355.tif 000020
2005501355.tif 000021
2005501355.tif 000022
2005501355.tif 000023
【国際調査報告】
2005501355.tif 000024
2005501355.tif 000025