(57)【要約】【課題】被制御装置の動作を制御するための制御モジュールを複数の候補の中から選択して用いることの可能な、新規かつ改良された制御装置、制御システム、及び制御方法を提供する。【解決手段】制御装置は、被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された上記制御モジュールを取得する取得部１５１と、上記取得部により取得された上記制御モジュールに従って、上記被制御装置の動作を制御する制御部１５５と、を有する。【選択図】図１
2012038032.tif 000002
【特許請求の範囲】
【請求項１】
被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された前記制御モジュールを取得する取得部と、
前記取得部により取得された前記制御モジュールの前記処理手順に従って、前記被制御装置の動作を制御する制御部と、
を備える、制御装置。
【請求項２】
前記複数の制御モジュールの候補から、前記被制御装置の制御に用いる制御モジュールを選択する選択部、
をさらに備える、請求項１に記載の制御装置。
【請求項３】
前記選択部は、前記被制御装置から前記制御モジュールの候補の取得先を示す情報が記載されたリストを取得し、前記リストに基づいて前記被制御装置の制御に用いる制御モジュールを選択する、請求項２に記載の制御装置。
【請求項４】
前記選択部は、前記取得部及び当該選択部の処理手順が記述されたアプリケーションプログラムに記載された前記制御モジュール、及び前記リスト中に示される制御モジュールから、前記被制御装置の制御に用いる制御モジュールを選択する、請求項３に記載の制御装置。
【請求項５】
前記リストは、互いに異なる抽象度の制御機能を定義する複数の前記制御モジュールを含む、請求項３に記載の制御装置。
【請求項６】
前記リストは、各制御モジュールの優先度を示す情報を含み、
前記選択部は、前記優先度に基づいて、前記被制御装置の制御に用いる制御モジュールを選択する、請求項５に記載の制御装置。
【請求項７】
前記選択部は、前記抽象度に基づいて、前記被制御装置の制御に用いる制御モジュールを選択する、請求項５に記載の制御装置。
【請求項８】
前記制御モジュールは、前記被制御装置の動作に関するファンクションを定義し、前記ファンクションを実行させるためのメッセージを、前記被制御装置が解釈できる形式により生成するためのプログラムである、請求項１に記載の制御装置。
【請求項９】
前記アプリケーションプログラムは、ブラウザ上で実行されることにより、当該制御装置を前記取得部及び前記選択部として機能させる、請求項４に記載の制御装置。
【請求項１０】
外部の装置からの制御に従って動作する被制御装置と、
前記被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された前記制御モジュールを取得する取得部と、
前記取得部により取得された前記制御モジュールに従って、前記被制御装置の動作を制御する制御部と、
を有する制御装置と、
を備える制御システム。
【請求項１１】
前記被制御装置は、前記制御モジュールの候補情報を含むリストを記憶する記憶部を備える、請求項１０に記載の制御システム。
【請求項１２】
被制御装置の動作を制御する制御装置の演算処理部が、所定の処理手順を実行することにより実現される制御方法の、前記処理手順が、
前記被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された前記制御モジュールを取得する取得ステップと、
前記取得ステップにより取得された前記制御モジュールに従って、前記被制御装置の動作を制御する制御ステップと、
を含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム、及び制御方法に関する。
【背景技術】
【０００２】
現在、あらゆる装置にネットワーク接続機能が搭載されるようになってきている。たとえば、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）規格、又はＵＰｎＰ規格をベースにしたＤＬＮＡ（Ｄｉｇｉｔａｌ  Ｌｉｖｉｎｇ  Ｎｅｔｗｏｒｋ  Ａｌｌｉａｎｃｅ）に対応したホームネットワーク機器が普及してきている。ＵＰｎＰ／ＤＬＮＡに対応した装置間においては、ある装置（被制御装置）の機能を、他の装置（制御装置）からコマンド制御により利用することができる。例えば、テレビ受像機からＢｌｕｅＲａｙ  Ｄｉｓｃ  Ｒｅｃｏｒｄｅｒに予約録画を行うことができ、また、携帯電話に保存された写真をテレビに表示させることができる。
【０００３】
この制御装置は、被制御装置の動作を制御するための制御プログラムを用いる必要がある。例えばブラウザを利用してＷｅｂアプリケーションとホームネットワーク機器を連携させるためには、ブラウザに制御プロトコルを実装したプラグインモジュールを組み込み、スクリプトを用いて実装したＷｅｂアプリケーションからＤＬＮＡに従った制御コマンドを被制御装置に送信する方法が考えられる。
【０００４】
また、特許文献１には、被制御装置が、接続された制御装置に対して自身の持っている機能、及びコントロール手段を送信し、制御装置がこのコントロール手段をユーザに表示し操作させることにより被制御装置の動作を制御することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４２３５２６３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、いずれの場合であっても、制御インタフェースは固定的であり、自由度に欠けるという問題があった。前者の場合には、新たなデバイスクラスへの対応や新たな制御コマンドの追加のためにプラグインの更新が必要であり、拡張性に乏しいという問題があった。また、後者の場合には、被制御装置から提供されるコントロール手段で規定されたインタフェースしか用いることができないため、ユーザの操作画面が制約されるという問題があった。さらに、Ｗｅｂアプリケーションが直接コントロール手段を使用する場合には、それぞれのＷｅｂアプリケーションに最適な制御インタフェースを選択して利用することができず、Ｗｅｂアプリケーションの複雑化、及び相互接続性の問題が生じやすいという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、被制御装置の動作を制御するための制御モジュールを複数の候補の中から選択して用いることの可能な、新規かつ改良された制御装置、制御システム、及び制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された上記制御モジュールを取得する取得部と、上記取得部により取得された上記制御モジュールに従って、上記被制御装置の動作を制御する制御部と有する制御装置が提供される。
【０００９】
かかる構成によれば、制御装置は、複数の制御モジュールの候補から選択された制御モジュールを用いて被制御装置の動作を制御することができる。これにより、制御装置の機能を提供するプログラムの作成者により、被制御装置の動作を制御するために用いる制御モジュールを選択することができるようになる。
【００１０】
また、上記複数の制御モジュールの候補から、上記被制御装置の制御に用いる制御モジュールを選択する選択部、をさらに有してもよい。
【００１１】
また、上記選択部は、上記被制御装置から上記制御モジュールの候補の取得先を示す情報が記載されたリストを取得し、上記リストに基づいて上記被制御装置の制御に用いる制御モジュールを選択してもよい。また、上記選択部は、上記制御装置から取得したリストに記載されている上記制御モジュールと同機能の制御モジュールを選択してもよい。
【００１２】
また、上記選択部は、上記取得部及び当該選択部の処理手順が記述されたアプリケーションプログラムに記載された上記制御モジュール、及び上記リスト中に示される制御モジュールから、上記被制御装置の制御に用いる制御モジュールを選択してもよい。
【００１３】
また、上記リストは、互いに異なる抽象度の制御機能を定義する複数の上記制御モジュールを含んでもよい。
【００１４】
また、上記リストは、各制御モジュールの優先度を示す情報を含み、上記選択部は、上記優先度に基づいて、上記被制御装置の制御に用いる制御モジュールを選択してもよい。
【００１５】
また、上記選択部は、上記抽象度に基づいて、上記被制御装置の制御に用いる制御モジュールを選択してもよい。
【００１６】
また、上記制御モジュールは、上記被制御装置の動作に関するファンクションを定義し、上記ファンクションを実行させるためのメッセージを、上記被制御装置が解釈できる形式により生成するためのプログラムであってもよい。
【００１７】
また、上記アプリケーションプログラムは、ブラウザ上で実行されることにより、当該制御装置を上記取得部及び上記選択部として機能させるものであってもよい。
【００１８】
また、上記課題を解決するために、本発明の別の観点によれば、外部の装置からの制御に従って動作する被制御装置と、上記被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された上記制御モジュールを取得する取得部と、上記取得部により取得された上記制御モジュールに従って、上記被制御装置の動作を制御する制御部と、を有する制御装置と、を有する制御システムが提供される。
【００１９】
また、上記被制御装置は、上記制御モジュールの候補情報を含むリストを記憶する記憶部を有するものであってよい。
【００２０】
また、上記課題を解決するために、本発明の別の観点によれば、被制御装置の動作を制御する制御装置の演算処理部が、所定の処理手順を実行することにより実現される制御方法の、上記処理手順が、上記被制御装置の制御に関する処理手順が記述された制御モジュールの複数の候補から選択された上記制御モジュールを取得する取得ステップと、上記取得ステップにより取得された上記制御モジュールに従って、上記被制御装置の動作を制御する制御ステップとを含む、制御方法が提供される。
【発明の効果】
【００２１】
以上説明したように本発明によれば、被制御装置の動作を制御するための制御モジュールを複数の候補の中から選択して用いることの可能な、新規かつ改良された制御装置、制御システム、及び制御方法を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係る制御システムの構成図である。
【図２】同実施形態に係る制御装置のソフトウェアスタックを示す説明図である。
【図３】同実施形態に係る被制御装置のソフトウェアスタックを示す説明図である。
【図４】同実施形態に係る制御装置の機能構成を示すブロック図である。
【図５】同実施形態に係る制御システムの動作を示すシーケンス図である。
【図６】ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの一例を示す図である。
【図７】制御モジュールリストの一例を示す説明図である。
【図８】機器発見に用いられるＡＰＩ定義の一例を示す図である。
【図９】Ｗｅｂアプリケーションのサンプルコードを示す説明図である。
【図１０】被制御装置を制御するためのＡＰＩ定義の一例を示す説明図である。
【図１１】制御モジュールが標準ＡＰＩを使用するときのサンプルコードを示す説明図である。
【図１２】インターネットからの機器発見に関する拡張情報の一例を示す図である。
【図１３】テレビ録画サービスに適用した場合の制御装置の動作を示すフローチャートである。
【図１４】図１３の例における表示画面の一例を示す説明図である。
【図１５】図１３の例における表示画面の他の一例を示す説明図である。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２４】
なお、説明は以下の順序で行うものとする。
１．システム構成
２．制御装置の機能構成
３．制御動作
４．制御例（テレビ番組録画）
５．効果の例
【００２５】
＜１．システム構成＞
まず、図１を参照しながら、本発明の一実施形態に係る制御システム１の構成について説明する。図１は、本実施形態に係る制御システム１の構成図である。
【００２６】
制御システム１は、制御装置１００と、被制御装置２００と、サーバ３００とを有し、制御装置１００と被制御装置２００とはホームネットワーク２０に接続されている。また、ホームネットワーク２０はゲートウェイ４０を介してインターネット３０と接続される。また、制御装置１００はモバイルネットワーク１０とも接続され、モバイルネットワーク１０を介してインターネット３０に接続することもできる。
【００２７】
なお、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。例えば、実質的に同一の機能構成を有する複数の構成を、必要に応じてＷｅｂサーバ３００ａ、および制御モジュールサーバ３００ｂのように区別する。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。例えば、Ｗｅｂサーバ３００ａ、および制御モジュールサーバ３００ｂなどを特に区別する必要が無い場合には、単にサーバ３００と称する。
【００２８】
（制御装置：１００）
制御装置１００は、ホームネットワーク２０を介して被制御装置２００を制御する機能を有する装置であり、例えばスマートフォンなどの携帯通信装置である。制御装置１００は、ブラウザが搭載されており、モバイルネットワーク１０を経由してインターネット３０に接続されたサーバ３００と通信することができる。制御装置１００は、ブラウザを用いてサーバ３００から取得したアプリケーションを実行することにより、ユーザに様々なサービスを提供することができる。例えば、テレビ放送のＥＰＧ：Ｅｌｅｃｔｒｏｎｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅ（電子プログラムガイド）を提供するサービスなどが考えられる。
【００２９】
制御装置１００が搭載するブラウザは、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）５以降の規格に対応したブラウザであることが好ましい。ＨＴＭＬ５とは、ウェブ上のドキュメントを記述するためのマークアップ言語であるＨＴＭＬの現時点において最新のバージョンであり、Ｗ３Ｃで現在標準化が進められている。ＨＴＭＬ５規格によれば、ＨＴＭＬ４規格と比較してより高機能、高性能なＷｅｂアプリケーションを実行することのできるアプリケーションプラットフォームを実現することができる。このため、今後ＰＣやスマートフォンに限られず、テレビなどのデジタル家電にもＨＴＭＬ５に対応するブラウザが搭載されて、より多様なＷｅｂアプリケーション、及びＷｅｂサービスが発展していくことが期待されている。
【００３０】
ここで、図２を参照しながら制御装置１００のソフトウェア構成について説明する。図２は、制御装置１００のソフトウェアスタックを示す説明図である。制御装置１００は、一般的なスマートフォンに実装されているソフトウェアに加えて、ＵＰｎＰ規格の機器発見プロトコルであるＳＳＤＰ１０３（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）と、被制御装置接続モジュール１０１とが実装されている。
【００３１】
被制御装置接続モジュール１０１は、ＳＳＤＰ１０３によりＵＰｎＰ機器を発見し、発見したＵＰｎＰ機器とのＨＴＴＰコネクションによるメッセージ通信をJava（登録商標）ＳｃｒｉｐｔＡＰＩを介してＷｅｂアプリケーションに提供する。例えば、制御装置１００は、ＳＳＤＰ１０３の他にもＢｏｕｊｏｕｒ規格などＩＰホームネットワーク対応の機器発見プロトコルを実装してもよい。メッセージ通信のAPIは、XMLHTTPRequestのように指定したHTTPメソッドでメッセージをHTTPボディにて伝送する機能を提供する。UPnPではSOAPメッセージがHTTPにより伝送され、他のホームネットワーク規格でもHTTPを使ってメッセージを送る場合であれば、この方法によって汎用的なメッセージ通信を提供することができる。この汎用的なメッセージ通信のAPでは、セキュリティの問題から機器発見されたUPnPデバイスのみにHTTPコネクションを限定する必要がある。
【００３２】
（被制御装置：２００）
被制御装置２００は、ＵＰｎＰ／ＤＬＮＡに対応したネットワーク接続機能を有する装置である。被制御装置２００は、制御装置１００からの制御に従って動作することができる。被制御装置２００は、例えば、テレビ、家庭用映像処理装置（ＢＤレコーダ、ＤＶＤレコーダ、ビデオデッキなど）、家庭用ゲーム機器、音楽再生装置、又はその他の家電機器などのうちネットワーク接続機能を有する装置である。被制御装置２００は、典型的には、図３に示されるようなソフトウェアスタックにより構成されてもよい。また、被制御装置２００は、制御装置１００が用いる制御モジュールの候補情報を含むリストを記憶する記憶部を有してもよい（図示せず。）。このリストは、後述されるように、例えば、ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの一部として記憶部に記憶される。
【００３３】
（サーバ：３００）
サーバ３００は、インターネット３０に接続されるサーバである。サーバ３００は、例えば後述するWebサーバ３００ａと制御モジュールサーバ３００ｂとを含む。Ｗｅｂサーバ３００ａは、ブラウザ１０５からの要求に応じて、ＨＴＭＬやＪａｖａ（登録商標）Ｓｃｒｉｐｔなどの言語を用いて記述されたＷｅｂアプリケーションを提供する機能を有する。また、制御モジュールサーバ３００ｂは、ブラウザ１０５からの要求に応じて、被制御装置２００を制御するための制御モジュールを提供するサーバである。
【００３４】
＜２．制御装置の機能構成＞
次に、図４を参照しながら、制御装置１００の機能構成について説明する。図４は、制御装置１００の機能構成を示すブロック図である。
【００３５】
制御装置１００は、演算処理部１１０と、通信部１２０と、操作部１３０と、表示部１４０とを主に有する。
【００３６】
（演算処理部１１０）
演算処理部１１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算処理装置により実現され、制御装置１００の全体の動作を制御する機能を有する。演算処理部１１０の有する各機能は、実際には、演算処理部１１０がこれらの機能を実現する処理手順を記述した制御プログラムを記憶したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶媒体から制御プログラムを読出し、そのプログラムを解釈して実行することにより達成される。
【００３７】
演算処理部１１０は、主に表示制御部１５０とホームネットワーク通信制御部１６０との機能を有する。表示制御部１５０は、例えばブラウザの機能であり、本実施形態においては、インターネット３０を介してＷｅｂサーバ３００ａから取得されたＷｅｂアプリケーションプログラムを実行し、生成される画面の表示部１４０への表示を制御する機能を有する。取得部１５１、選択部１５３、及び制御部１５５は、Java（登録商標）Ｓｃｒｉｐｔで記述されたＷｅｂアプリケーションプログラムの一部であり、表示制御部１５０は、Ｗｅｂアプリケーションプログラムの実行により、取得部１５１と、選択部１５３と、制御部１５５としての機能を担う。
【００３８】
取得部１５１は、被制御装置２００の制御に関する処理手順が記述された制御モジュールのプログラムファイルを取得する機能を有する。このとき、取得部１５１は、次に説明する選択部１５３により選択された被制御装置２００の制御に用いる制御モジュールを取得する。ここで、制御モジュールは、被制御装置２００の動作に関するファンクションを定義し、ファンクションを実行させるためのメッセージを被制御装置２００が解釈できる形式により生成するためのプログラムである。
【００３９】
選択部１５３は、被制御装置２００の制御に関する処理手順が記述された複数の制御モジュールの候補から、被制御装置２００の制御に用いる制御モジュールを選択する機能を有する。選択部１５３は、例えば、被制御装置２００から取得された制御モジュールのリストに基づいて、被制御装置２００の制御に用いる制御モジュールを選択する。ここで制御モジュールのリストは、例えばＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの拡張された領域に記述され、制御モジュールを識別する識別子ｉｄと制御モジュールの格納場所を示すＵＲＬ情報などを含む。この制御モジュールのリストは、例えば被制御装置２００の製造メーカ等により予め生成されるが、利用の優先度が高い制御モジュールから順に記載されてもよい。また、選択部１５３は、Ｗｅｂアプリケーションに記載された制御モジュールを選択してもよい。
【００４０】
選択部１５３は、その他あらゆる条件を用いて制御モジュールを選択することができる。例えば、選択部１５３は、対象の制御モジュールが、実行中のＷｅｂアプリケーションにより利用可能なものであるか否か、制御モジュールの抽象度、又は制御モジュールのバグ情報の有無などに基づいて制御モジュールを選択することができる。或いは、選択部１５３は、制御モジュールのリスト中に、適した制御モジュールが存在しない場合には、Ｗｅｂアプリケーション自身に含まれる制御モジュールを選択してもよい。また、制御モジュールのリスト中には、互いに異なる抽象度の制御機能を定義する複数の制御モジュールが含まれてよい。これにより、サービスを提供するＷｅｂアプリケーションの開発者は、サービスに適した抽象度の制御モジュールを選択することができるようになる。また、選択部１５３は、制御モジュールの候補の優先度に基づいて、被制御装置２００の制御に用いる制御モジュールを選択することができる。例えばこの優先度は、リスト中の並び順により提供される情報であってもよい。
【００４１】
制御部１５５は、選択部１５３が選択した制御モジュールに従って、被制御装置２００を制御するネットワークデバイス制御機能を有する。具体的には、制御部１５５は、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔ等により記述された制御プログラムを実行することにより、被制御装置２００の機能を動作させるための制御コマンドを、被制御装置２００が解釈することのできる形式、この場合ＵＰｎＰに従った形式とした制御メッセージを生成する機能を有する。
【００４２】
ホームネットワーク通信制御部１６０は、制御装置１００がホームネットワーク２０を介して被制御装置２００と接続して各種のメッセージを送受信するための機能を提供し、被制御装置接続モジュール１０１の機能に相当する。ホームネットワーク通信制御部１６０は、表示制御部１５０の制御に従って、無線通信部１２０を介して被制御装置２００と接続する。
【００４３】
（通信部１２０）
通信部１２０は、例えば、モバイルネットワーク１０又はホームネットワーク２０に接続するための通信デバイス等で構成された通信インタフェースである。また、通信部１２０は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。この通信部１２０は、被制御装置２００との間でＵＰｎＰ／ＤＬＮＡに従ったメッセージを送受信する。また、通信部１２０は、サーバ３００との間で、表示制御部１５０の制御に従ってデータを送受信する。
【００４４】
（操作部１３０）
操作部１３０は、例えば、ボタン、キーボード、タッチパネル、マウス、マイク、スイッチ、及びレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、演算処理部１１０に出力する入力制御回路などから構成されている。制御装置１００のユーザは、この操作部１３０を用いることにより、例えば表示制御部１５０の提供する表示画面に対する操作入力を行うことができる。
【００４５】
（表示部１４０）
表示部１４０は、表示制御部１５０の制御に従ってユーザに対する表示画面を提供する。例えば、表示部１４０は、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置、及びＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、などの表示装置であってよい。
【００４６】
＜３．制御動作＞
次に、上述してきた制御装置１００による被制御装置２００の制御に関する動作について図５を参照しながら説明する。図５は、制御システムの動作を示すシーケンス図である。
【００４７】
制御装置１００のブラウザ１０５は、ユーザが指定したＵＲＬにＨＴＴＰ  Ｒｅｑｕｅｓｔを発行する（Ｓ１）。そして、このＵＲＬにより示されるＷｅｂサーバ３００ａは、制御装置１００からのＨＴＴＰ  Ｒｅｑｕｅｓｔを受信すると、要求に応じたＷｅｂアプリケーション（ＨＴＭＬ＋Java（登録商標）ｓｃｒｉｐｔ）を制御装置１００のブラウザ１０５に送信する（Ｓ２）。ここで、ブラウザ１０５は、ステップＳ２において受信したＷｅｂアプリケーションを実行する。以下に記載するブラウザ１０５の処理は、ステップＳ２において取得されたＷｅｂアプリケーションの制御に従って行われる。Ｗｅｂアプリケーションは、ブラウザ１０５の標準ＡＰＩを通して、必要なＵＰｎＰ  Ｄｅｖｉｃｅ  Ｃｌａｓｓを指定して機器発見を要求する（Ｓ３）。ここで用いられるＡＰＩの定義の一例が図８に示される。図８は、機器発見に用いられるＡＰＩの一例を示す図である。なお、ここで示されるＡＰＩは、後述のステップＳ８においても用いられる。
【００４８】
被制御装置接続モジュール１０１は、ブラウザ１０５からの要求に応じて、ＵＰｎＰ規格のＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）：Ｍ−ＳｅａｒｃｈメッセージをブロードキャストのＵＤＰを発行することにより指定されたＵＰｎＰデバイスを検索する（Ｓ４）。ステップＳ４のメッセージを受信した被制御装置２００は、指定されたＤｅｖｉｃｅＣｌａｓｓに該当する場合にはＭ−Ｓｅａｒｃｈのレスポンスを制御装置１００に返す（Ｓ５）。なお、図５においては、被制御装置２００は１つのみ示されているが、これに限らない。複数の被制御装置２００に対して、制御装置１００は機器探索のメッセージを送信し、指定されたＤｅｖｉｃｅＣｌａｓｓに該当する被制御装置２００のみが制御装置１００にレスポンスを返す。
【００４９】
制御装置１００の被制御装置接続モジュール１０１は、応答のあったＭ−ＳｅａｒｃｈのメッセージよりＵＰｎＰ  Ｄｅｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＵＲＬを取得する。そして、被制御装置接続モジュール１０１は、取得したＵＲＬに対して、ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの取得要求メッセージを送信する（Ｓ６）。被制御装置２００は、ＨＴＴＰ  ＲｅｓｐｏｎｓｅでＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを返す（Ｓ７）。
【００５０】
ここで、ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの一例が、図６に示される。図６は、被制御装置２００から取得されるＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの一例を示す説明図である。ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎは、例えば被制御装置２００のＤｅｖｉｃｅ  Ｔｙｐｅ、及びＳｅｒｖｉｃｅ  Ｔｙｐｅの情報を含んでよい。また、本実施形態においては、ＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎは、制御モジュールに関する拡張情報と、インターネットからの機器発見に関する拡張情報とを含む。
【００５１】
被制御装置接続モジュール１０１は、取得したＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを保持し、ＡＰＩのｏｎＤｅｖｉｃｅＥｖｅｎｔのＪａｖａ（登録商標）Ｓｃｒｉｐｔのイベントを発生させる。このイベントにより、ブラウザ１０５は、発見したデバイスのＵＰｎＰ  Ｄｅｖｉｃｅ  Ｔｙｐｅ，Ｓｅｒｖｉｃｅ  Ｔｙｐｅ、及び制御モジュールのリストを取得する（Ｓ８）。ここでブラウザ１０５の実行するＷｅｂアプリケーションのサンプルコードが図９に示される。図９は、Ｗｅｂアプリケーションのサンプルコードを示す説明図である。
【００５２】
ここで取得される制御モジュールのリストは、例えば図７に示されるように提供されてもよい。図７は、制御モジュールリストの一例を示す説明図である。この制御モジュールリストは、図６に示されるＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの一部であり、複数の制御モジュール情報７０１、７０３、７０５を含む。それぞれの制御モジュール情報は、制御モジュールを識別する識別ｉｄと、制御モジュールの格納場所を示すＵＲＬなどの格納場所情報を含むことができる。
【００５３】
そして、ブラウザ１０５は、ステップＳ８で取得された制御モジュールリストの中から、適した制御方法を決定し、これに対応する制御モジュールを制御モジュールサーバ３００ｂからダウンロードする。このために、ブラウザ１０５は、制御モジュールサーバ３００ｂに制御モジュールの取得要求メッセージを送信する（Ｓ９）。制御モジュールサーバ３００ｂは、要求に応じて制御モジュールをブラウザ１０５に対して送信する（Ｓ１０）。
【００５４】
ブラウザ１０５で実行されるＷｅｂアプリケーションは、既知の標準ＡＰＩを呼び出して、被制御装置２００との通信を行う。このとき用いられるＡＰＩの一例が、図１０に示される。図１０は、被制御装置と通信するための標準ＡＰＩの定義の一例を示す説明図である。制御モジュールは、ＵＰｎＰ規格で規定のサービスの制御コマンドのＳＯＡＰメッセージを作成して、ＳｅｎｄＭｅｓｓａｇｅ  ＡＰＩ（図１０のopen()，send()などのfunctionで構成される）を通して被制御装置接続モジュール１０１に渡す。この場合、ＳＯＡＰのＨＴＴＰのＰＯＳＴメソッドで送信される必要がある。このため、ＳｅｎｄＭｅｓｓａｇｅのｍｅｔｈｏｄでもｐｏｓｔを指定し、送信先のＵＲＬに、ＳＯＡＰＡｃｔｉｏｎＵＲＬを指定する（Ｓ１１）。ここで、制御モジュールが標準ＡＰＩを使用するときのサンプルコードが図１１に示される。図１１は、制御モジュールが標準ＡＰＩを使用するときのサンプルコードを示す説明図である。
【００５５】
次に、被制御装置接続モジュール１０１は、ＳｅｎｄＭｅｓｓａｇｅのＡＰＩで指定されたＵＲＬ，ｍｅｔｈｏｄ，及びｍｅｓｓａｇｅをＨＴＴＰプロトコルで被制御装置２００に送信する（Ｓ１２）。このとき、制御モジュールは、Ｓｅｒｖｉｃｅ  ｔｙｐｅからＵＰｎＰ  Ｄｅｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのｃｏｎｔｒｏｌｌＵＲＬを特定し、ｂａｓｅＵＲＬと組合わせることによって、ＨＴＴＰメッセージを送るＵＲＬを決定する。Ｍｅｓｓａｇｅは、ＨＴＴＰ  ＲｅｑｕｅｓｔのＭｅｓｓａｇｅ  Ｂｏｄｙに記載する。
【００５６】
被制御装置２００のＳｅｒｖｉｃｅは、受信したＵＲＬから要求されたｓｅｒｖｉｃｅを特定して、ＨＴＴＰ  Ｐｏｓｔ  ＲｅｑｕｅｓｔのＭｅｓｓａｇｅ  ＢｏｄｙのＳＯＡＰアクションを処理した後、ＨＴＴＰ  Ｒｅｓｐｏｎｓｅを制御装置１００に返す（Ｓ１３）。
【００５７】
被制御装置接続モジュール１０１は、被制御装置２００からレスポンスを受信すると、ＯｎＣｏｍｐｌｅｔｅのイベントを発生させて、ＨＴＴＰ  ＲｅｓｐｏｎｓｅのＭｅｓｓｓａｇｅＢｏｄｙをブラウザ１０５に渡す（Ｓ14）。ＭｅｓｓａｇｅＢｏｄｙであるＳＯＡＰレスポンスは、ブラウザ１０５の実行する制御モジュールにて解釈され、制御モジュールのＡＰＩを介して、Ｗｅｂアプリケーションに通知される。
【００５８】
以上説明した図５のステップＳ１〜ステップＳ１４の動作により、ＷｅｂアプリケーションがＤＬＮＡ機器を発見し、その機器の制御に適切な制御モジュールをダウンロードして被制御装置２００を制御する動作について示された。
【００５９】
このとき、ステップＳ９において、Ｗｅｂアプリケーションは、制御モジュールリスト中から、用いる制御モジュールを選択することとしたが、本発明は係る例に限定されない。例えば、適した制御モジュールがない場合には、ＵＰｎＰ  ｄｅｖｉｃｅ  Ｔｙｐｅ、Ｓｅｒｖｉｃｅ  Ｔｙｐｅで規定のプロトコルのメッセージを直接Ｗｅｂアプリケーションが生成してもよい。また、Ｗｅｂアプリケーションは、制御モジュールリストの中の制御モジュールのｉｄから、同機能の代替制御モジュールを既知の場所から取得して使用してもよい。
【００６０】
なお、図１２にインターネットからの機器発見に関する拡張情報が示される。図１２は、インターネットからの機器発見に関する拡張情報の一例を示す図である。ここで示される拡張情報は、制御装置１００がインターネット３０には接続されているが、ホームネットワーク２０には接続されていない状況において、制御装置１００が利用することにより、過去に発見した機器のＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの情報から被制御装置２００に接続するための情報である。
【００６１】
この場合、制御装置１００は、過去に発見した被制御装置２００のＵＰｎＰ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの情報を保持しておくと、ホームネットワーク２０に接続できない環境であると判断した場合には、図５のステップＳ３及びステップＳ４を行わずに、通常のＢａｓｅＵＲＬの代わりにインターネット機器発見のための拡張情報中に含まれる＜ｉｄｄ：Ｘ＿ＵＲＬＢａｓｅ＞のＵＲＬを利用して、ステップＳ５のＤｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ取得を試みることによって、ホームネットワークに接続している被制御装置２００にアクセスすることが可能となる。このときの前提条件としては、ホームネットワークのＧａｔｅｗａｙのグローバルアドレスが＜ｉｄｄ：Ｘ＿ＵＲＬＢａｓｅ＞のＵＲＬに対応するようにダイナミックＤＮＳサービスに設定されており、且つ、ＨＴＴＰコネクションがホームネットワーク機器にフォワードされるようにＧａｔｅｗａｙが設定されていることが必要である。
【００６２】
＜４．制御例（テレビ番組録画）＞
次に、実施形態に係る制御システムを用いたテレビ番組録画サービスの例について図１３〜図１５を参照しながら説明する。図１３は、テレビ録画サービスに適用した場合の本実施形態に係る制御装置１００の動作を示すフローチャートである。また、図１４は、図１３の例における表示画面の一例を示す説明図である。図１５は、図１３の例における表示画面の他の一例を示す説明図である。
【００６３】
なお、図１３のフローチャートは、制御装置１００における動作について示しているが、かかる動作は、図５に示したシーケンスと対応するものであるため、適宜図５を合わせて参照しながら説明する。
【００６４】
まずユーザが、制御装置１００のブラウザ１０５の表示する画面に対して操作を行い、予約録画サービスの起動を要求すると、制御装置１００のブラウザ１０５は、Ｗｅｂサーバ３００ａからＨＴＭＬとJava（登録商標）ＳｃｒｉｐｔからなるＷｅｂアプリケーションを取得して実行する。例えば、図１４に示す番組表画面が表示される。そして、ユーザが、この番組表画面から一の番組を選択して録画予約操作を行うと、ブラウザ１０５の実行するＷｅｂアプリケーションは、Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙを被制御装置接続モジュール１０１に要求する（Ｓ１０１）。このステップＳ１０１の動作は、図５のステップＳ３の要求に相当する。
【００６５】
なお、以下の説明中において、“ブラウザ１０５が”と記載するときには、ブラウザ１０５の実行するＷｅｂアプリケーションが主体となる処理を指すものとする。そして、ブラウザ１０５は、イベントが発生したか否かを判断する（Ｓ１０３）。ここでいうイベントとは、例えば、被制御装置接続モジュール１０１による、要求に応じたデバイスの探索が完了したことを通知するイベント等が挙げられる。
【００６６】
ブラウザ１０５は、イベントの通知を受け取ると、通知の内容に基づいて、デバイスが発見されたか否かを判断する（Ｓ１０５）。要求に応じたデバイス（被制御装置）が発見されない場合、本処理は終了する。一方、要求に応じた被制御装置２００が発見された場合には、ブラウザ１０５は、発見された被制御装置２００のＤｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを取得する（Ｓ１０７）。そして、ブラウザ１０５は、発見された被制御装置２００を一覧表示するリスト画面を表示させる（Ｓ１０９）。例えばこのリスト画面の一例が図１５に示される。
【００６７】
そして、次にブラウザ１０５は、予約を実行するか否かを判断する（Ｓ１１１）。係る判断は、例えば図１５に示される表示画面に対して、録画予約デバイスである被制御装置２００を選択して、予約実行ボタンが押下された場合に予約実行と判断される。このように予約実行操作がなされた場合には、ブラウザ１０５は、被制御装置２００の制御に用いる制御モジュールの選択処理を開始する。
【００６８】
以下、ステップＳ１１３以降には、被制御装置２００の制御に用いる制御モジュールの選択処理の一例が示されているが、本発明は係る例に限定されない。各種の変形例を適用することが可能であることは言うまでもない。
【００６９】
まず、ブラウザ１０５は、Ｄｅｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのモジュールリストからＷｅｂアプリケーションが既知でないものを除く（Ｓ１１３）。そして、このリスト中に高レベルＡＰＩの制御モジュールが含まれているか否かを判断する（Ｓ１１５）。ここで、リスト中に高レベルＡＰＩの制御モジュールが含まれて居ない場合には、Ｗｅｂアプリケーションが直接、被制御装置２００のプロトコル通信をして予約を実行する（Ｓ１１７）。一方、リスト中に高レベルＡＰＩの制御モジュールが含まれている場合には、ブラウザ１０５は、リストからモジュールを選択する（Ｓ１１９）。このとき、ブラウザ１０５は、例えばリスト中の優先度の高いモジュールを選択してもよい。例えば異なる製造メーカの機器間で相互接続性を向上させるためには、低レベルのネットワークプロトコルを用いるよりも、抽象度の高い上位インタフェースで制御する方が好ましい。
【００７０】
そして、ブラウザ１０５は、選択モジュールのバグ情報の有無を判断する（Ｓ１２１）。選択モジュールにバグ情報がない場合には、当該選択モジュールの取得先情報をＤｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎのモジュールリストから取得して、選択された制御モジュールを取得する（Ｓ１２３）。そして、ブラウザ１０５は、取得した制御モジュールを使用して予約実行を行う（Ｓ１２５）。
【００７１】
一方、ステップＳ１２１の判断において、選択モジュールにバグ情報があった場合には、次に、ブラウザ１０５は、選択モジュールの代替モジュールがあるか否かを判断する（Ｓ１２７）。かかる判断は、例えばバグ情報と共に代替モジュールの提供に関する情報（例えば、代替モジュールの取得ＵＲＬ）が提供されている場合には、かかる情報に基づいて判断される。
【００７２】
そして、ステップＳ１２７の判断により代替モジュールがあると判断された場合には、ブラウザ１０５は、既知の代替モジュールのＵＲＬから当該代替モジュールを取得する（Ｓ１２９）。この場合、ステップＳ１２５において、ブラウザ１０５は、取得された代替モジュールをしようして予約を実行する。一方、ステップＳ１２７の判断において、代替モジュールが存在しないと判断された場合には、ブラウザ１０５は、選択モジュールをリストから除く（Ｓ１３１）。そして、ステップＳ１１５の判断に処理は戻る。
【００７３】
＜５．効果の例＞
以上、本発明の一実施形態に係る制御システム１について説明してきたが、かかる制御システム１によれば、汎用性、拡張性、及び相互接続性に優れた制御システムを実現することができる。具体的には、制御装置１００は、被制御装置２００を制御するための制御モジュールを、複数の候補から選択されたものをダウンロードして用いることができる。ここで、かかる選択は、ブラウザ１０５により実行されるＷｅｂアプリケーションにより行われてよい。このとき、Ｗｅｂアプリケーションは、被制御装置２００から提供される制御モジュールのリスト中から、用いる制御モジュールを選択してもよいし、Ｗｅｂアプリケーション自身に記載された制御モジュールの情報を用いて、ダウンロードする制御モジュールを選択してもよい。このため、Ｗｅｂアプリケーション毎に選択した制御モジュールを用いて被制御装置２００の制御を実行することができる。
【００７４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００７５】
例えば、上記実施形態では、番組の予約録画の例を用いて説明したが、本発明はかかる例に限定されない。制御装置１００が被制御装置２００の動作を制御することによって実現することのできるサービスであれば、あらゆるサービスに適用することができる。
【００７６】
また、上記実施形態では、ＤＬＮＡに従った通信により機器制御する方法について説明したが、本発明は、かかる例に限定されない。ＨＴＴＰを用いた通信を行うものであればよい。
【００７７】
尚、本明細書において、フローチャート及びシーケンス図に記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。
【符号の説明】
【００７８】
１００    制御装置
１１０    演算処理部
１２０    通信部
１３０    操作部
１４０    表示部
１５０    表示制御部
１５１    取得部
１５３    選択部
１５５    制御部
１６０    ホームネットワーク通信制御部
２００    被制御部
３００    サーバ
３００ａ  Ｗｅｂサーバ
３００ｂ  制御モジュールサーバ
【図１】
2012038032.tif 000003
【図２】
2012038032.tif 000004
【図３】
2012038032.tif 000005
【図４】
2012038032.tif 000006
【図５】
2012038032.tif 000007
【図６】
2012038032.tif 000008
【図７】
2012038032.tif 000009
【図８】
2012038032.tif 000010
【図９】
2012038032.tif 000011
【図１０】
2012038032.tif 000012
【図１１】
2012038032.tif 000013
【図１２】
2012038032.tif 000014
【図１３】
2012038032.tif 000015
【図１４】
2012038032.tif 000016
【図１５】
2012038032.tif 000017