以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<デジタルカメラの構成>
図1は、本実施形態の通信装置の一例であるデジタルカメラ100の構成例を示すブロック図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤやいわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部102は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device Image Sensor)が利用される。撮像部102は、制御部101に制御されることにより、撮像部102に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態のデジタルカメラ100では、画像データは、DCF(Design rule for Camera File system)の規格に従って、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の接続部111を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、不図示のレリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100はカメラの背面等に設けた表示部106だけでなくカメラの外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体110は、撮像部102から出力された画像データを記録することができる。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
接続部111は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、接続部111を介して、外部装置とデータのやりとりを行うことができる。なお、本実施形態では、接続部111は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェースを含む。制御部101は、接続部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外通信方式も含む。
近接無線通信部112は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成さる。近接無線通信部112は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりISO/IEC 18092の規格(いわゆるNFC:Near Field Communication)に従った非接触近接通信を実現する。本実施形態の近接無線通信部112は、デジタルカメラ100の側部に配される。
デジタルカメラ100同士においては、互いの近接無線通信部112を近接させることにより通信を開始して接続される。なお、近接無線通信部112を用いてデジタルカメラ100同士を接続させる場合、必ずしも近接無線通信部112同士を接触させる必要はない。近接無線通信部112は一定の距離だけ離れていても、通信することができるため、ここでは近接無線通信可能な範囲まで近づければよい。以下の説明では、この近接無線通信可能な範囲まで近づけることを、近接させる、と記載する。
また、互いの近接無線通信部112が近接無線通信不可能な範囲にあれば、通信は開始されない。また、互いの近接無線通信部112が近接無線通信可能な範囲にあって、デジタルカメラ100同士が通信接続されている際に、互いの近接無線通信部112が近接無線通信不可能な範囲に離れてしまった場合は、通信接続が解除される。なお、近接無線通信部112が実現する非接触近接通信はNFCに限られるものではなく、他の無線通信を採用してもよい。例えば、近接無線通信部112が実現する非接触近接通信として、ISO/IEC 14443の規格に従った非接触近接通信を採用してもよい。
なお、本実施形態におけるデジタルカメラ100の接続部111は、インフラストラクチャーモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。そして、接続部111をCLモードで動作させることにより、本実施形態におけるデジタルカメラ100は、インフラストラクチャモードにおけるCL機器として動作することが可能である。デジタルカメラ100がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。
また、接続部111をAPモードで動作させることにより、本実施形態におけるデジタルカメラ100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。デジタルカメラ100が簡易APとして動作すると、デジタルカメラ100は自身でネットワークを形成する。デジタルカメラ100の周辺の装置は、デジタルカメラ100をAP機器と認識し、デジタルカメラ100が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ100を動作させるためのプログラムは不揮発性メモリ103に保持されているものとする。
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
以上がデジタルカメラ100の説明である。
<システムの概要>
図2は、本実施形態に係る通信システムの概略構成を示す図である。本実施形態の通信システムでは、複数のデジタルカメラが互いに接続する。なお、システムにおけるデジタルカメラはいずれも、図1で説明したデジタルカメラ100と同様の構成を有する。
図2(a)の通信システムにおいて、デジタルカメラ210は簡易APとして動作し、ネットワーク200を生成する。ここで生成される無線ネットワークは、いわゆる無線LANである。デジタルカメラ220やデジタルカメラ230は、このデジタルカメラ210が定期的に送信するビーコン信号を検知し、このデジタルカメラ210が形成する無線ネットワークに参加する。簡易AP機器として動作するデジタルカメラ210を含む各デジタルカメラ同士は、同じ無線ネットワークに参加した後、互いの機器発見、機器の能力取得などを経て無線LANによるデータの送受信が可能な状態となる(機器間の通信を確立する)。また、デジタルカメラ240は、ネットワーク200に参加していないデジタルカメラである。
さて、ここでデジタルカメラ240がネットワーク200に参加することを考える。本実施形態では、ネットワークに参加するための所定の操作が行われたデジタルカメラ240の近接無線通信部112を、例えば図2(b)のように、既に接続済みのデジタルカメラ230の近接無線通信部112に近接させる(通信可能な範囲まで近づける)。ネットワークに参加するための所定の操作については後述する。
これに対して、デジタルカメラ230は、デジタルカメラ210が生成しているネットワークに関する情報をデジタルカメラ240に送信しない。その代わり、デジタルカメラ230は、デジタルカメラ210に替わって新たにネットワークを生成する。
そして、デジタルカメラ230は、新たに生成するネットワークに参加するための情報を、近接無線通信を介してデジタルカメラ240に送信する。また、デジタルカメラ230は、デジタルカメラ210やデジタルカメラ220に予めネットワークを再構築する旨を伝えることにより、デジタルカメラ210やデジタルカメラ220が再構築されたネットワークに速やかに移行することを可能にさせる。この結果、デジタルカメラのネットワークは図2(c)に示すような構成となる。
このように、本実施形態のデジタルカメラは、近接無線通信では他機の生成したネットワーク情報ではなく、自機の生成したネットワークの情報を送信する。これにより、CL機器により意図せずAP機器のネットワーク情報が公開されてしまう恐れがなくなるため、セキュリティ性を保つことができる。
しかも、もともとネットワークに参加済みのデジタルカメラ210、220、230が同じネットワークに参加しているという状況を保ったまま、新たにデジタルカメラ240をネットワークに参加させることができる。
また、デジタルカメラ240がネットワークに参加するために近接無線通信を確立する機器は、ネットワーク内の機器であれば、AP機器かCL機器かを問わない。そのため、デジタルカメラ240のユーザは、ネットワークに参加しているデジタルカメラがAP機器であるかCL機器であるかを意識することなくデジタルカメラ240をネットワークに参加することができる。
上述の動作を実現するための各デジタルカメラの処理の概要を、図3を用いて説明する。
図3は、本実施例のデジタルカメラのネットワーク参加処理の概要を示すシーケンス図である。
図3においてデジタルカメラが簡易AP機器として動作する期間を、期間301のように斜線領域で表す。また、デジタルカメラがCL機器として動作する期間を、期間302のように無地領域で表す。また、近接無線通信が確立している期間を期間303のように網掛領域で表す。
また、本シーケンスは、ネットワークに参加している機器の増減があった場合に開始する。
図3の例では、シーケンス開始時において、デジタルカメラ210は簡易AP機器として動作している。また、デジタルカメラ220はCL機器として動作し、デジタルカメラ210の生成するネットワークに参加している。また、デジタルカメラ230は、新たにネットワークに参加してCL機器として動作するカメラである。また、デジタルカメラ240はネットワークに参加しておらず、これからネットワークに参加しようとしている。
まず、ステップS310において、デジタルカメラ210、220、230は、自機のID、自機が簡易AP機器として動作しているかCL機器として動作しているかを示す情報(以下WLAN状態)、IPアドレスを互いに送受信し合う。そして、お互いの情報をWLAN管理情報としてそれぞれの作業用メモリ104に記録する。図3の例では、既にネットワークに参加済みのデジタルカメラ210やデジタルカメラ220の作業用メモリ104に記録されているWLAN管理情報は更新される。一方、新たに参加したデジタルカメラ230の作業用メモリ104には、新たにWLAN管理情報が記録される。
WLAN管理情報の概念図を、図4(a)に示す。図4(a)において、ID401は、デジタルカメラを一意に特定する識別子であり、製造時に付与される。また、WLAN状態402は各機器が簡易AP機器およびCL機器のどちらとして動作するかを示す。また、IPアドレス403は、IP(Internet Protocol)においてパケットを送受信する機器を判別するための番号である。IPアドレスは、簡易AP機器として動作する機器がDHCP(Dynamic Host Configuration Protocol)サーバとなることで、簡易AP機器として動作する機器が生成し、各CL機器に付与される。このステップS310の処理により、新たに参加したデジタルカメラ230は、ネットワークに参加している他の機器に関する情報を取得することができる。
一方、ネットワークに参加しようとしているデジタルカメラ240では、ステップS311にて、ネットワークに参加するための所定の操作をユーザから受け付け、ネットワークに参加するための準備動作を行う。
ここで、ネットワークに参加するための所定の操作について説明する。図5(a)は、本実施形態のデジタルカメラ100の表示部に表示される、ネットワークの利用のためのメニュー画面の一例である。この画面においてアイコン502が選択されると、画面は、図5(b)の表示に移行し、ネットワークに参加するために必要な情報を他の機器から近接無線通信を利用して受信するための処理を開始する。なお、本実施形態では、ネットワーク200に参加しようとしているデジタルカメラ240が既に別のネットワークに参加している場合、図5(b)の画面への遷移と共に参加中のネットワークからの離脱も並行して実行される。なぜなら、このアイコンを選択するという行為は、現在参加しているネットワークではなく、他のネットワークへの参加を決定する行為だからである。
また、自機が既にネットワークに参加していることに、ユーザが気付かずにアイコン502を選択してしまう場合も考えられる。例えば通信の処理などがバックグラウンドで動作する場合には、自機がネットワークに参加済みかどうか気づきにくい。そこで、図5(b)の画面に遷移する前に本当に参加中のネットワークから離脱してもよいかどうかユーザに確認してもよい。なお、自機がネットワークに参加していない場合は当然、離脱の処理も実行されない。故に、上記の確認も行われない。
また、近接無線通信を用いずに、手動で情報を入力してネットワークに参加する場合は、図5(a)の画面で、アイコン501を選択すればよい。この場合は、参加したいネットワークの情報を入力する画面(図示しない)に遷移し、既存のシーケンスに従ってネットワークへの参加が行われる。
図3の説明に戻る。
続いて、図5(b)の画面が表示されている状態で、ユーザはデジタルカメラ240とデジタルカメラ230とを、近接無線通信が可能なように近づける。具体的には、それぞれのデジタルカメラの近接無線通信部112同士が通信可能な距離になるまで近づける。その結果、ステップS312にて、デジタルカメラ230とデジタルカメラ240との近接無線通信が確立する。
続くステップS313にて、ネットワーク200に参加しようとしているデジタルカメラ240は、ネットワークに参加するための情報の要求を、近接無線通信によりデジタルカメラ230に送信する。
この要求を受信したデジタルカメラ230は、まずステップS314で、AP切り替え時間を算出する。AP切り替え時間とは、デジタルカメラ230自身がデジタルカメラ210の代わりに簡易AP機器として動作して新たにネットワークを構築するために必要な時間である。なお、デジタルカメラ230がCL機器からAP機器に切り替わるだけならほぼ一定の時間で済むが、デジタルカメラ230がネットワーク内の他のカメラとデータのやり取りをしている最中の場合も考えられる。この場合は、データのやりとりが終了するまでの時間が、AP機器に切り替わる一定の時間に加えられた時間が、AP切り替え時間として算出される。また、この場合はデータのやり取りが終了してから、次のステップS315に進む。
続くステップS315で、デジタルカメラ230は、デジタルカメラ240に対して、ネットワークに参加するための情報(ネットワーク情報)を送信する。ここで、ネットワーク情報の一例を図4(b)に示す。図4(b)に示されるネットワーク情報には、デジタルカメラ230がこれから生成するネットワークのSSID411、パスワード412、暗号化方式413が含まれる。SSID411、パスワード412は、自機が簡易AP機器として動作する際に生成するネットワークのパラメータである。これらの情報は、ユーザが任意の文字列を入力することで予め設定しておくことができる。また、デジタルカメラ230自身の機器ID401も含まれる。更に、ステップS313で算出されたAP切り替え時間415も含まれる。
上述のネットワーク情報を受け取ったデジタルカメラ240はAP切り替え時間の分だけ待機し、デジタルカメラ230がネットワークを生成するのを待つ。一方、デジタルカメラ230はステップS316で、これからデジタルカメラ210に替わって自機がネットワークを再構築するために、現在のネットワーク内の各デジタルカメラにAPが切り替えられる旨を通知する。この通知には、例えば図4(c)に示すような、再構築されるネットワークに参加するための情報が含まれている。この情報により、デジタルカメラ210やデジタルカメラ220は、再構築後のネットワークに移行することができる。
通知が完了すると、ステップS317でデジタルカメラ230は、デジタルカメラ210が生成していたネットワークから離脱し、簡易AP機器としての動作を開始する。すなわち、デジタルカメラ210に替わって新たにネットワークを生成する。
これに対して、デジタルカメラ240は、AP切り替え時間の分の待機が終了することに応じて、ステップS318にてCL機器としての動作を開始する。そして、続くステップS321にてデジタルカメラ240は、ステップS315で受信した情報に基づきデジタルカメラ230が新たに生成したネットワークに参加する。
また、デジタルカメラ230からの通知を受け取ったデジタルカメラ210は、ステップS319にて簡易AP機器としての動作を終了してCL機器としての動作を開始する。そして、続くステップS322でデジタルカメラ210は、ステップS316で受信した情報に基づきデジタルカメラ230が新たに生成したネットワークに参加する。
また、デジタルカメラ230からの通知を受け取ったデジタルカメラ220は、ステップS320にて、デジタルカメラ210が生成していたネットワークから離脱する。そして、続くステップS323にてデジタルカメラ220は、ステップS316で受信した情報に基づきデジタルカメラ230が新たに生成したネットワークに参加する。
以上のように、簡易AP機器となる機器を切り替えることで、デジタルカメラを手軽にネットワークに参加させることと、セキュリティ性を保つこととを両立することができる。
<各デジタルカメラの動作>
続いて、上記の動作を実現するためのデジタルカメラのそれぞれの動作について詳述する。
図6は、本実施形態のデジタルカメラ100が簡易AP機器として動作する場合の処理を示すフローチャートである。なお、本フローチャートに示す処理は、デジタルカメラ100の制御部101が入力信号やプログラムに従い、デジタルカメラ100の各部を制御することにより実現される。また、同じネットワークに参加する他のカメラと例えば画像交換等のデータの送受信を行う処理は、このフローチャートに示す処理とは別に並行して実行される。特に断らない限り、デジタルカメラ100の処理を示す他のフローチャートでも同様である。
また、本フローチャートは、デジタルカメラ100が簡易AP機器としての動作を開始することに応じて開始される。デジタルカメラ100がAP機器としての動作を開始する場合は、例えばユーザのメニュー操作により指示を受け付けたことに応じて開始する場合や、後述の図7のステップS709の処理により開始する場合が考えられる。
まず、ステップS601において、制御部101は、接続部111を介して、同一のネットワークに参加している他の機器と機器ID401・WLAN状態402・IPアドレス403を送受信し、WLAN管理情報400を更新する。この処理は図3のステップS310に相当する処理である。
次に、ステップS602において、制御部101は、同一のネットワークに参加している機器の増減を検知する。例えば、他機が、デジタルカメラ100が生成しているネットワークに参加した場合や、デジタルカメラ100が生成しているネットワークに既に参加している他のデジタルカメラのいずれかが離脱した場合に、増減があったことが検知される。制御部101が、同一ネットワーク参加機器の増減を検知した場合、処理はステップS601戻る。一方、増減を検知していない場合、処理はステップS603に移行する。
ステップS603において、制御部101は、近接無線通信部112を介して、他の機器から、ネットワークに参加するための情報の要求を受信したか否かを判断する。
まず、ネットワークの情報の要求を受信したと判断した場合について述べる。この場合、処理はステップS604に進む。以下、ステップS603でネットワークの情報を要求した要求元の機器を相手機器と呼ぶ。
ステップS604において、制御部101は、相手機器をネットワークに参加させられるか否かを判断する。本実施形態のデジタルカメラ100が簡易AP機器として動作することで生成されるネットワークには、参加可能なCL機器の数に上限を設ける。この参加機器数の上限(最大接続数)は、例えばネットワーク内のトラフィックが増加しすぎて通信の速度が低下や、信号の暗号化/復号化の安定性の低下など、いわゆる通信のパフォーマンスが低下してしまうことを防ぐために、機器毎に個別に設定されている。最大接続数の値はユーザが任意に設定できるようにしてもよいし、例えばAPの性能に応じて予め定められていてもよい。この最大接続数の値はデジタルカメラ100の不揮発性メモリに保持される。
また、制御部101は、WLAN情報400を参照することで現在のネットワークに参加しているCL機器の数を取得する。この現在のネットワークに参加しているCL機器の数に1を加えた値が、相手機器をネットワークに参加させた場合のネットワーク内の全参加機器数となる。この値と、簡易AP機器として動作している自機の不揮発性メモリから読み出した最大接続数とを比較することで、本ステップの処理が実行される。制御部101が最大接続数を超過すると判断した場合、処理はステップS607に進み、相手機器に、ネットワークへの参加が不可能である旨を通知する。
一方、ステップS604で、最大接続数を超過しないと判断した場合、処理はステップS605に進む。
ステップS605では、制御部101は、近接無線通信部110を介して、相手機器に対して、ネットワークに参加するための情報を送信する。ここでは、自機はAPとして動作しており、ネットワークは自機が生成したものであるから、自機が生成した際に用いたパラメータを送信する。例えば図4(b)に示す情報を送信する。なお、ここでは自機はAP機器としており、他のAP機器に切り替える必要が無いため、AP切り替え時間は0secを示す情報が含まれることになる。これを受けた相手機器では、受信した情報に基づきネットワークに参加するための処理が実行される。
そして、ステップS606において、制御部101は、接続部111を介して、相手機器からのネットワークへの参加要求を受け付け、相手機器と接続する。
次に、ステップS603で、ネットワークの情報の要求を受信しなかったと判断された場合について述べる。この場合、処理はステップS608に進む。
ステップS608では、制御部101は、接続部111を介してネットワーク内の他機からAP切り替え通知情報420を受信したか否かを判断する。受信していないと判断された場合、処理はステップS602に戻る。一方、AP切り替え通知情報420を受信したと判断した場合、処理はステップS609に進む。このAP切り替え通知情報は、図3のステップS316で送信される情報に相当する。
ステップS609において、制御部101は、生成していたネットワークを消滅させ、簡易AP機器としての動作を停止する。
続いて、ステップS610において、制御部101は、デジタルカメラ100をCL機器として動作させる。ステップS609およびステップS610の処理は、図3のステップS319に相当する。
そして、ステップS611にて制御部101は、ステップS608で受信したAP切り替え通知情報420に基づき、AP切り替え通知情報420の送信元の機器が新たに生成するネットワークに参加するための処理を実行する。このステップの処理は、図3のステップS322に相当する。
以上が、デジタルカメラ100が簡易AP機器として動作する際の処理の説明である。
続いて、本実施形態のデジタルカメラ100がCL機器として動作する際の処理について説明する。図7は、本実施形態のデジタルカメラ100がCL機器として動作する場合の処理を示すフローチャートである。本フローチャートは、デジタルカメラ100がCL機器としての動作を開始することに応じて開始される。デジタルカメラ100がCL機器としての動作を開始する場合は、例えばユーザのメニュー操作により指示を受け付けたことに応じて開始する場合や、前述の図6のステップS610や後述の図8のステップS808の処理により開始する場合が考えられる。
ステップS701〜ステップS703については、図6のステップS601〜ステップS603と同様の処理が実行されるため、説明は省略する。
まず、ステップS703で、ネットワークの情報の要求を受信したと判断した場合について述べる。この場合、処理はステップS704に進む。以下、ステップS703でネットワークの情報を要求した要求元の機器を相手機器と呼ぶ。
ステップS704において、制御部101は、相手機器を、自機が簡易AP機器として動作することで生成するネットワークに参加させられるか否かを判断する。具体的には、制御部110は、相手機器をネットワークに参加させた場合の全参加機器数と、自機の不揮発性メモリに記録されている最大接続数とを比較する。そして、相手機器をネットワークに参加させた場合の全参加機器数が最大接続数を超過するか否かを判断する。このステップの処理は、デジタルカメラ100の動作としては同様であるものの、現在生成されている他機のネットワークではなく、自機が新たに生成するネットワークに参加し得るか否かを判断するという点で、図6のステップS604とは異なる。
ステップS704で、制御部101が最大接続数を超過すると判断した場合、処理はステップS711に進み、相手機器に、参加が不可能である旨を通知する。
一方、ステップS704で、最大接続数を超過しないと判断した場合、処理はステップS705に進む。
ステップS705では、制御部101は、現在ネットワークを生成している機器の替わりに、自機が簡易AP機器として動作し、ネットワークを再構築するためにかかる時間として、AP切り替え時間を算出する。この処理は、図3のステップS314の処理に相当する。
ステップS706では、制御部101は、近接無線通信部110を介して、相手機器に対して、ネットワークに参加するための情報を送信する。ここで送信される情報は、現在のネットワークに参加するための情報ではなく、現在のネットワークの替わりに、自機が生成するネットワークに参加するための情報である。送信される情報の項目の一例としては、ステップS605で送信される情報と同様に、図4(b)に示される。本フローチャートの場合は、簡易AP機器が切り替えられるため、新たにネットワークが生成されるまで待機する時間の目安として、ステップS705で算出されたAP切り替え時間も、相手機器に送信される。また、これを受けた相手機器は、新たにネットワークが生成されるまで待機した後、CL機器として動作を開始し、受信した情報に基づきデジタルカメラ100が新たに生成するネットワークに参加するための処理を実行する。このように、他機の生成したネットワークの情報を外部に出力しないようにする一方で、自機の生成するネットワークの情報を出力する。これにより、ネットワークのセキュリティ性を保ちつつ、ユーザにとって手軽なネットワークへの参加を実現することができる。
同様に、ステップS707で、制御部101は、現在のネットワークに参加している他の機器に対しても、接続部111を介して、現在のネットワークの替わりに自機が生成するネットワークに参加するための情報を送信する。
ステップS708では、制御部101は、デジタルカメラ100を現在のネットワークから離脱させる。
そして、ステップS709にて、制御部101は、CL機器としての動作を終了し、替わりに簡易AP機器としての動作を開始する。すなわち、先のステップS706やステップS707で送信した情報に基づく新たなネットワークを生成し、各機器からの接続を待つ。
最後に、ステップS710で、制御部101は、CL機器として動作する相手機器や、前のネットワークに参加していた各機器からのネットワークへの参加を受け付ける。具体的には、接続要求への応答、およびDHCPサーバとしての機能によるIPアドレスの割り振りを経て、各機器をネットワークに参加させる。この結果、デジタルカメラ100、相手機器、および前のネットワークに参加していた各機器は、それぞれお互いにアプリケーションレベルで通信し合うことができるようになる。なお、ここで元のネットワークに参加していた機器に割り振るIPアドレスについては、WLAN管理情報を参照することで、元のネットワークへの参加時に利用されていた値と同じ値を割り振るようにしてもよい。
以上が、ステップS703でネットワークの情報の要求を受信したと判断した場合である。
次に、ステップS703で、ネットワークの情報の要求を受信しなかったと判断された場合について述べる。この場合、処理はステップS712に進む。
ステップS712では、図6のステップS608と同様の処理が実行される。ステップS712でAP切り替え通知情報を受信したと判断された場合、処理はステップS713に進む。
ステップS713では、制御部101は、現在のネットワークから離脱する。
続いて、ステップS714において、制御部101は、ステップS712で受信したAP切り替え通知情報420に基づき、新たなネットワークへの参加を要求する。このステップの処理は、図3のステップS323に相当する。
以上が、デジタルカメラ100がCL機器として動作する際の処理の説明である。
続いて、本実施形態においてデジタルカメラ100が近接無線通信を利用してネットワークに参加する際の動作について説明する。図8は、本実施形態のデジタルカメラ100の動作を示すフローチャートである。本フローチャートは、ユーザが操作部105を介して図5(a)に示すアイコン502を選択することに応じて開始される。
ステップS801では、制御部101は、自機が既にネットワークを生成している、またはいずれかのネットワークに参加済みであるかを判断する。具体的には、自機がAP機器またはCL機器のいずれかとして動作しているか否かを参照する。制御部101が、自機がAP機器としてもCL機器としても動作していないと判断した場合、処理はステップS804に進む。また、制御部101が、自機がAP機器として動作していると判断した場合、処理はステップS802に進む。ステップS802では、制御部101は、生成しているネットワークを消滅させ、ステップS804に進む。また、制御部101が、自機がCL機器として動作していると判断した場合、処理はステップS803に進む。ステップS803では、制御部101は、参加しているネットワークから離脱し、ステップS804に進む。
ステップS804では、制御部101は、ネットワークに参加中の機器との近接無線通信が確立したか否かを判断する。近接無線通信が確立していないと判断された場合、本ステップの処理が繰り返される。近接無線通信が確立したと判断された場合、処理はステップS805に進む。
ステップS805では、制御部101は、近接無線通信を介して、ネットワークに参加中の機器に対して、ネットワークに参加するための情報(すなわち図4(b)に示す情報)を要求し、その応答を受信することで、ネットワークに参加中の機器から情報を取得する。
続いて、ステップS806では、制御部101は、ネットワークに参加可能か否かを判断する。具体的には、ステップS805での要求の結果、ネットワークに参加中の機器から、ネットワークへの参加が不可能である旨を通知された場合、制御部101は、ネットワークに参加不可能であると判断する。このように判断される場合は、例えば、図6のステップS607や図7のステップS711で送信される参加不可の通知を受信した場合である。この場合は、本フローチャートの処理を終了する。なお、終了前に、例えば「接続数超過のためネットワークに参加できません」等のメッセージを表示させることによりユーザに接続できなかった旨を通知するようにしてもよい。
一方、ステップS805での要求の結果、ネットワークに参加するための情報を受信した場合、制御部101は、ネットワークに参加可能であると判断する。このように判断される場合は、例えば図6のステップS605や図7のステップS706で送信される図4(b)に示すような情報が受信された場合である。この場合、処理はステップS807に進む。
ステップS807では、制御部101は、タイマーを開始させ、ステップS806で受信した情報に含まれるAP切り替え時間が経過するまで待機する。なお、相手機器がAP機器として動作している場合は、AP機器の切り替えの必要が無いため、AP切り替え時間は0secである。すなわち、この場合は実質的に本ステップの処理を実行することなくステップS808に進む。
続くステップS808では、制御部101は、CL機器としての動作を開始させる。
そして、ステップS809にて、制御部101は、ステップS806で受信した情報に基づくネットワークに参加要求を送信し、その応答の受信を経てネットワークに参加する。
以上が、デジタルカメラ100が近接無線通信を利用してネットワークに参加する際の動作の説明である。
以上、本実施形態のデジタルカメラ100では、他機の生成したネットワークの情報を外部に出力しないようにする一方で、自機の生成するネットワークの情報を出力する。これにより、セキュリティ性を保ちつつ、手軽なネットワークの参加を実現することができる。
[第2の実施形態]
第1の実施形態では、ネットワークに参加する側の機器が、例えば図5のアイコン502を選択したことにより、ネットワークの消滅・離脱を経て、未接続の状態になってから、ネットワークに参加する処理を行う場合について述べた。これに対し、本実施形態では、アイコン502の選択の時点ではネットワークを離脱せず、近接無線通信が確立した両機器の状態を考慮して、どちらのネットワークを優先するかを適切に制御する場合について述べる。なお、本実施形態は第1の実施形態と共通する部分が多いため、本実施形態特有の部分を中心に説明する。
上述のように、本実施形態では、近接無線通信が確立した両機器の状態を考慮してネットワークへの参加処理を制御する。特に、本実施形態ではAP機器の生成しているネットワークを最優先にする。すなわち、AP機器のネットワークを消滅させないよう制御する。例えば、あるネットワークを生成しているAP機器と、別のネットワークに参加しているCL機器との近接無線通信が確立した場合には、CL機器がネットワークを離脱して、AP機器のネットワークに参加する。
また、AP機器同士の近接無線通信が確立した場合には、本実施形態では、両機器のネットワークは維持される。すなわち、ネットワークの参加処理は行われない。これは、各機器がそれぞれ生成しているネットワークに参加している他の機器の通信を妨げる恐れがあるためである。
このように、本実施形態のデジタルカメラ100では、近接無線通信が確立した両機器の状態に応じて、どちらのネットワークの維持を優先するかを適切に制御する。なお、CL機器同士の近接無線通信が確立した場合には、アイコン502が選択された方の機器がネットワークを離脱し、もう一方の機器がAP機器となり生成したネットワークに参加する。すなわち、アイコン502の選択に応じてどちらのネットワークの維持を優先するかを制御する。
以下、自機がAP機器として動作している状態の場合、CL機器として動作している状態の場合、どちらの状態でもない場合の三つの場合についてそれぞれデジタルカメラ100の動作を説明する。
図9は、本実施形態のデジタルカメラ100がAP機器として動作する場合の処理を示すフローチャートである。本フローチャートは、デジタルカメラ100が簡易AP機器としての動作を開始することに応じて開始される。デジタルカメラ100がAP機器としての動作を開始する場合は、例えばユーザのメニュー操作により指示を受け付けたことに応じて開始する場合や、後述の図11のステップS1117や図12のステップS1210の処理により開始する場合が考えられる。
ステップS901とステップS902は、図6のステップS601とステップS6902と同様である。
ステップS903では、制御部101は、近接無線通信部112を介して他機の近接を検知し、近接無線通信が確立したか否かを判断する。制御部101が、近接無線通信が確立していないと判断した場合、処理はステップS911に進む。ステップS911〜ステップS914の処理は図6のステップS608〜ステップS611の処理と同様の処理が実行される。一方、制御部110が、近接無線通信が確立したと判断した場合、処理はステップS904に進む。
ステップS904では、制御部101は、近接無線通信部112を介して、近接無線通信が確立できた相手(以下、相手機器)と、図10に示すような情報を交換し合う。すなわち、デジタルカメラ100の制御部101は、図10に示す各項目の自機の情報を、近接無線通信を介して相手機器に送信すると共に、図10に示す各項目の相手機器の情報を、近接無線通信を介して相手機器から受信する。
図10に示す情報には、図4(b)に示す情報に加えて、自機がCL機器・AP機器として動作しているか、又はそのいずれとしても動作していないかを示す情報であるWLAN状態1001が含まれる。更に、図6のステップS604での判断で用いた、自機が生成したネットワークへの参加可能な機器の上限を示す情報、すなわち最大接続数1002、および現在のネットワークに参加している機器の数1003も含まれる。これらの情報は、デジタルカメラ100のネットワークに参加可能かどうかを相手機器が判断するために用いられる。この判断については後述する。なお、ここでは自機はAP機器として動作しているので、AP機器が切り替わることはない。すなわち、AP切り替え時間は、ここでは0secとなる。
続くステップS905では、制御部101は、ステップS904で受信した情報を参照してデジタルカメラ100は相手機器の動作の状態を判断する。制御部101が、相手機器がAP機器としてもCL機器としても動作していない、すなわち未接続の状態であると判断した場合、処理はステップS907に進む。ステップS907およびステップS908では、図6のステップS604とステップS606と同様の処理が実行される。
また、制御部101が、相手機器がAP機器として動作していると判断した場合は、どちらの機器もAP機器として動作してネットワークを生成していることになる。すなわち、この場合に両機器が接続するためには、いずれか一方のネットワークを消滅させなければならず、消滅させられるネットワークに参加している他の機器の通信に不都合が生じる恐れがある。
そこで、本実施形態では、AP機器として動作している機器同士では接続できないよう制御する。すなわち、この場合処理はステップS909に進み、制御部101はネットワークへの参加が不可能である旨をユーザに通知する。例えば、制御部101は、表示部106に「同一のネットワークに参加できません」といったメッセージを表示させることで通知する。
また、制御部101が、相手機器がCL機器として動作していると判断した場合、処理はステップS906に進む。
ステップS906では、制御部101は、相手機器が同一ネットワーク内の機器であるか否かを判断する。具体的には、制御部101は、ステップS904で受信した情報に含まれる相手機器のIPアドレスがWLAN管理情報に含まれているか否かを判断する。制御部101が、相手機器のIPアドレスがWLAN管理情報に含まれていると判断した場合、相手機器が同一ネットワーク内の機器であると判断される。この場合は、既にネットワークに参加済みであるから、ステップS907やステップS908の処理を行う必要はない。そのため、この場合は処理はステップS909に進む。一方、制御部101が、相手機器のIPアドレスがWLAN管理情報に含まれていないと判断した場合、相手機器が同一ネットワーク内の機器でないと判断される。この場合は、ステップS907およびステップS908の処理を実行し、相手機器のネットワークへの参加を受け付ける。
以上が、本実施形態におけるデジタルカメラ100がAP機器として動作している場合の処理である。このように自機がAP機器として動作している場合は、自機のネットワークの維持を優先する。
続いて、本実施形態におけるデジタルカメラ100がCL機器として動作する場合の処理について説明する。
図11は、本実施形態のデジタルカメラ100がCL機器として動作する場合の処理を示すフローチャートである。本フローチャートは、デジタルカメラ100がCL機器としての動作を開始することに応じて開始される。デジタルカメラ100がCL機器としての動作を開始する場合は、例えばユーザのメニュー操作により指示を受け付けたことに応じて開始する場合や、前述の図9のステップS912や後述の図12のステップS1207の処理により開始する場合が考えられる。
ステップS1101〜ステップS1103は、図9のステップS901〜ステップS903と同様の処理が実行される。また、ステップS1120〜ステップS1122の処理は、図7のステップS712〜ステップS714の処理と同様の処理が実行される。
ステップS1104では、制御部101は、図7のステップS705の処理を実行する。すなわち、AP切り替え時間を算出する。
続くステップS1105、S1106では、図9のステップS904、ステップS905と同様の処理が実行される。
次にステップS1106にて制御部101が、相手機器がAP機器として動作していると判断した場合について説明する。この場合デジタルカメラ100が相手機器のネットワークに参加する側の機器として動作することになる。つまり、相手機器のネットワークを優先する。この場合処理はステップS1108に進む。
ステップS1108では、制御部101は、相手機器が同一ネットワーク内の機器かどうかを判断する。相手機器が同一ネットワーク内の機器であると判断された場合、既にネットワークに参加済みであるため、再度ネットワークへの参加処理を行う必要はない。そのため、この場合処理はステップS1119に進み、制御部101は、ネットワークへの参加が不可能である旨をユーザに送信する。一方、ステップS1108で、制御部101が、相手機器が同一ネットワーク内の機器ではないと判断した場合、処理はステップS1109に進む。
ステップS1109では、制御部101は、相手機器のネットワークに参加可能であるか否かを判断する。具体的には、制御部101はステップS1105で相手機器から受信した情報に含まれる最大接続と、相手機器の現在の接続機器数に1を足した数とを比較する。比較の結果、相手機器の現在の接続機器数に1を足した数が最大接続数を超える場合、自機は相手機器のネットワークに参加できないと判断する。この場合、処理はステップS1119に進み、制御部110は、ネットワークへの参加の処理を実行しない旨を相手機器に送信する。一方、比較の結果、相手機器の現在の接続機器数に1を足した数が最大接続数を超えない場合、自機は相手機器のネットワークに参加できると判断する。この場合、処理はステップS1110に進む。ステップS1110では、図7のステップS713と同様の処理が実行される。
続いて、ステップS1111では、制御部101は、ステップS1105で受信した相手機器からの情報に含まれるAP切り替え時間の分だけ待機する。ステップS1106で相手機器がAP機器として動作していると判断した場合はAP切り替え時間は0secであるから、実質的に本ステップの処理が行われずに次のステップの処理に進む。この処理は図8のステップS807と同様である。
待機を終えると、ステップS1112にて制御部101は、相手機器が構築したネットワークに参加するための処理を実行する。
以上が、ステップS1106にて制御部101により相手機器がAP機器として動作していると判断された場合の説明である。
次に、ステップS1106にて制御部101が、相手機器がCL機器として動作していると判断した場合について説明する。この場合、処理はステップS1107に進む。
ステップS1107では、制御部101は、自機がネットワークの参加側であるか否かを判断する。具体的には、制御部101は、近接無線通信が確立する前に、図5のアイコン502の選択を受け付けているかどうかを判断する。このアイコン502の選択を受け付けていると判断した場合、デジタルカメラ100は相手機器のネットワークへの参加側の機器であると判断する。この場合、処理はステップS1108に進み、相手機器がAP機器として動作していると判断された場合と同様の処理が実行される。すなわち、被参加側の機器のネットワークを優先する。結果として、相手機器はCL機器ではなくAP機器として動作してネットワークを生成し、デジタルカメラ100はこのネットワークに参加することになる。
一方、アイコン502を受け付けていないと判断した場合、制御部101は、自機がネットワークへの被参加側の機器であると判断する。すなわち、自機のネットワークを優先する。この場合、処理はステップS1113に進む。
ステップS1113では、ステップS1108と同様の処理が実行される。すなわち、制御部101が、相手機器が同一ネットワーク内の機器であると判断した場合、ステップS1119を経て本フローチャートを終了する。一方、制御部101が、相手機器が同一ネットワーク内の機器でないと判断した場合、処理はステップS1114に進む。
ステップS1114の処理はステップS704と同様の処理が実行される。ステップS1114にて、制御部101が、相手機器をネットワークに参加させることができないと判断した場合は、ステップS1119を経て本フローチャートを終了する。一方、制御部101が、相手機器をネットワークに参加させることができると判断した場合、処理はステップS1115に進む。
ステップS1115〜ステップS1118の処理は、図7のステップS707〜ステップS710と同様の処理が実行される。
以上が、ステップS1106にて制御部101により相手機器がCL機器として動作していると判断された場合の説明である。
また、ステップS1106にて制御部101が、相手機器がAP機器としても、CL機器としても動作していないと判断した場合、すなわち相手機器がネットワークに接続していない場合は、処理はステップS1114に進む。ステップS1114以降の処理は上述した通りである。
以上が、本実施形態におけるデジタルカメラ100がCL機器として動作している場合の処理である。
続いて、本実施形態におけるデジタルカメラ100が未接続の場合の処理について説明する。
図12は、本実施形態のデジタルカメラ100の動作を示すフローチャートである。本フローチャートは、ユーザが操作部105を介して図5(a)に示すアイコン502を選択することに応じて開始される。
ステップS1201は、図8のステップS801と同様の処理が実行される。
続いて、ステップS1202〜ステップS1204では、図11のステップS1104〜ステップS1106と同様の処理が実行される。
次に、ステップS1204にて制御部101が、相手機器がAP機器又はCL機器として動作していると判断した場合について説明する。この場合、処理はステップS1205に進む。
ステップS1205〜ステップS1208では、図8のステップS806〜ステップS809と同様の処理が実行される。
次に、ステップS1204にて制御部101が、相手機器がAP機器としてもCL機器としても動作していないと判断した場合について説明する。すなわち、相手機器がネットワークに未接続の場合について説明する。この場合、処理はステップS1209に進む。
ステップS1209では、制御部101は、図11のステップS1107と同様の処理を実行する。ステップS1209で制御部101が、自機がネットワークへの参加側の機器であると判断した場合、処理はステップS1205に進む。ステップS1205以降の処理は上述した通りである。ステップS1209で制御部101が、自機がネットワークへの参加側の機器でないと判断した場合、処理はステップS1210に進む。ステップS1210およびステップS1211では、図7のステップS709およびステップS710と同様の処理が実行される。
以上が、本実施形態におけるデジタルカメラ100が未接続の場合の処理の説明である。
本実施形態では、近接無線通信を確立した両機器の動作状態に応じて、ネットワークへの参加のための処理を適切に制御するよう構成した。すなわち、近接無線通信を確立した相手機器がネットワークを生成している機器である場合はそのネットワークを最優先とし、近接無線通信を確立した相手機器がネットワークを生成している機器でない場合はネットワークへの被参加側の機器のネットワークを優先する。これにより、ユーザは各機器の動作状態を意識することなくネットワークへ参加することができると共に、ユーザが意図しないネットワークの消滅・離脱の可能性を低減することができる。
[その他の実施形態]
上述の第2の実施形態では、AP機器として動作しているデジタルカメラ同士が近接無線通信を確立した場合、ネットワークへの参加処理を行わないよう制御される場合について述べた。これについては、CL機器として動作しているデジタルカメラ同士の場合と同様に、ユーザの操作(例えばアイコン502の選択)による指示に基づき、いずれか一方のネットワークを優先するようにしてもよい。
更に、上述の第2の実施形態において、図10のような情報に加えて、自機のネットワークの維持を優先するか否かを示すネットワーク維持情報(NW維持情報)を交換するようにしてもよい。例えば、NW維持情報が「維持する」に設定されている場合、その機器が参加しているネットワークの消滅・離脱を行わないよう制御する。このようにした場合、近接無線通信が確立した両機器のうち、ネットワークを離脱しなければならない機器のNW維持情報が「維持する」に設定されているか否かを判断し、「維持する」に設定されている場合は、ネットワークへの参加の処理を中断する。
具体的には、図11のステップS1109とステップS1110の間に、制御部101は、自機のNW維持情報を確認する。自機のNW維持情報が「維持する」に設定されている場合、ステップS1119に進み、ネットワークへの参加の処理は終了する。一方、自機のNW維持情報が「維持しない」に設定されている場合、ステップS1110に進み、ネットワークへの参加の処理を継続する。
また、これに対応して、図11のステップS1114とステップS1115の間に、制御部101は、相手機器のNW維持情報を確認する。相手機器のNW維持情報が「維持する」に設定されている場合、ステップS1119に進み、ネットワークへの参加の処理は終了する。一方、相手機器のNW維持情報が「維持しない」に設定されている場合、ステップS1115に進み、ネットワークへの参加の処理を継続する。これにより、ユーザが意図せずにネットワークから離脱してしまう可能性を低減することができる。
また、近接無線通信で授受される信号には、第三者に渡すことを許可する旨を示す情報(許可情報)を含めることができる。そこで、上述の実施形態に加えて、許可情報を利用してネットワークの参加処理を切り替えてもよい。
例えば、デジタルカメラ230が、AP機器として動作するデジタルカメラ210と近接無線通信を確立することで、デジタルカメラ210の生成しているネットワーク200に参加する際に、デジタルカメラ210は、許可情報と共に通信パラメータを送信する。これにより、デジタルカメラ230は、受信したデータを他機に渡してもよいと認識できる。その後、例えばデジタルカメラ240がデジタルカメラ230と近接無線通信を確立してネットワーク200に参加しようとした場合、デジタルカメラ230は近接無線通信で直接通信パラメータを渡せばよい。すなわち、わざわざAP機器を切り替える必要はない。
この場合、例えば図7のステップS704の判断の前に、自機が参加しているネットワークの情報が許可情報と共に得られたかどうかを判断する。そして、許可情報と共に得られたと判断された場合には、ステップS704に進む代わりに、相手機器にネットワーク情報を送信する。これにより、わざわざネットワークを消滅させる負荷を低減させることができる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。