(57)【要約】      （修正有）【課題】シングルユーザ・シングルクライアントアプリケーションを、複数のユーザによって操作される複数のクライアントに適合させるための方法およびシステムを提供する。【解決手段】変更されていないシングルクライアント・シングルユーザアプリケーション１２１のインスタンス１２２が、クライアント１０１のそれぞれで実行され、このアプリケーションの複数のインスタンス１２２の実行が、クライアント１０１のそれぞれで実行されるラッパアプリケーション２００によって調整される。このラッパアプリケーション２００は、ネットワーク１１０を介してクライアント１０１間でメッセージ１２４を通信するように構成され、それによって、調整を容易にする。【選択図】図２
2007305121.tif 000002
【特許請求の範囲】
【請求項１】
シングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法であって、
変更されていないシングルクライアント・シングルユーザアプリケーションのインスタンスを複数のクライアントのそれぞれで実行するステップと、
前記シングルクライアント・シングルユーザアプリケーションの各インスタンスの前記実行を、前記複数のクライアントのそれぞれで実行されるラッパアプリケーションによって調整するステップであって、該ラッパアプリケーションは、ネットワークを介して前記複数のクライアント間でメッセージを通信するように構成される、調整するステップと
を含む、シングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項２】
前記シングルクライアント・シングルユーザアプリケーションを前記複数のクライアントへネットワークを介してダウンロードすることをさらに含む、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項３】
少なくとも１つのクライアントが、ユーザ出力デバイスのみを含む、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項４】
少なくとも１つのクライアントが、複数のユーザ出力デバイスを含む、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項５】
前記シングルクライアント・シングルユーザアプリケーションは、前記複数のクライアントのそれぞれで実行されるクライアント部分、および、単一のサーバで実行されるサーバ部分を含み、該サーバおよび前記複数のクライアントは、ネットワークによって接続されている、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項６】
前記シングルクライアント・シングルユーザアプリケーションはグラフィカルアプリケーションであり、前記調整することは、前記複数のクライアントの前記グラフィカルアプリケーションによって表示される画像に適用される、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項７】
前記グラフィカルアプリケーションはジオ空間アプリケーションであり、前記画像は地図および衛星画像を含む、請求項６に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項８】
前記クライアントのサブセットは同じロケーションに配置されている、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項９】
前記クライアントのサブセットは地理的に分散されている、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１０】
前記画像のビューは、前記複数のクライアント間で調整される、請求項６に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１１】
前記ラッパアプリケーションは、前記メッセージを通信するためのネットワークを含む、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１２】
前記ラッパアプリケーションは、前記メッセージを介した合成入力イベント、および、ユーザ入力デバイスからのリアル入力イベントを受信するためのマルチプレクサを含み、
前記合成入力イベントおよび前記リアル入力イベントを選択的に前記シングルクライアント・シングルユーザアプリケーションに渡すことであって、それによって、前記実行することを調整する、渡すことをさらに含む、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１３】
前記シングルクライアント・シングルユーザアプリケーションは、キーホールマークアップ言語にしたがってフォーマットされたファイルを処理する、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１４】
前記メッセージは視点を含む、請求項７に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１５】
前記視点は、緯度情報および経度情報を含む、請求項１４に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１６】
前記視点を示すオーバーレイをユーザ出力デバイスに表示することをさらに含む、請求項１４に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１７】
前記シングルクライアント・シングルユーザアプリケーションのサーバ部分をポーリングすることであって、それによって前記視点を得る、ポーリングすることをさらに含む、請求項１４に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１８】
前記メッセージは、前記マルチプレクサのオペレーションを制御するコマンドを含む、請求項１２に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項１９】
前記画像のビューは互いに時間移動される、請求項６に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項２０】
前記ラッパアプリケーションは、前記シングルクライアント・シングルユーザアプリケーションを対象としたすべての入力データをインターセプトし、且つ、前記シングルクライアント・シングルユーザアプリケーションによって生成されたすべての出力データをインターセプトする、請求項１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項２１】
ネットワークインターフェースが前記メッセージをインターセプトし、入力マルチプレクサがユーザ入力データをインターセプトし、出力調停器が前記出力データをインターセプトする、請求項２０に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項２２】
前記出力データは、グラフィカルデータ、ビデオデータ、オーディオデータ、ファイルデータ、およびそれらの組み合わせから成る群から選択される、請求項２１に記載のシングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるための方法。
【請求項２３】
シングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるためのシステムであって、
変更されていないシングルクライアント・シングルユーザアプリケーションのインスタンスを複数のクライアントのそれぞれで実行する手段と、
前記シングルクライアント・シングルユーザアプリケーションの各インスタンスの実行を、前記複数のクライアントのそれぞれで実行されるラッパアプリケーションによって調整する手段であって、該ラッパアプリケーションは、ネットワークを介して前記複数のクライアント間でメッセージを通信するように構成される、調整する手段と
を含む、シングルユーザ・シングルクライアントアプリケーションを複数のユーザによって操作される複数のクライアントに適合させるためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、包括的には、グラフィカルアプリケーションに関し、より詳細には、シングルクライアント・シングルユーザグラフィカルアプリケーションを複数のユーザ向けの複数のクライアントおよび複数のディスプレイに適合させることに関する。
【背景技術】
【０００２】
通常、グラフィカルアプリケーションは、シングルユーザコンピュータシステム（クライアント）の従来のデスクトップディスプレイスクリーンまたはラップトップディスプレイスクリーンに表示される。ＰＣおよびラップトップ等のシングルユーザクライアントは、２つ以上のディスプレイスクリーンを含むことができる。しかしながら、ほとんどの市販のアプリケーションは、複数のユーザによって操作されるようにも設計されていないし、複数のディスプレイにインターフェースされるようにも設計されていない。さらに、多くのアプリケーションでは、どの時点においても、アプリケーションの単一のインスタンスをクライアントで実行することしか可能ではない。このことは、アプリケーションの複数のコピーを実行して、アプリケーションの各コピーが個別のディスプレイに表示を行うことを不可能にしている。
【０００３】
マルチユーザ共有ビューグラフィカルアプリケーションは、Ｇｒｅｅｎｂｅｒｇ著「Ｓｈａｒｉｎｇ  ｖｉｅｗｓ  ａｎｄ  ｉｎｔｅｒａｃｔｉｏｎｓ  ｗｉｔｈ  ｓｉｎｇｌｅ−ｕｓｅｒ  ａｐｐｌｉｃａｔｉｏｎｓ」（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｏｆｆｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ，  ｐｐ．  ２２７−２３７，  １９９０）に包括的に記載されている。その研究は、互いに物理的に隔たったユーザにグラフィカルアプリケーションの同じ「ビュー」を提示するように、リモートコンピュータが状態を制御して状態をメモリに保持することを確実にすることに焦点が置かれている。その共有ビューでは、隔たったユーザは、協調するために共有コンテキストを有する。
【０００４】
遠隔協調のための別の方法は、一般に、「スクリーン共有」と呼ばれている。その方法では、アプリケーションの単一のインスタンスが、サーバコンピュータ（サーバ）でのみ実行され、画像は、任意の個数のリモートクライアントへ送信される。それらクライアントのリモートユーザは、ネットワークによってクライアントからサーバへ入力イベントを送信することによってアプリケーションと対話することができる。アプリケーションの単一のインスタンスしかサーバで実行されないので、アプリケーションの一致したビューがすべてのクライアントおよびサーバにわたって維持される。
【０００５】
最後に、リモートロケーションの複数のクライアントで実行されるようにプログラミングされたマルチユーザアプリケーションが存在する。各クライアントは、単一のユーザによって操作される。最も一般的には、マルチプレイヤゲームおよびチャットアプリケーションが、それぞれ、各クライアントでアプリケーションの個別のインスタンスとして実行される。クライアントのユーザは、「制御」サーバを介して互いに通信する。このサーバは、クライアントアプリケーションをどのように実行するかを制御する。それらのアプリケーションは、この分散方法で実行されるように明確に設計されてプログラミングされている。基本的に、クライアントは、アプリケーションをどのように実行するかの制御を有しない。さらに、ユーザは、マルチユーザアプリケーションのオペレーションを変更することはできない。
【０００６】
ネットワークベースのコンピューティング環境、たとえば、インターネットでは、クライアントのユーザは、シングルユーザアプリケーションをサーバから頻繁にダウンロードする。シングルユーザアプリケーションは、各クライアントの単一のユーザによって個々に且つ個別に実行される。このようなアプリケーションは、単一のクライアントでのみ実行されるようにプログラミングされ、且つ、単一のユーザによってのみ操作されるようにプログラミングされている。このようなアプリケーションは、それらアプリケーションを再プログラミングすることなく、マルチコンピュータ・マルチユーザ環境で実行することはできない。アプリケーションの再プログラミングは、多くの費用を要し、サーバによって提供されるほとんどのアプリケーションが独自開発された（ｐｒｏｐｒｉｅｔａｒｙ）という性質のため、多くの場合、不可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、基礎となるアプリケーションを変更することなく、シングルクライアント・シングルユーザアプリケーションをマルチクライアント・マルチユーザ環境に適合させることが望まれている。
【課題を解決するための手段】
【０００８】
この発明の実施の形態は、シングルクライアント・シングルユーザアプリケーションをマルチクライアント・マルチユーザ環境に適合させるための方法およびシステムを提供する。詳細には、アプリケーションは、グラフィカルアプリケーションとすることができ、たとえクライアントおよびユーザが地理的に分散していても、複数のユーザが協調できるように、アプリケーションによってレンダリングされた画像を調整することが望まれている。さらに、クライアントは、異なる「ビュー」を有する画像をそれぞれレンダリングする複数のディスプレイデバイスを含むことができる。
【０００９】
具体的には、実施の形態は、グラフィカルジオ空間（ｇｅｏｓｐａｔｉａｌ）アプリケーションであるＧｏｏｇｌｅ  Ｅａｒｔｈのインターフェースを提供する。これによって、複数のユーザは、複数のクライアントおよび複数のディスプレイデバイスを使用して、協調的で且つ分散された方法で地図および関連した衛星画像を見ることが可能になる。
【００１０】
本システムは、マルチユーザ・マルチタッチセンシティブディスプレイデバイス、垂直壁ディスプレイ、並びにデスクトップコンピュータシステム、ラップトップコンピュータシステム、およびハンドヘルドコンピュータシステムを使用することができる。
【００１１】
具体的には、この発明の実施の形態１は、シングルユーザ・シングルクライアントアプリケーションを、複数のユーザによって操作される複数のクライアントに適合させるための方法およびシステムを提供する。変更されていないシングルクライアント・シングルユーザアプリケーションのインスタンスが、クライアントのそれぞれで実行され、このアプリケーションの複数のインスタンスの実行が、クライアントのそれぞれで実行されるラッパアプリケーションによって調整される。このラッパ（ｗｒａｐｐｅｒ）アプリケーションは、ネットワークを介してクライアント間でメッセージを通信するように構成され、それによって、調整を容易にする。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
システム構造
図１および図２は、この発明の実施の形態１による、シングルクライアント・シングルユーザアプリケーションを適合させるためのシステムを示している。このシステムは、複数のクライアントコンピュータシステム（クライアント）１０１を含む。これらのクライアントには、デスクトップシステム、ラップトップシステム、ハンドヘルドシステム、壁掛けディスプレイを有するシステム、およびテーブルトップディスプレイを有するシステムが含まれ得る。これらのクライアントは、地理的に同じロケーションに配置することもできるし、広く分散させることもできる。各クライアントは、シングルクライアント・シングルユーザアプリケーションの１つのインスタンスを実行する。アプリケーションの実行は、ユーザ間で調整される。
【００１３】
各クライアント１０１は、プロセッサ、メモリ、およびＩ／Ｏインターフェースを含む。各クライアントは、キーボード、マウス、タッチセンシティブ面等のユーザ入力デバイス１３０も含むことができる。各クライアントは、たとえば、１つまたは複数のディスプレイデバイスといったユーザ出力デバイス１３１も含むことができる。本明細書で使用されるような「ユーザ入力」および「ユーザ出力」という用語は、通信インターフェース、ストレージインターフェース等、ユーザによって直接制御もされず、ユーザに可視的でもない他の入出力デバイスとの区別を行うために使用される。この発明の実施の形態１では、従来技術とは異なり、クライアントは、たとえユーザ入力デバイスを含まなくても、すなわち、１つまたは複数のユーザ出力デバイスしか含まなくても、アプリケーションを操作することができる。この発明の別の実施の形態では、従来技術とは異なり、クライアントは、アプリケーションによりレンダリングされた異なるビューを複数のディスプレイに表示することができる。
【００１４】
クライアントは、たとえばインターネットといったネットワーク１１０を介して相互接続することができる。クライアントシステムは、アプリケーションを実行することができる。アプリケーションには、クライアントシステムに記憶されたアプリケーション、または、クライアントコンピュータで実行されるブラウザアプリケーションを使用して「ウェブサイト」もしくはサーバコンピュータ１２０からネットワークを介してダウンロードされるアプリケーションが含まれ得る。ダウンロードされるアプリケーションの場合、そのアプリケーションのサーバ部１２１はサーバ１２０で実行される一方、クライアント部１２２はクライアント１０１の１つで実行される。上述したように、シングルクライアント・シングルユーザアプリケーションの実行は、複数のクライアントで調整される。
【００１５】
この発明の実施の形態１によれば、アプリケーションは、Ｇｏｏｇｌｅ  Ｅａｒｔｈ等のグラフィカルジオ空間アプリケーションである。しかしながら、この発明の実施の形態１は、他のグラフィカルアプリケーションにも適合できることが理解されるべきである。Ｇｏｏｇｌｅ  Ｅａｒｔｈアプリケーションは、地図および関連した衛星画像を表示することができる。
【００１６】
一般に、ジオ空間アプリケーションは、地図を使用して地球上のあらゆる位置にナビゲートするのに使用できるツールであって、道路、建物、地理的境界等のジオ登録情報（ｇｅｏ−ｒｅｇｉｓｔｅｒｅｄ  ｉｎｆｏｒｍａｔｉｏｎ）を有する対応した衛星画像を増強するのに使用できるツールをユーザに提供する。通常、増強された地図および画像は、シングルユーザクライアントの従来のデスクトップディスプレイスクリーンまたはラップトップディスプレイスクリーンに表示される。ジオ空間アプリケーションを、離散したロケーションの複数の並存するユーザに適合させることが望まれている。
【００１７】
このようなグラフィカルアプリケーションは、シングルディスプレイ・シングルクライアントコンピュータでのみ実行されるように設計され、且つ、他のクライアントによってダウンロードされたアプリケーションの他のどのインスタンスからも完全に独立して単独で単一のユーザにより操作されるように設計されていることが理解されるべきである。さらに、このようなサーバ供給アプリケーションは、一般に、極度に独自開発されたものであり、クライアントコンピュータが自身の仕様に容易に変更することができないことも理解されるべきである。
【００１８】
複数のロケーションにおける複数のクライアントコンピュータの複数のユーザが、同期された方法でアプリケーションと同時に協調できるように、グラフィカルアプリケーション１２１および１２２を適合させることが、この発明の実施の形態１の目標である。この目的のために、システムはメッセージ１２４を使用する。
【００１９】
さらに、図２に示すように、基礎となるアプリケーション１２１および１２２を変更することなく、グラフィカルアプリケーションをマルチユーザ・マルチシステムオペレーションに適合させることも望まれている。
【００２０】
したがって、図２に示すように、この発明の実施の形態１は、グラフィカルアプリケーションの各インスタンス１２２の「ラッパ」アプリケーション２００を提供する。上述したように、この発明のラッパアプリケーションは、基礎となるグラフィカルアプリケーション１２１および１２２、すなわち「ラッピング」されるグラフィカルアプリケーション１２１および１２２を変更しないという前提を順守する。
【００２１】
ラッパアプリケーション２００およびグラフィカルアプリケーション１２２の変更されていないクライアント部分の双方は、協調された方法でシステムの各クライアント１０１において実行される。
【００２２】
ラッパ
図３は、この発明のラッパアプリケーション２００を示している。このラッパアプリケーション２００は、グラフィカルアプリケーションの変更されていないクライアント部分を、アプリケーション１２２によって提供されない追加インターフェースエレメントでオーバーレイする。
【００２３】
ラッパアプリケーションは、メッセージ１２４を通信するためのネットワークインターフェース３４０を含む。受信されたメッセージ１２４は、ネットワークインターフェース３４０によって使用されて、変更されていないアプリケーション１２２と互換性のある「合成」入力イベント３６０が生成される。この「合成」入力イベント３６０は、クライアント１０１に接続されたローカル入力デバイス１３０により生成された「リアル」ローカル入力イベント３６１と共に、マルチプレクサ３７０に渡される。マルチプレクサ３７０は、どの入力イベント３６０／３６１を変更されていないグラフィカルアプリケーション１２２に渡すかを選択形式で制御して、アプリケーションの実行を調整する。
【００２４】
この発明の一例では、グラフィカルアプリケーション１２１および１２２は、ジオ空間情報をダウンロードしてレンダリングするジオ空間アプリケーションである。このジオ空間情報は、地図、衛生画像、およびたとえば標示付き道路、事業拠点、地理的境界等の情報の登録レイヤ（ｒｅｇｉｓｔｅｒｅｄ  ｌａｙｅｒ）と呼ばれるもの等である。
【００２５】
この情報は、入力イベントにしたがってレンダリングエンジン３３０によりディスプレイ１３１に表示される。後述するように、レンダリングエンジンは、当該技術分野で既知であるようなさまざまなデータタイプおよびグラフィカルエレメントを処理することができる。
【００２６】
この発明の実施の形態１では、変更されていないグラフィカルアプリケーション１２２からのすべての出力１２９が、出力調停器（ｏｕｔｐｕｔ  ｍｅｄｉａｔｏｒ）３８０へリダイレクトされて、出力調停器３８０によりインターセプトされる。出力１２９は、実際は主にグラフィカルであるが、ビデオストリーム、オーディオストリーム、ファイルストリーム等、変更されていないアプリケーションによって生成された他のデータストリームも含むことができる。したがって、出力調停器３８０は、インターセプトされた出力１２９を、ディスプレイ１３１、スピーカ１３２、ディスク１３３等の出力デバイスへ送信する前にこれを変更する。
【００２７】
このように、ネットワークインターフェース３４０およびマルチプレクサ３７０が、変更されていないアプリケーション１２２へのすべての入力をインターセプトし、出力調停器３８０が、変更されていないアプリケーション１２２からのすべての出力１２９をインターセプトすることによって、ラッパ２００が、変更されていないアプリケーションを直接入力および直接出力から隔離して、このアプリケーションの入力および出力並びに実行が、さまざまなクライアントおよびユーザの間で調整された方法で行われるようにすることが可能である。
【００２８】
この発明の実施の形態１では、サーバ１２０からのメッセージ１２４は、システムの各クライアント１０１が地球上の同じロケーションに関する情報を表示するように緯度情報および経度情報を含むことができる。
【００２９】
サーバからのメッセージ１２４は、キーホール言語（ＫＭＬ）にしたがって符号化されたファイル１２３を含むことができる。ＫＭＬは、地図および画像に表示するための点、線、画像、ポリゴン等の地理的特徴をモデル化して記憶するための文法およびファイルフォーマットである。ＫＭＬファイルは、ＨＴＭＬファイルおよびＸＭＬファイルがウェブブラウザによって処理されるのと同様の方法でジオ空間アプリケーション１２２によって処理される。ＨＴＭＬと同様に、ＫＭＬは、特定の表示目的に使用される名前および属性を備えたタグベースの構造体を有する。このように、ジオ空間アプリケーション１２２は、ＫＭＬファイル１２３のブラウザとして動作する。
【００３０】
サーバからのメッセージ１２４は、コマンドを含むことができる。このコマンドはマルチプレクサ３７０に送信されて、マルチプレクサ３７０は自身のオペレーションを制御する。
【００３１】
追加インターフェースエレメントの表示
クライアントアプリケーションの潜在的に多くのインスタンスがこの環境で実行される状況において、ユーザは、シングルクライアント・シングルユーザアプリケーション１２２の一部ではないインターフェースコンポーネントおよび調整コンポーネントから利益を受けることができる。たとえば、アプリケーションの多くのインスタンスが複数のクライアントで実行される状況で１つまたは複数のロケーションにおいて協調して作業し、且つ、複数のディスプレイを有する一群のユーザは、一意に特定可能な視覚エレメントを有する各ディスプレイから利益を受けることができる。このように、ユーザは、他のユーザと協調している時にアプリケーションの特定のインスタンスを参照することができる。
【００３２】
図４に示すように、変更されていないグラフィカルアプリケーション１２２の「通常」の変更されていない出力４０２が、レンダリングエンジン３３０によってディスプレイ１３１にレンダリングされる。また、レンダリングエンジンは、変更されていないグラフィカル出力４０２の上に透明なオーバーレイ４０３も表示する。「上に」が意味するものは、観察者４１０を基準とした前面から背面への順序４００において、オーバーレイ４０３が、変更されていない出力４０２の前面にあることである。
【００３３】
透明なオーバーレイは、変更されていないグラフィカルアプリケーションによって意図されていない追加の不透明または半透明なグラフィカルエレメント６１０および６２０を含むことができる。これについては、図６Ａも参照されたい。
【００３４】
同期されて調整されたビュー
図２、図３、および図５に示すように、ラッパアプリケーション２００は、複数のクライアント１０１による表示情報を同期して調整する。ユーザが、ローカル入力デバイス１３０を使用してローカル入力イベント３６１を生成すると、ラッパアプリケーション２００は、この入力イベントをメッセージ１２４として、ネットワーク１１０により他のクライアントへ渡す。「同期されて調整されたビュー」という用語は、具体的には、入力イベント３６１が、他のクライアントへ送信される前に変更されるという点でこの発明の設計を指す。
【００３５】
この発明の実施の形態１では、ラッパアプリケーション２００は、変更されていないジオ空間アプリケーションによって表示される現在の視点（ＰＯＶ）５２０を得るために、このアプリケーションのサーバ部分１２１をポーリングする（５１０）。ＰＯＶは、緯度、経度、ズーム倍率、視角等について表される。これに応答して、サーバは、ＰＯＶ５２０を返信する。ＰＯＶ５２０は、ネットワークを介してすべてのクライアントへ分配することができる。次に、各クライアントは、それに応じてアプリケーション１２２のローカルインスタンス用にＰＯＶを設定する。一般に、この変更は、ＰＯＶの焦点である緯度および経度を変更するものでは決してない。その結果、すべてのクライアントは、地球上の同じロケーションを、おそらく異なる角度から異なるズームレベルで見る。各クライアントにおけるＰＯＶの画像は、互いに時間移動させることができることに留意すべきである。
【００３６】
入力変換
ディスプレイデバイスの向きが異なることから、ＰＯＶの変換を実行することが必要な場合がある。たとえば、垂直面の向きを有するディスプレイデバイスもある一方、水平面の向きを有するデバイスもある。垂直ディスプレイの場合、ユーザは通常、そのディスプレイの前に位置し、したがって、すべてのユーザは基本的に、そのディスプレイの同じビューを有する。テーブルトップ等の水平ディスプレイの場合、テーブルの周りの異なるユーザは、ディスプレイの異なるビューを有する。たとえば、ディスプレイは、或るユーザには逆になっている場合もあるし、また他のユーザには横向きになっている場合もある。このように、或るディスプレイのＰＯＶは、別のディスプレイには不適切な場合がある。
【００３７】
図６Ａ〜図６Ｃは、たとえば、米国マサチューセッツ州のボストン中心街といった同じジオ空間ロケーションの３つの異なるビューを示している。これらの図では、白文字ＡおよびＢが、この説明を明確にするために画像に追加されている。すべてのビューは、異なるレイヤの情報を有する異なるビューからの同じジオ空間ロケーションに焦点を合わせている。図６Ａに示すようなテーブルトップディスプレイデバイスのビューは鳥瞰ビューである。図６Ｂに示すような壁掛け垂直ディスプレイデバイスのビューは、３Ｄの建物がオーバーレイされた３／４ビューを示している。同様に垂直ディスプレイの図６Ｃのビューは、道路でオーバーレイされた、より広範囲の鳥瞰ビューを示している。
【００３８】
分離レイヤ（ｓｅｐａｒａｔｉｎｇ  ｌａｙｅｒ）のレンダリング
図６Ａ〜図６Ｃに示すビューのディスプレイデバイスが同じロケーションに配置されている場合、そのロケーションのユーザは、同時に異なるビューを見ることができる。これは有利な点である。ジオ空間アプリケーションは、異なるレイヤの情報を有するビューを増強することができる。このように、最終結果は、空間的に多重化され、時間的に同期されたマルチレイヤディスプレイとなる。同時に、これらの複数のレイヤを単一のディスプレイに表示すると、視覚的に雑然とし且つ有益性の少ない画像が生成され、これらのレイヤを単一のディスプレイで順次切り換えることも、ユーザに高いレベルの認知的負荷を課す場合もある。
【００３９】
同じ情報を複数の方法で同時に表示することによって、ユーザは、異なる観点を通じて情報を理解することができ、起こり得る誤解を克服することができる。これにより、異なるビュー間の情報を相関させることを通じて、対話型で且つ調査な視覚化（ｉｎｖｅｓｔｉｇａｔｉｖｅ  ｖｉｓｕａｌｉｚａｔｉｏｎ）が改善される。
【００４０】
図７は、２人のユーザ７１０および７２０が、３つのクライアント１０１を含む作業空間で作業しているところを示している。これら３つのクライアントのうちの２つは壁ディスプレイ１３１であり、１つはテーブルトップディスプレイ１３１である。テーブルトップディスプレイには、変更されていないグラフィカルアプリケーションが、ピラミッドの鳥瞰ビューを表示している。左の壁ディスプレイには、同じピラミッドが、変更されていないグラフィカルアプリケーションの別のインスタンスで別のＰＯＶから表示されている。右の壁ディスプレイには、第３のインスタンスが、同じオブジェクトのさらに別のＰＯＶを表示している。テーブルトップディスプレイ１３１上のユーザの一方が描いた視角マーカ７００は、右の壁ディスプレイ上のピラミッドに対して正確なロケーション７０１に示されている。
【００４１】
ビュー変換の制御
この発明の実施の形態１では、水平なテーブルトップディスプレイデバイスのデフォルトＰＯＶは、図６Ａに示すような鳥瞰ビューである。このビューは、ユーザがテーブルの周りに位置して、表示画像を見下ろすことを前提としている。同じロケーションに配置された各垂直ディスプレイについて、ＰＯＶは、実際の壁掛けディスプレイとテーブルトップディスプレイとの間の空間的関係に基づいて変換される。
【００４２】
デフォルトＰＯＶ変換によって、Ｃｒｕｚ−Ｎｅｉｒａ著「Ｔｈｅ  ＣＡＶＥ：  Ａｕｄｉｏ  Ｖｉｓｕａｌ  Ｅｘｐｅｒｉｅｎｃｅ  Ａｕｔｏｍａｔｉｃ  Ｖｉｒｔｕａｌ  Ｅｎｖｉｒｏｎｍｅｎｔ」（Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  ｖｏｌ．  ３５，  ｎｏ．  ６，  ｐｐ．  ６５−７２，  Ｊｕｎｅ  １９９２（参照により本明細書に援用される））に記載されたものと同様のビューの非連続な集合が生成される。これによって、ビュー間の最も自然な初期関係を有する感覚である直観的な感覚が与えられる。ただし、この感覚が、唯一の有益な感覚ではない。
【００４３】
水平ディスプレイには、各垂直ディスプレイのビューが、プロキシカメラ（ｐｒｏｘｙ  ｃａｍｅｒａ）６１０を用いて表される。このプロキシカメラの位置は、制御リング６２０によってさらに示すように、垂直ディスプレイのビューのテーブルトップに対する回転および傾斜を示している。タッチセンシティブ水平ディスプレイデバイスのプロキシカメラは、垂直ディスプレイのビューの向きおよび傾斜を変更するのに使用することができる。テーブル上でこのようにビューを変更することによって、ユーザは、立ち上がって別のディスプレイへ歩いて行き、そのビューを操作する必要はない。また、垂直ディスプレイの入力を行うことも可能である。垂直ディスプレイは、それ自身の入力メカニズムを有しない場合がある。
【００４４】
プロキシカメラおよび制御リングは、図４について説明したようなオーバーレイメカニズムを使用して表示することができる。
【００４５】
テーブルトップディスプレイの中心の周りでプロキシカメラをいずれかの方向でドラッグすることによって、垂直壁ディスプレイのＰＯＶが回転される。プロキシカメラをテーブルトップの中心に向けてドラッグするか、または、テーブルトップの中心から離れてドラッグすることによって、垂直壁ディスプレイのＰＯＶの傾斜が変更される。ＰＯＶ変換を回転および傾斜に制限することによって、テーブルトップ上の２つの自由度のタッチ入力とＰＯＶのこれら２つの値との間のマッピングが非常に自然なものとなる。
【００４６】
壁掛け垂直ディスプレイのＰＯＶを変更することによって、一群のユーザは、シーンの異なる角度を見ることが可能になり、したがって、基礎となるデータの異なる側面が明らかにされる一方、垂直に表示されたものと水平に表示されたものと間の関係を理解することが直ちに困難になる可能性がある。
【００４７】
ビューのデタッチおよび再同期
壁ディスプレイとテーブルトップディスプレイとの間のビューの調整を中断することが可能である。たとえば、一群のユーザは、他のいくつかのロケーションを見たい場合がある。調整を一時的に中断して、後に再びリンクすることができる。
【００４８】
注釈
ジオ空間アプリケーションでは、注釈が主なアクティビティである。この発明のシステムおよび方法は、マルチユーザ注釈ツールを提供する。この発明の注釈ツールは、表示画像４０２の透明なオーバーレイ４０３内に「ペイント」し、現在の視点５２０のジオ空間ロケーションを得るためにジオ空間アプリケーションをポーリングして（５１０）、注釈のストロークをジオ空間として登録できるようにする。
【００４９】
このように、注釈が完了すると、注釈は、ネットワークによって他のクライアントへ渡すことができ、クライアントの現在のＰＯＶまたは今後のＰＯＶにかかわらず正確なロケーションに表示される。
【００５０】
具体的には、ファイル１２３が、ジオ空間ロケーションを詳細化したＫＭＬファイルおよび注釈を含んだビットマップファイルを含む。ファイル１２３は、ネットワーク１１０によって他のクライアント１０１へ送信される。他のクライアントは、その後、ＫＭＬファイルを開くことができ、ビットマップファイルをジオ空間アプリケーション１２２のレンダリングエンジン３３０に挿入する。
【００５１】
共同作業、単独作業
協調的なディスプレイの主な利益は、そのディスプレイが一群のユーザに提供する共通のコンテキストである。しかしながら、共有されたディスプレイを使用することが有利ではない状況が生じる。
【００５２】
ほとんどのシングルユーザグラフィカルアプリケーションは、表示画像の大きな部分を占める可能性のあるポップアップメニューまたはモーダルダイアログボックスを有する。たとえば、ユーザが階層化された情報をオン／オフしたい時、ユーザは、ディスプレイの最大１／３までを占める可能性のあるレイヤ制御パネルを開く。上述したように、ユーザは、協調的な作業期間と独立した作業期間とを切り換えることが多い。ユーザが密接に共同作業をしている場合、このメニューを開くことが予想され、中断を引き起こすことはない。一方、独立に作業している時、大きなメニューを開くことは、他のユーザにとって混乱を伴う行為である。
【００５３】
この発明のシステムを使用する人は、クライアントマシンにおいて混乱を伴う視覚的フィードバックを有する入力を行うことによって、この特定の混乱を調停することができる。この入力が完了すると、入力の結果は適切なクライアントへ送信される。このように、アプリケーションの変更された機能は、さまざまなクライアント間で同期され、個人は、共有されたディスプレイを混乱させることなく、これらのコマンドを発行することが可能になる。
【００５４】
ナビゲートのためのタッチ、参照のためのタッチ
ほとんどの既成のアプリケーションおよびダウンロード可能なアプリケーションは、単一のクライアントおよび単一のユーザを前提としているので、多くのコマンドは、複数のユーザによって同時に実行される場合に十分に定義されていない。この発明のアプリケーション例では、異なるユーザは、相反するコマンドを発行することができる。これを調停する１つの方法は、最初のタッチに起因するコマンドのみを処理することである。
【００５５】
この発明を好ましい実施の形態の例として説明してきたが、この発明の精神および範囲内において他のさまざまな適合および変更を行えることが理解されるべきである。したがって、この発明の真の精神および範囲内に入るこのようなすべての変形および変更をカバーすることが添付の特許請求の範囲の目的である。
【図面の簡単な説明】
【００５６】
【図１】この発明の実施の形態１による、グラフィカルアプリケーションを適合させるためのシステムのブロック図である。
【図２】この発明の実施の形態１による、サーバおよびクライアントで実行される、変更されていないシングルユーザ・シングルユーザアプリケーションのブロック図である。
【図３】この発明の実施の形態１によるラッパアプリケーションのブロック図である。
【図４】この発明の実施の形態１による、オーバーレイされたディスプレイエレメントのブロック図である。
【図５】この発明の実施の形態１によるサーバおよびクライアントのブロック図である。
【図６Ａ】この発明の実施の形態１による、視点の変換を制御するためのオーバーレイエレメントを有する画像である。
【図６Ｂ】この発明の実施の形態１による、視点の変換を制御するためのオーバーレイエレメントを有する画像である。
【図６Ｃ】この発明の実施の形態１による、視点の変換を制御するためのオーバーレイエレメントを有する画像である。
【図７】この発明の実施の形態１による、３つのクライアントを有する作業空間である。
【図１】
2007305121.tif 000003
【図２】
2007305121.tif 000004
【図３】
2007305121.tif 000005
【図４】
2007305121.tif 000006
【図５】
2007305121.tif 000007
【図６Ａ】
2007305121.tif 000008
【図６Ｂ】
2007305121.tif 000009
【図６Ｃ】
2007305121.tif 000010
【図７】
2007305121.tif 000011
【外国語明細書】
2007305121.tif 000012
2007305121.tif 000013
2007305121.tif 000014
2007305121.tif 000015
2007305121.tif 000016
2007305121.tif 000017
2007305121.tif 000018
2007305121.tif 000019
2007305121.tif 000020
2007305121.tif 000021
2007305121.tif 000022
2007305121.tif 000023
2007305121.tif 000024
2007305121.tif 000025
2007305121.tif 000026
2007305121.tif 000027
2007305121.tif 000028
2007305121.tif 000029
2007305121.tif 000030
2007305121.tif 000031
2007305121.tif 000032
2007305121.tif 000033
2007305121.tif 000034
2007305121.tif 000035
2007305121.tif 000036
2007305121.tif 000037
2007305121.tif 000038
2007305121.tif 000039
2007305121.tif 000040
2007305121.tif 000041