(57)【要約】【課題】  ネットワーク上に存在する通信機器のうち、通信すべき機器を効率よく発見することが可能な情報処理装置およびその制御方法の提供【解決手段】  第１のネットワーク上で第１のデバイスが見つかった場合、見つかった第１のデバイスが、自身と有効な関連付けがなされているデバイスかどうかを第２のネットワーク上のデバイスに問い合わせる。問い合わせの結果、見つかった第１のデバイスが自身と有効な関連付けがなされているデバイスであると判定される場合には、見つかった第１のデバイスからデータを取得する。一方、見つかった第１のデバイスが自身と有効な関連付けがなされているデバイスであると判定されない場合には、見つかった第１のデバイスとの通信を行わない。【選択図】  図５
2015036900.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワーク上のデバイスおよび、前記第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置であって、
前記第１のネットワーク上で第１のデバイスが見つかった場合、該見つかった第１のデバイスが、前記情報処理装置と有効な関連付けがなされているデバイスかどうかを前記第２のネットワーク上のデバイスに問い合わせる問い合わせ手段と、
前記問い合わせの結果、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定される場合には、前記見つかった第１のデバイスからデータを取得し、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定されない場合には、前記見つかった第１のデバイスとの通信を行わない通信手段とを有することを特徴とする情報処理装置。
【請求項２】
前記問い合わせ手段は、前記見つかった第１のデバイスからデバイス情報を取得し、前記デバイス情報に含まれる前記見つかった第１のデバイスの固有情報を用いて前記問い合わせを行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記問い合わせ手段は、前記第１のネットワーク上で前記第１のデバイスが送信した広告メッセージを受信するか、前記第１のネットワーク上で送信した前記第１のデバイスの探索メッセージに対する応答を受信すると、前記第１のデバイスが見つかったと判定することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記通信手段は、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定されない場合には、前記情報処理装置の広告メッセージを前記第１のネットワーク上に送信しないことを特徴とする請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１のネットワークで前記第１のデバイスが見つからない場合、前記通信手段は前記第２のネットワーク上のデバイスに前記第１のデバイスから送信されたデータを、該デバイスから取得することを特徴とする請求項１から請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
撮像手段をさらに有することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項７】
前記問い合わせ手段は、前記第１のネットワーク上で前記情報処理装置が送信した広告メッセージに対する第１のデバイスからの応答を受信するか、前記第１のネットワーク上で前記第１のデバイスが送信した探索メッセージを受信すると、前記第１のデバイスが見つかったと判定することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記通信手段は、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定されない場合には、前記第１のデバイスからの要求に応答しないことを特徴とする請求項６または請求項７に記載の情報処理装置。
【請求項９】
前記第１のネットワークがローカルエリアネットワークであり、前記第２のネットワークがワイドエリアネットワークであることを特徴とする請求項１から請求項８のいずれか１項に記載の情報処理装置。
【請求項１０】
第１のネットワーク上のデバイスおよび、前記第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置の制御方法であって、
問い合わせ手段が、前記第１のネットワーク上で第１のデバイスが見つかった場合、該見つかった第１のデバイスが、前記情報処理装置と有効な関連付けがなされているデバイスかどうかを前記第２のネットワーク上のデバイスに問い合わせる工程と、
通信手段が、前記問い合わせの結果、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定される場合には、前記見つかった第１のデバイスからデータを取得し、前記見つかった第１のデバイスが前記情報処理装置と有効な関連付けがなされているデバイスであると判定されない場合には、前記見つかった第１のデバイスとの通信を行わない工程と、を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１から請求項９のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置およびその制御方法、プログラムに関する。
【背景技術】
【０００２】
無線通信機能を搭載したデジタルカメラやデジタルビデオカメラが知られている（特許文献１）。このようなデジタルカメラやデジタルビデオカメラは、無線通信機能を用いてネットワークに接続し、撮影した画像データをネットワーク上の外部装置にアップロードすることが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2003-319309号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク上の外部装置と通信する場合、まず通信相手を特定する必要がある。この際、ネットワーク上に存在する機器をサーチすることが考えられるが、サーチによりネットワーク上の特定サービスを有する機器がすべて検出されるのは煩雑である。
【０００５】
本発明は、ネットワーク上に存在する通信機器のうち、通信すべき機器を効率よく発見することが可能な情報処理装置およびその制御方法の提供を目的の１つとする。
【課題を解決するための手段】
【０００６】
上述の目的は、第１のネットワーク上のデバイスおよび、第１のネットワークとは異なる第２のネットワーク上のデバイスと通信可能な情報処理装置であって、第１のネットワーク上で第１のデバイスが見つかった場合、見つかった第１のデバイスが、情報処理装置と有効な関連付けがなされているデバイスかどうかを第２のネットワーク上のデバイスに問い合わせる問い合わせ手段と、問い合わせの結果、見つかった第１のデバイスが情報処理装置と有効な関連付けがなされているデバイスであると判定される場合には、見つかった第１のデバイスからデータを取得し、見つかった第１のデバイスが情報処理装置と有効な関連付けがなされているデバイスであると判定されない場合には、見つかった第１のデバイスとの通信を行わない通信手段とを有することを特徴とする情報処理装置によって達成される。
【発明の効果】
【０００７】
本発明によれば、ネットワーク上に存在する通信機器のうち、通信すべき機器を効率よく発見することが可能な情報処理装置およびその制御方法を提供できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る通信装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】実施形態に係る情報処理装置を実現可能なパーソナルコンピュータの機能構成例を示すブロック図
【図３】第１の実施形態における、デジタルカメラ、ＰＣ、およびサーバの接続形態を模式的に示す図
【図４】第１の実施形態におけるペアリング情報の例を示す図
【図５】第１の実施形態のディスカバリ処理におけるデジタルカメラ、ＰＣ、サーバの動作シーケンス図
【図６】第１の実施形態のディスカバリ処理におけるデジタルカメラの動作を示すフローチャート
【図７】第１の実施形態のディスカバリ処理におけるＰＣの動作を示すフローチャート
【図８】デジタルカメラとＰＣのデバイス情報の例を示す図
【図９】第２の実施形態のディスカバリ処理におけるデジタルカメラ、ＰＣ、サーバの動作シーケンス図
【図１０】第２の実施形態のディスカバリ処理におけるデジタルカメラの動作を示すフローチャート
【図１１】第１の実施形態のディスカバリ処理におけるＰＣの動作を示すフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明の例示的な実施形態について、添付図面を用いて詳細に説明する。
なお、以下に説明する実施形態は、本発明の実現手段の単なる例示であり、本発明が適用される装置の具体的な構成や各種条件によって適宜修正又は変更されてもよい。また、各実施形態を適宜組み合せることも可能である。
【００１０】
●（第１の実施形態）
＜デジタルカメラの構成＞
以下の説明では、データ転送元である通信装置の一例としての、無線通信機能を有するデジタルカメラについて説明する。なお、無線通信機能を有し、データを転送可能な任意の装置に本発明は適用可能である。このような端末としては例えば携帯電話機、パーソナルコンピュータ、タブレット端末、ゲーム機などがあるが、他の機器であってもよい。
【００１１】
図１は、本実施形態に係るデジタルカメラ１００の機能構成例を示すブロック図である。制御部１０１は、例えば、ＣＰＵ（ＭＰＵ）、メモリ（ＤＲＡＭ、ＳＲＡＭ）などからなり、各種処理（プログラム）を実行してデジタルカメラ１００の各ブロックを制御したり、各ブロック間でのデータ送信を制御したりする。また制御部１０１は、ユーザからの操作を受け付ける操作部１０２からの操作信号に応じて、デジタルカメラ１００の各ブロックを制御する。
【００１２】
操作部１０２は、例えば、電源ボタン、ズーム調整ボタン、オートフォーカスボタンなどの撮影に関連する各種操作を入力するスイッチ類からなる。また、メニュー表示ボタン、決定ボタン、その他カーソルキー、ポインティングデバイス、タッチパネル等で構成することが可能であり、ユーザによりこれらのキーやボタンが操作されると制御部１０１に操作信号を送信する。さらに操作部１０２はレリーズボタンを含み、レリーズボタンはいわゆる半押し状態で押下されるスイッチ（ＳＷ１）と、いわゆる全押し状態で押下されるスイッチ（ＳＷ２）とを有する。ＳＷ１の押下により撮影準備指示が出力され、ＳＷ２の押下により撮影指示が出力される。撮影準備動作には、自動焦点検出（ＡＦ）、自動露出制御（ＡＥ）などが含まれる。なお、本実施形態では、静止画撮影のためのレリーズボタンと動画撮影のためのレリーズボタンとを共用しているが、別のボタンとすることも可能である。
【００１３】
バス１０３は、各種データ、制御信号、指示信号などをデジタルカメラ１００の各ブロックに送るための汎用バスである。
撮像部１１０は、撮像レンズにより取り込まれた被写体の光学像の光量を、絞りにより制御し、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の撮像素子により画像信号に変換する。
【００１４】
また、音声入力部１２０は、例えば、内蔵された無指向性のマイクまたは音声入力端子を介して接続された外部マイク等により、デジタルカメラ１００の周囲の音声を集音する。
メモリ１０４は、例えばＲＡＭ(Random Access Memory)や書き換え可能な不揮発性メモリであって、画像信号および音声信号、デジタルカメラ１００の設定情報などを一時的に記憶する。
【００１５】
記録媒体１４１は、デジタルカメラ１００に接続可能な記録媒体である。記録媒体１４１は、デジタルカメラ１００で生成した各種データなどを記録することができる。記録媒体１４１の例としては、例えばハードディスク、光ディスク、書き換え可能な不揮発性半導体メモリなどがあげられる。本実施形態では、いわゆるメモリカードと呼ばれる、デジタルカメラ１００に装着可能な書き換え可能な不揮発性半導体メモリ装置を記録媒体１４１として用いるものとする。
【００１６】
映像出力部１５０は、例えば映像出力端子からなり、接続された外部ディスプレイ等に映像を表示させるために画像信号を送信する。また、映像出力部１５０と後述する音声出力部１５１は統合された１つの端子、例えばＨＤＭＩ（登録商標）端子のような端子であってもよい。
音声出力部１５１は、例えば音声出力端子からなり、接続されたイヤホンやスピーカなどから音声を出力させるために音声信号を送信する。また、音声出力部１５１は、デジタルカメラ１００に内蔵されてもよい。
【００１７】
通信部１５２は外部デバイスとの間でシリアルまたはパラレル通信によるデータの送受信を有線または無線で行う。通信部１５２が用いることのできる通信インタフェースの例としては、ＲＳ２３２Ｃ、ＵＳＢ、ＩＥＥＥ１３９４、Ｐ１２８４、ＳＣＳＩ、モデム、ＬＡＮ、ＩＥＥＥ８０２．１１ｘなどがある。また、通信部１５２は通信インタフェースに応じた通信プロトコルを実行することで、外部デバイスとデータを送受信することが可能である。通信プロトコルの一例として、ＨＴＴＰ(Hyper Text Transfer Protocol)やＰＴＰ−ＩＰ(Picture Transfer Protocol over IP)などが挙げられる。ここで例示した通信インタフェースおよび通信プロトコルは周知であるため、その詳細に関する説明は割愛する。なお、記憶媒体１４１が通信部１５２の機能を備えていてもよい。
【００１８】
表示部１３０は、記録媒体１４１に記録された画像データや、各種メニューなどのＧＵＩを表示する。表示部１３０は例えば、液晶ディスプレイ、有機ＥＬディスプレイ等を用いることができる。
【００１９】
＜パーソナルコンピュータ（ＰＣ）の構成＞
以下の説明では、本発明の実施形態に係るユーザ端末およびサーバを実現可能な情報処理装置の一例として、静止画や動画が取り込み可能なパーソナルコンピュータ（ＰＣ）について説明する。なお、タブレット型ＰＣやスマートフォンも情報処理装置の一例である。
【００２０】
図２は、本実施形態に係るＰＣ２００の機能構成例を示すブロック図である。
ＰＣ２００は、表示部２０１と、操作部２０２と、ＣＰＵ２０３と、一次記憶装置２０４と、二次記憶装置２０５と、通信装置２０６とを有している。
各構成の基本的な機能はデジタルカメラ１００と同様であるから、ここでは詳細な説明は省略する。表示部２０１には液晶ディスプレイや有機ＥＬディスプレイ等を用いることができる。また表示部２０１はＰＣ２００が備える必要はなく、ＰＣ２００は表示部２０１の表示を制御する表示制御機能を有していればよい。一次記憶装置２０４は例えばＲＡＭ(Random Access Memory)や書き換え可能な不揮発性メモリであり、ＰＣの設定値を保持したり、ＣＰＵ２０３が実行するプログラムを保持および展開したり、ＣＰＵ２０３のワークエリア等として利用される。二次記憶装置２０５はＨＤＤや磁気テープドライブなどの磁気記録装置、ＤＶＤ、ＣＤ、ＢＤ、ＭＯなどの光または光磁気メディアを用いる記憶装置、ＳＳＤなど不揮発性半導体メモリを用いた記憶装置である。二次記憶装置２０５は、各種アプリケーション（ＯＳを含む）やユーザデータなどの保存に用いられる。
【００２１】
ＣＰＵ２０３は、一次記憶装置２０４に展開したプログラム（ＯＳ、アプリケーション等）を実行し、ＰＣ２００の各ブロックを制御する。ＣＰＵ２０３はまた、ユーザからの操作を受け付ける操作部２０２からの操作信号に応じて各ブロックを制御する。操作部２０２としては、キーボードやマウス、またタッチパネルなどが一般的に用いられるが、これらに限定されない。
【００２２】
通信装置２０６はデジタルカメラ１００の通信部１５２と同様、所定の規格に応じた通信インタフェースおよび通信プロトコルを用いて外部デバイスとデータ通信する。なお、通信部１５２および通信装置２０６は、複数種の通信インタフェースを有し、通信インタフェースに応じた通信プロトコルでの通信が可能である。本実施形態では、通信装置２０６はローカルエリアネットワーク（ＬＡＮ）上のデバイスと、インターネットなどのワイドエリアネットワーク（ＷＡＮ）上のデバイスとの両方と通信可能であるように構成される。なお、ＬＡＮとＷＡＮは２つの異なるネットワークの例であり、通信装置２０６はデータの送信元デバイスがアクセス可能な第１のネットワークと、データ転送サービスを提供するサーバが存在する第２のネットワークとの両方に接続可能であれば良い。
【００２３】
なお、実施形態に係るサーバおよびユーザ端末はいずれも図２に示したパーソナルコンピュータによって実現可能であるが、以下の説明においては便宜上、「ＰＣ」はユーザ端末を意味するものとして用い、サーバとして機能するＰＣは「サーバ」と呼ぶ。
【００２４】
＜接続形態の概要＞
図３は、本実施形態における、デジタルカメラ１００、ＰＣ２００ａ、およびサーバ２００ｂの接続形態を模式的に表した図である。
図３（ａ）は、サーバ２００ｂとデジタルカメラ１００、サーバ２００ｂとＰＣ２００ａのペアリング処理を行うための通信３０１、３０２の処理を示した模式図である。デジタルカメラ１００とＰＣ２００ａはルータ３００が構築したローカルエリアネットワーク（ＬＡＮ）に無線および有線で接続し、ルータ３００を通じてインターネットなどの広域ネットワーク（ＷＡＮ）に接続し、ＷＡＮ上のサーバ２００ｂと通信可能である。
【００２５】
ルータ３００は、ネットワークの構築機能および、構築したネットワークに接続されたポータブルデバイスやＰＣなどのデバイス間の通信を中継するルーティング機能を提供する。ルータ３００は、インターネットプロトコルスイートに準拠して動作し、自身のＩＰアドレスをGatewayアドレスとしたＬＡＮを構築する。また、ルータ３００は有線インタフェースと無線インタフェースの少なくとも一方を有する。有線接続の一例として、ＬＡＮケーブルによるルータとデバイスの物理的な接続が、また無線接続の一例として、ＩＥＥＥ８０２．１１ｘ（ｘはａ，ｂ，ｇ，ｎ，ａｃなど）に準拠した無線接続があげられる。本実施形態のルータ３００は、図示の通り有線インタフェースおよび無線インタフェースを有する。
【００２６】
ルータ３００が無線インタフェースを有する場合、ＳＳＩＤと暗号キーが設定されており、接続デバイスはルータ３００に設定されているＳＳＩＤと暗号キーを用いてルータ３００に認証されることでルータ３００との無線接続が確立される。自身のＬＡＮにポータブルデバイスやＰＣなどのデバイスが有線接続または無線接続されると、ルータ３００は接続デバイスに対してＩＰアドレスを割り当てる。例えばＩＰアドレスの自動割り当てを行う代表的なプロトコルとしてＤＨＣＰ(Dynamic Host Configuration Protocol)があげられる。ルータ３００はまた、ＬＡＮ上のデバイス間で通信が行われる際にＬＡＮ上を流れるデータのプロトコルやＩＰアドレスを解析し、どの経路を通じて転送すべきかを判断する。
【００２７】
サーバ２００ｂとデジタルカメラ１００の通信３０１を通じたペアリング処理において、ユーザは、サーバ２００ｂが提供するサービスを使用するために、ユーザアカウントを作成する。サーバ２００ｂで作成したユーザアカウントに対して、デジタルカメラ１００を登録することで、サーバ２００ｂとデジタルカメラ１００のペアリングを実現する。ペアリング処理は具体的に以下のように処理することで実現する。デジタルカメラ１００は、サーバ２００ｂに対してデジタルカメラ１００のデバイス情報を送信する。送信するデジタルカメラ１００のデバイス情報は、例えば図４（ａ）に示される情報であり、メモリ１０４にあらかじめ保存されている。具体的には、デジタルカメラ１００のモデル名であるCamera Name、デジタルカメラ１００を一意に識別するための個体情報であるCamera GUID (Global Unique Identifier)などである。ＧＵＩＤ以外にＵＵＩＤなど他の情報を個体情報として用いても良い。
【００２８】
サーバ２００ｂはデジタルカメラ１００の情報を取得すると、デジタルカメラ１００に固有なAlias IDを生成する。サーバ２００ｂはさらに、デジタルカメラ１００がサーバ２００ｂのアクセス認証処理に使用するためのAccess IDとAccess Passwordを生成する。そして、サーバ２００ｂはこれらの情報をデジタルカメラ１００に送信する。デジタルカメラ１００は、その後サーバ２００ｂにアクセスする際に用いるため、受信したAlias ID、Access ID、およびAccess Passwordをメモリ１０４の不揮発性領域に保存する。
【００２９】
サーバ２００ｂは図４（ａ）に示すデジタルカメラ１００とのペアリング情報を二次記憶装置２０５に記憶する。Camera Alias IDは、デジタルカメラ１００の情報と、ユーザアカウントとに関連付けてサーバ２００ｂが生成する、デジタルカメラ１００を一意に特定可能な固有情報である。そのため、デジタルカメラ１００からCamera Alias IDを受信すれば、サーバ２００ｂは通信元のデジタルカメラを一意に特定することができる。以上の処理によって、サーバ２００ｂとデジタルカメラ１００のペアリング処理が完了する。
【００３０】
次に、サーバ２００ｂとＰＣ２００ａとの通信３０２において、ユーザは、ＰＣ２００ａの二次記憶装置２０５に保存されている転送サービスアプリケーションを起動し、通信３０１で作成済みのユーザアカウントを使用してサーバ２００ｂにログインする。ログインの方法に制限は無いが、例えばＰＣ２００ａで稼動する転送サービスアプリケーションのブラウザ機能によってサーバ２００ｂのＵＲＬにアクセスし、表示されたログイン画面にユーザＩＤとパスワードを入力する方法であってよい。ログインが正常に終了して転送サービスアプリケーションに表示される例えばサービスメニュー画面から、ＰＣ登録をユーザが指示すると、サーバ２００ｂは転送サービスアプリケーションを通じてＰＣ２００ａの情報を取得する。
【００３１】
ここでＰＣ２００ａから送信する情報は、二次記憶装置２０５にあらかじめ保存されているＰＣ２００ａのＰＣ名称であるPC Name、ＰＣ２００ａを一意に識別するための個体情報であるPC GUIDなどである。このPC GUIDは、ＰＣ２００ａを一意に識別できるものであればよい。例えば、ＰＣ２００ａのシリアル番号やネットワークインタフェースカード(NIC)のMACアドレスのようなハードウェア情報であっても良いし、転送サービスアプリケーションが生成した文字列であっても良い。
【００３２】
サーバ２００ｂはＰＣ２００ａからデバイス情報を受信すると、サーバ２００ｂがＰＣ２００ａを管理するための識別子であるPC Alias ID、サーバアクセス時の認証処理に使用するAccess IDとAccess Passwordを生成して二次記憶装置２０５に記憶し、ＰＣ２００ａに送信する。なお、サーバ２００ｂは図４（ｂ）に示すＰＣ２００ｂとのペアリング情報を二次記憶装置２０５に記憶する。PC Alias IDは、ＰＣ２００ａのデバイス情報と、ユーザのアカウントとに関連付けてサーバ２００ｂが生成する、ＰＣ２００ａを一意に特定可能な固有情報である。そのため、ＰＣ２００ａからPC Alias IDを受信すれば、サーバ２００ｂは通信元のＰＣを一意に特定することができる。以上の処理によって、サーバ２００ｂとＰＣ２００ａとのペアリング処理が完了する。
【００３３】
以上の処理により、サーバ２００ｂとデジタルカメラ１００、サーバ２００ｂとＰＣ２００ａのペアリング処理がそれぞれ完了する。これらのペアリング処理により、サーバ２００ｂにおいて、同じユーザアカウントにデジタルカメラ１００とＰＣ２００ａの双方が関連付けられ、両者が同一ユーザに関する機器としてサーバ２００ｂに管理されるようになる。その結果、デジタルカメラ１００からＰＣ２００ａに画像ファイルを送信することが可能となる。
【００３４】
図３（ｂ）は、デジタルカメラ１００からＰＣ２００ａへ画像データを送信する際の２通りの経路を示している。本実施形態において、デジタルカメラ１００からサーバ２００ｂを経由してＰＣ２００ａへ画像データを送信する経路は、サーバ２００ｂを経由する経路（サーバ経由転送）と、サーバ２００ｂを経由しない経路（直転送）がある。サーバ経由転送は通信３０４，３０５、直転送は通信３０３で示されている。
【００３５】
本実施形態のデジタルカメラ１００の二次記憶装置１０５には、ネットワーク上でデバイス探索を行うためのディスカバリプロトコルに従ってＰＣ２００ａと通信が可能なプログラムがインストールされている。ここでは、ディスカバリプロトコルとして、ＵＰｎＰ(Universal Plug and Play)およびBonjourの仕様に準拠した通信が可能であるものとするが、これらに限定されない。従って、デジタルカメラ１００には、ＵＰｎＰおよびBonjourを使用した通信を実行するためのコマンド、およびＵＰｎＰおよびBonjourで通信するのに必要なデジタルカメラ１００の固有のデバイス情報などが記録されている。
【００３６】
また、本実施形態のＰＣ２００ａの二次記憶装置２０５にも、ＵＰｎＰおよびBonjourの仕様に準拠してデジタルカメラ１００と通信が可能なプログラムがインストールされている。従って、ＰＣ２００ａには、ＵＰｎＰおよびBonjourを用いた通信を実行するためのコマンド、およびＵＰｎＰおよびBonjourで通信するのに必要なＰＣ固有のデバイス情報などが記録されている。
【００３７】
また、本実施形態のデジタルカメラ１００の二次記憶装置１０５には、画像を転送するためのプロトコルとしてＨＴＴＰに準拠してＰＣ２００と通信可能なプログラムがインストールされている。このプログラムは、ＨＴＴＰクライアントとしてＨＴＴＰサーバにリクエストを送信する機能、また、ＨＴＴＰサーバとして、ＨＴＴＰクライアントからのリクエストを受信し、リクエストに応じた処理を行うための機能の双方を有している。また、本実施形態のＰＣ２００ａの二次記憶装置２０５には、ＨＴＴＰに準拠してデジタルカメラ１００と通信可能なプログラムがインストールされており、このプログラムは、ＨＴＴＰクライアントとしてＨＴＴＰサーバにリクエストを送信する機能を有する。
【００３８】
また、本実施形態のデジタルカメラ１００の記録媒体１４１およびＰＣ２００ａの二次記憶装置２０５にはあらかじめ画像ファイルが記録されているものとする。本実施形態における画像ファイルの送信処理は、デジタルカメラ１００とＰＣ２００ａがネットワークを介して接続され、デジタルカメラ１００から供給された画像ファイルがＰＣ２００ａの二次記憶装置２０５の任意のディレクトリに保存されることで実現される。
【００３９】
本実施形態は、デジタルカメラ１００がディスカバリプロトコルであるＵＰｎＰおよびBonjourを用いてＰＣ２００ａと接続して、ＰＴＰ−ＩＰを用いて画像ファイルをＰＣ２００ａに送信する形態を例にあげて詳細を説明する。ＰＴＰ−ＩＰはPicture Transfer Protocol over TCP/IP networksの略称である。なお、本発明はここで説明する特定のディスカバリプロトコルおよび転送プロトコルに限定されず、他のプロトコルを用いた通信においても実施可能である。例えば、他のディスカバリプロトコルとして、Sun Microsystems社のJiniを用いても良い。
【００４０】
ここで、本実施形態で用いるディスカバリプロトコルであるＵＰｎＰ(Universal Plug and Play)とBonjourについて説明する。ＵＰｎＰは、家庭内のＰＣや周辺機器、ＡＶ機器、電話、家電製品などのデバイスを、ネットワークを通じて接続し、相互に機能を提供しあうための技術仕様である。また、Bonjourは、Ethernet（登録商標）や802.11シリーズのような無線LAN等のＩＰネットワーク上のデバイスを自動的に検出して接続する技術である。Bonjourでは、ルータが関与しない通信はローカルネットワークと判断し、自動的にＩＰアドレスを取得する。また、ローカルホスト名を必ずしも設定しなくてよいマルチキャストＤＮＳを用いて名前付けを行う。また、使いたい機能を持っているデバイスを探し出すことでサービス探索を行う。これらのプロトコルの仕様は公開されているため、その詳細についての説明は割愛する。
【００４１】
図３（ｂ）における通信３０３は、デジタルカメラ１００の画像ファイルをＰＣ２００ａに直接送信する経路（直転送）を示す。ここでは、サーバ２００ｂとのペアリング処理が完了した後、ＰＣ２００ａで稼動する転送サービスアプリケーションが、ルータ３００が構築したＬＡＮ上で機器を定期的に探索し、接続機器からの機器情報取得要求がある場合には応答するものとする。なお、以下では、ＣＰＵ２０３がプログラム実施することによって実現される動作について、ＰＣ２００ａを主体として説明することがある。また、同様に、デジタルカメラ１００の制御部１０１がプログラムを実施することによって実現される動作について、デジタルカメラ１００を主体として説明することがある。
【００４２】
操作部１０２を介してユーザから画像ファイルをＰＣ２００ａに送信する処理の実行が指示されると、上述のプログラムを実行する、デジタルカメラ１００の制御部１０１は、ルータ３００が構築するローカルエリアネットワークに通信部１５２を通じて接続する。次に、デジタルカメラ１００はローカルエリアネットワーク内の機器を探索し、ＰＣ２００ａが存在するか否かを確認する。探索の結果、デジタルカメラ１００とＰＣ２００ａが互いを発見した場合、デジタルカメラ１００はＨＴＴＰサーバの機能を実行して画像ファイルを外部に提供する準備を行い、ＨＴＴＰクライアントからの取得要求を待つ。ＰＣ２００ａは、ＨＴＴＰクライアントの機能を実行し、デジタルカメラ１００に対して画像ファイルの取得要求を送信し、通信３０３を通じてデジタルカメラ１００から直接、画像ファイルを取得する。
【００４３】
なお、本実施形態でデジタルカメラ１００およびＰＣ２００ａはＨＴＴＰに準拠してデータの送受信を行うものとする。ＨＴＴＰサーバとは、World Wide Web（ＷＷＷ）システムにおいて、情報送信機能を持ったソフトウェアまたはコンピュータを指す。ＨＴＴＰサーバはコンテンツを保有しており、ＨＴＴＰクライアントによるＧｅｔ、Ｐｏｓｔ、ＨｅａｄなどのＨＴＴＰメソッドの要求に応じて、コンテンツファイルをＨＴＴＰクライアントに送信する。また、ＨＴＴＰクライアントは、ＨＴＴＰメソッドを用いてＨＴＴＰサーバに対してリクエストを送信するソフトウェアまたはコンピュータを指す。本実施形態における画像取得要求とは、ＨＴＴＰメソッドであり、コンテンツとは、画像ファイルを指す。なお、通信３０３で画像ファイルを送信する際のデジタルカメラ１００とＰＣ２００ａの探索処理の詳細は、図５〜図８を用いて後述する。
【００４４】
図３（ｂ）において、デジタルカメラ１００の画像ファイルを、サーバ２００ｂを経由してＰＣ２００ａに送信する経路は、通信３０４，３０５によって実現される。
デジタルカメラ１００はルータ３００のローカルエリアネットワーク内の機器を探索し、ＰＣ２００ａが存在しないと判断すると、ＨＴＴＰクライアントの機能を実行し、通信３０４によってサーバ２００ｂに対して画像ファイルを送信する。ＨＴＴＰクライアントからＨＴＴＰサーバへのファイル送信は、例えばＰｏｓｔメソッドを用いて実行することができる。送信された画像ファイルは、サーバ２００ｂの二次記憶装置２０５に一時保存される。ＰＣ２００ａは、ＨＴＴＰクライアントとしてサーバ２００ｂに例えば定期的にアクセスし、画像ファイルがサーバ２００ｂに一時保存されているかを確認する。画像ファイルが保存されていると判断した場合、ＰＣ２００ａは通信３０５によってサーバ２００ｂから画像ファイルを取得する。ＨＴＴＰサーバからの画像ファイルの取得は、例えばＧｅｔメソッドを用いて実行することができる。以上が、本実施形態における画像ファイル転送手順の概要である。
【００４５】
＜ディスカバリシーケンス＞
次に、デジタルカメラ１００の記録媒体１４１に保存された画像ファイルを、通信３０３によってＰＣ２００ａに送信（直転送）するために実行する、デジタルカメラ１００、ＰＣ２００ａ、サーバ２００ｂの機器探索（ディスカバリ）処理の詳細について説明する。
図５は、本実施形態のディスカバリ処理におけるデジタルカメラ１００、ＰＣ２００ａ、サーバ２００ｂの動作シーケンス図である。このシーケンスは、デジタルカメラ１００の操作部１０２に含まれる電源ボタンや再生ボタンが押下されたことを制御部１０１が検知したことに応じて開始される。
【００４６】
まず、Ｓ５０１において、デジタルカメラ１００の制御部１０１は、ルータ３００が構築するローカルエリアネットワークに接続する。例えば制御部１０１は表示部１３０に、ネットワーク接続に必要な情報の入力を受付けるＧＵＩ(Graphical User Interface)を表示する。具体的には、制御部１０１は、ＬＡＮを構築するルータ３００に無線接続するために必要なＳＳＩＤ(Service Set Identifier)と暗号キーを入力するテキストボックスを有するＧＵＩを表示部１３０に表示する。
【００４７】
なお、ＳＳＩＤとは、ＩＥＥＥ８０２．１１ｘシリーズの無線ＬＡＮにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。また、暗号キーは、ＳＳＩＤに不正アクセスされないよう通信内容の暗号化を行うためのキーである。ユーザは例えば表示部１３０に表示されたソフトウェアキーボードを操作部１０２で操作してＳＳＩＤおよび暗号キーを入力する。もちろん、ハードウェアキーや音声入力など他の入力方法を用いたり、一度接続したアクセスポイントについてはＳＳＩＤと暗号キーを記憶しておき、次回以降はＳＳＩＤを選択するだけでもよい。
【００４８】
制御部１０１は入力もしくは読み出されたＳＳＩＤおよび暗号キーをメモリ１０４に一時記憶するとともに、ルータ３００との無線接続を確立する。ルータ３００との無線接続が確立すると、ルータ３００はデジタルカメラ１００にＩＰアドレスを割り当てる。制御部１０１は、割り当てられたＩＰアドレスをメモリ１０４に保存する。以上で、ローカルエリアネットワークへの接続（Ｓ５０１）が完了する。
【００４９】
次に、ディスカバリのシーケンスを説明する。ネットワーク上に所望のデバイスタイプの機器が存在することを確認すると、自身の存在をネットワーク上に広告するのが一般的なディスカバリ処理の流れである。しかし、本実施形態では、所望のデバイスタイプのデバイスがＬＡＮ上に存在することが判明しても、そのデバイスが自身とペアリング済みで、かつそのペアリングが有効であることが確認されなければ自身の存在をデバイスに知らせる広告処理を行わない。
【００５０】
図５に示した例では、ＰＣ２００ａが所望のデバイスタイプのデバイスであるデジタルカメラ１００の存在を確認した場合、デジタルカメラ１００とＰＣ２００ａとのペアリングが有効かどうかをサーバ２００ｂに問い合わせる。そして、デジタルカメラ１００がＰＣ２００ａと同一ユーザアカウントに登録されていることが判明すれば、ペアリング済みかつペアリングが有効であるとしてデジタルカメラ１００にＰＣ２００ａの存在を広告する。なお、ペアリング済みのデバイスであっても、その後サーバ２００ｂ側での手続きにおいてペアリングが解除されている場合があるため、ペアリングを管理するサーバ２００ｂに最新の状況を確認する。
【００５１】
本実施形態において、デジタルカメラ１００とＰＣ２００ａとのペアリングが有効か否かを判定するまでの処理は、２つのシーケンスのいずれかによって実現される。１つ目が、Ｓ５０２〜Ｓ５０７に示した、デジタルカメラ１００の広告処理をきっかけとするシーケンス、２つ目が、Ｓ５０８〜Ｓ５１４に示した、ＰＣ２００ａの探索処理をきっかけとするシーケンスである。
【００５２】
まず、デジタルカメラ１００の広告処理をきっかけとするシーケンスについて説明する。
Ｓ５０２において、デジタルカメラ１００の制御部１０１は、広告処理であるStartAdvertisementを実行し、デジタルカメラ１００の存在をＬＡＮ上のデバイスにマルチキャストする。ディスカバリプロトコルがＵＰｎＰの場合、制御部１０１は図８（ａ）に示すDeviceTypeタグのデバイスタイプ、及びServiceTypeタグのサービスタイプを指定したSSDP:Aliveメッセージをマルチキャストする。また、ディスカバリプロトコルがBonjourの場合、制御部１０１はMulticast DNS:Notifyに図８（ｃ）に示すServiceTypeを指定してマルチキャストする。
【００５３】
なお、ＳＳＤＰ(Simple Service Discovery Protocol)は、ネットワーク上で、ＵＰｎＰをサポートするデバイスを探索、発見するための公知のプロトコルである。また、Multicast DNSは、ネットワーク上で、Bonjourをサポートするデバイスを探索、発見するための公知のプロトコルである。
【００５４】
Ｓ５０３で、デジタルカメラ１００の存在が、デジタルカメラ１００が接続しているＬＡＮに接続中のデバイス（ＰＣ２００ａを含む）に通知される。
【００５５】
Ｓ５０４において、ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００の広告メッセージ(SSDP:AliveまたはMulticast DNS:Notify)を受信する。そして、ＣＰＵ２０３は、広告メッセージに含まれる情報から、デジタルカメラ１００が自身が探索対象とするデバイスかどうかを判定する。具体的には、ＣＰＵ２０３は、広告メッセージに含まれるデバイスタイプやサービスタイプからデジタルカメラ１００が探索対象のデバイスであると判定すると、Ｓ５０４でデバイス情報の取得要求(GetDescription)を送信する。具体的には、ＣＰＵ２０３は、ディスカバリプロトコルがＵＰｎＰの場合はHTTP GETを実行してディスクリプションを要求し、Bonjourの場合はTXTレコードを要求する。
【００５６】
次に、Ｓ５０５において、デジタルカメラ１００の制御部１０１は、取得要求に応答してデバイス情報をＰＣ２００ａへ送信する。図８（ａ）は、ディスカバリプロトコルがＵＰｎＰの場合にＳ５０５で送信されるデバイス情報(Description)の例である。また、図８（ｃ）の下段は、ディスカバリプロトコルがBonjourの場合にＳ５０５で送信されるＴＸＴレコードの例である。図８（ａ）および（ｃ）から分かるように、制御部１０１は、デバイス情報のns:X_devAliasIDまたはdevAid.ABCDE.comに、デジタルカメラ１００のCamera Alias IDを含める。
【００５７】
次に、Ｓ５０６において、ＰＣ２００ａのＣＰＵ２０３は、サーバ２００ｂに対し、デジタルカメラ１００とＰＣ２００ａとのペアリングが有効か否か（有効なペアリング設定が存在するか否か、もしくはペアリング設定の有効性）を問い合せる。具体的には、ＣＰＵ２０３はデジタルカメラ１００から取得した固有情報(Camera Alias ID)を基に、サーバ２００ｂに問い合わせ(GetPairingInfo)を送信する。なお、デバイス情報として他の固有情報が用いられても良い。
【００５８】
Ｓ５０７において、サーバ２００ｂのＣＰＵ２０３は、受信したデバイス固有情報(Camera Alias ID)を含んだカメラ−サーバ間のペアリング設定（図４（ａ））があるか二次記憶装置２０５を調べる。この際、サーバ２００ｂのＣＰＵ２０３は、Camera Alias IDがＰＣ２００ａと同じユーザアカウントに関連付けられていれば、ＰＣ２００ａとのペアリングが有効なデジタルカメラであると判定する。また、サーバ２００ｂのＣＰＵ２０３は、Camera Alias IDがペアリング設定に存在しない場合や、ＰＣ２００ａと異なるユーザアカウントに関連付けられている場合には、ＰＣ２００ａとのペアリングが有効でないと判定する。そして、サーバ２００ｂのＣＰＵ２０３は、判定結果(Result)をＰＣ２００ａに送信する。
以上が、デジタルカメラ１００の広告処理をきっかけとするシーケンスである。
【００５９】
次に、ＰＣ２００ａの探索処理をきっかけとするシーケンスについて説明する。
Ｓ５０８において、ＰＣ２００ａのＣＰＵ２０３は、ＰＣ２００ａが接続しているネットワークに、特定のタイプのデバイスが接続しているか問い合わせる探索メッセージ(StartSearch)をマルチキャストする。具体的には、ＰＣ２００ａのＣＰＵ２０３は、ディスカバリプロトコルがＵＰｎＰの場合は、ＳＳＤＰのM-Searchを開始する。M-Searchはネットワーク上のＵＰｎＰ対応デバイスを検出するメソッドであり、図８（ａ）に示すDeviceTypeタグのデバイスタイプ、及びServiceTypeタグのサービスタイプを指定してマルチキャストする。一方、ディスカバリプロトコルがBonjourの場合、ＰＣ２００ａのＣＰＵ２０３はMulticastDNS:Queryに、検索対象とするServiceType（図８（ｃ）上段）を指定してマルチキャストする。
【００６０】
Ｓ５０９で、ＰＣ２００ａが接続しているＬＡＮに接続中のデバイス（デジタルカメラ１００を含む）に、探索メッセージが通知される。
【００６１】
次に、Ｓ５１０において、デジタルカメラ１００の制御部１０１は、デジタルカメラ１００のデバイスタイプやサービスタイプが受信した探索メッセージに指定されたものと一致するか判定する。そして、制御部１０１は、一致する場合には応答(Search Response)をＰＣ２００ａに送信する。
Ｓ５１１〜Ｓ５１４はＳ５０４〜Ｓ５０７と同様であるため説明は割愛する。以上が、ＰＣ２００ａの探索処理をきっかけとするシーケンスである。
【００６２】
Ｓ５０７もしくはＳ５１４において、デジタルカメラ１００が自身と有効にペアリング設定されているデバイスであるとの判定結果がサーバ２００ｂから得られた場合、Ｓ５１５またはＳ５１９以降のシーケンスが実行される。また、ＰＣ２００ａのＣＰＵ２０３は、自身のデバイス情報に、ペアリングが有効と判定されたデバイスのAlias IDを含める。一方、Ｓ５０７もしくはＳ５１４において、デジタルカメラ１００が自身と有効にペアリング設定されていないデバイスであるとの判定結果がサーバ２００ｂから得られた場合、Ｓ５１５またはＳ５１９以降のシーケンスは実行されない。
【００６３】
デジタルカメラ１００がＰＣ２００ａを、自身と有効にペアリング設定されたＰＣと判定してＨＴＴＰサーバを起動するまでの処理もまた、２つのシーケンスのいずれかによって実現される。１つ目が、Ｓ５１５〜Ｓ５１８に示した、ＰＣ２００ａの広告処理をきっかけとするシーケンス、２つ目が、Ｓ５１９〜Ｓ５２３に示した、デジタルカメラ１００の探索処理をきっかけとするシーケンスである。
【００６４】
まず、ＰＣ２００ａの広告処理をきっかけとするシーケンスについて説明する。
Ｓ５１５において、ＰＣ２００ａのＣＰＵ２０３は、広告メッセージ(StartAdvertisement)をマルチキャストし、ＰＣ２００ａの存在をＬＡＮ上のデバイスに通知する。ディスカバリプロトコルがＵＰｎＰの場合、ＰＣ２００ａのＣＰＵ２０３は図８（ｂ）に示すDeviceTypeタグのデバイスタイプ、及びServiceTypeタグのサービスタイプを指定したSSDP:Aliveメッセージをマルチキャストする。また、ディスカバリプロトコルがBonjourの場合、ＰＣ２００ａのＣＰＵ２０３はMulticast DNS:Notifyメッセージに図８（ｄ）上段に示すServiceTypeを指定してマルチキャストする。
【００６５】
Ｓ５１６で、ＰＣ２００ａの存在が、ＰＣ２００ａが接続しているＬＡＮに接続中のデバイス（デジタルカメラ１００を含む）に通知される。
【００６６】
次に、Ｓ５１７において、デジタルカメラ１００の制御部１０１は、ＰＣ２００ａからの広告メッセージを受信すると、デバイス情報の取得要求(Get_Description)をＰＣ２００ａに送信する。具体的には、制御部１０１は、ディスカバリプロトコルがＵＰｎＰの場合はHTTP GETを実行してディスクリプションを要求し、Bonjourの場合はTXTレコードを要求する。
【００６７】
次に、Ｓ５１８において、ＰＣ２００ａのＣＰＵ２０３は、取得要求に応答してデバイス情報をデジタルカメラ１００へ送信する。図８（ｂ）は、ディスカバリプロトコルがＵＰｎＰの場合にＳ５１８で送信されるデバイス情報(Description)の例である。また、図８（ｄ）の下段は、ディスカバリプロトコルがBonjourの場合にＳ５１８で送信されるＴＸＴレコードの例である。図８（ｂ），（ｄ）から分かるように、ＰＣ２００ａのＣＰＵ２０３は、デバイス情報のns:X_devAliasIDまたはdevAid.ABCDE.comに、ペアリング設定が有効なデバイスのDevice Alias IDを含める。ここでは、デジタルカメラ１００のAlias IDが含まれている。ＰＣ２００ａのDevice Alias IDは、デバイス情報のns:X_sevAliasIDまたはsevAid.ABCDE.comに含めている。以上が、ＰＣ２００ａの広告処理をきっかけとするシーケンスである。
【００６８】
次に、デジタルカメラ１００の探索処理をきっかけとするシーケンスについて説明する。
Ｓ５１９において、デジタルカメラ１００の制御部１０１は、デジタルカメラ１００が接続しているネットワークに、特定のタイプのデバイスが接続しているか問い合わせる探索メッセージ(StartSearch)をマルチキャストする。具体的には、制御部１０１は、ディスカバリプロトコルがＵＰｎＰの場合は、図８（ｂ）に示すDeviceTypeタグのデバイスタイプ、及びServiceTypeタグのサービスタイプを指定したM-Searchメッセージをマルチキャストする。一方、ディスカバリプロトコルがBonjourの場合、制御部１０１はMulticastDNS:Queryに、検索対象とするServiceType（図８（ｄ）上段）を指定してマルチキャストする。
【００６９】
Ｓ５２０で、デジタルカメラ１００が接続しているＬＡＮに接続中のデバイス（ＰＣ２００ａを含む）に、探索メッセージが通知される。
【００７０】
Ｓ５２１において、ＰＣ２００ａのＣＰＵ２０３は、ＰＣ２００ａのデバイスタイプやサービスタイプが受信した探索メッセージに指定されたものと一致するか判定し、一致すれば応答(Search Response)をデジタルカメラ１００に送信する。
Ｓ５２２〜Ｓ５２３はＳ５１７〜Ｓ５１８と同様であるため説明は割愛する。以上が、デジタルカメラ１００の探索処理をきっかけとするシーケンスである。
【００７１】
Ｓ５１８もしくはＳ５２３において、デジタルカメラ１００の制御部１０１が、探索対象のデバイスからデバイス情報を取得できた場合、Ｓ５２４以降のシーケンスが実行される。一方、Ｓ５１８もしくはＳ５２３において、デジタルカメラ１００の制御部１０１が探索対象のデバイスからデバイス情報を取得できない場合、Ｓ５２４以降のシーケンスは実行されない。
【００７２】
Ｓ５２４において、デジタルカメラ１００の制御部１０１は、Ｓ５１８またはＳ５２３で取得したデバイス情報(Description)に自身のDevice Alias IDが含まれるか否かを確認する。具体的には、ディスカバリプロトコルがＵＰｎＰの場合は図８（ｂ）のns:X_devAliasIdタグに記述されているDevice AliasIDを、自身のDevice Alias IDと一致するか判定する。また、ディスカバリプロトコルがBonjourの場合は図８（ｄ）のdevAid.ABCDE.comのKeyに記述されているDevice AliasIDを参照し、自身のDevice Alias IDと一致するか判定する。
【００７３】
一致した場合、制御部１０１はＰＣ２００ａをペアリングが有効なＰＣであると判断し、ＨＴＴＰサーバ機能を実行する。そして、制御部１０１は、ＨＴＴＰクライアントとして動作するＰＣ２００ａからのリクエスト受信の準備、および提供可能な画像ファイルのリストの生成などを行う。このリストは、例えばＸＭＬ(Extensible Markup Language)で生成することができる。
【００７４】
なお、別の実施形態において制御部１０１は、ＰＣ２００ａから受信したデバイス情報（DescriptionやＴＸＴレコード）に自身のDevice Alias IDが含まれるかどうかの判定を行わなくてもよい。この場合、制御部１０１は、要求に応じてＰＣ２００ａがデバイス情報を送信してきたことをもって、ＰＣ２００ａが有効にペアリングされたＰＣと判定してもよい。
【００７５】
Ｓ５２５において、ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００が提供可能な画像ファイルのリストを取得する。具体的には、ＰＣ２００ａのＣＰＵ２０３は、ＨＴＴＰクライアントとして、ＨＴＴＰサーバであるデジタルカメラ１００に対してHTTP Getメソッド(GetImageList)を実行する。リストの場所はＵＲＩ(Uniform Resource Identifier)としてＳ５０５またはＳ５１２にて取得したデバイス情報に記述されている。具体的には、ディスカバリプロトコルがＵＰｎＰの場合は、図８（ａ）のns:X_imgLstタグ、Bonjourの場合は図８（ｃ）のimglist.ABCDE.comのKeyにＵＲＩが記述されている。ＰＣ２００ａのＣＰＵ２０３は、このＵＲＩをアクセス先としたHTTP Getメソッドをデジタルカメラ１００に対して実行する。
【００７６】
Ｓ５２６において、ＨＴＴＰサーバとして機能するデジタルカメラ１００の制御部１０１は、デジタルカメラ１００が提供可能な画像ファイルのリストをＰＣ２００ａに送信する。上述の通りリストは例えばＸＭＬで記述され、デジタルカメラ１００が提供可能な画像ファイルそれぞれのＵＲＩが含まれている。
【００７７】
Ｓ５２７において、ＨＴＴＰクライアントとして機能するＰＣ２００ａのＣＰＵ２０３は、取得した、デジタルカメラ１００が提供可能な画像ファイルのリストを解析し、画像ファイル取得のリクエストをデジタルカメラ１００に送信する。具体的には、ＰＣ２００ａのＣＰＵ２０３は、リスト中に含まれる画像ファイルのＵＲＩをアクセス先としたHTTP Getメソッドを実行する。
【００７８】
Ｓ５２８において、デジタルカメラ１００の制御部１０１は、ＵＲＩで指定された画像ファイルをＰＣ２００ａに送信する。ＰＣ２００ａのＣＰＵ２０３は、画像ファイルのリストから、受信が完了した画像ファイルのＵＲＩを削除する。ＰＣ２００ａのＣＰＵ２０３およびデジタルカメラ１００の制御部１０１は、ＰＣ２００ａがリストに含まれる画像ファイルを全て取得するまでＳ５２７、Ｓ５２８の処理を繰り返す。
【００７９】
Ｓ５２９において、ＰＣ２００ａのＣＰＵ２０３は、画像ファイルのリストから画像ファイルのＵＲＩが全て削除されると、画像ファイルの取得が全て完了したことをデジタルカメラ１００に通知する(NotifyComplete)。
【００８０】
Ｓ５３０において、デジタルカメラ１００の制御部１０１は、取得完了の通知を受信すると、ＨＴＴＰサーバとしての機能を終了させて、ネットワーク接続を切断する(Result)。
以上が、ディスカバリ処理シーケンスにおけるデジタルカメラ１００、ＰＣ２００ａ、サーバ２００ｂの動作である。
【００８１】
＜ディスカバリ処理におけるデジタルカメラの動作＞
上述したディスカバリ処理におけるデジタルカメラ１００の動作について、図６に示すフローチャートを用いて再度説明する。
Ｓ６０１において、制御部１０１は、ルータ３００が構築するローカルエリアネットワークに接続する。図５のＳ５０１に対応する。
Ｓ６０２において、制御部１０１は、広告処理を行う。図５のＳ５０２に対応する。
Ｓ６０３において、制御部１０１は、探索処理を行う。図５のＳ５１９に対応する。
Ｓ６０４において、制御部１０１は、ネットワーク上の他デバイスからマルチキャストされた探索メッセージを受信したか否かを判断する。図５のＳ５０９に対応する。探索メッセージを受信した場合、制御部１０１は処理をＳ６０５へ進め、受信していなければ処理をＳ６０６へ進める。
【００８２】
Ｓ６０５において、制御部１０１は、受信した探索メッセージに対するレスポンスをＰＣ２００ａに送信する。図５のＳ５１０に対応する。
Ｓ６０６において、デジタルカメラ１００の制御部１０１は、デバイス情報の取得要求（Ｓ５１１に記載のHTTP Getメソッド）を受信したか否か判断する。制御部１０１は、デバイス情報の取得要求を受信していれば処理をＳ６０７に進め、受信していなければ処理をＳ６０８へ進める。
【００８３】
Ｓ６０７において、制御部１０１は、要求されたデバイス情報をＰＣ２００ａへ送信する。図５のＳ５０５に対応する。
Ｓ６０８において、制御部１０１は、ＰＣ２００ａからの広告マルチキャストメッセージを受信したか否かを判断する。図５のＳ５１６に対応する。制御部１０１は、ＰＣ２００ａから広告マルチキャストメッセージを受信していれば処理をＳ６１０へ進め、受信していなければ処理をＳ６０９へ進める。
【００８４】
Ｓ６０９において、制御部１０１は、Ｓ６０３で送信した探索マルチキャストメッセージに対してＰＣ２００ａからのレスポンスを受信したか否かを判断し、レスポンスを受信していれば処理をＳ６１０へ進め、受信していなければ処理をＳ６１５に進める。
Ｓ６１０において、制御部１０１は、デバイス情報の取得要求をＰＣ２００ａに送信する。図５のＳ５１７、Ｓ５２２に対応する。
Ｓ６１１において、制御部１０１は、Ｓ５１８またはＳ５２３にて送信されたＰＣ２００ａのデバイス情報を受信する。
Ｓ６１２において、制御部１０１は、ＰＣ２００ａがデジタルカメラ１００とペアリングが有効なデバイスであるか否かを判定する。図５のＳ５２４に対応する。制御部１０１は、ＰＣ２００ａがペアリングが有効なデバイスであれば処理をＳ６１３へ進め、ペアリングが有効なデバイスでなければ処理をＳ６１５に進める。
【００８５】
Ｓ６１３において、制御部１０１は、ＨＴＴＰサーバ機能を有効にする。図５のＳ５２４に対応する。なお、本実施形態では、ＰＣ２００ａがペアリングが有効なデバイスであると判断した後にＨＴＴＰサーバ機能を有効にする形態を説明した。しかし、ＨＴＴＰサーバ機能の有効化が完了する前にＨＴＴＰクライアント（ＰＣ２００ａ）からリクエストが送信された場合、応答できない可能性がある。そのため、Ｓ６０１でＬＡＮへの接続が確立した時点で、ＨＴＴＰサーバ機能を有効化しておいてもよい。
【００８６】
Ｓ６１４において、制御部１０１は、ＰＣ２００ａの要求に対して画像ファイルのリストおよび画像ファイルの送信を行う。図５のＳ５２５〜Ｓ５３０に対応する。
Ｓ６１５において、制御部１０１は、ディスカバリ処理を開始してからＮ秒経過したか否かを判断する。制御部１０１はあらかじめディスカバリ実行期間を設定しており、実行期間中はＳ６０４〜Ｓ６１４の処理を繰り返すことで、デジタルカメラ１００が接続しているネットワーク上でペアリングが有効なＰＣを探索する。もし、設定した実行期間内にペアリングが有効なＰＣが探索できなければ（タイムアウトした場合）、制御部１０１は処理をＳ６１６へ進める。
【００８７】
Ｓ６１６において、制御部１０１は、接続しているネットワークに対して、ディスカバリプロトコルのネットワーク離脱のためのメッセージをマルチキャストする。具体的には、制御部１０１は、ディスカバリプロトコルがＵＰｎＰの場合は、SSDP:Byebyeを、Bonjourの場合は、MulticastDNS:goodbyeを、それぞれマルチキャストする。
【００８８】
Ｓ６１７において、制御部１０１は、ペアリングが有効なＰＣ（ＰＣ２００ａ）に直転送ではなくサーバ経由で画像ファイルを転送するため、ＨＴＴＰクライアント機能を有効化する。なお、この時点でＨＴＴＰサーバ機能が有効化されている場合、ＨＴＴＰクライアント機能の有効化を行う前にＨＴＴＰサーバ機能を終了してもよい。
【００８９】
Ｓ６１８において、制御部１０１は、サーバ２００ｂへ画像送信するための準備を行う。具体的には、制御部１０１は、サーバ２００ｂに対して送信する画像ファイルの情報（総ファイル数、画像ファイル名、ファイルサイズなど）を、サーバ２００ｂに送信する。
Ｓ６１９において、制御部１０１は、ＨＴＴＰサーバとして機能するサーバ２００ｂに対してＨＴＴＰのＰｏｓｔメソッドを実行し、画像ファイルをサーバ２００ｂへ送信する。
以上が、本実施形態のディスカバリ処理におけるデジタルカメラ１００の動作である。
【００９０】
＜ディスカバリ処理におけるＰＣの動作＞
上述したディスカバリ処理におけるＰＣ２００ａの動作について、図７に示すフローチャートを用いて再度説明する。
Ｓ７０１において、ＰＣ２００ａのＣＰＵ２０３は、転送サービスアプリケーションを二次記憶装置２０５から一次記憶装置２０４にロードし、起動する。
Ｓ７０２において、ＰＣ２００ａのＣＰＵ２０３は、探索処理を実行する。図５のＳ５０８に対応する。
【００９１】
Ｓ７０３において、ＰＣ２００ａのＣＰＵ２０３は、カメラが発見されたか否かを判断する。ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００からＳ５０２で説明した広告マルチキャストメッセージを受信した場合か、Ｓ７０２で送信した探索マルチキャストメッセージに対してレスポンスを受信した場合にはカメラを発見したと判断する。ＰＣ２００ａのＣＰＵ２０３は、カメラを発見したと判断した場合は処理をＳ７０４へ、カメラを発見したと判断しなかった場合は処理をＳ７１３へ進める。
【００９２】
Ｓ７０４において、ＰＣ２００ａのＣＰＵ２０３は、発見したデバイスに対してデバイス情報の取得要求(Get_Description)を送信する。図５のＳ５０４またはＳ５１１に対応する。
Ｓ７０５において、ＰＣ２００ａのＣＰＵ２０３は、発見したカメラからＳ５０５またはＳ５１２で送信されたデバイス情報を取得する。
Ｓ７０６において、ＰＣ２００ａのＣＰＵ２０３は、発見したカメラが自身とペアリングが有効なデバイスであるか否かをサーバ２００ｂへ問合せる。図５のＳ５０６またはＳ５１３に対応する。
【００９３】
Ｓ７０７において、ＰＣ２００ａのＣＰＵ２０３は、サーバ２００ｂからＳ５０７またはＳ５１４で送信された判定結果を基に、発見したカメラが自身とペアリングが有効なデバイスであるか否かを判断する。ＰＣ２００ａのＣＰＵ２０３は、発見したカメラが自身とペアリングが有効なデバイスであると判断した場合はＳ７０８へ、そうでない場合は、Ｓ７１３へ処理を進める。
【００９４】
Ｓ７０８において、ＰＣ２００ａのＣＰＵ２０３は、広告処理を開始する。図５のＳ５１５に対応する。
Ｓ７０９において、ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００からデバイス情報の取得要求があるか否かを判断し、デバイス情報の取得要求があると判断した場合はＳ７１０へ。そうでない場合はＳ７１３へ処理を進める。
【００９５】
Ｓ７１０において、ＰＣ２００ａのＣＰＵ２０３は、ＰＣ２００ａのデバイス情報をデジタルカメラ１００へ送信する。図５のＳ５１８またはＳ５２３に対応する。
Ｓ７１１において、ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００から画像ファイルのリストおよび画像ファイルを取得する。図５のＳ５２５〜Ｓ５３０に対応する。
【００９６】
Ｓ７１２において、ＰＣ２００ａのＣＰＵ２０３は、デジタルカメラ１００から画像ファイルを全て取得した後、接続しているネットワークに対して、ディスカバリプロトコルのネットワーク離脱のためのメッセージをネットワークにマルチキャストする。具体的には、ＰＣ２００ａのＣＰＵ２０３は、ディスカバリプロトコルがＵＰｎＰの場合はSSDP:Byebyeを、Bonjourの場合はMulticastDNS:goodbyeを、それぞれマルチキャストする。ＰＣ２００ａのＣＰＵ２０３はこのマルチキャストにより、広告処理を終了し、その後、処理をＳ７０３に戻して探索処理を繰り返す。
【００９７】
一方、Ｓ７１３において、ＰＣ２００ａのＣＰＵ２０３は、ディスカバリを開始してからのＮ秒経過したか否かを判断する。ＰＣ２００ａはあらかじめディスカバリ実行期間を設定しており、実行期間中はＳ７０３〜Ｓ７１２の処理を繰り返すことで、ＰＣ２００ａが接続しているＬＡＮ上でペアリングが有効なデバイス（カメラ）を探索する。設定した実行期間内にペアリングが有効なデバイスが見つからなければ、ＰＣ２００ａのＣＰＵ２０３は、サーバ２００ｂから画像ファイルを取得するために処理をＳ７１４へ進める。
【００９８】
Ｓ７１４において、ＰＣ２００ａのＣＰＵ２０３は、サーバ２００ｂにアクセスして、サーバ２００ｂに取得すべき画像ファイルが保存されているか否かを確認する。サーバ２００ｂにはＰＣ２００ａが受信すべき画像ファイルのリストが生成されており、ＰＣ２００ａはＨＴＴＰクライアントとしてHTTP Getメソッドを実行し、ＨＴＴＰサーバとして機能するサーバ２００ｂからリストを取得する。リストの形式に特に制限は無いが、デジタルカメラ１００が提供するような、画像ファイルごとのＵＲＩが記述されたＸＭＬ形式のリストであって良い。
【００９９】
Ｓ７１５において、ＰＣ２００ａのＣＰＵ２０３は、Ｓ７１４にて取得したリストを解析し、取得すべき画像ファイルがあるか否かを判断する。ＰＣ２００ａのＣＰＵ２０３は、例えば、取得したリストに画像ファイルのＵＲＩが記述されている場合には取得すべき画像ファイルがあると判断して処理をＳ７１６へ進め、そうでない場合は処理をＳ７０３へ戻す。
Ｓ７１６において、ＰＣ２００ａのＣＰＵ２０３は、リストに含まれる画像ファイルのＵＲＩをアクセス先のアドレスとするHTTP Getメソッドをサーバ２００ｂに対して実行し、サーバ２００ｂから画像ファイルを取得する。ＰＣ２００ａのＣＰＵ２０３は、この処理を、リストにＵＲＩが記述された画像ファイルを全て取得するまで繰り返す。
以上が、本実施形態のディスカバリ処理におけるＰＣ２００ａの動作である。
【０１００】
このように、本実施形態によれば、自身が接続しているネットワーク上に、探索対象のタイプのデバイス（特定のサービスを有するデバイス）が見つかった場合、そのデバイスと通信すべきかどうかをディスカバリ処理において判別する。従って、見つかったデバイスと通信すべきかどうかの判定が早期に可能であり、通信すべきデバイスの探索を効率的に行うことができる。
【０１０１】
●（第２の実施形態）
第１の実施形態は、デジタルカメラ１００とＰＣ２００ａとのペアリングの有効性をＰＣ２００ａがサーバ２００ｂに問合せる形態であったが、本実施形態では、ペアリングの有効性の問い合わせをデジタルカメラ１００が行う形態について説明する。
図９は、本実施形態のディスカバリ処理におけるデジタルカメラ１００、ＰＣ２００ａ、サーバ２００ｂの動作シーケンス図である。図９において、図５と同じ動作については同じ参照数字を付して説明を省略する。
【０１０２】
Ｓ９１５において、デジタルカメラ１００の制御部１０１は、サーバ２００ｂに対し、デジタルカメラ１００とＰＣ２００ａとのペアリングが有効か否か（有効なペアリング設定が存在するか否か、もしくはペアリング設定の有効性）を問い合せる。具体的には、制御部１０１はＰＣ２００ａから取得した固有情報(Devicea Alias ID)を基に、サーバ２００ｂに問い合わせ(GetPairingInfo)を送信する。なお、デバイス情報として他の固有情報が用いられても良い。制御部１０１は具体的には、ディスカバリプロトコルがＵＰｎＰの場合は図８（ｂ）のns:X_sevAliasIdタグに、Bonjourの場合は図８（ｄ）のserAid.ABCDE.comのKeyに記述されているＰＣ２００ａのDevice AliasIDを送信する。
【０１０３】
Ｓ９１６において、サーバ２００ｂのＣＰＵ２０３は、受信したデバイス固有情報(Device Alias ID)を含んだＰＣ−サーバ間のペアリング設定（図４（ｂ））があるか二次記憶装置２０５を調べる。この際、サーバ２００ｂのＣＰＵ２０３は、Device Alias IDがデジタルカメラ１００と同じユーザアカウントに関連付けられていれば、デジタルカメラ１００とのペアリングが有効なＰＣであると判定する。また、サーバ２００ｂのＣＰＵ２０３は、Device Alias IDがペアリング設定に存在しない場合や、デジタルカメラ１００と異なるユーザアカウントに関連付けられている場合には、デジタルカメラ１００とのペアリングが有効でないと判定する。そして、サーバ２００ｂのＣＰＵ２０３は、判定結果(Result)をデジタルカメラ１００に送信する。
【０１０４】
また、Ｓ９２２およびＳ９２３ではＳ９１５およびＳ９１６と同様に処理するため説明は割愛する。
以上が、本実施形態におけるディスカバリ処理におけるデジタルカメラ１００の動作である。
【０１０５】
図１０は、図９のシーケンスチャートにおけるデジタルカメラ１００の処理を示すフローチャートである。図１０において、図６と同様の動作については同様の参照数字を付して説明を省略する。
Ｓ１０１２において、デジタルカメラ１００の制御部１０１は、サーバ２００ｂに対して、デジタルカメラ１００とＰＣ２００ａとのペアリングが有効か否か（有効なペアリング設定が存在するか否か、もしくはペアリング設定の有効性）を問い合せる。図９のＳ９１５に対応する。
【０１０６】
Ｓ１０１３において、デジタルカメラ１００の制御部１０１は、Ｓ１０１２の問い合わせに対してサーバ２００ｂから返送された判定結果を基に、ＰＣ２００ａがデジタルカメラ１００とペアリングが有効なデバイスであるか否かを判断する。ＰＣ２００ａがデジタルカメラ１００とペアリングが有効なデバイスであると判断した場合、制御部１０１は処理をＳ１０１４へ進め、そうでない場合は処理をＳ６１５へ進める。
【０１０７】
なお、Ｓ６１５でディスカバリ処理の開始からＮ秒経過してもペアリングが有効なＰＣが見つからず、サーバ２００ｂに画像ファイルを送信すると決定した場合、制御部１０１は表示部１３０にディスカバリ処理の結果を表示してもよい。例えば、制御部１０１は、探索対象の（特定サービスを有する）デバイスは発見したが、自身とのペアリングが有効でないデバイスであったことを示すメッセージを表示部１３０に表示する。または、探索期間内に探索対象のデバイスが１つも発見できなかった場合、制御部１０１は時間切れの旨を示すメッセージを表示部１３０に表示する。
以上が、本実施形態のディスカバリ処理におけるデジタルカメラ１００の動作である。
【０１０８】
図１１は、本実施形態のディスカバリ処理におけるＰＣ２００ａの動作を示すフローチャートであり、図７と同じ動作については同様の参照数字を付して説明を省略する。
このように、本実施形態においても、第１の実施形態と同様の効果を実現できる。
【０１０９】
＜他の実施形態＞
上述の実施形態では、デジタルカメラ１００が、接続するＬＡＮに自身とのペアリングが有効なＰＣ２００ａが存在すればＨＴＴＰサーバ、存在しなければＨＴＴＰクライアントとして動作する一方、ＰＣ２００ａは常にＨＴＴＰクライアントとして動作する。しかし、デジタルカメラ１００が常にＨＴＴＰクライアントして動作し、ＰＣ２００ａが、接続するネットワークに自身とのペアリングが有効なデジタルカメラ１００が存在すればＨＴＴＰサーバとして、存在しなければＨＴＴＰクライアントとして動作してもよい。
【０１１０】
また、本実施形態では、デジタルカメラとＰＣとの接続を例にしたが、必ずしもデバイスの種類は限定されない。プリンタなどのアウトプットデバイス、スマートフォンやタブレットなどのモバイル端末であってもよい。
【０１１１】
また、本実施形態では無線通信機能を内蔵したデジタルカメラ１００を例にあげて説明したが、無線通信が可能な記録メディアがデジタルカメラ１００に装着され記録媒体１４１として無線通信を制御する構成としても構わない。この場合も本実施形態と同様の制御を無線通信が可能な記録メディアの無線回路部に対して行う。
【０１１２】
さらに、デジタルカメラ１００をＰＣなどから遠隔操作するシステムにおいても、本発明は適用可能である。この場合は、ＰＣの制御部がデジタルカメラ１００の制御部１０１に対して各種の問合せ及び制御の要求を行うことにより、遠隔操作で実現することが可能となる。
【０１１３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015036900.tif 000003
【図２】
2015036900.tif 000004
【図３】
2015036900.tif 000005
【図４】
2015036900.tif 000006
【図５】
2015036900.tif 000007
【図６】
2015036900.tif 000008
【図７】
2015036900.tif 000009
【図８】
2015036900.tif 000010
【図９】
2015036900.tif 000011
【図１０】
2015036900.tif 000012
【図１１】
2015036900.tif 000013