(57)【要約】      （修正有）【課題】複数のアクセスポイントが他のアクセスポイントを制御するコントローラとして動作することを防ぎ、コントローラとして動作するアクセスポイントをより適切に決定する。【解決手段】無線ＬＡＮを構築するアクセスポイントとして動作する通信装置であって、少なくとも一つ以上のアクセスポイントを含んで構成されるネットワークにおいて他のアクセスポイントを制御するコントローラとして動作するための選択指示を受け付け、選択指示において用いられたコントローラ選択方法と、既にコントローラとして動作している他の通信装置において用いられたコントローラ選択方法との比較に基づいて、コントローラとして動作する装置を他の通信装置から通信装置へ変更するか否かを決定する。【選択図】図３
2020053867.tif 000002
【特許請求の範囲】
【請求項１】
無線ＬＡＮを構築するアクセスポイントとして動作する通信装置であって、
少なくとも一つ以上のアクセスポイントを含んで構成されるネットワークにおいて他のアクセスポイントを制御するコントローラとして動作するための選択指示を受け付ける受付手段と、
前記受付手段によって受け付けられた選択指示において用いられたコントローラ選択方法を特定する特定手段と、
前記ネットワークにおいて既にコントローラとして動作している他の通信装置を探索する探索手段と、
前記探索手段によって見つかった他の通信装置から、当該他の通信装置において用いられたコントローラ選択方法を示す情報を取得する取得手段と、
前記特定手段によって特定されたコントローラ選択方法と前記取得手段によって取得された情報が示すコントローラ選択方法との比較に基づいて、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更するか否かを決定する決定手段と、
を有することを特徴とする通信装置。
【請求項２】
前記探索手段によって他の通信装置が見つからなかった場合、前記通信装置は前記コントローラとして動作することを特徴とする請求項１記載の通信装置。
【請求項３】
前記決定手段によって、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更すると決定された場合、前記通信装置が前記コントローラとして動作することを前記他の通信装置へ通知する通知手段を更に有することを特徴とする請求項１又は２記載の通信装置。
【請求項４】
前記決定手段によって、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更すると決定された場合、前記他の通信装置が前記コントローラとして動作するために設定された設定情報を、当該他の通信装置から受信する受信手段を更に有することを特徴とする請求項１乃至３のいずれか一項に記載の通信装置。
【請求項５】
前記決定手段によって、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更すると決定されなかった場合、前記通信装置は、前記他の通信装置による制御を受けるエージェントとして動作することを特徴とする請求項１乃至４のいずれか一項に記載の通信装置。
【請求項６】
前記コントローラ選択方法は、ユーザによる選択指示、サービスプロバイダによる選択指示、及び自動選択による選択指示を含むことを特徴とする請求項１乃至５のいずれか一項に記載の通信装置。
【請求項７】
前記ネットワークは、Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格に基づくネットワークであり、前記取得手段は、ＩＥＥＥ  １９０５．１規格に規定されたＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージに含まれた情報を取得することを特徴とする請求項１乃至６のいずれか一項に記載の通信装置。
【請求項８】
無線ＬＡＮを構築するアクセスポイントとして動作する通信装置を制御する制御方法であって、
少なくとも一つ以上のアクセスポイントを含んで構成されるネットワークにおいて他のアクセスポイントを制御するコントローラとして動作するための選択指示を受け付ける受付工程と、
前記受け付けられた選択指示において用いられたコントローラ選択方法を特定する特定工程と、
前記ネットワークにおいて既にコントローラとして動作している他の通信装置を探索する探索工程と、
前記探索工程によって見つかった他の通信装置から、当該他の通信装置において用いられたコントローラ選択方法を示す情報を取得する取得工程と、
前記特定されたコントローラ選択方法と前記取得された情報が示すコントローラ選択方法との比較に基づいて、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更するか否かを決定する決定工程と、
を有することを特徴とする通信装置の制御方法。
【請求項９】
前記請求項１乃至７のいずれか一項に記載の通信装置としてコンピュータを動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線ＬＡＮのアクセスポイントとして動作する通信装置、通信装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅにおいて策定されたＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格は、一つ以上のアクセスポイント（以下、ＡＰ）により構成されるネットワーク（以下、マルチＡＰネットワーク）における各種の制御を規定した規格である。Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格において、マルチＡＰネットワークを構成するＡＰは、他のＡＰの各種情報を取得し、その情報を用いて複数ＡＰ間における効率的なネットワーク制御を実現する。マルチＡＰネットワークは、Ｍｕｌｔｉ−ＡＰ  Ｃｏｎｔｒｏｌｌｅｒ（以下、コントローラ）と、Ｍｕｌｔｉ−ＡＰ  Ａｇｅｎｔ（以下、エージェント）を含む。コントローラは、他のＡＰを制御してマルチＡＰネットワーク全体を制御するＡＰである。エージェントは、コントローラの管理下に入り、ネットワーク情報をコントローラに報知するＡＰである。コントローラは、エージェントからＩＥＥＥ１９０５．１規格で規定されたプロトコルを用いて受け取るネットワークトポロジ情報や、ディスカバリー情報などに基づいて、エージェントに指示を出してマルチＡＰネットワークの制御を行う。また、コントローラは、マルチＡＰネットワークと公衆網との間でデータ通信のプロキシ制御の実施や、データトラフィックの管理を行う。
【０００３】
特許文献１には、複数のＡＰにおける通信負荷を効率的に分散するための技術が記載されている。特許文献１では、接続制御装置が、複数のＡＰにおける通信負荷情報を取得し、通信負荷情報に基づいてＡＰに対して接続禁止指令や接続指令を送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０３８１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格では、マルチＡＰネットワーク上のコントローラは１つであることが規定されているが、コントローラの具体的な選択方法は規定されていない。また、コントローラの役割を担うＡＰを、別のＡＰへ変更する方法も規定されていない。そのため、マルチＡＰネットワーク上の複数のＡＰに対し各々にコントローラとしての役割設定を行うと、一つのマルチＡＰネットワーク上に複数のコントローラが存在してしまうという問題がある。
【０００６】
本発明はこの問題を解決するためになされたものであり、複数のアクセスポイントが他のアクセスポイントを制御するコントローラとして動作することを防ぎ、コントローラとして動作するアクセスポイントをより適切に決定することを可能にする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の通信装置は、無線ＬＡＮを構築するアクセスポイントとして動作する通信装置であって、少なくとも一つ以上のアクセスポイントを含んで構成されるネットワークにおいて他のアクセスポイントを制御するコントローラとして動作するための選択指示を受け付ける受付手段と、前記受付手段によって受け付けられた選択指示において用いられたコントローラ選択方法を特定する特定手段と、前記ネットワークにおいて既にコントローラとして動作している他の通信装置を探索する探索手段と、前記探索手段によって見つかった他の通信装置から、当該他の通信装置において用いられたコントローラ選択方法を示す情報を取得する取得手段と、前記特定手段によって特定されたコントローラ選択方法と前記取得手段によって取得された情報が示すコントローラ選択方法との比較に基づいて、前記コントローラとして動作する装置を前記他の通信装置から前記通信装置へ変更するか否かを決定する決定手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のアクセスポイントが他のアクセスポイントを制御するコントローラとして動作することを防ぎ、コントローラとして動作するアクセスポイントをより適切に決定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る通信システムのネットワーク構成を示す図である。
【図２】通信装置の機能構成を示す図である。
【図３】通信装置において実行される処理を示すフローチャートである。
【図４】探索応答メッセージの拡張フォーマットの一例を示す図である。
【図５】通信装置において実行される処理を示すフローチャートである。
【図６】通信装置間の制御シーケンスを説明する図である。
【図７】通信装置間の制御シーケンスを説明する図である。
【図８】実施形態２に係る通信装置において実行される処理を示すフローチャートである。
【図９】実施形態２に係る通信装置間の制御シーケンスを説明する図である。
【図１０】実施形態２に係る通信装置間の制御シーケンスを説明する図である。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明をその実施形態のいくつかの例に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
＜実施形態１＞
図１に、本実施形態に係る通信システムのネットワーク構成を示す。通信装置１０１〜１０４は、マルチＡＰネットワーク１１０上で無線通信を行う。
【００１２】
通信装置１０１と１０２はＩＥＥＥ８０２．１１シリーズ規格に準拠した無線ＬＡＮを構築するＡＰとして動作する装置である。通信装置１０３と１０４は各々ＡＰ１０１及び／又は１０２が構築した無線ＬＡＮに接続するステーション（以下、ＳＴＡ）として動作する装置である。また、通信装置１０１はＷＡＮ１０５に接続され、他の通信装置１０２〜１０４の通信を中継してＷＡＮに接続させることができる。なお、通信装置１０１と１０２は無線通信に加えて、又は代えて有線で通信しても良い。
【００１３】
ここで、通信装置１０１と通信装置１０２の何れか一方のＡＰは、他のＡＰを制御してマルチＡＰネットワーク１１０全体を制御する機能を備えるコントローラの役割を担う。また、コントローラの役割を担わない他方のＡＰは、コントローラの管理下に入り、ネットワーク情報をコントローラに報知する機能を備えるエージェントの役割を担う。例えば、コントローラは所定の制御メッセージを送信することにより、エージェントの接続チャネルや送信パワーを制御する。更に、コントローラは、エージェントを異なるＢＳＳ（Ｂａｓｉｃ  Ｓｅｒｖｉｃｅ  Ｓｅｔ）へ移行させたり、ＳＴＡのステアリング（ローミング等）を制御したり、その他、データトラフィックの制御やネットワークの診断などを行う。一方、エージェントがコントローラに報知するネットワーク情報とは、例えばエージェント自身の能力情報（ＨＴ  Ｃａｐａｂｉｌｉｔｙや、ＶＨＴ  Ｃａｐａｂｉｌｉｔｙ等）やエージェントに接続しているＳＴＡ及びＡＰの能力情報である。尚、エージェントに接続しているＡＰとは、Ｂａｃｋｈａｕｌ  ＳＴＡと呼ばれるマルチＡＰデバイスのＳＴＡ機能を指す。このほか、ネットワーク情報には、無線ＬＡＮ接続チャネルの情報、電波干渉に係る情報、ＳＴＡのリンク情報（接続や切断の通知）、トポロジの変化を通知するための情報、Ｂｅａｃｏｎフレームのメトリクス情報などが含まれてもよい。なお、コントローラの役割を担うＡＰが、エージェントの機能を同時に備えていてもよく、本実施形態では通信装置１０１と通信装置１０２の何れもが、コントローラの機能とエージェントの機能の両方を備えているものとする。Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格では、１つのマルチＡＰネットワークにおいてコントローラは１つと規定されている。エージェントは複数存在しても構わない。従って、本実施形態では、通信装置１０１と通信装置１０２の何れか一方のＡＰがコントローラとして動作し、他方がエージェントとして動作するものとして説明する。
【００１４】
尚、通信装置１０１や１０２の具体例として、無線ＬＡＮルータやＰＣ、タブレット端末、スマートフォン、テレビ、プリンタ、複写機、プロジェクタ等があるが、後述のハードウェア構成及び機能構成を満たすものであればこれらに限定されない。
【００１５】
図２に、通信装置１０１（及び１０２）のハードウェア構成を示す。通信装置１０１は、記憶部２０１、制御部２０２、機能部２０３、入力部２０４、出力部２０５、通信部２０６、アンテナ２０７を備える。
【００１６】
記憶部２０１はＲＯＭやＲＡＭ等のメモリにより構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の情報を記憶する。なお、記憶部２０１として、ＲＯＭ、ＲＡＭ等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＤＶＤなどの記憶媒体を用いてもよい。また、記憶部２０１が複数のメモリ等を備えていてもよい。
【００１７】
制御部２０２はＣＰＵやＭＰＵ等のプロセッサにより構成され、記憶部２０１に記憶されたプログラムを実行することにより通信装置１０１全体を制御する。また、制御部２０２は、記憶部２０１に記憶されたマルチＡＰコントローラ部２０８、及びマルチＡＰエージェント部２０９として機能するプログラムのうち、通信装置１０１の設定や操作により決定される少なくとも一つの機能を実行する。
【００１８】
通信装置１０１がコントローラの役割とエージェントの役割を同時に担う場合には、マルチＡＰコントローラ部２０８とマルチＡＰエージェント部２０９の両方の機能が有効化される。通信装置１０１がコントローラの役割のみを担う、つまりエージェントの役割を担わない場合には、マルチＡＰコントローラ部２０８の機能が有効化され、マルチＡＰエージェント部２０９の機能は無効化される。逆に、通信装置１０１がエージェントの役割のみを担う、つまりコントローラの役割を担わない場合には、マルチＡＰコントローラ部２０８の機能は無効化され、マルチＡＰエージェント部２０９の機能が有効化される。マルチＡＰコントローラ部２０８の機能により、通信装置１０１はエージェントから受信したネットワークトポロジ情報やディスカバリー情報に基づいて、エージェントに指示を出してマルチＡＰネットワークを制御する。ここで、トポロジ情報は例えばＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈ仕様に基づく１９０５  Ｔｏｐｏｌｏｇｙ  Ｎｏｔｉｆｉｃａｔｉｏｎ  ｍｅｓｓａｇｅや１９０５  Ｔｏｐｏｌｏｇｙ  Ｒｅｓｐｏｎｓｅ  ｍｅｓｓａｇｅである。ディスカバリー情報は、例えば１９０５  ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈ  ｍｅｓｓａｇｅや１９０５  ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅ  ｍｅｓｓａｇｅである。これらはＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈ仕様に基づくメッセージである。これらの情報に基づいて、コントローラは、Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈ仕様でマルチＡＰ制御メッセージとして規定されたＣｌｉｅｎｔ  Ａｓｓｏｃｉａｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｒｅｑｕｅｓｔ  ｍｅｓｓａｇｅを送信することができる。これにより、マルチＡＰネットワークにおける他のＢＳＳにＳＴＡが接続することを禁止させ、所定のＢＳＳへ明示的にＳＴＡをステアリング（ローミング）し、ＢＳＳ間で効率的なＳＴＡステアリングを可能とする。なお、通信装置１０１がコントローラの役割を担わない場合には、マルチＡＰコントローラ部２０８を備えない機能構成であってもよい。
【００１９】
制御部２０２は、記憶部２０１に記憶されたプログラムとＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）との協働により通信装置１０１全体を制御するようにしてもよい。また、制御部２０２がマルチコア等の複数のプロセッサを備え、複数のプロセッサにより通信装置１０１全体を制御するようにしてもよい。
【００２０】
また、制御部２０２は、機能部２０３を制御して、印刷や投影等の所定の処理を実行する。機能部２０３は、通信装置１０１が所定の処理を実行するためのハードウェアである。例えば、通信装置１０１がプリンタである場合、機能部２０３は印刷部であり、印刷処理を行う。機能部２０３が処理するデータは、記憶部２０１に記憶されているデータであってもよいし、後述する通信部２０６を介して他の通信装置と通信したデータであってもよい。
【００２１】
入力部２０４は、マウス等のポインティングデバイスや音声入力、ボタン操作等を介してユーザからの各種操作の受付を行う。出力部２０５は、ユーザに対して各種出力を行う。ここで、出力部２０５による出力とは、ＬＥＤへの表示や画面上への表示、スピーカーによる音声出力、振動出力等の少なくとも１つを含む。なお、タッチパネルのように入力部２０４と出力部２０５の両方を１つのモジュールで実現するようにしてもよい。
【００２２】
通信部２０６は、データリンク層のプロトコルであるＩＥＥＥ８０２．１１シリーズ規格に準拠した無線ＬＡＮの制御や、ＩＥＥＥ８０２．３規格に基づく有線ＬＡＮ等の有線通信の制御を行う。更に、ネットワーク層の通信プロトコルであるＩＰ通信の制御等を行う。また、通信部２０６は、ＩＥＥＥ８０２．１１規格やＩＥＥＥ８０２．３規格に従った通信上で、ＩＥＥＥ１９０５．１規格に従ったプロトコルを実行し、Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格に従ったコントローラ及び／又はエージェントの制御を行う。尚、ＩＥＥＥ１９０５．１規格は、データリンク層とネットワーク層の間の階層に位置するプロトコルを規定した規格である。しかし、これに限らず、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ、ＵＷＢ、ＺｉｇＢｅｅ、ＭＢＯＡ等の他の無線通信方式に準拠した通信装置や他の有線通信方式に準拠した通信装置にも、本実施形態の構成を適用可能である。ここで、ＭＢＯＡは、Ｍｕｌｔｉ  Ｂａｎｄ  ＯＦＤＭ  Ａｌｌｉａｎｃｅの略である。また、ＵＷＢには、ワイヤレスＵＳＢ、ワイヤレス１３９４、ＷＩＮＥＴなどが含まれる。また、通信部２０６はアンテナ２０７を制御して、無線通信のための無線信号の送受信を行う。
【００２３】
図３は、通信装置１０１において、マルチＡＰネットワークのコントローラとして動作する旨の選択指示がなされた場合に実行される処理を示したフローチャートである。図３の各ステップは、記憶部２０１に記憶されたプログラムを制御部２０２が読み出し、実行することで実現される。尚、通信装置１０２においても、同様に図３の処理は実行可能である。また、図３に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
【００２４】
まず、通信装置１０１のマルチＡＰコントローラ部２０８は、コントローラとして動作する設定を行うための選択指示があるか否かを判断する（Ｓ３０１）。ユーザサービスプロバイダ変更指示がない場合には（Ｓ３０１のいいえ）、変更指示を受け付けるまで待機するべくＳ３０１へと処理を戻す。
【００２５】
Ｓ３０１の判断の結果、コントローラとして動作するための選択指示があると判断された場合（Ｓ３０１のはい）、マルチＡＰコントローラ部２０８はマルチＡＰネットワークにおいて既にコントローラとして動作中のＡＰを探索する（Ｓ３０２）。探索方法としては、例えばＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ仕様に基づき、ＩＥＥＥ  １９０５．１規格に規定されたＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージをマルチキャスト送信して行われる。しかし、この方法に限らず任意のプロトコルや任意のメッセージを利用してもよい。
【００２６】
なお、マルチＡＰネットワーク上のどのＡＰがコントローラの役割を担っているかを確認するための指示を、ユーザ操作等によって受け付けた場合には、通信装置１０１は、ユーザＳ３０１の処理の前にユーザＳ３０２の探索処理を行ってもよい。その場合、探索の結果見つかった既にコントローラとして動作中のＡＰを、ユーザが識別できるように出力部２０５を用いて出力する。
【００２７】
Ｓ３０２における探索処理を行い、通信装置１０１のマルチＡＰコントローラ部２０８は、マルチＡＰネットワーク上にコントローラとして既に動作しているＡＰが存在するか否かを判断する（Ｓ３０３）。ここでの判断は、例えばＳ３０２で送信したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージに対する応答（ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ）を受信したか否かに基づいて判断すればよい。なお、応答を受信しない場合には、所定期間または所定回数だけ再度Ｓ３０２の探索処理を行っても良い。
【００２８】
Ｓ３０３の判断の結果、マルチＡＰネットワーク上にコントローラとして動作しているＡＰが存在しないと判断された場合には（Ｓ３０３のいいえ）、通信装置１０１のマルチＡＰコントローラ部２０８は、自装置をコントローラとして設定する（Ｓ３０４）。コントローラとして設定された通信装置１０１は、以降はマルチＡＰネットワーク上のコントローラとして機能する。
【００２９】
Ｓ３０４の後、通信装置１０１のマルチＡＰコントローラ部２０８は、Ｓ３０１で受け付けた選択指示において用いられたコントローラ選択方法を記憶部２０１へ記録し（Ｓ３０５）、処理を終了する。ここで、コントローラ選択方法とは、ＡＰに対して、マルチＡＰネットワークのコントローラとして動作するための選択指示を行うための方法である。本実施形態において、３種類のコントローラ選択方法がある。一つ目は、ユーザ（エンドユーザ）の指定によってコントローラを選択する方法である。二つ目はサービスプロバイダによる指定によってコントローラを選択する方法である。三つ目は、自動選択アルゴリズムによりコントローラを選択する方法である。Ｓ３０５で通信装置１０１は、Ｓ３０１で受け付けた選択指示において用いられたコントローラ選択方法がこれら３つの方法のうちのどれであるかを示す情報を記憶部２０１へ記憶する。尚、ユーザの指定によってコントローラを選択する方法では、通信装置１０１の入力部２０４へのユーザによる操作に基づいて選択指示を受け付けてもよいし、スマートフォン等の外部装置から通信部２０６を介して選択指示を受け付けてもよい。また、サービスプロバイダによる指定は、ＷＡＮ１０５及び通信部２０６を介して選択指示を受け付けるようにしてもよい。自動選択アルゴリズムは、コントローラを一つに決定できる方法であれば任意のアルゴリズムであってよい。尚、コントローラが電源ＯＦＦ等によって自身の役割を停止する場合や、マルチＡＰネットワークから離脱する場合には、自動選択アルゴリズムにより、マルチＡＰネットワーク上のコントローラ機能を有するＡＰの中から新規にコントローラが選択される。このように、マルチＡＰネットワーク上にコントローラが見つからない場合には、任意のＡＰを新規コントローラとして役割設定することが可能である。
【００３０】
Ｓ３０３の判断の結果、マルチＡＰネットワーク上にコントローラとして動作しているＡＰが存在すると判断された場合には、Ｓ３０６へ進む。Ｓ３０６において通信装置１０１は、コントローラとして動作しているＡＰにおいて用いられたコントローラ選択方法を示す情報を、このＡＰから取得する。取得方法としては、例えば前述したコントローラの探索時に受信したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージから取得する。又は、探索の結果発見されたコントローラへ、改めて選択方法を問い合わせるためのメッセージを送信し、その応答から取得してもよい。
【００３１】
図４に、本実施形態において、コントローラ選択方法の通知に使用するＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットの一例を示す。Ｃｏｎｔｒｏｌｌｅｒ  Ｓｅｌｅｃｔｉｏｎ  Ｒｅｓｐｏｎｓｅ  ＴＬＶ  （ｔｙｐｅ−ｌｅｎｇｔｈ−ｖａｌｕｅ）  ｆｏｒｍａｔはＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格固有のフォーマットである。Ｃｏｎｔｒｏｌｌｅｒ  Ｓｅｌｅｃｔｉｏｎ  Ｒｅｓｐｏｎｓｅ  ＴＬＶ  ｆｏｒｍａｔは、ｔｌｖＴｙｐｅ、ｔｌｖＬｅｎｇｔｈ、ｔｌｖＶａｌｕｅの３つのフィールドから構成される。また、マルチＡＰエージェントからのＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージに対する応答に使われる。本実施形態では、図に示す通り各フィールドの長さを各々１ｏｃｔｅｔ、２ｏｃｔｅｔ、１ｏｃｔｅｔとして定義するが、フォーマットはこれらのフィールド及びフィールド長に限定されない。
【００３２】
ｔｌｖＴｙｐｅフィールドへは、本メッセージがＣｏｎｔｒｏｌｌｅｒ  Ｓｅｌｅｃｔｉｏｎ  Ｒｅｓｐｏｎｓｅ  ＴＬＶであることを示す所定の値を設定する。なお、ｔｌｖＴｙｐｅフィールドの値はマルチＡＰ  ＴＬＶフォーマットのタイプを識別するために定義された、フォーマット毎に固有の値であり、本実施例においては任意の値を利用可能とする。
【００３３】
ｔｌｖＬｅｎｇｔｈフィールドは、後続のフィールドにおけるｏｃｔｅｔ数を示す値であり、本実施形態では後続のｔｌｖＶａｌｕｅフィールドのｏｃｔｅｔ数である１を設定するものとする。
【００３４】
ｔｌｖＶａｌｕｅフィールドは、コントローラ選択方法を識別するための情報である。値が０ｘ００の場合はエンドユーザ指定により選択されたコントローラ、値が０ｘ０１の場合はサービスプロバイダ指定により選択されたコントローラ、値が０ｘ０２の場合は自動選択アルゴリズムにより選択されたコントローラであることを示す。０ｘ０３から０ｘＦＦまでの値は、将来これら以外の指定方法を定義するために予約されているものとする。なお、本実施形態ではコントローラ選択方法のうち、優先度が高いものから順にエンドユーザ指定、サービスプロバイダ指定、自動選択アルゴリズムとして説明する。しかしながら、マルチＡＰネットワーク上で共通の定義がなされていれば、これに限らず任意の選択方法や任意の優先順位に基づいてコントローラの選択を制御することが可能である。また、コントローラの選択方法を識別する情報を含む構成であれば、Ｃｏｎｔｒｏｌｌｅｒ  Ｓｅｌｅｃｔｉｏｎ  Ｒｅｓｐｏｎｓｅ  ＴＬＶ  ｆｏｒｍａｔの各フィールド値は上述した値に限定されず任意の値を使用することができる。通知方法もＣｏｎｔｒｏｌｌｅｒ  Ｓｅｌｅｃｔｉｏｎ  Ｒｅｓｐｏｎｓｅを使った通知方法に限らず任意の通知方法であってもよい。このように、本実施形態ではコントローラ選択方法に関する情報を含むようＩＥＥＥ  １９０５．１規格に規定されたＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージを拡張して、コントローラ選択方法の通知に使用する。
【００３５】
図３へ説明を戻す。Ｓ３０７において、通信装置１０１のマルチＡＰコントローラ部２０８は、Ｓ３０１で受け付けた選択指示において用いられたコントローラ選択方法（以下、新規コントローラ選択方法）がエンドユーザ指定のコントローラ選択方法であるか否かを判断する。
【００３６】
Ｓ３０７の判断の結果、新規コントローラ選択方法がエンドユーザ指定であると判断された場合は（ステップＳ３０７のはい）、通信装置１０１のマルチＡＰコントローラ部２０８は、自装置を新しいマルチＡＰコントローラへ役割変更する（ステップＳ３０８）。なお、前述した通りコントローラ装置は同時にエージェントとして機能してもよく、その場合、エージェント部２０９の機能を有効にしたままコントローラ部２０８の機能を有効化することで、コントローラの機能とエージェントの機能を同時に機能させる。このように、新規コントローラ選択方法がエンドユーザ指定の場合は、既にコントローラとして動作しているＡＰにおいて用いられたコントローラ選択方法（以下、現コントローラ選択方法）に関わらず無条件でコントローラの変更を実施する。すなわち、現在のコントローラがエンドユーザ指定によって選択されたコントローラであっても、後のエンドユーザ指定により設定を上書きしてコントローラは変更される。
【００３７】
続いて、通信装置１０１のマルチＡＰコントローラ部２０８は、新規コントローラ選択方法として「エンドユーザ指定」を記憶部２０１に記録する（ステップＳ３０９）。記録されたコントローラ選択方法は、エージェントからコントローラ探索メッセージやコントローラ選択方法の問合せを受信した場合に、記憶部２０１から読み出して通知される。
【００３８】
さらに通信装置１０１のマルチＡＰコントローラ部２０８は、現在のマルチＡＰコントローラに代わり自装置が新規マルチＡＰコントローラとして動作する旨を現在のマルチＡＰコントローラへ通知する。そして、コントローラ設定情報を取得する（ステップＳ３１０）。取得方法としては、ＩＥＥＥ  １９０５．１規格に規定された各種のメッセージを用いることが可能であるが、ＩＥＥＥ  １９０５．１に限らず任意のプロトコル、任意のフォーマットを用いてもよい。なお、コントローラ設定情報には、ＳＳＩＤやチャネル設定、認証に必要となるパスワードや証明書、エージェントの管理情報やネットワークのトポロジ情報、ディスカバリー情報などの情報のうちの少なくとも一つが含まれる。
【００３９】
通信装置１０１のマルチＡＰコントローラ部２０８は、取得したコントローラ設定情報を基に、新規コントローラとしての設定を行い（ステップＳ３１１）、処理を終了する。これ以降、通信装置１０１はマルチＡＰネットワークのコントローラとして、エージェントから取得したネットワークのトポロジ情報やディスカバリー情報に基づいて、エージェントへ指示を出してマルチＡＰネットワークの制御を行う。
【００４０】
一方、Ｓ３０７の判断の結果、新規コントローラ選択方法がエンドユーザ指定でないと判断された場合には（Ｓ３０７のいいえ）、マルチＡＰコントローラ部２０８は、新規コントローラ選択方法がサービスプロバイダ指定か否かを判断する（Ｓ３１２）。
【００４１】
Ｓ３１２の判断の結果、新規コントローラ選択方法がサービスプロバイダ指定であると判断された場合には（Ｓ３１２のはい）、マルチＡＰコントローラ部２０８は、さらに現コントローラ選択方法がエンドユーザ指定か否かを判断する（Ｓ３１３）。Ｓ３１３の判断の結果、現コントローラ選択方法がエンドユーザ指定でないと判断された場合には（Ｓ３１３のいいえ）、通信装置１０１のマルチＡＰコントローラ部２０８は、自装置を新しいマルチＡＰコントローラへ役割変更する（Ｓ３１４）。
【００４２】
続いて、通信装置１０１のマルチＡＰコントローラ部２０８は、新規コントローラ選択方法として「サービスプロバイダ指定」を記憶部２０１へ記録し（Ｓ３１５）、Ｓ３１０へ処理を移行する。ここでの記録方法の詳細は、前述のＳ３０９と同様のため説明を省略する。
【００４３】
一方Ｓ３１３の判断の結果、現コントローラ選択方法がエンドユーザ指定であると判断された場合、マルチＡＰコントローラ部２０８は、Ｓ３０１で受け付けた選択指示の指示元（この場合はサービスプロバイダ）へエラーを通知する（Ｓ３１６）。エラー通知の方法は、Ｓ３０１で受け付けた選択指示に対する応答として通知すればよく、任意のプロトコル、任意のフォーマットを用いることが可能である。なお、エラー通知にはエラーの原因等、詳細情報を含めてもよい。
【００４４】
Ｓ３１３〜Ｓ３１６で示したように、新規コントローラ選択方法がサービスプロバイダ指定の場合は、現コントローラ選択方法がエンドユーザ指定でなければコントローラの変更を実施する。現コントローラ選択方法がエンドユーザ指定であればコントローラを変更せずに処理を終了する。
【００４５】
一方、Ｓ３１２の判断の結果、新規コントローラ選択方法がサービスプロバイダ指定でない、即ち自動選択アルゴリズムであると判断された場合には（Ｓ３１２のいいえ）、Ｓ３１７の処理が行われる。Ｓ３１７において、通信装置１０１のマルチＡＰコントローラ部２０８は、現コントローラ選択方法がエンドユーザ指定またはサービスプロバイダ指定か否かを判断する（Ｓ３１７）。
【００４６】
Ｓ３１７の判断の結果、現コントローラ装置がエンドユーザ指定でもサービスプロバイダ指定でもないと判断された場合には（Ｓ３１７のいいえ）、Ｓ３１８の処理が行われる。Ｓ３１８において、通信装置１０１のマルチＡＰコントローラ部２０８は、自動選択アルゴリズムにより自装置が新規マルチＡＰコントローラとなるか否かを選択する（Ｓ３１８）。自動選択アルゴリズムは任意の方法が用いられ得るため、詳細な説明は省略する。
【００４７】
続いて、通信装置１０１のマルチＡＰコントローラ部２０８は、新規コントローラ選択方法として「自動選択アルゴリズム」を記憶部２０１に記録し（ステップＳ３１９）、Ｓ３１０へ処理を移行する。ここでの記録方法の詳細は、前述のＳ３０９と同様のため説明を省略する。
【００４８】
Ｓ３１７の判断の結果、現コントローラ選択方法がエンドユーザ指定またはサービスプロバイダ指定であると判断された場合（Ｓ３１７のはい）、マルチＡＰコントローラ部２０８は、Ｓ３０１で受け付けた選択指示の指示元へエラーを通知する（Ｓ３１６）。
【００４９】
Ｓ３１６〜Ｓ３１９で示したように、新規コントローラ選択方法が自動選択アルゴリズムの場合は、現コントローラ選択方法も自動選択アルゴリズムの場合に限りコントローラの変更を実施する。現コントローラ選択方法がエンドユーザ指定またはサービスプロバイダ指定であればコントローラを変更せずに処理を終了する。
【００５０】
図５は、通信装置１０１において、コントローラの役割を無効化する場合に実行される処理を示すフローチャートである。図５の各ステップは、記憶部２０１に記憶されたプログラムを制御部２０２が読み出し、実行することで実現される。尚、通信装置１０２においても、同様に図５の処理は実行可能である。また、図５に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
【００５１】
まず、通信装置１０１のマルチＡＰコントローラ部２０８は、エージェントから探索メッセージを受信したか否かを判断する（Ｓ５０１）。前述した通り、例えばＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ規格では、探索メッセージはＩＥＥＥ１９０５．１規格に規定されたＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージをマルチキャスト送信するよう定義されている。従ってここでの判断は、本メッセージを受信したか否かを判断すればよい。なお、探索メッセージとしては、本メッセージに限らず任意のプロトコルや任意のメッセージを利用することが可能である。
【００５２】
Ｓ５０１の判断の結果、エージェントから探索メッセージを受信していないと判断された場合には（Ｓ５０１のいいえ）、通信装置１０１のマルチＡＰコントローラ部２０８は、探索メッセージを受信するまで待機するべくＳ５０１へと処理を戻す。
【００５３】
一方、Ｓ５０１の判断の結果、エージェントから探索メッセージを受信したと判断された場合には（Ｓ５０１のはい）、通信装置１０１のマルチＡＰコントローラ部２０８は、記憶部２０１に記録されたコントローラ選択方法を読み込む（Ｓ５０２）。コントローラ選択方法は、前述したＳ３０５、Ｓ３０９、Ｓ３１５、Ｓ３１９の何れかにおいて、自装置がコントローラとして機能する際に記憶部２０１へ記録された情報である。
【００５４】
続いて、通信装置１０１のマルチＡＰコントローラ部２０８は、Ｓ５０２で読み込んだコントローラ選択方法に基づいて、探索応答メッセージを生成し、エージェントへ送信する（Ｓ５０３）。探索応答メッセージの送信先は、前述したＳ５０１で探索メッセージを送信したエージェントである。なお、探索応答メッセージは、例えば図４で示したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットが用いられる。
【００５５】
さらに、通信装置１０１のマルチＡＰコントローラ部２０８は、探索応答メッセージを送信したエージェントから、役割変更通知を受信したか否かを判断する（Ｓ５０４）。役割変更通知は、前述したＳ３１０で説明した通り、現在のマルチＡＰコントローラに代わり新たなＡＰが新規マルチＡＰコントローラとして役割変更する場合に通知される。なお、役割変更通知を受信しない場合には、所定期間または所定回数だけ再度エージェントからの役割変更通知を待ってもよい。
【００５６】
Ｓ５０４の判断の結果、エージェントから役割変更通知を受信していないと判断された場合には（Ｓ５０４のいいえ）、通信装置１０１のマルチＡＰコントローラ部２０８は処理を終了し、コントローラとしての動作を継続する。
【００５７】
一方、Ｓ５０４の判断の結果、エージェントから役割変更通知を受信したと判断された場合には（Ｓ５０４のはい）、マルチＡＰコントローラ部２０８は、コントローラ設定情報を新規マルチＡＰコントローラとして動作を開始するＡＰへ転送する（Ｓ５０５）。転送方法やコントローラ設定情報の詳細は、Ｓ３１０で説明済みのため、ここでは説明を省略する。なお、本実施形態ではエージェントからの役割変更通知に応じてコントローラがコントローラ設定情報を転送するものとした。しかし、コントローラ設定情報の転送方法としてはこれに限らず、任意のタイミングでコントローラ装置が転送してもよいし、コントローラに代わりコントローラ設定情報を管理する他のエージェントが転送してもよい。
【００５８】
最後に、通信装置１０１のマルチＡＰコントローラ部２０８は、自装置のマルチＡＰコントローラ機能を無効化し、処理を終了する（Ｓ５０６）。なお、通信装置１０１がコントローラとエージェントの両方として機能していた場合には、コントローラの機能だけを停止し、エージェントの機能は継続される。
【００５９】
図５に示したフローチャートの処理の結果、通信装置１０１はマルチＡＰネットワーク上の新規コントローラとなるＡＰに対しコントローラ設定情報を転送し、自装置のコントローラの機能を無効化することができる。
【００６０】
続いて、本実施形態の通信装置１０１と通信装置１０２のシステム全体の制御処理について、図６及び図７を用いて説明する。
【００６１】
図６に、コントローラ選択方法としてサービスプロバイダ指定が用いられたコントローラから、エンドユーザ指定によってコントローラが変更される場合の制御シーケンスを示す。なお、同図ではＡＰ１０１がサービスプロバイダにより選択指示され、コントローラとして機能するよう設定され、ＡＰ１０２がエージェントとして機能するよう予め設定されているものとする。
【００６２】
ＡＰ１０２は、エンドユーザからのコントローラとしての役割設定指示（６０１）に応じて、マルチＡＰネットワーク上の現コントローラの探索を開始する（６０２）。
【００６３】
コントローラの探索シーケンスとして、ＡＰ１０１とＡＰ１０２はＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージ（６０３）及びＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（６０４）を送受信する。なお、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（６０４）は、図４で示したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットである。ＡＰ１０２は、ＡＰ１０１からのＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（６０４）を受信することにより、サービスプロバイダ指定のコントローラであるＡＰ１０１を発見する（６０５）。
【００６４】
続いてＡＰ１０２は、現コントローラであるＡＰ１０１のコントローラ選択方法サービスプロバイダ指定であること、及び自装置におけるコントローラ選択方法がエンドユーザ指定であることに基づいて、コントローラを変更すると決定する。そして、自装置をコントローラとして役割設定する（６０６）。
【００６５】
コントローラとしての役割を設定したＡＰ１０２は、自装置がコントローラへ役割を変更したことをＡＰ１０１へ通知する（６０７）。
【００６６】
ＡＰ１０２から役割変更通知（６０７）を受信したＡＰ１０１は、コントローラ設定情報をＡＰ１０２へ転送し（６０８）、自装置のコントローラとしての役割を無効化する（６０９）。なお、ＡＰ１０１がコントローラとエージェントの両方として機能していた場合には、コントローラの機能だけを停止し、エージェントの機能を継続してもよい。
【００６７】
一方、ＡＰ１０２は、ＡＰ１０１から取得したコントローラ設定情報を基にコントローラとしての設定を行い（６１０）、新しいマルチＡＰコントローラとして機能する。
【００６８】
最後にＡＰ１０２は、コントローラとしての役割設定指示（６０１）が成功したことを、指示元であるエンドユーザへ表示等を行うことによって通知する（６１１）。
【００６９】
このように、マルチＡＰネットワーク上にサービスプロバイダ指定のコントローラが存在していても、エンドユーザは自身が選択する装置を新しいコントローラとして設定することができる。また、現在のコントローラから設定情報を引き継ぐことで、ユーザが改めて、新たなコントローラへ様々な設定を行う手間を省くことができる。
【００７０】
なお、図６ではＡＰ１０１がサービスプロバイダのオペレーターによりコントローラとして機能するよう予め設定される例を示した。同様に、自動選択アルゴリズムによりコントローラとして機能するよう予め設定された場合にも、エンドユーザは自身が選択する装置を新しいコントローラとして選択することができる。
【００７１】
続いて図７に、コントローラ選択方法としてエンドユーザ指定が用いられたコントローラから、サービスプロバイダ指定によってコントローラの変更を行った場合の制御シーケンスを示す。図６のシーケンスとは異なり、同図ではＡＰ１０１がエージェントとして機能するよう設定され、ＡＰ１０２がエンドユーザにより選択指示され、コントローラとして機能するよう予め設定されているものとする。
【００７２】
ＡＰ１０１は、サービスプロバイダからのコントローラとしての役割設定指示（７０１）に応じて、マルチＡＰネットワーク上の現コントローラの探索を開始する（７０２）。
【００７３】
コントローラの探索シーケンスとして、ＡＰ１０１とＡＰ１０２はＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージ（７０３）及びＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（７０４）を送受信する。なお、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（７０４）は、図４で示したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットである。ＡＰ１０１は、ＡＰ１０２からＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（７０４）を受信することにより、エンドユーザ指定のコントローラであるＡＰ１０２を発見する（７０５）。
【００７４】
続いてＡＰ１０１は、現コントローラであるＡＰ１０２のコントローラ選択方法がエンドユーザ指定であること、及び自装置におけるコントローラ選択方法がサービスプロバイダ指定であることに基づいて、コントローラを変更しないと決定する。そして、受け付けたコントローラの役割設定指示（７０１）が失敗したことを、指示元であるサービスプロバイダへ通知する（７０６）。
【００７５】
このように、マルチＡＰネットワーク上にエンドユーザ指定のコントローラが存在している場合には、サービスプロバイダは自身が選択する装置を新しいコントローラとして設定することができない。すなわち、エンドユーザ指定によるコントローラが、マルチＡＰネットワーク外のサービスプロバイダにより意図せず設定変更されるのを防止することができる。
【００７６】
なお、図７ではＡＰ１０１がサービスプロバイダのオペレーターによりコントローラとして役割設定の指示を受ける例を示した。同様に、自動選択アルゴリズムによりコントローラとして機能するよう設定指示を受けた場合にも、エンドユーザ指定によるコントローラが意図せず設定変更されるのを防止することができる。この場合、コントローラとしての役割設定指示（７０１）が失敗したことは、ＡＰ１０１の出力部２０５へ出力することで通知される。
【００７７】
以上説明したように、本実施形態によれば、マルチＡＰネットワークにおいて複数のコントローラが同時に存在してしまうことを防ぐことができる。また、新たにコントローラとして動作しようとする装置と既にコントローラとして動作中の装置それぞれのコントローラ選択方法を特定し、これらを比較し、より優先度の高いコントローラ選択方法を用いて設定されたＡＰをコントローラに決定する。これにより、コントローラとして動作するＡＰをより適切に決定することができるようになる。
【００７８】
＜実施形態２＞
実施形態１では、コントローラとしての役割設定指示を受け付けたことに応じて現コントローラを探索し、現コントローラから受信した探索応答メッセージに含まれる現コントローラのコントローラ選択方法に関する情報を取得する構成とした。これに対して本実施形態では、マルチＡＰネットワークへの参加時にコントローラから受信した探索応答メッセージを記録し、記録した探索応答メッセージに含まれるコントローラ選択方法に関する情報を取得する例を説明する。なお、本実施形態の通信装置の機能構成は、実施形態１の通信装置１０１（及び１０２）と同様であるため、説明を省略する。
【００７９】
図８は、エージェントとして動作している通信装置１０１がコントローラへ役割を変更する場合に、実行される処理を示すフローチャートである。図８の各ステップは、通信装置１０１の記憶部２０１に記憶されたプログラムを制御部２０２のマルチＡＰコントローラ部２０８及びマルチＡＰエージェント部２０９が読み出し、実行することで実現される。同図において、ステップＳ８０５〜Ｓ８１７の処理は、各々図３のステップＳ３０７〜Ｓ３１９の処理と同様であるため、説明を省略する。尚、通信装置１０２においても、同様に図８の処理は実行可能である。また、図８に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
【００８０】
まず、通信装置１０１のマルチＡＰエージェント部２０９は、ユーザからの指示に応じてマルチＡＰネットワーク１１０へ参加する（Ｓ８０１）。マルチＡＰネットワークへの参加方法としては、例えばＷｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ仕様に基づき、Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ｓｅｔｕｐ（以下、ＷＰＳ）を用いることが可能である。又は、Ｄｅｖｉｃｅ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｐｒｏｔｏｃｏｌ（以下、ＤＰＰ）を用いてもよい。ＷＰＳとＤＰＰはＷｉ−Ｆｉ  Ａｌｌｉａｎｃｅが策定した規格であり、ＳＳＩＤや暗号鍵等の無線ＬＡＮ接続に必要な通信パラメータを通信装置に簡単に設定するための規格である。なお、マルチＡＰネットワークへの参加方法としては、これらの方式やプロトコルに限定されない。
【００８１】
通信装置１０１のマルチＡＰエージェント部２０９は、現コントローラが用いたコントローラ選択方法を取得して記録する（Ｓ８０２）。ここでは、前Ｓ３０１のマルチＡＰネットワーク参加時にコントローラから受信する探索応答メッセージから、コントローラ選択方法を取得して記憶部２０１へ記録するものとする。なお、マルチＡＰネットワークへの参加時にコントローラを探索する方法は、図３のＳ３０２と同様であるため説明を省略する。
【００８２】
続いて、通信装置１０１のマルチＡＰコントローラ部２０８は、コントローラとして動作するための選択指示があるか否かを判断する（Ｓ８０３）。本ステップの処理は、図３のＳ３０１と同様であるため、説明を省略する。
【００８３】
Ｓ８０３の判断の結果、コントローラとして動作するための選択指示があると判断された場合（Ｓ８０３のはい）、マルチＡＰコントローラ部２０８は現在のコントローラにおいて用いられたコントローラ選択方法を記憶部２０１から読み込む（Ｓ８０４）。ここでは、前述のＳ３０２で記録されたコントローラ選択方法を、記憶部２０１から読み込むものとする。なお、本ステップで読み込んだコントローラ選択方法は、以降のステップＳ８１１及びステップＳ８１５の判断に用いられる。
【００８４】
続いて、本実施形態の通信装置１０１と通信装置１０２のシステム全体の制御処理について、図９及び図１０を用いて説明する。
【００８５】
図９に、コントローラ選択方法としてサービスプロバイダ指定が用いられたコントローラから、エンドユーザ指定によってコントローラが変更される場合の制御シーケンスを示す。なお、同図ではＡＰ１０１がサービスプロバイダにより選択指示され、コントローラとして機能するよう設定され、ＡＰ１０２がエージェントとして機能するよう予め設定されているものとする。ＡＰがコントローラやエージェントとして起動する場合、Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ仕様に基づき所定の機能を立ち上げる。例えば、ＡＰがエージェントとして起動すると、マルチＡＰネットワークへ参加するためにＢａｃｋｈａｕｌ  ＳＴＡと呼ばれるマルチＡＰデバイスのＳＴＡ機能を立ち上げ、ネットワークへの参加処理を開始する。一方、ＡＰがコントローラとして起動すると、Ｆｒｏｎｔｈａｕｌ  ＡＰと呼ばれるマルチＡＰデバイスのＡＰ機能を立ち上げ、他のＳＴＡ装置や他のＡＰで起動されたＢａｃｋｈａｕｌ  ＳＴＡからの接続を待ち受ける。
【００８６】
まず、ユーザのＷＰＳのプッシュボタン押下に対応する操作により（９０１、９０２）、エージェントであるＡＰ１０２はマルチＡＰネットワークへの参加を開始する。
【００８７】
マルチＡＰネットワークへの参加シーケンスでは、Ｗｉ−Ｆｉ  ＥａｓｙＭｅｓｈＴＭ仕様に基づいて、ＷＰＳ  ＡｕｔｈｅｎｔｉｃａｔｉｏｎやＷＰＳ  Ａｓｓｏｃｉａｔｉｏｎなどの無線フレーム（９０３）がＡＰ１０１とＡＰ１０２の間で送受信される。更には、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージ（９０４）、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（９０５）がＡＰ１０１とＡＰ１０２の間で送受信される。
【００８８】
なお、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（９０５）は、図４で示したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットである。ＡＰ１０２は、ＡＰ１０１からのＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（９０５）を受信することにより、コントローラ選択方法としてサービスプロバイダ指定が用いられたＡＰ１０１を発見する（９０６）。更に、現コントローラ（ＡＰ１０１）のコントローラ選択方法（この場合は、サービスプロバイダ指定）を記憶装置へ記録する（９０７）。
【００８９】
また、ＡＰ１０２は、エンドユーザからのコントローラとして動作するための選択指示（９０８）に応じて、現コントローラ（ＡＰ１０１）のコントローラ選択方法を記憶装置から読み込み（９０９）、以降のシーケンスへと処理を進める。
【００９０】
なお、同図においてシーケンス（９１０）〜（９１５）の各シーケンスの詳細は、図６のシーケンス（６０６）〜（６１１）と同様であるため、説明を省略する。
【００９１】
なお、図９ではＡＰ１０１がサービスプロバイダのオペレーターによりコントローラとして機能するよう予め設定される例を示した。同様に、自動選択アルゴリズムによりコントローラとして機能するよう予め設定された場合にも、エンドユーザは自身が選択する装置を新しいコントローラとして選択することができる。
【００９２】
続いて図１０に、コントローラ選択方法としてエンドユーザ指定が用いられたコントローラから、サービスプロバイダ指定によってコントローラへの変更を行った場合の制御シーケンスを示す。図９のシーケンスとは異なり、同図ではＡＰ１０１がエージェントとして機能するよう設定され、ＡＰ１０２がエンドユーザにより選択指示され、コントローラとして機能するよう予め設定されているものとする。
【００９３】
まず、ユーザのＷＰＳのプッシュボタン押下に対応する操作により（１００１、１００２）、エージェントであるＡＰ１０１はマルチＡＰネットワークへの参加を開始する。
【００９４】
マルチＡＰネットワークへの参加シーケンスでは、図９のシーケンス（９０３〜９０５）と同様に、ＷＰＳ  ＡｕｔｈｅｎｔｉｃａｔｉｏｎやＷＰＳ  Ａｓｓｏｃｉａｔｉｏｎなどの無線フレーム（１００３）がＡＰ１０１とＡＰ１０２の間で送受信される。また、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｓｅａｒｃｈメッセージ（１００４）や、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（１００５）がＡＰ１０１とＡＰ１０２の間で送受信される。
【００９５】
なお、ＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（１００５）は、図４で示したＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージの拡張フォーマットである。ＡＰ１０１は、ＡＰ１０２からＡＰ−Ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅメッセージ（１００５）を受信することにより、エンドユーザ指定のコントローラであるＡＰ１０２を発見する（１００６）。そして、現コントローラー（ＡＰ１０２）のコントローラ選択方法（ここでは、エンドユーザ指定）を記憶装置へ記録する（１００７）。
【００９６】
また、ＡＰ１０１は、サービスプロバイダからのコントローラとしての役割設定指示（１００８）に応じて、現コントローラー（ＡＰ１０２）の選択方法を記憶装置から読み込む（１００９）。その結果、現コントローラであるＡＰ１０２のコントローラ選択方法がエンドユーザ指定であること、及び自装置のコントローラ選択方法がサービスプロバイダ指定であることに基づいて、コントローラを変更しないと決定する。そして、受け付けたコントローラの役割設定指示（１００８）が失敗したことを、指示元であるサービスプロバイダへ通知する（１０１０）。
【００９７】
なお、図１０ではＡＰ１０１がサービスプロバイダのオペレーターによりコントローラとして役割設定の指示を受ける例を示した。同様に、自動選択アルゴリズムによりコントローラとして機能するよう設定指示を受けた場合にも、エンドユーザ指定によるコントローラが意図せず設定変更されるのを防止することができる。この場合、コントローラとしての役割設定指示（１００８）が失敗したことは、ＡＰ１０１の出力部２０５へ出力することで通知される。
【００９８】
以上のように、本実施形態ではマルチＡＰネットワークへの参加時にコントローラから受信した探索応答メッセージを記録し、記録した探索応答メッセージに含まれるコントローラ選択方法に関する情報を取得する構成とした。その結果、コントローラ役割設定指示時に現コントローラを改めて探索しなくてもよくなり、実施形態１よりもより一層効率的にコントローラの決定処理を行うことができる。
【００９９】
（その他の実施形態）
上述の実施形態においては、コントローラ選択方法として三つの方法を例示したが、これら以外の方法を用いてもよいし、コントローラ選択方法の優先度も上述の順番に限るものではない。また、コントローラ選択方法の優先度自体をユーザが変更できるようにしてもよい。
【０１００】
上記実施形態においては、図４で示すように、既にコントローラとして動作している装置がコントローラ選択方法を示す情報を送信したが、コントローラ選択方法を示す情報としてコントローラ選択方法の優先度を示す情報を送信するようにしてもよい。これに限らず、送信されるコントローラ選択方法を示す情報は、コントローラ選択方法の比較ができる情報であればその他の内容であっても構わない。
【０１０１】
本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体（記憶媒体）等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、ｗｅｂアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１０２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０３】
２０１  記憶部
２０２  制御部
２０３  機能部
２０４  入力部
２０５  出力部
２０６  通信部
２０７  アンテナ
２０８  マルチＡＰコントローラ部
２０９  マルチＡＰエージェント部
【図１】
2020053867.tif 000003
【図２】
2020053867.tif 000004
【図３】
2020053867.tif 000005
【図４】
2020053867.tif 000006
【図５】
2020053867.tif 000007
【図６】
2020053867.tif 000008
【図７】
2020053867.tif 000009
【図８】
2020053867.tif 000010
【図９】
2020053867.tif 000011
【図１０】
2020053867.tif 000012