JP2016503547A - 連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステム - Google Patents

連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステム Download PDF

Info

Publication number
JP2016503547A
JP2016503547A JP2015543538A JP2015543538A JP2016503547A JP 2016503547 A JP2016503547 A JP 2016503547A JP 2015543538 A JP2015543538 A JP 2015543538A JP 2015543538 A JP2015543538 A JP 2015543538A JP 2016503547 A JP2016503547 A JP 2016503547A
Authority
JP
Japan
Prior art keywords
peer
remote
local
session
connection
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.)
Pending
Application number
JP2015543538A
Other languages
English (en)
Inventor
サム・アンソニー・レイッチ
Original Assignee
カルガリー サイエンティフィック インコーポレイテッド
カルガリー サイエンティフィック インコーポレイテッド
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 カルガリー サイエンティフィック インコーポレイテッド, カルガリー サイエンティフィック インコーポレイテッド filed Critical カルガリー サイエンティフィック インコーポレイテッド
Publication of JP2016503547A publication Critical patent/JP2016503547A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

方法及びシステムは、連携セッションからリアルタイムなピアツーピア通信を開始するために提供される。リアルタイムなピアツーピア通信は、例えばピアツーピア会議などのようにピアツーピア接続を介してメディアコンテンツなどのコンテンツを共有することを含む。より具体的には、複数のクライアントが、例えばリモートアクセスしたアプリケーションで相互に対話する連携セッションの中から、システム及び方法は、連携セッション(例えばピアノードなど)にアクティブに参加するクライアントの検出ができるようにしてクライアントのペア間のピアツーピア接続(複数可)の開設を可能にする。

Description

本発明は、連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステムに関する。
[関連出願の相互参照]
この出願は、「管理及び非管理サービスを利用したコラボレーション及びピアツーピア通信を提供するための方法及びシステム」と題する、2012年11月23日に出願された米国仮特許出願第61/729,481号の優先権を主張し、その全体が参照により本明細書に組み込まれている。
ピアツーピアサービスは、ユーザーデバイス間でピアツーピア通信(例えば、ピアツーピア会議)をリアルタイムで可能にする。例えばピアツーピアサービスは、ペアのユーザーデバイスがピアツーピア接続を開設することを可能にし、その後ユーザーデバイスは、例えばオーディオ、ビデオ、デスクトップスクリーンスクレープ、画像ライブラリなどのメディアコンテンツを、ピアツーピア接続を介して共有することができる。しかし、ピアツーピアサービスは、潜在的なピアデバイスを検出するためのメカニズムを提供することができない。さらに、ユーザーデバイスのペア間でピアツーピア接続を開設する前に、ピアツーピアサービスは、通信するべきユーザーデバイス対のためのメカニズムを提供することができない。
連携セッションからのリアルタイムなピアツーピア通信を開始するために、方法及びシステムを本願で提供する。リアルタイムのピアツーピア通信は、例えばピアツーピア会議などのピアツーピア接続を介して、メディアコンテンツのようなコンテンツを共有することを含む。より具体的には、システム及び方法は、複数のクライアントが相互に、例えばリモートアクセスしたアプリケーションと対話する連携セッションの中から、アクティブに連携セッションへ参加したクライアントの検出ができるようにして(例えば、ピアノード)、クライアントのペア間のピアツーピア接続の開設を可能にする。
ピアツーピアサービスで使用するための例示的なピアツーピア検出及び接続開設のフレームワークは、複数のクライアントデバイスがアプリケーションセッション内で相互に対話することを可能にするコラボレーションサービスを含むことができる。換言すれば、クライアントデバイスは、連携アプリケーションセッション内で協働する参加者となることができる。さらに、コラボレーションサービスは、クライアントデバイスの少なくとも1つがアプリケーションセッション内で相互に情報交換するクライアントデバイスを検出することを可能にするために、1つまたは複数のメッセージをクライアントデバイス間にパスするように構成された協同管理装置を含むことができる。例えば、協同管理装置は参加者の一人がアプリケーションセッション内で対話する他の参加者を検出できることを可能にする。協同管理装置は、クライアントデバイスのペア間でピアツーピア接続を開設するように構成することもできる。メッセージは、クライアントデバイスのそれぞれのペア間でピアツーピア接続を開設するために使用することができる。
ピアツーピアサービスで使用するためのピアツーピア検出及び接続開設の例示的な方法は、複数のクライアントデバイスがアプリケーションセッション内で対話し、クライアントデバイスの少なくとも1つがアプリケーションセッション内で対話するクライアントデバイスを検出し、クライアントデバイスのペア間でピアツーピア接続を開設するために、クライアントデバイス間に1つまたは複数のメッセージをパスすることを可能にするアプリケーションセッションを容易にすることを含み得る。メッセージは、クライアントデバイスのそれどれのペア間でピアツーピア接続を開設するために使用することができる。
いくつかの実装では、クライアントデバイス間に1つまたは複数のメッセージをパスすることは、クライアントデバイスの1つからのピアツーピア接続を開始するための要求を受信し、クライアントデバイスに要求を送信することを含み得る。代替的または追加的に、クライアントデバイス間に1つまたは複数のメッセージをパスすることは、オファーアンサープロトコルに従ってクライアントデバイス間にオファー及びアンサーメッセージをパスすることを含み得る。
加えて、ピアツーピアサービスは、ピアツーピア接続を介して、クライアントデバイスのペアが、例えばメディアコンテンツなどのコンテンツを共有することを可能にする。例えば、ピアツーピア接続が開設された後(例えば、クライアントデバイス間にメッセージをパスすることによって)、ピアツーピアサービスは、ピアツーピア接続を介してメディアコンテンツを共有するために使用することができる。言い換えれば、ピアツーピア接続とピアツーピアサービスは、メディアコンテンツを共有するための通信チャネルを提供する。メディアコンテンツは、例えば、オーディオまたはビデオであってもよい。さらに、メディアコンテンツは、コラボレーションサービスのリソースを使用することなく、ピアツーピア接続を介して共有することができる(すなわち、アプリケーションセッションの外側で)。
いくつかの実装では、アプリケーションセッション内で対話するクライアントデバイスは、コラボレーションサービスによって維持されるセッション情報を使用して検出することができる。代替的または追加的に、コラボレーションサービスはアプリケーションセッションの状態を維持し、クライアントデバイス間にアプリケーションセッションの状態をパスすることにより、クライアントデバイスがアプリケーションセッション内で対話することを可能にする。アプリケーションセッションの状態は、例えばピアツーピア検出及び接続に使用されている状態モデルの情報と共に状態モデルに維持することができる。
より詳細には、ピアツーピアサービスで使用するためのピアツーピア検出及び接続開設のための例示的な方法は、連携アプリケーションセッションでアクティブなローカルピアデバイスのローカルセッション識別子及びリモートピアデバイス(例えば、ローカルピアデバイスから遠隔した)のリモートセッション識別子をコラボレーションサービスからデバイスごとに取得することを含み得る。検出及び接続は、ローカルセッション識別子がリモートセッション識別子より小さいか否かを決定することを含むことができ、もし、ローカルセッション識別子がリモートセッション識別子より小さい場合、ローカルピアデバイスからリモートピアデバイスにオファーメッセージを送信することを含むことがでる。さらに、この方法は、ローカルピアデバイスでリモートピアデバイスから応答メッセージを受信し、ローカル及びリモートピアデバイス間のピアツーピア接続を開設することを含むことができる。この方法によれば、オファーとアンサーメッセージは、コラボレーションサービスを使用して交換することができる。ピアツーピア接続が開設された後(例えば、メッセージをローカル及びリモートピアデバイス間にパスすることによって)、ピアツーピアサービスは、ピアツーピア接続を介してメディアコンテンツを共有するために使用することができる。加えて、メディアコンテンツは、コラボレーションサービスのリソースを使用することなく(すなわち、アプリケーションセッションの外側で)、ピアツーピア接続を介して共有することができる。さらに、ローカル及びリモートピアデバイスは、メディアコンテンツがピアツーピア接続で共有されている間、連携アプリケーションを通じて協働し続けることができる。
ピアツーピアサービスで使用するピアツーピア検出及び接続開設のための別の例示的な方法は、アプリケーションセッションでアクティブなローカルピアデバイスのローカルセッション識別子及びリモートピアデバイス(例えば、ローカルピアデバイスから遠隔した)のリモートセッション識別子を含んでコラボレーションサービスからデバイスごとにセッション識別子を取得することを含み得る。検出及び接続は、ローカルセッション識別子がリモートセッション識別子よりも大きいか否かを決定することを含むことができ、もし、ローカルセッション識別子がリモートセッション識別子より大きい場合、ローカルピアデバイスからリモートピアデバイスにオファーメッセージを送信することを含むことがでる。さらに、この方法は、ローカルピアデバイスでリモートピアデバイスから応答メッセージを受信し、ローカル及びリモートピアデバイス間のピアツーピア接続を開設することを含むことができる。この方法によれば、オファーとアンサーメッセージは、コラボレーションサービスを使用して交換することができる。ピアツーピア接続が開設された後(例えば、ローカル及びリモートピアデバイス間にメッセージをパスすることによって)、ピアツーピアサービスは、ピアツーピア接続を介してメディアコンテンツを共有するために使用することができる。さらに、メディアコンテンツは、コラボレーションサービスのリソースを使用することなく(すなわち、アプリケーションセッションの外側で)、ピアツーピア接続を介して共有することができる。さらに、ローカル及びリモートピアデバイスは、メディアコンテンツがピアツーピア接続で共有されている間、連携アプリケーションを通じて協働し続けることができる。
ピアツーピアサービスで使用するためのピアツーピア検出及び接続開設のためのさらに別の例示的な方法は、アプリケーションセッションでアクティブなローカルピアデバイスのローカルセッション識別子及びリモートピアデバイス(例えば、ローカルピアデバイスから遠隔した)のリモートセッション識別子を複数個含んでコラボレーションサービスからデバイスごとにセッション識別子を得ることを含み得る。検出と接続は、ローカルピアデバイスで、以下に定義された関数を使用してオファーメッセージをリモートピアデバイスのいずれかに送信するように決定し、
f(a,a)=偽
a!= bANDf(b,a)=偽の場合と場合にのみf(a,b)=真
ローカルピアデバイスでリモートピアデバイス(例えば、オファーメッセージが送信されたリモートピアデバイス)からの応答メッセージを受信し、ローカル及びリモートピアデバイス間のピアツーピア接続を開設することを含むことができる。この方法によれば、オファーとアンサーメッセージは、コラボレーションサービスを使用して交換することができる。ピアツーピア接続が開設された後(例えば、ローカル及びリモートピアデバイス間にメッセージをパスすることによって)、ピアツーピアサービスは、ピアツーピア接続を介してメディアコンテンツを共有するために使用することができる。加えて、ローカル及びリモートピアデバイスは、メディアコンテンツがピアツーピア接続で共有されている間、連携アプリケーションを通じて協働し続けることができる。
上記の発明は、コンピュータ可読記憶媒体のようなコンピュータ制御装置、コンピュータプロセス、コンピューティングシステム、または製品として実装することができることを理解すべきである。
他のシステム、方法、特徴及び/または利点は、以下の図面及び詳細な説明を検討することにより当業者に明らかになるであろう。全てのそのような追加のシステム、方法、特徴及び/または利点は、この説明に含まれ且つ添付の特許請求の範囲によって保護されるように意図されている。
図中の構成要素は、必ずしも互いに相対的な縮尺ではない。同様な数字は、いくつかの図を通して対応する部材を示している。
ピアツーピア検出及び接続開設を提供するための環境を示すブロック図である。 図1の環境内でのコミュニケーションの流れを示すコールフロー図である。 複数のノード間のピアツーピア接続を示すものである。 複数のノード間のピアツーピア接続を示すものである。 複数のノード間のピアツーピア接続を示すものである。 コラボレーションセッションを通じてピアツーピア接続を開設するための例示的な動作を示すフロー図である。 コラボレーションセッションを通じてピアツーピア接続を開設するための別の例示的な動作を示すフロー図である。 リモートアクセス環境を示すブロック図である。 ビデオ会議との連携セッション中におけるユーザーインタフェース例を示すものである。 例示的コンピューティング装置を示すブロック図である。
特に定義しない限り本明細書で使用される全ての技術用語及び科学用語は、一般に当業者によって理解されるものと同じ意味を持つ。本明細書に記載のものと類似または同等の方法及び材料は、本開示の実施または試験において使用することができる。本明細書及び添付の特許請求の範囲において使用されるように、単数形“a”,“an”,“the”は、文脈が明らかに別の規定をしない限り複数の指示対象を含むものである。本明細書で使用されるように、用語「含むcomprising)」及びその変形物は、用語「含む(including)」及びその変形物と同義に用いられ、オープンで非限定的な用語である。実装は、リモートアクセスされるアプリケーションを通じてリアルタイムのピアツーピア会議を可能にするために説明されながらも、実装がこれらに限定されないことは当業者に明らかとなるが、いずれかのタイプのコラボレーションセッションを通じてもリアルタイムなピアツーピア接続を可能にするために適用できる。
[概要]
本開示に関する態様によれば、ピアデバイスを検出してピアツーピア接続を開設することが可能である。上述したように、ピアツーピアのフレームワークは、潜在的なピアデバイスを検出するためのメカニズムを提供することができない。従って、ピアデバイスの検出はコラボレーションサービスよって提供することができ、これにより複数のクライアントデバイスが、例えばリモートアクセスされるアプリケーションと対話することが可能となる。その管理機能の一部として、コラボレーションサービスは、連携セッションでアクティブなクライアントデバイスの識別を含めてセッション情報を維持することができる。セッション情報は、クライアントデバイスが連携セッション中で同様にアクティブなクライアントデバイスを検出することを可能にするために使用することができる。さらに、コラボレーションサービスは、連携セッションでアクティブなクライアントデバイスへ或いはクライアントデバイスからのメッセージの送信(例えば、オファーアンサープロトコルに従うメッセージ)を提供することができ、ピアツーピア接続(複数可)の開設を可能にする。これによって、ピアツーピア接続(複数可)の開設を可能にするためにコラボレーションサービスの機能を活用することができる。
ピアツーピア接続を開設した後、例えばメディアコンテンツ(例としてオーディオ、ビデオなどの)のようなコンテンツは、ピアツーピア接続を介して共有することができる。メディアコンテンツはピアツーピア接続を介して共有されているので、コラボレーションサービスに負荷はかからず、例えば、コラボレーションサービスによって使用されるリソースは、メディアコンテンツの共有に巻き込まれない。言い換えれば、本明細書中で使用されるように、オーディオ及び/またはビデオを含むメディアコンテンツをピアツーピア接続(事例1)を通じて共有することは、コラボレーションセッションの間(事例2)にオーディオ及び/またはビデオを含むメディアコンテンツを共有することとは区別されるべきである。何故なら、コラボレーションサービスは事例1に関与しないからである。例えば、会議セッション中に、特にオーディオ及び/またはビデオを共有するメディアコンテンツの共有は、大量のリソースを消費し得ることを理解するべきである。それによって、この負荷は、コラボレーションサービスのリソースに代わってクライアントデバイスのリソースにシフトされることとなる。さらに、メディアコンテンツはクライアントデバイス間で直接、安全に共有される。ピアツーピア接続を介してメディアコンテンツを共有することは、例えば易感染性サーバーから傍受の可能性が減少するため、追加のセキュリティを追加することができる。
[環境具体例]
ここで図1を参照するが、図にはピアツーピア検出及び接続の開設を提供するための環境100を説明するブロック図が示されている。ピアツーピア検出及び接続の開設を有効化するなど、環境100には多くの非限定的で可能な用途がある。例えば、1つ以上のピアノードを検出するために環境100は、ノードが連携セッション(例えば、リモートアクセスしたアプリケーションを通じてのコラボレーション)に参加できるようにすることを可能にする。また、環境100は、連携セッションに参加する1つ以上のピアノード間で、ピアツーピア接続の開設を可能にする。環境100は、クライアントデバイス1、112A(本明細書ではクライアントコンピューティングデバイス112Aとも呼ぶ)、クライアントデバイス2、112B(本明細書ではクライアントコンピューティングデバイス112Bとも呼ぶ)、クライアントデバイス3、112C(本明細書ではクライアントコンピューティングデバイス112Cとも呼ぶ)及びコラボレーションサービス106を含むことができる。本明細書では、クライアントコンピューティングデバイス112A、112B、112Cは、「ピアノード」、「クライアントデバイス」及び/または「ユーザーデバイス」とも呼ぶ。さらに、ピアツーピアフレームワーク内での各デバイスは、それ自体をローカル(例えば、ローカルピア)と見做し、他のすべてのデバイスをリモート(例えば、リモートピア)と見做している。ここでは環境100は単なる環境具体例として提供され、環境100が図1に示すものよりもより多くの、またはより少ない構成要素を含んでもよいことが理解されるべきである。
クライアントコンピューティングデバイス112A、112B及び112Cは、それぞれがコラボレーションサービス106に通信ネットワークを介して接続された任意の適切なコンピューティングデバイスであってもよい。例えば、クライアントコンピューティングデバイス112A、112B及び112Cは、それぞれ、例えばIOSベースのアイフォンまたはANDROID(登録商標)ベースのデバイスのようなスマートフォンなどのワイヤレス携帯用デバイス、デスクトップ/ノートブックパソコン或いはタブレットコンピュータのようなでものであってもよい。ここで、通信ネットワークへの接続は、任意のタイプであってもよく、例えばWi-Fi(IEEE802.llx)、WiMax(IEEE802.16)、Ethernet(登録商標)、3G、4Gなどでもよい。
コラボレーションサービス106は、共有状態とメッセージパッシングを介して、例えばアプリケーションやデータなどの共有リソースへの協調的なアクセスを許可する。コラボレーションサービス106は、1つ以上のコンピューティングデバイスまたはサーバー(例えば、図8に関連して説明する汎用コンピューティングデバイス)と、1つ以上のアプリケーションを用いて実施することができる。コラボレーションサービス106は、クライアントコンピューティングデバイス112A、112B及び112Cが連携セッションに参加することを有効にする。コラボレーションサービス106は、クライアントコンピューティングデバイス112A、112B及び112Cが、例えばリモートアクセスされるアプリケーション108と対話できるようにすることが可能である。リモートアクセスしたアプリケーションを通じた連携を例として挙げているが、この開示は、コラボレーションサービス106が、クライアントコンピューティングデバイス112A、112B及び112Cがリモートアクセスしたデータまたは他のタイプのサービスとの対話を可能にすることを企図している。コラボレーションサービス106は、コラボレーションサービス106とクライアントコンピューティングデバイス112A、112B及び112Cとの間に状態モデル200を更新及び/または送信することにより相互に対話できるようにする。このように、連携セッションに参加するクライアントコンピューティングデバイス112A、112B、112Cのそれぞれは、リモートアクセスしたアプリケーション108の同期ビューを提示することができる。状態モデル200は、リモートアクセスしたアプリケーション108に関するアプリケーションの状態情報及び/または連携セッションに関するセッション情報を含むことができる。状態モデル200は、例えば拡張マークアップ言語(XML)ドキュメントで表すことができる。しかし、状態モデル200は他の表現を使用することができることを理解すべきである。
さらに、コラボレーションサービス106は、連携セッション(例えば、リモートアクセスしたアプリケーション108を通じて連携する)に参加しているクライアントコンピューティングデバイス112A、112B、112Cへ/からのメッセージをパスするための機能を提供することが可能なコラボレーションマネジャー110を含むことができる。例えば、コラボレーションマネジャー110は、個々のクライアントコンピューティングデバイス(すなわち、「CollaborationManager#sendMessage」)にメッセージをパスすることを容易にするために、及び/または複数のクライアントコンピューティングデバイス(すなわち、「CollaborationManager#sendBroadcastMessage」)にメッセージを同時にパスすることを容易にするために、一般的なメッセージパッシング機能(「CollaborationManager」)を提供することができる。後述するように、コラボレーションマネジャー110は、コラボレーションサービス106とクライアントコンピューティングデバイス112A、112B、112Cの間でメッセージをパスすることによって、ピアツーピア検出及び接続の開設を可能にする。
クライアントコンピューティングデバイス112A、112B、112Cは、例えばグラフィック表示によって人が理解できるようにデータ及び/または画像を表示し、受信したユーザー指示に従ってユーザー入力データを決定するために、ユーザーとの対話処理を可能にするべく、Webブラウザなどでクライアントアプリケーション120A、120B、120Cを実行することができる。必要に応じて、グラフィックディスプレイは、タッチセンシティブディスプレイ(すなわち、タッチスクリーン)とすることができる。クライアントアプリケーション120A、120B、120Cはコラボレーションサービス106と協働することも可能であり、クライアントコンピューティングデバイス112A、112B、112C間の連携を可能にする。さらに、クライアントコンピューティングデバイス112A、112B、112Cは、ピアツーピアフレームワーク118A、118B、118Cを実行することができる。ピアツーピアフレームワーク118A、118B、118Cは、例えばクライアントコンピューティングデバイス112A、112B、112Cのそれぞれのペア間で開設されたピアツーピア接続(例えば、図1におけるピアツーピア接続300)を介してメディアコンテンツなどのコンテンツの共有を可能にする。本開示は、ピアツーピア接続をオンザフライでクライアントコンピューティングデバイス112A、112B、112Cの任意のペア(複数可)との間で開設することができることを企図している。例えば、ピアツーピアフレームワーク118A、118B、118Cは、上述した通信ネットワーク上でリアルタイムのピアツーピア通信機能を提供する1つまたは複数のAPIを含むことができる。APIは、ピアツーピア接続の開設/構築(例えば、オファーアンサープロトコルを使用して)、ピアツーピア接続の管理及び/またはWebカメラ、マイクなどのローカルリソースの管理を可能にする。ピアツーピア接続を開設した後、これらに限定するものではないが、オーディオ、ビデオ、テキスト、データ、デスクトップ画面スクレープ及び画像ライブラリを含むメディアコンテンツは、ピアツーピア接続を介してリアルタイムで共有することができる。例えば、メディアコンテンツはクライアントコンピューティングデバイス112A、112B、112Cのウェブカメラ、マイクなどのローカルメディアリソースによって取り込むことができ、ピアツーピアフレームワーク118A、118B、118Cを介して共有することができる。
ピアツーピアフレームワークの一例は、WEBRTC(http://webrtc.orgで入手可能)である。WEBRTCは、コンピュータネットワーク上でリアルタイムにピアツーピア通信の機能を提供するためのHTMLに統合する複数のJavaScript(登録商標)のAPIを備えている。例えば、WEBRTCは、ローカルメディアリソースへのアクセスを提供するAPI(「getUserMedia」)を含み、ピアツーピア接続を介して表示及び/または通信するためにローカルメディアリソースがローカルエレメントに接続されることを可能にする。さらに、WEBRTCは、クライアントコンピューティングデバイスのペア間でピアツーピア接続を管理するための機能を提供するAPI(「PeerConnection」)を含む。このAPIは、伝送プロトコル、ビデオ/オーディオコーデック、ネットワークアドレス変換(NAT)トラバーサルディテールなどを管理することによってメディアリソースの共有を交渉するための機能を提供する。このAPIは、ピアツーピア接続を構築するために必要な情報を定義するオファーアンサープロトコルを提供する。このAPIを使用して、メディアリソースは、ディスプレイのためにリモートエレメントに接続することができる。さらに、WEBRTCは、汎用通信用生データチャネルを提供するAPIを含んでいる。WEBRTCは一例のフレームワークであって、本開示は同様のフレームワークを使用しての実装も企図していることが理解されるべきである。
しかしながら、WEBRTCのようなピアツーピアフレームワークは、例えば潜在的なピアノードを発見するための機能を提供することができない。つまり、ピアツーピアフレームワークは、ピアツーピア接続(複数可)を開設するために1つのクライアントコンピューティングデバイスが1つ以上のピアクライアントコンピューティングデバイスを検出(見つける、特定するなど)することができない。以下でさらに詳細に記述するように、この機能はコラボレーションサービスによって提供することができる(例えば、図1におけるコラボレーションサービス106)。例えば、リモートアクセスアプリケーション108を通じての連携を可能にすることに加えて、コラボレーションサービス106は、ピアノードを検出してピアツーピア接続を開設するための機能を提供することができる。コラボレーションマネジャー110を使用して、コラボレーションサービス106は、クライアントコンピューティングデバイス112A、112B、112Cにメッセージ(例えば、接続要求メッセージ、オファーメッセージ、応答メッセージなど)をパスすることができ、ピアツーピア検出してクライアントコンピューティングデバイス112A、112B、112Cの任意のペア間でオンザフライのピアツーピア接続開設を可能にする。その後、ピアツーピアフレームワーク118A、118B、118Cは、ピアツーピア接続を介してメディアまたは他のコンテンツを共有するための機能を提供することができる。従って、コラボレーションサーバーとピアツーピアフレームワークは、ピアツーピア通信を可能にするため一緒に作動することができる。さらに、ピアツーピア検出及び接続の開設プロセスがコラボレーションサービスに依存している間、一旦ピアツーピア接続が開設されると、コラボレーションサービスはピアツーピア通信(例えば、メディアコンテンツの共有)に巻き込まれなくなり、これによってコラボレーションサービスの負荷が軽減される。
[通信フロー実施例]
ここで図2を参照するが、この図には図1の環境における通信フローを例示するコールフロー図が示されている。特に、コールフロー図は、例えばクライアントコンピューティングデバイス112A、112B、112Cの間のピアツーピア接続の開設を説明している。図2は3つのクライアントデバイス間でピアツーピア接続の開設を説明しているが、この運用は任意の数のクライアントデバイス間で接続を開設するために使用することができることを理解すべきである。コールフロー図は、ステージ、すなわちコラボレーション230、ピアツーピア検出240及びピアツーピア通信250の段階に分割される。コラボレーションステージ230の間に、クライアントコンピューティングデバイス112A、112B、112C(例えば、参加者)は、リモートアクセスしたアプリケーション(例えば、図1のリモートアクセスしたアプリケーション108を)を通じて連携でき、コラボレーションサービス106は、クライアントコンピューティングデバイス112A、112B、112C間に状態モデル200を通信するために使用される。
各ピアツーピア接続は、2つのノード間であることを理解すべきである。従って、上述したPeerConnectionのようなAPIは、ピアツーピア接続を開設するためにピアツーピア接続の一方で、1つのオファーを送信し前記オファーに対して1つの回答を受信するため、或いは1つのオファーを受信して1つの回答をするように提供している。2つ以上のノードを接続するには、各ノードが他のすべてのノードとのピアツーピア接続(例えば、オファー−応答メッセージを交換することによって)を開設する。しかし、ノードの各ペアに対して、一対のノードのうちの1つのみがオファーメッセージを送信する必要があり、このオファーメッセージは一対のノードのうちの他方が応答すべきものである。ここで図3A−3Cを参照するが、この図には複数のノード間のピアツーピア接続が示されている。例えば、図3A−3Cにおいて、3つ、4つ及び5つのノードシステムのためにはそれぞれ3個、6個及び10個の接続が必要とされる。このことは、接続数がノードの数と共に増加することを理解すべきである。また、本開示が2つ以上の任意の数のノード間でリアルタイムなピアツーピア接続を可能にすることを意図していることも理解されるべきである。
再び図2を参照するが、ピアツーピア接続を開設してリアルタイムのピアツーピア通信を開始するために、クライアントコンピューティングデバイス112A、112B、112Cのいずれかは、誰がコラボレーションセッションのホスティングをするかに関係なく、ピアツーピア通信を開始するためメッセージ(例えば、「startPeerToPeer」)を送信することができる。例えば、図2に示すようにクライアントコンピューティングデバイス112Bは、startPeerToPeerのメッセージを送信することができる(フロー202)。例えば、startPeerToPeerのメッセージが連携セッションに参加しているすべてのノードに送信されることを保証するために、CollaborationManager#sendBroadcastMessageを使用して送信することができる。従って、startPeerToPeerのメッセージは、リモートでアクセスしたアプリケーションを通じて連携しているすべてのノードに同時通信することができる。startPeerToPeerのメッセージは、例えばコラボレーションサービス106にクライアントコンピューティングデバイス112Bから送信することができる。そして、コラボレーションサービス106は、クライアントコンピューティングデバイス112A、112B、112CにstartPeerToPeerのメッセージを同時通信することができる(フロー204)。さらに、ピアツーピア検出ステージ240の間に、クライアントコンピューティングデバイス112A、112B、112Cは、リモートアクセスしたアプリケーションを通じて協働し続けることができる(例えば、状態モデル200は、クライアントコンピューティングデバイス112A、112B、112Cとコラボレーションサービス106との間を通過し続ける)。コラボレーションマネジャー110を使用して、アクティブなセッションと参加者(例えば、クライアントコンピューティング装置112A、112B、112C)を特定することが可能となる。
startPeerToPeerのメッセージを受信すると、受信ノード(すなわち、ローカルピアデバイス)は、例えばgetUserMediaのようなAPIを使用して、そのローカルメディアリソースにアクセスして保存することができる。ローカルピアデバイスは、連携セッション情報(すなわち、リモートピアデバイス)から1つ以上のピアデバイスを識別することができる。例えば、ローカルピアデバイスは、アクティブなセッション識別子(例えば、「CollaborationManager#getActiveSessions」を使用してリモートアクティブピアデバイスに関連付けられたセッション識別子)と独自のローカルセッション識別子のリストを取得することができる(「CollaborationManager#getSessionld」を使用して)(206フロー)。上述したように、コラボレーションサービス106は、状態モデル200の一部として、例えば状態情報の一部としてのセッション情報を維持することができる。従って、コラボレーションマネジャー110を使用して、指定された時間にアプリケーションにリモートでアクセスしているデバイス(複数可)を決定することが可能である。そして、ローカルピアデバイスは、そのセッション識別子(「localSessionld」)を他のアクティブセッション識別子(「remoteSessionld」)の各々と比較することができる。ローカルピアデバイスは、独自のセッション識別子よりも大きいアクティブなセッション識別子を識別することができる(「localSessionld<remoteSessionld」)。このようにして、ローカルピアデバイスは、最小限の労力を用いてオファーメッセージを送信する送信先のピアデバイスを識別することができる。言い換えれば、ローカルピアデバイスは、より大きなセッション識別子を有するピアデバイス(複数可)にオファーメッセージを送信することができ、より少ないセッション識別子を有するピアデバイス(複数可)にはオファーメッセージを送信することができない。これにより、オファーメッセージをデバイスのペアのそれぞれから、ペアの他のデバイスへの送信されることが防止される。例えば図2の3個のノードで、クライアントコンピューティングデバイス112Aはオファー・メッセージをクライアントコンピューティングデバイス112B、112Cに送信し、クライアントコンピューティングデバイス112Bはオファーメッセージをクライアントコンピューティングデバイス112Cに送信し、そして、クライアントコンピューティングデバイス112Cは何らオファーメッセージを送信しない。このようにして、ピアツーピア接続(複数可)を開設するときに送信されるメッセージの総数を削減することが可能となる。加えて、デバイスのペア一つあたりのピアツーピア接続の数を制限することができる。また、同じ目的を達成するために、ローカルピアデバイスは、代替的にそのセッション識別子を取得された各アクティブなセッション識別子(「localSessionld>remoteSessionld」)と比較し、より少ないセッション識別子を有するピアデバイス(複数可)だけにオファーメッセージを送信することもできることが理解されるべきである。言い換えれば、ローカルピアデバイスは、より少ないセッション識別子を有するピアデバイス(複数可)にオファーメッセージを送信することができ、より大きいセッション識別子を有するピアデバイス(複数可)にはオファーメッセージを送信しないようすることができる。代替的又は追加的に、どのデバイスにオファーメッセージを送信するかを決定するために、ローカルピアデバイスは、以下のプロトコル(1)に従う任意の関数を使用することができる。
f(a,a)=偽(1) 及び
a!= bANDf(b,a)=偽 の場合にのみf(a,b)=真
そして、より大きなセッション識別子を有する各ピアデバイスのために、ローカルピアデバイスは、例えばPeerConnectionのようなAPIを使用して、ローカルピア接続オブジェクトを作成することができる。そして、ローカルピアデバイスは、上述したように保存されたそのローカルメディアリソースをローカルピア接続オブジェクトに添付することができる。ローカルピアデバイスは、宛先セッション識別子(例えば、オファーメッセージが送信されるべきデバイスのセッション識別子)に基づいて、ローカルピア接続オブジェクトを格納することができる。このようにして、各ローカルピア接続オブジェクト(すなわち、ピアツーピア接続あたり1つ)を格納することができ、後にアクセスが可能である。
その後、ローカルピアデバイスは、例えばPeerConnectionのようなAPIを使用して、オファーメッセージ(「createOffer」)を生成することができる。オファーメッセージは、ローカルピアデバイスに関連付けられた1つ以上の属性を含むことが可能である。属性は、ピアツーピア接続を開設するために必要とされるローカルピアデバイスに関する情報を含むことができる。ローカルピアデバイスは、「from field」のようなオファーメッセージのフィールドに自身のセッション識別子を追加することができ、これによりオファーメッセージが送信されるべきデバイスがソースデバイスを識別することを可能にする。ローカルピアデバイスは、例えば宛先ノード(すなわち、リモートピアデバイス)にオファーメッセージを送信することができる。これは、例えばCollaborationManager#sendMessageを用いて遂行することができる。例えば図2の3ノードセッションでは、クライアントコンピューティングデバイス112Aは、オファーメッセージをクライアントコンピューティングデバイス112B、112C(例えば図2における送信(クライアント2)オファークライアント1-2、送信(クライアント3)オファークライアント1-3)に送信し、クライアントコンピューティングデバイス112Bはオファーメッセージをクライアントコンピューティングデバイス112C(例えば図2における送信(クライアント3)オファークライアント2-3)に送信し、そして、クライアントコンピューティングデバイス112Cはいかなるオファーメッセージも送信しない(フロー208)。図2に示すように、ローカルピアデバイス(複数可)は、コラボレーションサービス106にオファーメッセージ(複数可)を送信し、コラボレーションサービス106は、リモートピアデバイス(複数可)にオファーメッセージ(複数可)をパスする。例えばコラボレーションサービス106は、クライアントコンピューティングデバイス112Aからのオファーメッセージをクライアントコンピューティングデバイス112B、112Cにパスし(例えば図2におけるオファークライアント1-2及びをオファークライアント1-3)、コラボレーションサービス106がオファーメッセージをクライアントコンピューティングデバイス112Bからクライアントコンピューティングデバイス112Cにパスする(例えば図2のオファークライアント2-3)(フロー210)。さらに、クライアントコンピューティングデバイス112A、112B、112Cは、リモートアクセスしたアプリケーションを通じて協働し続けることができる(例えば状態モデル200は、クライアントコンピューティングデバイス112A、112B、112Cとコラボレーションサービス106との間を通過し続ける)。
オファーメッセージを受信すると、リモートピアデバイスは、例えばPeerConnectionのようなAPIを使用して、リモートピア接続オブジェクトを作成することができる。リモートピアデバイスは、上述したように保存されたそのローカルメディアリソースをローカルピア接続オブジェクトに添付することができる。リモートピアデバイスは、ローカルピアデバイス(「setRemoteDescription」)に関連付けられた1つまたは複数の属性をリモートピア接続オブジェクトに添付することもできる。そして、リモートピアデバイスは、例えばPeerConnectionのようなAPIを使用して、応答メッセージ(「createAnswer」)を生成することができる。応答メッセージは、リモートピアデバイスに関連付けられた1つ以上の属性を含むことができる。属性は、ピアツーピア接続を開設するために必要とされるリモートピアデバイスに関するなんらかの情報を含むことができる。
リモートピアデバイスは、「from field」のような応答メッセージのフィールドに自身のセッション識別子を追加することができ、これにより応答メッセージが送信されるべきデバイスがソースデバイスを識別することを可能にする。そして、リモートピアデバイスは、例えばローカルピアデバイスに応答メッセージを送り返すことができる。これは、例えばCollaborationManager#sendMessageを用いて達成することができる。応答メッセージを受信すると、ローカルピアデバイスはローカルピア接続オブジェクトにアクセスし、宛先セッション識別子に基づいて格納され、リモートピアデバイスに関連する1つまたは複数の属性を添付することができる(「setRemoteDescription」)。例えば、図2の3ノードセッションでは、クライアントコンピューティングデバイス112Cは、応答メッセージをクライアントコンピューティングデバイス112A、112Bに送信し(例えば図2における送信(クライアント1)応答クライアント3-1及び送信(クライアント2)応答クライアント3-2)、クライアントコンピューティングデバイス112Bは、応答メッセージをクライアントコンピューティングデバイス112Aに送信する(例えば図2おける送信(クライアント1)応答クライアント2-1)(フロー212)。また、図2に示すように、リモートピアデバイス(複数可)は、コラボレーションサービス106に応答メッセージ(複数可)を送信し、コラボレーションサービス106は、ローカルピアデバイス(複数可)に応答メッセージ(複数可)をパスする。例えば図2の3ノードのセッションでは、コラボレーションサービス106は、応答メッセージをクライアントコンピューティングデバイス112Cからクライアントコンピューティングデバイス112A、112Bにパスし(例えば、図2における応答クライアント3−1及び応答クライアント3−2)、そして、コラボレーションサービス106は、クライアントコンピューティングデバイス112Bからの応答メッセージをクライアントコンピューティングデバイス112Aへパスする(例えば図2における応答クライアント2−1)(フロー214)。さらに、クライアントコンピューティングデバイス112A、112B、112Cは、リモートアクセスしたアプリケーションを通じて協働し続けることができる(例えば状態モデル200は、クライアントコンピューティングデバイス112A、112B、112Cとコラボレーションサービス106との間を通過し続ける)。
そして、ローカル及びリモートピアデバイス間のピアツーピア接続が起動される。上述したように、オファーと応答メッセージのすべてが取り交わされた後に、ピアツーピアフレームワーク118A、118B、118Cは、ローカル及びリモートピア接続オブジェクトを接続し、デバイスのそれぞれは、ストリーミングが開始されたことを通知される(例えば「onaddstream event」をファイアリングして)。例えば図2に示すように、それぞれのピアツーピア接続300は、クライアントコンピューティングデバイス112A及び112B、クライアントコンピューティングデバイス112A及び112C、クライアントコンピューティングデバイス112B及び112Cとの間で提示されている。ピアツーピア接続300を開設した後、メディアコンテンツは、クライアントコンピューティング装置112A、112B、112Cの間でストリーミングすることができる。さらに、メディアコンテンツは、コラボレーションサービス106が管理することなくストリーミングすることができ、これによってコラボレーションサービス106への負荷を軽減する。例えばピアツーピア通信ステージ250の間、クライアントコンピューティングデバイス112A、112B、112Cは、リモートアクセスしたアプリケーションを通じて協働し続ける(例えば状態モデル200は、クライアントコンピューティングデバイス112A、112B、112Cとコラボレーションサービス106との間をパスし続ける)。このように、コラボレーションサービス106を使用してピアデバイス(例えば連携セッションに参加しているピアデバイス)を発見し、ピアツーピア接続を開設することが可能となる。さらに、例えば図1に示されるフレームワーク118A、118B、118Cのようなピアツーピアフレームワークがピアツーピア接続のコンテンツを共有するために使用することができる。また、リモートアクセスアプリケーションを通じての協働、並びに、例えば会議機能のようなピアツーピア通信能力を提供することができる。ひとたび開始されると、リアルタイムのピアツーピア通信はコラボレーションサービス106のリソースを利用しない。従って、メディアコンテンツはコラボレーションサービス106を使う代わりにピアツーピア接続(複数可)を使用して共有されているので、コラボレーションサービス106の負荷を軽減することができる。複数のノード間にリアルタイムなピアツーピア通信を提供するには相応量のネットワークリソースを必要とし、これがコラボレーションサービスを提供するネットワークリソースに負荷を与えていることを理解すべきである。
加えて、新しいデバイスが既存のリアルタイムなピアツーピアセッションに追加されると、新しいデバイスがstartPeerToPeerのメッセージを送信することができる。上述したように、startPeerToPeerのメッセージは複数のデバイスに同時通信することができる。そして、上述のプロセスは、受信デバイス(すなわち、ローカルピアデバイス)のそれぞれによって実行することができる。しかし、アクティブなピアツーピア接続が存在すると、ローカルピアデバイスはリモートピアデバイスに別のオファーメッセージを送信する必要がない。このように、ローカルピアデバイスは新しいデバイスにだけオファーメッセージを送信する。
さらに、連携セッション内で会議に参加しているデバイスは、会議から退くことができる。例えば、終了するデバイスは、明示的にBYEメッセージを送信することで会議を去ることができる。終了するデバイスは、例えば任意のフィールドで、BYEメッセージの一部として、任意にそのセッション識別子を含むことができる。BYEメッセージは、連携セッションに参加している複数のデバイスにメッセージを同時に送信するためにCollaborationManager#sendBroadcastMessageを使用して送信することができる。BYEメッセージは、会議を去ろうしている終了するデバイスを他のデバイスに通知することができる。例えば他のデバイスは、BYEメッセージのフィールド内の情報を使用して終了するデバイスを識別することができ、その後、対応するピアツーピア接続(すなわち、終了するデバイスと他のデバイスのそれぞれに接続するピアツーピア接続)を閉じる。終了するデバイスは、他のデバイスのそれぞれとのピアツーピア接続を閉じることもできる。従って、ピアツーピア接続の完全な中断を提供することが可能であり、会議は残りのデバイスで続けられることになる。
加えて、会議を離れることを明示することなく終了するデバイスのブラウザが閉じられた場合、終了するデバイスはBYEメッセージを送信しない。しかし、会議に参加している他のデバイスは、終了するデバイスがメディアコンテンツ(例えば、オーディオ、ビデオなど)の共有を停止したことを認識し、対応するピアツーピア接続を再接続及び/または閉じることを試みることができる。例えば、WEBRTCは、コンピュータネットワークを介してピアに接続する対話型の接続確率(ICE)と呼ばれるシステムを使用する。ICEは、ピアツーピア接続が失われたときに気が付くと再接続を試みてトリガするように構成されている。例えば、会議に残っているデバイス(すなわち、終了するデバイスに対するピアデバイス)が、onlceCandidate eventをトリガすることができる。WEBRTCはonlceCandidate eventを傾聴し、リモートセッションがまだ存在するかどうかを確認するためにアクティブなセッションのリストをチェックする(すなわち、CollaborationManager#getActiveSessionsを使用して)。リモートセッションが存在しない場合、デバイスはピアツーピア接続を閉じ、会議は残りのデバイスで続行することになる。
次に図4を参照して説明するが、この図にはピアツーピア検出及び接続の開設のための例示的な動作400を説明するフロー図が示されている。402において連携セッションが容易になり、ここでは複数のクライアントコンピューティングデバイスがアプリケーションセッションのような連携セッション内で協働する。例えば複数のクライアントコンピューティングデバイスの連携セッションを容易にするための環境は、図1に関連して上述されている。404では、クライアントコンピューティングデバイスの1つが、連携セッション内で協働するするクライアントコンピューティングデバイスを検出することを可能にする。例えば、クライアントコンピューティングデバイスは、図1及び2に関連して説明したコラボレーションサービス106のようなコラボレーションサービスによって維持されるセッション情報からの連携セッション内で対話するクライアントコンピューティングデバイスを検出することができる。次に、406において、1つ以上のメッセージが連携セッション内で対話するクライアントコンピューティングデバイス間でパスされる。例えば図1及び図2に関連して説明したコラボレーションサービス106のようなコラボレーションサービスは、メッセージをクライアントコンピューティングデバイスと交換することができる。メッセージは、連携セッションに参加しているクライアントコンピューティングデバイスのペア間でのピアツーピア接続(複数可)を開設するために使用される。
ここで図5を参照して説明するが、この図にはピアツーピア検出及び接続の開設のための例示的な動作500を説明するフロー図が示されている。502において、連携セッションでアクティブになっているローカルピアデバイスのローカルセッション識別子とリモートピアデバイスのリモートセッション識別子は、コラボレーションサービスから取得される。例えば、ローカル及びリモートセッション識別子は図2に関して上述したように、「CollaborationManager#getSessionlD」を使用して取得することができる。504では、ローカルセッション識別子がリモートセッション識別子より小さいか否かを判断する。例えば図2に関して説明したように、これにより各ピアデバイスは、送信されるオファーメッセージの数を最小限に抑えながら、オファーメッセージを他のピアデバイスのどれに送信すべきかを決定することができるようになる。505では、もしローカルセッション識別子がリモートセッション識別子以上である場合、オファーメッセージはローカルピアデバイスからリモートピアデバイスに送信されない。一方、506において、もしローカルセッション識別子がリモートセッション識別子よりも小さい場合、オファーメッセージは、コラボレーションサービスを使用してリモートピアデバイスにローカルピアデバイスから送信される。オファーメッセージは、図2に関連して上述したように、例えば「CollaborationManager#sendMessage」を用いて送信することができる。508では、リモートピアデバイスからの応答メッセージは、コラボレーションサービスを用いてローカルピアデバイスで受信される。例えば、オファーと応答メッセージは、図1及び2に関連して説明したように、コラボレーションサービス106のようなコラボレーションサービスを使用して送信できる。510においては、ピアツーピア接続がローカル及びリモートクライアントコンピューティングデバイス間で開設される。上述したように、メディアコンテンツは、その後、ピアツーピア接続を介して共有することができる。例えば、ピアツーピア接続(例えば、ピアツーピア接続300)を開設した後、メディアコンテンツは、図1に関連して説明したように、ピアツーピアフレームワーク118A、118B、118Cのようなピアツーピアのフレームワークを使用して共有することができる。
図6に関して説明するが、ここにはリモートアクセス環境600を説明するブロック図が示されている。リモートアクセス環境600は、例えば前述の連携セッションのような連携セッションを可能にする。図6に示すように、リモートアクセス環境600は、クライアント602(例えば、図1のクライアントコンピューティングデバイス112A、112Bまたは112C)、サーバー604及びサービス606(例えば、図1のリモートアクセスアプリケーション108)を含んでいる。本開示は、コラボレーションマネジャー(例えば、図1のコラボレーションマネジャー106B)が、クライアント602、サーバー604及びサービス606の任意の組み合わせにより実装できることを企図している。リモートアクセス環境600は、クライアント602とサービス606との間でビュー(例えば、表示要素)の同期化を可能にする。また、リモートアクセス環境600は、クライアント602とサービス606との間のユーザー入力の同期化を可能にする。例えばサーバー604はアプリケーションの状態を管理することができ、アプリケーションとセッション情報も含むこともできると共に、これらに限定されず、アプリケーションの状態を管理することにより、クライアント602とサービス606との間でビュー及びユーザー入力を同期させることができる。図1及び図2に関連して上述したように、アプリケーションの状態は、状態モデルを使用して管理することができる。リモートアクセス環境600は、ピアツーピアの検出及び接続の開設を可能にするため随意に拡張することができる。換言すれば、セッション情報を含むアプリケーション状態を管理することによって、サーバー604は、1人(またはそれ以上)の参加者が連携セッションでアクティブな参加者を検出することを可能にする。さらに、サーバー604は、連携セッション内でアクティブな参加者間のピアツーピア接続(複数可)(「コマンド」)を開設するためのメッセージ送信を容易にすることが可能である。任意であるが、リモートアクセス環境600は、発明の名称「アプリケーションプログラムの状態へのリモートアクセスを提供するための方法及びシステム」の米国特許出願公開第2010/0131591号に記載のリモートアクセス環境とすることができる。たとえば、リモートアクセス環境は、カナダ国アルバータ州、カルガリーのカルガリー・サイエンティフィック社から入手できるPUREWEBである。
図7を参照すると、ビデオ会議との連携セッションを説明する例示的なユーザーインタフェース700が示されている。本明細書に記載されたシステム及び方法を使用すれば連携セッション(例えば、リモートアクセスアプリケーションを通じての連携)を通じてリアルタイムなピアツーピア通信機能(例えば会議機能)を提供することが可能である。上述したように、連携セッションは、医用画像アプリケーションのようなアプリケーションを通じてリモートアクセスして協働する複数のクライアントコンピューティングデバイスを含むことができる。カナダ国アルバータ州、カルガリーのカルガリー・サイエンティフィック社から入手可能なPUREWEBプラットフォームによってウェブやモバイルでの使用を可能にした画像ソフトウェアRESOLUTIONMDは、医用画像アプリケーションの一例である。RESOLUTIONMDを使用すればクライアントコンピューティングデバイスで、例えば医用画像(複数可)710を協働して見ることができる。また、本明細書に記載のシステム及び方法を使用して、連携セッションに参加しているクライアントコンピューティングデバイスのいずれかは、例えばアイコン720を使用してリアルタイムにピアツーピア通信を開始することができる。1つまたは複数のピアクライアントコンピューティングデバイス(例えば、リモートアクセスされたアプリケーションを通じて協働するクライアントコンピューティングデバイスのうちの1つまたは複数)は、連携セッション情報から収集した情報に基づいて特定することができ、メッセージはサーバーの間をパスして、連携セッションとクライアントコンピューティングデバイスがピアツーピア接続(複数可)を開設することを可能にする。従って、連携セッションを通じてリアルタイムなピアツーピア通信機能を提供することが可能となる。図7に示すように、ビデオ730(またはリアルタイムなピアツーピア通信)がユーザーインタフェース700に提供され得る。
図8は、例示的な実施形態及び態様を実装することができるコンピューティング環境の一例を示すものである。コンピューティングシステム環境は、適切なコンピューティング環境の一例に過ぎず、使用または機能の範囲に関する限定を示唆するものではない。
他に多数の汎用または専用コンピューティングシステム環境または機器構成を用いてもよい。使用するのに適切であり得る周知のコンピューティングシステム、環境、及び/または機器構成の例としては、パーソナルコンピュータ、サーバーコンピュータ、携帯用またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークパーソナルコンピュータ(パソコン)、ミニコンピュータ、メインフレームコンピュータ、組込みシステム、前記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などであるが、これらに限定されない。
コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令を使用してもよい。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通信ネットワークまたは他のデータ伝送媒体を介してリンクするリモート処理装置によってタスクが実行される分散コンピューティング環境を使用してもよい。分散コンピューティング環境では、プログラムモジュール及び他のデータは、メモリ記憶装置を含むローカル及びリモートコンピュータ記憶媒体の双方に配置することができる。
図8を参照するが、本明細書に記載の諸態様を実施するための例示的なシステムは、コンピューティングデバイス800のようなコンピューティングデバイス含む。その最も基本的な構成では、コンピューティングデバイス800は、典型的には少なくとも1つの処理ユニット802及びメモリ804を含む。コンピューティングデバイスの正確な構成及びタイプに応じて、メモリ804は、揮発性(例えば、ランダムアクセスメモリ(RAM)などの)、不揮発性(例えばリードオンリーメモリ(ROM)、フラッシュメモリなど)、または2つの組み合わせであってもよい。最も基本的な構成が図8に破線808で示されている。
コンピューティングデバイス800は、付加的な特徴/機能を有することができる。コンピューティングデバイス800は、例えば磁気または光ディスクまたはテープを含んで追加のストレージ(リムーバブル及び/または非リムーバブル)を備えてもよいが、これらに限定されない。このような追加のストレージは、図8ではリムーバブルストレージ808及び非リムーバブルストレージ810として示される。
コンピューティングデバイス800は、概して様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、デバイス800によってアクセスされ得る任意の利用可能な媒体とすることができ、揮発性及び不揮発性両方の媒体、リムーバブル及び非リムーバブル媒体を含むことができる。
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含む。メモリ804、リムーバブルストレージ808、及び非リムーバブルストレージ810はすべて、コンピュータ記憶媒体の実施例である。コンピュータ記憶媒体としては、これらに限定されるものではないが、RAM、ROM、電気的消去可能プログラム読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、或いは所望の情報を格納するために使用することができ、コンピューティングデバイス800によってアクセスすることができる任意の他の媒体を含む。このような任意のコンピュータ記憶媒体は、コンピューティングデバイス800の一部とすることができる。
コンピューティングバイス800は、デバイスが他のデバイスと通信することを可能にする通信接続(複数)812を含むことができる。また、コンピューティングデバイス800は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置(複数可)814を有していてもよい。ディスプレイ、スピーカー、プリンタなどの出力装置(複数可)816が含まれてもよい。これらのデバイスはすべて当技術分野で周知であり、ここで詳細に論じる必要はない。
なお、本明細書で説明した様々な技術は、ハードウェアまたはソフトウェア、或いは適切な場合には双方の組み合わせに関連して実装されてもよいことが理解されるべきである。従って、本明細書に開示した主題である方法及び装置、またはその特定の態様または部分は、プログラムコード(すなわち、命令)の形をとってもよく、フロッピー(登録商標)ディスケット、CD-ROM、ハードドライブ、または他の任意な機械可読記憶媒体のような有形媒体で具現化し、プログラムコードがコンピュータなどの機械にロードされて実行されるとき、機械はここに開示された主題を実施するための装置となる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、コンピューティングデバイスは、一般にプロセッサ、プロセッサによって読み取り可能な記憶媒体(揮発性及び不揮発性メモリ及び/または記憶要素を含む)、少なくとも1つの入力装置、及び少なくとも1つの出力装置を含む。1つまたは複数のプログラムは、例えば、アプリケーションプログラミングインターフェース(API)、再利用可能なコントロール、またはその種の他のもの使用を介して、ここに開示された主題に関連して説明したプロセスを実行または利用することがでる。このようなプログラムは、コンピュータシステムと通信するハイレベルな手続き型のまたはオブジェクト指向のプログラミング言語で実装されてもよい。しかしながら、所望であればプログラム(複数可)は、アセンブリーまたは機械言語で実装してもよい。いずれにせよ、言語はコンパイル型またはインタープリタ型言語であってもよく、ハードウェア実装と組み合わせることがでる。
主題は構造的特徴及び/または方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも上述の特徴または動作に限定されないことを理解すべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲を実施する形態例として開示されている。
100 環境
106 コラボレーションサービス
110 コラボレーションマネジャー
112A、112B、112C クライアントコンピューティングデバイス
118A、118B、118C ピアツーピアフレームワーク
120A、120B、120C クライアントアプリケーション
200 状態モデル
300 ピアツーピア接続

Claims (31)

  1. ピアツーピアサービスに使用されるピアツーピア検出及び接続開設フレームワークであって、複数のクライアントデバイスがアプリケーションセッション内で相互に対話することを可能にするコラボレーションサービスを含み、前記コラボレーションサービスは、前記クライアントデバイスの少なくとも1つがアプリケーションセッション内で相互に対話する他のクライアントデバイスを検出することを可能にするために1つまたは複数のメッセージを前記クライアントデバイス間にパスし、クライアントデバイスのペア間でピアツーピア接続を開設するように構成された協同管理装置を含む、フレームワーク。
  2. 前記協同管理装置は、複数のピアツーピア接続を開設するために1つまたは複数のメッセージをクライアントデバイス間にパスし、前記ピアツーピア接続のそれぞれはクライアントデバイスのそれぞれのペア間でなる、請求項1に記載のフレームワーク。
  3. 前記クライアントデバイス間への1つまたは複数のメッセージのパスは、前記クライアントデバイスの1つからピアツーピア接続を開始するための要求を受信し、前記要求を前記クライアントデバイスに同時通信することを含む、請求項1及び2のいずれかに記載のフレームワーク。
  4. さらに、前記クライアントデバイス間への1つまたは複数のメッセージのパスは、オファーアンサープロトコルに従って前記クライアントデバイス間へオファー及び応答メッセージをパスすることを含む、請求項1〜3のいずれか1項に記載のフレームワーク。
  5. 前記ピアツーピアサービスは、前記クライアントデバイスのペアがピアツーピア接続を介してメディアコンテンツを共有することを可能にする、請求項1〜4のいずれか1項に記載のフレームワーク。
  6. 前記メディアコンテンツは、オーディオまたはビデオの少なくとも1つである、請求項5に記載のフレームワーク。
  7. 前記メディアコンテンツは、前記コラボレーションサービスのリソースを使用することなく、前記ピアツーピア接続を介して共有される、請求項5に記載のフレームワーク。
  8. 前記アプリケーションセッション内で相互に対話する前記クライアントデバイスは、前記コラボレーションサービスにより維持されるセッション情報を使用して検出される、請求項1〜7のいずれか1項に記載のフレームワーク。
  9. 前記コラボレーションサービスは、前記アプリケーションセッションの状態を維持し、前記クライアントデバイス間に前記アプリケーションセッションの前記状態をパスすることで前記アプリケーションセッション内で前記クライアントデバイスが対話することを可能にする、請求項1〜8のいずれか1項に記載のフレームワーク。
  10. 前記アプリケーションセッションの前記状態は、状態モデルに維持される、請求項9に記載のフレームワーク。
  11. 前記アプリケーションセッション内で相互に対話する前記クライアントデバイスは、前記状態モデルに維持されるセッション情報を使用して検出される、請求項10に記載のフレームワーク。
  12. ピアツーピアサービスに使用されるピアツーピア検出及び接続を開設する方法であって、
    アプリケーションセッションを容易にし、複数のクライアントデバイスが前記アプリケーションセッション内で相互に対話し、
    前記クライアントデバイスの少なくとも1つが前記アプリケーションセッション内で相互に対話するクライアントデバイスを検出することを可能にし、
    前記クライアントデバイスのペア間でピアツーピア接続を開設するため1つまたは複数のメッセージを前記クライアントデバイス間にパスする
    ことを含む、方法。
  13. 複数のピアツーピア接続を開設するため1つまたは複数のメッセージを前記クライアントデバイス間にパスすることを含み、前記ピアツーピア接続のそれぞれは前記クライアントデバイスのそれぞれのペア間でなる、請求項12に記載の方法。
  14. さらに、1つまたは複数のメッセージの前記クライアントデバイス間へのパスは、前記クライアントデバイスの1つからピアツーピア接続を開始するための要求を受信し、要求を前記クライアントデバイスに同時通信することを含む、請求項12及び13のいずれか1項に記載の方法。
  15. さらに、1つまたは複数のメッセージの前記クライアントデバイス間へのパスは、オファーアンサープロトコルに従って前記クライアントデバイス間へオファー及び応答メッセージをパスすることを含む、請求項12〜14のいずれか1項に記載の方法。
  16. さらに、前記ピアツーピア接続を介してクライアントデバイスの前記ペア間でメディアコンテンツの共有を容易にすることを含む、請求項12〜15のいずれか1項に記載の方法。
  17. 前記メディアコンテンツは、オーディオまたはビデオの少なくとも1つである、請求項16に記載の方法。
  18. 前記メディアコンテンツは、前記アプリケーションセッション外で前記ピアツーピア接続を介して共有される、請求項16に記載の方法。
  19. さらに、前記アプリケーションセッションを容易にすることは、前記アプリケーションセッションの状態を維持し、前記クライアントデバイス間に前記アプリケーションセッションの前記状態をパスすることを含む、請求項12〜18のいずれか1項に記載の方法。
  20. 前記アプリケーションセッションの前記状態は、状態モデルに維持される、請求項19に記載の方法。
  21. 前記アプリケーションセッション内で相互に対話する前記クライアントデバイスは、前記状態モデルに維持されるセッション情報を使用して検出される、請求項20に記載の方法。
  22. ピアツーピアサービスに使用されるピアツーピア検出及び接続を開設する方法であって、
    コラボレーションサービスからアプリケーションセッションでアクティブなローカルピアデバイスのためにローカルセッション識別子を取得し、
    前記コラボレーションサービスから前記アプリケーションセッションでアクティブな少なくとも1つのリモートピアデバイスのために少なくとも1つのリモートセッション識別子を取得し、
    ローカルセッション識別子がリモートセッション識別子よりも小さいか否かを決定し、もし、前記ローカルセッション識別子が前記リモートセッション識別子に満たない場合、前記ローカルピアデバイスから前記リモートピアデバイスにオファーメッセージを送信し、
    前記ローカルピアデバイスで前記リモートピアデバイスから応答メッセージを受信し、前記ローカルピアデバイスとリモートピアデバイス間のピアツーピア接続を開設し、前記オファー及び応答メッセージが前記コラボレーションサービスを使用して前記ローカルピアデバイスとリモートピアデバイス間にパスされる、
    方法。
  23. 前記コラボレーションサービスから複数のリモートセッション識別子を取得し、前記リモートセッション識別子のそれぞれは前記アプリケーションセッションでアクティブなリモートピアデバイスのそれぞれと関連付けられ、
    前記ローカルセッション識別子が前記リモートセッション識別子のそれぞれより小さいか否かを決定する、
    ことを含む請求項22に記載の方法。
  24. もし、前記ローカルセッション識別子が前記リモートセッション識別子に満たない場合、前記ローカルピアデバイスを使用してローカルピア接続オブジェクトを生成し、
    前記ローカルピアデバイスのローカルメディアリソースを前記ローカルピア接続オブジェクトに添付し、ここで前記オファーメッセージが前記ローカルピアデバイスの1つ以上の属性を備える、
    請求項22及び23のいずれか1項に記載の方法。
  25. ローカルピアデバイスの1つ以上の属性は、ローカルセッション識別子を含む、請求項22〜24のいずれか1項に記載の方法。
  26. さらに、前記リモートセッション識別子に基づく前記ローカルピアデバイスを使用してローカルピア接続オブジェクトを格納することを含む、請求項24に記載の方法。
  27. さらに、前記オファーメッセージを受信すると、前記リモートピアデバイスを使用してリモートピア接続オブジェクトを生成し、
    前記リモートピアデバイスのリモートメディアリソースを前記リモートピア接続オブジェクトへ添付し、
    前記リモートピアデバイスの1つ以上の属性を前記リモートピア接続オブジェクトに添付し、ここで前記応答メッセージは前記リモートピアデバイスの1つ以上の属性を備える、請求項24に記載の方法。
  28. 前記リモートピアデバイスの前記1つ以上の属性は、前記リモートセッション識別子を含む、請求項27に記載の方法。
  29. さらに、前記リモートピアデバイスの前記1つ以上の属性を前記ローカルピア接続オブジェクトへ添付することを含む、請求項28に記載の方法。
  30. ピアツーピアサービスで使用するためのピアツーピア検出及び接続を開設する方法であって、
    コラボレーションサービスからアプリケーションセッションでアクティブなローカルピアデバイスのローカルセッション識別子を取得し、
    前記コラボレーションサービスから前記アプリケーションセッション内でアクティブな少なくとも1つのリモートピアデバイスの少なくとも1つのリモートセッション識別子を取得し、
    前記ローカルセッション識別子が前記リモートセッション識別子よりも大きいか否かを判断し、前記ローカルセッション識別子が前記リモートセッション識別子よりも大きい場合、前記リモートピアデバイスに前記ローカルピアデバイスからオファーメッセージを送信し、
    前記ローカルピアデバイスで前記リモートピアデバイスから応答メッセージを受信し、
    前記ローカルピアデバイス及びリモートピアデバイス間のピアツーピア接続を開設し、ここで前記オファー及び応答メッセージは前記コラボレーションサービスを使用して、前記ローカルピアデバイス及びリモートピアデバイス間でパスされる、方法。
  31. ピアツーピアサービスで使用するためのピアツーピア検出及び接続を開設する方法であって、
    コラボレーションサービスからアプリケーションセッション内でアクティブなローカルピアデバイスのローカルセッション識別子を取得し、
    前記コラボレーションサービスから前記アプリケーションセッション内でアクティブなリモートピアデバイスの複数のリモートセッション識別子を取得し、
    以下で定義される関数:
    f(a,a)=偽 及び
    a!= bANDf(b,a)=偽 の場合にのみf(a,b)=真
    を使用して前記ローカルピアデバイスでオファーメッセージを前記リモートピアデバイスのいずれかに送信するかを決定し、
    前記ローカルピアデバイスで前記リモートピアデバイスからの応答メッセージを受信し、前記ローカル及びリモートピアデバイス間のピアツーピア接続を開設し、ここでオファー及び応答メッセージは前記コラボレーションサービスを使用して、前記ローカル及びリモートピアデバイス間でパスされる、方法。
JP2015543538A 2012-11-23 2013-11-25 連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステム Pending JP2016503547A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261729481P 2012-11-23 2012-11-23
US61/729,481 2012-11-23
PCT/IB2013/003134 WO2014080293A2 (en) 2012-11-23 2013-11-25 Methods and systems for peer-to-peer discovery and connection from a collaborative application session

Publications (1)

Publication Number Publication Date
JP2016503547A true JP2016503547A (ja) 2016-02-04

Family

ID=50774248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015543538A Pending JP2016503547A (ja) 2012-11-23 2013-11-25 連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステム

Country Status (7)

Country Link
US (1) US9894153B2 (ja)
EP (1) EP2923460B1 (ja)
JP (1) JP2016503547A (ja)
CN (1) CN105009519A (ja)
CA (1) CA2892271A1 (ja)
HK (1) HK1209538A1 (ja)
WO (1) WO2014080293A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016152506A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 通信システム、通信方法およびプログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363133B2 (en) 2012-09-28 2016-06-07 Avaya Inc. Distributed application of enterprise policies to Web Real-Time Communications (WebRTC) interactive sessions, and related methods, systems, and computer-readable media
US10164929B2 (en) 2012-09-28 2018-12-25 Avaya Inc. Intelligent notification of requests for real-time online interaction via real-time communications and/or markup protocols, and related methods, systems, and computer-readable media
US10684899B2 (en) * 2013-03-13 2020-06-16 Northrop Grumman Systems Corporation Mobile applications architecture
US10205624B2 (en) 2013-06-07 2019-02-12 Avaya Inc. Bandwidth-efficient archiving of real-time interactive flows, and related methods, systems, and computer-readable media
US9525718B2 (en) 2013-06-30 2016-12-20 Avaya Inc. Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media
US9614890B2 (en) 2013-07-31 2017-04-04 Avaya Inc. Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media
US9531808B2 (en) * 2013-08-22 2016-12-27 Avaya Inc. Providing data resource services within enterprise systems for resource level sharing among multiple applications, and related methods, systems, and computer-readable media
US10225212B2 (en) 2013-09-26 2019-03-05 Avaya Inc. Providing network management based on monitoring quality of service (QOS) characteristics of web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US9894117B2 (en) * 2013-10-09 2018-02-13 Cisco Technology, Inc. File transfers for virtual conferences
US10263952B2 (en) 2013-10-31 2019-04-16 Avaya Inc. Providing origin insight for web applications via session traversal utilities for network address translation (STUN) messages, and related methods, systems, and computer-readable media
US9769214B2 (en) 2013-11-05 2017-09-19 Avaya Inc. Providing reliable session initiation protocol (SIP) signaling for web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US10129243B2 (en) 2013-12-27 2018-11-13 Avaya Inc. Controlling access to traversal using relays around network address translation (TURN) servers using trusted single-use credentials
US10121015B2 (en) 2014-02-21 2018-11-06 Lens Ventures, Llc Management of data privacy and security in a pervasive computing environment
US9392057B2 (en) * 2014-04-11 2016-07-12 Qualcomm Incorporated Selectively exchanging data between P2P-capable client devices via a server
US9749363B2 (en) 2014-04-17 2017-08-29 Avaya Inc. Application of enterprise policies to web real-time communications (WebRTC) interactive sessions using an enterprise session initiation protocol (SIP) engine, and related methods, systems, and computer-readable media
US10581927B2 (en) * 2014-04-17 2020-03-03 Avaya Inc. Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media
US9912705B2 (en) 2014-06-24 2018-03-06 Avaya Inc. Enhancing media characteristics during web real-time communications (WebRTC) interactive sessions by using session initiation protocol (SIP) endpoints, and related methods, systems, and computer-readable media
US10069872B2 (en) * 2014-07-18 2018-09-04 Verizon Patent And Licensing Inc. Architecture to establish serverless WebRTC connections
CN105391745A (zh) * 2014-08-22 2016-03-09 阿瓦亚公司 应用间资源级共享用企业***内数据资源服务方法、***
US9648066B2 (en) * 2014-08-29 2017-05-09 The Boeing Company Peer to peer provisioning of data across networks
US10104701B2 (en) * 2015-04-20 2018-10-16 Samsung Electronics Co., Ltd. Apparatus and method for WebRTC in a mobile device
US10257174B2 (en) * 2016-01-20 2019-04-09 Medicom Technologies, Inc. Methods and systems for providing secure and auditable transfer of encrypted data between remote locations
US10630835B2 (en) 2016-03-08 2020-04-21 T-Mobile Usa, Inc. Content sharing between related devices
US20170264652A1 (en) * 2016-03-08 2017-09-14 T-Mobile Usa, Inc. Cross-platform video conversation between related devices
US10356745B2 (en) 2016-06-08 2019-07-16 T-Mobile Usa, Inc. Device and/or line event awareness and smart synchronization
EP3563248B1 (en) * 2016-12-30 2022-11-30 Akamai Technologies, Inc. Unified, browser-based enterprise collaboration platform
US10812598B2 (en) 2016-12-30 2020-10-20 Akamai Technologies, Inc. Unified, browser-based enterprise collaboration platform
US10701310B2 (en) 2017-06-23 2020-06-30 T-Mobile Usa, Inc. Video call continuity between devices via a telecommunications network
CN108055273B (zh) * 2017-12-22 2020-08-28 北京启明星辰信息安全技术有限公司 一种内网服务器发现方法、***及网络安全审计***
US11017116B2 (en) * 2018-03-30 2021-05-25 Onsite Health Diagnostics, Llc Secure integration of diagnostic device data into a web-based interface
US11546170B2 (en) * 2019-07-22 2023-01-03 Whitestar Communications, Inc. Systems and methods of collaborative application on a private network
WO2021056069A1 (en) * 2019-09-25 2021-04-01 Commonwealth Scientific And Industrial Research Organisation Cryptographic services for browser applications
US11637819B2 (en) * 2020-11-25 2023-04-25 International Business Machines Corporation Establishing connectivity between user devices
EP4170994B1 (en) * 2021-10-19 2024-01-17 Tata Consultancy Services Limited A multi-master hybrid telerobotics system with federated avatar control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203023A (ja) * 2002-01-09 2003-07-18 Sony Corp 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167432A (en) 1996-02-29 2000-12-26 Webex Communications, Inc., Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among users
US6732147B1 (en) 2000-07-31 2004-05-04 The Boeing Company Leaving a broadcast channel
US7895338B2 (en) * 2003-03-18 2011-02-22 Siemens Corporation Meta-search web service-based architecture for peer-to-peer collaboration and voice-over-IP
CN100452031C (zh) * 2003-03-18 2009-01-14 西门子共同研究公司 用于在对等p2p网络中发现潜在合作者的***和方法
US20050243746A1 (en) * 2004-04-29 2005-11-03 Nokia Corporation Session inspection scheme
US7552175B2 (en) 2004-04-30 2009-06-23 Microsoft Corporation Mechanism for controlling communication paths between conference members
US7675874B2 (en) 2005-02-24 2010-03-09 International Business Machines Corporation Peer-to-peer instant messaging and chat system
US20070274233A1 (en) 2006-05-25 2007-11-29 Amnon Ptashek Method, apparatus and system for multi peer to peer services
CN100488146C (zh) 2006-09-14 2009-05-13 华为技术有限公司 在p2p网络中建立点对点连接的方法及在p2p网络中的节点
US9712486B2 (en) * 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US8601156B2 (en) 2007-07-06 2013-12-03 Qualcomm Incorporated Methods and apparatus related to peer discovery and/or paging in peer to peer wireless communications
US9294291B2 (en) * 2008-11-12 2016-03-22 Adobe Systems Incorporated Adaptive connectivity in network-based collaboration
US20100235523A1 (en) * 2009-03-16 2010-09-16 Robert Garcia Framework for supporting multi-device collaboration
CN102215121B (zh) * 2010-04-07 2014-10-15 苹果公司 用于建立和利用备份通信信道的装置和方法
US8819244B2 (en) 2010-04-07 2014-08-26 Apple Inc. Apparatus and method for establishing and utilizing backup communication channels
JP5269925B2 (ja) * 2011-01-31 2013-08-21 株式会社東芝 無線通信装置及び無線通信方法
CA2870298A1 (en) 2012-04-11 2013-10-17 Calgary Scientific Inc. Remoting graphical components through a tiered remote access architecture
WO2014033554A2 (en) 2012-08-15 2014-03-06 Calgary Scientific Inc. Methods and systems for collaborative browsing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203023A (ja) * 2002-01-09 2003-07-18 Sony Corp 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大池浩一: "Monthly RFC News", 月刊アスキードットテクノロジーズ, vol. 第15巻 第7号, JPN6017039093, 24 May 2010 (2010-05-24), JP, pages 168〜171ページ *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016152506A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 通信システム、通信方法およびプログラム

Also Published As

Publication number Publication date
EP2923460A4 (en) 2016-06-22
WO2014080293A3 (en) 2014-09-12
US9894153B2 (en) 2018-02-13
WO2014080293A2 (en) 2014-05-30
EP2923460B1 (en) 2018-11-21
US20140149512A1 (en) 2014-05-29
CN105009519A (zh) 2015-10-28
HK1209538A1 (en) 2016-04-01
CA2892271A1 (en) 2014-05-30
EP2923460A2 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
JP2016503547A (ja) 連携アプリケーションセッションからのピアツーピア検出と接続のための方法及びシステム
US10728168B2 (en) Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US10846107B2 (en) Multi-window architecture and data communication for a remote access application session
KR102140609B1 (ko) 멀티미디어 회의 엔드포인트 이관 시스템
US9197701B1 (en) Consolidated peer-to-peer media sessions for audio and/or video communications
US10887359B2 (en) Parallel peer to peer connection establishment in webRTC conferencing
JP6325105B2 (ja) 複数のソースから単一のシンクへのワイヤレスメディア共有
US9774824B1 (en) System, method, and logic for managing virtual conferences involving multiple endpoints
US20190028286A1 (en) Enhancing collaboration in real-time group chat system and method
US8928727B1 (en) Sharing input device data in a multiway video conference provided in an online social network
US20170359187A1 (en) Scalable real-time videoconferencing over WebRTC
US20150271273A1 (en) System for Using a Device as a Side Car
US9021042B2 (en) Media response to social actions
CN105122761A (zh) 基于分组的呼叫的附加媒体会话的本地控制
US20140344361A1 (en) Communication traffic management
Karam et al. Using Socket. io Approach for Many-to-Many Bi-Directional Video Conferencing
US10785121B2 (en) Device discovery using discovery nodes
US20150295960A1 (en) Collaborative Multimedia Conversation Manager
TW201320746A (zh) 視訊連線系統及方法
US9270938B1 (en) Display-based synchronous communication
US8819127B1 (en) Ensemble computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180611