(57)【特許請求の範囲】
【請求項１】
１又は複数の遠隔コンピュータとこれに接続された１又は複数のホストコンピュータ間において、前記ホストコンピュータのモニター上に表示された画像を前記遠隔コンピュータのモニター上に実質的に同時に表示するようにしたコンピュータネットワークの協同システムにおいて、
前記遠隔コンピュータと前記ホストコンピュータの夫々は、各コンピュータのモニターに表示される色を表すエントリーを格納するハードウェアパレットと、各アプリケーションプログラムにより前記ハードウェアパレットにアクセスして当該ハードウェアパレットを更新するシステムパレットと、前記ホストコンピュータ上で動作するアプリケーションプログラムを操作する手段と、を有し、
（１）前記ホストコンピュータは、当該ホストコンピュータ上のシステムパレットが変更されたことを認識するステップと、
（２）前記ホストコンピュータ上のシステムパレットが変更された場合、前記ホストコンピュータは、前記遠隔コンピュータに対して前記変更されたシステムパレットを送信するステップと、
（３）前記遠隔コンピュータは、前記変更されたシステムパレットに基づいて当該システムパレットを反映する論理パレットを発生するステップと、
（４）前記遠隔コンピュータは、前記論理パレットに基づいて各自の前記システムパレットを選択的に更新するステップと、
の各ステップを有することを特徴とする協同システムにおけるパレット管理方法。
【請求項２】
前記ステップ（４）は、
前記協同システムが当該遠隔コンピュータにおいてアクティブ状態の時は、前記システムパレットを前記論理パレットに置き換えるステップであり、
前記協同システムが当該遠隔コンピュータにおいて遊休状態の時は、前記システムパレットを前記論理パレットに選択的に置き換えるステップである、
請求項１に記載の協同システムにおけるパレット管理方法。
【請求項３】
１又は複数の遠隔コンピュータとこれに接続された１又は複数のホストコンピュータ間において、前記ホストコンピュータのモニター上に表示された画像を前記遠隔コンピュータのモニター上に実質的に同時に表示するようにしたコンピュータ間の協同システムにおいて、
前記遠隔コンピュータ及び前記ホストコンピュータの夫々は、
前記ホストコンピュータ上で動作するアプリケーションプログラムを操作する手段と、
各コンピュータのモニターに表示される色を表すエントリーを格納するハードウェアパレットと、各アプリケーションプログラムにより前記ハードウェアパレットにアクセスして当該ハードウェアパレットを更新するシステムパレットと、を備え、
前記ホストコンピュータは、当該ホストコンピュータ上のシステムパレットが変更されたことを認識する手段と、前記ホストコンピュータ上のシステムパレットが変更された場合、前記遠隔コンピュータに対して前記変更されたシステムパレットを送信する手段と、を有し、
前記遠隔コンピュータは、前記変更されたシステムパレットに基づいて当該システムパレットを反映する論理パレットを発生する手段と、前記論理パレットに基づいて各自の前記システムパレットを更新する手段と、を有する
ことを特徴とする協同システムにおけるパレット管理システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般的にコンピューターネットワークの構築に関し、特に協同システム（collaborative systems）の表示パレットを管理する方法および装置に関する。
【０００２】
【従来の技術】
本発明は、一般的に、コンピューター間でアプリケーションを共用するための協同システムに関し、特に協同システムにおける表示パレットを管理する方法および装置に関する。多くのコンピュータープログラムは可能なかぎり視覚的に強く訴えるようにするため、コンピューターのビデオサブシステムで利用可能なかぎり多数の色を使用する。これは、一つのシステム上でコンピュータープログラムを表示するかぎり、問題がない。と言うのは、そのコンピュータープログラムがシステム全体を完全に制御しているからである。しかし同時に多数のコンピューター上で一つのコンピュータープログラムを同一に表示することができるようにするためには、特別の技法を開発しなければならない。
【０００３】
【発明が解決しようとする課題】
それゆえ、本発明の課題は、協同システムにおける表示パレットを管理するための改良されたシステムを提供することである。
【０００４】
本発明の別の課題は、ホストコンピューター上での画像（image）の表示と実質上同一の画像を実質上同時に遠隔コンピューター上に表示するシステムを提供することである。
【０００５】
本発明のさらに別の課題は、ホストコンピューター上のシステムパレットにいつ変更がされたかを認識し、次いでそれらの変更を遠隔コンピューターに通信するシステムを提供することである。
【０００６】
本発明のさらに別の課題は、ホストコンピューター上のシステムパレット内に格納されている情報を反映させるため、論理パレットを遠隔コンピューター上に発生すると共に、上記論理パレット内に格納されている情報を反映させるべく、協同システムがアクティブであるか又は遊休中（idle）であるかに応じて、遠隔コンピューター上のシステムパレットを更新するシステムを提供することである。
【０００７】
【課題を解決するための手段】
本発明のさらに別の課題は、ホストコンピューターと遠隔コンピューターとの間で画像を共用するシステムを与えることである。この場合、本発明はホストコンピューター上のシステムパレットを使って、デバイス依存フォーマット（device dependent format）からデバイス独立画像（device independent image）に画像を翻訳し、そのデバイス独立画像をホストコンピューターから遠隔コンピューターに送信し、次いで遠隔コンピューター上の協同システムが維持している論理パレットを使ってそのデバイス独立画像を、遠隔コンピューター上での表示に適したデバイス依存画画像に翻訳する。
【０００８】
先行技術の制限を克服するため、および以下の説明から明かとなる他の制限を克服するため、本発明は、一つ以上の遠隔コンピューターに接続された一つ以上のホストコンピューターを含む協同システムにおけるパレットを管理する方法と装置を開示する。この場合、ホストコンピューター上に表示される画像は実質上同時に遠隔コンピューター上に表示される。本発明はホストコンピューター上のシステムパレットにいつ変更が行なわれたかを認識し、それらの変更を当該遠隔コンピューターに通信する。ホストコンピューター上のシステムパレットを反映させるため、遠隔コンピューター上に論理パレットが発生され、そこで当該変更が実行される。遠隔コンピューター上のシステムパレットは、その論理パレットを反映すべく更新することができ、協同システムがアクティブであるか遊休状態であるかに応じてそれらの変更が遠隔コンピューターで実行される。ホストコンピューターと遠隔コンピューターとの間で画像を共用するときは、それらの画像は最初に、ホストコンピューター上のシステムパレットを使ってデバイス依存フォーマットからデバイス独立画像に翻訳しなければならない。デバイス独立画像は、システムパレットと同様に、ホストコンピューターから遠隔コンピューターへ送信される。デバイス独立画像は次いで、協同システムが遠隔コンピューター上に維持している論理パレットを使って、遠隔コンピューター上での表示に適したデバイス依存画像に翻訳される。
【０００９】
【実施例】
添付の図面を参照して以下に本発明の実施例を説明する。これらの図面で対応する部分は同一の番号で表記する。
【００１０】
本発明は通信を行なうため、通常、一体に結合された二つ以上のパーソナルコンピューター１０を含むコンピューターネットワークに組み込まれる。各コンピューター１０にはモニター１２、ディスク格納装置１４、および通信リンク１６が接続されることが予定されている。また好ましい実施例では入力装置、例えばマウス指示デバイス１８、およびキーボード２０が含まれる。各コンピューター１０はウインドウズ（商標名）オペレーティングシステム又はマイクロソフトコーポレーションから販売されているオペレーティング環境のような、メッセージ駆動方式のマルチタスクグラフィックユーザーインターフェース（ＧＵＩ）２２の制御の下で作動する。
【００１１】
本発明では各コンピューター１０は協同システムの一部を形成する。一つのコンピューター１０（ホストコンピューター１０と呼ぶ）のユーザーは、ＧＵＩ２２の一つ以上のウインドウを占有する一つ以上のアプリケーションで作業する。本協同システムは一つ以上の遠隔コンピューター１０に、コンピューター１０のディスプレー全体ではなく、表示されているウインドウのうちの選択されたものを同時的に複製する。この選択的な複製を行なうことによって、ユーザーは共用されていない私的な領域を自分のモニター１２上に維持することができる。ＧＵＩ２２のマルチタスク能力により、ホストおよび遠隔コンピューター１０の双方が同時に他の複数のアプリケーションを走らせることができることに注目されたい。
【００１２】
本協同システムは、遠隔コンピューター１０に対し、本ストコンピューター１０上で選択した表示を複製するので、このためすべてのユーザーが各自のモニター１２上で同様の表示を見ることができるが、それら表示は以下の諸因子のために異なったものとなりうる：
（１）モニター１２が異なれば、解画像度および色表示能力等の性質が異なる。
【００１３】
（２）異なるディスプレープロトコル（ＥＧＡ、ＶＧＡ、Ｓ-ＶＧＡ、等）はグラフィック画像を異なって表示し、異なる色表示能力を有する。
【００１４】
（３）ＧＵＩ２２が異なると、またＧＵＩ２２が同じでもバージョンが異なると、ディスプレー変換が異なる可能性がある。
【００１５】
（４）遠隔コンピューター１０のユーザーはディスプレー又はウインドウの特性のいくつかを変更している可能性があり、したがってホストコンピューター１０上で見られるものを別異のものにしている可能性がある。
【００１６】
ホストコンピューター１０と遠隔コンピューター１０との間で見かけの相異があってもよいが、すべての表示は基本的に内容同一であるべきである。本発明のパレット管理システムは、情報がホストコンピューター１０上に表示されるものとほぼ同一状態で遠隔コンピューター１０上に表示されることを可能にする。
【００１７】
図２は情報の表示を制御する一つの可能な方法を例示するブロック線図である。ウインドウズ（商標名）では、モニター１２上の色の表示を制御するために三つの型の「パレット」がある。それらはハードウェアパレット２４、システムパレット２６、および論理パレット２８である。各パレットは一つ以上のエントリーを含み、各エントリーはインデックス値により同定され、赤、緑、青（ＲＧＢ）色値に対応する三つの色フィールドを含む。これらの色値は、そのエントリーが表わす所望の色を発生するのに使用される。ハードウェアパレット２４は、実際にモニター１２上に表示される色を表すエントリーを格納する。システムパレット２６はアプリケーションがこれを使ってハードウェアパレット２４にアクセスし、これを操作するのに使用する。各アプリケーションは、そのアプリケーションに望ましい色選択を反映する一つ以上の論理パレット２８を維持する。通常、ただ一つのハードウェアパレット２４があり、システムパレット２６とハードウェアパレット２４との間には１：１の対応がある。各コンピューター１０はただ一つのシステムパレット２６をもつことができるが、各アプリケーションは必要とする多数の論理パレット２８をもつことができる。
【００１８】
論理パレット２８は、システムパレット２６内のエントリーを参照するインデックスエントリーを維持する。システムパレット２６はハードウェアパレット２４内のエントリーを参照するインデックスエントリーを維持する。インデックス値はそれが参照するパレット内の最も近い色合いを指示する。図２において、論理パレット２８をシステムパレット２６に接続している実線、およびシステムパレット２６をハードウェアパレット２４に接続している実線は、同一のＲＧＢ色を与える正確な対応関係を表す。点線は最も近接するＲＧＢ色を与える対応関係を表す。しばしば最も近接する色合いに色合わせする必要がある。というのは、論理パレット２８内の色の数がシステムパレット２６内の選択可能なエントリーの数を超えるからである。
【００１９】
コンピューター１０上で現在実行しているアプリケーションはその論理パレット２８からシステムパレット２６への正確な対応関係を設けることが許されている。すべての遊休アプリケーションは、残りの色合いの中で最も近い色合わせを選択しなければならない。例えば図２では、論理パレット１は「アクティブウインドウ」と表記されており、したがってこれがその色合いを最初にシステムパレット２６に加える。その結果、コンピューター１０内の任意のパレット利用型アプリケーションのうちでその色合いが最良に（すなわち最も正確に）見える。協同システムの場合、遠隔コンピューター１０上の情報表示がホストコンピューター１０上の表示に可能なかぎり近接することを保証するようにこの技法を拡張しなければならない。さらに、このタスクを達成する際のオーバーヘッド時間を最小限にしなければならない。
【００２０】
本発明によれば、協同システム内の一ホストコンピューターのシステムパレット２６に変更がなされたときは常に、すぐに遠隔コンピューター１０に通信される。これは、遠隔コンピューター１０上で協同システムにより管理されている論理パレット２８としてシステムパレット２６を再生するためである。協同システムがその遠隔コンピューター１０上でアクティブになっていれば、当該協同システムは遠隔コンピューター１０上のシステムパレット２６にアクセスし、これを操作することを許可され、その結果その論理パレット２８に、すなわちホストコンピューター１０のシステムパレット２６に、厳密に対応する。協同システムは遠隔コンピューター上で遊休状態であれば、その論理パレット２８に最も近接する色合わせを与えるよう、遠隔コンピューター１０上のシステムパレット２６にアクセスしこれを操作することが許可される。
【００２１】
図３は、本協同システムにおけるパレット管理機能を果たすコンポーネントの一つの可能な形態を例示するブロック線図である。ホストコンピューターおよび遠隔コンピューター１０の両方にある制御アプリケーション３０、３２が、協同システムにとって必要なアプリケーション共用機能および通信機能の全体的管理を行なう。ホストコンピューター１０上の制御アプリケーション３０は捕捉されたアプリケーション（Captured Application）３４を使ってユーザーの作業に割り込む。捕捉されたアプリケーション３４は、モニター１２上でディスプレーの操作を行なうため、ウインドウズ（商標名）アプリケーションプログラムインターフェース（ＡＰＩ）３６に備わっているいろいろの機能を呼び出す。この機能のうちにはグラフィックデバイスインターフェース（ＧＤＩ）機能が含まれる。ウインドウズ（商標名）のＡＰＩおよびＧＤＩ機能の技術的詳細は、マイクロソフトコーポレーション発行の「ウインドウズソフトウェア開発キット」および１９９２年マイクロソフトプレス発行のチャールズ ペッツォールド著「プログラミング ウインドウズ  ３.１」と題する文献（ＩＳＢＮ １-５５６１５-３９５-３）に見ることができる。これらの文献をここに参考として引用する。
【００２２】
ウインドウズ（商標名）のＡＰＩおよびＧＤＩ機能の呼び出しは、ＧＤＩ捕捉エンジン（GDI Capture Engine）３８により中断される（割り込まれる）。このエンジンは付録のマイクロフィッシュにさらに記載されているダイナミック リンク ライブラリー（ＤＬＬ）である（これについては例えば、付録に引用されているいろいろのＴＭＣＡＰＴファイルその他のファイルを参照されたい）。捕捉された機能およびディスプレー画像が通信チャンネル４０を通過し、通信リンク１６を越えて遠隔コンピューター１０に通信される。その後、ＧＤＩ捕捉エンジン３８はリクエストされているＧＤＩ機能を行なうべく制御をＧＤＩルーチン４２へ渡す。
【００２３】
遠隔コンピューター１０にある通信チャンネル４４は捕捉された機能を受信し、画像を表示し、次いでこの情報をＧＤＩプレイバックエンジン４６へ通信する。ＧＤＩプレイバックエンジン４６は、リクエストされているＧＤＩ機能を行ない、捕捉されたアプリケーション３４と同様な方法でＧＤＩルーチン４８を呼び出すことにより、モニター上に所望の画像を表示する。このようにして、ホストコンピューター１０のモニター１２上の表示が変更されると、この情報が遠隔コンピューター１０に通信され、その結果モニター１２上の表示が同様に変更される。  ディスプレー画像は通常、ＧＤＩオブジェクトであることに注意されたい。オブジェクトによってはビットマップを含むことがあるが、一般的なオブジェクトはグラフィック エレメント コマンド（すなわちグラフィックの記述）とそのパラメーターとを含むだけである。したがってビットマップが遠隔コンピューター１０に送信されることはほとんどなく、しばしば送信はただ一回のみ必要である。さらに、オブジェクトは圧縮することができ、これによってさらにホストコンピューター１０と遠隔コンピューター１０との間のデータ通信を高速化することができる。
【００２４】
システムパレット２６のみが遠隔コンピューター１０に通信されるので、ホストコンピューター１０から遠隔コンピューター１０へビットマップを送信する前に、ビットマップはこれらのオペレーションを反映させる処理をしておかなければならない。ホストコンピューター１０上のＧＤＩ捕捉エンジン３８が遠隔コンピューター１０への送信のため、デバイス依存ビットマップ（device dependent bitmap, DDB）、すなわちホストコンピューター１０の特定のビデオサブシステム用にフォーマットされているビットマップ、に割り込むときは、色マッピングパレットとして現在選択されている論理パレット２８を使ってＤＤＢを初めにデバイス独立ビットマップ（device independent bitmap, DIB）に変換しておかなければならない。この変換はＤＤＢ内に含まれる論理パレット２８インデックス値を、最終ＤＩＢを生ずる実際のＲＧＢ色値に置換する。次いで遠隔コンピューター側で、遠隔コンピューター１０上のＧＤＩプレイバックエンジン４６が、ＲＧＢ値からパレットインデックスへ翻訳するための協同システムの論理パレット２８を使ってこのＤＩＢをＤＤＢに変換し戻す。
【００２５】
遠隔コンピューターのシステムパレット２６ではなくて協同システムの論理パレット２８を使ってこのような変換を行なうため、ホストコンピューター１０上で現在選択されている論理パレット２８を遠隔コンピューターに送信する必要がない。これは送信帯域の節約になり、また遠隔コンピューター１０上の多数の論理パレット２８を処理する問題（これは極めて困難である）を回避することができる。
【００２６】
【結論】
本節に本発明の好ましい実施例の説明の結論を述べる。要約すると、一つ以上の遠隔コンピューターに接続された一つ以上のホストコンピューターを含む協同システムにおけるパレットを管理する方法と装置を開示した。この場合、ホストコンピューター上に表示される画像は実質上同時に遠隔コンピューター上に表示される。本発明はホストコンピューター上のシステムパレットにいつ変更が行なわれたかを認識し、それらの変更を遠隔コンピューターに通信する。ホストコンピューター上のシステムパレットを反映させるため、遠隔コンピューター上に論理パレットが発生され、そこで当該変更が実行される。遠隔コンピューター上のシステムパレットは、その論理パレットを反映すべく更新することができ、協同システムがアクティブであるか遊休状態であるかに応じてそれらの変更を遠隔コンピューターで実行する。ホストコンピューターと遠隔コンピューターとの間で画像を共用するときは、それらの画像は最初に、ホストコンピューター上のシステムパレットを使ってデバイス依存フォーマットからデバイス独立画像に翻訳しなければならない。デバイス独立画像は、システムパレットと同様に、ホストコンピューターから遠隔コンピューターへ送信される。デバイス独立画像は次いで、協同システムが遠隔コンピューター上に維持している論理パレットを使って、遠隔コンピューター上での表示に適したデバイス依存画像に翻訳される。
【００２７】
次に述べるいくつかの節は、本発明を達成するいくつかの代わりの方法を記載したものである。
【００２８】
当業者は、ウインドウズ（商標名）ＧＵＩに代えていろいろのＧＵＩオペレーティング環境およびオペレーティングシステムを使用することがきることが了解できよう。
【００２９】
当業者は、本発明が任意の形式のコンピューターに使用することができること、およびパーソナルコンピューターに限定されないことが了解できよう。
【００３０】
当業者は、コンピューター１０間に種々の形態の通信リンクを使用することができることが了解できよう。
【００３１】
当業者は、本発明は任意の形式のディスプレーインターフェースについて使用することができること、またウインドウズ（商標名）のＡＰＩに限定されないことが了解できよう。
【００３２】
当業者は、上記の課題達成のため、ＧＤＩ機能およびディスプレー画像の捕捉あるいは割り込みに代わる別の方法を使用できることが了解できよう。
【００３３】
当業者は、同時に作動しているホストコンピューター１０が一つ以上ありうることが了解できよう。当業者はさらに、遠隔コンピューター１０が他のオペレーティングホストコンピューター１０と順次に、あるいは同時に、ホストコンピューター１０としてオペレーションを行なうことができることを了解できよう。
【００３４】
【発明の効果】
本発明は、協同システムにおける表示パレットを管理するための改良されたシステムを提供することによって、ホストコンピューター上での画像（image）の表示と実質上同一の画像を実質上同時に遠隔コンピューター上に表示するシステムを提供することができる。その場合、ホストコンピューター上のシステムパレットにいつ変更がされたかが認識され、次いでそれらの変更が遠隔コンピューターに通信されるようにすることができる。
【００３５】
本発明は、ホストコンピューター上のシステムパレット内に格納されている情報を反映させるため、論理パレットを遠隔コンピューター上に発生すると共に、上記論理パレット内に格納されている情報を反映させるべく、協同システムがアクティブであるか又は遊休中（idle）であるかに応じて、遠隔コンピューター上のシステムパレットを更新するシステムを提供する。この場合、システムパレット２６のみが遠隔コンピューターに送信され、論理パレット２８を送信する必要がない。従って送信帯域を節約できると共に、遠隔コンピューター１０上の多数の論理パレット２８を処理する困難な問題を回避することができる。
【図面の簡単な説明】
【図１】  本発明を含むハードウェアの一つの可能な実施例を示すブロック線図である。
【図２】  情報の表示を制御する一つの可能な方法を示すブロック線図である。
【図３】  協同システムにおいてパレット管理機能を実行するコンポ＝ネントの形態として可能な一つの例を示すブロック線図である。
【符号の説明】
１０  パーソナルコンピューター
１２  モニター
１４  ディスク格納装置
１６  通信リンク
１８  マウス
２０  キーボード
２２  ＧＵＩ
２４  ハードウェアパレット
２６  システムパレット
２８  論理パレット
２０、３２  制御アプリケーション
３４  捕捉されたアプリケーション
３６  アプリケーションプログラムインターフェース（ＡＰＩ）
３８  グラフィックデバイスインターフェース（ＧＤＩ）
４０、４４  通信チャンネル
４２、４８  ＧＤＩルーチン
【図１】
0003705617.tif 000002
【図２】
0003705617.tif 000003
【図３】
0003705617.tif 000004