以下、本実施形態に係る通信装置、通信システムについて、図面を参照しながら詳細に説明する。図1は、以下に説明する本実施形態において想定するシステム100の構成図である。101は通信装置であるデジタルカメラ、102はスマートフォンである。デジタルカメラ101とスマートフォン102は、近接無線通信であるNFC(Near Field Communication)通信103または無線LAN通信104を用いて通信を行うことが可能である。
続いて、図2を用いてデジタルカメラ101のハードウェア構成を説明する。デジタルカメラ101は、表示部201、操作部202、記憶部203、電源部204、撮影部205、制御部206、ROM207、RAM208、無線LAN通信部209、NFC通信部210を備える。
表示部201は、例えばLCDやLEDにより構成され、ユーザが視覚で認知可能な情報を出力する機能を有し、アプリケーションに係るUIなどの表示を行う。操作部202は、ユーザが各種入力等を行い、通信装置を操作するための機能を有する。記憶部203は、例えば、HDD、フラッシュメモリまたは着脱可能なSDカードなどの記憶媒体により構成され、無線通信ネットワーク情報、データ送受信情報、画像データなど各種データを記憶し、管理する。電源部204は、例えばバッテリであり、装置全体を動作させるための電源を保持し、各ハードウェアに電力を供給する。
撮影部205は、撮像素子、レンズ等により構成され、写真や動画の撮影を行う。制御部206は、例えばCPU(Central Processing Unit)であり、デジタルカメラ101の装置全体の動作を制御する。ROM207は、制御命令つまりプログラムを格納する。後述する各種動作は、ROM207に記憶された制御プログラムを制御部206が実行することにより実現される。RAM208は、プログラムを実行する際のワークメモリやデータの一時保存などに利用される。209は、無線LAN通信104を行う無線LAN通信部である。無線LAN通信部209は、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.11シリーズに準拠した無線通信を行う。
なお、本実施形態では、無線LAN通信部209は、IEEE802.11シリーズに準拠した無線通信を行うものとしたが、Bluetooth(登録商標)等の他の通信方式を用いてもよい。210は、NFC通信103を行うNFC通信部である。NFC通信部210は、NFC Forumで規定された通信規則に準拠した無線通信を行う。また、NFC通信部210は、通信範囲内に通信可能な装置を検出すると自動的にNFC通信103を確立する。なお、NFC通信部210は、NFC規格に準拠した無線通信を行うものとしたが、他の近接無線通信方式であってよい。また、無線LAN通信部209が用いる通信方式より、通信距離が短い通信方式を用いてもよい。また、NFC通信部210は、無線LAN通信部209が用いる通信方式より、通信速度が遅い通信方式を用いればよい。NFC通信部210は、例えば、Bluetooth(登録商標)4.0で規定されるBluetooth(登録商標) Low Energy(BLE)方式を用いてもよい。
続いて、図3を用いてスマートフォン102のハードウェア構成を説明する。スマートフォン102は、表示/操作部301、公衆通信部302、記憶部303、電源部304、撮影部305、制御部306、ROM307、RAM308、無線LAN通信部309、NFC通信部310を備える。表示/操作部301は、例えばタッチパネル等によって構成され、視覚で認識可能な情報を出力する機能と、ユーザの各種入力操作を受付ける機能とを有する。公衆通信部302は、移動体通信事業者の公衆無線基地局と接続され、公衆通信網を経由して電話通信またはインターネットへのアクセスのための通信を行う。
記憶部303は、例えば、HDD、フラッシュメモリまたは着脱可能なSDカードなどの記憶媒体により構成され、無線通信ネットワーク情報、データ送受信情報、画像データなど各種データを記憶し、管理する。電源部304は、例えばバッテリであり、装置全体を動作させるための電源を保持し、各ハードウェアに電力を供給する。
撮影部305は、撮像素子、レンズ等により構成され、写真や動画の撮影を行う。制御部306は、例えばCPUであり、スマートフォン102の装置全体の動作を制御する。ROM307は、制御命令つまりプログラムを格納する。後述する各種動作は、ROM307に記憶された制御プログラムを制御部206が実行することにより実現される。RAM308は、プログラムを実行する際のワークメモリやデータの一時保存などに利用される。209は、無線LAN通信104を行う無線LAN通信部である。無線LAN通信部209は、IEEE802.11シリーズに準拠した無線通信を行う。
なお、本実施形態では、無線LAN通信部309は、IEEE802.11シリーズに準拠した無線通信を行うものとしたが、Bluetooth(登録商標)等の他の通信方式を用いてもよい。310は、NFC通信103を行うNFC通信部である。NFC通信部210は、NFCに準拠した無線通信を行う。また、NFC通信部210は、通信範囲内に通信可能な装置を検出すると自動的にNFC通信103を確立する。なお、NFC通信部310は、NFC規格に準拠した無線通信を行うものとしたが、他の近接無線通信であってよい。また、無線LAN通信部209が用いる通信方式より、通信距離が短い通信方式を用いてもよい。また、NFC通信部210は、無線LAN通信部209が用いる通信方式より、通信速度が遅い通信方式を用いればよい。NFC通信部210は、例えば、BLE方式を用いてもよい。
次に図4、図5を参照して、デジタルカメラ101、スマートフォン102の機能ブロック図を説明する。本実施形態において、デジタルカメラ101、スマートフォン102の機能ブロックは、それぞれROM207、ROM307にプログラムとして記憶され、制御部206、制御部306によって当該プログラムが実行されることによりその機能が実施される。制御部206および制御部306は、制御プログラムにしたがって、各ハードウェアの制御、および、情報の演算や加工を行うことで各機能を実現する。なお、本機能ブロックに含まれる一部または全部がハードウェア化されていてもよい。この場合、各機能ブロックに含まれる一部または全部は、例えばASIC(Application Specific Integrated Circuit)により構成される。
図4はデジタルカメラ101の機能ブロック図(400)である。デジタルカメラ101は、無線LAN通信制御部410、NFC通信制御部420、サービス実行部430を備える。
無線LAN通信制御部410は、無線LAN通信部209を介した無線LAN通信を制御する処理部である。また無線LAN通信制御部410は、無線LANのインフラストラクチャモードにおけるステーションとして動作するSTA機能と、アクセスポイントとして動作するAP機能を備える。
NFC通信制御部420はNFC通信部210を介したNFC通信を制御する処理部である。
無線LAN通信制御部410とNFC通信制御部420とは、Wi−Fi Allianceにより規定されたWi−Fi Direct(WFD)に基づいて、ハンドオーバ処理を実行することができる。なお、ここで、ハンドオーバとは上述の通り、第1の通信手段である第1の通信路による通信から、第2の通信手段による第2の通信路による通信への切り替え行為を示す。WFDでは、NFC通信を用いることで通信相手を確定し、通信相手と確定された装置間で通信グループを構築するための無線LAN通信を行うことが規定されている。
なお、WFDにおいては、アクセスポイントとして動作する通信装置をP2Pグループオーナー(以下、GO)、ステーションとして動作する通信装置をP2Pクライアント(以下、CL)と称する。即ち、WFDは、GOの装置が形成するネットワークにCLの装置が参加することで通信グループを形成する。無線LAN通信制御部410は、GOまたはCLとして動作するかを、WFDで規定されているGO Negotiationのプロトコルにより決定する。WFDではGOの構築したネットワークをP2Pグループとも称する。本実施形態ではネットワークのことをP2Pグループと記載する場合もある。どちらも同一の意味を表す。
なお、本実施形態では、GO、CLおよびGOまたはCLとして動作するかが未決定の通信装置群をまとめて、P2Pデバイスと称す。P2Pデバイスは、CLになることもGOになることもできる。GOまたはCLとして動作するかが未決定のP2Pデバイスは、GOとして動作するかCLとして動作するかをWFDのプロトコルを実施して自動的に決定する。そして、決定したいずれかの役割で動作し、無線接続、無線通信する。また、WFDを用いて装置間で接続する場合、GOからCLに通信パラメータを提供し、該通信パラメータを用いて接続する。通信パラメータには、IEEE802.11規格に準拠して無線通信するための各種無線通信パラメータが含まれる。つまり、通信パラメータには、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線LAN通信を行うために必要な無線通信パラメータが含まれる。また、IP層での通信を行うためのIPアドレス等を含めてもよい。
以上のように、WFDのGOは、アクセスポイントとして動作し、かつ、通信パラメータを提供する装置である。また、WFDのCLは、ステーションとして動作し、かつ、通信パラメータを受信する装置である。
サービス実行部430は、デジタルカメラ101が無線LAN通信部209を用いて実行できる外部機器のサービス情報を管理し、サービスを実行する処理部である。サービス実行部430では、サービスの識別子やそれに対応するサービスの実行手順、サービスのオプション情報などをサービス情報として管理する。サービス実行部430は、無線LAN通信104を介して通信処理(サービス)を実行する。なお本実施例のデジタルカメラ101はデータ転送サービス、データ再生サービス、印刷サービスなどが実行可能である。さらに、データ転送サービスに用いるプロトコルとして「DLNA Upload/Download」、「DLNA 2Box Pull/Push」、「FTP」が実行可能であるものとする。
図5はスマートフォン102の機能ブロック図(500)である。スマートフォン102は、無線LAN通信制御部510、NFC通信制御部520、サービス実行部530、公衆通信制御部540を備える。無線LAN通信制御部510は、無線LAN通信部309を介した無線LAN通信を制御する処理部である。また無線LAN通信制御部510は、STA機能と、AP機能を備える。
NFC通信制御部520はNFC通信部310を介したNFC通信を制御する処理部である。無線LAN通信制御部410とNFC通信制御部420とは、WFDに基づいて、ハンドオーバ処理を実行することができる。
サービス実行部530は、スマートフォン102が無線LAN通信制御部510を介して外部機器に提供できるサービスの情報を管理し、サービスを実行する処理部である。
サービス実行部530では、サービスの識別子やそれに対応するサービスの実行手順、サービスのオプション情報などをサービス情報として管理する。サービス実行部530は、無線LAN通信104を介して通信処理(サービス)を実行する。なお本実施形態のスマートフォン102はデータ転送サービス、データ再生サービスなどが実行可能である。さらに、データ転送サービスに用いるプロトコルとして「DLNA Upload/Download」、「DLNA 2Box Pull/Push」、「FTP」が実行可能であるものとする。公衆通信制御部540は、公衆通信部302による通信を制御する処理部である。
なお、本実施形態における通信システムにおける装置をデジタルカメラとスマートフォンとして説明を行うが、例えばプリンタ、PC、ビデオカメラ、スマートウォッチ、PDAなどの装置であってもよい。
次に上述の構成を有する通信システムの動作について説明を行う。
図6のフローチャートと、図7のシーケンスチャートを参照して、デジタルカメラ101およびスマートフォン102間で、NFC通信103から無線LAN通信104にハンドオーバし、無線LAN通信104を介して、通信処理を実行する場合を説明する。
図7は、デジタルカメラ101およびスマートフォン102双方が、実行するサービスが確定している状態で、NFC通信103を確立し、無線LAN通信104にハンドオーバする場合のシーケンスチャートである。
ここでは、デジタルカメラ101に保持された画像をスマートフォン102に送る動作とスマートフォン102に保持された画像をデジタルカメラ101に送る動作が競合した場合を説明する。
まず、デジタルカメラ101は、ユーザによる操作部202への入力に応じて、記憶部203に保持する撮影部205により撮影された画像を選択し、選択された画像を表示部201に表示させる。さらに、デジタルカメラ101は、ユーザによる操作部202への入力に応じて、選択された画像をスマートフォン102へ転送するサービスの実行命令を受け付ける。
デジタルカメラ101は、サービスの実行命令を受け付けた場合、NFC通信制御部420により、ハンドオーバ及びサービスの実行をスマートフォン102に要求するリクエスタとして動作するようNFC通信部210を制御する(S701)。
同様に、スマートフォン102も、ユーザによる表示/操作部301への入力に応じて、記憶部303に保持する撮影部305により撮影された画像を選択し、選択された画像を表示/操作部301に表示させる。さらに、スマートフォン102は、ユーザによる表示/操作部301への入力に応じて、選択された画像をデジタルカメラ101へ転送するサービスの実行命令を受け付ける。
スマートフォン102は、サービスの実行命令を受け付けた場合、NFC通信制御部520により、ハンドオーバ及びサービスの実行をデジタルカメラ101に要求するリクエスタとして動作するようNFC通信部310を制御する(S702)。
次いで、デジタルカメラ101とスマートフォン102とが互いに近接されると、NFC通信103が確立する(S703)。デジタルカメラ101とスマートフォン102の両方は、リクエスタとして動作することが確定されている状態である。したがって、NFC通信103が確立した場合、NFC通信部210およびNFC通信部310の夫々は、相手装置に実行を要求するサービスの識別子情報を含むハンドオーバ要求メッセージを送信する。ハンドオーバ要求メッセージは、NFCとは異なる通信方式により新たに接続することを要求するメッセージである。なお、本実施形態においてハンドオーバ要求メッセージとはNFC Forum Connection Handover Technical Specificationにて規定されるHandover Requestメッセージである。
ハンドオーバ要求メッセージには、ハンドオーバを要求する通信方式(キャリア)を識別するための“キャリア情報”が含まれる。キャリア情報には、Wi−Fi Direct/無線LAN/Wi−Fi IBSS/Bluetooth(登録商標)等の通信方式の種別の情報が含まれる。さらに、それぞれの無線キャリアのパワー状態(Active:活性状態、Inactive:非活性状態など)に関する情報を含めても良い。
また、本実施形態におけるハンドオーバ要求メッセージには、以下のサービス情報が含まれる。ハンドオーバ要求メッセージには、相手装置に実行を要求するサービスの識別子情報である“サービス内容”が含まれる。サービス内容には、データ転送、データ再生、印刷など各サービスを特定するための情報が含まれる。また、ハンドオーバ要求メッセージには、サービスを実行する対象となるデータに関する情報である“サービス対象”が含まれる。
サービス対象には、サービスを実行する対象となるデータにアクセスするためのインデックス(例えば、URI、URL、IPアドレス、ポート番号等)が含まれる。また、サービス対象には、サービスを実行する対象となるデータの種別(例えば、画像[JPEG]、画像[BMP]、音楽[MP3]等)に関する情報が含まれる。また、サービス情報には、当該要求メッセージに含まれるサービスの通知形態の種別を規定する情報が含まれる。通知形態の種別には、サービスの実行を相手装置に要求する場合には「要求」が入力される。また、通知形態の種別には、自装置が実行可能なサービスを相手装置に通知する場合には「通知」が入力される。
また、ハンドオーバ要求メッセージには、NFC接続した装置夫々がリクエスタとして要求メッセージを送信した場合、装置間での役割の競合を回避する回避処理に用いる乱数である“ランダム番号”が含まれる。回避処理とは、接続した装置夫々が、相手装置から受信した要求メッセージ内に含まれる乱数と相手装置へ送信した要求メッセージに含めた乱数とを比較し、値が少ない方がセレクタとして動作することを決定する処理である。
図7の説明に戻ると、デジタルカメラ101とスマートフォン102は、要求メッセージを送信したにも関わらず、通信相手からも要求メッセージを受信したことにより、互いにリクエスタとして動作していることを認識する。そして、デジタルカメラ101とスマートフォン102は、役割の競合を回避する回避処理を実行する(S706)。デジタルカメラ101とスマートフォン102は、夫々のNFC通信制御部420及び520により、受信した要求メッセージ内に含まれるランダム番号が示す値と送信した要求メッセージに含めたランダム番号が示す値とを比較する。NFC通信制御部420及び520は、送信したランダム番号が示す値が、受信したランダム番号が示す値より小さい場合、セレクタとして動作すると判定する。また、NFC通信制御部420及び520は、送信したランダム番号が示す値より受信したランダム番号が示す値が小さい場合、リクエスタとして動作すると判定する。なお、セレクタとは、リクエスタから要求されたハンドオーバ及びサービスの実行の実行可否を選択し、該選択結果を受信した要求メッセージに対する応答メッセージに含めて送信する役割の装置である。
図7においては、回避処理の結果、デジタルカメラ101がセレクタに役割を変更し、スマートフォン102は、リクエスタの役割を継続するものとする(S707、S708)。次いで、セレクタに役割を変更したデジタルカメラ101は、スマートフォン102から受信したハンドオーバ要求メッセージを解析し、要求されたハンドオーバ後の通信方式およびサービスを、自装置で実行可能可能か否かを判定する(709)。なお、図7において、スマートフォン102は、WFDにより接続した無線LAN通信を用いてデジタルカメラ101への画像転送サービス行うことを要求している。
デジタルカメラ101は、要求されたサービスの実行可否の判定結果を含めたハンドオーバ応答メッセージをNFC通信部210により送信する(S710)。本実施形態において、応答メッセージはNFC Forum Connection Handover Technical Specificationにて規定されるHandover Selectメッセージである。ハンドオーバ応答メッセージには、相手装置から要求された通信方式およびサービスを実行可能な場合、これらの通信方式及びサービスを示すキャリア情報とサービス情報が入力される。また、相手装置から要求された通信方式およびサービスを実行できない場合、この通信方式を示すキャリア情報やサービスを示すサービス情報はハンドオーバ応答メッセージに入力しないものとする。また、要求されたハンドオーバまたはサービスを実行できないことを示す情報をハンドオーバ応答メッセージに含めるようにしてもよい。
また、応答メッセージにおける通知形態の種別とは、要求されたサービスが実行可能な場合は、「選択」が入力される。なお、応答メッセージに自装置が実行可能なサービスを通知するようにしてもよく、その場合、通知形態の種別には「通知」が入力される。図7では、デジタルカメラ101は、スマートフォン102から要求された、Wi−Fi Direct方式により接続した無線LAN通信を用いた画像転送サービスを実行可能である。したがって、デジタルカメラ101は、これらに対応するキャリア情報とサービス情報とをハンドオーバ応答メッセージに含めて送信する。
ところで、もし、ハンドオーバ要求の競合が生じなかった場合、ハンドオーバ要求とハンドオーバ応答メッセージがやり取りされた時点でNFC通信は終了される。一方、ハンドオーバ要求の競合が生じた場合にも、この時点でNFC通信を終了すると、以下のような問題が生じる。
即ち、回避処理でセレクタとなったデジタルカメラ101が送信した要求メッセージに対する応答メッセージが得られないので、スマートフォン102に対して要求したサービスの実行可否がデジタルカメラ101では認識できないという問題である。
回避処理でセレクタとなったデジタルカメラ101は、要求したサービスをスマートフォン102が実行できるか否かが認識できていない状態で、リクエスタとなったスマートフォン102が要求したサービスを実行する。つまり、リクエスタとなったスマートフォン102が要求したサービスを実行するために、デジタルカメラ101とスマートフォン102は、ハンドオーバ処理により無線LAN通信104を確立する。そして、デジタルカメラ101とスマートフォン102は、ハンドオーバ処理により確立した無線LAN通信104を用いてスマートフォン102が要求したサービスを実行する。
しかしながら、無線LAN通信104を確立したとしても、スマートフォン102に対してデジタルカメラ101が要求したサービスをスマートフォン102が実行できるとは限らない。即ち、セレクタとなったデジタルカメラ101は、リクエスタとなったスマートフォン102が要求したサービスを実行後に、確立した無線LAN通信104を用いてスマートフォン102に対して要求したサービスの実行を開始してよいのか判別がつかない。このように、回避処理でセレクタとなったデジタルカメラ101は、スマートフォン102が要求したサービスの実行完了後にどのように動作することが適切であるかの判断がつかないという問題が生じる。
例えば、デジタルカメラ101は、要求したサービスのための通信を、スマートフォン102が要求したサービスの実行後に開始したとしても、そもそもスマートフォン102が要求したサービスを実行できない場合は無駄な通信が発生してしまう。また、例えば、リクエスタとなったスマートフォン102が要求したサービスの実行完了後に、無線LAN通信104が切断されてしまった場合を考える。この場合、デジタルカメラ101は、要求したサービスがスマートフォン102によって実行できないから無線LAN通信104がスマートフォン102により切断されたのか他の原因なのかが判別ができない。原因を判別できないユーザは、デジタルカメラ101とスマートフォン102とを互いに再度近接させ、NFC通信103によりハンドオーバ処理を行い、無線LAN通信104の再度確立を試みることが考えられる。しかしながら、そもそもスマートフォン102がデジタルカメラ101から要求されたサービスを実行できない場合、無駄な通信や再度近接させるという不要な操作が発生してしまう恐れがある。
このような問題を生じさせないために、本実施形態は、ハンドオーバ要求が競合していしまった場合に、回避処理によりリクエスタとなった装置は、回避処理によりセレクタとなった装置が要求したサービスの実行可否を示すメッセージをセレクタに通知する。
図7に説明を戻す。スマートフォン102は、回避処理が行われた後であるので、S710においてハンドオーバ応答メッセージを受信してもNFC通信103の切断を行わず、NFC通信103の接続を維持しておく。スマートフォン102は、S704においてデジタルカメラ101からNFC通信部310により受信したハンドオーバ要求メッセージに含まれるサービスが実行可能であるか否かを判定する(S711)。なお、図7において、デジタルカメラ101は、無線LAN通信を用いてスマートフォン102への画像転送サービス行うことを要求している。
スマートフォン102は、要求されたサービスの実行可否の判定結果を含めたサービス実行可否通知をNFC通信部310により送信する(S712)。なお、サービス実行可否通知には、要求されたサービスが実行可能な場合、該サービスに対応するサービス情報が入力される。また、スマートフォン102は、デジタルカメラ101から要求されたハンドオーバ後の通信方式が、デジタルカメラ101に対して要求した通信方式と同じ場合は、キャリア情報として“接続中キャリア”を入力するように構成してよい。また、サービス実行可否通知に、通知形態の種別「選択」が入力されてもよい。
サービス実行可否通知を受信したデジタルカメラ101は、自装置が要求したサービスをスマートフォン102が実行可能であることを認識できる。したがって、デジタルカメラ101は、スマートフォン102が要求したサービスの実行後、既に確立している無線LAN通信104上で速やかに要求したサービスが実行することができる。
これにより、要求メッセージの競合が生じた場合に、セレクタに役割を変更した装置も、自装置が要求するサービスの実行可否を認識することができ、無駄な通信やユーザの利便性が損なわれることが低減される。
続いて、デジタルカメラ101とスマートフォン102との間でサービス実行可否通知が通信された場合、無線LAN通信制御部410、510は、無線LAN通信104を確立するハンドオーバ処理を実行する(S713〜S715)。図7では、無線LAN通信制御部410、510は、WFDに従って無線LAN通信104を確立する処理を実行する。
無線LAN通信104が確立された場合、リクエスタであったスマートフォン102は、要求したサービスをサービス実行部530により実行する。図7においては、スマートフォン102は、画像をデジタルカメラ101に転送するサービスを、無線LAN通信104を介して実行する(S716、S717)。セレクタであったデジタルカメラ101は、スマートフォン102の要求するサービスの完了を認識した(S718)場合、S704にて先に要求したサービスをサービス実行部430により実行する。図7においては、デジタルカメラ101は、スマートフォン102に画像を転送するサービスを、無線LAN通信104を介して実行する。
デジタルカメラ101とスマートフォン102は、互いに要求したサービスが何れも完了したことを認識した(S721)場合、無線LAN通信部209と無線LAN通信部309との接続である無線LAN通信104を切断する(S722)。
なお、リクエスタであるスマートフォン102が要求したサービスを実行してからセレクタであるデジタルカメラ101が要求したサービスを実行する例を示したが、順番は逆であってもよいし、同時に開始するようにしてもよい。
上述のように、本通信システムによれば、ハンドオーバ要求が競合してしまった場合に、回避処理によりリクエスタとなった装置も、自装置が要求したハンドオーバ及びサービスの実行可否を認識することができるため、無駄な通信を省くことが可能となる。
続いて、デジタルカメラ101及びスマートフォン102の動作を図6に示すフローチャートに従って説明する。なお、図6に示すフローチャートは、制御部206がROM207に記憶さている制御プログラムを実行し、情報の演算および加工、各ハードウェアの制御を実行することにより実現される。また、図6に示すフローチャートは、制御部306がROM307に記憶さている制御プログラムを実行し、情報の演算および加工、各ハードウェアの制御を実行することにより実現される。なお、図6に示すフローチャートに示すステップの一部または全部を例えばASIC等のハードウェアで実現する構成としても良い。
以下の説明では、説明の簡略のため、図6に示すフローチャートをデジタルカメラ101の構成を用いて説明を行うが、同様な動作をスマートフォン102の構成を用いて実行可能である。
まず、デジタルカメラが101は、操作部202を介してユーザにNFC通信の開始を指示された場合、あるいは電源がONにされた場合に処理を開始する。デジタルカメラが101は、処理が開始されると、NFC通信部210による通信を有効化する。そして、デジタルカメラ101の制御部206は、通信相手装置とのNFC通信部210によるNFC通信が開始されたかを判定する(S601)。図7では、デジタルカメラ101は、ユーザ操作によってスマートフォン102とデジタルカメラ101とが近接し、NFC通信部210による通信可能範囲に互いが配置されたことに応じてNFC通信103を開始する(S703)。
NFC通信が開始された場合、制御部206は、スマートフォン102との間で実行したいサービスが決定しているかどうかの判定を行う(S602)。S602の判定は、操作部202により受付けたユーザ操作に従って、実行するサービスが選択された状態でNFC通信が開始されたか否かによって行われる。
例えば、処理対象なるデータが選択され、かつ、選択されたデータに対するサービスも選択された状態でNFC通信が開始された場合、実行するサービスが決定されていると判定される。図7においては、デジタルカメラ101は、記憶部203に保持する撮影部205により撮影された画像が選択され、さらに、選択された画像をスマートフォン102へ転送するサービスの実行命令を受け付けた状態でNFC通信が開始される(S701)。
なお、S602で実行するサービスが決定されていると判定された場合、デジタルカメラ101は、NFC通信において、ハンドオーバを要求するリクエスタとして動作する。また、S602で実行するサービスが決定されてないと判定された場合、デジタルカメラ101は、NFC通信において、リクエスタから要求されたハンドオーバの実行可否を選択するセレクタとして動作する。
S602で実行するサービスが決定されてない判定された場合、デジタルカメラ101は、通信相手装置からハンドオーバ要求メッセージをNFC通信部210により受信したかを判定する(S603)。ハンドオーバ要求メッセージが通信開始から所定期間(例えば1秒)内に受信されなかった場合、デジタルカメラ101は、NFC通信の論理接続を切断し、処理を終了する。ここで、論理接続とはNFCの物理層より上位の層での接続とする。この場合、デジタルカメラ101は、表示部201にNFC通信に失敗したことを示すエラーを表示させる。一方、S603で通信相手装置からハンドオーバ要求メッセージを受信したと判定された場合、後述するS611に処理を進める。
S602で実行するサービスが決定されていると判定された場合、デジタルカメラ101は、無線LAN通信へのハンドオーバと、該無線LAN通信において実行するサービスとを通信相手装置に要求する。S602における要求は、デジタルカメラ101が、ハンドオーバ要求メッセージをNFC通信部210により通信相手装置に送信することで行われる。図7において、デジタルカメラ101は、WFDによるハンドオーバとJPEGの画像データをスマートフォン102に転送するサービスとを要求するためのハンドオーバ要求メッセージをスマートフォン102に送信する(S704)。
デジタルカメラ101は、ハンドオーバ要求メッセージを通信相手装置からNFC通信部210により受信したかを判定する(S605)。デジタルカメラ101は、通信相手装置からハンドオーバ要求メッセージを受信した場合、通信相手装置もリクエスタとして動作しているため、回避処理を実行する(S606)。回避処理とは、上述の通り、NFC接続した装置夫々が、受信した要求メッセージ内に含まれる乱数と送信した要求メッセージに含めた乱数とを比較し、値が少ない方がセレクタとして動作することを決定する処理である。図7においては、デジタルカメラ101は、スマートフォン102からハンドオーバ要求メッセージ(S705)を受信したため、回避処理を実行する(S706)。図7における回避処理の結果としては、デジタルカメラ101は、セレクタとして動作すると決定される。
デジタルカメラ101は、リクエスタとして動作する場合はS608に処理を進め、セレクタとして動作する場合はS611に処理を進める(S607)。リクエスタとして動作する場合、デジタルカメラ101は、ハンドオーバ応答メッセージを通信相手装置からNFC通信部210により受信したかを判定する(S608)。なお、ハンドオーバ要求メッセージの送信から所定期間(例えば1秒)内にハンドオーバ応答メッセージが受信されなかった場合、デジタルカメラ101は、NFC通信の論理接続を切断し、処理を終了するようにしてよい。この場合、デジタルカメラ101は、表示部201にNFC通信に失敗したことを示すエラーを表示させる。
ハンドオーバ応答メッセージが受信された場合、デジタルカメラ101はS606の回避処理を行っている場合S609に処理を進め、S606の回避処理を行っていない場合、NFC通信の論理接続を切断し、S615に処理を進める(S620)。
デジタルカメラ101は、その後の通信に備え、NFC通信の論理接続を切断せずに維持する。そして、デジタルカメラ101は、回避処理を行っている場合、通信相手装置からS605において受信したハンドオーバ要求メッセージにより要求されたハンドオーバおよびサービスの実行可否の判定を行う(S609)。そして、デジタルカメラ101は、S609における判定結果に関する情報を含めたサービス実行可否通知をNFC通信部210により通信相手装置に送信する(S610)。サービス実行可否通知を送信した場合、後述するS615に処理を進める。なお、S610において、サービス実行可否通知が送信された場合、NFC通信の論理接続を切断するようにしてよい。
図7において、回避処理によりリクエスタとして動作することが決定されたスマートフォン102は、デジタルカメラ101により要求された無線LAN通信を用いてスマートフォン102への画像転送サービスを実行可能であると判定する(S711)。そして、スマートフォン102は、無線LAN通信を用いた画像転送サービスを実行可能であることを示す情報を含めてサービス実行可否通知をNFC通信部310により送信する(S712)。なお、図7で、スマートフォン102は、デジタルカメラ101から要求されたハンドオーバ後のキャリアであるWFDとスマートフォン102からデジタルカメラ101から要求したキャリアであるWFDと同一である。したがって、デジタルカメラ101から要求されたサービスを実行するためにさらなるキャリアの変更は生じないため、スマートフォン102から送信されるサービス実行可否通知のキャリア情報には、“接続中キャリア”が入力される。
図6の説明に戻り、S607においてセレクタとして動作する場合、デジタルカメラ101は、通信相手装置から受信したハンドオーバ要求メッセージにより要求されたハンドオーバおよびサービスの実行可否の判断を行う(S611)。そして、デジタルカメラ101は、S611における判定結果に関する情報を含めたハンドオーバ応答メッセージをNFC通信部210により通信相手装置に送信する(S612)。図7において、セレクタとして動作するデジタルカメラ101は、スマートフォンから要求されたWFDによるハンドオーバとJPEGの画像データをデジタルカメラ101に転送するサービスとを実行可能である。したがって、デジタルカメラ101は、WFDによるハンドオーバとJPEG画像データをデジタルカメラ101に転送するサービスとを実行可能であることを示すハンドオーバ応答メッセージをスマートフォン102に送信する(S710)。
ハンドオーバ応答メッセージを送信した後、デジタルカメラ101はS606の回避処理を行っている場合S614に処理を進め、S606の回避処理を行っていない場合、NFC通信の論理接続を切断し、S615に処理を進める(S613)。回避処理を行っている場合、デジタルカメラ101は、NFC通信の論理接続を切断せずに維持し、その後の通信に備え、サービス実行可否通知を通信相手装置(スマートフォン102)からNFC通信部210により受信したかを判定する(S614)。なお、S612におけるハンドオーバ応答メッセージの送信から所定期間(例えば1秒)内にサービス実行可否通知が受信されなかった場合、デジタルカメラ101は、NFC通信の論理接続を切断し、S615に処理を進めるようにしてよい。この場合、デジタルカメラ101は、表示部201に要求したサービスの実行可否が不明なことを示すエラーを表示させるようにしてよい。さらに、再度NFC通信を確立するようにユーザに促す表示をおこなってもよい。また、S614において、サービス実行可否通知が受信された場合、NFC通信の論理接続を切断するようにしてよい。
S615において、デジタルカメラ101は、ハンドオーバ処理を実行するか否かを判定する。S615における判定は、通信相手装置から要求されたハンドオーバ及びサービスが実行可能な場合、ハンドオーバ処理を実行すると判定する。また、S615における判定は、デジタルカメラ101が通信相手装置に要求したハンドオーバ及びサービスを通信相手装置が実行可能な場合、ハンドオーバ処理を実行すると判定する。
S615において、ハンドオーバ処理を実行しないと判定した場合、デジタルカメラ101は、処理を終了する。なお、ハンドオーバ処理を実行しないと判定した場合、デジタルカメラ101は、表示部201に無線LAN通信部209による接続を行わないことを示すエラーを表示する構成としてよい。また、デジタルカメラ101は、自装置が要求したサービスを通信相手装置が実行できないことを示すエラーを表示する構成としてよい。
S615において、ハンドオーバ処理を実行すると判定された場合、デジタルカメラ101は、無線LAN通信部209による通信相手装置との接続を確立するためのハンドオーバ処理を実行する。S615におけるハンドオーバ処理の一例は、デジタルカメラ101がアクセスポイントして動作する場合、通信相手装置との間で通信されたハンドオーバ要求メッセージまたはハンドオーバ応答メッセージに無線LAN通信のための通信パラメータを含める。通信パラメータは、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵、MACアドレス等の無線LAN通信を行うために必要な無線通信パラメータが含まれる。また、IP層での通信を行うためのIPアドレス等も含めてもよい。そして、通信相手装置からの無線LANによる接続を待ち受ける。
また、デジタルカメラ101がステーションして動作する場合、通信相手装置との間で通信されたハンドオーバ要求メッセージまたはハンドオーバ応答メッセージに含まれる無線LAN通信のための通信パラメータを取得する。そして、無線LAN通信部209は、取得した通信パラメータに基づいて通信相手装置を無線LAN通信により検索し、さらに取得した通信パラメータに基づいて認証を行うことで無線LAN通信を通信相手装置と確立する。図7においては、デジタルカメラ101とスマートフォン102は、WFDで規定されたハンドオーバを行い、無線LAN通信104を確立する。
通信相手装置と無線LANで接続した場合、デジタルカメラ101は、ハンドオーバ応答メッセージ及びサービス実行可否通知によりサービス種別“選択”が入力されたサービスを、無線LAN通信部209の通信に基づいて実行する(S617)。図7において、デジタルカメラ101とスマートフォン102は、スマートフォン102からデジタルカメラ101への画像転送サービスと、デジタルカメラ101からスマートフォン102への画像転送サービスとを夫々実行する(S716〜S721)。
なお、デジタルカメラ101が記憶部203に保持する撮影部205により撮影された画像の印刷することを選択し、プリンタとNFC通信を開始した場合、デジタルカメラ101とプリンタとの間で印刷サービスが実行されてもよい。この場合、デジタルカメラ101は、選択された画像データを無線LAN通信部209によりプリンタに送信し、プリンタは受信した画像データを印刷する。
また、デジタルカメラ101が記憶部203に保持する撮影部205により撮影された動画のストリーミング配信することを選択し、スマートフォン102とNFC通信を開始した場合、動画ストリーミングサービスが実行されてもよい。この場合、デジタルカメラ101は、選択された動画データを無線LAN通信部209によりプリンタに送信し、プリンタは受信した動画データを順次再生する。
デジタルカメラ101は、装置間で実施予定のサービス(ハンドオーバ応答メッセージ及びサービス実行可否通知によりサービス種別“選択”が入力されたサービス)がすべて実行されたかを判定する(S618)。デジタルカメラ101は、実施予定のサービスがすべて実行された場合、デジタルカメラ101は、無線LAN通信部209による通信相手装置との通信を切断する(S619)。換言すると、デジタルカメラ101は、実施予定のサービスが終了するまでは、通信相手装置との無線LANによる通信を維持しておく。
図7において、デジタルカメラ101とスマートフォン102は、無線LAN通信104が確立すると、リクエスタとしてNFC通信を行ったスマートフォン102が要求したサービスを、無線LAN通信104を用いて実行する(S716)。デジタルカメラ101とスマートフォン102は、スマートフォン102が要求したサービスが完了後も無線LAN通信104を維持し、デジタルカメラ101が要求したサービスを開始する(S719)。実施予定のサービスが終了すると、デジタルカメラ101とスマートフォン102は、無線LAN通信104を切断する(S722)。
なお、上述の説明において、サービス実行可否通知がNFCにより通信される構成としたが、ハンドオーバ後の通信である無線LANにより通信される構成としてもよい。
また、上述の説明において、ハンドオーバ後の通信は無線LANとしたが、実行するサービスに応じて異なる通信方式を用いるように構成してよい。例えば、図7において、デジタルカメラ101は、スマートフォン102に無線LAN通信を用いた画像データ転送サービスを要求する。さらに、スマートフォン102は、デジタルカメラ101にBluetooth(登録商標)通信を用いた画像データ転送サービスを要求した場合を説明する。この場合、S716におけるスマートフォン102からの画像データ転送サービスは、Bluetooth(登録商標)により実行される。その後、デジタルカメラ101とスマートフォン102は、無線LAN通信を確立し、S719におけるデジタルカメラ101からの画像データ転送サービスは、無線LAN通信により実行されるように構成してもよい。
以上説明したように、本実施形態によれば、ハンドオーバ要求が競合していしまった場合に、回避処理によりリクエスタとなった装置も、自装置が要求したハンドオーバ及びサービスの実行可否を認識することができるため、無駄な通信を省くことが可能となる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。