(57)【特許請求の範囲】
【請求項１】
それぞれが表示領域のそれぞれの表示位置に表示すべき表示データを描画させるための命令を備えている複数の表示コマンドの組を、ソースから表示端末に順次転送するステップと、
前記転送された複数の表示コマンドの内、最後に転送された組の複数の表示コマンドのそれぞれの表示データの「純正」コピーを保持するステップと、
前記ソースから前記表示端末に順次転送された組内の欠落している表示コマンドを特定するステップと、
前記ソースから前記表示端末に順次転送された組内の表示コマンドの欠落の有無に関わらず該転送された組内の表示データを描画するステップと、
前記欠落している表示コマンドに関連づけられている表示位置に対応する表示データを前記「純正」コピーから取得するステップと、
前記「純正」コピーから取得した表示データを表示するステップと
を含み、実際の欠落表示コマンドが前記最後に転送された組に属するものでない中間の状態を示す場合であっても、当該欠落表示コマンドに関連づけられている表示位置に表示する表示データは当該中間状態を示す表示データではなく前記ソースから表示端末に最後に転送された組の「純正コピー」に属するものであることを特徴とする表示エラーを修正する方法。
【請求項２】
それぞれが表示領域のそれぞれの表示位置に表示すべき表示データを描画させるための命令を備えている複数の表示コマンドの組を、順次取得するステップと、
順次取得される前記組内における表示コマンドの内欠落している１つまたは複数の表示コマンドをモニタするステップであって、
１つまたは複数の欠落している表示コマンドに対する修正要求を送信すること、
前記１つまたは複数の欠落している表示コマンドに対応するエントリをチェックリストに追加すること、及び
前記表示コマンドの欠落に関わらず前記取得した複数の表示コマンドを実行すること
を含むステップと、
前記実行された表示コマンドが以前に取得された組における欠落表示コマンドに対応している場合に前記チェックリスト内に追加されている当該欠落表示コマンドに対応するエントリをクリアして該エントリに対応する修正要求の送信を停止するステップと
を含む表示エラーを修正する方法。
【請求項３】
コンピュータに所定のタスクを行わせるプログラムが埋め込まれているコンピュータ可読媒体であって、
それぞれが表示領域のそれぞれの表示位置に表示すべき表示データを描画させるための命令を備えている複数の表示コマンドの組を、ソースから表示端末に順次転送させるように構成されているコンピュータ可読プログラムと、
前記転送された複数の表示コマンドの内、最後に転送された組の複数の表示コマンドのそれぞれの表示データの「純正」コピーを保持させるように構成されているコンピュータ可読プログラムと、
前記ソースから前記表示端末に順次転送された組内の欠落している表示コマンドを特定させるように構成されているコンピュータ可読プログラムと、
前記ソースから前記表示端末に順次転送された組内の表示コマンドの欠落の有無に関わらず該転送された組内の表示データを描画させるように構成されているコンピュータ可読プログラムと、
前記欠落している表示コマンドに関連づけられている表示位置に対応する表示データを前記「純正」コピーから取得させるように構成されているコンピュータ可読プログラムと、
前記「純正」コピーから取得した表示データを表示させるように構成されているコンピュータ可読プログラムと
を備え、前記特定される欠落表示コマンドが前記最後に転送された組に属するものでない中間の状態を示す場合であっても、当該欠落表示コマンドに関連づけられている表示位置に表示する表示データは当該中間状態を示す表示データではなく前記ソースから表示端末に最後に転送された組の「純正コピー」に属するものであることを特徴とするコンピュータ可読媒体。
【請求項４】
コンピュータに所定のタスクを行わせるプログラムが埋め込まれているコンピュータ可読媒体であって、
それぞれが表示領域のそれぞれの表示位置に表示すべき表示データを描画させるための命令を備えている複数の表示コマンドの組を、順次取得させるように構成されているコンピュータ可読プログラムと、
順次取得される前記組内における表示コマンドの内欠落している１つまたは複数の表示コマンドをモニタさせるように構成されているコンピュータ可読プログラムであって、
１つまたは複数の欠落している表示コマンドに対する修正要求を送信させること、
前記１つまたは複数の欠落している表示コマンドに対応するエントリをチェックリストに追加させること、及び
前記表示コマンドの欠落に関わらず前記取得した複数の表示コマンドを実行させること
を行わせるよう構成されたコンピュータ可読プログラムと、
前記実行された表示コマンドが以前に取得された組における欠落表示コマンドに対応している場合に前記チェックリスト内に追加されている当該欠落表示コマンドに対応するエントリをクリアして該エントリに対応する修正要求の送信を停止させるように構成されているコンピュータ可読プログラムと
を備えたコンピュータ可読媒体。
【請求項５】
ディスプレイ装置の表示領域のそれぞれの表示位置に表示すべき複数の表示データを描画させる表示コマンドを複数有した複数のグループを、前記それぞれの表示データとそのそれぞれの表示データに関連づけされた表示命令に順次組み合わせることによって生成するステップと、
シーケンス・カウンタを繰り上げるステップと、
前記シーケンス・カウンタの繰り上げ値のそれぞれを前記複数のグループ内のそれぞれの表示コマンドに関連づけるステップと、
前記繰り上げ値に関連づけられた前記表示コマンドのグループを前記ディスプレイ装置に順次伝送するステップと、
最後に前記ディスプレイ装置に伝送されたグループのそれぞれの表示データが純正コピーとして保存されるように、前記純正コピーに保持されている１つのグループのそれぞれの表示データを、後に伝送されるグループのそれぞれの表示データで順次置き換えることによって前記純正コピーを順次更新していくステップと、
順次伝送されるグループ内に欠落している表示コマンドが存在しているか否かを、前記シーケンス・カウンタのそれぞれの繰り上げ値に基づき検出するステップと、
欠落表示コマンドの存在の有無に関わらず、順次伝送されるグループ内のそれぞれの表示データを描画するステップと、
欠落表示コマンドが存在した場合に、当該欠落表示コマンドに関連づけられている表示位置に対応する表示データを前記純正コピーに要求するステップと、
前記要求にしたがって前記純正コピーから取得した表示データを、該表示データを表示させるためのコマンドと組み合わせて前記ディスプレイ装置に伝送するステップと
を含み、実際の欠落表示コマンドが前記最後に伝送されたグループに属するものでない中間の状態を示す場合であっても、当該欠落表示コマンドに関連づけられている表示位置に表示する表示データは当該中間状態を示す表示データではなく前記最後に伝送されたグループの純正コピーに属するものであることを特徴とする表示エラーを修正する方法。
【請求項６】
コンピュータに所定のタスクを行わせるプログラムが埋め込まれているコンピュータ可読媒体であって、
ディスプレイ装置の表示領域のそれぞれの表示位置に表示すべき複数の表示データを描画させる表示コマンドを複数有した複数のグループを、前記それぞれの表示データとそのそれぞれの表示データに関連づけされた表示命令に順次組み合わせることによって生成させるように構成されているコンピュータ可読プログラムと、
シーケンス・カウンタを繰り上げさせるように構成されているコンピュータ可読プログラムと、
前記シーケンス・カウンタの繰り上げ値のそれぞれを前記複数のグループ内のそれぞれの表示コマンドへの関連づけを行わせるよう構成されているコンピュータ可読プログラムと、
前記繰り上げ値に関連づけられた前記表示コマンドのグループを前記ディスプレイ装置に順次伝送させるように構成されているコンピュータ可読プログラムと、
最後に前記ディスプレイ装置に伝送されたグループのそれぞれの表示データが純正コピーとして保存されるように、前記純正コピーに保持されている１つのグループのそれぞれの表示データを、後に伝送されるグループのそれぞれの表示データで順次置き換えることによって前記純正コピーを順次更新させるように構成されているコンピュータ可読プログラムと、
順次伝送されるグループ内に欠落している表示コマンドが存在しているか否かを、前記シーケンス・カウンタのそれぞれの繰り上げ値に基づき検出させるように構成されているコンピュータ可読プログラムと、
欠落表示コマンドの存在の有無に関わらず、順次伝送されるグループ内のそれぞれの表示データを描画させるように構成されているコンピュータ可読プログラムと、
欠落表示コマンドが存在した場合に、当該欠落表示コマンドに関連づけられている表示位置に対応する表示データを前記純正コピーに要求させるように構成されているコンピュータ可読プログラムと、
前記要求にしたがって前記純正コピーから取得した表示データを、該表示データを表示させるためのコマンドと組み合わせて前記ディスプレイ装置に伝送させるように構成されているコンピュータ可読プログラムと、
を含み、実際の欠落表示コマンドが前記最後に伝送されたグループに属するものでない中間の状態を示す場合であっても、当該欠落表示コマンドに関連づけられている表示位置に表示する表示データは当該中間状態を示す表示データではなく前記最後に伝送されたグループの純正コピーに属するものであることを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
（発明の背景）
１．発明の分野
本発明は、コンピュータ・システムにおけるエラー修正の分野に関するものである。
【０００２】
本特許文書の開示はその一部に、著作権保護の対象となる素材を含んでいる。本著作権所有者は、特許商標局の書類または記録に出現するような特許文書または特許開示のいずれによる複製に対しても異議を有するものではない、しかし、これ以外に関しては著作権の一切すべてに対しその権利を留保するものである。Ｓｕｎ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、Ｓｕｎのロゴ、Ｊａｖａ、ＪａｖａＢｅａｎｓ、ＨｏｔＪａｖａ、並びにＪａｖａベースのすべての商標及びロゴは、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の米国内及びその他の国における商標または登録商標である。
【０００３】
２．背景技術
コンピュータ・システムにおいては、データはデータ・ソースにより作成され、データ・コンシューマ、または端末に対して提供されるのが普通である。いくつかのコンピュータ・システムでは、そのデータ・コンシューマは、単に何らかのデータの最終の状態または現在の状態に関心を示すだけであって、こうした最終の状態または現在の状態に至るために通過する中間の状態に関心を示すものではない。データに対するこうしたコンシューマの一つは、ユーザに対して情報を表示するための表示手段である。そのソースからディスプレイまで移動させる際に、データの一部が失われる、すなわち脱落することは時々起こり、これにより、エラー状態となる。修正したデータが表示できるようにこのエラー状態を修正することが必要である。エラー修正のための現行のスキームでは、コンピュータ・システムの実行を禁止して、データの表示を中断し、かつ遅延させる。
【０００４】
いくつかのシステムでは、データ・ソースは、表示生成装置（本出願においては、表示生成装置のことを端末と呼ぶ）に対し一連のコマンドを送信することにより、そのデータを表示させる。その一連の各コマンドは関連するシーケンス番号を有しており、そのシーケンス番号は、抜けをもたない一連の数列として形成されている。端末がコマンドを受信したときに端末が行うことの一つは、各コマンドのシーケンス番号を調べ、その番号が予定された次のシーケンス番号になっているか否かを確認することである。順序通りでないシーケンス番号を有するコマンドを端末が受信した場合には、そのシーケンス番号が最後に受信したコマンドのシーケンス番号と、この順序通りでないコマンドのシーケンス番号との間にあたるコマンドが欠落してものと見る。従来技術の典型的なスキームでは、その端末は欠落したコマンドが与えられるまで表示データの生成を中止する。
【０００５】
従来技術のスキームの動作の一例を図２に示す。図２は、４×４格子のピクセルで構成されている。これは、例示のために使用する全体の表示エリアの１つのサブセットである。この格子は、Ａ、Ｂ、Ｃ及びＤという列と、１、２、３及び４という行から構成されている。したがって、ピクセル位置は、これらの列番号及び行番号によって特定される、例えばピクセルＢ−２は第２列の２番目のピクセルであり、ピクセルＣ−４は第４列の３番目のピクセルである、等々である。
【０００６】
その表示エリアがすべて１つの色であり、かつ第２の色に表示を変更することが望ましいような状況を考えてみる。図２の時刻Ｔ０においては、格子の各ボックス内の「Ｒ」で示すように、ピクセルのすべては１つの色である。当該の特定の表示エリアに対して書き込みを行っているソースから一連のコマンドが受信される。この記載では、例示のため各ピクセルあたり１つのコマンドであると仮定しているが、実際上は、単一のコマンドにより複数のピクセルの描画を起動させることができる。図２の例におけるコマンドは、各ピクセルを青色に変更させようとするものである。時刻Ｔ１において、この端末は次のシーケンス番号、すなわちＣ−１、Ｃ−２、Ｃ−３、Ｃ−４、Ｃ−５、Ｃ−７、Ｃ−８、Ｃ−９、Ｃ−１０、Ｃ−１１、Ｃ−１２、Ｃ−１３、Ｃ−１４、Ｃ−１５及びＣ−１６というシーケンス番号を有するコマンドを受信するものと仮定する。換言すると、コマンド・シーケンス番号Ｃ−６が欠落している。
【０００７】
従来技術では、正しく受信されたコマンド、コマンドＣ−１からＣ−５までは、時刻Ｔ１で示すように表示されるように実行される。しかし、次のコマンド・シーケンス番号Ｃ−７が現れた時点で、従来技術のシステムは、欠落しているコマンドの再送をソースに要求するために停止してしまう。後続のコマンドＣ−７からＣ−１６までが使用可能であっても、従来技術のシステムでは、これらのコマンドを実行しない、このためその表示は部分的に更新されただけである。したがって、その表示は、時刻Ｔ２においても、時刻Ｔ１における表示と同じ状態である。最終的に、時刻Ｔ３において、端末は欠落しているブロックＣ−６を受信した後、Ｃ−６のコマンド及び、すでに受信しているコマンドＣ−７からＣ−１６までを実行し、ディスプレイは図２の時刻Ｔ３に示すようにすべてを青色のピクセルとして新たに表示する。
【０００８】
動作時において、図２の例のエラー修正スキームでは、データ表示の顕著な遅れや滞りが生じる。ユーザにとっては、まるでコンピュータが低速度であると見えたり、あるいは一時的に動作不良になったように見える。こうした体験は望ましくない。
【０００９】
従来技術のエラー修正スキームによりどのようにして不必要な遅延が起こるかについての別の例を図３に示す。この例は、そのピクセルが赤から青、さらに緑へと変更されているところである。時刻Ｔ０において、そのピクセルのすべては赤である。次いで、この端末はそのピクセルを青に変更させるコマンドを受信し、続いてそのピクセルを緑に変更させるコマンドを受信する。図２の例の場合と同じように、コマンド・シーケンス番号Ｃ−６は欠落しており、このため時刻Ｔ１において、表示は第１行のピクセル及び第２行の１番目のピクセルのみが赤から青に変更されているだけである。残りのピクセルは赤のままである。ここでも、この端末は欠落しているデータ・シーケンス・ブロックを要求する。その間に、ピクセルを青から緑に変更させるためのコマンドと共に、コマンドＣ−１７からＣ−３２までが受信されている。しかし、端末は欠落しているコマンド・ブロックを待ち受けているままであるため、時刻Ｔ２における表示は時刻Ｔ１における表示のままである。
【００１０】
欠落しているブロックを受信すると、端末はコマンドの順序通りの実行を継続し、時刻Ｔ３において、すべてのピクセルが青色のピクセルに変更される。最終的に、時刻Ｔ４において、端末はコマンドＣ−１７からＣ−３２までを実行し、ピクセルは青から緑に変更される。従来技術によるこの「停止＋待機」システムの短所は、端末がソースからのデータを要求している間は表示の更新が休止になることである。ユーザにとっては、ディスプレイが「フリーズ」したように見えたり、あるいはユーザ・コマンドの応答にバッファがあるように見えることがあり得る。これによりユーザは、実質的に即座のやりとりが制限されたり、妨げられたりすることになる。
【００１１】
（発明の概要）
本発明は、データが中央のソースから端末に対して提供されるコンピュータ・システムにおいて使用されるエラー修正スキームに照準を合わせたものである。データはダイナミックに変化しており、ユーザはデータの中間の状態よりもデータの最終の状態または現在の状態により関心を示すものである。データはブロックのストリームとして提供され、各ブロックには連続した「シーケンス」番号が付けられている。本発明では、データ・プロバイダがデータ・ブロックをシーケンスの順序通りに送信していると仮定している。端末は到着するブロックのシーケンス番号を追跡している。端末が１つまたは複数のブロックに抜けがある、すなわち欠落していることを発見すると、端末は中央のソースに対して更新データを要求する。欠落している１つまたは複数のブロックの再送を要求する従来技術のシステムとは異なり、本発明では、欠落しているコマンド内に含まれている情報、例えば欠落しているブロックに関連づけられている表示エリアの位置の現在のデータを提供するように要求する。中央のソースはすべての表示エリアの現在のデータ状態を保持しているので、要求を受けたデータを含んでいるデータ・ブロックを送信する。その間に、端末は、更新要求が満たされるのを待つことなく、受信を継続すると共に、受信したすべてのデータ・ブロックを表示する。このことが、置き換えデータを受信するまで表示を休止させている従来技術のスキームと異なるところである。
【００１２】
（発明の詳細な説明）
本発明は、エラー修正を提供するための方法及び機構である。本発明の実施形態をより完璧に説明するために、以降の説明の中で多数の具体的な詳細を掲げてある。しかし、本発明がこれらの具体的な詳細以外によっても実施できることは、当業者にとっては明らかであろう。これ以外の例においても、本発明を不明瞭にすることがないように、よく知られている特徴は詳細には記載していない。
【００１３】
本発明は、１つまたは複数の端末とデータを通信する１つまたは複数のデータ・ソース（本明細書では、データ・サービスと呼ぶ）を備えているコンピュータ・システムに適用される。本発明の目的のために、単一のサービスと単一の端末の間のやりとりを例として用いる。本発明はディスプレイ端末に関して記載するが、本発明がデータ・コンシューマにおいて最終の状態または現在の状態のみを求めているようなその他の状況にも適用できることは、当業者には明らかであろう。
【００１４】
本発明におけるサービスは、端末に対してコマンドを送信し、表示データを端末ディスプレイに作成させる。これらのコマンドは、表示データ及び表示アドレス位置、あるいは端末に表示データを描かせるためのその他のデータから構成されている。本発明では、これらのコマンドは一連のデータ・ブロックとして端末に送信される。よく知られている技法を用いて、サービスが送信する各データ・ブロックは、関連付けられた１つのシーケンス番号を有している。このシステムは、ブロックを正しい順序で送信するように、すなわち、送信されたブロックの各番号が連続した順序通りになっているようにサービスを制約している。
【００１５】
端末はデータ・ブロックを受信し、この中に含まれるコマンドに従って表示を作成する。各データ・ブロックには、端末に対して端末ディスプレイ上の関連づけられた位置に描画するように指示する１つまたは複数のコマンドが含まれている。同時に、このサービスは、その表示に対する「純正の」コピーをメモリ内に保持している。（このメモリは、仮想バッファの場合と実際の物理的バッファの場合がある）。この純正コピーは現在の表示画像であり、端末に送信されている任意の命令に対応するようにサービス側で更新される。すなわち、この純正コピーは端末に表示された画像と同一である必要があり、サービスから端末へのコマンドはすべてが正しく受信されると共に、端末において実行されることを前提としている。
【００１６】
端末は到着するデータのシーケンス番号を追跡している。シーケンス内に抜けが見つかった場合、端末は当該のシーケンス・ブロックの表示位置と関連づけられた現在のデータに対する要求をサービスに対して送信する。さらに、端末は使用しなかったシーケンス・ブロックの「チェックリスト」を保持している。シーケンス・ブロックが欠落している表示エリアの現在の状態を表しているデータの新たなブロックをサービスが送信したら、そのサービスは、端末が当該の位置が現在更新されていることを端末に知らせる。いくつかの場合では、サービスは、欠落しているシーケンス・ブロックに関する警告を受信する前に、すでに後続のブロック内の表示位置に現在のデータを提供してしまっていることもあり得る。この場合には、サービスは端末がすでに現在の表示データを受信できていることを端末に知らせる。
【００１７】
端末が、欠落しているシーケンス・ブロックの表示エリアに関連づけられた現在の表示データを受信している、あるいは端末が現在のデータをすでに受信したことを知らされた場合には、端末はそのチェックリストを更新して、当該の表示エリアに対するレファレンスを削除することができる。端末は、定期的にそのチェックリストをチェックし、端末がまだ現在の表示データを受信していないエントリに対する要求の送信を繰り返す。
【００１８】
本発明においては、エラー修正の要求が、受信されなかったデータのシーケンス・ブロックを再送する要求ではないことに留意されたい。そうではなく、そのエラー修正の要求は、欠落しているシーケンス・ブロックに関連づけられている表示位置に現在表示すべきデータを要求することである。
【００１９】
本発明は、データのどこかに目下のところ正しくないところがある場合であっても、完全に修正されたデータを用いて間欠的に表示を更新するよりも、表示の迅速な更新を継続する方が好ましいという前提により動作している。本発明は、表示データがダイナミック・データであるが、任意の中間の状態よりも現在の状態または最終の状態により大きな関心があると見込まれるような状況において特に利用できる。さらに、本発明では、細かなエラーは端末ユーザの人間には検出できない、あるいは検出不可能である可能性が高いということを前提としている。そのディスプレイの大部分が予測通りに動作している限りにおいて、１つまたは数個のピクセルのエラーは人間のユーザには検知される可能性は高くない。さらに、本発明は、ユーザが状態の最も新しいスナップショットに関心があり、さらに受け取り側のユーザが戻すことがない、すなわち、システムが読み出し専用であるような任意のシステムでうまく動作する。例えば、株価相場サービスは、読み出し専用サービスであり、現在の状態の情報が最大の関心事である。このシステムによって、エラーがある場合でも最も最新の情報が送信されるスキームを提供できる。
【００２０】
図４及び５を参照することにより、本発明の動作を理解できる。これらの図は、図２及び３の例で提示した動作の事例と同様な２つの動作事例を示したものである。図４の第１の事例では、ある領域内のピクセルのすべてが赤から青に変更されるが、ある１つのコマンド・ブロックが失われている。図５の第２の事例では、ある領域内のピクセルのすべてが赤から青に、さらに緑へと変更されるが、ある１つのピクセルを赤から青に変更するためのコマンドが失われている。
【００２１】
先ず図４を参照すると、時刻Ｔ０において、ピクセルのすべては赤である。次いで、端末はコマンドＣ−１からＣ−５までを受信し、第１行のピクセル及び第２行の１番目のピクセルが青に変更される。コマンドＣ−６は欠落している。端末は、ステータス・エリア内にコマンドＣ−６が欠落していることを記録すると共に、コマンドＣ−６に関連づけられている表示エリアに対応した現在のデータを要求する。しかし、端末は続いて受信したコマンドＣ−７からＣ−１６までの実行を継続する。その結果、時刻Ｔ１のように、ディスプレイは、位置Ｂ２以外はピクセルのすべてが青に変更される。単一のピクセルは、人間の眼で検出するには比較的小さい面積であるため、ユーザは表示の一部分が更新されていないことに気が付かないことさえある。多くの場合、欠落しているデータが均一でない領域にあることがあり、この場合小さい領域が更新されていないことに気が付くことはさらに困難となる。したがって、ユーザにとって（必ずしも完全ではないが）十分に満足できる程度に連続して更新することができる。
【００２２】
サービスが端末からの要求を受信した場合、サービスは、欠落しているシーケンス・ブロックに関連づけされている表示エリアに対する純正コピーをチェックする。この場合には、サービスはピクセルがすでに赤から青に変更されているので、サービスが端末に当該のピクセルを青に変更するマンドを送信することを決定する。端末はそのコマンドを実行して、ディスプレイが時刻Ｔ２に示すように、すべてのピクセルが青となるようにする。
【００２３】
例示のための別の例は、図５の例である。この例は、恐らく、その表示がよりダイナミックなものである際の典型的なディスプレイの更新の問題をより厳密に映したものである。時刻Ｔ０において、すべてのピクセルは赤である。次いで、端末はコマンドＣ−１からＣ−５までを受信し、対応するピクセルを青に変更させる。ここでも、端末は、コマンドＣ−７を受信した時点でシーケンス・コマンドからはずれたことを検出し、そこで端末はコマンドＣ−６に対する修正の要求を送信する。
【００２４】
しかし、端末はコマンドＣ−７からＣ−１６までの実行を継続し、第２行のピクセルの残りと第３及び第４行のピクセルのすべてを赤から青に変更し、ディスプレイが時刻Ｔ１に示すように表示されるようにする。その間、サービスが修正に対する要求に応答する前に、ピクセルを緑に変更させるコマンドであるコマンドＣ−１７からＣ−３２まではすでに端末に転送されている。修正の要求に対する応答を待つ間であっても、端末は「シーケンスの通り」のコマンドのすべてに対する実行を継続し、そのすべてのピクセルを緑に変更する。これらのコマンドを実行した後は、ディスプレイは図５の時刻Ｔ２に示すように表示される。したがって、本スキームを使用すると、修正の要求に対する応答が未だ得られていない場合であっても、その表示が正確である。サービスが修正の要求を受信したときには、サービスは端末がすでに当該の位置に対する現在のデータを受信していることを端末に知らせる。（別法として、サービスは当該の表示位置に対する現在のデータを再送することができる）。次いで、端末はそのチェックリストからこの要求を削除する。
【００２５】
本発明のエラー修正スキームの動作に関する流れ図を図７に示す。ステップ７０１において、端末はコマンドを受信する。判断ブロック７０２において、「シーケンスは正しいか」という判定が立てられる。この判定が偽の場合には、受信したコマンドのシーケンス番号が予測される次のシーケンス番号ではなかったことを意味し、端末はステップ７０３に進む。ステップ７０３において、端末はサービスに対して修正の要求を送信する。ステップ７０４において、端末はその欠落しているコマンドに関するエントリをチェックリストに追加する。次いで、端末はステップ７０１に戻り、次に受信したコマンドをその予測されるシーケンス番号と比較することができるようにシーケンス番号のカウントを増分しながら次のコマンドを待つ。
【００２６】
判断ブロック７０２において、その判定が真であった場合には、そのコマンドは予測される次のシーケンス番号であったことを意味し、端末はステップ７０５に進んで、そのコマンドを実行する。コマンドを実行した後に、端末は判断ブロック７０６に進む。判断ブロック７０６において、「コマンドによりチェックリストのエントリをクリアするか」という判定が立てられる。この判定は、そのコマンドがその前の修正の要求に対応するものであったか否かを決定するためのものである。その判定が偽である場合には、端末は判断ブロック７０８に進む。判定が真である場合には、ステップ７０７において、端末は対応するエントリをチェックリストからクリアする。一実施形態では、本発明は、特定のシーケンス番号までのチェックリストのエントリのすべてをクリアする。サービスは、当該のシーケンス番号までのすべてのエラーがすでに修復されている、あるいは修復されることになることを端末に知らせる。
【００２７】
判断ブロック７０８において、「チェックリスト・エントリのステータス判定の時か」という判定が立てられる。この判定は、そのチェックリスト内にあるエントリのうちのどれかのエントリがステータス・チェックを実施する程に古くなっているか否かを決定するためのものである。判断ブロック７０８における判定が偽の場合には、端末はステップ７０１に戻る。判定が真の場合には、ステップ７０９において、端末は対応する１つまたは複数のチェックリスト・エントリに対するステータス要求をサービスに送信して、ステップ７０１に戻る。ステップ７０８及び７０９の動作は、個別中断式プロセスあるいは定期的プロセスとすることが可能であることに留意されたい。
【００２８】
本発明におけるサービスの動作の流れ図を図８に示す。図８には、２つのプロセス、すなわちコマンド・アセンブリ・プロセス及びエラー修正プロセスを記載してある。ステップ８０１において、サービスは端末に対して送信されるコマンドを組み合わせる。ステップ８０２において、シーケンス番号を繰り上げて行きそれらのコマンドに関連づける。ステップ８０３において、このコマンド及びシーケンス番号を端末に送信する。ステップ８０４において、サービスによって保持されている表示の局所的な純正コピーが更新される。この純正コピーは物理的バッファ、仮想バッファ、あるいは大容量記憶装置内に保持することができる。
【００２９】
ステップ８０５から８０８までは端末からのエラー修正要求を処理するためのプロセスを記載したものである。ステップ８０５において、サービスは、端末から修正要求を受信する。この修正要求は１つまたは複数の欠落しているシーケンス番号を特定する。ステップ８０６において、サービスはこの１つまたは複数の欠落しているコマンドにより影響を受ける１つまたは複数の表示領域を決定する。ステップ８０７において、サービスは、これらの表示領域の現在のデータを表示の純正コピーから取り出す。ステップ８０８において、サービスはその現在のデータを要求している端末に対するコマンドを組み合わせて、ステップ８０２に進む。
【００３０】
さらに、本発明は、サービスにより新たなデータが提供される場合以外の状況にも適用できる。例えば、端末はある表示エリアからデータをコピーし、これを別の表示エリアにペーストするように求められる。コピーしようとするデータが脱落しているか、あるいは使用不可能である場合には、端末はサービスにデータを要求することができる。（ここで、この「ステートレス（stateless）」型のコピー状況では、端末は欠落しているシーケンス番号のコマンドに関連づけられているデータの置き換えを要求するものではないことに留意されたい。）
【００３１】
コンピュータの実行環境（ハードウェア）の実施形態
本発明の一実施形態は、図１に示すコンピュータ１００などの汎用のコンピュータ上で実行されるコンピュータ読み取り可能なコードの形態、あるいはこうしたコンピュータで走らせることができるＪａｖａTMのｒｕｎｔｉｍｅ環境内で実行可能なバイトコードのクラス・ファイルの形態をしているコンピュータ・ソフトウェアとして実施することができる。キーボード１１０及びマウス１１１は双方向システム・バス１１８に結合されている。このキーボード及びマウスは、ユーザ入力をコンピュータ・システムに導入すると共に、このユーザ入力をプロセッサ１１３に通信するためのものである。マウス１１１及びキーボード１１０に加えて、あるいはマウス１１１及びキーボード１１０の代わりに、その他の適当な入力デバイスを使用することができる。双方向システム・バス１１８に結合されているＩ／Ｏ（入力／出力）ユニット１１９は、プリンタ、Ａ／Ｖ（オーディオ／ビデオ）Ｉ／Ｏ、などのＩ／Ｏエレメントである。
【００３２】
コンピュータ１００は、ビデオ・メモリ１１４及びメイン・メモリ１１５、また任意選択では、大容量記憶装置１１２を含んでおり、これらのすべては、キーボード１１０、マウス１１１及びプロセッサ１１３と同様に双方向システム・バス１１８に結合されている。大容量記憶装置１１２が使用されている場合、大容量記憶装置１１２は、磁気式、光学式または磁気光学式の記憶システムや、その他利用可能な大容量記憶装置テクノロジーなどの固定のメディア及びリムーバブル・メディアの双方を含むことができる。バス１１８は、ビデオ・メモリ１１４またはメイン・メモリ１１５をアドレスするために、例えば、３２本のアドレス線を含むことがある。さらに、システム・バス１１８は、プロセッサ１１３、メイン・メモリ１１５、ビデオ・メモリ１１４及び大容量記憶装置１１２などのコンポーネント同士、並びにこれらコンポーネントの間でデータを伝送するために、例えば、３２ビットのデータ・バスを含む。別法として、個別のデータ線とアドレス線ではなく多重式のデータ／アドレス線を使用することができる。
【００３３】
本発明の一実施形態では、そのプロセッサ１１３は、Ｍｏｔｏｒｏｌａにより製造されている６８０Ｘ０プロセッサなどのマイクロプロセッサ、Ｉｎｔｅｌにより製造されている、８０Ｘ８６やＰｅｎｔｉｕｍプロセッサなどのマイクロプロセッサ、あるいはＳｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓTM，ＩｎｃによるＳＰＡＲＣTMマイクロプロセッサなどである。しかし、その他の適当なマイクロプロセッサやマイクロコンピュータを利用することもできる。メイン・メモリ１１５は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）により構成されている。ビデオ・メモリ１１４は、デュアル・ポートのビデオ・ランダム・アクセス・メモリである。このビデオ・メモリ１１４のポートの１つはビデオ増幅器１１６に結合されている。ビデオ増幅器１１６は、陰極線管（ＣＲＴ）式ラスタ・モニタ１１７を駆動させるために使用される。別法として、ビデオ・メモリを使用して、フラットパネルや液晶ディスプレイ（ＬＣＤ）、あるいはその他任意の適当なデータ表出デバイスを駆動することができる。ビデオ増幅器１１６は当技術分野でよく知られており、任意の適当な装置により実現することができる。この回路はビデオ・メモリ１１４内に格納されているピクセル・データをモニタ１１７による使用に適したラスタ信号に変換する。モニタ１１７は、グラフィック画像を表示するのに適したタイプのモニタである。
【００３４】
さらに、コンピュータ１００は、バス１１８に結合された通信インタフェース１２０を含むことがある。通信インタフェース１２０は、ローカル・ネットワーク１２２に対するネットワーク・リンク１２１を介した双方向データ通信結合を提供する。例えば、通信インタフェース１２０が総合デジタル通信網（ＩＳＤＮ）のカードまたはモデムである場合には、通信インタフェース１２０は、ネットワーク・リンク１２１の一部を構成している、対応するタイプの電話回線に対するデータ通信接続を提供する。通信インタフェース１２０がローカル・エリア・ネットワーク（ＬＡＮ）のカードである場合には、通信インタフェース１２０は、互換ＬＡＮに対するネットワーク・リンク１２１を介したデータ通信接続を提供する。さらに、ワイヤレス・リンク、モデムまたはケーブル・モデムも可能である。こうした任意の実施において、通信インタフェース１２０は、様々なタイプの情報を表しているディジタル・データのストリームを搬送するための電気的、電磁気的または光学的な信号を送信及び受信する。
【００３５】
ネットワーク・リンク１２１は、典型的には、その他のデータ・デバイスに対して１つまたは複数のネットワークを介したデータ通信を提供する。例えば、ネットワーク・リンク１２１は、ローカル・サーバー・コンピュータ１２３、あるいはインターネット・サービス・プロバイダ（ＩＳＰ）１２４により操作されるデータ装置に対するローカル・ネットワーク１２２を介した接続を提供することができる。ＩＳＰ１２４は続いて、現在一般に「インターネット」１２５と呼ばれている全世界的なパケット・データ通信ネットワークを介したデータ通信サービスを提供する。ローカル・ネットワーク１２２及びインターネット１２５は共に、ディジタル・データのストリームを搬送する、電気式、電磁気式または光学式の信号を使用している。様々なネットワークを介した信号及びネットワーク・リンク１２１上にあって通信インタフェース１２０を介した信号は、コンピュータ１００に対するディジタル・データの搬送及びコンピュータ１００からのディジタル・データの搬送を行っており、情報を伝送する搬送波の例示的な形態である。
【００３６】
コンピュータ１００は、ネットワーク（複数のこともある）、ネットワーク・リンク１２１及び通信インタフェース１２０を介して、メッセージの送信及びプログラム・コードなどのデータの受信を行うことができる。インターネットの例では、リモート・サーバー・コンピュータ１２６は、アプリケーション・プログラムを要求するコードがある場合に、これをインターネット１２５、ＩＳＰ１２４、ローカル・ネットワーク１２２及び通信インタフェース１２０を介して伝送させることもあり得る。本発明によれば、こうしてダウンロードされるアプリケーションの一つは本明細書に記載したエラー修正用の機構である。
【００３７】
受信されたコードは、プロセッサ１１３によって、受信される都度実行する場合、及び／または後に実行するために大容量記憶装置１１２その他の不揮発性記憶装置に格納する場合がある。この方式では、コンピュータ１００は搬送波の形態でアプリケーション・コードを取得する。
【００３８】
アプリケーション・コードは、コンピュータ・プログラム製品のあらゆる形態として記録することができる。コンピュータ・プログラム製品はコンピュータ読み取り可能なコードを格納または伝送するように構成されているか、またはその中にコンピュータ読み取り可能なコードを記録することができるメディアを備えている。コンピュータ・プログラム製品のいくつかの例は、ＣＤ−ＲＯＭディスク、ＲＯＭカード、フロッピィ・ディスク、磁気テープ、コンピュータハードドライブ、ネットワーク上のサーバー及び搬送波である。
【００３９】
ヒューマン・インタフェース・デバイス式コンピュータ・システム
さらに、本発明は、表示しようとするデータをネットワークを介して提供するようなコンピュータ・システムに適用できる。このネットワークはローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、ワールド・ワイド・ウェブ（ＷＷＷ）、あるいはその他適当な任意のネットワーク構成とすることができる。本発明の一実施形態は、本明細書においてヒューマン・インタフェース・デバイス式コンピュータ・システムと呼ぶコンピュータ・システム構成で使用される。
【００４０】
このシステムでは、システムの機能はディスプレイ及び入力デバイス、並びにデータ・ソースまたはサービスの間に分けられている。ディスプレイ及び入力デバイスはヒューマン・インタフェース・デバイス（ＨＩＤ）である。このシステムの区分けでは、状態及び計算機能はＨＩＤから除去してあり、データ・ソースまたはサービス上に置かれるようにする。本発明の一実施形態では、１つまたは複数のサービスは、ネットワークなどの何らかの相互接続網を介して１つまたは複数のＨＩＤと通信する。こうしたシステムの一例を図６に示す。図６を参照すると、このシステムは、ＨＩＤ６０２と相互接続網６０１を介してデータを通信する計算サービス・プロバイダ６００により構成されている。
【００４１】
計算サービス・プロバイダ  このＨＩＤシステムでは、計算のパワー及び状態のメインテナンスはサービス・プロバイダまたはサービス内に見いだされる。このサービスは特定のコンピュータに結ばれているものではなく、図１に関連して記載した１つまたは複数の従来のデスクトップ・システムにわたって、あるいは従来のサーバーを用いて分散させることがある。ある１つのコンピュータが１つまたは複数のサービスを有することがあり、ある１つのサービスが１つまたは複数のコンピュータにより実装されることがある。このサービスはＨＩＤに対して計算、状態及びデータを提供すると共に、このサービスは１つの共通の権威者または責任者の管轄下にある。図６において、このサービスはコンピュータ６１０、６１１、６１２、６１３及び６１４に見いだされる。
【００４２】
サービスの例としては、Ｘ１１／Ｕｎｉｘのサービス、アーカイブしたまたはライブのオーディオ及びビデオのサービス、Ｗｉｎｄｏｗｓ  ＮＴのサービス、ＪａｖａTMプログラムの実行サービスなどがある。本明細書のサービスの１つは、出力データを提供しユーザの要求及び入力に対して応答するプロセスである。
【００４３】
相互接続網  本発明においては、その相互接続網はサービスとＨＩＤの間でデータを搬送するための適当な多重の通信経路のうちの任意のものである。一実施形態では、その相互接続網は、イーサネット・ネットワークとして実現されるローカル・エリア・ネットワークである。その他の任意のローカル・ネットワークを利用することもできる。さらに、本発明は、ワイド・エリア・ネットワーク、インターネット、ワールド・ワイド・ウェブ（ＷＷＷ）などの使用を企図している。この相互接続網は、ワイヤや光ファイバ・ケーブルなどの物理的メディアを用いて実施することができる、あるいはワイヤレス環境で実施することができる。
【００４４】
ＨＩＤ  ＨＩＤは、サービスが提供する計算サービスにユーザがアクセスするための手段である。図６は、ＨＩＤ６２１、６２２及び６２３を図示している。ＨＩＤはディスプレイ６２６、キーボード６２４、マウス６２５、オーディオ・スピーカ６２７などのインタフェース・デバイスの１つまたは複数の集まりから構成されている。ＨＩＤは、相互接続網に対してこれらのデバイスをインタフェースさせると共に、サービスに対するデータの伝送及びサービスからのデータの受信を行う電子回路必須要素である。
【００４５】
ＨＩＤのブロック図を図９に示す。ＨＩＤの各コンポーネントは、内部でＰＣＩバス９１２に結合されている。ネットワーク制御ブロック９０２は、線９１４を介してイーサネットなどの相互接続網と通信する。オーディオＣＯＤＥＣ９０３はインタフェース９１６上でオーディオ・データを受信すると共に、ブロック９０２と結合されている。ＵＳＢデータ通信は線９１３によりＵＳＢコントローラ９０１に提供される。
【００４６】
組み込まれたプロセッサ９０４は、例えば、フラッシュ・メモリ９０５及びＤＲＡＭ９０６との結合を有するＳｐａｒｃ２ｅｐとすることがある。ＵＳＢコントローラ９０１、ネットワーク・コントローラ９０２及び組み込まれたプロセッサ９０４はすべて、ＰＣＩバス９１２に結合されている。ＰＣＩ９１２に結合されているものとしてはさらに、ビデオ・コントローラ９０９がある。ビデオ・コントローラ９０９は、例えば、ＳＶＧＡ出力を線９１５上に提供するＡＴＩ  ＲａｇｅＰｒｏ＋フレーム・バッファ・コントローラとすることがある。ＮＴＳＣデータは、ビデオ・デコーダ９１０及びビデオ・エンコーダ９１１を介して、それぞれビデオ・コントローラに対して並びにビデオ・コントローラから提供される。さらに、スマートカード・インタフェース９０８をビデオ・コントローラ９０９と結合させることがある。
【００４７】
上記のコンピュータ・システムは例示のみを目的としたものである。本発明の一実施形態はコンピュータ・システムまたはプログラミング環境や処理環境の任意のタイプにおいて実現させることができる。
【００４８】
以上、エラー修正のための方法及び機構を記述した。
【図面の簡単な説明】
【図１】  本発明と共に使用することができる例示的なコンピュータ・システムのブロック図である。
【図２】  従来技術による修正及びデータの表示の一例を表した図である。
【図３】  従来技術による修正及びデータの表示の別の例を表した図である。
【図４】  本発明を使用した修正及びデータの表示の一例を表した図である。
【図５】  本発明を使用した修正及びデータの表示の別の例を表した図である。
【図６】  本発明と共に使用することができるコンピュータ・システムのブロック図である。
【図７】  本発明による端末の動作を表した流れ図である。
【図８】  本発明によるサービスの動作を表した流れ図である。
【図９】  ＨＩＤデバイスのブロック図である。
【図１】
0003777090.tif 000002
【図２】
0003777090.tif 000003
【図３】
0003777090.tif 000004
【図４】
0003777090.tif 000005
【図５】
0003777090.tif 000006
【図６】
0003777090.tif 000007
【図７】
0003777090.tif 000008
【図８】
0003777090.tif 000009
【図９】
0003777090.tif 000010