(57)【要約】【課題】複数の通信経路を有する通信装置において、速やかに適切な通信経路を選択することができる通信装置を提供する。【解決手段】通信装置は、インターネット上のサーバに画像を送信するサーバ経由送信機能と、同一ネットワーク上から送信先のＰＣを検索してＰＣに画像を直接送信する直接送信機能とを有し、サーバ経由送信機能の実行を指示した場合は、サーバ経由送信機能を実行する前に直接送信機能の実行する。サーバ経由送信機能前の直接送信機能を実行する場合の送信先のＰＣを検索する時間を、直接送信機能の実行を指示した場合の送信先のＰＣの検索する時間よりも短くすることで、速やかにサーバ経由送信機能に移行する。【選択図】図１４
2015039136.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信する通信装置において、
前記情報処理装置との接続を行う接続手段と、
前記情報処理装置との接続を他の情報処理装置を介して行う他の接続手段と、
前記情報処理装置に前記通信装置と接続するか否かの応答を要求する応答要求手段と、
前記情報処理装置から前記応答を受信する受信手段とを備え、
第１のモードでは、前記接続手段のみによって前記情報処理装置との接続を行い、
第２のモードでは、前記接続手段又は前記他の接続手段によって前記情報処理装置との接続を行い、
前記第１のモードにおいて、前記応答要求手段が前記応答を要求した後、前記情報処理装置から前記応答を受信するまでの時間を第１の待機時間とし、
前記第２のモードにおいて、前記応答要求手段が前記応答を要求した後、前記接続手段から前記他の接続手段に切り替えるまでの時間を第２の待機時間とし、
前記第２の待機時間が前記第１の待機時間より短いことを特徴とする通信装置。
【請求項２】
前記他の情報処理装置はサーバ装置であることを特徴とする請求項１記載の通信装置。
【請求項３】
前記通信装置は複数の前記情報処理装置と通信し、
前記情報処理装置のうち前記応答を行った情報処理装置の一覧を表示部に表示することを特徴とする請求項１又は２記載の通信装置。
【請求項４】
前記一覧が前記応答を受信する度に更新される更新手段を更に備えることを特徴とする請求項３記載の通信装置。
【請求項５】
前記一覧に表示された情報処理装置のうち前記接続手段又は前記他の接続手段が接続を行う情報処理装置を指定する指定手段を更に有することを特徴とする請求項４記載の通信装置。
【請求項６】
前記更新手段は、前記指定手段が所定の時間を経過しても前記接続する情報処理装置を指定されないときは、前記一覧を更新しないことを特徴とする請求項５記載の通信装置。
【請求項７】
前記受信手段は、前記指定手段が所定の時間を経過しても前記接続する情報処理装置を指定されないときは、前記応答を受信しないことを特徴とする請求項５又は６記載の通信装置。
【請求項８】
前記接続手段又は前記他の接続手段によって接続された情報処理装置にコンテンツを送信する送信手段を更に有することを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記応答は、情報処理装置が有する機能に関する情報であることを特徴とする請求項１乃至８のいずれか１項に記載の通信装置。
【請求項１０】
前記機能に関する情報はデバイスディスクリプションであることを特徴とする請求項９記載の通信装置。
【請求項１１】
前記応答は、前記情報処理装置に要求されたＭ−ＳＥＡＲＣＨメッセージに対する応答であることを特徴とする請求項１乃至１０のいずれか１項記載の通信装置。
【請求項１２】
前記待機時間は、前記Ｍ−ＳＥＡＲＣＨメッセージを送信したときに開始することを特徴とする請求項１１記載の通信装置。
【請求項１３】
情報処理装置と通信する通信装置の制御方法において、
前記情報処理装置との接続を行う接続ステップと、
前記情報処理装置との接続を他の情報処理装置を介して行う他の接続ステップと、
前記情報処理装置に前記通信装置と接続するか否かの応答を要求する応答要求ステップと、
前記情報処理装置から前記応答を受信する受信ステップとを備え、
第１のモードでは、前記接続ステップのみによって前記情報処理装置との接続を行い、
第２のモードでは、前記接続ステップ又は前記他の接続ステップによって前記情報処理装置との接続を行い、
前記第１のモードにおいて、前記応答要求ステップが前記応答を要求した後、前記情報処理装置から前記応答を受信するまでの時間を第１の待機時間とし、
前記第２のモードにおいて、前記応答要求ステップが前記応答を要求した後、前記接続ステップから前記他の接続手段に切り替えるまでの時間を第２の待機時間とし、
前記第２の待機時間が前記第１の待機時間より短いことを特徴とする制御方法。
【請求項１４】
コンピュータを、請求項１乃至１２のいずれか１項に記載の通信装置の各手段として機能させるための、コンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及びプログラムに関し、特に、ネットワークを介してコンテンツを他の装置に送信する通信装置、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
無線通信機能を搭載するデジタルカメラに保存される画像データや動画データ等のデジタルコンテンツを他の装置との間で送受信する場合に、同一のネットワークを介して画像データ等を交換し又は共有する画像共有システムがある（例えば、特許文献１参照）。
【０００３】
また、複数の機器がインターネット上のサーバを介してコンテンツを共有するシステムも知られている（例えば特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１１８８５９号公報
【特許文献２】特開２００７−２４９８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般的に、通信速度は、特許文献１に開示されているような同一のネットワーク内で行われる通信の方が、特許文献２に開示されているようなインターネットを介する通信より速い。そのため、同一のネットワーク内で行われる通信及びインターネットを介する通信の両方の通信機能を備えた通信装置から、特定の装置へデータを送信する場合は、同一のネットワーク内で行われる通信を優先するほうが効率的である。
【０００６】
しかしながら、必ずしも特定の装置が同一ネットワーク内に存在するとは限らない。また、無線通信によるネットワークにおいて、同一のネットワーク内で行われる通信の可否を判断するためには、一定の時間を要する場合があり、必ずしも速やかに同一のネットワーク内の無線通信を開始できるとは限らない。
【０００７】
そこで、本発明は、複数の通信経路を有する通信装置において、速やかに適切な通信経路を決定することができる通信装置、通信方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の通信装置は、情報処理装置と通信する通信装置において、前記情報処理装置との接続を行う接続手段と、前記情報処理装置との接続を他の情報処理装置を介して行う他の接続手段と、前記情報処理装置に前記通信装置と接続するか否かの応答を要求する応答要求手段と、前記情報処理装置から前記応答を受信する受信手段とを備え、第１のモードでは、前記接続手段のみによって前記情報処理装置との接続を行い、第２のモードでは、前記接続手段又は前記他の接続手段によって前記情報処理装置との接続を行い、前記第１のモードにおいて、前記応答要求手段が前記応答を要求した後、前記情報処理装置から前記応答を受信するまでの時間を第１の待機時間とし、前記第２のモードにおいて、前記応答要求手段が前記応答を要求した後、前記接続手段から前記他の接続手段に切り替えるまでの時間を第２の待機時間とし、前記第２の待機時間が前記第１の待機時間より短いことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数の通信経路を有する通信装置において、速やかに適切な通信経路を決定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る通信装置を有する通信システムの構成を概略的に示すブロック図である。
【図２】図１におけるデジタルカメラの外観図である。
【図３】図２におけるデジタルカメラの内部構成を示すブロック図である。
【図４】図１におけるＰＣの内部構成を示すブロック図である。
【図５】図２における画像表示部に表示される通信メニュー画面を説明するのに用いられる図である。
【図６】図３のシステム制御部によって実行される直接通信処理のシーケンス図である。
【図７Ａ】図６のステップＳ６０１で表示される検索画面を説明するのに用いられる図である。
【図７Ｂ】図６のステップＳ６０６，Ｓ６０７で表示される接続先ＰＣ選択画面を説明するのに用いられる図である。
【図８Ａ】図６における直接送信処理をデジタルカメラ１００によって実行する手順を示すフローチャートである。
【図８Ｂ】図６における直接送信処理をデジタルカメラ１００によって実行する手順を示すフローチャートである。
【図９】図１におけるクラウドサーバによって実行されるカメラ連携設定処理の手順を示すフローチャートである。
【図１０Ａ】図９のステップＳ９０１で実行される認証コード発行要求を説明するのに用いられる図である。
【図１０Ｂ】図９のステップＳ９０２で発行される認証コードを説明するのに用いられる図である。
【図１１】図９のステップＳ９０３でＰＣからクラウドサーバに認証コードを送信するときにＰＣの表示部に表示されたカメラ連携設定画面を説明するのに用いられる図である。
【図１２】図９のステップＳ９０７でデジタルカメラ及びＰＣの識別子をクラウドサーバのデータベースに夫々関連付けて登録するときの概念を説明するのに用いられる図である。
【図１３Ａ】図３のシステム制御部によって実行されるサーバ経由送信処理前の直接送信処理の手順を示すシーケンス図である。
【図１３Ｂ】図１３ＡのステップＳ１３０２の応答が所定時間内に受け取れなかったときのサーバ経由送信処理の手順を示すシーケンス図である。
【図１３Ｃ】図１３ＡにおけるステップＳ１３０４の接続可否の問い合わせについてＰＣがクラウドサーバから接続禁止情報を受信したときの接続手順を示すシーケンス図である。
【図１４】図１３Ａにおけるサーバ経由送信処理前の直接送信処理及び図１３Ｂ、図１３Ｃにおけるサーバ経由送信処理の手順を示すフローチャートである。
【図１５】図１４のステップＳ１４１２においてサーバへ送信された画像のダウンロード処理の手順を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１２】
図１は、本発明の実施の形態に係る通信装置を有する通信システムの構成を概略的に示すブロック図である。
【００１３】
図１の通信システムは、画像処理装置の一例であるデジタルカメラ１００、情報処理装置の一例であるパーソナルコンピュータ（以下「ＰＣ」という）１３０、アクセスポイント１４０及びクラウドサーバ１５０とから構成される。アクセスポイント１４０及びクラウドサーバ１５０は、インターネット回線１６０を介して互いに接続される。また、デジタルカメラ１００及びＰＣ１３０は、アクセスポイント１４０に夫々接続される。クラウドサーバ１５０は、アクセスポイント１４０に接続されたデジタルカメラ１００及びＰＣ１３０とインターネット回線１６０を介して通信することができる。
【００１４】
画像処理装置としては、デジタルカメラ１００の他に、例えば、カメラ付携帯電話、いわゆるタブレットデバイス、ＰＣ等を採用することができる。また、情報処理装置としては、ＰＣ１３０の他に、例えば、デジタルカメラや、カメラ付携帯電話、いわゆるタブレットデバイス等を採用することができる。
【００１５】
デジタルカメラ１００は、画像データ等のコンテンツをＰＣ１３０にクラウドサーバ１５０を介することなく直接送信する直接送信機能と、クラウドサーバ１５０を経由して送信するサーバ経由送信機能との２つの機能を有する。直接送信機能は、デジタルカメラ１００とＰＣ１３０が同一のネットワークに同時に接続している場合に有効な機能である。一方、サーバ経由送信機能は、デジタルカメラ１００とＰＣ１３０が同一のネットワークに同時に接続できず且つデジタルカメラ１００とインターネット回線１６０が接続できる場合に有効な機能である。
【００１６】
一般的に、通信速度は、直接送信機能を利用した通信処理（以下、「直接通信処理」という）がサーバ経由送信機能を利用した通信処理（以下、「サーバ経由通信処理」という）よりも早い。そのため、本実施形態のデジタルカメラ１００は、サーバ経由通信処理の実行を指示された場合であっても、先に直接通信処理の可否を確認すると共に優先して直接通信処理を行うことにより、効率的な接続を可能とする。
【００１７】
図２は、図１におけるデジタルカメラ１００の外観図である。
【００１８】
図２のデジタルカメラ１００は、画像表示部２２８、モード切替スイッチ２６０、シャッターボタン２６１、操作部２７０、電源スイッチ２７２、コネクタ２１２、記録媒体スロット２０１、及び記録媒体スロットの蓋２０２を有する。
【００１９】
モード切替スイッチ２６０は、静止画記録モード、動画記録モード、再生モード等のデジタルカメラ１００の各種モードを切り替える。コネクタ２１２は、接続ケーブル２１１とデジタルカメラ１００を接続し、デジタルカメラ１００は、接続ケーブル２１１を介して外部機器と接続する。記録媒体スロット２０１は、デジタルカメラ１００と通信可能な記録媒体２００を格納する。
【００２０】
操作部２７０は、消去ボタン、メニューボタン、ＳＥＴボタン、十字に配置された４方向ボタン（上ボタン、下ボタン、右ボタン、左ボタン）２７３を含み、ユーザからの各種操作を受け付ける。ユーザは、操作部２７０によらず画像表示部２２８の画面上に設けられたタッチパネルを介して各種操作を行うこともできる。
【００２１】
図３は、図２におけるデジタルカメラ１００の内部構成を示すブロック図である。
【００２２】
マイク３１０から出力された音声信号は、アンプ等で構成される音声制御部３１１を介して入力されたＡ／Ｄ変換器３２３にてデジタル信号に変換された後、メモリ制御部３１５を介してメモリ３３２に格納される。
【００２３】
音声制御部３１１は、記録媒体２００に格納されている音声データをメモリ３３２に格納した後、当該音声データをＤ／Ａ変換器３１３によってアナログ信号に変換し、スピーカ３３９を駆動して音声出力する。撮像部３２２は、光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等で構成される。
【００２４】
Ａ／Ｄ変換器３２３は、アナログ信号をデジタル信号に変換することができ、撮像部３２２から出力されるアナログ信号をデジタル信号に変換する場合や、音声制御部３１１から出力されるアナログ信号をデジタル信号に変換する場合に用いられる。Ａ／Ｄ変換器３２３の出力データは、画像処理部３２４、メモリ制御部３１５を順次介して、又はメモリ制御部３１５を直接介して、メモリ３３２に記憶される。
【００２５】
タイミング発生部３１２は、音声制御部３１１、Ｄ／Ａ変換器３１３、撮像部３２２、Ａ／Ｄ変換器３２３にクロック信号や制御信号を供給しており、メモリ制御部３１５及びシステム制御部３５０によって制御されている。Ｄ／Ａ変換器３１３は、メモリ３３２に格納された画像表示用のデータをアナログ信号に変換して画像表示部２２８に供給する。
【００２６】
圧縮／伸張部３１６は、適応離散コサイン変換（ＡＤＣＴ）等によりメモリ３３２に格納された撮像画像及び圧縮画像に対して、夫々圧縮処理及び伸張処理を行い、処理済みの画像データをメモリ３３２に格納する。メモリ３３２に格納した画像データは、システム制御部３５０においてファイル化され、インターフェース３１８を介して記録媒体２００に格納される。
【００２７】
インターフェース３１８は、デジタルカメラ１００とメモリカードやハードディスク等の記録媒体２００とのインターフェースである。デジタルカメラ１００は、画像データをＤＣＦ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  ｆｏｒ  Ｃａｍｅｒａ  Ｆｉｌｅ  ｓｙｓｔｅｍ）の規格に従って、記録媒体２００に格納する。
【００２８】
画像処理部３２４は、Ａ／Ｄ変換器３２３からのデータ、又はメモリ制御部３１５からのデータに対して所定の画素補間、縮小といったリサイズ処理や色変換処理を行う。また、撮像して得た画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部３５０が露光制御、測距制御を行う。これにより、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＥＦ（フラッシュプリ発光）処理が行われる。さらに、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてＴＴＬ方式のＡＷＢ（オートホワイトバランス）処理も行っている。
【００２９】
画像表示部２２８は、ＬＣＤ等の表示器上に、Ｄ／Ａ変換器３１３からのアナログ信号に応じた表示を行う。例えば、メモリ３３２に格納されている表示用の画像データはＤ／Ａ変換器３１３を介して画像表示部２２８に表示される。画像表示部２２８は必ずしもデジタルカメラ１００が有する必要はなく、デジタルカメラ１００は内部又は外部の表示装置と接続することができ、表示装置の表示を制御する表示制御機能を少なくとも有していれば足りる。電源部３３０は、アルカリ電池やリチウム電池等の一次電池やＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプター等からなる。
【００３０】
メモリ３３２は、撮像部３２２から出力されるアナログ信号をデジタル信号に変換して得られる画像データ、画像表示部２２８に表示するための画像データなどを格納する。また、メモリ３３２は、マイク３１０において録音された音声データ、静止画像、動画画像、及び画像ファイルを構成する場合のファイルヘッダを格納するためにも用いられる。さらに、メモリ３３２は、画像表示部２２８に表示されるデータを一時的に格納し（ビデオメモリ）、所定枚数の静止画像や所定時間の動画画像及び音声を格納するのに十分な記憶容量を備えている。
【００３１】
コネクタ３３３，３３４は、電源部３３０と電源制御部３８０とを接続する。ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）３４０は、日付及び時刻を計時する。ＲＴＣ３４０は、電源制御部３８０とは別に内部に電源部を保持しており、電源部３３０による電気の供給が途絶えても、計時状態を続ける。また、ＲＴＣ３４０が計時した日時を取得したシステム制御部３５０はシステムタイマを設定し、タイマ制御を実行する。
【００３２】
コネクタ３３５，３３６は、記録媒体２００とインターフェース３１８とを接続するためのコネクタである。記録媒体着脱検知部３９６は、コネクタ３３５，３３６に記録媒体２００が装着されているか否かを検知する。
【００３３】
システムメモリ３５２は、ＲＡＭであり、システム制御部３５０の動作用の定数、変数、不揮発性メモリ３５６から読み出したプログラム等を実行する。不揮発性メモリ３５６は電気的に消去・記録可能なメモリであり、例えばＥＥＰＲＯＭ等が用いられる。不揮発性メモリ３５６には、システム制御部３５０の動作用の定数、後述する各種フローチャートを実行するためのプログラム等が記憶される。
【００３４】
システム制御部３５０は、デジタルカメラ１００全体を制御する。システム制御部３５０は、不揮発性メモリ３５６に格納されたプログラムを実行することで、後述する本発明の実施の形態に係る各処理を行う。
【００３５】
モード切替スイッチ２６０、第１シャッタースイッチ３６２、第２シャッタースイッチ３６４、及び操作部２７０は、システム制御部３５０に各種の動作指示を入力するための操作手段である。モード切替スイッチ２６０は、システム制御部３５０の動作モードを静止画記録モード、動画記録モード、再生モード等のいずれかに切り替えることができる。
【００３６】
第１シャッタースイッチ３６２は、デジタルカメラ１００に設けられたシャッターボタン２６１の押下を中途で中断した状態（いわゆる半押し状態）で第１シャッタースイッチ信号ＳＷ１を発生する。第２シャッタースイッチ３６４は、シャッターボタン２６１を完全に押下した状態（いわゆる全押し）で第２シャッタースイッチ信号ＳＷ２を発生する。
【００３７】
システム制御部３５０は、第１シャッタースイッチ信号ＳＷ１の発生を検知することに応じて、ＡＦ処理、ＡＥ処理、ＡＷＢ処理、ＥＦ処理等の動作を開始する。また、システム制御部３５０は、第２シャッタースイッチ信号ＳＷ２の発生を検知することに応じて、撮像部３２２からの信号読み出しから記録媒体２００に画像データを格納するまでの一連の撮像処理の動作を開始する。
【００３８】
操作部２７０は、メニューボタン、終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、及び属性変更ボタン等の各種機能ボタンを備える。システム制御部３５０は、操作部２７０を構成する各ボタンが操作されたことを検知することによって、ボタンに応じた機能を実行する。例えば、メニューボタンが押されると各種設定が可能なメニュー画面を画像表示部２２８に表示する。ユーザは、４方向ボタンやＳＥＴボタンを用いて各種設定を行うことができる。
【００３９】
電源スイッチ２７２は、電源オン、電源オフの操作を行うスイッチである。電源制御部３８０は、電池検出回路、ＤＣ−ＤＣコンバータ、通電するブロックを切り替えるスイッチ回路等により構成される。電源制御部３８０は、電池の装着の有無、電池の種類、電池残量の検出を行い、当該検出結果及びシステム制御部３５０の指示に基づいてＤＣ−ＤＣコンバータを制御し、必要な電圧を必要な期間、記録媒体２００を含む各部へ供給する。
【００４０】
バリア３０２は、撮像部３２２を覆うことにより、レンズ３０３、絞り機能を備えるシャッター３０１、撮像部３２２を含む撮像系の汚れや破損を防止する。
【００４１】
通信部３２０は、外部装置と接続するためのインターフェースである。本実施の形態では、通信部３２０は、外部装置とＩＥＥＥ８０２．１１の規格に従った、いわゆる無線ＬＡＮで通信するためのインターフェースである。ただし、通信方式は無線ＬＡＮに限定されるものではない。通信方式としては、例えば赤外通信方式や、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉｒｅｌｅｓｓＵＳＢ等を採用してもよい。本実施形態のデジタルカメラ１００は、システム制御部３５０が通信部３２０を制御することにより、無線通信を介して生成した画像データ等のデータを、外部装置と送受信することができる。
【００４２】
コネクタ２１２は、通信部３２０を介してデジタルカメラ１００を他の機器と接続するためのアンテナを含む。記録媒体２００は、メモリカードやハードディスク等であって、半導体メモリや磁気ディスク等から構成される記録部３１９を有し、コネクタ３３５，３３６、及びインターフェース３３７を介してデジタルカメラ１００と接続する。
【００４３】
図４は、図１におけるＰＣ１３０の内部構成を示すブロック図である。
【００４４】
図４のＰＣ１３０は、表示部４０１、操作部４０２、ＣＰＵ４０３、一次記憶装置４０４、二次記憶装置４０５、及び通信装置４０６を有する。
【００４５】
表示部４０１は、ＬＣＤ等のディスプレイ装置からなる。ＰＣ１３０は、表示部４０１を必ずしも有している必要はなく、表示部４０１の表示を制御する表示制御機能を有していればよい。操作部４０２は、キーボード、マウス、及びタッチパネルからなる。ＣＰＵ４０３は、ＰＣ１３０全体の制御を行う。
【００４６】
一次記憶装置４０４及び二次記憶装置４０５は、外部記憶媒体からのデータの読み出し及び外部記憶媒体へのデータの書き込みを行う装置である。外部記憶媒体としては、例えばハードディスクドライブ、ＤＶＤ−ＲＷドライブ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＡＭ等の光ディスク、フレキシブルディスク、ＭＯ等の磁気ディスク、フラッシュメモリ等の不揮発性メモリ等を採用することができる。
【００４７】
通信装置４０６は、外部装置との通信を行う装置であって、ＰＣ１３０は、通信装置４０６を介して、デジタルカメラや携帯電話等外部デバイスとのデータの送受信が可能となる。
【００４８】
クラウドサーバ１５０は、内部に記録されるプログラム及びそのプログラムによる実行態様を除いて、ＰＣ１３０と同様の構成を有する。
【００４９】
図５は、図２における画像表示部２２８に表示される通信メニュー画面５００を説明するのに用いられる図である。
【００５０】
図５の通信メニュー画面５００は、デジタルカメラ１００における操作部２７０を操作して画像表示部２２８に表示される。通信メニュー画面５００には、直接送信機能を実行するための直接送信機能実行ボタン５０１、及びサーバ経由送信機能を実行するためのサーバ経由送信機能実行ボタン５０２が表示されている。
【００５１】
図３のシステム制御部３５０は、直接送信機能実行ボタン５０１が押下されたことを検知した場合は、後述する図６の直接送信処理を開始する。一方、サーバ経由送信機能実行ボタン５０２が押下されたことを検知した場合は、後述する図１３Ａのサーバ経由送信処理前の直接送信処理を開始する。ユーザは、これらのボタンの選択によって、所望の画像送信方式を選択することができる。
【００５２】
［直接送信処理］
直接送信処理について説明する。
【００５３】
図６は、図３のシステム制御部３５０によって実行される直接通信処理のシーケンス図である。
【００５４】
図６において、デジタルカメラ１００、デジタルカメラ１００に応答するためのアプリケーションが既にインストールされ且つ実行されているＰＣ１３０，１３２は同一のネットワーク内で接続されている。デジタルカメラ１００及びＰＣ１３０，１３２は、夫々ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に対応している。
【００５５】
本実施形態では、ステップＳ６０１は、図５における直接送信機能実行ボタン５０１が選択されたことに応じて開始される。
【００５６】
ステップＳ６０１では、デジタルカメラ１００が同一のネットワーク内に接続されている機器を検索する。検索中は、その旨をユーザに知らせるため、デジタルカメラ１００の画像表示部２２８に検索中であることを示す検索画面を表示する。図７Ａは、検索画面の一例である。
【００５７】
また、本ステップＳ６０１では、システム制御部３５０がＵＰｎＰにおいて他機を探す際に用いられるプロトコルであるＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）に従って、ネットワーク内の機器を検索する。ＳＳＤＰメッセージはＸＭＬ(Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌｕｎｇｕａｇｅ)形式で記述される。
【００５８】
具体的には、まず、デジタルカメラ１００は、ＳＳＤＰで定義されたＭ−ＳＥＡＲＣＨ（ｓｓｄｐ：ｄｉｓｃｏｖｅｒｙ）メッセージ（応答要求）を送信する。Ｍ−ＳＥＡＲＣＨメッセージは、同一のネットワークに接続されているすべての装置、すなわちＰＣ１３０，１３２の両方に同時に送信される。
【００５９】
ステップＳ６０２，Ｓ６０３では、Ｍ−ＳＥＡＲＣＨメッセージを受信したＰＣ１３０，１３２の夫々がデジタルカメラ１００に応答メッセージを送信する。デジタルカメラ１００は、応答メッセージを受信することによって同一のネットワークに接続されている他の機器の存在を知ることができる。
【００６０】
ステップＳ６０４，Ｓ６０５では、同一のネットワーク内にＰＣ１３０，１３２が接続されていることを把握したデジタルカメラ１００は、ＰＣ１３０，１３２のデバイスディスクリプションを取得するためにＨｔｔｐで規定されるｇｅｔコマンドを送信する。本実施形態におけるデバイスディスクリプションとは、ＰＣが対応している機能が記述されるＸＭＬファイルである。
【００６１】
ステップＳ６０６，Ｓ６０７では、ｇｅｔコマンドを受信したＰＣ１３０，１３２は、夫々ＰＣ１３０，１３２の名前が記載されたデバイスディスクリプションをデジタルカメラ１００に送信する。このデバイスディスクリプションに記載されるＰＣの名前は、例えばＰＣ１３０は「ＰＣ１」を、ＰＣ１３２は「ＰＣ２」である。
【００６２】
ＰＣ１３０，１３２が同一のネットワーク内に存在していないか、又はノイズの影響等により応答メッセージ及びデバイスディスクリプションの送信が困難であるにも関わらず応答を長時間に亘って待ち続けることは、無駄な電力消費に繋がる。
【００６３】
したがって、一般的には、応答を受信するまでの時間的制限（待機時間）を設け、ある時点（例えば応答を要求する信号を発信した時点）を開始時間として所定の時間が経過した場合には処理を中断する、いわゆるタイムアウト処理を実行する。本発明の実施の形態では、Ｍ−ＳＥＡＲＣＨメッセージを送信したことを開始時点とし、デバイスディスクリプションの受信が行われるまでの時間を計測し、所定時間（例えば１２０秒）が過ぎた場合は、直接通信処理を終了する。
【００６４】
ＰＣ１３０，１３２のデバイスディスクリプションを受信したデジタルカメラ１００は、ステップＳ６０８において、画像表示部２２８に接続するＰＣの候補を列挙した接続先ＰＣ選択画面を表示する。ここでは、例えば、図７Ｂのような画面が表示される。列挙される接続先の候補の表示には、デバイスディスクリプションに記載されている名前を利用する。ユーザは表示された候補を選択することで、接続すべきＰＣを指定することができる。図７Ｂは、ユーザがＰＣ１を接続先として指定した例である。
【００６５】
ステップ６０８で接続先の選択後、ステップＳ６０９では、システム制御部３５０は、いわゆるＡｄｖｅｒｔｉｓｅｍｅｎｔと呼ばれる処理を実行する。具体的には、システム制御部３５０は、ネットワークにデジタルカメラ１００が存在することを伝達するＮＯＴＩＦＹ（ｓｓｄｐ：ａｌｉｖｅ）メッセージを同一のネットワークに接続されているすべての装置であるＰＣ１３０，１３２に送信する。
【００６６】
ステップＳ６１０、Ｓ６１１では、ＰＣ１３０，１３２は、ＮＯＴＩＦＹメッセージに対して、デジタルカメラ１００の装置情報を取得するためにＨｔｔｐのｇｅｔコマンドを送信する。本ステップでのＰＣ１３０，１３２からの応答についても、この応答をデジタルカメラ１００が受け付ける時間は、デジタルカメラ１００におけるタイムアウト処理によって制限される。ここでは、制限時間内にデジタルカメラ１００が各ＰＣからの応答を受信した場合を例に挙げて説明する。
【００６７】
ＰＣ１３０及びＰＣ１３２からｇｅｔコマンドを受信すると、デジタルカメラ１００はステップＳ６１２において、ステップＳ６０８で選択されたＰＣ１であるＰＣ１３０にのみデバイスディスクリプションを返信し、ＰＣ１３２のｇｅｔコマンドに対しては応答しない。これにより、デジタルカメラ１００とＰＣ１３０の接続を確立する。
【００６８】
ステップＳ６１３では、デジタルカメラ１００は、画像送信処理を行う。具体的には、デジタルカメラ１００に格納される画像データを選択し、選択した画像データをＰＣ１３０に送信する。ここでは、ユーザからの指示に基づいて送信する画像データを選択してもよいし、予め送信する対象としての基準に沿った画像データを選択してもよい。
【００６９】
続いて、直接送信処理の場合のデジタルカメラ１００の動作について図８Ａおよび図８Ｂのフローチャートを用いて詳述する。
【００７０】
図８Ａ及び図８Ｂは、図６における直接送信処理をデジタルカメラ１００によって実行する手順を示すフローチャートである。
【００７１】
図８Ａ及び図８Ｂの処理は、システム制御部３５０が、不揮発性メモリ３５６に格納されているプログラムに従ってデジタルカメラ１００の各部を制御することにより実現される。また、図８Ａの処理は、図５における直接送信機能実行ボタン５０１が選択されたことに応じて開始される。
【００７２】
まず、ステップＳ８０１で、システム制御部３５０が、同一のネットワーク内に接続されている機器（デバイス）にＭ−ＳＥＡＲＣＨ（ｓｓｄｐ：ｄｉｓｃｏｖｅｒｙ）メッセージを送信する。Ｍ−ＳＥＡＲＣＨメッセージのヘッダにはタイムアウト時間を記述するＭＸ項目がある。このＭＸ項目の値は、Ｍ−ＳＥＡＲＣＨメッセージに対する応答を待つ時間を示す。ここでは、ユーザは、直接送信機能実行ボタン５０１を選択することで、本フローチャートを開始している。つまり、ユーザは直接、送信先であるＰＣに画像を送信することを目的としている。従って、この、ＭＸ項目にはＭ−ＳＥＡＲＣＨメッセージに対する応答が十分に受信できる程度の長さの時間を設定することが好ましい。本実施の形態では、ＭＸ項目には１２０秒を記述している。本ステップの１２０秒という待機時間は、第１の待機時間の一例である。
【００７３】
また、この項目に記述された時間は、デジタルカメラ１００が応答を待つ時間に利用すると共に、ＰＣが応答（図６のステップＳ６０２やステップＳ６０３で送信される応答）を送信し得る時間としても利用される。ＰＣの処理の負荷等により、応答の送信が滞ったまま、この項目に記述された時間が経過してしまった場合には、ＰＣは応答を送信しない。
【００７４】
続くステップＳ８０２では、システム制御部３５０は、ステップＳ８０１でＭ−ＳＥＡＲＣＨメッセージを送信してから所定時間が経過したか否かを判別する。
【００７５】
システム制御部３５０が、所定時間が経過していないと判別した場合、ステップＳ８０３に進む。
【００７６】
ステップＳ８０３では、システム制御部３５０は、Ｍ−ＳＥＡＲＣＨメッセージに対する応答を受信したか否かを判別する。システム制御部３５０が応答を受信したと判別した場合は、処理はステップＳ８０４に進む。ステップＳ８０４では、システム制御部３５０は、応答を返した機器に対してＨｔｔｐのｇｅｔコマンドを送信する。その後、処理はステップＳ８０５に進む。一方、ステップＳ８０３でシステム制御部３５０が応答を受信していないと判別した場合は、処理はステップＳ８０４を経ることなく、ステップＳ８０５に進む。
【００７７】
ステップＳ８０５では、システム制御部３５０は、ステップＳ８０４で送信したＨｔｔｐのｇｅｔコマンドに応答してＰＣから送信されるデバイスディスクリプションを受信したか否かを判別する。システム制御部３５０が、デバイスディスクリプションを受信したと判別した場合は、ステップＳ８０６に進む。ステップＳ８０６では、システム制御部３５０は、受信したデバイスディスクリプションに基づき、接続先デバイスの一覧画面を作成／更新する。
【００７８】
ステップＳ８０６で作成／更新されるデバイス一覧画面では、ステップＳ８０５で受信したデバイスディスクリプションを受信した順番に機器名が表示される。
【００７９】
続いて、ステップＳ８０７では、システム制御部３５０は、接続先の指定を操作部２７０を介して受け付けたか否かを判別する。ステップＳ８０７でシステム制御部３５０が接続先を指定されていないと判別した場合は、ステップＳ８０２に戻り、所定時間が経過するまでステップＳ８０２〜ステップＳ８０７の処理を繰り返す。なお、ステップＳ８０５でデバイスディスクリプションを受信していなければ、検索された機器の名前をステップＳ８０６で表示することもない。この場合は、ステップＳ８０７ではＮＯと判別され、ステップＳ８０２〜ステップＳ８０７の処理が繰り返される。ステップＳ８０６の処理が繰り返し実行される度に、デバイス一覧画面は更新される。
【００８０】
一方、ステップＳ８０７でシステム制御部３５０が、接続先を指定されたと判別した場合、システム制御部３５０は画像送信処理（図８Ｂ）を実行する。
【００８１】
図８Ｂの画像送信処理は、ステップＳ８０７でシステム制御部３５０が、接続先を指定されたと判別したことに応じて開始される。
【００８２】
ステップＳ８０９では、システム制御部３５０は、ＮＯＴＩＦＹ（ｓｓｄｐ：ａｌｉｖｅ）メッセージを同一のネットワーク内のすべてのデバイスに送信するＡｄｖｅｒｔｉｓｅｍｅｎｔを行う。
【００８３】
ＮＯＴＩＦＹメッセージのヘッダにはタイムアウト時間を記述するＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目がある。このＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目の値は、ＮＯＴＩＦＹメッセージに対する応答時間を示す。すなわち、ＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目はＭ−ＳＥＡＲＣＨメッセージのＭＸ項目に相当する。ゆえに、この項目の値は、やはりＮＯＴＩＦＹメッセージに対するデバイスの応答が十分に受信できる程度の長さの時間を設定する。本実施の形態では、ＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目は１２０秒を記述している。また、この項目の時間も、デジタルカメラ１００が応答を待機する時間に利用されると共に、ＰＣ１３０が、応答（図６のステップＳ６１０で送信されるｇｅｔコマンド）を送信する時間である。
【００８４】
ステップＳ８１０では、システム制御部３５０は、ステップＳ８０９でＮＯＴＩＦＹ（ｓｓｄｐ：ａｌｉｖｅ）メッセージを送信してから所定時間が経過したか否かを判別する。この所定時間とはＳ８０９でＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目に記述した時間（ここでは１２０秒）である。システム制御部３５０がＳ８１０で所定時間が経過したと判別した場合、処理を終了する。一方、所定時間が経過していないと判別した場合、処理はステップＳ８１１に進む。
【００８５】
ステップＳ８１１では、システム制御部３５０は、ステップＳ８０７で接続先として指定されたデバイスからＨｔｔｐのｇｅｔコマンドを受信したか否かを判別する。このｇｅｔコマンドは、図６のステップＳ６１０で送信されるｇｅｔコマンドに相当する。
【００８６】
システム制御部３５０がＳ８１１でｇｅｔコマンドを受信していないと判別した場合、処理はＳ８１０に戻り、ｇｅｔコマンドを待つ。一方、システム制御部３５０がＳ８１１でｇｅｔコマンドを受信したと判別した場合、処理はステップ８１２に進む。
【００８７】
ステップＳ８１２では、システム制御部３５０は、ステップＳ８０７で接続先として指定されたＰＣに対して、デジタルカメラ１００のデバイスディスクリプションを送信する。
【００８８】
その後、ステップＳ８１３では、システム制御部３５０は、画像を送信する。以上のステップＳ８１２、Ｓ８１３は図６のステップＳ６１２、Ｓ６１３に相当する処理である。
【００８９】
一方、ステップＳ８０２で、システム制御部３５０が、ステップＳ８０１でＭ−ＳＥＡＲＣＨメッセージを送信してから所定時間が経過したと判別した場合はステップＳ８０８に進む。
【００９０】
ステップＳ８０８では、システム制御部３５０は、既にデバイスディスクリプションを受信済みであるか否かを判別する。言い換えれば、システム制御部３５０は、ステップＳ８０１で送信したＭ−ＳＥＡＲＣＨメッセージに対して応答したデバイスが存在するか否かを判別する。Ｍ−ＳＥＡＲＣＨメッセージに対して応答したデバイスがあると判別した場合、処理はステップＳ８０７に進み、ユーザからの接続先の指定を受け付ける。
【００９１】
ここで、Ｍ−ＳＥＡＲＣＨメッセージを送信してから所定時間が経過した場合、且つＭ−ＳＥＡＲＣＨメッセージに対して応答したデバイスがある場合とは、例えば、ユーザが接続するデバイスを決めかねている場合が考えられる。特に、同一のネットワーク内に多数のＰＣが存在することによって接続先の選択肢が多い場合に生じやすいと考えられる。この場合には、既に所定の時間が経過しているため、他機からの応答はないものとして受け付けない。それに伴い、一覧画面の更新も行わない。すなわち、ステップＳ８０２、ステップＳ８０８、ステップＳ８０７の処理を順次繰り返すことになる。
【００９２】
一方、ステップＳ８０８にてシステム制御部３５０が、Ｍ−ＳＥＡＲＣＨメッセージに対して応答したデバイスがないと判別した場合、本処理を終了する。
【００９３】
以上説明したように、デジタルカメラ１００からＰＣ１３０に直接画像を送信する場合に、確実にＰＣと接続できるようにするため、デジタルカメラ１００はＰＣ１３０の応答を受信できる程度に十分な時間待機する。
【００９４】
［サーバ経由送信処理］
続いて、サーバ経由送信処理について説明する。
【００９５】
まず、サーバ経由送信処理の説明に先立って、カメラとサーバとを連携した状態にするための連携設定の手順について説明する。
【００９６】
図９は、図１におけるクラウドサーバ１５０によって実行されるカメラ連携設定処理の手順を示すフローチャートである。
【００９７】
図９のカメラ連携設定処理は、連携するデジタルカメラ１００からの認証コードの発行要求を受け付けることに応じて開始される。
【００９８】
図９のカメラ連携設定処理は、後述するサーバ経由送信処理前の直接送信処理及びサーバ経由送信処理（図１３Ａ〜図１４）を行うための準備処理である。本処理は、連携するデジタルカメラ１００からの認証コードの発行要求をクラウドサーバ１５０が受け付けることに応じて開始される。認証コードの発行要求は、例えば図１０Ａのような画面をデジタルカメラ１００の画像表示部２２８に表示し、ユーザが操作部２７０を操作して「認証コード発行」のボタンを選択することで、デジタルカメラ１００からクラウドサーバ１５０へ送信される。
【００９９】
ステップＳ９０１では、クラウドサーバ１５０は、デジタルカメラ１００からの認証コード発行要求に基づいて認証コードを発行する。発行される認証コードは、デジタルカメラ１００を特定できる固有のものであればよい。例えば、文字列、数列、又はこれらの組み合わせが用いられる。
【０１００】
ステップＳ９０２では、クラウドサーバ１５０は、発行した認証コードをデジタルカメラ１００に送信する。デジタルカメラ１００では、受信した認証コードを画像表示部２２８に表示する（図１０Ｂ）。デジタルカメラ１００は、例えば、発行された認証コード「ａｂｃｄｅｆ」を画像表示部２２８に表示させると共に、使用機器の設定時に当該認証コードを入力する説明を表示するよう制御する。これに対し、ユーザは、デジタルカメラ１００の画像表示部２２８に認証コードが表示されている間に認証コードをＰＣ１３０に入力し、ＰＣ１３０は、入力された認証コードをクラウドサーバ１５０に送信する。具体的には、ＰＣ１３０のブラウザを起動し、クラウドサーバ１５０に保存されているカメラとの関連付けを行うための画面、例えば、図１１のような画面を表示させる。図１１の画面では、デジタルカメラ１００の画像表示部２２８に表示されている認証コードの入力を促す。デジタルカメラ１００のユーザであり、且つＰＣ１３０のユーザが、図１０Ｂの画面に表示されている認証コードを図１１の認証コード入力欄に入力した状態でＯＫボタンを選択すると、入力した認証コードがクラウドサーバ１５０に送信される。
【０１０１】
ステップＳ９０３では、クラウドサーバ１５０は、ＰＣ１３０から認証コードを受信する。ステップＳ９０４では、クラウドサーバ１５０は、ステップＳ９０１で発行した認証コードとステップＳ９０３で受信した認証コードを比較し、認証コードが一致していると判別された場合、処理はステップＳ９０５に進む一方、認証コードが一致していないと判別された場合、本処理は終了する。
【０１０２】
ステップＳ９０５では、クラウドサーバ１５０は、デジタルカメラ１００の識別子を取得し、さらにステップＳ９０６にてＰＣ１３０の識別子を取得する。これらの識別子は、デジタルカメラ１００、ＰＣ１３０が夫々発行したものであって、デジタルカメラ１００及びＰＣ１３０を夫々特定できる固有のものであればよい。例えばこれらの識別子は、独自に生成した乱数、あるいはＭＡＣアドレス、シリアルナンバーなどから生成した文字列、数列、又はこれらの組み合わせが用いられる。
【０１０３】
ステップＳ９０７では、クラウドサーバ１５０は、ステップＳ９０５及びステップＳ９０６で取得したデジタルカメラ１００及びＰＣ１３０の識別子を夫々クラウドサーバ１５０のデータベースに互いに関連付けて登録し、その後本処理を終了する。ここで、前述のデータベースについて、概念図を用いて説明する。
【０１０４】
図１２は、図９のステップＳ９０７でデジタルカメラ１００及びＰＣ１３０の識別子をクラウドサーバのデータベースに夫々関連付けて登録するときの概念を説明するのに用いられる図である。
【０１０５】
図１２の概念図では、カメラの識別子として「１２３４５６」が、ＰＣの識別子として「３４５６７８９」が関連付けられている。
【０１０６】
本処理により、クラウドサーバ１５０にて、デジタルカメラ１００とＰＣ１３０との関連付けが完了し、サーバ経由送信処理を行う準備が整う。
【０１０７】
続いて、サーバ経由送信処理について、デジタルカメラ１００が相手機器に接続するまでの処理を中心に説明する。
【０１０８】
図１３Ａは、図３のシステム制御部３５０によって実行されるサーバ経由送信処理前の直接送信処理の手順を示すシーケンス図である。
【０１０９】
図１３Ａの処理は、図５におけるサーバ経由送信機能実行ボタン５０２を押下することによって開始される。
【０１１０】
図１３Ａにおいて、ステップＳ１３０１では、デジタルカメラ１００がＮＯＴＩＦＹ（ｓｓｄｐ：ａｌｉｖｅ）メッセージを同一のネットワーク内に接続されているすべての機器に送信するＡｄｖｅｒｔｉｓｅｍｅｎｔを行う。
【０１１１】
ステップＳ１３０２では、ＮＯＴＩＦＹメッセージを受信したＰＣ１３０がデジタルカメラ１００のデバイスディスクリプションを取得するためにＨｔｔｐのｇｅｔコマンドをデジタルカメラ１００に送信する。
【０１１２】
ステップＳ１３０３では、デジタルカメラ１００がＮＯＴＩＦＹメッセージを送信してから所定の時間が経過するまでにｇｅｔコマンドを受信すると、デジタルカメラ１００のデバイスディスクリプションをＸＭＬ形式でＰＣ１３０へ返信する。当該デバイスディスクリプションは、図９のステップＳ９０５で詳述したデジタルカメラ１００の識別子を含む。
【０１１３】
ステップＳ１３０４では、デバイスディスクリプションを取得したＰＣ１３０がクラウドサーバ１５０に対してデジタルカメラ１００の識別子及びＰＣ１３０の識別子を送信すると共に、デジタルカメラ１００との接続可否を問い合わせる。
【０１１４】
デジタルカメラ１００の識別子及びＰＣ１３０の識別子を受信したクラウドサーバ１５０は、図１１のデータベースを参照することによって送信されたデジタルカメラ１００及びＰＣ１３０の夫々の識別子が関連付けられているかを判別する。
【０１１５】
ステップＳ１３０５では、送信されたデジタルカメラ１００及びＰＣ１３０の夫々の識別子が関連付けられているときに、デジタルカメラ１００との接続を許可する情報（接続許可情報）をＰＣ１３０に送信する。
【０１１６】
ステップＳ１３０６は、ステップＳ１３０４及びステップＳ１３０５と並行して実行され、デジタルカメラ１００がＭ−ＳＥＡＲＣＨ（ｓｓｄｐ：ｄｉｓｃｏｖｅｒｙ）メッセージを同一のネットワーク内に接続されているすべての機器に送信する。
【０１１７】
ステップＳ１３０５において、ＰＣ１３０がデジタルカメラ１００との接続を禁止する情報（接続禁止情報）を受信したときは、ステップＳ１３０６のＭ−ＳＥＡＲＣＨメッセージに対して応答しない。
【０１１８】
ステップＳ１３０７では、Ｍ−ＳＥＡＲＣＨメッセージ及びクラウドサーバ１５０からの接続許可情報を受信したＰＣ１３０が、デジタルカメラ１００によるＭ−ＳＥＡＲＣＨメッセージの送信から所定の時間が経過するまでにデジタルカメラ１００に応答する。ステップＳ１３０８では、デジタルカメラ１００がＨｔｔｐのｇｅｔコマンドをＰＣ１３０に送信する。
【０１１９】
ステップＳ１３０９では、ＰＣ１３０がデバイスディスクリプションをＸＭＬ形式でデジタルカメラ１００に送信する。これにより、システム制御部３５０は、画像の最終的な送信先であるＰＣ１３０が同一のネットワーク内に存在することを認識できる。ここで、送信先であるＰＣの数は複数であってもよく、この場合、図７Ｂのような接続先ＰＣ選択画面が表示されてもよい。さらに、当該選択画面は、ステップＳ８０６と同様に所定の時間が経過するまでは都度更新されてもよい。所定の時間が経過した場合は、選択画面の更新及び接続先ＰＣからの応答が中止される。
【０１２０】
ステップＳ１３１０では、画像をクラウドサーバ１５０ではなく、ＰＣ１３０に直接送信する画像送信処理を行う。
【０１２１】
図１３Ｂは、図１３ＡのステップＳ１３０２の応答が所定時間内に受け取れなかったときのサーバ経由送信処理の手順を示すシーケンス図である。
【０１２２】
例えば、ＰＣ１３０の電源が入っていない或いはＰＣ１３０が同一のネットワーク内に存在していない等の場合には、デジタルカメラ１００によるＮＯＴＩＦＹメッセージの送信から所定の時間が経過してもＰＣ１３０から応答を得ることはない。そのため、デジタルカメラ１００は、ステップＳ１３０２において、ＰＣ１３０との通信が不可能であると判別する。
【０１２３】
このような場合、ステップＳ１３１０−ｂでは、デジタルカメラ１００は、ＰＣ１３０と接続することなく、クラウドサーバ１５０と接続して、クラウドサーバ１５０に画像を送信するための処理を行う。
【０１２４】
図１３Ｃは、図１３ＡにおけるステップＳ１３０４の接続可否の問い合わせについてＰＣ１３０がクラウドサーバ１５０から接続禁止情報を受信したときの接続手順を示すシーケンス図である。
【０１２５】
例えば、ＰＣ１３０がデジタルカメラ１００の識別子と関連付けられていない等の場合、クラウドサーバ１５０はステップＳ１３０５−ｃにおいて、ＰＣ１３０に対して接続禁止情報を送信する。
【０１２６】
接続禁止情報を受信したＰＣ１３０は、ステップＳ１３０６におけるデジタルカメラ１００のＭ−ＳＥＡＲＣＨメッセージに対して応答しない。そのため、デジタルカメラ１００は、Ｍ−ＳＥＡＲＣＨメッセージを送信してから所定時間が経過しても応答が無いことを確認した後に、クラウドサーバ１５０と接続し、且つ画像を送信する処理を実行することになる。図１３Ｃは、ステップＳ１３０６において、デジタルカメラ１００が送信したＭ−ＳＥＡＲＣＨメッセージに対するＰＣ１３０の応答をデジタルカメラ１００が受信できない場合の一例である。この他、Ｍ−ＳＥＡＲＣＨメッセージに対するＰＣ１３０の応答が受信できない場合として、例えば、ステップＳ１３０３からステップＳ１３０６までの間に、ＰＣ１３０の電源が切れた場合や同一ネットワークの通信範囲から外れた場合等が考えられる。この場合も前述と同様に、ステップＳ１３０６において、デジタルカメラ１００が送信したＭ−ＳＥＡＲＣＨメッセージに対するＰＣ１３０の応答をデジタルカメラ１００が所定時間経過しても受信できないため、ステップＳ１３１０−ｃにてクラウドサーバ１５０との通信の確立を開始することになる。
【０１２７】
図１４は、図１３Ａにおけるサーバ経由送信処理前の直接送信処理及び図１３Ｂ、図１３Ｃにおけるサーバ経由送信処理の手順を示すフローチャートである。
【０１２８】
ステップＳ１４０１では、システム制御部３５０が、ＮＯＴＩＦＹ（ｓｓｄｐ：ａｌｉｖｅ）メッセージを送信するＡｄｖｅｒｔｉｓｅｍｅｎｔ（告知）を行う。このサーバ経由送信処理前の直接送信処理では、ＮＯＴＩＦＹメッセージのＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目に記述する所定時間は、図８におけるステップＳ８０９で設定した１２０秒ほど長くする必要はない。なぜなら、直接送信処理の実行を指示された場合とは異なり、サーバ経由送信処理の実行を指示された場合は、そもそもサーバに画像を送信することを前提としており、ＰＣが同一ネットワークにない状況も比較的多いと考えられるからである。すなわち、この場合は、確実にＰＣと接続するために、ＰＣを探す時間を長くするよりもむしろ、ＰＣを探す時間を短くして円滑にサーバ経由送信処理を開始するほうが、ユーザの目的に沿っている。そこで、サーバ経由送信機能の実行を指示した場合に、サーバ経由送信処理前に実行される直接送信処理では、直接送信処理の実行を指示した場合に比べて、ＰＣからの応答時間を短くする。例えば、本ステップで送信されるＮＯＴＩＦＹメッセージのＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目に記述する所定時間は、例えば１０秒が設定される。
【０１２９】
ステップＳ１４０２では、システム制御部３５０が、ＮＯＴＩＦＹメッセージを送信してから所定時間が経過したか否かを判別する。この所定時間とはステップＳ１４０１でＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目に記述した時間であり、本実施の形態では１０秒である。本ステップの１０秒という待機時間は、第２の待機時間の一例である。
【０１３０】
システム制御部３５０が、所定時間が経過したと判別した場合、処理はＳ１４１２に進む。このように判別される場合として、例えば、同じネットワーク内に、サーバ経由送信機能を実現するアプリケーションを実行中のＰＣが存在していない場合が考えられる。ステップＳ１４１２では、システム制御部３５０は、クラウドサーバ１５０と接続し、クラウドサーバ１５０に対して画像を送信するための処理を実行する。つまりシステム制御部３５０は、１０秒ほどネットワーク内を検索した結果、ＰＣが存在しないと判断して、クラウドサーバ１５０との通信に遷移する。
【０１３１】
一方、Ｓ１４０２でシステム制御部３５０が、所定時間が経過していないと判別した場合、ステップＳ１４０３にて、システム制御部３５０は、ＰＣ１３０からのＨｔｔｐのｇｅｔコマンドを受信した否かを判別する。
【０１３２】
システム制御部３５０がＳ１４０３でｇｅｔコマンドを受信していないと判別した場合、処理はＳ１４０２に戻り所定時間が経過するまでｇｅｔコマンドの受信を待つ。一方、システム制御部３５０が、ｇｅｔコマンドを受信したと判別した場合、処理はＳ１４０４に進む。
【０１３３】
ステップＳ１４０４では、システム制御部３５０は、デジタルカメラ１００のデバイスディスクリプションをＰＣ１３０に送信する。
【０１３４】
続くステップＳ１４０５にて、システム制御部３５０は、Ｍ−ＳＥＡＲＣＨメッセージをＰＣ１３０に送信する。
【０１３５】
Ｍ−ＳＥＡＲＣＨメッセージのＭＸ項目に記述する所定時間の値も、ＮＯＴＩＦＹメッセージのＣＡＣＨＥ−ＣＯＮＴＲＯＬ項目に記述する所定時間と同様に、１２０秒という比較的長い時間ではなく、例えば１０秒という比較的短い時間が設定される。
【０１３６】
ステップＳ１４０６では、システム制御部３５０が、Ｍ−ＳＥＡＲＣＨメッセージを送信してから所定時間が経過したか否かを判別する。この所定時間とはステップＳ１４０５でＭＸ項目に記述した時間であり、本実施の形態では１０秒である。システム制御部３５０が、既に所定時間が経過したと判別した場合、ＰＣとの通信を諦め、ステップＳ１４１２に進みクラウドサーバ１５０との通信（つまりサーバ経由送信処理）を開始する。一方、システム制御部３５０が、所定時間が経過していないと判別した場合、処理はステップＳ１４０７に進む。
【０１３７】
ステップＳ１４０７では、システム制御部３５０は、Ｍ−ＳＥＡＲＣＨに対するＰＣ１３０からの応答を受信したか否かを判別する。システム制御部３５０が、応答を受信していないと判別した場合、処理はＳ１４０６に戻り、所定時間が経過するまで応答を待つ。一方、システム制御部３５０が、応答を受信したと判別した場合、処理はＳ１４０８に進む。
【０１３８】
ステップＳ１４０８では、システム制御部３５０はＰＣ１３０のデバイスディスクリプションを要求するためＨｔｔｐのｇｅｔコマンドをＰＣ１３０に送る。
【０１３９】
ステップＳ１４０９では、システム制御部３５０が、Ｈｔｔｐのｇｅｔコマンドを送信してから所定時間が経過したか否かを判別する。ここでは、ステップＳ１４０３及びステップＳ１４０６と同様に、所定時間には１０秒を設定する。
【０１４０】
システム制御部３５０が、既に所定時間が経過したと判別した場合、ステップＳ１４１２に進み、所定時間が経過していないと判別した場合、処理はステップＳ１４１０に進む。
【０１４１】
ステップＳ１４１０では、システム制御部３５０は、ＰＣ１３０からデバイスディスクリプションを受信したか否かを判別する。システム制御部３５０が、デバイスディスクリプションを受信していないと判別した場合、処理はＳ１４０９に戻り、所定時間が経過するまでデバイスディスクリプションの受信を待つ。一方、システム制御部３５０が、デバイスディスクリプションを受信したと判別した場合、処理はステップＳ１４１１に進む。この場合、ＰＣとの通信を行うために必要な情報が全て揃ったことになる。故に、ステップＳ１４１１で、システム制御部３５０は、サーバ１５０ではなく、ＰＣ１３０に画像を送信するための処理を実行する。
【０１４２】
以上説明したように、本実施形態のデジタルカメラ１００は、サーバ経由送信機能の実行を指示した場合に、サーバ経由送信処理前の直接送信処理において、ＰＣ１３０からの応答時間を、直接送信機能の実行を指示した場合のＰＣ１３０からの応答時間よりも短くする。これにより、デジタルカメラ１００は、ＰＣとの接続を徒らに待つことなく、短時間でサーバ経由送信処理に切り替えて画像の送信を行うことができ、その結果、画像の送信にかかる時間的ロスを省くと共に迅速且つ効率的に画像を送信することができる。
【０１４３】
図１５は、図１４のステップＳ１４１２においてサーバへ送信された画像のダウンロード処理の手順を示すシーケンス図である。
【０１４４】
図１５のダウンロード処理は、例えば、ＰＣ１３０に格納されたクラウドサーバ１５０にアクセスするためのアプリケーションを実行することによって開始される。
【０１４５】
ステップＳ１５０１では、ＰＣ１３０がデジタルカメラ１００からクラウドサーバ１５０に送信された画像があるか否かを確認する。送信された画像があると判別した場合、ステップＳ１５０２で、クラウドサーバ１５０からＰＣ１３０に画像があることを通知する。更に、ステップＳ１５０３で、ＰＣ１３０がクラウドサーバ１５０に画像を要求し、ステップＳ１５０４で、クラウドサーバ１５０がＰＣ１３０に画像を送信する。
【０１４６】
ステップＳ１５０１〜ステップＳ１５０４の処理は、例えば１時間ごとに、定期的に実行され、これにより、デジタルカメラ１００の画像をクラウドサーバ１５０経由で送信することが可能となる。
【０１４７】
一方、ステップＳ１５０１の確認の結果、画像がないときは、ステップＳ１５０６で、クラウドサーバ１５０からＰＣ１３０に画像がないことを通知する。
【０１４８】
図１５のダウンロード処理は、アプリケーションを利用するだけで自動的にＰＣ１３０へと画像データをバックアップすることができるので、サーバに格納された画像データを自らバックアップする手間が省ける。
【０１４９】
［その他の実施形態］
上述の実施形態では、図１４のステップＳ１４０８のｇｅｔコマンドに対する応答時間を短くする例について述べたが、図１４のステップＳ１４０８のｇｅｔコマンドに対する応答時間は、Ｍ−ＳＥＡＲＣＨメッセージに対する応答時間とは異なり、短くしなくてもよい。すなわち、図１４の処理において、デジタルカメラ１００からのｇｅｔコマンドに対する応答時間を直接送信処理の実行を指示されたことに応じて開始する直接送信処理の応答時間と同様にする。これにより、デジタルカメラ１００がＰＣ１３０との接続に時間を要する場合であっても双方が直接接続することができ、より効率的に接続経路を決定することができる。
【０１５０】
また本発明は、以下の処理を実行することによっても実現される。即ち上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１５１】
１００  デジタルカメラ
１３０  ＰＣ
１５０  クラウドサーバ
２２８  画像表示部
２７０  操作部
３５０  システム制御部
５０１  直接送信機能実行ボタン
５０２  サーバ経由送信機能実行ボタン
【図１】
2015039136.tif 000003
【図２】
2015039136.tif 000004
【図３】
2015039136.tif 000005
【図４】
2015039136.tif 000006
【図５】
2015039136.tif 000007
【図６】
2015039136.tif 000008
【図７Ａ】
2015039136.tif 000009
【図７Ｂ】
2015039136.tif 000010
【図８Ａ】
2015039136.tif 000011
【図８Ｂ】
2015039136.tif 000012
【図９】
2015039136.tif 000013
【図１０Ａ】
2015039136.tif 000014
【図１０Ｂ】
2015039136.tif 000015
【図１１】
2015039136.tif 000016
【図１２】
2015039136.tif 000017
【図１３Ａ】
2015039136.tif 000018
【図１３Ｂ】
2015039136.tif 000019
【図１３Ｃ】
2015039136.tif 000020
【図１４】
2015039136.tif 000021
【図１５】
2015039136.tif 000022