(58)【調査した分野】(Int.Cl.,DB名)
第1のデバイスによって、サーバに、オーディオビデオ会議セッションのためのコンテンツを通信するための第1のチャネル及び第2のチャネルであって、前記第1のチャネル及び前記第2のチャネルが異なる種類の通信インタフェースに対応する、第1のチャネル及び第2のチャネルのインジケーションを送信することと、
前記第1のデバイスによって、前記サーバから、前記オーディオビデオ会議セッションのための第2のデバイスによって利用可能な第1のコンテンツストリーム及び第2のコンテンツストリームであって、前記第1のコンテンツストリーム及び前記第2のコンテンツストリームが異なるビットレートのストリーミングコンテンツに対応する、第1のコンテンツストリーム及び第2のコンテンツストリームのインジケーションを受信することと、
前記第1のデバイスによって、前記サーバに、前記第1のチャネルを介して前記第1のコンテンツストリームに加入し、かつ前記第2のチャネルを介して前記第2のコンテンツストリームに加入する第1の要求を送信することと、
前記第1のデバイスによって、前記サーバから、前記第1のチャネルを介して前記第1のコンテンツストリームを受信することと、
を含む、方法。
前記第1のデバイスによって、前記サーバに、前記第1のチャネルを介して前記第1のコンテンツストリームから脱退するための第2の要求を送信することを更に含み、前記サーバは、前記第2のデバイスに、前記第1のデバイスが前記第1のコンテンツストリームに加入していないというインジケーションを送信するように構成されている、請求項11に記載の方法。
前記第1のデバイスが前記第2のチャネルを介して前記第2のコンテンツストリームに以前に加入していることに基づいて、前記第1のデバイスによって、前記サーバから、前記第2のチャネルを介して前記第2のコンテンツストリームを受信することを更に含む、請求項12に記載の方法。
前記第1のチャネルが前記第1のデバイス上で利用可能になることに基づいて、前記第1のデバイスによって、前記サーバに、前記第1のチャネルを介して前記第1のコンテンツストリームに再加入する第3の要求を送信することを更に含み、前記サーバは、前記第2のデバイスに、前記第1のデバイスが前記第1のコンテンツストリームに加入しているというインジケーションを送信するように構成されている、請求項14に記載の方法。
前記第1のデバイスによって、前記サーバに、前記第1のデバイスによって利用可能な第3のコンテンツストリーム及び第4のコンテンツストリームのインジケーションを送信することを更に含み、前記第3のコンテンツストリーム及び前記第4のコンテンツストリームが異なるビットレートのストリーミングコンテンツに対応する、請求項11に記載の方法。
前記第1のデバイスによって、前記サーバに、第3のデバイスによって提供される第3のコンテンツストリームに前記第1のチャネルを介して加入する第2の要求を送信することと、
前記第1のデバイスによって、前記サーバから、前記第2の要求を送信したことに応じて、前記第1のチャネルを介して前記第3のコンテンツストリームを受信することと、
を更に含む、請求項11に記載の方法。
【発明を実施するための形態】
【0005】
以下に述べる詳細な説明は、主題技術の様々な構成の説明として意図されており、主題技術を実践できる唯一の構成を表すことを意図するものではない。添付の図面は、本明細書に組み込まれ、詳細な説明の一部を構成する。詳細な説明は、本願の技術の完全な理解を提供するために特定の詳細を含む。しかしながら、主題技術は、本明細書で示された特定の詳細には限定されず、1つ以上の他の実装を使用して実践することができる。1つ以上の実装形態では、主題の技術の概念を不明瞭にすることを避けるために、構造及び構成要素がブロック図形式で示されている。
【0006】
オーディオビデオ会議は、リアルタイムでのユーザ間の通信のために、ユーザデバイスによる(例えば、異なる場所での)オーディオ信号及び/又はビデオ信号の受信及び送信を提供する。一部の場合には、2人のユーザは、ユーザのそれぞれのデバイスでの1対1の通信で互いに通信するために、オーディオビデオ会議を利用することができる。他の場合には、マルチウェイオーディオビデオ会議は、リアルタイムのグループ会話に参加するために、2人より多くのユーザによって利用されてもよい。
【0007】
参加者デバイスのうちの1つ以上は、オーディオビデオ会議セッション中にネットワーク接続損失(例えば、WiFi及び/又はセルラー接続損失)を経験することがある。1対1のオーディオビデオ会議の例では、2つの参加者デバイスのそれぞれは共に、例えば、1つのデバイスが、そのデバイスがそのWiFi接続を失った場合にWiFiインタフェースからセルラーインタフェースへ切り替えることを補償するために、セッションを再交渉することが要求されることがある。オーディオビデオ会議において2人より多くの参加者が存在する場合、単一の参加者デバイスがそのインタフェースを切り替えることに起因して、参加者デバイスのそれぞれに対してセッションを再交渉することは、参加者の全てに対するオーディオビデオ会議体験の劣化をもたらすことがある。
【0008】
主題のシステムは、対応するストリーム(例えば、高品質ストリーム及び低品質ストリーム)を他の参加者デバイスに送信するために、それぞれの参加者デバイスが同じオーディオビデオ会議セッション内で別個のチャネル(例えば、対応するWiFi及びセルラーチャネル)を使用することができる、マルチウェイオーディオビデオ会議を提供する。参加者デバイスは、各チャネル上のその利用可能なストリームのインジケーションをサーバに提供することができ、サーバは、その参加者デバイスに対する利用可能なストリームの他の参加者デバイスに通知することができる。他の参加者デバイスは、それらの対応するチャネル(単数又は複数)を介して、利用可能なストリームのうちの1つ以上に加入することができる。
【0009】
したがって、各参加者デバイスは、例えば、サーバを介して、その利用可能なストリームを他の参加者デバイスに公開することができ、例えば、サーバを介して、他の参加者デバイスによって提供されるストリーム(単数又は複数)を受信するように加入することができる。参加者デバイスに対してチャネルが利用可能でなくなる場合、その参加者デバイスは、それに応じてその加入を更新することができる。例えば、参加者デバイスがそのWiFi接続性を失い(例えば、WiFiチャネルが利用可能でないことに対応する)、かつこのWiFiチャネルが1つ以上の高品質ストリームに以前に加入していた場合、参加者デバイスは、更新された加入要求をサーバに送信することができる。更新された加入要求は、WiFiチャネルがなんらストリームに加入していないことを示してもよく、他のチャネル(単数又は複数)(例えば、セルラーチャネル)を介してどのストリーム(単数又は複数)(例えば、高品質及び/又は低品質)に加入するかを指定してもよい。
【0010】
1つ以上の実装形態では、参加者デバイスは、第1の通信チャネル、例えば、WiFiを介した高品質ストリーム、及び第2の通信チャネル、例えば、セルラーを介した低品質ストリームの両方に、同時に加入し受信することができる。このようにして、通信が第1の通信チャネル上で中断される場合、参加者デバイスは、第2の通信チャネルを介した低品質ストリームに、直ちに(例えば、キーフレームで)切り替えてもよい。
【0011】
図1は、1つ以上の実装形態に係る、複数のチャネルを有するマルチウェイオーディオビデオ会議のための例示的なネットワーク環境を示す。しかしながら、描写された構成要素の全てが全ての実装形態において使用され得るわけではなく、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含むことができる。本明細書で示された特許請求の範囲の精神又は範囲から逸脱することなく、構成要素の配置及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。
【0012】
ネットワーク環境100は、電子デバイス102、103、104、及び105(以下、102〜105)と、ネットワーク106と、サーバ108とを含む。ネットワーク106は、例えば、電子デバイス102〜105及びサーバ108のうちの任意の2つ以上を通信可能に(直接的又は間接的に)結合してもよい。1つ以上の実装形態では、ネットワーク106は、インターネットを含むことができる、及び/又はインターネットに通信可能に結合することができる、デバイスの相互接続されたネットワークであってもよい。説明のために、ネットワーク環境100は、電子デバイス102〜105及び単一のサーバ108を含むように
図1に示されている。しかしながら、ネットワーク環境100は、任意の数の電子デバイス及び任意の数のサーバを含むことができる。
【0013】
電子デバイス102〜105のうちの1つ以上は、例えば、ラップトップコンピュータ、スマートフォン、スマートスピーカ、周辺デバイス(例えば、デジタルカメラ、ヘッドホン)、タブレットデバイス、スマートウォッチ、バンドなどのウェアラブルデバイスなどのポータブルコンピューティングデバイス、又は、例えば、WLAN(例えば、WiFi)無線通信、セルラー無線通信、Bluetooth(登録商標)無線通信、Zigbee無線通信、近距離通信(near field communication)(NFC)無線通信、及び/若しくは他の無線通信などの、1つ以上の無線インタフェースを含む任意の他の適切なデバイス、であってもよい。
図1では、例として、電子デバイス102はスマートフォンとして示されており、電子デバイス103はラップトップコンピュータとして示されており、電子デバイス104はスマートウォッチとして示されており、電子デバイス105はスマートスピーカとして示されている。
【0014】
電子デバイス102〜105は、例えば、電子デバイス102〜105が、参加者デバイス間でビデオ及び/又はオーディオコンテンツストリームが送信されるグループ会話に参加することができる、オーディオビデオ会議に参加するように構成されてもよい。
図1の例では、電子デバイス105(例えば、スマートスピーカ)は、オーディオ(例えば、ビデオではない)でのコンテンツストリーム(単数又は複数)により参加することができる。
図3A〜
図3Hを参照して以下に説明するように、参加者デバイスのそれぞれは、ストリーミングコンテンツを送信するための対応する利用可能なコンテンツストリームのインジケーションを公開するように構成することができ、ストリーミングコンテンツを受信するための対応するコンテンツストリームに加入することができる。電子デバイス102〜105のそれぞれは、
図2に関して以下で説明するデバイス、及び/若しくは
図6に関して以下で説明する電子システムであってもよく、並びに/又はそれらの全て若しくは一部を含んでもよい。
【0015】
サーバ108は、
図2に関して以下で説明するデバイス、及び/若しくは
図6に関して以下で説明する電子システムであってもよく、並びに/又はそれらの全て若しくは一部を含んでもよい。サーバ108は、電子デバイス102〜105間のオーディオビデオ会議を容易にするために使用することができるサーバのクラウドなどの1つ以上のサーバを含むことができる。説明のために、単一のサーバ108が、オーディオビデオ会議を容易にすることなどの様々な動作に関して図示され、説明されている。しかしながら、本明細書で説明するこれら及び他の動作は、1つ以上のサーバによって実行されてもよく、それぞれの異なる動作は、同じサーバ又は異なるサーバによって実行されてもよい。
【0016】
図2は、1つ以上の実装形態に係る、複数のチャネルを有するマルチウェイオーディオビデオ会議のためのシステムを実装することができる例示的なデバイスを示す。例えば、
図2のデバイス200は、
図1の電子デバイス102〜105又はサーバ108のいずれかに対応することができる。しかしながら、描写された構成要素の全てが全ての実装形態において使用され得るわけではなく、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含むことができる。本明細書で示された特許請求の範囲の趣旨又は範囲から逸脱することなく、構成要素の配置及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。
【0017】
デバイス200は、プロセッサ202と、メモリ204と、通信インタフェース206a〜206bとを含むことができる。プロセッサ202は、データを処理し、及び/又はデバイス200の動作を制御することを可能にする、好適なロジック、回路、及び/又はコードを含むことができる。これに関しては、プロセッサ202が、デバイス200の様々な他の構成要素に制御信号を供給することを可能にしてもよい。プロセッサ202はまた、デバイス200の様々な部分間でのデータ転送を制御してもよい。加えて、プロセッサ202は、デバイス200の動作を管理するために、オペレーティングシステムの実施を可能にする、又は別の方法でコードを実行することができる。主題のシステムでは、プロセッサ202は、複数のチャネルを有するオーディオビデオ会議のためのアーキテクチャ(単数又は複数)を実装することができる。
【0018】
メモリ204は、受信データ、生成データ、コード、及び/又は構成情報などの様々なタイプの情報の記憶を可能にする適切なロジック、回路、及び/又はコードを含むことができる。メモリ204は、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュ、及び/又は磁気記憶装置を含むことができる。
【0019】
1つ以上の実装形態では、デバイス200が電子デバイス102〜105のうちの1つに対応する場合、メモリ204は、オーディオビデオ会議セッション内で複数のチャネル(例えば、WiFi、セルラーチャネル)を使用することを容易にするように構成されたアプリケーション(例えば、オーディオビデオ会議アプリケーション)を記憶することができる。1つ以上の実装形態では、オーディオビデオ会議アプリケーションは、電子デバイス102〜105のオペレーティングシステムの一部とする又は別の方法でその中に組み込むことができる。
【0020】
1つ以上の実装形態では、デバイス200がサーバ108に対応する場合、メモリ204は、複数の参加者デバイス(例えば、電子デバイス102〜105)間のオーディビデオ会議の提供を容易にするように、上述したデバイスアプリケーション(例えば、オーディオビデオ会議アプリケーション)と連携して動作するように構成された1つ以上の構成要素を記憶してもよい。
【0021】
通信インタフェース206a〜206bは、ネットワーク106を介して電子デバイス102〜105及びサーバ108のいずれかの間などの有線又は無線通信を可能にする、好適なロジック、回路、及び/又はコードを含むことができる。1つ以上の実装形態では、通信インタフェース206a〜206bを実装するために、同じ回路が使用されてもよい。通信インタフェース206a〜206bは、例えば、Bluetooth(登録商標)通信インタフェース、セルラーインタフェース、NFCインタフェース、Zigbee通信インタフェース、WLAN(例えば、WiFi、WiMAX、LiFi)通信インタフェース、USB通信インタフェース、又は一般的に任意の通信インタフェースのうちの1つ以上を含んでもよい。説明のために、デバイス200は、2つの通信インタフェース206a〜206bを含むものとして
図2に示されている。しかしながら、デバイス200は、任意の数の通信インタフェースを含んでもよい。
【0022】
1つ以上の実装形態では、プロセッサ202、メモリ204、通信インタフェース206a〜206b、及び/又はそれらの1つ以上の部分、のうちの1つ以上は、ソフトウェア(例えば、サブルーチン及びコード)で実装されてもよく、ハードウェア(例えば、特定用途向け集積回路(Application Specific Integrated Circuit)(ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array)(FPGA)、プログラマブルロジックデバイス(Programmable Logic Device)(PLD)、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェア構成要素、又は任意の他の好適なデバイス)、及び/又はその両方の組み合わせで実装されてもよい。
【0023】
図3A〜
図3Hは、1つ以上の実装形態に係る、マルチウェイオーディオビデオ会議内で複数のチャネルを使用するための例示的なプロセスを示す。説明のために、プロセス300を、本明細書では主として、
図1のサーバ108及び電子デバイス102〜104(「参加者デバイスA〜C」として示す)を参照して説明する。しかしながら、プロセス300は、
図1のサーバ108及び電子デバイス102〜104に限定されず、プロセス300の1つ以上のブロック(又は動作)は、サーバ108の1つ以上の他の構成要素及び他の好適なデバイス(例えば、電子デバイス102〜105のいずれか)によって実行されてもよい。更に、説明のために、プロセス300の動作(例えば、301〜332)は、本明細書では逐次的に又は直線的に発生するものとして説明している。しかしながら、プロセス300の複数の動作は、並行して発生してもよい。加えて、プロセス300の動作は、図示された順序で実行される必要はなく、並びに/又は、プロセス300の1つ以上の動作は、実行される必要はなく、及び/若しくは他の動作によって置き換えることができる。
【0024】
プロセス300は、サーバ108を介した参加者デバイスA〜C(例えば、電子デバイス102〜104)間でのオーディオビデオ会議を提供する。サーバ108は、ネットワーク106並びに参加者デバイスA〜C及びサーバ108の対応する通信インタフェース206a〜206b(例えば、WiFi、セルラー)を介して、参加者デバイスA〜C間でオーディオ及び/又はビデオコンテンツを転送するように構成されてもよい。
【0025】
プロセス300は、参加者デバイスごとに1つ又は2つの通信インタフェース(例えば、Wifi及び/又はセルラーインタフェース)に関して本明細書で図示及び説明されているが、プロセス300は、そのように限定されるものではなく、参加者デバイスごとに2つより多くの通信インタフェースに適用することができる。加えて、通信インタフェースは、Wifi及び/又はセルラーインタフェースに限定されず、ブロードバンド、WiMAX、LiFi、及び/又は他の種類の通信インタフェース(例えば、インターネットに接続するための)のうちの1つ以上を含んでもよい。この点に関して、各参加者デバイスは、同じオーディオビデオ会議セッション内で別個のチャネル(例えば、WiFi、セルラー、ブロードバンド、WiMAX、及び/又はLiFi)を割り当てて、対応するストリームを(例えば、各ストリームが異なる品質に対応して)他の参加者デバイスに送信することができる。参加者デバイスは、各チャネル上のその利用可能なストリームのインジケーションをサーバ108に提供することができ、サーバ108は、その参加者デバイスに対する利用可能なストリーム(例えば、2つ以上)の他の参加者デバイスに通知することができる。
【0026】
上述したように、オーディオビデオ会議アプリケーションは、各参加者デバイスにインストールされてもよい。オーディオストリーム及び/又はビデオストリームの送信に関して、オーディオビデオ会議アプリケーション(例えば、参加者デバイスAにインストールされた)は、オーディオビデオ会議アプリケーションの対応するインスタンスを実行する他の参加者デバイス(例えば、参加者デバイスB〜C)による後続の受信のために、ストリーミングコンテンツをサーバに送信することを容易にすることができる。オーディオストリーム及び/又はビデオストリームを受信することに関して、参加者デバイスAは、参加者デバイスB〜Cによって送信されたコンテンツストリームをサーバ108を介して受信するように加入することができる。
【0027】
ストリーミングコンテンツは、例えば、対応するデバイスによってキャプチャされたユーザ(例えば、顔)及び/又は他の視野並びに音のリアルタイムのビデオ及び/又はオーディオキャプチャに対応する、それぞれの参加者デバイス上のセンサ(例えば、マイクロフォン、ビデオカメラ)によってキャプチャされたオーディオ及び/又はビデオコンテンツに対応することができる。1つ以上の実装形態では、参加者デバイスのうちの1つ以上は、ユーザの顔からキャプチャされ、ユーザの顔を表す点のメッシュを送信してもよい。更に、ストリーミングコンテンツは、例えば、オーディオビデオ会議アプリケーションに関連付けられた拡張アプリケーション及び/又はウィジェットと連携して、追加のオーディオ及び/又は視覚データ(例えば、アニメーション、オーバーレイ、エモーティコンなど)により補足することができる。
【0028】
オーディオビデオ会議を開始することを望む参加者デバイスAのユーザは、オーディオビデオ会議アプリケーションを介して参加者(単数又は複数)を選択することができ、及び/又はグループテキストメッセージ、グループ音声通話などの異なる通信モードからオーディオビデオ会議を開始することができる。例えば、参加者は、参加者デバイスA上に記憶された連絡先アドレス帳内に含まれる連絡先から選択されてもよい。ユーザは、オーディオビデオ会議アプリケーションによって提供された適切なユーザインタフェース要素を選択し、それによって、招待された参加者が、参加者のそれぞれのデバイス(例えば、参加者デバイスB〜C)において、オーディオビデオ会議への参加を承諾又は辞退することを促すことによって、オーディオビデオ会議を開始することができる。
【0029】
参加者のうちの1人以上が(例えば、オーディオビデオ会議アプリケーションによって提供されたプロンプトを介して)招待を承諾すると(又はする前に)、サーバ108は、本明細書で説明するように、セッション情報が複数の参加者デバイス間で公開される初期化手順を実行してもよい。1つ以上の実装形態では、参加者デバイスA〜Cのそれぞれは、それぞれのセッション情報をサーバ108に提供し、サーバ108は、次に、セッション情報を他の参加者デバイスに公開する。各デバイスに関するセッション情報は、1つ以上の対応するチャネル上のデバイスによって利用可能なコンテンツストリーム及び/又はパリティストリームを、1つ以上の対応するチャネルのそれぞれ上のコンテンツストリームのそれぞれ及びパリティストリームのそれぞれに対する対応するストリーム識別子とともに、示すことができる。それぞれの利用可能なコンテンツストリームに対して、セッション情報は、最大ビットレート、オーディオコーデック、及びビデオ解像度を含むがこれらに限定されない、1つ以上のパラメータを示すことができる。加えて、セッション情報は、パケットの数(例えば、送信した及び/又は受信した)、タイムスタンプ(例えば、送信した及び/又は受信したパケットに対する)、バイト統計(例えば、送信した及び/又は受信した)、実際のビットレート、送信した及び/又は受信したパケットに関連付けられたシーケンス番号などを含む、各コンテンツストリームに関する統計を示すことができる。参加者デバイスA〜Cの間でそれぞれのセッション情報を共有することにより、参加者デバイスA〜Cのそれぞれが、他の参加者デバイスによって送信されている特定のコンテンツストリーム及び/又はパリティストリームを受信するように加入することが可能である。
【0030】
プロセス300の動作301〜304は、アロケータ340を使用して、参加者デバイス(例えば、電子デバイス102〜104にそれぞれ対応する参加者デバイスA〜C)の間のオーディオビデオ会議を開始する例を示す。
図3Aの例では、アロケータ340は、サーバ108とは別個として示されており、例えば、サーバ108とは別個のサーバに対応してもよい。あるいは、アロケータ340は、サーバ108内に完全に若しくは部分的に含まれてもよく、かつ/又はサーバ108によって実装されてもよい。
【0031】
参加者デバイスA(例えば、電子デバイス102)は、オーディオビデオ会議セッションを割り当てるために、割り当て要求をアロケータ340に送信する(301)。割り当て要求は、グループ識別子(group−id)、セッション識別子(qr−session−id)、及び宛先リスト(例えば、参加者デバイスA〜C)を含むことができる。要求を受信したことに応じて、アロケータ340は、参加者デバイスAに、割り当て応答プッシュ通知を送信することができる(302)。割り当て応答プッシュ通知は、group−id、qr−session−id、及び参加者デバイスA用にアロケータ340が生成したセッショントークン(session−access−token−a)を含む。
【0032】
参加者デバイスB(例えば、電子デバイス103)及び参加者デバイスC(例えば、電子デバイス104)も宛先リスト上に示されていたため、アロケータ340は、group−id、qr−session−id、及び参加者デバイスB用に生成されたセッショントークン(session−access−token−b)を含む割り当て応答プッシュ通知を、参加者デバイスBに送信する(303)。加えて、アロケータ340は、group−id、qr−session−id、及び参加者デバイスC用に生成されたセッショントークン(session−access−token−c)を含む割り当て応答プッシュ通知を、参加者デバイスCに送信する(304)。対応する応答プッシュ通知に基づいて、参加者デバイスA〜Cのそれぞれは、それらの利用可能なストリーム(単数又は複数)及び対応するチャネル(単数又は複数)をサーバ108に通知することができる。1つ以上の実装形態では、受信したトークンは、参加者デバイスA〜C間の(例えば、サーバ108を介した)通信のエンドツーエンド暗号化に使用されてもよい。
【0033】
図3A〜
図3Hの実施例では、参加者デバイスAは、2つのコンテンツストリーム、例えば、高品質ストリームas1(例えば、より高いビットレートに対応する)及び低品質ストリームas2(例えば、より低いビットレートに対応する)を送信するように構成されている。これらのストリームは、参加者デバイスAによって、参加者デバイスAのWiFiインタフェース及びセルラーインタフェースにそれぞれ割り当てられ、それによって、高品質ストリームに関連付けられたWiFiチャネル及び低品質ストリームに関連付けられたセルラーチャネルを生成する。どのチャネル(例えば、WiFi又はセルラー)をどのストリーム(例えば、高品質又は低品質)と関連付けるかの、参加者デバイスAによる選択は、それぞれの対応するチャネルに関連付けられた速度、帯域幅、履歴信頼性、及び/又は財務コストのうちの1つ以上に基づくことができる。したがって、1つ以上の実装形態では、セルラーチャネルが高品質ストリームに関連付けられている間に、WiFiチャネルを代わりに低品質ストリームに関連付けることが可能であり、及び/又は両方のチャネルを高品質ストリームに関連付けてもよい。
【0034】
この点に関して、プロセス300の動作305〜306は、WiFiチャネル上でストリームas1をサーバ108に通知する参加者デバイスAの例を示す。参加者デバイスAは、割り当てバインド要求をサーバ108に送信する(305)。割り当てバインド要求は、session−access−token−a(例えば、「a」は、参加者デバイスAを表す)、チャネルがWiFi(又は他の非セルラーチャネル)であることを示すパラメータ、参加者デバイスAが複数のチャネル、例えば、WiFi及びセルラーをサポートすることを示すパラメータ(multi−channel−support:YES)、as1の公開されたストリームを示すパラメータ(pub−streams:as1、例えば、高品質ストリーム)、及び参加者デバイスAが加入しているなんらのストリームが存在しないことを示すパラメータ(sub−streams:none)、を含む。
【0035】
これに応じて、サーバ108は、割り当てバインド応答を参加者デバイスAに送信する(306)。割り当てバインド応答は、WiFiチャネルを識別するためのサーバ108に対するリンク識別子(linkID:1)、参加者B〜Cが公開しているストリームのインジケーション(例えば、参加者デバイスAが第1の参加者であるため、peer−pub−streams:none)、及び参加者デバイスAによって公開されたどのストリームが参加者B〜Cによって加入されているかのインジケーション(例えば、参加者デバイスAが第1の参加者であるため、peer−sub−streams:none)、を含む。したがって、参加者デバイスAは、セッションに参加し、コンテンツストリームas1をサーバ108に送信することができ、それにより、ストリーミングコンテンツは、適切に加入されると、他の参加者デバイスB〜Cに転送することができる。更に、サーバ108は、WiFiインタフェースとして参加者デバイスAのlinkID:1を認識する。
【0036】
プロセス300の動作307〜308は、参加者デバイスAが、参加者デバイスAのセルラーチャネル上でストリームas2をサーバ108に通知する例を示す。参加者デバイスAは、別の割り当てバインド要求をサーバ108に送信する(307)。割り当てバインド要求は、session−access−token−a、チャネルがセルラーであることを示すパラメータ(interface hint:cellular)、multi−channel−support:YES、as2の公開されたストリームを示すパラメータ(pub−streams:as2、例えば、低品質ストリーム)、及びsub−streams:none、を含む。
【0037】
これに応じて、サーバ108は、割り当てバインド応答を参加者デバイスAに送信する(308)。割り当てバインド応答は、セルラーチャネルを識別するためのサーバ108に対する異なるリンク識別子(linkID:2)、peer−pub−streams:none、及びpeer−sub−streams:none、を含む。したがって、参加者デバイスAはまた、コンテンツストリームas2をサーバ108に送信することができ、それにより、ストリーミングコンテンツは、加入されると、他の参加者デバイスB〜Cに転送することができる。更に、サーバ108は、セルラーインタフェースとして参加者デバイスAのlinkID:2を認識する。
【0038】
例示的なプロセス300では、参加者デバイスBは、対応するWiFi及びセルラーチャネルを介して、2つのコンテンツストリーム(例えば、高品質ストリームbs1及び低品質ストリームbs2)を送信するように構成される。プロセス300の動作309〜310は、WiFiチャネル上でストリームbs1をサーバ108に通知する参加者デバイスBの例を示す。参加者デバイスBは、割り当てバインド要求をサーバ108に送信する(309)。割り当てバインド要求は、session−access−token−b、interface hint:non−cellular、multi−channel−support:YES、pub−streams:bs1(例えば、高品質ストリーム)、及びsub−streams:none、を含む。
【0039】
これに応じて、サーバ108は、割り当てバインド応答を参加者デバイスBに送信する(310)。割り当てバインド応答は、linkID:1(例えば、参加者デバイスBに対する識別のための)、他の参加者デバイスによって公開されたストリームのインジケーション(peer−pub−streams:as1、as2)、及び参加者デバイスBによって公開されたどのストリームが加入されているかのインジケーション(例えば、参加者デバイスAがまだ加入していないため、peer−sub−streams:none)、を含む。
【0040】
プロセス300の動作311〜312は、参加者デバイスBが、参加者デバイスBのセルラーチャネル上でストリームbs2をサーバ108に通知する例を示す。参加者デバイスBは、割り当てバインド要求をサーバ108に送信する(311)。割り当てバインド要求は、session−access−token−b、interface hint:cellular、multi−channel−support:YES、pub−streams:bs2(例えば、低品質ストリーム)、及びsub−streams:none、を含む。
【0041】
これに応じて、サーバ108は、割り当てバインド応答を参加者デバイスBに送信する(312)。割り当てバインド応答は、linkID:2(例えば、参加者デバイスBに対する)、peer−pub−streams:as1,as2、及びpeer−sub−streams:none、を含む。したがって、参加者デバイスBは、コンテンツストリームbs1及びbs2をサーバ108に送信することができ、それにより、ストリーミングコンテンツは、加入されると、他の参加者デバイスA及び/又はCに転送することができる。更に、サーバ108は、参加者デバイスBのlinkID:1をWiFiインタフェースとして認識し、参加者デバイスBのlinkID:2をセルラーインタフェースとして認識する。
【0042】
したがって、サーバ108は、参加者デバイスBによって提供される利用可能なストリームを通知される。この点に関して、プロセス300の動作313は、ストリーム設定の変更(例えば、コンテンツストリームbs1、bs2が参加者デバイスBによって公開されているという)を参加者デバイスAに通知するサーバ108の例を示す。サーバ108は、セッション情報インジケーションを参加者デバイスAに送信する。セッション情報インジケーションは、peer−pub−streams:bs1,bs2、及びpeer−sub−streams:none、を含む。
【0043】
プロセス300の動作314〜319は、2つのコンテンツストリームbs1及びbs2に加入する参加者デバイスAの例を示す。上述したように、参加者デバイスAは、2つのチャネル(例えば、WiFi及びセルラー)を有する。加えて、参加者デバイスAは、bs1(例えば、高品質、セッション情報ごと)及びbs2(例えば、低品質、セッション情報ごと)ストリームをサーバ108によって通知された。参加者デバイスAは、セッション情報要求をサーバ108に送信する(314)。セッション情報要求は、参加者デバイスAのWiFiチャネルのインジケーション(ink:1)、及び加入することになるストリームのインジケーション(bs1)、を含む。
【0044】
これに応じて、サーバ108は、WiFiチャネルを介して参加者デバイスAがコンテンツストリームbs1に加入していることを確認するセッション情報応答を、参加者デバイスAに送信する(315)。加えて、サーバ108は、参加者デバイスBにインジケーション(peer−sub−streams:A bs1)を送信して、参加者デバイスAがコンテンツストリームbs1に加入していることを参加者デバイスBに通知する(316)。1つ以上の実装形態では、参加者デバイスBは、コンテンツストリームbs1が参加者デバイスAのWiFiチャネルに関連付けられていることを通知されない。
【0045】
加えて、参加者デバイスAは、コンテンツストリームbs2に加入することができる。したがって、参加者デバイスAは、link:2(例えば、セルラーチャネル)及びsub−streams:bs2(例えば、低品質ストリームに加入する)を含むセッション情報要求をサーバ108に送信する(317)。これに応じて、サーバ108は、参加者デバイスAがコンテンツストリームbs2に加入していることを確認するセッション情報応答を、参加者デバイスAに送信する(318)。加えて、サーバ108は、コンテンツストリームbs2が参加者デバイスAのセルラーチャネルに関連付けられていることを参加者デバイスBに必ずしも通知することなく、参加者デバイスBにインジケーション(peer−sub−streams:A bs2)を送信して、参加者デバイスAがコンテンツストリームbs2に加入していることを参加者デバイスBに通知する(316)。
【0046】
したがって、参加者デバイスAは、コンテンツストリームbs1及びbs2の両方に加入している。1つ以上の実装形態では、参加者デバイスAは、コンテンツストリームbs1及びbs2の両方を受信することができるが、参加者デバイスAは、どのストリームを受信するかを選択することができる。例えば、コンテンツストリームbs1がより高い品質であり得るため、参加者デバイスAは、このストリームを受信するように選択することができる。しかし、このストリームに関してなんらかの問題(例えば、チャネルに対する喪失した接続、又は既定の量の帯域幅劣化及び/若しくはパケット損失の検出)に遭遇する場合、参加者デバイスAは、コンテンツストリームbs1からコンテンツストリームbs2に切り替えるように構成されてもよい。
【0047】
プロセス300の実施例では、参加者デバイスCは、対応するWiFiチャネルを介して、1つのコンテンツストリーム(例えば、高品質ストリームcs1)を送信するように構成される。プロセス300の動作320〜323は、WiFiチャネル上でストリームcs1をサーバ108に通知する参加者デバイスCの例を示す。参加者デバイスCは、割り当てバインド要求をサーバ108に送信する(320)。割り当てバインド要求は、session−access−token−c、interface hint:non−cellular、multi−channel−support:YES、pub−streams:cs1(例えば、高品質ストリーム)、及びsub−streams:none、を含む。
【0048】
これに応じて、サーバ108は、割り当てバインド応答を参加者デバイスCに送信する(321)。割り当てバインド応答は、linkID:1(例えば、参加者デバイスCに対する)、peer−pub−streams:as1,as2,bs1,bs2、及びpeer−sub−streams:none(例えば、参加者デバイスA及びBがまだ加入していないため)、を含む。動作322で、サーバ108は、以下のセッション情報のインジケーション:peer−pub−streams:bs1,bs2,cs1を参加者デバイスAに送信することによって、参加者デバイスAにストリーム設定の変更を通知する。加えて、動作323で、サーバ108は、以下のセッション情報のインジケーション:peer−pub−streams:as1,as2,cs1を参加者デバイスBに送信することによって、参加者デバイスBにストリーム設定の変更を通知する。
【0049】
プロセス300の動作324〜326は、コンテンツストリームcs1に加入する参加者デバイスAの例を示す。参加者デバイスAは、リンク1及びsub−streams:bs1,cs1(例えば、高品質ストリーム)を含むセッション情報要求をサーバ108に送信する(324)。これに応じて、サーバ108は、参加者デバイスAがコンテンツストリームbs1及びcs1に加入していることを確認するセッション情報応答を、参加者デバイスAに送信する(325)。加えて、サーバ108は、参加者デバイスCにインジケーション(peer−sub−streams:A cs1)を送信して、参加者デバイスAがコンテンツストリームcs1に加入していることを参加者デバイスCに通知する(326)。
【0050】
プロセス300の動作327〜332は、参加者デバイスAのWiFiインタフェースが利用可能でなくなる(例えば、喪失した接続に起因して、又は既定の量のパケット損失及び/若しくは劣化の検出に起因して)例を示す。WiFiインタフェースが利用可能でないため、参加者デバイスAは、その残りの通信インタフェース(単数又は複数)(例えば、セルラーインタフェース)を介してデータを送信することができる。したがって、参加者デバイスAは、そのセルラーチャネルを介して、WiFiリンクが任意のコンテンツストリームに対して公開又は加入しないことを指定するセッション情報要求をサーバ108に送信する(327)。セッション情報要求は、WiFiチャネルのインジケーション(llink:1)、セルラーチャネルが要求を送信しているというインジケーション(例えば、
図3Gに関して例示する目的のために、send−link:2)、pub−streams:none、及びsub−streams:none、を含む。
【0051】
これに応じて、サーバ108は、参加者デバイスAに対する更新された加入設定を確認するセッション情報応答を、参加者デバイスAに送信する(331)。加えて、サーバ108は、例えば、参加者デバイスAが以前にコンテンツストリームbs1に加入していたため、セッション情報インジケーションを参加者デバイスBに送信する(329)。セッション情報のインジケーションは、参加者デバイスAが、現在コンテンツストリームbs1にのみ加入していることを示すことができる(peer−sub−streams:A bs1)。動作329には示されていないが、セッション情報インジケーションは、参加者デバイスAの更新された公開ストリーム情報(例えば、参加者デバイスBがそれに加入している場合には、ストリームas1がもはや利用可能ではないこと)を参加者デバイスBに通知するように、peer−pub−streams:as2(例えば、及びもはやas1ではない)を更に示すことができる。
【0052】
参加者デバイスAのWiFiチャネルが失われているため、参加者デバイスAは、現在の加入設定(例えば、参加者デバイスCは、参加者デバイスAのWiFiチャネルに関連付けられた単一のコンテンツストリームcs1のみを公開した)に基づいて、参加者デバイスCからなんらのストリームをもはや受信しないことになる。コンテンツストリームcs1を受信するために、参加者デバイスAは、そのセルラーチャネルを介して、セルラーリンクがコンテンツストリームcs1に加入することを指定するセッション情報要求をサーバ108に送信する(330)。セッション情報要求は、セルラーチャネルのインジケーション(link:2)、セルラーチャネルが要求を送信しているというインジケーション(例えば、
図3Hに関して例示する目的のために、sned−link:2)、及びsub−streams:bs2,cs1、を含む。
【0053】
これに応じて、サーバ108は、参加者デバイスAに対する更新された加入設定を確認するセッション情報応答を、参加者デバイスAに送信する(328)。加えて、サーバ108は、セッション情報インジケーションを参加者デバイスCに送信する(332)。セッション情報のインジケーションは、参加者デバイスAが、コンテンツストリームbs2に加入していることを示す(peer−sub−streams:A cs1)。動作332には示されていないが、セッション情報インジケーションは、参加者デバイスAの更新された公開ストリーム情報(例えば、ストリームas1がもはや利用可能ではないこと)を参加者デバイスCに通知するように、peer−pub−streams:as2(例えば、及びもはやas1ではない)を更に示すことができる。
【0054】
1つ以上の実装形態(図示せず)では、参加者デバイスAがそのWiFiチャネルを再獲得した場合、参加者デバイスAは、割り当てバインド要求(例えば、pub−streams:as1、sub−streams:bs1,cs1を示す)をサーバ108に送信してもよい。これに応じて、サーバ108は、割り当てバインド応答(例えば、linkID:1、peer−pub−streams:bs1,cs1を示す)を参加者デバイスAに送信してもよい。
【0055】
1つ以上の実装形態では、サーバ108は、参加者デバイスA〜Cのそれぞれに対して任意の所与の時間に利用可能な、異なるチャネル(例えば、WiFi、セルラー及び/又は同様のもの)のデータ構造(例えば、テーブル)を記憶してもよい。データ構造はまた、異なるチャネルのそれぞれに関連付けられた対応するストリーム(単数又は複数)を記憶してもよい。サーバ108は、参加者デバイスA〜Cのうちの1つ以上から更新(例えば、加入更新、利用可能なストリーム更新)を受信すると、このデータ構造を更新してもよい。
【0056】
1つ以上の実装形態では、特定のコンテンツストリームを参加者デバイスの複数のチャネル上に公開することが可能である。例えば、コンテンツストリームas1(例えば、高品質)は、参加者デバイスAのWiFiチャネル及びセルラーチャネルによって利用可能とすることができる。しかし、参加者デバイスAは、コンテンツストリームas1がWiFiチャネル又はセルラーチャネルのうちの1つの上で利用可能であるが、両方のチャネル上では利用可能でないように、重複するストリームを送信しないように構成されてもよい。
【0057】
図4は、1つ以上の実装形態に係る、マルチウェイオーディオビデオ会議内で複数のチャネルを使用するためのサーバによる例示的なプロセスのフロー図を示す。説明のために、プロセス400を、本明細書では主として、
図1のサーバ108及び電子デバイス102〜103を参照して説明する。しかしながら、プロセス400は、
図1のサーバ108及び電子デバイス102〜103に限定されず、プロセス400の1つ以上のブロック(又は動作)は、サーバ108の1つ以上の他の構成要素によって、及び他の好適なデバイス(例えば、電子デバイス102〜105のいずれか)によって実行されてもよい。更に、説明の目的のために、プロセス400のブロックは、本明細書では逐次的に又は直線的に発生するものとして説明している。しかしながら、プロセス400の複数のブロックは並行して発生してもよい。加えて、プロセス400のブロックは、図示された順序で実行される必要はなく、並びに/又は、プロセス400の1つ以上のブロックは、実行される必要はなく、及び/若しくは他の動作によって置き換えることができる。
【0058】
サーバ108は、第1のデバイス(例えば、電子デバイス102)から、オーディオビデオ会議セッションのためのコンテンツを通信するための第1のチャネル及び第2のチャネルのインジケーションを受信する(402)。第1のチャネル及び第2のチャネルは、異なる種類の通信インタフェースに対応する。
【0059】
サーバ108は、電子デバイス102から、第1のチャネルを介してオーディオビデオ会議セッションのための第1のコンテンツストリームに加入し、かつ第2のチャネルを介してオーディオビデオ会議セッションのための第2のコンテンツストリームに加入する第1の要求を受信する(404)。例えば、サーバ108は、第2のデバイス(例えば、電子デバイス103)から、電子デバイス103によって利用可能な第1のコンテンツストリーム及び第2のコンテンツストリームのインジケーションを受信してもよい。
【0060】
サーバ108は、電子デバイス102に、第1の要求を受信したことに応じて、第1のチャネルを介して第1のコンテンツストリームを転送する(406)。サーバ108は、電子デバイス103に、電子デバイス102が第1のコンテンツストリーム及び第2のコンテンツストリームに加入しているというインジケーションを送信することができる。
【0061】
サーバ108は、電子デバイス102から、第1のチャネルを介して第1のコンテンツストリームから脱退する第2の要求を受信してもよい。サーバ108は、電子デバイス103に、第2の要求を受信したことに応じて、電子デバイス102が第1のコンテンツストリームに加入していないというインジケーションを送信してもよい。第2の要求を受信することは、第1のチャネルが電子デバイス102上で利用可能でなくなることに基づいてもよい。第2の要求は、電子デバイス102の第2のチャネルから受信されてもよい。サーバ108は、電子デバイス102が第2のチャネルを介して第2のコンテンツストリームに以前に加入していることに基づいて、電子デバイス102に、第2のチャネルを介して第2のコンテンツストリームを転送することができる。
【0062】
サーバ108は、第1のチャネルが電子デバイス102上で利用可能になることに基づいて、電子デバイス102から、第1のチャネルを介して第1のコンテンツストリームに再加入する第3の要求を受信してもよい。サーバ108は、電子デバイス103に、第3の要求を受信したことに応じて、電子デバイス102が第1のコンテンツストリームに加入しているというインジケーションを送信してもよい。
【0063】
サーバ108は、第3のデバイス(例えば、電子デバイス104)から、電子デバイス104によって利用可能な第3のコンテンツストリームのインジケーションを受信してもよい。サーバ108は、電子デバイス102から、第1のチャネルを介して第3のコンテンツストリームに加入する第2の要求を受信してもよい。サーバ108は、第2の要求を受信したことに応じて、電子デバイス104に、電子デバイス102が第3のコンテンツストリームに加入しているというインジケーションを送信し、電子デバイス102に、第1のチャネルを介して第3のコンテンツストリームを転送することができる。サーバ108は、第1のチャネルが電子デバイス102上で利用可能でなくなることに基づいて、電子デバイス102の第2のチャネルから、第1のチャネルを介して第3のコンテンツストリームから脱退し、かつ第2のチャネルを介して第3のコンテンツストリームに加入する第3の要求を受信してもよい。
【0064】
サーバ108は、電子デバイス102から、電子デバイス102によって利用可能な第3のコンテンツストリーム及び第4のコンテンツストリームのインジケーションを受信してもよい。第3のコンテンツストリーム及び第4のコンテンツストリームは、異なるビットレートのストリーミングコンテンツに対応することができる。
【0065】
図5は、1つ以上の実装形態に係る、マルチウェイオーディオビデオ会議内で複数のチャネルを使用するための参加者デバイスによる例示的なプロセスのフロー図を示す。説明のために、プロセス500を、本明細書では主として、
図1の電子デバイス102〜103及びサーバ108を参照して説明する。しかしながら、プロセス500は、
図1の電子デバイス102〜103及びサーバ108に限定されず、プロセス500の1つ以上のブロック(又は動作)は、電子デバイス102〜103若しくはサーバ108の1つ以上の他の構成要素によって、又は他の好適なデバイス(例えば、電子デバイス102〜105のいずれか)によって実行されてもよい。更に、説明のために、プロセス500のブロックは、本明細書では逐次的に又は直線的に発生するものとして説明している。しかしながら、プロセス500の複数のブロックは、並行して発生してもよい。加えて、プロセス500のブロックは、図示された順序で実行される必要はなく、並びに/又は、プロセス500の1つ以上のブロックは、実行される必要はなく、及び/若しくは他の動作によって置き換えることができる。
【0066】
第1のデバイス(例えば、電子デバイス102)は、サーバ108に、オーディオビデオ会議セッションのコンテンツを通信するための第1のチャネル及び第2のチャネルのインジケーションを送信する(502)。第1のチャネル及び第2のチャネルは、異なる種類の無線インタフェース(例えば、WiFi、セルラー)に対応する。
【0067】
電子デバイス102は、サーバ108から、オーディオビデオ会議セッションのために第2のデバイス(例えば、電子デバイス103)によって利用可能な第1のコンテンツストリーム及び第2のコンテンツストリームのインジケーションを受信する(504)。第1のコンテンツストリーム及び第2のコンテンツストリームは、異なるビットレートのストリーミングコンテンツに対応する。
【0068】
電子デバイス102は、サーバ108に、第1のチャネルを介して第1のコンテンツストリームに加入し、かつ第2のチャネルを介して第2のコンテンツストリームに加入する第1の要求を送信する(506)。電子デバイス102は、サーバ108から、第1のチャネルを介して第1のコンテンツストリームを受信する(508)。
【0069】
電子デバイス102は、サーバ108に、第1のチャネルを介して第1のコンテンツストリームから脱退する第2の要求を送信してもよい。サーバ108は、電子デバイス103に、電子デバイス102が第1のコンテンツストリームに加入していないというインジケーションを送信するように構成されてもよい。電子デバイス102は、第1のデバイスが第2のチャネルを介して第2のコンテンツストリームに以前に加入していることに基づいて、サーバ108から、第2のチャネルを介して第2のコンテンツストリームを受信することができる。
【0070】
1つ以上の実装形態では、第2の要求を送信することは、第1のチャネルが電子デバイス102上で利用可能でなくなることに基づいてもよい。第2の要求は、電子デバイス102の第2のチャネルから送信されてもよい。電子デバイス102は、第1のチャネルが電子デバイス102上で利用可能になることに基づいて、サーバ108に、第1のチャネルを介して第1のコンテンツストリームに再加入する第3の要求を送信してもよい。サーバ108は、電子デバイス103に、電子デバイス102が第1のコンテンツストリームに加入しているというインジケーションを送信するように構成されてもよい。
【0071】
電子デバイス102は、サーバ108に、電子デバイス102によって利用可能な第3のコンテンツストリーム及び第4のコンテンツストリームのインジケーションを送信してもよい。第3のコンテンツストリーム及び第4のコンテンツストリームは、異なるビットレートのストリーミングコンテンツに対応することができる。
【0072】
電子デバイス102は、サーバ108に、第1のチャネルを介して第3のコンテンツストリームに加入する第2の要求を送信してもよい。第3のコンテンツストリームは、第3のデバイス(例えば、電子デバイス104)によって提供されてもよい。電子デバイス102は、サーバ108から、第2の要求を送信したことに応じて、第1のチャネルを介して第3のコンテンツストリームを受信してもよい。電子デバイス102は、第1のチャネルが電子デバイス102上で利用可能でなくなることに基づいて、サーバ108に、第1のチャネルを介して第3のコンテンツストリームから脱退し、かつ第2のチャネルを介して第3のコンテンツストリームに加入する第3の要求を送信してもよい。
【0073】
上述したように、本技術の一態様は、様々なソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの例において、この収集されたデータは、特定の人物を一意に特定する個人情報データ、又は特定の人物に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを想到している。そのような個人情報データとしては、人口統計データ、ロケーションベースのデータ、電話番号、電子メールアドレス、ツイッター(登録商標)ID、自宅の住所、ユーザの健康又はフィットネスのレベル(例えば、バイタルサイン測定値、服薬情報、運動情報)に関するデータ若しくは記録、誕生日、又は任意のその他の識別情報若しくは個人情報を挙げることができる。
【0074】
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。ユーザに利益をもたらす、個人情報データに関する使用もまた、本開示によって想到される。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、あるいは、ウェルネスの目標を追求するための技術を使用している個人への、積極的なフィードバックとして使用することもできる。
【0075】
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はアクセスは、医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act;HIPAA)などの、連邦法及び/又は州法によって管理することができ、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国の異なる個人データのタイプに関して、異なるプライバシー慣行が保たれるべきである。
【0076】
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、本技術は、ユーザが、サービスの登録中又はその後のいつでも、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成することができる。「オプトイン」及び「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを想到する。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
【0077】
更には、本開示の意図は、個人情報データを、非意図的若しくは不正なアクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなった時点で削除することによって、危険性を最小限に抑えることができる。更には、適用可能な場合、特定の健康関連アプリケーションにおいて、ユーザのプライバシーを保護するために、データの非特定化を使用することができる。非特定化は、適切な場合には、特定の識別子(例えば、生年月日など)を除去すること、記憶されたデータの量又は特異性を制御すること(例えば、位置データを住所レベルよりも都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、データをユーザ全体にわたって情報集約すること)及び/又は他の方法によって、容易にすることができる。
【0078】
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、コンテンツは、ユーザに関連付けられたデバイスにより要求されたコンテンツ、他の非個人情報、若しくは公的に使用可能な情報などの、非個人情報データ又は最小限の量の個人情報に基づいて嗜好を推測することにより、選択してユーザに配信することができる。
【0079】
図6は、主題の技術の1つ以上の実装形態を実施することができる電子システム600を示す。電子システム600は、
図1に示す1以上の電子デバイス102〜105及び/若しくは1以上のサーバ108とすることができ、並びに/又はそれらのうちの一部とすることができる。電子システム600は、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体のためのインタフェースを含んでもよい。電子システム600は、バス608、1つ以上の処理ユニット(単数又は複数)612、システムメモリ604(及び/若しくはバッファ)、ROM610、永久記憶デバイス602、入力デバイスインタフェース614、出力デバイスインタフェース606、並びに1つ以上のネットワークインタフェース616、又はそのサブセット及び変形を含む。
【0080】
バス608は、電子システム600の多数の内部デバイスを通信可能に接続する全てのシステム、周辺機器、及びチップセットバスを集合的に表す。1つ以上の実装形態では、バス608は、1つ以上の処理ユニット(単数又は複数)612を、ROM610、システムメモリ604、及び永久記憶デバイス602と通信可能に接続する。これらの様々なメモリユニットから、1つ以上の処理ユニット(単数又は複数)612は、主題の開示のプロセスを実行するために、実行すべき命令及び処理すべきデータを取り出す。1つ以上の処理ユニット(単数又は複数)612は、異なる実装形態において、シングルプロセッサ又はマルチコアプロセッサとすることができる。
【0081】
ROM610は、1つ以上の処理ユニット(単数又は複数)612及び電子システム600の他のモジュールによって必要とされる静的データ及び命令を記憶する。一方、永久記憶デバイス602は、読み出し及び書き込みメモリデバイスであってもよい。永久記憶デバイス602は、たとえ電子システム600がオフであっても、命令及びデータを記憶する不揮発性メモリユニットであってもよい。1つ以上の実装形態では、永久記憶デバイス602として、大容量記憶デバイス(磁気又は光ディスク、及びそれに対応するディスクドライブなど)を使用してもよい。
【0082】
1つ以上の実装形態では、永久記憶デバイス602として、リムーバブル記憶デバイス(フロッピーディスク、フラッシュドライブ、及びそれに対応するディスクドライブなど)を使用してもよい。永久記憶デバイス602と同様に、システムメモリ604は、読み出し及び書き込みメモリデバイスであってもよい。しかしながら、永久記憶デバイス602とは異なり、システムメモリ604は、ランダムアクセスメモリなどの、揮発性の読み出し及び書き込みメモリであってもよい。システムメモリ604は、実行時に1つ以上の処理ユニット(単数又は複数)612が必要とし得る命令及びデータのいずれかを記憶してもよい。1つ以上の実装形態では、主題の開示のプロセスは、システムメモリ604、永久記憶デバイス602、及び/又はROM610内に記憶される。これらの様々なメモリユニットから、1つ以上の処理ユニット(単数又は複数)612は、1つ以上の実装形態のプロセスを実行するために、実行すべき命令及び処理すべきデータを取り出す。
【0083】
バス608はまた、入力及び出力デバイスインタフェース614及び606に接続する。入力デバイスインタフェース614により、ユーザは、電子システム600に対して、情報を通信し、コマンドを選択することが可能となる。入力デバイスインタフェース614とともに使用され得る入力デバイスは、例えば、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含むことができる。出力デバイスインタフェース606は、例えば、電子システム600によって生成された画像の表示を可能にすることができる。出力デバイスインタフェース606とともに使用され得る出力デバイスは、例えば、液晶ディスプレイ(liquid crystal display)(LCD)、発光ダイオード(light emitting diode)(LED)ディスプレイ、有機発光ダイオード(organic light emitting diode)(OLED)ディスプレイ、フレキシブルディスプレイ、フラットパネルディスプレイ、ソリッドステートディスプレイ、プロジェクタ、又は情報を出力するための任意の他のデバイス、などのプリンタ及び表示デバイスを含むことができる。1つ以上の実装形態は、タッチスクリーンなどの、入力及び出力デバイスの両方として機能するデバイスを含むことができる。これらの実装形態では、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、触知フィードバックなどの任意の形態の感覚フィードバックであることができ、ユーザからの入力は、音響入力、音声入力、又は触知入力を含む任意の形態で受け取ることができる。
【0084】
最後に、
図6に示すように、バス608はまた、1つ以上のネットワークインタフェース(単数又は複数)616を通じて、電子システム600を、1つ以上のネットワーク、及び/又は
図1に示すサーバ108などの1つ以上のネットワークノードに結合する。このようにして、電子システム600は、コンピュータのネットワーク(LAN、広域ネットワーク(wide area network)(「WAN」)など)、若しくはイントラネット、又はインターネットなどの複数のネットワークのネットワークの一部とすることができる。電子システム600のいずれか又は全ての構成要素は、主題の開示とともに使用することができる。
【0085】
本開示の範囲内の実装形態は、1つ以上の命令を符号化する有形のコンピュータ可読記憶媒体(又は1つ以上のタイプの、複数の有形のコンピュータ可読記憶媒体)を使用して、部分的に又は完全に実現することができる。有形のコンピュータ可読記憶媒体はまた、事実上、非一時的なものであってもよい。
【0086】
コンピュータ可読記憶媒体は、命令を実行することができる任意の処理電子機器及び/又は処理回路を含む、汎用又は専用コンピューティングデバイスによって読み取られ、書き込まれ、又は他の方法でアクセスされ得る任意の記憶媒体とすることができる。例えば、限定はしないが、コンピュータ可読媒体は、RAM、DRAM、SRAM、T−RAM、Z−RAM、及びTTRAMなどの任意の揮発性半導体メモリを含むことができる。コンピュータ可読媒体はまた、ROM、PROM、EPROM、EEPROM、NVRAM、フラッシュ、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM(登録商標)、NRAM、レーストラックメモリ、FJG、及びミリピードメモリなどの任意の不揮発性半導体メモリを含むことができる。
【0087】
更に、コンピュータ可読記憶媒体は、光ディスク記憶装置、磁気ディスク記憶装置、磁気テープ、他の磁気記憶デバイス、又は1つ以上の命令を記憶できる任意の他の媒体などの、任意の非半導体メモリを含むことができる。1つ以上の実装形態では、有形のコンピュータ可読記憶媒体はコンピューティングデバイスに直接的に結合することができ、他の実装形態では、有形のコンピュータ可読記憶媒体は、例えば、1つ以上の有線接続、1つ以上の無線接続、又はそれらの任意の組み合わせを介して、コンピューティングデバイスに間接的に結合することができる。
【0088】
命令は直接実行可能とすることができ、又は実行可能命令を開発するために使用することができる。例えば、命令は、実行可能又は非実行可能なマシンコードとして、又は実行可能又は非実行可能なマシンコードを生成するようにコンパイルされ得る高級言語の命令として、実現することができる。更に、命令はまた、データとして実現され又はデータを含むこともできる。コンピュータ実行可能命令はまた、ルーチン、サブルーチン、プログラム、データ構造、オブジェクト、モジュール、アプリケーション、アプレット、関数などを含む任意のフォーマットで構造化することができる。当業者によって認識されるように、命令の数、構造、順序、及び構造を含むがこれに限定はされない詳細は、基本的なロジック、機能、処理、及び出力を変更することなく大幅に変えることができる。
【0089】
上記の検討は、主として、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、1つ以上の実装形態は、ASIC又はFPGA(単数又は複数)などの、1つ以上の集積回路によって実行される。1つ以上の実装形態では、そのような集積回路は、その回路自体に記憶されている命令を実行する。
【0090】
当業者であれば、本明細書で説明される様々の例示的なブロック、モジュール、エレメント、構成要素、方法、及びアルゴリズムが、電子ハードウェア、コンピュータソフトウェア、又はそれら両方の組み合わせとして実装され得ることを理解するであろう。ハードウェアとソフトウェアのこの互換性を示すために、様々の例示的なブロック、モジュール、エレメント、構成要素、方法、及びアルゴリズムを、それらの機能性の点から一般的に上述してきた。そのような機能性がハードウェア又はソフトウェアとして実装されるかは、特定のアプリケーション及びシステム全体に課される設計上の制約に依存する。当業者であれば、特定のアプリケーションごとに様々な方法で説明した機能性を実装することができるであろう。様々な構成要素及びブロックは、主題の技術の範囲から全く逸脱することなく、異なるように(例えば、異なる順序で配置されるか、又は異なる方法で分割されて)配置されてもよい。
【0091】
開示されたプロセスにおけるブロックのいかなる特定の順序又は階層も、例示的なアプローチの一例であることが理解されよう。設計選択に基づいて、プロセス内のブロックの特定の順序又は階層は並び替えられてもよいこと、又は例示されているブロックが全て実行されてもよいことが理解される。いずれのブロックも、同時に実行されてよい。1つ以上の実装形態では、マルチタスク及び並列処理が有利であり得る。更に、上述した実装における様々なシステム構成要素の分離は、全ての実装においてそのような分離が必要とされていると理解すべきではない。記載されたプログラム構成要素及びシステムは、単一のソフトウェアプロダクトに同一化されてもよく、又は複数のソフトウェア製品にパッケージ化されてもよいことを理解すべきである。
【0092】
本出願の本明細書及びいずれかの特許請求の範囲で使用されるとき、用語「基地局」、「受信機」、「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」は全て、電子的又は他の技術的デバイスを指す。これらの用語は、人又は人のグループを除外する。本明細書の目的上、「表示する(display)」又は「表示すること(displaying)」という用語は、電子デバイス上に表示することを意味する。
【0093】
本明細書で使用する、一連の項目に先行する「少なくとも1つ」というフレーズは、項目のいずれかを分離する「及び」又は「又は」という用語とともに、リストの各要素(すなわち、各項目)ではなく、全体としてリストを修飾する。「少なくとも1つ」というフレーズは、リスト化された各項目の少なくとも1つの選択を必要とはせず、むしろ、そのフレーズは、項目のうちのいずれか1つの少なくとも1つ、及び/又は項目の任意の組合せのうちの少なくとも1つ、及び/又は項目のそれぞれのうちの少なくとも1つ、を含む意味を可能にする。例として、「A、B、及びCのうちの少なくとも1つ」又は「A、B、又はCのうちの少なくとも1つ」というフレーズは、それぞれが、Aのみ、Bのみ、又はCのみ、A、B、及びCの任意の組み合わせ、並びに/又は、A、B、及びCのそれぞれのうちの少なくとも1つを指す。
【0094】
「〜ように構成された(configured to)」、「〜ように動作可能な(operable to)」、及び「〜ようにプログラムされた(programmed to)」という述語は、対象物の特有の有形又は無形の改変を意味するものではなく、むしろ交換可能に使用されることを意図している。1つ以上の実施態様では、動作若しくは構成要素を監視及び制御するように構成されたプロセッサとは、プロセッサが、動作を監視及び制御するようにプログラムされていること、又はプロセッサが、動作を監視及び制御するように動作可能であることも意味し得る。同様に、コードを実行するように構成されたプロセッサは、コードを実行するようにプログラムされた、又はコードを実行するように動作可能なプロセッサ、として解釈することができる。
【0095】
1つの態様、その態様、別の態様、いくつかの態様、1つ以上の態様、1つの実装形態、その実装形態、別の実装形態、いくつかの実装形態、1つ以上の実装形態、1つの実施形態、その実施形態、別の実施形態、いくつかの実施形態、1つ以上の実施形態、1つの構成、その構成、別の構成、いくつかの構成、1つ以上の構成、主題の技術、開示、本開示、それらの他の変形、及び同様のフレーズは、便宜上のものであり、そのようなフレーズ(単数又は複数)に関する開示が主題の技術に不可欠であること、又はそのような開示が主題の技術の全ての構成に適用されること、の意味を含むものではない。そのようなフレーズ(単数又は複数)に関する開示は、全ての構成、又は1つ以上の構成に適用することができる。そのようなフレーズ(単数又は複数)に関する開示は、1つ以上の例を提供することができる。態様又はいくつかの態様などのフレーズは、1つ以上の態様を指すことができ、その逆も同様であり、これは他の前述のフレーズと同様に適用される。
【0096】
単語「例示的(exemplary)」は、本明細書において、「例、事例、又は実例の役割を果たすこと」を意味するために使用される。「例示的」又は「例」として本明細書で説明されたいかなる実施形態も、必ずしも他の実施形態を超えて好ましい又は有利であると解釈されるべきではない。更に、「含む」、「有する」などの用語が明細書又は特許請求の範囲で使用される限りにおいて、そのような用語は、「備える」が特許請求の範囲において移行語として使用されるときに解釈されるように、「備える」という用語と同様の方法で包括的であることを意図する。
【0097】
当業者に知られているか又は後に知られるようになる、本開示を通じて説明される様々な態様のエレメントに対する全ての構造的及び機能的な均等物は、参照により明示的に本明細書に組み込まれ、かつ、特許請求の範囲に包含されるものと意図する。更に、本明細書で開示されたいかなるものも、そのような開示が特許請求の範囲に明白に列挙されているかどうかにかかわらず、公共に捧げられることを意図しない。いかなる特許請求の範囲のエレメントも、エレメントがフレーズ「手段(means for)」を使用して明示的に列挙するか、又は方法の請求項の場合には、エレメントがフレーズ「ステップ(step for)」を使用して列挙しない限り、米国特許法第35条112項第6パラグラフの規定に基づいて解釈されるべきではない。
【0098】
前述の説明は、当業者が本明細書で説明した様々な態様を実施することを可能にするために提供される。これらの態様に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、他の態様にも適用することができる。それゆえ、請求項は、本明細書に示される態様に限定されること意図されておらず、文言による請求項に合致した全範囲を認められるべきであり、単数形による要素への言及は、特に断りのない限り、「唯一の(one and only one)」を意味することを意図されておらず、むしろ、「1つ以上の(one or more)」を意味することを意図されている。特記しない限り、「いくつかの(some)」という用語は、1つ以上のものを指す。男性系(例えば、彼)の代名詞は、女性及び中性の性別(例えば、彼女及びその)を含み、並びにその逆である。もしあれば、見出し及び小見出しは、便宜上のみに使用され、本願の開示を限定するものではない。