(57)【要約】  コンピューティング装置は、既存のピアツーピアグループ内の装置の役割を選択的に再交渉する。グループが形成されるとき、該グループを制御する装置を選択するために、装置は他の装置と交渉しても良い。グループの動作中、該グループ内の装置は再交渉を開始しても良い。この再交渉の結果、該グループを制御する別の装置が選択されても良い。再交渉は、再交渉の要求を示す情報要素を含むメッセージによりトリガされても良い。このようなメッセージは、装置又はグループ内の他の装置を制御することにより送信されても良く、装置の状態に基づき送信されても良い。状態は、装置の電源に関連しても良い。したがって、電源に接続されるクライアント又は低バッテリ電力で動作している制御装置は、再交渉を要求しても良い。
2014509156.tif 000002
【特許請求の範囲】
【請求項１】
無線コンピューティング装置の動作方法であって、前記方法は、
第１の時間に、複数の第１のメッセージを少なくとも１つのリモート装置と無線で交換するステップであって、前記第１の複数のメッセージは、ピアツーピアプロトコルに従ってフォーマット化され、前記無線コンピューティング装置を含むピアツーピアグループのグループオーナを選択する第１の交渉を有する、ステップと、
前記第１の時間の後、第２の時間に、
前記ピアツーピアグループの前記グループオーナの再交渉を示すメッセージを送信又は受信するステップと、
第２の複数のメッセージを無線で交換するステップであって、前記第２の複数のメッセージは、前記ピアツーピアプロトコルに従ってフォーマット化され、前記ピアツーピアグループの新しいグループオーナを選択する第２の交渉を有する、ステップと、
を有する方法。
【請求項２】
前記無線コンピューティング装置は、前記第１の交渉の間に前記グループオーナとして選択され、
前記グループオーナの再交渉を示す前記メッセージを送信又は受信するステップは、前記メッセージを送信するステップを有し、前記メッセージは再交渉のコマンドを有する、
請求項１に記載の方法。
【請求項３】
前記無線コンピューティング装置は、バッテリと、外部電源への接続とを有し、
前記メッセージは、前記外部電源への接続が解除されたという決定に応答して送信される、
請求項２に記載の方法。
【請求項４】
前記無線コンピューティング装置は、バッテリを有し、
前記メッセージは、前記バッテリが閾より低い電力を有するという決定に応答して送信される、
請求項２に記載の方法。
【請求項５】
前記メッセージは、前記ピアツーピアグループに参加する更なる装置からの要求に応答して送信される、
請求項２に記載の方法。
【請求項６】
コンピューティング装置であって、
送信機と、
受信機と、
前記送信器及び受信機に結合される制御部と、
を有し、
前記制御部は、前記送信機及び前記受信機を通じて通信して、少なくとも１つのリモート無線装置と第１のメッセージを交換し、ピアツーピアグループを形成し、前記グループ内の第１の装置を、少なくとも１つのグループ機能を制御する制御部として選択し、
前記コンピューティング装置の検出された状態に応答して、前記送信機を通じて要求としてフォーマット化されたメッセージを通信して、前記ピアツーピアグループ内の少なくとも１つのリモート無線装置と第２のメッセージを交換し、前記グループ内の第２の装置を前記制御部として選択する、よう構成される、
コンピューティング装置。
【請求項７】
前記制御部は、
前記受信機を通じて受信したメッセージに応答して、前記送信機及び前記受信機を通じて通信して、前記ピアツーピアグループ内の少なくとも１つのリモート無線装置と第３のメッセージを交換し、前記グループ内の第３の装置を前記制御部として選択する、よう構成される、
請求項６に記載のコンピューティング装置。
【請求項８】
前記状態は、前記コンピューティング装置の電源に関する状態である、
請求項６に記載のコンピューティング装置。
【請求項９】
前記コンピューティング装置は、前記制御部として選択された前記第１の装置であり、
前記状態は、バッテリ電力による動作を有する、
請求項８に記載のコンピューティング装置。
【請求項１０】
前記コンピューティング装置は、前記制御部として選択された前記第１の装置ではなく、
前記状態は、ＡＣ電力による動作を有する、
請求項８に記載のコンピューティング装置。
【発明の詳細な説明】
【背景技術】
【０００１】
今日、多くのコンピュータは、無線通信に対応するために無線通信機を有する。無線通信は、例えばネットワークのアクセスポイントに接続するために用いられる。アクセスポイントに繋がることにより、無線コンピュータは、ネットワークに存在する装置に又は該ネットワークを通じて到達可能なインターネットのような他のネットワークにアクセスできる。その結果、無線コンピュータは、多くの他の装置とデータを交換でき、多くの有用な機能を有効にできる。
【０００２】
コンピュータをアクセスポイントと関連付けるよう構成するために、通常、アクセスポイントは標準規格に従って動作する。アクセスポイントに接続する装置のための一般的な標準規格は、ＷｉＦｉと呼ばれる。この標準規格は、Wi-Fi  Allianceにより発布され、ポータブルコンピュータで広く用いられている。この標準規格には複数のバージョンがあるが、いずれもアクセスポイントを通じた接続に対応するために用いることができる。
【０００３】
無線通信は、アクセスポイントを用いずに、他の装置に直接接続を形成するためにも用いられ得る。これらの接続は、屡々「ピアツーピア」接続と呼ばれ、例えばコンピュータにマウス又はキーボードと無線で接続させるために用いられ得る。これらの直接接続のための無線通信も標準化されている。このような無線通信のための一般的な標準規格は、Bluetooth（登録商標）と呼ばれる。
【０００４】
幾つかの例では、無線コンピュータは、アクセスポイントを通じて及びピアツーピア通信を行っているグループの一部として複数の他の装置に同時に接続できる。このような同時通信に対応するために、幾つかのコンピュータは複数の無線通信機を有する。さらに最近では、ＷｉＦｉ  Directと呼ばれる標準規格が提案されている。これは、単一の無線通信機で処理できる同様の無線通信を有するピアツーピアグループの一部としてインフラストラクチャ接続及び通信の両方を可能にする。この標準規格は、Wi-Fi  Allianceにより公布され、インフラストラクチャに基づく通信のための良く知られているWi-Fi通信を、直接接続に対応するよう拡張する。
【０００５】
このような直接接続は、装置グループ間で形成されても良い。Wi-Fi  Direct標準規格によると、通信を望む装置は、動作フレームとしてフォーマット化されたメッセージを交換してグループを形成しても良い。この動作フレームの交換の一部として、装置は、グループを制御するために、複数の装置のうちの１つを特定する。例えば、グループを制御する装置は、どの装置が該グループに認められているかを決定しても良い。さらに、制御装置は、グループ内の他の各装置と通信でき、任意的にグループ内のある装置からのメッセージを別の装置へ転送しても良い。
【０００６】
Wi-Fi  Direct標準規格によると、制御装置はグループオーナ（Group  Owner）と呼ばれる。グループオーナは、グループが形成されるときに交渉基準に基づき選択される。各装置は、動作フレームの一部として、グループオ―ナになりたいという自身の要望を示す値を送信しても良い。最高値を伝達している装置は、グループ内の全ての装置により、グループオーナとして認識され得る。他の装置は、グループオーナのクライアントの役割に就く。
【発明の概要】
【課題を解決するための手段】
【０００７】
ピアツーピアグループを確立するために無線装置により用いられるピアツーピア通信プロトコルは、既に確立したグループの装置が該グループ内の装置の役割の再交渉を要求するメカニズムを組み込み得る。このような能力は、装置が、グループの形成のときに動的に決定され得る異なる役割を担い得るプロトコルで有用であり得る。グループの動作中、装置が前に割り当てられた自身の役割に対する自身の適合性が低下したことを示す状態を検出すると、装置は、割り当てられた役割を再交渉する要求を送信しても良い。同様に、装置が別の装置に前に割り当てられた役割に対する自身の適合性が増大したことを示す状態を検出すると、装置は、割り当てられた役割を再交渉する要求を送信しても良い。留意すべきことに、本願明細書におけるピアツーピアは、第３の装置又はインフラストラクチャを通らない直接接続を意味する。
【０００８】
このような能力は、装置に割り当てられる異なる役割が異なる電力量を必要とするプロトコルと関連して用いられても良い。このようなシナリオでは、役割を再交渉する要求を送信するよう装置をトリガし得る装置の検出した状態は、装置の電力状態を含んでも良い。Wi-Fi  Directプロトコルに従って動作するシステムでは、装置は、グループオーナ又はクライアントとして役割を割り当てられても良い。グループオーナは、グループオーナがクライアントにより消費されるより多くの電力を消費し得るというようなグループの特徴を制御する動作を実行しても良い。例えば、グループオーナは、グループ内の他の装置の動作を調整するので、より長い時間期間、自身の受信機の電源を入れることができ、又はより多くのメッセージを送信できる。したがって、グループオーナは、自身の電力状態が変化し、少ない電力しか利用可能ではないことを検出すると、再交渉を要求して、より多くの電力を有する装置がグループオーナになるようにしても良い。逆に、クライアントは、自身の電力状態が変化し、より多くの電力が利用可能であることを検出すると、再交渉を要求しても良い。
【０００９】
以上は、本発明の非限定的な要約であり、添付の請求の範囲により定められている。
【図面の簡単な説明】
【００１０】
添付の図面は、縮尺通りであることを目的としていない。図中、種々の図に示される各々の同一又はほぼ同一の構成要素は、同様の参照符号により表現される。明確化のため、全ての構成要素が全ての図中でラベル付けされない。以下の図面がある。
【図１】本発明の実施形態が実施され得る例示的な環境の図である。
【図２】無線通信に適応される例示的なコンピューティング装置の上位ブロック図である。
【図３】無線通信に適応される例示的なコンピューティング装置の更に詳細なブロック図である。
【図４】幾つかの実施形態によるピアツーピアグループを形成する装置の例示的な動作方法のフローチャートである。
【図５】幾つかの実施形態による、グループを形成する装置間で交換され得る例示的なメッセージである。
【図６】幾つかの実施形態による最初にグループオーナとして選択された装置の例示的な動作方法のフローチャートである。
【図７】幾つかの実施形態による最初にクライアントとして選択されたコンピューティング装置の例示的な動作方法のフローチャートである。
【図８】本発明の幾つかの実施形態が実施され得る説明的なコンピューティング装置の図である。
【発明を実施するための形態】
【００１１】
発明者等は、グループを制御する装置の選択が再交渉されるプロトコルにより、無線装置間の通信が該無線装置のユーザとって一層有用になり得ることを認識及び理解している。このような能力は、例えば、バッテリ式装置が通信可能な時間を延長できる。
【００１２】
Wi-Fi  Directのようなプロトコルでは、グループ制御部として動作する装置は、クライアントとしての役割に就く装置よりも多くの電力を消費し得る。グループオーナの交渉は、少なくとも部分的に、グループ内の装置の状態に基づいても良い。これらの状態は、装置の電源に関連し得る。例えば、グループ制御部の交渉は、低い電力能力を有する装置よりも、高い電力能力を有する装置を支持しても良い。装置は、ＡＣ電源から給電されているため、又は自身のバッテリが多くの充電残量を有するために、高い電力能力を有しても良い。
【００１３】
グループ内の装置の状態が変化するとき、該装置は、再交渉をトリガしても良い。再交渉の結果、異なる装置がグループ制御部として選択されても良い。例えば、グループの制御装置が選択されたときにバッテリ電源で動作していたクライアント装置は、ＡＣ電源に接続されると再交渉をトリガしても良い。或いは、バッテリ電源で動作していた制御装置は、バッテリ残量が、該装置のバッテリが枯渇していることを示す閾より下に降下すると、再交渉をトリガしても良い。しかしながら、理解されるべきことに、任意の適切な状態の検出が、再交渉のトリガとして用いられても良い。
【００１４】
幾つかの実施形態によると、再交渉は、任意の適切な方法でトリガされても良い。再交渉をトリガする装置は、任意の適切な方法で伝達される任意の適切なフォーマットのメッセージにより、グループ内の他の装置に再交渉を通知しても良い。例えば、メッセージは、Wi-Fi  Directのような標準プロトコルに従ったフォーマットであり、再交渉のリクエスト又は再交渉のコマンドを表す追加情報要素を有しても良い。特定の例として、Wi-Fi  Directプロトコルに従った動作フレームは、このような情報要素を有しても良い。しかしながら、他の実施形態では、別個のメッセージフォーマットが定められても良い。
【００１５】
再交渉の要求又はコマンドは、再交渉をトリガする装置からグループ内の他の装置へ直接送信されても良い。このような送信は、ビーコンのようなブロードキャストメッセージの一部として生じても良く、再交渉すべきグループ内の全ての装置に対するコマンドを有しても良い。このようなシナリオは、例えば、現在グループを制御している装置からコマンドが送信される場合に生じ得る。
【００１６】
しかしながら、コマンドがグループを制御している装置により送信されることは必要条件ではない。幾つかの実施形態では、このようなメッセージは、グループ内の任意の装置から送信されても良い。例えば、グループ内のクライアントは、グループの制御装置の選択を再交渉するために、グループ内の他の装置に対するコマンドをブロードキャストしても良い。更なる代替として、再交渉は、クライアント装置によりトリガされても良く、再交渉のコマンドは、グループを制御している装置により後に送信されても良い。例えば、幾つかの実施形態では、グループ内のクライアントは、グループを制御している装置へ、再交渉の要求としてフォーマット化されたメッセージを送信しても良い。次に、制御装置は、再交渉のコマンドをグループ内の他の装置へ送信しても良い。この代替では、制御装置は、グループの状態、実行中の動作又は他の情報のような条件に基づき、このようなコマンドを条件付きで送信しても良い。
【００１７】
どのように再交渉がトリガされるかに拘わらず、一旦トリガされれば、再交渉は、制御装置の最初の交渉と同じフォーマットであるメッセージの交換を通じて実行され得る。Wi-Fi  Directプロトコルに従って形成されたピアツーピアグループでは、このようなメッセージは、グループオーナ交渉動作フレームとしてフォーマット化されても良い。このようなメッセージは、例えば、各装置からのグループオーナになりたいという選択（preference、プレファレンス）を示す値を有しても良い。各装置は、自身の値を自身のポリシに基づき選択しても良い。この値は、例えば、装置のユーザ若しくは管理者により、又は装置で実行されているアプリケーション若しくはユーティリティにより設定されても良い。これらのポリシは、装置の電力状態、又は一部若しくは全部が動的に決定され得る他の適切な要因に基づき適用されても良い。最高値を送信している装置は、グループの新しい制御装置として選択されても良い。しかしながら、理解されるべきことに、制御装置は、任意の適切な方法で選択されても良い。
【００１８】
前述の技術は、任意の適切な環境で、単独で又は任意の適切な組合せで一緒に用いられても良い。図１は、幾つかの実施形態によるコンピューティング装置が通信する環境を示す。
【００１９】
図１の例では、コンピューティング装置１１０は、ラップトップコンピュータとして示される。しかしながら、理解されるべきことに、コンピューティング装置１１０の形状因子は、本発明を限定しない。タブレット、スマートフォンとして構成されたコンピューティング装置、又は任意の他の適切な形状因子を有するコンピューティング装置は、本発明の実施形態に従って構成され動作されても良い。さらに、理解されるべきことに、任意の無線装置は、ピアツーピアグループで任意の役割を果たしても良い。したがって、グループ内の装置がコンピューティング装置であることは必要条件ではない。
【００２０】
図１は、コンピューティング装置１１０がユーザ１１２により制御されていることを示す。ユーザ１１２は、従来知られている技術を用いてコンピューティング装置１１０と相互作用し、コンピューティング装置１１０を他の装置に無線接続するよう制御しても良い。本例では、コンピューティング装置１１０は、アクセスポイント１２０を通じてネットワーク１２４に無線接続している。ネットワーク１２４は、ホームネットワーク、企業ネットワーク、インターネット、又は任意の他の適切なネットワークであっても良い。アクセスポイント１２０を通じた無線接続１２２は、インフラストラクチャ型接続の一例である。知られているインフラストラクチャ型プロトコルを用いる技術を含む任意の適切な技術が、無線接続１２２を形成するために用いられても良い。一例として、無線接続１２２は、「Wi-Fi」と呼ばれるプロトコルを用いて形成されても良い。しかしながら、使用される特定のプロトコルは、本発明にとって重要ではない。
【００２１】
図示の例では、コンピューティング装置１１０は、ＡＣ電源１１４への接続により定められる電力状態を有するとして示される。図１に図示しないが、他の装置は同様の電力状態を有しても良い。例えば、プリンタ１３４は、同様にＡＣ電源に接続されても良い。他の装置は、他の電力状態を有しても良い。例えば、カメラ１３２はバッテリ式装置であり、カメラ１３２のバッテリ（図示しない）の残量は該装置の電力状態を定めても良い。しかしながら、理解されるべきことに、一部又は全部の装置は、複数の電源で動作しても良い。例えば、コンピューティング装置１１０は、ＡＣ電源１１４に接続される状態であると示されるが、バッテリを有しても良い。コンピューティング装置１１０がＡＣ電源１１４に接続されないとき、コンピューティング装置１１０は、バッテリから給電されても良く、これがコンピューティング装置１１０の電力状態を定めても良い。したがって、理解されるべきことに、ピアツーピアグループ内の装置の電力状態は時間と共に変化しても良い。
【００２２】
図示の例では、コンピューティング装置１１０は、無線接続１２２において局の役割を有する。コンピューティング装置１１０の役割は、アクセスポイント１２０と情報を交換するためにコンピューティング装置１１０により実行される無線プロトコルの特定のステップを示す。
【００２３】
図１は、他の無線接続も示す。コンピューティング装置１１０は、それぞれカメラ１３０及びプリンタ１３４との接続１３２及び１３６を有すると示される。この場合、カメラ１３２及びプリンタ１３４は、コンピューティング装置１１０がこれらの装置とデータを交換するために接続し得る無線装置の例である。
【００２４】
この例では、カメラ１３２、プリンタ１３４及びコンピューティング装置１１０は、ピアツーピアプロトコルを用いて無線接続１３２及び１３６を介して通信しても良い。この例では、カメラ１３２、プリンタ１３４及びコンピューティング装置１１０は、ピアツーピアプロトコルに従ってグループを形成しても良い。しかしながら、代替の実施形態では、コンピューティング装置１１０は、カメラ１３０を有する第１のグループ及びプリンタ１３４を有する第２のグループを形成しても良い。したがって、理解されるべきことに、グループは、２つの装置のみを含む、任意の適切な数の装置を有しても良い。
【００２５】
無線接続１３２及び１３６は、任意の適切なピアツーピアプロトコルに従って形成されても良い。本例では、接続１３２及び１３６は、Wi-Fi  Directとして参照されるWi-Fiプロトコルの拡張を用いて形成される。
【００２６】
図２は、無線接続１２２（図１）のようなインフラストラクチャモード無線接続並びに接続１３２及び１３６（図１）のようなピアツーピア無線接続を形成するよう動作し得るコンピューティング装置２１０のアーキテクチャを高レベルで示す。図１の例では、コンピューティング装置２１０は、２つの無線通信機、無線通信機２５０及び無線通信機２５４を有する。各無線通信機は、無線通信を送信及び受信するよう適応されても良い。無線通信機２５０は、例えば、無線接続１２２を形成するために用いられても良い。無線通信機２５４は、例えば、ピアツーピア接続１３２を形成するために用いられても良い。
【００２７】
本例では、無線通信機２５０は、メディアアクセス制御（ＭＡＣ）アドレス２５２を有する。ＭＡＣアドレスは、無線通信機２５０に関連するユニークな識別子であっても良い。したがって、ＭＡＣアドレスは、無線通信機２５０を無線通信機２５４と、及びコンピューティング装置２１０が通信し得る任意の他の装置内の無線通信機とも区別するために用いることができる。したがって、ＭＡＣアドレス２５２は、無線通信機２５０により送信されるパケットに含まれて、フレームが無線通信機２５０により送信されたことを示しても良く、又は無線通信機２５０へ向けられるパケットに含まれて、フレームが無線通信機２５０宛てであることを示しても良い。
【００２８】
ＭＡＣアドレス２５２は、任意の適切な方法で無線通信機２５０に割り当てられても良い。例えば、ＭＡＣアドレスは、無線通信機２５０の製造者により割り当てられても良い。しかしながら、幾つかの実施形態では、ＭＡＣアドレス２５２は、オペレーティングシステム２３―又はコンピューティング装置２１０の別のコンポーネントにより、又はコンピューティング装置２１０が動作しているシステム内の特定の他のコンポーネントにより割り当てられても良い。
【００２９】
無線通信機２５０は、図２のドライバ２４０として表されるソフトウェアを通じて制御されても良い。ここで、ドライバ２４０は、オペレーティングシステム２３０がドライバ２４０へコマンドを発行し得る及びドライバ２４０が状態を報告しオペレーティングシステム２３０に受信したデータを通知し得るインタフェース２４２を含む。インタフェース２４２は、知られている標準規格に従うことを含む任意の適切な方法で実装されても良い。このような知られている標準規格の一例は、ＮＤＩＳと呼ばれるが、該標準規格は本発明にとって重要ではない。
【００３０】
インタフェース２４２は、無線通信機２５０の構成に依存しないフォーマットの多数のコマンドをサポートしても良い。むしろ、ドライバ２４０は、インタフェース２４２の標準化フォーマットのコマンドを、無線通信機２５０に適用される特有の制御信号に翻訳しても良い。さらに、ドライバ２４０は、無線接続に関連する特定の低レベル機能を実行するようプログラミングされても良い。例えば、パケットを受信すると、ドライバ２４０は、パケットが適正にフォーマットされているかを調べても良い。パケットが適正にフォーマット化されている場合、ドライバ２４０は、肯定応答を生成するよう無線通信機２５０を制御しても良い。逆に、パケットが適正にフォーマット化されていない場合、ドライバ２４０は、否定応答を送信するよう無線通信機２５０を制御しても良い。
【００３１】
ドライバ２４０、及び幾つかの例では無線通信機２５０は、無線接続の確立及び維持に関連する低レベル機能を自動的に実行しても良い。高レベル機能は、オペレーティングシステム２３０又はアプリケーション２２０の制御下で実行されても良い。幾つかの実施形態では、アプリケーション２２０又はオペレーティングシステム２３０は、ユーザインタフェースを提供しても良い。したがって、無線通信の最終的な制御は、コンピューティング装置２１０のユーザにより提供される。
【００３２】
図２に示した実施形態では、コンピューティング装置２１０は無線通信機２５４も有する。無線通信機２５０が例えばインフラストラクチャネットワークへの接続のために用いられている間、無線通信機２５４は、接続１３２及び１３６のような１又は複数のピアツーピア接続を形成するために用いられても良い。
【００３３】
無線通信機２５４は、無線通信機２５０と概して同じアーキテクチャでコンピューティング装置２１０に組み込まれる。無線通信機２５４は、オペレーティングシステム２３０に無線通信機２５４を制御するメカニズムを提供するドライバ２４４に関連付けられる。ドライバ２４４は、オペレーティングシステム２３０がドライバ２４４へコマンドを送信し及びドライバ２４４がオペレーティングシステム２３０に状態を提供し得るインタフェース２４６を有する。インタフェース２４６は、インタフェース２４２と同様に、標準化インタフェースであっても良い。したがって、オペレーティングシステム２３０は、ドライバ２４０を制御するために用いられるのと同様のコマンドセットを用いてドライバ２４４と通信できる。しかしながら、無線通信機２５４は、ピアツーピア接続を実施するために用いられるので、ドライバ２４４は、インフラストラクチャに基づく通信では存在しないピアツーピア通信と関連する機能を実施するために、ドライバ２４０と異なる又は追加コマンドに応答しても良い。
【００３４】
無線通信機２５０及び２５４の間の更なる相違点として、無線通信機２５４は、複数のＭＡＣアドレスを有するとして示される。対照的に、無線通信機２５０は単一のＭＡＣアドレス２５２を有する。ここで、ＭＡＣアドレス２５６Ａ、２５６Ｂ、２５６Ｃが示される。複数のＭＡＣアドレスは、例えば無線通信機２５４の製造者により割り当てられても良く、又はＭＡＣアドレスは、ＭＡＣアドレス２５２と関連して上述したものを含む任意の適切な方法で割り当てられても良い。
【００３５】
複数のＭＡＣアドレスを有するので、無線通信機２５０は、コンピューティング装置２１０の外部の装置から、それぞれ別個のＭＡＣアドレスを有する複数のエンティティとして見える。一例として、コンピューティング装置２１０が、第１のピアツーピアグループ内でグループオーナとして、及び第２のピアツーピアグループ内でクライアントとして、別個に通信する場合、グループオーナ及びクライアントのために別個のエンティティが確立されても良い。コンピューティング装置２１０の外部の装置は、コンピューティング装置２１０により処理されるパケットのアドレスを、第１のグループ内のグループオーナとして第１のＭＡＣアドレスで指定しても良い。第２のグループ内のクライアントとして処理されるパケットは、第２のＭＡＣアドレスでアドレス指定されても良い。同様に、コンピューティング装置２１０は、グループオーナから来るパケットに第１のＭＡＣアドレスを挿入しても良い。クライアントからのパケットは、第２のＭＡＣアドレスを有しても良い。
【００３６】
オペレーティングシステム２３０に自身のドライバ２４４との相互作用をこれらのエンティティのうちの特定の１つに関連付けさせるために、コンピューティング装置２１０内部で、各エンティティはポートとして表すことができる。したがって、オペレーティングシステム２３０は、このようなエンティティに関連するポートを通じて、該エンティティの各々へコマンドを送信し又はそれらから状態情報を受信しても良い。
【００３７】
各ポートは、ポートが表すエンティティ種類に適切な機能を実行するよう構成されても良い。コンピューティング装置２１０がWi-Fi  Directに従って動作する実施形態は、ここではピアツーピアプロトコルの一例として用いられ、ピアツーピアグループの一部である装置は、グループオーナ又はクライアントの役割を演じても良い。グループオーナは、無線プロトコルに従って、特定の方法で、特定種類の動作フレームを送信し及び他の種類の動作フレームに応答するよう要求されても良い。クライアントとして構成された装置は、異なる状況では、異なる動作フレーム及び応答を送信しても良く又は同じ動作フレーム及び応答を送信しても良い。
【００３８】
しかしながら、理解されるべきことに、グループオーナ及びクライアントは、無線通信機２５４及びドライバ２４４が実行するよう構成され得る役割のうちの単なる２つの例である。別の例として、エンティティは、グループオーナ又はクライアントとして構成されなくても良い。代わりに、エンティティは、制御部としての役割を割り当てられても良く、他のドライバとの相互作用を管理してグループを形成し及び該グループ内のコンピューティング装置２１０の役割を決定しても良い。
【００３９】
図２は別個の無線通信機、無線通信機２５０及び無線通信機２５４を示したが、インフラストラクチャ接続及びピアツーピア通信が同一周波数チャネルを用いて動作する実施形態では、単一の無線通信機が用いられても良い。このような実施形態では、インフラストラクチャ通信に関連する役割を実行するエンティティ及びピアツーピア通信に関連する役割を実行するエンティティは、同一の無線通信機で実施されても良い。
【００４０】
図２は、コンピューティング装置２１０が電力管理２３４を有すると示す。電力管理２３４は、コンピューティング装置２１０内の回路であっても良く、オペレーティングシステム２３０又は他のコンポーネントに利用可能な電力状態情報をコンピューティング装置２１０から出力する。オペレーティングシステム２３０は、このような電力状態情報を用いて、コンピューティング装置２１０のポリシ又は制御動作を適用する。特定の例として、オペレーティングシステム２３０は、電力管理２３４により提供される電力状態情報を用いて、ピアツーピアグループにおいてコンピューティング装置２１０に割り当てられた役割を決定する。
【００４１】
電力管理２３４は、任意の適切な電力状態情報を提供しても良い。この例では、コンピューティング装置２１０は、バッテリ２３２により給電されるように示される。したがって、電力管理２３４により提供されるある種類の電力状態情報は、バッテリ２３２内に残っている電荷量を示しても良い。電力管理２３４は、従来知られている技術を用いて、バッテリ２３２内の充電残量を決定し及び提示しても良い。
【００４２】
コンピューティング装置２１０が選択的にＡＣ電源に接続される実施形態では、電力管理２３４は、ＡＣ電力がコンピューティング装置２１０に現在供給されているか否かを決定しても良い。供給されている場合、電力管理２３４は、コンピューティング装置２１０をＡＣ電力で動作するよう構成しても良く、ピアツーピアグループにおけるコンピューティング装置２１０により想定される役割に影響を与えるポリシを含むポリシを適用するときにオペレーティングシステム２３０又は他のコンポーネントにより用いられる電力状態を報告しても良い。
【００４３】
図３は、コンピューティング装置３１０が、単一の無線通信機を用いて、それぞれインフラストラクチャネットワークにおける役割を有するエンティティ、及びそれぞれピアツーピア通信のための役割を有するエンティティの両者のエンティティに対応するよう構成される。図３は、無線通信機３５４を有するコンピューティング装置３１０を示す。無線通信機２５４は、ＭＡＣアドレス２５６Ａ、３３５６Ｂ、３５６Ｃ、３５６Ｄ及び３５６Ｅとして示される複数のＭＡＣアドレスを有するとして示される。５個のＭＡＣアドレスが、無線通信機３５４と関連するドライバ３４４に５個のポートを同時に提供し得るように示されるが、理解されるべきことに、サポートされる特定数のＭＡＣアドレスは本発明にとって重要ではなく、幾つかの実施形態では５個より多い又は少ないＭＡＣアドレスが用いられても良い。
【００４４】
本例では、５個のＭＡＣアドレスは、それぞれ異なる役割を実行するよう構成される５個のポート３８２、３８４、３８６、３８８、３９０を提供するために用いられても良い。図示のシナリオでは、これらのポートのグループ３８０Ａは、インフラストラクチャに基づく通信のために用いられるエンティティを実施するよう構成される。グループ３８０Ｂは、ピアツーピア通信のために構成されるポートを有する。
【００４５】
図３に示した例では、グループ３８０Ａは、２個のポート、ポート３８２及び３８４を有する。グループ３８０Ｂは、３個のポート、ポート３８６、３８８、３９０を有すると示される。理解されるべきことに、それぞれの使用の種類に割り当てられるポートの数は本発明にとって重要ではなく、任意の適切な数が用いられても良い。さらに、各グループ内のポート数が固定的である必要はない。むしろ、オペレーティングシステム２３０は、必要に応じてポートを動的に生成又は機能停止するために、ドライバ３４４へコマンドを発行しても良い。
【００４６】
ポートを生成するコマンドとともに、オペレーティングシステム２３０は該ポートに割り当てられた役割を指定しても良い。ドライバ３４４は、インフラストラクチャに基づく通信又はピアツーピア通信に関連し得る指定された役割のために構成されたポートを生成することにより、このようなコマンドに応答しても良い。オペレーティングシステム２３０は役割を指定しても良いが、指定される役割は任意の適切な方法で決定されても良い。例えば、ピアツーピアグループを形成するとき、オペレーティングシステム３２０は、各装置の役割を共同で交渉するためにグループ内の他の装置とメッセージを無線で交換するようにコンピューティング装置３１０を制御することにより役割を決定しても良い。
【００４７】
任意の適切なメカニズムがコンピューティング装置３１０に役割を割り当てる機能を実施するために用いられても良いが、図３は、オペレーティングシステム３２０とドライバ３４４との間のインタフェース３４６を示す。インタフェース３４６は、標準化形式のドライバとのインタフェースであっても良い。一例として、幾つかのドライバは、ＮＤＩＳインタフェース標準規格に従って記述される。この標準規格によると、コマンド及び状態情報は、ドライバ３４４とオペレーティングシステム３２０との間で、ＯＩＤと呼ばれるプログラミングオブジェクトを用いて交換されても良い。ＮＤＩＳ標準規格は、ドライバが応答すべき又は応答しても良い多数のＯＩＤを定める。しかしながら、標準規格は、特定の環境でＯＩＤが追加機能をサポートするよう定められるよう拡張されても良い。拡張性は、ＯＩＤ又は他の適切な表現を用いて、オペレーティングシステム３２０がドライバ３４４に、ポートを生成若しくは機能停止するよう又は特定の役割のためのポートを構成するよう命じることができるコマンドを定めるために用いられても良い。
【００４８】
無線通信機３５４は複数ポートのパケットを処理できるが、複数のＭＡＣアドレスをサポートする以外に、幾つかの実施形態では、無線通信機３５４はポートをサポートするよう特別に構成される必要はない。無線通信機３５４は、従来知られている技術を用いて実装されても良い。本例では、送信／受信部３５８は、従来知られているハードウェアコンポーネントであり無線通信のために用いられても良い。本例では、無線通信機３５４がWi-Fiインフラストラクチャモードプロトコル及びピアツーピア通信のためのWi-Fi  directプロトコルに従う通信をサポートするために用いられており、送信／受信部３５８は、Wi-Fi仕様により定められた周波数範囲に渡り複数のサブチャネルでの通信をサポートしても良い。しかしながら、送信／受信部３５８の特定の動作特性は、通信のために実装される特定のプロトコルに依存して変化しても良く、本発明にとって重要ではない。同様に、制御部３６０は、無線通信機設計の分野で知られているハードウェアコンポーネントであっても良い。同様に、構成登録部３７０は、無線通信機設計の分野で知られているハードウェアコンポーネントであっても良い。ＭＡＣアドレス３５６Ａ、．．．、３５６Ｅとして示すコンポーネントは、従来知られている技術を用いて実装されても良い。幾つかの実施形態では、無線通信機３５４によりサポートされるＭＡＣアドレスは、読み出し専用メモリ又は無線通信機３５４の一部である他のコンポーネントに符号化されても良い。しかしながら、理解されるべきことに、ＭＡＣアドレスが無線通信機３５４にドライバ３４４を通じて割り当てられる実施形態では、ＭＡＣアドレス３５６Ａ、．．．、３５６Ｅは、揮発性又は不揮発性書き換え可能メモリに物理的に実装されても良い。したがって、無線通信機３５４が応答できるＭＡＣアドレスのプールは、動的に生成され得る。
【００４９】
無線通信機３５４のコンポーネントが実装される方法に拘わらず、無線通信機３５４はハードウェアインタフェースを有しても良い。この、ハードウェアインタフェースを通じて、ドライバ３４４が無線通信機３５４を制御し得る。幾つかの実施形態では、ドライバ３４４は、コンピューティング装置３１０内のプロセッサで実行するコンピュータ実行可能ソフトウェア命令であっても良い。したがって、ハードウェアインタフェース３４６は、バス接続、又はドライバ３４４を実行するプロセッサと無線通信機３５４を保持する別個のカードとの間の他の適切な相互接続として実装されても良い。このようなハードウェアインタフェースは従来知られているが、任意の適切なインタフェースが用いられても良い。
【００５０】
ポートをサポートするように無線通信機３５４を構成するために、ドライバ３４４は、無線通信機３５４を、該ポートを通じる通信に関連付けられた特定のＭＡＣアドレス宛のパケットを処理するよう構成しても良い。ドライバ３４４は、設定登録部３７０に、ＭＡＣアドレスが有効にされるべきであることを示す値を書き込んでも良い。これにより、無線通信機３５４は該ＭＡＣアドレスで識別される受信パケットを処理する。動作中、制御部３６０は、設定登録部３７０内の情報により有効であると識別されたＭＡＣアドレスで識別されたパケットに応答するよう、送信／受信部３５８を制御しても良い。したがって、複数のポートが有効な場合、設定登録部３７０は、有効なＭＡＣアドレスの各々の指標を有する。
【００５１】
ポートのＭＡＣアドレスに応答するよう無線通信機３５４を設定することに加えて、ドライバ３４４は、該ＭＡＣアドレスと共に用いられるべき通信パラメータを指定しても良い。これらのパラメータは、例えば、異なる数のサブチャネルが異なるＭＡＣアドレスを有する通信のために用いられ得ることを指定しても良い。このように、異なるポートの通信特性は、ポートに関連付けられた役割に基づき制御されても良い。特定の例として、制御ポートとして構成されたポートは、データ通信のためのポートよりも小さい帯域幅しか必要としない。したがって、無線通信機３５４は、制御ポートに関連付けられたＭＡＣアドレスのためにより少ないサブチャネル又は異なる符号化方式を用いるよう構成されても良い。
【００５２】
送信されるべき情報に対して、ドライバ３４４及び／又は無線通信機３５４は、このような情報を含む送信されたフレームが、情報の送信先ポートに関連付けられたＭＡＣアドレスにより識別されるように、動作し得る。ＭＡＣアドレスを特定ポートから送信された又は特定ポートのために受信された特定フレームに関連付けるために、任意の適切なメカニズムが用いられても良い。さらに、固有の実装はポートの機能に影響を与えないので、この処理は、ドライバ３４４内で部分的に又は全体的に及び無線通信機３５４内で部分的に又は全体的に実行されても良い。
【００５３】
複数ポートを実装するために、ドライバ３４４が構成されても良い。本例では、ドライバ３４４は、マルチプレクサ／デマルチプレクサ３９２を実装するコンピュータ実行可能命令を有するよう示される。マルチプレクサ／デマルチプレクサ３９２は、ポートに関連付けられた受信パケットを、個々のポートの機能を実装するドライバ３４４の一部へルーティングするよう動作する。逆に、マルチプレクサ／デマルチプレクサ３９２は、任意のポートから送信するためにパケットを受信し、それらのパケットを無線通信機３５４へルーティングする。
【００５４】
複数ポートが同時に送信のための情報を有するシナリオでは、マルチプレクサ／デマルチプレクサ３９２は、無線通信機３５４がポートからの情報を受信する順序を確立するよう調停しても良い。この目的のために、マルチプレクサ／デマルチプレクサ３９２は、任意の適切なポリシを用いても良い。例えば、動作フレームを運ぶパケットは、データフレームを有するパケットよりも高い優先度が与えられても良い。ポリシの別の例として、インフラストラクチャモードで動作するポートに関連付けられた送信は、ピアツーピアモードで動作するポートよりも高い優先度が与えられても良い。更に別の例として、グループオーナの役割のために構成されたポートは、ピアツーピアグループにおけるクライアントの役割のために構成されたポートよりも高い優先度が与えられても良い。しかしながら、マルチプレクサ／デマルチプレクサ３９２により適用される特定のポリシは、本発明にとって重要ではなく、任意の適切なポリシが用いられても良い。
【００５５】
マルチプレクサ／デマルチプレクサ３９２をパケットをルーティングするよう構成することに加え、ドライバ３４４は、特定機能モジュールをポートの各々に関連付けることにより構成されても良い。ポートに関連付けられた特定機能モジュールは、該ポートに関連付けられた役割に基づいても良い。例えば、図３は、５個の機能モジュールを示す。機能モジュール３９４Ａは、ポートに関連付けられると、インフラストラクチャネットワークにおける局の役割で動作するよう該ポートを構成してもよい。同様に、機能モジュール３９４Ｂは、ポートに関連付けられると、インフラストラクチャネットワークにおけるアクセスポイントの役割のために該ポートを構成してもよい。機能モジュール３９４Ｃは、ポートに関連付けられると、ピアツーピアモードの制御部の役割で動作するよう該ポートを構成してもよい。制御部は、例えば、装置がピアツーピアグループにおける役割を交渉又は再交渉するとき、通信を制御しても良い。機能モジュール３９４Ｄは、ポートに関連付けられると、ピアツーピアグループにおけるグループオーナの役割のために該ポートを構成してもよい。機能モジュール３９４Ｅは、ポートに関連付けられると、ピアツーピアグループにおけるクライアントの役割のために該ポートを構成してもよい。図３に示されないが、他の機能モジュールが代替で又は追加で含まれても良い。
【００５６】
機能モジュール３９４、．．．、３９４Ｅは、任意の適切な方法で実装されても良い。例えば、各機能モジュールは、機能モジュールに関連付けられた役割のために機能を実行するために符号化されたコンピュータ実行可能命令の集合として実装されても良い。例えば、機能モジュール３９４Ａは、必要に応じてインフラストラクチャネットワークにおける局に向けてパケットを送信するよう無線通信機３５４を制御する命令を有し符号化されても良い。追加で、機能モジュール３９４Ａは、インフラストラクチャネットワークにおける局の動作を実装するように、ドライバ３４４にオペレーティングシステム３２０と相互作用させる命令を有しても良い。特定の例として、機能モジュール３９４Ａは、特定の受信フレームに対する応答を自動的に生成するよう符号化されても良い。追加で、機能モジュール３９４Ａは、フレーム内の受信したデータを、コンピューティング装置３１０のメモリ内の位置に転送し、次にオペレーティングシステム３２０にデータが受信されたことを通知するよう符号化されても良い。さらに、機能モジュール３９４Ａは、該機能モジュールの役割のために無線通信機３５４を構成しても良い。このような構成は、多数のサブチャネル又は特定の役割で用いられる無線通信の他のパラメータを設定することを含み得る。機能モジュール３９４により実行される動作は、Wi-Fiネットワークにおける局としてのみ構成される無線ネットワークインタフェースカードのために従来のドライバで実行される動作と同様であっても良い。また、機能モジュール３９４は、従来知られている技術を用いて符号化されても良い。
【００５７】
他の機能モジュールの各々は、オペレーティングシステム３２０及び無線通信機３５４と相互作用して無線通信機３５４を構成し及び必要に応じてそれら個々の役割のために内部で処理し通信を生成するよう、同様に符号化されても良い。機能モジュール３９４Ｂは、例えば、インフラストラクチャネットワークにおけるアクセスポイントのために従来知られている動作で受信フレームに対して動作を実行し又はそれに応答するコンピュータ実行可能命令を有し符号化されても良い。また、機能モジュール３９４Ｂは、従来知られている技術を用いてオペレーティングシステム３２０と相互作用するよう符号化されても良い。
【００５８】
機能モジュール３９４Ｃは、ピアツーピアグループの確立に関連する機能を実行するよう符号化されても良い。機能モジュール３９４Ｃを実装する命令は、従来知られている技術を用いて同様に記述されても良い。これらの命令は、無線通信機３５４に、特定プロトコルに従うピアツーピア通信のためのグループを確立し及び該グループの装置の役割を交渉又は再交渉するのに用いられる種類の動作フレーム又は動作フレームに対する応答を含むパケットを送信させても良い。オペレーティングシステム３２０内のコンポーネントは、これらの動作フレームの送信をトリガしても良い。しかしながら、幾つかの動作フレームでは、機能モジュール３９４Ｃは、オペレーティングシステム３２０による特別動作を有しない動作フレームに対する応答を生成するよう構成されても良い。表１は、機能モジュール３９４Ｃがオペレーティングシステム３２０により送信するよう命令され得る動作フレームの例を記載する。これらの動作フレームは、Wi-Fi  Directプロトコルに適した動作フレームを示す。このプロトコルで用いられる追加動作フレームは、受信した動作フレーム又は他の適切なトリガに応答して特別コマンドを有しないで送信されても良い。しかしながら、理解されるべきことに、異なるプロトコルでは異なる又は追加の動作フレームが用いられても良く、特定の動作フレームは本発明を限定しない。
【００５９】
【表１】
2014509156.tif 000003
オペレーティングシステム３２０が制御ポートに表１の動作フレームの中の１つを送信するよう要求を提出すると、ドライバ３４４内の機能モジュール３９４Ｃは、以下の動作を行っても良い。
ａ）送信のためにダイアログトークンを選択する。要求に応答して送信された場合、オペレーティングシステムは、使用されるべきダイアログトークン（後述する）を提供しても良く、次に、ドライバ３４４は、指定されたダイアログトークンを用いても良い。
ｂ）要求を完了する。ドライバ３４４は、ダイアログトークンを選択した場合、要求が完了すると、オペレーティングシステム３２０にダイアログトークンを報告しても良い。
ｃ）フレームの送信先であるWi-Fi  Direct装置と同期する。実装に依存して、受信された要求に応答して送信された場合（例えば、招待要求が受信されると送信された招待応答）、このステップは省略されても良い。
ｄ）フレームを送信し、ＡＣＫを待つ。
ｅ）フレームに対するＡＣＫが受信されると、又はいずれの再試行もＡＣＫを得なかった場合、NDIS_STATUS指示をオペレーティングシステム３２０へ送信し、動作フレームの送信状態について通知する。この指示は、動作フレームを含むパケットからの情報要素を有しても良い。
【００６０】
ピア装置からの応答を受信し得るフレームに対して送信され、送信が成功した場合、ポートは、ミニポートへ応答動作フレームを送信するために、ピア装置に利用可能なままであっても良い。タイムアウト及び利用可能なメカニズムは、Wi-Fi  Peer-To-Peer  Technical  Specificationに準拠しても良い。
【００６１】
機能モジュール３９４Ｃがポートに関連付けられるとき、機能モジュール３９４Ｃが動作フレームを送信するようトリガするオペレーティングシステム３２０内の特定のコンポーネントは、本発明にとって重要ではない。しかしながら、図３は、オペレーティングシステム３２０内のデバイスマネジャ３３０を示す。デバイスマネジャ３３０は、例えば、従来知られているデバイスマネジャであっても良く、ユーザ又はプログラマチックインタフェースを提示しても良い。プログラマチックインタフェースを通じて、ユーザ又は他の実行コンポーネントは、装置との通信セッションがピアツーピア通信を用いて確立されるよう要求しても良い。
【００６２】
ポート３８６のようなポートが、該ポートを機能モジュール３９４Ｃに関連付けることによりピアツーピア通信のための制御部として動作するよう構成されるとき、デバイスマネジャ３３０は、ポート３８６と相互作用して、１又は複数の装置とピアツーピア通信を確立する種々の態様を制御しても良い。例えば、デバイスマネジャ３３０は、コンピューティング装置３１０がプリンタ１３４（図１）のような装置と無線接続されることを要求するユーザ入力を受信しても良い。このような入力に応答して、デバイスマネジャ３３０は、スタック３２２を通じてポート３８６と相互作用し、機能モジュール３９４Ｃに動作フレームを送信させるよう無線通信機３５４を制御させる。
【００６３】
送信された動作フレームは、装置又はサービス発見に関連する動作フレームであっても良い。デバイスマネジャ３３０は、機能モジュール３９４Ｃがコンピューティング装置３１０近傍の装置を又はプリンタサービスのような特定サービスを提供する装置のみを発見すべきかのような、これらの要求の特性を指定しても良い。しかしながら、デバイスマネジャ３３０は、グループ内の１又は複数の装置と通信を確立するために、ポート３８６を通じて他のフォーマットでコマンドを送信するよう構成されても良い。
【００６４】
一例として、図３は、オペレーティングシステム３２０が永続性装置記憶３２８を維持することを示す。永続的装置記憶３２８は、コンピューティング装置３１０が前に無線通信を確立した装置を識別する情報を有しても良い。デバイスマネジャ３３０は、永続的装置記憶３２８内の情報にアクセスし、特定の装置を識別し、機能モジュール３９４Ｃのためのポート３８６を通じてコマンドを送信して永続的装置記憶３２８内で識別された装置との無線接続を確立しても良い。これらの動作は、ユーザ入力に応答して、又は任意の他の適切なトリガに応答して自動的に生じても良い。
【００６５】
デバイスマネジャ３３０が、外部装置との通信を確立するためにパスワード又は識別子のような情報を要求するシナリオでは、代替で又は追加で、デバイスマネジャ３３０は、ユーザインタフェース（図３に明示しない）を通じてユーザと相互作用し、ユーザ又は特定の他の情報源から情報を得ても良い。取得した情報が送信される必要があるとき、デバイスマネジャ３３０は、制御部として構成されたポートと相互作用して、該情報を送信させても良い。
【００６６】
ポート３８６のような制御ポートとして構成されたポートをトリガするメカニズムに関わらず、装置のグループを識別するために、制御ポートは、動作フレームを送信及び受信して、コンピューティング装置３１０を含むグループを形成する１又は複数の装置を識別しても良い。グループの識別に加えて、ポート３８６を通じて開始される動作は、該グループ内のコンピューティング装置３１０の役割を交渉しても良い。Wi-Fi  Directピアツーピアプロトコルの図示の例では、装置は、グループオーナ又はクライアントとしてグループ内の役割を有しても良い。識別されたグループ内の１又は複数の別の装置との通信は、異なるポートを通じて実行されても良い。このポートは、コンピューティング装置３１０の識別された役割での動作をサポートするよう構成されても良い。
【００６７】
図３に示した例では、追加ポート３８８及び３９０が示される。これらのポートの各々は、異なる役割と関連し得る。例えば、ポート３８８は、グループオーナの役割と関連付けられても良い。ポート３９０は、クライアントの役割と関連付けられても良い。異なる役割のポートの構成は、該ポートを該役割に関連する動作を実行する機能モジュールに関連付けることにより実行されても良い。例えば、機能モジュール３９４Ｄは、グループオーナとして動作する装置に関連する機能を実行し、ポート３８８に関連付けられても良い。同様に、機能モジュール３９４Ｅは、クライアントとして動作する装置に関連する機能を実行し、ポート３９０に関連付けられても良い。
【００６８】
動作中、パケットがポート３８８又は３９０に関連するＭＡＣアドレスを有する無線通信機３５４を通じて受信されると、マルチプレクサ／デマルチプレクサ３９２は、これらのパケットを関連するポート内で処理するためにルーティングする。ポート３８８へルーティングされたパケットは、グループオーナの役割に関連する動作を実行し得る機能モジュール３９４Ｄにより処理されても良い。データフレームを含むパケットは、データをメモリ内に配置し、スタック３２２にデータが受信されたことを通知することにより、処理されても良い。このようなオペレーティングシステム３２０との相互作用は、従来知られているスタックシグナリング技術を用いても良い。しかしながら、各ポートとオペレーティングシステム３２０との間の通信を生じる特定のメカニズムは、本発明にとって重要ではない。
【００６９】
動作フレームが、コンピューティング装置３１０がグループオーナであるグループと確立されたセッションの一部として送信されるとき、これらの動作フレームは、同様に、マルチプレクサ／デマルチプレクサ３９２によりポート３８８へルーティングされても良い。機能モジュール３９４Ｃは、機能モジュール３９４Ｃが動作フレームに応答するようプログラミングされているか否かに依存して、これらの動作フレームに応答するよう構成されても良く、又は動作フレームをオペレーティングシステム３２０に報告するよう構成されても良い。
【００７０】
同様に、コンピューティング装置３１０がグループ内のクライアントの役割のために構成される場合、該グループ内の装置との通信に関連するパケットは、ＭＡＣアドレスで識別される。該ＭＡＣアドレスは、マルチプレクサ／デマルチプレクサ３９２に、これらのパケットをポート３９０のようなクライアントとして構成されたポートへルーティングさせる。ポート３９０は、機能モジュール３９４Ｅに関連付けられ、ピアツーピアプロトコルに従ってクライアントの機能を実装する。機能モジュール３９４Ｅは、従来知られている技術を用いて、これらのパケット内のデータフレームからのデータをメモリへ転送し、オペレーティングシステム３２０にデータを通知するよう構成されても良い。機能モジュール３９４Ｅは、動作フレームを含むパケットに応答しても良く、又はオペレーティングシステム３２０にこれらの管理フレームを通知しても良い。
【００７１】
図３は、通信機能の特定の階層構造を示す。外部装置との通信に関連する特定の機能は、無線通信機３５４内で実行される。他の機能は、ドライバ３４４内で実行される。更に別の機能は、オペレーティングシステム３２０内で実行される。詳細に示されないが、更なる機能は、アプリケーション（図２）により、又はユーザ若しくはコンピューティング装置３１０外部の情報源からの入力により、実行されても良い。このようなアーキテクチャでは、どの装置がピアツーピアグループの一部として接続すべきかを決定するような上位機能は、アーキテクチャ内の上位で実行されても良い。逆に、受信パケットに対する肯定応答の生成のような下位機能は、アーキテクチャ内の下位で実行されても良い。例えば、ドライバ３４４は、このような肯定応答を生成するよう構成されても良い。
【００７２】
異なる方法で機能を区分して通信の異なる特徴が異なるコンポーネントにより制御されるようにする他のアーキテクチャが可能だが、図示の例では、無線通信機３５４及びドライバ３４４は、コマンド又は受信パケットのようなイベントに処理状態を把握せずに（statelessly）応答するよう構成される。状態情報の拡張は、通信セッションに含まれる。この状態情報は、オペレーティングシステム３２０内に保持されても良い。例えば、スタック３２２は、ポート３８２、３８４、３８６、３８８、３９０のいずれかを通じて実行される通信セッションの状態情報を保持しても良い。保持される特定の状態情報は、各ポートによりサポートされるプロトコルにおける状態の数及び種類に依存しても良い。
【００７３】
図３の例では、セッション状態情報３２４Ａが、ポート３８８に関連付けられて示される。明示しないが、セッション状態情報は他のポートについて保持されても良い。ポート３８８により実装されるプロトコルに依存して、このようなセッション状態情報は、コンピューティング装置３１０がグループオーナであるグループに参加する装置の数のような、セッションのパラメータを示しても良い。これらの装置が低電力モードに入るまでの時間のような他の状態情報も、セッション状態情報３２４の一部として格納されても良い。
【００７４】
図３は、ポート３８８に関連付けられたセッション状態情報３２４Ｂ及び３２４Ｃを更に示す。状態情報３２４Ｂ及び３２４Ｃは、異なるセッションを表しても良い。このようなセッションは、コンピューティング装置３１０が自身がグループオーナである３個のグループに参加している場合に生じ得る。このような複数のセッションをサポートするために、送信又は受信された特定フレームを対応するセッションに関連付けるメカニズムが提供されても良い。任意の適切な１又は複数の識別子が用いられても良い。例えば、一群の装置との通信はセッションと考えられるので、関連する通信をセッションの一部として集約するためにグループ識別子が用いられても良い。スタック３２２は、デバイスマネジャ３３０又は他のコンポーネントとのインタフェースを提供する。このインタフェースは、各セッションを該セッションのエンドポイントである適切なコンポーネントに関連付ける。このようなインタフェースによる接続は、従来知られている技術を用いて実行されても良い。
【００７５】
別個のセッションからの通信を適切に表す状態情報を保持するのに加えて、スタック３２２は、各セッションについて保持される状態情報の一部として、機能を実行するためにスタック３２２に交信の一部である通信を伝えさせる情報を保持しても良い。例えば、要求を表すフレームが送信されるとき、後に受信されるフレームが該要求に対する応答であると認識することは、要求及び応答の処理を実現し得る。交信の一部である通信を伝えるメカニズムの提供は、特に複数セッションが同一ポートでサポートされる場合に、処理を実現し得る。交信の一部である通信の認識を可能にするために、「ダイアログトークン」が用いられても良い。交信を開始する通信は、このダイアログトークンでタグ付けされても良い。このような通信に応答するとき、要求からのダイアログトークンは、応答にコピーされても良い。したがって、要求を送信する装置は、応答、又は同一交信の一部である他の通信を、要求に関連付けても良い。したがって、状態情報３２４Ａは、セッションの一部として通信している装置を含む実行中の通信に関連付けられたダイアログトークンを含んでも良い。
【００７６】
ダイアログトークンは、任意の適切な方法で生成されても良い。例えば、ダイアログトークンは、オペレーティングシステム３２０内で生成されても良い。代替として、ダイアログを開始するパケットがポート内で起きた場合、ポート又はドライバ３４４内の他のコンポーネントは、トークンを生成しても良い。同様に、パケットに対する応答がポート３８６、３８８又は３９０のようなポート内で生成される場合、トークンは、そのポートにより応答に挿入されても良い。逆に、パケットに対する応答がオペレーティングシステム３２０内で生成された個マントに対する応答内で起きた場合、スタック３２２のようなオペレーティングシステム３２０内のコンポーネントは、応答に含むためトークンを指定しても良い。表１は、列挙した動作フレームについて、動作フレームに関連するダイアログトークンがオペレーティングシステム内で又はドライバ内で生成されるかを示す。しかしながら、理解されるべきことに、表１は、フレームに対してダイアログトークンを生成する機能がどのように区分され得るかの単なる一例であり、該機能の任意の適切な区分が用いられても良い。
【００７７】
同様のセッション状態情報３２６Ａ、３２６Ｂ、３２６Ｃは、ポート３９０との接続で示される。セッション状態情報３２６Ａ、３２６Ｂ、３２６Ｃは、３個のセッションの各々について保持される状態を要求しても良い。ここで、各セッションは、コンピューティング装置３１０がクライアントの役割を有するメンバであるグループに関連付けられているセッション状態情報３２４Ａ、３２４Ｂ、３２４Ｃと同様に、ユニークなダイアログトークンが各セッションに関連付けられ、スタック３２２が各セッションに関連付けられた受信パケットを分けられるようにしても良い。同様に、コンピューティング装置３１０は、ダイアログトークンがコンピューティング装置３１０から送信されたパケットに関連付けられるようにしても良い。ダイアログトークンは、スタック３２２、又はコンピューティング装置３１０からパケットを受信するリモート装置の同様の処理コンポーネントに、複数パケットの情報交換の一部であるパケットを関連させるために用いられても良い。例えば、第１のパケットに対する応答で送信される第２のパケットは、第１のパケットからのトークンを有しても良い。この結果、第１のパケットの送信側は、第２のパケットを受信すると、第１のパケットと第２のパケットを同一ダイアログに関連付けることができる。
【００７８】
図３に示したアーキテクチャでは、各接続に関する状態情報は、オペレーティングシステム３２０内に保持されても良い。その結果、ポート３８６、３８８、３９０は、状態情報を保持する必要がない。幾つかの実施形態では、機能モジュール３９４Ｃ、３９４Ｄ、３９４Ｅのような、ポートの機能を実装する機能モジュールは、状態情報を保持しない。代わりに、各機能モジュールは、オペレーティングシステム３２０からのコマンド又は無線通信機３５４により渡された受信パケットのようなイベントに応答するよう符号化されても良い。しかしながら、この機能がどのように区分されるかに拘わらず、コンピューティング装置３１０は、各エンティティの機能を実行するためにポートを確立し構成することにより、複数エンティティに関連する機能を提供するよう制御されても良い。その結果、コンピューティング装置３１０は、ドライバ３４４及び無線通信機３５４が複数ポートをサポートするよう構成され得るので、異なるエンティティとして同時に動作しても良い。これらのエンティティは、ピアツーピア通信に関連するエンティティと同様に、インフラストラクチャモードの通信に関連するエンティティを有しても良い。
【００７９】
しかしながら、コンピューティング装置がどのように設計されるかに拘わらず、装置は、インフラストラクチャモードプロトコル及び／又はピアツーピアプロトコルで定められた機能を実装しても良い。ピアツーピアプロトコルに従って動作する装置により実行される機能は、ピアツーピア通信のために２以上の装置のグループを形成することを含んでも良い。グループの形成の１つの特徴は、グループの制御に関連する機能を実行するために、グループの装置を選択することを含んでも良い。このような機能は、例えば、どの装置がグループに参加できるかを決定すること、グループに識別子を提供すること、及びグループ内の装置にアドレスを提供することを含んでも良い。ここに記載した例示的な実施形態では、このような装置は、グループオーナであっても良い。グループの一部である他の装置は、グループオーナのクライアントであっても良い。
【００８０】
図４は、グループ内の装置が動作し得る方法を示す。図４の例は、グループ内の動作が該グループ内の装置の役割を交渉することを含み得ることを示す。この交渉は、従来通り、グループの形成中に生じても良い。さらに、従来のピアツーピアグループとは対照的に、図４は、装置の役割がグループの動作中に生じるイベントに応答して再交渉され得ることを示す。
【００８１】
したがって、図４の処理は、サブプロセス４１０で開始する。サブプロセス４１０を実行した結果、グループに参加するメンバが特定される。サブプロセス４１０は、任意の適切な方法で実行されても良い。例えば、サービスにアクセスするために別の装置との無線接続を形成しようとしている装置は、プローブ要求のような動作フレームを送信しても良い。このプローブ要求を受信した装置は、Wi-Fi  Directプロトコルに従うプローブ応答のような、グループへの参加の可用性を示す更なる動作フレームで応答しても良い。このようなメッセージを交換した結果、グループに参加すべき装置が特定される。
【００８２】
装置が特定されると、処理は、サブプロセス４２０へ進んでも良い。サブプロセス４２０で、装置は、グループ内の役割を交渉しても良い。このような役割の１つは、グループを制御する装置であっても良い。装置がWi-Fi  Directプロトコルに従って動作する図示の例では、制御装置はグループオーナと称され、他の装置はクライアントと称される。しかしながら、装置がWi-Fi  Directプロトコルに従って動作することは必要条件ではない。役割を交渉するために、任意の適切なメカニズムが用いられても良い。したがって、グループ内の装置は、共同で、該グループの制御装置として動作すべき装置を選択する。
【００８３】
一例として、各装置は、グループを制御する選択を表すプレファレンスパラメータの値を他の装置へ伝達しても良い。グループ内の装置は、最も高い値を送信している装置をグループの制御部として認識しても良い。複数の装置が同一の最高値を送信する状況では、プレファレンスパラメータの最高値を報告する装置の中から選択するために、競合メカニズムが用いられても良い。競合メカニズムは、例えば、ランダム選択、又はグループを制御すべき装置を選択する任意の他の適切なメカニズムの要素を有しても良い。
【００８４】
各装置は、任意の適切な方法で自身のプレファレンスパラメータの値を決定しても良い。幾つかの実施形態では、各装置は、１又は複数のポリシでプログラミングされても良い。１又は複数のポリシは、サブプロセス４２０で交渉の一部としてその装置が報告したプレファレンス値を決定するよう適用されても良い。例えば、装置は、装置の機能に基づき、より高い値を報告するほど該装置が制御部になる可能性が高いというポリシを有しても良い。装置が、頻繁に繰り返される機能又は他の装置からの通信の頻繁な受信を伴う機能を実行する場合、装置は、比較的高い数値をプレファレンス値に割り当てるポリシでプログラミングされても良い。逆に、装置が頻繁に活動していないかグループ内の他の装置と希にしか通信しない場合、装置は、比較的低い数値をプレファレンス値に割り当てるポリシでプログラミングされても良い。
【００８５】
通信の頻度に関連する基準に代えて又はそれに加えて、装置のプレファレンスパラメータの値を選択するための基準が用いられても良い。幾つかの実施形態では、グループ内の１又は複数の装置は、装置の電力状態に基づき、グループを制御するための装置が選択される可能性に影響を与えるポリシでプログラミングされても良い。特定の例として、ＡＣ電源又は使用により枯渇しない他の電源に接続される装置は、装置がグループを制御するために選択される可能性を増大させるポリシでプログラミングされても良い。逆に、バッテリ又は他の消耗電源により動作する装置は、装置がグループを制御するために選択される可能性を減少させるポリシでプログラミングされても良い。さらに、このようなポリシは、バッテリ又は他の消耗電源の充電に依存しても良く、交渉のとき、電源が少ない充電しか有しないときに、装置がグループを制御するために選択される可能性が減少する。
【００８６】
装置がグループを制御する選択を反映する値を決定する方法に拘わらず、各装置は、サブプロセス４２０中に送信されるメッセージで自身の値を他の装置に伝達しても良い。このようにメッセージを交換することにより、特定された装置は、グループの制御部として動作すべき装置の共通の選択に到達できる。次に、処理はブロック４３０に進んでも良い。
【００８７】
ブロック４３０で、各装置は、グループの制御についての自身のプレファレンスに到達するときに用いられる状態情報を格納しても良い。プレファレンスが、装置がＡＣ電源又はバッテリに接続されるかのような、装置の電力状態に基づく実施形態では、ブロック４３０で、この電力状態情報が格納されても良い。この状態情報は、任意の適切な方法で格納されても良い。幾つかの実施形態では、状態情報は、永続的装置記憶３２８のような、不揮発性記憶媒体に格納されても良い。その結果、情報は、後に、１又は複数の装置が電源を切られるか又は一時的にグループから切断された場合でも、グループの動作中にアクセスできる。しかしながら、理解されるべきことに、状態情報は、装置によりアクセス可能な任意の適切なコンピュータ記憶媒体に格納されても良い。
【００８８】
次に、処理は決定ブロック４３２に進んでも良い。決定ブロック４３２で、処理は、サブプロセス４２０における交渉の結果に依存して分岐しても良い。サブプロセス４２０における交渉の結果として、装置がグループを制御するために選択された場合、該装置により実行される処理は、決定ブロック４３２からサブプロセス４４０へ分岐しても良い。逆に、図４の処理を実行する装置がグループを制御するために選択されない場合、処理は、決定ブロック４３２からサブプロセス４５０へ分岐しても良い。
【００８９】
処理がサブプロセス４４０に到達する場合、図４の処理を実行する装置は、グループを制御するために動作を実行しても良い。サブプロセス４４０内で実行される特定の動作は、グループ内の装置により用いられるプロトコルに依存しても良い。一例として、サブプロセス４４０内で行われる動作は、グループに参加する追加装置からの応答を受信し及びそれに対して応答すること、グループ内の装置にグループアドレスを割り当てること、グループ内の装置に装置が該装置の無線通信機の電源を切る期間を通知すること、又はグループ内の装置間のメッセージを中継することを含み得る。しかしながら、特定の制御動作は、本発明の必要条件ではない。代替で又は追加で、グループを制御するために選択された装置により、任意の適切な動作が行われても良い。
【００９０】
処理はサブプロセス４４２に進んでも良い。サブプロセス４４２で、図４に示した例示的な処理を実行する装置は、グループ内の他の装置とピアツーピアに基づき通信しても良い。特定の通信は、制御装置の機能及びグループ内の他の装置の機能に依存しても良い。例えば、図１の例では、コンピューティング装置１１０は、グループを制御するために選択された場合、該装置により印刷するためにプリンタ１３４のような他の装置へデータを送信しても良い。特定の機能に拘わらず、装置がグループを制御するために選択されるとき、このような通信は、該グループにより用いられるプロトコルに従ってフォーマット化されたメッセージの送信及び受信を伴っても良い。この場合、メッセージは、グループの制御部としての装置の役割に基づきフォーマット化される。特定の例では、ピアツーピアグループがWi-Fi  Directプロトコルに従って動作しているとき、装置により送信される通信は、グループオーナにより送信されるメッセージのプロトコルの要件に従ってフォーマット化される。装置により受信されるメッセージは、グループオーナへ送信されるメッセージに従ってフォーマット化される。しかしながら、理解されるべきことに、任意の適切なフォーマット化及び任意の適切な処理が、サブプロセス４４２の一部として実行されても良い。
【００９１】
次に、処理は決定ブロック４４４に進んでも良い。決定ブロック４４４で、処理は、状態変化が検出されたか否かに依存して分岐しても良い。決定ブロック４４４における処理は、現在の状態情報の、ブロック４３０で格納された状態情報との比較を伴っても良い。例えば、格納された状態情報が電力状態情報を含む実施形態では、決定ブロック４４４における処理は、現在の電力状態情報へのアクセスを伴っても良い。
【００９２】
この状態情報は、任意の適切な方法で得られても良い。幾つかの実施形態では、状態情報は、コンピューティング装置のハードウェアコンポーネントと相互作用する図４の処理を実行する装置のオペレーティングシステムにより得られても良い。図２の特定の例では、このような相互作用は、オペレーティングシステム２３０が電力マネジャ２３４と相互作用することを含んでも良い。このような相互作用の一部として、オペレーティングシステム２３０は、装置の電力状態に関連する状態情報を得ても良い。例えば、オペレーティングシステム２３０は、装置がＡＣ電源に接続されるか否かを示す情報を得ても良い。代替で、オペレーティングシステム２３０は、装置がバッテリのような消耗電源から給電されていることを決定しても良い。幾つかの実施形態では、電力マネジャ２３４により提供される情報は、バッテリの充電残量を示しても良い。したがって、決定ブロック４４４で、現在の状態情報と、ピアツーピアグループ内の装置について役割が交渉されたときに格納された状態情報との比較が行われ得る。
【００９３】
状態変化が生じていない場合、処理は、サブプロセス４４０へループバックし、グループ内の装置は通信を継続しても良い。このように、グループが動作し続ける限り、サブプロセス４４０及び４４２は繰り返されても良く、決定ブロック４４４で状態変化を繰り返し調べる。
【００９４】
理解されるべきことに、決定ブロック４４４で行われる比較は、任意の適切な数のパラメータに基づいても良い。幾つかの実施形態では、決定は、装置の現在の電力状態を表す単一のパラメータに基づいても良い。しかしながら、他の実施形態では、比較は複数のパラメータを伴っても良い。例えば、決定ブロック４４４の比較は、電力状態を表すパラメータ及びグループの一部である装置により実行される又はアクセスされる機能を表すパラメータの比較を伴っても良い。複数のパラメータが比較で用いられる場合、各パラメータは、比較において任意の適切な方法で重み付けされても良い。
【００９５】
さらに、理解されるべきことに、比較は、任意の適切なレベルの粒度を用いて任意の適切な方法で実行されても良い。一例として、装置の電力状態は、値の順序付きセットから選択された値により表されても良い。特定の例として、値の順序付きセットは、ＡＣ電力、バッテリ電力及び閾より低い充電レベルを有するバッテリ電力を表す値を有しても良い。本例では、装置の状態が、例えばＡＣ電力での動作からバッテリ電力での動作に変わると、ブロック４４４で状態変化が検出される。状態変化は、装置はバッテリ電力での動作のままであるが、バッテリの充電残量が閾値より下に降下した場合にも検出されても良い。
【００９６】
決定ブロック４４４で状態変化が決定される方法に拘わらず、このような状態変化が検出された場合、処理は、決定ブロック４４４からブロック４４６へ分岐しても良い。ブロック４４６で、装置は、再交渉メッセージを送信しても良い。このようなメッセージは、グループ内の装置に、それらの役割の再交渉を開始するようトリガしても良い。
【００９７】
したがって、図４に示した処理はサブプロセス４２０へループバックしても良く、サブプロセス４２０では役割を交渉する処理が繰り返されても良い。このように、装置は、検出された状態変化に基づき、グループ内の役割の再交渉をトリガしても良い。再交渉の結果、同一又は異なる装置がグループを制御するために選択されても良い。
【００９８】
処理がブロック４４６を通るとき、現在グループオーナとして動作している装置により再交渉がトリガされる。図４は、再交渉がグループ内の任意の装置によりトリガされても良いことを示す。図示のように、処理は、処理を実行している装置がグループオーナとして動作しているか否かに依存して、決定ブロック４３２で分岐する。グループオーナとして動作していない場合、処理はサブプロセス４５０に進む。サブプロセス４５０で、図４の処理を実行している装置は、自身に割り当てられたクライアントとして役割で通信しても良い。サブプロセス４５０でクライアントとして通信している装置により行われる特定の動作は、本発明にとって重要ではない。しかしながら、これらの動作は、グループ内で通信した装置により用いられるピアツーピアプロトコルに依存しても良い。このような通信は、例えば、グループを制御するために選択された装置とのメッセージ交換を含んでも良い。
【００９９】
クライアント通信の一部として行われる動作に拘わらず、処理は決定ブロック４５２へ進んでも良い。決定ブロック４５２では、状態変化が検出された場合、処理は分岐しても良い。決定ブロック４５２での処理は、上述の決定ブロック４４４で実行される処理と同様であっても良い。しかしながら、決定ブロック４５２での処理は、装置がグループオーナではなくクライアントとして選択されたときに実行される。しかしながら、状態変化が生じていない場合、処理は、決定ブロック４５２からサブプロセス４５０へループバックしても良い。このように、装置は、グループのクライアントとしての自身の役割で通信を継続しても良い。
【０１００】
逆に、決定ブロック４５２での処理が状態変化が生じたと決定した場合、処理は、決定ブロック４５２からブロック４５４へ分岐しても良い。ブロック４５４で、装置は、再交渉メッセージを送信しても良い。ブロック４５４で送信されたメッセージは、ブロック４４６で送信されたメッセージと同じフォーマットであっても良い。しかしながら、理解されるべきことに、ブロック４４６での処理はグループオーナとして動作する装置により実行され、ブロック４５４での処理はクライアントとして動作する装置により実行される。幾つかのピアツーピアプロトコルによると、クライアントにより送信されるメッセージのフォーマット化は、グループオーナにより送信されるメッセージのフォーマットと異なっても良い。しかしながら、メッセージの特定のフォーマット化は、ブロック４４６又は４５４で送信されるかに拘わらず、本発明にとって重要ではない。メッセージのフォーマット化に拘わらず、メッセージは、グループ内の装置の役割を再交渉するようグループ内の他の装置をトリガしても良い。したがって、図４は、処理がブロック４５４からサブプロセス４２０へループバックし、サブプロセス４２０で役割が交渉されることを示す。
【０１０１】
グループ内の一部又は全部の装置で図４の処理が実行されると、グループは、装置の相対的状態に基づき時間と共に変化するグループを制御するために選択された装置を有し動作し得る。例えば、ブロック４４４及び４５２で検討される状態が電力状態である実施形態では、グループは、常にグループ内の装置の相対的電力状態に基づき変化するグループを制御するために選択された装置を有し、動作し続けても良い。特定の例として、非消耗電源を有する装置がグループオーナとして選択されても良い。この選択は、相対的電力状態が変化した場合に変化しても良い。非消耗電源を有する装置が存在しない実施形態では、最も高い充電残量を有する装置がグループを制御するために選択されても良い。しかしながら、グループオーナを選択するために他の基準が用いられる実施形態では、選択されたグループオーナは、他の基準に基づき時間と共に変化しても良い。
【０１０２】
グループ内の装置は、任意の適切なフォーマットのメッセージを用いて何時でも交渉しても良い。しかしながら、図５（Ａ）、（Ｂ）、（Ｃ）は、例示的な実施形態に従って用いられ得るメッセージフォーマットを示す。図５（Ａ）は、グループを制御する装置の選択に至る交渉で用いられ得るメッセージ５１０を示す。本例では、メッセージ５１０は、グループの制御装置を交渉するためのピアツーピアプロトコルに従って定められる動作フレームとしてフォーマット化される。メッセージ５１０は、例えば、メッセージの種類を示す部分５１２を有しても良い。本例では、部分５１２は、メッセージ５１０がグループを制御する装置の選択に至る交渉のためのものであることを示す値を有する。したがって、メッセージ５１０は、交渉のために用いられる情報を伝達する部分５１４を有する。部分５１４は、本例では、グループを制御するために選択される、メッセージ５１０を送信する装置のプレファレンスを示すパラメータの値を有する。
【０１０３】
図５Ｂは、グループが形成され及びグループを制御する装置が選択された後に、再交渉をトリガするために送信され得るメッセージ５２０を示す。メッセージ５２０は、任意の適切な方法でフォーマット化されても良い。本例では、メッセージ５２０は、グループにより用いられるピアツーピアプロトコルの動作フレームに従ってフォーマット化される。したがって、メッセージ５２０は、メッセージ５２０が動作フレームであると示す値を含む部分５２２を有する。部分５２２の特定の値は、動作フレームの種類を識別しても良い。本例では、動作フレームの種類は、本発明にとって重要ではないが、ピアツーピアプロトコルに依存してクライアント装置により送信される種類であっても良い。しかしながら、任意の動作フレームは、再交渉に関連する情報要素の合併により変更されても良い。本例では、メッセージ５２０は、情報要素を表す値を有する部分５２４を含むとして示される。情報要素は、メッセージ５２０を送信する装置がグループを制御する装置の再交渉を要求していることを示す値を有しても良い。このようなメッセージは、例えば、クライアントにより送信される場合にブロック４５４で、又はグループを制御する装置により送信される場合にブロック４４６で、送信されても良い。
【０１０４】
図５（Ｃ）は、メッセージ５３０を示す。メッセージ５３０は、メッセージ５２０と同様に、ピアツーピアグループを制御するよう動作する装置の再交渉をトリガする一部として送信されても良い。メッセージ５３０のフォーマットは本発明にとって重要ではないが、本例では、メッセージ５３０は部分５３２を有する。部分５３２は、メッセージ５３０が、グループにより用いられるピアツーピアプロトコルに従ってフォーマット化された動作フレームであることを示す。動作フレームの特定の種類は、部分５３２内の値により示されても良い。しかしながら、図５（Ｃ）に示した例示的な実施形態では、任意の動作フレームは、情報要素の合併により再交渉に関連するよう変更されても良い。
【０１０５】
図５（Ｃ）の例では、メッセージ５３０は、このような情報要素を有する部分５３４を含むとして示される。したがって、メッセージ５３０は、メッセージ５２０と類似したフォーマットを有する。しかしながら、メッセージ５３０及び５２０は、メッセージ５３０が、グループを制御する装置を再交渉するためのグループ内の装置に対するコマンドとして動作する部分５３４内の値を有する点で異なる。したがって、メッセージ５３０は、ブロック４４６及び／又はブロック４５４（図４）で送信されても良い。
【０１０６】
図５（Ｃ）のようにフォーマット化されたメッセージは、再交渉をトリガするために、図５（Ｂ）のようにフォーマット化されたメッセージの代わりに又はそれに追加して用いられても良い。幾つかの実施形態では、グループ内の装置は、メッセージ５３０のようにフォーマット化されたメッセージを送信することにより、再交渉を直接トリガしても良い。メッセージ５３０は、グループ内の全ての装置により、グループを制御するために選択された装置の再交渉を開始するためのコマンドとして解釈されても良い。他の実施形態では、グループ内の一部の装置のみが、再交渉を直接トリガするためのコマンドを送信しても良い。例えば、他の装置は、メッセージ５２０のようにフォーマット化された要求を送信しても良い。このような実施形態では、このような要求を受信する装置は、再交渉が実行されるべきか否かを決定しても良い。再交渉が実行されるべきであると決定された場合、メッセージ５３０のようにフォーマット化された再交渉のためのコマンドは、該装置により送信されても良い。このようなメッセージの交換は、例えば、現在グループを制御している装置のみが再交渉を生じるためのコマンドを送信する実施形態で生じ得る。クライアントとして動作する装置は、メッセージ５２０のようにフォーマット化された再交渉要求を送信しても良い。
【０１０７】
このように別個の要求とコマンドを用いることにより、グループ内の装置の状態が変化したときに再交渉を選択的に実行できる。しかしながら、再交渉は、グループの動作を妨げないよう制限されても良い。特定の例では、クライアントは、再交渉の要求を送信しても良いが、それに応じて、制御装置は、グループ内の１又は複数の装置が動作を実行中である場合、又は再交渉が最近実行された場合は、再交渉を実行する命令を送信しなくても良い。
【０１０８】
理解されるべきことに、図５（Ａ）、（Ｂ）、（Ｃ）は、ピアツーピアグループで用いられ得るメッセージフォーマットの例を提供する。これらの又は他の適切なメッセージは、グループを制御する装置又は該グループ内のクライアントにより送信されても良い。幾つかの実施形態では、グループ内の装置の役割に依存して、該装置により異なるメッセージが送信されても良い。図６は、グループを制御する役割を割り当てられている装置の例示的な動作方法を示す。本例では、装置は、Wi-Fi  Directプロトコルに従って動作しても良く、装置はグループオーナとして指名されても良い。
【０１０９】
図示のように、図６の処理はサブプロセス６１０で開始しても良い。サブプロセス６１０では、グループを形成する装置が特定される。サブプロセス６１０における処理は、任意の適切な方法で実行されても良い。一例として、サブプロセス６１０は、上述のサブプロセス４１０（図４）と同じ方法で実行されても良い。
【０１１０】
サブプロセス６１０が実行される方法に拘わらず、処理は、決定ブロック６２０に進んでも良い。決定ブロック６２０で、処理は、図６の処理を実行する装置の状態に依存して分岐しても良い。本例では、処理は、装置の電力状態に基づき分岐する。決定ブロック６２０で、処理は、装置がＡＣ電源に接続されるか否かに依存して分岐しても良い。装置がＡＣ電源に接続されている場合、処理は、決定ブロック６２０からブロック６２２へ分岐する。逆に、装置がＡＣ電源に接続されていない場合、処理は、決定ブロック６２０から決定ブロック６３０へ分岐する。
【０１１１】
処理がブロック６２２に到達した場合、装置は、自身の電力状態に基づきプレファレンスパラメータの値を選択する。本例は、処理がブロック６２２に到達すると、ＡＣ電力への接続に基づき、装置のグループオーナであるためのプレファレンス値が選択される。幾つかの実施形態では、処理がブロック６２２に到達した場合、比較的高い値が選択されても良い。しかしながら、選択される特定値は、装置内のプログラミングされたポリシ、又は電力状態のような検出した状態に基づき値を生成する他の基準に依存しても良い。
【０１１２】
逆に、処理が決定ブロック６３０へ分岐した場合、再び装置の電力状態に基づき更なる分岐が行われても良い。本例では、３個の電力状態が示される。ＡＣ電力に対応する１つの電力状態、及びバッテリ電力による動作に対応する２つの電力状態である。バッテリ給電状態は、バッテリの充電残量に基づき区別される。処理が決定ブロック６３０に到達すると、装置は、バッテリ電力により動作していると決定されている。したがって、処理は、バッテリの充電状態に依存して分岐する。バッテリ充電が閾より高い場合、処理は、決定ブロック６３０からブロック６３２へ分岐しても良い。逆に、バッテリ充電が閾より低い場合、処理は、決定ブロック６３０からブロック６３４へ分岐しても良い。
【０１１３】
ブロック６３２及び６３４の両方で、グループオーナであるためのプレファレンスを示す値が選択される。それぞれの場合に、選択される特定値は、装置の検出された電力状態、及びポリシ又は装置により適用される他の基準に基づく。したがって、処理がブロック６３２に到達した場合、バッテリ電力による動作に対応し及び閾より高いバッテリ充電レベルを有する電力状態に相応しい値が選択される。逆に、処理がブロック６３４に到達した場合、閾より低い充電残量を有するバッテリ電力による動作を示す電力状態に相応しい値が選択される。
【０１１４】
ブロック６２２、６３２、６３４で選択される特定値に拘わらず、処理は、サブプロセス６４０に進んでも良い。サブプロセス６４０で、図６の処理を実行する装置は、選択されたプレファレンスパラメータ値を含む１又は複数のメッセージを送信しても良い。サブプロセス６４０の処理は、サブプロセス４２０（図４）と関連して上述した方法と同じ方法で又は任意の他の適切な方法で実行されても良い。このような処理の結果として、装置は、グループを制御するために選択されるか又はグループオーナのクライアントになるよう選択されても良い。しかしながら、本例では、図６に示した残りの処理は、サブプロセス６４０の結果、装置がグループオーナとして選択されているときに実行される処理を表す。
【０１１５】
処理は、ブロック６５０に進む。ブロック６５０で、装置の状態は格納されても良い。ブロック６５０の処理は、ブロック４３０（図４）と関連して上述した処理と同様であっても良い。このような処理の結果として、装置は、任意の適切なコンピュータ記憶媒体に、サブプロセス６４０により表される交渉のときの自身の状態を格納しても良い。ブロック６５０で格納される状態情報は、決定された装置の電力状態を有しても良い。しかしながら、理解されるべきことに、代替で又は追加で、ブロック６５０で、任意の適切な情報が格納されても良い。一例として、代替で又は追加で、状態情報は、交渉が実行されたときを示す時間情報を有しても良い。例えば、時間経過を含む要因に基づき再交渉が実行され又は阻止される実施形態では、このような時間情報が格納されても良い。特定の例として、幾つかの実施形態では、再交渉は、所定時間量の経過後に実行されても良い。代替で又は追加で、幾つかの実施形態では、１又は複数の装置の状態の変化に拘わらず、前の再交渉から閾を超える時間量が経過しない限り、再交渉は抑制されても良い。
【０１１６】
ブロック６５０で格納される特定情報に拘わらず、図６は、処理が、再交渉が実行されるべきか否かの決定に進むことを示す。本例では、再交渉が実行されるべきか否かを決定するために、３つの基準が適用される。しかしながら、理解されるべきことに、任意の適切な数及び種類の基準が、再交渉が実行されるべきか否かを決定するために用いられても良い。この特定の例では、処理は決定ブロック６６２に進む。決定ブロック６６２で、処理は、装置の電力状態の変化に基づき分岐する。図示の実施形態では、装置はグループオーナとして動作し、装置のポリシは、最も高い利用可能電力段階を有する装置にグループオーナであるというプレファレンスを課す。したがって、グループオーナとして動作している装置の電力状態が低下した場合、該装置は再交渉をトリガしても良く、その結果、より高い電力状態を有する別の装置が存在する場合には、別の装置がグループオーナとして選択されても良い。
【０１１７】
したがって、電源状態が低下した場合、処理は、決定ブロック６６２からブロック６７０へ分岐する。ブロック６７０で、装置は、再交渉コマンドを送信しても良い。ブロック６７０で送信されたメッセージは、例えばメッセージ５３０（図５（Ｃ））のようにフォーマット化されても良い。しかしながら、理解されるべきことに、ブロック６７０で送信されるメッセージの特定のフォーマットは、本発明にとって重要ではない。図示の実施形態では、グループ内の他の装置は、ブロック６７０で送信されたメッセージを、グループオーナを選択するサブプロセスを繰り返すコマンドとして認識しても良い。したがって、ブロック６７０から、図６の処理は、決定ブロック６２０へループバックする。決定ブロック６２０で、交渉が再び開始される。
【０１１８】
逆に、電力状態の低下が検出されない場合、図６の処理は、決定ブロック６６２から決定ブロック６６４へ進んでも良い。決定ブロック６６４で、処理は、グループオーナとして動作している装置がグループ内の他の装置から再交渉要求を受信したか否かに依存して、ブロック６７０へ分岐しても良い。決定ブロック６６４での処理は、グループオーナがメッセージ５２０（図５（Ｂ））のようにフォーマット化されたメッセージを受信したか否かの決定を伴っても良い。しかしながら、理解されるべきことに、クライアントがグループオーナにグループオーナの再交渉を要求していることを伝える特定のフォーマットは、本発明にとって重要ではない。
【０１１９】
図示のように、受信メッセージのフォーマットに拘わらず、このような要求が受信された場合には、処理は、決定ブロック６６４からブロック６７０へ分岐し、ブロック６７０で再交渉が命じられる。
【０１２０】
再交渉要求が受信されないとき、処理は、決定ブロック６６６へ進んでも良い。決定ブロック６６６で、処理は、図６の処理を実行しているグループオ―ナとして動作している装置が、新しい装置がクライアントとしてグループに参加することを許可したか否かに従って、再び分岐しても良い。新しいクライアントがグループに参加した場合、処理は、決定ブロック６６２からブロック６７０へ分岐しても良い。ブロック６７０で、再交渉がトリガされても良い。その結果、グループオーナとして動作することがより適している新しい装置がグループオーナになっても良い。
【０１２１】
図６は、新しいクライアントがグループに参加しなかった場合、処理が決定ブロック６６６の次に終了することを示す。理解されるべきことに、図６に示した処理の後に、任意の適切な処理が実行されても良い。例えば、再交渉をトリガし得る１又は複数の基準が更にテストされても良い。さらに、図６に明示しないが、グループオーナを再交渉するか否かを決定するためのテストは、周期的に再適用されても良い。さらに、図６の処理を実行している装置は、その後に、通信又はグループの制御を含む他の動作を実行しても良い。
【０１２２】
図６の非限定的な例から理解されるように、再交渉は、多数の基準のうちのいずれかに全体的に又は部分的に基づいても良い。これらの基準は、グループを制御する装置の電力状態、グループのクライアントにより検出された条件、又はグループメンバの変化に基づいても良い。代替又は追加で、グループオーナの再交渉が実行されるべきか否か及び実行されるべきときを決定するために、任意の他の適切な基準が適用されても良い。
【０１２３】
クライアント装置は、グループオーナの再交渉に対して応答し又は再交渉をトリガする処理を実行しても良い。図７は、ピアツーピアグループのクライアントである装置の動作の処理を示す。図７の処理はサブプロセス７１０で開始しても良い。サブプロセス７１０では、グループのメンバが特定される。サブプロセス７１０における処理は、サブプロセス４１０（図４）又はサブプロセス６１０（図６）で実行された処理と同様であっても良い。このような処理は、任意の適切な方法で実行されても良い。
【０１２４】
グループを形成する装置が特定される方法に拘わらず、処理は、決定ブロック７２０に進んでも良い。本例では、決定ブロック７２０は、図７の処理を実行する装置のプレファレンス値を選択する処理の開始を表す。このようなプレファレンスは、装置でプログラミングされたポリシに基づき選択されても良く、装置がグループオーナになるというプレファレンスを示しても良い。本例では、プレファレンス値は、装置の電力状態に基づき選択される。したがって、決定ブロック７２０で、処理は、装置がＡＣ電源に接続されるか否かに依存して分岐する。装置がＡＣ電源に接続されない場合、処理は決定ブロック７３０へ分岐する。決定ブロック７３０で、処理は、装置に給電するバッテリの充電残量に依存して更に分岐する。したがって、電力状態に基づき、装置は、ブロック７２２、７３２、７３４のうちの１つで処理を実行する。本例では、ブロック７２２の処理は、ブロック６２２の処理と同様に実行されても良い。ブロック７３２の処理は、ブロック６３２の処理と同様に実行されても良い。ブロック７３４の処理は、ブロック６３４の処理と同様に実行されても良い。しかしながら、ブロック７２２、７３２、７３４では、これらのブロックの各々で選択されたプレファレンスパラメータの特定値は、ポリシ又は図７の処理を実行する装置に固有であっても良い他の基準に依存しても良い。その結果、グループオーナであるという装置のプレファレンスを表す値は、装置の電力状態に基づき選択される。
【０１２５】
プレファレンス値が選択される方法に拘わらず、処理は、サブプロセス７４０に進んでも良い。サブプロセス７４０で、装置は、装置をグループオーナとして選択するために、グループ内の１又は複数の他の装置とメッセージを交換しても良い。サブプロセス７４０の処理は、サブプロセス６４０の処理と同じであっても良い。しかしながら、本例では、処理を実行している装置をグループオーナとして選択する代わりに、サブプロセス７４０でのメッセージ交換の結果、他の装置をグループオーナとして選択する。したがって、図７の処理を実行している装置は、グループのクライアントとしての役割を割り当てられる。
【０１２６】
次に、処理はブロック７５０へ進み、交渉のときの装置の状態が格納される。ブロック７５０の処理は、ブロック６５０（図６）の処理と同様に実行されても良い。任意の適切なパラメータが、この状態を定めるために格納されても良い。また、クライアントとして選択された装置及びグループオーナとして選択された装置は、グループオーナの再交渉をトリガすべきか否かを決定するために異なる基準を適用しても良い。したがって、幾つかの実施形態では、ブロック７５０で、ブロック６５０（図６）とは異なるパラメータの値が格納されても良い。
【０１２７】
図７の処理を実行している装置は、電力状態の変化に基づき再交渉をトリガしても良い。本例では、装置は、クライアントとして動作しており、自身の電力状態が増大したときに再交渉をトリガする。したがって、図７は、決定ブロック７６０で、装置の電力状態が増大したか否かに基づき、処理が分岐することを示す。電源状態が増大した場合、処理は、決定ブロック７６０からブロック７６２へ分岐する。
【０１２８】
ブロック７６２で、装置は、再交渉要求を送信しても良い。ブロック７６２で送信されたメッセージは、メッセージ５２０（図５（Ｂ））のようにフォーマット化されても良い。しかしながら、理解されるべきことに、ブロック７６２で送信されるグループオーナを再交渉するための要求の特定のフォーマットは、本発明にとって重要ではない。このようなメッセージは、任意の適切なフォーマットを有しても良い。例えば、図５（Ｂ）に明示しないが、再交渉要求メッセージ５２０は、要求を受け付けるか否か及び再交渉を命じるか否かを決定するためにグループオーナにより用いられ得る追加情報を有しても良い。一例として、再交渉要求メッセージ５２０は、装置の新しい電力状態、又は電力状態に基づき計算され得る新しいプレファレンス値を示す追加フィールドを有しても良い。グループオーナは、このような情報を、例えば、再交渉の結果として異なる装置がグループオーナとして選択されるか否かを決定するために用いても良い。クライアントの電力状態が増大したが依然として現在のグループオーナの電力状態以下である状況では、グループオーナは、再交渉をトリガするコマンドを発行しなくても良い。
【０１２９】
ブロック７６２で送信されるメッセージのフォーマットに拘わらず、処理は、決定ブロック７６４に進んでも良い。決定ブロック７６４で、処理は、再交渉コマンドが受信されたか否かに依存して分岐しても良い。決定ブロック７６４での処理は、グループオーナがクライアント装置から受信した要求に応答して再交渉のコマンドを条件付きで発行する実施形態で用いられても良い。したがって、処理は、決定ブロック７６４から決定ブロック７２０へループバックし、このようなコマンドが受信された場合のみ、再交渉の処理を開始する。このようなコマンドが受信されない場合、図７の処理は終了しても良い。
【０１３０】
しかしながら、理解されるべきことに、図７の処理を実行している装置は、決定ブロック７６４の実行に続いて他の動作を実行しても良い。例えば、該装置は、後で再交渉コマンドに応答するか、又は周期的に電力状態の変化を調べるか若しくは電力状態の変化を示すイベントに応答しても良い。代替又は追加で、装置は、ピアツーピアグループのクライアント装置に関連する機能のような他の機能を実行しても良い。図４〜７の処理は、グループの一部として通信するよう構成される任意の装置で実行されても良い。
【０１３１】
図８は、本発明が実施され得る適切なコンピューティングシステム環境８００の一例を示す。コンピューティングシステム環境８００は、適切なコンピューティング環境の単なる一例であり、本発明の使用又は機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境８００は、例示的な動作環境８００内に示した１コンポーネントまたはコンポーネントの組合せへの依存性又はそれらに対する要件を有すると解釈されるべきではない。
【０１３２】
本発明は、多数の他の汎用目的の又は特定目的のコンピューティングシステム環境又は構成で動作可能である。本発明と共に使用するのに適するコンピューティングシステム、環境及び／又は構成の良く知られた例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド若しくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラマブル消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステム若しくは装置のうちの任意のものを含む分散型コンピューティング環境、等を含むが、これらに限定されない。
【０１３３】
コンピューティング環境は、プログラムモジュールのようなコンピュータ実行可能命令を実行しても良い。概して、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。本発明は、タスクが通信ネットワークを通じて接続されるリモート処理装置により実行される分散型コンピューティング環境で実施されても良い。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートの両方のコンピュータ記憶媒体に置かれても良い。
【０１３４】
図８を参照すると、本発明を実施する例示的なシステムは、コンピュータ８１０の形式の汎用コンピューティング装置を有する。コンピュータ８１０のコンポーネントは、処理ユニット８２０、システムメモリ８３０、及びシステムメモリを含む種々のシステムコンポーネントを処理ユニット８２０に結合するシステムバス８２１を有し得るが、これらに限定されない。システムバス８２１は、メモリバス又はメモリ制御部、周辺バス、及び種々のバスアーキテクチャのうちの任意のものを用いるローカルバスを含む複数種類のバス構造のうちの任意のものであっても良い。例として、限定ではなく、このようなアーキテクチャは、ＩＳＡ（Industry  Standard  Architecture）バス、ＭＣＡ（Micro  Channel  Architecture）バス、ＥＩＳＡ（Enhanced  ISA）バス、ＶＥＳＡ（Video  Electronics  Standards  Association）ローカルバス、Mezzanineバスとしても知られているＰＣＩ（Peripheral  Component  Interconnect）バスを含む。
【０１３５】
コンピュータ８１０は、通常、種々のコンピュータ可読媒体を有する。コンピュータ可読媒体は、コンピュータ８１０によりアクセス可能な任意の利用可能な媒体であり、揮発性及び不揮発性媒体並びに取り外し可能及び非取り外し可能媒体の両方を含む。例として、限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を有しても良い。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータのような情報を記憶する方法又は技術で実装される揮発性及び不揮発性、取り外し可能及び非取り外し可能媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital  versatile  disk）又は他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望の情報を格納するために用いることができコンピュータ８１０によりアクセスできる任意の他の媒体を含むがこれらに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール又は搬送波又は他のトランスポート機構のような変調されたデータ信号内の他のデータを具現化しても良く、任意の情報配信媒体を有しても良い。用語「変調データ信号」は、１又は複数の特性セットを有する信号を意味し、又は信号内の情報をエンコードするために変更されても良い。例として限定ではなく、通信媒体は、有線ネットワーク又は直接有線接続のような有線媒体、並びに音響、ＲＦ、赤外線（ＩＲ）のような無線媒体及び他の無線媒体を含む。上述のうちの任意の組合せも、コンピュータ可読媒体の範囲に包含されるべきである。
【０１３６】
システムメモリ８３０は、ＲＯＭ（read  only  memory）８３１及びＲＡＭ（random  access  memory）８３２のような、揮発性メモリ及び／又は不揮発性メモリの形式のコンピュータ記憶媒体を含む。ＢＩＯＳ（basic  input/output  system）８３３は、起動中のような、コンピュータ８１０内の要素間の情報転送を助ける基本ルーチンを含み、通常、ＲＯＭ８３１に格納される。ＲＡＭ８３２は、通常、処理ユニット８２０により直ちにアクセス可能な及び／又はそれにより現在動作中のデータ及び／又はプログラムモジュールを有する。例として、限定ではなく、図８は、オペレーティングシステム８３４、アプリケーションプログラム８３５、他のプログラムモジュール８３６、及びプログラムデータ８３７を示す。
【０１３７】
コンピュータ８１０は、他の取り外し可能／非取り外し可能な、揮発性／不揮発性コンピュータ記憶媒体を有しても良い。単なる例として、図８は、非取り外し可能不揮発性磁気媒体からリードし及びそれにライトするハードディスクドライブ８４１、取り外し可能不揮発性磁気ディスク８５２からリードし又はそれにライトする磁気ディスクドライブ８５１、及びＣＤ  ＲＯＭ若しくは他の光学媒体のような取り外し可能不揮発性光ディスク８５６からリードし又はそれにライトする光ディスクドライブ８５５を示す。例示的な動作環境で使用可能な、他の取り外し可能／非取り外し可能な揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、ＤＶＤ（digital  versatile  disk）、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭ、等を有するが、これらに限定されない。ハードディスクドライブ８４１は、通常、インタフェース８４０のような非取り外し可能メモリインタフェースを通じてシステムバス８２１に接続される。磁気ディスクドライブ８５１及び光ディスクドライブ８５５は、通常、インタフェース８５０のような取り外し可能メモリインタフェースによりシステムバス８２１に接続される。
【０１３８】
上述の及び図８に示したドライブ及びそれらの関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ８１０のための他のデータの記憶を提供する。例えば、図８では、ハードディスクドライブ８４１は、オペレーティングシステム８４４、アプリケーションプログラム８４５、他のプログラムモジュール８４６、及びプログラムデータ８４７を格納するとして示される。留意すべきことに、これらのコンポーネントは、オペレーティングシステム８３４、アプリケーションプログラム８３５、他のプログラムモジュール８３６、及びプログラムデータ８３７と同じか又は異なり得る。オペレーティングシステム８４４、アプリケーションプログラム８４５、他のプログラムモジュール８４６、及びプログラムデータ８４７は、少なくともそれらが異なるコピーであることを示すために、ここで異なる番号が与えられる。ユーザは、キーボード８６２及び通常マウス、トラックボール又はタッチパッドと称されるポインティング装置８６１のような入力装置を通じて、コンピュータ８１０にコマンド及び情報を入力しても良い。他の入力装置（図示しない）は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、等を有しても良い。上述の及び他の入力装置は、システムバス８２０に結合されるユーザ入力インタフェース８６０を通じて、処理ユニット８２０に接続される場合が多いが、パラレルポート、ゲームポート又はＵＳＢ（universal  serial  bus）ポートのような他のインタフェース及びバス構造により接続することもできる。モニタ８９１又は他の種類のディスプレイ装置は、ビデオインタフェース８９０のようなインタフェースを介してシステムバス８２１にも接続される。モニタに加えて、コンピュータは、スピーカ８９７及びプリンタ８９６のような、出力周辺機器インタフェース８９５を通じて接続され得る他の周辺出力装置を有しても良い。
【０１３９】
コンピュータ８１０は、遠隔コンピュータ８８０のような１又は複数のリモートコンピュータへの論理コネクションを用いてネットワーク環境で動作しても良い。リモートコンピュータ８８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置又は他の一般的なネットワークノードであって良く、通常、コンピュータ８１０に関して上述した要素の多く又は全てを有する。しかしながら、メモリ記憶装置８８１のみを図８に示す。図８に示した論理コネクションは、ＬＡＮ（local  area  network）８７１及びＷＡＮ（wide  area  network）８７３を有するが、他のネットワークも有しても良い。このようなネットワーク環境は、職場、企業規模のコンピュータネットワーク、イントラネット及びインターネットで一般的である。
【０１４０】
ＬＡＮネットワーク環境で用いられるとき、コンピュータ８１０は、ネットワークインタフェース又はアダプタ８７０を通じて、ＬＡＮ８７１に接続される。ＷＡＮネットワーク環境で用いられるとき、コンピュータ８１０は、通常、モデム８７２又はインターネットのようなＷＡＮ８７３を介して通信を確立する他の手段を有する。内蔵又は外付けであって良いモデム８７２は、ユーザ入力インタフェース８６０又は他の適切なメカニズムを介してシステムバス８２１に接続されても良い。ネットワーク環境では、コンピュータ８１０に関連して示されたプログラムモジュール又はその部分は、遠隔メモリ記憶装置に格納されても良い。例として、限定ではなく、図８は、リモートアプリケーションプログラム８８５がメモリ装置８８１に存在するとして示す。理解されるべきことに、図示のネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を用いることが出来る。
【０１４１】
したがって、本発明の少なくとも１つの実施形態の幾つかの態様を記載したが、理解されるべきことに、当業者には種々の変形、修正及び改良が直ちに生じるだろう。
【０１４２】
例えば、グループオーナの最初の交渉及び再交渉が同一処理に従って実行されると記載したが、同一処理の使用は本発明の必要条件ではない。例えば、グループオーナが選択されると、装置は次のグループオーナを選択しても良い。
【０１４３】
このような代替、変更及び改良は、本開示の一部であると考えられ、本発明の精神及び範囲内に包含される。したがって、前述の説明及び図面は、単なる例である。
【０１４４】
本発明の上述の実施形態は、種々の方法のうちの任意の方法で実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組み合わせで実施されても良い。ソフトウェアで実施されるとき、単一のコンピュータで又は複数のコンピュータ間で分散して提供されるかに関わらず、ソフトウェアコードは、任意の適切なプロセッサ又はプロセッサの集合で実行できる。このようなプロセッサは、集積回路として実装され、集積回路コンポーネント内に１又は複数のプロセッサを有しても良い。しかしながら、プロセッサは、任意の適切な形態の回路を用いて実装されても良い。
【０１４５】
さらに、理解されるべきことに、コンピュータは、ラック搭載コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータのような多数の形態のうちの任意の形態で実施されても良い。さらに、コンピュータは、一般的にコンピュータとして考えられないが適切な処理能力を有する、ＰＤＡ（Personal  Digital  Assistant）、スマートフォン又は任意の他の適切なポータブル若しくは固定電子機器を含む装置内に実装されても良い。
【０１４６】
また、コンピュータは、１又は複数の入力及び出力装置を有しても良い。これらの相対は、特にユーザインタフェースを提示するために用いることができる。ユーザインタフェースを提供するために用いることができる出力装置の例は、出力の視覚的提示のためのプリンタ又はディスプレイスクリーン、及び出力の聴覚的提示のためのスピーカ又は他の音響生成装置を含む。ユーザインタフェースのために用いることができる入力装置の例は、キーボード、並びにマウス、タッチパッド及び離散化タブレットのようなポインティング装置を含む。別の例として、コンピュータは、音声認識を通じて又は他の可聴形式で入力情報を受信しても良い。
【０１４７】
このようなコンピュータは、ローカルエリアネットワーク又は企業ネットワーク若しくはインターネットのようなワイドエリアネットワークを含む１又は複数のネットワークにより任意の適切な形式で相互接続されても良い。このようなネットワークは、任意の適切な技術基づき、任意の適切なプロトコルに従って動作し、無線ネットワーク、有線ネットワーク又は光ファイバネットワークを有しても良い。
【０１４８】
また、本願明細書で概説した種々の方法又は処理は、種々のオペレーティングシステム若しくはプラットフォームのうちの任意の１つを用いる１又は複数のプロセッサで実行可能なソフトウェアとして符号化されても良い。さらに、このようなソフトウェアは、多数の適切なプログラミング言語及び／又はプログラミング若しくはスクリプティングツールのうちの任意のものを用いて書かれても良く、フレームワーク若しくは仮想マシンで実行される実行可能機械言語コード若しくは中間コードとしてコンパイルされても良い。
【０１４９】
これに関して、本発明は、１又は複数のプログラムをエンコードされたコンピュータ可読記憶媒体（又は複数のコンピュータ可読媒体）（例えば、コンピュータメモリ、１又は複数のフロッピディスク、ＣＤ（compact  disc）、光ディスク、ＤＶＤ（digital  video  disk）、磁気テープ、フラッシュメモリ、ＦＰＧＡ（Field  Programmable  Gate  Array）若しくは他の半導体素子内の回路構成、又は他の非一時的有形コンピュータ記憶媒体）として実施されても良く、該プログラムは、１又は複数のコンピュータ又は他のプロセッサで実行されると、上述の本発明の種々の実施形態を実施する方法を実行する。１又は複数のコンピュータ可読記憶媒体は持ち運び可能であり、上述の本発明の種々の態様を実施するために、該コンピュータ可読記憶媒体に格納された１又は複数のプログラムが１又は複数の異なるコンピュータ若しくは他のプロセッサにロードできる。本願明細書で用いられるように、用語「非一時的コンピュータか独記憶媒体」は、製造物（つまり、製品）又は機械として考えられるコンピュータ可読媒体のみを含む。代替又は追加で、本発明は、コンピュータ可読記憶媒体以外の、伝搬する信号のようなコンピュータ可読媒体として実施されても良い。
【０１５０】
用語「プログラム」又は「ソフトウェア」は、本願明細書では、上述の本発明の種々の態様を実施するためにコンピュータ又は他のプロセッサをプログラミングするために用いることができる任意の種類のコンピュータコード又はコンピュータ実行可能命令セットを表すために総称的に用いられる。さらに、理解されるべきことに、この実施形態の一態様によると、実行されると本発明の方法を実行する１又は複数のコンピュータプログラムは、単一のコンピュータ又はプロセッサに存在する必要はなく、本発明の種々の態様を実施するために多数の異なるコンピュータ又はプロセッサの間でモジュラ形式で分散されても良い。
【０１５１】
コンピュータ実行可能命令は、プログラムモジュールのような、１又は複数のコンピュータ又は他の装置により実行される多くの形式であっても良い。概して、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。通常、プログラムモジュールの機能は、種々の実施形態で必要に応じて結合され又は分散されても良い。
【０１５２】
また、データ構造は、任意の適切な形式でコンピュータ可読媒体に格納されても良い。説明を簡単にするために、データ構造は、該データ構造内の位置を通じて関連するフィールドを有するとして示された。このような関係は、フィールド間の関係を伝達するコンピュータ可読媒体内の位置を有するフィールドに記憶を割り当てることにより達成されても良い。しかしながら、データ構造内の情報間の関係を確立するために、ポインタ、タグ又はデータ要素間の関係を確立する他のメカニズムの使用を含む任意の適切なメカニズムが用いられても良い。
【０１５３】
本発明の種々の態様は、単独で、組合せで、又は上述の実施形態で詳細に議論されていない種々の構成で用いられることができるので、それらの用途は以上に説明された又は図面に記載されたコンポーネントの詳細事項及び構成に限定されない。例えば、一実施形態で説明した態様は、任意の方法で他の実施形態で説明した態様と組合せることができる。
【０１５４】
また、本発明は、一例を提供した方法として実施されても良い。この方法の一部として実行される動作は、任意の適切な方法で順序付けられても良い。したがって、実施形態は、図示した順序と異なる順序で動作が実行されることも想定しており、説明のための実施形態では順次的動作として示していても、幾つかの動作を同時に実行することも含む。
【０１５５】
請求項の要素を修飾するための請求項における「第１」、「第２」、「第３」等のような序数の使用は、それ自体がある請求項の要素の他者に対する優先度、先行若しくは順序、又は方法が実行される時間的順序を示すものではなく、請求項の要素を区別するために特定の名称を有する１つの請求項の要素を（序数の使用以外は）同じ名称を有する別の要素から区別するために単にラベルとして用いられる。
【０１５６】
また、本願明細書で用いられる表現及び用語は、説明を目的としており、限定として見なされるべきではない。「含む、有する（including、comprising、having、containing、involving）」及びそれらの変形は、以降に列挙される項目及びそれらの等価物、並びに追加の項目を包含することを意味する。
【図１】
2014509156.tif 000004
【図２】
2014509156.tif 000005
【図３】
2014509156.tif 000006
【図４】
2014509156.tif 000007
【図５】
2014509156.tif 000008
【図６】
2014509156.tif 000009
【図７】
2014509156.tif 000010
【図８】
2014509156.tif 000011
【国際調査報告】
2014509156.tif 000012
2014509156.tif 000013