JP5060018B2 - 一対多のデータ投影のシステムおよび方法 - Google Patents

一対多のデータ投影のシステムおよび方法 Download PDF

Info

Publication number
JP5060018B2
JP5060018B2 JP2004275873A JP2004275873A JP5060018B2 JP 5060018 B2 JP5060018 B2 JP 5060018B2 JP 2004275873 A JP2004275873 A JP 2004275873A JP 2004275873 A JP2004275873 A JP 2004275873A JP 5060018 B2 JP5060018 B2 JP 5060018B2
Authority
JP
Japan
Prior art keywords
presentation
projector
invitation
projection
session
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.)
Expired - Fee Related
Application number
JP2004275873A
Other languages
English (en)
Other versions
JP2005129029A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005129029A publication Critical patent/JP2005129029A/ja
Application granted granted Critical
Publication of JP5060018B2 publication Critical patent/JP5060018B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Description

本発明は、一般に情報プレゼンテーションに関し、より詳細には1人のプレゼンタから多数の参加者への情報投影のためのシステムおよび方法、ならびに投影デバイスに関する。
近年実現された技術的進歩にもかかわらず、今日の職場においては、従来の多数のビジネス活動が依然として顕著な位置を占めている。かかる1つの活動が、ミーティングまたは会議である。しばしば、かかる共同活動には、1人の参加者による他の幾人かの参加者への資料のプレゼンテーションが必要とされることになる。情報を提示する従来の手段には、スクリーン上への投影、モニタまたは他の光能動デバイス上のディスプレイ、あるいは白板、黒板またはイーゼル上などハードコピー形式のプレゼンテーションが含まれる。これらの各方法には、コスト、複雑さ、効果の観点から利点と、欠点があるが、投影およびディスプレイは一般に、スライドまたはビデオを介して提示できるような高速に変化するデータにとって最も適している。さらに、投影およびディスプレイはまた、マイクロソフト(登録商標)ブランドのPowerPointスライドプレゼンテーション中などコンピュータまたは他のコンピューティングデバイスの画面からの情報を共有するためにも理想的である。
投影技術のユーザおよび参加者にとっては残念なことに、コンピューティングデバイスからの情報の投影およびディスプレイについての従来の機構は、開始された後には非常に効果的であるが、VGAケーブルなどのコードの接続、および様々なパラメータの設定を要し、しばしば設定することが複雑であった。この複雑さは、プレゼンテーション前およびプレゼンテーション中に面倒な問題をもたらし、しばしばプレゼンテーションを開始する際に遅延をもたらす可能性がある。さらに、かかる機構によって、1人の話者から、別の話者へのプレゼンテーションの簡単で迅速な制御移転が可能ではなくなっている。したがって、例えば、第1の話者が、PCを使用してPOWER POINTのスライドショウを提示しており、第2の話者にその場を譲ろうと思う場合には、第2の話者は、一般に自分の椅子を離れて第1の話者のPCの隣の場所へと歩いていく必要があり、その時間の間、他の参加者にとっては、時間が途切れてしまい、遅延が生じ、また気が散ることになる。
別の問題は、かかるミーティングの間に提示される情報のセキュリティに関係している。特に、ある出席者が物理的に部屋に存在し、またはプレゼンテーションが催される部屋の中を見ることができるとすれば、提示された情報を閲覧するその人の能力を制限しようがない。物理的な方法を使用してプレゼンテーションの物理的な場所への初期のアクセスを防止することができるが、かかる方法は、前述のように複数のプレゼンテーションが同じ場所で催されるときにはセキュリティを補償しない。すなわち、ある人がプレゼンテーションの場所にいるとすれば、その場所で催されるすべてのプレゼンテーションを目にすることができるのである。
この問題に対処するために、多数のセミナーの場所では、いくつかの異なるより小さなプレゼンテーションの場所または部屋を利用している。このようにして、各プレゼンテーションに対して許可された個人を、より注意深く選別することができる。しかし、これによってプレゼンタのセキュリティ問題には対処できるが、これによってしばしば参加者がこのプレゼンテーションに出席することが困難になってしまう。これらの参加者には、今や所望のプレゼンテーションを閲覧するために場所から場所へと物理的に移動し、各現場で彼らの資料を包みに入れ、包みから出す必要がある。さらに、身体障害をもつ参加者は、プレゼンテーションの開始に間に合わない可能性があり、またはあるプレゼンテーションを早めに離れて物理的な場所の移動をしなければならないこともある。参加者が、間違った部屋に入り、特定のプレゼンテーションの場所を見つけることができないこともあるので追加の資料が入手できなくなってしまうこともある。
したがって、当技術分野においては、プレゼンタと参加者の両者の要件および要望に対処し、プレゼンテーションについてのセキュリティを提供し、プレゼンテーション中に共有される情報の制御を可能にする一対多(1:M)の情報投影のシステムおよび方法の必要性が存在する。
本発明は、多数の参加者への情報のディスプレイのための新しい改善されたシステムおよび方法を提供するものである。より詳細には、本発明は、多数の参加者へのプレゼンテーションの送達のための新しい改善されたシステムおよび方法を提供する。このプレゼンテーションは、プロジェクタおよび/または多数の参加者のディスプレイデバイス上に表示できることが好ましい。このプレゼンテーションは、公開されたものでもよく、またある参加者がこのプレゼンテーションを閲覧することを「許可する」のに先立って実施すべきセキュリティ認証を必要とするものでもよい。
本発明の好ましい一実施形態では、プレゼンテーションも参加者も、ユニバーサルプラグアンドプレイ規格(Universal Plug and Play standard)に準拠しており、その結果、ネットワーク上でこれらを見出すことができる。端末サービスセッションを介して接続が行われる。プレゼンタの観点からは、プロジェクタおよび参加者を見出すことにより、誰に対して、また何がこのプレゼンテーションに対して許されるかについての制御が可能になる。これは、このプレゼンテーションへの許可を得るために使用される、プレゼンタが生成する招待状を要求することによって実現することができる。セキュリティも、同様にパスワードを要求することによって追加することができる。このプレゼンタはまた、あるプレゼンテーションを公開されたものとして指定することもでき、このプレゼンテーションに対する許可を要求するどの参加者に対しても招待状を自動的に生成することもできる。参加者の観点からは、ネットワーク上のプレゼンテーションデバイスを求めて探索を実施することによって入手可能なプレゼンテーションを見出すことができる。次いで、自分が閲覧したいと思うプレゼンテーションを選択し、それに対する許可を要求することができる。プレゼンタが、そのプレゼンテーションを停止したいと思うときには、プレゼンタは、そのプレゼンテーションを停止するようにプレゼンテーションマネージャにただ通知することになる。次いで、このプレゼンテーションマネージャは、すべての接続を切り離してどの状態もクリーンアップすることになる。
本発明の一実施形態では、API(アプリケーションプログラミングインターフェース)が提供される。これらのAPIは、プレゼンテーションを閲覧するメソッド、およびプレゼンテーションを提供するメソッドを含んでいる。この閲覧APIは、ディスプレイデバイスを登録し登録抹消するメソッド、およびあるプレゼンテーションに参加するメソッドを含んでいる。プレゼンテーション提供APIは、プレゼンテーションを開始し停止するメソッド、参加者を招待し切り離すメソッド、プレゼンタの画面にフィルタをかけるメソッド、ユーザおよびプロジェクタのリストまたは個々のユーザおよびプロジェクタを検索するメソッド、プロジェクタの機能、状態、および接続リストを検索するメソッド、ならびにプロジェクタディスプレイの設定およびモードを検索し設定するメソッドを含んでいる。
本明細書中に組み込まれ、本明細書の一部を形成する添付図面は、本発明のいくつかの態様を示し、この説明と一緒に本発明の原理を説明する役割を果たしている。
本発明をある種の好ましい実施形態に関連して説明するが、これらの実施形態に限定する意図はない。これとは逆に、添付の特許請求の範囲によって定義される本発明の趣旨と範囲に含まれるすべての代替形態、変更形態、および均等物が包含されるものとする。
図面を参照すると、本発明は、適切なコンピューティング環境中に実装されるものとして示されている。図面中、同様な参照番号は、同様な要素について言及している。必ずしも必要ではないが、本発明は、パーソナルコンピュータが実行する、プログラムモジュールなどコンピュータ実行可能な命令の一般的な状況で説明されることになる。一般に、プログラムモジュールには、特定のタスクを実施し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成を用いて実施することができることが、当業者には理解されよう。本発明は、分散コンピューティング環境においても実施することができ、そこでは、タスクは、通信ネットワークを介してリンクされるリモート処理デバイスによって実施される。分散コンピューティング環境においては、プログラムモジュールをローカルメモリ記憶デバイスにもリモートメモリ記憶デバイスにも配置することができる。
図1は、本発明を実装することができる適切なコンピューティングシステム環境100の一例を示すものである。このコンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲について何らかの限定を示唆することを意図したものではない。また、このコンピューティング環境100は、例示の動作環境100に示されるコンポーネントの任意の1つまたは組合せに関連して何らかの依存性または必要性を有するものと解釈すべきではない。
本発明は、他の多数の汎用または専用のコンピューティングシステム環境またはコンピューティングシステム構成を用いて動作可能である。本発明とともに使用するのに適する可能性があるよく知られているコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、前述のシステムまたはデバイスなどのうちのどれかを含む分散コンピューティング環境などが含まれる。
本発明は、コンピュータが実行する、プログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施し特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいる。本発明はまた、分散コンピューティング環境において実施することもでき、その場合、タスクは、通信ネットワークを介してリンクされるリモート処理デバイスによって実施される。分散コンピューティング環境においては、プログラムモジュールは、メモリ記憶デバイスを含めてローカルコンピュータ記憶媒体にもリモートコンピュータ記憶媒体にも配置することができる。
図1を参照すると、本発明を実装するための例示のシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含んでいる。コンピュータ110のコンポーネントには、それだけには限定されないが、処理装置120、システムメモリ130、およびシステムメモリを含めて様々なシステムコンポーネントを処理装置120に結合するシステムバス121が含まれ得る。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのうちのどれかを使用したローカルバスを含めていくつかのタイプのバス構造のうちのどれであってもよい。一例として、限定するものではないが、かかるアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standard Associate)ローカルバス、およびメザニン(Mezzanine)バスとしても知られているPCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ110は、一般に様々なコンピュータ可読媒体を含んでいる。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の使用可能な媒体とすることができ、揮発性媒体も不揮発性媒体も着脱可能媒体も着脱不能媒体も含んでいる。一例として、限定するものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性媒体も不揮発性媒体も着脱可能媒体も着脱不能媒体も含んでいる。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、コンピュータ110がアクセスすることができる他の任意の媒体が含まれる。通信媒体は一般に、搬送波や他の搬送機構など変調されたデータ信号の形で、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを具現化する、任意の情報配信媒体を含んでいる。用語「変調されたデータ信号」は、信号に情報を符号化するようにその特性のうちの1つまたは複数の特性が設定または変更された信号を意味する。一例として、限定するものではないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、他の無線媒体などの無線媒体が含まれる。前述のどの組合せもまた、コンピュータ可読媒体の範囲内に含まれる。
システムメモリ130は、ROM(読取り専用メモリ)131やRAM(ランダムアクセスメモリ)132など揮発性メモリおよび/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間の情報を転送するのを助ける基本ルーチンを含めてBIOS(基本入出力システム)133は、一般にROM131に記憶される。RAM132は一般に、処理装置120が直接アクセス可能な、または現在処理装置120によって動作中の、あるいはその両方のデータおよび/またはプログラムモジュールを含んでいる。一例として、限定するものではないが、図1にオペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110はまた、他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。一例として、図1は、着脱不能な不揮発性磁気媒体から情報を読み取りまたはそれに情報を書き込むハードディスクドライブ141、着脱可能な不揮発性磁気ディスク152から情報を読み取りまたはそれに情報を書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体など着脱可能な不揮発性の光ディスク156から情報を読み取りまたはそれに情報を書き込む光ディスクドライブ155を示している。例示の動作環境中で使用することができる他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。このハードディスクドライブ141は、一般にインターフェース140などの着脱不能なメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、一般にインターフェース150などの着脱可能なメモリインターフェースによってシステムバス121に接続される。
以上で論じ、図1に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ110用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶領域を提供する。図1において、例えばハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じ、または異なるものとすることができることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、この文書では異なる番号が付与され、少なくともこれらが異なる複製であることを示している。ユーザは、キーボード162や、マウス、トラックボールまたはタッチパッドとも一般に呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。これらおよび他の入力デバイスは、しばしばシステムバスに結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、USB(ユニバーサルシリアルバス)など他のインターフェースおよびバス構造によって接続することもできる。モニタ191または他のタイプのディスプレイデバイスもまた、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータはまた、スピーカ197やプリンタ196などの他の周辺出力デバイスを含むこともでき、出力周辺インターフェース195を介してこれらを接続することができる。
コンピュータ110は、リモートコンピュータ180など1つ以上のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、一般にパーソナルコンピュータ110に関連して先に説明した要素のうちの多くまたはすべてを含んでいるが、図1には、メモリ記憶デバイス181だけしか示していない。図1に示す論理接続は、LAN(ローカルエリアネットワーク)171およびWAN(ワイドエリアネットワーク)173を含んでいるが、他のネットワークを含むこともできる。かかるネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的なものになっている。
LANネットワーク環境で使用するとき、パーソナルコンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用するとき、コンピュータ110は、一般にインターネットなどWAN173上の通信を確立するためのモデム172または他の手段を含んでいる。モデム172は、内蔵または外付けでもよいが、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、パーソナルコンピュータ110に関連して示されるプログラムモジュール、またはその一部分をリモートメモリ記憶デバイスに記憶することができる。一例として、限定するものではないが、図1は、リモートアプリケーションプログラム185がメモリデバイス181上に存在するものとして示している。ここに示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
以下の説明では、他に指定がない限り、本発明は、1台以上のコンピュータによって実施される動作およびオペレーションの記号表現に関して説明することにする。したがって、かかる動作およびオペレーションは、時にコンピュータ実行されるものとも呼ばれるが、構造化形式でデータを表現する電気信号によるコンピュータの処理装置による操作を含んでいることが理解されよう。この操作は、データを変換し、またはコンピュータのメモリシステム中のロケーションにデータを保持し、当業者にはよく理解されるような方法でコンピュータのオペレーションを再構成し、または変更する。データが保持されるデータ構造は、特定のプロパティがデータのフォーマットによって定義される、メモリの物理ロケーションである。しかし、本発明は前述の状況で説明されているが、以下で説明される様々な動作およびオペレーションがハードウェアでも実装できることが当業者には理解されるように、これは限定を意味するものではない。
実際に、プログラミングインターフェース(またはさらに簡単には、インターフェース)は、コードの1つ以上のセグメントが、コードの他の1つ以上のセグメントによって提供される機能と通信し、または機能にアクセスすることができるようにするための任意の機構、プロセス、プロトコルと見なすことができる。あるいは、プログラミングインターフェースは、他のコンポーネントの1つ以上の機構、メソッド、ファンクションコール、モジュールなどと通信して結合することができる、システムのコンポーネントの1つ以上の機構、メソッド、ファンクションコール、モジュール、オブジェクトなどと見なすこともできる。前述の文章中の用語「コードのセグメント」には、適用される専門用語にかかわらず、コードセグメントが別々にコンパイルされるかどうか、コードセグメントがソースコード、中間コードまたはオブジェクトコードのいずれとして提供されるか、コードセグメントが実行時のシステムまたはプロセスで利用されるかどうか、コードセグメントが同じマシン上もしくは異なるマシン上に配置されまたは複数のマシン上に分散されているかどうか、あるいはコードセグメントが表す機能が、全部ソフトウェアで、全部ハードウェアで、またはハードウェアとソフトウェアの組合せで実装されるかにかかわらず、1つ以上の命令またはコード行が含まれることが意図されており、例えばコードモジュール、オブジェクト、サブルーチン、ファンクションなどが含まれる。
概念的には、プログラミングインターフェースは、一般的に図2または図3に示すように見なすことができる。図2は、第1および第2のコードセグメントが通信する経路(conduit)としてのインターフェースInterface1を示している。図3は、(第1および第2のコードセグメントの一部でもよくそうでなくてもよい)インターフェースオブジェクトI1およびI2を含むものとして、インターフェースを示しており、これらI1およびI2により、システムの第1および第2のコードセグメントは、媒体Mを介して情報をやりとりすることができる。図3を考慮すれば、インターフェースオブジェクトI1およびI2を同じシステムの別々のインターフェースとして考えることができ、またこのオブジェクトI1およびI2に媒体Mを加えたものがこのインターフェースを構成すると考えることもできる。図2および図3は、双方向の流れ(flow)およびこのフローの各側にインターフェースを示すが、一部の実装は、一方向の情報フローしかもたず(または、以下で説明するように情報フローをもたず)、あるいは一方の側にインターフェースオブジェクトをもつだけの場合もある。一例として、限定するものではないが、API(アプリケーションプログラミングインターフェース)、エントリポイント、メソッド、ファンクション、サブルーチン、リモートプロシージャコール、COM(コンポーネントオブジェクトモデル)インターフェースなどの用語は、プログラミングインターフェースの定義内に包含されている。
かかるプログラミングインターフェースの態様は、それによって第1のコードセグメントが情報(この場合、「情報」は、その最も広い意味で使用され、データ、コマンド、要求などを含んでいる)を第2のコードセグメントに伝送するメソッド、それによって第2のコードセグメントが情報を受け取るメソッド、およびこの情報の構造、シーケンス、シンタックス、構成、スキーマ、タイミングおよび内容を含むことができる。この点で、情報がインターフェースによって定義される方法で搬送される限りは、媒体が有線または無線、あるいは両方の組合せであろうがなかろうが、潜在的な伝送媒体それ自体はインターフェースのオペレーションにとって重要ではないこともある。一部の状況では、1つのコードセグメントが第2のコードセグメントが実施する機能に単にアクセスする場合、情報転送は、別の機構(例えば、コードセグメント間の情報フローとは別のバッファ、ファイルなどに配置される情報)を介するかまたは存在しないので、情報は、従来の意味で一方向または両方向に渡されないこともある。例えばこれらのコードセグメントが柔軟結合または緊密結合の構成中のシステムの一部であるかどうかに応じてこれらの態様のうちのどれかまたはすべてが所与の状況では重要となることもあり、したがって、このリストは例示的であり非限定的であると考えるべきである。
プログラミングインターフェースのこの概念は、当業者には知られており、本発明の前述の詳細な説明から明らかである。しかし、プログラミングインターフェースを実装する他の方法があり、特別に除外されない限り、これらも本明細書に添付される特許請求の範囲によって包含されるものとする。かかる他の方法は、図2および図3の単純化した図に比べてより高度または複雑なものに見えるが、これらはそれにもかかわらず同様なファンクションを実施して全体的に同じ結果を実現する。次に、プログラミングインターフェースのいくつかの例証としての代替実装形態について簡単に説明することにする。
A.ファクタ分解
1つのコードセグメントから別のコードセグメントへの通信は、この通信を複数の個別の通信に分解することによって間接的に達成することができる。これを図4および図5に概略的に示している。図に示すように、いくつかのインターフェースを分解可能な機能セットの観点から説明することができる。したがって、ちょうど24、すなわち2×2×3×2を数式的に提供できるように、図2および図3のインターフェース機能をファクタ分解して同じ結果を実現することができる。それによって、図4に示すように、同じ結果を実現しながら、インターフェースInterface1が提供するファンクションを細かく分割してこのインターフェースの通信を複数のインターフェースInterface1A、Interface1B、Interface1Cなどに変換することができる。図5に示すように、同じ結果を実現しながら、インターフェースI1が提供するファンクションを細かく分割して複数のインターフェースI1a、I1b、I1cなどにすることができる。同様に、第1のコードセグメントから情報を受け取る第2のコードセグメントのインターフェースI2をファクタ分解して複数のインターフェースI2a、I2b、I2cなどにすることができる。ファクタ分解する際に、第1のコードセグメントと共に含まれるインターフェースの数は、第2のコードセグメントと共に含まれるインターフェースの数に一致する必要はない。図4および図5の場合のいずれにおいても、インターフェースInterface1およびI1の機能的な趣旨は、それぞれ図2および図3と同じある。インターフェースのファクタ分解ではまた、ファクタ分解を認識するのを困難にすることができるように、関連(associative)プロパティ、通信(communicative)プロパティ、および他の数学的プロパティを引き継ぐこともできる。例えば、オペレーションの順序は、重要でないこともあり、したがって、インターフェースが実行するファンクションが、このインターフェースに到達する十分前に、別のコードまたはインターフェースによって実行され、またはこのシステムの別のコンポーネントによって実行されることができる。さらに、プログラミング技術分野の当業者なら、同じ結果を実現する異なるファンクションコールを行う様々な方法があることが理解できよう。
B.再定義
一部のケースでは、意図した結果を依然として達成しながら、プログラミングインターフェースの一部の態様(例えば、パラメータ)を無視し、追加し、または再定義することを可能にすることができる。例えば、図2のインターフェースInterface1が、3つのパラメータinput、precision、およびoutputを含み、第1のコードセグメントから第2のコードセグメントへ出されるファンクションコールSquare(input,precision,output)を含んでいると想定する。中央のパラメータprecisionが、図6に示すように所与のシナリオにおいて関係がない場合には、このパラメータを好都合にも無視し、または(この状況では)meaninglessパラメータで置き換えることさえできる。また、関係のないadditionalパラメータを追加することもできる。どちらの場合にも、入力が第2のコードセグメントによって2乗された後、出力が返される限り、2乗の機能を実現することができる。precisionは、あるダウンストリームまたはそのコンピューティングシステムの他の部分に対して相当重要なパラメータになることもある。しかし、precisionが2乗を計算するという狭い目的では必ずしも必要でないことが認識された後には、置き換え、または無視することができる。例えば、有効なprecision値を渡す代わりに、誕生日などの無意味な値を、結果に悪影響を与えることなく渡すことができる。同様に、図7に示すように、インターフェースI1は、無視しまたはこのインターフェースにパラメータを追加するために再定義されたインターフェースI1’によって置き換えられる。インターフェースI2も同様に、不必要なパラメータ、または他のどこかで処理することができるパラメータを無視するために再定義されるインターフェースI2’として再定義することができる。ここでの要点は、一部のケースでは、プログラミングインターフェースは、ある目的では必要とされないパラメータなどの態様を含むこともあり、したがって、それらを無視し、または再定義し、あるいは他の目的のために他のどこかで処理することができることである。
C.インラインコーディング
2つの別々のコードモジュールの機能のうちの一部または全部を、これらモジュールの間の「インターフェース」が形式を変更するようにマージすることも実現可能である。例えば、図2および図3の機能をそれぞれ図8および図9の機能に変更することもできる。図8において、前述の図2の第1および第2のコードセグメントを、これらの両方を含むモジュールにマージする。このケースでは、これらのコードセグメントは、依然として互いに情報をやりとりすることができるが、そのインターフェースを、単一のモジュールにより適した形式に合うようにすることができる。したがって、例えば、正式なコールステートメント(Call statement)およびリターンステートメント(Return statement)は、もはや必要ではないが、インターフェースInterface1に従う同様な処理または応答が依然として効力があるようにすることができる。同様に、図9に示すように、図3のインターフェースI2の一部(または全部)をインターフェースI1にインラインに書き込んでインターフェースI1”を形成することができる。図に示すように、インターフェースI2をI2aとI2bに分割し、インターフェース部分I2aをインターフェースI1とインラインにコード化してインターフェースI1”を形成している。具体的な例として、図3のインターフェースI1が、インターフェースI2で受け取り、第2のコードセグメントによって(2乗すべき)inputを用いて渡された値を処理した後に2乗された結果を、outputを用いて戻すファンクションコールSquare(input,output)を実施することを考えてみる。かかるケースでは、(inputを2乗する)第2のコードセグメントで実施する処理を、このインターフェースへのコールなしに第1のコードセグメントで実施することができる。
D.分離(divorce)
1つのコードセグメントから別のコードセグメントへのコミュニケーションは、このコミュニケーションを複数の個別のコミュニケーションへと分解することによって間接的に達成することができる。これを図10および図11に概略的に示す。図10に示すように、1つ以上のミドルウェア(これらは元のインターフェースからの機能および/またはインターフェースファンクションを分離することから、分離インターフェース(Divorce Interface))を提供して、第1のインターフェースInterface1上のコミュニケーションを変換して、これらを異なるインターフェースに、このケースではインターフェースInterface2A、Interface2B、およびInterface2Cに適合するようにする。例えば、Interface1プロトコルによるオペレーティングシステムと情報をやりとりするように設計されたインストールベースのアプリケーションがあるが、次いでオペレーティングシステムが、異なるインターフェースを、このケースではインターフェースInterface2A、Interface2B、およびInterface2Cを使用するように変更する場合にこれが行われ得る。ここでの要点は、第2のコードセグメントが使用する元のインターフェースは、第1のコードセグメントが使用するインターフェースとはもはや互換性がないように変更され、したがって中間手段を使用して元のインターフェースと新しいインターフェースの間で互換性があるようにすることである。同様に、図11に示すように、第3のコードセグメントを導入して、分離インターフェースDI1を用いてインターフェースI1からのコミュニケーションを受け取り、分離インターフェースDI2を用いて例えば、DI2と共に動作するが同じ機能結果を提供するように再設計されたインターフェースI2aおよびI2bへとインターフェース機能を伝送することができる。同様にDI1およびDI2は一緒に動作して、同じまたは同様な機能結果を提供しながら図3のインターフェースI1およびI2の機能を新しいオペレーティングシステムに変換することができる。
E.書換え
さらに別の可能な変形は、コードを動的に書き換えてこのインターフェース機能を何か別のもので置き換えるが全体的には同じ結果を実現するものである。例えば、中間言語(例えばMicrosoft IL、Java(登録商標)ByteCodeなど)で表現されるコードセグメントが、(.Netフレームワーク、Java(登録商標)ランタイム環境、他の同様なランタイムタイプの環境によって提供されるものなど)実行環境中のJIT(Just−in−Timeジャストインタイム)コンパイラまたはインタプリタに提供されるシステムがあり得る。第1のコードセグメントから第2のコードセグメントへ動的に変換して、すなわちこれらを第2のコードセグメント(元の第2のコードセグメントまたは異なる第2のコードセグメント)で必要とされる場合がある異なるインターフェースに適合するようにこのJITコンパイラを記述することができる。これを図12および図13に示す。図12から分かるように、この手法は、前述の分離シナリオと同様である。例えば、インストールベースのアプリケーションが、Interface1プロトコルによるオペレーティングシステムと情報をやりとりするように設計されているが、次いでこのオペレーティングシステムが、異なるインターフェースを使用するように変更される場合に、この手法を行うことができる。このJITコンパイラを使用してインストールベースのアプリケーションからの進行中のコミュニケーションをこのオペレーティングシステムの新しいインターフェースに適合するようにすることができる。図13に示すように、これらのインターフェースを動的に書き換えるこの手法を適用して、インターフェースをも動的にファクタ分解し、または別の方法で変更することができる。
同じまたは同様な結果を、代替実施形態を介したインターフェースとして実現する前述のシナリオは、直列および/または並列に、または他の介入するコードを用いて様々な方法で組み合わせることもできることにも留意されたい。したがって、以上で提示された代替実施形態は、互いに排他的ではなく、混合させマッチさせ組み合わせて、図2および図3に提示した一般的なシナリオと同じまたは同等なシナリオを作成することができる。ほとんどのプログラミング構成体と同様に、本明細書中では説明されていないこともあるがそれにもかかわらず本発明の趣旨と範囲によって表されるインターフェースの同じまたは同様な機能を達成する他の同様な方法があることにも留意されたい。すなわち、インターフェースの価値の基礎をなすものは、少なくとも部分的にインターフェースによって表される機能であり、インターフェースが可能とする有利な結果であることに留意されたい。
これを念頭に置いて、次に図14a着目する。この図は、本発明を実装できるネットワーク環境を概略的に示すものである。詳細には、図に示すネットワーク環境は、投影デバイスまたはプレゼンタ201を含んでおり、これは、1台以上の投影ターゲットデバイスまたは参加者203、205、207、および209へと情報の投影を行う、例えば図1を参照して前述したデバイスなど任意のコンピューティングデバイスとすることができる。投影ターゲットデバイスまたは参加者203〜207はまた、ユーザとしても知られており、プレゼンタ201と同様に非専用のコンピューティングデバイスとして示されている。このケースでは、例えば、参加者(ユーザ)201〜207は、一例として限定するものではないが、ラップトップコンピュータ、デスクトップコンピュータ、ハンドヘルドコンピューティングデバイス、他の任意の多目的のコンピューティングデバイス、またはこれらのタイプのデバイスのどのような組合せでもよく、またこれらを使用することができる。ユーザは、従来のコンピューティングデバイスを利用する必要も、従来のコンピューティングデバイスである必要もなく、例えばテレビジョンシステムであってもよい。ネットワーク211は、参加者203〜207とプレゼンタ201の間で情報を転送するために使用可能である。
同様に、参加者は、追加してまたは代わりに電子会議室のプロジェクタなどの専用の投影デバイス、すなわちディスプレイデバイス209を含んでおり、プロジェクタと呼ぶこともある。他の参加者(ユーザ)203〜207と同様に、参加者(プロジェクタ)209は、ネットワーク211を介して(やはりユーザである)プレゼンタ201と情報をやりとりすることが好ましい。ネットワーク211は、任意のタイプのネットワークでもよいが、一般にプレゼンタ201とネットワーク211との間の、またネットワーク211と参加者(ユーザ)203〜207との間の無線インターフェースを含むことになる。さらに、ネットワーク211と参加者(プロジェクタ)209との間のインターフェースは、有線または無線であることが好ましい。例えば、プロジェクタ209は、会議室などの特定の場所に長期間とどまることができるので、プロジェクタ209からネットワーク211への有線インターフェースをもつことによりデバイスの実用性はあまり低下しない。ネットワーク211それ自体は一般に、必ずしも必要ではないが、企業LAN、WAN、他の従来技術による全体または部分的に有線化されたネットワークなどの有線インフラストラクチャであることになる。
代替的なネットワーク環境を図14bに概略的に示す。詳細には、プレゼンタ201および参加者203〜209は、無線リンク213〜225から構成されるアドホックな無線ネットワークを介して相互接続される。アドホックなネットワークは、あらゆるノードをあらゆる他のノードに直接接続する必要がないので、必ずしもすべての接続213〜225が必要ではないことに留意されたい。例えば、1つのノードは、アドホックなネットワークのすべてのノードに対して、別のノードへの1つの接続を介して間接的に接続することができる。したがって、アドホックなトポロジには、リング、ライン、ウェブ、ハブアンドスポーク(hub−and−spoke)および/または他のトポロジが必要に応じて含まれる。しばしば、特定のデバイスの他のデバイスからの物理的距離は、特定のデバイスが直接に接続するアドホックネットワークの、もしあれば1つまたは複数のデバイスによって決まる。
前述のコンポーネントの使用および対話のシナリオについて、対話の仕組みの詳細な説明に進む前に以下に簡単に説明する。本発明のシステムは、家庭環境におけるなど非ビジネス設定でも同様に使用可能であるが、プレゼンタ201は、一般に会議室またはミーティング室の環境において、個人の望むものを提示する立場にあり、受け取る側の個人の関心を引く資料を投影する。関心を引く資料はイメージやビデオなどのグラフィック形式、またはドキュメントやチャートの形などのテキスト形式とすることができ、またオーディオ要素を含むこともできる。本発明の一実施形態では、対象の資料は専らオーディオ情報である。対象の資料は、コンピュータ生成されたものである必要はないが、コンピュータ可読なフォーマットでローカルにまたはリモートにプレゼンタ201からアクセス可能であることが好ましい。参加者(ユーザ)203〜207は、受け取る側の個人のラップトップコンピュータでもよいが、参加者(プロジェクタ)209は、モバイルラップトップやハンドヘルドデバイスと違って、会議室のプロジェクタもしくは大型画面モニタや一般に任意の1ユーザに物理的に関連づけられない他のディスプレイなど専用の投影システムとすることができる。
参加者203〜209間のネットワーク接続は、一般に各デバイスが提示側のユーザに関連するプレゼンタ201の通信範囲内に入るときに開始される。したがって、例えば、プロジェクタ209は、会議室に恒久的に存在するものと想定する。提示側のユーザがプレゼンタ201と共に会議室に入るとき、アドホックまたはネットワークインフラストラクチャを介した無線接続がプロジェクタ209とプレゼンタ201の間に形成される。次いで、提示側ユーザは、彼のデバイス201からプロジェクタ209の画面上に、受け取る側の個々人が見られるように資料の投影を行うことができる。このようにして、提示側のユーザは、どのようなケーブルまたはコードも物理的に接続せずにプレゼンテーションを行っており、同様にプレゼンテーションを終了し、あるいはどのようなケーブルまたはコードも切り離さずに別の投影デバイスを使用する別の提示側の個人へとその制御を転送することができる。
ほぼ同じ方法で、提示側ユーザは、対象の資料を参加者(ユーザ)203〜207などいくつかのターゲットデバイスに提示することができる。例えば、本発明の一実施形態では、プレゼンタ201とユーザ203〜207の間のネットワーク接続は、ユーザが物理的な接続を見出し、操作する必要なしに自動的に見出した後に自動的に実行することができる。このケースでは、資料のプレゼンテーションは、プレゼンタ201から受け取る側の個々人の所有するラップトップコンピュータとすることができる参加者の画面に対して行われる。この特定の仕組みについては、以下でさらに十分に論じることにするが、それには様々なセキュリティ態様が関連することになる。
図15は、本発明のシステムおよび方法において存在する異なるコンポーネントおよびバイナリ(binary)を示している。プレゼンテーションデバイス500は、プレゼンタのマシン上に作成され登録される。このデバイスは、UPnPに登録され、登録された後にSSDP(Simple Service Discovery Protocol)を介して見出すことが可能である。このデバイスは、登録プロセス中にUPnPが作成するその一意的なデバイス名(UDN)で識別されることが好ましい。このデバイスは、プレゼンテーションサービス(presentationservice)として知られているUPnPサービスを含んでいる。ユーザディスプレイデバイス502は、参加者のマシン上に作成され登録される。このデバイスはまた、UPnPに登録され、登録された後にSSDPを使用して見出すことができる。このデバイスもまた、そのUDNによって識別され、ユーザディスプレイサービス(userdisplayservice)として知られているUPnPサービスを含んでいる。この図15に存在する3つのバイナリは、CRP presentation.dll504、CRP attendee.dll506、およびMicrosoft.CRP.dll508を含んでいる。このCRP presentation.dllは、UpnPのプレゼンテーションデバイス(presentationdevice)であるプレゼンテーションデバイスを含んでいる。さらに、このバイナリは、プレゼンテーションデバイスの登録と登録抹消のための機能を提供する。これらの方法を使用してこのプレゼンテーションデバイスの登録を行い、登録を抹消する。さらに、プロジェクタ制御機能も含まれる。これらの方法を使用してプロジェクタを制御し、例えばプロジェクタ機能、ディスプレイモードなどを獲得する。最後に、このCRP presentation.dllは、参加者の制御機能を含んでいる。これらの方法を使用して参加者への招待状を送る。
このバイナリCRP attendee.dllは、ユーザディスプレイについてのUPnPデバイスであるユーザディスプレイデバイスのための機能を提供する。ユーザディスプレイデバイスの登録および登録抹消の機能も提供される。これらの方法を使用してユーザディスプレイデバイスの登録を行い、登録を抹消する。最後に、このCRP attendee.dllバイナリは、プレゼンテーション制御のための機能を含んでいる。これらのメソッドを使用してプレゼンタからの招待状を要求する。
このMicrosoft.CRP.dllバイナリは、CRP attendee.dllバイナリおよびCRP presentation.dllバイナリ上に提供されるラッパ(wrapper)である。これは、ユーザフレンドリに管理されたインターフェースをアプリケーションに対して公開する。このMicrosoft.CRP.dllはまた、端末サービスセッション510制御し作成する機能を実装する。
本発明のCRP(conference room projector会議室プロジェクタ)のシステムおよび方法は、3つの部分に依存する。第1はアプリケーションに提供されるユーザインターフェースである。第2はTS(terminal serviceターミナルサービス)である。別のマシン(プロジェクタまたは参加者)に対してプレゼンテーションの投影を行うために端末サービス協調APIが使用される。端末サービスは1つまたは複数の端末サービスクライアントが端末サービスサーバに接続し、TSサーバ(一般にデスクトップ)によって画面表示されるセッションを閲覧することができるようにする。このプレゼンタは端末サービスサーバとしての役割を果たし、参加者およびプロジェクタは端末サービスクライアントとしての役割を果たす。第3に、CRPは、UPnPに依存する。UPnPは、任意のアプリケーションがローカルマシンまたはリモートマシン上に呼び出すことができる1組のアクションを公開するデバイスの概念を有する。UPnPはまた、UPnPデバイスを見出すためのSSDPも提供する。
典型的な設定では、プレゼンテーション、参加者、およびプロジェクタは、すべてUPnPデバイスである。SSDPを使用することによって、ユーザは、ローカルネットワーク上に存在するプレゼンテーションデバイス、参加者デバイス、およびプロジェクタデバイスを見出すことができる。TSクライアントがTSサーバに接続するためには、このTSクライアントは、TSサーバが生成する招待状を必要とする。サーバからクライアントに招待状を転送するためには、UPnPデバイスが提供するアクションが使用される。UPnPデバイス上で呼び出すことができるアクションが存在し、例えば、プレゼンテーションデバイスは招待状を要求するアクションを有することになるが、参加者デバイスは参加者を招待するために使用することができるアクションを有することになる。
プレゼンタがプレゼンテーションを提供したいと思うとき、プレゼンタは、端末サービスセッション510を作成することになる。プレゼンタが招待したいと思う参加者およびプロジェクタが存在する場合、プレゼンタは、端末サービスチケットを作成し、これらの参加者およびプロジェクタに招待状を送付する。ある参加者を招待するためには、その参加者デバイス上で招待アクションが呼び出される。あるプロジェクタに接続するためには、そのプロジェクタUPnPデバイス上で接続アクションが呼び出される。プロジェクタおよび参加者は、招待状をもった後に、端末サービスクライアントにその招待状を提供することになる。次いで、この端末サービスクライアントは、この端末サービスセッションと連絡を取ることになる。
当技術分野においてよく知られているように、TSサーバは、COMコンポーネントである。TSサーバは、前述のMicrosoft.CRP.dllバイナリによって使用される。最新のTS協調APIは、このセッションを作成するために使用される。他の任意のCOMコンポーネントと同様に、TSサーバも、登録して使用する必要がある。当技術分野においてまたよく知られているように、TSクライアントは、ActiveXコントロールである。このActiveXコントロールは、招待状を使用することが要求される場合には、このコントロールの幅、高さ、招待状、およびパスワードのようなそれに関連する一部のプロパティを有している。ActiveXコントロールは、登録して使用する必要がある。その発見機構は一般に、CRPシステム中でこのデバイスを見出すためのSSDPになる。次いで、これらのデバイスのUDNを入力として提供することになる。
本発明の実施形態の一例におけるこれらのデバイスについての状態変数は、特定の値または値のリストを表すために使用される一般的な文字列A_String、およびそのディスプレイデバイスの名前文字列または識別文字列であるA_Nameを含んでいる。
両方の状態を紹介したので、次にアクションについて簡単に論じることにする。これらのアクションは、招待メソッド(invite method)、プレゼンタフレンドリな命名メソッド(name method)、およびプレゼンテーションフレンドリな命名メソッドを含んでいる。GetNameメソッドは、参加者の識別文字列を戻す。指定された値が無効の場合には、このメソッドは、InvalidValueエラー記述を戻す。
本発明の一実施形態では、ユーザは、2つのオペレーション、すなわちプレゼンテーションを提供し、またはプレゼンテーションを閲覧するというオペレーションを実施することができる。プレゼンテーションを提供する際には、プレゼンタは、プロジェクタおよび/または別のユーザのディスプレイデバイス上にこのプレゼンテーションを表示したいと思うかもしれない。プレゼンテーションを提供しようと望む際には、プレゼンタは、以下のステップを実施することになる。最初に、このプレゼンタは、プレゼンテーションセッションを開始する。これにより、他のユーザが見出すことが可能となるプレゼンテーションデバイスが作成されることになる。これによりまた、端末サービスセッションが作成されることになる。
プレゼンタが、近くのプロジェクタを見出し、これらのプロジェクタに接続したいと思うこともある。これを行うために、プレゼンタは、これらのプロジェクタを求めてSSDP探索を実施する。このSSDP探索は、プロジェクタのリストを戻すことになる。次いでプレゼンタは、このリストから1つまたは複数のプロジェクタを選択することになる。次いで、プロジェクタのUDN、および必要ならパスワードが、接続を確立するために提供される。TSセッションの招待マネージャを使用してパスワードに基づいてこのプロジェクタについての招待状が作成される。次いで、この招待状は、プロジェクタのディスプレイデバイス上の接続アクションを呼び出すことによって、そのプロジェクタに送付されることになる。
ユーザは、他のユーザがこのプレゼンテーションを閲覧するように招待したいと思うこともある。これをするためには、プレゼンタは、他のユーザを求めて探索することができる。この探索では、ユーザのディスプレイデバイスのUDNが提供されることになる。UDNが見出された後に、端末サービス招待マネージャはその被招待者に対する招待状を作成することになる(招待だけを行うためには、別の方法で一般的な招待状を使用する)。次いで、招待状が、ユーザのディスプレイデバイス上の招待アクションを呼び出すことによってその被招待者に送られることになる。
プレゼンタはまた、別のユーザがそのプレゼンテーションに参加したいと思うときに通知してほしいと思うこともある。前述のプレゼンテーションデバイス上のアクションRequestInvitationが、そのプレゼンテーションに参加したいと思っているユーザによって呼び出されることになる。このケースでは、このユーザについての情報と共にコールバックがそのプレゼンタに与えられる。次いで、プレゼンタは、この情報を使用して他のどのユーザとも全く同様にそのユーザを招待することができる。あるいは、プレゼンタは、招待で頭を悩ませたくないと思うこともあり、どのような認証またはパスワードもなしに誰でもそのプレゼンテーションに簡単に参加できるようにしたいと思うこともある。両ケースで、プレゼンタのプレゼンテーションデバイス上で、RequestInvitationアクションが呼び出されるときはいつでも、この招待状は直ちにそのユーザに送付されることになる。このプレゼンテーションが、セキュリティ保護されたものである場合には、その招待状は、パスワードで保護されることになる。
プレゼンタがプレゼンテーションを停止したいと思うときは、プレゼンタは、ただこのプレゼンテーションデバイスの登録を抹消しこのTSセッションをクローズすることになる。
ユーザが実施する他のオペレーションは、プレゼンテーションを閲覧することである。このケースでは、参加者は、まず利用可能なプレゼンテーションを見出したいと思うことがある。当技術分野においてよく知られているように、参加者は、SSDPを使用してこれを簡単に行うことができる。参加者は、プレゼンテーションのUDNを受け取り、次いで、そのプレゼンテーションデバイス上で関連情報を伴うアクションRequestInvitationを呼び出すことになる。これは、プレゼンテーションがかかる要求を介してアクセスを可能とするケースだけで有効である。プレゼンタが、参加者がそのプレゼンテーションを閲覧することができるようにする場合、参加者は、その招待状を用いてこのディスプレイ上のアクションInviteを呼び出すことになる。次いで、招待状がそのTSクライアントに提供されて接続を確立することになる。次いで、TSクライアントは、このプレゼンタ上のTSセッションに接続されることになる。もしもプレゼンタが招待状を求められることなく参加者を招待したいと思う場合には、プレゼンタは、前述のように、ディスプレイデバイス上のアクションInviteを直接に呼び出すことになる。
接続が確立された後に、このプレゼンテーションは、本出願の譲受人に譲渡され、その教示および開示が参照によってその全体が本明細書中に組み込まれている2002年6月25日に出願された「IMPROVED DATA PROJECTION SYSTEM AND METHOD」という名称の同時係属出願第10/179,431号に記載の方法に従って、その参加者に、ユーザにもプロジェクタにも、提供することができる。この同時係属の出願に記載のように、プレゼンテーションを提供することができるネットワークは、インフラストラクチャモードで、またはアドホックネットワークの一部として動作させられる802.11に準拠の無線リンクを含む。もちろん、他の無線ネットワーク、ならびに有線ネットワークも同様に使用することができることが当業者には理解されよう。また、この同時係属出願に記載のように、ユーザの発表および位置は、どちらにしても標準的なユニバーサルプラグアンドプレイのアナウンスメント機構を介して実行することができ、それによって参加者のユニバーサルプラグアンドプレイコンポーネントは、プレゼンタのユニバーサルプラグアンドプレイコンポーネントに対してその存在と機能を知らせる。あるいは、プレゼンタのユニバーサルプラグアンドプレイコンポーネントは、参加者のユニバーサルプラグアンドプレイコンポーネントを求めて積極的に探索を行い位置決めすることができる。さらにまた、プレゼンタがその存在とそのプレゼンテーションについて知らせるようにこのプロセスを逆にすることもでき、その結果、参加者は、そのプレゼンテーションを見出すことができ、前述のようにそれへの許可を求めることができる。
以前に紹介したように、Microsoft.CRP.dllバイナリは、管理されたインターフェースを公開する。このCRPシステムにおいて提供される主要なクラスは、プレゼンテーションクラス、参加者デバイスクラス、プロジェクタクラス、および参加者クラスを含んでいる。このプレゼンテーションクラスは、プレゼンタが利用する主要なクラスである。プレゼンテーションを開始するために、プレゼンタは、このクラスをインスタンス生成する必要があることになる。参加者デバイスクラスを使用してプレゼンテーションを閲覧する。すなわち、プレゼンテーションを閲覧するためには、このクラスをインスタンス生成する必要がある。参加者デバイスクラスは、参加者デバイスを作成し、プレゼンテーションについての招待状を提供する。プロジェクタクラスは、プロジェクタを表す。プロジェクタクラスは、プロジェクタデバイスと通信を行い、プロジェクタについての情報を獲得する。最後に、参加者クラスは、参加者を表す。参加者クラスは、参加者に制御を与え、または参加者を切り離すメソッドおよびプロパティを提供する。これらの各クラスについてのより詳細な説明を次に提供する。
Microsoft.CRP.Presentationクラスの概要を以下に表1に示している。
Figure 0005060018
Figure 0005060018
この表1から分かるように、プレゼンテーションクラスは、2つのコンストラクタ(constructor)を含んでいる。第1のプレゼンテーションコンストラクタは、新しいプレゼンテーションを作成する。内部的には、このコンストラクタは、まず端末サービスセッションをインスタンス生成する。この端末サービスセッションは、タイプRDPのセッションである。第2に、端末サービスセッションは、このセッションをオープンする。第3に、このクラスは、そのTSセッションオブジェクトから招待マネージャを検索する。この招待マネージャは、その招待状を作成する機能を提供する。第4に、このコンストラクタは、一般的な招待状を作成する。次いで、このコンストラクタは、参加者を接続し切り離すイベントへとフックする。最後に、このメソッドは、CRP presentation.dllバイナリ中の登録メソッドを呼び出すことによってプレゼンテーションデバイスを登録する。この登録メソッドは、このプレゼンテーションに対してハンドルを戻すことになる。第2のプレゼンテーションコンストラクタは、一般的な招待状の生成中にパスワードが入力として提供されるという点が異なるだけで、第1のコンストラクタとまさしく同様に動作する。
このプレゼンテーションクラスのプロパティは、プレゼンテーションが招待専用プレゼンテーションであるか否かを制御する、招待専用プロパティを含んでいる。そのプレゼンテーションが、招待専用である場合には、招待状を求める要求はどれも拒否されることになる。そのプレゼンテーションが招待専用だけではない場合、招待状要求のイベントに対して代理人が提供されない場合には、招待状要求の呼出し側には、一般的な招待状作成構成が提供され、あるいは招待状要求のイベントに対して代理人が提供される場合には、コールバックがこのアプリケーションに与えられる。
このプレゼンテーションクラスが公開するメソッドは、参加者デバイスのUDNによって識別される参加者を招待するために使用される招待メソッドを含んでいる。このメソッドは単に、CRP presentation.dllバイナリが提供する参加者招待APIを呼び出す。プレゼンテーションオブジェクトの構築中に作成される一般的な招待状が使用される。第2の招待メソッドも、参加者デバイスのUDNによって識別される参加者を招待するために提供される。このメソッドを介して参加者に提供される招待状は、パスワード保護されている。このメソッドで呼び出されるステップは、TS招待マネージャを使用した招待状の作成である。この招待状は、一度だけ使用することができ、招待状が参加者UDNによって識別されるプロパティを有する。2つの招待状は、同じ名前をもつことができないので、招待状がこの参加者UDNについて作成された後には、新しい招待状を、この同じ参加者について作成することはできない。このメソッドの第2のステップは、第1のステップで作成された招待状をもつCRP presentation.dllバイナリが提供される参加者招待APIに対する呼出しである。
このプレゼンテーションクラスはまた、プレゼンテーションをプロジェクタに接続するプロジェクタ接続メソッドを含んでいる。関与するステップは、このプロジェクタについての招待状の作成を含んでいる。このようにするのは、TSが、参加者とプロジェクタの区別をせず、TS参加者オブジェクトを伴う非接続のイベントだけを生成するからである。このTS参加者オブジェクトは、3つのプロパティ、ID、名前、および招待状を有する。IDは、TSセッションによって生成され、ローカルには一意的である。名前は、まさにフレンドリな名前であり、招待状は、最初に参加者に送付された招待状である。接続されているユーザから招待されたユーザをリンクするものはただ、招待状である。したがって、プロジェクタを参加者から分離するためには、このメソッドは、プロジェクタごとに別々の招待状を生成する。接続イベントが始動されるとき、ちょうど接続されたTS参加者の招待状がプロジェクタに与えられたものかどうかが検証される。このケースの場合には、このプロジェクタ接続イベントが始動され、そうでない場合には、参加者接続イベントが始動される。このメソッドの第2ステップでは、一度だけ使用することができるプロパティを有する招待状が作成され、招待状の名前は、プロジェクタのUDNである。これを行うことにより、所与のセッションのための1つのプロジェクタについてただ1つの招待状しか作成できない。この招待状が作成された後に、第3のステップである、CRP presentation.dllバイナリが公開するConnectProjectorAPIが呼び出される。このAPIは、このプロジェクタに対してセッショントークンを戻す。次いで、第4に、このプロジェクタについてのセッショントークンおよび招待状が、このプロジェクタオブジェクトに関連づけられる。次いで、最後に、このプロジェクタオブジェクトが、プロジェクタリストに追加される。そのプロジェクタリストは、招待されているすべてのプロジェクタを含むアレイリストである。このプロジェクタが切り離される場合には、このプロジェクタはそのリストから取り除かれる。このシステムは、コールバックからのプロジェクタリスト上で動作することができるので、ロックによって保護される。第2のプロジェクタ接続メソッドも提供され、このメソッドと前述のプロジェクタ接続メソッドの間のただ1つの違いは、チケットが入力として提供されるパスワードを用いて生成されることである。
このプレゼンテーションクラスはまた、プロジェクタを切り離すプロジェクタ切離しメソッドも含んでいる。プロジェクタの切離しに関与するステップは、プロジェクタおよびプロジェクタリストを求めての探索、プロジェクタを切り離すためのCRP presentation.dllバイナリが提供するプロジェクタ切離しAPIに対する呼出し、およびプロジェクタに関連するTS参加者オブジェクト上の切離しメソッドに対する呼出しを含んでいる。このクラスはまた、プレゼンテーションオブジェクトを処分(dispose)するために使用されるクローズ/処分メソッドも含んでいる。このプレゼンテーションオブジェクトを処分するのに関与するステップは、CRP presentation.dllバイナリが公開する登録抹消メソッドを呼び出すことによってこのPNPプレゼンテーションデバイスの登録を抹消することを含んでいる。最後に、このTSセッションがクローズされる。
このプレゼンテーションクラスはまた、様々なイベントも提供する。最初に、参加者リストが変更されるとき、参加者リスト変更イベントが信号によって伝えられる。参加者が接続され、または切り離されるときに、この参加者リストを変更することができ、このイベントは、TSセッションによって生成される接続および切離しイベントに関連づけられる。このイベント引き数は、2つのもの、すなわち参加者オブジェクト、および生起(接続/切離し)された変更タイプを含んでいる。このイベントは、プレゼンテーションオブジェクトの構築中に、アプリケーションがTSセッションからの接続イベントおよび切離しイベントについて登録するときに生成される。次いで、このTSセッションは、任意のユーザ(参加者またはプロジェクタ)が接続を確立するときにこれらのイベントを生成する。このTSセッション生成イベントは、パラメータとしてTS参加者オブジェクトを有する(前述のように、TS参加者は、3つのプロパティ、すなわちID、名前、および招待状を有する)。プロジェクタと参加者の間の区別をする必要があるので、前述のように、別々の招待状がプロジェクタについて作成される。このTSイベントがプロジェクタのために生成されるかどうかを解明するために、接続されているユーザが使用する招待状に基づいてプロジェクタリストを探索する。プロジェクタがそのリスト中に存在する場合、プロジェクタリスト変更イベントが生成され、そうでない場合には、参加者リスト変更イベントが生成される。プロジェクタが接続され、または切り離されたときに、このプロジェクタリスト変更イベントが、信号で伝えられる。以上で論じたように、このイベントは、TS接続/切離しイベントに基づいている。ユーザが、プロジェクタとして接続される場合、このTS参加者オブジェクトは、プロジェクタリスト中に存在するプロジェクタオブジェクトに関連づけられる。イベント引き数プロジェクタリスト変更イベント引き数(event argument projector list changed event argument)は、2つのプロパティ、すなわちプロジェクタオブジェクト(プロジェクタリスト中に存在するオブジェクトが使用される)および生起(接続/切離し)された変更タイプを有している。
このプレゼンテーションクラスはまた、参加者が招待状を求めて要求したときに信号で伝えられる招待状要求イベントも有する。このイベントは、そのプレゼンテーションが招待専用である場合には信号で伝えられないはずである。この招待状は、CRP presentation.dllバイナリが提供するコールバックに基づいている。このコールバックは、参加者が招待状を要求するためプレゼンテーションデバイスに連絡を取るときに生成される。招待状要求イベント引き数は、以下のプロパティを有する。第1が招待状を要求する参加者のフレンドリな名前であり、第2が参加者のデバイスのUDNである。アプリケーションが、このイベントについて受信しており、招待状を要求した参加者への招待状を提供しようと決定する場合には、このアプリケーションは、この招待状要求イベント引き数中で提供されるUDNを有するpresentation.inviteを呼び出すべきである。ここでは、セキュリティの含意を理解することが重要である。参加者のUDNは信用されない。したがって、明示的にユーザによって認可されない限り、UDNによって識別される参加者デバイス上にアクションを呼び出すことは望ましくない。したがって、誰もこのイベントを受信していない場合には、このUDNで識別される参加者デバイス上で招待アクションを呼び出す代わりに、一般的な招待状が直ちに戻される。しかし、アプリケーションがこのイベントについて受信している場合には、このイベントが生成され、空の招待状が戻される。
Microsoft.CRP.projectorクラスの概要が、以下の表2に示されている。
Figure 0005060018
先の表2から分かるように、このプロジェクタクラスは、1つのコンストラクタを含んでいる。このプロジェクタコンストラクタは、UDNセットだけをもつプロジェクタオブジェクトを作成する。このクラスのプロパティは、機能、ディスプレイ設定、および状態を含んでいる。この機能メソッドは、プロジェクタの機能を検索する。このメソッドは、基本的には、CRP presentation.dllバイナリが公開するGetCapabilitiesAPIの周囲のラッパである。DisplaySettingsメソッドは、そのプロジェクタのDisplaySettingsを獲得し、または設定する。この獲得および設定は、基本的には、CRP presentation.dllバイナリが公開するGetDisplay設定メソッドおよびSetDisplay設定メソッドの周囲のラッパである。このディスプレイ設定は、プレゼンテーションがそのプロジェクタに接続される場合にのみ、獲得/設定することができる。この状態メソッドは、そのプロジェクタの状態を獲得する。このメソッドは、基本的には、CRP presentation.dllバイナリが公開するGetStateAPIの周囲のラッパである。このクラスが公開するメソッドは、クローズ/処分メソッドおよびToStringメソッドである。このクローズ/処分メソッドを使用してプロジェクタオブジェクトを処分する。このオブジェクトが実施する唯一の主要なオペレーションは、TS参加者オブジェクト上で切離しを呼び出してそのプロジェクタが確実に切り離されるようにすることである。ToStringメソッドは、そのプロジェクタのフレンドリな名前を戻す。
Microsoft.CRP.attendee deviceクラスを以下の表3に示す。
Figure 0005060018
表3から分かるように、このクラスは1つのコンストラクタを含んでいる。この参加者デバイスコンストラクタは、参加者デバイスオブジェクトを作成する。プレゼンテーションを閲覧するためには、このオブジェクトを作成する必要がある。このコンストラクタは、CRP attendee.dllバイナリが提供する登録APIを呼び出す。この登録APIは、参加者についてのUPnPデバイスを登録する。このクラスが公開するメソッドは、クローズ/処分メソッドおよびRequestInvitationメソッドを含んでいる。このクローズ/処分メソッドを使用して参加者オブジェクトを処分する。このオブジェクトが実施する唯一の主要なオペレーションは、CRP attendee.dllバイナリが公開する登録抹消メソッドを呼び出してUPnPデバイスの登録を抹消することである。このRequestInvitationメソッドを使用してプレゼンタ提供のプレゼンテーションUDNからの招待状を要求する。このメソッドは、基本的に、CRP attendee.dllバイナリが公開するRequestInvitationAPIを呼び出す。プレゼンタは、直ちに招待状を提供することができ、また参加者デバイス上で招待APIを呼び出すこともできる。プレゼンタが招待状を直ちに提供する場合には、このメソッドは、招待状を戻し、そうでない場合には、このメソッドは、string.emptyを戻す。このクラスについて提供される1つのイベントは、招待状利用可能イベントである。プレゼンタが参加者を招待するときにこのイベントが信号で伝えられる。この招待状利用可能イベント引き数クラス中で利用可能な情報は、招待状それ自体、プレゼンテーションフレンドリな名前、およびプレゼンタフレンドリな名前を含んでいる。参加者がこの招待状を使用したいと思う場合には、参加者は、このTSActiveXコントロールに招待状を提供し、このActiveXコントロール上で接続を呼び出す必要がある。次いで、このActiveXコントロールは、サーバに対してTSセッションを確立することになる。
Microsoft.CRP.Attendeeクラスの概要を以下の表4に示す。
Figure 0005060018
このクラスのプロパティは、名前および制御レベルを含んでいる。この命名メソッドは、この参加者のフレンドリな名前を戻す。この制御レベルメソッドは、この参加者の制御レベルを獲得/設定する。参加者が有することができる制御レベルは、対話型(すなわち、参加者はプレゼンタのマウスポインタを制御することができる)およびビュー(参加者はプレゼンテーションを閲覧することしかできない)を含んでいる。このクラスはまた、DisconnectメソッドおよびToStringメソッドを公開する。このDisconnectメソッドは参加者を切り離すが、ToStringメソッドは、参加者のフレンドリな名前を戻す。
本発明の実施形態の一例では、API(application programming interfaceアプリケーションプログラミングインターフェース)を使用してプレゼンテーションを閲覧しプレゼンテーションを提供するというシナリオを可能にしている。これらのAPIは、一般にユーザにとっては使用可能であり、一般にプロジェクタにとっては使用可能ではない。プロジェクタ端末上での実装は、普通はプロジェクタの製造業者の責任であるが、これは本発明の範囲に対する限定とはならない。本発明に従って構築されるかかる例示の実施形態について、以下で説明する。好ましい一実施形態においては、これらのAPIは、管理されたコードを含む。しかし、APIが例示の実施形態として表されているが、本発明の範囲を限定しないことを理解すべきである。
これから説明する第1の組のAPIは、プレゼンテーションの閲覧を可能にするAPIである。これらのAPIを利用する典型的なシナリオは、ユーザがプレゼンテーションをはっきりと見出し、適切な招待状を介してそのプレゼンテーションに参加することによってプレゼンテーションに参加することを望むとき、またはユーザが自分を発見可能にし、次いでそのプレゼンテーションに参加するように招待されることを望むときである。この機能をサポートするAPIおよびコールバックメソッドは、RegisterAPI、UnregisterAPI、およびRequestInvitation APIである。
説明すべき第1のAPIの実施形態の一例、すなわちRegisterAPIが、以下の表5に提供されている。
Figure 0005060018
このAPIは、UserDisplayDeviceを登録する。このデバイスが登録された後には、これをプレゼンタが見出すことができる。次いで、これらのプレゼンタは、そのプレゼンテーションに参加するための招待状をユーザに対して送付することができる。このAPI用のパラメータは、このディスプレイデバイスのフレンドリな名前とプレゼンタが参加者を招待するときに呼び出されるコールバックファンクションとである。出力パラメータは、後で登録を抹消するときに使用すべきハンドルである。このAPIについてのリターン値は、正常な場合にはS_OK、またはこのオペレーションを完了するだけの十分なメモリがない場合にはE_OUTOFMEMORYである。
UnregisterAPIの実施形態の一例が、以下の表6に提示されている。
Figure 0005060018
このAPIは、ディスプレイデバイスの登録を抹消する。このAPIが実行された後は、すべてのアクティブセッションは、終了させられ、ユーザは、他の参加者またはプレゼンタが見出すことができなくなる。このAPIは、Registerファンクションから戻されたハンドルをパラメータとして必要とし、この実施形態中ではどのようなリターン値も提供しない。
RequestInvitationAPIの実施形態の一例が、以下の表7に提示されている。
Figure 0005060018
以上で説明したように、本発明の一実施形態では、プレゼンテーションはUPnPデバイスである。RequestInvitationAPIが呼び出されるとき、このデバイスのUDNが入力として提供される。このUDNに基づいて、プレゼンテーションデバイスが取得される。このプレゼンテーションデバイスにおいて、次いでアクションRequestInvitationがユーザについての情報を用いて呼び出される。プレゼンタが、ユーザがプレゼンテーションに参加できるようにする場合、そのプレゼンタは招待状を返信する。このAPI用のパラメータは、Registerメソッドが戻すハンドル、そのプレゼンテーションについてのUDN、および出力としての招待状である。プレゼンタは、直ちに招待状を提供しようと決定することもできる。プレゼンタが招待状を提供しない場合には、これは空の文字列を含むことになる。このAPIは、成功の表示、または不十分なメモリまたは無効な引き数がある場合には失敗の表示を提供する。
Registerメソッドについて提供されるコールバックメソッドの実施形態の一例、すなわちInviteコールバックが以下の表8に提示されている。
Figure 0005060018
このメソッドは、あるプレゼンタが、プレゼンテーションを閲覧するようにユーザを招待したときに呼び出される。次いで、コールバックにおいて提供される招待状を端末サービスAPIと共に使用して最終的にそのプレゼンテーションを実際に閲覧するのに必要な接続を確立する。このコールバックメソッドについてのパラメータは、そのプレゼンタが提供する招待状を含んでいる。この招待状を使用してそのプレゼンテーションに参加することができる。他のパラメータは、そのプレゼンテーションのフレンドリな名前、およびそのプレゼンタのフレンドリな名前を含んでいる。このコールバックメソッドは、成功の表示を提供する。
以下に説明する次の組のAPIは、ユーザがプレゼンテーションを提供したいと思うときに使用されるAPIである。本発明の一実施形態では、これらのAPIは、Register API、UnregisterAPI、InviteAttendeeAPI、DisconnectProjectorAPI、GetStateAPI、GetCapabilitiesAPI、GetDisplaySettingsAPI、およびSetDisplaySettingsAPIを含んでいる。
次にこのプレゼンテーションAPIの説明に入るが、以下にRegisterAPIの実施形態の一例が、表9に提示されている。
Figure 0005060018
プレゼンタが、プレゼンテーションを開始したいと思うときにこのメソッドが呼び出される。かかるセッションがこのメソッドを使用して作成されるとき、以下のステップが実施される。すなわち、プレゼンテーションデバイスが、UPnPを用いて作成され登録される。前述のように、これによって誰でもそのプレゼンテーションを見出すことができるようになる。このメソッドと共に使用するためのパラメータは、プレゼンテーションのフレンドリな名前、プレゼンタのフレンドリな名前、およびユーザがそのプレゼンテーションを閲覧するのを要求する場合に関与するコールバックファンクションを含んでいる。このAPIはさらに、作成されるプレゼンテーションセッションについてのハンドルを提供する。このAPIは、不十分なメモリ、またはパラメータが無効である場合に起因する成功または失敗の表示を戻す。
UnregisterAPIの実施形態の一例が、以下の表10に提示されている。
Figure 0005060018
このAPIは、プレゼンタがプレゼンテーションの登録を抹消したいと思うときに呼び出される。プレゼンテーションの登録を抹消するときは、そのデバイスは、UPnP中で登録を抹消される。この実施形態におけるこのAPIについての唯一のパラメータは、停止すべきそのプレゼンテーションである。
InviteAttendeeAPIの実施形態の一例が、以下の表11に提示されている。
Figure 0005060018
このAPIは、プレゼンタが、そのプレゼンテーションを受け取るように参加者を招待したいと思うときに呼び出される。このメソッドが呼び出されるとき、プレゼンタはUDNを使用してそのデバイスを検索する。次に、この招待状を伴う、所与のUDNについてのディスプレイデバイス上のInviteメソッドに対する呼出しを行う。このメソッドについてのパラメータは、このプレゼンテーションに対するハンドル、招待すべき参加者のディスプレイデバイスのUDN、および参加者に提供すべき招待状を含んでいる。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
ConnectProjectorAPIの実施形態の一例が、以下の表12に提供されている。
Figure 0005060018
Figure 0005060018
このAPIが呼び出されるとき、この投影のUDNが検索される。次いで、Inviteメソッドが、この招待状を伴う所与のUDNについての投影デバイス上で呼び出される。このファンクションが正常に完了される場合には、セッショントークンが検索される。そのパラメータは、そのプレゼンテーションへのハンドル、そのプロジェクタに提供すべき招待状、および出力としてのセッショントークンである。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
DisconnectProjectorAPIの実施形態の一例が、以下の表13に提供されている。
Figure 0005060018
このAPIを呼び出して指定されたデバイスへの接続を終了する。このAPIについてのパラメータは、そのプレゼンテーションへのハンドルを含んでいる。切り離すべきプロジェクタのUDNおよび切り離すべきセッションである。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
GetProjectorCapabilitiesAPIの実施形態の一例が、以下の表14に提示されている。
Figure 0005060018
このメソッドは、プレゼンタがプロジェクタの機能を取得したいと思うときに呼び出される。この投影の機能は、その投影デバイス上でGetCapabilitiesメソッドを呼び出すことによって取得される。プレゼンタは、そのプロジェクタのUDNを入力し、このメソッドが、そのプロジェクタに関連する機能を出力する。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
GetProjectorStateAPIの実施形態の一例が、以下の表15に提示されている。
Figure 0005060018
このメソッドは、プレゼンタが、プロジェクタの現在の状態を検索したいと思うときに呼び出される。このプロジェクタ状態は、投影デバイス上でGetStateメソッドを呼び出すことによって取得される。プレゼンタは、プロジェクタのUDNを入力し、このメソッドは、このプロジェクタの状態を出力する。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
GetProjectorDisplaySettingsAPIの実施形態の一例が、以下の表16に提示されている。
Figure 0005060018
このメソッドは、プレゼンタが、プロジェクタについてのディスプレイ設定を検索したいと思うときに呼び出される。このプロジェクタのディスプレイ設定は、このプロジェクタ上のGetProjectionSettingsメソッドを呼び出すことによって取得される。プレゼンタは、このプロジェクタのUDN、ConnectProjectorが成功したときに取得されるセッショントークンを入力し、このメソッドは、このプロジェクタについてのディスプレイ設定を出力する。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
SetProjectorDisplaySettingsAPIの実施形態の一例が、以下の表17に提示されている。
Figure 0005060018
このメソッドは、プレゼンタが、プロジェクタについてのディスプレイ設定を設定したいと思うときに呼び出される。このディスプレイ設定は、このプロジェクタデバイス上でSetDisplaySettingsを行うことによって設定される。プレゼンタは、このプロジェクタのUDN、ConnectProjectorが成功したときに取得されるセッショントークン、およびこのプロジェクタについて設定すべきディスプレイ設定を入力する。このAPIは、成功または失敗の表示を戻す。この失敗は、そのオペレーションを完了するには不十分なメモリ、ハンドルが無効な場合の無効な引き数に起因することもある。
以上で紹介したように、StartPresentationAPIは、コールバックファンクションを含んでいる。PFN_REQUEST_INVITATIONコールバックファンクションの一実施形態が以下の表18に提示されている。
Figure 0005060018
このコールバックファンクションは、ユーザがそのプレゼンテーションデバイス上でRequestInvitationメソッドを呼び出したときに呼び出される。このコールバックは、その招待状それ自体を出力パラメータとして戻すことができ、また空の文字列をただ戻すこともできる。このメソッドのパラメータは、その招待状を要求する参加者のフレンドリな名前、その招待状を要求する参加者のUDN、および出力としてのその参加者に提供すべき招待状である。このメソッドは、成功の表示を戻す。
特許、特許出願、および出版を含めて、本明細書中で引用されたすべての参照は、ここにその全体が参照によって組み込まれている。すなわち、かかるあらゆる参照文献の各部分および全部が、本開示の一部をなすものと考えられ、したがって、かかるどの参照文献のどの部分もこの記述または本開示における他のどの記述によっても本開示の一部をなすことから除外されない。
本発明の様々な実施形態についての以上の説明を、例証と説明の目的で提示してきた。本発明を網羅的に説明することも、また本発明を開示された厳密な実施形態に限定することも意図していない。多数の変更形態または変形形態が、前述の教示を考慮すれば可能である。説明したこれらの実施形態は、本発明の原理と、それによって当業者が本発明を様々な実施形態において、また企図される特定の使用に適した様々な変更形態を用いて利用できるようにするその実際的な応用との最良の例証を提供するために選択し説明したものである。かかる変更形態および変形形態はすべて、公平に、法律的に、公正に権利が与えられる広さに従って解釈されるとき、添付の特許請求の範囲によって決定される本発明の範囲内に含まれる。
本発明が常駐するコンピュータシステムの一例を全般的に示すブロック図である。 2つのコードセグメントの間のプログラミングインターフェースを示す簡略化されたブロック図である。 2つのコードセグメントの間のプログラミングインターフェースの代替実施形態を示す簡略化されたブロック図である。 ファクタ分解の概念を示す、複数の個別のコミュニケーションに分割されるコミュニケーションを有する、2つのコードセグメント間のプログラミングインターフェースを示す簡略化されたブロック図である。 ファクタ分解の概念を示す、複数の個別のコミュニケーションに分割されるコミュニケーションを有する、2つのコードセグメント間のプログラミングインターフェースの代替実施形態を示す簡略化されたブロック図である。 再定義の概念を示す、無視され、追加され、または再定義されるある種の態様を有する、2つのコードセグメント間のプログラミングインターフェースを示す簡略化されたブロック図である。 再定義の概念を示す、無視され、追加され、または再定義されるある種の態様を有する、2つのコードセグメント間のプログラミングインターフェースの代替実施形態を示す簡略化されたブロック図である。 インラインコーディングの概念を示す、それらの間のインターフェースが形式を変更するようにマージされる2つのコードモジュールの機能の一部を有する、2つのコードセグメント間のプログラミングインターフェースを示す簡略化されたブロック図である。 インラインコーディングの概念を示す、それらの間のインターフェースが形式を変更するようにマージされる2つのコードモジュールの機能の一部を有する、2つのコードセグメント間のプログラミングインターフェースの代替実施形態を示す簡略化されたブロック図である。 分離の概念を示す、コミュニケーションが複数の別個のコミュニケーションにコミュニケーションを分割することによって間接的に実現される、2つのコードモジュール間のプログラミングインターフェースを示す簡略化されたブロック図である。 分離の概念を示す、コミュニケーションが複数の別個のコミュニケーションにコミュニケーションを分割することによって間接的に実現される、2つのコードモジュール間のプログラミングインターフェースの代替実施形態を示す簡略化されたブロック図である。 書換えの概念を示す、同じ結果を実現する何か他のものでプログラミングインターフェースを置き換える動的に書き換えられたコードを示す簡略化されたブロック図である。 書換えの概念を示す、同じ結果を実現する何か他のものでプログラミングインターフェースを置き換える動的に書き換えられたコードの代替実施形態を示す簡略化されたブロック図である。 投影を行うコンピュータと複数の投影ターゲットコンピュータとを備える複数のコンピュータ、ならびに電子会議室のディスプレイ画面またはプロジェクタを含めて本発明の一実施形態を実装することができるネットワークシステムの代替アーキテクチャを示す概略図である。 投影を行うコンピュータと複数の投影ターゲットコンピュータとを備える複数のコンピュータ、ならびに電子会議室のディスプレイ画面またはプロジェクタを含めて本発明の一実施形態を実装することができるネットワークシステムの代替アーキテクチャを示す概略図である。 本発明の一実施形態における、投影アプリケーションプログラムコンポーネントと関連するコンポーネントとの配置および相互接続をより詳細に示す概略図である。
符号の説明
201 プレゼンタのコンピューティングデバイス
203,205,207 参加者(コンピューティングデバイス)
209 参加者(ディスプレイデバイス)
211 ネットワーク
213,215,217,219,225 無線リンク
500 UPnPプレゼンテーションデバイス
502 UPnPユーザディスプレイデバイス
504,506,508 バイナリ

Claims (4)

  1. プレゼンタのマシンである投影デバイスから複数の参加者のマシンに対してプレゼンテーションを提供する方法であって、
    前記投影デバイスが、前記プレゼンテーションについてのプレゼンテーションセッションを開始するステップであって、前記プレゼンテーションセッションは前記複数の参加者のマシンに各々対応する複数の投影ターゲットデバイスを接続するためのセッションである、ステップと、
    前記投影デバイスが、前記プレゼンテーションについてのプレゼンテーションデバイスを生成して当該投影デバイスに登録するステップであって、前記プレゼンテーションデバイスは前記複数の投影ターゲットデバイスが見出すことが可能なUPnPデバイスであり、前記プレゼンテーションデバイスは一意的なデバイス名を有し、前記プレゼンテーションデバイスは招待状を要求するアクションを実行するメソッドを含む、ステップと、
    前記投影デバイスが、前記投影ターゲットデバイスから、前記投影ターゲットデバイスの一意的なデバイス名を伴う許可要求を受け取るステップと、
    前記投影デバイスが、前記許可要求に応答して前記プレゼンテーションに対する招待状を生成するステップであって、
    前記投影デバイスが、前記許可要求に応答して、前記招待状を要求するアクションを実行するメソッドを実行して、招待状を生成するAPIのポインタを得て、
    前記投影デバイスが、前記プレゼンテーションデバイスの一意的なデバイス名を入力として前記ポインタで示された前記招待状を生成するAPIを使用して招待状を生成ここで前記投影ターゲットデバイスの一意的なデバイス名によって識別されるプロパティを含む招待状が生成される、ステップと、
    前記投影デバイスが、前記投影ターゲットデバイスに対して前記招待状を送信するステップと、
    前記投影デバイスが、前記プレゼンテーションデバイスと前記複数の投影ターゲットデバイスとの間を接続する端末サービスセッションを生成して前記複数の参加者が前記プレゼンテーションを閲覧できるようにするステップと
    を含むことを特徴とする方法。
  2. 前記投影デバイスが、プロジェクタ装置に対応するUPnPデバイスである少なくとも1つのプロジェクタデバイスを求めてSSDP探索を実施して、前記少なくとも1つのプロジェクタデバイス見出すステップと、
    前記投影デバイスが、前記少なくとも1つのプロジェクタデバイスのうちの少なくとも1つを選択するステップと、
    前記投影デバイスが、前記選択されたプロジェクタデバイスに対応するプロジェクタ装置との接続を確立するステップと、
    前記投影デバイスが、前記選択されたプロジェクタデバイスについて招待状を生成するステップと、
    前記投影デバイスが、前記選択されたプロジェクタデバイスに対して招待状を送付するステップと、
    前記投影デバイスが、前記レゼンテーションセッションと前記選択されたプロジェクタデバイスに対応するプロジェクタ装置との間を接続する接続メソッドを開始するステップであって、それによってその前記選択されたプロジェクタデバイスに対応するプロジェクタ装置上の端末サービスクライアントは、前記端末サービスセッションとの接続を確立する、ステップと、
    前記投影デバイスが、前記選択されたプロジェクタデバイスに対応するプロジェクタ装置のディスプレイ設定を設定するステップであって、
    前記投影デバイスが、前記選択されたプロジェクタデバイスによって提供される当該プロジェクタ装置のディスプレイ設定を取得するためのメソッドを実行し、
    前記投影デバイスが、取得した前記プロジェクタのディスプレイ設定に基づいて前記選択されたプロジェクタデバイスのディスプレイ設定を設定する、ステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. プレゼンタのコンピュータである投影デバイスから複数の参加者のマシンに対してプレゼンテーションを提供するためのプログラムを記録したコンピュータ読取可能な記録媒体であって、前記プログラムは、前記投影デバイスに、
    前記プレゼンテーションについてのプレゼンテーションセッションを開始するステップであって、前記プレゼンテーションセッションは前記複数の参加者のマシンに各々対応する複数の投影ターゲットデバイスを接続するためのセッションである、ステップと、
    前記プレゼンテーションについてのプレゼンテーションデバイスを生成して当該投影デバイスに登録するステップであって、前記プレゼンテーションデバイスは前記複数の投影ターゲットデバイスが見出すことが可能なUPnPデバイスであり、前記プレゼンテーションデバイスは一意的なデバイス名を有し、前記プレゼンテーションデバイスは招待状を要求するアクションを実行するメソッドを含む、ステップと、
    前記投影ターゲットデバイスから、当該投影ターゲットデバイスの一意的なデバイス名を伴う許可要求を受け取るステップと、
    前記許可要求に応答して前記プレゼンテーションに対する招待状を生成するステップであって、
    前記許可要求に応答して、前記招待状を要求するアクションを実行するメソッドを実行して、招待状を生成するAPIのポインタを得て、
    前記プレゼンテーションデバイスの一意的なデバイス名を入力として前記ポインタで示された前記招待状を生成するAPIを使用して招待状を生成し、ここで前記投影ターゲットデバイスの一意的なデバイス名によって識別されるプロパティを含む招待状が生成される、ステップと、
    前記投影デバイスが、前記投影ターゲットデバイスに対して前記招待状を送信するステップと、
    前記投影デバイスが、前記プレゼンテーションデバイスと前記複数の投影ターゲットデバイスとの間を接続する端末サービスセッションを生成して前記複数の参加者が前記プレゼンテーションを閲覧できるようにするステップと
    を実行させることを特徴とする記録媒体。
  4. 前記プログラムは、前記投影デバイスに、
    プロジェクタ装置に対応するUPnPデバイスである少なくとも1つのプロジェクタデバイスを求めてSSDP探索を実施して、前記少なくとも1つのプロジェクタデバイス見出すステップと、
    前記少なくとも1つのプロジェクタデバイスのうちの少なくとも1つを選択するステップと、
    前記選択されたプロジェクタデバイスに対応するプロジェクタ装置との接続を確立するステップと、
    前記選択されたプロジェクタデバイスについて招待状を生成するステップと、
    前記選択されたプロジェクタデバイスに対して招待状を送付するステップと、
    前記レゼンテーションセッションと前記選択されたプロジェクタデバイスに対応するプロジェクタ装置との間を接続する接続メソッドを開始するステップであって、それによってその前記選択されたプロジェクタデバイスに対応するプロジェクタ装置上の端末サービスクライアントは、前記端末サービスセッションとの接続を確立する、ステップと、
    前記選択されたプロジェクタデバイスに対応するプロジェクタ装置のディスプレイ設定を設定するステップであって、
    前記選択されたプロジェクタデバイスによって提供される当該プロジェクタ装置のディスプレイ設定を取得するためのメソッドを実行し、
    取得した前記プロジェクタのディスプレイ設定に基づいて前記選択されたプロジェクタデバイスのディスプレイ設定を設定する、ステップと
    をさらに実行させることを特徴とする請求項3に記載の記録媒体。
JP2004275873A 2003-10-23 2004-09-22 一対多のデータ投影のシステムおよび方法 Expired - Fee Related JP5060018B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692,384 US8260857B2 (en) 2003-10-23 2003-10-23 One to many data projection system and method
US10/692,384 2003-10-23

Publications (2)

Publication Number Publication Date
JP2005129029A JP2005129029A (ja) 2005-05-19
JP5060018B2 true JP5060018B2 (ja) 2012-10-31

Family

ID=34423320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004275873A Expired - Fee Related JP5060018B2 (ja) 2003-10-23 2004-09-22 一対多のデータ投影のシステムおよび方法

Country Status (10)

Country Link
US (1) US8260857B2 (ja)
EP (1) EP1528505B1 (ja)
JP (1) JP5060018B2 (ja)
KR (1) KR101099194B1 (ja)
CN (2) CN1610308A (ja)
AU (1) AU2004214576B2 (ja)
BR (1) BRPI0404405A (ja)
CA (1) CA2482220C (ja)
MX (1) MXPA04010032A (ja)
RU (1) RU2412478C2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3707407B2 (ja) * 2001-08-28 2005-10-19 セイコーエプソン株式会社 パスワードを投写するプロジェクタ
US7293071B2 (en) * 2002-05-27 2007-11-06 Seiko Epson Corporation Image data transmission system, process and program, image data output device and image display device
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
JP2004287160A (ja) * 2003-03-24 2004-10-14 Seiko Epson Corp 画像表示システム、プロジェクタ、画像表示方法、プロジェクタ制御方法、画像表示プログラムおよびプロジェクタ制御プログラム
US8261062B2 (en) * 2003-03-27 2012-09-04 Microsoft Corporation Non-cryptographic addressing
US7496648B2 (en) * 2003-10-23 2009-02-24 Microsoft Corporation Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking
US7949996B2 (en) 2003-10-23 2011-05-24 Microsoft Corporation Peer-to-peer identity management managed interfaces and methods
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US7716273B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Systems and methods for projecting content from computing devices
US20050091595A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Group shared spaces
KR100554101B1 (ko) * 2004-01-15 2006-02-22 김석우 다중 화면 전송을 위한 빔프로젝터 서버단말기 및 그전송방법
JP2005208823A (ja) * 2004-01-21 2005-08-04 Seiko Epson Corp プロジェクタのネットワークシステム
US8688803B2 (en) 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7929689B2 (en) * 2004-06-30 2011-04-19 Microsoft Corporation Call signs
US7620902B2 (en) * 2005-04-20 2009-11-17 Microsoft Corporation Collaboration spaces
US8036140B2 (en) 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7571228B2 (en) * 2005-04-22 2009-08-04 Microsoft Corporation Contact management in a serverless peer-to-peer system
US20060242236A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for extensible computer assisted collaboration
US7752253B2 (en) * 2005-04-25 2010-07-06 Microsoft Corporation Collaborative invitation system and method
US7617281B2 (en) * 2005-04-25 2009-11-10 Microsoft Corporation System and method for collaboration with serverless presence
US7660851B2 (en) * 2005-07-06 2010-02-09 Microsoft Corporation Meetings near me
US20070011232A1 (en) * 2005-07-06 2007-01-11 Microsoft Corporation User interface for starting presentations in a meeting
CN100581226C (zh) * 2005-08-05 2010-01-13 三星电子株式会社 用于提供多屏幕的设备以及动态配置多屏幕的方法
US8243198B2 (en) 2005-08-05 2012-08-14 Samsung Electronics Co., Ltd. Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20070200920A1 (en) * 2006-02-14 2007-08-30 Walker Mark R Digital communications adaptor
JP5040341B2 (ja) 2006-04-04 2012-10-03 セイコーエプソン株式会社 プロジェクタシステム
US7439937B2 (en) * 2006-04-14 2008-10-21 Microsoft Corporation Appropriately rendering terminal server graphical data at multiple client side monitors
US8086842B2 (en) * 2006-04-21 2011-12-27 Microsoft Corporation Peer-to-peer contact exchange
US8069208B2 (en) * 2006-04-21 2011-11-29 Microsoft Corporation Peer-to-peer buddy request and response
JP2007323732A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 再生制御装置、再生制御方法、及び再生装置
WO2007147163A2 (en) * 2006-06-16 2007-12-21 Cardax Pharmaceuticals, Inc. Compositions comprising carotenoid analogs or derivatives and methods for synthesis
JP4692529B2 (ja) * 2007-08-07 2011-06-01 セイコーエプソン株式会社 グラフィカルユーザインタフェース装置
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
US8819132B2 (en) * 2009-05-27 2014-08-26 Microsoft Corporation Real-time directory groups
CA2707286A1 (en) * 2009-06-11 2010-12-11 X2O Media Inc. System and method for generating multimedia presentations
CN102148842B (zh) * 2010-02-08 2014-06-04 联想(北京)有限公司 一种远程桌面体系的音频处理方法和设备
JP5402775B2 (ja) * 2010-03-26 2014-01-29 セイコーエプソン株式会社 プロジェクター装置および接続確立方法
US8806352B2 (en) * 2011-05-06 2014-08-12 David H. Sitrick System for collaboration of a specific image and utilizing selected annotations while viewing and relative to providing a display presentation
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US8914735B2 (en) 2011-05-06 2014-12-16 David H. Sitrick Systems and methodologies providing collaboration and display among a plurality of users
US8990677B2 (en) 2011-05-06 2015-03-24 David H. Sitrick System and methodology for collaboration utilizing combined display with evolving common shared underlying image
US9224129B2 (en) 2011-05-06 2015-12-29 David H. Sitrick System and methodology for multiple users concurrently working and viewing on a common project
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US8918724B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies providing controlled voice and data communication among a plurality of computing appliances associated as team members of at least one respective team or of a plurality of teams and sub-teams within the teams
US9330366B2 (en) 2011-05-06 2016-05-03 David H. Sitrick System and method for collaboration via team and role designation and control and management of annotations
US8875011B2 (en) 2011-05-06 2014-10-28 David H. Sitrick Systems and methodologies providing for collaboration among a plurality of users at a plurality of computing appliances
US8918723B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies comprising a plurality of computing appliances having input apparatus and display apparatus and logically structured as a main team
US8918721B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies providing for collaboration by respective users of a plurality of computing appliances working concurrently on a common project having an associated display
US8826147B2 (en) 2011-05-06 2014-09-02 David H. Sitrick System and methodology for collaboration, with selective display of user input annotations among member computing appliances of a group/team
US8924859B2 (en) 2011-05-06 2014-12-30 David H. Sitrick Systems and methodologies supporting collaboration of users as members of a team, among a plurality of computing appliances
US8918722B2 (en) 2011-05-06 2014-12-23 David H. Sitrick System and methodology for collaboration in groups with split screen displays
JP6236938B2 (ja) * 2012-07-10 2017-11-29 株式会社リコー 出力システム、操作端末及びプログラム
EP2880104A1 (en) 2012-08-01 2015-06-10 Chromatic Technologies, Inc. Interactive coating for end printing
US9047244B1 (en) 2012-09-11 2015-06-02 Google Inc. Multi-screen computing device applications
US20140173442A1 (en) * 2012-12-18 2014-06-19 Microsoft Corporation Presenter view in presentation application
US20140214504A1 (en) * 2013-01-31 2014-07-31 Sony Corporation Virtual meeting lobby for waiting for online event
CN106060492B (zh) * 2016-06-28 2018-11-13 联想(北京)有限公司 一种投影方法及装置
CN112312060B (zh) * 2020-08-28 2023-07-25 北京字节跳动网络技术有限公司 屏幕共享方法、装置和电子设备
CN112837561B (zh) * 2020-12-29 2022-08-23 河南库课数字科技有限公司 一种提高专注力的幼儿学前教育系统及使用方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509048A (en) 1993-07-26 1996-04-16 Meidan; Reuven Radio transceiver with interface apparatus which visually displays information and method therefor
US5944794A (en) 1994-09-30 1999-08-31 Kabushiki Kaisha Toshiba User identification data management scheme for networking computer systems using wide area network
US5835715A (en) 1995-10-06 1998-11-10 Dawber & Company, Inc. Interactive theater and feature presentation system
US5790785A (en) 1995-12-11 1998-08-04 Customer Communications Group, Inc. World Wide Web registration information processing system
US6148323A (en) 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
JPH11506595A (ja) * 1996-03-29 1999-06-08 ノーザン・テレコム・リミテッド マルチメディア文書の会議参加システム
US6088451A (en) 1996-06-28 2000-07-11 Mci Communications Corporation Security system and method for network element access
US6052717A (en) 1996-10-23 2000-04-18 Family Systems, Ltd. Interactive web book system
AU6882998A (en) * 1997-03-31 1998-10-22 Broadband Associates Method and system for providing a presentation on a network
US5995102A (en) 1997-06-25 1999-11-30 Comet Systems, Inc. Server system and method for modifying a cursor image
JPH1131059A (ja) 1997-07-11 1999-02-02 Canon Inc 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
JP4676060B2 (ja) 1997-11-14 2011-04-27 マイクロソフト コーポレーション 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
US6094189A (en) 1998-04-17 2000-07-25 Quillen; Wendell A. Visual echo remote laser pointer
WO2000025199A1 (en) 1998-10-27 2000-05-04 Petersen Joel R Portable interactive presentation device
US6560637B1 (en) 1998-12-02 2003-05-06 Polycom, Inc. Web-enabled presentation device and methods of use thereof
JP2000222163A (ja) 1999-01-29 2000-08-11 Seiko Epson Corp データ表示システムおよびデータ表示システムにおけるデータ表示制御方法
WO2000057308A1 (en) 1999-03-23 2000-09-28 Frankel & Company Control of server-originated dynamic digital signage at client site using automated data acquisition
US6910068B2 (en) 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6636888B1 (en) 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
JP4329174B2 (ja) 1999-07-23 2009-09-09 ソニー株式会社 プレゼンテーションシステム
WO2001008353A1 (en) 1999-07-27 2001-02-01 Bula Bay Corp. Interactive network presentation session management
JP3489498B2 (ja) 1999-07-30 2004-01-19 株式会社日立製作所 プラント制御システム、及び補助運転操作卓における通信先切替方法
US20030191816A1 (en) * 2000-01-11 2003-10-09 Spoovy, Llc System and method for creating and delivering customized multimedia communications
US6249281B1 (en) 2000-02-28 2001-06-19 Presenter.Com On-demand presentation graphical user interface
JP4568957B2 (ja) 2000-05-16 2010-10-27 ソニー株式会社 カード型ネットワークインタフェース,ネットワーク会議用端末装置及びネットワーク会議システム
EP2278451A1 (en) 2000-05-31 2011-01-26 Seiko Epson Corporation Projector, projection display system, and corresponding method and recording medium
JP2002064418A (ja) 2000-08-23 2002-02-28 Casio Comput Co Ltd プレゼンテーション装置、プレゼンテーション方法及び情報記録媒体
JP2002094531A (ja) 2000-09-20 2002-03-29 Casio Comput Co Ltd ネットワーク上のデバイス情報取得方法、ネットワーク上のデバイス情報取得装置及び記録媒体
JP2002099403A (ja) 2000-09-25 2002-04-05 Toshiba Corp コンピュータシステムおよび表示装置切り替え方法
US6943752B2 (en) 2000-09-28 2005-09-13 Matsushita Electric Industrial Co., Ltd. Presentation system, a display device, and a program
US20020051200A1 (en) 2000-11-01 2002-05-02 Chang William Ho Controller for device-to-device pervasive digital output
US6904451B1 (en) 2000-11-27 2005-06-07 Eastman Kodak Company Wireless networked presentation system
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US6675261B2 (en) 2000-12-22 2004-01-06 Oblix, Inc. Request based caching of data store data
US7275102B2 (en) 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
AU2002234258A1 (en) 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
KR100708467B1 (ko) * 2001-02-03 2007-04-18 삼성전자주식회사 홈네트워크내의 기기에 서비스를 제공하는 시스템 및 그방법
WO2002073926A1 (en) 2001-03-09 2002-09-19 Ascio Technologies, Inc. System and a method for managing digital identities
US6999912B2 (en) 2001-03-13 2006-02-14 Microsoft Corporation Provisioning computing services via an on-line networked computing environment
US6725219B2 (en) * 2001-03-13 2004-04-20 Seiko Epson Corporation Internet presentation system
US6981043B2 (en) 2001-03-27 2005-12-27 International Business Machines Corporation Apparatus and method for managing multiple user identities on a networked computer system
US7065587B2 (en) 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7180475B2 (en) 2001-06-07 2007-02-20 Infocus Corporation Method and apparatus for wireless image transmission to a projector
US20030013438A1 (en) 2001-07-12 2003-01-16 Darby George Eugene Pocket concierge system and method
US20030023681A1 (en) 2001-07-26 2003-01-30 International Business Machines Corporation Sharing messaging device information among network users
US20030028637A1 (en) 2001-07-31 2003-02-06 Gross Curtis T. Method and apparatus for providing network access to a shared image projection device
US7047308B2 (en) 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
US7493363B2 (en) 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7299351B2 (en) 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7068789B2 (en) 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
WO2003058476A1 (en) 2001-09-28 2003-07-17 Infocus Corporation Network projector interface system
AU2002363055A1 (en) 2001-10-19 2003-05-06 Bank Of America Corporation System and method for interative advertising
GB0126649D0 (en) * 2001-11-06 2002-01-02 Mitel Knowledge Corp System and method for facilitating the selection of electronic services using infrared and a network address identification
US7006055B2 (en) 2001-11-29 2006-02-28 Hewlett-Packard Development Company, L.P. Wireless multi-user multi-projector presentation system
US8417827B2 (en) * 2001-12-12 2013-04-09 Nokia Corporation Synchronous media playback and messaging system
JP3707433B2 (ja) 2001-12-25 2005-10-19 セイコーエプソン株式会社 プロジェクタの制御システム及び制御方法
JP2003198870A (ja) 2001-12-25 2003-07-11 Seiko Epson Corp プロジェクタのワイヤレス制御システム及びワイヤレス制御方法
US6830340B2 (en) 2001-12-26 2004-12-14 Infocus Corporation Image-rendering device
US7044605B2 (en) 2001-12-26 2006-05-16 Infocus Corporation Image-rendering device
US20030140344A1 (en) 2002-01-21 2003-07-24 Ghulam Bhatti Wireless control for universal plug and play networks and devices
JP2003218877A (ja) 2002-01-22 2003-07-31 Sony Corp ネットワークシステム、端末及び通信制御方法
US7197562B2 (en) 2002-04-05 2007-03-27 Infocus Corporation Projector device management system
US6912622B2 (en) 2002-04-15 2005-06-28 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol
US20030225621A1 (en) 2002-04-17 2003-12-04 Hadi Nurcahya System, apparatus and method for advertising through product or service previews
US7899915B2 (en) 2002-05-10 2011-03-01 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
US20030236889A1 (en) 2002-06-25 2003-12-25 Microsoft Corporation Data projection system and method
US7206934B2 (en) 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
US7027035B2 (en) 2002-10-07 2006-04-11 Hewlett-Packard Development Company, L.P. Image copy to a second display
US8037202B2 (en) 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
CH696355A5 (de) 2002-11-14 2007-05-15 Clariant Speciality Fine Chemi Katalytisches Verfahren zur Herstellung von Carbonyl-Verbindungen.
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US20040128344A1 (en) * 2002-12-30 2004-07-01 Nokia Corporation Content and service registration, query and subscription, and notification in networks
US7596625B2 (en) 2003-01-27 2009-09-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
US7437440B2 (en) 2003-01-27 2008-10-14 Microsoft Corporation Peer-to-peer networking framework application programming interfaces
US7965837B2 (en) 2003-04-30 2011-06-21 Sony Corporation Method and system for wireless digital video presentation
US7434166B2 (en) 2003-06-03 2008-10-07 Harman International Industries Incorporated Wireless presentation system
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US20050091359A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Systems and methods for projecting content from computing devices
US20060147791A1 (en) 2004-12-30 2006-07-06 Debe Mark K Platinum recovery from fuel cell stacks

Also Published As

Publication number Publication date
KR20050039531A (ko) 2005-04-29
RU2412478C2 (ru) 2011-02-20
JP2005129029A (ja) 2005-05-19
CN103929343A (zh) 2014-07-16
MXPA04010032A (es) 2005-04-28
CA2482220C (en) 2014-03-18
EP1528505A1 (en) 2005-05-04
AU2004214576A1 (en) 2005-05-12
CN1610308A (zh) 2005-04-27
EP1528505B1 (en) 2013-02-27
CA2482220A1 (en) 2005-04-23
RU2004131035A (ru) 2006-04-10
BRPI0404405A (pt) 2005-06-21
US20050102356A1 (en) 2005-05-12
AU2004214576B2 (en) 2010-07-08
KR101099194B1 (ko) 2011-12-27
CN103929343B (zh) 2019-02-05
US8260857B2 (en) 2012-09-04

Similar Documents

Publication Publication Date Title
JP5060018B2 (ja) 一対多のデータ投影のシステムおよび方法
Dey et al. A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications
RU2611041C9 (ru) Способы и системы для совместной конференцсвязи и совместного использования программного приложения
Soldatos et al. Agent based middleware infrastructure for autonomous context-aware ubiquitous computing services
RU2438169C2 (ru) Подсистемно-контекстная архитектура для комнат для работы в группе в виртуальном пространстве
JP4979954B2 (ja) アプリケーションの1つのクラスのユーザに、そのアプリケーションの別のクラスのユーザが視覚的に体験している事物のビューを提供するためのシステムおよび方法
JP2005129068A (ja) コンピューティングデバイスからコンテンツをプロジェクトするためのシステムおよび方法
US7792904B2 (en) Sharing material in a master-slave configuration using an instant messaging infrastructure
Ådahl Shared resource for collaborative editing over a wireless network
Tripathi et al. A specification model for context-based collaborative applications
Busetta et al. Service delivery in smart environments by implicit organizations
El Saddik et al. JASMINE: Java application sharing in multiuser interactive environments
US20190058743A1 (en) Joining executable component to online conference
Baresi et al. LIQDROID: towards seamlessly distributed Android applications
Edwards et al. Supporting serendipitous integration in mobile computing environments
US20210028952A1 (en) Venue system join into online meeting services
Han et al. A service composition oriented framework for configuring SMeet multiparty collaboration environments
Chen et al. Facilitating dynamic collaborations with econtract services
Pozzer et al. CSVTool-A tool for video-based collaboration
Anzures-García et al. Development of extensible and flexible collaborative applications using a web service-based architecture
Newman End-user service composition in ubiquitous computing environments
Anzures-García et al. SOA-based Generic Architecture for CSCW Systems.
Lima et al. A co-browsing system with conference support
Heitmann Discolab: a toolkit for development of shared display systems in ubicollab
Busetta et al. Delivering services in active museums via group communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110404

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110405

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110425

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110701

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: 20120803

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5060018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees