(57)【要約】【課題】クライアント機能を用いる通信とサーバ機能を用いる通信とを並行して実行する場合に、接続状態の把握を容易にすることが可能な通信装置を提供する。【解決手段】本発明に係る通信装置は、外部機器と通信するための通信手段と、通信手段を用いる通信において、通信装置がクライアントとして動作する第１の通信と、通信装置がサーバとして動作する第２の通信とを制御する制御手段と、を有し、制御手段は、第１の通信と第２の通信とを並行して制御するためにそれぞれの通信の接続動作を実行する場合、第１の通信の接続動作を終了するタイミングと、第２の通信の接続動作を終了するタイミングとを一致させる。【選択図】図４
2020129204.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
外部機器と通信するための通信手段と、
前記通信手段を用いる通信において、前記通信装置がクライアントとして動作する第１の通信と、前記通信装置がサーバとして動作する第２の通信とを制御する制御手段と、を有し、
前記制御手段は、前記第１の通信と前記第２の通信とを並行して制御するためにそれぞれの通信の接続動作を実行する場合、前記第１の通信の接続動作を終了するタイミングと、前記第２の通信の接続動作を終了するタイミングとを一致させる、ことを特徴とする通信装置。
【請求項２】
前記第１の通信の接続動作を終了するタイミングは、前記第１の通信の接続動作において接続試行を行う期間に基づき、前記第２の通信の接続動作を終了するタイミングは、前記第２の通信の接続動作において接続待機を行う期間に基づく、ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記制御手段は、前記第１の通信と前記第２の通信とを並行して制御する場合の前記接続試行を行う期間に、前記第１の通信と前記第２の通信とを並行して制御しない場合の前記接続試行を行う期間とは異なる期間を設定する、ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記制御手段は、前記第１の通信と前記第２の通信とを並行して制御する場合の前記接続待機を行う期間に、前記第１の通信と前記第２の通信とを並行して制御しない場合の前記接続待機を行う期間とは異なる期間を設定する、ことを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記制御手段は、１回の接続試行がタイムアウトする時間を表すタイムアウト時間と、接続を試行する回数を表す試行回数との少なくともいずれかを変更することにより、前記第１の通信の接続動作を終了するタイミングを制御する、ことを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記第１の通信は、前記通信装置がクライアントとして動作する、ＦＴＰプロトコルを用いた通信である、ことを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記第２の通信は、前記通信装置がサーバとして動作する、ＨＴＴＰプロトコルを用いた通信である、ことを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
前記通信装置がクライアントとして動作する通信と、前記通信装置がサーバとして動作する通信との組み合わせに対するユーザ選択を受け付ける操作手段を更に有する、ことを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
外部機器と通信するための通信手段を有する通信装置の制御方法であって、
制御手段が、前記通信手段を用いる通信において、前記通信装置がクライアントとして動作する第１の通信と、前記通信装置がサーバとして動作する第２の通信とを制御する制御工程、を有し、
前記制御工程では、前記第１の通信と前記第２の通信とを並行して制御するためにそれぞれの通信の接続動作を実行する場合、前記第１の通信の接続動作を終了するタイミングと、前記第２の通信の接続動作を終了するタイミングとを一致させる、ことを特徴とする通信装置の制御方法。
【請求項１０】
コンピュータを、請求項１から８のいずれか１項に記載の通信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置およびその制御方法ならびにプログラムに関する。
【背景技術】
【０００２】
近年、無線通信機能を内蔵したデジタルカメラ等の撮像装置が普及しつつある。無線通信機能を内蔵した撮像装置は、クライアント機能を動作させることによって、撮像装置で撮影した画像データを指定した外部機器へ送信する機能を実現することができる。或いは、撮像装置がサーバ機能を動作させることによって、スマートフォンなどの外部機器からの遠隔操作を受け付けて撮影や画像閲覧を行う機能を実現することができる。
【０００３】
このようなサーバ機能やクライアント機能を用いる個々のユースケースに対し、サーバ機能とクライアント機能とを用いるそれぞれのユースケースを組み合わせた、新たなユースケースの実現が期待されている。例えば、遠隔操作によって撮影や画像閲覧を行うユースケースと、撮影または閲覧した画像データを外部機器へ送信するユースケースとを同時に実現すれば、利便性の高い遠隔操作を提供することができる。
【０００４】
サーバ機能とクライアント機能とを用いて通信を行う技術として、相手装置との通信形態に応じて、クライアント機能及びサーバ機能の両方を用いて相手装置と通信する通信方法と、いずれか一方の機能を使用して相手装置と通信する通信方法とを選択する技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２６９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クライアント機能とサーバ機能を並行して動作させるためには、クライアント機能では自機から外部機器に対して通信接続を試行しながら、サーバ機能では外部機器からの通信を待機する必要がある。このようにサーバ機能とクライアント機能とはそれぞれ接続方法が異なるため、各通信を開始するまでの接続タイムアウトや再接続回数等を考慮しなければ、別個に接続エラーが発生し装置の状態を把握し難くなる場合がある。また、一部の処理のみが実行されて意図しない処理が発生するおそれがある。特許文献１では、クライアント機能とサーバ機能を並行して動作させる場合の接続動作の制御については考慮されていなかった。
【０００７】
本発明は、上記課題に鑑みてなされ、その目的は、クライアント機能を用いる通信とサーバ機能を用いる通信とを並行して実行する場合に、接続状態の把握を容易にすることが可能な技術を提供することである。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の通信装置は以下の構成を備える。すなわち、通信装置であって、外部機器と通信するための通信手段と、前記通信手段を用いる通信において、前記通信装置がクライアントとして動作する第１の通信と、前記通信装置がサーバとして動作する第２の通信とを制御する制御手段と、を有し、前記制御手段は、前記第１の通信と前記第２の通信とを並行して制御するためにそれぞれの通信の接続動作を実行する場合、前記第１の通信の接続動作を終了するタイミングと、前記第２の通信の接続動作を終了するタイミングとを一致させる、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、クライアント機能を用いる通信とサーバ機能を用いる通信とを並行して実行する場合に、接続状態の把握を容易にすることが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る通信装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】本実施形態のデジタルカメラにおいて保持される接続用情報の一例を説明するための図
【図３】本実施形態の接続動作を説明するための図
【図４】本実施形態の通信接続処理の一連の動作を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１２】
以下では通信装置の一例として、サーバ機能とクライアント機能とを並行して実行可能なデジタルカメラを用いる例を説明する。しかし、本実施形態は、デジタルカメラに限らず、サーバ機能とクライアント機能とを並行して実行可能な他の機器にも適用可能である。これらの機器には、例えばパーソナルコンピュータ、スマートフォンを含む携帯電話機、ゲーム機、タブレット端末、時計型や眼鏡型の情報端末、医療機器、車載用システムの機器などが含まれてよい。
【００１３】
（デジタルカメラ１００の構成）
図１は、本実施形態の通信装置の一例としてデジタルカメラ１００の機能構成例を示すブロック図である。なお、図１に示す機能ブロックの１つ以上は、ＡＳＩＣやプログラマブルロジックアレイ（ＰＬＡ）などのハードウェアによって実現されてもよいし、ＣＰＵやＭＰＵ等のプログラマブルプロセッサがソフトウェアを実行することによって実現されてもよい。また、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。また、１つの機能ブロックが動作する代わりに、複数の機能ブロックが処理を分担してもよいし、複数の機能ブロックが処理を実行する代わりに１つの機能ブロックが処理を実行してもよい。
【００１４】
制御部１０１は、例えばＣＰＵあるいはＧＰＵなどの演算回路を含み、不揮発性メモリ１０３に記憶されているプログラムを作業用メモリ１０３に展開し、実行することによりデジタルカメラ１００全体の動作を制御する。例えば、制御部１０１は、撮像部１０２や通信部１０９、操作部１０５などから入力された信号に応じて、撮像処理やデータの送受信、或いは操作に応じたユーザインタフェースの表示などを行うことができる。
【００１５】
撮像部１０２は、撮像部１０２に含まれるレンズで結像された被写体光を電気信号に変換する撮像素子を含み、撮像素子から出力された信号に対してノイズ低減処理などを行って、デジタルデータを画像データとして出力する。撮像された画像データは、バッファメモリに蓄えられた後、制御部１０１による所定の演算が施されたうえで記録媒体１０７に記録される。
【００１６】
不揮発性メモリ１０３は、電気的に消去・記録可能な不揮発性のメモリであり、制御部１０１で実行される後述のプログラム等が格納される。作業用メモリ１０４は、例えば半導体メモリ等で構成される揮発性メモリである。作業用メモリ１０４は撮像部１０２で撮像された画像データを一時的に保持するバッファメモリや、表示部１０６の画像表示用メモリ、或いは制御部１０１の作業領域等として使用される。
【００１７】
操作部１０５は、ユーザからのデジタルカメラ１００に対する操作指示を受け付けるために用いられる操作部材である。操作部１０５は、例えば、ユーザがデジタルカメラ１００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンなどを含む。また、表示部１０６に形成されるタッチパネルも操作部１０５に含まれる。なお、レリーズスイッチは、ＳＷ１およびＳＷ２を有する。レリーズスイッチが、いわゆる半押し状態となることにより、ＳＷ１がＯＮとなる。これにより、操作部１０５はＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュプリ発光）処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、ＳＷ２がＯＮとなる。これにより、操作部１０５は撮影を行うための指示を受け付ける。
【００１８】
表示部１０６は、例えば液晶パネルまたは有機ＥＬパネルから構成される表示装置であり、撮影の際のビューファインダ画像の表示、撮影した画像データの表示、対話的な操作画面のための文字表示などを行う。なお、表示部１０６は必ずしもデジタルカメラ１００が内蔵する必要はない。デジタルカメラ１００は内部又は外部の表示部１０６と接続することができ、表示部１０６の表示を制御する表示制御機能を少なくとも有していればよい。
【００１９】
記録媒体１０７は、例えば半導体メモリやハードディスク等で構成され、例えば撮像部１０２から出力された画像データを記録する。記録媒体１０７は、デジタルカメラ１００に着脱可能なように構成されてもよいし、デジタルカメラ１００に内蔵されていてもよい。すなわち、デジタルカメラ１００は少なくとも記録媒体１０７にアクセスする手段を有していればよい。
【００２０】
接続部１０８は、外付け無線ＬＡＮ機器(単に外付けＷＦＴともいう)と接続するためのインターフェースである。本実施形態のデジタルカメラ１００は、接続部１０８を介して、外部機器とデータのやりとりを行うことができる。なお、本実施形態では、接続部１０８は外部機器と無線ＬＡＮで通信するためのインターフェースを含む。制御部１０１は、接続部１０８を制御することで外部機器との無線通信を実現する。なお、通信方式は無線ＬＡＮに限定されるものではない。
【００２１】
通信部１０９はデジタルカメラ１００の本体に内蔵されている通信部である。制御部１０１は、接続部１０９を制御することで外部機器との通信を実現する。通信方式は例えば無線ＬＡＮ及び有線ＬＡＮを含むが、これに限定されるものではない。
【００２２】
なお、本実施形態におけるデジタルカメラ１００は、無線ＬＡＮのインフラストラクチャモードにおけるスレーブ装置として動作することが可能である。スレーブ装置として動作する場合、周辺のアクセスポイント（単にＡＰともいう）に接続することで、ＡＰが形成するネットワークに参加することが可能である。また、本実施形態におけるデジタルカメラ１００は、ＡＰの一種ではあるが、より機能が限定された簡易的なＡＰ（単に簡易ＡＰともいう）として動作することも可能である。なお、本実施形態におけるＡＰは中継装置の一例として動作する。デジタルカメラ１００が簡易ＡＰとして動作すると、デジタルカメラ１００は自身でネットワークを形成する。デジタルカメラ１００の周辺の装置は、デジタルカメラ１００をＡＰと認識し、デジタルカメラ１００が形成したネットワークに参加することが可能となる。なお、このような通信部１０９の通信機能の動作は不揮発性メモリ１０３に格納されたプログラムを制御部１０１が実行することにより実現される。
【００２３】
なお、本実施形態におけるデジタルカメラ１００はＡＰの一種として動作するものの、スレーブ装置から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易ＡＰである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。なお、他の実施形態として、デジタルカメラ１００にゲートウェイ機能を持たせることも可能である。
【００２４】
（履歴情報に格納される接続用情報の例）
次に、図２を参照して、本実施形態に係るデジタルカメラ１００の履歴情報に格納される接続用情報の例について説明する。デジタルカメラ１００は、外部機器と接続する場合にまずネットワークに参加し（ここでは自機が簡易ＡＰとしてネットワークを形成する場合も含む）、その後、外部機器との接続を確立する。このとき、デジタルカメラ１００は、接続用情報（ネットワークの情報と接続する外部機器の情報）を履歴情報として記録し、管理する。履歴情報には、例えば、接続機器情報２００と、ネットワーク参加パラメータ２１０と、ネットワーク形成パラメータ２２０と、接続設定関連情報２３０とが記録される。
【００２５】
接続機器情報２００は、デジタルカメラ１００がネットワークを介して過去に接続したことのある外部機器を管理するための情報の一例を示している。接続機器情報２００は、個々の接続機器ごとに付与される「接続機器情報番号」と、「機器種別」、「登録名」、「ＵＵＩＤ」、「閲覧許可設定」、および「ネットワーク形成パラメータ番号」を含む。また、デジタルカメラ１００がクライアントとして所定のサーバ（図２の例ではＦＴＰサーバ）と通信を行うための情報として「ＦＴＰサーバーアドレス」、「ＦＴＰログイン名」、「ＦＴＰパスワード」、および「ファイルの上書き」を含む。なお、ＦＴＰサーバに限らずＷｅｂサーバなどの他のサーバの情報を有してよい。
【００２６】
図２に示す「登録名」は、ユーザが設定可能な接続機器名であり、ユーザが接続機器を識別できるように自由に変更することができる。「機器種別」、「登録名」、「ＵＵＩＤ」は必ずしも別個の情報でなくてもよく、例えば機器種別と登録名とを一意な文字列を連結した１つのＩＤでこれらの情報を特定できるようにしてもよい。
【００２７】
「ＦＴＰサーバーアドレス」はデジタルカメラ１００がＦＴＰクライアントモードを有している場合、その接続先であるＦＴＰサーバのアドレスとなる。「ＦＴＰログイン名」と「ＦＴＰパスワード」も同様にＦＴＰ転送を行う際、ＦＴＰサーバにログインするためのログイン名とパスワードである。「ファイルの上書き」はＦＴＰ転送を行う際にデジタルカメラ１００で撮影された画像データに対するファイル名でＦＴＰサーバに転送をする際、ＦＴＰサーバ側に同一のファイル名があった場合に上書きをするか/しないかを示す。上書きをしない場合は、ファイル名に_１などを付加して転送を行う。「ネットワーク形成パラメータ番号」は、ネットワーク形成パラメータ２２０のうち、どのパラメータを用いてネットワークを形成したかを示す。
【００２８】
接続機器情報２００は、例えばＮ個分の機器の情報を記憶することができ、それ以上記憶させるためには既に記憶されている接続機器情報２００を削除する必要がある。なお、デジタルカメラ１００は、接続機器情報２００を、ユーザからの操作により削除してもよい。また、デジタルカメラ１００は、Ｎ個記憶している状態で新たに記憶しようとした際に、「接続順」を参照して番号が一番小さい接続機器情報２００を削除するようにしてもよい。
【００２９】
ネットワーク参加パラメータ２１０は、デジタルカメラ１００が過去に参加したことのある、外部ＡＰなどが形成したネットワークを管理するための情報である。ネットワーク参加パラメータ２１０には、例えば無線ネットワークへの接続に関する「ネットワーク参加パラメータ番号」、「接続形態」、「接続順」、「ＥＳＳＩＤ」、「認証方式」、「暗号種別」、「暗号鍵」および「チャネル」が含まれる。また、ネットワーク参加パラメータ２１０には、「ＩＰアドレス取得方法」および「ＤＮＳ取得方法」が含まれる。
【００３０】
「接続順」とはデジタルカメラ１００がネットワーク参加パラメータ２１０に記憶している無線ネットワークに対し、過去に参加した順番であり、番号が大きいほうが最近参加したことを示す。図２に示すネットワーク参加パラメータ２１０の例は、Ｍ個分のネットワークの情報を記憶できるようにしており、それ以上記憶させるためには既に記憶されているネットワーク参加パラメータ２１０を削除する必要がある。このため、デジタルカメラ１００は、ネットワーク参加パラメータ２１０をユーザ操作により削除してもよい。もしくは、Ｍ個分のネットワークの情報を記憶している状態で新たに記憶しようとした際に、「接続順」を参照して番号が一番小さいネットワーク参加パラメータ２１０を削除してもよい。なお、自機が簡易ＡＰとしてネットワークを形成した場合、その情報はネットワーク参加パラメータ２１０とは識別可能な情報として、以下に説明するネットワーク形成パラメータ２２０で管理される。
【００３１】
ネットワーク形成パラメータ２２０は、デジタルカメラ１００が簡易ＡＰとして形成したネットワークの情報を管理するものである。ネットワーク形成パラメータ２２０には、個々のネットワーク形成パラメータに付与される「ネットワーク生成パラメータ番号」と、「ＥＳＳＩＤ」、「暗号鍵」が記憶されている。ネットワーク形成パラメータ２２０に認証方式、暗号種別、チャネル、ＩＰアドレス取得方法、ＤＮＳ取得方法などを記憶してもよいが、デジタルカメラ１００が生成するネットワークの全てに共通の項目は必ずしも記憶しなくともよい。また、ネットワーク形成パラメータ２２０は、接続機器情報２００と同数のＮ個分のネットワークの情報を記憶できるようにしている。接続機器情報２００が削除された場合、関連付けられているネットワーク形成パラメータ２２０を削除することにより、ネットワーク形成パラメータ２２０がＮ個より多く記憶することがなくなる。
【００３２】
接続設定関連情報２３０は、接続機器情報２００とネットワーク参加パラメータ２１０もしくはネットワーク形成パラメータ２２０の組み合わせを関連付けた管理テーブルである。接続設定管理情報の行２３１に示す「ＳＥＴ１」は、接続機器情報２００の接続機器情報番号が「２」と「４」である列２０２と列２０４と、ネットワーク参加パラメータ２１０のネットワーク参加パラメータ番号が「１」である列２１１とを関連付けている。これは、列２０２に示す、デジタルカメラ１００がサーバとして動作するＨＴＴＰの接続処理と、列２０４に示す、デジタルカメラ１００がクライアントとして動作するＦＴＰの接続処理とを同時に開始することを意味する。このとき、デジタルカメラ１００が通信を行う際の通信路として、ネットワーク参加パラメータ２１０の列２１１を使用して通信路を確立する。なお、デジタルカメラ１００は、例えば接続設定関連情報２３０を構成する各情報を最大でＪ個分まで記憶することができる。行２３２および行２３３を用いる例については後述する。なお、図２に示すサーバは一例であり、ＨＴＴＰプロトコルのほか、ＰＴＰプロトコルなどの他の通信プロトコルを用いるサーバとして動作するようにしてもよい。
【００３３】
なお、上述の履歴情報は、制御部１０１が不揮発性メモリ１０３から作業用メモリ１０４に展開して使用することができる。以降の説明では履歴情報が作業用メモリ１０４に展開され、制御部１０１が使用可能になっているものとして説明する。
【００３４】
（デジタルカメラにおける接続動作例）
次に、デジタルカメラ１００における接続動作例について、図３を参照して説明する。本実施形態のデジタルカメラ１００は、単一の通信プロトコルを用いた通信を行うための接続動作と、複数の通信プロトコルを用いた通信を並行して行うための接続動作とを制御することができる。特に、デジタルカメラ１００がクライアントとして動作する通信と、デジタルカメラ１００がサーバとして動作する通信とを並行して制御して複数機能の同時動作を実現する場合、各通信の接続動作を終了するタイミングを一致させる。すなわち、一方の通信が早く接続エラーになることを防止して、ユーザにとって接続エラーを認識し易いものにすることができる。例えば、一度の通知で、ユーザに対して複数の接続動作の接続エラーを通知できるようになる。また、複数の通信を並行して同時動作を実現する場合に各通信が個別に接続動作を終了すると、いずれかの通信を用いた処理のみが実行されて意図しない処理が発生するおそれがあるが、これを低減することができる。制御部１０１は、単体プロトコル接続動作３００または、複数プロトコル接続動作３１０或いは３２０を参照することにより、どのプロトコル（或いはどの組み合わせ）において、どのような接続動作用のパラメメータを用いるかを特定することができる。制御部１０１は、各通信の接続動作を終了するタイミングを、接続動作において接続試行を行う期間や接続待機を行う期間などの接続動作用のパラメータに基づいて決定することができる。なお、本実施形態の説明において、各通信の接続動作を終了させるタイミングを一致させるという制御における「一致」とは、接続動作が終了する時刻が完全に同一である場合に限定されず、一定の時間的なずれがあってもよい。つまり、本発明の効果を得ることができるように、接続エラーが発生する頻度などを考慮して、それぞれの終了タイミングの間に所定の時間幅をもたせて設定することが可能である。
【００３５】
単体プロトコル接続動作３００は、デジタルカメラ１００が所定のプロトコルを単体で動作する際の接続動作を表している。例えばクライアントモード１の単体プロトコル接続動作３０１では、接続タイムアウト時間が１０秒に設定される。これはクライアントとして接続を行う際に１回の接続タイムアウトを１０秒とすることを表している。またクライアントによる接続の試行回数（単にクライアント再接続回数ともいう）は６回に設定される。これは１０秒の間に接続が完了しない場合、同様の接続処理を行い、合計で６回の接続処理を試みることを表している。つまり何等かの原因で接続ができない状況になっている場合、クライアントモード１の単体プロトコル接続動作３０１では、１０×６＝６０秒でエラーとなって接続動作を終了することを表す。すなわち、この通信において接続試行を行う期間は６０秒である。
【００３６】
また、クライアントモード２の単体プロトコル接続動作３０２は接続タイムアウト時間が３０秒に設定される。これはクライアントとして接続を行う際に１回の接続タイムアウトを３０秒とすることを表している。またクライアント再接続回数は０回に設定される。つまり何等かの原因で接続ができない状況になっている場合、クライアントモード１の単体プロトコル接続動作３０２では、再接続処理を行わないため３０秒でエラーとなって接続動作を終了することを表す。すなわち、この通信において接続試行を行う期間は３０秒である。
【００３７】
一方、サーバモード１の単体プロトコル接続動作３０３は接続タイムアウト時間が１８０秒に設定される。これはサーバとしてクライアントからの接続を待つ際に１回の接続タイムアウトを１８０秒とすることを表している。サーバとしての再接続回数はない。つまりクライアントからの接続がない場合、サーバモード１の単体プロトコル接続動作３０３では、１８０秒でエラーとなって接続動作を終了することを表す。すなわち、この通信において接続待機を行う期間は１８０秒である。
【００３８】
また、サーバモード２の単体プロトコル接続動作３０４は接続タイムアウト時間が無制限に設定される。これはサーバとしてクライアントからの接続を待つ際に１回の接続タイムアウトを無制限とすることを表している。サーバとしての再接続回数はない。つまりクライアントからの接続がない場合、サーバモード１の単体プロトコル接続動作３０４では、タイムアウトしない（接続動作を終了しない）ことを表す。この場合、制御部１０１は、この通信において接続待機を行う期間を設定可能な最大値としてもよい。
【００３９】
次に、複数プロトコル接続動作３１０について説明する。複数プロトコル接続動作３１０はデジタルカメラ１００がクライアントモードとサーバモードの通信を組み合わせでプロトコルを並列して同時に動作させる場合の接続動作を表している。
【００４０】
クライアントモード１＋サーバモード１の組み合わせにおける接続動作３１１では、クライアントモード１の接続タイムアウト時間が１０秒に設定され、サーバモード１の接続タイムアウト時間が１８０秒に設定される。これはクライアントとして接続を行う際に１回の接続タイムアウトを１０秒とすることを表す。また、サーバとしてクライアントからの接続を待つ際に１回の接続タイムアウトを１８０秒とする（接続待機を行う期間を１８０秒とする）ことを表す。またクライアント再接続回数は１８回に設定される。これは１０秒の間に接続が完了しない場合、同様の接続処理を行い、合計で１８回接続処理を試みる（接続試行を行う期間は１８０秒とする）ことを表している。すなわち、デジタルカメラ１００がサーバとして接続する通信の接続動作を終了するタイミングとクライアントとして接続する通信の接続動作を終了するタイミングとを一致させている。
【００４１】
上述の単体プロトコル接続動作３０１では、クライアント１のクライアント再接続回数が６回であり、サーバモード１は接続タイムアウト時間が１８０秒であるため、接続動作を終了するタイミングは一致していない。このため、制御部１０１は、複数プロトコル接続動作では、例えば、接続動作を終了するまでの時間長の長い方にタイムアウトのタイミングを合わせる。すなわち、列３１１に示す例では、クライアント１のクライアント再接続回数を（６回から）１８回に変更している。つまり何等かの原因で接続ができない状況になっている場合、プロトコル接続動作３１１では接続試行を行う期間は１０×１８＝１８０秒となり、この期間の経過後にエラーとなって接続動作を終了する。一方、クライアントからの接続がない場合、プロトコル接続動作３１１において接続待機を行う期間は１８０秒であり、この期間の経過後はエラーとなって接続動作を終了する。
【００４２】
なお、クライアントモード２＋サーバモード１の組み合わせでの接続動作３１２や、クライアントモード１＋サーバモード２の組み合わせでの接続動作３１３についても同様に、各通信の接続動作を終了するタイミングが一致するように各期間が調整される。クライアントモード２＋サーバモード２の組み合わせでの接続動作３１４についても同様である。
【００４３】
次に、複数プロトコル接続動作３２０について説明する。複数プロトコル接続動作３２０におけるタイミングの制御は、複数プロトコル接続動作３２０と概ね同様である。複数プロトコル接続動作３１０との違いはタイムアウトを長い方に合わせるのではなく短い方に合わせることである。
【００４４】
クライアントモード１＋サーバモード１の組み合わせでの接続動作３２１はクライアントモード１の接続タイムアウト時間が１０秒に設定され、サーバモード１の接続タイムアウト時間が６０秒に設定される。これはクライアントとして接続を行う際に１回の接続タイムアウトを１０秒とすることを表し、サーバとしてクライアントからの接続を待つ際に１回の接続タイムアウトを６０秒とすることを表している。またクライアント再接続回数は６回に設定される。これは１０秒の間に接続が完了しない場合、同様の接続処理を行い、合計で６回の接続を試行することを表す。サーバモード１の単体プロトコル接続動作３０３の接続タイムアウト時間が１８０秒となっているのに対し、サーバモード１の単体プロトコル接続動作３０３の合計接続タイムアウト時間は６０秒に設定される。すなわち、接続待機を行う期間は短い期間に合わせて６０秒に変更される。つまり何等かの原因で接続ができない状況になっている場合、プロトコル接続動作３２１のクライアントモード１では１０×６＝６０秒で接続動作を終了する（エラーとする）ことを表す。一方、クライアントからの接続がない場合、サーバモード１のプロトコル接続動作は６０秒で接続動作を終了する（エラーとする）ことを表す。
【００４５】
制御部１０１は、クライアントモード２とサーバモード１との組み合わせにおける接続動作３２２などの他の組み合わせにおける接続動作についても同様に、各通信において接続動作を終了するタイミングが一致するように制御する。
【００４６】
なお、上述の図３に示した例では、サーバの接続動作とクライアントの接続動作を同時に開始し、サーバモードにおいて接続待機を行う期間とクライアントモードにおいて接続試行を行う期間とを合わせる例を説明した。しかし、サーバの接続動作とクライアントの接続動作とは同時に開始されなくてもよい。例えば、列３１１の例においてクライアントの接続動作を先に開始した場合、サーバの起動時とクライアントの起動時の差に応じて、サーバの接続待機時間を補正（この場合短くする）することで、各通信の接続動作のタイミングを一致するようにしてもよい。
【００４７】
（通信接続処理に係る一連の動作）
次に、図４を参照して、デジタルカメラ１００において実行される、通信接続処理に係る一連の動作を説明する。なお、本処理は、制御部１０１が不揮発性メモリ１０３に記憶されたプログラムを作業用メモリ１０４に展開、実行することにより実現される。また、本処理は、デジタルカメラ１００のユーザが例えばメニュー操作などにより他装置との接続を指示したことに応じて開始される。また、以下に説明する例では、図２に示した履歴情報の接続機器情報２００として、列２０１〜２０４に示す４つの接続機器情報が登録されているものとする。同様に、ネットワーク参加パラメータ２１０として、列２１１〜２１２がそれぞれ登録されており、ネットワーク形成パラメータ２２０として列２２１が登録されているとものとする。更に、これらの情報は、接続設定関連情報２３０において、行２３１〜２３３に示すように関連付けられている。
【００４８】
Ｓ４０１では、制御部１０１は操作部１０２を介してユーザによるＵＩ操作を受け付ける。例えば、制御部１０１は、接続設定関連情報の１つ以上の列の情報を含むメニュー情報を表示部１０６に表示し、接続動作を行う通信の組み合わせをユーザ選択に応じて受け付ける。制御部１０１は、操作部１０５を介して、例えば接続設定関連情報のうちの「ＳＥＴ１」に対する選択を受け付け、ＨＴＴＰ通信をサーバとして行い且つＦＴＰ通信をクライアントとして行うことを表すユーザ選択を受け付ける。
【００４９】
Ｓ４０２では、制御部１０１は、通信路が無線ＬＡＮであるかを判定する。例えば、制御部１０１は、Ｓ４０１で選択された接続設定関連情報からネットワーク参加パラメータ情報２１０の「接続形態」の設定値を参照し、無線ＬＡＮで接続するか有線ＬＡＮで接続するかを判定する。制御部１０１は、接続形態が無線ＬＡＮである場合には処理をＳ４０３に進め、有線ＬＡＮである場合には処理をＳ４０４に進める。この説明では、接続設定関連情報２３０における行２３１のネットワーク参加パラメータの番号が１となっている。このため、ネットワーク参加パラメータ２１０のネットワーク参加パラメータ番号が「１」である列２１１の情報を参照する。図２に示した例では、列２１１の接続形態は「無線ＬＡＮ」であるため、制御部１０１は、無線ＬＡＮで接続するようにＳ４０３へ処理を進める。
【００５０】
Ｓ４０３では、制御部１０１は、ネットワーク参加パラメータ情報２１０を参照し、列２１１に記述される各パラメータを使用して、接続部１０８もしくは通信部１０９により無線ＬＡＮ接続処理を行う。制御部１０１は、接続処理を実行すると処理をＳ４０５に進める。一方、Ｓ４０４では、制御部１０１はネットワーク参加パラメータ情報２１０を参照し、通信部１０９により有線ＬＡＮ接続処理を行う。制御部１０１は、接続処理を実行すると処理をＳ４０５に進める。なお、列２３１に示す「ＳＥＴ１」の例では、無線ＬＡＮを使用する例となっているため、本ステップは実行されない。
【００５１】
Ｓ４０５では、制御部１０１は、Ｓ４０３もしくはＳ４０４にて接続処理が行われた通信路の接続が成功したかどうかを判定する。制御部１０１は、例えば、接続処理の相手（例えばＡＰ）からの信号や認証結果などに基づいて、接続が成功したと判定した場合には、処理をＳ４０７に進め、失敗したと判定した場合には処理をＳ４０６に進める。Ｓ４０６では、制御部１０１は、接続部１０８もしくは通信部１０９に関わる終了処理を実行し、終了処理を実行すると処理をＳ４１４に進める。
【００５２】
Ｓ４０７では、制御部１０１は、単体プロトコル接続動作を行うか複数プロトコル接続動作を行うかを判定する。制御部１０１は、例えばＳ４０１で選択された接続設定関連情報２３０の「ＳＥＴ１」の情報から接続機器情報を参照し、接続機器情報に単体の接続機器情報番号が記載されているか、複数の接続機器情報番号が記載されているかに基づいて、判定を行う。制御部１０１は、判定の結果、単体プロトコル接続動作を行うと判定した場合には処理をＳ４０８に進め、そうでない（すなわち複数プロトコル接続動作である）場合には処理をＳ４１０に進める。接続設定関連情報２３０の「ＳＥＴ１」が選択された例では、接続機器情報番号が「２」および「４」に設定されているため、複数プロトコル接続動作を行う旨の判定を行ってＳ４１０に処理を進める。
【００５３】
Ｓ４０８では、制御部１０１は、単体プロトコルを起動して単体プロトコル接続動作を開始する。例えば、制御部１０１は、Ｓ４０７で判定した接続機器情報の番号に対応する接続機器情報２００を参照する。そして、接続機器情報２００の「機器種別」に基づいて通信プロトコルを決定する。その後、制御部１０１は、接続モードに応じて、接続動作を終了するタイミングを設定し、接続動作を開始する。接続動作を開始すると処理をＳ４０９に進める。なお、接続設定関連情報の「ＳＥＴ１」(すなわち行２３１)が選択された例では、接続機器情報番号が「２」であるＨＴＴＰプロトコルと、接続機器情報番号が「４」であるＦＴＰプロトコルを用いた通信を並列して制御することが規定されている。このため、本ステップは実行されない。一方、Ｓ４０１で接続設定関連情報２３０の「ＳＥＴ３」(すなわち行２３３)が選択されていれば、接続機器情報番号が「１」である携帯電話モードに使用される通信プロトコルで接続動作が行われる。この場合、サーバモード２の単体動作であること、および対応する単体プロトコル接続動作３００の列３０４に基づいて、接続待機を行う期間は無制限に設定される。
【００５４】
Ｓ４０９では、制御部１０１は、接続部１０８もしくは通信部１０９を介してＳ４０８で起動した通信プロトコルの接続動作が成功したかどうかを判定する。制御部１０１は、判定の結果、接続が成功した場合には処理を終了し、接続に失敗した場合には処理をＳ４０６に進める。
【００５５】
Ｓ４１０では、制御部１０１は、１つ目の通信プロトコルを用いる通信の接続動作を開始する。制御部１０１は、例えば、Ｓ４０７で判定した接続設定関連情報２３０の接続機器情報の番号に対応する接続機器情報２００を参照する。接続機器情報２００の列２０１の「機器種別」から通信プロトコルを決定する。その後、制御部１０１は、接続モードに応じた接続待機を行う期間を用いて、接続動作を終了するタイミングを設定し、接続動作を開始する。接続動作処理を実行すると処理をＳ４１１に進める。なお、例えば、接続設定関連情報２３０の「ＳＥＴ１」(すなわち行２３１)が選択された例では、接続機器情報番号が「２」であるＨＴＴＰプロトコルを用いるサーバとしての通信を行う。そして、接続機器情報番号が「４」であるＦＴＰプロトコルを用いるクライアントとしての通信を並列して行う。この例では、ＦＴＰプロトコルを用いる通信では、接続モードがクライアントモード１であり、また、並行して起動する接続モードがサーバモード１である。このため、制御部１０１は、図３に示した複数プロトコル接続動作３１０の列３１１もしくは複数プロトコル接続動作３２０の列３２１を参照して接続タイムアウト時間を１０秒とする。再接続回数は、列３１１に従う接続動作を行う場合には１８回に設定され、列３２１に従う接続動作を行う場合には６回に設定される。
【００５６】
Ｓ４１１では、制御部１０１は、２つ目の通信プロトコルを用いる通信の接続動作を開始する。制御部１０１は、例えば、Ｓ４０７で判定した接続機器情報の番号に対応する接続機器情報２００を参照する。接続機器情報２００の列２０４の「機器種別」から通信プロトコルを決定する。その後、制御部１０１は、接続モードに応じた接続待機を行う期間を用いて、接続動作を終了するタイミングを設定し、接続動作を開始する。接続設定関連情報２３０の「ＳＥＴ１」(すなわち行２３１)が選択された例では、制御部１０１は、サーバの接続待機を行う期間として、参照する接続動作が３１１であれば１８０秒、３２１であれば６０秒に設定する。なお、制御部１０１は、複数プロトコル接続動作３１０と複数プロトコル接続動作３２０のいずれを参照するか（すなわち接続動作の期間をどちらに合わせるか）を、ユーザ選択に応じて決定するようにしてもよい。
【００５７】
Ｓ４１２では、制御部１０１はＳ４１０とＳ４１１で接続動作を開始した通信プロトコルがどちらも成功したかどうかを判定する。どちらも成功したと判定された場合には処理をＳ４１２に進める。どちらか一方でも成功していない場合には処理をＳ４１３に進める。
【００５８】
Ｓ４１３では、制御部１０１はＳ４１０とＳ４１１で開始した接続動作がタイムアウトしたかどうかを判定する。すなわち、制御部１０１は、Ｓ４１０とＳ４１１で設定した接続動作を終了するタイミングを過ぎているか否かを判定し、当該タイミングを過ぎていると判定した場合には、タイムアウトしたと判定して本処理を終了する。一方、接続動作を終了するタイミングを過ぎていないと判定した場合、タイムアウトしていないと判定して、接続動作を継続するために処理をＳ４１２に進める。なお、制御部１０１は、タイムアウトしたと判定した場合には、表示部１０６にメッセージを表示させて、選択された通信の接続動作は失敗した旨を表示させてもよい。このとき、制御部１０１は、１度の通知で、ユーザに対して複数の接続動作が失敗したことを通知することができる。
【００５９】
Ｓ４１４では、制御部１０１は、リトライ処理が必要かどうかを判定する。制御部１０１は、リトライ処理が必要と判定した場合、Ｓ４０２に処理を戻し、そうでない場合には処理を終了する。このときエラーを示すために、表示部１０６によりエラー内容を表示したり、ＬＥＤの点滅によってエラーを示したりしてもよい。
【００６０】
以上説明したように、本実施形態では、デジタルカメラ１００がクライアントとして動作する通信とサーバとして動作する通信とを並行して制御するためにそれぞれの通信の接続動作を実行する場合、各通信の接続動作を終了するタイミングを一致させる。このようにすることで、一方が早く接続エラーにならずに、ユーザにとって接続エラーを認識し易くなる。すなわち、一度の通知で、ユーザに対して複数の接続動作の接続エラーを通知できるようになる。また、各通信が個別に接続動作を終了することを抑制し、いずれかの通信を用いた処理のみが実行されて意図しない処理が発生するおそれを低減することができる。換言すれば、クライアント機能を用いる通信とサーバ機能を用いる通信とを並行して実行する場合に、接続状態の把握を容易にすることが可能になる。また、上記実施形態において、接続試行を行う期間、或いは接続待機を行う期間を長い方に合わせる場合、特にサーバ接続で待機する通信に関して、外部機器からの接続動作に余裕を持たせることができる。一方、接続試行を行う期間、或いは接続待機を行う期間を短い方に合わせる場合、素早く接続エラーを認識してユーザに通知することができる。
【００６１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６２】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【００６３】
１０１…制御部、１０５…操作部、１０６…表示部、１０８…接続部、１０９…通信部
【図１】
2020129204.tif 000003
【図２】
2020129204.tif 000004
【図３】
2020129204.tif 000005
【図４】
2020129204.tif 000006