(57)【特許請求の範囲】
【請求項１】
ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供するサーバ機器であって、
前記クライアント機器の種別を判別する判別手段と、
前記判別手段により判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定手段と、
前記決定手段により決定した項目に対応するコンテンツ情報を取得する取得手段と、
前記クライアント機器からコンテンツ情報の要求を受信する受信手段と、
前記受信手段により前記要求を受信した場合、前記取得手段により取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信手段とを有し、
前記取得手段は、前記判別手段による前記クライアント機器の判別後であって、かつ前記受信手段により前記要求を受信する前に、前記決定手段により決定した項目に対応するコンテンツ情報を取得することを特徴とするサーバ機器。
【請求項２】
前記コンテンツから取得したコンテンツ情報はテーブルで管理されることを特徴とする請求項１に記載のサーバ機器。
【請求項３】
前記決定手段は、前記クライアントの種別と前記コンテンツから取得するコンテンツ情報の項目とを関連付けて保持する保持手段をさらに有することを特徴とする請求項１又は２に記載のサーバ機器。
【請求項４】
前記決定手段は、前記判別手段により判別したクライアント機器の種別と関連付けて保持されている項目を、前記前記コンテンツから取得するコンテンツ情報の項目として決定することを特徴とする請求項３に記載のサーバ機器。
【請求項５】
前記保持手段は、前記クライアント機器の種別と関連付けられていないデフォルトの項目をさらに保持し、
前記判別手段により判別したクライアントの種別が前記保持手段により保持されていない場合、前記決定手段は、前記デフォルトの項目を前記コンテンツから取得するコンテンツ情報の項目として決定することを特徴とする請求項３又は４に記載のサーバ機器。
【請求項６】
前記保持手段に保持された情報は、更新することが可能であることを特徴とする請求項３〜５のいずれか１項に記載のサーバ機器。
【請求項７】
前記決定手段により決定した項目を前記コンテンツから取得してテーブルで管理する管理手段をさらに有することを特徴とする請求項１〜５のいずれか１項に記載のサーバ機器。
【請求項８】
前記クライアント機器とは異なる外部機器と通信する通信手段をさらに有し、
前記通信手段は、前記決定手段により決定した項目を前記外部機器に送信し、
前記外部機器からコンテンツ情報を受信し、
前記外部機器は、前記通信手段により送信された項目に対応するコンテンツ情報をコンテンツから取得し、取得した前記コンテンツ情報を前記サーバ機器に送信する構成にしたことを特徴とする請求項１〜７のいずれか１項に記載のサーバ機器。
【請求項９】
前記送信手段により送信する情報はＸＭＬ（ExtensibleMarkupLanguage）形式のデータであることを特徴とする請求項１〜８のいずれか１項に記載のサーバ機器。
【請求項１０】
ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供するサーバ機器の制御方法であって、
前記クライアント機器の種別を判別する判別手順と、
前記判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定手順と、
前記決定した項目に対応するコンテンツ情報を取得する取得手順と、
前記クライアント機器からコンテンツ情報の要求を受信する受信手順と、
前記要求を受信した場合、前記取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信手順とを有し、
前記取得手順では、前記判別手順による前記クライアント機器の判別後であって、かつ前記受信手順により前記要求を受信する前に、前記決定手順により決定した項目に対応するコンテンツ情報を取得することを特徴とするサーバ機器の制御方法。
【請求項１１】
ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供する処理をコンピュータに実行させるためのプログラムであって、
前記クライアント機器の種別を判別する判別処理と、
前記判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定処理と、
前記決定した項目に対応するコンテンツ情報を取得する取得処理と、
前記クライアント機器からコンテンツ情報の要求を受信する受信処理と、
前記要求を受信した場合、前記取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信処理とをコンピュータに実行させ、
前記取得処理では、前記判別処理による前記クライアント機器の判別後であって、かつ前記受信処理により前記要求を受信する前に、前記決定処理により決定した項目に対応するコンテンツ情報を取得することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上で提供するコンテンツの情報を通知するサーバ機器、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年のデジタル製品の普及に伴い、デジタル製品をネットワークに接続してホームネットワークを構築し、連携動作させようとする動きが一般的になっている。ホームネットワークを構築することで、例えば音楽や映像といったＡＶコンテンツをホームネットワーク上に存在する機器で共有することが可能になる。このようなホームネットワークを構築する際の機器に対する相互接続性がＤＬＮＡ（Digital Living Network Alliance）によって規定されている。
【０００３】
ＤＬＮＡでは、ＡＶコンテンツを管理するサーバ機器と、サーバ機器を制御するクライアント機器とによりネットワークが構成される。ＤＬＮＡに対応したサーバ機器は、ＤＬＮＡに対応したクライアント機器からの要求に応じて該サーバ機器が管理するＡＶコンテンツの情報を通知する。クライアント機器では、サーバ機器から受け取ったＡＶコンテンツの情報により、ＡＶコンテンツの一覧を表示等することができる。
【０００４】
例えばデジタルカメラがＤＬＮＡのサーバ機器、テレビがＤＬＮＡのクライアント機器として動作するネットワーク構成を説明する。かかるネットワーク構成において、テレビは、デジタルカメラに対して該デジタルカメラが保存している各映像のタイトル、撮影日時、データサイズ、解像度等の情報を問い合わせる。問い合わせを受けたデジタルカメラは、記憶領域に記憶されている映像データからこれらの情報を読み出し、ＸＭＬ（Extensible Markup Language）形式のデータとしてテレビに通知する。テレビは、デジタルカメラから受け取ったＸＭＬ形式のデータを参照して、例えば映像の一覧を撮影日時順でディスプレイに表示する。これにより、ユーザは所望の映像を選択し、デジタルカメラからその映像データを取得して閲覧することができる。
【０００５】
このようなホームネットワーク上でクライアント機器からの問い合わせに対してサーバ機器が応答する従来技術として、例えば特許文献１に開示されたものが知られている。特許文献１では、クライアント機器がサーバ機器を検索する際に、検索に適用可能なプロパティ情報と演算子情報を取得して検索式の設定を誤りなく的確に実行する構成が示されている。
【０００６】
【特許文献１】特開２００４−２４６４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来、サーバ機器がクライアント機器からの要求に応じて自機器が保存しているＡＶコンテンツの情報を通知する場合に、要求を受信してからＡＶコンテンツから情報を逐一読み出して、ＸＭＬ形式のデータを生成している。そのため、サーバ機器がクライアント機器に対して応答するまでに時間がかかってしまう。特にサーバ機器に大量のＡＶコンテンツが保存されている場合、この傾向が顕著となる。
【０００８】
サーバ機器が保存している全てのＡＶコンテンツについて、要求に対する応答の形式であるＸＭＬ形式のデータを予め生成しておく方式も考えられるが、サーバ機器に大量のＡＶコンテンツが保存されている場合、メモリを大量に消費してしまう。しかも、サーバ機器が生成するこれらのＸＭＬ形式のデータには、必ずしもクライアントが必要としている情報が過不足なく列挙されているとはいえない。
【０００９】
本発明は上記のような点に鑑みてなされたものであり、サーバ機器がコンテンツの情報をクライアントに通知するに際して、応答時間を短縮化し、必要な情報を効率的に通知できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のサーバ機器は、ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供するサーバ機器であって、前記クライアント機器の種別を判別する判別手段と、前記判別手段により判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定手段と、前記決定手段により決定した項目に対応するコンテンツ情報を取得する取得手段と、前記クライアント機器からコンテンツ情報の要求を受信する受信手段と、前記受信手段により前記要求を受信した場合、前記取得手段により取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信手段とを有し、前記取得手段は、前記判別手段による前記クライアント機器の判別後であって、かつ前記受信手段により前記要求を受信する前に、前記決定手段により決定した項目に対応するコンテンツ情報を取得することを特徴とする。
本発明のサーバ機器の制御方法は、ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供するサーバ機器の制御方法であって、前記クライアント機器の種別を判別する判別手順と、前記判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定手順と、前記決定した項目に対応するコンテンツ情報を取得する取得手順と、前記クライアント機器からコンテンツ情報の要求を受信する受信手順と、前記要求を受信した場合、前記取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信手順とを有し、前記取得手順では、前記判別手順による前記クライアント機器の判別後であって、かつ前記受信手順により前記要求を受信する前に、前記決定手順により決定した項目に対応するコンテンツ情報を取得することを特徴とする。
本発明のプログラムは、ネットワーク上のクライアント機器の要求に応じて自機器或いは外部機器が保存しているコンテンツを提供する処理をコンピュータに実行させるためのプログラムであって、前記クライアント機器の種別を判別する判別処理と、前記判別したクライアント機器の種別に基づいて、前記コンテンツから取得するコンテンツ情報の項目を決定する決定処理と、前記決定した項目に対応するコンテンツ情報を取得する取得処理と、前記クライアント機器からコンテンツ情報の要求を受信する受信処理と、前記要求を受信した場合、前記取得したコンテンツ情報を用いて、前記クライアント機器から要求された前記コンテンツ情報を前記クライアント機器に送信する送信処理とをコンピュータに実行させ、前記取得処理では、前記判別処理による前記クライアント機器の判別後であって、かつ前記受信処理により前記要求を受信する前に、前記決定処理により決定した項目に対応するコンテンツ情報を取得することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、サーバ機器がコンテンツの情報をクライアントに通知するに際して、応答時間を短縮化し、必要な情報を効率的に通知することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
（第１の実施形態）
第１の実施形態では、図１に示すように、サーバ機器として動作するデジタルカメラ１と、クライアント機器として動作するテレビ２０１、３０１とを含むかたちでホームネットワークを構築している。デジタルカメラ１は、デジタルカメラ１が保存しているＡＶコンテンツである撮影画像の情報（タイトル、日付、サイズ・・・等）をテレビ２０１、３０１に通知することができる。
【００１３】
本実施形態では、これらデジタルカメラ１及びテレビ２０１、３０１が無線ＬＡＮによるネットワークを構築する。その場合、一般的な無線ＬＡＮで使用されるネットワーク識別情報であるＳＳＩＤ（Service Set Identifier）や無線通信チャネル、暗号化のキー等の無線パラメータについて予め共通の情報をメモリに記憶しておく。もちろん、ネットワークの形態は限定されるものではなく、ネットワークハブ等を介した有線ＬＡＮであってもよい。
【００１４】
図２は、本実施形態におけるデジタルカメラ１の構成を示すブロック図である。デジタルカメラ１において、２は撮影レンズである。３は絞り機能を備えるシャッターである。４は光学像を電気信号に変換する撮像素子である。５はＡ／Ｄ変換器であり、撮像素子４のアナログ信号出力をデジタル信号に変換する。６はタイミング発生回路であり、撮像素子４、Ａ／Ｄ変換器５、Ｄ／Ａ変換器７にクロック信号や制御信号を供給する。タイミング発生回路６は、メモリ制御回路８及びシステム制御回路９により制御される。これらの制御回路は、入力される信号やプログラムに従い、デジタルカメラ１の各部を制御する。７はＤ／Ａ変換器である。
【００１５】
８はメモリ制御回路であり、Ａ／Ｄ変換器５、タイミング発生回路６、画像処理回路１０、画像表示メモリ１１、Ｄ／Ａ変換器７、メモリ１２を制御する。Ａ／Ｄ変換器５のデータが画像処理回路１０、メモリ制御回路８を介して、或いはＡ／Ｄ変換器５のデータが直接メモリ制御回路８を介して、画像表示メモリ１１或いはメモリ１２に書き込まれる。９はシステム制御回路であり、デジタルカメラ１全体を制御する。１０は画像処理回路であり、Ａ／Ｄ変換器５からのデータ或いはメモリ制御回路８からのデータに対して所定の画素補間処理や色変換処理を行う。
【００１６】
１１は画像表示メモリである。１２はメモリであり、所定枚数の静止画像や所定時間の動画像のデータを格納するのに十分な記憶量を有する。１３はＴＦＴ ＬＣＤ等からなる画像表示部であり、画像表示メモリ１１に書き込まれた表示用の画像データはＤ／Ａ変換器７を介して画像表示部１３により表示される。画像表示部１３を用いて撮像した画像データを逐次表示すれば、電子ファインダ機能を実現することが可能である。
【００１７】
１４は露光制御部であり、絞り機能を備えるシャッター３を制御する。露光制御部１４は、フラッシュ１７と連携することによりフラッシュ調光機能も有する。１５は測距制御部であり、撮影レンズ２のフォーカシングを制御する。１６はズーム制御部であり、撮影レンズ２のズーミングを制御する。１７はフラッシュであり、ＡＦ補助光の投光機能、フラッシュ調光機能も有する。
【００１８】
１８は電源制御部であり、電池検出回路、ＤＣ-ＤＣコンバータ、通電するブロックを切り替えるスイッチ回路等により構成される。電源制御部１８は、電池の装着の有無、電池の種類、電池残量の検出を行い、検出結果及びシステム制御回路９の指示に基づいてＤＣ-ＤＣコンバータを制御し、必要な電圧を必要な期間、記録媒体を含む各部へ供給する。１９は電源であり、アルカリ電池やリチウム電池等の一次電池やＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプタ等からなる。
【００１９】
２０はメモリであり、システム制御回路９の動作用の定数、変数、プログラム等を記憶する。２１は表示部であり、システム制御回路９でのプログラムの実行に応じて、文字、画像、音声等を用いて動作状態やメッセージ等を表示する液晶表示装置、スピーカー等からなる。表示部２１は、デジタルカメラ１の操作部近辺の視認し易い位置に単数或いは複数個所設置され、例えばＬＣＤやＬＥＤ、発音素子等の組み合わせにより構成される。２２は電気的に消去・記録可能な不揮発性メモリであり、機器の無線設定情報を記憶することができる。
【００２０】
２３はメモリカードを接続するためのメモリカードインタフェースである。２４は外部機器とＵＳＢを用いて接続するためのＵＳＢインタフェースである。２５はシステム制御回路９の各種の動作指示を入力するための操作部であり、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。２６はシャッタースイッチであり、撮像素子４から読み出した信号をＡ／Ｄ変換器５、メモリ制御回路８を介してメモリ１２に画像データを書き込む露光処理、画像処理回路１０やメモリ制御回路８での演算を用いた現像処理という一連の処理の動作開始を指示する。２７は無線通信回路であり、無線信号を送受信し、無線通信を制御する。２８は他の機器と無線通信を行うためのアンテナである。
【００２１】
図３は、本実施形態におけるテレビ２０１の構成を示すブロック図である。テレビ２０１において、２０２は出力部であり、音声処理部２０５からの出力を受けて音声等を出力する。２０３は表示部であり、表示処理部２０６からの出力を受けて情報を表示する。２０４は操作部であり、システムコントローラ２０７を介してユーザによる各種の動作指示を入力するための操作手段である。２０５は音声処理部である。２０６は表示処理部である。２０７はシステムコントローラである。システムコントローラ２０７は、入力される信号やプログラムに従い、デジタルカメラ１の各部を制御する。２０８は電気的に消去・記録可能な不揮発性メモリであり、機器の無線設定情報を記憶する。２０９はメモリであり、テレビの動作用の定数、変数、プログラム等を記憶する。
【００２２】
２１０は無線通信回路であり、無線信号を送受信し、無線通信を制御する。２１５は他の機器と無線通信を行うためのアンテナである。２１１は外部機器からのデータ入力部である。２１２は外部機器へのデータ出力部である。２１３はチューナであり、放送信号を受信して音声処理部２０５、表示処理部２０６へ与える。２１４はテレビ２０１に電源を供給する電源部である。
【００２３】
なお、テレビ３０１の構成も、図２に示した構成と同様であり、ここではその説明を省略する。
【００２４】
以下、本実施形態においてサーバ機器（デジタルカメラ１）が、クライアント機器（テレビ２０１、３０１）に、該サーバ機器が保存しているＡＶコンテンツの情報を通知する動作について説明する。デジタルカメラ１及びテレビ２０１、３０１の動作は、いずれも図１、図２に示した不揮発性メモリ２２、２０８に記憶されたソフトウェアによって実行される。なお、図７には、以下の動作中にやり取りされるパケットの例を示す。各パケットには、図示されているフィールド以外にも明示されていない通信プロトコル特有のヘッダフィールド等が付加される。
【００２５】
図４を参照して、クライアント機器がネットワーク上でサーバ機器を発見し、該サーバ機器からＡＶコンテンツの情報を取得する動作について説明する。なお、図４のフローチャートに示す動作は、テレビ２０１や３０１のシステムコントローラ２０７が各部を制御することにより実行される。
【００２６】
クライアント機器が起動すると、ステップＳ４０１で、サーバ機器から告知パケット７０１を受信したかどうかを確認する。告知パケット７０１を受信した場合、ステップＳ４０４に進む。告知パケット７０１を受信していない場合、ステップＳ４０２に進み、検索パケット７０２を送信する。ここでは、クライアント機器が検索するサーバ機器のタイプを検索パケット７０２の検索ターゲットフィールドに指定する。例えばクライアント機器は、ネットワーク上に複数のサーバ機器が存在する場合でも、映像や音声を扱うサーバ機器を指定して検索することができる。
【００２７】
ステップＳ４０３で、サーバ機器から検索応答パケット７０３を受信したかどうかを確認する。一定時間検索応答パケット７０３を受信しない場合、ステップＳ４０１に戻り、告知パケット７０１又は検索応答パケット７０３の受信を待機する。告知パケット７０１又は検索応答パケット７０３を受信した場合、ステップＳ４０４に進み、告知パケット７０１又は検索応答パケット７０３の機器タイプフィールドを参照して、送信元サーバ機器のタイプを確認する。
【００２８】
ステップＳ４０５で、送信元サーバ機器が目的とする動作に必要な機器であるかどうかを判断する。すなわち、クライアント機器は、告知パケット７０１又は検索応答パケット７０３の機器タイプフィールドを参照して、送信元サーバ機器が、映像や音声を扱うサーバ機器であるかどうかを確認する。送信元サーバ機器が目的とする動作に必要な機器（映像や音声を扱うサーバ機器）である場合、告知パケット７０１又は検索応答パケット７０３の機器情報のＵＲＬを記憶して、ステップＳ４０６に進む。それに対して、送信元サーバ機器が目的とする動作に必要な機器でない場合、ステップＳ４０１に戻り、目的とする動作に必要な機器を発見するまで検索動作を繰り返す。
【００２９】
次に、ステップＳ４０６で、ステップＳ４０５にて目的とする動作に必要と判断されたサーバ機器に機器情報要求パケット７０４を送信し、そのサーバ機器やサーバ機器が提供できるサービスについての詳細情報を要求する。機器情報要求パケット７０４の送信は、ステップＳ４０５にて記憶した機器情報のＵＲＬを参照して実行する。機器情報要求パケット７０４を送信してサーバ機器に詳細情報を要求する際に、機器情報要求パケット７０４のプロトコルヘッダに自機器を特定する情報を付加してもよい。例えば機器情報要求パケット７０４のＨＴＴＰヘッダ部に「USER-AGENT」フィールドを付加して、自機器を特定できるユニークなＩＤを付加することができる。これにより、サーバ機器にクライアント機器を特定させることができる。
【００３０】
ステップＳ４０７で、サーバ機器から機器情報パケット７０５を受信したかどうかを確認する。一定時間機器情報パケット７０５を受信しない場合、ステップＳ４０６に戻り、再度機器情報要求パケット７０４を送信する。機器情報パケット７０５を受信した場合、ステップＳ４０８に進み、機器情報パケット７０５に記述されている機器情報から、送信元サーバ機器や送信元サーバ機器が提供できるサービスについての詳細情報を確認する。例えばデジタルカメラ１から機器情報パケット７０５を受信した場合、機器情報パケット７０５の機器情報フィールドには、デジタルカメラ１の機器名や、デジタルカメラ１が提供するＡＶコンテンツについて公開・検索するサービスの情報が記述されている。
【００３１】
ステップＳ４０９で、確認したサービスが意図する（必要とする）サービスであるかどうかを判断する。意図するサービスでなかった場合、処理を終了する。それに対して、意図するサービスであった場合、機器情報パケット７０５の機器名等の詳細情報を記憶する。
【００３２】
次に、ステップＳ４１０で、サーバ機器に、該サーバ機器のサービスの状態変化等の通知を受けるためにイベント登録要求パケット７０８を送信し、イベント登録の要求を行う。イベント登録要求パケット７０８の通知先フィールドには、イベントの通知先が記述されている。サーバ機器側のサービスで状態変化等があったときは、サーバ機器はこのイベントの通知先にイベントを送信する。
【００３３】
次に、ステップＳ４１１で、サーバ機器にサービス要求パケット７０６を送信する。サービス要求パケット７０６には、クライアント機器がサーバ機器に対して、サーバ機器が保存しているＡＶコンテンツのコンテンツ情報を要求するというサービス要求内容が記述されている。コンテンツ情報には、例えば撮影画像の属性情報が含まれる。ここで要求するサービスの内容は、クライアント機器によって異なる。例えばテレビ２０１は、デジタルカメラ１が保存している撮影画像の属性情報として、コンテンツＩＤ、親ＩＤ、制限フラグ、タイトル、日付、サイズ、コンテンツタイプといった基本情報に加え、撮影機器名を要求するものとする。一方、テレビ３０１は、コンテンツＩＤ、親ＩＤ、制限フラグ、タイトル、日付、サイズ、コンテンツタイプといった基本情報に加え、画像データの解像度、撮影モード、絞り値、シャッタースピード、ＩＳＯ感度等を要求するものとする。
【００３４】
ステップＳ４１２で、サーバ機器からサービス応答パケット７０７を受信したかどうかを確認する。一定時間サービス応答パケット７０７を受信しない場合、ステップＳ４１１に戻り、再度サービス要求パケット７０６を送信する。サービス応答パケット７０７を受信した場合、受信したサービスの実行結果を保存する。ここで、テレビ２０１、３０１はそれぞれ要求した撮影画像の属性情報をステップ４１３で保存し、その情報を参照して、ユーザに対する撮影画像の表示動作を行う。テレビ２０１、３０１がデジタルカメラ１から取得した属性情報は異なるので、その属性情報によってそれぞれ異なった表示動作を行う。
【００３５】
なお、サービス応答パケット７０７のサービス応答フィールドから受ける情報はクライアント機器の要求によって異なり、クライアント機器が要求する情報が画像データのサムネイル画像等でもよく、本実施形態はこの情報を限定するものではない。
【００３６】
また、一度ステップＳ４１１でサービス要求パケット７０６を送信したサーバ機器に対して再度サービス要求パケット７０６を送信する場合、任意のタイミングでステップＳ４１１からの処理を実行することができる。この場合に、ステップＳ４０５やステップＳ４０９で記憶した相手機器情報を用いればよい。
【００３７】
次に、図５を参照して、サーバ機器が、自機器が保存しているＡＶコンテンツの情報をクライアント機器に通知する動作について説明する。なお、図５のフローチャートに示す動作は、デジタルカメラ１のシステム制御回路９が各部を制御することにより実行される。
【００３８】
サーバ機器が起動すると、ステップＳ５０１で、自機器のタイプについての告知パケット７０１によりネットワークに対してマルチキャストで告知を行う。告知パケット７０１には、サーバ機器のタイプを記述する。例えばデジタルカメラ１は、映像や音声を扱うサーバ機器であることを告知パケット７０１の機器タイプフィールドに記述し、ネットワーク上に存在する機器に対して告知する。
【００３９】
ステップＳ５０２で、クライアント機器から検索パケット７０２を受信したかどうかを確認する。検索パケット７０２を受信した場合、ステップＳ５０３に進み、検索パケット７０２の検索ターゲットフィールドに指定された検索条件を確認し、ステップＳ５０４に進み、自機器がその検索条件に合致するか否かを判断する。検索条件に合致した場合、ステップＳ５０５で、自機器のタイプについての情報を送信元クライアント機器に応答する。例えばテレビ２０１やテレビ３０１から映像や音声を扱うサーバ機器が検索された場合、デジタルカメラ１は自機器が映像や音声を扱うサーバ機器であるので応答する。すなわち、デジタルカメラ１は、検索応答パケット７０３の機器タイプフィールドに自機器のタイプを記述してテレビ２０１やテレビ３０１に送信する。それに対して、検索条件に合致しなかった場合、送信元クライアント機器に応答せず、ステップＳ５０２に戻り、検索パケット７０２の受信を待機する。なお、ステップＳ５０２で検索パケット７０２を受信しない場合も、ステップＳ５０２に戻り、検索パケット７０２の受信を待機する。
【００４０】
ステップＳ５０６で、クライアント機器から機器情報要求パケット７０４を受信したかどうかを確認する。一定時間機器情報要求パケット７０４を受信しない場合、ステップＳ５０２に戻り、検索パケット７０２の受信を待機する。機器情報要求パケット７０４を受信した場合、ステップＳ５０７に進み、自機器や自機器が提供できるサービスについての詳細情報を機器情報パケット７０５に記述し、機器情報要求パケット７０４の送信元クライアント機器に返信する。クライアント機器から受信した機器情報要求パケット７０４には、プロトコルのヘッダにクライアントの種別を判別するための情報が記述されている。サーバ機器は、現在接続されているクライアントの種別を、例えばクライアント毎に定められたユニークなＩＤや特定のベンダのクライアントであることを示す文字列等から知ることができる。
【００４１】
次に、ステップＳ５０８で、ステップＳ５０７にて判別した現在接続しているクライアントの種別に基づいて、コンテンツデータテーブルを作成する。このコンテンツデータテーブルは、コンテンツからの抽出情報をテーブル形式で管理したものである。コンテンツデータテーブルには、サーバ機器が保存しているかＡＶコンテンツについて、クライアント機器に通知すべき情報が抽出され、列挙されている。このコンテンツデータテーブルの様態は、ステップＳ５０７にて判別したクライアントの種別によって異なる。
【００４２】
具体的に、サーバ機器は、クライアントの種別とＡＶコンテンツから取得する属性情報の項目とを関連付けた関連付け情報であるクライアント情報テーブルを保持する。図６に、デジタルカメラ１が保持するクライアント情報テーブルの例を示す。クライアント情報テーブルは、使用頻度の高い特定の項目を予め初期値（デフォルト）として保持している。また、初期設定として特定のベンダのクライアントが要求する項目について予め項目を埋めておくこともできる。例えば図６のクライアント情報テーブルでは、テレビ３０１に関連付けられた項目が予め保持されているが、テレビ２０１に関連付けられた項目は存在しない。
【００４３】
ここで、図８を参照して、サーバ機器がコンテンツデータテーブルを作成する動作について説明する。まず、現在通信しているクライアントの種別を判別する（ステップＳ８０１）。この場合、クライアントから受信したＨＴＴＰパケットのプロトコルヘッダに記述されている「USER-AGENT」フィールドを参照して、クライアントの種別を判別する。次に、「USER-AGENT」フィールドに記載されたクライアントの種別とクライアント情報テーブルとを比較する（ステップＳ８０２）。
【００４４】
比較の結果、クライアント情報テーブルに対象とするクライアントが見つかった場合、クライアント情報テーブルに従ってコンテンツデータテーブルを作成する（ステップＳ８０３）。ここで作成されるコンテンツデータテーブルは、クライアント情報テーブルからそのクライアントが要求する項目に対応する属性情報をサーバ機器が保存している各ＡＶコンテンツから抽出し、その属性情報を列挙したものである。例えばデジタルカメラ１がテレビ３０１と接続した場合、クライアント情報テーブルに基づいてテレビ３０１に関連付けられた項目が決定されるので、その項目に従った属性情報を含むコンテンツデータテーブルを作成する。図９に、テレビ３０１に対応するコンテンツデータテーブル９０１の例を示す。デジタルカメラ１は、保存している各撮影画像から情報を取得してコンテンツデータテーブル９０１を作成する。コンテンツデータテーブル９０１は、テレビ３０１が要求する項目に対応する属性情報を、デジタルカメラ１が保存している各撮影画像データから抽出したテーブルである。これらの情報をＡＶコンテンツ分集めてコンテンツデータテーブル９０１を作成する。以下に各項目を説明する。
【００４５】
Item IDはコンテンツを指定するＩＤである。Parent IDは対象コンテンツの階層構造上の上位にあるコンテンツを指定するＩＤである。Restrictedはコンテンツ情報の書き換え制限フラグであり、真値（TRUE）の場合はコンテンツ情報の書き換えを制限する。Searchableはコンテンツが検索可能かどうかを示すフラグであり、偽値（FALSE）の場合はクライアントからのコンテンツ検索に対して、このコンテンツの情報を返さないようにする。Content Typeはコンテンツが静止画であるか、動画であるか等の種別を表わす。Titleはコンテンツのタイトルを表わす。Dateはコンテンツの作成日時を表わす。Sizeはコンテンツのデータサイズを表わす。Capture Modeはコンテンツを撮影したときの撮影モードを示す。AVは絞り値、TVはシャッタースピードを表わす。ISO sensitivityはＩＳＯ感度を表わす。WBはホワイトバランスを表わす。
【００４６】
一方、比較の結果、クライアントが特定できなかった場合、デフォルトの項目についてコンテンツデータテーブルを作成する（ステップＳ８０４）。クライアントが特定できない場合とは、クライアント情報テーブルに対象とするクライアントが見つからなかった、もしくはＨＴＴＰパケットにクライアントの情報が記述されていなかった等である。例えばデジタルカメラ１がテレビ２０１と接続した場合、クライアント情報テーブルに基づいてテレビ２０１に関連付けられた項目が決定されないので、デフォルトの項目に従ったコンテンツデータテーブルを作成する。図１０に、テレビ２０１に対応するコンテンツデータテーブル１００１の例を示す。コンテンツデータテーブル１００１は、クライアント情報テーブルのデフォルトの項目を、デジタルカメラ１が保存している各撮影画像データから抽出したテーブルである。
【００４７】
ここまでの処理が、コンテンツテーブルを作成する処理の一例である。なお、クライアントの種別を判別する方式は、クライアント機器から受信したパケットのヘッダ情報を参照するだけに限られない。例えば通信相手のクライアント機器のＭＡＣアドレスを取得して、ＭＡＣアドレス情報からクライアントを特定するような方式でもよく、クライアントの種別を判別する方式について限定するものではない。
【００４８】
図５に説明を戻して、ステップ５０９で、クライアント機器からイベント登録要求パケット７０８を受信したかどうかを確認する。イベント登録要求パケット７０８を受信していない場合、ステップＳ５１１に進む。イベント登録要求パケット７０８を受信した場合、ステップＳ５１０に進み、クライアント機器をサービスのイベント登録者として登録し、イベント登録応答パケット７０９を返信する。サーバ機器ではサービスの状態変化等が起きた際に、イベント登録者それぞれにイベント通知パケット７１０を送信し、状態変化が起きたことを知らせる。例えばサーバ機器に新たにＡＶコンテンツが追加されたような場合に、イベント登録されたクライアント機器にイベント通知パケット７１０を送信する。これにより、クライアント機器はサーバ機器のＡＶコンテンツが更新されたことを知って、改めて情報検索等の動作を行うことができる。
【００４９】
ステップＳ５１１で、クライアント機器からサービス要求パケット７０６を受信したかどうかを確認する。一定時間サービス要求パケット７０６を受信しない場合、サービス要求パケット７０６の受信を待機する。サービス要求パケット７０６を受信した場合、ステップ５１２に進み、サービス要求パケット７０６で要求されたサービスを実行し、ステップ５１３に進み、その結果をサービス応答パケット７０７として送信する。
【００５０】
例えばテレビ２０１、３０１からデジタルカメラ１にサービスを要求する場合、サービス要求パケット７０６のサービス要求フィールドにはデジタルカメラ１が保存している撮影画像の情報（タイトル、日付、サイズ・・・等）を要求する記述がされている。デジタルカメラ１は、自機器が保存している撮影画像について、テレビが要求した情報をサービス応答パケット７０７のサービス応答フィールドに記述して送信する。また、サービス要求パケット７０６のサービス要求フィールドに、撮影日時指定等の検索条件が指定されている場合もある。この場合、デジタルカメラ１が保存している撮影画像のうち、その検索条件に該当する撮影画像について、テレビが要求した情報をサービス応答パケット７０７のサービス応答フィールドに記述して送信する。サービス応答パケット７０７のサービス応答フィールドはＸＭＬ（Extensible Markup Language）データ形式で記述される。
【００５１】
本実施形態の場合、デジタルカメラ１は、テレビが要求した撮影画像の情報について、上記ステップ８０３、８０４にて作成したコンテンツデータテーブルのフィールドから情報を取得する。そして、その情報をＸＭＬデータ形式でサービス応答パケット７０７のサービス応答フィールドに記述し、送信する。本実施形態では、予めコンテンツテーブルを作成していたため、テレビからのサービス要求パケット７０６に対して高速に応答することが可能である。
【００５２】
テレビ３０１は、クライアント情報テーブルに記載されたクライアント機器であり、要求する項目がコンテンツデータテーブルとして既に列挙されている。したがって、デジタルカメラ１はコンテンツデータテーブルの各フィールドの情報をＸＭＬ形式のデータに変換してテレビ３０１に送信する。テレビ３０１が検索条件を指定してサービスを要求してきた場合、コンテンツデータテーブルからその条件に従って情報を取得する。例えばクライアントがデジタルカメラ１内のコンテンツ保存領域のある階層の情報だけを検索してきた場合、コンテンツデータテーブルで検索対象の階層を示すＩＤをParent IDに持つコンテンツの情報だけ取得してクライアントに応答する。
【００５３】
一方、テレビ２０１は、クライアント情報テーブルに記載されたクライアントでないので、クライアントを識別する情報と、サービス要求パケット７０６で要求された項目をクライアント情報テーブルに追加する。図１１に、テレビ２０１が追加されたクライアント情報テーブルを示す。また、ここで追加した項目でデフォルトの項目として記載されていないものについては、ステップ８０４にて作成したデフォルトの項目についてのコンテンツデータテーブルとは別にコンテンツデータテーブルを作成する。そして、それぞれのコンテンツデータテーブルによってクライアントからの情報検索に応答する。ここではコンテンツデータテーブルはデフォルトのものと追加項目のものが別々に作成されるが、デジタルカメラ１が動作を終了し、次回起動時にクライアントから接続された際には、テレビ２０１についてはクライアント情報テーブルに記載されている。したがって、要求される項目についての１つのコンテンツデータテーブルを予め作成しておくことができ、次回の接続時におけるサービス要求パケット７０６に対するレスポンスを高速化することができる。
【００５４】
また、サービスを要求してきたクライアント機器がクライアント情報テーブルに記載されているクライアント機器の場合でも、サービス要求パケット７０６で要求された項目が、クライアント情報テーブルに記載されていない項目である場合もありうる。この場合、クライアント情報テーブルを更新し、記載されていない項目を追加する。
【００５５】
（第２の実施形態）
第２の実施形態では、図１２に示すように、デジタルカメラ１がＡＶコンテンツを保存する点は第１の実施形態と同様である。第１の実施形態と異なる点は、デジタルカメラ１がＤＬＮＡのサーバ機器として動作せず、テレビと通信するための第１の通信部と、デジタルカメラと通信するための第２の通信部とを有する中継機器１２０１がサーバ機器として動作する点である。すなわち、本実施形態では、デジタルカメラ１が保存しているＡＶコンテンツを、中継機器１２０１がサーバ機器として動作して、テレビ２０１、３０１に中継して提供する。中継機器１２０１とデジタルカメラ１は例えばＵＳＢのようなケーブルで接続してもよいし、中継機器１２０１がクレードルのようにデジタルカメラ１と着脱可能な構成としてもよい。もちろん無線による接続でもよい。
【００５６】
図１３は、本実施形態における中継機器１２０１の構成を示すブロック図である。中継機器１２０１において、１２０２はシステムコントローラであり、各種制御処理を担当する。１２０３は通信制御部であり、無線通信とＵＳＢ通信とを制御する。１２０４は電気的に消去・記録可能な不揮発性メモリであり、ここに機器の無線設定情報を記憶することができる。１２０５はメモリであり、動作用の定数、変数、プログラム等を記憶する。１２０６は無線通信回路であり、無線信号を送受信し、無線通信を制御する。１２１０は他の機器と無線通信を行うためのアンテナである。１２０７は外部機器とＵＳＢを用いて接続するためのＵＳＢインタフェースである。１２０８はデータ変換処理部であり、外部機器から取得した情報をＸＭＬ形式のデータ等に変換するデータ変換処理部である。１２０９は中継機器１２０１に電源を供給する電源部である。
【００５７】
クライアント機器がネットワーク上でサーバ機器を発見し、該サーバ機器からＡＶコンテンツの情報を取得する動作は、第１の実施形態で図４を参照して説明したものと同様であり、ここではその詳細な説明を省略する。
【００５８】
次に、図１４を参照して、サーバ機器が、中継機器を介して外部機器（デジタルカメラ１）が保存しているＡＶコンテンツの情報をクライアント機器に通知する動作について説明する。なお、図１４のフローチャートに示す動作は、中継機器１２０１のシステムコントローラ１２０２が各部を制御することにより実行される。
【００５９】
ステップＳ１４０１〜Ｓ１４０７までの処理は第１の実施形態の図５のステップＳ５０１〜Ｓ５０７までの処理と同様である。すなわち、中継機器１２０１は、クライアント機器に対して第１の実施例におけるデジタルカメラ１と同様に、自機器が映像や音声を扱うサーバ機器であることを通知する。
【００６０】
ステップＳ１４０８で、中継機器１２０１は、デジタルカメラ１が接続されているかどうかを確認する。デジタルカメラ１が接続されていない場合、ステップＳ１４１１に進む。それに対して、デジタルカメラ１が接続されている場合、ステップＳ１４０９に進み、既にデジタルカメラ１にコンテンツデータテーブルを要求しているかどうか確認する。要求済みの場合、ステップＳ１４１１に進み、要求済みでない場合、ステップＳ１４１０に進む。
【００６１】
ステップＳ１４１０で、現在接続しているクライアントの種別に基づいて、コンテンツデータテーブルの作成をデジタルカメラ１に要求する。第１の実施形態と同様に、クライアント機器から受信した機器情報要求パケット７０４には、プロトコルのヘッダにクライアントの種別を判別するための情報が記述されている。中継機器１２０１は、現在接続されているクライアントの種別を、例えばクライアント毎に定められたユニークなＩＤや特定のベンダのクライアントであることを示す文字列等から知ることができる。
【００６２】
中継機器１２０１は、現在通信しているクライアント機器の種別をクライアント情報テーブルで検索する。対象とするクライアント機器が見つかった場合、クライアント情報テーブルからそのクライアント機器が要求する項目を取得し、デジタルカメラ１に通知して、それらの項目についてのコンテンツデータテーブルの作成を要求する。一方、クライアントが特定できなかった場合、デフォルトの項目をデジタルカメラ１に通知して、コンテンツデータテーブルの作成を要求する。クライアントが特定できない場合とは、クライアント情報テーブルに対象とするクライアントが見つからなかった、もしくはＨＴＴＰパケットにクライアントの情報が記述されていなかった等である。この処理が本発明でいう送信手段による処理例である。
【００６３】
ステップＳ１４１１で、クライアント機器からイベント登録要求パケット７０８を受信したかどうかを確認する。イベント登録要求パケット７０８を受信しない場合、ステップＳ１４１３へ進む。イベント登録要求パケット７０８を受信した場合、ステップＳ１４１２に進み、クライアント機器をサービスのイベント登録者として登録し、イベント登録応答パケット７０９を返信する。中継機器１２０１は接続されているデジタルカメラ１からの情報に変化があった際に、イベント登録者それぞれにイベント通知パケット７１０を送信し、情報に変化があったことを知らせることができる。
【００６４】
ステップＳ１４１３で、デジタルカメラ１からコンテンツデータテーブルを受信したかどうか確認する。コンテンツデータテーブルを受信しない場合、ステップＳ１４１６に進む。コンテンツデータテーブルを受信した場合、受信したコンテンツテーブルをメモリ１２０５に記憶し、ステップＳ１４１４に進む。ステップＳ１４１４で、クライアント機器からイベントが登録されているか確認する。イベント登録されている場合、ステップＳ１４１５に進み、クライアント機器にイベント通知パケット７１０を送信する。イベントが登録されていない場合、ステップＳ１４１６に進む。
【００６５】
ステップＳ１４１６で、クライアント機器からサービス要求パケット７０６を受信したかどうかを確認する。一定時間サービス要求パケット７０６を受信しない場合、サービス要求パケット７０６の受信を待機する。サービス要求パケット７０６を受信した場合、ステップＳ１４１７に進み、サービス要求パケット７０６で要求されたサービスを実行し、ステップＳ１４１８に進み、その結果をサービス応答パケット７０７として送信する。
【００６６】
次に、図１５を参照して、デジタルカメラ１が、中継機器１２０１からの要求に応じてコンテンツデータテーブルを作成する動作について説明する。
【００６７】
ステップＳ１５０１で、中継機器１２０１が接続されたら、ステップＳ１５０２に進み、中継機器１２０１からのコンテンツデータテーブルの作成要求を待機する。コンテンツデータテーブルの作成要求があった場合、ステップＳ１５０３に進む。コンテンツデータテーブルの作成要求には、中継機器１２０１が接続しているクライアントが要求している項目が含まれている。デジタルカメラ１は、中継機器１２０１から通知された項目に対応する属性情報をデジタルカメラ１が保存している各ＡＶコンテンツから抽出し、その情報項目を列挙したコンテンツデータテーブルを作成する。コンテンツデータテーブルの形式は第１の実施形態と同様である。コンテンツデータテーブルを作成した後、ステップＳ１５０４に進み、中継機器１２０１に送信する。
【００６８】
例えばテレビ２０１、３０１から中継機器１２０１へのサービス要求では、中継機器１２０１はＡＶコンテンツを扱うサーバ機器として認識されているので、ＡＶコンテンツの情報要求が実行される。
【００６９】
ここで、中継機器１２０１は、ＡＶコンテンツの情報について、デジタルカメラ１に作成を要求したコンテンツデータテーブルのフィールドから情報を取得する。そして、その情報をＸＭＬ形式のデータに変換してテレビ２０１、３０１に送信する。なお、中継機器１２０１がテレビ２０１、３０１に応答を行う動作は、第１の実施形態でデジタルカメラ１が行う動作と同様である。
【００７０】
ここで、中継機器１２０１がデジタルカメラ１からコンテンツデータテーブルを受信していない場合、中継機器１２０１がクライアント機器からの情報検索に応答することができない。そこで、サービスの応答として、検索された内容のＡＶコンテンツは存在しないという応答を行う。その後、コンテンツデータテーブルを受信した時点でコンテンツデータテーブルを保存し、イベント登録がされている場合はクライアント機器に対してイベントを発行する。これにより、中継機器１２０１の情報が更新されたことをクライアント機器が知って、再度検索動作を行うことで中継機器１２０１を介してデジタルカメラ１のＡＶコンテンツの情報をクライアント機器に通知することができる。イベント登録がされていない場合、一度中継機器１２０１のネットワーク上での接続を切断し、ステップＳ１４０１からの機器発見動作をあらためて行う。これにより、クライアント機器は、デジタルカメラ１のＡＶコンテンツを管理する中継機器１２０１をサーバ機器として発見し、中継機器１２０１を介してデジタルカメラ１のＡＶコンテンツの情報を得ることができる。
【００７１】
上記のように、本実施形態ではデジタルカメラ１のテーブル情報を中継機器１２０１に予め送信しておくことにより、中継機器１２０１はテレビなどのクライアント機器からサービス要求パケット７０６を受信した場合に、高速に応答することが可能である。
【００７２】
なお、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても達成される。この場合、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。
【００７３】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７４】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７５】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけに限らない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（基本システム或いはオペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現されてもよい。
【００７６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる形態でもよい。この場合メモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７７】
【図１】第１の実施形態におけるホームネットワークの構成を示す図である。
【図２】第１の実施形態におけるデジタルカメラの構成を示すブロック図である。
【図３】第１の実施形態におけるテレビの構成を示すブロック図である。
【図４】第１の実施形態におけるクライアント機器の動作を示すフローチャートである。
【図５】第１の実施形態におけるサーバ機器の動作を示すフローチャートである。
【図６】クライアント情報テーブルの例を示す図である。
【図７】第１の実施形態におけるホームネットワーク上で送受信されるパケットの形式について示す図である。
【図８】第１の実施形態においてデジタルカメラがコンテンツデータテーブルを作成する動作を示すフローチャートである。
【図９】コンテンツデータテーブルの例を示す図である。
【図１０】コンテンツデータテーブルの例を示す図である。
【図１１】クライアント情報テーブルの例を示す図である。
【図１２】第２の実施形態におけるホームネットワークの構成を示す図である。
【図１３】第２の実施形態における中継機器の構成を示すブロック図である。
【図１４】第２の実施形態における中継機器の動作を示すフローチャートである。
【図１５】第２の実施形態におけるデジタルカメラの動作を示すフローチャートである。
【符号の説明】
【００７８】
１              デジタルカメラ
２０１、３０１  テレビ
１２０１        中継機器
【図１】
0005014056.tif 000002
【図２】
0005014056.tif 000003
【図３】
0005014056.tif 000004
【図４】
0005014056.tif 000005
【図５】
0005014056.tif 000006
【図６】
0005014056.tif 000007
【図７】
0005014056.tif 000008
【図８】
0005014056.tif 000009
【図９】
0005014056.tif 000010
【図１０】
0005014056.tif 000011
【図１１】
0005014056.tif 000012
【図１２】
0005014056.tif 000013
【図１３】
0005014056.tif 000014
【図１４】
0005014056.tif 000015
【図１５】
0005014056.tif 000016