(58)【調査した分野】(Int.Cl.,DB名)
複数のコンピューティングデバイスのうちのコンピューティングデバイスによって、前記複数のコンピューティングデバイスを含むピアツーピアグループに参加することと、
前記コンピューティングデバイスによって、少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループのクライアントコンピューティングデバイスに流れていると決定することと、
前記コンピューティングデバイスによって、少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定したことに応答して、前記少なくとも1つのアプリケーションフローを、前記ピアツーピアグループの前記クライアントコンピューティングデバイスから前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスに流すために、前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスとして前記クライアントコンピューティングデバイスを選択することと
を備える方法。
前記ピアツーピアグループに参加することは、Wi−Fiダイレクトワイヤレス通信プロトコルに従って前記ピアツーピアグループに参加することを備える、請求項1に記載の方法。
複数のコンピューティングデバイスのうちのコンピューティングデバイスによって、および、ワイヤレス通信プロトコルに従って、前記複数のコンピューティングデバイスを含むピアツーピアグループに参加することと、
前記コンピューティングデバイスによって、前記ピアツーピアグループのクライアントコンピューティングデバイスから新しいグループ所有者コンピューティングデバイスに流れるアプリケーションデータの量が前記新しいグループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションデータの量よりも大きい場合にのみ、少なくとも1つのアプリケーションフローを、前記クライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流すために、前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することと
を備える方法。
少なくとも部分的に前記コンピューティングデバイスによって、前記新しいグループ所有者コンピューティングデバイスに前記ピアツーピアグループのグループ所有権を付与するために前記ピアツーピアグループの前記新しいグループ所有者について再交渉すること
をさらに備える、請求項1に記載の方法。
前記ピアツーピアグループの前記新しいグループ所有者について再交渉することは、前記コンピューティングデバイスによってグループ所有者再交渉要求を前記ピアツーピアグループの別のコンピューティングデバイスに送信することを備える、請求項9に記載の方法。
前記1つまたは複数のプロセッサは、少なくとも部分的に、前記新しいグループ所有者コンピューティングデバイスに前記ピアツーピアグループのグループ所有権を付与するために前記ピアツーピアグループの前記新しいグループ所有者について再交渉するようにさらに構成される、請求項11に記載のコンピューティングデバイス。
通信ユニットをさらに備え、前記通信ユニットは、システムバスを介して前記1つまたは複数のプロセッサに接続され、前記コンピューティングデバイスは、スマートフォン、モバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、および周辺コンピューティングデバイスから構成されるグループから選択されたデバイスとして構成され、請求項11に記載のコンピューティングデバイス。
前記ピアツーピアグループに参加することおよび前記新しいグループ所有者を選択することは、前記ピアツーピアグループ内の1つまたは複数の他のコンピューティングデバイスと通信を交換することを備える、請求項1に記載の方法。
前記1つまたは複数のプロセッサは、少なくとも、前記コンピューティングデバイスに、前記ピアツーピアグループの別のコンピューティングデバイスにグループ所有者再交渉要求を送信させることによって再交渉する、請求項18に記載のコンピューティングデバイス。
前記1つまたは複数のプロセッサは、少なくとも、前記コンピューティングデバイスに、1つまたは複数の通信を送信させることによって前記新しいグループ所有者コンピューティングデバイスを選択する、請求項11に記載のコンピューティングデバイス。
前記1つまたは複数のプロセッサは、前記コンピューティングデバイスに、前記ピアツーピアグループ内の1つまたは複数の他のコンピューティングデバイスと通信を交換させることによって前記ピアツーピアグループに参加し、前記新しいグループ所有者を選択する、請求項11に記載のコンピューティングデバイス。
【発明を実施するための形態】
【0014】
[0022]同様の参照符号は、図面およびテキスト全体を通して同じ要素を示す。
【0015】
[0023]本開示は、ワイヤレス伝送媒体を介してデータおよび制御情報を交換するコンピューティングデバイスのピアツーピア(P2P)グループのグループ所有者について再交渉するための技法に関する。Wi−Fi Allianceによって標準化されたWi−Fiダイレクトは、2つのWi−Fiデバイス、すなわち、グループ所有者とWi−Fiピアツーピア(P2P)クライアントとの間の直接通信に関するP2Pワイヤレス通信プロトコルである。グループ所有者の役割は接続セットアップの間に交渉可能である。
【0016】
[0024]モバイルデバイスおよびその他のWi−Fi対応コンピューティングデバイスは、エネルギーを節約するために電気電子技術者協会(IEEE)802.11に規定されたWi−Fi省電力を使用してもよい。Wi−Fiダイレクトは、Wi−Fi省電力を拡張し、2つのWi−FiデバイスがP2Pグループのメンバーとしてピアツーピア(P2P)接続を形成するときにさらにエネルギーを節約するようにP2Pグループのグループ所有者に関する省電力オプションを規定する。しかし、これらのWi−Fi省電力機構は、上位層アプリケーションとは独立に動作し、アプリケーションデータスループットおよびレイテンシに対する性能ペナルティを導入することが多い。本明細書では、IEEE802.11は、IEEE802.11の規格のセット(たとえば、802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11adなど)、あるいはたとえば、Wi−Fi、WiGig、および/または1つもしくは複数の802.11規格の拡張規格のうちのいずれかに適合する任意のワイヤレス通信プロトコルを指す場合がある。
【0017】
[0025]グループ所有者の省電力に関するWi−Fiダイレクト拡張規格では、2つの省電力(PS)方法が規定される。(1)グループ所有者が、各ビーコン間隔(BI)の開始時に、CT窓(CTWindow)として示される時間窓の間のみアウェイクするオポチュニスティックPS(Opp PS:Opportunistic PS)、および(2)グループ所有者が休止間隔(AI:Absence Interval)おきにスリープを開始し休止持続時間(AD:Absence Duration)の間スリープする休止通知省電力(NoA PS:Notice of Absence Power Save)。さらに、グループ所有者の省電力に関するWi−Fiダイレクトによれば、AD<AI<BIである。クライアント省電力は、クライアントがn個のビーコン間隔またはn*BI(n≧1)である間隔ListenIntervalで周期的にスリープするステーション(STA)に関するIEEE802.11仕様に従う。新しいアプリケーションデータが到着する間グループ所有者のWi−Fiクライアントがスリープしている場合、Wi−Fiクライアントは、アプリケーションフローの一部としてアプリケーションデータを送信するために直ちにウェイクアップする。
【0018】
[0026]以下でより詳細に説明するように、本開示では、ワイヤレスピアツーピア(P2P)グループのメンバーとしてワイヤレス通信を交換するコンピューティングデバイスがグループの新しいグループ所有者を選択し得る、ワイヤレスP2Pプロトコルに適用可能な技法、プロトコル、方法、およびデバイスについて説明する。いくつかの例では、グループのコンピューティングデバイスは、グループ用のP2P接続が、グループ所有者によって発信されたアプリケーションフローをグループ所有者のクライアントに転送すると決定する。グループのコンピューティングデバイスは、グループ所有者によって発信されたアプリケーションフローを受信するクライアントをグループの新しいグループ所有者として選択する。したがって、アプリケーションフローを受信するグループのコンピューティングデバイスは、新しいグループ所有者になり、その結果、グループのグループ所有者は、アプリケーションフローを受信し、一方、新しいグループ所有者が選択される前に、グループ所有者がアプリケーションフローを送信した。たとえば、アプリケーションフローを受信するピアコンピューティングデバイスがグループ所有者になるようにワイヤレスP2Pグループの新しいグループ所有者を選択すると、アプリケーションフローを発信するピアコンピューティングデバイスがグループ所有者になる場合と比較してアプリケーションフローに関するスループットとレイテンシの少なくとも一方が向上する場合がある。言い換えれば、アプリケーションデータフローはWi−Fi P2PクライアントからWi−Fi P2P GOに進み、それによって、逆の構成(すなわち、アプリケーションデータがWi−Fi P2P GOからWi−Fi P2Pクライアントに転送される構成)と比較して、Wi−Fiが省電力モードであるときにはスループットが向上しレイテンシが短くなる場合がある。
【0019】
[0027]いくつかの例では、コンピューティングデバイスは、グループ所有者がP2P接続に関する省電力モードである場合にのみ、グループ所有者によって発信されたアプリケーションフローを受信するクライアントをグループの新しいグループ所有者として選択する。省電力モードでは、電力消費量を低減させるためにグループ所有者とクライアントのいずれかまたは両方が一定の期間の間通信を休止する場合がある。いくつかの例では、コンピューティングデバイスは、Wi−Fiダイレクトを使用してP2Pグループのメンバーとしてワイヤレス通信を交換する。
【0020】
[0028]
図1は、本開示に記載された技法に従ってピアツーピアグループのメンバーであるコンピューティングデバイスがグループのグループ所有者を選択する例示的なピアツーピアワイヤレス通信システムのブロック図である。図示の例では、ピアツーピア(P2P)ワイヤレス通信システム100は、ワイヤレス媒体102とのそれぞれのワイヤレスインターフェース110A〜110Bを有するコンピューティングデバイス104A〜104B(集合的に「コンピューティングデバイス104」)を含む。
【0021】
[0029]コンピューティングデバイス104の各々はどれも、スマートフォンもしくは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、または他の電子デバイスなどの、モバイルデバイスを表し得る。コンピューティングデバイス104はどれも、デスクトップコンピュータなどの固定デバイスを表す場合もある。コンピューティングデバイス104は、より大きいデバイスまたはシステムの構成要素であってもよい。たとえば、コンピューティングデバイス104はどれも、プロセッサ、処理コア、チップセット、または別のタイプの1つまたは複数の集積回路を備えてもよい。コンピューティングデバイス104はどれも、ディスプレイ、プロジェクタ、スピーカー、キーボード、マウス、ジョイスティック、データ記憶デバイス、ネットワークインターフェースデバイス、他のドッキングホスト、遠隔制御装置、カメラ、マイクロフォン、プリンタ、またはワイヤレス媒体102を介してワイヤレス通信が可能な様々な他のデバイスのいずれかなどの周辺装置を表す場合もある。
【0022】
[0030]コンピューティングデバイス104は、ワイヤレス媒体102を介してワイヤレス通信チャネル111を確立するワイヤレスP2Pプロトコルを実施するそれぞれのP2Pプロトコルモジュール108A〜108B(集合的に「P2Pプロトコルモジュール108」)を実行する。ワイヤレス通信チャネル111は、ワイヤレス媒体102を介してコンピューティングデバイス104間で通信信号を伝搬させることが可能な任意のチャネルであってもよい。いくつかの例では、ワイヤレス通信チャネル111は、2.4ギガヘルツ(GHz)帯、5GHz帯、60GHz帯、または他の周波数帯のような周波数帯における高周波通信において実装され得る。いくつかの例では、ワイヤレス通信チャネル111は、(Wi−Fi Allianceによって推進されているような)Wi−Fi、(Wireless Gigabit Allianceによって推進されているような)WiGig、および/または米国電気電子学会(IEEE)802.11の規格のセット(たとえば、802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11adなど)、または他の規格、プロトコル、もしくは技術の中の、規格、プロトコル、または技術の1つまたは複数のセットに適合し得る。2.4GHz帯、5GHz帯、および60GHz帯など、ワイヤレス通信リンク111のために使用される周波数帯は、本開示では、Wi−Fi、WiGigの標準規格、任意の1つもしくは複数のIEEE802.11プロトコル、および/または他の適用可能な標準規格もしくはプロトコルに照らして理解されるように規定され得る。
【0023】
[0031]P2Pプロトコルモジュール108は、コンピューティングデバイス104が、グループのメンバーとして承認されたときに互いに通信することを許可されるデバイスのP2Pグループ105(「P2Pグループ105」)に参加するために通信するワイヤレスP2Pプロトコルを実施する。たとえば、P2Pプロトコルモジュール108はP2Pグループ105に参加するためにメッセージを交換してもよい。ワイヤレスP2Pプロトコルは、Wi−Fi Allianceによって公布されるWi−Fiダイレクトを含んでもよい。本明細書では、Wi−FiダイレクトP2PグループなどのP2Pグループ105に「参加する」またはP2Pグループ105を「確立する」ことは、新しいP2Pグループを作成することと、すでに存在するP2Pグループに参加することとを含む。
【0024】
[0032]P2Pプロトコルモジュール108は、P2Pグループ105のグループ所有者を選択するためにメッセージを交換してもよい。図示の例では、コンピューティングデバイス104のP2Pプロトコルモジュール108は、コンピューティングデバイス104AをP2Pグループ105のグループ所有者として選択する。P2Pグループ105は、2つのコンピューティングデバイス104を含むように示されているが、いくつかの例では、3つ以上のコンピューティングデバイスを含んでもよい。しかし、P2Pグループ105は単一のグループ所有者を含んでもよい。
【0025】
[0033]コンピューティングデバイス104はさらに、それぞれのアプリケーション106A〜106B(集合的に「アプリケーション106」)を実行する。アプリケーション106の各々は、1つまたは複数のアプリケーションフローとして送信されるデータを作成しならびに/あるいは消費する。アプリケーション106は、ビデオオンデマンド、ボイスオーバーIP(VoIP)、ストリーミングメディア、分散コンピューティングアプリケーション、またはコンピューティングデバイス104間でアプリケーションフローを交換することがある任意の他のアプリケーションを表し得る。アプリケーション106Aは、ワイヤレス通信チャネル111を確立した後、P2Pプロトコルモジュール108によって実施されるワイヤレスP2Pプロトコルに適合するデータフレームを使用してアプリケーション106Bにアプリケーションフロー112を送信するためにワイヤレス通信チャネル111を使用してもよい。
【0026】
[0034]本開示に記載された技法によれば、P2Pプロトコルモジュール108は、グループ所有者に優先的にP2Pグループに関するアプリケーションフローをシンク(たとえば、「受信」または「消費」)させる。一方のP2Pプロトコルモジュール108は、アプリケーションフロー112がコンピューティングデバイス104Aによって発信され、コンピューティングデバイス104Bによってシンクされる(または「消費される」)と決定してもよい。すなわち、コンピューティングデバイス104Bはアプリケーションフロー112のシンクである。P2Pプロトコルモジュール108は、アプリケーションフロー112がP2Pグループ105のグループ所有者として動作するコンピューティングデバイス104Aによって発信されコンピューティングデバイス104Bによってシンクされると決定したことに応答して、コンピューティングデバイス104BをP2Pグループ105の新しいグループ所有者として選択する。言い換えれば、P2Pプロトコルモジュール108は、P2Pグループのグループ所有権を初期グループ所有者のコンピューティングデバイス104Aから新しいグループ所有者のコンピューティングデバイス104Bに転送する。グループ所有権が転送された後、P2Pグループ105の新しいグループ所有者として動作するコンピューティングデバイス104Bは、アプリケーションフロー112をシンクし、それによって、コンピューティングデバイス104AがP2Pグループ105のグループ所有者であった前の状態と比較してアプリケーションフローに関するスループットおよび/またはレイテンシが向上することがある。様々な例では、P2Pプロトコルモジュール108のいずれかは、アプリケーションフロー112がP2Pグループ105のグループ所有者として動作するコンピューティングデバイス104Aによって発信され、コンピューティングデバイス104Bによってシンクされると決定してもよい。たとえば、P2Pプロトコルモジュール108Bは、コンピューティングデバイス104Bがアプリケーションフロー112をシンクすると決定し、コンピューティングデバイス104BがP2Pグループ105のグループ所有者として動作していないと決定してもよい。
【0027】
[0035]図示の例では、P2Pプロトコルモジュール108Aは、コンピューティングデバイス104BをP2Pグループ105の新しいグループ所有者として選択するために、グループ所有者再交渉メッセージ114をP2Pプロトコルモジュール108Bに発行することによってP2Pグループ105のグループ所有者についての再交渉を開始する。グループ所有者再交渉メッセージ114は、P2Pプロトコルモジュール108BにP2Pプロトコルモジュール108Aと交渉してコンピューティングデバイス104BをP2Pグループ105のグループ所有者として選択させるよう指示する。場合によっては、P2Pプロトコルモジュール108は、P2Pグループ105の新しい状態に関して、すなわち、コンピューティングデバイス104Bがグループ所有者として動作する状態に関してアプリケーションフロー112を転送するために新しいワイヤレス通信チャネルを確立する。いくつかの例では、P2Pグループ105の初期クライアントのP2Pプロトコルモジュール108Bは、グループ所有者再交渉メッセージ114をP2Pプロトコルモジュール108Aに発行することによってP2Pグループ105のグループ所有者についての再交渉を開始する。
【0028】
[0036]いくつかの例では、P2Pグループ105は、3つ以上のコンピューティングデバイス104を含んでもよく、コンピューティングデバイス104Aによって表される単一の初期グループ所有者を含んでもよい。そのような例では、P2Pグループ105のコンピューティングデバイス104は、P2Pグループ105の様々なコンピューティングデバイス104の間で複数の様々なアプリケーションフローを交換してもよい。場合によっては、アプリケーションフローは、ブロードキャストアプリケーションフロー、エニーキャストアプリケーションフロー、またはマルチキャストアプリケーションフローを含んでもよい。本明細書に記載された技法により、P2Pグループ105のコンピューティングデバイス104は、コンピューティングデバイス104Bがアプリケーションフローのうちの少なくとも複数のアプリケーションフローまたは複数の所定量のアプリケーションフローのデータ(すなわち、他のどのコンピューティングデバイスよりも多いアプリケーションフロー)をシンクすると決定し、その結果、コンピューティングデバイス104BをP2Pグループ105の新しいグループ所有者として交渉し選択してもよい。
【0029】
[0037]
図2は、本開示に記載された技法による、
図1のP2Pワイヤレス通信システム100のコンピューティングデバイス104間の例示的なコールフローを示すコールフロー
図118である。例示的なコールフロー
図118では、本開示に記載された技法に従って、Wi−FiダイレクトによるP2Pグループ確立のためのコールフローを拡張してもよい。通信フローはコールフローの一例である。
【0030】
[0038]最初、コンピューティングデバイス104は、デバイス発見120を実行することによって互いを見つけ合う。デバイス発見120の一部として、コンピューティングデバイス104は、たとえば、2.4GHz帯におけるチャネル1、チャネル6、およびチャネル11であるソーシャルチャネル上で追加のP2P情報要素を含むプローブ要求のリッスンおよび送信を交互に行ってもよい。コンピューティングデバイス104は、場合によっては、同じくサービス発見を実行し、提供されるサービスに従ってデバイスに接続することを選択してもよい。
【0031】
[0039]コンピューティングデバイス104Bは、グループ所有者(GO)交渉要求122を送信することによって未接続のコンピューティングデバイス104AによるP2Pグループ105の形成を直接開始することができる。どのコンピューティングデバイス104もP2Pグループ105 GOの役割を担うことができるが、グループ内の役割は、コンピューティングデバイス104が、使用チャネル、Wi−Fiプロテクテッドセットアップ(WPS:Wi-Fi Protected Setup)構成方法、およびグループが永続的なグループであるかどうかのようなP2Pグループ105のいくつかの特性を交換する場合があるワイヤレスP2Pプロトコルの交渉プロトコルに従って交渉される。コールフロー
図118は、コンピューティングデバイス104Bが最初のGO交渉要求122を送信するように示しているが。コンピューティングデバイス104はそれぞれのGO交渉要求122、124を任意の順序で送信してもよい。
【0032】
[0040]コンピューティングデバイス104Bは、GO交渉要求122内のGO意志属性(「intent=4」)を使用してP2Pグループ105のGOとなる意志のレベルを伝達する。コンピューティングデバイス104Aは、GO交渉要求メッセージ124をコンピューティングデバイス104Bに発行し、GO意志属性(「intent=8」)を使用してP2Pグループ105のGOとなる意志のレベルを伝達する。コンピューティングデバイス104Aがより大きい値の意志を示しているので、各コンピューティングデバイス104は、コンピューティングデバイス104Aを初期GOとして指定し、交渉された使用チャネルに移動する。各コンピューティングデバイス104は、GO交渉確認情報を送信してもよく、各コンピューティングデバイス104は交渉された使用チャネルに移動する。初期GOとして動作するコンピューティングデバイス104Aは、アクセスポイントモードでの動作を開始し、交渉されたSSIDを有するビーコンを送信する。コンピューティングデバイス104Bは、P2P GOとして動作するコンピューティングデバイス104のP2Pクライアントとしてコンピューティングデバイス104Aに接続する。コンピューティングデバイス104は、P2Pグループ105の形成を完了しワイヤレス通信チャネル111を確立するためにコンピューティングデバイス104が認証および関連付け126を実行するフェーズに入る。
【0033】
[0041]任意の時点で、グループ所有者として動作するコンピューティングデバイス104Aは、ステップ128においてグループ所有者省電力モードに入ってもよい。上述のように、Wi−Fiダイレクトによって定義された省電力モードは、オポチュニスティック省電力と休止通知省電力とを含んでもよい。オポチュニスティック省電力では、コンピューティングデバイス104Aが電力をほとんど、または場合によってはまったく使用しないようにスリープするのが可能になる。コンピューティングデバイス104Aは、クライアントトラフィック窓(CTWindow)と呼ばれる、コンピューティングデバイス104Aがアウェイクする間隔をコンピューティングデバイス104Bに通知する。休止通知省電力では、コンピューティングデバイス104Aは、コンピューティングデバイス104Aが「休止」になり、したがって、ワイヤレス通信チャネル111を使用したワイヤレス通信に利用できなくなる期間を定義する開始時間、間隔、持続時間、およびカウントを通知する。
【0034】
[0042]コンピューティングデバイス104Aは、ワイヤレス通信チャネル111を使用して1つまたは複数のアプリケーションフロー130をコンピューティングデバイス104Bに送信する。コンピューティングデバイス104Aは、ステップ132において、グループ所有者、すなわち、コンピューティングデバイス104AがP2Pグループ105に関するアプリケーションフロー130を発信していると決定する。その結果、コンピューティングデバイス104Aは、コンピューティングデバイス104BにP2Pグループ105のグループ所有権について再交渉することを要求するGO再交渉要求メッセージ134を発行する。GO再交渉要求136、138によって、各コンピューティングデバイス104は、P2Pグループ105のGOとしてのコンピューティングデバイス104Bと再交渉する。いくつかの例では、コンピューティングデバイス104Bは、グループ所有者、すなわち、コンピューティングデバイス104AがP2Pグループ105に関するアプリケーションフロー130を発信していると決定し、その結果、P2Pグループ105のグループ所有者について再交渉するためにコンピューティングデバイス104BにGO再交渉要求メッセージを発行してもよい。GO再交渉要求メッセージを発行するコンピューティングデバイス104は、たとえば、含められるGO意志属性に関して(場合に応じて)大きい値または小さい値を選択することによって、コンピューティングデバイス104BがP2Pグループ105の新しいGOになるように後続のGO交渉要求メッセージを供給してもよい。
【0035】
[0043]コンピューティングデバイス104は、場合によってはステップ140において、P2Pグループ105の再形成を完了しワイヤレス通信チャネル111を確立するために認証および関連付け126を再び実行する。アプリケーションフロー130は、引き続きコンピューティングデバイス104Aからコンピューティングデバイス104Bに流れる。しかし、現在はコンピューティングデバイス104BであるP2Pグループ105のグループ所有者は現在、GO交渉要求122、124に続く初期構成についてのソースではなくアプリケーションフローのシンクである。
【0036】
[0044]
図3は、本明細書に記載された技法に従って動作するコンピューティングデバイスに関するデータ通信モデルまたはプロトコルスタックの一例を示すブロック図である。ワイヤレスデータ通信モデル200(またはより単純に「ワイヤレス通信モデル200」)は、実装されたWi−Fiダイレクトシステムにおけるソースデバイスとシンクデバイスとの間でデータを送信するために使用されるデータおよび制御プロトコル間の対話を示している。いくつかの例では、
図1のシステム100のコンピューティングデバイス104は、ワイヤレス通信モデル200を使用してもよい。そのような例では、アプリケーション106は、アプリケーションフローを交換するためにワイヤレス通信モデル200を呼び出してもよい。ワイヤレス通信モデル200は、IEEE802.11 202、Wi−Fiダイレクト/トンネルドダイレクトリンクセットアップ(TDLS:Tunneled Direct Link Setup)/インフラストラクチャ204(以下「Wi−Fiダイレクト204」)、インターネットプロトコル(IP)206、ユーザデータグラムプロトコル(UDP)208、リアルタイムトランスポートプロトコル(RTP)210、MPEG2トランスポートストリーム(MPEG−TS)212、コンテンツ保護214(たとえば、HDCP2.0などの高帯域幅デジタルコンテンツ保護(HDCP))、パケット化エレメンタリーストリーム(PES)パケット化216、ビデオコーデック218、オーディオコーデック220、伝送制御プロトコル(TCP)222、リアルタイムストリーミングプロトコル(RTSP)224、ユーザ入力パケット化228、ヒューマンインターフェースデバイスコマンド(HIDC)230、汎用ユーザ入力232(「汎用232」として示されている)、およびオペレーティングシステム固有の入力234(「OS固有234」として示されている)を含むレイヤを含む。ユーザ入力パケット化228、HIDC 230、汎用232、およびOS固有234はユーザ入力バックチャネル(UIBC)227を構成してもよい。
【0037】
[0045]Wi−Fiダイレクト204およびIEEE802.11 202は、物理レイヤおよびMACレイヤを包含してもよく、Wi−Fiダイレクトまたは他のワイヤレスP2Pシステムにおける通信に使用される物理的シグナリング、アドレス指定、およびチャネルアクセス制御を定義してもよい。IEEE802.11 202は、通信のために使用される周波数帯域構造、たとえば、2.4GHz、3.6GHz、5GHz、60GHzにおいて定義される連邦通信委員会の帯域または超広帯域(UWB)周波数帯域構造を定義し得る。IEEE802.11 202はまた、データ変調技法、たとえばアナログおよびデジタル振幅変調、周波数変調、位相変調技法、およびそれらの組合せを定義し得る。IEEE802.11 202はまた、多重化技法、たとえば、たとえば、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、符号分割多元接続(CDMA)、あるいはOFDM、FDMA、TDMAおよび/またはCDMAの任意の組合せを定義し得る。一例では、IEEE802.11 202の動作は、Wi−Fi(たとえば、IEEE802.11−2007、802.11n−2009、802.11ac、802.11ad)によって少なくとも部分的に定義されてもよい。Wi−Fiダイレクト202は、
図1のP2Pプロトコルモジュール108のいずれかの例示的なインスタンスを表し得る。
【0038】
[0046]インターネットプロトコル(IP)206、ユーザデータグラムプロトコル(UDP)208、リアルタイムトランスポートプロトコル(RTP)210、伝送制御プロトコル(TCP)222、およびリアルタイムストリーミングプロトコル(RTSP)224は、Wi−Fiダイレクト204を介してアプリケーションフローを転送するためのパケット構造およびカプセル化を定義し、たとえば、インターネットエンジニアリングタスクフォース(IETF)によって維持される規格に従って定義され得る。
【0039】
[0047]RTSP224は、
図1のコンピューティングデバイス104によって、たとえば、機能の交渉、セッションの確立、ならびにセッションの維持および管理のために使用され得る。コンピューティングデバイス104は、いくつかの例では、RTSPメッセージトランザクションを使用して、UIBC 227のプロトコルレイヤを使用して動作させられるUIBC上のフィードバックチャネルおよびフィードバック入力範疇をサポートするソースデバイスおよびシンクデバイスの機能について交渉することによってフィードバックチャネルを確立してもよい。フィードバックチャネルを確立するためにRTSP交渉を使用することは、メディア共有セッションおよび/またはUIBCを確立するためにRTSP交渉プロセスを使用することと同様であり得る。
【0040】
[0048]ビデオコーデック218は、Wi−Fiダイレクト204を介してアプリケーションフローを交換するコンピューティングデバイスを有するシステムによって使用される場合があるビデオデータコーディング技法を定義してもよい。ビデオコーデック218は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264、VP8および高効率ビデオコーディング(HEVC)など、任意の数のビデオ圧縮規格を実装し得る。
【0041】
[0049]ビデオコーデック220は、Wi−Fiダイレクト204を介してアプリケーションフローを交換するコンピューティングデバイスを有するシステムによって使用される場合があるビデオデータコーディング技法を定義してもよい。オーディオデータは、Dolby and Digital Theater Systemsによって開発されたそのようなマルチチャネルフォーマットを使用してコーディングされ得る。オーディオデータは、圧縮または非圧縮フォーマットを使用してコーディングされ得る。圧縮オーディオフォーマットの例としては、MPEG−1、2 Audio Layers IIおよびIII、AC−3、AACがある。非圧縮オーディオフォーマットの一例としては、パルスコード変調(PCM)オーディオフォーマットがある。
【0042】
[0050]パケット化エレメンタリーストリーム(PES)パケット化216およびMPEG2トランスポートストリーム(MPEG2−TS)212は、コーディングされたオーディオおよびビデオデータがどのようにパケット化され、送信されるかを定義し得る。パケット化エレメンタリーストリーム(PES)パケット化216およびMPEG−TS212は、MPEG−2 Part 1に従って定義され得る。他の例では、オーディオおよびビデオデータは、他のパケット化およびトランスポートストリームプロトコルに従ってパケット化され、送信され得る。オーディオとビデオは、一緒に送信されてもよく、あるいは別個のパケットで送信されてもよい。別々に送信される場合、オーディオとビデオがレンダリングされ出力されるときに、ビデオパケットが対応するオーディオパケットと同期化されるか、あるいはオーディオパケットが対応するビデオパケットと同期化されてもよい。コンテンツ保護214は、オーディオまたはビデオデータの無認可のコピーに対する保護を実現し得る。一例では、コンテンツ保護214は、High bandwidth Digital Content Protection 2.0仕様に従って定義され得る。
【0043】
[0051]UIBC227は、ユーザ入力がどのようにパケット化されるかを定義する場合があるユーザ入力パケット化228を含む。ヒューマンインターフェースデバイスコマンド(HIDC)230、汎用ユーザ入力232、およびOS固有コマンド234は、ユーザ入力のタイプがどのように情報要素にフォーマットされるかを定義し得る。たとえば、HIDC 230および汎用ユーザ入力232は、ユーザインターフェースタイプ(たとえば、マウス、キーボード、タッチ、マルチタッチ、音声、ジェスチャー、ベンダー固有のインターフェースなど)およびコマンド(たとえば、ズーム、パン、または別のタイプのコマンド)に基づいて、入力を分類し、ユーザ入力がどのように情報要素にフォーマットされるべきかを決定し得る。HIDCと汎用ユーザ入力のいずれかとしての分類は一般に、少なくとも1つのアプリケーションフローを使用して転送される以後のメディアデータがシンクデバイスにおいてどのようにユーザに提示されるか(たとえば、ズーム動作およびパン動作)ならびにソースデバイスがシンクデバイスへのメディアデータをどのように処理する(たとえば、符号化および/または送信を行う)かに影響を与える。
【0044】
[0052]IEEE802.11 202は、ワイヤレス通信モデル200を実行するコンピューティングデバイスに関するWi−Fi省電力を実行するためのWi−Fi省電力モジュール240を含む。Wi−Fi省電力モジュール240は、様々なインスタンスにおいて、IEEE802.11仕様に記載された様々なタイプのWi−Fi(またはIEEE802.11)省電力機構を実行してもよい。たとえば、Wi−Fi省電力モジュール240は、省電力機構(PSM)、分散コーディネーション機能(DCF:Distributed Coordination Function)、Wi−Fiマルチメディア(WMM)、省電力、自動省電力配信(APSD:Automatic Power Save Delivery)、別の省電力機構、またはそのような機構の組合せを実行してもよい。
【0045】
[0053]本明細書に記載された技法によれば、Wi−Fiダイレクト204はフローモニタ236と省電力モジュール238とを含む。フローモニタ236は、ワイヤレス通信モデル200を実行するコンピューティングデバイスによって発信されならびに/あるいはシンクされるアプリケーションフローを監視する。フローモニタ236は、各々がアプリケーションフローを一意に識別する1つまたは複数のエントリを含むフローテーブルを維持してもよい。各フローテーブルエントリは、対応するアプリケーションフローに関するソースデバイスの識別子と対応するアプリケーションフローに関するシンクデバイスの識別子とを含んでもよい。各フローテーブルエントリは、フローモニタ236によってコンパイルされフローのサイズを表す統計をさらに含んでもよい。フローモニタ236は、ワイヤレス通信モデル200に従って動作するコンピューティングデバイスによってシンクまたは発信されるアプリケーションフローの数を決定してもよく、アプリケーションフローのそれぞれのサイズ(たとえば、消費される帯域幅)をさらに決定してもよい。
【0046】
[0054]省電力モジュール238は、ワイヤレス通信モデル200を実行するコンピューティングデバイスに関するWi−Fiダイレクト省電力モードを実行する。場合によっては、コンピューティングデバイスは、
図1のP2Pグループ105などのP2PグループのGOであってもよい。フローモニタ236が、コンピューティングデバイスがP2Pグループのクライアントメンバーに送信される1つまたは複数のアプリケーションフローを発信していると決定すると、Wi−Fiダイレクト202は、P2PグループのクライアントメンバーにP2Pグループのグループ所有者の役割を担わせるために本明細書に記載されたGO再交渉技法を実行する。このようにして、P2PグループのGOは、1つまたは複数のアプリケーションフローをシンクし、コンピューティングデバイスは、アプリケーションフローに関するスループットとレイテンシの少なくとも一方を場合によっては向上させるためにP2Pグループのクライアントメンバーとしてアプリケーションフローを発信してもよい。場合によっては、コンピューティングデバイスは、
図1のP2Pグループ105などのP2Pグループのクライアントであってもよい。フローモニタ236が、P2Pグループクライアントを動作させるコンピューティングデバイスがP2PグループのGOから1つまたは複数のアプリケーションフローをシンクしていると決定すると、Wi−Fiダイレクト202は、アプリケーションフローに関するスループットとレイテンシの少なくとも一方を場合によっては向上させるようにコンピューティングデバイスにP2PグループのGOとしてアプリケーションフローをシンクさせるために本明細書に記載されたGO再交渉技法を実行する。言い換えれば、ワイヤレス通信モデル200を実行するシンクコンピューティングデバイスまたはソースコンピューティングデバイスのいずれかは、P2Pグループのクライアントメンバーが1つまたは複数のアプリケーションフローをシンクしているか、またはP2Pグループメンバーの間で交換されるアプリケーションフローの大部分をシンクしているか、またはP2Pグループが3つ以上のメンバーを有する場合にP2Pグループメンバーの間で交換される複数のアプリケーションフロー(すなわち、「複数」は、このコンテキストでは、他のどのコンピューティングデバイスよりも多くのアプリケーションフローとして定義される)をシンクしていると決定してもよく、これに応答して、シンクコンピューティングデバイスにP2PグループのGOとして動作させるために本明細書に記載されたGO再交渉技法を決定し実行してもよい。
【0047】
[0055]
図4は、本明細書に記載された技法に従ってワイヤレスドッキーが1つまたは複数の周辺デバイスと直接通信し、ピアツーピアグループのグループ所有者について再交渉する場合があるワイヤレスドッキングサービスを含む例示的なワイヤレスドッキング通信スタックを示す概念図である。図示の例では、コンピューティングデバイス300は、ワイヤレスドッキング通信スタック301上で実行されるアプリケーション316(「app316」として示されている)を含む。コンピューティングデバイス300は、
図1〜
図2のコンピューティングデバイス104のうちのいずれかを表し得る。ワイヤレスドッキング通信スタック301は、アプリケーション316にアプリケーションプログラミングインターフェース(API)326を提供するワイヤレスドッキングサービス314を含む。アプリケーション316は、
図1のアプリケーション106の態様のいずれかを表し得る。API326は、ユーザアプリケーション316がコンピューティングデバイス300によって使用される周辺装置を発見し、構成し、選択するのに使用し得る方法、データフィールド、および/またはイベントを含む。いくつかの例では、API326は、アプリケーション316がコンピューティングデバイス300によって選択され使用される周辺装置を含むWDNを作成しならびに/あるいは発見するのに使用し得るインターフェースを含む。たとえば、通信スタックの様々なレイヤ間の通信に関する本明細書における「方法」、「メッセージ」、および「信号」の参照は、これらの様々な構成の各々が、データの提供/受信、アクションもしくはデータの要求またはそれに応じた応答、あるいはコマンドの送信/受信を行うために通信スタックのレイヤによって使用され得るという点で交換可能であると見なされるべきである。上述の方法、メッセージ、および信号は、メッセージングサービス、共有メモリ、パイプ、ネットワーク通信などを含むいくつかの異なる通信形態のうちのいずれかを表し得る。
【0048】
[0056]この図示の例におけるワイヤレスドッキングは、この例ではWi−Fiダイレクトワイヤレス通信レイヤ302(「Wi−Fiダイレクト302」)上で動作するワイヤレスアプリケーションサービスプラットフォームレイヤ304(「ASP304」)上で動作するワイヤレスドッキングサービス(WDS)314として実施される。Wi−Fiダイレクト通信レイヤ302は、ASP304が動作することができるワイヤレス通信の例示的な実装形態である。Wi−Fiダイレクトワイヤレス通信レイヤ302は、
図1のP2Pプロトコルモジュール108のいずれかの例示的なインスタンスを表し得る。
【0049】
[0057]プリントサービス306、ディスプレイサービス308、およびいくつかの例におけるその他のサービスを含む様々なワイヤレスサービスが、ASP304上のインターフェースレイヤとして有効化されてもよい。ワイヤレスドッキングサービス314は、アプリケーション316とのインターフェースに構成するようにプリントサービス306およびディスプレイサービス308の各サービス上で動作する。プリントサービス306およびディスプレイサービス308は、コンピューティングデバイス300が直接アクセス可能であり、いくつかの例ではASP通信レイヤ304を介して管理される1つまたは複数の周辺デバイスによって提供されてもよい。
【0050】
[0058]WDS314は、Wi−Fiダイレクトサービスとして提供される場合があり、Wi−Fiダイレクトドッキングサービスと呼ばれる場合もある。Wi−Fiダイレクトドッキングサービスは、Wi−Fiダイレクト実装形態の例では、Wi−Fiドッキングのサブセット、特に、P2P Wi−Fiダイレクトトポロジ上で動作するWi−Fiドッキングのサブセットとすることができる。WDS314は、たとえば、ワイヤレスドッキー110のようなデバイスにロードされるかまたは記憶され得るソフトウェアモジュールとして実現されてもよい。また、WDS314の態様は、いくつかの例では、ハードウェアと統合されるか、ハードウェアとあらかじめパッケージングされるか、またはハードウェアに実装され得る。たとえば、WDS314は、1つまたは複数の集積回路および1つまたは複数のメモリ構成要素を含む集積回路またはチップセット上に記憶されるか、そのような集積回路またはチップセットと統合されるか、あるいはそのような集積回路またはチップセットによって実現され得る。
【0051】
[0059]パケットベースのトランスポートレイヤプロトコルスタック(
図4には示されていない)が、ASP304、ミラキャスト310、および/またはWi−Fiシリアルバス(WSB)312上で動作してもよい。パケットベースのトランスポートレイヤは、インターネットプロトコル(IP)通信レイヤと様々なトランスポートレイヤ通信レイヤのうちの1つまたは複数とを含んでもよい。IP通信レイヤは、ASP304上で動作してもよく、あるいはWi−Fiダイレクト302上で直接動作してもよい。トランスポートレイヤ通信レイヤは、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ストリーム制御伝送プロトコル(SCTP)、または他のトランスポート層通信プロトコルのうちの1つまたは複数を含んでもよい。
【0052】
[0060]ワイヤレスドッキング通信スタック301は、ワイヤレスドッキング通信スタック301の様々な構成要素間のいくつかの追加の通信インターフェースを含む。ASP304とWDS314との間のWDSインターフェース324は、ASP方法およびイベントのためのワイヤレスドッキングインターフェースとしての役割を果たす。WDSインターフェース324は、1つまたは複数の周辺装置との直接的なワイヤレスドッキング通信を管理するためにASP304上で直接動作するWDS314を実現することができる。
【0053】
[0061]ワイヤレスドッキング通信スタック301には、種々の他の通信インターフェースも含まれる。ミラキャスト310とWDS314との間の通信インターフェース330は、ミラキャスト動作を制御し使用するためのインターフェースとしての役割を果たす。ミラキャストは、Wi−Fiダイレクト接続を介したオーディオおよびビデオのワイヤレス配信を可能にするワイヤレスディスプレイ技法の一例である。WiFi(登録商標)シリアルバス(WSB)312とWDS314との間の通信インターフェース322は、WiFiシリアルバス動作を制御し使用するためのインターフェースとしての役割を果たす。プリントサービス306とWDS314との間の通信インターフェース317は、プリントサービス306動作を制御し使用するためのインターフェースとしての役割を果たす。ディスプレイサービス308とドッキングWDS314との間の通信インターフェース318は、ディスプレイサービス308動作を制御し使用するためのインターフェースとしての役割を果たす。
【0054】
[0062]本明細書に記載された技法によれば、Wi−Fiダイレクトワイヤレス通信レイヤ302はフローモニタ336と省電力モジュール338とを含む。フローモニタ336は、アプリケーション316によって発信されならびに/あるいはシンクされるアプリケーションフローを監視し、
図3のフローモニタ236の例示的なインスタンスを表し得る。省電力モジュール338は、コンピューティングデバイス300に関するWi−Fiダイレクト省電力モードを実現し、
図3の省電力モジュール238の例示的なインスタンスを表し得る。場合によっては、コンピューティングデバイス300はP2PグループのGOであってもよい。フローモニタ336が、アプリケーション316がP2Pグループのクライアントメンバーに送信される1つまたは複数のアプリケーションフローを発信していると決定すると、Wi−Fiダイレクトワイヤレス通信レイヤ302は、P2PグループのクライアントメンバーにP2Pグループのグループ所有者の役割を担わせるために本明細書に記載されたGO再交渉技法を実行する。このようにして、P2PグループのGOは、1つまたは複数のアプリケーションフローをシンクし、コンピューティングデバイス300は、アプリケーションフローに関するスループットとレイテンシの少なくとも一方を場合によっては向上させるためにP2Pグループのクライアントメンバーとしてアプリケーションフローを発信してもよい。ワイヤレスドッキングに関するさらなる詳細は、参照により本明細書に全体が組み込まれている、「WIRELESS DOCKING SERVICE WITH DIRECT CONNECTION TO PERIPHERALS」という名称の米国出願第14/020316号に見出され得る。
【0055】
[0063]
図5は、本開示に記載された技法に従って動作するコンピューティングデバイス400の例示的なインスタンスを示すブロック図である。
図5は、コンピューティングデバイス400の特定の一例のみを示し、コンピューティングデバイス400の他の例は他のインスタンスにおいて使用されてもよい。コンピューティングデバイスは、
図5では一例としてスタンドアロンコンピューティングデバイス400として示されているが、1つまたは複数のプロセッサあるいはソフトウェア命令を実行するための他の適切なコンピューティング環境を含み、たとえば、
図5に示されている1つまたは複数の要素(たとえば、入力デバイス404、ユーザインターフェースデバイス410、出力デバイス412)を必ずしも含まなくてもよい任意の構成要素またはシステムであってもよい。
【0056】
[0064]
図5の特定の例に示されているように、コンピューティングデバイス400は、1つまたは複数のプロセッサ402と、1つまたは複数の入力デバイス404と、1つまたは複数の通信ユニット406と、1つまたは複数の出力デバイス412と、1つまたは複数の記憶デバイス408と、ユーザインターフェース(UI)デバイス410と、ワイヤレス通信モジュール426とを含む。コンピューティングデバイス400は、一例では、コンピューティングデバイス400によって実行可能であるワイヤレス通信スタック418と、1つまたは複数のアプリケーション422と、オペレーティングシステム416とをさらに含む。構成要素402、404、406、408、410、412、および426の各々は、構成要素間通信が可能になるように(物理的に、通信可能に、ならびに/あるいは動作可能に)結合される。いくつかの例では、通信チャネル414は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。
図6の一例として、構成要素402、404、406、408、410、412、および426は1つまたは複数の通信チャネル414によって結合されてもよい。ワイヤレスドッキング通信スタック418および1つまたは複数のアプリケーション422は、情報を互いに伝達し合うとともに、コンピューティングデバイス400内の他の構成要素と伝達し合ってもよい。ワイヤレス通信スタック418は、別個のモジュールとして示されているが、アプリケーション422のうちのいずれかの一部として実装されてもよい。
【0057】
[0065]プロセッサ402は、一例では、機能を実装し、ならびに/あるいはコンピューティングデバイス400内で実行される命令を処理するように構成される。たとえば、プロセッサ402は、記憶デバイス408に記憶された命令を処理することが可能であり得る。プロセッサ402の例には、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または同等の個別または統合論理回路のうちの任意の1つまたは複数を含んでもよい。
【0058】
[0066]1つまたは複数の記憶デバイス408は、動作の間にコンピューティングデバイス400内に情報を記憶するように構成され得る。記憶デバイス408は、いくつかの例では、コンピュータ可読記憶媒体として記載される。いくつかの例では、記憶デバイス408は一時メモリを備えてよく、このことは、記憶デバイス408の主目的が長期記憶ではないことを意味する。記憶デバイス408は、いくつかの例では揮発性メモリを備えてよく、このことは、コンピュータがオフにされるときに記憶デバイス408が記憶されているコンテンツを維持しないことを意味する。揮発性メモリの例としては、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で知られている他の形態の揮発性メモリがある。いくつかの例では、記憶デバイス408は、プロセッサ402によって実行されるプログラム命令を記憶するために使用される。記憶デバイス408は、一例では、プログラム実行の間情報を一時的に記憶するためにコンピューティングデバイス400上で動作するソフトウェアまたはアプリケーションによって使用される。
【0059】
[0067]記憶デバイス408は、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体を含む。記憶デバイス408は、揮発性メモリよりも多くの情報を記憶するように構成されてもよい。記憶デバイス408はさらに、情報を長期的に記憶することができるように構成され得る。いくつかの例では、記憶デバイス408は非揮発性記憶素子を含む。そのような非揮発性記憶素子の例には、磁気ハードディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュメモリ、または電気的プログラマブルメモリ(EPROM)もしくは電気消去可能プログラマブル(EEPROM(登録商標))メモリの形態がある。
【0060】
[0068]コンピューティングデバイス400は、いくつかの例では、1つまたは複数の通信ユニット406も含む。コンピューティングデバイス400は、一例では、1つまたは複数のワイヤレスネットワークのような1つまたは複数のネットワークを介して外部デバイスと通信するために、通信ユニット406を利用する。通信ユニット406は、イーサネット(登録商標)カード、光学送受信機、高周波送受信機、または情報を送受信することができる任意の他のタイプのデバイスのような、ネットワークインターフェースカードであり得る。そのようなネットワークインターフェースの他の例には、Bluetooth(登録商標)、7G、およびWi−Fi無線コンピューティングデバイスならびにユニバーサルシリアルバス(USB)を含めてもよい。いくつかの例では、コンピューティングデバイス400は、サーバなどの外部デバイスとワイヤレスに通信するために通信ユニット406を利用する。
【0061】
[0069]さらに、コンピューティングデバイス400はワイヤレス通信モジュール426を含み得る。本明細書に記載されたように、ワイヤレス通信モジュール426は、他のワイヤレス通信デバイスと通信するように構成されたアクティブハードウェアを備えてもよい。これらのワイヤレス通信デバイスは、Bluetooth、超広帯域無線、Wi−Fi、または他の同様のプロトコルに従って動作してもよい。いくつかの例では、ワイヤレス通信モジュール426は、バスを介して(ユニバーサルシリアルバス(USB)ポートなどを介して)コンピューティングデバイス400に結合された外部ハードウェアモジュールであってもよい。ワイヤレス通信モジュール426は、場合によっては、いくつかの例ではオペレーティングシステム416から独立していてもよく、いくつかの他の例では、オペレーティングシステム416のサブルーチンであってもよいソフトウェアを含んでもよい。
【0062】
[0070]コンピューティングデバイス400は、一例では、1つまたは複数の入力デバイス404も含む。入力デバイス404は、触覚フィードバック、オーディオフィードバック、またはビデオフィードバックを通してユーザから入力を受信するように構成される。入力デバイス404の例には、存在感知ディスプレイ、マウス、キーボード、音声応答システム、ビデオカメラ、マイクロフォン、またはユーザからのコマンドを検出するための任意の他のタイプのデバイスがある。
【0063】
[0071]1つまたは複数の出力デバイス412がコンピューティングデバイス400に含められてもよい。出力デバイス412は、触覚刺激、聴覚刺激、または視覚刺激を使用してユーザに出力を供給するように構成される。出力デバイス412の例には、存在感知ディスプレイ、サウンドカード、ビデオグラフィックスアダプターカード、または人間もしくは機械が理解できる適切な形式に信号を変換するための任意の他のタイプのデバイスがある。出力デバイス412のさらなる例には、スピーカー、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、またはユーザへの理解可能な出力を生成することができる任意の他のタイプのデバイスがある。いくつかの例では、ユーザインターフェース(UI)デバイス410は入力デバイス404および/または出力デバイス412の機能を含んでもよい。
【0064】
[0072]通信デバイス400はオペレーティングシステム416を含み得る。オペレーティングシステム416は、いくつかの例では、コンピューティングデバイス400の構成要素の動作を制御する。たとえば、オペレーティングシステム416は、一例では、ワイヤレス通信スタック418およびアプリケーション422と、プロセッサ402、通信ユニット406、記憶デバイス408、入力デバイス404、ユーザインターフェースデバイス410、ワイヤレス通信モジュール426、および出力デバイス412との通信を容易にする。ワイヤレス通信スタック418およびアプリケーション422は、コンピューティングデバイス400によって実行可能なプログラム命令および/またはデータを含んでもよい。一例として、モジュール418および422は、コンピューティングデバイス400に本開示に記載された動作およびアクションのうちの1つまたは複数を実行させる命令を含んでもよい。ワイヤレス通信スタック418は、
図3のワイヤレス通信モデル200の例または
図4のワイヤレスドッキング通信スタック301の例を表し得る。1つまたは複数のアプリケーション422は、たとえば、
図1のアプリケーション106または
図4のアプリケーション316のいずれかの例を表し得る。
【0065】
[0073]ワイヤレス通信スタック418モニタ230のフローモニタ420は、ワイヤレス通信スタック418を実行するコンピューティングデバイスによって発信されならびに/あるいはシンクされるアプリケーションフローを監視する。フローモニタ420は、
図3のフローモニタ236または
図4のフローモニタ336の例示的なインスタンスを表し得る。省電力モジュール421は、コンピューティングデバイス400に関するIEEE802.11省電力機構を実施してもよく、
図3の省電力モジュール238または
図4の省電力モジュール338の例示的なインスタンスを表し得る。本開示に記載された技法によれば、フローモニタ420は、P2Pグループのクライアントメンバーであるコンピューティングデバイスがアプリケーション422のアプリケーションフローをシンクしていると決定してもよい。それに応答して、省電力モジュール421は、アプリケーションフローをシンクしているコンピューティングデバイス(たとえば、コンピューティングデバイス400)をP2Pグループの新しいグループ所有者として選択するためにグループ所有者再交渉を実行してもよい。
【0066】
[0074]
図6〜
図10は、本開示の技法に関する追加の情報を提供する表、図、および説明図である。
図6Aは、アプリケーションフロー510についてのバルクおよびアイソクロナスデータタイプに関するP2Pグループのコンピューティングデバイスのクライアント/GO役割の様々な組合せを示す表500である。2つの典型的なアプリケーションデータタイプには、データがWi−Fiがサポートできる最高速度(R
max)で連続的に流れるバルクデータ、およびデータがセッション間隔(SI)で周期的に到着するアイソクロナスがある。データスループットを最大にすることがタイプバルクデータのアプリケーションフローの目標である。時間レイテンシを最小限に抑えるのがタイプアイソクロナスのアプリケーションフローの目標である。
【0067】
[0075]Wi−FiダイレクトP2P接続の場合、アプリケーションフロー510はGO→クライアントまたはクライアント→GOのいずれかの方向に進み得る。コンピューティングデバイス1およびコンピューティングデバイス2は、たとえば
図1〜
図2のコンピューティングデバイス104を表し得る。表500のエントリ508A〜508D(集合的に、「エントリ508」)の各々は、アプリケーションフロー510のアプリケーションフロータイプとP2PグループのメンバーデバイスのP2Pグループ役割との1つの考えられる組合せを表す。たとえば、エントリ508Bは、アプリケーションフロー510がタイプバルクデータ(「バルク2」)であり(列502)、P2PグループのGOとして動作するコンピューティングデバイス1(列504)によって発信され、P2Pグループのクライアントとして動作するコンピューティングデバイス2(列506)によってシンクされることを示す。別の例として、エントリ508Cは、アプリケーションフロー510がタイプアイソクロナス(「アイソクロナス1」)であり、P2Pグループのクライアントとして動作するコンピューティングデバイス1によって発信され、P2PグループのGOとして動作するコンピューティングデバイス2によってシンクされることを示す。
【0068】
[0076]
図6Bは、
図6Aの表500に対応するエントリ508A〜508Dを有するエントリ522A〜522D(集合的に「エントリ522」)を有する表520である。たとえば、エントリ522Cはエントリ508Cに対応付けられている。エントリ522の各々は、アプリケーションフロータイプとP2Pグループのメンバーコンピューティングデバイスの役割との組合せに関する性能特性を表す。表520は、バルクデータアプリケーションフロータイプに関するP2Pグループ役割とアイソクロナスアプリケーションフロータイプに関するP2Pグループ役割との間のアプリケーションフロー方向の結果を示す。具体的には、表520は以下のことを示す。
【0069】
(1)バルク2(GOからクライアントへのデータ)では、Wi−Fi GOがNoA PSでありクライアントがPSであるときにスループットが低くなる。
【0070】
(2)アイソクロナス2(GOからクライアントへのデータ)では、Wi−FiクライアントがPSであるときにレイテンシが長くなる。
【0071】
(3)バルク1およびアイソクロナス1はそれぞれバルク2およびアイソクロナス2よりも性能が優れている。
【0072】
[0077]列532は、非省電力(PS)の場合のそれぞれに異なるエントリ522の結果を示す。列534は、クライアントのみがPSである場合のそれぞれに異なるエントリ522の結果を示す。列536は、GOのみがPSである場合のそれぞれに異なるエントリ522の結果を示し、さらにOpp PSの場合の結果を示す列540およびNoA PSの場合の結果を示す列542に分類される。列538は、両方のコンピューティングデバイスがPSである場合のそれぞれに異なるエントリ522の結果を示す。これらの結果は、本明細書に記載されたフロー監視およびGO再交渉技法が、Wi−FiダイレクトP2PグループなどのP2Pグループのメンバーコンピューティングデバイス間で交換されるアプリケーションフローに関するスループットおよびレイテンシを向上させる場合があることを示す。
【0073】
[0078]
図7〜
図10は、各方向において(GOからクライアントへおよびクライアントからGOへ)、P2PグループのクライアントまたはGO役割を請け負うコンピューティングデバイスの省電力モードの様々な組合せについて、2つの典型的なアプリケーションデータタイプ、バルクおよびアイソクロナスを試験したときの詳細な結果を示すグラフである。それぞれのグラフのタイトルは
図6Aのエントリ508に対応している。したがって、
図7の「バルク1の例」は、スループット(チャート700)およびレイテンシ(チャート710)に関するエントリ508AについてのクライアントからGOへのバルクデータアプリケーションタイプに関する結果を示す。
図8の「バルク2の例」は、スループット(チャート720)およびレイテンシ(チャート730)に関するエントリ508BについてのGOからクライアントへのバルクデータアプリケーションタイプに関する結果を示す。
図9の「アイソクロナス1の例」は、レイテンシ(チャート740)に関するエントリ508CについてのクライアントからGOへのアイソクロナスデータアプリケーションタイプに関する結果を示す。
図10の「アイソクロナス2の例」は、レイテンシ(チャート750)に関するエントリ508DについてのGOからクライアントへのアイソクロナスデータアプリケーションタイプに関する結果を示す。
【0074】
[0079]「非PS」は、P2PグループのクライアントコンピューティングデバイスとGOコンピューティングデバイスのどちらも省電力モードではないことを示す。「クライアントのみがPS」は、P2Pグループのクライアントコンピューティングデバイスのみが省電力モードであることを示す。「GOのみがOpp PS」は、P2PグループのGOがオポチュニスティック省電力モードであり、P2Pグループのクライアントが省電力モードではないことを示す。「GOのみがNoA PS」は、P2PグループのGOが休止通知省電力モードであり、P2Pグループのクライアントが省電力モードではないことを示す。「どちらもPS:GOがOpp」は、P2PグループのGOとクライアントがどちらも省電力モードであり、GOがオポチュニスティック省電力モードであることを示す。「どちらもPS:GOがNoA」は、P2PグループのGOとクライアントがどちらも省電力モードであり、GOが休止通知省電力モードであることを示す。
【0075】
[0080]
図7〜
図10に示されたこれらの結果は、本明細書に記載されたフロー監視およびGO再交渉技法が、Wi−FiダイレクトP2PグループなどのP2Pグループのメンバーコンピューティングデバイス間で交換されるアプリケーションフローに関するスループットおよびレイテンシを向上させる場合があることを示す。
【0076】
[0081]
図11は、本明細書に記載された技法によるコンピューティングデバイスの例示的な動作モードを示すフローチャートである。例示的な動作モードについて、
図5のコンピューティングデバイス400に関して説明する。コンピューティングデバイス400は、Wi−Fiダイレクトなどのワイヤレス通信プロトコルに従って、複数のコンピューティングデバイスを含むワイヤレスピアツーピアグループ(P2P)に参加する(804)。コンピューティングデバイス400は、少なくとも1つのアプリケーションフローをP2Pグループのクライアントコンピューティングデバイスから新しいグループ所有者コンピューティングデバイスに流すためにP2Pグループの新しいグループ所有者コンピューティングデバイスを選択する(804)。コンピューティングデバイス400は、クライアントコンピューティングデバイスまたは新しいグループ所有者コンピューティングデバイスのいずれであってもよい。
【0077】
[0082]
図12は、本明細書に記載された技法によるコンピューティングデバイスの例示的な動作モードを示すフローチャートである。例示的な動作モードについて、
図5のコンピューティングデバイス400に関して説明する。コンピューティングデバイス400は、アプリケーションフローがワイヤレスピアツーピアグループ(P2P)グループの初期グループ所有者からP2Pグループのクライアントに流れていると決定する(902)。コンピューティングデバイス400は、アプリケーションフローが初期グループ所有者からクライアントに流れていると決定したことに応答して、P2Pグループの新しいグループ所有者を選択する(904)。さらに、コンピューティングデバイス400は、P2Pグループの選択された新しいグループ所有者にP2Pグループのグループ所有者の役割を担わせるためにP2Pグループの他のコンピューティングデバイスと再交渉する(906)。
【0078】
[0083]1つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶され、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくはキャリア波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/あるいはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0079】
[0084]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、キャリア波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu−ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【0080】
[0085]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の同等の集積回路またはディスクリート論理回路などの1つもしくは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用されるときに、前述の構造のいずれかまたは本明細書で説明した技法の実装に適切な任意の他の構造を指すことができる。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理素子で十分に実装され得る。
【0081】
[0086]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つもしくは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
【0082】
[0087]様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
複数のコンピューティングデバイスのうちのコンピューティングデバイスによって、ワイヤレス通信プロトコルに従って、前記複数のコンピューティングデバイスを含むピアツーピアグループに参加することと、
前記コンピューティングデバイスによって、少なくとも1つのアプリケーションフローを前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスに流すために前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することとを備える方法。
[C2]
前記コンピューティングデバイスによって、前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記ピアツーピアグループによって、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定することをさらに備え、
前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択することは、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択することを備える、C1に記載の方法。
[C3]
前記初期グループ所有者コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C2に記載の方法。
[C4]
前記コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C2に記載の方法。
[C5]
前記コンピューティングデバイスは前記初期グループ所有者コンピューティングデバイスを備える、C2に記載の方法。
[C6]
前記ワイヤレス通信プロトコルはWi−Fiダイレクトを備える、C1に記載の方法。
[C7]
前記コンピューティングデバイスによって、前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記ピアツーピアグループによって、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定することと、
前記コンピューティングデバイスによって、前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定することとをさらに備え、
前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択することは、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れており、前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択することを備える、C1に記載の方法。
[C8]
前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することは、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流れるアプリケーションフローの数が前記新しいグループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションフローの数よりも大きい場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択することを備える、C1に記載の方法。
[C9]
前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することは、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流れるアプリケーションデータの量が前記新しいグループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションデータの量よりも少ない場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択することを備える、C1に記載の方法。
[C10]
少なくとも部分的に前記コンピューティングデバイスによって、前記新しいグループ所有者コンピューティングデバイスに前記ピアツーピアグループのグループ所有権を付与するために前記ピアツーピアグループのグループ所有者について再交渉することをさらに備える、C1に記載の方法。
[C11]
前記ピアツーピアグループの前記グループ所有者について再交渉することは、前記コンピューティングデバイスによってグループ所有者再交渉要求を前記ピアツーピアグループの別のコンピューティングデバイスに送信することを備える、C10に記載の方法。
[C12]
ワイヤレス通信プロトコルに従って複数のコンピューティングデバイスを備えるピアツーピアグループに参加するための手段と、
少なくとも1つのアプリケーションフローを前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスに流すために前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択するための手段とを備えるコンピューティングデバイス。
[C13]
前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定するための手段をさらに備え、
前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択するための手段は、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択するための手段を備える、C12に記載のコンピューティングデバイス。
[C14]
前記初期グループ所有者コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C13に記載コンピューティングデバイス。
[C15]
前記コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C13に記載のコンピューティングデバイス。
[C16]
前記コンピューティングデバイスは前記初期グループ所有者コンピューティングデバイスを備える、C13に記載のコンピューティングデバイス。
[C17]
前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定するための手段と、
前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定するための手段とをさらに備え、
前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択するための前記手段は、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れており、前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択するための手段を備える、C12に記載のコンピューティングデバイス。
[C18]
前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択するための前記手段は、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記初期グループ所有者コンピューティングデバイスに流れるアプリケーションフローの数が前記初期グループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションフローの数よりも大きい場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択することを備える、C12に記載のコンピューティングデバイス。
[C19]
前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択するための前記手段は、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記初期グループ所有者コンピューティングデバイスに流れるアプリケーションデータの量が前記初期グループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションデータの量よりも多い場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択することを備える、C12に記載のコンピューティングデバイス。
[C20]
少なくとも部分的に、前記新しいグループ所有者コンピューティングデバイスに前記ピアツーピアグループのグループ所有権を付与するために前記ピアツーピアグループのグループ所有者について再交渉するための手段をさらに備える、C12に記載のコンピューティングデバイス。
[C21]
1つまたは複数のプロセッサを備えるコンピューティングデバイスであって、前記1つまたは複数のプロセッサは、
ワイヤレス通信プロトコルに従って複数のコンピューティングデバイスを備えるピアツーピアグループに参加することと、
少なくとも1つのアプリケーションフローを前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスに流すために前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することとを行うように構成されるコンピューティングデバイス。
[C22]
前記1つまたは複数のプロセッサは、前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定するようにさらに構成され、
前記1つまたは複数のプロセッサは、前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択するために、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択するようにさらに構成される、C21に記載のコンピューティングデバイス。
[C23]
前記初期グループ所有者コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C22に記載のコンピューティングデバイス。
[C24]
前記コンピューティングデバイスは前記クライアントコンピューティングデバイスを備える、C22に記載のコンピューティングデバイス。
[C25]
前記コンピューティングデバイスは前記初期グループ所有者コンピューティングデバイスを備える、C22に記載のコンピューティングデバイス。
[C26]
前記1つまたは複数のプロセッサは、
前記新しいグループ所有者コンピューティングデバイスを選択する前に、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れていると決定することと、
前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定することとを行うようにさらに構成され、
前記1つまたは複数のプロセッサは、前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスを選択するために、前記少なくとも1つのアプリケーションフローが前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスから前記ピアツーピアグループの前記クライアントコンピューティングデバイスに流れており、前記ピアツーピアグループの前記初期グループ所有者コンピューティングデバイスが省電力モードであると決定したことに応答して、前記ピアツーピアグループの前記クライアントコンピューティングデバイスを前記新しいグループ所有者コンピューティングデバイスとして選択するようにさらに構成される、C21に記載のコンピューティングデバイス。
[C27]
前記1つまたは複数のプロセッサは、前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択するために、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記初期グループ所有者コンピューティングデバイスに流れるアプリケーションフローの数が前記初期グループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションフローの数よりも大きい場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択するようにさらに構成される、C21に記載のコンピューティングデバイス。
[C28]
前記1つまたは複数のプロセッサは、前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択するために、前記ピアツーピアグループのクライアントコンピューティングデバイスから前記初期グループ所有者コンピューティングデバイスに流れるアプリケーションデータの量が前記初期グループ所有者コンピューティングデバイスから前記クライアントコンピューティングデバイスに流れるアプリケーションデータの量よりも多い場合にのみ前記少なくとも1つのアプリケーションフローを前記クライアントコンピューティングデバイスから前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスに流すために前記新しいグループ所有者コンピューティングデバイスを選択するようにさらに構成される、C21に記載のコンピューティングデバイス。
[C29]
前記1つまたは複数のプロセッサは、少なくとも部分的に、前記新しいグループ所有者コンピューティングデバイスに前記ピアツーピアグループのグループ所有権を付与するために前記ピアツーピアグループのグループ所有者について再交渉するようにさらに構成される、C21に記載のコンピューティングデバイス。
[C30]
命令が記憶されたコンピュータ可読記憶媒体であって、前記命令は、実行されたときに、1つまたは複数のプロセッサに、
コンピューティングデバイスによって、ワイヤレス通信プロトコルに従って複数のコンピューティングデバイスを備えるピアツーピアグループに参加することと、
前記コンピューティングデバイスによって、少なくとも1つのアプリケーションフローを前記ピアツーピアグループのクライアントコンピューティングデバイスから前記ピアツーピアグループの新しいグループ所有者コンピューティングデバイスに流すために前記ピアツーピアグループの前記新しいグループ所有者コンピューティングデバイスを選択することとを行わせるコンピュータ可読記憶媒体。