(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続されるデバイスの各種ネットワークの種類毎にアプリケーションプログラムを用いて通信を行い、前記デバイスとのデータの送受信を制御するデバイス制御装置において、
前記デバイスと通信を行い、各種ネットワークの種類毎に、前記デバイスの前記通信ネットワークへの接続の有無又は前記デバイスの状態変化を検出するネットワーク送受信部と、
リアルタイムで受信したアプリケーションプログラム、又は予め蓄積された複数のアプリケーションプログラムのうち、前記デバイスに所定の処理を行わせるためのアプリケーションプログラムを選択して実行し、前記デバイスを制御するアプリケーションプログラム実行部と、
前記ネットワーク送受信部により得られる各種ネットワークを介して制御可能なデバイスを検知して、デバイスの種類に対応させて制御中継部をデバイス１つに対して１つ生成するデバイス管理手段と、前記制御中継部への参照情報をアプリケーションプログラムに提供するデバイスリスト提供手段とを備えたデバイス統括管理部とを有し、
前記デバイス管理手段は、
検知した前記デバイスの種類が、予め設定されたデバイス種別に含まれていない場合に、前記制御中継部として、共通制御中継部を生成し、
検知した前記デバイスの種類が、前記予め設定されたデバイス種別に含まれる場合に、前記制御中継部として、前記共通制御中継部の機能を全て引き継ぐと共に、前記デバイス種別の機能に特化した前記共通制御中継部よりも高レベルな制御を可能とする機能別共通制御中継部を生成し、
前記デバイス統括管理部は、
前記アプリケーションプログラムからの要求に応じて前記ネットワーク送受信部を介して最新のデバイス接続状態を検索し、検索結果に対応させて前記制御中継部への参照情報を更新するデバイス検索手段を有することを特徴とするデバイス制御装置。
【請求項２】
前記デバイスリスト提供手段は、
新たな制御中継部が生成されるごとにアプリケーションプログラムに通知することで新たに検知したデバイスの制御中継部のみの参照情報を提供する機能と、
アプリケーションプログラムからの要求に応じて生成済の全て又は一部の制御中継部への参照情報のリストを提供する機能の一方又は両方を有することを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
前記共通制御中継部は、
何れかのネットワークに接続された制御可能なデバイスが検知された場合、デバイス属性を取得して前記アプリケーションプログラムに提供するデバイス属性提供手段と、
制御対象のデバイスの状態変化を検知して、前記アプリケーションプログラムに通知するデバイス状態変化通知手段と、
前記デバイスが階層的な機能構成となっている場合に、下の階層にある機能をサブデバイスとして制御するための子の制御中継部への参照情報を保持し、前記アプリケーションプログラムから要求がなされた場合、前記子の制御中継部への参照情報のリストを提供するサブデバイスリスト提供手段と、
アプリケーションプログラムが前記デバイスに直接データを送受信する際、又は前記デバイス属性提供手段、前記デバイス状態変化通知手段、並びに前記サブデバイスリスト提供手段のうち少なくとも１つを制御する際に、前記デバイスに対して入出力されるデータを送受信するデバイス制御データ入出力手段とを有することを特徴とする請求項１又は２に記載のデバイス制御装置。
【請求項４】
前記機能別共通制御中継部は、
アプリケーションプログラムが前記デバイスに直接データを送受信する際、又は前記デバイス属性提供手段、前記デバイス状態変化通知手段、並びに前記サブデバイスリスト提供手段のうち少なくとも１つを制御する際、又は前記機能別共通制御中継部が有する高レベルな制御命令を行う際に、前記デバイスに対して入出力されるデータを送受信するデバイス制御データ入出力手段を有することを特徴とする請求項３に記載のデバイス制御装置。
【請求項５】
前記ネットワーク送受信部は、
前記デバイスと通信を行い、各種ネットワークの種類毎に、前記デバイスの前記通信ネットワークへの接続の有無、又は前記デバイスの状態変化の検出を行うためのネットワークや制御するデバイスに依存したプロトコルを備えたソフトウェアライブラリと、
前記制御中継部のデバイス制御データ入出力手段から、前記ネットワーク送受信部のライブラリを制御するためのインターフェースとして、その他全てのネットワーク送受信部と共通のインターフェースによって制御可能な機能とを有することを特徴とする請求項１乃至４の何れか１項に記載のデバイス制御装置。
【請求項６】
前記機能別共通制御中継部は、
デバイスが映像音声やアプリケーションプログラムの提示機能を有するデバイスである場合、アプリケーションプログラムから制御可能な、再生命令機能、停止命令機能、一時停止命令機能、シーク命令機能、早送り・早戻し再生命令機能、及びスロー再生命令機能のうち、少なくとも１つの機能を有することを特徴とする請求項１乃至５の何れか１項に記載のデバイス制御装置。
【請求項７】
前記機能別共通制御中継部は、
デバイスがコンテンツ提供機能を有するデバイスである場合、アプリケーションプログラムから制御可能な、デバイスが提供可能なコンテンツの一覧を返すコンテンツ一覧取得制御機能、各コンテンツの属性を返すコンテンツ属性取得制御機能、及び指定したコンテンツを取得することができるコンテンツ取得制御機能のうち、少なくとも１つの機能を有することを特徴とする請求項１乃至５の何れか１項に記載のデバイス制御装置。
【請求項８】
前記機能別共通制御中継部は、
デバイスがユーザからの入力を受け付ける機能を有するＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）である場合、アプリケーションプログラムから制御可能な、前記ＨＩＤの入力機能の属性を提供するＨＩＤ属性取得制御機能、前記ＨＩＤがキー入力を受け付ける場合には入力キー取得制御機能、前記ＨＩＤがポインティングデバイスである場合にはポインタ位置取得制御機能、及び前記ＨＩＤがスライダ入力を受け付ける場合には値取得制御機能のうち、少なくとも１つの機能を有することを特徴とする請求項１乃至５の何れか１項に記載のデバイス制御装置。
【請求項９】
前記請求項１乃至８の何れか１項に記載されたデバイス制御装置を備えた放送受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス制御装置及び該装置を備えた放送受信装置に係り、特に通信ネットワーク上に接続されるデバイスをネットワーク種別を意識せずに簡易に制御するためのデバイス制御装置及び該装置を備えた放送受信装置に関する。
【背景技術】
【０００２】
従来、汎用のパソコン等では、有線や無線等の通信ネットワークを介して外部装置と接続するためのインターフェース拡張装置を有し、その入出力ポートとして、キーボードやマウスを接続するＰＳ（Ｐｅｒｓｏｎａｌ  Ｓｙｓｔｅｍ）／２ポート、モデム等のシリアル情報の送受信を行うデバイスが接続されるシリアルポート、プリンタ等のパラレル情報の送受信を行うデバイスが接続されるパラレルポート、シリアルデバイスを接続するＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート等を備え、各種規格の入出力ポートに接続された外部装置との授受情報を各規格の信号に変換するために各種インターフェース制御回路が内部に設けられている。
【０００３】
また、例えば、ハイビジョンの高画質・高音質放送、データ放送や双方向番組、電子番組ガイド（ＥＰＧ：Ｅｌｅｃｔｒｏｎｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅ）等、暮らしに役立つ様々なサービスをコンテンツや番組等により提供するデジタル放送では、映像音声信号に加えて様々なデータを多重して送ることが可能である。そのため、例えば、プログラムを多重して送り、放送受信装置上でプログラムを実行させることによって、単に映像音声を視聴するだけでないインタラクティブなアプリケーションを実行することができる。
【０００４】
例えば、双方向デジタルテレビのための規格であるヨーロッパのＤＶＢ−ＭＨＰ（例えば、非特許文献１参照。）や日本のＡＲＩＢ−Ｊ（例えば、非特許文献２参照。）では、受信装置にＪａｖａ（登録商標）プログラムを送ることでインタラクティブなアプリケーションを実行することが可能となっている。
【０００５】
したがって、放送受信装置は、ＩＰネットワーク等の受信装置に設けられた各種インターフェースを介して様々なネットワークと接続することができるため、例えば受信装置がＩＰネットワークに接続されている場合、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）というホームネットワークに接続された機器を連携させるプロトコルを用いることで様々な連携が可能となる。
【０００６】
更に、受信装置がＵＳＢインターフェースを持つ場合には、パソコンと同様に様々な周辺機器を接続することで、その周辺機器が持つ機能を用いた様々な連携が可能となる。なお、ＵＳＢは、様々な周辺機器を同時に接続できることから、一種のネットワークとして考えることができる。
【０００７】
したがって、上述したような連携を行うためには、受信装置が各ネットワークに接続するためのインターフェースや各ネットワークに接続された機器を制御するためのプロトコル（通信手順）を装備すると同時に、各ネットワークに接続された機器を制御するためのソフトウェアライブラリも実装されていなければならない。ソフトウェアライブラリが上述したＤＶＢ−ＭＨＰ等が用いるＪａｖａ言語をベースとしたものであれば、放送受信装置で実行されたＪａｖａアプリケーションプログラムから、ＩＰネットワークを介してＵＰｎＰ対応機器や、ＵＳＢインターフェースを介してＵＳＢ対応機器を連携したインタラクティブな動作が可能になる。
【非特許文献１】社団法人  電波産業会，ＡＲＩＢ  ＳＴＤ−Ｂ２３，「デジタル放送におけるアプリケーション実行環境標準規格」，１．１版（Ｈ１６．２．５）．
【非特許文献２】ＥＴＳＩ  ＴＳ  １０１  ８１２  Ｖ１．３．２（２００６−０８），“Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ（ＤＶＢ），Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ（ＭＨＰ）  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  １．０．３”．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、パソコン等に設けられているアプリケーションプログラムから各種ネットワークに対応した機器を連携させるためには、各ネットワークに依存したソフトウェアライブラリを呼び出すためのプログラムをそれぞれ記述する必要がある。
【０００９】
例えば、ＩＰネットワークを介したＵＰｎＰ機器及びＵＳＢ機器の両方を連携させたい場合には、ＵＰｎＰ機器用ライブラリ及びＵＳＢ機器用ライブラリを制御するための各ネットワークに依存したプログラムを記述する必要がある。
【００１０】
また、デバイス制御装置やそのデバイス制御装置を備えた放送受信装置が接続可能な通信ネットワークが多く存在する場合、アプリケーションプログラムは、各ネットワークを制御するためのプログラムをそれぞれ記述する必要があるため、アプリケーションプログラムの記述量が爆発的に増えるだけでなく、プログラム制作者は各種ネットワークに接続した機器を制御するためのソフトウェアライブラリの仕様を全て理解してプログラムを作成する必要がある。したがって、プログラムを制作することは、煩雑な作業を伴うと共に極めて難度が高くなっている。
【００１１】
更に、今後新たな技術を用いた新たなネットワーク接続に関するインターフェースが、デバイス制御装置や放送受信装置等に装備された場合、過去に制作したアプリケーションプログラムは新たなネットワークを制御するためのプログラムを含んでいないため、新たな技術を用いることはできないという問題がある。
【００１２】
本発明は、上述した問題点に鑑みなされたものであり、通信ネットワーク上に接続されるデバイスをネットワーク種別を意識せずに簡易に制御するためのデバイス制御装置及び該装置を備えた放送受信装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【００１４】
請求項１に記載された発明は、通信ネットワークを介して接続されるデバイスの各種ネットワークの種類毎にアプリケーションプログラムを用いて通信を行い、前記デバイスとのデータの送受信を制御するデバイス制御装置において、前記デバイスと通信を行い、各種ネットワークの種類毎に、前記デバイスの前記通信ネットワークへの接続の有無又は前記デバイスの状態変化を検出するネットワーク送受信部と、リアルタイムで受信したアプリケーションプログラム、又は予め蓄積された複数のアプリケーションプログラムのうち、前記デバイスに所定の処理を行わせるためのアプリケーションプログラムを選択して実行し、前記デバイスを制御するアプリケーションプログラム実行部と、前記ネットワーク送受信部により得られる各種ネットワークを介して制御可能なデバイスを検知して、デバイスの種類に対応させて制御中継部をデバイス１つに対して１つ生成するデバイス管理手段と、前記制御中継部への参照情報をアプリケーションプログラムに提供するデバイスリスト提供手段とを備えたデバイス統括管理部とを有し、前記デバイス管理手段は、検知した前記デバイスの種類が、予め設定されたデバイス種別に含まれていない場合に、前記制御中継部として、共通制御中継部を生成し、検知した前記デバイスの種類が、前記予め設定されたデバイス種別に含まれる場合に、前記制御中継部として、前記共通制御中継部の機能を全て引き継ぐと共に、前記デバイス種別の機能に特化した前記共通制御中継部よりも高レベルな制御を可能とする機能別共通制御中継部を生成し、前記デバイス統括管理部は、前記アプリケーションプログラムからの要求に応じて前記ネットワーク送受信部を介して最新のデバイス接続状態を検索し、検索結果に対応させて前記制御中継部への参照情報を更新するデバイス検索手段を有することを特徴とする。
【００１５】
請求項１記載の発明によれば、通信ネットワーク上に接続されるデバイスをネットワーク種別を意識せずに簡易に制御することができる。具体的には、デバイス統括管理部は、各種ネットワーク上に接続されている利用可能なデバイスの接続状態を一括して管理し、アプリケーションプログラムはネットワークの種別を意識する必要なく、各デバイスに対応する制御中継部への参照情報を取得してデバイスを制御することができる。これにより、各種ネットワークに接続されたデバイスを制御して連携させるアプリケーションプログラムを簡易に記述することができる。また、最新のデバイス接続状態を把握することができ、デバイスの接続状態に応じた確実なデバイス制御を実現することができる。
【００１８】
請求項２に記載された発明は、前記デバイスリスト提供手段は、新たな制御中継部が生成されるごとにアプリケーションプログラムに通知することで新たに検知したデバイスの制御中継部のみの参照情報を提供する機能と、アプリケーションプログラムからの要求に応じて生成済の全て又は一部の制御中継部への参照情報のリストを提供する機能の一方又は両方を有することを特徴とする。
【００１９】
請求項２記載の発明によれば、制御中継部への参照情報を、デバイスが検出された瞬間に直ちに通知するプッシュ型の提供方法、アプリケーションが必要なときに検出済のデバイス全て又は一部のリストとして渡すプル型の提供方法のどちらか又は両方が実現でき、柔軟な情報提供が実現できる。
【００２０】
請求項３に記載された発明は、前記共通制御中継部は、何れかのネットワークに接続された制御可能なデバイスが検知された場合、デバイス属性を取得して前記アプリケーションプログラムに提供するデバイス属性提供手段と、制御対象のデバイスの状態変化を検知して、前記アプリケーションプログラムに通知するデバイス状態変化通知手段と、前記デバイスが階層的な機能構成となっている場合に、下の階層にある機能をサブデバイスとして制御するための子の制御中継部への参照情報を保持し、前記アプリケーションプログラムから要求がなされた場合、前記子の制御中継部への参照情報のリストを提供するサブデバイスリスト提供手段と、アプリケーションプログラムが前記デバイスに直接データを送受信する際、又は前記デバイス属性提供手段、前記デバイス状態変化通知手段、並びに前記サブデバイスリスト提供手段のうち少なくとも１つを制御する際に、前記デバイスに対して入出力されるデータを送受信するデバイス制御データ入出力手段とを有することを特徴とする。
【００２１】
請求項３記載の発明によれば、属するネットワークの種別や制御するためのプロトコル等、規格の異なる複数のデバイスに対して共通に使用できる制御命令のインターフェースにより、アプリケーションプログラムから呼び出す制御命令を全てのデバイスに対して共通のものを用意することになり、当該デバイスがどのネットワークに接続されていても、アプリケーションプログラムはネットワークやそのソフトウェアライブラリの仕様を意識しないで制御することができる。
【００２２】
請求項４に記載された発明は、前記機能別共通制御中継部は、アプリケーションプログラムが前記デバイスに直接データを送受信する際、又は前記デバイス属性提供手段、前記デバイス状態変化通知手段、並びに前記サブデバイスリスト提供手段のうち少なくとも１つを制御する際、又は前記機能別共通制御中継部が有する高レベルな制御命令を行う際に、前記デバイスに対して入出力されるデータを送受信するデバイス制御データ入出力手段を有することを特徴とする。
【００２３】
請求項４記載の発明によれば、属するネットワークの種別や制御するためのプロトコル等、規格の異なる複数のデバイスに対して共通に使用できる制御命令のインターフェースにより、アプリケーションプログラムから呼び出す制御命令を全てのデバイスに対して共通のものを用意することになり、当該デバイスがどのネットワークに接続されていても、アプリケーションプログラムはネットワークやそのソフトウェアライブラリの仕様を意識しないで制御することができる。また、デバイスの機能に特化した高レベルな制御を簡単に行わせることができ、属するネットワークの種別や制御するためのプロトコル等に依存しない低レベルな制御と高レベルな制御を使い分けることで接続されたデバイスに応じて効率よく制御を行うアプリケーションプログラムを簡単に作成することができる。
【００２４】
請求項５に記載された発明は、前記ネットワーク送受信部は、前記デバイスと通信を行い、各種ネットワークの種類毎に、前記デバイスの前記通信ネットワークへの接続の有無、又は前記デバイスの状態変化の検出を行うためのネットワークや制御するデバイスに依存したプロトコルを備えたソフトウェアライブラリと、前記制御中継部のデバイス制御データ入出力手段から、前記ネットワーク送受信部のライブラリを制御するためのインターフェースとして、その他全てのネットワーク送受信部と共通のインターフェースによって制御可能な機能とを有することを特徴とする。
【００２５】
請求項５記載の発明によれば、デバイス制御データ入出力手段と各ネットワーク送受信部との間の制御命令のインターフェースを、全てのネットワーク送受信部に対して共通のものとすることで、ネットワークの種別に依存したプログラムの実装はネットワーク送受信部に対してのみ行えばよく、制御中継部の実装に関しては、全てのネットワークに対して共通に利用することができる。また、制御中継部は、デバイス１つに対して１つ生成する必要があるが、ネットワークに依存しない機能別の実装を使い回すことができるので、ネットワーク種別とデバイス種別との組み合わせでプログラムを実装する必要がなく、プログラムが有するメモリ領域を節約でき、効率的なプログラムアーキテクチャを実現できる。
【００２６】
請求項６に記載された発明は、前記機能別共通制御中継部は、デバイスが映像音声やアプリケーションプログラムの提示機能を有するデバイスである場合、アプリケーションプログラムから制御可能な、再生命令機能、停止命令機能、一時停止命令機能、シーク命令機能、早送り・早戻し再生命令機能、及びスロー再生命令機能のうち、少なくとも１つの機能を有することを特徴とする。
【００２７】
請求項６記載の発明によれば、各種ネットワークに接続された提示デバイスを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、例えば機能別共通制御中継部が、映像音声やアプリケーションプログラムの提示機能を有する提示デバイスを制御する機能をアプリケーションプログラムに提供することにより、提示デバイスの接続されたネットワークや提示デバイスを制御するプロトコルに依存しない普遍的な制御命令を用いて様々な再生制御やトリックプレー等を制御することができる。
【００２８】
請求項７に記載された発明は、前記機能別共通制御中継部は、デバイスがコンテンツ提供機能を有するデバイスである場合、アプリケーションプログラムから制御可能な、デバイスが提供可能なコンテンツの一覧を返すコンテンツ一覧取得制御機能、各コンテンツの属性を返すコンテンツ属性取得制御機能、及び指定したコンテンツを取得することができるコンテンツ取得制御機能のうち、少なくとも１つの機能を有することを特徴とする。
【００２９】
請求項７記載の発明によれば、各種ネットワークに接続されたコンテンツ提供デバイスを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、例えば機能別共通制御中継部が、コンテンツ提供デバイスを制御する機能をアプリケーションプログラムに提供することにより、コンテンツ提供デバイスの接続されたネットワークやコンテンツ提供デバイスを制御するプロトコルに依存しない普遍的な制御命令を用いて様々なコンテンツサーバの機能を制御することができる。
【００３０】
請求項８に記載された発明は、前記機能別共通制御中継部は、デバイスがユーザからの入力を受け付ける機能を有するＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）である場合、アプリケーションプログラムから制御可能な、前記ＨＩＤの入力機能の属性を提供するＨＩＤ属性取得制御機能、前記ＨＩＤがキー入力を受け付ける場合には入力キー取得制御機能、前記ＨＩＤがポインティングデバイスである場合にはポインタ位置取得制御機能、及び前記ＨＩＤがスライダ入力を受け付ける場合には値取得制御機能のうち、少なくとも１つの機能を有することを特徴とする。
【００３１】
請求項８記載の発明によれば、各種ネットワークに接続されたＨＩＤを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、機能別共通制御中継部が、ＨＩＤを制御する機能をアプリケーションプログラムに提供することによって、ＨＩＤの接続されたネットワークやＨＩＤを制御するプロトコルに依存しない普遍的な制御命令を用いて様々なＨＩＤを制御することができる。
【００３２】
請求項９に記載された発明は、前記請求項１乃至８の何れか１項に記載されたデバイス制御装置を備えた放送受信装置である。
【００３３】
請求項９記載の発明によれば、受信装置が複数のネットワークに対応する場合でも、アプリケーションプログラムではそれらのネットワークに依存したプログラムの記述を必要とせずに各種ネットワークに接続された機器を連携することができる。更に、放送によるプッシュ型の配信方式を利用することにより、アプリケーションプログラムだけでなく、新たな機能に対応した機能別共通制御中継部や、新たなネットワークプロトコルに対応したネットワーク送受信部等のソフトウェアライブラリにあたるプログラムを送ることで、ユーザ操作を必要とせずに、自動的に受信機の機能をアップデートすることも実現できる。
【発明の効果】
【００３４】
本発明によれば、通信ネットワーク上に接続されるデバイスをネットワーク種別を意識せずに簡易に制御することができる。また、効率的なプログラムアーキテクチャを実現することができる。
【発明を実施するための最良の形態】
【００３５】
＜本発明の概要＞
本発明では、パソコン等のデバイス制御装置を備えた機器が有線、無線を含む複数の通信ネットワーク（ＩＰ、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ等）に接続されているような場合でも、アプリケーションプログラムでは複数の通信ネットワークに依存したプログラムの記述を必要とせずに各種ネットワークに接続された機器を連携可能とする。また、本発明では、上述したデバイス制御装置を具備した放送受信装置を提供する。
【００３６】
以下に、上述したような特徴を有する本発明におけるデバイス制御装置及び該装置を備えた放送受信装置を好適に実施した形態について、図面等を用いて詳細に説明する。
【００３７】
＜デバイス制御装置の概要構成例＞
図１は、本実施形態におけるデバイス制御装置の概要構成の一例を示す図である。なお、図１に示すデバイス制御装置１０は、例えば、パソコン等の汎用コンピュータ等により実現される。
【００３８】
図１に示すデバイス制御装置１０は、アプリケーションプログラム実行部１１と、出力画像生成部１２と、デバイス統括管理部１３と、制御中継部１４と、ネットワーク送受信部１５とを有するよう構成されている。
【００３９】
なお、図１に示すデバイス制御装置１０は、表示装置２１と外部接続されているが、本発明においてはこれに限定されず、例えばデバイス制御装置１０内に組み込まれていてもよい。
【００４０】
また、デバイス制御装置１０は、１又は複数の通信ネットワーク２２を介してデバイス２３−１〜２３−３とそれぞれ接続されている。具体的には、図１の例では、デバイス２３−１，２３−２は、通信ネットワーク２２−１を介して、ネットワーク送受信部３１−１と接続されている。また、デバイス２３−３は、通信ネットワーク２２−２を介してネットワーク送受信部３１−２と接続されている。
【００４１】
また、図１に示すデバイス２３−２は、内部に１つのサブデバイス２４を有している。ここで、図２は、本実施形態におけるデバイスに含まれるサブデバイスの構成の一例を示す図である。
【００４２】
例えば、図２（ａ）に示すように、ＤＶＤ＆ハードディスクレコーダー（デバイス２３）には、ＤＶＤ機能を有するサブデバイス２４−１とハードディスレコーダー機能を有するサブデバイス２４−２とテレビチューナー機能を有するサブデバイス２４−３の３つの機能が含まれる。つまり、デバイス２３は、複数の機能を階層的に含む構成になっている場合がある。本実施形態では、このようなデバイスに含まれる機能をサブデバイスと呼ぶこととする。
【００４３】
なお、機能が階層的に構成されている場合には、サブデバイスの中に更に１又は複数のサブデバイスを有する場合がある。例えば、図２（ｂ）に示すように、デバイス２３に含まれるサブデバイス２４−４，２４−５のうち、サブデバイス２４−４には、更にサブデバイス２４−６，２４−７が構成されている。
【００４４】
なお、図１では、通信ネットワーク２２を２つ設けているが（通信ネットワーク２２−１，２２−２）、本発明においては、これに限定されず、例えば１つ又は３つ以上の異なるネットワークを用いていてもよい。また、通信ネットワーク２２は、インターネット等のＩＰネットワークでもよく、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ等の宅内ネットワーク環境におけるネットワーク等でもよい。
【００４５】
次に、デバイス制御装置１０の各機能について具体的に説明する。アプリケーションプログラム実行部１１は、リアルタイムで受信したアプリケーションプログラム３２−１、又は予め蓄積されている１又は複数のアプリケーションプログラム３２―２から各種データの送受信や各種デバイスを制御するためのアプリケーションプログラム３２−３を選択し、得られたアプリケーションプログラム３２−３を実行する。
【００４６】
なお、アプリケーションプログラム３２は、例えば何れかのネットワーク送受信部を介して取得したり、リムーバブルメディア等から読み込んだり、インターネット等の通信ネットワークを介してサーバ等からダウンロードすることができる。
【００４７】
このとき、起動中のアプリケーションプログラム３２−３は、デバイス統括管理部１３から、接続しているデバイス２３の各制御を行うために、後述する制御中継部１４の参照情報を取得し、取得した参照情報に基づいて、制御中継部１４の制御を行うことができる。
【００４８】
また、アプリケーションプログラム実行部１１は、表示装置２１に表示するための表示用データを出力画像生成部１２に出力する。
【００４９】
出力画像生成部１２は、アプリケーションプログラム実行部１１により選択、実行されるアプリケーションプログラム３２やプログラムの実行経過中又は経過後の内容等を画面に表示するための映像（画像、テキストデータ、音声等も含む）を生成する。また、出力画像生成部１２は、生成した情報を表示装置２１に出力し、表示装置２１から各種情報を出力させる。
【００５０】
デバイス統括管理部１３は、各ネットワーク送受信部３１と通信することで、各種通信ネットワーク２２を介して制御可能な全てのデバイス２３及びデバイス２３に含まれるサブデバイス２４の接続状態の検出（接続又は接続解除、及び、デバイス種別の検出等）を行う。
【００５１】
また、デバイス統括管理部１３は、接続を検出したデバイスに対し、アプリケーションプログラム３２−３が各種デバイスを制御するためのインターフェースとなる制御中継部１４を生成する。なお、デバイス統括管理部１３は、例えば制御対象となるデバイス２３に1対1に対応する共通制御中継部３３、又はデバイス２３の機能等に応じた機能別共通制御中継部３４を生成する。なお、本実施形態では、図１に示すように、機能別共通制御中継部３４内に、共通制御中継部３３が組み込まれているが、これは機能別共通制御中継部３４が共通制御中継部３３の全ての機能を引き継いだことを示している。
【００５２】
また、デバイス統括管理部１３は、アプリケーションプログラム３２−３に生成した共通制御中継部３３又は機能別共通制御中継部３４への参照情報を提供する。
【００５３】
なお、図１では、デバイス統括管理部１３により、共通制御中継部３３−２、及び機能別共通制御中継部３４−１〜３４−３が設けられており、機能別共通制御中継部３４−１〜３４−３内には、それぞれ共通制御中継部３３−１，３３−３，３３−４が組み込まれている。これらの制御中継部は、通信ネットワーク２２を介して接続されているデバイス２３−１〜２３−３、及びデバイス２３−２のサブデバイスに対応して設けられたものである。図１の例では、デバイス２３−１，２３−３、及びサブデバイス２３−４は、予め設定されたデバイス種別で、デバイス２３−２は設定されていないデバイスであり、デバイス２３−１に機能別制御中継部３４−１、デバイス２３−２に共通制御中継部３３−２、サブデバイス２４に機能別共通制御中継部３４−２、デバイス２３−３に機能別共通制御中継部３４−３がそれぞれ対応している。
【００５４】
つまり、本実施形態では、デバイス統括管理部１３が生成する共通制御中継部３３又は機能別共通制御中継部３４の総数は、デバイスの数に対応して設けられ、そのうち機能別共通制御中継部３４は、例えばネットワーク送受信部１５により識別されたデバイス２３の各機能等に基づいて生成される。なお、制御中継部１４の詳細については後述する。
【００５５】
ネットワーク送受信部１５は、各種ネットワークの種類毎に対応するプロトコル（通信手順）を用いて通信を行うことで、接続されている各デバイス２３を制御することができるソフトウェアライブラリを備える。
【００５６】
例えば、ＩＰネットワークにおいて、ＵＰｎＰデバイスを制御する場合にはＩＰ及びＵＰｎＰのソフトウェアライブラリを備え、またＵＳＢデバイスを制御する場合にはＵＳＢライブラリを備える。
【００５７】
これにより、例えばＵＰｎＰの場合は、各種ＵＰｎＰデバイスがネットワークに接続又は接続が解除されたことを検出したり、ＵＰｎＰデバイスを制御したり、ＵＰｎＰデバイスから必要なデータを取得したり、ＵＰｎＰデバイスの何らかの状態変化を検出することができる。
【００５８】
また、全てのネットワーク送受信部３１は、共通制御中継部３３又は機能別共通制御部３４から制御命令を共通のインターフェースで受け付ける。受けた制御命令は、当該ネットワークのソフトウェアライブラリによってネットワークに依存した制御データに変換して、制御対象のデバイスと通信する。
【００５９】
なお、図１では、ネットワーク送受信部１５が通信ネットワーク２２の数に対応して複数存在する。具体的には、図１に示すようにネットワーク送受信部１５は、ネットワーク送受信部３１−１，３１−２が設けられている。
【００６０】
＜デバイス制御装置：ハードウェア構成例＞
ここで、上述のデバイス制御装置１０は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、画像やデータを表示する表示部、並びに外部と通信するためのインターフェースを備えたコンピュータによって構成することができる。
【００６１】
したがって、デバイス制御装置１０が備えるアプリケーションプログラム実行部１１、出力画像生成部１２、デバイス統括管理部１３、制御中継部１４、ネットワーク送受信部１５における各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク（フロッピィーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に格納して頒布することもできる。
【００６２】
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラム（デバイス制御プログラム）を生成し、例えば、汎用のパーソナルコンピュータやサーバ等にそのプログラムをインストールすることにより、デバイス制御処理を実現することができる。
【００６３】
＜ハードウェア構成＞
ここで、本発明におけるプログラムが実行可能なコンピュータのハードウェア構成例について図を用いて説明する。図３は、本実施形態におけるデバイス制御処理が実現可能なハードウェア構成の一例を示す図である。
【００６４】
図３におけるコンピュータ本体には、入力装置４１と、出力装置４２と、ドライブ装置４３と、補助記憶装置４４と、メモリ装置４５と、各種制御を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４６と、ネットワーク接続装置４７とを有するよう構成されており、これらはシステムバスＢで相互に接続されている。
【００６５】
入力装置４１は、使用者等が操作するキーボード及びマウス等のポインティングデバイスやマイク等の音声入力デバイス等を有しており、使用者等からのプログラムの実行等、各種操作信号を入力する。出力装置４２は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイや音声を出力するスピーカ等を有し、ＣＰＵ４６が有する制御プログラムによりプログラムの実行経過や結果等を表示又は音声出力することができる。
【００６６】
ここで、本発明において、コンピュータ本体にインストールされる実行プログラムは、例えば光ディスク等の記録媒体４８等により提供される。プログラムを記録した記録媒体４８は、ドライブ装置４３にセット可能であり、記録媒体４８に含まれる実行プログラムが、記録媒体４８からドライブ装置４３を介して補助記憶装置４４にインストールされる。
【００６７】
補助記憶装置４４は、ハードディスク等のストレージ手段であり、本発明における実行プログラムや、コンピュータに設けられた制御プログラム等を蓄積し必要に応じて入出力を行うことができる。
【００６８】
メモリ装置４５は、ＣＰＵ４６により補助記憶装置４４から読み出された実行プログラム等を格納する。なお、メモリ装置４５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなる。
【００６９】
ＣＰＵ４６は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、メモリ装置４５に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現することができる。また、ＣＰＵ４６は、プログラムの実行中に必要な各種情報を補助記憶装置４４から取得することができ、またＣＰＵ４６は、処理結果等を格納することもできる。
【００７０】
ネットワーク接続装置４７は、通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行したりすることで得られた実行結果又は本発明における実行プログラム自体を他の端末等に提供することができる。
【００７１】
上述したようなハードウェア構成により、特別な装置構成を必要とせず、低コストで効率的にデバイス制御処理を実現することができる。また、プログラムをインストールすることにより、容易に本実施形態におけるデバイス制御処理を取得することができる。
【００７２】
＜制御中継部１４の具体例＞
次に、制御中継部１４の具体例について説明する。制御中継部１４は、上述したように、接続されるデバイスに応じてデバイス統括管理部１３により、共通制御中継部３３又は機能別共通制御部３４を生成する。
【００７３】
共通制御中継部３３は、全てのデバイスに1対1に生成され、任意のデバイスに共通に利用可能な低レベルな制御を中継する。なお、共通制御中継部３３の詳細については後述する。
【００７４】
ここで、デバイス統括管理部１３は、接続を検出したデバイスが、予め設定されたデバイス種別の場合、共通制御中継部３３を組み込んだ機能別共通制御中継部３４を生成する。
【００７５】
機能別共通制御中継部３４は、共通制御中継部３３の機能を全て引き継ぐと共に、デバイス２３のデバイス種別に特化した高レベルな制御を中継する。機能別共通制御中継部３４は、アプリケーションプログラム３２に対して、ネットワークの種類毎のソフトウェアライブラリには依存しないが、そのデバイス種別の機能に応じて予め設定された１つ以上の固有の制御命令（ＡＰＩ）を提供する。なお、上述したデバイス種別は、例えばデバイス２３の機能毎に設定することもできる。なお、機能別共通制御中継部の詳細については後述する。
【００７６】
なお、デバイス統括管理部１３は、接続を検出したデバイスがサブデバイスを持つ場合にも、各サブデバイスに対して１対１に、共通制御中継部３３又は機能別共通制御中継部３４を生成する。
【００７７】
以下、共通制御中継部３３又は機能別共通制御中継部３４の何れかを示す場合は、単に制御中継部と呼ぶ。
【００７８】
制御中継部１４は、当該デバイス２３が属するネットワークのネットワーク送受信部１５と通信して制御命令を呼び出すことができる。また、制御中継部１４は、アプリケーションプログラム３２−３に各ネットワークに対応したソフトウェアライブライリに依存しない共通化された制御命令（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を提供し、アプリケーションから受け取った各種制御命令を各ネットワーク送受信部１５に出力する。
【００７９】
また、デバイス統括管理部１３は、生成した制御中継部１４の参照情報をアプリケーションプログラム３２−３に提供する。アプリケーションプログラム３２−３は、取得した参照情報に基づいて各種デバイスを制御するインターフェースとなる制御中継部１４を利用する。これにより、デバイス２３の接続されたネットワークの種別毎のソフトウェアライブラリに依存しない共通化された制御命令（ＡＰＩ）を用いてデバイスの制御を行うことが可能になる。
【００８０】
このように、アプリケーションプログラムから呼び出す制御命令を全てのデバイスに対して共通のものを用意することで、当該デバイスがどのネットワークに接続されていても、アプリケーションプログラムはネットワークやそのソフトウェアライブラリの仕様を意識しないで制御することができる。
【００８１】
ここで、機能別共通制御中継部３４は、設定されたデバイスの種別毎に異なるものが生成され、種別毎にそれぞれ異なる機能を有している。アプリケーションプログラム３１−１は、機能別共通制御中継部３４の提供する制御命令（ＡＰＩ）を用いて当該デバイスを制御することで、当該デバイスが属するデバイス種別に特化した機能を簡単に呼び出すことができる。
【００８２】
＜デバイス統括管理部１３の機能構成例＞
次に、デバイス統括管理部１３の機能構成例について図を用いて説明する。図４は、本実施形態におけるデバイス統括管理部の機能構成の一例を示す図である。なお、図４では、デバイス統括管理部１３の機能説明を容易にするため、アプリケーションプログラム３２−３及びネットワーク送受信部１５も示している。
図４に示すデバイス統括管理部１３は、デバイス管理手段５１と、デバイスリスト提供手段５２と、デバイス検索手段５３とを有するよう構成されている。
【００８３】
デバイス管理手段５１は、各ネットワーク送受信部３１−１，３１−２と通信可能である何れかのネットワークで制御可能な全てのデバイスの接続を検知する。つまり、デバイス管理手段５１は、各通信ネットワーク２２で制御可能なデバイスが検知されたという情報をネットワーク送受信部３１−１，３１−２から取得する。
【００８４】
また、デバイス管理手段５１は、あるデバイスの接続を検知した場合には、その度に検知したデバイス２３のデバイス種別に応じて制御中継部１４（共通制御中継部３３又は機能別共通制御中継部３４）を生成し、生成した制御中継部１４をデバイスリスト提供手段５２に登録する。
【００８５】
なお、デバイス管理手段５１には、機能別共通制御中継部３４を生成するデバイス種別を予め設定しておく。これにより、デバイス管理手段５１は、検知したデバイス２３が予め設定されていないデバイス種別の場合、共通制御中継部３３のみを生成する。
【００８６】
また、デバイス管理手段５１は、検知したデバイス２３が例えば提示デバイス等の機能別共通制御中継部を生成するために予め設定されたデバイス種別を検知した場合、共通制御中継部３３の機能を全て引き継ぐと共に、そのデバイス種別の機能に特化した高レベルな制御を提供する機能別共通制御中継部３４を生成する。
【００８７】
なお、デバイス管理手段５１は、デバイス２３が予め設定されたデバイス種別であるか否かの設定は、例えばデバイスが有するデバイス種別名、デバイス名、デバイスの一意なＩＤ、デバイスを制御するプロトコルで設定されているデバイス記述情報等の各種属性に基づいて設定される。
【００８８】
デバイスリスト提供手段５２は、接続を検出した全てのデバイス２３に対応する制御中継部１４への参照情報のリストを蓄積し、管理する制御中継部への参照情報をアプリケーションプログラム３２−３に提供する。
【００８９】
なお、上述した参照情報の提供方法としては、例えばデバイス２３が生成される毎に当該制御中継部１４への参照情報をアプリケーションプログラム３２−３に通知したり、アプリケーションプログラム３２−３からの要求に応じて、デバイスリスト提供手段５２に登録されている現在利用可能な全てのデバイス２３に関する制御中継部１４への参照情報のリストを提供したりすることができる。
【００９０】
この結果、アプリケーションプログラム３２−３は、共通制御中継部３３を利用することで、各ネットワークに対応するソフトウェアライブラリを意識する必要がなく、各種デバイスの検知通知を受けたり、利用可能なデバイス２３を組み合わせて連携する等の制御を実行したりすることができる。
【００９１】
なお、予め設定されているデバイス種別に該当するデバイス２３を制御する場合には、共通制御中継部３３に加えて、機能別共通制御中継部３４を利用してデバイスを制御する。これにより、アプリケーションプログラム３２−３からは、そのデバイス種別の機能に特化した制御を、ネットワークの制御プロトコル等に依存したソフトウェアライブラリを意識せずに実行することができる。
【００９２】
また、機能別共通制御中継部３４が生成されないデバイスとしては、利用頻度の少ないデバイス種別や、過去には設定していなかった新しい機能を有するデバイス等を想定し、そのようなデバイスをアプリケーションプログラム３２−３から制御したい場合には、共通制御中継部３３のみを用いて制御を行う。
【００９３】
ここで、図１に示す例を用いて具体的に説明すると、デバイス管理手段５１は、デバイス２３−１が接続されたことを検知すると、デバイスリスト提供手段５２によって制御中継部１４への参照情報をアプリケーションプログラム実行部１１のアプリケーションプログラム３２−３に提供する。また同様に、デバイス２３−２やデバイス２３−３、サブデバイス２４についての情報もアプリケーションプログラム実行部１１のアプリケーションプログラム３２−３に提供する。このように、アプリケーションプログラム３２−３は、デバイス２３の接続されるネットワークに依存したソフトウェアライブラリを意識する必要がなく、そのデバイスを制御するための制御中継部１４への参照情報を取得することができる。
【００９４】
デバイス検索手段５３は、アプリケーションプログラム３２−３からの要求に応じて検索を実行する。具体的には、デバイス検索手段５３は、各ネットワーク送受信部１５を通してネットワーク上に接続される全てのデバイス２３にアプリケーションプログラム３２−３からの要求に対応する検索用の信号を送って応答を待ち、通信ネットワーク２２に接続された制御可能なデバイスの最新の接続状態を検索する。なお、デバイス検索手段５３は、検索結果に基づいてデバイスリスト提供手段５２に蓄積された制御中継部１４への参照情報のリストを更新するようにすることもできる。
【００９５】
上述した構成によって、アプリケーションプログラム３２−３は、デバイス統括管理部１３から取得した制御可能デバイスに対応した制御中継部１４への参照情報に基づいて、制御中継部１４の提供するデバイス制御のための制御命令を介して、ネットワーク種別や、デバイスの制御プロトコルに依存したソフトウェアライブラリを意識せずに各種デバイスを制御することができる。
【００９６】
＜制御中継部の機能構成例＞
次に制御中継部１４（共通制御中継部３３、機能別共通制御中継部３４）の具体的な機能構成例について図を用いて説明する。
【００９７】
図５は、本実施形態における制御中継部の機能構成の一例を示す図である。なお、図５は、制御するデバイスが予め設定されたデバイス種別でない場合の例を示しており、この場合にはデバイス統括管理部１３により共通制御中継部３３が生成される。共通制御中継部３３は、デバイス属性提供手段６１と、デバイス状態変化通知手段６２と、サブデバイスリスト提供手段６３と、デバイス制御データ入出力手段６４とを有するよう構成されている。
【００９８】
デバイス属性提供手段６１は、例えばデバイスが有するデバイス名、デバイスの一意なＩＤ、デバイスを制御するプロトコルで設定されているデバイス記述情報等の各種属性情報を取得してアプリケーションプログラム３２−３に提供する。
【００９９】
また、デバイス状態変化通知手段６２は、制御対象のデバイスの何らかの状態が変化した場合、デバイスの状態変化を検知して、アプリケーションプログラム３２−３に対して、その状態変化を通知する。
【０１００】
サブデバイスリスト提供手段６３は、制御対象のデバイスが階層的な機能構成となっている場合に、階層的な構成によって各階層の機能を制御することを可能にするため、下の階層にある機能を子に当たるデバイス（サブデバイス、入れ子デバイス）として制御するための制御中継部１４への参照情報を保持し、またアプリケーションプログラム３２−３から要求された場合は、そのサブデバイスの制御中継部１４への参照情報のリストを提供する。
【０１０１】
デバイス制御データ入出力手段６４は、アプリケーションプログラム３２−３が、デバイスに対して直接入出力データを送受信する際、又はデバイス属性提供手段６１、デバイス状態変化通知手段６２、サブデバイスリスト提供手段６３等のうち少なくとも１つの制御を行う際、又はデバイス種別に特化し高レベルな制御を行う際に、デバイスに対して入出力されるデータをネットワーク送受信部１５に対して送受信する。なお、デバイス制御データ入出力手段６４と、各ネットワーク送受信部１５との間の制御命令のインターフェース（ＡＰＩ）は、全てのネットワーク送受信部に対して共通のインターフェースとする。
【０１０２】
次に、本実施形態における制御中継部の他の機能構成例について図を用いて説明する。図６は、本実施形態における制御中継部の他の機能構成の一例を示す図である。なお、図６は、一例として予め設定されたデバイス種別Ｘに対応したデバイスが接続された場合を示しており、この場合にはデバイス統括管理部１３により機能別共通制御中継部３４が生成される。
【０１０３】
機能別共通制御中継部３４は、共通制御中継部３３が有する全ての機能に加えて、デバイス種別毎の機能に特化した高レベルな制御（図６においてデバイス種別Ｘ用）を有するように構成されている。
【０１０４】
また、機能別共通制御中継部３４が生成された場合は、デバイス種別に応じてデバイスの機能に特化した制御命令を利用することができる。具体的には、例えば図６に示すように、デバイス種別Ｘの場合は、機能別共通制御として、Ｘ−１〜Ｘ−３の各制御命令等を有し、これらの高レベル制御Ｘ−１〜Ｘ−３によりデバイスの機能に特化した制御命令を実行することができる。また、機能別共通制御中継部３４の各制御命令は、デバイス制御データ入出力手段６４を介して実行される。
【０１０５】
なお、図６において、例えば他のデバイス種別（例えば、デバイス種別Ｙ等）と接続された場合にも、機能別共通制御中継部３４を生成することで、そのデバイスに特化した対応する制御命令（例えば、Ｙ−１〜Ｙ−３等）を利用することができる。
【０１０６】
上述した図５及び図６の構成により、アプリケーションプログラム３２−３は、属するネットワークの種別や制御するためのプロトコル等、規格の異なる複数のデバイスに対して共通に利用できるインターフェースにより、まだ未対応のデバイスが接続された場合にもある程度の低レベルな制御（例えば、属性の取得やデバイス制御データ入出力手段６４を用いたｒｅａｄ、ｗｒｉｔｅ等）を実現できる。更に、デバイスが予め設定された複数のデバイス種別のうちの１つである場合、そのデバイスの機能に応じた高レベルな制御も簡単に行わせることができる。
【０１０７】
このように、属するネットワークの種別や制御するためのプロトコル等に依存しない低レベルな制御と高レベルな制御とを使い分けることで、接続されたデバイスに応じて効率よく制御を行うアプリケーションプログラムを簡単に作成することができる。
【０１０８】
更に、デバイス制御データ入出力手段６４と各ネットワーク送受信部１５との間の制御命令のインターフェース（ＡＰＩ）を、全てのネットワーク送受信部１５に対して共通のものとすることで、ネットワークの種別に依存したプログラムの実装はネットワーク送受信部に対してのみ行えばよく、制御中継部１４の実装に関しては、全てのネットワークに対して共通に利用することができる。
【０１０９】
また、制御中継部１４は、デバイス１つに対して１つ生成する必要があるが、ネットワークに依存しない機能別の実装を使い回すことができるので、ネットワーク種別とデバイス種別との組み合わせでプログラムを実装する必要がなく、プログラムが有するメモリ領域を節約でき、効率的なプログラムアーキテクチャを実現することができる。
【０１１０】
＜本実施形態におけるアプリケーションプログラム例＞
次に、本実施形態にて適用されるアプリケーションプログラム例について説明する。
【０１１１】
（Ｊａｖａインターフェース及びＡＰＩの具体例）
上述したデバイス統括管理部１３、制御中継部は、何れもアプリケーションプログラムから制御命令（ＡＰＩ）を介して制御を受けるプログラムであり、デバイス統括管理部１３、制御中継部のプログラムが持つデータと機能を一体化したものである。これを、Ｊａｖａ等のプログラム言語では、オブジェクトと呼んでいる。また、オブジェクトの持つデータとその操作手順であるメソッドを纏めたオブジェクトの型を設定したものはＪａｖａではクラスやインターフェースと呼んでいる。
ここで、図７は、デバイス統括管理部をＪａｖａのインターフェースとして設定した一例を示す図である。なお、図７の例では、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のクラス図を用いた例を示している。また、図６では、デバイス統括管理部１３を表すＪａｖａインターフェース名を“ＤｅｖｉｃｅＭａｎａｇｅｒ”とする。
【０１１２】
“ＤｅｖｉｃｅＭａｎａｇｅｒ”は、デバイス統括管理部１３によって検知された通信ネットワーク２２にアクティブに接続されたデバイスに対応する制御中継部に対応した新しいＪａｖａオブジェクトを生成し、生成したオブジェクトへの参照情報を内部データとして保持する。
【０１１３】
更に、“ＤｅｖｉｃｅＭａｎａｇｅｒ”は、デバイスリスト提供手段６３によって、現在制御可能なデバイス群に対応する“Ｄｅｖｉｃｅ”オブジェクトへの参照情報の配列（Ｄｅｖｉｃｅ［］）を返す“ｇｅｔＤｅｖｉｃｅｓ（）”等のＡＰＩを持つ。
【０１１４】
アプリケーションプログラム３２−３は、“ｇｅｔＤｅｖｃｅｓ（）”を呼ぶことによって、現在利用可能な全てのデバイスに対して、制御中継部に対応したＪａｖａオブジェクトを取得するので、このオブジェクトが持つＡＰＩを呼ぶことにより、如何なるネットワークや制御プロトコルに対応したデバイスであっても、普遍的な制御命令（ＡＰＩ）によって制御することができる。
【０１１５】
また、“ＤｅｖｉｃｅＭａｎａｇｅｒ”は、デバイスリスト提供手段として、アプリケーションプログラム３２−３がデバイス検知の通知を受け取りたい場合に呼ばれる“ａｄｄＤｅｖｉｃｅＤｉｓｃｏｖｅｒｙＬｉｓｔｅｎｅｒ（）”及びデバイス検知の通知の受け取りを中止したい場合に呼ばれる“ｒｅｍｏｖｅＤｅｖｉｃｅＤｉｓｃｏｖｅｒｙＬｉｓｔｅｎｅｒ（）”等のＡＰＩを持つ。
【０１１６】
また、“ＤｅｖｉｃｅＭａｎａｇｅｒ”は、デバイス検索手段５３として、デバイスの最新の接続状態を検索する“ｓｅａｒｃｈＤｅｖｉｃｅｓ（）”等のＡＰＩを持つ。アプリケーションプログラムが“ｓｅａｒｃｈＤｅｖｉｃｅｓ（）”等のＡＰＩを呼ぶことで、デバイス統括管理部１３の制御により各ネットワーク送受信部が当該ネットワークの最新のデバイス接続状態を検索し、新しいデバイスが見つかったらデバイス統括管理部１３へデバイスの検知を通知し、デバイス統括管理部１３はデバイスの通知を受けるとそれをアプリケーションプログラム３２−３に通知することができる。
【０１１７】
そのため、結果的にアプリケーションプログラム３２−３は、最新のデバイス接続状態を迅速に検知することができ、デバイスの接続状態を確実に把握することが可能になる。
【０１１８】
なお、個々で示したＪａｖａインターフェースやＡＰＩはあくまで一例であり、例えばＪａｖａのクラスとして設定したり、Ｊａｖａ以外のプログラム言語のクラスとして設定したりしてもよく、また、例えばＡＰＩの名前、種類、引数、返値は、目的とする機能を実現するのであれば異なる形式となっていてもよい。
【０１１９】
また、図８は、制御中継部を実装する上でのＪａｖaクラスおよびインターフェースの構成の一例を示す図である。なお、図８では、ＵＭＬのクラス図を用いた例を示している。
【０１２０】
図８において、共通制御中継部３３を表すＪａｖａインターフェース名を“Ｄｅｖｉｃｅ”とする（図８（ａ））。“Ｄｅｖｉｃｅ”は、上述したデバイス属性提供手段６１として、デバイスの名前を返す“ｇｅｔＦｒｉｅｎｄｌｙＮａｍｅ（）”、デバイスのデバイス種別を返す“ｇｅｔＤｅｖｉｃｅＣｌａｓｓ（）”、デバイスの各種属性記述を返す“ｇｅｔＤｅｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎ（）”、デバイスの一意なＩＤを返す“ｇｅｔＵＤＮ（）”等、文字列（Ｓｔｒｉｎｇ）を返すＡＰＩを持つ。
【０１２１】
また、“Ｄｅｖｉｃｅ”は、デバイス状態変化通知手段６２として、アプリケーションプログラム３１−１がデバイス状態変化イベントを受け取りたい場合に呼ばれる“ａｄｄＤｅｖｉｃｅＬｉｓｔｅｎｅｒ（）”及びデバイス状態イベントの受け取りを中止したい場合に呼ばれる“ｒｅｍｏｖｅＤｅｖｉｃｅＬｉｓｔｅｎｅｒ（）”等のＡＰＩを持つ。
【０１２２】
また、“Ｄｅｖｉｃｅ”は、サブデバイスリスト提供手段６３として、デバイスの機能が階層的に設定されている場合に、下の階層にある機能であるサブデバイスの制御中継部のオブジェクトへの参照のリストを返す“ｇｅｔＳｕｂＤｅｖｉｃｅｓ（）”、自分が属するデバイスの階層構造の頂点のデバイスの制御中継部のオブジェクトへの参照を返す“ｇｅｔＲｏｏｔＤｅｖｉｃｅ（）”、自分がデバイスの階層の頂点のデバイスかどうかをブール値（Ｂｏｏｌｅａｎ）で返す“ｉｓＲｏｏｔＤｅｖｉｃｅ（）”等のＡＰＩを持つ。
【０１２３】
また、“Ｄｅｖｉｃｅ”は、デバイス制御データ入出力手段６４として、デバイスにデータ（ｂｙｔｅ［］）を送信する“ｗｒｉｔｅ（）”、デバイスからデータ（ｂｙｔｅ［］）を受信し、受信したデータバイト数を返す“ｒｅａｄ（）”、デバイスに整数型（ｉｎｔ）の制御コードと、データ送信用、データ受信用のバッファとしてバイト配列（ｂｙｔｅ［］）を渡して制御コードに対応した制御を呼び出して、制御が正常に実行されたかのブール値（ｂｏｏｌｅａｎ）を取得する“ｉｏＣｏｎｔｒｏｌ（）”等のＡＰＩを持つ。
また、機能別共通制御中継部３４は、例えば、図８（ｂ），（ｃ）に示すように、対応するデバイスが予め設定された幾つかのデバイス種別の１つである場合、そのデバイス種別の持つ機能に応じて用意される。つまり、機能別共通制御中継部３４は、デバイス種別毎に異なるので、図８の例では仮にデバイス種別Ｘ、デバイス種別Ｙに対応した制御命令（ＡＰＩ）を備えたＪａｖａインターフェース名を“Ｘ＿Ｄｅｖｉｃｅ”及び“Ｙ＿Ｄｅｖｉｃｅ”とする。デバイスＸとデバイスＹは、異なる機能を持ったデバイスであるため、図８（ｂ），（ｃ）に示すように“Ｘ＿Ｄｅｖｉｃｅ”、“Ｙ＿Ｄｅｖｉｃｅ”はそれぞれ異なるＡＰＩを持つ。
【０１２４】
なお、新たに機能別共通制御中継部３４を設定する場合には、そのデバイスの機能に応じてＪａｖａインターフェース名、及び、そのインターフェースが持つＡＰＩを新たに設定することとなる。
【０１２５】
ここで、図８では、“Ｘ＿Ｄｅｖｉｃｅ”及び“Ｙ＿Ｄｅｖｉｃｅ”から“Ｄｅｖｉｃｅ”へ向かって矢印で接続されているが、これは、“Ｘ＿Ｄｅｖｉｃｅ”及び“Ｙ＿Ｄｅｖｉｃｅ”が、“Ｄｅｖｉｃｅ”を継承し、Ｄｅｖｉｃｅの持つ制御命令（ＡＰI）を全て引き継いでいることを示す。
【０１２６】
このように、新たに機能別共通制御中継部３４を設定した場合、そのデバイスに対応するＪａｖａインターフェースは、Ｄｅｖｉｃｅインターフェースを継承したものとなる。
【０１２７】
なお、ここで示したＪａｖａインターフェースやＡＰＩはあくまで一例であり、例えばＪａｖａのクラスとして設定したり、Ｊａｖａ以外のプログラム言語のクラスとして設定したりしてもよく、ＡＰＩの名前、種類、引数、返値は、目的とする機能を実現するのであれば異なる形式となっていてもよい。
【０１２８】
ここで、上述の図８の“Ｄｅｖｉｃｅ”、“Ｘ＿Ｄｅｖｉｃｅ”、“Ｙ＿Ｄｅｖｉｃｅ”は、アプリケーションプログラム３２−３がそれぞれの持つ機能を呼び出すインターフェース（ＡＰＩ）を規定しただけであり、実際の制御を行う実装クラスは、図８（ｄ）〜（ｆ）となる。図８（ｄ）〜（ｆ）から“Ｄｅｖｉｃｅ”、“Ｘ＿Ｄｅｖｉｃｅ”、“Ｙ＿Ｄｅｖｉｃｅ”等に接続されている矢印が、Ｊａｖａインターフェースの実装クラスであることを示している。
【０１２９】
また、図８(ｆ)は、デバイス制御データ入出力手段６４を備えた共通制御中継部３３の実装クラス例である。
【０１３０】
図８（ｄ），（ｅ）は、デバイス種別Ｘ，Ｙに対応した機能別共通制御中継部の実装クラスである。デバイス種別Ｘ、Ｙの機能に応じた高レベルなＡＰＩについては、共通制御中継部３３のデバイス制御データ入出力手段６４に対応するｒｅａｄ、ｗｒｉｔｅ、ｉｏＣｏｎｔｒｏｌ等のＡＰＩの組み合わせによってプログラムを記述し、共通制御中継部３３の実装クラス（図８（ｆ））を呼び出すことによって実行する（なお、図８（ｄ），（ｅ）から（ｆ）への矢印は、参照を示している。）。
【０１３１】
この結果、デバイスの属するデバイス種別に応じてそれぞれ定義する必要がある図８（ｄ），（ｅ）の実装クラスには、ネットワーク種別に依存した細かい制御を記述する必要がなくなる。
【０１３２】
更に、図８（ｆ）の共通制御中継部３３の実装クラスは、各ネットワークのネットワーク送受信部１５の機能に対応したクラス“ＮｅｔｗｏｒｋＩＯ＿ｆｏｒ＿Ｎｅｔｗｏｒｋ１”、“ＮｅｔｗｏｒｋＩＯ＿ｆｏｒ＿Ｎｅｔｗｏｒｋ２”の各クラスが共通に持つＡＰＩを呼び出すことで、各ネットワークに対して制御命令を送る。
【０１３３】
上述した例のように、ネットワークの種別に依存したプログラムの実装は“ＮｅｔｗｏｒｋＩＯ＿ｆｏｒ＿Ｎｅｔｗｏｒｋ１”、“ＮｅｔｗｏｒｋＩＯ＿ｆｏｒ＿Ｎｅｔｗｏｒｋ２”に対してのみ行えばよく、制御中継部１４の実装“ＤｅｖｉｃｅＩｍｐｌ”、“Ｘ＿ＤｅｖｉｃｅＩｍｐｌ”、“Ｙ＿ＤｅｖｉｃｅＩｍｐｌ”）に関しては、全てのネットワークに対して共通に利用することができる。制御中継部１４は、デバイス１つに対して１つ生成する必要があるが、ネットワークに依存しない機能別の実装を使い回すことができる。
【０１３４】
そのため、ネットワーク種別とデバイス種別との組み合わせでプログラムを実装する必要がなく、プログラムが有するメモリ領域を節約でき、効率的なプログラムアーキテクチャを実現することができる。
【０１３５】
共通制御中継部３３では、接続するネットワーク（例えば、ＩＰ、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ等）に依存しない機器の制御が可能であり、今後新たなネットワークに対応した機器が出てきた場合でも、過去に取得しているアプリケーションプログラム（例えば、放送受信装置の場合には、ＡＲＩＢ−Ｊコンテンツ等）を動作させることが可能である。
【０１３６】
また、これまでなかった新しいデバイス種別に対応する場合は、新たなデバイス種別に特化した機能を呼び出すＡＰＩを設定して更新することで対応することができる。
【０１３７】
なお、アプリケーションがネットワークの種別やそのプロトコルに依存した制御を行う場合には、例えば、“Ｄｅｖｉｃｅ”の“ｄｅｖｉｃｅＩＯＣｏｔｒｏｌ”等の低レベルなデータ入出力を行うＡＰＩで制御の種類を指定することによって、ネットワーク種別やプロトコルに依存した制御を行うこともできる。
（提示デバイス用の機能別共通制御中継部の動作）
次に、機能別共通制御中継部３４の一例として、提示デバイス用の機能別共通制御中継部の動作に対応したＪａｖａインターフェースの設定例について説明する。図９は、提示デバイス用の機能別共通制御中継部の動作の一例を示す図である。図９では、制御中継部の１つが、機能別共通制御中継部として映像や音声、アプリケーションプログラムの提示機能を有するデバイス（提示デバイス）を制御する場合、提示デバイスに対するＪａｖａインターフェースの設定例を示したものである。
【０１３８】
図９において、提示デバイスを表す機能別共通制御中継部のＪａｖａインターフェース名を“ＭｅｄｉａＲｅｎｄｅｒｅｒＤｅｖｉｃｅ”とする。“ＭｅｄｉａＲｅｎｄｅｒｅｒＤｅｖｉｃｅ”は、各種コンテンツの提示を制御するために、提示デバイスに提示すべきコンテンツのＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）の文字列（Ｓｔｒｉｎｇ）を設定する“ｓｅｔＣｏｎｔｅｎｔ（）”、再生を開始する“ｐｌａｙ（）”、再生を停止する“ｓｔｏｐ（）”、再生を一時停止する“ｐａｕｓｅ（）”、映像、音声等の指定した位置（ｉｎｔ）から再生を開始する“ｓｅｅｋ（）”、早送りを行う“ｆｆ（）”、早戻しを行う“ｆｒ（）”、スロー再生を行う“ｓｌｏｗ（）”等の各メソッドを持つ。
【０１３９】
なお、ここで示したＪａｖａインターフェースやＡＰＩはあくまで一例であり、例えば、Ｊａｖａのクラスとして設定したり、Ｊａｖａ以外のプログラム言語のクラスとして設定したりしてもよく、また、例えばＡＰＩの名前、種類、引数、返値は、目的とする機能を実現するのであれば異なる形式となっていてもよい。
【０１４０】
これにより、各種ネットワークに接続された提示デバイスを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、例えば機能別共通制御中継部が、映像音声やアプリケーションプログラムの提示機能を有する提示デバイスを制御する機能をアプリケーションプログラムに提供することにより、提示デバイスの接続されたネットワークや提示デバイスを制御するプロトコルに依存しない普遍的な制御命令を用いて様々な再生制御やトリックプレー等を制御することができる。
（コンテンツサーバ用の機能別共通制御中継部の動作）
次に、機能別共通制御中継部３４の一例として、コンテンツを提供するコンテンツサーバ用の機能別共通制御中継部の動作例について説明する。図１０は、コンテンツサーバ用の機能別共通制御中継部の動作の一例を示す図である。
【０１４１】
例えば、制御中継部の１つが、機能別共通制御中継部としてコンテンツ提供機能を持ったデバイス（コンテンツ提供デバイス）を制御する場合、コンテンツ提供デバイスに対するＪａｖａインターフェースの設定例は、図１０に示すようになる。
【０１４２】
図１０では、コンテンツ提供デバイスを表す機能別共通制御中継部のＪａｖａインターフェース名を“ＭｅｄｉａＳｅｒｖｅｒＤｅｖｉｃｅ”とする。“ＭｅｄｉａＳｅｒｖｅｒＤｅｖｉｃｅ”は、コンテンツ提供デバイスが提供可能なコンテンツのＵＲＩの一覧（Ｓｔｒｉｎｇ［］）を返す“ｇｅｔＣｏｎｔｅｎｔＬｉｓｔ（）”、ＵＲＩ（Ｓｔｒｉｎｇ）で指定されたコンテンツの各種属性（Ｓｔｒｉｎｇ）を返す“ｇｅｔＣｏｎｔｅｎｔＰｒｏｐｅｒｔｙ（）”、ＵＲＩ（Ｓｔｒｉｎｇ）で指定されたコンテンツのデータのストリーム（ＩｎｐｕｔＳｔｒｅａｍ）を返す“ｇｅｔＣｏｎｔｅｎｔ（）”等の各メソッドを持つ。
【０１４３】
なお、ここで示したＪａｖａインターフェースやＡＰＩは、あくまで一例であり、例えば、Ｊａｖａのクラスとして設定したり、Ｊａｖａ以外のプログラム言語のクラスとして設定したりしてもよく、また、例えばＡＰＩの名前、種類、引数、返値は、目的とする機能を実現するのであれば異なる形式となっていてもよい。
【０１４４】
これにより、各種ネットワークに接続されたコンテンツ提供デバイスを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、例えば機能別共通制御中継部が、コンテンツ提供デバイスを制御する機能をアプリケーションプログラムに提供することにより、コンテンツ提供デバイスの接続されたネットワークやコンテンツ提供デバイスを制御するプロトコルに依存しない普遍的な制御命令を用いて様々なコンテンツサーバの機能を制御することができる。
（ＨＩＤ用の機能別共通制御中継部の動作）
次に、機能別共通制御中継部３４の一例として、ＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）用の機能別共通制御中継部の動作例について説明する。図１１は、ＨＩＤ用の機能別共通制御中継部の動作の一例を示す図である。
【０１４５】
例えば、制御中継部の１つが、機能別共通制御中継部としてマンマシンインターフェースを担当する機能を有するデバイスを制御する場合、ＨＩＤに対するＪａｖａインターフェースの設定例は、図１１に示すようになる。
【０１４６】
なお、図１１において、ＨＩＤを表す機能別共通制御中継部のＪａｖａインターフェース名を“ＨｕｍａｎＩｎｔｅｒｆａｃｅＤｅｖｉｃｅ”とする。“ＨｕｍａｎＩｎｔｅｒｆａｃｅＤｅｖｉｃｅ”は、ＨＩＤの入力機能の属性（Ｓｔｒｉｎｇ）を返す“ｇｅｔＨＩＤＰｒｏｐｅｒｔｙ（）”、ＨＩＤがボタン（キー）入力を受け付ける場合、ある瞬間に押されたボタン（キー）のキーコード（ｉｎｔ）を取得する“ｇｅｔＫｅｙ（）”、ＨＩＤがポインティングデバイスである場合、ある瞬間のポインタの位置（Ｘ，Ｙ座標の値）（ｉｎｔ［］）を返す“ｇｅｔＰｏｓｉｔｉｏｎ（）”、ＨＩＤがボリュームつまみ等のスライダ入力等を持っている場合、ある瞬間のつまみの値（ｉｎｔ）を返す“ｇｅｔＶａｌｕｅ（）”等の各メソッドを持つ。
【０１４７】
なお、ここで示したＪａｖａインターフェースやＡＰＩはあくまで一例であり、例えば、Ｊａｖａのクラスとして設定したり、Ｊａｖａ以外のプログラム言語のクラスとして設定したりしてもよく、ＡＰＩの名前、種類、引数、返値は、目的とする機能を実現するのであれば異なる形式となっていてもよい。
【０１４８】
これにより、各種ネットワークに接続されたＨＩＤを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルを意識せずに容易に記述することができる。具体的には、機能別共通制御中継部が、ＨＩＤを制御する機能をアプリケーションプログラムに提供することによって、ＨＩＤの接続されたネットワークやＨＩＤを制御するプロトコルに依存しない普遍的な制御命令を用いて様々なＨＩＤを制御することができる。
【０１４９】
上述したように、接続されるデバイスに対応して汎用処理として処理できるものは共通制御中継部のクラスを利用し、独自の専門的は機能を提供するデバイスに対しては、それぞれ必要に応じて専門的なクラスを共通制御中継部のクラスから継承して設定する。これにより、アプリケーションプログラムは、通信ネットワーク上に接続されているデバイスのネットワーク種別を意識せずに制御できるだけでなく、メモリ容量を節約できる効率的なプログラムアーキテクチャを実現できる。
【０１５０】
このため、アプリケーションプログラム制作者は、ネットワークの違いやそれぞれの制御プロトコルを意識する必要がなく容易にアプリケーションプログラムを制作できるだけでなく、各ネットワークや制御プロトコル毎に別々の制御プログラムを記述する場合に比べてプログラム記述量を大幅に削減し、更にアプリケーションプログラムのデータ容量を小さくすることができる。そのため、データ伝送におけるアプリケーションプログラムに割り当てられた伝送帯域を節約することもできる。
【０１５１】
また、今後新たなネットワークインターフェース（例えば、ネットワークＺ）が登場した場合、ネットワークＺ用のネットワーク送受信部を新たに備えた新バージョンの受信装置を作ることで、新たなネットワークに対応することが可能になるが、過去のバージョンの受信装置用に制作されたアプリケーションプログラムでも、アプリケーションプログラムと制御中継部の間のインターフェース（ＡＰＩ）は変わらず、アプリケーションプログラムはネットワークに依存しない記述がされているため、新バージョンの受信装置でも動作可能となる。
【０１５２】
また、各種ネットワークに接続された提示デバイスやコンテンツ提供デバイス、ＨＩＤを連携させるアプリケーションプログラムを、ネットワークやその制御プロトコルや対応するソフトウェアライブラリの仕様を意識せずに容易に記述することができる。
【０１５３】
＜本発明におけるデバイス制御装置を適用した例＞
次に、本発明におけるデバイス制御装置を適用した実施形態について説明する。なお、以下に示す例では、デバイス制御装置を適用した放送コンテンツを受信する放送受信装置について説明するが、本発明の実施形態においては、これに限定されるものではない。また、図１に示すデバイス制御装置と同一構成部分には同一符号を付すこととし重複する説明を省略する。
【０１５４】
図１２は、本発明におけるデバイス制御装置を適用した放送受信装置の一例を示す図である。なお、放送受信装置１００は、所定のコンテンツに含まれる映像音声信号やアプリケーションプログラムを再生してユーザ等に提示するものである。
【０１５５】
図１２に示す放送受信装置１００は、放送受信部１０１と、蓄積部１０２と、多重分離部１０３と、映像・音声再生部１０４と、アプリケーションプログラム実行部１０５と、出力画像合成部１０６と、デバイス統括管理部１３と、制御中継部１４と、ネットワーク送受信部１５とを有するよう構成されている。
【０１５６】
図１１に示すように、放送受信装置１００において、放送受信部１０１は、例えばデジタル放送等で放送される放送信号の受信において、放送局等のコンテンツ提供者から配信されるコンテンツ１１０を受信する。また、放送受信部１０１は、放送信号を受信、復調し、誤り訂正等を行った結果として得られるコンテンツ１１０を多重分離部１０３又は蓄積部１０２に出力する。
【０１５７】
また、ネットワーク送受信部１５（３５−１，３５−２）は、通信ネットワーク２２−１，２２−２に接続され制御可能なデバイス２３−１〜２３−３とデータの送受信を行う他にコンテンツ１１１を受信する。受信したコンテンツ１１１は、多重分離部１０３又は蓄積部１０２に出力する。
【０１５８】
ここで、放送受信又は通信ネットワークにより受信するコンテンツは、映像、音声、ＳＩ（Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ：番組配列情報）等の様々な付加情報を記述したメタデータ、放送受信装置１００で実行可能なアプリケーションプログラム等からなる。
【０１５９】
なお、映像、音声コンテンツは、映像や音声のデータであって、例えばＭＰＥＧ２等の符号化方式によって符号化されたデータである。また、メタデータは、例えば映像、音声コンテンツに関するＳＩ等の各種情報やアプリケーションプログラムで利用する各種情報を含んでおり、例えばＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等で記述されている。
【０１６０】
また、アプリケーションプログラムは、例えばＪａｖａベースの欧米及び日本の放送用アプリケーション規格であるＡＲＩＢ−Ｊ等によって記述されたＪａｖａプログラムである。
【０１６１】
蓄積部１０２は、デジタル放送等で放送される放送信号や通信ネットワーク２２介して放送局等のコンテンツ提供者から配信されるコンテンツ１１０，１１１を蓄積する。
【０１６２】
なお、蓄積部１０２は、半導体メモリ又はハードディスク等の記録媒体等である。また、蓄積部１０２は、受信したコンテンツを映像、音声、メタデータ、アプリケーションプログラム等のデータが多重されたまま蓄積してもよく、また例えば多重分離部１０３によって個々のデータに分離した状態で蓄積してもよい。
【０１６３】
多重分離部１０３は、放送受信部１０１、ネットワーク送受信部１５等で受信したコンテンツ又は蓄積部１０２に保存されているデータが多重された状態のコンテンツを入力として受け取り、多重されているデータを、映像・音声データ、メタデータ、アプリケーションプログラム等に分離する。
【０１６４】
多重分離部１０３は、分離した映像・音声データを映像・音声再生部１０４に出力し、分離したアプリケーションプログラム及びメタデータは、アプリケーションプログラム実行部１０５に出力する。また、多重分離部１０３は、分離したデータを蓄積する場合、蓄積部１０２へ出力する。
【０１６５】
映像・音声再生部１０４は、多重分離部１０３又は蓄積部１０２から得られる映像・音声データを再生する。ここで、再生された映像・音声は、出力画像合成部１０６を介してテレビモニタ等の表示装置２１によってユーザに提示される。
【０１６６】
出力画像合成部１０６は、映像・音声再生部１０４が再生する映像・音声及びアプリケーション実行部１０５が実行するアプリケーションプログラムの表示画面を受け取り、両者を合成して、その合成した結果等を表示装置２１によって表示しユーザに提示する。
【０１６７】
なお、図１２において、通信ネットワーク２２−１は、例えばＩＰネットワークとし、デバイス２３−１及び２３−２はＩＰネットワークにおけるデバイス連携プロトコルであるＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に対応したデバイスとする。また、通信ネットワーク２２−２は、例えばＵＳＢのネットワークとし、デバイス２３−３はＵＳＢ対応デバイスとする。
【０１６８】
通信ネットワーク送受信部２２−１，２２−２は、制御対象の各デバイスに対応した制御プロトコルのデバイス検知の仕組みによって、例えば各デバイスが当該ネットワークに接続されたこと、接続が解除されたことを検知することや、各デバイスの各種状態の変化、例えば利用可能状態からビジー状態になったこと等を検知することもできる。
【０１６９】
したがって、図１２に示すような構成において、アプリケーションプログラム実行部１０５でアプリケーションプログラム３１−１が起動することで、複数のデバイスをアプリケーションプログラムにより連携して制御することができ、更にコンテンツ等を放送信号や通信ネットワークを介して容易に取得することができる。
【０１７０】
また、放送によるプッシュ型の配信を利用することによって、アプリケーションプログラムだけでなく、新たな機能に対応した機能別共通制御中継部や新たなネットワークプロトコルに対応したネットワーク送受信部等のソフトウェアライブラリにあたるプログラムを送ることで、ユーザ操作を必要とせずに、自動的に受信機の機能をアップデートすることも実現できる。
【０１７１】
＜その他の実施形態＞
また、上述した本発明を適用することで、例えばＡＲＩＢ−Ｊアプリケーションから各種ネットワーク（例えば、ＩＰ、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ等）にアクセスするためのパッケージを追加することができる。したがって、例えば宅内ネットワークのアクセス機能において、様々な機能を持ったデバイスの連携を行う場合、例えばレンダラー機能を持ったデバイスを用いてＡＶコンテンツの再生や、ＡＲＩＢ−Ｊコンテンツの提示を分担したり、メディアサーバ機能を持ったデバイスを用いて過去に放送されたコンテンツを関連映像として利用したり、ＨＩＤ機能を持ったデバイスを用いて新たな操作を可能にすることができる。
【０１７２】
また、本発明では、ＩＰネットワークの他にＵＳＢやＢｌｕｅｔｏｏｔｈ等の受信装置が備える各種物理インターフェースを宅内ネットワークとして捉え、ＡＲＩＢ−Ｊアプリケーションからは機器の持つ機能が同じであればどんなネットワークに接続されていても同じように制御することができる。
【０１７３】
上述したように本発明によれば、通信ネットワーク上に接続されるデバイスをネットワーク種別を意識せずに簡易に制御することができる。また、効率的なプログラムアーキテクチャを実現することができる。
【０１７４】
具体的には、例えば放送コンテンツに含まれるアプリケーションプログラムを受信装置で動作させ、受信装置が接続された各種ネットワークを介して他のデバイスを制御して連動させるアプリケーションプログラムを制作する際、アプリケーションプログラムの記述にはネットワークの種類や各ネットワーク特有のプロトコルに依存したプログラム記述をする必要がない。
【０１７５】
このため、アプリケーションプログラム制作者は、ネットワークの違いやそれぞれの制御プロトコルを意識する必要がなく、容易にアプリケーションプログラムを制作できるだけでなく、各ネットワークや制御プロトコル毎に別々の制御プログラムを記述する場合に比べてプログラム記述量を大幅に削減し、更にアプリケーションプログラムのデータ容量を小さくできる。そのため、コンテンツ伝送におけるアプリケーションプログラムに割り当てられた伝送帯域を節約することが可能となる。
【０１７６】
また、今後新たなネットワークインターフェース（例えば、ネットワークＺ）が登場した場合、ネットワークＺに対応したネットワーク送受信部を新たに備えた新バージョンの受信装置を作ることで、新たなネットワークに対応することが可能になるが、過去のバージョンの受信装置用に制作されたアプリケーションプログラムでも、アプリケーションプログラムと制御中継部の間のインターフェースは変わらず、アプリケーションプログラムはネットワークに依存しない記述がされているため、新バージョンの受信装置でも動作可能となる。
【０１７７】
また本発明によれば、各種ネットワークに接続された提示デバイス、コンテンツ提供デバイス、ＨＩＤを連携させるアプリケーションプログラムをネットワークやその制御プロトコルを意識せずに容易に記述することができる。
【０１７８】
また本発明によれば、属するネットワークの種別や制御するためのプロトコル等の規格の異なる複数のデバイスに対して共通に使用できる制御命令のインターフェース（ＡＰＩ）により、アプリケーションプログラムから呼び出す制御命令を全てのデバイスに対して共通のものを用意することになり、当該デバイスがどのネットワークに接続されていても、アプリケーションプログラムはネットワークやそのソフトウェアライブラリの仕様を意識しないで制御することが可能になる。
【０１７９】
また、デバイスが予め設定されたデバイス種別の場合は、そのデバイス種別の機能に特化した高レベルな制御をネットワーク種別に依存せずに簡単に行わせることができる。更に、本発明の構成を用いることで、プログラムが有するメモリ領域を節約でき、効率的なプログラムアーキテクチャを実現できる。
【０１８０】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【０１８１】
【図１】本実施形態におけるデバイス制御装置の概要構成の一例を示す図である。
【図２】本実施形態におけるデバイスに含まれるサブデバイスの構成の一例を示す図である。
【図３】本実施形態におけるデバイス制御処理が実現可能なハードウェア構成の一例を示す図である。
【図４】本実施形態におけるデバイス統括管理部の機能構成の一例を示す図である。
【図５】本実施形態における制御中継部の機能構成の一例を示す図である。
【図６】本実施形態における制御中継部の他の機能構成の一例を示す図である。
【図７】デバイス統括管理部をＪａｖａのインターフェースとして設定した一例を示す図である。
【図８】制御中継部を実装する上でのＪａｖaクラスおよびインターフェースの構成の一例を示す図である。
【図９】提示デバイス用の機能別共通制御中継部の動作の一例を示す図である。
【図１０】コンテンツサーバ用の機能別共通制御中継部の動作の一例を示す図である。
【図１１】ＨＩＤ用の機能別共通制御中継部の動作の一例を示す図である。
【図１２】本発明におけるデバイス制御装置を適用した放送受信装置の一例を示す図である。
【符号の説明】
【０１８２】
１０  デバイス制御装置
１１，１０５  アプリケーションプログラム実行部
１２  出力画像生成部
１３  デバイス統括管理部
１４  制御中継部
１５，３１  ネットワーク送受信部
２１  表示装置
２２  通信ネットワーク
２３  デバイス
２４  サブデバイス
３２  アプリケーションプログラム
３３  共通制御中継部
３４  機能別共通制御中継部
４１  入力装置
４２  出力装置
４３  ドライブ装置
４４  補助記憶装置
４５  メモリ装置
４６  ＣＰＵ
４７  ネットワーク接続装置
４８  記録媒体
５１  デバイス管理手段
５２  デバイスリスト提供手段
５３  デバイス検索手段
６１  デバイス属性提供手段
６２  デバイス状態変化通知手段
６３  サブデバイスリスト提供手段
６４  デバイス制御データ入出力手段
１００  放送受信装置
１０１  放送受信部
１０２  蓄積部
１０３  多重分離部
１０４  映像・音声再生部
１０６  出力画像合成部
１１０，１１１  コンテンツ
【図１】
0005011075.tif 000002
【図２】
0005011075.tif 000003
【図３】
0005011075.tif 000004
【図４】
0005011075.tif 000005
【図５】
0005011075.tif 000006
【図６】
0005011075.tif 000007
【図７】
0005011075.tif 000008
【図８】
0005011075.tif 000009
【図９】
0005011075.tif 000010
【図１０】
0005011075.tif 000011
【図１１】
0005011075.tif 000012
【図１２】
0005011075.tif 000013