(57)【要約】【課題】  複数の情報ファイルを効率的に提供もしくは取得する。【解決手段】  複数のファイルを記憶可能な記憶部を有する電子機器であって、外部装置と通信するための通信部と、通信部を介して、記憶部に記憶されたファイルの閲覧に関する要求を外部装置から受信した場合、当該要求の種類に応じた情報を生成し、外部装置に応答として送信すする応答部と有する。ここで、応答部は、受信した要求が、記憶部に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定部と、該判定部により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した１つのチャンクを生成する生成部と、該生成部で生成したチャンクを、要求の応答として送信する送信部とを含む。【選択図】  図７Ａ
2020035373.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルを記憶可能な記憶手段を有する電子機器であって、
外部装置と通信するための通信手段と、
前記通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答手段と有し、
前記応答手段は、
受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定手段と、
該判定手段により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した１つのチャンクを生成する生成手段と、
該生成手段で生成した前記チャンクを、前記要求の応答として送信する送信手段と
を含むことを特徴とする電子機器。
【請求項２】
前記複数のファイルに関する情報の要求には、少なくとも、ファイルのソートの種類を示す情報、および、要求する複数のファイルの最初のファイルのＩＤが引数として含まれ、
前記生成手段は、前記引数における前記ソートの種類に従って前記複数のファイルをソートし、前記ＩＤが示すファイル以降について、要求された情報を記述したチャンクを生成する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記応答手段は、
前記送信手段で前記チャンクの送信処理を行っている際に、前記外部装置からキャンセル要求を受信した場合、前記チャンクの送信処理を終了する手段を更に有することを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
撮像手段と、該撮像手段で撮像して得た画像データを、前記ファイルとして前記記憶手段に格納する格納手段とを更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の電子機器。
【請求項５】
外部装置と通信するための通信手段を有し、当該通信手段を介して前記外部装置が記憶保持しているファイルを閲覧する電子機器であって、
前記外部装置が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定手段と、
該設定手段による設定に従った要求を前記外部装置に送信し、当該送信の応答情報を受信することで前記外部装置から情報を取得する取得手段と、
該取得手段で取得した情報に基づき、前記外部装置が有する前記ファイルの一覧を表示する表示制御手段とを有し、
前記取得手段は、
表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
前記表示制御手段は、
受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
ことを特徴とする電子機器。
【請求項６】
前記設定手段は、一覧表示する際のソートの種類、予め設定された項目の表示、非表示を設定することを特徴とする請求項５に記載の電子機器。
【請求項７】
前記取得手段により前記チャンクを受信中に、ユーザによる、予め設定された操作があった場合、送信のキャンセル要求を送信する手段を更に有することを特徴とする請求項５又は６に記載の電子機器。
【請求項８】
前記予め設定された操作は、前記設定手段による表示形式の変更の操作、または、受信中の前記チャンクによる一覧表示の処理中における未受信のファイルが表示されるべき位置へのスクロールの操作が含まれることを特徴とする請求項７に記載の電子機器。
【請求項９】
複数のファイルを記憶可能な記憶手段と外部装置と通信するための通信手段とを有する電子機器の制御方法であって、
前記通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答工程と有し、
前記応答工程は、
受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定工程と、
該判定工程により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した１つのチャンクを生成する生成工程と、
該生成工程で生成した前記チャンクを、前記要求の応答として送信する送信工程と
を含むことを特徴とする電子機器の制御方法。
【請求項１０】
外部装置と通信するための通信手段を有し、当該通信手段を介して前記外部装置が記憶保持しているファイルを閲覧する電子機器の制御方法であって、
前記外部装置が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定工程と、
該設定工程による設定に従った要求を前記外部装置に送信し、当該送信の応答情報を受信することで前記外部装置から情報を取得する取得工程と、
該取得工程で取得した情報に基づき、前記外部装置が有する前記ファイルの一覧を表示する表示制御工程とを有し、
前記取得工程は、
表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
前記表示制御工程は、
受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
ことを特徴とする電子機器の制御方法。
【請求項１１】
コンピュータが読み込み実行することで、前記コンピュータに、請求項９又は１０の記載の方法の各工程を実行させるたけのプログラム。
【請求項１２】
情報を提供する側として機能する第１の電子機器、および、前記第１の電子機器が記憶保持している前記複数のファイルを閲覧する側として機能する第２の電子機器で構成される情報処理システムであって、
前記第１の電子機器は、
複数のファイルを記憶可能な記憶手段と、
前記第２の通信手段と通信するための第１の通信手段と、
該第１の通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答手段と有し、
前記第２の電子機器は、
前記第１の通信手段と通信するための第２の通信手段と、
前記第１の電子機器が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定手段と、
該設定手段による設定に従った要求を前記第１の電子機器に送信し、当該送信の応答情報を受信することで前記第１の電子機器から情報を取得する取得手段と、
該取得手段で取得した情報に基づき、前記第１の電子機器が有する前記ファイルの一覧を表示する表示制御手段とを有し、
前記第１の電子機器の前記応答手段は、
受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定手段と、
該判定手段により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した１つのチャンクを生成する生成手段と、
該生成手段で生成した前記チャンクを、前記要求の応答として送信する送信手段とを含み、
前記第２の電子機器の前記取得手段は、
表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
前記第２の電子機器の前記表示制御手段は、
受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器間でのコンテンツデータの通信技術に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、デジタルカメラ、ゲーム機、タブレット端末、携帯電話機など、多くの電子機器にカメラ機能および通信機能が搭載され、これら電子機器間でのデータ送受信が実現されている。例えば、特許文献１には、そのデジタルカメラが有するコンテンツデータ（画像データ、音声データなど）の識別情報を、そのデジタルカメラから取得し、取得した識別情報を用いて所望のコンテンツデータをデジタルカメラから取得する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５０８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、ある電子機器（送信機器）が有する複数のコンテンツデータについて、別の電子機器（受信機器）がサムネイルとファイル名などの基本情報を一覧表示しようとした場合、受信機器は、
（１）コンテンツデータの識別情報を取得
（２）識別情報を用いて１つずつ基本情報を取得
（３）識別情報を用いて１つずつサムネイルを取得
（４）一覧表示
という手順を踏む必要があった。例えば１００個のコンテンツデータについてこのような一覧表示を行う場合、（２）と（３）の手順を１００回繰り返す必要がある。
【０００５】
この時、受信機器から送信機器には（２）と（３）の処理を１００回ずつ合計２００回ものコンテンツデータ取得要求が送信されることになり、送信機器の処理能力によっては、これら要求の処理に負荷がかかる。加えて、大量の取得要求により通信のトラフィックが増大し通信遅延が発生する。コンテンツ一覧画面などのコンテンツや情報の数が多い画面を作成する場合は、これら大量の取得要求が画面生成完了までの処理時間に与える影響が大きく、取得要求の数を削減することが求められる。
【０００６】
本発明はかかる問題に鑑みなされたものであり、コンテンツデータを効率的に提供もしくは取得可能な技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の電子機器は以下の構成を備える。すなわち、
【発明の効果】
【０００８】
本発明によれば、複数の情報ファイルを効率的に提供もしくは取得することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるデジタルカメラのブロック構成図。
【図２】実施形態におけるスマートフォンのブロック構成図。
【図３】実施形態におけるデジタルカメラが提供するＡＰＩの例を示す図。
【図４】実施形態におけるデジタルカメラが送信するＣｈｕｎｋデータの例を示す図。
【図５】第１の実施形態におけるスマートフォンが表示するＧＵＩ画面の例を示す図。
【図６】第１の実施形態におけるデジタルカメラとスマートフォンの相互処理の例を示すシーケンス図。
【図７Ａ】第１の実施形態のデジタルカメラの処理を示すフローチャート。
【図７Ｂ】第１の実施形態のデジタルカメラのチャンク送信処理を示すフローチャート。
【図８Ａ】第１の実施形態におけるスマートフォンの処理手順を示すフローチャート。
【図８Ｂ】第１の実施形態におけるスマートフォンのレスポンス受信待ちの処理手順を示すフローチャート。
【図９Ａ】第２の実施形態におけるデジタルカメラの処理手順を示すフローチャート。
【図９Ｂ】第２の実施形態におけるスマートフォンの処理手順を示すフローチャート。
【図１０】第２の実施形態におけるデジタルカメラとスマートフォンの相互処理の例を示すシーケンス図。
【図１１】第３の実施形態におけるスマートフォンのＧＵＩ画面の例を示す図。
【図１２】第３の実施形態におけるスマートフォンの処理手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
【００１１】
［第１の実施形態］
＜デジタルカメラ１００の内部構成＞
図１は、本実施形態の通信装置の一例であるデジタルカメラ１００のブロック構成図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
【００１２】
制御部１０１は入力された信号や、後述のプログラムに従ってデジタルカメラ１００の各部を制御する。なお、制御部１０１が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【００１３】
撮像部１０２は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光（映像）を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、ＣＭＯＳ（ComplementaryMetalOxideSemiconductor）や、ＣＣＤ（ChargeCoupledDevice）が利用される。撮像部１０２は、制御部１０１の制御下にて、撮像部１０２に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行い、デジタル画像データ（以降、単に画像データ）として出力する。本実施形態のデジタルカメラ１００では、画像データのファイルは、ＤＣＦ（DesignRuleforCameraFilesystem）の規格に従って、記録媒体１１０に記録される。
【００１４】
不揮発性メモリ１０３は、電気的に消去・記録可能な不揮発性のメモリであり、制御部１０１で実行される後述のプログラムや各種パラメータ等が格納される。
【００１５】
作業用メモリ１０４は、撮像部１０２で撮像された画像データを一時的に保持するバッファメモリや、表示部１０６の画像表示用メモリ、制御部１０１の作業領域等として使用される。
【００１６】
操作部１０５は、デジタルカメラ１００に対する指示をユーザから受け付けるために用いられる。操作部１０５は例えば、ユーザがデジタルカメラ１００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、操作部１０５は、後述の接続部１１１を介した外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、操作部１０５は、後述する表示部１０６に形成されるタッチパネルも操作部１０５に含まれる。なお、レリーズスイッチは、第１スイッチ、第２スイッチの２つを有する。レリーズスイッチが、いわゆる半押し状態となることにより、第１スイッチがＯＮとなる。これにより、ＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュプリ発光）処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、第２スイッチがＯＮとなる。これにより、制御部１０１は、撮影を行うための指示として受け付けることになる。
【００１７】
表示部１０６は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、メニューなどの対話的な操作のための文字表示などを行う。なお、表示部１０６は必ずしもデジタルカメラ１００が内蔵する必要はない。デジタルカメラ１００は内部又は外部の表示部１０６と接続することができ、表示部１０６の表示を制御する表示制御機能を少なくとも有していればよい。
【００１８】
記録媒体１１０は、ファイルを記憶保持するための不揮発性で、かつ、書き込み可能な記憶媒体である。この記憶媒体１１０は、撮像部１０２から出力された画像データをファイルとして複数記憶可能な容量を有する。記録媒体１１０は、デジタルカメラ１００にメモリカードなどように着脱可能なよう構成してもよいし、デジタルカメラ１００に内蔵されていてもよい。すなわち、デジタルカメラ１００は少なくとも記録媒体１１０にアクセスする手段を有していればよい。
【００１９】
接続部１１１は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ１００は、接続部１１１を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部１０２で生成した画像データを、接続部１１１を介して外部装置に送信することができる。なお、本実施形態では、接続部１１１は外部装置とＩＥＥＥ８０２．１１の規格に従った、いわゆる無線ＬＡＮで通信するためのインターフェースを含む。制御部１０１は、接続部１１１を制御することで外部装置との無線通信を実現する。なお、通信方式は無線ＬＡＮに限定されるものではなく、例えば赤外通信方式も含む。接続部１１１は第１の無線通信手段の一例である。
【００２０】
近距離無線通信部１１２は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離無線通信部１１２は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりＩＥＥＥ８０２．１５の規格（いわゆるＢｌｕｅｔｏｏｔｈ（登録商標））に従った近距離無線通信を実現する。本実施形態においてＢｌｕｅｔｏｏｔｈ（登録商標）通信は、低消費電力であるＢｌｕｅｔｏｏｔｈ（登録商標）  Ｌｏｗ  Ｅｎｅｒｇｙのバージョン４．０を採用する。このＢｌｕｅｔｏｏｔｈ（登録商標）通信は、無線ＬＡＮ通信と比べて通信可能な範囲が狭い（つまり、通信可能な距離が短い）。また、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信は、無線ＬＡＮ通信と比べて通信速度が遅い。その一方で、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信は、無線ＬＡＮ通信と比べて消費電力が少ない。本実施形態のデジタルカメラ１００は、近距離無線通信部１１２を介して、外部装置とデータのやりとりを行うことができる。例えば外部装置から撮影の命令を受信した場合は撮像部１０２を制御し、撮影動作を行い、無線ＬＡＮ通信によるデータの授受を行うための命令を受信した場合は接続部１１１を制御し、無線ＬＡＮ通信を開始する。
【００２１】
近接無線通信部１１３は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部１１３は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでＩＳＯ／ＩＥＣ  １８０９２の規格（いわゆるＮＦＣ：NearFieldCommunication）に従った非接触近接通信を実現する。本実施形態の近接無線通信部１１３は、デジタルカメラ１００の側部に配される。
【００２２】
外部装置とは、互いの近接無線通信部を近接させることにより通信を開始して接続される。なお、近接無線通信部１１３を用いて接続させる場合、必ずしも近接無線通信部同士を接触させる必要はない。近接無線通信部は一定の距離だけ離れていても通信することができるため、互いの機器を接続するためには、近接無線通信可能な範囲まで近づければよい。以下の説明では、この近接無線通信可能な範囲まで近づけることを、近接させる、とも記載する。
【００２３】
また、互いの近接無線通信部が近接無線通信不可能な範囲にあれば、通信は開始されない。また、互いの近接無線通信部が近接無線通信可能な範囲にあって、デジタルカメラ１００同士が通信接続されている際に、互いの近接無線通信部１１３が近接無線通信不可能な範囲に離れてしまった場合は、通信接続が解除される。なお、近接無線通信部１１３が実現する非接触近接通信はＮＦＣに限られるものではなく、他の無線通信を採用してもよい。例えば、近接無線通信部１１３が実現する非接触近接通信として、ＩＳＯ／ＩＥＣ  １４４４３の規格に従った非接触近接通信を採用してもよい。
【００２４】
本実施形態では、接続部１１１により実現される通信の通信速度は、後述の近接無線通信部１１３により実現される通信の通信速度よりも速い。また、接続部１１１により実現される通信は、近接無線通信部１１３による通信よりも、通信可能な範囲が広い。その代わり、近接無線通信部１１３による通信では、通信可能な範囲の狭さにより通信相手を限定することができるため、接続部１１１により実現される通信で必要な暗号鍵の交換等の処理を必要としない。すなわち、接続部１１１を用いるよりも手軽に通信することができる。
【００２５】
なお、本実施形態におけるデジタルカメラ１００の接続部１１１は、インフラストラクチャモードにおけるアクセスポイントとして動作するＡＰモードと、インフラストラクチャモードにおけるクライアントとして動作するＣＬモードとを有している。そして、接続部１１１をＣＬモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、インフラストラクチャモードにおけるＣＬ機器として動作することが可能である。デジタルカメラ１００がＣＬ機器として動作する場合、周辺のＡＰ機器に接続することで、ＡＰ機器が形成するネットワークに参加することが可能である。また、接続部１１１をＡＰモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、ＡＰの一種ではあるが、より機能が限定された簡易的なＡＰ（以下、簡易ＡＰ）として動作することも可能である。デジタルカメラ１００が簡易ＡＰとして動作すると、デジタルカメラ１００は自身でネットワークを形成する。デジタルカメラ１００の周辺の装置は、デジタルカメラ１００をＡＰ機器と認識し、デジタルカメラ１００が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ１００を動作させるためのプログラムは不揮発性メモリ１０３に保持されているものとする。
【００２６】
なお、本実施形態におけるデジタルカメラ１００はＡＰの一種であるものの、ＣＬ機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易ＡＰである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。以上、実施形態におけるデジタルカメラ１００の構成を説明した。
【００２７】
＜スマートフォン２００の内部構成＞
図２は、本実施形態の通信装置の一例であるスマートフォン２００のブロック構成図である。なお、ここでは通信装置の一例としてスマートフォンについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
【００２８】
図示の参照符号２０１〜２１３は、デジタルカメラ１００の参照符号１０１〜１１３にと同等であり、名称も同じにしている。それ故、その説明は省略する。
【００２９】
公衆網通信部２１４は、公衆無線通信を行う際に用いられるインターフェースである。スマートフォン２００は、公衆網通信部２１４を介して、他の機器と通話することができる。この際、制御部２０１はマイク２１５およびスピーカ２１６を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網通信部２１４はアンテナであり、制御部２０１は、アンテナを介して、公衆網に接続することができる。なお、通信部２１１および公衆網通信部２１４は、一つのアンテナで兼用することも可能である。以上がスマートフォン２００の構成を説明した。そして、デジタルカメラ１００とスマートフォン２００が、実施形態における情報処理システムを構成することになる。
【００３０】
＜デジタルカメラを外部装置から制御するＡＰＩ（要求コマンド）の構成＞
図３は、外部装置からデジタルカメラ１００を制御するためのアプリケーションプログラミングインターフェース（ＡＰＩ）の例を示す図である。本実施形態のデジタルカメラ１００は、スマートフォン２００などの外部装置から利用可能なＡＰＩを公開しているものとする。外部装置の設計者は、公開されたＡＰＩを用いてデジタルカメラ１００に要求を送信するよう実装することにより、デジタルカメラ１００の動作制御や、デジタルカメラ１００からのデバイス情報やコンテンツデータファイルの取得を実現できる。
【００３１】
デジタルカメラ１００の不揮発性メモリ１０３にはＡＰＩがプログラムとして予め保存されている。通信部１１１を介して外部装置との通信が確立すると、制御部１０１はＡＰＩを作業用メモリ１０４に展開し、外部装置からＡＰＩがリクエストされるのを待つ。制御部１０１が外部装置からＡＰＩがリクエストされたことを検知すると、リクエストされたＡＰＩの種類に応じた処理を実行し、その結果をレスポンスとして外部装置に返す。なお、ＡＰＩはデジタルカメラ１００が規定した通信プロトコル上で実行され、外部装置は規定された通信プロトコルを用いてデジタルカメラ１００と通信を行い、ＡＰＩをリクエストする。なお、本実施形態では、ＨＴＴＰを用いてＡＰＩのリクエストおよび応答が実行されることを想定して説明するが他の通信プロトコルを用いても実施可能である。なお、ＨＴＴＰは公知の通信プロトコルであるため、その詳細についての説明は割愛する。
【００３２】
ＨＴＴＰを用いたＡＰＩのリクエストは、外部装置がＨＴＴＰリクエストボディにＡＰＩ名と必要な引数をテキストで記述し、ＧＥＴメソッドもしくはＰＯＳＴメソッドを用いてデジタルカメラ１００に送信することで実現できる。また、リクエストされたＡＰＩの実施結果の返送は、制御部１０１がＨＴＴＰレスポンスボディに付加して外部装置に返送することで実現できる。
【００３３】
図３に示すＡＰＩリスト３００は、デジタルカメラ１００が提供（公開）するＡＰＩの種類とその内容を示している。なお、図３では便宜上６つのＡＰＩについて示しているが、公開ＡＰＩの数は６つに限定されるものではなく、制限はない。
ＡＰＩ３０１：“RequestProductInfo”は、デジタルカメラ１００の製品情報を外部装置が取得できるようにするためのＡＰＩである。外部装置は、このＡＰＩを引数なしでデジタルカメラ１００にリクエストすることにより、デジタルカメラ１００の製品名、製造者名、ファームウェアバージョン、シリアルナンバーがレスポンスとして取得できる。なお、製品名とは、デジタルカメラ１００の製品名、製造者名とはデジタルカメラ１００のメーカー名である。ファームウェアバージョンとは、不揮発性メモリ１０３に保存された、デジタルカメラ１００を制御するためのプログラムのバージョン番号である。シリアルナンバーとは、デジタルカメラ１００の個体識別が可能な一意の番号である。
【００３４】
ＡＰＩ３０２：“RequestMemoryInfo”は、デジタルカメラ１００の保存領域の情報を外部装置が取得できるようにするためのＡＰＩである。外部装置は、このＡＰＩ３０２を引数なしでデジタルカメラ１００にリクエストすることにより、デジタルカメラ１００の保存領域ＩＤ、保存可能容量、空き容量、保存済みのコンテンツファイル数をレスポンスとして取得できる。複数のメモリカードが装着されている場合など、保存領域が複数存在する場合は、保存領域毎に上記の各項目が取得される。なお、保存領域ＩＤとは、デジタルカメラ１００で生成されるコンテンツデータファイルが保存可能な領域にそれぞれ割り振られた識別情報（ＩＤ(Identification)）であり、例えば、記録媒体１１０には保存領域ＩＤが割り振られる。保存可能容量とは、コンテンツファイルが保存できる保存領域に保存可能なサイズの上限である。空き容量とは、保存領域のうち、コンテンツデータファイルが保存されていない領域のサイズである。保存済みのコンテンツ数とは、保存領域に保存されているコンテンツデータファイルの総数である。
【００３５】
ＡＰＩ３０３：“RequestContentInfo”は、デジタルカメラ１００の保存領域に保存されているコンテンツＩＤとコンテンツデータファイルの基本情報（エントリ情報）を外部装置が取得できるようにするＡＰＩである。外部装置は、先に示したＡＰＩ３０２：“RequestMemoryInfo”で取得した保存領域ＩＤ、取得したいコンテンツの枚数およびコンテンツフォーマットの種類、コンテンツのソート条件を引数に指定して、このＡＰＩ３０３をリクエストする。これにより、外部装置は、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルごとのコンテンツＩＤと、エントリ情報（ファイル名、ファイルサイズ、ファイル生成日時など）との両方がレスポンスとして取得できる。なお、コンテンツＩＤとは、コンテンツデータファイルを個々に識別するために割り振られた識別情報である。複数のコンテンツを要求した場合は、指定したソート条件順に並べられた一覧として取得できる。指定できるソート条件の例としては、ソートの種類（ファイル名順（拡張子を含む）、撮影日時順、データサイズ順など）、ソートの向き（昇順、降順）、などが挙げられる。
【００３６】
ＡＰＩ３０４：“RequestChunkedContentData”は、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルを外部装置が取得できるようにするＡＰＩであるが、後述するＡＰＩ３０５(“RequestConent”)とは異なり、一度に複数のコンテンツデータファイルを要求することが可能である。
【００３７】
外部装置は、基準となる（１番目に取得する）コンテンツＩＤ、取得したいコンテンツの枚数およびコンテンツフォーマットの種類、コンテンツのソート条件を引数に指定する。コンテンツファイルデータのサイズ（サムネイルサイズ、オリジナルサイズなど）も指定可能である。デジタルカメラ１００の制御部１０１は、指定された基準となるコンテンツＩＤのコンテンツデータファイルおよび、それを基準として、指定された枚数分のコンテンツデータファイルを、指定されたソート条件に応じて並び替え、Ｃｈｕｎｋ（チャンク）形式の応答情報を生成し、断続的に送信し続ける。Ｃｈｕｎｋデータの詳細については図４を用いて後述する。
【００３８】
外部装置は受信したＣｈｕｎｋ形式のデータを、パース処理により個々のコンテンツデータファイルに変換し、コンテンツデータファイルを取得する。指定できるソート条件としては、先述したＡＰＩ３０３と同様である。また、コンテンツデータファイルのほかに、コンテンツの詳細情報の取得の有無も、ＡＰＩの引数によって外部装置から指定が可能である。取得可能な詳細情報の内容に特に制限は無いが、例えばコンテンツデータが静止画データの場合、Ｅｘｉｆ（Exchangeableimagefileformat）情報、撮影パラメータなどが挙げられる。先述したＡＰＩ３０３で取得したコンテンツの基本情報を指定することも可能である。これらの情報を指定した場合、デジタルカメラ１００の制御部１０１は、Ｃｈｕｎｋデータを生成する際、コンテンツデータファイルと次のコンテンツデータファイルの間にこれらの情報を挿入する。外部装置は受信したＣｈｕｎｋ形式のデータを、パース処理により個々のコンテンツデータファイルおよびコンテンツ情報に変換し、コンテンツデータファイルおよびコンテンツ情報を取得する。
【００３９】
ＡＰＩ３０５：“RequestConent”は、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルを外部装置が取得できるようにするＡＰＩである。外部装置は、引数にコンテンツＩＤとコンテンツサイズを指定してこのＡＰＩをリクエストすることにより、デジタルカメラ１００の保存領域から、指定したコンテンツデータファイルを取得できる。コンテンツファイルのデータサイズ（サムネイルサイズ、オリジナルサイズ）の指定も可能である。制御部１０１は、このＡＰＩ３０５に対して、１コンテンツのデータファイルのみを返すことになる。
【００４０】
ＡＰＩ３０６：“RequestContentDetailInfo”は、デジタルカメラ１００の保存領域に保存されているコンテンツデータの詳細情報を外部装置が取得できるようにするＡＰＩである。外部装置は、コンテンツＩＤを引数としてこのＡＰＩ３０６をリクエストすると、指定したコンテンツＩＤに対応するコンテンツデータの詳細情報がレスポンスとして取得できる。制御部１０１は、このＡＰＩ３０６に対し、１コンテンツのデータ詳細情報のみを返すことになる。
【００４１】
ＡＰＩ３０５(RequestConent)およびＡＰＩ３０６(RequestContentDetailInfo)は本提案の実施形態では不使用だが、コンテンツを１枚表示するときなどに利用できる。コンテンツ一覧画面のサムネイル上にコンテンツ１枚表示画面へのボタンを設け、ユーザの操作によりサムネイルが選択されると、そのサムネイルに対応するコンテンツの１枚表示画面へ遷移する。このとき、選択されたコンテンツのオリジナルサイズのコンテンツデータファイル取得するためにＡＰＩ３０５(RequestConent)を使用する。また、１枚表示画面に詳細な情報を表示する場合には、ＡＰＩ３０６(RequestContentDetailInfo)を用いて詳細情報を取得すればよい。
【００４２】
なお、ここで説明したＡＰＩはデジタルカメラ１００が公開するＡＰＩの一例であり、ここで説明した以外のＡＰＩが公開されたり、説明したＡＰＩの１つ以上が公開されなくてもよい。
【００４３】
また、デジタルカメラ１００とスマートフォン２００の通信をＨＴＴＰ（HypertextTransferProtocol）で実現する場合、引数の受け渡しはクエリストリングによって実現可能である。クエリストリングは、ＵＲＬ(UniformResourceLocator)にデータを付加できる手法で、ＵＲＬの末尾に”?”と”変数=パラメータ”で記述する。
【００４４】
＜Ｃｈｕｎｋデータの構成＞
Ｃｈｕｎｋ送信はＨＴＴＰ／１．１で定義されている方式である。特徴を簡単に説明すると、ヘッダーにはデータのサイズを指定する記述（Content-Length）は入れず、エンコード方式をＣｈｕｎｋと指定する記述（Transfer-Encoding:chunked）を入れる。メッセージボディには、Ｃｈｕｎｋごとに、データサイズ、改行、実データ、改行、を繰り返し記述する。そしてＣｈｕｎｋデータの最後は"0"のみからなる行と空行で示す、というものである。本第１の実施形態のデジタルカメラ１００は、このＣｈｕｎｋデータを使用して、コンテンツデータファイルおよびコンテンツ情報を送信を行う。Ｃｈｕｎｋデータは複数のデータを１度に送信できるため、リクエストの回数は１度だけで済む。
【００４５】
図４は本第１の実施形態でコンテンツデータの送信に使用するＣｈｕｎｋデータの例である。図４では、例として、基準となるコンテンツを“IMG_0010.JPG”、ソート条件をファイル名順に降順、取得要求枚数を３枚、取得するコンテンツデータ情報としてファイル名を指定した場合について説明する。
【００４６】
メッセージボディにデータの記述を行う。参照符号４０１には基準となる“IMG_0010.JPG”の実データサイズを、参照符号４０２には“IMG_0010.JPG”の実データを記述する。図４の参照符号４０１にある“12345”は“IMG_0010.JPG”の実データサイズが12345バイトであることを表している。図４の参照符号４０２にある“aaaaaaaaa…aaaaaa”はファイル“IMG_0010.JPG”の実データを表している。また、コンテンツデータ情報を要求された場合は、この後に実データサイズ、実データと記述する。この例では参照符号４０３で“IMG_0010.JPG”のファイル名の実データサイズを記述し、参照符号４０４で“IMG_0010.JPG”のファイル名を記述している。ここまでが１コンテンツに関するデータとなる。
【００４７】
複数コンテンツの要求があった場合は、改行して参照符号４０１から４０４と同様に記述していく。この例では、降順で“IMG_0010.JPG”の次のファイルにあたる“IMG_0009.JPG”、“IMG_0008.JPG”について、同様に記述されている。制御部１０１は、要求されたコンテンツ分のデータを記述したあと、最後に参照符号４０５でＣｈｕｎｋデータの最後を意味する"0"と空行を記述することで、送信すべきデータの作成を完成する。
【００４８】
＜コンテンツ一覧画面の構成＞
次に、スマートフォン２００におけるコンテンツ一覧の表示について説明する。図５（ａ）は、スマートフォン２００の表示部２０６に表示されるコンテンツ一覧画面の例を示し、同図（ｂ）はコンテンツ一覧画面の表示設定画面を示している。
【００４９】
コンテンツ一覧画面５０１には、デジタルカメラ１００から取得したコンテンツデータファイルやコンテンツ情報を表示する。また、コンテンツ一覧画面５０１には、表示設定ボタン５０２が設置されている。このボタン５０２へのユーザによる押下操作（タッチ）を検出した場合、スマートフォン２００の制御部２０１は図５（ｂ）の表示設定画面５０３へ遷移する。表示設定画面５０３では、コンテンツ一覧画面５０１の表示設定を変更することが出来る。設定項目の例としては、コンテンツのソートの種類（ファイル名順、撮影日時順、データサイズ順など）、ソートの向き（昇順、降順）、コンテンツのサイズ（サムネイル、縮小、オリジナル）などが挙げられる。また、コンテンツ情報の有無も設定が可能である。この画面の設定に応じて、制御部２０１は、先述したＡＰＩ３０３(RequestContentInfo)およびＡＰＩ３０４(RequestChunkedContentData)の引数を決定し、デジタルカメラ１００に対してコンテンツの取得要求を出す。そして、制御部２０１は、デジタルカメラ１００からの応答されたコンテンツデータを元に、コンテンツ一覧画面５０１作成し、表示部２０６に表示する。
【００５０】
デジタルカメラ１００内のコンテンツ数がサムネイル表示数以上の場合は、一覧画面を複数ページに分割してもよい。この場合は、参照符号５０４のようなページ変更ボタンを操作して、表示範囲を変更する。また、コンテンツ一覧画面の大きさが、表示部２０６の表示範囲より大きい場合は、一覧画面にスクロールバーなどを設置して、表示範囲を変更することもできる。
【００５１】
＜コンテンツ一覧画面作成時の通信シーケンス＞
次に、スマートフォン２００がデジタルカメラ１００と接続して、デジタルカメラ１００の記録媒体１１０に保存されたコンテンツデータの一覧を表示部２０６に表示する際の動作を、図６のシーケンス図を参照して説明する。なお、本実施形態では、コンテンツデータが画像ファイルである場合を説明するが、音声ファイルなど、他の種類のファイルであっても同様に処理できる。
【００５２】
まず、Ｓ６０１において、デジタルカメラ１００とスマートフォン２００は無線ローカルエリアネットワーク（ＬＡＮ）接続を確立し、通信システムを形成する。ここでは、デジタルカメラ１００の通信部１１１をＡＰモードで動作させ、デジタルカメラ１００が形成するネットワークにスマートフォン２００を参加させる方法で無線ＬＡＮ接続を確立するものとする。例えば、操作部１０５の接続ボタンが押下され、ＡＰモードでの動作が指定されると、デジタルカメラ１００の制御部１０１は、自身が形成するネットワークに外部装置が接続するために必要なＳＳＩＤ(ServiceSetIdentifier)と暗号化キーを生成する。その後、制御部１０１は、ＳＳＩＤと暗号化キーを用いて通信部１１１をＡＰモードで動作させることにより無線ＬＡＮネットワークを生成し、接続に必要な情報を含んだビーコン信号の周期的なブロードキャストを開始する。なお、スマートフォン２００からＳＳＩＤを直接入力させる場合には、ビーコン信号のブロードキャストは行わなくてもよい。なお、制御部１０１は生成したＳＳＩＤと暗号化キーを表示部１０６に表示し、スマートフォン２００のユーザが無線ＬＡＮネットワークに参加できるようにする。なお、ＳＳＩＤとは、ＩＥＥＥ８０２．１１シリーズの無線ＬＡＮにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。暗号化キーとは、ＳＳＩＤに不正アクセスされないよう無線ＬＡＮの暗号化を行うためのキーである。次に、制御部１０１は、ＤＨＣＰ(DynamicHostConfigurationProtocol)サーバアプリケーションを実行し、デジタルカメラ１００が形成したネットワークに参加する外部装置に対してＩＰアドレスを割り振る準備をする。一方、スマートフォン２００の制御部２０１は、通信部２１１の無線ＬＡＮ機能が有効でなければ有効とし、通信部２１１を用いて通信可能範囲に存在するアクセスポイントを探索する。そして、見つかったアクセスポイントのＳＳＩＤの一覧を、表示部２０６に表示する。制御部２０１は、表示部２０６に表示されたＳＳＩＤ一覧から操作部２０５を通じて選択指示が与えられると、選択されたＳＳＩＤに応じて暗号化キーの入力画面を表示部２０６に表示する。そして、制御部２０１は、選択されたＳＳＩＤと操作部２０５を通じて入力された暗号化キーを通信部２１１に通知し、選択されたＳＳＩＤへの接続を試みる。従って、スマートフォン２００のユーザは、まず、表示部２０６に一覧表示されたＳＳＩＤからデジタルカメラ１００の表示部１０６に表示されたＳＳＩＤを操作部２０５を用いて選択する。デジタルカメラ１００が形成している無線ＬＡＮネットワークは暗号化されているため、制御部２０１は暗号化キーの入力画面を表示部２０６に表示する。そして、ユーザは、暗号化キーの入力画面に、デジタルカメラ１００の表示部１０６に表示された暗号化キーを、操作部２０５を用いて入力する。暗号化キーが正しく入力されれば、スマートフォン２００がデジタルカメラ１００（簡易ＡＰ）に認証され、スマートフォン２００からの接続要求に対してデジタルカメラ１００が接続許可を応答することで接続が完了する。スマートフォン２００は、デジタルカメラ１００から割り当てられたＩＰアドレスを用いて、���ジタルカメラ１００と通信することが可能になる。なお、ここではデジタルカメラ１００が簡易ＡＰとして動作する例を説明したが、他のＡＰ（無線ルータなど）が構築するＬＡＮに、クライアントとして動作するデジタルカメラ１００とスマートフォン２００がそれぞれ接続する形態であってもよい。
【００５３】
次に、Ｓ６０２において、デジタルカメラ１００とスマートフォン２００が互いの存在や提供するサービスを認識するディスカバリ処理を行い、スマートフォン２００が無線ＬＡＮを介してデジタルカメラ１００が提供するＡＰＩを使用する準備を行う。なお、ディスカバリ処理は、公知のプロトコル、例えば、ＳＳＤＰ(SingleServiceDiscoveryProtocol)やMulticastDNSなどを用いて行うことができる。ディスカバリ処理の一例を説明すると、デジタルカメラ１００の制御部１０１は、自らが構築したネットワークに対してアドバタイズ通知を送信し、自身の存在をネットワークに接続している機器に通知する。スマートフォン２００の制御部２０１は、このアドバタイズ通知を受信すると、デジタルカメラ１００から、機器情報(DeviceDescription)を取得し、ＡＰＩサービスを提供しているか否か（ＡＰＩを公開しているか否か）を判定する。制御部２０１は、例えば機器情報に含まれるサービスリストに記述されたＵＲＬにアクセスしてサービスの情報を取得し、デジタルカメラ１００がＡＰＩサービスを提供しているかどうかを判定することができる。また、ＡＰＩサービスが提供されている場合、公開されているＡＰＩの名称、機能、およびＡＰＩサービスのアクセス方法（例えばＵＲＬ）に関する情報を得ることができる。制御部２０１は、デジタルカメラ１００がＡＰＩサービスを提供していると判断した場合、公開されているＡＰＩを使用してデジタルカメラ１００から画像ファイルを取得するためのプログラムを、不揮発性メモリ２０３から作業用メモリ２０４に展開し、実行する。
【００５４】
次に、Ｓ６０３において、制御部２０１は、通信部２１１を介して、製品情報を取得するＡＰＩ３０１（RequestProductInfo）のリクエストをデジタルカメラ１００に送信する。
【００５５】
Ｓ６０４で、デジタルカメラ１００の制御部１０１は、通信部１１１を介してＡＰＩ３０１のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩ３０１に対応するプログラムを実行することにより、製品情報を収集してレスポンス用データセットに含め、通信部１１１を介してスマートフォン２００に送信（応答）する。製品情報の例としては、デジタルカメラ１００の製品名、製造者名、ファームウェアバージョン、シリアルナンバーなどであり、例えば不揮発性メモリ１０３から取得することができる。スマートフォン２００は、通信部２１１を通じてデジタルカメラ１００の製品情報を受信する。
【００５６】
Ｓ６０５において、スマートフォン２００の制御部２０１は、通信部２１１を介してＡＰＩ３０２（RequestMemoryInfo）をデジタルカメラ１００にリクエストする。
【００５７】
Ｓ６０６において、デジタルカメラ１００の制御部１０１は、通信部１１１を介してＡＰＩ３０２のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩ３０２に対応するプログラムを実行することにより、保存領域ＩＤ、保存可能容量、空き容量、保存済みコンテンツ数を、作業用メモリ１０４や記録媒体１１０より取得する。そして、制御部１０１はこれらの情報をレスポンス用データセットに成形して、通信部１１１を介してスマートフォン２００に送信する。スマートフォン２００の制御部２０１は、通信部２１１を通じてデジタルカメラ１００の保存領域の情報を受信する。
【００５８】
ＡＰＩ３０１（RequestProductInfo）およびＡＰＩ３０２（RequestMemoryInfo）を用いてデジタルカメラ１００の情報を取得したら、Ｓ６０７において制御部２０１は、デジタルカメラ１００と連携した動作をユーザに指定させるメニュー画面を表示部２０６に表示する。メニュー画面には例として「カメラ内の画像を見る」、「リモート撮影する」、「カメラの設定をする」という連携動作を指定するためのボタンが含まれている。これらの連係動作は例示であり、他の連係動作を指定するためのボタンが含まれていてもよい。操作部２０５（特にはタッチパネル）を介して、ユーザからいずれかのボタンが選択されると、制御部２０１は選択されたボタンに対応する連係動作を実現するプログラムを実行する。ここでは、「カメラ内の画像を見る」が選択された場合のシーケンスについて説明する。なお、本実施形態では、デジタルカメラ１００の保存領域（記録媒体１１０）にはコンテンツデータファイルとして、静止画データファイルが既に１００枚分保存されているものとして説明する。
【００５９】
Ｓ６０７で表示したメニュー画面を通じて、ユーザによる、デジタルカメラ１００との連係動作「カメラ内の画像を見る」の実行指示（コンテンツ一覧表示の指示）がＳ６０８でなされたとする。この指示に応答して、スマートフォン２００の制御部２０１はＳ６０９において、通信部２１１を介して、保存領域ＩＤと取得要求枚数、コンテンツフォーマットの種類とソート条件を引数とするＡＰＩ３０３（RequestContentInfo）をデジタルカメラ１００にリクエストする。ここでは、領域ＩＤには記録媒体１１０を示すＩＤ、取得要求枚数には保存済みコンテンツデータの総数である“１００”、コンテンツフォーマットの種類には画像の種類（静止画）、ソート条件には、図５（ｂ）の表示設定で指定している条件をそれぞれ指定する。これらの引数は、ＡＰＩ３０２（RequestMemoryInfo）で取得した情報に基づいて指定することができる。なお、取得要求枚数として、記録媒体１１０に保存された「すべて」という指定を行ってもよいし、表示部２０６に一度に表示する最大数を指定してもよい。
【００６０】
Ｓ６１０においてデジタルカメラ１００の制御部１０１は、通信部１１１を介してＡＰＩ３０３（RequestContentInfo）のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、ＡＰＩの引数として指定された保存領域に保存された、指定された種類のコンテンツデータファイルの情報を、指定された数だけ、記録媒体１１０より取得する。
【００６１】
コンテンツデータファイルの情報は対応するディレクトリエントリに記録されている。従って、ＡＰＩ３０３（RequestContentInfo）の実行時、制御部１０１は、指定された保存領域ＩＤに応じて、
・作業用メモリ１０４に一時保存されたコンテンツデータファイルの管理情報、
・記録媒体１１０に保存されたコンテンツデータファイルの管理情報を記録したファイル、
・記録媒体１１０のファイルシステムに応じた、コンテンツデータファイルのディレクトリエントリ、
のいずれかを参照し、コンテンツデータファイルについて、ＩＤと基本情報（ファイル名、ファイルサイズ、ファイルの生成日時など）を取得し、それら取得した情報を作業用メモリ１０４に一時保存する。そして、制御部１０１は、取得要求枚数分（１００枚）のコンテンツデータ情報から情報リストを生成する。制御部１０１は情報リストを作業用メモリ１０４に保存し終えた後、スマートフォン２００から指定されたソート条件に従って、作業用メモリ１０４内でコンテンツデータ情報をソートする。
【００６２】
Ｓ６１１において、制御部１０１は、作業用メモリ１０４に一時保存した、ソート済みのコンテンツデータ情報リストからレスポンス用データを生成し、通信部１１１を介してスマートフォン２００に送信する。このように、本実施形態においてコンテンツデータの送信装置は、取得要求数分のコンテンツデータ情報をまとめて応答する。例えば、コンテンツデータの送信プロトコルとして従来用いられているＰＴＰ(PictureTransferProtocol)を用いた場合、コンテンツデータごとに情報を要求する必要がある。従って、コンテンツデータの数に等しい回数、要求の送信と応答の受信を繰り返さなければならない。また、従来のプロトコルにおいて、コンテンツＩＤ（ＰＴＰではオブジェクトハンドル）は、コンテンツデータファイルが生成されるごとに割り当てられるため、基本的には古いコンテンツデータから順に割り当てられる。従って、指定するソート順に情報を取得したい場合、クライアント（要求装置）側で要求する順序を決定しなければならない。これに対し、本実施形態では、要求装置からは取得要求数のみを指定してコンテンツデータの情報を１回要求するだけで、指定したソート順に、かつ取得要求数分の情報（ＩＤおよび基本情報）が取得できる。そのため、複数のコンテンツデータファイルの情報を取得するために必要な処理負荷および時間を大幅に削減することができる。
【００６３】
Ｓ６１２において、スマートフォン２００の制御部２０１は、Ｓ６１１のレスポンスによって取得したコンテンツデータ情報リストを参照し、表示対象のコンテンツデータを特定する情報（ＩＤ）を取得する。そして、制御部２０１は、引数のＩＤに、表示対象のコンテンツデータファイルのＩＤを指定したコンテンツデータファイルの取得ＡＰＩ３０４（RequestChunkedContentData）をリクエストする。本実施形態では、スマートフォン２００の表示部２０６に、ファイル名順の昇順にコンテンツデータのサムネイル一覧を表示するものとする。そのため、制御部２０１は、リクエストするＡＰＩの引数のコンテンツサイズに、サムネイル画像を取得するためのパラメータを指定する。
【００６４】
Ｓ６１３においてデジタルカメラ１００の制御部１０１は、通信部１１１を介してＡＰＩ３０４（RequestChunkedContentData）のリクエストを受信したことを検知する。制御部１０１は、Ｓ６１０と同様に、コンテンツ情報から情報リストを生成し、スマートフォン３００から指定されたソート条件に従って、作業用メモリ１０４内でコンテンツデータ情報をソートする。ここで、Ｓ６１０のソート結果を流用してソート処理を省略してもよい。制御部１０１は、Ｓ６１０のソート結果に管理ＩＤを割り振り、その管理ＩＤをＳ６１１でスマートフォン２００へ通知する。Ｓ６１２でＡＰＩの引数にソート結果の管理ＩＤを指定できるようにすることで、ソート結果を流用することが可能である。
【００６５】
Ｓ６１４において、制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、ＡＰＩの引数を参照し、指定された基準となるコンテンツＩＤのコンテンツデータファイルおよび、指定されたコンテンツデータの詳細情報をレスポンス用のＣｈｕｎｋデータ形式で記述し、通信部１１１を介してスマートフォン２００に送信する。
【００６６】
ここで、ＡＰＩの引数に指定されたコンテンツサイズのコンテンツデータ（サムネイル画像）がコンテンツデータファイルに内包されている場合、制御部１０１はその部分のみを抽出する。一方、サムネイル画像がコンテンツデータファイルに含まれていない場合、制御部１０１はコンテンツデータを指定されたサイズに加工して使用する。
【００６７】
複数枚の要求がある場合、制御部１０１は、Ｓ６１３で作成したソート結果から、次に送信するコンテンツＩＤを取得し、同様にコンテンツデータファイルおよびコンテンツデータの詳細情報をレスポンス用のＣｈｕｎｋデータ形式で記述し、通信部１１１を介してスマートフォン２００に送信していく。制御部１０１は、この処理を取得要求枚数分繰り返し、最後にＣｈｕｎｋ送信の終了を表す"0"をレスポンス用データに記述し送信し、この処理を終了する。
【００６８】
Ｓ６１５において、スマートフォン２００は通信部２１１を介してＣｈｕｎｋデータを受信する。受信したデータは制御部２０１によって個々のコンテンツデータファイルおよびコンテンツデータ情報に分割され、分割したデータは作業用メモリ２０４で一時的に保持する。制御部２０１は保持したコンテンツデータを使用し、コンテンツ一覧画面の生成を行う。そして、制御部２０１は、生成したコンテンツ一覧画面を表示部２０６に表示させる。
【００６９】
なお、本実施形態では、スマートフォン２００はＳ６１４におけるデジタルカメラ１００からのコンテンツデータの受信完了を待たずに、Ｓ６１４においてコンテンツ一覧画面の表示を開始してもよい。
【００７０】
また、本実施形態では、Ｓ６０９でコンテンツ一覧の要求、Ｓ６１２でコンテンツデータの要求と処理を２つに分けたが、２つの機能を合わせたＡＰＩを用意して１度の要求でコンテンツデータの取得まで行えるようにしてもよい。こうすることで、スマートフォン２００からデジタルカメラ１００に送られるリクエストの数をより減らすことができる。本実施形態でＳ６０９とＳ６１２に分けた理由としては、コンテンツ一覧を事前に取得することで、コンテンツ一覧画面の構成を作成しやすくするためである。事前にコンテンツの並びや配置を想定できるため、仮ファイルなどで先に画面を形成できる。そのあとで、Ｓ６１２で要求したコンテンツデータファイルを受信してから、該当する位置に差し替えることでコンテンツ一覧画面は完成する。
【００７１】
＜デジタルカメラ１００の動作＞
図７Ａ，７Ｂは、図６シーケンスチャートにおけるデジタルカメラ１００の処理を取り出して示したフローチャートである。なお、以下の説明において、図６の説明と重複する説明は省略する。
【００７２】
Ｓ７０１において、制御部１０１は、通信部１１１を通じてスマートフォン２００の通信部２１１と通信し、無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ６０１におけるデジタルカメラ１００の処理に相当する。
【００７３】
Ｓ７０２において制御部１０１は、ディスカバリ処理を行う。本処理は、Ｓ４０２におけるデジタルカメラ１００の処理に相当する。
【００７４】
Ｓ７０３において制御部１０１は、通信部１１１を介してＡＰＩのリクエストを受信したか否かを判定し、受信していれば処理をＳ７０４に進め、受信していなければＳ７０３の処理を繰り返す。
【００７５】
Ｓ７０４において制御部１０１は、ＡＰＩ３０１（RequestProductInfo）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７０５に進め、受信していなければ処理をＳ７０８に進める。
【００７６】
Ｓ７０５において制御部１０１は、ＡＰＩ３０１に対応する処理を実行する。本処理は、Ｓ６０４におけるデジタルカメラ１００の処理に相当する。
【００７７】
Ｓ７０６において制御部１０１は、ＡＰＩ３０１の実行により取得された情報・データを、スマートフォン２００へレスポンスとして送信するための所定のデータ形式にしたのち、通信部１１１を通じてスマートフォン２００に送信する。
【００７８】
Ｓ７０７において制御部１０１は、ＡＰＩサービスを終了する指示を受信したか否かを判定し、受信していればＡＰＩサービスを実行するためのプログラムを終了する。ＡＰＩサービスを終了する指示を受信していなければ、制御部１０１は処理をＳ７０３に戻して次のＡＰＩリクエストの受信を待機する。
【００７９】
Ｓ７０８において制御部１０１は、ＡＰＩ３０２（RequestMemoryInfo）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７０９に進め、受信していなければ処理をＳ７１０に進める。Ｓ７０９において制御部１０１は、ＡＰＩ３０２の処理を実行する。本処理は、Ｓ６０６におけるデジタルカメラ１００の処理に相当する。
【００８０】
Ｓ７１０において制御部１０１は、ＡＰＩ３０３（RequestContentInfo）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７１１に進め、受信していなければ処理をＳ７１４に進める。Ｓ７１１において制御部１０１は、ＡＰＩ３０３のリクエスト引数を確認する。Ｓ７１２において制御部１０１は、確認した引数に基づいてコンテンツデータの情報を取得する。そして、Ｓ７１３において制御部１０１は、取得したコンテンツデータ情報を、リクエストされたソート順に並べ替える。このＳ７１１，Ｓ７１２，Ｓ７１３の処理は図６のＳ６１０におけるデジタルカメラ１００の処理に相当する。
【００８１】
Ｓ７１４において制御部１０１は、ＡＰＩ３０５（RequestContent）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７１５に進め、受信していなければ処理をＳ７１７に進める。Ｓ７１５において制御部１０１は、ＡＰＩ３０５のリクエスト引数を確認する。Ｓ７１６において制御部１０１は、リクエスト引数に基づいてコンテンツデータファイルを記録媒体１１０から取得し、作業用メモリ１０４に展開する。また、制御部１０１は、必要に応じて、リクエスト引数で指定されたサイズにコンテンツデータを加工する。
【００８２】
Ｓ７１７において制御部１０１は、ＡＰＩ３０６（RequestContentDetailInfo）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７１８に進め、受信していなければ処理をＳ７２０に進める。Ｓ７１８において制御部１０１は、ＡＰＩ３０６のリクエスト引数を確認する。Ｓ７１９において制御部１０１は、リクエスト引数に基づいてコンテンツデータの詳細情報を例えばコンテンツデータファイルのヘッダから取得し、作業用メモリ１０４に展開する。
【００８３】
Ｓ７２０において制御部１０１は、ＡＰＩ３０４（RequestChunkedContentData）のリクエストを受信したか否かを判定し、受信していれば処理をＳ７２１に進め、受信していなければ処理をＳ７２２に進める。このＳ７２１の詳細は後述する。
【００８４】
Ｓ７２２において制御部１０１は、デジタルカメラ１００がＡＰＩサービスとして用意していないＡＰＩをスマートフォン２００がリクエストしたと判定し、エラーである旨をレスポンスとして通信部１１１を通じてスマートフォン２００に送信する。
【００８５】
図７Ｂは、ＡＰＩ３０４（RequestChunkedContentData）のリクエストを受信したときのデジタルカメラ１００の処理（Ｓ７２１）を表したフロー図である。
【００８６】
Ｓ７３１において制御部１０１は、ＡＰＩ３０４のリクエスト引数を確認する。Ｓ７３２において制御部１０１は、確認した引数に基づいてコンテンツデータの情報を取得する。Ｓ７３３において制御部１０１は、確認した引数に基づいてコンテンツデータをソートする。これらＳ７３１，Ｓ７３２，Ｓ７３３は図６のＳ６１３におけるデジタルカメラ１００の処理に相当する。
【００８７】
Ｓ７３４において制御部１０１は、未送信コンテンツがあるか確認をする。未送信コンテンツがある場合は処理をＳ７３５へ進め、未送信コンテンツがない場合つまり取得要求枚数分コンテンツデータをすべて送信した場合は、処理をＳ７４０へ進める。
【００８８】
Ｓ７３５において制御部１０１は、ソート結果に基づき、コンテンツデータファイルを読み込む。Ｓ７３６において制御部１０１は、読み込んだコンテンツデータファイルをレスポンス用のＣｈｕｎｋデータ形式で記述し、通信部１１１を介してスマートフォン２００に送信する。
【００８９】
Ｓ７３７において制御部１０１は、コンテンツデータの詳細情報の取得の要求に対して、未送信な詳細情報があるかを確認する。未送信な詳細情報がある場合は、処理をＳ７３８へ進める。未送信な詳細情報がない場合は、処理をＳ７３４へ進め、再び未送信コンテンツの有無について確認をする。
【００９０】
Ｓ７３８において制御部１０１は、要求されたコンテンツデータの詳細情報を読み込む。Ｓ７３９において制御部１０１は、読み込んだコンテンツデータの詳細情報をレスポンス用のＣｈｕｎｋデータ形式で記述し、通信部１１１を介してスマートフォン２００に送信する。送信後、処理をＳ７３７へ進め、再び未送信なコンテンツデータの詳細情報の有無を確認する。
【００９１】
Ｓ７４０において制御部１０１は、Ｃｈｕｎｋ送信の終了を表す"0"をレスポンス用データに記述し、通信部１１１を介してスマートフォン２００に送信し、処理を終了する。Ｓ７３４からＳ７４０までの処理は、図６のＳ６１４におけるデジタルカメラ１００の処理に相当する。
【００９２】
なお、本実施形態では、図３で説明したＡＰＩ３０１〜３０４をＡＰＩサービスとして提供することを前提に説明したが、ＡＰＩサービスで提供するＡＰＩの種類はこれらに限定されない。例えば、「リモート撮影をする」および「カメラの設定をする」等の連係動作を実現するためのＡＰＩが提供されてもよい。新たなＡＰＩの提供はデジタルカメラ１００で実行するＡＰＩプログラムの追加により実現可能である。
【００９３】
＜スマートフォン２００の動作＞
図８Ａは、図６のシーケンスチャートにおけるスマートフォン２００の処理を取り出して示したフローチャートである。以下の説明において、図６の説明と重複する説明は省略する。以下の動作は、スマートフォン２００の制御部２０１が不揮発性メモリ２０３にインストールされている、デジタルカメラ１００との連係動作用アプリケーション（通信アプリ）を実行することにより実現される。
【００９４】
Ｓ８０１において、制御部２０１は、通信部２１１を通じてデジタルカメラ１００の通信部１１１と通信し、無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ６０１におけるスマートフォン２００の処理に相当する。
【００９５】
Ｓ８０２において制御部２０１は、ディスカバリ処理を行う。本処理は、Ｓ６０２におけるスマートフォン２００の処理に相当する。
【００９６】
Ｓ８０３において制御部２０１は、ＡＰＩ３０１（RequestProductInfo）のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ６０３におけるスマートフォン２００の処理に相当する。
【００９７】
Ｓ８０４において制御部２０１は、リクエストしたＡＰＩのレスポンスの受信を待機する。図８Ｂは、このレスポンス待機処理のフローチャートである。
【００９８】
Ｓ８２１にて制御部２０１は、ＡＰＩのレスポンスを受信したか否か判定し、受信していればＳ８２２に、受信していなければＳ８２３に、それぞれ処理を進める。
【００９９】
Ｓ８２２において制御部２０１は、受信したレスポンスを解析し、必要に応じて作業用メモリ２０４に保存し、その後のＡＰＩリクエストに用いる引数として参照したり、ＵＩ表示時の情報として利用したりする。なお、受信したレスポンスがエラーを示すものであれば、制御部２０１はＡＰＩの再リクエストを行うか、デジタルカメラ１００との連携動作のためのアプリケーションプログラムを終了する。
【０１００】
Ｓ８２３において制御部２０１は、予め設定されたタイムアップの時間が経過したか否かを判定する。本実施形態では、ＡＰＩリクエストの送信からレスポンスを受信するまでの待ち時間の上限がタイムアップ時間として予め設定され、デジタルカメラ１００のからレスポンスを受信する前にタイムアップ時間が経過すると、制御部２０１は処理をＳ８２４に進める。ＡＰＩリクエストからタイムアップ時間が経過していなければ、制御部２０１は処理をＳ８２１に戻す。
【０１０１】
Ｓ８２４で制御部２０１は、表示部２０６にエラーメッセージを表示し、ＡＰＩリクエストが正常に実行されなかったことをユーザに報知する。この場合、エラーメッセージの表示画面からデジタルカメラ１００との連携動作の再試行をユーザが指定できるようにし、再試行指示があればＳ８０３に処理を戻してもよい。また、処理を中止する旨の指示があれば、図８Ａの処理を終了してもよい。なお、上記は、Ｓ８０４におけるレスポンス待機処理として説明したが、レスポンス待機処理はＳ８０４だけでなく、制御部２０１がデジタルカメラ１００に要求を送信した場合のその応答を待つ処理であるので、Ｓ８０４のみではなく、後述するＳ８０６、Ｓ８１０などでも同様のものとなる点に注意されたい。
【０１０２】
図８Ａの説明に戻る。次に、Ｓ８０５において制御部２０１は、ＡＰＩ３０２（RequestMemoryInfo）のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ６０５におけるスマートフォン２００の処理に相当する。そして、Ｓ８０６において制御部２０１は、Ｓ８０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ８２４で再試行指示があった場合、Ｓ８０５から再試行する。
【０１０３】
Ｓ８０７において制御部２０１は、表示部２０６にメニュー画面を表示する。本処理はＳ６０７におけるスマートフォン２００の処理に相当する。
【０１０４】
Ｓ８０８において制御部２０１は、ユーザ操作によりコンテンツ一覧表示を指示されたか否かを判定する。本実施形態において制御部２０１は、メニュー画面の「カメラ内の画像を見る」ボタンが選択されたか否かを判定し、選択された場合には処理をＳ８０９に進め、選択されていなければ選択されるまで待機する。
【０１０５】
Ｓ８０９において制御部２０１は、ＡＰＩ３０３（RequestContentInfo）のリクエストをデジタルカメラ１００に送信する。本処理は、図６のＳ６０９におけるスマートフォン２００の処理に相当する。
【０１０６】
Ｓ８１０において制御部２０１は、Ｓ８０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ８２４で再試行指示があった場合、Ｓ８０９から再試行する。
【０１０７】
Ｓ８１１において制御部２０１は、ＡＰＩ３０４（RequestChunkedContentData）のリクエストをデジタルカメラ１００に送信する。本処理は、図６のＳ６１２におけるスマートフォン２００の処理に相当する。
【０１０８】
Ｓ８１２において制御部２０１は、Ｓ８０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ８２４で再試行指示があった場合、Ｓ８１１から再試行する。
【０１０９】
Ｓ８１３において制御部２０１は、Ｓ８１２で受信したレスポンスのデータがＣｈｕｎｋ送信の終了を表す"0"であるかを確認する。"0"であった場合、処理を終了する。"0"でなかった場合、処理をＳ８１４へ進める。
【０１１０】
Ｓ８１４において制御部２０１は、Ｓ８１２で受信したレスポンスのデータからコンテンツデータファイルを取得し、作業用メモリ２０４へ保存する。
【０１１１】
Ｓ８１５において制御部２０１は、作業用メモリ２０４へ保存したコンテンツデータファイルを用いてコンテンツデータ一覧画面を更新し、表示部２０６に表示する。
【０１１２】
Ｓ８１６において制御部２０１は、コンテンツデータの詳細情報の取得の要求に対して、未取得な詳細情報があるかを確認する。未取得な詳細情報がある場合は、処理をＳ８１７へ進める。未取得な詳細情報がない場合は、処理をＳ８１３へ進め、再びレスポンスデータがＣｈｕｎｋ送信の終了を表す"0"であるかを確認する。
【０１１３】
Ｓ８１７において制御部２０１は、レスポンスデータからコンテンツデータの詳細情報を取得し、作業用メモリ２０４へ保存する。Ｓ８１８において制御部２０１は、作業用メモリ２０４へ保存したコンテンツデータの詳細情報を用いてコンテンツデータ一覧画面を更新し、表示部２０６に表示する。更新後は処理をＳ８１６へ進め、再び未取得なコンテンツデータの詳細情報があるかを確認する。
【０１１４】
Ｓ８１２からＳ８１８の処理は、図６のＳ６１５におけるスマートフォン２００の処理に相当する。
【０１１５】
以上説明したように本実施形態によれば、コンテンツデータを有し、提供する側の電子機器（実施形態ではデジタルカメラ１００）が、１つのＡＰＩリクエストに応じて、複数のコンテンツデータのＩＤおよび基本情報をまとめて取得可能なサービスを外部装置に提供するようにした。そのため、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
【０１１６】
コンテンツ一覧画面は表示内容の変更が頻繁に行われることが多く、外部装置がコンテンツ要求を行う回数も多い。コンテンツ一覧画面のデータ送信をＣｈｕｎｋに変更することによるリクエスト回数の削減効果は大きいと考えられる。
【０１１７】
コンテンツ一覧画面が表示内容を変更する場合について、第２の実施形態で説明する。また、コンテンツ一覧画面が表示部より大きく、スクロール移動などの操作が必要な場合について、第３の実施形態にて説明する。
【０１１８】
［第２の実施形態］
次に、第２の実施形態について説明する。上記の第１の実施形態では、スマートフォン２００から複数コンテンツの取得要求を出し、コンテンツ一覧画面を表示するまでの流れについて説明した。本第２の実施形態では、スマートフォン２００から表示設定変更を行った場合の流れについて説明する。
【０１１９】
表示設定の変更の例としては、図５（ａ）の画面にてボタン５０４を操作することで表示される図５（ｂ）のメニュー画面にて、ユーザが必要とする項目に対して値や状態を設定することが挙げられる。スマートフォン２００は、通常、表示設定変更に基づく引数を持つＡＰＩを、デジタルカメラ１００へコンテンツデータの再取得要求として送信する。この時、再取得するコンテンツデータを最小限にすることで、データ取得の時間を短くでき、コンテンツ一覧画面作成までの時間を早めることができる。既に取得したコンテンツデータを再利用することで、新たに取得するコンテンツデータ量を抑えることができる。
【０１２０】
表示していた情報を非表示に変更するなど、表示形式の設定変更により、新たにコンテンツデータファイルおよびコンテンツデータ情報が必要ない場合は、デジタルカメラ１００に対し、改めてコンテンツデータの取得要求を出す必要はない。具体的には、図５（ｂ）において、ファイル名表示、ファイルサイズ表示、撮影日時表示、位置情報表示などのコンテンツデータの詳細情報を「入」から「切」に変更したときがこのケースに該当する。また、サムネイル表示数を少なく変更した場合もこのケースに該当する。
【０１２１】
表示するコンテンツ一覧の範囲の変更や表示する情報の追加など、表示設定変更により、新たにコンテンツデータファイルおよびコンテンツデータ情報が必要になる場合は、デジタルカメラ１００に対して、改めてコンテンツデータの取得要求を出す必要がある。具体的には、受信したコンテンツデータに含まれない項目（例えばファイル名）についてその項目に対して「切」から「入」に変更したケース、サムネイル表示数を大きく変更したケース、更には、図５（ａ）のボタン５０４を用いた表示ページの移動したケースなどがこれに該当する。
【０１２２】
図５（ｂ）で表示方法をファイル名順から撮影日時順に変更した場合など、コンテンツ一覧のソート結果自体に変更が発生する場合は、コンテンツデータの再取得の前に、コンテンツ一覧の再取得も必要である。
【０１２３】
また、コンテンツ一覧画面作成途中の状態の時に、コンテンツデータの取得要求を出す場合、スマートフォン２００はデジタルカメラ１００対し、取得中のコンテンツデータのキャンセル処理を行う必要がある。キャンセルを行うことで、コンテンツデータの取得完了を待つ必要がなくなり、表示設定変更後のコンテンツ一覧画面作成までの時間を短縮することができる。
【０１２４】
デジタルカメラ１００およびスマートデバイス２００の構成については第１の実施形態と共通でよいため説明を省略する。
【０１２５】
＜デジタルカメラ１００の動作＞
本第２の実施形態におけるデジタルカメラ１００側の処理を図９Ａのフローチャートに示す。第１の実施形態の図７Ｂと異なるのは、Ｓ９００が追加された点であり、これ以外は第１の実施形態と同じである。それ故、Ｓ９００以外については、図７Ｂと同参照符号を付し、その説明は省略する。
【０１２６】
図９Ａのフローチャートに示によれば、デジタルカメラ１００の制御部２０１は、コンテンツデータをスマートフォン２００に転送中、Ｓ９００にて、スマートフォン２００からのキャンセル要求を受信したか否かを判定する。そして制御部２０１は、キャンセル要求を受信したと判定した場合、処理をＳ７４０に進め、否の場合には処理をＳ７３７に進める。
【０１２７】
＜スマートフォン２００の表示設定変更時の動作＞
図９Ｂは、第２の実施形態における、コンテンツ一覧画面の表示設定を変更したときのスマートフォン２００の処理を取り出して示したフローチャートである。以下に説明する処理は、制御部２０１が、スマートフォン２００にインストールされている、デジタルカメラ１００との連係動作用アプリケーション（通信アプリ）を実行することにより実現される。
【０１２８】
Ｓ９０１において、制御部２０１は、表示コンテンツ変更の有無を確認する。表示コンテンツの変更の例としては、図５（ａ）の次ページの一覧表示を行うためのボタン５０４を用いた表示ページの移動や、図５（ｂ）表示設定変更画面の操作などが挙げられる。表示コンテンツの変更がない場合、処理を終了する。変更がある場合、処理をＳ９０２へ進める。
【０１２９】
Ｓ９０２において、制御部２０１は、表示コンテンツのソート変更の有無を確認する。ソートの変更とは、コンテンツのソートをファイル名順や撮影日時順など変更することを意味する。変更がある場合は、ＡＰＩ３０３（RequestContentInfo）を用いてコンテンツ一覧（ソート結果）を取得しなおす必要がある。またここで、事前に取得しているコンテンツ一覧をスマートフォン２００自身でソートし直すことで、コンテンツ一覧の再取得処理を省略してもよい。表示順番（昇順、降順）の変更のみの場合は、コンテンツ一覧の再取得を省略したほうが、処理の負荷は少ない。
【０１３０】
表示コンテンツのソート変更がない場合は、制御部２０１は処理をＳ９０３へ進める。また、表示コンテンツのソート変更がある場合は、制御部２０１は処理をＳ９０６へ進める。
【０１３１】
Ｓ９０３おいて、制御部２０１は、表示設定変更前と後を比較して、デジタルカメラ１００に要求していないコンテンツデータの有無を判定する。未要求のコンテンツデータがある場合は、制御部２０１は処理をＳ９０４へ進める。未要求のコンテンツデータがない場合は、制御部２０１は処理をＳ９１３へ進め、画面を更新して処理を終了する。
【０１３２】
Ｓ９０４おいて、制御部２０１は、デジタルカメラ１００からコンテントデータを取得中か否かを確認する。取得中でない場合は、処理をＳ９１０へ進める。取得中である場合は、処理をＳ９０５へ進め、コンテントデータの取得のキャンセルするため、キャンセル要求をデジタルカメラ１００に送信した後、処理をＳ９１０へ進める。
【０１３３】
Ｓ９０６おいて、制御部２０１は、デジタルカメラ１００からコンテントデータを取得中か否かを確認する。取得中でない場合は、処理をＳ９０８へ進める。取得中である場合は、処理をＳ９０７へ進め、コンテントデータの取得をキャンセルするため、キャンセル要求をデジタルカメラ１００に送信した後、処理をＳ９０８へ進める。
【０１３４】
Ｓ９０８において、制御部２０１は、ＡＰＩ３０３（RequestContentInfo）のリクエストをデジタルカメラ１００に送信する。Ｓ９０８は図８のＳ８０９と同様なため説明を省略する。この送信後、制御部２０１は処理をＳ９０９へ進める。
【０１３５】
Ｓ９０９において、制御部２０１は、リクエストしたＡＰＩのレスポンス受信を待機する。Ｓ９０９は図８のＳ８１０と同様なため説明は省略する。受信後、制御部２０１は処理をＳ９１０へ進める。
【０１３６】
Ｓ９１０において制御部２０１は、ＡＰＩ３０４（RequestChunkedContentData）のリクエストをデジタルカメラ１００に送信する。このＳ９１０は図８のＳ８１１と同様なため説明を省略する。このリクエストの送信後、制御部２０１は、処理をＳ９１１へ進める。
【０１３７】
Ｓ９１１において、制御部２０１は、リクエストしたＡＰＩのレスポンス受信を待機する。Ｓ９１１は図８のＳ８１２と同様なため、説明は省略する。受信後、制御部２０１は、処理をＳ９１２へ進める。
【０１３８】
Ｓ９１２において、制御部２０１は、受信したレスポンスデータをパースし、コンテンツデータファイルおよびコンテンツデータ情報を取得する。さらに取得したデータを用いてコンテンツ一覧画面を更新する。Ｓ９１２の処理は、図８のＳ８１３からＳ８１８に該当する。ここでの説明は省略する。
【０１３９】
＜コンテンツ一覧画面作成時の通信シーケンス＞
コンテンツデータ受信中に、コンテンツ一覧画面の表示設定を変更したときの動作を、図１０のシーケンス図を参照して以下に説明する。なお、本第２の実施形態では、コンテンツデータが画像ファイルである場合を説明するが、音声ファイルなど、他の種類のファイルであっても同様に処理できる。
【０１４０】
本シーケンスはコンテンツデータの取得中の状態から始まる。
【０１４１】
図１０のＳ１００１からＳ１００４は、図６のＳ６１２からＳ６１５に該当し、スマートフォン２００からデジタルカメラ１００へのコンテンツデータの要求および、デジタルカメラ１００からスマートフォン２００へのコンテンツデータ送信、スマートフォン２００の画面更新のシーケンスを表している。これらは図６と同様なため、ここでの説明は省略する。また、本第２の実施形態では、Ｓ１００４においてコンテンツデータの取得は完了していないものとする。
【０１４２】
Ｓ１００５において、スマートフォン２００の制御部２０１は、表示コンテンツの変更の指示を検知する。本処理は図９ＢのＳ９０１に相当する。ここでは、図５（ｂ）の表示設定画面の操作により、表示方法を変更したものとして説明を続ける。
【０１４３】
Ｓ１００６において、スマートフォン２００の制御部２０１は、表示コンテンツのソート変更有無を確認する。本処理は図９ＢのＳ９０２に相当する。制御部２０１は表示設定変更前の設定内容と、法事設定変更後の設定内容を比較し、表示方法の変更があったことを検知する。表示方法の変更によりソート変更必要ありとして、コンテンツ一覧の再取得を試みる。
【０１４４】
Ｓ１００７において、スマートフォン２００の制御部２０１は、コンテンツデータの受信処理中の有無を確認し、受信中である場合は、コンテンツデータ送信処理のキャンセル要求をデジタルカメラ１００に送信する。この処理は図９ＢのＳ９０６およびＳ９０７に相当する。
【０１４５】
Ｓ１００８において、デジタルカメラ１００の制御部１０１は、スマートフォン２００から通知された送信キャンセルを検知し、データ転送を終了する。この処理は図９ＡのＳ９００がＹＥＳ→Ｓ７４０に相当する。
【０１４６】
Ｓ１００９において、デジタルカメラ１００の制御部１０１は、Ｃｈｕｎｋ送信の終了を表す"0"をレスポンス用データに記述し、通信部１１１を介してスマートフォン２００に送信し、処理を終了する。
【０１４７】
スマートフォン２００の制御部２０１は、コンテンツデータの送信がキャンセルされたことを確認し、Ｓ１０１０において、ＡＰＩ、RequestContentInfo３０３をデジタルカメラ１００に再リクエストする。Ｓ１０１０以降の処理は、図６のＳ６０９以降の処理と同様なため説明は省略する。
【０１４８】
以上説明したように本第２の実施形態によれば、コンテンツ一覧画面が表示内容を変更する場合についても、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
【０１４９】
引き続き、コンテンツ一覧画面が表示部より大きく、スクロール移動などの操作が必要な場合に対処した例を、第３の実施形態として説明する。
【０１５０】
[第３の実施形態]
実施形態におけるスマートフォン２００の表示部２０６のサイズは当然ながら有限であり、一度に表示できるコンテンツ数に上限がある。それ故、スマートフォン２００がデジタルカメラ１００に対して、その上限を超える数のコンテンツを要求した場合、全受信コンテンツの一部を、スクロールバー付きのコンテンツ一覧として表示する。実施形態によれば、コンテンツデータは要求したソート条件に従って順番に送られてくるため、取得要求枚数が多い場合、順番が遅いコンテンツデータの取得開始にはある程度の遅延が生じる。通信速度やスクロールバーの移動速度によっては、表示位置のコンテンツデータが未取得の状態になっていることも考えられる。この場合、未取得のコンテンツは非表示状態となり、利用者はコンテンツの内容を閲覧することができない。この問題を解決する公知な手法として、一定以上のスクロールの移動距離を検知してデータ取得をキャンセルし、スクロールの移動が停止したことを検知して、そのスクロール位置の表示に必要なデータから取得を再開するという手法が知られている。本実施形態では、この手法に、本提案のＣｈｕｎｋを用いたデータ送信方法を利用し、スマートフォン２００からデジタルカメラ１００への取得要求の数を抑える。
【０１５１】
＜コンテンツ一覧画面の動作＞
図１１（ａ）乃至（ｃ）は、コンテンツ一覧画面をスクロール操作したときの様子を表した図である。
【０１５２】
図１１（ａ）は、コンテンツ一覧画面のスクロールバーの操作を開始した様子を表している。この例では、コンテンツデータはファイル名順に昇順で取得されている例を示している。IMG_0001.JPGからIMG_0004.JPGのコンテンツデータファイルは取得済みであるため、コンテンツ一覧画面１１０１上にサムネイルとして表示されている。IMG_0005.JPG以降は、コンテンツデータファイルが未取得な状態であるため、非表示状態を表すアイコン１１０２を表示している。図１１（ａ）の画面の右端にはスクロールバー１１０３が設置されている。
【０１５３】
図１１（ｂ）は、スクロールバーを下に移動した状態を表している。表示範囲にあるコンテンツデータはすべて未取得（未受信）な状態であり、サムネイルはすべて非表示状態である。このとき、制御部２０１は、スクロールバーの移動距離が予め設定された閾値以上になったか否かを判定する。
【０１５４】
例えば、現在、取得したコンテンツが１００個中の４つまでであり、スクロール後の一覧表示する左上隅の位置に最も近いコンテンツがＮ番目であった場合、制御部２０１は、『Ｎ−４』を移動距離として認定する。そして、スマートフォン２００の制御部２０１は、この「Ｎ−４」と予め設定された正の閾値とを比較することで、移動距離が閾値以上になったか否かを判定する。スクロールの移動距離が閾値以上となった場合、制御部２０１は、デジタルカメラ１００に対して、コンテンツデータの送信をキャンセルする。
【０１５５】
図１１（ｃ）は、スクロールバーの操作を終了した状態を表している。スマートフォンの制御部２０１はスクロールバーの操作停止を検知し、表示範囲に位置するコンテンツを特定する。この表示範囲に位置するコンテンツをはじめに取得要求することで、表示範囲にいち早くサムネイルを表示することができる。またこの時、事前のスクロール操作の方向について考慮するとよい。この例では事前にスクロールを下方向に操作しており、今後も下方向に操作される可能性が高い。コンテンツ表示画面の上から下に向かって順番にコンテンツを取得することで、表示範囲にあるコンテンツが再び未取得状態になることを防げる。この例の場合、制御部２０１は、ファイル名順に昇順、“IMG_0091.JPG”を基準（複数ファイルのうちの最初のファイル）として、その基準ファイル以降のファイルのコンテンツ取得要求を送信する。また、スクロールを上方向に移動した場合は、表示範囲の下から上に向かってコンテンツデータの取得要求を出せば同様の効果を得られる。
【０１５６】
＜コンテンツ一覧画面作成時の通信シーケンス＞
本第３の実施形態は、第２の実施形態と共通のシーケンスで実現可能である。コンテンツデータ送信中に、後述するスマートフォン２００のスクロール操作があった場合は、スマートフォン２００からデジタルカメラ１００に転送キャンセルを要求する。この場合、図１０のＳ１００５は「スクロール操作による表示コンテンツの変更指示の検知」を意味することになる。また、コンテンツ再取得要求に関しては、Ｓ１０１０以降の処理と同様である。
【０１５７】
＜デジタルカメラ１００の動作＞
本第３の実施形態におけるデジタルカメラ１００の処理は、第２の実施形態で示した図９Ａと同じでよい。つまり、デジタルカメラ１００の制御部２０１は、コンテンツデータをスマートフォン２００に転送中、Ｓ９００にて、スマートフォン２００からのキャンセル要求を受信したか否かを判定する。そして制御部２０１は、キャンセル要求を受信したと判定した場合、処理をＳ７４０に進め、否の場合には処理をＳ７３７に進め、送信処理を終了する。
【０１５８】
＜スマートフォン２００のスクロール操作時の動作＞
図１２は、第３の実施形態における、コンテンツ一覧画面のスクロールバーの操作をしたときのスマートフォン２００の処理を示すフローチャートである。以下の動作は、制御部２０１がスマートフォン２００にインストールされている、デジタルカメラ１００との連係動作用アプリケーション（通信アプリ）を実行することにより実現される。
【０１５９】
Ｓ１２０１において、スマートフォン２００の制御部２０１は、スクロールバー操作の検知を行う。本処理は図１０のＳ１００５に相当する。スクロールバーの移動距離が所定の閾値以上だった場合、制御部２０１は処理をＳ１２０２へ進める。閾値未満の場合、処理を終了する。移動距離判定のための閾値は経験から静的に固定値を設定してもいいし、その時の通信速度などを考慮して、動的に変更してもよい。スクロール後の表示部２０６に表示されるべき、コンテンツのアイコンの全てが未取得状態になったことを条件としてもよい。
【０１６０】
Ｓ１２０２において、制御部２０１は、コンテンツデータを取得中か否かを判定する。コンテンツデータを取得中の場合は、制御部２０１は、処理をＳ１２０３へ進め、コンテンツデータの取得をキャンセルするため、キャンセル要求をデジタルカメラ１００に送信する。また、取得中でない場合は、制御部２０１は、処理をＳ１２０４へ進める。
【０１６１】
Ｓ１２０４において、制御部２０１は、スクロール操作が停止しているかを確認する。スクロール操作が停止したと判定した場合、制御部２０１は、処理をＳ１２０５へ進める。このとき最後に操作されたスクロール方向を作業メモリ２０４へ記録しておく。
【０１６２】
Ｓ１２０５において、制御部２０１は、デジタルカメラ１００へリクエストするコンテンツデータの要求条件を決定する。コンテンツデータの要求条件とは、具体的には、ＡＰＩ３０４（RequesChunkedContentData）で使用する引数のことである。制御部２０１は、Ｓ１２０４で作業用メモリに記録した、最後に操作されたスクロール方向から、ソート方向を決定し、コンテンツ一覧画面の表示範囲から、初めに取得する基準となるコンテンツＩＤを決定する。要求条件が決定すると、制御部２０１は、処理をＳ１２０６へ進める。
【０１６３】
Ｓ１２０６において、制御部２０１は、ＡＰＩ３０４のリクエストをデジタルカメラ１００に送信する。送信後、制御部２０１は、処理をＳ１２０７へ進める。
【０１６４】
Ｓ１２０７において、制御部２０１は、リクエストしたＡＰＩのレスポンス受信を待機する。受信後、制御部２０１は処理をＳ１２０８へ進める。
【０１６５】
Ｓ１２０８において、制御部２０１は、受信したレスポンスデータをパースし、コンテンツデータファイルおよびコンテンツデータ情報を取得する。さらに取得したデータを用いてコンテンツ一覧画面を更新する。
【０１６６】
Ｓ１２０６からＳ１２０８の処理は、図９ＢのＳ９１０からＳ９１２と同様であるため、ここでの説明は省略する。
【０１６７】
以上説明したように本第３の実施形態によれば、コンテンツ一覧画面が表示内容を変更する場合についても、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
【０１６８】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態においては、送信対象を画像として説明したが、これに限る必要はない。たとえば、音声ファイルや文書ファイルなど、クライアント機器とサーバ機器の間でやりとりできるファイルであれば何でもよい。
【０１６９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１７０】
１００…デジタルカメラ、１０１…制御部、１０２…撮像部、１０３…不揮発性メモリ、１１０…記録媒体、１１１…接続部、２００…スマートフォン、２０１…制御部、２１１…接続部、２０５…操作部、２０６…表示部
【図１】
2020035373.tif 000003
【図２】
2020035373.tif 000004
【図３】
2020035373.tif 000005
【図４】
2020035373.tif 000006
【図５】
2020035373.tif 000007
【図６】
2020035373.tif 000008
【図７Ａ】
2020035373.tif 000009
【図７Ｂ】
2020035373.tif 000010
【図８Ａ】
2020035373.tif 000011
【図８Ｂ】
2020035373.tif 000012
【図９Ａ】
2020035373.tif 000013
【図９Ｂ】
2020035373.tif 000014
【図１０】
2020035373.tif 000015
【図１１】
2020035373.tif 000016
【図１２】
2020035373.tif 000017