(57)【要約】【課題】  ＵＰｎＰのコントロールポイントの種類に応じて、動作を変化させることができるネットワークデバイスを提供する。【解決手段】  ＵＰｎＰに対応したネットワークデバイスであって、ネットワーク上のコントロールポイントから送信されるＨＴＴＰメッセージの特徴を解析するＨＴＴＰメッセージ解析部と、コントロールポイントが送信するＨＴＴＰメッセージの特徴を蓄積するメッセージパターン蓄積部と、コントロールポイントからの制御コマンドの特徴を蓄積するコマンドパターン蓄積部と、ネットワークデバイスの制御を行う制御部とを備え、メッセージ解析部は、受信したコントロールポイントからのＨＴＴＰメッセージとメッセージパターン蓄積部が蓄積したメッセージパターンとからコントロールポイントの種類を判別し、制御部は、判別したコントロールポイントの種類とコマンドパターン蓄積部に蓄積されるコマンドパターンとに応じて制御する。【選択図】図２
2010218115.tif 000002
【特許請求の範囲】
【請求項１】
ＵＰｎＰに対応したネットワークデバイスであって、
ネットワーク上のコントロールポイントから送信されるＨＴＴＰメッセージの特徴を解析するＨＴＴＰメッセージ解析部と、
コントロールポイントが送信するＨＴＴＰメッセージの特徴を蓄積するメッセージパターン蓄積部と、
コントロールポイントからの制御コマンドの特徴を蓄積するコマンドパターン蓄積部と、
ネットワークデバイスの制御を行う制御部とを備え、
前記メッセージパターン解析部は、受信したコントロールポイントからのＨＴＴＰメッセージと前記メッセージパターン蓄積部が蓄積したメッセージパターンとからコントロールポイントの種類を判別し、
前記制御部は、判別したコントロールポイントの種類と前記コマンドパターン蓄積部に蓄積されるコマンドパターンとに応じて制御する
ことを特徴とするネットワークデバイス。
【請求項２】
請求項１に記載のネットワークデバイスは、さらにネットワーク上のコントロールポイントから送信されてくるコマンドの特徴を解析するコマンド解析部を備え、
前記ＨＴＴＰメッセージ解析部は、解析結果を新たなメッセージパターンとして前記メッセージパターン蓄積部に記録し、
前記コマンド解析部は、解析結果を新たなコマンドパターンとして前記コマンドパターン蓄積部に記録することを特徴とするネットワークデバイス。
【請求項３】
請求項１に記載のネットワークデバイスであって、前記制御部は、前記メッセージパターンと前記コマンドパターンとを、広域ネットワーク上のデータベースから参照することを特徴とするネットワークデバイス。
【請求項４】
請求項１に記載のネットワークデバイスであって、前記制御部は、前記メッセージパターンと前記コマンドパターンを、広域ネットワーク上のデータベースから取得し、前記メッセージパターン蓄積部と前記コマンドパターン蓄積部とにそれぞれ記録することを特徴とするネットワークデバイス。
【請求項５】
請求項１に記載のネットワークデバイスであって、前記ＨＴＴＰメッセージ解析部は、ＵＰｎＰイベント登録メッセージのＨＴＴＰヘッダを解析することを特徴とするネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されるネットワークデバイスに関し、特に、ユニバーサルプラグアンドプレイ（以下、「ＵＰｎＰ」と呼ぶ。ＵＰｎＰはUPnP Implementers Corporationの商標）プロトコルを用いてコントロールポイントから制御されるネットワークデバイスに関する。
【背景技術】
【０００２】
ＵＰｎＰは、ネットワークに接続されたデバイスを検出および制御するためのプロトコルで、現在はホームネットワーキングの標準技術として幅広く利用されている。ＵＰｎＰのアーキテクチャは、ＵＰｎＰデバイスと、これを制御するコントロールポイントで構成される。
【０００３】
ＵＰｎＰのアーキテクチャにおいて、コントロールポイントは、ＳＳＤＰ（Simple Service Discovery Protocol）により、ＵＰｎＰデバイスを検出し、その後、ＵＰｎＰデバイスのデバイスディスクリプションと、ＵＰｎＰデバイスが提供するサービスのサービスディスクリプションを取得する。
【０００４】
デバイスディスクリプションには、デバイスが提供するサービスの制御サーバのＵＲＬ（Uniform Resource Locator）が含まれる。サービスディスクリプションにはサービスが提供する状態変数やコマンドが記述されている。これにより、コントロールポイントは利用するサービスの制御サーバのＵＲＬにアクセスすることによって、ＵＰｎＰデバイスの状態を把握したり、制御を行うことができる。
【０００５】
一方、コントロールポイントはディスクリプションを持たない。また、ＵＰｎＰデバイスからの検出もできない。つまり、ＵＰｎＰのアーキテクチャでは、能動的に動作するのはコントロールポイントであって、ＵＰｎＰデバイスはコントロールポイントに対して、受動的にしか動作出来ない。
【０００６】
これはＵＰｎＰのアーキテクチャがコントロールポイントを単一のモデルとして扱うように設計されているためで、これによりどのような種類のコントロールポイントからでも制御できるようなＵＰｎＰデバイスの構築が比較的容易になっていると言える。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特関２００６−１３９５８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、個々のコントロールポイントの動作は、完全に同一というわけではなく、ＵＰｎＰデバイスを特定のコントロールポイントから制御した場合に不具合が発生する場合がある。
【０００９】
一例として、ＵＰｎＰ対応のオーディオデバイスの音量を、コントロールポイントから制御する場合を挙げる。
オーディオデバイスにはＵＰｎＰで規定されているレンダリングコントロールサービスが動作しており、レンダリングコントロールサービスは音量制御用のコマンド（ＵＰｎＰで規定されているＳｅｔＶｏｌｕｍｅコマンドに対応しているものとする。サービスディスクリプションには、ボリューム値として、最大値が１００、最小値が０、ステップ値が１であることが記述されているものとする。これは、このオーディオデバイスが、０から１００まで、１刻みで１０１段階のボリューム値をとりうる事を示している。
【００１０】
このオーディオデバイスをコントロールポイントから制御する場合、すべてのコントロールポイントが、０から１００まで、１刻みで１０１段階のボリューム値で、オーディオデバイスにＳｅｔＶｏｌｕｍｅコマンドを送信するのであれば問題は発生しない。しかし、実際には、０から５０まで、１刻みで５１段階のボリューム値でＳｅｔＶｏｌｕｍｅコマンドを送信するというような、異なった動作をするコントロールポイントが存在する。このコントロールポイントからオーディオデバイスのボリューム制御を行った場合、十分に音量を大きく出来ないという問題が発生する。
【００１１】
この例のように、特定のコントロールポイントからの制御においてだけ問題が発生するような場合は、ＵＰｎＰデバイスはコントロールポイントの種類に応じて、動作を変化させる必要がある。しかしながら、前記ＵＰｎＰのアーキテクチャの設計上、ＵＰｎＰデバイスがコントロールポイントの種類を判別することは非常に難しいという問題がある。
【００１２】
本発明は上記の間題点を鑑みなされたもので、ＵＰｎＰのコントロールポイントの種類に応じて、動作を変化させることができるネットワークデバイスを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の一態様におけるネットワークデバイスは、
ＵＰｎＰに対応したネットワークデバイスであって、
ネットワーク上のコントロールポイントから送信されるＨＴＴＰメッセージの特徴を解析するＨＴＴＰメッセージ解析部と、
コントロールポイントが送信するＨＴＴＰメッセージの特徴を蓄積するメッセージパターン蓄積部と、
コントロールポイントからの制御コマンドの特徴を蓄積するコマンドパターン蓄積部と、
ネットワークデバイスの制御を行う制御部とを備え、
前記メッセージ解析部は、受信したコントロールポイントからのＨＴＴＰメッセージと前記メッセージパターン蓄積部が蓄積したメッセージパターンとからコントロールポイントの種類を判別し、
前記制御部は、判別したコントロールポイントの種類と前記コマンドパターン蓄積部に蓄積されるコマンドパターンとに応じて制御する
ことを特徴とする。
【００１４】
コントロールポイントからＨＴＴＰメッセージを受信した場合に、前記ＨＴＴＰメッセージ解析部は、受信したコントロールポイントからのＨＴＴＰメッセージと前記メッセージパターン蓄積部に蓄積されたメッセージパターンとを照合してコントロールポイントの種類を特定し、前記制御部は、前記特定したコントロールポイントの種類と前記コマンドパターン蓄積部に蓄積されたコマンドパターンとを照合し、照合結果に応じて、動作を決定するように構成する。これにより、コントロールポイントの種別に応じて、デバイスの動作を変化させることができる。
【００１５】
ＵＰｎＰに対応したネットワークデバイスにおいては、本発明により、デバイスを制御しようとしているコントロールポイントの種類を特定することができる。これにより、一部のコントロールポイントでの制御に不具合があるような場合でも、そのコントロールポイントからのコマンドに対する動作を変更することで、他のコントロールポイントでの制御動作に影響を与えることなく、不具合を解消できる。
【００１６】
上記構成のネットワークデバイスは、さらにネットワーク上のコントロールポイントから送信されてくるコマンドの特徴を解析するコマンド解析部を備え、
前記ＨＴＴＰメッセージ解析部は、解析結果を新たなメッセージパターンとして前記メッセージパターン蓄積部に記録し、
前記コマンド解析部は、解析結果を新たなコマンドパターンとして前記コマンドパターン蓄積部に記録する。
【００１７】
このようにしてコントロールポイントの動作の学習機能が実現でき、前記メッセージパターン蓄積部および前記コマンドパターン蓄積部に記録されていない種別のコントロールポイントをユーザが使用する場合でも、最適なデバイスの動作を実現できる。
【００１８】
上記構成のネットワークデバイスにおいて、前記制御部は、前記メッセージパターンと前記コマンドパターンとを、広域ネットワーク上のデータベースから参照してもよい。
【００１９】
上記構成のネットワークデバイスにおいて、前記制御部は、前記メッセージパターンと前記コマンドパターンを、広域ネットワーク上のデータベースから取得し、前記メッセージパターン蓄積部と前記コマンドパターン蓄積部とにそれぞれ記録してもよい。
【００２０】
新しいコントロールポイントが世の中に登場した場合や、コントロールポイントのフアームウェアのアップデートが行われたような場合でも、それに応じたデバイスの動作を実現できる。
【００２１】
上記構成のネットワークデバイスにおいて、前記ＨＴＴＰメッセージ解析部は、ＵＰｎＰイベント登録メッセージのＨＴＴＰヘッダを解析してもよい。
【発明の効果】
【００２２】
本発明によれば、ＵＰｎＰのコントロールポイントの種類に応じて、動作を変化させることができるネットワークデバイスが提供される。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施の形態の概略構成を示す。
【図２】図２は、本発明の実施の形態に係るプレーヤの構成を示す。
【図３】図３は、コマンドパターンの例を示す。
【図４】図４は、本発明の実施の形態に係るプレーヤの構成を示す。（実施形態２）
【図５】図５は、本発明の実施の形態に係るプレーヤの構成を示す。（実施形態３）
【発明を実施するための形態】
【００２４】
本発明に係る実施の形態について、以下、図面を参照して詳細に説明する。なお、以下に示す実施の形態は一例であり、これに限定されない。
図１に本実施の形態の概略的な構成を示す。図１において、プレーヤ１００とコントロールポイント２００は、家庭内ＬＡＮ（Local Area Network）等のローカルネットワーク３００に接続されている。ローカルネットワーク３００に接続されたネットワークデバイス（プレーヤ１００を含む）は、ルータ４００によりアドレスが管理されている。
【００２５】
プレーヤ１００は、ＵＰｎＰネットワークデバイスであり、コントロールポイント２００に当該デバイスを制御させるためのサービスが動作している。また、コントロールポイント２００に当該デバイスを検出させたり、サービスの制御サーバのＵＲＬや対応コマンドを通知するために、デバイスディスクリプションと、サービスディスクリプションを提供する機能を有している。
【００２６】
コントロールポイント２００は、ＵＰｎＰプロトコルを用いてローカルネットワーク３００内に存在するＵＰｎＰデバイスの検索、デバイスの情報の取得、デバイスの制御を行う。本実施例において、コントロールポイント２００は、例えばＵＰｎＰ対応アンプの一機能として実装されている。
【００２７】
図２に、本実施の形態に係るプレーヤ１００の構成例を示す。図２に示すプレーヤ１００は、通信部１０１と、ＨＴＴＰメッセージ解析部１０２と、メッセージパターン蓄積部１０４と、コマンドパターン蓄積部１０５と、制御部１０７と、から構成される。
【００２８】
通信部１０１は、ローカルネットワーク３００に接続され、ローカルネットワーク３００に接続される他のネットワークデバイスと通信を行うことができる。
ＨＴＴＰメッセージ解析部１０２は、コントロールポイント２００から通信部１０１を介して送信されてくるＨＴＴＰ（HyperText Transfer Protocol）メッセージを解析する。
メッセージパターン蓄積部１０４は、コントロールポイント２００のＨＴＴＰメッセージの特徴を記録する。
コマンドパターン蓄積部１０５は、コントロールポイント２００が送信するコマンドの特徴を記録する。
制御部１０７は、プレーヤ１００の各種動作の制御を行う。
【００２９】
以下では、コントロールポイント２００を使用して、プレーヤ１００のボリュームを制御する場合を用いて本実施例を説明する。
【００３０】
プレーヤ１００には、ボリュームの制御を行うためのサービスとして、ＵＰｎＰで規定されるレンダリングコントロールサービスが実装される。レンダリングコントロールサービスのサービスディスクリプションには、ボリュームの制御を行うためのコマンド名と、パラメータの種類と、それぞれのパラメータに指定できる値の範囲が記述される。例えばＵＰｎＰで規定されているボリュームの制御を行うためのコマンドはＳｅｔＶｏｌｕｍｅコマンドであり、パラメータとして、最小値、最大値、ステップ値を指定できる。
【００３１】
本実施例では、プレーヤ１００のレンダリングコントロールサービスは、ＳｅｔＶｏｌｕｍｅコマンドのパラメータとして、最小値０、最大値１００、ステップ値１が指定されているものとする。これはプレーヤ１００がボリューム値として、０から１００まで１刻みで１０１段階のボリューム値をとりうる事を示している。
【００３２】
コントロールポイント２００は、ＵＰｎＰデバイスの検索によりプレーヤ１００を検出したあと、レンダリングコントロールサービスのサービスディスクリプションを取得し、ボリュームの制御を行うためのコマンド名と、パラメータの種類と、それぞれのパラメータに指定できる値の範囲を知ることができる。本実施例においては、ボリュームの制御を行うために、ＳｅｔＶｏｌｕｍｅコマンドを使用して、０から１００まで１刻みで１０１段階のボリューム値を指定できる。
【００３３】
これにより、コントロールポイント２００は、ＵＰｎＰで規定されているように、ＨＴＴＰメッセージを用いてコマンドを送信し、プレーヤ１００のボリュームを制御することができる。
【００３４】
しかしながら、コントロールポイント２００は、ＳｅｔＶｏｌｕｍｅコマンドを使用してボリュームの制御を行うときに、ボリューム値として０から１００まで１刻みで１０１段階のボリューム値を指定するとは限らない。例えば、０から５０まで１刻みで５１段階のボリューム値を指定する場合もある。
【００３５】
このことは、ＵＰｎＰの規定では、コントロールポイント２００はサービスディスクリプションに指定されたパラメータ値を使用することを義務付けられていないことや、コントロールポイント２００自体にバグが存在することに起因している。
【００３６】
したがって、このようなＵＰｎＰデバイスが期待するようなコマンドを送信しないコントロールポイント２００により、ＵＰｎＰデバイスの制御が行われると、ボリュームが十分に上がらないといったような不具合が発生することになる。
【００３７】
このような不具合を回避することが可能な、本実施例におけるコントロールポイント２００の種類に応じて動作を変化させるためのプレーヤ１００の動作について説明する。プレーヤ１００は、コントロールポイント２００からボリュームの制御を行うためのコマンドが送信されてくると、ＨＴＴＰメッセージ解析部１０２において、受信したコマンドを解析する。ここでは、ＨＴＴＰヘッダのフィールドの行数や、各フィールドの値や書式や順序、ＨＴＴＰのパーサでは通常無視されるようなスペースや改行コードの有無など、同一のコマンドであってもコントロールポイント２００の種類により微妙な差異があるような箇所が解析される。
【００３８】
メッセージパターン蓄積部１０４に蓄積されている情報は、各種コントロールポイント２００が送信するＨＴＴＰメッセージの、ＨＴＴＰヘッダのフィールドの行数や、各フィールドの値や書式や順序、ＨＴＴＰのパーサでは通常無視されるようなスペースや改行コードの有無など、同一のコマンドであっても、コントロールポイント２００の種類により微妙な差異があるような箇所がデータベース化されて蓄積されている。
【００３９】
これにより、ＨＴＴＰメッセージ解析部１０２は、メッセージパターン蓄積部１０４に蓄積されているメッセージパターンと解析結果を照合することにより、コントロールポイント２００の種類を特定する。
【００４０】
制御部１０７は、ＨＴＴＰメッセージ解析部１０２が特定したコントロールポイント２００の種類と、コマンドパターン蓄積部１０５に蓄積されているコマンドパターンを照合することにより、コントロールポイント２００に最適な動作を決定して制御を行う。
【００４１】
コマンドパターン蓄積部１０５に蓄積されている情報は、各種コントロールポイント２００が送信するコマンドの、送信間隔や、パラメータの値や、エラーレスポンスを返信した場合の動作（リトライをするかどうか）など、同一のコマンドであってもコントロールポイント２００の種類により微妙な差異があるような箇所がデータベース化されて蓄積されている。
【００４２】
図３はコマンドパターン蓄積部１０５に蓄積されている、データベース化されたコマンドパターンの例である。この例はＳｅｔＶｏｌｕｍｅコマンドにおいて、それぞれのコントロールポイント２００が、どのようなパラメータ値でコマンドを送信してくるかを示しており、コントロールポイント２００Ａは最小値０、最大値１００、ステップ値１、でコマンドを送信し、コントロールポイント２００Ｂは最小値０、最大値５０、ステップ値１、でコマンドを送信することを示している。
【００４３】
この例において制御部１０７は、ＨＴＴＰメッセージ解析部１０２が特定したコントロールポイント２００の種類が、コントロールポイント２００Ａである場合は、最大値が１００となるようにボリュームを調節し、コントロールポイント２００Ｂである場合は、最大値が５０となるようにボリュームを調節すればよい。これにより、本実施例では、どちらのコントロールポイント２００Ａ、２００Ｂであっても、十分に音量を上げることができる。
【００４４】
以上説明したように、本実施の形態に係るプレーヤ１００は、コントロールポイント２００から送られたＨＴＴＰメッセージの特徴の違いに基づいてその種類を判別し、コントロールポイント２００の種類に応じて動作を変化させる。従って、プレーヤ１００は、異なる種類のコントロールポイント２００からの指示について、それぞれ異なった動作を行うことができる。
【００４５】
本実施例の第２の形態においては、図４に示すように、ローカルネットワーク３００上のコントロールポイント２００から送信されてくるコマンドの特徴を解析するコマンド解析部１０３をさらに備え、解析結果を新たなコマンドパターンとしてコマンドパターン蓄積部１０５に記録できるように構成されている。
【００４６】
この構成においては、ユーザはまずリモートコントローラ等の入力装置を介して、制御部１０７に学習モードに入るよう指示する。制御部１０７が学習モードに入った後、ユーザはコントロールポイント２００を操作する。ユーザの操作に応じて送信されたＨＴＴＰメッセージおよびコマンドは、ＨＴＴＰメッセージ解析部１０２、コマンド解析部１０３において解析され、解析結果はそれぞれ新規のデータとして、メッセージパターン蓄積部１０４、コマンドパターン蓄積部１０５に蓄積される。
【００４７】
これによりユーザが使用するコントロールポイント２００のメッセージパターン、コマンドパターンがメッセージパターン蓄積部１０４及びコマンドパターン蓄積部１０５に存在しない場合でも、新規にメッセージパターン、コマンドパターンをメッセージパターン蓄積部１０４及びコマンドパターン蓄積部１０５に記録することができる。
【００４８】
本実施例の第３の形態においては、図５に示すように、プレーヤ１００のメーカーが管理するポータルサーバ６００は、広域ネットワーク５００に接続され、メッセージパターンおよびコマンドパターンを蓄積するためのデータベース６０１を有している。プレーヤ１００の制御部１０７は、メッセージパターンとコマンドパターンを、インターネット上のポータルサーバ６００から参照する。
【００４９】
この構成によれば、プレーヤ１００がメッセージパターンとコマンドパターンを蓄積するための記憶装置を具備しない場合や、十分な容量がない場合でも、メッセージパターンとコマンドパターンを、ポータルサーバ６００に接続されるデータベース６０１に保存しておくことで、各種コントロールポイント２００に最適な動作を実現できる。
【００５０】
また、制御部１０７が、メッセージパターンとコマンドパターンを、広域ネットワーク５００上のポータルサーバ６００から取得し、メッセージパターン蓄積部１０４とコマンドパターン蓄積部１０５に記録するようにしてもよい。
【００５１】
このように構成することで、新たなコントロールポイント２００が世の中に登場した場合やコントロールポイント２００のファームウェアのアップデートが行われたような場合でも、プレーヤ１００のメーカー等がそのコントロールポイント２００の解析を行い、メッセージパターンとコマンドパターンを、ポータルサーバ６００が具備するデータベース６０１に保存しておくことで、そのコントロールポイント２００に最適な動作を実現できる。
【００５２】
上述した実施の形態においては、ＨＴＴＰメッセージ解析部１０２は、ＨＴＴＰメッセージの特徴を抽出する際に、ＵＰｎＰで規定されるイベント登録メッセージのＨＴＴＰヘッダを使用するように構成してもよい。
イベント登録メッセージのＨＴＴＰヘッダには、ＵＰｎＰで規定されるＣＡＬＬＢＡＣＫヘッダが必須となっており、当該ヘッダには、ＵＰｎＰデバイスがイベントメッセージをコントロールポイント２００に送信する際のＵＲＬが含まれている。このＵＲＬにはコントロールポイント２００に固有のパス名や、ポート番号が含まれるため、各種コントロールポイント２００の特徴が表出しやすく、ＨＴＴＰメッセージの解析に有用である。
【００５３】
さらにまた、上記実施の形態においては、ボリューム制御を例にして、コントロールポイント２００に応じて動作を変える方法を説明したが、ＵＰｎＰによるデバイスの制御であればコマンドは何であっても適用できる。
さらにまた、本実施例においては、ネットワークデバイスをネットワークメディアプレーヤとして説明したが、ＵＰｎＰに対応したネットワークデバイスであれば何であっても適用できる。
【産業上の利用可能性】
【００５４】
本発明は、ＵＰｎＰ対応ネットワークデバイスに用いて有用である。
【符号の説明】
【００５５】
１００  コントロールポイント
２００  プレーヤ
３００  ローカルネットワーク
４００  ルータ
１０１  通信部１０１
１０２  ＨＴＴＰメッセージ解析部
１０３  コマンド解析部
１０４  メッセージパターン蓄積部
１０５  コマンドパターン蓄積部
１０７  制御部
【図１】
2010218115.tif 000003
【図２】
2010218115.tif 000004
【図３】
2010218115.tif 000005
【図４】
2010218115.tif 000006
【図５】
2010218115.tif 000007