(実施例1)
以下、本実施形態に係る通信装置について、図面を参照しながら詳細に説明する。以下では、IEEE802.11シリーズに準拠した無線LANシステムを用いた例について説明するが、通信形態は必ずしもIEEE802.11準拠の無線LANには限らない。
本実施形態に好適な事例におけるハードウェア構成について説明する。後述の各装置の構成の一例を表すブロック図1に示す。図1において、101は装置全体を示す。102は、記憶部103に記憶される制御プログラムを実行することにより装置全体を制御する制御部である。
103は制御部102が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する各種動作は、記憶部103に記憶された制御プログラムを制御部102が実行することにより行われる。
104はIEEE802.11シリーズに準拠した無線LAN通信を行うための無線部である。105は各種表示を行う表示部でありLCDやLEDのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。表示部105は視覚情報および音情報の少なくともどちらか一方を出力する機能を備えるものである。
107はアンテナ制御部、そして108はアンテナである。109は、ユーザが各種入力等を行い、通信装置を操作するための操作部である。サービス実行部110は、通信機器が提供するアプリケーションレベルのサービス情報を実行する機能を備えている。例えば、本通信機器がプリンタであり、プリントサービスを実行できる場合、サービス実行部110は、プリントサービスを実行するためのプリントエンジンなどのハードウェアである。また、例えば、本通信機器がデジタルカメラであり、撮像画像(動画)配信サービスを実行できる場合は、サービス実行部110は、撮像機能を実現するための撮像素子、レンズなどのハードウェアである。尚、図1は一例であり、通信装置101は図1に示すハードウェア構成以外のハードウェア構成を備えていてもよい。
図2は、後述のフローチャートやシーケンス図に示す処理や通信制御機能を実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。201はソフトウェア機能ブロック全体を示す。202はDiscovery制御部であり、通信相手となる通信装置を検索する検索処理を実行する。
203はWi−Fi Direct制御部である。Wi−Fi Directプロトコル仕様に基づいた制御を行う。Wi−Fi Directにおいては、無線LANアクセスポイント機能を実施する通信装置をP2Pグループオーナー(以下、GO)、無線LANステーション機能を実施する通信装置をP2Pクライアント(以下、CL)と称する。これらの役割はGO Negotiationのプロトコルで決定され、Wi−Fi Direct仕様で規定されている。Wi−Fi DirectではGOの開催したネットワークをP2Pグループと称する。本明細書でもネットワークのことをP2Pグループと記載する場合もある。どちらも同一の意味で記載されている。
なお、本明細書では、P2Pグループオーナー(GO)、P2Pクライアント(CL)および役割が未決定の通信装置群をまとめて、P2Pデバイスと称す。P2Pデバイスは、無線ネットワークに参加すること(CL機能)も無線ネットワークを構築すること(GO機能)もWi−Fi Directのプロトコルを実施して自動的に決定する。そして、決定したいずれかの機能で動作し、無線接続、無線通信する。また、Wi−Fi Directを用いて装置間で接続する場合、GOからCLに通信パラメータを提供し、該通信パラメータを用いて接続する。通信パラメータは、IEEE802.11規格に準拠して無線通信するための各種無線通信パラメータが含まれる。つまり、通信パラメータは、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線LAN通信を行うために必要な無線通信パラメータが含まれる。また、IP層での通信を行うためのIPアドレス等も含む。
204はサービスディスカバリ制御部であり、サービスディスカバリ機能をつかさどる。サービスディスカバリ機能は、IEEE802.11uで定められたアクションフレーム(GAS frame)を送受信することにより、相手通信装置とそれぞれが保有するサービス情報をやりとりすることが可能である。なお、GASとはGeneric Advertisement Serviceの略である。具体的には他の通信装置の属性や対応するサービスを検索する場合サービス検索信号である「SD Query」フレーム(GAS Initial Request)を送信する。そして、相手装置からSD Queryに対する応答である「SD Response」フレームを返答として受信する。もしくは、相手装置からのSD Queryを受信し、応答としてSD Responseを送信する。これらのフレームの送受により、他の通信装置の属性や実行可能なサービスの検出を行うことができる。また、他の通信装置に対して自装置が実行可能なサービスを広告することができる。また、送信したSD Queryの応答が無い場合に他の通信装置のWi−Fi Directのオプション機能であるサービスディスカバリ機能に対応しているかを判定することができる。即ち、サービスディスカバリ制御部204は、無線通信を行うための通信層において、無線通信可能な範囲に存在する他の通信装置の属性情報を検出するための機器サービス検索を実行する。サービスディスカバリ制御部204は、第1の通信層において他の装置の属性の検出処理を行う。なお、本実施形態において第1の通信層は、OSI参照モデルにおけるデータリンク層を例にするがこれに限定されるものではない。
なお、SD Queryによるサービス検索処理には所望のサービスを指定して該所望のサービスを実行可能な装置から応答を得る検索と、所望のサービスを指定せず他の通信装置が実行可能なサービス全てのサービスの検索とがある。
なお、サービス情報には、サービス通信を相互に実行するために利用するプロトコルに関する情報やサービスの必須機能やオプション機能の対応を示すサービス機能対応情報が含まれることとする。例えば、他の通信装置から受信したサービス情報により、他の通信装置が所定のサービスの実行可否(例えばプリントサービスに対応しているか否か)を判定することできる。また、他の通信装置から受信したサービス情報により、他の通信装置が所定のサービスを行う際のプロトコル(例えば、PictBridgeによるプリントサービスを実行可能か)を判定することができる。また、他の通信装置から受信したサービス情報により、他の通信装置が所定のサービスを行う際のサービス機能対応情報(例えば、プリントサービスにおいて両面印刷対応、カラーあるいは白黒印刷対応、フォーマット印刷対応か)を判定することができる。なおここでの具体例は、発明を限定する意図ではなく、単なる理解を深めるための例示であることは言うまでもない。
205はL3 Service Discovery制御部であり、OSI参照モデルにおけるネットワーク層(レイヤ3)でのサービスディスカバリ機能をつかさどる。サービスディスカバリ機能は、UPnP(登録商標)(Universal Plug and Play)やBonjour(登録商標)といった技術を用いることで実行可能である。つまり、L3 Service Discovery制御部205は、サービスディスカバリ制御部204が他の通信装置がサービス情報の送受を行う第1の通信層と異なる第2の通信層においてサービス情報の送受を行うことができる。つまり、通信相手装置がWi−Fi Directのオプション機能であるサービスディスカバリ機能に対応していない場合であっても、UPnPもしくはBonjourに対応していれば当該通信相手装置とサービス情報の送受を行うことができる。なお、本実施形態では第2の通信層をネットワーク層として説明を行うが、第1の通信層より上位の通信層であればよい。
L3 Service Discovery制御部205は、サービスディスカバリ制御部204によるサービス情報の広告・検索と同様に、自装置が提供可能なサービス(処理の種別)を他の通信装置に通知することができる。また、他の通信装置が提供可能なサービス(処理の種別)の取得を行うことができる。なお、サービスディスカバリ制御部204が送受するサービス情報とL3 Service Discovery制御部205によって送受信するサービス情報は同一の内容であってもよいし異なる情報を含めることにしてもよい。
なお、L3 Service Discovery制御部205によるサービス検索処理にも所望のサービスを指定しての検索と、所望のサービスを指定しない検索とが実行できる。 L3 Service Discovery制御部205は、サービス検索処理を実行する場合、第2の通信層において検索信号を送信する。
206はパケット受信部、207はパケット送信部であり、上位レイヤの通信プロトコルを含むあらゆるパケットの送受信を制御する。208はアプリケーションレイヤにおけるサービス提供部である。ここでのアプリケーションレイヤとはOSI参照モデルにおける第5層以上の上位レイヤにおけるサービス提供するための通信を行う通信層のことをさす。すなわち、サービス提供部208は、印刷機能や画像ストリーミング機能や、ファイル転送機能などのサービスを他の通信装置に対して提供するための通信を制御したり、サービス実行部110を制御したりする。
209はアプリケーションレイヤにおけるサービス利用部である。相手装置からアプリケーションレイヤによる通信により提供されるサービスに係る通信を制御する。すなわち、サービス利用部209は、印刷サービス提供装置へ印刷物を送信する機能や、デジタルディスプレイに動画像を送信する機能などを制御したり、サービス実行部110を制御したりする。エラー処理部210は、サービスが実行できない場合にエラー処理を行う。
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上記機能ブロックは一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。また、上記機能ブロックはハードウェアにより実現されてもよい。
続いて、上述の構成を有する通信装置における動作について説明を行う。図3は、通信装置A32(以下、STA−A)、通信装置B33(以下、STA−B)とから構成されるネットワークA31(以下、ネットワークA)を示した図である。これらの装置は、先に説明した図1、図2の構成を有している。
図4は、サービス利用装置である通信装置の動作フローチャートである。本フローチャート図を用いてサービス検索からサービス利用迄の通信装置の動作フローを説明する。
まず、Service Discovery制御部204は、無線LANレイヤでのサービス検索処理(サービスディスカバリ)を開始する(S401)。Service Discovery制御部204は、SD Queryを送信し、SD Responseの受信を待機する。即ち、Service Discovery制御部204は、第1の通信層における通信に基づいて、他の通信装置の実行可能なサービスを検出する第1の検出処理を実行する。次に、Service Discovery制御部204は、サービス検索で所望のサービスを提供可能な他の通信装置が存在するかの判定を行う(S402)。当該判定は、SD Query対して所望のサービスが実行可能ことを示す応答を受信したか否かに基づいて行われる。なお、S402において、SD Responseを一つも受信しない場合は、サービス提供可能であることを示す応答を受信しなかったと判断する。また、Service Discovery制御部204は、SD Responseに含まれる情報に所望のサービス提供可能でることを示す情報が検出できない場合は、所望のサービス提供が可能な旨の応答を受信しなかったと判断する。なお、Service Discovery制御部204が送信したSD Queryを受信した他の通信装置がオプション機能であるサービスディスカバリ機能(所定の機能)に対応していない場合は当該他の通信装置は応答しない。
S402において所望のサービス提供が可能な旨の応答を受信しなかったと判断した場合、Wi−Fi Direct制御部203は、無線接続処理を実施する(S405)。S405における無線接続処理では、Wi−Fi Directの仕様に則り他の通信装置とP2Pグループを形成し、無線LAN層及びIP層での接続を確立する。即ち、Wi−Fi Direct制御部203は、Wi−Fi Directの仕様に則り相手装置のスキャン処理、GOかCLかの役割決定処理、通信パラメータの共有処理を実行する。
S405では、Discovery制御部202により周囲の通信装置を検索することが可能である。さらに、検索結果の一覧などからユーザに接続相手を選択させることでサービス提供装置を特定することも可能である。また、それ以外の方法を用いて接続相手を特定しても良い。Wi−Fi Direct制御部203は、S405における無線接続処理において他の通信装置と無線接続が成功したか否かを判定する(S406)。例えば、無線通信可能な範囲に他の通信装置が存在しない場合、無線接続処理は失敗する。S407において無線接続処理が失敗した場合はS409に進む。
S406において無線接続処理が成功するとL3 Service DISCOVERY制御部205によりサービス検索を開始する(S407)。L3 Service DISCOVERY制御部205は、第1の通信層と異なる第2の通信層における通信に基づいて、他の通信装置の実行可能なサービスを検出する第2の検出処理を実行する。本説明では、L3 Service DISCOVERY制御部205は、UPnPで規定される検索通信プロトコルSSDPを用いて第2の通信層におけるサービス検索処理を行うものとする。なお、SSDPは、Simple Service Discovery Protocolの略である。L3 Service DISCOVERY制御部205は接続したネットワークに接続する他の通信装置が所望のサービス(例えば、プリントサービス)を提供しているかどうかを確認するため、SSDPのM−Searchと呼ばれるサービス検索信号を送付する。 第2の通信層におけるサービス検索の結果により、所望のサービスを提供可能な他の通信装置が存在するかを判定する(S408)。L3 Service DISCOVERY制御部205は、M−Searchに対する応答の有無および、応答があった場合に利用可能なサービス種別が含まれているかどうかの調査により当該判定を行う。所望のサービスを提供可能な他の通信装置が存在しない場合や無線接続に失敗した場合(S406のいいえ、S408のいいえ)は、エラー処理部210は、エラー処理を行う(S409)。なお、エラー処理は、所望のサービス提供可能な装置が存在しないことを表示部105に表示し、処理をエラー終了する。
また、サービス利用部209は、所望のサービスを提供可能な他の通信装置が存在する場合(S408のはい)は、取得したサービス情報を用いてサービスを開始する(S404)。
一方、S402で所望のサービスを提供可能な他の通信装置が存在することを無線LANレイヤにおけるサービス検索処理において確認できた場合は、S405と同様に無線接続処理を行う(S403)。ただし、S403では、サービス検索によりサービス提供装置が特定できているため、ユーザによる選択などを省くことも可能である。例えば、サービス検索により、サービス提供装置のMACアドレス(識別情報)を取得可能であるため、接続相手を同MACアドレスに限定することで自律的に接続相手をS402において検索したサービス提供装置に限定することが可能である。
接続が完了したらS401のサービス検索で得たサービス情報を元にサービスを開始する(S404)。
以上説明したように、オプション機能であるサービスディスカバリに対応していない他の通信装置からサービス検索の応答を受け取ることができない場合にも、通信可能な範囲に存在しのWi−Fi Directに対応している他の通信装置と無線接続処理を行う。そして、UPnPで規定されるサービス検索処理を行い、他の通信装置が所望のサービスを実行可能であることを確認できるので所望のサービスが実行できるようになる。即ち、無線LAN層でのサービスディスカバリによる応答がないことを以てサービスを実行するための処理を終了することがなくなるので所望のサービスを実行できる他の装置を検出する可能性を向上することができる。
なお、本実施形態におけるサービス利用装置、サービス提供装置とは、実行するサービス印刷サービスであれば、受益装置は、印刷すべき画像、書類を有している装置であり、提供装置は印刷機能を有している装置である。即ち、前者はデジタルカメラやスマートフォンなどであり、後者はプリンタである。また、映像ストリーミングサービスであれば、受益装置は、デジタルカメラやカムコーダなどの映像記録装置であり、提供装置とは、デジタルTVやプロジェクタなどの画像表示装置である。また、実行するサービスをDLNA(登録商標)とすると、例えば、サービス利用装置はDMS(デジタルメディアサーバ)であり、サービス提供装置はDMR(デジタルメディアレンダラ―)である。なお、DLNAはDigital Living Network Allianceの略である。なお、DLNA規格においては様々なデバイスクラスが存在するため本記述は一例である。詳細はDLNA規格を参照されたい。
続いて、本実施形態における各装置間の動作シーケンスを図5、図6に示すシーケンス図を用いて説明を行う。図5において、STA−BがサービスXの提供装置、STA−AがサービスXの受益装置であり、STA−AとSTA−Bが共にサービスディスカバリ機能をサポートしている場合を例に説明する。
図5において、STA−A32はサービスディスカバリ機能を用いてサービスXを実行可能な他の通信装置の検出をするためSD Queryを送信する(F501)。この例では、STA−A32はサービスXを指定したSD Queryを送信する。なお、SD Queryはユニキャストで送信することも可能であるし、ブロードキャストまたはマルチキャストで送信することも可能である。STA−B33は、サービスディスカバリ機能をサポートしているため、SD Queryを受信するとサービスXが提供可能であることを示すSD ResponseをSTA−A32に送信する(F502)。なお、SD Responseには、サービスX以外のサービスをサポートしていることを示すサービス情報を付与することも可能である。
STA−A32は、送信したSD Queryに対する応答をSTA−B33から受信したことによって、STA−B33がサービスXを提供可能であると判断する。そして、STA−A32はSTA−BとWi−Fi Directの仕様に則り無線接続処理を実施する(F503)。この処理により、STA−A32とSTA−B33は無線LANでの接続とIP設定が完了した状態となる。
STA−A32は、STA−B33との無線接続処理が完了するとサービス検索により取得したサービス情報を元にサービスXを開始する(F504)。具体的には、サービスXが印刷サービスであった場合、STA−A32が撮影した画像を印刷する際に、印刷機能を有したプリンタ(STA−B33)を検索して、無線経由で撮像画像をSTA−B33に印刷させる印刷処理を行う。
続いて、図6においてSTA−B33がサービスXの提供装置、STA−A32がサービスXの受益装置であり、STA−A32がサービスディスカバリ機能をサポートし、STA−B33がサービスディスカバリ機能をサポートしていない場合の例を説明する。
図6においてSTA−A32はF501と同様にSD Queryを送信する(F601)。この場合、STA−B33はサービスディスカバリ機能をサポートしていないため、SD Queryに対してSD Responseを送信しない。
STA−A32はSD Responseを受信しないため、所望のサービスを提供可能な他の通信装置が存在しないと判定し、サービス情報を取得しない状態で無線接続処理を実施する(F602)。STA−A32はSTA−B33が通信可能な範囲にいることをスキャン処理により検出し、STA−B33と無線接続を行う。
STA−A32は、無線接続処理が完了すると第1の通信層と異なる第2の通信層におけるサービス検索を開始する(F603)。この例では、STA−A32はサービスXを指定したサービス検索要求を送信する(F603)。STA−B33は、第2の通信層におけるサービス検索機能はサポートしているため、サ―ビス検索要求を受信するとサービスXが提供可能なことを示すサービス検索応答をSTA−A32に送信する(F604)。STA−A32はL3サービス検索応答を受信すると付与されたサービス情報を元にサービスXを開始する(F605)。
以上のように、本実施例によれば所望のサービスを実行可能な他の通信装置がサービスディスカバリ機能をサポートしているか否かによらず、サービスを開始することが可能となる。また、サービスディスカバリ機能により他の通信装置が所望のサービスを実行可能であることを検出した場合は、他の通信層におけるサービス検索処理を実行しないのでサービス開始までの時間を短縮ことが可能となり、ユーザの利便性が向上する。また、オプション機能であるサービスディスカバリに対応していない他の通信装置からサービス検索の応答を受け取ることができない場合にも、無線接続処理を行う。そして、UPnP等の無線LAN通信層とは異なる通信層に規定されるサービス検索処理を行い、他の通信装置が所望のサービスを実行可能であることを確認できるので所望のサービスが実行できるようになる。即ち、サービスディスカバリによる応答がないことを以てサービスを実行するための処理を終了することがなくなるので所望のサービスを実行できる他の装置の検出する可能性を向上することができる。
なお、上述の例では、SD Query/SD Responseを用いたサービス検索を例示したが、Probe Request/Probe Responseなどの検索信号をサービス検索処理に用いる構成としてもよい。例えば、Probe Request/Probe Responseに所望のサービスを実行可能でることを示すIE(Information Element)を付与することによりサービス検索処理を実行することができる。
なお、上述の例では、サービス利用装置がサービス検索を実施する例を記載したが、サービス提供装置がサービス検索を実施する場合でも適用可能である。
(実施例2)
実施例1においては、他の通信装置と無線接続前にサービスディカバリ機能によるサービス検索を実施した場合の例について説明した。本実施例2においては、他の通信装置と無線接続後にサービスディカバリ機能によるサービス検索を実行する。そして、接続相手がサービスディカバリ機能に対応していなければ、さらに第2の通信層におけるサービス検索処理を実行する例を説明する。なお各装置の構成は実施例1と同様に図1および図2のとおりである。
実施例2におけるサービス利用装置の動作フローチャートを図7に示すフローチャートを用いて説明する。なお、図7に示すフローチャートにおいて既にサービスX実行するために他の通信装置とのネットワークが構築済みの状態で、サービスYの実行指示を受付けた場合の例の説明を行う。
図7において、通信装置は通信相手と無線LANでの接続及びIP設定が完了し、他のサービスを実行中若しくは実行後の状態において、サービスYの実行指示を受付けた場合に処理が始まる。サービスYの実行指示を受付けた場合、Service Discovery制御部204は、サービスディスカバリ機能によるサービス検索を開始する(S701)。Service Discovery制御部204は、サービスYを指定したSD Queryを送信し、SD Responseの受信を待機する。なお、S701にサービス検索は、SD Query/SD Responseを用いてもよいし、Probe Request/Probe Responseを用いることも可能である。
次にS402同様に接続相手がサービスを提供可能かの判定を行う(S702)。S702において所望のサービス提供が可能な旨の応答を受信しなかったと判断した場合、第2の通信層におけるサービス検索を開始する(S704)。L3 Service DISCOVERY制御部205は、第2の通信層におけるサービス検索の結果により、接続相手が所望のサービスを提供可能か否かを判定する(S705)。S705において所望のサービスを提供可能なではないと判定した場合は、エラー処理を行う(F706)。なお、F706におけるエラー処理は接続相手が所望のサービスを実行可能ではないことを表示部105に表示し、処理をエラー終了する。
S705において所望のサービスを提供可能なであると判定した場合は、取得したサービス情報を元にS404と同様に接続相手とサービスを開始する(S703)。
具体的には、映像ストリーミングサービスで映像表示をしながら、ファイル転送サービスを開始し、ファイル転送をするなどという動作が可能となる。なおここでの具体例は、発明を限定する意図ではなく、単なる理解を深めるための例示であることは言うまでもない。
続いて、本実施例における各装置の動作シーケンスを図8、図9に示すシーケンス図を用いて説明を行う。図8においてSTA−B33がサービスX及びサービスYの提供装置、STA−A32がサービスX及びサービスYの受益装置であり、STA−AとSTA−Bが共にサービスディスカバリ機能をサポートしている場合の例である。また、STA−AとSTA−Bは最初にサービスXを開始し、続けてサービスYを開始する際の動作例を説明する。
F801〜F804はF501〜F504と同様であるため、説明を省略する。これらの処理により、STA−B33がSTA−A32にサービスXを提供している状態となる。次にSTA−A32において、サービスYの実行が指示されるとサービスYを指定した、サービスYを要求する旨のSD Queryを送信する(F805)。STA−B33は、サービスディスカバリ機能をサポートしているため、SD Queryを受信するとサービスYが提供可能であることを示すSD ResponseをSTA−A32に送信する(F806)。STA−A32は、SD Queryを受信すると取得したサービス情報を元にサービスYを開始する(F807)。以上により、サービスX実行するために構築したネットワークにおいて他のサービスYを開始することが可能となる。
続いて、図9においてSTA−B33がサービスX及びサービスYの提供装置、STA−A32がサービスX及びサービスYの受益装置であり、STA−A32がサービスディスカバリ機能をサポートしている場合を説明する。また、STA−B33がサービスディスカバリ機能をサポートしていない場合の例を説明する。また、STA−AとSTA−Bは最初にサービスXを開始し、続けてサービスYを開始する際の動作例を用いて説明する。
F901〜F905はF601〜F605と同様であるため、説明を省略する。これらの処理により、無線接続が完了しSTA−B33がSTA−A32にサービスXを提供している状態となる。次にSTA−A32において、F805と同様にサービスYの実行が指示されるとサービスYを指定した、サービスYを要求する旨のSD Queryを送信する(F906)。しかし、STA−Bはサービスディスカバリ機能をサポートしていないため、SD Queryに対してSD Responseを送信しない。
STA−A32はSD Responseを受信しないため、続いて第1の通信層と異なる第2の通信層におけるサービス検索を開始する(F907)。STA−B33は第2の通信層におけるサービス検索機能はサポートしているため、サ―ビス検索要求を受信するとサービスYが提供可能な旨のサービス検索応答をSTA−A32に送信する(F908)。STA−A32はL3サービス検索応答を受信すると付与されたサービス情報を元にサービスYを開始する(F909)。
ここでは、サービスY開始時にも再度SD Queryの送信を行う場合を例に説明したが、サービスXのサービス検索が失敗したことを記憶部103に記憶しておいて、SD Queryによる検索を省略することも可能である。特に、サービスXの無線LAN層でのサービスディスカバリにおいてサービスを指定しない検索を行う場合、相手装置から応答が無い場合は、相手装置が無線LAN層でのサービスディスカバリに対応していないことが考えられる。したがって、この場合、サービスY開始時に再度SD Queryの送信を行わず、第2の通信層におけるサービス検索を行う構成として良い。
以上のように、本実施例によれば既にネットワークが構築された状態においても対向装置のサービスディスカバリ機能をサポートしているか否かによらず、サービスを開始することが可能となる。
(実施例3)
実施例3においては、実施例2で説明した他の通信装置と無線接続後にサービスディカバリ機能によるサービス検索を実行し、接続相手がサービスディカバリ機能に対応していなければ、さらに第2の通信層におけるサービス検索処理を実行する他の例を説明する。なお各装置の構成は実施例1と同様に図1および図2のとおりである。図12は、本実施例におけるシステム構成図である。図12において通信装置A32(以下、STA−A)、通信装置B33(以下、STA−B)と、通信装置C34(以下、STA−C)が存在する。
図13は、本実施例におけるSTA−A32の動作フローチャートである。本フローチャート図を用いてサービス検索からサービス利用迄の通信装置の動作フローを説明する。
まず、Discovery制御部202は、通信可能な範囲の無線通信装置を検索する(S1301)。S1301での検索処理は、Wi−Fi Directプロトコル仕様に基づき、まず全チャンネルスキャンを行う。そして、所定のチャンネル(ソーシャルチャンネル)のスキャンと所定のチャンネルでの他の装置からのプローブリクエストの待ち受けとを繰り返し相手装置の検索を行う。Wi−Fi Direct制御部203は、S1301において検索した相手意装置と無線接続処理を実施する(S1302)。S1303では、STA−A32はS1302おいて構築したネットワークにおいて通信を行う(S1303)。
なお、S1303の処理は省略しても構わない。STA−A32は、ネットワーク構築後にユーザからのサービスの実行指示を受付けたかを判定する(S1304)。S1304において、ユーザからのサービスの実行指示を受付けた場合、Service Discovery制御部204は、無線LANレイヤでのサービス検索処理(サービスディスカバリ)を開始する(S1305)。Service Discovery制御部204は、SD Queryをブロードキャスト送信し、SD Responseの受信を待機する。次に、Service Discovery制御部204は、S1302において無線接続した相手装置から所望のサービスを提供可能な旨の応答があったかのの判定を行う(S1306)。また、ブロードキャストしたSD Queryの応答から周囲に存在する所望のサービスを実行できる他の装置の識別情報を記憶しておく。
S1306において接続相手から所望のサービス提供が可能な旨の応答を受信しなかったと判断した場合、L3 Service DISCOVERY制御部205によりサービス検索を開始する(S1308)。本説明では、L3 Service DISCOVERY制御部205は、UPnPで規定される検索通信プロトコルSSDPを用いて第2の通信層におけるサービス検索処理を行うものとする。第2の通信層におけるサービス検索の結果により、接続相手が所望のサービスを提供可能かを判定する(S1309)。L3 Service DISCOVERY制御部205は、M−Searchに対する応答の有無および、応答があった場合に利用可能なサービス種別が含まれているかどうかの調査により当該判定を行う。接続相手が所望のサービスをサポートしていない場合、当該接続相手との無線接続を切断(ネットワークからの離脱、グループから脱退)し、再度Discovery制御部202は、通信可能な範囲の無線通信装置を検索する(S1310)。なお、ここで、S1305によりブロードキャストしたサービスディカバリにより所望のサービスを実行可能な他の通信装置が検出出来ている場合は、当該他の通信装置を指定したプローブリクエストを送信するようにして良い。
Wi−Fi Direct制御部203は、S1310の検索処理において検索したS1302と接続した相手と異なる他の通信装置と無線接続処理を実施する(S1311)。L3 Service DISCOVERY制御部205によりS1311において接続した相手に対してサービス検索を開始する(S1312)。S1311における第2の通信層におけるサービス検索の結果により、S1312において接続した相手装置が所望のサービスを提供可能な他の通信装置が存在するかを判定する(S1313)。接続相手が所望のサービスを提供可能な場合、サービス利用部209は取得したサービス情報を用いてサービスを開始する(S1307)。接続相手が所望のサービスを提供可能でない場合、エラー処理を行う(S1314)。なお、エラー処理は、所望のサービス提供可能な装置が存在しないことを表示部105に表示し、処理をエラー終了する。なお、S1305において接続相手が所望のサービス提供可能な場合はサービス利用部209はサービスを開始する(S1307)。
以上の処理により無線ネットワークを構築後にサービス実行を指示された場合に接続相手が所望のサービスが実行できるかを検出することができる。また、接続相手が所望のサービスを実行できない場合は、周囲に存在する所望のサービスを実行可能な他の通信装置と無線接続しサービスを実行できるようになる。
続いて、実施例3に各装置の動作シーケンスを図10、図11に示すシーケンス図を用いて説明を行う。図10においてSTA−B33がサービスX提供装置、STA−A32がサービスXの受益装置であり、STA−A32がサービスディスカバリ機能をサポートし、STA−B33がサービスディスカバリ機能をサポートしていない場合の例を説明する。また、STA−A32とSTA−B33は最初にWi−Fi Directプロトコル仕様に基づいた接続処理によりネットワークを構築後にサービスXの実行指示を受付けた場合について説明を行う。
図10において、STA−A32は、Wi−Fi Directプロトコル仕様に基づいた接続処理によりSTA−B33とネットワークを構築し(F1001)、通常の通信処理を実行する(F1002)。図12の(a)に示すネットワークA31が構築される。次にSTA−A32において、サービスXの実行が指示される(F1003)と、サービスXを指定した、サービスXを要求する旨のSD Queryを送信する(F1004)。STA−B33は、サービスディスカバリ機能をサポートしていないため、ため、SD Queryに対してSD Responseを送信しない。
STA−A32はSD Responseを受信しないため、続いて第1の通信層と異なる第2の通信層におけるサービス検索を開始する(F1005)。STA−B33は第2の通信層におけるサービス検索機能はサポートしているため、サ―ビス検索要求を受信するとサービスYが提供可能な旨のサービス検索応答をSTA−A32に送信する(F1006)。STA−A32はL3サービス検索応答を受信すると付与されたサービス情報を元にサービスYを開始する(F1007)。
ここでは、サービスY開始時にも再度SD Queryの送信を行う場合を例に説明したが、サービスXのサービス検索が失敗したことを記憶部103に記憶しておいて、SD Queryによる検索を省略することも可能である。
続いて、図11においてSTA−CがサービスX提供装置、STA−A32がサービスXの受益装置であり、STA−A32がサービスディスカバリ機能をサポートしている場合の例を説明する。また、STA−B33がサービスディスカバリ機能およびサービスXをサポートしていない場合の例を説明する。また、STA−A32とSTA−B33は最初にWi−Fi Directプロトコル仕様に基づいた接続処理によりネットワークを構築後にサービスXの実行指示を受付けた場合について説明を行う。
図11において、STA−A32は、Wi−Fi Directプロトコル仕様に基づいた接続処理によりSTA−B33とネットワークを構築し(F1101)、通常の通信処理を実行する(F1102)。図12の(a)に示すネットワークA31が構築される。次にSTA−A32において、サービスXの実行が指示される(F1103)と、サービスXを指定した、サービスXを要求する旨のSD Queryをブロードキャストで送信する(F1104)。STA−B33は、サービスディスカバリ機能をサポートしていないため、ため、SD Queryに対してSD Responseを送信しない。また、STA−Cもサービスディスカバリ機能をサポートしていないため、ため、SD Queryに対してSD Responseを送信しない。
STA−A32はSD Responseを受信しないため、続いて第1の通信層と異なる第2の通信層におけるサービス検索を開始する(F1105)。STA−A32は、STA−B33とネットワークを構築中であるため第2の通信層におけるサービス検索機能は接続中の通信相手装置にしか行うことはできない。しかしながら、現在同じグループに属している、STA−B33はサービスXをサポートしていないため、サ―ビス検索要求を受信しても応答を返さない。STA−A32は、現在接続中のネットワークに所望のサービス実行できる装置が存在しないと判定し、現在接続中のネットワークの切断処理を実行する(F1106)。続いて、通信可能な更に別の他の通信装置(ここではSTA−C)と接続するためにWi−Fi Directの仕様に則り相手装置のスキャン処理を含む無線接続処理を行う(F1107)。この例では、STA−Cがスキャン処理により検索されSTA−A32は、STA−Cと新たにネットワークを構築する。図12の(b)に示すネットワークB35が構築される。なお、STA−A32は、F1104により送信した無線LAN層におけるサービスディスカバリに用いる信号の応答がSTA−Cから無かったため、STA−Cは、サービスディスカバリ機能をサポートしていないと判断する。STA−A32はSTA−Cがサービスディカバリ機能をサポートしていないと判定したため、第1の通信層と異なる第2の通信層におけるサービス検索を開始する(F1108)。
STA−Cは第2の通信層におけるサービス検索機能はサポートしているため、サ―ビス検索要求を受信するとサービスXが提供可能な旨のサービス検索応答をSTA−A32に送信する(F1109)。STA−A32はL3サービス検索応答を受信すると付与されたサービス情報を元にサービスYを開始する(F1109)。
ここでは、F1107における無線接続前にSD Queryの送信を行わない場合を例に説明したが、F1107における無線接続前にSD Queryによる検索を再度行うように構成することも可能である。
以上のように、本実施例によれば既にネットワークが構築された状態において、接続相手が所望のサービスをサポートしていない場合でも、所望のサービスを実行可能な通信相手を、検索することができる。また、接続相手が所望のサービスディスカバリ機能をサポートしているか否かによらず、所望のサービスを実行可能な通信相手を検索することができる。
(その他の実施例)
上述の実施例においてサービス検索処理、無線接続処理、L3サービス検索処理をシーケンシャルに実施する例を示したが、これらの処理を並行して実施することも可能である。例えば、初めにサービス検索処理を一定時間実施してもサービス提供装置を発見できない場合、続く無線接続処理またはL3サービス検索処理実施中に並行してサービス検索処理を実施してもよい。並行して実施したサービス検索処理において所望のサービス検索応答を受信した場合は、L3サービス検索処理を省略または中断してサービスを開始するといったことも可能である。
また、上位アプリケーションがL3サービス検索処理により取得するサービス情報(IPアドレスなど)を必要とする場合は、サービス検索処理を省いて無線接続処理及びL3サービス検索処理を開始することも可能である。さらに、ユーザの指示等により接続相手がサービス検索機能をサポートしていない装置であることが予め認識できる場合も同様の対応が可能である。
また、上位アプリケーションがサービス検索処理により取得するサービス情報を必要とする場合は、サービス検索処理で所望のサービス検索応答を受信できなかった時点でエラー表示等を行ってもよい。
本発明は前述の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、システムあるいは装置のコンピュータ(CPU、MPU)が記録媒体に格納されたプログラムコードを読み出し実行するようにしてもよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSが実際の処理の一部または全部を行い、前述の機能を実現してもよい。OSとは、Operating Systemの略である。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、そのプログラムコードの指示に基づき、機能拡張ボードや機能拡張ユニットに備わるCPUが実際の処理の一部または全部を行い、前述の機能を実現してもよい。