(57)【要約】クライアントコンピューティングデバイスによってリモートアクセスされるアプリケーションに連携会議機能を提供するためのシステムおよび方法。クライアントメディア共有アプリケーションは、クライアント層に提供され、クライアントメディア共有アプリケーションは、クライアントコンピューティングデバイスの少なくとも１つがクライアントコンピューティングデバイスとメディアを共有できるようにする。共有メディアを受信する会議マネージャーアプリケーションは、サーバー層に提供される。会議マネージャーアプリケーションは、共有メディアをクライアントコンピューティングデバイスに適用できるようにする。【選択図】図５Ａ
2015507237.tif 000002
【特許請求の範囲】
【請求項１】
リモートアクセスされるアプリケーションに連携会議機能を提供する方法であって、
アプリケーション層と、サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークであって、前記リモートアクセスされるアプリケーションにアクセスするクライアントコンピューティングデバイス間で、前記リモートアクセスされるアプリケーションに関する第１の情報を、前記リモートアクセスされるアプリケーションを前記クライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信する、前記階層化されたリモートアクセスフレームワークを提供するステップと、
サーバーリモートアクセスアプリケーションであって、前記状態モデルを修正することが可能な前記サーバーリモートアクセスアプリケーションを前記サーバー層において提供するステップと、
クライアントリモートアクセスアプリケーションを前記クライアント層または前記アプリケーション層において提供するステップと、
クライアントメディア共有アプリケーションであって、前記クライアントコンピューティングデバイスの少なくとも１つが前記クライアントコンピューティングデバイスの前記少なくとも１つによってアクセス可能なメディアを共有できるようにする前記クライアントメディア共有アプリケーションを前記クライアント層において提供するステップと、
会議マネージャーアプリケーションであって、前記共有メディアを受信する前記会議マネージャーアプリケーションを前記サーバー層へ提供するステップと、
前記クライアントコンピューティングデバイスの少なくとも１つに前記共有メディアが提供されるよう前記状態モデルがさらに前記共有メディアを含むように修正するステップと
を備える方法。
【請求項２】
会議スタブアプリケーションを前記クライアントコンピューティングデバイスのそれぞれの前記サーバー層に提供するステップであって、それぞれの会議スタブアプリケーションが前記サーバーリモートアクセスアプリケーションと連動して前記状態モデルを修正する前記会議スタブアプリケーションを提供するステップをさらに備える、請求項１に記載の方法。
【請求項３】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアントメディア共有アプリケーションから直接的に受信する、請求項１〜２のいずれか１項に記載の方法。
【請求項４】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアントリモートアクセスアプリケーションから前記会議スタブアプリケーションを介して間接的に受信する、請求項２に記載の方法。
【請求項５】
前記共有メディアは、オーディオ、ビデオ、画像、デスクトップスクリーン取得、またはテキストメッセージである、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記共有メディアは前記クライアントコンピューティングデバイスの少なくとも２つによって同時に共有され、前記クライアントコンピューティングデバイスの前記少なくとも２つの両方に由来する、請求項１に記載の方法。
【請求項７】
前記会議マネージャーアプリケーションは、前記少なくとも１つのコンピューティングデバイスからの前記共有メディアを前記それぞれの会議スタブアプリケーションに適用できるようにすることによって、マルチプレクサーとして機能する、請求項２〜５のいずれか１項に記載の方法。
【請求項８】
連携会議機能を提供する方法であって、
サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークであって、共有メディアにアクセスするクライアントコンピューティングデバイス間で、前記共有メディアに関する情報を、前記共有メディアを前記クライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信する前記階層化されたリモートアクセスフレームワークを提供するステップと、
サーバーリモートアクセスアプリケーションであって、前記状態モデルを修正することが可能な前記サーバーリモートアクセスアプリケーションを前記サーバー層において提供するステップと、
クライアントメディア共有アプリケーションであって、前記クライアントコンピューティングデバイスの少なくとも１つが前記クライアントコンピューティングデバイスと前記共有メディアを共有できるようにする前記クライアントメディア共有アプリケーションを前記クライアント層において提供するステップと、
会議マネージャーアプリケーションであって、前記共有メディアを受信する前記会議マネージャーアプリケーションを前記サーバー層へ提供するステップと、
前記クライアントコンピューティングデバイスの少なくとも１つに前記共有メディアが提供されるよう前記状態モデルがさらに前記共有メディアを含むように修正するステップと
を備える方法。
【請求項９】
会議スタブアプリケーションを前記クライアントコンピューティングデバイスのそれぞれの前記サーバー層に提供するステップであって、それぞれの会議スタブアプリケーションが前記サーバーリモートアクセスアプリケーションと連動して前記状態モデルを修正する前記会議スタブアプリケーションを提供するステップをさらに備える、請求項８に記載の方法。
【請求項１０】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアントメディア共有アプリケーションから直接的に受信する、請求項８〜９のいずれか１項に記載の方法。
【請求項１１】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアント層に提供されている前記クライアントリモートアクセスアプリケーションから前記会議スタブアプリケーションを介して間接的に受信する、請求項９に記載の方法。
【請求項１２】
前記共有メディアは、オーディオ、ビデオ、画像、デスクトップスクリーン取得、またはテキストメッセージである、請求項８〜１１のいずれか１項に記載の方法。
【請求項１３】
前記共有メディアは前記クライアントコンピューティングデバイスの少なくとも２つによって同時に共有され、前記クライアントコンピューティングデバイスの前記少なくとも２つの両方に由来する、請求項８に記載の方法。
【請求項１４】
前記会議マネージャーアプリケーションは、前記少なくとも１つのコンピューティングデバイスからの前記共有メディアを前記それぞれの会議スタブアプリケーションに適用できるようにすることによって、マルチプレクサーとして機能する、請求項９〜１２のいずれか１項に記載の方法。
【請求項１５】
アプリケーション層と、サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークにおいてリモートアクセスされるアプリケーションに連携会議機能を提供するための、コンピュータ実行可能命令が保存された有形のコンピュータ可読記憶媒体であって、前記階層化されたリモートアクセスフレームワークは、前記リモートアクセスされるアプリケーションにアクセスするクライアントコンピューティングデバイス間で、前記リモートアクセスされるアプリケーションに関する第１の情報を、前記リモートアクセスされるアプリケーションを前記クライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信するよう構成され、コンピューティングデバイスで実行されるとき、前記コンピューティングデバイスに、
前記状態モデルを修正することが可能なサーバーリモートアクセスアプリケーションを前記サーバー層において提供させ、
前記クライアントコンピューティングデバイスの少なくとも１つがアクセス可能な共有メディアをクライアントメディア共有アプリケーションから受信できる会議マネージャーアプリケーションを前記サーバー層に提供させ、
前記クライアントコンピューティングデバイスの少なくとも１つに前記共有メディアが提供されるよう前記状態モデルがさらに前記共有メディアを含むように修正させる有形のコンピュータ可読記憶媒体。
【請求項１６】
前記コンピューティングデバイスで実行されるとき、前記コンピューティングデバイスに、
会議スタブアプリケーションを前記クライアントコンピューティングデバイスのそれぞれの前記サーバー層に提供させ、それぞれの会議スタブアプリケーションが前記サーバーリモートアクセスアプリケーションと連動して前記状態モデルを修正させる、さらに別のコンピュータ実行可能命令を保存している、請求項１５に記載の有形のコンピュータ可読記憶媒体。
【請求項１７】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアントメディア共有アプリケーションから直接的に受信する、請求項１５〜１６のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【請求項１８】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアント層または前記アプリケーション層に提供されている前記クライアントリモートアクセスアプリケーションから前記会議スタブアプリケーションを介して間接的に受信する、請求項１６に記載の有形のコンピュータ可読記憶媒体。
【請求項１９】
前記共有メディアは、オーディオ、ビデオ、画像、デスクトップスクリーン取得、またはテキストメッセージである、請求項１５〜１８のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【請求項２０】
前記共有メディアは、前記クライアントコンピューティングデバイスの少なくとも２つによって同時に共有され、前記クライアントコンピューティングデバイスの前記少なくとも２つの両方に由来する、請求項１５に記載の有形のコンピュータ可読記憶媒体。
【請求項２１】
前記会議マネージャーアプリケーションは、前記少なくとも１つのコンピューティングデバイスからの前記共有メディアを前記それぞれの会議スタブアプリケーションに適用できるようにすることによって、マルチプレクサーとして機能する、請求項１６〜１９のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【請求項２２】
サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークに連携会議機能を提供するための、有形のコンピュータ可読記憶媒体であって、前記階層化されたリモートアクセスフレームワークは、共有メディアにアクセスするクライアントコンピューティングデバイス間で、前記共有メディアに関する情報を、前記共有メディアを前記クライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信し、コンピューティングデバイスによって実行されるとき、前記コンピューティングデバイスに、
前記状態モデルを修正することが可能なサーバーリモートアクセスアプリケーションを前記サーバー層において提供させ、
前記クライアントコンピューティングデバイスの少なくとも１つがアクセス可能な共有メディアをクライアントメディア共有アプリケーションから受信できる会議マネージャーアプリケーションを前記サーバー層に提供させ、
前記クライアントコンピューティングデバイスの少なくとも１つに前記共有メディアが提供されるよう前記状態モデルがさらに前記共有メディアを含むように修正させる前記有形のコンピュータ可読記憶媒体。
【請求項２３】
前記コンピューティングデバイスで実行されるとき、前記コンピューティングデバイスに、
会議スタブアプリケーションを前記クライアントコンピューティングデバイスのそれぞれの前記サーバー層に提供させ、それぞれの会議スタブアプリケーションが前記サーバーリモートアクセスアプリケーションと連動して前記状態モデルを修正させる、さらに別のコンピュータ実行可能命令を保存している、請求項２２に記載の有形のコンピュータ可読記憶媒体。
【請求項２４】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアントメディア共有アプリケーションから直接的に受信する、請求項２２〜２３のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【請求項２５】
前記会議マネージャーアプリケーションは、前記共有メディアを前記クライアント層に提供されている前記クライアントリモートアクセスアプリケーションから前記会議スタブアプリケーションを介して間接的に受信する、請求項２３に記載の有形のコンピュータ可読記憶媒体。
【請求項２６】
前記共有メディアは、オーディオ、ビデオ、画像、デスクトップスクリーン取得、またはテキストメッセージである、請求項２２〜２５のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【請求項２７】
前記共有メディアは、前記クライアントコンピューティングデバイスの少なくとも２つによって同時に共有され、前記クライアントコンピューティングデバイスの前記少なくとも２つの両方に由来する、請求項２２に記載の有形のコンピュータ可読記憶媒体。
【請求項２８】
前記会議マネージャーアプリケーションは、前記少なくとも１つのコンピューティングデバイスからの前記共有メディアを前記それぞれの会議スタブアプリケーションに適用できるようにすることによって、マルチプレクサーとして機能する、請求項２３〜２６のいずれか１項に記載の有形のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ブロードバンドおよびワイヤレスネットワークアクセスの成長および普及の結果、サーバー、アプリケーションプログラムおよびデータへのユビキタスなリモートアクセスが一般に広まっている。このため、ユーザーが、ますます多様化するクライアントデバイス（例えば、モバイルデバイス、テーブルコンピューティングデバイス、ラップトップ／ノートブック／デスクトップコンピュータなど）を使用して、アプリケーションプログラムおよびデータにアクセスしている。データは、３Ｇおよび４Ｇモバイルデータネットワーク、ＷｉＦｉおよびＷｉＭａｘなどのワイヤレスネットワーク、有線ネットワークなどを含む様々なネットワークを通してリモートサーバーからデバイスへ通信ができる。クライアントは、多数の異なるネットワーク帯域幅およびレイテンシで、サービス、アプリケーションプログラムおよびデータを提供するサーバーに接続することができる。
【背景技術】
【０００２】
そのような環境では、アプリケーションも、連携セッションにおいてリモート参加者間で共有できる。しかし、連携を行う際に、共有アプリケーションによって提供される機能にのみ参加者が限定されることがあり、このため、この連携セッションが制限される。具体的には、参加者が限られ得るのは、参加者がメディア、すなわちオーディオ、ビデオ、デスクトップスクリーン取得、画像ライブラリなど、を他の参加者と連携セッションで共有することができないためである。
【発明の概要】
【０００３】
リモートアクセスされるアプリケーションに連携会議機能を提供するシステムおよび方法が本明細書に開示される。リモートアクセスされるアプリケーションに連携会議機能を提供する方法は、アプリケーション層と、サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークであって、リモートアクセスされるアプリケーションにアクセスするクライアントコンピューティングデバイス間で、リモートアクセスされるアプリケーションに関する第１の情報を、リモートアクセスされるアプリケーションをクライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信する階層化されたリモートアクセスフレームワークを提供するステップと、サーバーリモートアクセスアプリケーションであって、状態モデルを修正することが可能なサーバーリモートアクセスアプリケーションをサーバー層において提供するステップと、クライアントリモートアクセスアプリケーションをクライアント層またはアプリケーション層において提供するステップと、クライアントメディア共有アプリケーションであって、クライアントコンピューティングデバイスの少なくとも１つがクライアントコンピューティングデバイスとメディアを共有できるようにするクライアントメディア共有アプリケーションをクライアント層において提供するステップと、会議マネージャーアプリケーションであって、共有メディアを受信する会議マネージャーアプリケーションをサーバー層へ提供するステップと、クライアントコンピューティングデバイスの少なくとも１つに共有メディアが提供されるよう状態モデルがさらに共有メディアを含むように修正するステップとを含むことができる。
【０００４】
他の実装で、連携会議機能を提供する方法は、サーバー層と、クライアント層とを備える階層化されたリモートアクセスフレームワークであって、共有メディアにアクセスするクライアントコンピューティングデバイス間で、共有メディアに関する情報を、共有メディアをクライアントコンピューティングデバイスで表示するために使用される状態モデル内で通信する階層化されたリモートアクセスフレームワークを提供するステップと、サーバーリモートアクセスアプリケーションであって、状態モデルを修正することが可能なサーバーリモートアクセスアプリケーションをサーバー層において提供するステップと、クライアントメディア共有アプリケーションであって、クライアントコンピューティングデバイスの少なくとも１つがクライアントコンピューティングデバイスと共有メディアを共有することを許容するクライアントメディア共有アプリケーションをクライアント層において提供するステップと、会議マネージャーアプリケーションであって、共有メディアを受信する会議マネージャーアプリケーションをサーバー層へ提供するステップと、状態モデルがクライアントコンピューティングデバイスの少なくとも１つに共有メディアが提供されるような共有メディアをさらに含むように修正するステップとを含むことができる。
【０００５】
他のシステム、方法、特徴および／または利点は、下記の図面および詳細な説明を検討すれば、当業者にとっては明らかとなろう、または明らかになり得る。全てのそのような付加的なシステム、方法、特徴および／または利点は本説明に含まれ、添付の請求の範囲によって保護されるものとする。
【０００６】
図面の要素は必ずしも互いに一定の縮尺ではない。複数の図面を通して類似の参照番号は対応する部分をさす。
【図面の簡単な説明】
【０００７】
【図１】コンピュータネットワークを介して、リモートデバイスのアプリケーションへのリモートアクセスを提供するシステムを示す簡略ブロック図である。
【図２】本開示による状態モデルを示す図である。
【図３】ＸＭＬ状態モデルドキュメント内のツリーを示す図である。
【図４】図１のシステムの追加の態様を示す図である。
【図５Ａ】リモートアクセスされるアプリケーションプログラム周辺の会議を提供するシステムを示す簡略ブロック図である。
【図５Ｂ】リモート環境の会議を提供するシステムを示す簡略ブロック図である。
【図６Ａ−６Ｂ】図５Ａ-５Ｂのシステム内で行われる動作の例を示すフロー図である。
【図７】連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイスの一例を示す図である。
【図８】連携会議セッション中の共有する参加者のクライアントコンピューティングデバイスのユーザーインターフェイスの一例を示す図である。
【図９】連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイスの第２の例を示す図である。
【図１０】連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイスの第３の例を示す図である。
【図１１】連携会議セッション中の共有する参加者のクライアントコンピューティングデバイスの会議マネージャー表示を含むユーザーインターフェイスの一例を示す図である。
【図１２】例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００８】
特に定義されない限り、本明細書で使用する全ての技術的および科学的用語は、当業者によって共通に理解されているものと同じ意味である。本明細書に記載の方法および材料と類似または同等の材料は、本開示の実施または試験に使用することができる。実装は、アプリケーションにリモートアクセスするために説明するが、これらの実装はそれに限定されず、リモートデバイスを介して任意のタイプのデータまたはサービスにもリモートアクセスするために適応することは当業者にとって明白となるであろう。
【０００９】
図１を参照すると、コンピュータネットワークを介して、アプリケーション、データまたはその他のサービスへのリモートアクセスを提供するシステム１００が示されている。このシステムは、例えばｉＰｈｏｎｅ（登録商標）１１２ＡまたはＢｌａｃｋｂｅｒｒｙ（登録商標）１１２Ｂなどのワイヤレスハンドヘルドデバイスなどのクライアントコンピュータ１１２Ａまたは１１２Ｂを備え、これらは例えばインターネットなどのコンピュータネットワーク１００を介してサーバー１０２Ｂに接続される。同様に、クライアントコンピューティングデバイスは、通信ネットワーク１１０によってサーバー１０２Ｂに接続されるデスクトップ／ノートブックパーソナルコンピュータ１１２Ｃまたはタブレットデバイス１１２Ｎを含むことができる。通信ネットワーク１１０への接続は、任意のタイプの接続でもよく、例えばＷｉ−Ｆｉ（ＩＥＥＥ８０２．１１ｘ）、ＷｉＭａｘ（ＩＥＥＥ８０２．１６）、Ｅｔｈｅｒｎｅｔ、３Ｇ、４Ｇなどでもよい。
【００１０】
サーバー１０２Ｂは、例えば、コンピュータネットワーク１１０を介してローカルエリアネットワーク（ＬＡＮ）１０９に接続するかまたはコンピュータネットワーク１１０に直接接続することができる。例えば、ＬＡＮ１０９は、病院、銀行、大企業、または政府機関などの一施設の内部コンピュータネットワークである。概して、そのような施設はＬＡＮ１０９に接続されたメインフレームコンピュータ１０２Ａおよびデータベース１０８を現在も使用している。多数のアプリケーションプログラム１０７Ａは、メインフレームコンピュータ１０２Ａのメモリ１０６Ａに保存することができ、プロセッサ１０４Ａで実行することができる。同様に、多数のアプリケーションプログラム１０７Ｂは、サーバー１０２Ｂのメモリ１０６Ｂに保存することができ、プロセッサ１０４Ｂで実行することができる。アプリケーションプログラム１０７Ａおよび１０７Ｂは、リモートアクセス用に提供される「サービス」でもよい。メインフレームコンピュータ１０２Ａ、サーバー１０２Ｂおよびクライアントコンピュータ１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎは図１２の汎用コンピューティングデバイスに示すようなハードウェアを使用して実現することができる。
【００１１】
クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎは、人間が理解可能な方法でデータおよび／または画像を表示するユーザーインタラクションを提供し、かつ、例えば、クライアントコンピュータ１１２Ａ，１１２Ｂ，１１２Ｃ，１１２Ｎの、それぞれ、タッチスクリーン１１４Ａを備えるグラフィックディスプレイまたはグラフィックディスプレイ１１４Ｂ／１１４Ｎおよびキーボード１１６Ｂ／１１６Ｃを使用しアプリケーションプログラムとインタラクトするために、受信したユーザーインタラクションに基づいてユーザー入力データを決定するよう設計することができる。例えば、クライアントリモートアクセスアプリケーションは、クライアントコンピュータ１１２Ａ，１１２Ｂ，１１２Ｃ，１１２Ｎのそれぞれのメモリ１２０Ａ，１２０Ｂ，１２０Ｃ，１２０Ｎに保存された実行可能なコマンドをプロセッサ１１８Ａ，１１８Ｂ，１１８Ｃ，１１８Ｎで実行することによって行われる。
【００１２】
上記に代えて、あるいは上記に加えて、ユーザーインターフェイスプログラムは、サーバー１０２Ｂで実行され（アプリケーションプログラム１０７Ｂの１つとして）、これは続いて、例えばクライアントコンピュータ１１２Ａ，１１２Ｂで実行されるウェブブラウザなどの一般的なクライアントアプリケーションによってＵＲＬを介してアクセスされる。ユーザーインターフェイスは、例えばハイパーテキストマークアップ言語ＨＴＭＬ５を使用し実施される。一部の実装では、サーバー１０２Ｂは、クライアントコンピュータデバイス１１２Ａ，１１２Ｂ，１１２Ｃ，…，１１２Ｎと連携セッションに参加することができる。例えば、前述のアプリケーションプログラム１０７Ｂの１つは、サーバー１０２Ｂがアプリケーションプログラム１０７Ａまたは他のアプリケーションプログラム１０７Ｂとクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎと連携的にインタラクトできるようにし得る。したがって、サーバー１０２Ｂおよび参加しているクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃ，…，１１２Ｎのそれぞれは、アプリケーションプログラムの同期された画面表示を表示することができる。
【００１３】
クライアントリモートアクセスアプリケーション（１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎのどれでも、またはアプリケーションプログラム１０７Ｂの１つ）とのサーバーリモートアクセスアプリケーション１１１Ｂの動作は、図２に示すように状態モデル２００と連携して行われる。サーバーリモートアクセスプログラムの一例は、カナダのアルバータのカルガリーサイエンティフィック（Ｃａｌｇａｒｙ  Ｓｃｉｅｎｔｉｆｉｃ，Ａｌｂｅｒｔａ，Ｃａｎａｄａ）から入手可能なＰＵＲＥＷＥＢである。実行するとき、クライアントリモートアクセスアプリケーションはユーザーインターフェイスプログラムから受信したユーザー入力データに従って状態モデル２００を更新する。リモートアクセスアプリケーションは、更新された状態モデル２００に従って制御データを作成し、このデータをサーバー１０２Ｂで動作しているサーバーリモートアクセスアプリケーション１１１Ｂに提供する。
【００１４】
サーバーリモートアクセスアプリケーション１１１Ｂは、アプリケーションプログラム１０７Ａまたは１０９７Ｂからアプリケーションデータを受信すると、スクリーンまたはアプリケーションデータに従って状態モデル２００を更新し、更新された状態モデル２００に従ってプレゼンテーションデータを作成し、そしてこのデータをクライアントコンピューティングデバイスのクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎに提供する。状態モデル２００は、アプリケーションプログラムのロジック要素とアプリケーションプログラムの対応する状態の関連性をロジック要素の階層的順序で有する。例えば、これらのロジック要素は、スクリーン、メニュー、サブメニュー、ボタンなどでよく、アプリケーションプログラムユーザーインターフェイスを構成するものである。これはクライアントデバイスが、例えば、ロジック要素をネイティブに表示することを可能にする。したがって、携帯電話に表示されるアプリケーションプログラムのメニューは、携帯電話の本来のメニューであるかのように見える。同様に、デスクトップコンピュータに表示されるアプリケーションプログラムのメニューは、デスクトップコンピュータオペレーティングシステムの本来のメニューであるかのように見える。
【００１５】
状態モデル２００は、ロジック要素のそれぞれがアプリケーションプログラム１０７Ａまたは１０７Ｂの対応する状態と関連するように決定される。状態モデル２００は、ロジック要素がユーザーインタラクションと関連するように決定されてもよい。例えば、アプリケーションプログラムのロジック要素は、それぞれの遷移要素が状態モデル２００の変更を関連する制御データおよびアプリケーション代表データの１つに関連づける、遷移要素をロジック要素が備えるように決定される。
【００１６】
一部の実装では、クライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃ，…，１１２Ｎの２つ以上および／またはサーバー１０２Ｂは、アプリケーションプログラム１０７Ａまたは１０７Ｂと連携的にインタラクトすることができる。したがって、連携セッションに参加しているクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃ，…，１１２Ｎおよび／またはサーバー１０２Ｂおよび／またはメインフレームコンピュータ１０２Ａ間で状態情報を通信することによって、参加しているクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃ，…，１１２Ｎのそれぞれは、アプリケーションプログラム１０７Ａまたは１０７Ｂの同期された画面表示を表示することができる。
【００１７】
一部の実装によれば、システム１００は、デカップルドアプリケーション拡張を提供することができる。そのような拡張は、サーバーリモートアクセスアプリケーション１１１Ｂ（例えば、プラグインとして）、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎ（例えば、クライアントソフトウェアディベロップメントキット（ＳＤＫ）の一部として）、アプリケーション１０７Ｂの１つ（例えば、ＳＤＫの一部として）、またはそれらの組み合わせの一部として提供され、アプリケーションプログラム１０７Ａまたは１０７Ｂによって提供されない特徴および機能を提供する。これらは以下の図４に関してさらに十分に説明する。これらの特徴および機能はアプリケーションプログラム１０７Ａまたは１０７Ｂの修正を必要とすることなく提供することができ、これはそれらがリモートアクセスアプリケーションと一体になっているためである。したがって、デカップルドアプリケーション拡張は、アプリケーション自身にとらわれない。すなわち、アプリケーション拡張は、サーバーリモートアクセスアプリケーション１１１Ｂおよびクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎ内で表示されるアプリケーションに依存しない。さらに、アプリケーション拡張は、サーバーリモートアクセスアプリケーション１１１Ｂまたはクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎによって提供される制御内で適用してもよく、常に適用してもよい。
【００１８】
例えば、「インタラクティブデジタルサーフェスレイヤー」は、アプリケーション拡張として提供することができ、連携セッションの参加者がそのセッションで動作しているアプリケーション上に注釈を付けられるようにする。インタラクティブデジタルサーフェスレイヤーは落書きツールのように機能し、ユーザーが線、矢印、シンボル、走り書きのメモなどをアプリケーション上に書けるようにし、アプリケーションとインタラクティブデジタルサーフェスレイヤーの両方の連携を実現する。図４Ａおよび４Ｂを参照し下記で説明するように、インタラクティブデジタルサーフェスレイヤーは、図１の環境内で制御として適用することができる。
【００１９】
図３はインタラクティブデジタルサーフェスレイヤーなどの、本開示の態様と共に実施され得るデカップルドアプリケーション拡張を示すＸＭＬ状態モデルドキュメント内のツリーを示す。インタラクティブデジタルサーフェスレイヤー（または「アセテートレイヤー」）の実装は、米国特許仮出願第６１／５４１，５４０号および米国特許出願第１３／６３２，２４５号に記載され、それらの全体が参照により本明細書に組み込まれる。ＸＭＬツリー内に、定義された連携ノードが存在し、これは１つ以上のセッションを含む。このセッションは、インタラクティブデジタルサーフェスレイヤーなどのアプリケーション拡張と関連している。セッションの参加者はユーザーインフォタグ（ＵｓｅｒＩｎｆｏ  ｔａｇ）によって認識されるが、例えばＧｌｅｎとＪａｃｑｕｉｅとする。各参加者は、インタラクティブデジタルサーフェスレイヤー内のユーザーの注釈を示すデフォルトカラー（ＤｅｆａｕｌｔＣｏｌｏｒ）が割り当てられる（例えば、青はＧｌｅｎで緑はＪａｃｑｕｉｅ）。表示可能な色はどのようなものでも連携セッションの参加者のデフォルトカラーとして選択することができる。第１のユーザーには青、第２のユーザーには緑、第３のユーザーにはオレンジなどとなるように色の優先順位を定義することもできる。
【００２０】
連携ノードで、また定義された１つ以上の表示が存在する。図３の例では、ＧｌｅｎおよびＪａｃｑｕｉｅは、医療画像アプリケーション内で連携していることもある。したがって、アキシャル像およびコロナル像の、２つの定義された表示が存在し得る。セッションはそのセッションが連携へのユーザーを含む場合の表示のそれぞれに関連付けられる。アキシャル像に関して、Ｇｌｅｎのセッションは、それにカーソル位置（ＣＰ）および特定のマークアップ、例えば走り書き、矢印、円などを関連付けている。アキシャル像で、Ｊａｃｑｕｉｅは、関連付けられたカーソル位置を有するが、彼女はインタラクティブデジタルサーフェスレイヤーにマークアップを何も付けてないので、Ｊａｃｑｕｉｅのアキシャル像に関連付けられた追加の情報は何も存在しない。コロナルセッションでは、各ユーザーはそれに関連付けられた１つのカーソル位置のみを有する。
【００２１】
上記の情報はクライアントリモートアクセスアプリケーションによって表示され、これはＧｌｅｎおよびＪａｃｑｕｉｅにそれぞれ関連付けられたクライアントコンピューティングデバイス上に表示され得る。例えば、Ｇｌｅｎはラップトップなどの中間サイズの画面を有するクライアントコンピューティングデバイス上でアプリケーションを見ていることがある。したがって、Ｇｌｅｎはアキシャル像およびコロナル像を同時に見ることができる。対照的に、Ｊａｃｑｕｉｅはハンドヘルドワイヤレスデバイスなどのより小さなコンピューティングデバイスでアプリケーションを見ていることがある。したがって、そのようなデバイスのより限られた表示領域が理由でアキシャル像のみが表示され得る。
【００２２】
下記は図３のツリーによる状態モデル２００のセクションの一例である。状態モデル２００は、例えば、拡張マークアップ言語（ＸＭＬ）ドキュメントで表わせ得る。状態モデル２００を表わす他のものが使用されてもよい。アプリケーションプログラムおよびインタラクティブデジタルサーフェスレイヤーに関する情報は、状態モデル２００で通信される。インタラクティブデジタルサーフェスレイヤーはアプリケーションからデカップルされるため、インタラクティブデジタルサーフェスレイヤーに関する情報はアプリケーション状態の一部ではない（すなわち、それはアプリケーションから抽出される）。むしろ、インタラクティブデジタルサーフェスレイヤー情報は状態モデル２００に分離して保持される。
【数１】
2015507237.tif 000003
2015507237.tif 000004
2015507237.tif 000005
【００２３】
アプリケーション（１０７Ａまたは１０７Ｂ）に関する情報は、ＸＭＬ状態モデルの第１の部分におけるＡｐｐｌｉｃａｔｉｏｎＳｔａｔｅノードに保持される。アキシャル像およびコロナル像に関連付けられたアプリケーションプログラムの異なる状態も関連したトリガーと共に定義される。例えば、アキシャル像の「フィールド」はユーザー入力データとして名前を受信しそれを表示するために定義される。デカップルド連携状態およびアプリケーション拡張状態（例えば、インタラクティブデジタルサーフェスレイヤー）はＸＭＬドキュメントの第２の部分に保持される。
【００２４】
状態モデル２００は、こうしてアプリケーション自身に関するセッション情報、アプリケーション拡張情報（例えば、インタラクティブデジタルサーフェスレイヤー）、表示に関する情報、および特定の表示に対する注釈の関連付け方（例えば、アキシャル像に関連付けられた走り書き、矢印、円）を含むことができる。
【００２５】
図４は、図１のシステム１００の態様をより詳細に示す。図４はシステム１００が階層化されたソフトウェアスタックを有するものとして示す。クライアントリモートアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎは、クライアント層のクライアントソフトウェア開発キット（ＳＤＫ）７０４の上位に存在することができる。クライアント層はサーバー層のサーバーリモートアクセスアプリケーション１１１Ｂと通信する。サーバー層は、アプリケーション層のアプリケーション１０７Ａ／１０７ＢおよびサーバーＳＤＫ７１２の上位にある状態マネージャー７０８と通信する。上記のように、アプリケーション拡張は任意の層でも実行することができ、これはすなわち、プラグイン７０６としてのサーバー層内、クライアントアプリケーション拡張７０２としてのクライアント層内、アプリケーション拡張７１０としてのアプリケーション層内、またはそれらの組み合わせである。状態モデル２００は、これらの層の間で通信され、アプリケーション拡張７０２および７１０、ならびにプラグイン７０６によって任意の層内でも修正することができる。
【００２６】
別例では、アプリケーション層において、アプリケーション拡張７１０は、アプリケーション１０７Ａ／１０７Ｂを向上させるための新しいビジネスロジックを有する分離した実行可能なプログラムであってもよい。アプリケーション拡張７１０は、状態モデル２００を消耗し、それ自身のドキュメント７１４（すなわち、アプリケーション拡張７１０の状態モデル）を作成することができ、これは（１）状態モデル２００からの情報およびアプリケーション拡張７１０に関連付けられた情報、（２）アプリケーション拡張７１０に関連付けられた情報のみ、（３）状態モデル情報およびアプリケーション拡張７１４に関連付けられた情報のいくつかの組み合わせを含むことができる。状態モデル７１４は、サーバーリモートアクセスアプリケーション１１１Ｂに通信されてもよく、この場合サーバーリモートアクセスアプリケーション１１１Ｂが状態モデル７１４の情報を含むように更新された状態モデル２００を作成することができる。上記に代えて、あるいは上記に加えて、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎは、状態モデル２００および状態モデル７１４の両方を受信することができ、クライアントリモートアクセスアプリケーションは状態モデル７１４の情報を含むように更新された状態モデル２００を作成することができる。
【００２７】
図５Ａは、リモートアクセスされるアプリケーションプログラム周辺に会議を提供するシステムを示す簡略化ブロック図である。上記で議論したように、連携セッションの参加者は、共有のリモートアクセスされるアプリケーションにのみインタラクトするように制限され得るが、これはすなわち、参加者は他の参加者のクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎに保存されたまたはアクセスされた様々なメディアとインタラクトすることができない。しかし、図５に示す実装によると、参加者は、例えば、ビデオ、オーディオ、デスクトップスクリーン取得、テキストメッセージ、画像ライブラリなどの様々なメディアを連携セッションの他の参加者と共有することができる。
【００２８】
図５Ａのシステムは、図１、図２および図４に関して述べたように、クライアントコンピューティングデバイス１１２Ａ、１１２Ｂ、１１２Ｃおよび／または１１２Ｎ、アプリケーションサーバーマシン（すなわち、サーバー１０２Ｂまたはメインフレームコンピュータ１０２Ａ）、そしてサーバー１０２Ｂで動作するサーバーリモートアクセスアプリケーション１１１Ｂを備える。前述したように、サーバーリモートアクセスアプリケーション１１１Ｂは、クライアントリモートアクセスアプリケーション１２１Ａ、１２１Ｂ、１２１Ｃ、または１２１Ｎによって表示される１つ以上のアプリケーションプログラム１０７Ａ／１０７Ｂへのアクセスを提供する。クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎあるいはアプリケーションプログラム１０７Ａ／１０７Ｂの１つとのサーバーリモートアクセスアプリケーション１１１Ｂの動作は、状態モデル２００と連携して行われる。上記実装によると、連携セッションに参加しているクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎのそれぞれは、クライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎのそれぞれおよび／またはサーバー１０２Ｂおよび／またはメインフレームコンピュータ１０２Ａの間で状態モデル２００を通信することによって、アプリケーションプログラム１０７Ａ／１０７Ｂの同期された表示を提供することができる。
【００２９】
会議機能、すなわち、連携セッションの他の参加者と様々なメディアを共有することを提供するために、図５Ａはまた、会議スタブアプリケーション７３２および会議マネージャーアプリケーション７４２を有する会議サーバーマシンを含む。一部の実装で、会議スタブアプリケーション７３２および会議マネージャーアプリケーション７４２は、サーバー１０２Ｂで動作することができる。会議機能の共有しているコンポーネントは任意であってもよく、参加者が、クライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎを使用してクライアントメディア共有アプリケーション７２２をダウンロードすることによって、ただしインストールしないで、開始されてもよい。しかし、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎが、共有可能なメディアを集めるシステムリソースへのアクセスを有していないウェブブラウザなどの規制されたサンドボックス環境において動作している場合、または任意のメディアも共有していない場合は、参加者はクライアントメディア共有アプリケーション７２２をダウンロードしなくてもよいが、連携システムの他の参加者と様々なメディアを共有することは不可能となる。代わりに、リモートアクセスされるアプリケーションプログラム１０７Ａ／１０７Ｂおよび／または連携セッションの他の参加者によって共有された様々なメディアを見ることのみに限られる。一部の実装で、クライアントメディア共有アプリケーション７２２は、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎ内に組み込むことができる。
【００３０】
図５Ａのシステムは、会議機能を得る参加者がビデオ、オーディオ、デスクトップスクリーン取得、テキストメッセージ、画像ライブラリなどのメディアを連携セッションの他の参加者と共有できるようにする。会議サーバーマシンは、共有されるメディアをクライアントメディア共有アプリケーション７２２から直接、または会議スタブアプリケーション７３２を介してクライアントリモートアクセスアプリケーション１２１Ａ、１２１Ｂ、１２１Ｃ，または１２１から間接的に受信することができる。追加で、複数の異なる参加者は、他のクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎによって同時に表示され得る共有メディアを提供することができる。
【００３１】
一実装で、会議スタブアプリケーション７３２は、サーバーリモートアクセスアプリケーション１１１Ｂと通信できるサーバーアプリケーション（例えば、プラグイン７０６）である。しかしながら、会議スタブアプリケーション７３２は、例えばクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎがアプリケーションプログラム１０７Ａ／１０７Ｂと連携的にインタラクトできるようにする特徴などの含まれている連携的な特徴ではない。したがって、会議スタブアプリケーション７３２は、セッションの参加者によって共有することができない（状態モデル２００を介して）。したがって、この実装では、会議サーバーマシンに接続されたそれぞれのクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎに１つの会議スタブアプリケーション７３２が存在する。他の実装では、会議マネージャーアプリケーション７４２は、サーバーリモートアクセスアプリケーション１１１Ｂと通信可能なサーバーアプリケーションであり、会議スタブアプリケーション７３２の機能は会議マネージャーアプリケーション７４２内で全体的に存在する。さらに、他の実装は、会議マネージャーアプリケーション７４２はサーバーリモートアクセスアプリケーション１１１Ｂと通信可能なサーバーアプリケーションであり、会議スタブアプリケーション７３２は、ハイブリッドクライアント／サーバーとなり、ここでは会議スタブアプリケーション７３２がクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎに対するサーバーであり、会議サーバーマシンに対するクライアントである。
【００３２】
連携セッション中、上記のように、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎは、状態モデル２００と連携してサーバーリモートアクセスアプリケーション１１１Ｂと共に動作しアプリケーションプログラム１０７Ａ／１０７Ｂと連動する。同様に、会議セッション中、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎは、状態モデル２００と連携してサーバーリモートアクセスアプリケーション１１１Ｂと共に動作し、会議スタブアプリケーション７３２を介して会議マネージャーアプリケーション７４２と連動する。例えば、会議マネージャーアプリケーション７４２は、１つのコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎから(上記のように、直接または間接的に)受信した共有メディアを他のクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎのそれぞれの会議スタブアプリケーション７３２に適用できるようにすることによって、マルチプレクサーとして機能する。具体的には、会議スタブアプリケーション７３２およびクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎは、様々なメディアストリームがどのように再処理され、削除され、組み合わせられ、サンプリングしなおされるかなどを会議スタブアプリケーション７３２からクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎへの送信前に調整する。例えば、会議スタブアプリケーション７３２は２つ以上の適用可能なオーディオストリームを単一オーディオストリームにミックスし、帯域幅要件を低減することができる。
【００３３】
図５Ｂは、リモート環境で会議を提供するシステムを示す簡略化ブロック図である。図５Ａおよび５Ｂの共通の特徴には同じ参照番号が付されている。図５Ａに関して前述したように、会議はリモートにアクサスされるアプリケーションプログラム１０７Ａ／１０７Ｂ周辺に提供される。しかし、図５Ｂでは、アプリケーションプログラム１０７Ａ／１０７Ｂ周辺の連携を必要とすることなく、会議はリモート環境で提供される。この実装において、会議セッションの間、上記のような方法で、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎは、状態モデル２００と連携してサーバーリモートアクセスアプリケーション１１１Ｂと共に動作し、会議スタブアプリケーション７３２を介して、会議マネージャーアプリケーション７４２と連動する。
【００３４】
図６Ａは、図５Ａのシステム内で行われる動作の例を示すフロー図８００である。８０２で、アプリケーションプログラム１０７Ａ／１０７Ｂは、リモートアクセスされる。上記のように、例えば、サーバーリモートアクセスアプリケーション１１１Ｂは、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎによって表示される１つ以上のアプリケーションプログラム１０７Ａ／１０７Ｂへのアクセスを提供する。８０３で、クライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎは、メディアを共有するためにシステムリソースへのアクセスを有するかどうかを確定する。いいえの場合、プロセスは会議機能を得るためにステップ８０４へスキップするが、これは下記で説明する。はいの場合、状態モデル２００は更新され、プロセスはステップ８０６へスキップするが、これは下記で説明する。
【００３５】
８０４で、会議機能を得るために、参加者はクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎを利用して、クライアントメディア共有アプリケーション７２２をダウンロードすることができる。クライアントメディア共有アプリケーション７２２は、様々なメディアを連携セッションの他の参加者と共有できるようにする。
【００３６】
８０６で、参加者は、クライアントメディア共有アプリケーション７２２を使用して直接、またはクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎを使用して会議スタブアプリケーション７３２を介して間接的に共有メディアを会議サーバーマシンに提供する。一実装で、複数の異なる参加者はクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎによって同時に表示され得る共有メディアを提供することができる。８０８で、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃまたは１２１Ｎは、状態モデル２００と連携してサーバーリモートアクセスアプリケーション１１１Ｂと共に動作し、会議スタブアプリケーション７３２を介して会議マネージャーアプリケーション７４２と連動する。例えば、会議マネージャーアプリケーション７４２によって１つのコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎから共有メディアを受信すると、会議マネージャーアプリケーション７４２は、共有メディアを他のクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎのそれぞれの会議スタブアプリケーション７３２に適用できるようにする。そして、サーバーリモートアクセスアプリケーション１１１Ｂは状態モデル２００を更新する。
【００３７】
８１０で、サーバーリモートアクセスアプリケーション１１１Ｂは、更新された状態モデル２００に従ってプレゼンテーションデータを作成し、このデータをクライアントコンピューティングデバイスのクライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ，１２１Ｃ，１２１Ｎに提供する。８１２で、クライアントリモートアクセスアプリケーション１２１Ａ，１２１Ｂ、１２１Ｃ、１２１Ｎはクライアントコンピューティングデバイス１１２Ａ，１１２Ｂ，１１２Ｃまたは１１２Ｎの表示を更新する。
【００３８】
図６Ｂは、図５Ｂのシステム内で行われる動作の例を示すフロー図８００である。図６Ａおよび６Ｂの共通の特徴には同じ参照番号が付されている。図６Ｂの動作の例は、アプリケーションプログラム１０７Ａ／１０７Ｂが会議を開始するために開始される必要がないという点で図６Ａの動作の例とは異なる。
【００３９】
図７は、連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイス９００の一例を示す。例えば、ユーザーインターフェイス９００は、アプリケーションプログラム９０２（すなわち、１０７Ａ／１０７Ｂ）の表示、共有ビデオストリーム９０４の表示および共有メディア９０８の表示を含むことができる。追加で、共有ビデオストリーム９０４の表示は、複数の共有ビデオストリームを含んでいてもよい。さらに、ユーザーインターフェイス９００は、共有メディア９０８の表示を複数含んでいてもよく、共有メディアは同じおよび／または異なるソースからのものでもよい。さらに、ユーザーインターフェイス９００は、参加者に、例えばインタラクティブデジタルサーフェスレイヤーを動作させること、参加者のデスクトップの画像をキャプチャーすること（すなわち、これは連携セッションの他の参加者と共有され得る）などの機能的な制御を提供するフローティングツールバー９０６を有することができる。インタラクティブデジタルサーフェスレイヤーは、ユーザー入力を受信することができ、セッション中にユーザーによって入力された注釈を連携的に表示する。注釈は、ユーザーインターフェイス９００のどの部分にも付すことができ、これはすなわち、アプリケーションプログラム９０２（すなわち、１０７Ａ／１０７Ｂ）の表示、共有ビデオストリーム９０４の表示、共有メディア９０８の表示などである。またフローティングツールバー９０６は、参加者に、例えば、オーディオ、ビデオ、デスクトップスクリーン取得、テキストメッセージなどの様々なメディアを共有するオプションを提供することができる。またユーザーインターフェイス９００は、例えば、表示された画面を操作するために、切り替え表示ボタンまたはフルスクリーンボタン９１０を有することができる。ユーザーはまた、ユーザーインターフェイス９００の表示をクリックまたはドラッグすることによって様々な表示を切り替えることができる。
【００４０】
図８は、連携会議セッション中の共有する参加者のクライアントコンピューティングデバイスのユーザーインターフェイス１０００の一例を示す。ユーザーインターフェイス１０００は、参加者が連携セッションの他の参加者と共有するデスクトップの表示およびフローティングツールバー１００６を含む。
【００４１】
図９は、連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイス１１００の第２の例を示す。図７と同様に、ユーザーインターフェイス１１００は、アプリケーションプログラム１１０２（すなわち、１０７Ａ／１０７Ｂ）の表示、共有ビデオストリーム１１０４の表示および共有メディア１１０８の表示ならびにフローティングツールバー１１０６を含む。さらに、ユーザーインターフェイス１１００は、連携セッションの参加者がリアルタイムのチャットセッションに従事できるようにするチャット表示１１１４を含む。
【００４２】
図１０は、連携会議セッション中の閲覧する参加者のクライアントコンピューティングデバイスのユーザーインターフェイス１２００の第３の例を示す。図９および１１と同様に、ユーザーインターフェイス１２００は、アプリケーションプログラム１２０２（すなわち、１０７Ａ／１０７Ｂ）の表示、共有ビデオストリーム１２０４の表示および共有メディア１２０８の表示ならびにフローティングツールバー１２０６を含む。ツールバー１２０６は、例えばスクリーンショット１２２０をキャプチャーするためのオプションおよび／またはインタラクティブデジタルサーフェスレイヤー１２２２を動作させるオプションを有することができる。さらに、ユーザーインターフェイス１２００は、白い背景１２１６にインタラクティブデジタルサーフェスレイヤーの表示を有する。注釈は、ユーザーサーフェス１２００のどの部分にも付すことができ、これはすなわち、アプリケーションプログラム１２０２（すなわち、１０７Ａ／１０７Ｂ）の表示、共有ビデオストリーム１２０４の表示、共有メディア１２０８の表示、白い背景１２１６のインタラクティブデジタルサーフェスレイヤーの表示などである。白い背景は、参加者が、表示画面によって妨げられることがない注釈を付けられるようにする。上記に代えて、あるいは上記に加えて、白い背景１２１６は、参加者がホワイトボードに線／メモを書けるようにするホワイトボードアプリケーションの表示であってもよい。図面／メモは、後の検索用にキャプチャーして保存することができる。
【００４３】
図１１は、連携会議セッション中の共有する参加者のクライアントコンピューティングデバイスの会議マネージャー表示１３１６を含むユーザーインターフェイス１３００の一例を示す。例えば、会議マネージャー表示１３１６は、連携セッションの参加者のリスト、各参加者の注釈の色、各参加者によって共有されているメディアのタイプ（すなわち、例えば、オーディオ、ビデオ、デスクトップ）などを示す。ユーザーインターフェイス１３００はまた、連携セッションからの全ての前のデスクトップキャプチャー１３１８の表示およびデスクトップキャプチャーを保存するためのボタン１３２０を含むことができる。さらに、キャプチャー保存をすると、デスクトップ共有を自動的に閉じるオプションが存在してもよい。
【００４４】
本開示のユーザーインターフェイスは、連携会議セッション内に参加している任意のタイプのコンピューティングデバイスに提供され得る。したがって、連携会議セッションに参加することができるデバイスの様々な表示領域を適合させるために、本開示の実装は画面表示のリファクタリングを提供することができる。したがって、連携会議セッションに参加している任意のタイプのデバイスは状態モデル２００に含まれる情報に基づいたデバイス適合解像度を有するユーザーインターフェイスを提供する。例えば、図７のユーザーインターフェイスを参照すると、表示がデスクトップコンピュータと関連付けられている場合、全体のユーザーインターフェイス９００が表示され得る。しかし、表示がハンドヘルド携帯デバイスに関連付けられている場合は、ユーザーインターフェイス９００のサブセットが表示され得るが、これは例えば、アプリケーションプログラム９０２の表示である。ハンドヘルド携帯デバイスで表示画面に提供された制御を介して、他の表示も可能とすることができる。他のリファクタリングスキームは、ユーザーインターフェイスの表示およびユーザーインターフェイスが表示されるデバイス次第で可能である。
【００４５】
連携セッション中、ユーザーは下層のアプリケーションプログラム１０７Ａ／１０７Ｂとインタラクトすることなくユーザーインターフェイスのある領域を指したい場合もある。例えば、ユーザーが、スライド資料集のプレゼンテーションを行っている時、ユーザーインターフェイスで表示されているスライド上のある項目を「指す」ことを望むことがある。インタラクティブデジタルサーフェスレイヤーは、そのような印を連携セッションの他のユーザーに示すために使用され得る。
【００４６】
上記を提供するために、マウスカーソル位置データの送信はアプリケーション１０７Ａ／１０７Ｂへのマウス入力イベントの送信から分離され得るため、その位置およびイベントデータは互いに独立してトリガー可能である。したがって、カーソル位置ツールは、入力イベントなしのカーソル情報を送信するようにされるが、そうでなければタブレットデバイス１１２Ｎのユーザーがアプリケーションプログラム１０７Ａ／１０７Ｂとのインタラクションを望まないときに、インタラクションを引き起こすであろう。上記は、カーソル位置のためにインタラクティブデジタルサーフェスレイヤーを更新する単一の方法を２つの方法に分離することによって実現することができ、１つはカーソル位置の更新を行い、１つは入力イベントを待ち行列に入れる。任意または追加として、マウスカーソルは、そのようなモードでの動作時に、特徴を変更することができる。例えば、マウスカーソルが、指し示す目的で使用されているとき、カーソルは太くなる、色を変更する、形状を変更する、点滅することなどができ、他のユーザーにカーソルが印として使用されていることを示す。
【００４７】
上記は全てのタイプのクライアントコンピュータにも実施することができ、特定の使用ケースは、タッチセンシティブインターフェイスを有する携帯デバイス（例えば、タブレットデバイス１１２Ｎ）のユーザーが画面表示で現在何を見ているかを他のユーザーに示したいときである。一般に、タブレットデバイスのタッチはアプリケーションプログラム１０７Ａ／１０７Ｂとのインタラクションを意味する。上記によると、マウスカーソル位置データ（例えば、タッチ位置）をマウス入力イベントの送信（例えば、実際のタッチ）から分離することは、タブレットデバイス１１２Ｎのユーザーがそのような指し示しをポインティングデバイスを有するクライアントコンピュータと同じようにすることができる。
【００４８】
上記との組み合わせ、または別々に実施され得る他の態様において、インタラクティブデジタルサーフェスレイヤーで下層のアプリケーションプログラム１０７Ａ／１０７Ｂとインタラクションすることなく注釈を作成することができ、下層のアプリケーションプログラム１０７Ａ／１０７Ｂとのインタラクションは、インタラクティブデジタルサーフェスレイヤー内で必ずしも注釈を作成することはない。したがって、インタラクティブデジタルレイヤー制御１２２２は下層のアプリケーション１０７Ａ／１０７Ｂとのインタラクションを無効にするオプションを備え得る。
【００４９】
したがって、上記のように、本開示は、リモートアクセスされる連携アプリケーション周辺での会議機能を提供する。さらに一般的には、本開示は、連携セッションの参加者が、その連携セッションの他の参加者とメディアを共有できるようにするシステムおよび方法を提供する。
【００５０】
図１２は、実装および態様の例が実施され得る例示的なコンピューティング環境を示す。コンピューティングシステム環境は、適するコンピューティング環境の一例にすぎず、使用または機能の範囲に関する制限を提示するものではない。
【００５１】
多数の他の一般的な目的または特別な目的のコンピューティングシステム環境または構成を使用することができる。適用するのにふさわしいとされ得るよく知られたコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバーコンピュータ、手持ち式またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサ式システム、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、埋め込みシステム、上記の任意のシステムまたはデバイスなどを有する分散コンピューティング環境などを含むが、これらに限定されない。
【００５２】
プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令が使用され得る。一般に、プログラムモジュールは、特定のタスクを実行または特定の抽象データタイプを実行するルーティン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。分散コンピューティング環境は、通信ネットワークまたは他のデータ送信媒体を介してリンクしているリモートプロセッシングデバイスによってタスクが実行されるところで使用され得る。分散コンピューティング環境において、プログラムモジュールおよび他のデータはメモリーストレージデバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方にあってもよい。
【００５３】
図１２を参照すると、本明細書に記載の態様を実施するためのシステムの一例はコンピューティングデバイス６００などのコンピューティングデバイスを含む。その最も基本的な構成は、コンピューティングデバイス６００は一般に少なくとも１つのプロセッシングユニット６０２とメモリ６０４とを含む。コンピューティングデバイスの正確な構成およびタイプによって、メモリ６０４は揮発性（ランダムアクセスメモリ（ＲＡＭ）など）、不揮発性（読み出し専用メモリ（ＲＯＭ）、フラッシュメモリなど）であってもよく、またはその２つのある組み合わせでもよい。最も基本的な構成は、図１２で破線６０６によって示す。
【００５４】
コンピューティングデバイス６００は追加の特徴／機能を有することができる。例えば、コンピューティングデバイス６００は、磁気または光学ディスクまたはテープを含む追加のストレージ（取り外し可能および／または取り外し不可）を有することができるがこれらに限定されない。そのような追加ストレージは、図１２で取り外し可能ストレージ６０８および取り外し不可ストレージ６１０として示す。
【００５５】
コンピューティングデバイス６００は一般に、種々のコンピュータ可読媒体を含む。コンピュータ可読媒体はデバイス６００によってアクセス可能な入手できる任意の媒体でもよく、揮発性媒体および不揮発性媒体、取り外し可能媒体および取り外し不可媒体の両方を含む。
【００５６】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの任意の情報のストレージ方法または技術において実施される揮発性媒体および不揮発性媒体、および取り外し可能媒体および取り外し不可媒体を含む。メモリ６０４、取り外し可能ストレージ６０８、および取り外し不可ストレージ６１０は全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、電子的に消去可能なプログラム読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を保存するために使用でき、コンピューティングデバイス６００によってアクセス可能な任意のその他の媒体をも含むが、これらに限定されない。そのような任意のコンピュータ記憶媒体はコンピューティングデバイス６００の一部とすることができる。
【００５７】
コンピューティングデバイス６００は、デバイスが他のデバイスと通信できるようにする通信接続６１２を含むことができる。またコンピューティングデバイス６００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス６１４を有することができる。ディスプレイ、スピーカー、プリンターなどの出力デバイス６１６を含むこともできる。全てのこれらのデバイスは当技術分野においてよく知られており、本明細書で詳細に議論する必要はない。
【００５８】
本明細書に記載の様々な技術はハードウェアまたはソフトウェアに関連して、またはふさわしい場面で、両方の組み合わせに関連して実施することができることを理解されたい。したがって、本開示の主題のこれらの方法および装置、またはその特定の態様または部分は、コンピュータなどの機械によってプログラムコードがロードされ、実行されるとき、その機械が本開示の主題を実現する装置になる場合において、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、またはその他の任意の機械可読記憶媒体など、有形の媒体に埋め込まれるプログラムコード（すなわち、命令）の形をとることができる。プログラム可能なコンピュータでプログラムコードを実行する場合、コンピューティングデバイスは一般にプロセッサ、プロセッサによって読み取り可能な記憶媒体（揮発性および不揮発性メモリおよび／またはストレージ要素を含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを備える。１つ以上のプログラムは、本開示の主題に関連付けて記載したプロセスを実行または利用することができ、例えばアプリケーションプログラミングインターフェイス（ＡＰＩ）、再利用可能な制御などの使用を介してである。そのようなプログラムは、高レベル手順またはオブジェクト指向のプログラミング言語で実施され、コンピュータシステムと通信することができる。しかし、プログラムは、必要であれば、アセンブリ言語または機械語で実施することも可能である。いずれの場合も、この言語はコンパイルされた、またはインタプリタ形式の言語であり、ハードウェアの実施と組み合わせることができる。
【００５９】
構造的特徴および／または方法論的な行為に対する固有の文言で主題を説明したが、添付の特許請求の範囲に定義される主題は必ずしも上記に記載のそれらの固有の特徴または行為に限定されるものではないことを理解されたい。むしろ、上記に記載のそれらの固有の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示する。
【図１】
2015507237.tif 000006
【図７】
2015507237.tif 000007
【図８】
2015507237.tif 000008
【図９】
2015507237.tif 000009
【図１０】
2015507237.tif 000010
【図１１】
2015507237.tif 000011
【図２】
2015507237.tif 000012
【図３】
2015507237.tif 000013
【図４】
2015507237.tif 000014
【図５Ａ】
2015507237.tif 000015
【図５Ｂ】
2015507237.tif 000016
【図６Ａ】
2015507237.tif 000017
【図６Ｂ】
2015507237.tif 000018
【図１２】
2015507237.tif 000019
【国際調査報告】
2015507237.tif 000020
2015507237.tif 000021
2015507237.tif 000022
2015507237.tif 000023