(57)【要約】      （修正有）【課題】代理をする装置に通知する情報を適切に依頼する通信装置、その制御方法及びプログラムを提供する。【解決手段】NAN（Neighbor Awareness Networking）に準拠するネットワークにおいて、クライアント装置から依頼を受けて複数の他の通信装置との通信を代理することが可能な通信装置は、複数の他の通信装置のそれぞれから、サービスを提供していることを通知するための信号を、所定の間隔で到来する所定の期間において受信し、該信号の送信元の他の通信装置に関する情報を、クライアント装置に通知すべきか否かを判定し、クライアント装置に通知すべきと判定した場合は、他の通信装置に関する情報を、所定の時間期間においてクライアント装置に通知する。【選択図】図３
2018113553.tif 000002
【特許請求の範囲】
【請求項１】
NAN（Neighbor Awareness Networking）に準拠するネットワークにおいて、クライアント装置から依頼を受けて複数の他の通信装置との通信を代理することが可能な通信装置であって、
前記複数の他の通信装置のそれぞれから、サービスを提供していることを通知するための信号を、所定の間隔で到来する所定の時間期間において受信する受信手段と、
前記信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきか否かを判定する判定手段と、
前記判定手段により前記クライアント装置に通知すべきと判定された場合、前記他の通信装置に関する情報を、前記所定の時間期間において前記クライアント装置に通知する通知手段と、
を有することを特徴とする通信装置。
【請求項２】
前記受信手段により受信された前記信号の送信元の他の通信装置に関する情報をメモリに格納するメモリ制御手段を更に有し、
前記判定手段は、前記信号の送信元の他の通信装置に関する情報が既に前記メモリに格納されている場合に、当該信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきではないと判定し、
前記通知手段は、前記信号の送信元の他の通信装置に関する情報を重複して前記クライアント装置に通知しない
ことを特徴とするとする請求項１に記載の通信装置。
【請求項３】
前記判定手段は、前記信号が、前記クライアント装置により通知された所定のフィルタリング条件に合致する場合に、前記信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきと判定することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記判定手段は、前記通知手段により、前記信号の送信元の他の通信装置に関する情報が既に前記クライアント装置に通知されている場合、当該信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきではないと判定することを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記判定手段は、前記信号が、所定の閾値より高い電波強度を有する場合に、当該信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきと判定することを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記判定手段は、前記信号が、所定のレベルより高いセキュリティレベルを示す場合に、当該信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきと判定することを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記受信手段は、前記所定の時間期間と、前記所定の間隔と異なる別の所定の間隔で到来する別の所定の時間期間において、それぞれの時間期間で異なる周波数帯域を用いて前記信号を受信し、
前記判定手段は、前記信号が、前記異なる周波数帯域の両方で通信可能であることを示す場合に、当該信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきと判定することを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
前記通知手段は、前記クライアントからの要求を受けて、前記メモリに格納された前記他の通信装置に関する情報を、前記クライアント装置に通知することを特徴とする請求項２に記載の通信装置。
【請求項９】
前記通知手段は、前記要求を受けた前記所定の時間期間において、前記メモリに格納された前記他の通信装置に関する情報を前記クライアント装置に通知することを特徴とする請求項８に記載の通信装置。
【請求項１０】
NAN（Neighbor Awareness Networking）に準拠するネットワークにおいて、クライアント装置から依頼を受けて複数の他の通信装置との通信を代理することが可能な通信装置の制御方法であって、
前記複数の他の通信装置のそれぞれから、サービスを提供していることを通知するための信号を、所定の間隔で到来する所定の時間期間において受信する受信工程と、
前記信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきか否かを判定する判定工程と、
前記判定工程において前記クライアント装置に通知すべきと判定された場合、前記他の通信装置に関する情報を、前記所定の時間期間において前記クライアント装置に通知する通知工程と、
を有することを特徴とする通信装置の制御方法。
【請求項１１】
コンピュータを、請求項１から９のいずれか１項に記載の通信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、IEEE802.11規格シリーズに代表される無線LAN（Local Area Network）が広く利用されている。無線LANは、多くの場合、アクセスポイント（AP）と呼ばれる基地局によってネットワークが制御される。このAPと、APの電波到達範囲内に存在し、無線接続状態であるステーション（STA）とによって無線ネットワークが構成される。
【０００３】
また、このような従来型のAPとSTAによる単純な無線ネットワーク構成のみならず、さまざまな無線LANのネットワーク形態の製品、および仕様規格が登場している。特許文献１には、Wi-Fi Allianceによって規定された、他の装置が実行可能なサービスを発見するための規格であるNAN（Neighbor Awareness Networking）について記載されている。特許文献１によれば、NANでは、各装置が、サービス情報をビーコン信号に基づいて定められた期間において通信する。各装置は、定められた期間において通信し、それ以外の期間では、無線通信を行わないスリープ状態となることで、他の装置が実行可能なサービスの発見を効率的に行うことができる。
【０００４】
サービスの検索や提供を他の通信装置に依頼（以降、Proxy）することで、自身の無線信号が到達できない範囲にいる通信装置のサービスの発見をしたり、逆に発見してもらったりする方法の提案がなされている（特許文献２）。当該提案によれば、例えば、依頼する側の通信装置（以降、Proxy Client）が所望のサービスの検索を、依頼される側の通信装置（以降、Proxy Server）に依頼する。そして、Proxy Serverは、他の通信装置からのサービスの問い合わせに対して、依頼されたサービスの内容（例えばサービスの名前）と合致するサービスをProxy Clientに通知する。これにより、Proxy Clientは、所望のサービスを発見することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１５／００３６５４０号明細書
【特許文献２】米国特許出願公開第２０１５／００８１８４０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、上記の技術では、Proxy Serverは、依頼されたサービスと他の通信装置が問い合わせたサービスの名前が一致すれば、当該サービスおよび当該他の通信装置の情報をProxy Clientに送信する。このような手順では、Proxy Clientは、所望のサービスを効率的に発見することができるが、Proxy Serverは、例えば、同じ他の通信装置に関する情報をProxy Clientに複数回送信してしまう可能性がある。すなわち、必要以上に多くの情報をProxy Clientに通知してしまう可能性がある。
【０００７】
本発明は、このような課題に鑑みてなされたものであり、代理を依頼する装置に通知する情報を適切に決定することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち  NAN（Neighbor Awareness Networking）に準拠するネットワークにおいて、クライアント装置から依頼を受けて複数の他の通信装置との通信を代理することが可能な通信装置であって、前記複数の他の通信装置のそれぞれから、サービスを提供していることを通知するための信号を、所定の間隔で到来する所定の時間期間において受信する受信手段と、前記信号の送信元の他の通信装置に関する情報を前記クライアント装置に通知すべきか否かを判定する判定手段と、前記判定手段により前記クライアント装置に通知すべきと判定された場合、前記他の通信装置に関する情報を、前記所定の時間期間において前記クライアント装置に通知する通知手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、代理を依頼する装置に通知する情報を適切に決定することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】通信システムの構成を示す図である。
【図２】NANデバイスの構成例である。
【図３】NANデバイス101の動作を示すフローチャートである。
【図４】実施形態１に従う通信システムにおける例示的なシーケンスを示す図である。
【図５】Publisher Listのフレームの構成例である。
【図６】実施形態１に従う通信システムにおける別の例示的なシーケンスを示す図である。
【発明を実施するための形態】
【００１１】
以下では、NAN規格に準拠した無線LAN通信システムを用いた例について説明する。NANでは、サービス情報を、Discovery Window（以降、DW）と呼ばれる期間に通信する。DWは、NAN規格に準拠して通信を行うデバイス（以下、NANデバイス）が、convergeする時間およびチャネルである。DWは、DW0〜DW15の16個のDW期間を1つの周期とする時間期間であり、DWn（nは0から15の整数）の16個後のDW期間もまたDWnとなる。一つのDW期間は、16TU（Time Unit）の期間を有する。なお、1TUは1024μsecである。また、それぞれのDW期間は、512TUの間隔毎に発生する。
【００１２】
DWのスケジュールを共有している複数のNANデバイスの集合をNANクラスタと呼ばれる。すなわち、NANクラスタ毎に固有のDWスケジュールが決定される。DW期間のうち、どのくらいの頻度のDW期間で無線信号を受信するかは、各NANデバイスに依存する。しかしながら、NANクラスタに参加する全てのNANデバイスは、特別なDW期間において必ず無線信号を受信できる状態（以降、アウェイク状態）である必要がある。NAN規格によれば、当該特別なDW期間は、16回のDW期間に対して1回の周期で到来するDW期間である、DW0である。また、DW0は、NANクラスタが同期に用いるカウンタタイマであるTSF（Time Synchronization Function）の下位23bitが0ｘ0である時刻から始まるDW期間である。
【００１３】
NANクラスタに属する各NANデバイスは、Master、Non-Master SyncおよびNon-Master Non-Syncのうちの何れかの役割で動作する。Masterとして動作するNANデバイスは、所属するNANクラスタにおける各NANデバイスがDWを識別し、同期するためのビーコンであるSynchronization Beacon（以降、Sync Beacon）を送信する。また、Masterとして動作するNANデバイスは、NANクラスタに属していないデバイス（端末）に当該NANクラスタを認識させるための信号であるDiscovery Beaconを送信する。Discovery Beaconは、例えば100ms毎に、DWの期間外で送信される。なお、各NANクラスタにおいて、少なくとも1台のNANデバイスは、Masterとして動作する。Non-Master Syncとして動作するNANデバイスは、Sync Beaconを送信するが、Discovery Beaconは送信しない。また、Non-Master Non-Syncとして動作するNANデバイスは、Sync BeaconもDiscovery Beaconも送信しない。
【００１４】
NANクラスタに参加するNANデバイスは、受信したSync Beaconに従って、所定周期毎のDW期間に同期し、DW期間においてサービス情報を通信し得る。ただし、Non-Master Non-Syncとして動作するNANデバイスは、すべてのDWで通信を行なう必要はない。
【００１５】
各NANデバイスは、DW期間にサービスを発見または要求するための信号であるSubscribeメッセージや、サービスを提供していることを通知するための信号であるPublishメッセージを互いに通信する。さらに、各NANデバイスは、DW期間にサービスに関する追加情報を交換するためにFollow-upメッセージをやり取りすることができる。なお、Publish、Subscribe、Follow-upといったメッセージを、総称してService Discovery Frame（SDF）と呼ぶ。各NANデバイスは、SDFをやり取りすることで、サービスの広告または検出を行なうことができる。なお、以下の説明において、他のNANデバイスが提供するサービスを探索するためのサービス検索要求メッセージであるSubscribeメッセージを送信するNANデバイスを、Subscriberと称する。また、サービスを提供するためのサービス提供メッセージであるPublishメッセージを送信するNANデバイスを、Publisherと称する。
【００１６】
図1に、以下に説明する実施形態の前提となるネットワーク構成例を示す。NANデバイス101〜104及び106は、NAN規格に準拠して通信を行なう通信装置である。NANデバイス101〜104、106はそれぞれ、NAN規格に基づいて、周囲の他のNANデバイスが提供するサービスを発見し、また、当該他のNANデバイスにサービスを提供することができる。NANデバイス101〜104は、NANクラスタ105に参加している。また、NANデバイス101、106は、NANクラスタ107に参加している。NANクラスタ105に参加している各NANデバイス101〜104は、例えば、2.4GHzの周波数帯域の6ch（2.437GHz）で通信する。NANクラスタ107に参加するNANデバイス101、106は、クラスタ105と異なる周波数帯域、例えば、44ch（5.220GHz）で通信する。
【００１７】
続いて、NANデバイス101〜104、106の構成を、図2を参照して説明する。図2（a）と図2（b）はそれぞれ、本実施形態におけるNANデバイス（NANデバイス101〜104、106）の機能構成例とハードウェア構成例である。
【００１８】
まず、NANデバイスの機能構成について説明する。図2（a）において、無線LAN制御部201は、他の装置とIEEE（Institute of Electrical and Electronic Engineers）802.11シリーズに準拠した無線LAN制御を行う。NAN制御部202は、NAN規格に則った制御を行う。例えば、NAN制御部202は、無線LAN制御部201を制御して、NAN規格に則ったメッセージを通信するための制御を行う。また、NANデバイスがProxy Client（クライアント装置）として機能する場合は、NAN制御部202は、サービスの登録依頼を送信し、Publisher List要求を送信するための制御を行う。また、NANデバイスがProxy Server（サーバ装置）として機能する場合は、NAN制御部202は、サービスの登録依頼を受信し、Publisher Listを送信するための制御を行う。なお、サービスの登録依頼とPublisher Listについては後述する。
【００１９】
メッセージ解析部203は、受信したメッセージに対する解析を行う。例えば、メッセージ解析部203は、受信したメッセージを解析し、受信したメッセージに対して所定の情報が含まれるかについての確認や、受信したメッセージの送信元の確認を行う。メモリ制御部204は、記憶部211（図2（b））を制御する。例えば、メモリ制御部204は、記憶部211において所定の情報が記憶されているかについての確認やメッセージ解析部203による解析／確認結果に基づいて、Publisher Listに含める情報を決定（選択）し、記憶部211への保存を行う。メッセージ解析部203とメモリ制御部204は、NANデバイスがProxy Serverとして機能する場合に機能する。
【００２０】
次に、NANデバイスのハードウェア構成について説明する。図2（b）において、記憶部211は、ROM（Read Only Memory）やRAM（Random Access Memory）等のメモリにより構成され、後述する各週動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部211として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。また、記憶部211が複数のメモリを備えていてもよい。
【００２１】
制御部212は、CPU（Central Processing Unit）やMPU（Micro Processing Unit）等のプロセッサにより構成され、記憶部211に記憶されたプログラムを実行することによりNANデバイス全体を制御する。また、制御部212がマルチコア等の複数のプロセッサを備え、複数のプロセッサによりNANデバイス全体を制御するようにしてもよい。
【００２２】
また、制御部212は、機能部213を制御して、撮像や印刷、投影等の所定の処理を実行する。機能部213は、NANデバイスが所定の処理を実行するためのハードウェアである。例えば、NANデバイスがカメラとして機能する場合、機能部213は、撮像部として撮像処理を行う。また、例えばNANデバイスがプリンタとして機能する場合、機能部213は印刷部として印刷処理を行う。また、例えば、NANデバイスがプロジェクタとして機能する場合、機能部213は投影部として投影処理を行う。機能部213が処理するためのデータは、記憶部211に記憶されているデータであってもよいし、後述する通信部216を介して他のNANデバイス等の他の通信装置と通信したデータであってもよい。
【００２３】
入力部214は、ユーザからの各種操作の受付を行う。出力部215は、ユーザに対して各種出力を行う。ここで、出力部215による出力とは、画面上への表示や、スピーカによる音声出力、振動出力等の少なくとも１つを含む。なお、タッチパネルのように入力部214と出力部215の両方を一つのモジュールで実現するようにしてもよい。出力部215は、表示による出力を行う場合、例えばLCD（Liquid Crystal Display）やLED（Light-Emitting Diode）により構成され、ユーザが視覚で認知可能な情報を出力し、各種UI（User Interface）の表示制御を行う。
【００２４】
通信部216は、IEEE802.11シリーズに準拠した通信を行うためのチップにより構成され、無線通信の制御や、IP（Internet Protocol）通信の制御を行う。また、通信部216はアンテナ217を制御して、無線通信のための無線信号の送受信を行う。NANデバイスは、通信部216を介して、画像データや文書データ、映像データ等のコンテンツを他のNANデバイス等の他の通信装置と通信し得る。なお、NANデバイスは、無線信号を送受信しないDW期間においては、通信部216に電力を供給しないように、制御部212により制御される（すなわちこの場合、NANデバイスはスリープ状態／DOZE状態となる）。
【００２５】
続いて、上記に説明したNANデバイス101〜104、106が実行する処理の流れを含む、非限定的ではないいくつかの実施形態を、以下に説明する。
【００２６】
＜実施形態1＞
本実施形態では、NANデバイス101がNANデバイス102の代理でサービスを探索し、その結果をまとめてPublisher ListとしてNANデバイス102に通知する例について説明する。
【００２７】
本実施形態の説明にあたり、NANデバイス101は、NAN規格に基づいて、周囲のNANデバイスおよびそれらが提供するサービスを発見し、自身が提供可能なサービスの情報を提供することができるものとする。また、NANデバイス101は、他のNANデバイスのサービスの探索および報知を代理することができる、Proxy Serverとして機能するものとする。また、NANデバイス101は、NANクラスタ105にMasterとして参加し、NANクラスタ107にもMasterとして参加しているものとする。
【００２８】
NANデバイス102は、Non-Master Non-Syncの役割を有し、所定のサービス、例えば、プリンタサービスを探索しているものとする。また、NANデバイス102は、Proxy Clientとして機能し、Proxy Serverを発見すると、代理でサービスの検索を依頼することができるものとする。NANデバイス102は、自身でサービスを検索している場合、すなわちProxyを依頼していない場合には、すべてのDW期間で無線信号を受信するものとする。一方で、Proxyを依頼している場合には、NANデバイス102は、DW0、DW3のみで無線信号を受信するものとする。
【００２９】
NANデバイス103、104、106は、NANデバイス102が探索するプリンタサービスを提供可能なデバイスであるPublisherであるとする。NANデバイス103は、NANクラスタ105におけるDW1およびDW2でサービスの報知を行うものとする。NANデバイス104は、NANクラスタ105におけるDW2でサービスの報知を行うものとする。NANデバイス106は、NANデバイス102〜104とは別のNANクラスタ107に参加し、NANクラスタ107におけるDW2にてサービスの報知を行うものとする。
【００３０】
次に、Proxy ClientおよびSubscriberとして動作するNANデバイス102の代理でサービス探索を行うNANデバイス101の動作を図3を参照して説明する。図3は、NANデバイス101の動作を示すフローチャートである。当該フローチャートは、NANデバイス101がNANクラスタに参加し、Proxy Serverとしての動作を開始した時点で開始される。また、Proxy Serverとして動作するNANデバイス101の記憶部211内には、Publishメッセージを受信した場合に、当該メッセージに基づくPublisher情報を格納する送信準備部分が設けられるものとする。Publishメッセージには、Publisherを識別するための情報やサービスの情報が含まれる。
【００３１】
なお、図3に示すフローチャートは、NANデバイス101の制御部212が、記憶部211に記憶されている、図2（a）に示す機能を実現するための制御プログラムを実行し、情報の演算および加工並びに各ハードウェアの制御を実行することにより実行される。なお、図3に示すフローチャートに示すステップの一部または全部を例えばASIC等のハードウェアで実現する構成としてもよい。
【００３２】
Proxy Serverとして動作するNANデバイス101は、例えば、Proxy Serverとして動作可能であることをProxy ServiceとしてPublishメッセージを用いて周囲に報知する。Proxy Serverとして動作可能なことの報知の方法は、他の方法でもよい。例えば、NANデバイス101は、送信するSync Beaconに、Proxy動作が可能であることを示す情報を含めてもよい。また、NANデバイス101は、周囲のNANデバイスからProxy Clientとして動作することを示す情報を受け取ってからProxy Serverとしての動作を開始してもよい。
【００３３】
NANデバイス101は、Proxy Clientを発見すると（S301でYes）、Proxy Clientから、代理で検索すべきサービスを登録するための依頼（登録依頼）を受信するまで待つ（S302）。なお、S301の処理は省略してもよい。NANデバイス101は、通信部216を介してNANデバイス102から登録依頼を受信すると（S302でYes）、サービスの代行検索を開始し、登録依頼の送信者（すなわちNANデバイス102）に対してconfirmを送信する（S303）。S303の処理として、例えば、NANデバイス101のNAN制御部202が通信部216を介して、代理で検索するサービスのサービス検索用フレーム（Subscribeメッセージ）を定期的に発信する。なお、省電力のために、NANデバイス101は、Subscribeメッセージを発信せず、PublisherからのPublishメッセージの受信を待つだけでもよい。
【００３４】
この状態で、NANデバイス101が、PublisherからのPublishメッセージを受信すると（S304でYes）、受信したPublishメッセージに含まれるサービスの情報（例えば名前）と、代理検索しているサービスの情報とが一致するかを確認する（S305）。S305の処理は、NANデバイス101のメッセージ解析部203により行われる。受信したPublishメッセージに含まれるサービスの情報と、代理検索しているサービスの情報とが合致する場合、すなわち、Publisherが提供可能なサービスが、代理検索しているサービスであった場合（S305でYes）、処理はS306へ進む。S306では、NANデバイス101は、記憶部211における送信準備部分に、S304で受信したPublishメッセージの送信元のPublisher（以下、送信元Publisher）を識別するための情報が記憶されているかどうかを確認する。S307の処理は、NANデバイス101のメモリ制御部204により行われる。
【００３５】
送信元Publisherを識別するための情報が、記憶部211における送信準備部分に記憶されていないと判定された場合（S306でYes）、NANデバイス101は、受信したPublishメッセージを所定のフィルタに通す（S307）。この処理は、受信したPublishメッセージが、NANデバイス102が定義する所定のフィルタリング条件に合致するか否かを判定するための処理に対応する。S307の処理は、メッセージ解析部203により行われる。本実施形態では、当該所定のフィルタの一例として、マッチングフィルタ（matching filter）および／またはサービス応答フィルタ（service response filter）を用いる。なお、これらのフィルタはNAN規格で規定されている。
【００３６】
マッチングフィルタとは、長さと値の組が複数連なってできるフィルタである。SubscriberがPublishメッセージを受信したときは、Subscriberが持つ受信用マッチングフィルタが、受信したPublishメッセージから読み取れる送信用マッチングフィルタに記された長さと値の組を含んでいた場合に通過すると判断される。一方、PublisherがSubscribeメッセージを受信したときは、Publisherが持つ受信用マッチングフィルタが、受信したSubscribeメッセージから読み取れる送信用マッチングフィルタに記された長さと値の組に含まれていた場合に通過すると判断される。また、サービス応答フィルタは、Mac addressに基づくフィルタである。
【００３７】
受信用マッチングフィルタおよび／またはサービス応答フィルタは、S302でNANデバイス101がNANデバイス102から受信する登録依頼に含まれ得る。NANデバイス101は、代理で受信したPublishメッセージに送信用マッチングフィルタが含まれていれば、NANデバイス102から取得した受信用マッチングフィルタを使用してフィルタリングを行う。また、NANデバイス101は、代理で受信したPublishメッセージにサービス応答フィルタが含まれていれば、NANデバイス102のMac addressを基にフィルタリングを行う。なお、Publishメッセージに各フィルタが含まれていなかった場合は、NANデバイス101は、各フィルタを通過したと判定してもよい。
【００３８】
フィルタを通過した場合（S307でYes）、NANデバイス101は、記憶部211から、送信元Publisherは、以前NANデバイス102に情報を送信した相手かどうかを確認する（S308）。すなわち、NANデバイス101は、送信元Publisherは、NANデバイス102が既に知っているNANデバイスかどうかを確認する。S308の処理は、NANデバイス101のメモリ制御部204により行われる。
【００３９】
以前NANデバイス102に送信した相手でない場合（S308でNo）、NANデバイス101は、記憶部211の送信準備部分に登録されているPublisher情報が所定数（例えば5つ）を超えるかどうかを確認する（S310）。登録されているPublisher情報の数が所定数を超える場合（S309でYes）、送信準備部分に記録されている複数のPublisher情報のうち、Publishメッセージを受信したタイミングが最も古いPublisher情報を除き、新たに送信元Publisherに対応するPublisher情報を記憶部211の送信準備部分に記憶する（S310）。登録されているPublisher情報の数が所定数以下である場合（S309でNo）、NANデバイス101は、新たに送信元Publisherに対応するPublisher情報を記憶部211の送信準備部分に記憶する（S311）。S310とS311の処理は、メモリ制御部204により行われる。
【００４０】
S310の変形例として、NANデバイス101は、最も小さい値のMaster Preferenceを有するPublisherに対応するPublisher情報を削除してもよい。Master Preferenceとは、Masterのなりやすさを決めるために各NANデバイスで自由に定められる値である。これにより、結果として、Master Preferenceが高いPublisherに対応するPublisher情報が登録されることとなり、NANデバイス102が、より安定したPublisherを選択できる可能性が高くなる。
【００４１】
また、更なるS310の変形例として、NANデバイス101がPublisherとProxy Clientとの位置関係がわかる場合には、NANデバイス101は、Proxy Clientからもっとも遠いPublisherに対応するPublisher情報を削除してもよい。当該位置関係は、例えば、受信した信号の信号レベルに基づいて、NAN制御部202により取得することが可能である。これにより、NANデバイス101の記憶部211の送信準備部分に記憶されたPublisherに対応するPublisher（候補としたPublisher）とProxy Clientが通信しにくくなることを防ぐことができる。
【００４２】
S306でYes、S307でNo、S308でYesの場合、処理はS312へ進み、NANデバイス101は、新たに送信元Publisherに対応するPublisher情報を記憶部211に記憶させず、S313へ進む。
【００４３】
なお、S306〜S309の処理はそれぞれ独立しており、順番が入れ替わってもよいし、いずれか1つが実施されてもよい。つまり、例えばNANデバイス101は、S306ですでに送信元Publisherが記憶済みであることのみを確認し、記憶済みであれば新たに送信元Publisherに対応するPublisher情報を記憶せず、記憶済みでなければ新たに送信元Publisherに対応するPublisher情報を記憶してもよい。また、NANデバイス101は、Proxy Clientと近距離にいるのであれば、以前にPublisherから受信したPublishメッセージの電波強度を閾値として、新たに送信元PublisherのPublisher情報を記憶するか、しないかを決定してもよい。具体的には、NANデバイス101のNAN制御部202が、以前にPublisherから受信したPublishメッセージの電波強度を閾値（基準）として、当該閾値より低い電波強度のPublishメッセージの送信元のPublisherに対応するPublisher情報を登録しなくてもよい。
【００４４】
また、NANデバイス101は、Publisher、Proxy Clientとの位置関係がわかる場合には、PublisherとProxy Clientの距離が閾値以上の場合にはPublisherを新たに記憶しない、と判断してもよい。当該位置関係は、上述のように、一例として、NAN制御部202により取得可能である。
【００４５】
また、NANデバイス101は、Proxy Serverとして、セキュアである相手とわかっている場合にのみ記憶してもよい。このために、例えば、メッセージ解析部203が、受信したメッセージを解析して送信元Publisherがセキュアかどうか（所定レベルより高いセキュリティレベルを示すか）を判定してもよい。これにより、Proxy Clientはセキュアな相手のみ検索結果として得ることができるようになる。
【００４６】
また、NANデバイス101は、同じPublisherからのPublishメッセージを受信した場合であっても、フィルタが異なるなど、内部の情報が一部異なる場合は別に記憶してもよい。これにより、Publisherが同じデバイスであっても、条件が異なる際に対処することができるようになる。特にフィルタが異なる場合は、NANデバイス101は、フィルタの条件がより多くのデバイスのみを通過するものを優先して記憶してもよい。これにより、より多くのPublisherの候補をProxy Clientに通知することが可能となる。以降、S304〜S312のステップをフィルタリング処理と呼ぶ。
【００４７】
S313で、NANデバイスは、Proxy ClientからのPublisher List（Publisher情報の一覧）要求を受信した場合（S313でYes）、NAN制御部202は、記憶部211の送信準備部分に記憶されたPublisher情報からPublisher Listを作成し、通信部216を介してProxy Clientに送信する（S314）。NANデバイス101は、Publisher List要求を受信したDW内、またはPublisher List要求で指定されたDWでPublisher Listを送信し得る。
【００４８】
図5に、Proxy Clientに送信するSDF（Service Discovery Frame）であるPublisher Listのフレーム構成例を示す。SDFはIEEE802.11規格のPublish Action Frameを用いる。SDFは、Publish Action Frameの一部にNANで規定される情報を含めるためのNAN Attribute（501）を含む。情報の種別を示すAttribute ID（502）には、Publisher list Attributeであることを示す0ｘ16が入力される。なお、この値は別の値であってもよい。Num of Publisher（504）は、SDFに含まれるPublisher情報の数が入力される。もし、SDFにPublisher情報が含まれない場合、この値を0としてProxy Clientに送信することになる。
【００４９】
Length（505）からfilter（511）が1つのPublisher情報に対応する。Length（505）には、1つのPublisher情報の長さが入力される。Mac address（506）には、送信元Publisherを識別する情報として送信元PublisherのMac addressが入力される。service ID（507）からfilter（511）には、Publishメッセージに含まれる情報がそのまま入力される。以後（512〜）、各Publish情報が505〜511と同様に続けられる。
【００５０】
なお、図5に示すフレーム構成は一例であり、別の構成をとってもよい。たとえば、S07でフィルタリングを行っている場合は、NANデバイス101は、filter（511）を除いた形でフレームを送信してもよい。これにより、送信する情報のうち、無駄な情報を除くことができる。また、図5に示す情報の他に、NAN Attributeを付加してもよい。これにより、NANデバイス101は、Publisher List以外のProxyに関する情報をProxy Clientに送信することが可能となる。
【００５１】
続いて、S315でNANデバイス101はProxy ClientからのProxy登録終了依頼を受信すると（S315でYes）、対象のProxy Clientのサービスの代理検索を終了する（S316）。S315とS316の処理は、NAN制御部202により行われる。なお、S304、S313、S315の処理はそれぞれ独立した処理であるため、順番が入れ替わっても構わないし、同時に実施されてもよい。
【００５２】
次に、SubscriberおよびProxy Clientとして動作するNANデバイス102が、NANデバイス101にSubscribeを登録してから、Publisher Listを受信するまでの動作を、図4を参照して説明する。図4は、本実施形態に従うシステムにおける例示的なシーケンス図である。
【００５３】
図4において、NANデバイス102は、DW0、DW3においてアウェイク状態であるとし、それ以外はスリープ状態であるものとする。NANデバイス101、103、104は、すべてのDWにおいてアウェイク状態であるとし、それ以外はスリープ状態であるものとする。NANデバイス103と104は、NANデバイス102が探索するプリンタサービスを提供可能なデバイスであるPublisherであるとする。NANデバイス103は、DW1、DW2にてPublishメッセージを送信し、NANデバイス104は、DW2にてPublishメッセージを送信するものとする。
【００５４】
Masterとして動作するNANデバイス101は各DWで同期するためのビーコンであるSync Beaconを送信する（S401、S404、S408、S413）。NANデバイス102がサービス検索を開始する。DW0になると、NANデバイス102は近くにProxy Serverとして動作するNANデバイス101が存在することを確認し、サービス登録依頼を送信する（S402）。NANデバイス101はサービス登録依頼を受信すると、代理検索の準備を開始するとともに、NANデバイス102にconfirmを送信する（S403）。
【００５５】
次に、NANデバイス103がサービス検索を開始する。DW1になると、NANデバイス101は、代理でSubscribeメッセージを送信する（S405）。NANデバイス103はSubscribeメッセージを受け取ると、Publishメッセージを送信する（S406）。NANデバイス101は、DW1で受信したPublishメッセージを図3のフローに従ってフィルタリング処理する（S407）。フィルタリング処理の結果、NANデバイス101は、NANデバイス103に対応するPublisher情報を記憶部211に記録する。
【００５６】
次に、NANデバイス104がサービス検索を開始する。DW2になると、NANデバイス101は、代理でSubscribeメッセージを送信する（S409）。NANデバイス103、104はこれを受け取ると、Publishメッセージを送信する（S410、S411）。NANデバイス101は、DW2で受信したPublishメッセージを、図3のフローに従ってフィルタリング処理する（S412）。NANデバイス101は、NANデバイス103に対応するPublisher情報は既に記憶部211に記憶しているので、新たに記憶しない。また、NANデバイス101は、NANデバイス104に対応するPublish情報を、フィルタリング処理の結果、新たに記憶しないとする。
【００５７】
その後、DW3にNANデバイス102はPublisher List要求メッセージを送信する（S414）。NANデバイス101はこれを受信すると、Publisher List（図5参照）をNANデバイス102に送信する（S415）。このPublisher Listには、NANデバイス103に対応するPublisher情報が含まれるが、NANデバイス104に対応するPublisher情報は含まれない。
【００５８】
このように、NANデバイス101が代理でサービス検索する際に、検索対象をフィルタリングすることにより、NANデバイス101が送信するPublisherに関する情報の数を減らすことができる。Proxy Clientとなるデバイスは、一般にスマートフォンなどの消費電力をなるべく抑えたい機器である。あらかじめフィルタリングされた情報の通知をProxy Clientは受けるので、Proxy Clientが計算する量が減り、Proxy Clientの消費電力を抑えることができる。
【００５９】
なお、上述のシーケンスでは、NANデバイス101は、同じNANクラスタに参加するNANデバイスからのPublishメッセージのみ対象にフィルタリングしていたが、これに限定されない。例えば、NANデバイス101は、他のNANクラスタに参加するNANデバイスからのPublishメッセージをフィルタリングしてもよい。
【００６０】
図6は、本実施形態に従うシステムにおける別の例示的なシーケンス図である。図6のシーケンスでは、NANデバイス101は、NANデバイス102が所属するNANクラスタ105とは別のNANクラスタ107に参加するNANデバイスからのPublishメッセージもフィルタリングしている。NANデバイス103、104、106は、NANデバイス102が探索するプリンタサービスを提供可能なデバイスであるPublisherであるとする。以下、図4と異なる点について説明する。
【００６１】
NANデバイス106は、5GHzで通信するクラスタ107のDW2にてPublishメッセージを送信する（S606）。NANデバイス101はクラスタ107のDW2で受信したPublishメッセージをフィルタリング処理する（S607）。このとき、Publishメッセージに利用可能な周波数帯域に関する情報が含まれていれば、NANデバイス102が5GHz帯を利用可能かどうか、もしくはNANデバイス106が2.4GHZ帯で通信可能な状態かどうかをフィルタの基準としてもよい。結果、NANデバイス101はNANデバイス106に対応するPublisher情報を記憶部211に記憶すると決定する。
【００６２】
S415で送信するPublisher Listには、NANデバイス103に対応するPublish情報のほか、NANデバイス106に対応するPublish情報も含まれる。これにより、NANデバイス102はより広い範囲のPublisherの情報を得ることができるようになる。また、範囲を広げたとしても、NANデバイス101がフィルタリング処理を行うため、Publisher Listに乗せるデータの量が爆発的に多くなることはない。
【００６３】
＜その他の実施形態＞
上述の実施形態では、NANデバイス102はDW0、DW3でアウェイク状態となっていたが、他のDWでアウェイク状態となっていてもよい。また、上述の実施形態では、NANデバイス101が、NANデバイス102が要求しているサービスの探索に関して、代理で探索するProxy Serverとして動作する場合について説明した。しかしながら、Proxy機能によって代理送信されるのは探索するサービスの情報に限られない。例えば、NANデバイス101は、他の機器によるサービスを提供している通知を受け付けて、その機器の代わりにサービスを通知してもよい。この場合、NANデバイス101は、例えば、他の機器によるPublishメッセージを代理で送信してその応答であるSubscribeメッセージやFollow-upメッセージを受信することによってサービスの探索を行い得る。なお、NANデバイス101は、Publishメッセージを送信することなく、さらに別の機器が(例えば自発的に)送信したSubscribeメッセージを待ち受けてもよい。いずれの場合であっても、NANデバイス101は、サービスの探索の代理を依頼した機器に対して、その機器が無線信号を受信できるDW期間において、その探索結果を通知することができる。
【００６４】
また、Publisher Listに記録するPublisher情報の数は特定の数に限定されない。また、Publisher Listの送信は１回でなくてもよい。たとえば、３つずつ、２回に分けて送信するとしてもよい。これにより、重複を避けつつ、より多種類で通信する可能性の高い候補を送信することが可能となる。また、上述の実施形態では、NANデバイス101は、NANデバイス102からのProxy要求を受け付けたが、他の１つ以上のNANデバイスからのProxy要求を受け付けてもよい。
【００６５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能の少なくとも一部を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置の１以上のコンピュータ(またはＣＰＵやＭＰＵ等)がプログラムを読み出して実行する処理である。
【符号の説明】
【００６６】
101〜104、106  NANデバイス
105、107  NANクラスタ
【図１】
2018113553.tif 000003
【図２】
2018113553.tif 000004
【図３】
2018113553.tif 000005
【図４】
2018113553.tif 000006
【図５】
2018113553.tif 000007
【図６】
2018113553.tif 000008