以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下では、IEEE802.11規格に準拠した無線LANシステムを用いた例について説明するが、本発明は、これに限られるものではない。すなわち、以下に説明するのと同様の機器及びサービス等の発見処理を行う無線通信システム(及びそれに含まれる無線通信装置)に、以下の議論を適用することが可能である。
(無線通信システム)
図1に、以下の各実施形態に係る無線通信システムの構成例(無線ネットワーク構成例)を示す。本無線通信システムは、複数の無線LANの通信機能を有する無線通信装置を含んで構成される。なお、ここでの無線通信装置は、例えば、STA101、NAN102、NAN103、P2P105、P2P106及びP2P107を含む。ここで、図1には示されていないが、無線通信システム内には、無線LANのアクセスポイント(AP)等が含まれうる。
STA101は、以下に説明する各処理を実行する通信装置であり、Wi−Fi Direct ServicesおよびWi−Fi NAN規格による機器及びサービス発見処理を実行可能な通信装置である。ここで、Wi−Fi Alliance Neighbor Awareness Networkingのことを、以下ではNAN又はWiFi NANと呼ぶ。また、Wi−Fi Direct Servicesによる探索のことを、P2Pのよる探索と呼ぶ。STA101は、Wi−Fi Direct ServicesとWi−Fi NANとに基づいて、周囲の通信装置およびそれらが提供するサービスを検索し、ユーザに対してその検索結果を表示する機能を有する。
NAN102及びNAN103は、Wi−Fi NAN規格による機器及びサービス発見処理を実行可能な通信装置であり、NANクラスタ104に参加している。ここで、NAN102は、NANクラスタ104のMasterとして動作しており、NAN103は、NANクラスタ104にNon−Master Non−Syncとして参加しているものとする。NANクラスタ104は、NAN102及びNAN103が参加しているNANクラスタである。NANクラスタ104に参加しているNANデバイスは、6chでネットワークを構築している。ここで、NANクラスタ104においては、DW(Discovery Window)は、512TU(Time Unit)周期で到来する16TU分の期間であるものとする。すなわち、DWから次のDWの先頭までの期間が512TUである。なお、DWは、所定の周期で到来する所定の期間であり、512TU周期以外の周期で到来する16TU以外の長さの期間であってもよい。
なお、通信装置は、NAN102によって提供されるサービスを利用するために、NAN102が接続している不図示のAPに接続し、そのAPを介してNAN102と通信する必要があるものとする。この場合、NAN102は、サービスを提供していることを通知するメッセージであるPublishメッセージに、APを介してNAN102に接続する必要があることを示す情報を付与して必ず送信する。例えば、NAN102は、NAN Connection Capability Attributeの、Connection Capability Bitmapにおいて、WLAN Infrastructureを有効にしたメッセージを送信する。なお、NAN Connection Capability Attribute等は、NAN規格において規定されている、メッセージ内の情報要素である。
一方、通信装置は、NAN103によって提供されるサービスを利用するために、不図示のIBSSに参加して、NAN103と通信する必要があるものとする。この場合、NAN103は、Publishメッセージに、IBSSに参加してNAN103と通信する必要があることを示す情報を付与して送信する。例えば、NAN103は、NAN Connection Capability Attributeの、Connection Capability Bitmapにおいて、IBSSを有効にしたメッセージを送信する。
P2P105、P2P106、及びP2P107は、Wi−Fi Direct Services規格による機器及びサービス発見処理を実行可能な通信装置である。例えば、P2P107はP2P Group Owner(GO)として動作しているものとする。また、P2P105及びP2P106は、P2Pネットワークを構築しておらず、また、GOやP2P Client(CL)として動作していないものとする。P2P105及びP2P106は、後述するSearch State、Listen Stateを繰り返しているものとする。
(STA101の構成)
続いて、後述の各処理を実行するSTA101のハードウェア構成例及び機能構成例について、図2及び図3を用いて説明する。
図2は、本実施形態に係るSTA101のハードウェア構成を示すブロック図である。STA101は、そのハードウェア構成の一例として、記憶部201、制御部202、機能部203、入力部204、出力部205、通信部206及びアンテナ207を有する。
記憶部201は、ROM、RAMの両方、もしくは、いずれか一方により構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部201として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。
制御部202は、CPU、または、MPUにより構成され、記憶部201に記憶されたプログラムを実行することによりSTA101全体を制御する。なお、制御部202は、記憶部201に記憶されたプログラムとOS(Operating System)との協働によりSTA101全体を制御するようにしてもよい。
また、制御部202は、機能部203を制御して、撮像や印刷、投影等の所定の処理を実行する。機能部203は、STA101が所定の処理を実行するためのハードウェアである。例えば、STA101がカメラである場合、機能部203は撮像部であり、撮像処理を行う。また、例えば、STA101がプリンタである場合、機能部203は印刷部であり、印刷処理を行う。また、例えば、STA101がプロジェクタである場合、機能部203は投影部であり、投影処理を行う。機能部203が処理するデータは、記憶部201に記憶されているデータであってもよいし、後述する通信部206を介して他のSTAと通信したデータであってもよい。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、ユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも1つを含む。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。
通信部206は、IEEE802.11規格シリーズに準拠した無線通信の制御や、IP通信の制御を行う。また、通信部206はアンテナ207を制御して、無線通信のための無線信号の送受信を行う。STA101は通信部206を介して、画像データや文書データ、映像データ等のコンテンツを他の通信装置と通信する。
図3は、STA101の機能構成例を示すブロック図である。STA101は、その機能構成として、例えば、無線LAN制御部301、NANクラスタ探索部302、NANデバイス探索部303、P2P探索部304、探索制御部305、UI制御部306、及び記憶部307を有する。
無線LAN制御部301は、他の無線LAN通信機能を有する通信装置との間で無線信号の送受信を行うためのアンテナ及び回路、及びそれらを制御するプログラムを含んで構成される。無線LAN制御部301は、Wi−Fi Direct Services及びWi−Fi NANによる機器及びサービス発見処理を実行することができる。
NANクラスタ探索部302は、NANクラスタを探索するための制御部である。NANクラスタ探索部302は、例えば、無線LAN制御部301を介してDiscovery Beaconを受信することによって、周囲に存在するNANクラスタを発見することができる。ここで、Discovery Beaconには、NAN Information Element(IE)が付与される。NANクラスタ探索部302は、NAN IEが付与されたBeaconを受信することで、受信したBeaconがNANクラスタに関するBeaconであることを識別することができる。
NANデバイス探索部303は、STA101が参加しているNANクラスタ内に存在するNANデバイスを探索するための制御部である。NANデバイス探索部303は、例えば、無線LAN制御部301を介して、Publishメッセージの送信、Subscribeメッセージの受信等を実行することによって、NANクラスタ内のNANデバイスを発見する。Publishメッセージ及びSubscribeメッセージ等のNANのサービス発見に関わるメッセージは、NAN Service Device Frame(SDF)という形式で送受信される。また、各メッセージは、NANに関する属性情報(NAN Attributes)を含んで構成される。
P2P探索部304は、P2Pデバイスを探索するための制御部であり、Wi−Fi Direct Servicesで規定されているDevice Discoveryを実行する制御部である。P2P探索部304は、例えば、無線LAN制御部301を介して、Wi−Fi Directに準拠したProbe Request(探索要求)を送信し、P2Pデバイスからその応答(探索応答)を受信することによって、P2Pデバイスを発見する。このとき、Probe RequestにはSSIDとして「DIRECT−」が接頭辞として付与されると共にP2Pデバイスとしての能力等の情報を含んだP2P Information Element(P2P IE)が付与される。
探索制御部305は、NANデバイス探索部303とP2P探索部304とを制御して、Wi−Fi Direct Services又はWi−Fi NANに対応した通信装置を発見するハードウェアおよびプログラムを含んで構成される。また、探索制御部305は、発見した通信装置をリスト化して、その結果をUI制御部306に表示させるための制御をさらに実行するハードウェアおよびプログラムをも含む。探索制御部305が実行する処理の詳細については後述する。
UI制御部306は、STA101の不図示のユーザによるSTA101の操作を受け付けるためのタッチパネルやボタンなどのユーザインタフェースに関するハードウェアと、それらを制御するプログラムとを含んで構成される。また、UI制御部306は、例えば画像又は音声によってユーザに対して情報を提示するためのインタフェースを有する。記憶部307は、STA101が動作するプログラムおよびデータを保存するROMとRAMとを含んで構成される。
(処理の流れ)
続いて、上述の構成を有するSTA101が実行する処理についてのいくつかの実施形態を説明する。
<実施形態1>
図4は、実施形態1に係る、サービスを提供している通信装置をSTA101が探索する処理の流れの例を示すフローチャートである。本処理は、探索制御部305が、NANクラスタ探索部302、NANデバイス探索部303、及びP2P探索部304を制御することによって実行される。
STA101は、まず、UI制御部306を介して、ユーザから探索開始の指示を受け付けたか否かを確認する(S401)。STA101は、ユーザからの指示がない場合(S401でNO)はユーザから指示を受けるまで待ち受け、ユーザから探索開始の指示を受け付けると(S401でYES)、NANクラスタ探索部302によって、NANクラスタを探索する(S402)。S402では、STA101は、例えば、Discovery Beaconの受信を一定期間待ち受ける。
STA101は、NANクラスタを発見できたどうかを判定し(S403)、発見できた場合(S403でYES)には、そのNANクラスタに参加する(S404)。このとき、STA101は、複数のNANクラスタを発見した場合、例えば、Wi−Fi NANの規格に従って、Discovery Beaconに含まれるcluster grade(CG)が最大のNANクラスタに参加しうる。STA101は、NANクラスタに参加すると、続いて、参加したNANクラスタ内でNANデバイスを探索する(S405)。ここでは、STA101は、例えば、Wi−Fi NAN規格に従って、Service Discovery Frame(SDF)のSubscribeメッセージを送信する。なお、Subscribeメッセージは、サービスを提供するNANデバイスを探索するためのメッセージである。サービスを提供しているNANデバイスは、Subscribeメッセージを受信すると、SDFのPublishメッセージで応答する。これにより、STA101は、サービスを提供するNANデバイスを発見することができる。STA101は、一定期間にわたってNANデバイスの探索を実行後、UI制御部306にその探索の結果を表示することによって、発見したデバイスをユーザに通知する(S406)。
その後、STA101は、Wi−Fi Direct Services規格に従って、P2P Device Discoveryを実行して、Wi−Fi Direct Servicesに対応した通信装置を発見する(S407)。なお、STA101は、S403でNANクラスタを発見しなかったと判定した場合(S403でNO)には、上述のS404〜S406の処理を実行せずに、P2Pの探索を実行する(S407)。この処理は、例えば、全チャネルスキャン、Listen State、及びSearch Stateからなる。ここで、Listen Stateは、所定のチャネルに一定期間留まり他の通信装置からの探索要求を待ち受ける状態である。また、Search Stateは、複数のチャネル(例えば1ch、6ch、11ch)において待ち受けている通信装置を探索するために順番にProbe Request(探索要求)を送信する状態である。これらの処理については後述する。
STA101は、その後、P2P Device Discoveryで発見したWi−Fi Direct Servicesに対応した通信装置を、S406と同様に、UI上に表示してユーザに通知する(S408)。STA101は、S408において探索結果を表示した後に、再度、NANクラスタ発見処理から処理を繰り返す。ただし、STA101は、S402〜S408の処理を所定回数だけ実行した後に、探索処理を終了してもよい。
なお、S406及びS408で表示される探索結果は、以前の探索結果に、新たに発見された通信装置の情報を追加したものでありうる。例えば、S406で表示された探索結果に、S407での探索結果が追加されてS408において表示されてもよい。また、探索結果は、以前の探索結果の一部又は全部に上書きされてもよい。例えば、S406で表示された探索結果は、S407における探索結果では上書きされず、次にS405の探索を実行した結果によって上書きされうる。同様に、S408で表示されたS407における探索結果の部分は、S405における探索結果では上書きされず、次のS407の探索の実行結果によって上書きされうる。すなわち、NANによる検索結果は、別の機会のNANによる検索結果で上書きされ、P2P Device Discoveryによる検索結果は、別の機会のP2P Device Discoveryによる検索結果で上書きされるようにしてもよい。
次に、サービスを提供する通信装置をSTA101が探索する際のシーケンスについて、図5を用いて説明する。このとき、STA101の周囲には、図1のような通信装置及びNANクラスタが存在するものとする。
まず、STA101の不図示のユーザが、デバイスを探索するためにSTA101のUIを操作し、デバイス探索処理の開始を指示する(S501)。図6に探索を開始する際の画面601の例を示す。画面601の左上に、「探索開始」ボタンがあり、それを押すことで、以下に示すデバイス探索処理が開始される。また、画面601は、「NAN探索開始」ボタンおよび「P2P探索開始」ボタンを含みうる。これらは、それぞれ、NANデバイスまたはP2Pデバイスを単独で探索する場合にユーザが利用することができるボタンである。ただし、多くのユーザにとっては、NANやP2Pといった無線LANの形態を意識せずに通信装置やサービスを検索できることが有用であるため、「探索開始」ボタンが用意される。なお、探索開始時においては、デバイスがまだ発見されていないため、画面601には、デバイス名や接続形態は表示されていない。
STA101は、「探索開始」ボタンの押下を検出すると、まず、NANクラスタの探索を開始する。これは図4のS402に相当する処理である。ここで、NAN102は、NAN Masterであるため、定期的にDiscovery Beaconを送信している(S502)。STA101は、このDiscovery Beaconを受信することにより、NANクラスタを発見することができる。STA101は、NANクラスタを発見すると、そのNANクラスタに参加する。ここで、STA101がNon−Master Non−SyncとしてNANクラスタに参加するものとして以降の説明をする。
STA101は、NANクラスタに参加すると、DW(Discovery Window)期間において、NAN MasterからSync Beaconを受信する(S503)。DW期間は、16TU(=16×1024マクロ秒)の長さの期間である。ここでは、NAN102がNAN Masterであるため、STA101は、NAN102から送信されるSync Beaconを受信する。そして、STA101は、NAN探索処理として、NANクラスタのメンバに対してSubscribeメッセージを送信してサービスを検索する(S504)。
このとき、NAN102はこのDW期間に同期しており、NAN103はこのDW期間に同期していないものとする。この場合、NAN102だけがSubscribeメッセージを受信し、NAN103は、受信をオフにしているため、Subscribeメッセージを受信しない。NAN102は、Subscribeメッセージを受信すると、提供しているサービスをPublishメッセージでSTA101に通知する(S505)。
STA101は、DW期間が終わるとDOZE期間に入り、DOZE期間では一切の送受信を行わず、消費電力を低減させる。DOZE期間は、DW期間が終わってから次のDW期間になるまでの期間であり、その長さは496TU(=496×1024マクロ秒)である。NAN102は、DW期間外でも、NANクラスタ外のNANデバイスがNAN102を発見することを容易にするために、Discovery Beaconを定期的に送信する(S506)。
NAN102は、次のDW期間に入ると、前のDW期間と同様に、Sync Beaconを送信する(S507)。そして、STA101も、前のDW期間と同様に、サービスを発見するためにSubscribeメッセージを送信する(S508)。このDW期間では、NAN102およびNAN103が、共に同期しており、受信をオンにしていてこのSubscribeメッセージを受信しているものとする。この場合、NAN102及びNAN103は、Subscribeメッセージを受信したことに応じて、自身が提供しているサービスをPublishメッセージでSTA101に通知する(S509、S510)。
このように、NAN探索処理では、DW期間とDOZE期間とを繰り返すことによってNANデバイスが探索される。DW期間では、Subscribeメッセージの送信、Publishメッセージの受信により、通信装置およびそれらが提供するサービスが、他の通信装置によって発見される。そして、DW期間が終わると、STA101は、DOZE期間に入り、送受信を停止して消費電力を低減する。これらの処理はS405の処理に相当する。なお、図5では、DW期間が2回でDOZE期間が1回の場合を示しているが、それぞれの回数はこれらに限られない。ただし、DW期間とDOZE期間とは、交互に繰り返される。
STA101は、NAN探索処理が終わると、その結果をUI上に表示する(S511)。図7に、このときに表示される画面701の例を示す。ここまでにNAN102及びNAN103が発見されているため、画面701には、それらが表示される。また、画面701には、各デバイスがサービスを利用する際に必要な接続形態と、デバイスを発見したときの探索方法も表示される。NAN102は、上述のとおり、Publishメッセージにおいて、サービスを提供する際にWLAN Infrastructureを利用することを通知しているため、NAN102に対応する接続形態には、Infraと表示される。一方で、NAN103は、上述のとおり、Publishメッセージにおいて、サービスを提供する際にIBSSを利用することを通知しているため、NAN103に対応する接続形態には、IBSSと表示される。また、NAN102及びNAN103のいずれもNANを利用して発見されたものであるため、NAN102及びNAN103に対応する探索方法にはそれぞれNANと表示される。
STA101は、NAN探索を完了して探索結果を表示すると、次にP2P探索を実行する。この処理は、図4のS407の処理に対応する。P2P探索では、Wi−Fi Direct Servicesの規格に従って、Scan Phaseで全チャネルをスキャンした後に、Listen StateとSearch Stateとが切り替えられながら実行される。これにより、STA101は、Wi−Fi Direct Servicesに対応した他の通信装置を発見することができる。
STA101は、まず、すべてのチャネルにP2Pデバイスを探索していることを明示するために、P2P IEを付与したProbe Request(探索要求)を送信する(S512)。このとき、P2P105及びP2P106は、P2P規格で規定されるSearch Stateであり、S512で送信されたProbe Requestに応答しないものとする。一方で、P2P107は、GOで動作しており、Probe Requestに対して、P2P IEを付与すると共に、提供しているサービスの情報を含めたProbe Response(探索応答)を送信する(S513)。S512及びS513の処理は、Scan Phaseと呼ばれる。
次に、STA101は、Listen Stateに入る(S514、S515)。Listen Stateの通信装置は、他の通信装置から送信されるP2P探索要求を特定のチャネルに留まって待ち受け、自分から探索要求を送信せずに、探索要求が来た場合に探索応答を返すだけとなる。本例では、STA101は、チャネル1(1ch)に留まるものとする。このとき、P2P105が、Search Stateにおいて、Probe Requestを1chにブロードキャストしたとする(S514)。STA101は、Probe Requestを受信すると、その応答としてProbe Responseを送信する(S515)。また、STA101は、Probe Requestを受信することにより、P2P105の存在を認識できるため、P2P105を探索結果に追加する。
STA101は、Listen Stateを完了すると、続いてSearch Stateに入る(S516〜S519)。Search Stateにおいて、STA101は、1ch、6ch及び11chに、順番にProbe Requestを送信する(S516、S517、S518)。このとき、STA101は、Probe Requestを送信した後に、そのProbe Requestを送信したチャネルに所定期間だけ留まり、他の通信装置からのProbe Responseを待ち受ける。ここで、本例では、P2P106が11chでListen Stateで探索要求を待ち受けているものとする。すると、P2P106は、Probe Requestを11chで受信し、その応答として、Probe ResponseをSTA101に送信する(S519)。STA101は、P2P106からProbe Responseを受信することにより、P2P106の存在を認識でき、Probe Responseに含まれたP2P IEの情報からサービスの情報を取得する。そして、STA101は、P2P106を、探索の結果に追加する。
なお、一回のP2P探索処理(S407)により、上述のScan Phase、Listen State及びSearch Stateは繰り返し実行されてもよいが、本例ではそれぞれ1回ずつ実行されるものとする。
STA101は、P2P探索処理を完了すると、P2Pの探索結果をS511の結果に追加してUIに表示する(S520)。図8は、このときにUIに表示される画面801の例を示す。画面801には、図7の画面701に、P2P探索で発見されたP2Pデバイスとして、P2P107、P2P106及びP2P105が追加される。このとき、P2P107はGOとして動作しているため、GOやCLとして動作していないP2Pデバイスと区別するために、P2P107に対応する接続形態としてP2P GOと表示される。一方、他のP2PデバイスであるP2P106及びP2P105は、対応する接続形態としてP2Pと表示される。このように、サービスを利用するときの接続形態をユーザに提示することにより、ユーザが、自身が特定した接続形態のデバイスを選択することができる。
また、P2P105〜P2P107は、P2P探索によって発見されたため、それらに対応する探索方法には、P2Pと表示される。これにより、ユーザは、発見した通信装置が、NANで発見した通信装置なのか、P2Pで発見した通信装置であるのかを知ることができる。これにより、ユーザは、例えばNAN102のサービスをよく利用する場合には、NANで探索すればNAN102を発見できることを知ることができる。そして、ユーザは、予めNAN102を使うことがわかっている場合には、探索開始ボタンでNANとP2Pの両方の探索を実行するのではなく、NAN探索開始ボタンを使用することができる。これにより、NANの探索のみを実行することにより、DOZE期間の頻度が高くなるため、STA101の消費電力を低減させることができる。また、ユーザは、よく使うサービスを提供している通信装置がP2Pで発見される場合には、P2P探索開始ボタンを押すことによってP2Pの探索だけを実行し、NAN探索を省くことができる。これにより、STA101は、すばやくP2Pデバイスを発見することができる。
本実施形態では、STA101は、NAN探索をDW2回分の期間にわたって実行し、P2P探索ではScan Phase、Listen State、Search Stateをそれぞれ1回ずつ実行するものとしたが、これに限られない。すなわち、様々なタイミング及び期間においてNAN探索及びP2P探索が実行されうる。このとき、NAN探索の時間とP2P探索の時間とをそれぞれ固定時間にせず、可変時間としうる。これにより、同様の動作をする2つの通信装置が存在する場合に、一方がNAN探索を実行中に他方がP2P探索を実行し、また、一方がP2P探索を実行中に他方がNAN探索を実行することによって、互いを発見できなくなることを防ぐことができる。
また、本実施形態では、P2Pでの探索よりもNANの探索の方を先に実行しているが、P2Pでの探索を先に実行してもよい。例えば、ユーザがよく利用するサービスを提供する通信装置を発見できる可能性が高い探索方式を先に実行するようにしてもよく、この場合、ユーザが期待する結果を早期に得ることが可能となる。
また、本実施形態では、P2Pでの探索の後に、再度NANクラスタの探索処理を実行するものとしたが、必ずしもそのような処理は行われなくてもよい。例えば、すでに発見しているNANクラスタが存在する場合は、NANクラスタ探索処理(S402、S403)を行わずに、発見済みのNANクラスタへ参加してもよい(S404)。これにより、例えば周囲の通信装置の状況が大きく変動せず、参加可能なNANクラスタが実質的に変動しない場合に、迅速にNANクラスタ内でのNANデバイス探索を開始することができる。
本実施形態によれば、ユーザによる一回の探索開始ボタンの押下という操作によって、NANデバイスとP2Pデバイスとの両方の通信装置を一度に探索することができる。このように、ユーザが、デバイスの探索の際に、P2Pの探索とNANの探索とのそれぞれを別個に開始する必要がなくなるため、利便性が向上する。
UIにおける画面への発見された通信装置に関する情報の追加は、NAN又はP2Pでの探索処理が終わってから行われてもよいし、機器が発見される度に行われてもよい。これにより、機器が発見されてから、その機器の存在がユーザに通知されるまでの期間が短縮されるため、ユーザの利便性をさらに向上させることができる。
本実施形態では、NAN探索処理とP2P探索処理とを交互に実行するため、既存のNANの探索及びP2Pの探索と同じ枠組みで機器及びその対応するサービスの検索を実行することができるため、制御が容易である点で有利である。
<実施形態2>
本実施形態では、P2PのListen Stateと同時に、NANのDW期間によるNANデバイスの探索処理が実行される。本実施形態で実行される処理について、図9を用いて説明する。本実施形態では、既に参加すべきNANクラスタは発見済みとして説明する。
S901はS401と同様である。STA101は、探索を開始すると、続いて乱数Nを生成する(S902)。これはP2P Listen Stateの時間を決めるための乱数である。Wi−Fi Direct Servicesの規格に従うと、Listen Stateの期間は、(100TU×乱数値)の長さとなる。例えばN=2の場合は、STA101は、次のListen Stateの期間の長さを200TUとする。なお、乱数値の範囲は、推奨値として1〜3が指定されているため、ここでは乱数は1〜3の値が指定されるものとする。
乱数が決定されると、STA101は、NANの探索とP2PのListen Stateとを並行して実行する(S903)。このとき、STA101は、NANの探索においても6chを使うものとし、これに伴って、Listen Stateのチャネルを、NANの探索で用いられるチャネルに合わせて、6chとするものとする。STA101は、例えばSubscribeメッセージを送信し、Publishメッセージの受信を待つことによって、NANデバイスの探索を行う。STA101は、それと同時に、他のP2Pデバイスから送信されるProbe Requestの受信を待ち受け、Probe Requestを受信した場合には、その送信元の通信装置の情報を探索結果としてUIに表示してユーザに通知する。また、STA101は、Probe Requestを受信した場合には、それに対する応答として、Probe Responseを送信する。UIへの情報の表示は実施形態1と同様に行うことができる。なお、STA101は、自身が参加しているNANクラスタのDW期間になったときに、S903の処理を開始する。また、処理が実行される期間は、DW期間と同じ16TUである。
STA101は、16TUの期間、並行探索処理を実行した後は、通常のListen Stateで動作する(S904)。Listen Stateは100×Nの期間にわたるため、STA101がListen State単独で動作する期間の長さは、100×N−16TUとなる。STA101は、この期間において発見したP2Pデバイスも、UIに表示してユーザに通知する。
STA101は、Listen Stateを完了すると、続いてSearch Stateになり、1ch、6ch及び11chにおいて、それぞれP2Pデバイスを探索する(S905、S906、S907)。ここで、各チャネルの探索時間は、100TUと(512−100×N)/3TUとのうち短い方とされる。例えばN=1の場合は、(512−100×1)/3=137.33…TUであるため、1チャネルあたりの探索時間は100TUとされる。N=2の場合も、(512−100×2)/3=104TUであるため、1チャネルあたりの探索時間は100TUとされる。一方、N=3の場合は、(512−100×3)/3=70.666…TUであるため、1チャネルあたりの探索時間は71TU又は70TUとされる。ここで、N=3の場合は512−100×3=212UTであるため、3チャネルの合計の探索時間が212TUとなるように、各チャネルの探索期間の長さが決定される。
STA101は、Search Stateでは、実施形態1で説明したように、各チャネルでProbe Requestを送信して、Probe Responseを待ち受ける。そして、STA101は、P2PデバイスからProbe Responseが受信された場合に、そのP2Pデバイスの情報を、探索結果としてUIに表示してユーザに通知する。なお、STA101は、一度Probe Requestを送信してから所定期間にわたってProbe Responseを待ち続けてもよいし、Probe Requestを複数回送信しながらProbe Responseを待ってもよい。いずれの場合であっても、STA101は、上述の1チャネルあたりの探索時間だけSearch Stateの処理を実行する。
STA101は、Search Stateを完了すると、S903の処理の開始から512TUだけ経過したかを判断する(S908)。そして、STA101は、S903の処理の開始から512TUだけ経過していない場合(S908でNO)、次のDWまでの期間だけDOZE状態で送受信をオフにして待機する(S909)。一方、STA101は、S903の処理の開始から512TUだけ経過している場合(S908でYES)は、処理をS902に戻す。例えば、N=3の場合は、S908の時点で512TUを経過することになるため、処理はS902に戻る。一方で、N=1またはN=2の場合には512TU経過していないため、次のDWまでの時間だけ待つ。ここで、N=1のときは、112TUだけ待ち、N=2のときは12TUだけ待つ。なお、STA101は、乱数Nが定まった時点で待機すべき期間長を特定することができる場合、S908の判定を行うまでもなく、S907の処理の終了後、その特定した期間長だけDOZE状態で待機することができる。例えば、上述の例においてN=1の場合、S907の処理終了後、S908の判定を行うことなく、112TUだけDOZE状態で待機することができる。すなわち、S908の判定は必ずしも処理として実行されなければならないわけではない。
図10に、乱数Nが順にN=3、N=2、N=1となった場合の、探索処理のイメージ図を示す。期間1001を含む512TUの期間はN=3の場合の例を示している。この場合、P2P ListenとNANのDW期間の待ち受けとが並行して16TUだけ実行され、その後に、Listen Stateによる探索が300−16=284TUだけ実行される。その後、Search Stateが、1ch、6ch、11chの順に、71TU、71TU、70TUの期間だけ実行される。
期間1002を含む512TUの期間はN=2の場合の例を示している。この場合は、Listen StateとSearch Stateとの合計時間が500TUとなり、512TUと500TUとの差分の期間である12TUの間はDOZE状態とされ、STA101の送受信がオフとされる。期間1003を含む512TUの期間はN=1の場合の例を示している。
続いて、図11を用いて、本実施形態におけるSTA101がサービスを提供する通信装置を探索する際のシーケンスについて説明する。なお、実施形態1の説明と同様に、STA101の周囲には、図1のような通信装置及びNANクラスタが存在するものとするが、ここでは、説明を簡単にするため、P2P107については説明を省略する。なお、図11において送受信される各信号については実施形態1と同様のものであるが、S1102からS1108のP2P Listen State期間と、S1103からS1106のNANのDW期間とが重複して実行される点で異なる。DW期間は16TUであるため、NANのDWによる探索は16TU経過した後は停止され、P2P Listen Stateは継続される。そして、その後P2P Search StateによるP2P探索が引き続き実行される。なお、図11では省略しているが、乱数Nの値によってはDOZE期間が発生し、STA101の省電力が図られる。またS1102からS1112の処理は繰り返し実行されうる。このとき、S903からS909(場合によってはS908)のサイクルを512TUにすることでDW期間と6chでのP2P Listen Stateのタイミングを合わせることを容易にしている。
本実施形態では、NANによる探索とP2Pの探索とが一部並行して実行されることにより、探索処理の効率化が図られている。すなわち、NANの探索とP2Pの探索とを交互に実行する場合、NANの探索をしている間はP2Pデバイスが発見できずに、P2Pの探索をしている間はNANデバイスを発見することができない。これに対して、本実施形態では、同時にNANとP2Pのデバイスを発見することができる。一方で、P2Pの探索が繰り返し実行されるため、実施形態1よりも省電力の効果が少ない。そのため、STA101は、常にP2Pによる探索を実行せずに、例えば3回のDW期間のうち1回のDW期間中だけP2Pの探索処理を並行して実行し、それ以外の2回についてはP2Pの探索を実行せずに、DOZE状態に入るようにしてもよい。これにより、STA101の省電力化を図ることができる。
<実施形態3>
本実施形態では、P2PのSearch Stateと並行して、NANのDW期間によるNANデバイスの探索処理が実行される。本実施形態に係る処理の流れについて図12を用いて説明する。本実施形態では、既に参加すべきNANクラスタは発見されているものとして説明する。
S1201はS401と同様であるため説明を省略する。STA101は、続いて、S902と同様に、乱数Nを生成する(S1202)。STA101は、次にP2P Search Stateで探索を実行する(S1203〜S1206)。このときの期間長は実施形態2と同様であり、例えばN=1、N=2の場合の各チャネルのSearch Stateによる探索期間長は100TUとされる。また、N=3場合の各チャネルのSearch Stateによる探索期間長は70TUまたは71TUのように、1ch、6ch及び11chのSearch Stateによる探索期間長の合計が212TUに収まるように設定される。ただし、6chでP2P Search Stateでの処理を実行する期間が、参加しているNANクラスタのDW期間に一致するように、最初のSearch State(S1203)の開始タイミングが決定される。
STA101は、DW期間になった場合に、NANのDW期間による探索と、6chのP2P Search Stateでの探索とを並行して実行する(S1205)。例えば、STA101は、DW期間中にNANとしてSubscribeメッセージを送信し、P2PとしてProbe Requestを送信する。このときの順序はどちらが先であってもよい。ただし、P2P Search Stateの開始がDW期間の開始タイミングよりも先の場合は、P2PによるProbe Requestを先に送信することによって、P2PのProbe Responseを受信できる期間を長くすることができる。また、STA101は、SubscribeメッセージとProbe Responseとを送信した後に、NANではPublishメッセージを待ち受け、P2PではProbe Responseを待ち受ける。そして、STA101は、NANとP2Pとのいずれかにおいて応答が返ってきた場合には、その応答の送信元の通信装置の情報を探索結果として追加してUIに表示して、ユーザに通知する。
STA101は、P2P Search Stateを完了すると、P2P Listen StateでP2P探索処理を実行する(S1207)。このP2P Listen Stateでの探索処理の期間はN×100TUである。また、この期間中は、実施形態2に係る処理とは異なり、NANによるDW期間による探索は実行されないため、使用されるチャネルは6chである必要はなく、1chまたは11chが用いられてもよい。
その後、STA101は、実施形態2と同様に、S1203の処理の開始から512TUだけ経過したかを判定(S1208)し、512TU経過していた場合(S1208でYES)には処理をS1202に戻す。一方、STA101は、S1203の処理の開始から512TUだけ経過していなかった場合(S1208でNO)は、512TUから余った時間分だけDOZE状態に入り(S1209)、省電力化を図る。
図13に、乱数Nが順にN=2、N=3、N=1となった場合の、探索処理のイメージ図を示す。期間1301を含む512TUの期間はN=2の場合の例を示しており、6chでSearch Stateでの処理が実行されている間に、16TUの期間だけNANのDW期間での待ち受けが行われる。その後、Listen Stateによる探索が100×2TUだけ実行され、余った時間はDOZE状態にあてられる。
期間1302を含む512TUの期間はN=3の場合の例を示している。この場合、Listen Stateの期間長は300TUとされる。そして、余った時間の70+71+71TU分だけ1ch、6ch及び11chの各チャネルにおけるSearch Stateに割り当てられる。そして、そのうちの6chのSearch State中にNANによるDW期間の探索が並行して実行される。なお、このとき、前回のDW期間の開始から、512TU経過したあとにNANによる探索が実行されるように制御される。
期間1303を含む512TUの期間はN=1の場合の例を示しており、Listen Stateによる探索は100TUにわたって実行され、DOZE期間は112TUとされる。そして、期間1301及び期間1302と同様に、6chのSearch State時に、並行してNANによるDW期間による探索が実行される。また、前回のDW期間の開始から512TUだけ経過した後に、NANによる探索が開始される。
このとき、S1203からS1209(場合によってはS1208)までのサイクルを512TUにすることで、DW期間と6chでのP2P Search Stateとのタイミングを合わせることを容易にすることができる。
本実施形態では、Search State時にNANの探索が並行して実行される。このため、実施形態2と同様に、探索の効率化を図ることができる。また、本実施形態の処理は、Listen Stateで使用されるチャネルが6chでない場合にも適用可能である。
<実施形態4>
本実施形態では、探索開始後に、P2Pによる探索要求を受信した場合にP2Pによる探索を開始する。本実施形態において実行される処理について図14を用いて説明する。なお、ここでは、図4の処理と異なる点について詳細に説明する。
本実施形態では、S1402のNANクラスタ発見処理と、S1405のNANクラスタ内でのデバイス探索において、P2Pの探索要求が受信されたか否かを記憶しておく。P2Pの探索要求とは、P2P IEが含まれたProbe Request又はAction frame等である。そして、S1406までのDW期間におけるNAN探索が終わると、STA101は、所定期間内にP2Pによる探索要求を受信したかどうかを判断する(S1407)。STA101は、P2Pによる探索要求を受信していなかった場合(S1407でNO)は、DOZEで動作する(S1409)。すなわち、この場合、STA101は、通常のNANの探索と同様の手順を実行することとなる。一方、STA101は、所定期間内にP2Pによる探索要求を受信したと判定した場合(S1407でYES)は、P2Pの探索要求を開始する(S1408)。そして発見された場合にはUI上に表示する(S1410)。
本実施形態では、STA101は、NANの探索を実行中にP2Pの探索要求を受信した場合、P2Pの探索処理を開始する。このため、STA101は、周囲にP2Pデバイスが存在した場合のみP2P探索を開始し、P2Pデバイスが周囲に存在しない場合にはDOZE期間を長くすることができるため、STA101の消費電力を低減することができる。
上述の説明では、STA101は、NANの探索を実行中にP2Pの探索要求を受信した場合にP2Pの探索処理を開始するようにしたが、その逆でもよい。すなわち、STA101は、P2Pの探索を実行中にNANクラスタを発見した場合、NANクラスタに参加してNANの探索処理を開始してもよい。
また、本実施形態ではP2Pデバイスが発見された後は、実施形態1と同様にP2Pの探索とNANの探索とが交互に実行されるようにしている。しかしながら、P2P探索要求をトリガにP2P探索が開始される処理であれば、どのような処理の流れが用いられてもよい。例えば、実施形態2及び実施形態3のように、P2Pの探索を実行しながら、一部の期間で並行してNANの探索が実行されるようにしてもよい。
また、STA101は、S1402とS1405でP2P探索要求を受信した場合に、すぐにP2Pの探索を開始するようにしてもよい。また、STA101は、P2P探索要求を受信した場合にすぐにP2Pの探索要求に対する応答を返してもよい。すなわち、STA101は、P2P IEが含まれたProbe Requestを受信した場合に、P2P IEを含めたProbe Responseを付与して応答してもよい。
<その他の実施形態>
上述の実施形態において、STA101はサービスを提供している通信装置を検索しているものとした。しかしながら、本発明はサービスを提供している通信装置の探索に限定されない。例えば、STA101は、サービスを提供しており、所定のサービスを検索している通信装置を探索する通信装置であってもよい。その場合、NANクラスタ内のデバイス探索時に、Subscribeメッセージを送信するのではなく、Publishメッセージを送信することによって、サービスを提供できることを他の通信装置に通知することができる。
また、上述の実施形態において、Wi−Fi Direct Servicesに基づいた検索が実行されるものとしたが、Wi−Fi Directに基づいた通信装置の探索が実行されてもよい。
また、上述の実施形態では、STA101が送信したSubscribeメッセージの応答としてPublishメッセージを送信した通信装置が、探索結果に加えられた。しかしながら、Subscribeメッセージの応答として受信されたPublishメッセージの送信元の通信装置以外の通信装置を、探索結果に含めてもよい。例えば、ブロードキャストで送信されたPublishメッセージの送信元の通信装置が探索結果に加えられてもよい。このため、NANデバイス探索部は、必ずしもSubscribeメッセージを送信しなくてもよい。
また、NANデバイス探索部303およびP2P探索部304は、実施形態では特定のサービスを指定することはなかったが、特定のサービスを提供する通信装置のみを探索するようにしてもよい。例えば、NANデバイス探索部303は、Subscribeメッセージに特定のサービスをのみを探索していることを示す情報を付与しうる。また、受信したPublishメッセージについても特定のサービスを提供している通信装置のみが探索結果として加えられうる。また、P2P探索部304は、特定のサービスのみを探索していることを示す情報を付与することによって、特定のサービスを提供している通信装置のみからの応答を受信することができ、探索結果を絞ることができる。特定のサービスとは、例えばプリントサービス、データ交換サービス、画面のミラーリングサービス等、様々なものが考えられる。また、特定のサービスを探索する場合には、NANデバイス探索部303とP2P探索部304は、同種のサービスを提供する通信装置を探索するようにしてもよいし、異なる種類のサービスを提供する通信装置を探索するようにしてもよい。
また、実施形態2及び実施形態3において、NANのDW期間に合わせてSearch Stateの時間を変更するようにしたが、これに限られない。例えば、P2P Search Stateの時間を100TUに固定し、P2Pの探索中に6chを用いている期間とNANのDW期間とが重複したときのみ、NANによる探索を実行するようにしてもよい。代わりに、P2Pの探索ではListen StateをN×100TUとし、Search Stateを300TUと固定する。これにより、通常のP2Pの探索時間となるため、P2Pの探索時間を動的に変更することによって、他の通信装置等の発見が困難となる事象を回避することができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。