(57)【要約】 【課題】  通信装置から異なる複数のルートのいずれかを通じてデータを受信可能な情報処理装置およびその制御方法において、受信ルートに応じた適切なデータ処理を実現する。【解決手段】  第１のネットワーク上で、第１のデバイスが探索された場合、第１のデバイスから第１のネットワーク上でデータを受信する。一方、第２のネットワーク上に存在する第２のデバイスに、第１のデバイスから第２のデバイスに送信され、自身に転送されるべきデータがあれば、第２のデバイスからデータを受信する。第１のデバイスの探索は、第２のデバイスからデータを受信している際にも実行され、第２のデバイスからデータを受信している際に第１のデバイスが探索された場合には、第１のデバイスからのデータ受信を優先する。【選択図】  図６
2015036899.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワーク上のデバイスおよび、前記第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置であって、
前記第１のネットワーク上で、第１のデバイスを探索する探索手段と、
前記探索手段により、前記第１のデバイスが探索された場合、前記第１のデバイスから前記第１のネットワーク上でデータを受信する第１の受信手段と、
前記第２のネットワーク上に存在する第２のデバイスに、前記第１のデバイスから前記第２のデバイスに送信され、前記情報処理装置に転送されるべきデータの有無を確認する確認手段と、
前記データがある場合、前記第２のデバイスから前記データを受信する第２の受信手段と、を有し、
前記探索手段による前記探索は、前記第２の受信手段が前記データを受信している際にも実行され、前記第２の受信手段が前記データを受信している際に前記第１のデバイスが探索された場合には、前記第２の受信手段による受信よりも、前記第１の受信手段による受信を優先することを特徴とする情報処理装置。
【請求項２】
前記第１のデバイスが、前記第１のネットワーク上で前記情報処理装置にデータを送信する機能を有し、かつ前記情報処理装置のユーザと関連付けされたデバイスであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記探索手段は、前記第１のネットワーク上で前記情報処理装置にデータを送信する機能を有するデバイスが前記第１のネットワーク上で探索された場合、該デバイスが前記情報処理装置のユーザに関連付けされたデバイスであるかどうかを前記第２のデバイスに問い合わせ、該デバイスが前記情報処理装置のユーザに関連付けされたデバイスである場合に、前記第１のデバイスが探索されたものとすることを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第１のデバイスの情報を保存する記憶手段をさらに有し、
前記記憶手段に前記第１のデバイスの情報が存在しない場合、前記探索手段による探索を行わないことを特徴とする請求項２または請求項３に記載の情報処理装置。
【請求項５】
前記探索手段は、前記記憶手段に情報が保存されたデバイスが前記第１のネットワーク上で探索された場合、前記情報処理装置のユーザとの関連付けの有効性を前記第２のデバイスに問い合わせ、前記情報処理装置のユーザとの関連付けが有効である場合に、前記第１のデバイスが探索されたものとすることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第２の受信手段が前記データを受信している際に前記第１のデバイスが探索された場合、前記第２の受信手段による受信を中断し、前記第１の受信手段による受信を開始することを特徴とする請求項１から請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
第１のネットワーク上のデバイスおよび、前記第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置の制御方法であって、
探索手段が、前記第１のネットワーク上で、第１のデバイスを探索する探索工程と、
前記探索工程により、前記第１のデバイスが探索された場合、第１の受信手段が前記第１のデバイスから前記第１のネットワーク上でデータを受信する第１の受信工程と、
確認手段が、前記第２のネットワーク上に存在する第２のデバイスに、前記第１のデバイスから前記第２のデバイスに送信され、前記情報処理装置に転送されるべきデータの有無を確認する確認工程と、
前記データがある場合、第２の受信手段が前記第２のデバイスから前記データを受信する第２の受信工程と、を有し、
前記探索工程は前記第２の受信工程と並行して実行され、前記第２の受信工程で前記データを受信している際に前記第１のデバイスが探索された場合には、前記第２の受信工程よりも、前記第１の受信工程の実行を優先することを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを、請求項１から請求項６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置およびその制御方法、プログラムに関する。
【背景技術】
【０００２】
無線通信機能を搭載したデジタルカメラやデジタルビデオカメラが知られている（特許文献１）。このようなデジタルカメラやデジタルビデオカメラは、無線通信機能を用いてネットワークに接続し、ネットワーク上のサーバに撮影した画像データをアップロードすることが可能である。
【０００３】
サーバにアップロードされた画像データは、サーバを通じてネットワークストレージに保存され、ネットワークストレージにアクセス可能なユーザによって閲覧や共有されたりすることができる。また、サーバからユーザのＰＣ等に転送され、ＰＣにバックアップされることもできる。
【０００４】
サーバからユーザのＰＣへの転送は、例えばユーザのＰＣにデータ転送サービス用の専用アプリケーション（転送サービスアプリケーション）をインストールすることで自動化することができる。転送サービスアプリケーションは例えば、起動されている状態で定期的にサーバに対して新着画像データの有無を問い合わせ、新着画像データがあればサーバにダウンロードを要求するように構成することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2003-319309号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方、無線通信機能を有する、あるいは無線ネットワークに接続可能なＰＣも知られている。従って、無線通信機能を有するデジタルカメラやデジタルビデオカメラがサーバを介さず直接通信可能なＰＣに画像データを転送することも可能である。
【０００７】
このように、通信機能を有する装置（通信装置）から、ネットワークを介して外部装置にデータを転送する場合、サーバ等が存在する他のネットワークを経由するルートと、他のネットワークを経由しないルートが存在する。つまり、転送先の外部装置から見た場合、同じ通信装置からの画像データが、サーバを経由して届く場合と、通信装置から直接届く場合がある。
【０００８】
このような環境において外部装置で稼動させる転送サービスアプリケーションは、２つのルートで到来するデータを適切に取り扱う必要がある。例えば、データ転送サービスが特定のユーザにのみ提供される場合や、予め関連付けがなされた通信装置にのみ提供される場合、サーバを介さない通信を要求する通信装置の要求を受け入れて良いかどうかを判定する必要がある。また、別の例としては、サーバへの新着画像データの有無だけでなく、画像データを直接転送可能な通信機器の存在有無についても定期的に調べる必要がある。さらに別の例としては、サーバからさらに他のサーバに転送を行う設定が可能な場合、受信したデータがサーバでの転送対象であれば、サーバにアップロードする必要がある。
【０００９】
本発明はこのような従来技術の課題に鑑みてなされたものであり、その目的の１つは、通信装置から異なる複数のルートのいずれかを通じてデータを受信可能な情報処理装置およびその制御方法において、受信ルートに応じた適切なデータ処理を実現することにある。
【課題を解決するための手段】
【００１０】
上述の目的は、第１のネットワーク上のデバイスおよび、第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置であって、第１のネットワーク上で、第１のデバイスを探索する探索手段と、探索手段により、第１のデバイスが探索された場合、第１のデバイスから第１のネットワーク上でデータを受信する第１の受信手段と、第２のネットワーク上に存在する第２のデバイスに、第１のデバイスから第２のデバイスに送信され、情報処理装置に転送されるべきデータの有無を確認する確認手段と、データがある場合、第２のデバイスからデータを受信する第２の受信手段と、を有し、探索手段による探索は、第２の受信手段がデータを受信している際にも実行され、第２の受信手段がデータを受信している際に第１のデバイスが探索された場合には、第２の受信手段による受信よりも、第１の受信手段による受信を優先することを特徴とする情報処理装置によって達成される。
【発明の効果】
【００１１】
本発明によれば、通信装置から異なる複数のルートのいずれかを通じてデータを受信可能な情報処理装置およびその制御方法において、受信ルートに応じた適切なデータ処理を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る通信装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】実施形態に係る情報処理装置を実現可能なパーソナルコンピュータの機能構成例を示すブロック図
【図３】第１の実施形態における、デジタルカメラ、ＰＣ、およびサーバの接続形態を模式的に示す図
【図４】第１の実施形態におけるペアリング情報の例を示す図
【図５】第１の実施形態における、デジタルカメラとＰＣとのペアリング処理のうち、ＰＣ側の処理を示すフローチャート
【図６】第１の実施形態におけるＰＣが、デジタルカメラの送信するデータを受信するために実行する処理の概要を示すフローチャート
【図７】第１の実施形態におけるデジタルカメラ、ＰＣ、およびサーバ間でのデータ転送処理のシーケンス図
【図８】第１の実施形態におけるデジタルカメラが、ＰＣもしくはサーバへデータ転送する際の処理を示したフローチャート
【図９】第１の実施形態におけるＰＣの画像受信処理を示すフローチャート
【図１０】第１の実施形態におけるＰＣの状態遷移図
【図１１】第２の実施形態における、デジタルカメラ、ＰＣ、サーバ、およびフォトストレージサービスのサーバの接続形態を模式的に示す図
【図１２】第２の実施形態における、フォトストレージサービスへの自動画像転送機能の設定画面の例を示す図
【図１３】第２の実施形態におけるＰＣが、デジタルカメラの送信するデータを受信するために実行する処理の概要を示すフローチャート
【図１４】図１３に示した本実施形態のＰＣの処理のうち、特にアップロードリストを生成するまでの処理に関する工程をさらに詳細に示すフローチャート
【図１５】第２の実施形態におけるＰＣが生成するアップロードリストのデータ構造例を示す図
【図１６】第２の実施形態におけるＰＣのアップロード処理を示すフローチャート
【図１７】第２の実施形態における、サーバからフォトストレージサービスのサーバへの自動転送処理の動作を示すフローチャート
【図１８】第３の実施形態におけるＰＣが、アップロード対象の画像ファイルの一覧とアップロード状況を表示する画面の例を示す図
【発明を実施するための形態】
【００１３】
以下、本発明の例示的な実施形態について、添付図面を用いて詳細に説明する。
なお、以下に説明する実施形態は、本発明の実現手段の単なる例示であり、本発明が適用される装置の具体的な構成や各種条件によって適宜修正又は変更されてもよい。また、各実施形態を適宜組み合せることも可能である。
【００１４】
●（第１の実施形態）
＜デジタルカメラの構成＞
以下の説明では、データ転送元である通信装置の一例としての、無線通信機能を有するデジタルカメラについて説明する。なお、無線通信機能を有し、データを転送可能な任意の装置に本発明は適用可能である。このような端末としては例えば携帯電話機、パーソナルコンピュータ、タブレット端末、ゲーム機などがあるが、他の機器であってもよい。
【００１５】
図１は、本実施形態に係るデジタルカメラ１００の機能構成例を示すブロック図である。制御部１０１は、例えば、ＣＰＵ（ＭＰＵ）、メモリ（ＤＲＡＭ、ＳＲＡＭ）などからなり、各種処理（プログラム）を実行してデジタルカメラ１００の各ブロックを制御したり、各ブロック間でのデータ送信を制御したりする。また制御部１０１は、ユーザからの操作を受け付ける操作部１０２からの操作信号に応じて、デジタルカメラ１００の各ブロックを制御する。
【００１６】
操作部１０２は、例えば、電源ボタン、ズーム調整ボタン、オートフォーカスボタンなどの撮影に関連する各種操作を入力するスイッチ類からなる。また、メニュー表示ボタン、決定ボタン、その他カーソルキー、ポインティングデバイス、タッチパネル等で構成することが可能であり、ユーザによりこれらのキーやボタンが操作されると制御部１０１に操作信号を送信する。さらに操作部１０２はレリーズボタンを含み、レリーズボタンはいわゆる半押し状態で押下されるスイッチ（ＳＷ１）と、いわゆる全押し状態で押下されるスイッチ（ＳＷ２）とを有する。ＳＷ１の押下により撮影準備指示が出力され、ＳＷ２の押下により撮影指示が出力される。撮影準備動作には、自動焦点検出（ＡＦ）、自動露出制御（ＡＥ）などが含まれる。なお、本実施形態では、静止画撮影のためのレリーズボタンと動画撮影のためのレリーズボタンとを共用しているが、別のボタンとすることも可能である。
【００１７】
バス１０３は、各種データ、制御信号、指示信号などをデジタルカメラ１００の各ブロックに送るための汎用バスである。
撮像部１１０は、撮像レンズにより取り込まれた被写体の光学像の光量を、絞りにより制御し、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の撮像素子により画像信号に変換する。
【００１８】
また、音声入力部１２０は、例えば、内蔵された無指向性のマイクまたは音声入力端子を介して接続された外部マイク等により、デジタルカメラ１００の周囲の音声を集音する。
メモリ１０４は、例えばＲＡＭ(Random Access Memory)や書き換え可能な不揮発性メモリであって、画像信号および音声信号、デジタルカメラ１００の設定情報などを一時的に記憶する。
【００１９】
記録媒体１４１は、デジタルカメラ１００に接続可能な記録媒体である。記録媒体１４１は、デジタルカメラ１００で生成した各種データなどを記録することができる。記録媒体１４１の例としては、例えばハードディスク、光ディスク、書き換え可能な不揮発性半導体メモリなどがあげられる。本実施形態では、いわゆるメモリカードと呼ばれる、デジタルカメラ１００に装着可能な書き換え可能な不揮発性半導体メモリ装置を記録媒体１４１として用いるものとする。
【００２０】
映像出力部１５０は、例えば映像出力端子からなり、接続された外部ディスプレイ等に映像を表示させるために画像信号を送信する。また、映像出力部１５０と後述する音声出力部１５１は統合された１つの端子、例えばＨＤＭＩ（登録商標）端子のような端子であってもよい。
音声出力部１５１は、例えば音声出力端子からなり、接続されたイヤホンやスピーカなどから音声を出力させるために音声信号を送信する。また、音声出力部１５１は、デジタルカメラ１００に内蔵されてもよい。
【００２１】
通信部１５２は外部デバイスとの間でシリアルまたはパラレル通信によるデータの送受信を有線または無線で行う。通信部１５２が用いることのできる通信インタフェースの例としては、ＲＳ２３２Ｃ、ＵＳＢ、ＩＥＥＥ１３９４、Ｐ１２８４、ＳＣＳＩ、モデム、ＬＡＮ、ＩＥＥＥ８０２．１１ｘなどがある。また、通信部１５２は通信インタフェースに応じた通信プロトコルを実行することで、外部デバイスとデータを送受信することが可能である。通信プロトコルの一例として、ＨＴＴＰ(Hyper Text Transfer Protocol)やＰＴＰ−ＩＰ(Picture Transfer Protocol over IP)などが挙げられる。ここで例示した通信インタフェースおよび通信プロトコルは周知であるため、その詳細に関する説明は割愛する。なお、記憶媒体１４１が通信部１５２の機能を備えていてもよい。
【００２２】
表示部１３０は、記録媒体１４１に記録された画像データや、各種メニューなどのＧＵＩを表示する。表示部１３０は例えば、液晶ディスプレイ、有機ＥＬディスプレイ等を用いることができる。
【００２３】
＜パーソナルコンピュータ（ＰＣ）の構成＞
以下の説明では、本発明の実施形態に係るユーザ端末およびサーバを実現可能な情報処理装置の一例として、静止画や動画が取り込み可能なパーソナルコンピュータ（ＰＣ）について説明する。なお、タブレット型ＰＣやスマートフォンも情報処理装置の一例である。
【００２４】
図２は、本実施形態に係るＰＣ２００の機能構成例を示すブロック図である。
ＰＣ２００は、表示部２０１と、操作部２０２と、ＣＰＵ２０３と、一次記憶装置２０４と、二次記憶装置２０５と、通信装置２０６とを有している。
各構成の基本的な機能はデジタルカメラ１００と同様であるから、ここでは詳細な説明は省略する。表示部２０１には液晶ディスプレイや有機ＥＬディスプレイ等を用いることができる。また表示部２０１はＰＣ２００が備える必要はなく、ＰＣ２００は表示部２０１の表示を制御する表示制御機能を有していればよい。一次記憶装置２０４は例えばＲＡＭ(Random Access Memory)や書き換え可能な不揮発性メモリであり、ＰＣの設定値を保持したり、ＣＰＵ２０３が実行するプログラムを保持および展開したり、ＣＰＵ２０３のワークエリア等として利用される。二次記憶装置２０５はＨＤＤや磁気テープドライブなどの磁気記録装置、ＤＶＤ、ＣＤ、ＢＤ、ＭＯなどの光または光磁気メディアを用いる記憶装置、ＳＳＤなど不揮発性半導体メモリを用いた記憶装置である。二次記憶装置２０５は、各種アプリケーション（ＯＳを含む）やユーザデータなどの保存に用いられる。
【００２５】
ＣＰＵ２０３は、一次記憶装置２０４に展開したプログラム（ＯＳ、アプリケーション等）を実行し、ＰＣ２００の各ブロックを制御する。ＣＰＵ２０３はまた、ユーザからの操作を受け付ける操作部２０２からの操作信号に応じて各ブロックを制御する。操作部２０２としては、キーボードやマウス、またタッチパネルなどが一般的に用いられるが、これらに限定されない。
【００２６】
通信装置２０６はデジタルカメラ１００の通信部１５２と同様、所定の規格に応じた通信インタフェースおよび通信プロトコルを用いて外部デバイスとデータ通信する。なお、通信部１５２および通信装置２０６は、複数種の通信インタフェースを有し、通信インタフェースに応じた通信プロトコルでの通信が可能である。本実施形態では、通信装置２０６はローカルエリアネットワーク（ＬＡＮ）上のデバイスと、インターネットなどのワイドエリアネットワーク（ＷＡＮ）上のデバイスとの両方と通信可能であるように構成される。なお、ＬＡＮとＷＡＮは２つの異なるネットワークの例であり、通信装置２０６はデータの送信元デバイスがアクセス可能な第１のネットワークと、データ転送サービスを提供するサーバが存在する第２のネットワークとの両方に接続可能であれば良い。
【００２７】
なお、実施形態に係るサーバおよびユーザ端末はいずれも図２に示したパーソナルコンピュータによって実現可能であるが、以下の説明においては便宜上、「ＰＣ」はユーザ端末を意味するものとして用い、サーバとして機能するＰＣは「サーバ」と呼ぶ。
【００２８】
＜接続形態の概要＞
図３は、本実施形態における、デジタルカメラ１００、ＰＣ２００ａ、およびサーバ２００ｂの接続形態を模式的に表した図である。本実施形態では、デジタルカメラ１００内のデータがＷＡＮ（インターネット）およびサーバ２００ｂを介してＰＣ２００ａに到達する経路と、サーバ２００ｂを介さずにＬＡＮ上でＰＣ２００ａに到達する経路のいずれかを利用可能である。このようなデータ通信を実現するために、カメラとＰＣをサーバに機器登録するとともに、同一ユーザに関連付けて管理するための通信フェーズと、カメラからデータを転送する通信フェーズがある。
【００２９】
図３（ａ）は、デジタルカメラとＰＣをサーバに機器登録（ペアリング）するための通信フェーズを模式的に示している。本実施形態では、デジタルカメラ１００をサーバ２００ｂにペアリングするための通信３０１と、ＰＣ２００ａをサーバ２００ｂにペアリングするための通信３０２とを、ユーザがサーバ２００ｂにログインしている状態で行う。サーバ２００ｂは、ＰＣ２００ａの情報とデジタルカメラ１００の情報をユーザアカウントと関連付けて管理することにより、ＰＣ２００ａとデジタルカメラ１００を同一ユーザの機器として認識ことができる。
【００３０】
デジタルカメラ１００のユーザは、サーバ２００ｂが提供するサービスを利用するために、ユーザアカウントを作成する必要がある。ユーザアカウントの作成は例えばＰＣ２００ａのウェブブラウザアプリケーション（ブラウザ）でサーバ２００ｂのユーザアカウント生成用ＵＲＬにアクセスすることで、ブラウザに表示される画面に所定のユーザ情報を入力することで実行される。サーバ２００ｂは作成したユーザアカウントにユーザ情報（ユーザＩＤ，ログインパスワード，個人情報など）を登録する。
【００３１】
サーバ２００ｂへのデジタルカメラ１００のペアリングは、デジタルカメラ１００をサーバ２００ｂにアクセス可能な機器として登録する処理である。ペアリングの際にサーバ２００ｂに登録するデジタルカメラ１００の情報をログイン中のユーザのユーザアカウントと関連付けることで、デジタルカメラ１００をユーザアカウントに登録することができる。
【００３２】
具体的な手順について説明する。ここでは、デジタルカメラ１００がネットワーク（例えばインターネット）を通じてサーバ２００ｂと通信可能な状態にあるものとする。例えばサーバ２００ｂがデジタルカメラ１００に要求することにより、デジタルカメラ１００は自身の情報をサーバ２００ｂに送信する。ここで送信する情報には、機種名や、デジタルカメラを一意に識別するための個体情報の一例としてのＵＵＩＤ(Universally Unique Identifier)もしくはＧＵＩＤ (Globally Unique Identifier)などが含まれる。
【００３３】
サーバ２００ｂはデジタルカメラ１００の情報を取得すると、デジタルカメラ１００に固有なAlias IDと、デジタルカメラ１００がサーバ２００ｂのアクセス認証処理に使用するためのAccess IDとAccess Passwordを発行する。デジタルカメラ１００は、その後サーバ２００ｂにアクセスする際に用いるため、Alias ID、Access ID、およびAccess Passwordをメモリ１０４の不揮発性領域に保存する。ここで、Alias IDは、デジタルカメラ１００の情報と、ユーザアカウントとに関連付けてサーバ２００ｂが生成する、デジタルカメラ１００を一意に特定可能な固有情報である。そのため、デジタルカメラ１００からAlias IDを受信すれば、サーバ２００ｂは通信元のデジタルカメラを一意に特定することができる。
サーバ２００ｂは、デジタルカメラ１００の識別情報(例えばGUIDやAlias ID)をユーザアカウントと関連付けて登録する。
【００３４】
一方、ＰＣ２００ａとサーバ２００ｂの間では、予め、通信３０１によってサーバ２００ｂとデジタルカメラ１００との間でペアリング処理がなされた状態で、ＰＣとサーバとのペアリング処理を行うための通信３０２を以下の通り行う。
【００３５】
なお、ペアリング処理に先立ち、ユーザは自身の登録済みアカウントを用いてサーバ２００ｂにログインする。ログインの方法に制限は無いが、例えばＰＣ２００ａで稼動する転送サービスアプリケーションのブラウザ機能によってサーバ２００ｂのＵＲＬにアクセスし、表示されたログイン画面にユーザＩＤとパスワードを入力する方法であってよい。ログインが正常に終了して転送サービスアプリケーションに表示される例えばサービスメニュー画面から、ＰＣ登録をユーザが指示すると、サーバ２００ｂは転送サービスアプリケーションを通じてＰＣ２００ａの情報を取得する。
【００３６】
ここでＰＣ２００ａから送信する情報は、ＰＣ２００ａの名称と、ＰＣ２００ａを一意に識別するための個体情報としてのＧＵＩＤ(PC GUID)である。このＧＵＩＤは、ＰＣ固有のシリアル番号でも良いし、転送サービスアプリケーションのインストール時に生成した文字列でも良いが、ＰＣを一意に識別できる必要がある。サーバ２００ｂはＰＣ２００ａの情報を取得すると、デジタルカメラ１００のペアリング処理時と同様に、ＰＣ２００ａ専用のAlias IDと、ＰＣ２００ａがその後サーバ２００ｂへアクセスする際の認証処理に使用するためのAccess IDとAccess Passwordを発行する。Alias IDは、ＰＣ２００ａの情報と、ログイン中のユーザアカウントに関連付けてサーバが生成するため、ＰＣ２００ａを一意に特定可能な情報である。従ってサーバ２００ｂはＰＣ２００ａからAlias IDを受信すると、ＰＣ２００ａを一意に特定することができる。
サーバ２００ｂは、ＰＣ２００ａの識別情報(例えばGUIDやAlias ID)をユーザアカウントと関連付けて登録する。
【００３７】
以上の処理により、同じユーザアカウントにデジタルカメラ１００とＰＣ２００ａの双方が関連付けられ、両者が同一ユーザに関する機器としてサーバ２００ｂに管理されるようになる。
【００３８】
図３（ｂ）は、デジタルカメラ１００からＰＣ２００ａへ画像データを送信する際の２通りの経路を示している。本実施形態においては、デジタルカメラ１００からサーバ２００ｂを経由してＰＣ２００ａへ画像データを送信する経路には、サーバ２００ｂを経由する経路（サーバ経由転送）と、サーバ２００ｂを経由しない経路（直転送）がある。
【００３９】
デジタルカメラ１００の制御部１０１は、操作部１１０を通じてバックアップ処理の実行がユーザから指示された際、接続中のネットワーク上にペアリング済みのＰＣが存在するか探索する。そして、制御部１０１は、ペアリング済みのＰＣが発見されればそのＰＣに直転送を行うことを決定し、ＰＣ２００ａへ通信３０３によって直接データを送信する。
【００４０】
一方、所定時間探索しても接続中のネットワーク上にペアリング済みのＰＣが発見できない場合、制御部１０１はサーバ経由転送を行うことを決定する。そして、制御部１０１は通信３０４によってサーバ２００ｂへデータを送信する。また、ＰＣ２００ａでは周期的にサーバ２００ｂに新規データの有無を問い合わせ、新規データが存在すればサーバ２００ｂから通信３０５によってダウンロードする。このように、サーバ経由転送において通信３０４と通信３０５は非同期である。
【００４１】
なお、接続中のネットワーク上にペアリング済みのＰＣが存在するかどうかの探索は、公知のディスカバリプロトコル、例えばUPnPやBonjourを用いて行うことができる。具体的にはネットワーク上でＰＣを探索し、見つかったＰＣから取得した情報（ディスクリプションやＴＸＴレコード）に含まれるAlias IDに基づいてそのＰＣがペアリング済みＰＣかどうか判定すればよい。なお、この判定方法は一例であり、他の方法を用いてもよい。
【００４２】
デジタルカメラ１００が接続中のネットワーク上にペアリング済みのＰＣ２００ａが接続していることが判明した場合、制御部１０１は直転送の実行を決定し、高速なデータ送信を実現する。一方、ペアリング済みのＰＣが同一ネットワーク上で見つからなかった場合、制御部１０１は、サーバ経由転送の実行を決定する。そのため、ペアリング済みのＰＣ２００ａが起動していない場合や別のネットワーク上に存在する場合（例えばデジタルカメラ１００がＰＣ２００ａと離れた位置に存在する場合）においても、デジタルカメラ１００はデータをＰＣ２００ａに送信することができる。
【００４３】
図４（ａ）は、図３（ａ）の通信３０１によってデジタルカメラ１００をサーバ２００ｂにペアリングしたことにより、デジタルカメラ１００およびサーバ２００ｂに記憶されるペアリング情報の例を示す。
Camera Nameは、デジタルカメラ１００のモデル名（機種名）であり、カメラ情報としてデジタルカメラ１００からサーバ２００ｂへ送信された情報である。サーバ２００ｂは、ユーザアカウントに登録された機器を提示する際にこの情報を用いることができる。
Camera GUIDは、デジタルカメラ１００を一意に識別するための個体情報の一例であり、他の情報であってもよい。GUIDもまたカメラ情報としてデジタルカメラ１００からサーバ２００ｂへ送信された情報である。
【００４４】
Camera  Alias IDは、登録（ペアリング）されたデジタルカメラ１００に対してサーバ２００ｂがユーザアカウント情報を考慮して付与した固有情報であり、サーバ２００ｂとペアリングされている機器間で重複しない情報である。Camera Alias IDによってサーバ２００ｂはデジタルカメラ１００を一意に識別することができる。
Access IDは、サーバ２００ｂにデジタルカメラ１００がペアリングされた際にサーバ２００ｂが発行する情報であり、デジタルカメラ１００がサーバ２００ｂと通信するときに使用する認証ＩＤである。デジタルカメラ１００はこのAccess IDと後述するAccess Passwordを組み合わせて使用することで、サーバ２００ｂから通信を許可される。また、サーバ２００ｂが送信元のカメラを特定する情報として用いることができる。
Access Passwordは、Access ID同様、デジタルカメラ１００がペアリングされた際にサーバ２００ｂが発行する情報であり、デジタルカメラ１００がサーバ２００ｂと通信するときに使用する認証パスワードである。
【００４５】
図４（ｂ）は、図３（ａ）の通信３０２によってＰＣ２００ａをサーバ２００ｂにペアリングしたことにより、ＰＣ２００ａおよびサーバ２００ｂに記憶されるペアリング情報の例を示す。
PC Nameは、ＰＣ２００ａの名称（例えば「xxのコンピュータ」など）であり、ＰＣ情報としてデジタルカメラ１００からサーバ２００ｂへ送信された情報である。サーバ２００ｂは、ユーザアカウントに登録された機器を提示する際にこの情報を用いることができる。
PC GUIDは、ＰＣ２００ａを一意に識別できる情報であり、ＰＣ情報としてデジタルカメラ１００からサーバ２００ｂへ送信された情報である。PC固有のシリアル番号（例えばイーサネット（登録商標）のMACアドレスを利用した値）でも良いし、転送サービスアプリケーションのインストール時に生成した文字列でも良い。
【００４６】
PC Alias IDは、登録（ペアリング）されたＰＣ２００ａに対してサーバ２００ｂがユーザアカウント情報を考慮して付与した固有情報であり、サーバ２００ｂとペアリングされている機器間で重複しない情報である。PC Alias IDによってサーバ２００ｂはＰＣ２００ａを一意に識別することができる。
Access IDおよびAccess Passwordは、サーバ２００ｂにＰＣ２００ａがペアリングされた際にサーバ２００ｂが発行する情報であり、ＰＣ２００ａがサーバ２００ｂと通信するときに使用する認証ＩＤおよび認証パスワードである。ＰＣ２００ａはこのAccess IDとAccess Passwordを組み合わせて使用することで、サーバ２００ｂから通信を許可される。また、サーバ２００ｂが送信元のＰＣを特定する情報として用いることができる。
【００４７】
次に、デジタルカメラ１００とＰＣ２００ａとのペアリング処理について説明する。
図５は本実施形態における、デジタルカメラ１００とＰＣ２００ａとのペアリング処理における、ＰＣ２００ａ側の処理を示すフローチャートである。なお、デジタルカメラ１００とサーバ２００ｂのペアリング処理は済んでいるものとする。
【００４８】
本実施形態において、デジタルカメラ１００とＰＣ２００ａとの間のペアリング処理は、例えば両者をＵＳＢケーブルなどで直接接続してデジタルカメラ１００をＰＣ２００ａに登録するものとは異なる。実際にはＰＣ２００ａがサーバ２００ｂとペアリング済みのデジタルカメラのペアリング情報を取得して保存することでペアリングを行う。これは、本実施形態においてはサーバ２００ｂがデータ転送サービスを提供しており、ＰＣ２００ａはサーバ２００ｂとペアリング済みのデジタルカメラとのみペアリングを行うからである。もちろん、別の実施形態ではＰＣ２００ａにＵＳＢケーブルなどでデジタルカメラ１００を直接接続してペアリングを行っても良い。この場合、ＣＰＵ２０３はデジタルカメラ１００から取得したカメラ情報に含まれるDevice Alias IDをサーバ２００ｂに問い合わせ、サーバ２００ｂとペアリング済みかを確認してもよい。そして、ペアリング済みであればＣＰＵ２０３はサーバ２００ｂからペアリング情報を取得して例えば二次記憶装置２０５（記憶手段）に保存する。
【００４９】
まず、Ｓ５０１でＣＰＵ２０３は、通信装置２０６を通じてサーバ２００ｂにログインする。サーバ２００ｂへのログイン時にＣＰＵ２０３は、ペアリング情報に含まれるAccess IDおよびAccess Passwordを用いる。また、必要に応じて、ユーザログインを要求する。この場合、ユーザはアプリケーション画面にアカウント情報（ユーザＩＤ、パスワード）を入力する。
【００５０】
Ｓ５０２でＣＰＵ２０３は、ログインユーザのアカウントに関連づけてサーバ２００ｂに管理されている、サーバ２００ｂとペアリング済みの機器のペアリング情報のリストをサーバ２００ｂから取得する。より具体的にはＣＰＵ２０３はペアリング済み機器のうちカメラに関するリストを取得する。リストには例えば、図４（ａ）に示したペアリング情報のうち、デジタルカメラのモデル名(Camera Name)、ＧＵＩＤ(Camera GUID)、およびAlias ID(Camera Alias ID)が含まれる。
【００５１】
取得したリストに複数のデジタルカメラの情報が含まれている場合、ＣＰＵ２０３はＳ５０３で、表示部２０１にそれらデジタルカメラの情報を選択可能に一覧表示し、ペアリングするデジタルカメラの選択をユーザに促す。なお、この際、ＣＰＵ２０３はペアリング済みのデジタルカメラの情報を表示しないようにしてもよい。ユーザは操作部２０２を通じて所望のデジタルカメラを選択する。また、取得したリストに１つのデジタルカメラの情報が含まれている場合、ＣＰＵ２０３はそのデジタルカメラが選択されたものとしてＳ５０３の処理をスキップすることができる。
【００５２】
Ｓ５０４にて、ＣＰＵ２０３は選択されたデジタルカメラとのペアリングをサーバ２００ｂに対して要求する。この要求を受け、サーバ２００ｂは指定されたデジタルカメラのペアリング情報４０１（図４（ａ））をＰＣ２００ａに送信する。ＰＣ２００ａはＳ５０５で、受信したデジタルカメラのペアリング情報を管理情報として例えば二次記憶装置２０５に保存して処理を終了する。
【００５３】
このように、ＰＣ２００ａはサーバ２００ｂとペアリング済みのデジタルカメラのペアリング情報を取得し、保存することによってデジタルカメラ１００との間のペアリングを実行する。
【００５４】
＜送信処理＞
図６は、本実施形態におけるＰＣ２００ａが、デジタルカメラ１００の送信するデータを受信するために実行する処理の概要を示すフローチャートである。上述の通り、本実施形態でデジタルカメラ１００は、データをＰＣ２００ａに送信する場合、サーバ経由転送を利用する場合と直転送を利用する場合がある。そのため、ＰＣ２００ａはどちらのルートで送信されたデータであっても適切に受信することができるように動作する必要がある。
【００５５】
図６に示す処理は、ＰＣ２００ａにインストールされた、サーバ２００ｂが提供する転送サービスアプリケーションをＣＰＵ２０３が二次記憶装置２０５から一次記憶装置２０４に読み出して実行することによって実施される。
【００５６】
Ｓ６０１で、ＣＰＵ２０３は、ＰＣ２００ａにデジタルカメラが１台でもペアリングされているか、記憶されているペアリング情報を元に判定する。１台もデジタルカメラがペアリングされていない場合、すなわちペアリング情報が記憶されていない場合、ＣＰＵ２０３はＳ６０６へ処理を進める。一方、ペアリング済みのデジタルカメラが１台でもあれば、ＣＰＵ２０３はＳ６０２に処理を進める。
【００５７】
Ｓ６０２でＣＰＵ２０３は、ペアリング済みのデジタルカメラの中に、ＰＣへの直転送機能を持つものが含まれるかどうかを判定する。この判定は、ペアリング済みのデジタルカメラの機種名から行っても良いし、他の方法を用いても良い。例えば、サーバ２００ｂ（第２のデバイス）において、直転送に対応したデジタルカメラと未対応のデジタルカメラとでペアリング情報の管理方法やペアリング情報の形式が異なる場合には、その情報を用いて判断しても良い。
【００５８】
Ｓ６０２でＣＰＵ２０３は、直転送に対応したデジタルカメラがペアリング済みである場合にはＳ６０３に処理を移し、ペアリング済みのデジタルカメラに直転送に対応したものが含まれていない場合にはＳ６０６に処理を移行させる。
【００５９】
Ｓ６０３でＣＰＵ２０３は、通信装置２０６が接続しているローカルエリアネットワークに対してデバイスサーチ命令を送信し、直転送に対応したペアリング済みデジタルカメラ（第１のデバイス）が存在するか探索する。後述するように、ＣＰＵ２０３は、直転送に対応したデジタルカメラがＬＡＮ上のデバイス探索で見つかった場合、そのデジタルカメラがペアリング済みであるか（あるいはペアリングが有効であるか）を、ＷＡＮ上のサーバ２００ｂに問い合わせてよい。
【００６０】
Ｓ６０４でＣＰＵ２０３は、Ｓ６０３における探索でＬＡＮ上にペアリング済みかつ直転送に対応したデジタルカメラの存在を検出すると、Ｓ６０５でデジタルカメラと通信して、デジタルカメラ内の未取得のデータ（静止画像、動画像、音声等）を受信する。ここで、ＣＰＵ２０３は第１の受信手段として機能する。受信したデータをＣＰＵ２０３は例えば二次記憶装置２０５に保存し、待機状態に戻る。
【００６１】
一方、Ｓ６０４において、Ｓ６０３の探索でＬＡＮ上にペアリング済みかつ直転送に対応したデジタルカメラの存在が検出できなかった場合には、ＣＰＵ２０３は、サーバ２００ｂに未転送データの有無を問い合わせ、あれば取得する処理をＳ６０６以降で実施する。なお、図６では表現できていないが、処理をＳ６０８に移した後も、ＣＰＵ２０３はＳ６０３の探索処理を継続（並行）して実行している。
【００６２】
本実施形態において転送サービスアプリケーションは、その稼働中１分ごとにＷＡＮ上のサーバ２００ｂをポーリングするように設定されている。そのため、Ｓ６０６でＣＰＵ２０３は、前回のポーリングから１分（以上）経過したか判定し、経過していればポーリングをサーバに対して行う（Ｓ６０７）。
【００６３】
具体的にはＣＰＵ２０３はＳ６０７においてサーバ２００ｂに未転送データのリストを要求する。サーバ２００ｂはデジタルカメラ１００から転送されたデータのうち、ＰＣ２００ａに転送されていないものをリスト管理している。従って、ＣＰＵ２０３はこのリストに１つ以上のデータが含まれているかどうかによって、未転送データの存在有無を判別できる（Ｓ６０８）。なお、未転送データの有無の判定は他の方法で行っても良い。
【００６４】
Ｓ６０８で第２の受信手段としてのＣＰＵ２０３はサーバ２００ｂに未転送のデータがあると判定すると、Ｓ６０９でリストに含まれる情報を用いてサーバ２００ｂにデータを要求し、未転送のデータを受信する。そして、ＣＰＵ２０３は、受信したデータを例えば二次記憶装置２０５に保存してＳ６０１に処理を戻す。
【００６５】
ＣＰＵ２０３は、Ｓ６０６でポーリング間隔が経過していない場合と、Ｓ６０８で未転送データが存在しないと判定された場合もまた、Ｓ６０１に処理を戻す。
【００６６】
なお、Ｓ６０６からＳ６０９までの処理中に、ＬＡＮ上にペアリング済みかつ直転送に対応したデジタルカメラの存在が検出された場合、ＣＰＵ２０３は実行中の処理を中断し、Ｓ６０５に処理を移行させる。そして、ＣＰＵ２０３は、見つかったデジタルカメラから直転送されるデータを受信する。
【００６７】
Ｓ６０９におけるデータの受信を中断した場合、ＣＰＵ２０３は途中で受信が中断されたデータは破棄し、直転送によるデータの受信の終了後に再度サーバ２００ｂからデータを取得する。Ｓ６０９の処理において、ＣＰＵ２０３は正常に受信が完了したデータについては、サーバ２００ｂに完了を通知する。この通知を受けてサーバ２００ｂは受信完了の通知を受けたデータをリストから削除する。従って、受信が中断したデータについてはリストに残ったままであるため、次回のポーリング時に未転送データとしてＰＣ２００ａが再取得可能である。
【００６８】
なお、Ｓ６０６からＳ６０９までの処理中に、ＬＡＮ上にペアリング済みかつ直転送に対応したデジタルカメラの存在が検出された場合、現在受信中のデータについては最後まで受信を継続してから、処理をＳ６０５に移行させても良い。
【００６９】
図７は、本実施形態における、デジタルカメラ１００、ＰＣ２００ａ、およびサーバ２００ｂの間でのデータ転送処理のシーケンス図である。
ＰＣ２００ａのＣＰＵ２０３は、転送サービスアプリケーションの稼動中には常に図６の処理を実行している。つまり、定期的にＷＡＮ上のサーバ２００ｂにポーリングを行うとともに、ペアリング済みかつ直転送対応のデジタルカメラが現れたかどうかを判定するため、接続中のＬＡＮでデバイス探索を行っている（Ｓ７０１）。デバイス探索はプロトコルに応じた方法で実行され、例えばＵｐｎＰではSearch命令の発行を行う。
【００７０】
デジタルカメラ１００の制御部１０１は、操作部１１０を通じてユーザからバックアップ処理の実行が指示されると、記録媒体１４１に、バックアップされていないファイル、つまり未転送データが存在するかを確認する（Ｓ７０２）。なお、バックアップ対象のデータ種別は別途設定可能であってよい。ここでは便宜上画像データファイルが転送対象であるものとするが、転送処理はデータ種別に依存せず、他の任意のデータファイルにも同様に適用可能である。また、制御部１０１は、転送したファイルには転送済みであることを示す情報を付加したり、ファイル毎に転送済みか未転送かを管理するテーブルなどを用いたりして、記録媒体１４１のファイルが未転送かどうかを判定することができる。
【００７１】
その後、制御部１０１は通信部１５２を通じ、接続中のローカルエリアネットワークに対して自身の存在を通知する広告命令（例えばＵＰｎＰのAdvertise命令）を発行する（Ｓ７０３）。同時に制御部１０１は、接続中のローカルエリアネットワークに対してデバイス探索命令（例えばＵｐｎＰのSearch命令）を実行し、ネットワーク上の他のデバイスからの応答を待機する（Ｓ７０４）。
【００７２】
ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００からの広告命令を受信する（Ｓ７０５）か、Ｓ７０１で発行したＵＰｎＰのSearch命令に対するデジタルカメラ１００の応答を受信する（Ｓ７０６）ことで、デジタルカメラ１００の出現を検知する。
【００７３】
ＣＰＵ２０３は、出現を検知したデジタルカメラ１００に対し、デバイス情報の取得要求(Get Device Description)を送信する。ＣＰＵ２０３は、デジタルカメラ１００から取得したデバイス情報(Response (XML))から、デジタルカメラ１００が直転送に対応していることが判別できた場合のみ、後のペアリング確認処理へ進む。デジタルカメラ１００が直転送に対応していることが判別できなかった場合、他のデバイスからの応答を待つ。
【００７４】
ここでは、デジタルカメラ１００が直転送に対応している（直転送機能を有する）と判別されたものとする。そしてＰＣ２００ａのＣＰＵ２０３は、ＰＣ２００ａに割り当てられたAlias IDと、取得したデバイス情報に含まれるデジタルカメラ１００のAlias IDを用いて、サーバ２００ｂにペアリング状態の確認要求を行う（Ｓ７０７）。
【００７５】
なお、取得したデバイス情報に含まれるデジタルカメラ１００のAlias IDが、二次記憶装置２０５に保存されているペアリング情報に含まれている場合、デジタルカメラ１００はペアリング済みである。従って、本来、サーバ２００ｂへの確認要求を行う必要はない。ただし、ペアリングがすでにサーバ２００ｂ側への手続で解除されている可能性があるため、最新のペアリングの有効性を確認する意味で本実施形態では確認要求を行っている。別の実施形態では、デジタルカメラ１００のAlias IDを含んだペアリング情報が保存されている場合、保存されてから所定期間以上経過している場合にのみサーバ２００ｂに確認要求して、ペアリングの有効性を確認するように構成しても良い。この場合、ＰＣ２００ａのＣＰＵ２０３はペアリング済みであることが確認されたらペアリング情報の保存時刻に関する情報を更新し、ペアリングされていない（解除された）ことが確認されたら二次記憶装置２０５からペアリング情報を削除してよい。
【００７６】
サーバ２００ｂのＣＰＵ２０３は、ＰＣ２００ａのログインユーザのアカウント情報に関連付けられたペアリング情報に含まれるAlias IDのうち、ＰＣ２００ａから送信されたデジタルカメラ１００のAlias IDと一致するものがあるか調べる。そして、サーバ２００ｂのＣＰＵ２０３は一致するものがあれば、デジタルカメラ１００がＰＣ２００ａのログインユーザに関連付けられていると判定する。サーバ２００ｂのＣＰＵ２０３は判定結果をＰＣ２００ａに通知する（Ｓ７０８）。
【００７７】
ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００がペアリング済みのデバイスであることが確認されたら、上述の通りデジタルカメラ１００のペアリング情報をサーバ２００ｂから取得し、二次記憶装置２０５に保存する。また、ＣＰＵ２０３は、接続中のローカルエリアネットワークに対して自身の存在を通知する広告処理を行う（例えばＵＰｎＰのAdvertise命令を発行する（Ｓ７０９））。見つかったデジタルカメラ１００がペアリングされていないデバイスであると判断された場合には、Advertise命令を実行せずに終了する。
【００７８】
デジタルカメラ１００の制御部１０１は、ＰＣ２００ａからのAdvertise命令を受信することでＰＣ２００ａの出現を検知すると、ＰＣ２００ａに対してデバイス情報の取得要求(Get Device Description)を送信する（Ｓ７１０）。この時点でＰＣ２００ａとデジタルカメラ１００は互いにローカルエリアネットワーク上で検知しあい、両者間の通信が可能になる。制御部１０１は取得したデバイス情報から、ＰＣ２００ａが直転送に対応したＰＣであることを判断した場合のみ、後の画像転送処理へ進む。ここでは、ＰＣ２００ａが直転送に対応したＰＣであると判別されたものとする。
【００７９】
本実施形態では、ＰＣ２００ａがデジタルカメラ１００に対してＨＴＴＰのクライアントとして画像ファイルの取得要求を行うことで画像転送処理を実現する。そのため、画像転送処理の最初に制御部１０１は、ＰＣ２００ａがＨＴＴＰクライアントとして通信できるよう、ＨＴＴＰサーバアプリケーションを起動する（Ｓ７１１）。また、制御部１０１は、Ｓ７０２で検出した未転送画像ファイルのリストを作成する（Ｓ７１２）。
【００８０】
ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００に対して、未転送画像リストの取得要求を送信する（Ｓ７１３）。ＣＰＵ２０３は、デジタルカメラ１００から取得した未転送画像リストに記載された、未転送画像を特定する情報をもとに、デジタルカメラ１００に対して画像ファイルの取得要求を送信する（Ｓ７１４）。これに対し制御部１０１は、要求された画像ファイルをＰＣ２００ａに送信する（Ｓ７１５）。
【００８１】
ＣＰＵ２０３は、画像ファイルの受信が正常に完了したら、デジタルカメラ１００に対して受信完了の通知を行う（Ｓ７１６）。制御部１０１は受信完了通知を受信すると、対象の画像ファイルは転送済みであるとして未転送画像リストから削除する。また、制御部１０１は、転送済みファイルであることが識別できるような情報を画像ファイルに付与しても良い。
【００８２】
未転送画像リストに記載されたすべての画像ファイルの取得を完了すると、ＰＣ２００ａのＣＰＵ２０３は改めてデジタルカメラ１００に対して未転送画像リストの取得要求を行う（Ｓ７１３）。先に未転送画像リストを取得してから撮影が行われた場合など、未転送画像が追加されていれば、ＣＰＵ２０３はその画像ファイルを取得する。未転送画像リストを参照して、未転送画像ファイルが無いと判断した場合、ＣＰＵ２０３は転送完了の通知をデジタルカメラ１００に対して行う（Ｓ７１７）。
【００８３】
制御部１０１は転送完了通知を受信すると、ＨＴＴＰサーバアプリケーションを終了し（Ｓ７１８）、さらに、Ｓ７０３およびＳ７０４で開始した広告処理および探索処理を終了する（Ｓ７１９）。ＰＣ２００ａのＣＰＵ２０３も同様に、Ｓ７０９で開始した広告処理を終了する（Ｓ７２０）。
以上で、デジタルカメラ１００がユーザからバックアップ処理の実行を指示された際の一連の処理は終了する。
【００８４】
引き続き、デジタルカメラ１００とＰＣ２００ａそれぞれの処理については、図８と図９のフローチャートを用いて説明する。
図８は、本実施形態におけるデジタルカメラ１００が、ＰＣ２００ａもしくはサーバ２００ｂへデータ転送する際の処理を示したフローチャートである。図７ではＰＣ２００ａに直転送する場合のみを説明したが、図８ではサーバ経由転送を含めた全体の処理を示している。
【００８５】
Ｓ８０１で制御部１０１は、記録媒体１４１に、バックアップされていないファイル、つまり未転送画像ファイルがあるかどうか調べる。本実施形態のデジタルカメラ１００では、未転送画像かどうかは、ファイルに記録されるフラグにより管理しているが、この管理方法に限定されるものではない。
【００８６】
制御部１０１は、未転送画像ファイルが存在しない場合は処理を終了するが、存在している場合は、Ｓ８０２に処理を移す。
Ｓ８０２で制御部１０１は、接続中のローカルエリアネットワークに対する広告処理を行う（例えばＵＰｎＰのAdvertise命令を発行する）。
Ｓ８０３で制御部１０１は、接続中のローカルエリアネットワークに対するデバイス探索処理を行う（例えばＵｐｎＰのSearch命令を発行する）。デバイス探索命令に対して応答したデバイスがあれば、制御部１０１はデバイス情報を取得し、本機能に対応したＰＣであるかどうかを、デバイス情報に含まれる例えば機種名や能力情報などに基づいて判定する。
【００８７】
制御部１０１は、デバイス探索命令に対し、直転送に対応したＰＣからの応答を所定時間（たとえば１０秒）待つ（Ｓ８０４，Ｓ８０８）。直転送に対応したＰＣからの応答が所定時間内になければ（Ｓ８０８，Ｙｅｓ）、制御部１０１は転送ルートを直転送からサーバ経由転送に切り替え、サーバへの転送処理を開始する。
【００８８】
Ｓ８０９およびＳ８１０で制御部１０１は、Ｓ８０３とＳ８０２で開始したデバイス探索処理および広告処理を終了させる。そして、Ｓ８１１で制御部１０１はサーバ経由転送処理を行う。このとき、デジタルカメラ１００はＨＴＴＰクライアントとして、ＨＴＴＰサーバーとして機能するサーバ２００ｂへの画像送信処理を開始する。サーバ経由転送は、デジタルカメラ１００がペアリング済みのサーバ２００ｂに対して未転送画像ファイルを送信する処理であるが、本発明とは直接関係が無いのでその詳細についての説明は省略する。
【００８９】
一方、Ｓ８０４で、所定時間内に直転送に対応したＰＣ２００ａの出現が検知された場合、制御部１０１はＳ８０５でＰＣ２００ａへ直転送による画像転送処理を実行する。図７を用いて説明したように、直転送による画像転送処理では、制御部１０１はＰＣ２００ａからの要求に応じて、未転送画像リストの送信、指定された未転送画像ファイルの送信などを行う。このとき、デジタルカメラ１００はＨＴＴＰサーバとして振る舞い、ＨＴＴＰのクライアントとして振る舞うＰＣ２００ａが未転送画像ファイルをデジタルカメラ１００に要求することで画像転送を実現する。ＰＣ２００への直転送による画像転送処理が終了すると、制御部１０１は、Ｓ８０６およびＳ８０７で、Ｓ８０３とＳ８０２で開始したデバイス探索処理および広告処理を終了させ、全体の処理を終了する。
【００９０】
図９は、本実施形態におけるＰＣ２００ａの処理を示すフローチャートであり、図７で説明した処理に対応している。
Ｓ９０１からＳ９０２までは直転送機能に対応したデジタルカメラの出現を検出するまでのフェーズである。
ＰＣ２００ａにおいては、転送サービスアプリケーションが稼動しているものとする。従って、上述の通り、定期的にサーバ２００ｂにポーリングを行うとともに、ペアリング済みかつ直転送対応のデジタルカメラが現れたかどうかを判定するため、接続中のローカルエリアネットワークでデバイス探索を行っている（Ｓ９０１）
【００９１】
ネットワーク上でデバイスが見つかると、ＣＰＵ２０３は見つかったデバイスからデバイス情報を取得し、デバイス情報に含まれる機種名や能力情報に基づいて、デバイスが直転送に対応したカメラかどうか確認する（Ｓ７０５〜Ｓ７０６に対応）。
Ｓ９０２で、ローカルエリアネットワーク上に直転送に対応したカメラが見つからない場合、ＣＰＵ２０３は処理をＳ９０１に戻し、デバイス探索処理を継続する。
【００９２】
Ｓ９０３からＳ９０４まではペアリング確認のフェーズである。
Ｓ９０３でＣＰＵ２０３はローカルエリアネットワーク上で見つかった、直転送に対応したカメラが、同じユーザに関連付けられたペアリング済みのカメラかどうかをサーバ２００ａに問い合わせる（Ｓ７０７に対応）。
【００９３】
サーバ２００ｂから、見つかったカメラがペアリング済みのデバイスであることが確認された旨の通知を受信すれば（Ｓ９０４，Ｙｅｓ）、ＣＰＵ２０３はＳ９０５以降の画像受信のフェーズを実行する。
一方、見つかったカメラがペアリング済みのデバイスでない旨の通知を受信した場合（Ｓ９０４，Ｎｏ）、ＣＰＵ２０３は処理をＳ９０１へ戻し、ローカルエリアネットワーク上のデバイス探索を継続する。
【００９４】
Ｓ９０５でＣＰＵ２０３は、ローカルエリアネットワーク上で広告処理を行い、直転送に対応し、かつペアリング済みのカメラ（デジタルカメラ１００）との無線接続を図る（Ｓ７０９〜Ｓ７１０に対応）。ＣＰＵ２０３は、デジタルカメラ１００との無線接続が確立されたら、Ｓ７１３〜Ｓ７１７で説明したようにＨＴＴＰクライアントとして振る舞い、ＨＴＴＰサーバとして振る舞うデジタルカメラ１００から未転送画像ファイルを取得する（Ｓ９０６）。
【００９５】
Ｓ９０７でＣＰＵ２０３は、デジタルカメラ１００との間の無線接続を切断し、処理をＳ９０１の待機状態に戻る（Ｓ７２０に対応）。
【００９６】
図１０は、本実施形態におけるＰＣ２００ａの状態遷移図である。
本実施形態でＰＣ２００ａは、初期状態ではペアリング済みのカメラが存在しない未設定状態１００１である。未設定状態１００１でサーバ２００ｂに接続し、図５のフローチャートを用いて説明したカメラとのペアリング処理が行われると、待機中状態１００２に遷移する。転送サービスアプリケーションの起動時にペアリング済みカメラのペアリング情報が存在している場合には、当初から待機中状態１００２となる。
【００９７】
待機中状態１００２でＰＣ２００ａは、ローカルエリアネットワークに対しては直転送に対応し、かつペアリング済みカメラの探索処理を、外部ネットワーク（サーバ２００ｂが存在するネットワーク）に対してはサーバ２００ｂへのポーリング処理を並行して行う。
【００９８】
サーバ２００ｂへのポーリングにより、新着（未転送）画像ファイルがサーバ２００ｂに存在していることを検知すると、ＰＣ２００ａは「サーバから画像受信」状態１００３に遷移する。この状態においてＣＰＵ２０３は、サーバ２００ｂにある新着画像ファイルの受信処理を実行する。
【００９９】
待機中状態１００２において、直転送に対応し、かつペアリング済みカメラがローカルエリアネットワーク上で検出されると、ＰＣ２００ａは「カメラから画像受信」状態１００４に遷移する。この状態ではＣＰＵ２０３が、デジタルカメラ１００から送信される未転送画像ファイルを全て受信する。
【０１００】
「サーバから画像受信」状態１００３、もしくは、「カメラから画像受信」状態１００４での処理が終了すると、いずれの場合も、ＰＣ２００ａは待機中状態１００２に遷移する。
なお、上述の通り、「サーバから画像受信」状態１００３においても、ローカルエリアネットワーク上でのデバイス探索は継続実施している。そして、直転送に対応し、かつペアリング済みカメラがローカルエリアネットワーク上で検出されると、ただちに、「カメラから画像受信」状態１００４に遷移する。つまり、本実施形態のＰＣ２００ａにおいては、「サーバから画像受信」状態１００３よりも、「カメラから画像受信」状態１００４の方が優先度が大きい。
【０１０１】
以上説明したように、本実施形態によれば、デバイス（例えばモバイル端末）から、直接転送されるルートと、サーバを経由して転送されるルートでデータが転送される可能性がある場合でも、適切にデータを受信できる情報処理装置を実現できる。
【０１０２】
特に、サーバからデータを受信中でも直接転送機能を有するデバイスの探索を継続し、直接転送機能を有するデバイスが見つかった場合にはサーバからのデータ受信よりもデバイスからの直接転送を優先するので、デバイスを待たせることがなく、使い勝手がよい。一方、直接転送機能を有するデバイスが見つからない場合にはサーバに存在する未転送データの受信処理を行うため、サーバ経由のルートで転送されたデータも遅滞なく受信することができる。
【０１０３】
●（第２の実施形態）
第１の実施形態では、デジタルカメラ１００内のデータを所定の宛先機器にバックアップするデータ転送サービスにおいて、直接転送とサーバ経由の転送を利用可能とする技術について説明した。本実施形態では、データ転送サービスにおいて、所定の宛先機器とは異なる、ネットワーク上の機器にデータを自動転送する機能を追加するための技術に関する。
【０１０４】
＜接続形態の概要＞
図１１は、図３と同様に、本実施形態における、デジタルカメラ１００、ＰＣ２００ａ、およびサーバ２００ｂ、さらにフォトストレージサービスのサーバ２００ｃの接続形態を模式的に表した図である。本実施形態において、これら４つのデバイス間のデータ送受信は、図１１（ａ）〜（ｃ）に示す３つのフェーズを有する。
【０１０５】
図１１（ａ）は、図３（ａ）で説明した第１の実施形態の接続形態に、サーバ２００ｂとフォトストレージサービスのサーバ２００ｃとの間の連携設定１１０１が追加された形態である。
連携設定１１０１は、デジタルカメラ１００がサーバ２００ｂへ送信したデータの宛先機器として、ＰＣ２００ａのみではなく、インターネット上のフォトストレージサービスのサーバ２００ｃも利用可能とするための設定である。連携設定１１０１は、サーバ２００ｂからフォトストレージサービスのサーバ２００ｃへ画像を送信することができるようにするため、サーバ２００ｂおよび２００ｃが互いにユーザアカウントにログインして、アクセスを許可するためのものである。アクセス許可は具体的には、クライアント認証やOAuthなどの方法で提供される。
【０１０６】
図１１（ｂ）は、図３（ａ）で説明した第１の実施形態の接続形態に、サーバ２００ｂからフォトストレージサービスのサーバ２００ｃへの画像通信１１０２が追加された形態である。これは、デジタルカメラ１００がサーバ２００ｂへ送信したデータが、ＰＣ２００ａのみではなく、インターネット上のフォトストレージサービスのサーバ２００ｃへも転送されることを示している。
【０１０７】
図１１（ｃ）は、本実施形態に特有の接続形態を示している。具体的には、デジタルカメラ１００からＰＣ２００ａへ直転送機能を用いた画像送信３０３で送信されたデータをＰＣ２００ａがサーバ２００ｂへ送信し、サーバ２００ｂがさらにサーバ２００ｃへ画像送信１１０２によって送信するものである。
これは、サーバ経由転送ではなく、デジタルカメラ１００からＰＣ２００ａへ直転送したデータを、フォトストレージサービスのサーバ２００ｃまで転送する処理である。
【０１０８】
図１２は本実施形態における、フォトストレージサービスへの自動画像転送機能の設定画面の例を示す図である。図１２（ａ）に示す設定画面１２０１は、ＰＣ２００ａで稼動する転送サービスアプリケーションの一部機能として用意される。本実施形態では設定画面１２０１を専用アプリケーションの一部の機能として提供するが、サーバ２００ｂがデータ転送サービスの設定用ウェブページとして提供しても良い。この場合ＰＣ２００ａにおけるウェブブラウザ機能を有する任意のアプリケーションのみならず、サーバ２００ｂにアクセス可能な任意のデバイス（例えばスマートフォンなど）も設定画面１２０１を提供しうる。いずれの場合も、設定画面１２０１で設定された情報はすべてサーバ２００ｂで管理されるものとする。
【０１０９】
設定画面１２０１は、フォトストレージ（オンラインアルバム）サービスに関する転送先のサーバ２００ｃを選択するための操作部１２０２を有し、本実施形態では予め定められた３種類のサーバ（サービス）から１つ以上を選択可能である。
予め定められた３つの転送先サーバに対応して設けられたチェックボックス１２０３、１２０４、１２０５は、チェック状態にあるものは転送先サーバとして利用することを、非チェック状態のもの利用しないことを表す。
チェックボックス１２０３、１２０４、１２０５は転送先サーバごとに設けられているので、複数の転送先サーバへの転送を指定することも可能である。
【０１１０】
転送サーバごとに設けられた詳細設定ボタン１２０６、１２０７、１２０８は夫々の転送先サーバの詳細設定を指定するための詳細設定画面１２１１（後述）を表示するためのボタンであり、対応するチェックボックスがチェック状態の場合のみ有効化される。
図では、非チェック状態にあるチェックボックス１２０５に対応する詳細設定ボタン１２０８は無効化され、チェック状態のチェックボックス１２０３，１２０４に対応する詳細設定ボタン１２０６，１２０７は有効化されている。
【０１１１】
ＯＫボタン１２０９は、表示されている設定状態を現在の設定に反映して設定画面１２０１を閉じるボタン、キャンセルボタン１２１０は表示されている設定状態を現在の設定に反映せずに設定画面１２０１を閉じるボタンである。
【０１１２】
図１２（ｂ）は、詳細設定ボタン１２０６の押下により起動される詳細設定画面１２１１の例を示す図である。他の詳細設定ボタンが押下された場合、対応するサーバに応じた項目の詳細設定画面が表示される。
１２１２には詳細設定パネルが関連付けられている転送先サーバ２００ｃを識別するための情報が記載される。
転送先サーバにアクセスするために必要となるアカウント情報の入力エリア１２１３は、アカウントＩＤの入力エリア１２１４と、パスワードの入力エリア１２１５を有する。
なお、パスワードの入力エリア１２１５に入力された文字は、セキュリティ保持のために伏せ字でエコーバックされる。
【０１１３】
転送対象ファイルの種類を指定するための選択エリア１２１６には、サーバ（サービス）が対応しているファイルの種類のうち、自動転送するファイルの種類を指定するためのチェックボックス１２１７、１２１８、１２１９、１２２０が設けられている。これらのチェックボックス１２１７〜１２２０で指定されたファイルの種類が、該当するサーバに転送されるファイルの種類として設定される。それぞれのチェックボックスは独立しているため、同時に複数のファイルの種類を任意の組み合わせで指定することが可能である。
転送先のサービスが対応しているファイルの種類は、サーバ２００ｂの管理者が事前に手動で設定しても良いし、サーバ２００ｂが各サービスのサーバ２００ｃに問い合わせて取得しても良い。
ＯＫボタン１２２１は、表示されている設定状態を現在の設定に反映して詳細設定画面１２１１を閉じるボタン、キャンセルボタン１２２２は表示されている設定状態を現在の設定に反映せずに詳細設定画面１２１１を閉じるボタンである。
【０１１４】
＜送信処理＞
図１３は、本実施形態におけるＰＣ２００ａの動作を示したフローチャートであり、図６と同様の処理については同じ参照数字を付して重複する説明は省略する。Ｓ６０１〜Ｓ６０９については第１の実施形態と基本的に同一の処理を実行する。
【０１１５】
ただし、本実施形態のＰＣ２００ａは、直転送に対応したデジタルカメラのペアリング状況に関してについてサーバ２００ｂに確認要求する際、フォトストレージサービスのサーバ２００ｃへの自動転送に関する設定内容をサーバ２００ｂから取得する。そして、ＰＣ２００ａは、その後デジタルカメラ１００から直転送された画像ファイルに関し、この時点で取得した設定内容に従ってサーバ２００ｂへのアップロードを実施する。サーバ２００ｂは、ＰＣ２００ａから自動転送された画像ファイルを、自動転送設定に従ってフォトストレージサービスのサーバ２００ｃへさらに転送する。
【０１１６】
上述のように、本実施形態において自動転送設定はサーバ２００ｂで管理され、その設定および変更は、サーバ２００ｂにログイン可能な任意のデバイスにより、任意のタイミングで実施されうる。例えば、ユーザがデジタルカメラ１００から直転送機能を用いてＰＣ２００ａにフォトストレージサービスのサーバ２００ｃに自動転送されるべき画像ファイルを送信したとする。そして、ＰＣ２００ａがその画像ファイルをサーバ２００ｂにアップロードする前に、スマートフォンやタブレット端末からサーバ２００ｂにユーザがアクセスし、自動転送設定の内容を変更したとする。この場合、サーバ２００ｂがＰＣ２００ａから画像ファイルをアップロードされた時点での自動転送設定に基づいて自動転送処理を行うと、直転送したタイミングでユーザが意図していたものとは異なる自動転送処理が行われる可能性がある。そのため、本実施形態では、直転送によってＰＣ２００ａがデジタルカメラ１００から受信した画像ファイルについては、カメラが直転送に対応しており、かつペアリングが有効であると判別された時点における自動転送設定に基づいて処理されるようにする。あるいは、デジタルカメラ１００から直転送の要求があった時点でサーバ２００ｂから自動転送設定の内容を取得するようにしても良い。こうすることで、デジタルカメラ１００がＬＡＮで探索されてから、実際に直転送が開始されるまでの間に自動転送設定が変更された場合に生じうる問題を防止できる。
【０１１７】
従って、サーバ２００ｂはデジタルカメラ１００から直接受信した画像ファイルについてはその時点における自動転送設定を関連付けておき、その後の自動転送処理に用いる。また、ＰＣ２００ａはペアリングの有効性を確認した際にサーバ２００ｂから取得した自動転送設定の内容を、画像ファイルをアップロードする際にサーバ２００ｂに送信する。サーバ２００ｂはＰＣ２００ａから受信した自動転送設定の内容に従って、ＰＣ２００ａからアップロードされた画像ファイルのサーバ２００ｃへの自動転送処理を実行する。
【０１１８】
Ｓ１３０４でＣＰＵ２０３は、フォトストレージサービスのサーバ２００ｃへの自動転送設定が有効かどうかを、サーバ２００ｂから取得した設定内容に基づいて判別する。また、ＣＰＵ２０３は、自動転送設定が有効であれば、Ｓ１３０５でさらに、Ｓ６０５で受信した画像ファイルが自動転送対象の種類に該当するかどうかを判別する。
【０１１９】
自動転送設定が有効であり、かつ受信した画像ファイルが自動転送対象に該当する場合、ＣＰＵ２０３はＳ１３０６で、Ｓ６０５で受信した画像ファイルを特定可能な情報を、自動転送対象の画像ファイルのリスト（アップロードリスト）に追加する。画像ファイルを特定可能な情報としては例えば、画像ファイルを保存した二次記憶装置２０５のファイルパスであってよい。アップロードリストが生成されていなければ、ＣＰＵ２０３は新たに生成する。
【０１２０】
一方、自動転送設定が無効であれば、ＣＰＵ２０３はアップロードリストを生成しない。また、自動転送設定が有効であっても受信した画像ファイルが自動転送対象に該当しない場合、ＣＰＵ２０３はＳ６０５で受信した画像ファイルを特定可能な情報をアップロードリストに追加しない。
【０１２１】
直転送に対応し、ペアリングが有効なカメラが見つからずにサーバ２００ｂのポーリングを行った場合で、サーバ２００ｂに未転送画像ファイルがなかった場合、本実施形態のＰＣ２００ａは自動転送処理を行う。
【０１２２】
Ｓ１３１０でＣＰＵ２０３は、アップロードリストを参照し、自動転送対象ファイルを特定するファイルパスなどの情報が記録されているか確認する。アップロードリストが存在しない場合や、アップロードリストにファイルを特定する情報が記載されていない場合、ＣＰＵ２０３は処理をＳ６０１に戻し、アップロードリストにファイルを特定する情報が記録されている場合には処理をＳ１３１１へ進める。
【０１２３】
Ｓ１３１１で送信手段としてのＣＰＵ２０３は、アップロードリストに記録されているファイルをサーバ２００ｂへアップロードして、すべての画像をアップロード後、処理をＳ６０１に戻す。
【０１２４】
なお、本実施形態においても第１の実施形態と同様、サーバ２００ｂから画像ファイルを受信している際や、サーバ２００ｂに画像ファイルを自動転送（アップロード）している際にもデバイス探索処理を実行する。そして、ネットワーク上にペアリング済みかつ直転送に対応したデジタルカメラの存在が検出された場合、ＣＰＵ２０３は実行中の処理を中断し、Ｓ６０５に処理を移行させる。そして、ＣＰＵ２０３は、見つかったデジタルカメラから直転送されるデータを受信する。
【０１２５】
Ｓ１３１１におけるアップロードを中断した場合、ＣＰＵ２０３は途中でアップロードが中断されたデータはアップロードリスト上で未転送の状態で管理することで、次回のアップロード処理時に再アップロードされる。
【０１２６】
なお、本実施形態においても、Ｓ６０９およびＳ１３１１の処理中に、ネットワーク上にペアリング済みかつ直転送に対応したデジタルカメラの存在が検出された場合、実行中の受信またはアップロードが完了してから、処理をＳ６０５に移行させても良い。
【０１２７】
図１４は、図１３に示した本実施形態のＰＣ２００ａの処理のうち、特にアップロードリストを生成するまでの処理に関する工程をさらに詳細に示すフローチャートである。図１４のうち、図９と同様の処理については同じ参照数字を付して説明を省略する。
【０１２８】
Ｓ１４０５でＣＰＵ２０３は、Ｓ９０３およびＳ９０４の処理で、デバイス探索処理で見つかった、直転送に対応したデジタルカメラ１００のペアリングの有効性が確認されたら、フォトストレージサービスのサーバへの転送設定をサーバ２００ｂから取得する。
【０１２９】
その後、Ｓ１４０８でＣＰＵ２０３は、Ｓ１４０５で取得したフォトストレージのサーバへの転送設定を参照し、自動転送設定が有効で、かつＳ９０６で受信した画像ファイルが転送対象の種類に該当するか否かを判断する。両方の条件を満たせば、ＣＰＵ２０３はＳ９０６で受信した画像ファイルを特定する情報をアップロードリストに追加する。
【０１３０】
図１５は本実施形態においてＰＣ２００ａが生成するアップロードリストのデータ構造例を示す図である。
本実施形態において、アップロードリスト１５０１はＸＭＬなどの文字列情報あるいはバイナリデータによるデータブロックとして記述することができる。１５０２以降はアップロードリストを構成するデータ要素である。
１５０２はリスト作成日時であり、当該リスト情報が作成された日時によるタイムスタンプである。具体的にはＰＣ２００ａにデジタルカメラ１００から画像ファイルの転送を開始した（または画像ファイルの受信開始時のＰＣ２００ａの）時刻を示している。
リスト作成日時１５０２は例えば、自動転送処理においてアップロードを行うファイルに時期的な制限を付加する場合などに用いることができる。
【０１３１】
１５０３はCamera Alias IDであり、デジタルカメラ１００に対してサーバ２００ｂが付与した固有情報である。
１５０４はデジタルカメラ１００のAccess IDであり、サーバ２００ｂとデジタルカメラ１００との間にペアリングが設定された時点で発行される。デジタルカメラ１００がサーバ２００ｂと通信するときに使用する認証ＩＤである。デジタルカメラ１００はこの認証ＩＤを使用することで、サーバ２００ｂに通信を許可される。また、送信元のデジタルカメラ１００を特定する情報としても用いられる。
【０１３２】
１５０５はAccess Passwordであり、これも、サーバ２００ｂとデジタルカメラ１００との間にペアリングが設定された時点でサーバ２００ｂから発行される。デジタルカメラ１００がサーバと通信するときに使用する認証パスワードである。
データ転送アプリケーションがAccess ID１５０４およびAccess Password１５０５をサーバ２００ｂに送信することで、サーバ２００ｂはデジタルカメラ１００を一意的に特定しつつ、アクセス許可をするための認証をすることができる。
【０１３３】
１５０６、１５０７、１５０８は、自動転送対象の画像ファイルを特定する画像ファイル情報である。画像ファイル情報は自動転送対象のファイル数Ｎに等しい数記録される。図１５で１５０６は先頭の画像ファイル情報、１５０７は任意の途中ｎ（ｎ＞１）番目の画像ファイル情報、１６０８は最終のＮ（＞ｎ）番目の画像ファイル情報である。
【０１３４】
個々の画像ファイル情報は、対応する画像ファイルをアップロードする際に使用するための複数の情報を含んだ情報ブロック１５０９である。
１５１０はファイル名であり、サーバ２００ｃに画像を送信する際に保存用データとして用いられる。
１５１１は画像ファイルの二次記憶装置２０５の保存位置を示すフルパスであり、画像ファイルをアップロードする際の元データの場所を識別するために使用される。
１５１２は画像ファイルのユニークＩＤであり、同じ画像が繰り返し何度も使用されることを防ぐために、画像生成時にデジタルカメラ１００により発番された情報を所持しておく。
１５１３はファイルの種類であり、自動転送対象ファイルの種類に応じて定義された識別子が使用される。ファイルの種類は、画像ファイルの拡張子であってもよい。
１５１４はファイルサイズであり、アップロードする際のデータサイズのバイト数である。
ファイルサイズ１５１４はアップロードするファイルがすべて正しく転送されたことを確認するための指標としても使用される。
【０１３５】
なお、画像ファイル情報の情報ブロック１５０９の内容は図１５に示した例に限定されるものではなく、ＰＣ２００ａからの自動転送処理に使用する任意の情報を含めることができる。
【０１３６】
図１６は、図１３のＳ１３１０およびＳ１３１１に対応する、ＰＣ２００ａのアップロード処理をより詳細に示したフローチャートである。
Ｓ１６０１でＣＰＵ２０３は、アップロードリストがあればそれを一次記憶装置２０４に読み込み、処理をＳ１６０２へ進める。なお、アップロードリストがなければ、自動転送処理が無効であるか、自動転送対象となる画像ファイルが存在しないことを意味するため、ＣＰＵ２０３は処理を終了する。
【０１３７】
Ｓ１６０２でＣＰＵ２０３は、アップロードリストに画像ファイル情報が記載されていない場合には、処理を終了するが、アップロードリストに画像ファイル情報が記録されている場合には処理をＳ１６０３へ進める。
【０１３８】
Ｓ１６０３でＣＰＵ２０３は、アップロードリストに記録された自動転送対象の画像ファイルの数に等しい回数のループ処理を開始する。
Ｓ１６０４でＣＰＵ２０３は、画像ファイルのアップロードを受け付けてもらうために、サーバ２００ｂに、アップロードする画像ファイルに関する情報を送信し、処理をＳ１６０５へ進める。この際、ＣＰＵ２０３は、サーバ２００ｂから取得した自動転送設定の内容をサーバ２００ｂに送信する。
【０１３９】
Ｓ１６０５でＣＰＵ２０３は、画像ファイルをサーバ２００ｂへアップロードし、処理をＳ１６０６へ進める。
Ｓ１６０６でＣＰＵ２０３は、サーバ２００ｂから正常に受信完了した通知を受けた画像ファイルに関する画像ファイル情報をアップロードリストから削除し、処理をＳ１６０７へ進める。
Ｓ１６０７でＣＰＵ２０３は、アップロードリストに記載された画像ファイル情報が無くなるまでループを完了したら処理を終了する。
【０１４０】
なお、Ｓ１６０４およびＳ１６０５において、ＰＣ２００ａからサーバ２００ｂに画像ファイルをアップロードする際、ＣＰＵ２０３はデジタルカメラ１００がサーバ経由転送でサーバ２００ｂにアクセスするときに使用する認証情報を使用する。この認証情報とは、図４に示したデジタルカメラ１００のAccess IDとAccess Passwordである。デジタルカメラ１００の認証情報を使用してＰＣ２００ａがサーバ２００ｂに認証を受けることで、サーバ２００ｂは、ＰＣ２００ａ経由で受信した画像ファイルを、デジタルカメラ１００から直接受信したファイルと同様にサーバ２００ｃへ転送可能となる。また、上述したように、サーバ２００ｂはＰＣ２００ａから受信した自動転送設定の内容に従って、ＰＣ２００ａがアップロードした画像ファイルの自動転送処理を実行する。
【０１４１】
ただし、ＰＣ２００からサーバ２００ｂにアップロードする画像ファイルには、デジタルカメラ１００から直接サーバ２００ｂに送信する画像ファイルと区別できる情報を含める。これは、サーバ２００ｂが、ＰＣ２００経由で受信した画像ファイルを、デジタルカメラ１００から直接受信した画像ファイルと誤認識して、未転送画像リストに含めることを回避するためである。サーバ２００ｂはＰＣ２００からアップロードされた画像ファイルを除外して未転送画像リストを生成する。これにより、ＰＣ２００ａがアップロードした画像ファイルを未転送画像ファイルとして受信することを回避できる。
【０１４２】
図１７は、サーバ２００ｂが、自動転送設定に基づいてフォトストレージサービスのサーバ２００ｃに画像ファイルを転送する処理の概要を示すフローチャートである。
サーバ２００ｂのＣＰＵ２０３は、直接、あるいはＰＣ２００ａを経由して受信した、デジタルカメラ１００の画像ファイルについて、それらがデジタルカメラ１００から送信された時点における自動転送設定に応じた転送対象リストを生成する。例えば、デジタルカメラ１００から直接画像ファイルを受信するごとに自動転送設定を参照し、転送設定が有効かつ画像ファイルの種類が転送対象の種類に該当すれば、転送先のサーバ２００ｃごとの転送対象リストに、画像ファイルを特定する情報を追加する。また、ＰＣ２００ａから受信した画像ファイルについては、その全てが自動転送対象であるから、ＰＣ２００ａから受信した自動転送設定のうち、転送先のサーバもしくはサービスに関する情報を参照して転送対象リストを生成する。そして、所定の周期で転送対象リストを参照し、自動転送すべき画像ファイルが存在する場合には、以下の自動転送処理を実行する。
【０１４３】
Ｓ１７０１において、サーバ２００ｂのＣＰＵ２０３（以下、単にサーバ２００ｂという）は、自動転送対象リストが存在するフォトストレージサービスのサーバ２００ｃを特定する。
Ｓ１７０３においてサーバ２００ｂは、図１２（ｂ）に示した詳細設定で設定された認証情報を用いて、自動転送先のサーバ２００ｃにログインする。
【０１４４】
Ｓ１７０５においてサーバ２００ｂは、自動転送対象リストに含まれる情報に基づいて、サーバ２００ｂの二次記憶装置２０５から画像ファイルを読み出し、サーバ２００ｃへ転送する。
Ｓ１７０７においてサーバ２００ｂは、自動転送対象リストに含まれる情報に対応する全ての画像ファイルの転送が終了すると、自動転送処理を終了する。複数の転送先が指定されている場合、転送先ごとの転送対象リストに応じて同様の処理を繰り返し実行する。
【０１４５】
以上説明したように、本実施形態においては、データ転送サービスを提供するサーバを介して、他のサービスを提供する外部サーバにデータを自動転送することを可能にしたので、より使い勝手のよいサービスを提供できる。
【０１４６】
また、デジタルカメラからデータが送信された時点における設定に基づいて、外部サーバへの自動転送処理を実行するので、自動転送処理の実行前に自動転送設定が変更されても、当初の意図通りの自動転送処理を実施することができる。
【０１４７】
●（第３の実施形態）
第３の実施形態は、第２の実施形態において、直転送によりＰＣ２００ａが受信した画像ファイルの自動転送処理が確実に行われるようにするための構成に特徴を有する。自動転送処理が有効に設定されている場合、ユーザは、ＰＣ２００ａに存在する画像ファイルについては、直転送でＰＣ２００ａに送信したものか、サーバ経由かでＰＣ２００ａに送信したものかを意識することなく、自動転送されているものと認識しうる。しかし、実際にはＰＣ２００ａからサーバ２００ｂへのアップロードが完了していない可能性がある。
【０１４８】
ユーザが、フォトストレージサービスのサーバ２００ｃに自動転送されたものと認識して、ＰＣ２００ａからサーバ２００ｂへのアップロードが完了していない画像ファイルをＰＣ２００ａから削除してしまうと、問題が生じる可能性がある。特に、デジタルカメラ１００の記録媒体１４１から画像ファイルが削除されている場合には、画像ファイルが失われることになり得る。
【０１４９】
そのため、本実施形態では、ＰＣ２００ａに直転送された画像ファイルについて、サーバ２００ｂへのアップロードが完了しているかどうかを管理し、アップロードが未完了の画像ファイルについては保護するか、削除指示があった場合に警告を行う。これにより、アップロード前に画像ファイルが削除されることを防止し、確実な自動転送処理の実行を実現する。
【０１５０】
図１８は本実施形態のＰＣ２００ａが、アップロード対象の画像ファイルの一覧とアップロード状況を表示する画面の例を示す図である。
この画面は、転送サービスアプリケーションのメニュー内などに配置されたボタンなどから指示された際にＣＰＵ２０３が生成して表示部２０１に表示させる。ＣＰＵ２０３は図１６のＳ１６０５で画像ファイルのサーバ２００ｂへのアップロードが正常に完了すると、Ｓ１６０６で「アップロードリスト」から対応する画像ファイルパスを削除する。この際、削除した画像ファイルパスを記載した「アップロード済みリスト」を作成する。
【０１５１】
そして、ＣＰＵ２０３は、「アップロードリスト」と「アップロード済みリスト」を照らし合わせて、図１８の画面を生成する。アップロードが完了していない画像のステータスには「未送信」と表示し、完了した画像には「送信済」と表示する。また、ＣＰＵ２０３は、アップロードが未完の画像ファイルのうち、「アップロードリスト」に記載された画像ファイルパスに該当する画像ファイルが存在しない場合には「不明」と表示する。これにより、アップロードが完了した画像ファイルと完了していない画像ファイルの情報、ファイルパスに存在せずアップロードできない状態の画像ファイルをユーザが把握することを可能にする。
【０１５２】
なお、本実施形態では、ステータス「不明」となる画像ファイルをなるべく生じさせないように、「アップロードリスト」に記載された画像ファイルが他の場所に移動されたり、削除されたりして、アップロードできなくなることを防ぐようにする。
【０１５３】
具体的には例えば、図１３のＳ１３０８において、デジタルカメラ１００から画像を受信し、「アップロードリスト」に画像ファイルパスを記載した後、ＣＰＵ２０３は「アップロードリスト」に記載された画像ファイルの属性情報を変更し、ロックする。一方、図１６のＳ１６０５で、アップロードが正常に完了したら、ＣＰＵ２０３は二次記憶装置２０５に保存されている画像ファイルのロックを解除する。
【０１５４】
ＰＣ２００ａからサーバ２００ｂへのアップロードを確実に実行するため、アップロードが完了していない画像ファイルを保護する方法は、「アップロードリスト」に記載された画像ファイルをロックする方法に限定されない。
その他の方法の一例として、アップロードが完了するまで該当の画像ファイルを監視しておき、ユーザが削除や移動させようとした場合に警告表示を行うようにしても良い。警告しても削除や移動を行った場合には、図１７の画面表示時に「不明」のステータス表示を行う。また、図１６のＳ１６０５で画像ファイルを送信する際には無視する。
【０１５５】
別の方法として、画像ファイルを予め保存フォルダから別の場所、例えばユーザによって操作されにくい、二次記憶装置２０５内に用意した隠しフォルダにコピーし、「アップロードリスト」には隠しフォルダのパスを記載するようにしても良い。アップロードが完了したら、隠しフォルダや「アップロードリスト」から削除する。ただしこの場合、ユーザには隠しフォルダを意識させないために、図１７の画面に表示する画像ファイルパスには元の保存フォルダパスを表示する。そのため、「アップロードリスト」に、隠しフォルダの画像パスと元の保存フォルダパスを関連付けて保存する。また、同様の理由で「アップロード済みリスト」にも元の保存フォルダのパスを記録する。
【０１５６】
さらに別の方法として、アップロードが完了するまで画像ファイルを監視し、ユーザが削除や移動させようとした場合に隠しフォルダにコピーしてその後のアップロードに利用してもよい。この場合、隠しフォルダにコピーした時点で、アップロードリストのファイルパスを更新する。
【０１５７】
また、デジタルカメラ１００から画像ファイルを受信した日時を記録しておき、規定日数以内にアップロードを実行できるように定期的に警告表示を行ってもよい。例えば、「設定された画像のサーバへの自動アップロード期限は、あと３０日です。インターネットに接続してアップロードできる状態にしてください。」といった表示をＰＣ２００ａの起動時にポップアップ表示させてもよい。このように警告表示を行うことで、普段インターネットに接続していない環境でも接続を促し、アップロードが実行されるようになる。
【０１５８】
ただし規定日数が経過してもアップロードが実行されなかった場合には、該当の画像ファイルパス情報を「アップロードリスト」から削除する。また、画像ファイルのロックや監視の解除、あるいは、隠しフォルダにコピーした画像の削除など、画像ファイルの保護を解除する。こうすることで、特に隠しフォルダに画像をコピーする場合には、二次記憶装置２０５の空き容量を圧迫し続けることがない。
【０１５９】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015036899.tif 000003
【図２】
2015036899.tif 000004
【図３】
2015036899.tif 000005
【図４】
2015036899.tif 000006
【図５】
2015036899.tif 000007
【図６】
2015036899.tif 000008
【図７】
2015036899.tif 000009
【図８】
2015036899.tif 000010
【図９】
2015036899.tif 000011
【図１０】
2015036899.tif 000012
【図１１】
2015036899.tif 000013
【図１２】
2015036899.tif 000014
【図１３】
2015036899.tif 000015
【図１４】
2015036899.tif 000016
【図１５】
2015036899.tif 000017
【図１６】
2015036899.tif 000018
【図１７】
2015036899.tif 000019
【図１８】
2015036899.tif 000020