JP4933438B2 - 分散型情報提示及びインタラクションのためのシステム - Google Patents

分散型情報提示及びインタラクションのためのシステム Download PDF

Info

Publication number
JP4933438B2
JP4933438B2 JP2007539514A JP2007539514A JP4933438B2 JP 4933438 B2 JP4933438 B2 JP 4933438B2 JP 2007539514 A JP2007539514 A JP 2007539514A JP 2007539514 A JP2007539514 A JP 2007539514A JP 4933438 B2 JP4933438 B2 JP 4933438B2
Authority
JP
Japan
Prior art keywords
application
display
output
state
application processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007539514A
Other languages
English (en)
Other versions
JP2008519340A5 (ja
JP2008519340A (ja
Inventor
デンプスキー,ケリー,エル.
ハーベイ,ブランドン,エル.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accenture Global Services GmbH
Original Assignee
Accenture Global Services GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Accenture Global Services GmbH filed Critical Accenture Global Services GmbH
Publication of JP2008519340A publication Critical patent/JP2008519340A/ja
Publication of JP2008519340A5 publication Critical patent/JP2008519340A5/ja
Application granted granted Critical
Publication of JP4933438B2 publication Critical patent/JP4933438B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/546Xcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、概括的にはデータ処理システムに関する。具体的には、本発明は、分散型情報提示及びインタラクションのためのシステムに関する。
本特許書類の開示には、著作権保護の対象となる資料を含んでいる部分がある。本特許書類又は特許開示は特許及び商標局の特許ファイル又は記録に掲載されているので、著作権の所有者は、これを誰かが複製することに対して異論を唱えるものではないが、そうでない場合は、如何なる著作権も全てこれを留保する。
分散型データ収集及び処理システムは、リアルタイムデータを含め大量のデータを回収、記憶、及び操作できるようにする。リアルタイムデータは、受信されるのと同じ速度で更新及び処理されるデータである。リアルタイムデータは、様々なソースで生まれる。例としては、監視されているシステム又は環境内のセンサーネットワークと、在庫又は資産管理のための無線ICタグ(RFID)追跡システムが挙げられる。以上及びその他の関連技術は、組織に、組織運営の全ての態様に関する大量のリアルタイム情報へのアクセスを与えた。これらの態様には、例えば、消費者の行動、競争相手の行動、従業員の生産性、サプライチェーン活動、製造、店内活動などが含まれる。
大きな組織の場合、この情報は、決定をしたり、又は洞察を展開させるのに非常に価値あるものと成り得る。集合体となれば、この情報は、これ以外では直ちに明白になることのないパターン又は傾向を示す場合がある。この情報は、時間を掛けて処理すると、将来の推測に用いることができる展開を提示する場合がある。大量のデータを収集し管理することにより、システムの状態又は作用の新しい視点を提供することができる。
しかしながら、膨大な量のデータと相互接続の密度のため、標準的なワークステーションでこの情報を容易に視覚化するのは困難である。従来のワークステーションは、パーソナルコンピューター型の技術に基づいており、一般的に、演算装置と、ディスプレイ画面、マウス又は他の入力装置を含むユーザーインターフェースを含んでいる。マルチメディアの能力は情報の提示を向上させることはできるが、小型で、機能が制限されている従来の装置では、情報の有意義な呈示が難しい。
更に、データの複雑さと決定を下すプロセスには、複数のエキスパートの間で共通の視点及び協力が必要となる。大型画面とマルチメディアの能力を使っても、数人のみが、従来のワークステーションを同時に見てインタラクションできるだけである。マウス又はキーボードの操作が必要な場合、たった一人がワークステーションを制御できるだけで、その間、限られた数の他の参加者はその処理を眺めている。
両方の問題に対する1つの解決策は、エキスパートを没入型環境にアクセスさせ、それにより、彼らが情報を眺め、共有し、情報と物理的にインタラクションできるようにすることである。或る例では、その様な環境は、タッチ可能画面、3−Dマウス、データグローブなどの様な代替的インタラクション様式と共に、大型高解像度ディスプレイ、携帯情報端末(PDA)、及び三次元(3−D)ディスプレイで作られている。
技術と形態要因の両方の制約のせいで、その様な環境は、1つの論理アプリケーションを複数のコンピューターに亘って分散させることのできるシステムと、没入型環境を作り上げる表示システムを必要とする。その様なシステムは、視覚的表示とユーザーインタラクションの両方の分散を取り扱わなければならない。
必要な能力を提供する適切なシステムは、これまで利用可能になってない。現在は、複数且つ場合により異質のコンピューター、複数のディスプレイ、場合により異なる形態要因、及び複数のインタラクション様式にまたがるアプリケーションを作るための標準的なアーキテクチャ、言語、又はプロトコルは無い。その様なアプリケーションは、複数のコンピューター、複数のディスプレイ、及び複数のインタラクション様式の間のインタラクションを管理するアプリケーション開発者による走り書きから作り出さなければならない。市販されている幾つかのシステムは、通常、情報と図形データを画面に表示できる高価なビデオプロセッサを使って作られるが、必ずしも結合性のあるアプリケーションとしてではない。ジュピター社から販売されている例があるが、数十万米国ドルの値が付いている。
従って、確認されているこれらの問題を解決する改善されたシステム及び方法が必要とされている。
導入に過ぎないが、ここに開示している実施形態は、分散型情報処理及びインタラクションのためのシステムと方法を提供している。或る一般的な実施形態では、アプリケーションプロセッサは、1つ又は複数のソフトウェアアプリケーションに応答して、各出力が一体になってシステム出力を形成するように出力を作り出す。個別のプロセッサ出力は、ディスプレイ装置上の表示か、電子ロックを解除する様なアクチュエータの働きか、データベース内の情報を変更することである。プロセッサ出力は、プロセッサからの出力データの変化と同じく簡単である。プロセッサにより生成される各変化又は出力は、各プロセッサのローカル状態の変化、並びに全体的システム状態の変化である。アプリケーションプロセッサの状態の各変化は、状態変化メッセージで状態サーバーへ報告される。
状態サーバーは、各プロセッサのローカル状態を同期させるように働く。状態サーバーは、1つのアプリケーションプロセッサから受信した状態変化メッセージを、システム内の他の全てのアプリケーションプロセッサに反映する。更に、どの様なシステム入力が状態サーバーに報告されても、状態サーバーは、状態の変化を再び全てのアプリケーションプロセッサに反映する。この様にして、アプリケーションプロセッサは、同期状態に維持される。他のプロセッサの出力に反映されるべき、1つのプロセッサでの出力の変化は、そのようになされ、自動的、且つ切れ目無く、変化を状態サーバーへ報告して、変化を他の全てのプロセッサに反映する。
或る特定の実施形態では、各アプリケーションプロセッサは、タイル状配列型出力ディスプレイの1つ又は複数の画像タイルを生成するディスプレイ装置を駆動する。各プロセッサは、ディスプレイの指定された部分しか表示する責任はないが、状態サーバーからの状態変化メッセージを使用して、ディスプレイ全体用の状態情報を更新する。ディスプレイの、割り当てられ、指定された部分は、プロセッサのコンテキストである。入力装置は、マウスの動き及びマウスのクリックと同様に、ユーザーのディスプレイとのインタラクションを検出するが、或る実施形態では、ディスプレイの前の手の動きを検出する。検出されたユーザーインタラクションは、状態サーバーに報告され、ユーザーインタラクションに関する情報は、状態サーバーから、画像を生成するアプリケーションプロセッサに反映される。画像は、状態サーバーからの情報に基づいて更新される。
本実施形態は、アプリケーション開発者が、没入型環境内にある複数のディスプレイとコンピューターに亘ってアプリケーションがどの様に分散されているかについて明確な懸念無しに、データ集約型の協調アプリケーション(collaborative applications)を作ることができる、ソフトウェアアーキテクチャと一様な抽象層(abstraction layer)を提供している。このアーキテクチャは、(a)複数のマシン及び複数の形態要因に亘るアプリケーション又はアプリケーションのセットを分割し、(b)異なるコンピューター及び/又はプロジェクターの様な異なる出力装置上のディスプレイ部分の様な出力部分を整列させるための機構を提供し、(c)複数のマシンによって制御されている複数の入力装置からユーザーインタラクションを収集して、アプリケーションがユーザーインタラクションの同期された視点を有するようにするための手段を提供し、(d)単一の演算環境内で複数のデータ集約型の協調アプリケーション(collaborative applications)を実行し協働できるようにするため通信/同期化機構を提供し、(e)アプリケーションの複数のユーザーが、没入型環境の中で互いにインタラクションできるようにするユーザーインターフェース構造を提供する、という5つの機構から成る高レベルの基本要素を通して実施される。
これらの実施形態によるソフトウェアアーキテクチャは、没入型環境用のデータ集約型の協調アプリケーション(collaborative applications)を作るための一様な抽象層(abstraction
layer)を提供する。一様な抽象層(abstraction layer)は、アプリケーション開発者を、環境の低レベルの細部を管理することから解放するので、彼らの生産性とアプリケーションの質を劇的に上げる。この革新は、更に、アプリケーション開発者が、没入型環境用のデータ集約型の協調アプリケーション(collaborative applications)を開発できるようにする。
本アーキテクチャは、分散没入型の複数ユーザーがいる環境内でアプリケーションをサポートするように作られており、環境は、通常のデスクトップ作動構造によってはサポートされていない。従って、アーキテクチャは、開発者を環境の複雑さから遮蔽し、彼等が、一様な抽象層(abstraction layer)を通して末端ユーザーのアプリケーションを書き込めるように作られている。その層は、どのアプリケーションも、2つ以上の物理的コンピューターに常駐していることを想定している。従って、それは、アプリケーションを区画に分け、その区画を同期させるための透過的サポートを提供する。開発者は、アプリケーションを、あたかも1つのコンピューター上の1つのプロセスであるかのように作る。本アーキテクチャは、更に、幾つかのアプリケーションが、1つの環境又は複数の場所の中で協働することも想定している。従って、それは、例え複数のプラットフォーム及び動作様式に亘ってでも、その全体環境を維持するのに必要なメッセージ送信及び同期機構を提供する。開発者に必要なのは、異なるアプリケーションそれぞれが、異なる状態であるのを理解することを確認することだけである。更に、本アーキテクチャは、幾つかの入力機構があり、入力機構の内の1つ又はそれ以上は、1人又は複数のユーザーからの複数の同時入力を許容するということを想定している。本アーキテクチャは、末端のアプリケーションに、全ての入力の共通の同期されたビューを提供する。開発者に必要なのは、それらの入力を(アプリケーションのルールに基づいて)状態変化にマップすることだけで、その後それは、アーキテクチャによって同期される。最後に、本アーキテクチャは、幾つかの末端ディスプレイが複数タイル状配列型プロジェクターで構成されると想定している。この場合、本アーキテクチャは、複数の配列のエッジを正確に整列させて混合するのに必要なソフトウェア機能を供給する。これは、実行時にユーザーによって行われなければならないが、この複雑さは、アプリケーション開発者には隠されている。各構成要素の詳細を、以下に列挙する。
ネットワーク型メッセージングコンポーネント:本アーキテクチャは、全てのアプリケーションを、同期及びメッセージングを制御する集中処理サーバー(centralized server)に自動的に接続する。ネットワーク化の複雑さは、開発者には隠されており、アーキテクチャは、メッセージを、アプリケーションに直接送る。結果として、ローカル型インタラクション(例えば、取り付けられたキーボードから)とネットワーク型インタラクション(例えば、ネットワーク型制御装置から)の間に違いは無い。更に、開発者は、ウィンドウズ(登録商標)の「メッセージマップ」と非常に良く似たやり方でメッセージを取り扱うが、本アーキテクチャは、メッセージマップの結果を全てのコンピューターに分散させるように取り扱う。メッセージは、アプリケーション、又はタッチ画面又はデータグローブの様な専用のユーザーインターフェース装置から生まれる。
ネットワーク型時刻同期:本アーキテクチャは、更に、全てのアプリケーション及び/又はアプリケーションのフラグメントが、共通の同期された時刻を有することを保証する。これは、動画及び状態管理には重要である。共通の時刻データに加えて、本アーキテクチャは、状態、動画、及びあらゆる他の時間ベースのデータを管理するのに用いられる「補間器」類を供給する。補間器オブジェクトには、開始及び終了時刻と、開始及び終了値と、数値が時間の経過に亘ってどのように変わるかを決める補間機能と、が割り当てられる。補間器は、一旦作られると、動画及び他の時刻感知機構に、時刻同期値を供給する。
アプリケーションのフラグメント化:アプリケーション開発者は、オブジェクトを1つの大きな仮想キャンバス上に配置して動画にする1つのアプリケーションを書き込むことができる。ホストコンピューター群は、それぞれ、それらが制御する仮想キャンバスの領域を指定する小さなデータファイルを有している。これは、一般に、コンピューターの能力と、画面の物理的配置によって決められる。アプリケーションが複数のマシンで実行されるとき、本アーキテクチャは、データファイルを使用してキャンバスの適切な部分を描く。先の2つの特徴は、全てのフラグメントが同期され、それら自体を1つの論理的なアプリケーションとして提示することを保証する。
アプリケーション調整:或る環境、特に異なるハードウェアプラットフォームを備えた環境では、幾つかの個別のアプリケーション(1つのフラグメント化されたアプリケーションとは対照的に)は、1つの作業環境を提供するためにインタラクションする必要があるかもしれない。これも、本アーキテクチャによってサポートされる。本アーキテクチャは、ネットワーク型メッセージ送信構成要素を使用して、環境状態の変化を、登録された全てのアプリケーションにメッセージ送信する。各アプリケーションは、固有の基準に従って応答することができる。
画面の整列:本アーキテクチャは、タイル状配列型投影画像を使用してディスプレイ出力を提示することをサポートする。タイル状配列型投影に付帯する1つの特有の問題は、単一の連続する表示空間を作るために、隣接するプロジェクターを注意深く整列させ、エッジ混合させなければならないことである。本アーキテクチャは、先に述べたデータファイル内の情報を使用して、画像を整列させなければならないか、どのように整列を行わなければならないか、を判断する。整列が必要であれば、本アーキテクチャは、ユーザーの供給した整列データをファイルに読み込み、アプリケーション出力で必要な画像ワーピングを実行する。この機能は、プロジェクター間の色補正にまで拡張することもできる。末端のディスプレイ装置の細部は、アプリケーション開発者には遮蔽されている。
高レベル基本要素:本アーキテクチャは、開発者を、基底にあるグラフィク技術の複雑さから、一式の共通の高レベル基本要素で遮蔽している。これらの基本要素は、2Dオブジェクト、3Dオブジェクト、線、ウェブキャム、ピクチャ、ビデオ、音、テキスト、グラフ、及びバイナリ・データオブジェクトの様な一般的なオブジェクトを表す。
場面のカプセル化:最終的に、アプリケーション開発者は、所与の「場面」の中の全てのオブジェクト、データ、及びロジックをカプセル化する「コントローラー」オブジェクトの例を作ることによって、上記各特徴を利用する。本アーキテクチャは、一回に1つのコントローラーの出力を表示し、コントローラーを、「アプリケーション」又は「エピソード」とほぼ同義語にする。しかしながら、コントローラーは、入れ子にしてもよく、そうでなければ、オブジェクトを個別のバッチに配置するのに用いられる。このことは、アプリケーション開発者が開発努力を数人に分配するのに役立つ。更に、必要があれば、異なるバッチは異なる周波数で更新することができるので、全体的グラフィック性能を上げるのにも役立つ。
さて、図1は、分散型情報処理及びインタラクションのためのシステム100を示している。システム100は、状態サーバー102、複数のアプリケーションプロセッサ又は出力装置104、及び複数の入力装置108を備えた入力/出力(I/O)コントローラー106を含んでいる。システム100は、複数の異質なコンピューター装置、複数の出力装置、及び複数の様式を繋ぐアーキテクチャの実施形態である。システム100は、入力装置108から受信した入力に応答して、出力装置104に影響を与える。与えられた影響は、1つ又は複数の出力装置に対して同じであってもよいし、影響と特定の出力装置に依っては、異なっていてもよい。以下に更に詳しく説明する様に、何れの出力装置に与えられる影響も、出力装置の性質と影響次第である。
概説すると、状態サーバー102は、システム100の1つ又は複数の状態を維持し、出力装置104が同期されることを保証する。状態サーバー102は、望ましくは所定のメッセージプロトコルを使ってメッセージを送信することにより、出力装置104と通信する。状態サーバー102は、システム100に関して受信した全てのメッセージを反映させ、システム内の全ての適切な装置、具体的には全ての出力装置104に戻す。状態サーバー102は、入力装置108から入力信号を受信し、適切な出力装置104にメッセージを送信して、出力装置の状態を以下に更に詳しく論じるやり方で同期させる。入力装置108は、どの様な種類のセンサー又はデータ収集装置を含んでいてもよい。出力装置104は、卓上PC、携帯情報端末(PDA)、又はラップトップコンピューターの様なパーソナルコンピューター(PC)、又は他の専用の装置又はプロセッサを含め、どの様な種類の音声又はビデオ又は他の出力装置又はシステムを含んでいてもよい。出力装置104は、最も一般的には、インタラクションを生み出すためのあらゆる型式のアクチュエータを含んでおり、又は結果的に環境となる。
図1の実施形態については、表示画像がディスプレイ表面110上でシステム100によって制御される代表的なシステムのコンテキストで論じられる。表示画像は、複数のディスプレイ装置112で作られている。代表的なシステムでは、ディスプレイ装置112は、表示面112を形成するガラス壁120のパネル118上に表示を投影するために配置された、1つ又は複数の各アプリケーションプロセッサ116の制御を受けるビデオプロジェクター114である。表示画像を形成するのに、どの様な適した数のプロジェクター114とガラスパネル118を使ってもよい。図1の例では、2x4列のプロジェクターが一体になって、同様の配列のガラスパネル118上に表示画像を形成している。別の実施形態では、異なる数のプロジェクターとガラスパネルが使用されるかもしれない。更に別の実施形態では、フラットパネルディスプレイ、プラズマディスプレイ、又はブラウン管の様な別の型式のビデオディスプレイ装置に置き換えられるかもしれない。ここに記載している原理は、何ら特定の技術によって限定されるものではなく、多種多様な装置に適用される。
図1の代表的な実施形態では、入力装置108は、1つ又は複数のカメラ122、データグローブ124、指示装置126、及び赤外線センサー128を含んでいる。図示の様に、これらと同様の又は他の型式の他の入力装置を、システム100に加えてもよい。カメラ122は、ビデオ画像を捉える装置である。画像は、jpeg(Joint Photographic Experts Groupにより進化された標準的なデータフォーマットを指す)又はgif(Graphics Interchange Format)などの様なデジタルフォーマットを含むどの様な適したフォーマットの1つの画像であってもよいし、ビデオ画像は、Motion Picture Experts Groupによって提唱されている様な標準(MPEG又はその変形の1つ)、又は他の標準に従ってコード化されたデータファイルの様な動画画像であってもよい。データグローブ124は、バーチャルリアリティ用の入力装置と、装着者の指の動きを測定してそれをデータ処理装置又はコンピューターに送るグローブの形をした他のデータ処理装置である。高度なデータグローブは、手首と肘の動きも測定するが、加えて他の身体部分の動きを測定できる場合がある。データグローブは、更に、中に制御ボタンを備えていてもよく、また、例えばコンピューターの制御を受けて振動する出力装置として作用してもよい。ユーザーは、通常、データグローブのバーチャル画像を見て、オブジェクトを指し、掴み、又はそれを押すことができる。位置指示装置126は、コンピューターマウス又はペンタブレットの様な、どの様なデータ入力及び操作装置でもよい。赤外線センサーは、装置からの熱、エネルギー、又は電波放出に応答し、画像を作成するどの様な感知装置でもよい。
I/Oコントローラー106は、システム100と入力装置108の間のデータ収集インターフェースとして作用する。I/Oコントローラー106は、従って、各入力装置108から信号を受信し、あらゆる必要な信号を戻すように作られている。例えば、jpegフォーマットファイルをカメラ122から受け取るために、I/Oコントローラー106は、カメラ122からjpegフォーマットのファイルを受け取り、ファイルを記憶し、適切なネットワークのハンドシェーク信号をカメラ122に提供する。別の例では、フォーマットは、別のカメラ120又はデータグローブ124からのストリーム式のデータであるかもしれない。I/Oコントローラー106は、必要なハンドシェーク信号を入力装置に提供し、受信したデータを閲覧に備えて記憶するか、又は直ちにデータを状態サーバー102に提供する。I/Oコントローラー106は、入力装置108からデータを、各入力装置によって提供されるフォーマットで受信し、データを、状態サーバー102及び出力装置104が要求するフォーマットにフォーマットする。
表示画像がディスプレイ表面110上でシステム100によって制御されている代表的な実施形態では、入力装置108は、ディスプレイ表面に隣接するユーザーの手又は他の身体部分を検出し、画像の一部分を操作する指示装置として作用する感知装置を含んでいる。例えば、或る実施形態では、入力装置108は、ディスプレイ表面110に隣接して配置された一式のカメラを含んでおり、ユーザーの手の位置及び動きを検出し、I/Oプロセッサ106と協力して、ユーザーの手の位置と動きを示す信号を状態サーバー102に提供する。信号は、各アプリケーションプロセッサ116に伝えられ、適切な表示又は表示の変化を作り出すのに用いられる。例えば、手の動きが、ディスプレイ表面110上の表示の左クリック、右クリック、又は表示の他のマウス操作と解釈されれば、各アプリケーションプロセッサ116は、手の動きを処理することによって適切に応答し、適切であれば、各アプリケーションプロセッサによって制御される表示部分に手の動きを反映させる。
先に述べたとおり、この実施形態の出力装置104は、システムの出力ディスプレイの各表示部分を表示するために配置された1つ又は複数のディスプレイ装置を含んでいる。これを実現するために、ディスプレイ表面120のガラスパネル118と、それらに関係付けられたプロジェクター114は、それらが一体になって合成画像を形成するように配列されている。各プロジェクターによって作られる各画像は、唯一のものであり、ディスプレイ装置に関係付けられたアプリケーションプロセッサ116の制御の下に作られる。
一般に、アプリケーションプロセッサ116は、システム100内で特定の機能を実行するために特定のアプリケーションソフトウェアによってカスタマイズされた汎用データ処理システムである。アプリケーションプロセッサ116は、データリンクによって状態サーバー102に連結されている。データリンクは、有線又は無線データリンクでも、何らかの適したデータ通信装置でもよい。アプリケーションプロセッサ116は、特定の出力動作を作り出すための特定のハードウェア構成要素を含んでいるか、又はそれと関係付けられている。汎用出力装置への1つの代表的な動作は、遠隔位置で電気的に制御されているロックを開くことである。その様なアプリケーションでは、アプリケーションプロセッサ116は、サーボモーター又は他の装置と協働してロックを機械的に開く。一般に、ここで、各アプリケーションプロセッサは、アプリケーションプログラムを処理するように構成されており、コンテキスト情報に応答する。各アプリケーションプロセッサは、システム出力の出力部分を提供する際に出力装置104を制御するための、関係付けられた各出力装置104とデータ通信している。システムの出力は、全ての出力装置104の出力部分の集合体である。
図1の特定の代表的な実施形態では、アプリケーションプロセッサ116は、システム100の出力ディスプレイの各表示部分を処理するようにカスタマイズされている。従って、アプリケーションプロセッサは、状態プロセッサ102からメッセージの形でデータと命令を受信し、制御信号を1つ又は複数の関係付けられたプロジェクター114に提供する。図1は、アプリケーションプロセッサの代表的なソフトウェアアーキテクチャ130を示している。ソフトウェアアーキテクチャ130は、コア要素132とアプリケーション層134を含んでいる。コア要素132は、アプリケーションプロセッサ116用のソフトウェアアプリケーションを準備している全ての開発者が共有するソフトウェアアーキテクチャ130の態様である。例には、入力/出力ドライバ、記憶及び検索ルーチン、及び他のオペレーティングシステム構成要素が含まれる。アプリケーション層134は、アプリケーションプロセッサ116用のソフトウェアの各開発者によって、アプリケーションプロセッサに固有のアプリケーション行動を作り出すようにカスタマイズされた機能、ルーチン、及び他の構成要素を含んでいる。
アプリケーション層134は、メッセージハンドラ136と、1つ又は複数のオブジェクト138を含んでいる。メッセージハンドラ136は、状態サーバー102と通信している。特に、メッセージハンドラ136は、各アプリケーションサーバーによって処理するための、システム100の変化を画定するメッセージ140を、状態サーバー102から受信する。更に、メッセージハンドラは、各アプリケーションサーバーで作られるシステムの変化を定義し且つ他のアプリケーションサーバー116に反映させなければならないメッセージ142を、状態サーバーに送る。例えば、ソース及び宛先アドレスを備えたヘッダーと、システム内の状態の変化を定義するデータを含むペイロードを含め、メッセージは、所定のデータ送信プロトコルに従ってフォーマットされるのが望ましい。しかしながら、適していればどの様なデータ送信フォーマットに置き換えてもよい。
オブジェクト138については、アプリケーション層134の開発者が事例を挙げて説明する。オブジェクトは、画面上の図形の様な、選択及び操縦可能な個々別々の品目である。オブジェクト指向プログラミングでは、オブジェクトは、データ及びデータを操作するのに必要な手順を含んでいる。アプリケーション層134の制御の下にアプリケーションプロセッサ116を作動させると、オブジェクトが生成され、作動する。図示の例では、オブジェクト138は、アプリケーション層の他の部分及び状態サーバー102と通信するため、各自のメッセージハンドラを含んでいる。オブジェクト138により通信されるメッセージは、個別のオブジェクトに影響を与えるシステム状態に対する更新を受信してもよいし、状態サーバー102によって他のアプリケーションプロセッサ116に反映しなければならない、オブジェクトによって検出又は生成された変化に関する情報を含んでいてもよい。
本発明によれば、図1で具現されているアーキテクチャは、アプリケーションプロセッサ116の様な複数のプロセッサと、アプリケーション層134の様な、プロセッサ116で稼動している複数のアプリケーションの間で共有されている状態をサポートする。状態サーバー102の作動は、アプリケーションプロセッサ116の状態が同期されるのを保証する。つまり、状態サーバー102は、全ての状態の変化が、全てのプロセッサ116に、できるだけ同時に反映されるのを保証するよう作動する。
本コンテキストにおける同期は、最も一般的には、各アプリケーションプロセッサの状態は、状態が同じ情報を含むほどに一致している、ということを意味している。同じアプリケーションプログラムの各ローカルコピーを実行している各アプリケーションプロセッサでは、アプリケーションの各コピーが同じデータを有している場合は、状態は同じである。各アプリケーションには変動があってもよい。例えば、ここに記載している特定の例では、2つ又はそれ以上のアプリケーションプロセッサは、ディスプレイ上の画像の各部分を生成する。各プロセッサは、画像全体の、ここではそのコンテキストとして言及される、指定された部分を表示するように割り当てられる。しかしながら、各プロセッサは、そのコンテキストだけではなく、画像全体を生成するのに必要なデータを維持する。コンテキストの部分ではないデータは、アプリケーションの処理と、状態サーバーから受信された同期情報に基づいて更新されるので、アプリケーションのローカルコピーは、同期されるか、又は他のコンテキストを有する他のコピーと同じデータを備えている。
本アプリケーションでは、同期は、時刻的な同期そのものではない。全ての同期は、共通のフレームワークに関与している。同期は、アプリケーションプロセッサの1つのローカルな状態、又は複数の状態に関係している。
第1の例では、例えば、サーバーが、時刻センサーと考えられるシステムクロックにアクセスしたので、時刻同期は、サーバーがメッセージを現在の時刻を指定する全てのアプリケーションに送信することを伴っている。このメッセージに応えて、或るアプリケーションプロセッサの或るアプリケーションは、単に動画を更新するかもしれない。又他のアプリケーションは、或るロジックを実行して、新しい時刻をより高いレベルの状態変化(例えば、列車が到着する時刻であることを示す)にマップし、本アーキテクチャを使用して、その新しい状態を別のアプリケーションに反映させるかもしれない。また他のプロセッサの他のアプリケーションには、時刻依存態様を全く有していないものもあり、その場合には、メッセージに応答しない。別のアプリケーションは、報告された状態変化に適切に応答する。
第2の例では、列車は、位置決めセンサーを形成する全地球位置把握システム(GPS)受信器と、ここに説明する型式のアプリケーションプロセッサを有している。列車とそのアプリケーションプロセッサは、GPS位置データを列車の新しい状態として報告するメッセージを送る。メッセージは、状態サーバーで受信され、幾つかの他の駅構内のアプリケーションに反映される。例えば、駅構内の指令センターでは、メッセージの情報は、列車位置の表示の変化に影響を及ぼす。データ処理装置を備えているコンピューター室では、メッセージは、データベース入力によって操作される。駅の構内では、別のプロセッサの別のアプリケーションが門を開く。
第3の例では、タッチ画面センサーが、タッチの場所を検出し、その場所を状態サーバーに報告する。サーバーは、状態変化に関する情報を、システム内の全てのアプリケーションに送る。1つのアプリケーションは、その状態変化を、より高いレベルの状態へマップし、「ボタンが押される」。別のアプリケーションは、タッチを、他の高いレベルの状態にマップし、「指令センター内に人間の活動がある」。ここでも、各アプリケーションは、同じ状態更新メッセージを受け取り、適切に応答する。
これらの例のそれぞれで、時刻は、概念的には他の全ての状態変化と同じやり方で扱われる。タッチ、動作、及び、カードリーダーに識別カードを通す、又は指紋リーダーを使う様な、システムへの何らかの他のセンサー入力は、状態サーバーに報告され、全て同じやり方で、システム内の各アプリケーションプロセッサに対して適切に扱われる。状態の変化は、必ずしも均一には扱われない。或るアプリケーションは、単に表示を更新するだけであるかもしれない。別のアプリケーションは、ロボットを始動させるかもしれない。
図1に戻るが、最も一般的なアプリケーションでは、状態変化は、様々なセンサー及び/又はプログラムロジックから影響を受け、ユーザーインタラクションには限定されない。状態の変化に関するあらゆる情報が、状態サーバー102に送られ、状態サーバーは、情報を、アプリケーションプロセッサ116を含むシステム100内の他のサーバーに反映させ又は再送信する。アプリケーションプロセッサ116又はあらゆる他の出力装置104は、状態サーバーから更新された状態の情報を受け取り、適切に応答する。応答は、出力装置104に記憶されているデータを更新することかもしれない。応答は、表示されている画像又はプログラム状態を変化させることかもしれない。応答は、幾つかの適した動作を提供することかもしれない。最も一般的な場合では、各出力装置の応答は、その作用又は機能の性質、及び更新された状態の情報に合わせて作られる。
図1に示している特定のアプリケーションでは、出力装置104がアプリケーションプロセッサ116の制御下にあるプロジェクター114を含んでおり、状態変化は、入力装置108、又はアプリケーションプロセッサ116で作動しているプログラムロジックから影響を受ける。I/Oプロセッサ106によって検出された入力信号に応えて、状態サーバー102は、その状態情報を更新し、その情報を、アプリケーションプロセッサ116を含め、システム100内の他のサーバーに反映し又は再送信する。つまり、各アプリケーションプロセッサ116は、アプリケーションプログラムを処理してアプリケーションプロセッサによって生成された各表示部分を形成している画像の変化を作り出すのに応えて、更新メッセージを状態サーバー102に急送するように構成されている。状態サーバー102は、メッセージを、他のアプリケーションプロセッサ116に反映させる。アプリケーションプロセッサ116は、状態サーバー102から更新された状態情報を受け取り、適切に応答する。図1のこの特定のアプリケーションでは、各アプリケーションプロセッサ116の応答は、その関係付けられているディスプレイ画面118上に作り出される表示を変えることである。
この特定の実施形態では、ディスプレイ表面120に隣接して配置されているカメラ120は、ディスプレイパネル118によって形成されているディスプレイ装置の1つに隣接して起こるユーザーの活動を検出するために配置されている、入力検出器として作動する。検出されたユーザーの活動に応答して、入力検出器又はカメラは、ユーザー活動信号を生成する。例えば、信号は、ディスプレイパネル118の表面でユーザーの手が配置されている場所を、x及びy座標で定義するデジタルデータである。I/Oプロセッサ106は、カメラ120と状態サーバー102によって形成されている入力検出器とデータ通信して、ユーザー活動信号に関する情報を伝える。例えば、I/Oプロセッサは、x及びy座標データを提供するだけでもよいし、データは、他の情報で強化され、或いはフォーマットされていてもよい。
更に、ここで説明する特定の実施形態では、各アプリケーションプロセッサ116は、実質的に同じプログラム又は同一のアプリケーションプログラムを実行する。各アプリケーションプロセッサ116は、状態サーバー102から受信した状態メッセージに応じて更新されたシステム100の状態のそれ自身のコピーを維持している。システム状態のローカルコピーに基づいて、各アプリケーションプロセッサ116は、個別のディスプレイ装置112上の所定の表示部分に、アプリケーションプログラムの出力表示を表示する。アプリケーションの処理は、同期装置として作動する状態サーバー102によって同期される。このシステムでは、各アプリケーションプロセッサ116は、出力ディスプレイの各表示部分を各ディスプレイ装置112上に表示するために、各ディスプレイ装置112を制御する。
(ディスプレイパネル付近の手の様な)ユーザーインタラクションが検出されると、各ディスプレイ装置に関係付けられている各アプリケーションプロセッサで、各表示部分の表示が更新される。同期装置である状態サーバーは、ユーザーインタラクションに関する情報を、それぞれ全てのシステムデータを有している各アプリケーションプロセッサに伝える。しかしながら、各アプリケーションプロセッサは、その各表示部分を表示することに責任を負っている。従って、アプリケーションプロセッサは、ユーザーインタラクションがその表示部分に影響を与えた場合にだけ、その表示部分を更新する。例えば、各パネルがそのそれぞれのプロセッサによって制御されている2x4のパネルディスプレイの最も左のパネル付近で、ユーザーが手を動かすと、手の動きによって表されるユーザーインタラクションは、状態サーバーによって全てのプロセッサに報告される。しかしながら、最も左のパネルを制御しているプロセッサだけが、ユーザーインタラクションを反映させるため、そのパネル上に作り出される表示を変化させる。他の全てのプロセッサは同一のデータマッチングを有しているが、他の全ての表示は変わらない。各プロセッサは、それ自身のコンテキストを維持し、コンテキストが変わり、更新を要求している場合にだけ、その表示を更新する。コンテキスト情報は、表示全体のどの表示部分がプロセッサによって作られているかを定義する。同様に、ユーザーインタラクションが、2つ以上の表示パネルに表示の変化を要求している場合(例えば、新しいアプリケーションウインドウがディスプレイ上に開かれるため)は、システムの状態は、変化を、影響を受ける各アプリケーションプロセッサの各コンテキストに反映させる。アプリケーションプロセッサのコンテキスト内の変化のため、プロセッサの表示が更新される。
図2は、図1のシステム内のプロセスの流れを示す流れ図である。特に、図2は、個別の同期されたアプリケーションプロセッサのグループを使って情報が表示及び提示される図1のシステムの特定の実施形態を示している。図1のシステムを実行する別の方法を置き換えることもでき、この実施形態の変形は、容易に推定することができる。
図2では、プロセスは、この例ではRWExecutable.cppという名のC++コード部分202であるコンピューターコードとして実施される。コード部分202は、先ず、ブロック204で、CRWApplicationと呼ばれるオブジェクトの例を作る。コード部分202は、次に、ブロック206で、新しく作られたオブジェクトを呼び出す。図2の線で示している様に、制御は、その後、CRWApplicationの実例であるコード部分210に移る。コード部分210の処理後、CRWApplicationの例は、ブロック208で、コード部分202によって破棄される。
コード部分210は、C++オブジェクトCRWApplicationの実例である。このオブジェクトは、図1のシステムでアプリケーション用のグラフィック環境の設定を取り扱う。このオブジェクトは、以下でより詳しく述べるように、更にアプリケーションで定義される全てのCRWControllerを初期化し、そのリストを維持する。マルチプロジェクターシステムを通してアプリケーションを表示しなければならない場合、コンテンツは、CRWScreenAlignmentObjectを含んでいる。
コード部分又はアプリケーション210は、図2に示している流れ図を実施する。ブロック212で、アプリケーション210は、マシン特有の設定が入っているあらゆるファイルを読み取る。その様な設定の例には、このマシンが処理を任されているのは、上記又は各表示部分のどのスライスか、を定義することが含まれる。広義には、マシン特有の設定は、どの出力装置がそのマシンによって制御されるか、を定義する。出力装置は、ディスプレイ装置、アクチュエーター、又は何らかの他の適切な装置であることがある。
ブロック214で、アプリケーション210は、あらゆる必要なグラフィック、ビデオ、ネットワーク又は音声機能用のDirectXの環境を設定する。DirectXは、ネットワーク、グラフィック、入力、音声及びビデオの様な幾つかの低レベルの機能にアクセスするためのライブラリである。図示の実施形態のシステムは、グラフィックライブラリを最も広範に使用するが、ネットワークライブラリは、通信のために用いられる。
ブロック216で、アプリケーション210は、1つ又は複数のCRWControllerオブジェクトを作成し、初期化する。コントローラーオブジェクトは、オブジェクトのリストであり、それらからメッセージを送受信するためのロジックである。ブロック218で、アプリケーション210は、CRWScreenAlignerと呼ばれるオブジェクトを作る。これは、アプリケーションの表示が多数の投影領域に亘って切れ目無く広がるマルチプロジェクターの配列システムを使用できるようにするオブジェクトである。プロジェクターに実際に送られる表示出力を歪ませることによって、このオブジェクトは、プロジェクターの歪みを補正し、投影領域の間の切れ目を最小にする。補正の正確な特性は、このオブジェクトを通してユーザーが完全に構成することができる。ブロック220で、アプリケーション210は、ネットワーク形成オブジェクトを初期化する。このオブジェクトは、アプリケーションプロセッサが、状態サーバーを含む他の装置とネットワークを介して通信できるようにする。
ブロック222で、アプリケーション210は、アプリケーションを終結しなければならないことを示す終了メッセージ又は他のデータを確認する。その様なメッセージが受信されていなければ、ブロック224で、あらゆる保留メッセージが、アプリケーションプロセッサから状態サーバーへ送信される。ブロック226で、Renderと呼ばれるオブジェクトが呼び出されて、画像をディスプレイ上に描写する。制御は、終了メッセージが受信されるまで、ブロック222、224、226を含むループ内に留まっている。終了メッセージに応えて、制御は、ブロック228へ進み、そこでアプリケーション210が終了メッセージを状態サーバーへ送り、状態サーバーとの通信を切断する。ブロック230で、アプリケーションは、アプリケーションによって作られたCRWControllerオブジェクトの全ての例を破棄することによって掃除する。ブロック232で、全てのDirectXリソースが解放され、アプリケーションが終了する。
図3は、図1のシステムの或るソフトウェアの実施形態用のアーキテクチャ流れ図である。図3は、図2の流れ図で発生する活動から生まれる作用を示している。図2のブロック216に応えて、ブロック304で、コード部分302が呼び出され、Controllerオブジェクトに特有のあらゆるデータ構造体を初期化する。更に、ブロック216に応えて、ブロック308、310で、コード部分306が、アプリケーションに必要な全てのオブジェクトを作り初期化するために呼び出される。
ブロック308は、CRWBaseControllerと呼ばれるインターフェース312を具体的に説明している。CRWBaseControllerは、Controllerオブジェクトの基本的特性を定義するインターフェースである。Controllerには、CRWBaseObjectから導き出されるオブジェクトのリストと、それらからのメッセージを送受信するためのロジックが入っている。CRWBaseObjectは、一片のテキスト(CRWSimpleTextObject)、ピクチャ(CRWTextured2DObject)、又はウェブキャム送給(CRWWebcamObject)の様な一般的なオブジェクトの特性を定義するインターフェースである。オブジェクトは、Controllerによって作成され、維持される。各オブジェクトは、それら自身のコンテンツをフレーム毎に初期化し、描く能力を有しており、Controllerからのメッセージに応えて、システム内にアプリケーションを書き込むこともできる。開発者は、CRWBaseControllerインターフェースから引き継いだクラスを書き込み、それを実行しなければならない。開発者は、Controllerをオブジェクトで満たし、オブジェクトのロジックを指定することによって、アプリケーションのコンテンツと行動が何であるかを定義する。具体的には、CRWBaseControllerインターフェースは、ブロック314で、アプリケーションプロセッサが、全体的出力ディスプレイ又はアプリケーションジオメトリのサブ領域又は各表示部分の範囲を学習し、範囲データを設定して、この情報を記憶できるようにしている。これらの範囲は、ここでは、このアプリケーションプロセッサ用のコンテキストとも呼ばれる。更に、ブロック316で、CRWBaseControllerインターフェースは、グラフィックテクスチャを作り、その上にコントローラーのコンテンツを描く。
ブロック310は、アプリケーション用の全てのオブジェクトを作り、初期化する。ブロック310に応えて、オブジェクト318は初期化される。ブロック320で、オブジェクトCRWBaseObject322が呼び出される。先に述べた様に、CRWBaseObjectは、一般的なオブジェクトの機能性(例えば、オブジェクトが「レンダされる」という一般的な概念)を定義する。ピクチャ、ビデオなど(CRWVideoObjectと、ここに記載されている他のもの)は、基本のオブジェクトから継承され、それを拡張する(例えば、特定の型式のオブジェクトが、どの様にレンダされるかを定義する)。この様に、CRWBaseObjectは、全てのオブジェクトが理解するコマンドの基本セット(初期化、レンダなど)を定義し、各オブジェクト型式は、それらのコマンドにオブジェクトがどの様に応答するかを定義する。これによって、コントローラーは、それらが何であるかを正確に理解することなく、オブジェクトにコマンドを送ることができるようになる。コントローラーは、CRWBaseObjectに関して作動するが、特殊化された各オブジェクトは、特殊化された行動で応える。
オブジェクトは、ブロック322で作られ、初期化される。しかしながら、ブロック324で、このオブジェクトは、コピーが担当しているサブ領域又は各表示部分には決して示されないことをアプリケーション開発者が指示していた場合は、オブジェクトの作成が抑制される。
ブロック318に戻るが、ブロック320でのCRWBaseObjectの初期化に続いて、ブロック326で、現在のオブジェクトに固有のあらゆるリソースが初期化される。第1の例はCRWTextured2DObjectで、これは、2つのコーナーポイントによって定義される二次元空間内の長方形である。長方形は、単純な色を有することも、或る画像(テクスチャ)を保持することもできる。利用可能な選択肢には、オブジェクトの色値の設定、回転、サイズ変更、位置の設定、透明性の変更、が含まれる。他の同様の例には、以下のものが含まれる。
CRWLineObject、これは、二次元空間内の線であり、2つの終点で定義される。CRWTextured2DObjectに適用される全ての特性と設定に加えて、線の太さと型式を設定することができる。
CRWMagLine、これは、二次元空間内の多角形であり、4つの隅角点で定義される。これは、CRWTextured2DObjectよりも柔軟性のあるジオメトリを可能にし、多くは、ズームされた領域をズームされていない領域に視覚的に接続するのに用いられる。
CRWWebCamObject、これは、二次元空間内の長方形であり、2つの隅角点で定義される。このオブジェクトは、サーバー又はウェブキャムから取り出された画像の連続した送給を表示する。
CRWVideoTexture、これは、ファイルからビデオを取り出し、それをテクスチャに書き込むこと、及び解凍の様なそのファイルに関連する作業、を扱うオブジェクトである。
CRWVideoObject、これは、CRWTextured2DObjectと同様であるが、静止画像ではなくビデオクリップ(CRWVideoTexture参照)を保持する。
CRWCompoundObject、これは、オブジェクトの集合体が入っており、それを管理し、その集合体を2Dテクスチャに描き、その後それを画面上に描くことのできるオブジェクトである。この様に組み合わせられると、集合体の中の各オブジェクトは、全て、グローバル座標系から切り離された座標系を共有することができる。組み合わせられたオブジェクトの場所、大きさ、回転、色などを変更すると、全てのサブオブジェクトに比例する変化が起こる。
CRWSimpleTextObject、これは、テキストの塊である。設定には、境界を成す長方形の寸法形状、フォントの高さと幅、色と透明度、及び幾つかのフォーマット選択肢(例えば、左右の位置調整)が含まれている。
CRWSpriteScatter、これは、地図上の押しピンの様な空間内の点の集合体である。集合体の大きさは、ユーザーが任意の値に設定することができる。集合体内の各点は、一定の大きさを有し、随意的に画像を保持することができる。全ての点が同じ画像を有しており、このコンテキストでは、画像は「スプライト」と呼ばれる。点の位置は、ビットマップ画像から読み取ることができるので、開発者は、それらを視覚的に位置決めすることができる。
CRWVideoSpriteScatter、これは、CRWSpriteScatterと同様であるが、各点は、静止画像ではなくビデオ画像を保持することができる。
CRWStencilController。ステンシルは、オブジェクトが描かれる場所と描かれない場所を定義するのに用いられる。CRWStencilControllerは、ステンシルと、そのステンシルの対象となる様々なオブジェクトを定義するオブジェクトである。このオブジェクトは、ステンシルとして用いられるオブジェクトと、描かれるオブジェクトの2つのリストを備えている。
CRW3DObject、これは、CRWTextured2DObjectと似ているが、その頂点は三次元空間内に生じ、多くが存在し得る。オブジェクトは、ファイルから頂点リストをどの様にロードするかを知っており、三次元の照明と変換を行う。
RW3DRenderObject、これは、場面内の三次元オブジェクトの集合体が入っていて、これを管理し、その場面を二次元のテクスチャに描き、次にそれを画面上に描くことのできるオブジェクトである。
RW3DBillBoardObject、これは、二次元のオブジェクトを三次元の世界に作り、それが常に観察者に対面するように、その方位をダイナミックに更新するオブジェクトである。
CRWSoundPlayer、これは、ディスク上の音声ファイルに結び付けられたオブジェクトである。方法は、再生、一時停止、停止などを含んでいる。
CRWDataBundle、これは、データを行と列のフォーマットに保持するためのオブジェクトである。データは、ユーザーによって機能的に挿入されるか、又は正しくフォーマットされたテキストファイルからロードすることができる。データのコンテンツを、フォーマットされたテキストファイルに書き込むこともできる。CRWDataBundleは、(CRWPieChartの様な)CRWChartインターフェースの実装者による表示用の一式のデータを提供するのに用いられる。
CRWChart、これは、全てのチャートオブジェクトが、データの根拠を含め、共通して有している特性と方法を定義する抽象型クラス(又はインターフェース)である。
CRWPieChart、これは、CRWChartインターフェースを実施するパイチャートオブジェクトである。データのコンテンツは、CRWDataBundleによって定義される。
CRWLineChart、これは、CRWChartインターフェースを実施するラインチャートオブジェクトである。データのコンテンツは、CRWDataBundleによって定義される。
CRWBarChart、これは、CRWChartインターフェースを実施するバーチャートオブジェクトである。データのコンテンツは、CRWDataBundleによって定義される。
CRWScatterPlotChart、これは、CRWChartインターフェースを実施する分散プロットチャートオブジェクトである。データのコンテンツは、CRWDataBundleによって定義される。
CRWToggle、これは、タッチ画面メッセージ送信システムのコンテキストに配置されると、ボタンとして作用するオブジェクトである。このオブジェクトは、その境界線に対応する座標範囲内のタッチメッセージを聴き取り、始動されると、或る事前設定メッセージを提起し、それはサーバーに送られ、ネットワーク上の全マシンに再送信され、全員を状態変化に変更する。オブジェクトは、それ自身の状態を知っており、更に、どのくらいの頻度で始動できるかを制御する。
CRWWhiteboardObject、これは、二次元面上に配置された線又は点の集合体を保持するオブジェクトである。これらの線又は点は、ホワイトボード上の「マーク」を表す。マークは、オブジェクトのユーザーが、ホワイトボードに加え、又はホワイトボードから取り除くことができる。
CRWValueInterpolatorObject、これは、ストップウォッチの様に作用するオブジェクトである。開始時間、持続時間、開始及び停止値によって初期化される。持続時間に亘って、開始値を取り、それを停止値に変える(即ち、値を「挿入する」)。オブジェクトとコントローラーは、このオブジェクトを使用して、それらが円滑に動画化するのを支援する。
CRWBezierInterpolatorObject、これは、CRWValueInterpolatorObjectと同様であるが、挿入するのに特殊なBezier機能を使用する。
図2では、ブロック226で、ルーチンレンダ()は、全てのCRWControllersに呼び出された。この場合、制御は、図3のブロック330で、開発者のコードに進む。そこで、アプリケーションのコントローラーは、ブロック332で、フレームを正しく描くのに必要なコントローラーデータを更新し、ブロック334で、フレームをレンダするために、CRWBaseControllerオブジェクトのインスタンスを作成する。CRWBaseControllerのインスタンス化336は、コントローラー内の全オブジェクトで繰り返され、ブロック338で、各オブジェクトにRender()方法を呼び出す。これにより、全てのオブジェクトが描かれる。
図2では、ブロック224で、メッセージが、状態サーバーとコントローラーの間で送信された。このケースでは、制御は、開発者のコード340へ進む。コード340は、DistributeCommandMessage又はDistributeKeyMessageを処理する。ブロック342で、メッセージ型のCRWBaseController344が呼び出される。このオブジェクトは、コントローラー内の全てのオブジェクトを通して繰り返し、ブロック346で、各オブジェクトへのメッセージを取り扱うため、適切なオブジェクト348を呼び出す。この様に、ブロック350のオブジェクト348は、ブロック352で、対応するCRWBaseObject方法を呼び出し、ブロック354で、或る高レベルのオブジェクトに関係付けられた特殊な応答を処理する。
開発者のコード340がブロック342を処理した後に、ブロック360で、全てのメッセージは、システムの行動の詳細を作るために処理される。
以上のことから、ここに開示している実施形態は、分散型情報処理及びインタラクションのためのシステム及び方法を提供していることが分かる。或る一般的な実施形態では、アプリケーションプロセッサは、1つ又は複数のソフトウェアアプリケーションに応答し、出力を生成し、各出力は、一体となってシステム出力を形成する。アプリケーションプロセッサの状態の各変化は、状態変化メッセージで状態サーバーに報告され、状態サーバーは、そのメッセージを、システム内の他の全てのアプリケーションプロセッサに反映する。また、どの様なシステム入力でも状態サーバーに報告され、状態サーバーは、ここでも状態の変化を全てのアプリケーションプロセッサに反映する。この様にして、アプリケーションプロセッサは同期状態に維持される。或るプロセッサの、他のプロセッサの出力に反映しなければならない出力の変化は、自動的且つ切れ目無く、その様に反映される。
或る特定の実施形態では、各アプリケーションプロセッサは、タイル状配列型出力表示の1つの画像タイルを作る1つのディスプレイ装置を駆動する。各プロセッサは、表示の指定された部分だけを表示するように任されていても、状態サーバーからの状態変化メッセージを使用して、表示全体に関する状態情報を更新する。表示を割り当てられ指定された部分は、プロセッサのコンテキストである。入力装置は、ユーザーのディスプレイとのインタラクションを、マウスの動き及びマウスのクリックと同様に検出するが、或る実施形態では、ディスプレイの前の手の動きを検出する。検出されたユーザーインタラクションは、状態サーバーに報告され、ユーザーインタラクションに関する情報は、状態サーバーから、画像を作るアプリケーションプロセッサに反映される。画像は、状態サーバーからの情報に基づいて更新される。
従って、以上の詳細な説明は、説明を目的としており、本発明に限定を加えるものではなく、本発明の精神と範囲を定義すると意図されるものは、特許請求の範囲の内容、並びのその全ての等価物であるものと理解頂きたい。
分散型情報提示及びインタラクションのためのシステムのアーキテクチャを示すブロック図である。 図1のシステム内の処理の流れを示す流れ図である。 図1のシステムの或るソフトウェアの実施形態用のアーキテクチャ流れ図である。

Claims (20)

  1. 分散型情報処理及びインタラクションのためのシステムにおいて、
    システム出力のそれぞれの出力部分を作るようにされた複数の異なる出力装置であって、前記それぞれの出力部分は前記システムの当該出力装置の状態を表すコンテキスト情報によってそれぞれ定義され、出力装置と、
    1つ又は複数アプリケーションプログラムを処理するように構成された複数のアプリケーションプロセッサであって、各アプリケーションプロセッサは、前記コンテキスト情報に応答するようにされ、前記それぞれの出力部分を作る出力装置を制御するために、関連付けられた異なる前記出力装置のそれぞれに接続されており各アプリケーションプロセッサは1つ又は複数アプリケーションプログラムによってカスタマイズされた汎用のデータ処理システムである、複数のアプリケーションプロセッサと、
    前記複数のアプリケーションプロセッサとデータ通信して、前記複数のアプリケーションプロセッサに前記コンテキスト情報を提供する状態サーバーを備えており、
    前記コンテキスト情報には前記複数のアプリケーションプロセッサにおいて自動的に生成される状態変化メッセージとして、前記状態サーバーが前記複数のアプリケーションプロセッサの1つから受信し、且つ前記状態サーバーによって前記アプリケーションプロセッサに提供される最新状態情報が含まれる、システム。
  2. 前記複数の出力装置は、前記システムの出力表示のそれぞれの表示部分を表示するようにされた1つ又は複数のディスプレイ装置を備えている、請求項1に記載のシステム。
  3. 前記複数のアプリケーションプロセッサは、それぞれ、前記1つ又は複数のディスプレイ装置の内の1つと関係付けられており、前記システムのそれぞれの表示部分の画像を形成する際に、前記関係付けられているディスプレイ装置を制御する、請求項2に記載のシステム。
  4. 1つ又は複数のユーザー活動を検出し、それに応えてユーザー活動信号を作る入力検出器と、
    前記入力検出器及び前記状態サーバーとデータ通信して、前記状態サーバーによって処理するため、前記ユーザー活動信号に関する情報を伝える入力プロセッサと、を更に備えている、請求項1に記載のシステム。
  5. 各アプリケーションプロセッサは、関係付けられている前記それぞれの出力装置に変化を作り出す前記それぞれのアプリケーションプログラムの処理に応じて前記状態サーバーへ更新メッセージを送信するように構成されており、前記状態サーバーは、前記更新メッセージを他のアプリケーションプロセッサに反映する、請求項1に記載のシステム。
  6. 前記状態サーバーは、システム情報を、前記複数のアプリケーションプロセッサのそれぞれで同期し、同じアプリケーションプログラムを処理するアプリケーションプロセッサが、実質的に同じプログラム状態を有するように構成されている、請求項1に記載のシステム。
  7. 前記状態サーバーは、同期メッセージを前記複数のアプリケーションプロセッサに送って、前記複数のアプリケーションプロセッサのそれぞれで前記システム情報を更新する、請求項6に記載のシステム。
  8. 前記状態サーバーは、前記システム情報の時刻同期を維持する、請求項6に記載のシステム。
  9. データ処理方法において、
    個別のアプリケーションプロセッサで実質的に同じアプリケーションプログラムを処理する段階と、
    前記アプリケーションプログラムの前記処理を同期装置で同期する段階であって、前記同期装置はアプリケーションプロセッサの共通状態を維持すると共に、前記個別のアプリケーションプロセッサでの前記アプリケーションプログラムの処理によって生じる前記共通状態の変化に応じて、前記アプリケーションプロセッサに更新メッセージを提供するようになされている、同期する段階と、
    前記アプリケーションプログラムのそれぞれの出力部分を形成する段階であって、それぞれのアプリケーションプロセッサは、実質的に同一のアプリケーションプログラムを含む1つ又は複数のそれぞれのアプリケーションプログラムによってカスタマイズされた汎用のデータ処理システムであり、前記それぞれの出力部分は全体としてシステム出力を形成し、それぞれの出力部分は前記アプリケーションプログラムの異なる出力部分から成っている、段階と;
    前記アプリケーションプロセッサは、前記同期装置から受信した更新メッセージに応じてローカル状態を更新し、当該アプリケーションプロセッサのあらゆるローカル状態の変化に基づいて前記同期装置に状態変化メッセージを自動的に提供し前記状態変化メッセージに基づいて前記同期装置での前記共通状態変更する、段階と、
    から成るデータ処理方法。
  10. 前記同期する段階は、全てのアプリケーションプロセッサが前記共通状態を有するように、前記同期装置で受信した前記状態変化メッセージに入っている情報を、前記アプリケーションプロセッサに反映させる段階を含んでいる、請求項9に記載のデータ処理方法。
  11. 前記同期する段階は、前記同期装置と前記アプリケーションプロセッサの間で、共通の時刻状態を維持する段階を含んでいる、請求項10に記載のデータ処理方法。
  12. 前記同期する段階は、前記同期装置と前記アプリケーションプロセッサの間で、入力データ及びアプリケーション出力データの共通のデータ状態を維持する段階を含んでいる、請求項10に記載のデータ処理方法。
  13. 前記それぞれの出力を作る段階は、それぞれのアプリケーションプロセッサごとに、それぞれのディスプレイ装置を制御して、それぞれのディスプレイ装置上に出力表示のそれぞれの表示部分を表示する段階を含んでいる、請求項9に記載のデータ処理方法。
  14. 前記それぞれのアプリケーションプロセッサごとに、
    前記それぞれのアプリケーションプロセッサごとのアプリケーションプログラムとのユーザーインタラクションを検出する段階と、
    前記ユーザーインタラクションに応じて、前記アプリケーションプログラムの前記それぞれの出力を更新する段階と、
    前記ユーザーインタラクションに関する情報を前記同期装置に伝える段階と、
    前記ユーザーインタラクションに関する前記同期情報を、前記同期装置から、他のそれぞれの表示部分と関係付けられている他のそれぞれのアプリケーションプロセッサへ伝える段階と、を更に含んでいる、請求項9に記載のデータ処理方法。
  15. それぞれのアプリケーションプロセッサで、関係付けられているそれぞれのディスプレイ装置を制御して、出力表示のそれぞれの表示部分を前記アプリケーションプロセッサの前記それぞれのディスプレイ装置上に、前記ユーザーインタラクションに応じて、表示する段階と、
    前記ユーザーインタラクションが、前記関係付けられているそれぞれの表示部分の前記それぞれの表示を変化させるべきか否かを判定し、変化させる場合は、前記それぞれの表示部分の前記表示を更新する段階と、を更に含んでいる、請求項14に記載のデータ処理方法。
  16. 前記ユーザーインタラクションを検出する段階は、複数の実質的に同時になされた、前記それぞれの表示部分とのユーザーインタラクションを検出する段階を含んでいる、請求項15に記載のデータ処理方法。
  17. 前記ユーザーインタラクションを検出する段階は、前記それぞれの表示部分のディスプレイ画面の前の手の動きを検出するか、前記それぞれの表示部分の前記ディスプレイ画面のタッチ画面のユーザータッチを検出するか、又は、今までユーザータッチがあったタッチ画面にユーザータッチが無いことを検出するか、の内の少なくとも1つを含んでいる、請求項15に記載のデータ処理方法。
  18. 必要であれば、前記同期情報に基づいて、前記ユーザーインタラクションに応えて、前記他のそれぞれの表示部分の内の1つ又は複数の表示を更新する段階を更に含んでいる、請求項15に記載のデータ処理方法。
  19. 前記同期情報を、別のそれぞれのアプリケーションプロセッサで受信する段階と、
    前記ユーザーインタラクションが、前記他のそれぞれのアプリケーションプロセッサと関係付けられている前記表示部分を変化させるべき場合は、前記表示部分を更新する段階と、を更に含んでいる、請求項15に記載のデータ処理方法。
  20. 分散型情報処理及びインタラクションのためのシステムにおいて、
    複数の異なる出力装置及びアプリケーションプロセッサであって、
    前記複数の出力装置は、一体となってシステム出力を作るようにされており、
    前記アプリケーションプロセッサは、1つ又は複数のそれぞれのアプリケーションプログラムによってカスタマイズされた汎用のデータ処理システムであり、各アプリケーションプロセッサはそれぞれ、1つ又は複数のそれぞれのローカルアプリケーションプログラムを処理し、それに応じて状態変化を作り出し、
    対応するアプリケーションプロセッサと出力装置がそれぞれ組み合わされて、前記システム出力の指定された部分だけを作り出すようにされており指定された部分は、前記アプリケーションプロセッサに知らされているコンテキスト情報によって定義されている、複数の異なる出力装置及びアプリケーションプロセッサと、
    前記アプリケーションプロセッサとデータ通信している同期サーバーを備えおり、
    前記それぞれのアプリケーションプロセッサは、前記状態変化に関する情報を含む状態変化メッセージを前記状態変化に基づいて前記同期サーバーに自動的に送り、前記同期サーバーは、前記状態変化メッセージを受信して、前記受信した状態変化メッセージアプリケーションプロセッサに送信するようにされており、
    前記それぞれのローカルアプリケーションプログラムが前記状態変化を反映させるために更新され、必要であれば、前記システム出力の前記それぞれの指定された部分が更新されるようになされている、システム。
JP2007539514A 2004-11-05 2005-10-24 分散型情報提示及びインタラクションのためのシステム Active JP4933438B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/981,994 2004-11-05
US10/981,994 US7711681B2 (en) 2004-11-05 2004-11-05 System for distributed information presentation and interaction
PCT/EP2005/011556 WO2006048189A1 (en) 2004-11-05 2005-10-24 A system for distributed information presentation and interaction

Publications (3)

Publication Number Publication Date
JP2008519340A JP2008519340A (ja) 2008-06-05
JP2008519340A5 JP2008519340A5 (ja) 2008-12-18
JP4933438B2 true JP4933438B2 (ja) 2012-05-16

Family

ID=35734040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007539514A Active JP4933438B2 (ja) 2004-11-05 2005-10-24 分散型情報提示及びインタラクションのためのシステム

Country Status (6)

Country Link
US (3) US7711681B2 (ja)
EP (1) EP1812851A1 (ja)
JP (1) JP4933438B2 (ja)
CN (1) CN101095110B (ja)
CA (1) CA2585277C (ja)
WO (1) WO2006048189A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711681B2 (en) 2004-11-05 2010-05-04 Accenture Global Services Gmbh System for distributed information presentation and interaction
US7876866B1 (en) * 2005-01-27 2011-01-25 Pmc-Sierra Us, Inc. Data subset selection algorithm for reducing data-pattern autocorrelations
US8209620B2 (en) 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions
US20070124370A1 (en) * 2005-11-29 2007-05-31 Microsoft Corporation Interactive table based platform to facilitate collaborative activities
JP5186792B2 (ja) * 2006-05-17 2013-04-24 コニカミノルタビジネステクノロジーズ株式会社 表示システム
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US7769806B2 (en) 2007-10-24 2010-08-03 Social Communications Company Automated real-time data stream switching in a shared virtual area communication environment
US8296728B1 (en) * 2008-08-26 2012-10-23 Adobe Systems Incorporated Mobile device interaction using a shared user interface
US8832681B1 (en) 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
US8466879B2 (en) 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
CN101808126B (zh) * 2010-03-12 2012-11-14 清华大学 一种用于实时视频处理的分布式计算系统和方法
CN102722106A (zh) * 2011-03-29 2012-10-10 上海晟昊信息科技有限公司 一种沉浸式虚拟现实仿真交互展示方法及其展示系统
CN103503466A (zh) * 2011-04-12 2014-01-08 杰显通计算机系统 用于在数字像素线缆上进行快速数据递送的方法和装置
US9560314B2 (en) * 2011-06-14 2017-01-31 Microsoft Technology Licensing, Llc Interactive and shared surfaces
US8971572B1 (en) 2011-08-12 2015-03-03 The Research Foundation For The State University Of New York Hand pointing estimation for human computer interaction
CN104137064B (zh) 2011-12-28 2018-04-20 诺基亚技术有限公司 应用切换器
KR101922283B1 (ko) * 2011-12-28 2019-02-13 노키아 테크놀로지스 오와이 애플리케이션의 오픈 인스턴스의 제공
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
KR102011360B1 (ko) * 2012-09-10 2019-10-21 삼성전자주식회사 디바이스에서 어플리케이션을 실행하는 방법 및 그 장치
US9639318B2 (en) * 2012-09-26 2017-05-02 Tencent Technology (Shenzhen) Company Limited Systems and methods for sharing image data
US9261262B1 (en) 2013-01-25 2016-02-16 Steelcase Inc. Emissive shapes and control systems
US9759420B1 (en) 2013-01-25 2017-09-12 Steelcase Inc. Curved display and curved display support
US11327626B1 (en) 2013-01-25 2022-05-10 Steelcase Inc. Emissive surfaces and workspaces method and apparatus
US9141682B1 (en) 2013-03-25 2015-09-22 Amazon Technologies, Inc. Resolving conflicts within saved state data
US9244994B1 (en) 2013-06-19 2016-01-26 Amazon Technologies, Inc. Idempotency of application state data
US9244993B1 (en) 2013-06-19 2016-01-26 Amazon Technologies, Inc. Management of application state data
US9424239B2 (en) * 2013-09-06 2016-08-23 Microsoft Technology Licensing, Llc Managing shared state information produced by applications
US10356364B2 (en) 2013-09-10 2019-07-16 Minerva Project, Inc. Registering and displaying visual attention metadata in a web video conferencing and seminar system
US9961119B2 (en) 2014-04-22 2018-05-01 Minerva Project, Inc. System and method for managing virtual conferencing breakout groups
TWI536363B (zh) * 2015-03-31 2016-06-01 建碁股份有限公司 拼接式顯示系統及其方法
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
US10631424B2 (en) 2017-06-30 2020-04-21 Cisco Technology, Inc. Method and apparatus for maintaining cooling of modular electronic system during module removal
JP7102740B2 (ja) * 2018-01-12 2022-07-20 コニカミノルタ株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
CN111309657B (zh) * 2019-10-10 2021-07-30 深圳市鸿合创新信息技术有限责任公司 电子设备及其控制方法、智能教室系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181815A (ja) * 1991-12-26 1993-07-23 Sony Corp 制御システム
JPH07104730A (ja) * 1993-10-06 1995-04-21 Canon Inc 動画表示方法並びに装置
JPH07199881A (ja) * 1993-12-28 1995-08-04 Hitachi Ltd ディスプレイ制御システム
JPH1040065A (ja) * 1996-07-24 1998-02-13 Mitsubishi Electric Corp 大画面表示装置
JP2002055808A (ja) * 2000-08-11 2002-02-20 Ricoh Co Ltd マルチディスプレイシステム
JP2004118849A (ja) * 2003-09-25 2004-04-15 Digital Passage:Kk 通信回線を用いた双方向コミュニケーション方法、双方向コミュニケーションシステム及び記録媒体
JP2005181637A (ja) * 2003-12-18 2005-07-07 Toyota Motor Corp 同期表示システム、クライアント、サーバ、プログラム及び同期表示方法

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS613106Y2 (ja) * 1980-04-10 1986-01-31
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5454075A (en) * 1992-09-01 1995-09-26 Kabushiki Kaisha Toshiba Device and method for multiple display system having storage means for enlarged images
US6594688B2 (en) 1993-10-01 2003-07-15 Collaboration Properties, Inc. Dedicated echo canceler for a workstation
US5408470A (en) * 1993-10-14 1995-04-18 Intel Corporation Deferred synchronization of distributed objects
US5491743A (en) 1994-05-24 1996-02-13 International Business Machines Corporation Virtual conference system and terminal apparatus therefor
US6983227B1 (en) 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US5712995A (en) * 1995-09-20 1998-01-27 Galileo Frames, Inc. Non-overlapping tiling apparatus and method for multiple window displays
US7082398B1 (en) * 1996-01-16 2006-07-25 The Nasdaq Stock Market, Inc. Media wall for displaying financial information
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6199116B1 (en) * 1996-05-24 2001-03-06 Microsoft Corporation Method and system for managing data while sharing application programs
US6680714B2 (en) * 1996-06-14 2004-01-20 Charles E. Wilmore Interactive multi-user display arrangement for displaying goods and services
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US5956046A (en) * 1997-12-17 1999-09-21 Sun Microsystems, Inc. Scene synchronization of multiple computer displays
EP2256605B1 (en) 1998-01-26 2017-12-06 Apple Inc. Method and apparatus for integrating manual input
DE19983292T1 (de) * 1998-06-18 2003-04-03 Sony Electronics Inc Verfahren und ein Gerät zum Aufteilen, zum maßstabsgetreuen Ändern und zum Anzeigen von Video- und/oder Graphik über mehrere Anzeigeeinrichtungen
US6388680B1 (en) 1998-06-29 2002-05-14 Sony Corporation Multi-user extension mechanisms for client-server system
US6215498B1 (en) 1998-09-10 2001-04-10 Lionhearth Technologies, Inc. Virtual command post
IL135156A0 (en) 1999-03-19 2001-05-20 Ibm Message broker providing a publish/subscribe service and method of processing messages in a publish/subscribe environment
GB2348025A (en) * 1999-03-19 2000-09-20 Ibm Message broker providing a publish/subscribe service and method of processing messages in a publish/subscribe environment
US7542068B2 (en) * 2000-01-13 2009-06-02 Polycom, Inc. Method and system for controlling multimedia video communication
JP2001273435A (ja) * 2000-03-24 2001-10-05 Minolta Co Ltd コンテンツ配信システム
US6760749B1 (en) * 2000-05-10 2004-07-06 Polycom, Inc. Interactive conference content distribution device and methods of use thereof
ATE453147T1 (de) 2000-07-05 2010-01-15 Smart Technologies Ulc Verfahren für ein kamerabasiertes berührungssystem
US6803906B1 (en) 2000-07-05 2004-10-12 Smart Technologies, Inc. Passive touch system and method of detecting user input
AU2001296866A1 (en) * 2000-09-05 2002-03-22 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
US6978281B1 (en) 2000-11-21 2005-12-20 Microsoft Corporation Versioned project data
US7003726B2 (en) * 2001-02-21 2006-02-21 Nanonation Incorporated Computer network having context sensitive and interactive multimedia applications and controls, forming dynamic user interfaces on local computer terminals
US20030078960A1 (en) * 2001-04-30 2003-04-24 Murren Brian T. Architecture and process for creating software applications for multiple domains
TW578043B (en) * 2001-06-18 2004-03-01 Oqo Inc Modular computing system
US20030015632A1 (en) * 2001-07-18 2003-01-23 Daniel Dunn Multiple flat panel display system
US6803912B1 (en) * 2001-08-02 2004-10-12 Mark Resources, Llc Real time three-dimensional multiple display imaging system
US7254775B2 (en) 2001-10-03 2007-08-07 3M Innovative Properties Company Touch panel system and method for distinguishing multiple touch inputs
US7006055B2 (en) * 2001-11-29 2006-02-28 Hewlett-Packard Development Company, L.P. Wireless multi-user multi-projector presentation system
US7103844B2 (en) * 2002-06-26 2006-09-05 International Business Machines Corporation Portal/portlet application data synchronization
US7023427B2 (en) 2002-06-28 2006-04-04 Microsoft Corporation Method and system for detecting multiple touches on a touch-sensitive screen
EP1529258A2 (en) * 2002-08-07 2005-05-11 Koninklijke Philips Electronics N.V. Responsive input units
SE0202565D0 (sv) * 2002-08-28 2002-08-28 Pricer Ab Electronic pricing system, device and method
US8458028B2 (en) * 2002-10-16 2013-06-04 Barbaro Technologies System and method for integrating business-related content into an electronic game
US7050078B2 (en) 2002-12-19 2006-05-23 Accenture Global Services Gmbh Arbitrary object tracking augmented reality applications
US6947032B2 (en) 2003-03-11 2005-09-20 Smart Technologies Inc. Touch system and method for determining pointer contacts on a touch surface
US7430721B2 (en) * 2003-04-08 2008-09-30 Tidebreak, Inc. Pointright: a system to redirect mouse and keyboard control among multiple machines
US7176848B1 (en) * 2003-04-14 2007-02-13 Ati Technologies, Inc. Method of synchronizing images on multiple display devices with different refresh rates
US20040216163A1 (en) * 2003-04-25 2004-10-28 Shawn Whitcomb System and method for digital content management and distribution of content streams within a theatre environment
US7627334B2 (en) * 2003-07-21 2009-12-01 Contextual Information, Inc. Systems and methods for context relevant information management and display
US8046701B2 (en) * 2003-08-07 2011-10-25 Fuji Xerox Co., Ltd. Peer to peer gesture based modular presentation system
US7286120B2 (en) * 2003-11-12 2007-10-23 Hewlett-Packard Development Company, L.P. Large area display and method of manufacturing same
EP1548573A1 (en) * 2003-12-23 2005-06-29 Barco N.V. Hierarchical control system for a tiled large-screen emissive display
US7711681B2 (en) * 2004-11-05 2010-05-04 Accenture Global Services Gmbh System for distributed information presentation and interaction
US8209620B2 (en) * 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181815A (ja) * 1991-12-26 1993-07-23 Sony Corp 制御システム
JPH07104730A (ja) * 1993-10-06 1995-04-21 Canon Inc 動画表示方法並びに装置
JPH07199881A (ja) * 1993-12-28 1995-08-04 Hitachi Ltd ディスプレイ制御システム
JPH1040065A (ja) * 1996-07-24 1998-02-13 Mitsubishi Electric Corp 大画面表示装置
JP2002055808A (ja) * 2000-08-11 2002-02-20 Ricoh Co Ltd マルチディスプレイシステム
JP2004118849A (ja) * 2003-09-25 2004-04-15 Digital Passage:Kk 通信回線を用いた双方向コミュニケーション方法、双方向コミュニケーションシステム及び記録媒体
JP2005181637A (ja) * 2003-12-18 2005-07-07 Toyota Motor Corp 同期表示システム、クライアント、サーバ、プログラム及び同期表示方法

Also Published As

Publication number Publication date
CN101095110A (zh) 2007-12-26
US7711681B2 (en) 2010-05-04
CA2585277A1 (en) 2006-05-11
CN101095110B (zh) 2010-10-13
JP2008519340A (ja) 2008-06-05
US9424106B2 (en) 2016-08-23
US8392459B2 (en) 2013-03-05
WO2006048189A1 (en) 2006-05-11
US20060101054A1 (en) 2006-05-11
US20100185947A1 (en) 2010-07-22
US20120066697A1 (en) 2012-03-15
CA2585277C (en) 2016-02-09
EP1812851A1 (en) 2007-08-01

Similar Documents

Publication Publication Date Title
JP4933438B2 (ja) 分散型情報提示及びインタラクションのためのシステム
JP2008519340A5 (ja)
US9575640B2 (en) System for storage and navigation of application states and interactions
JP7476292B2 (ja) 複合現実システムにおいて仮想コンテンツを管理および表示する方法およびシステム
US10235412B2 (en) Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes
US20190286243A1 (en) Operating environment with gestural control and multiple client devices, displays, and users
RU2391709C2 (ru) Координация анимаций и мультимедиа при выводе на компьютерный дисплей
JP5698733B2 (ja) 三空間入力の検出、表現、および解釈:自由空間、近接、および表面接触モードを組み込むジェスチャ連続体
EP0636971B1 (en) Method and apparatus for producing a composite second image in the spatial context of a first image
US20140298269A1 (en) Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes
US20100281440A1 (en) Detecting, Representing, and Interpreting Three-Space Input: Gestural Continuum Subsuming Freespace, Proximal, and Surface-Contact Modes
EP2941739A2 (en) Operating environment with gestural control and multiple client devices, displays, and users
KR20110134940A (ko) 애플리케이션 공유
EP1955132B1 (en) Multiple target detection and application state navigation system
Thelen Advanced Visualization and Interaction Techniques for Large High-Resolution Displays
JP3640982B2 (ja) 機械操作方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081024

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110223

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110302

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110422

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120216

R150 Certificate of patent or registration of utility model

Ref document number: 4933438

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250