(57)【要約】  リクエスタは、サービスコマンドをマルチキャストする。サービスがサービスコマンドを受信するとき、応答データを発生させることができるサービスコマンドによって指定されるオペレーションを実行する。サービスはそしてユニキャストを介して応答メッセージを送信することができ、リクエスタはユニキャストを介して応答メッセージを受信することができる。応答メッセージは、応答データを含むことができる。応答メッセージはまた、サービスに関する発見情報を含むことができ、それは、リクエスタによるサービスの発見を容易にする情報である。リクエスタは、応答データと発見情報とを処理する。サービスとの更なる対話が所望される場合、リクエスタは、サービスとの接続を確立するために発見情報を使用することができる。
2008542853.tif 000002
【特許請求の範囲】
【請求項１】
サービスを発見し対話するための方法であって、前記方法はリクエスタによって実行され、
サービスコマンドをマルチキャストし、
前記サービスコマンドに呼応して、少なくとも１つのサービスから応答データを受信し、
前記サービスコマンドに呼応して、リクエスタが少なくとも１つのサービスと対話することを可能にする発見情報を受信し、
前記応答データを処理し、
前記発見情報を処理する
ことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、少なくとも１つのサービスは、以前にリクエスタによって発見されていないことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、応答データと発見情報とは、同時に受信されることを特徴とする方法。
【請求項４】
請求項１に記載の方法は、さらに、少なくとも１つのサービスに接続するために前記発見情報を使用することを含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、特定のサービスからの前記発見情報は、
サービスのプロバイダのネットワークアドレスと、
サービスが利用可能であるプロバイダのポートと
を含むことを特徴とする方法。
【請求項６】
請求項１に記載の方法において、特定のサービスからの前記発見情報は、前記サービスから送信されたパケットの転送ヘッダ内に含まれていることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、特定のサービスからの前記応答データが、前記サービスから送信されたパケットのペイロード内に含まれていることを特徴とする方法。
【請求項８】
請求項１に記載の方法において、前記サービスコマンドは、条件関数への呼び出しであることを特徴とする方法。
【請求項９】
請求項１に記載の方法において、少なくとも１つのサービスは、非マルチキャストプロバイダ上に置かれるサービスを含むことを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、少なくとも１つのサービスは、マルチキャストアドレシングを送るように構成されてない少なくとも１つのネットワーク機器によって前記リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービスを含むことを特徴とする方法。
【請求項１１】
請求項１に記載の方法において、サービスコマンドのマルチキャスティングは、ユーザデータグラムプロトコルに従って実行されることを特徴とする方法。
【請求項１２】
請求項１に記載の方法において、前記応答データと前記発見情報は、ユーザデータグラムプロトコルの実現に従ってユニキャストを介して受信すされることを特徴とする方法。
【請求項１３】
サービスを発見し対話するための方法を実行するように構成されるコンピュータシステムであって、
プロセッサと、
前記プロセッサとともに電子通信にあるメモリと、
前記メモリに格納された命令とを備え、
前記命令は方法を実施するために実行可能であり、前記方法は、
サービスコマンドをマルチキャストし、
前記サービスコマンドに呼応して、少なくとも１つのサービスから応答データを受信し、
前記サービスコマンドに呼応して、リクエスタが少なくとも１つのサービスと対話することを可能にする発見情報を受信し、
前記応答データを処理し、
前記発見情報を処理する
ことを特徴とするコンピュータシステム。
【請求項１４】
請求項１３に記載のコンピュータシステムにおいて、少なくとも１つのサービスは、以前にリクエスタによって発見されていないことを特徴とするコンピュータシステム。
【請求項１５】
請求項１３に記載のコンピュータシステムにおいて、応答データと発見情報とは、同時に受信されることを特徴とするコンピュータシステム。
【請求項１６】
請求項１３に記載のコンピュータシステムにおいて、前記方法は、さらに、少なくとも１つのサービスに接続するために前記発見情報を使用することを含むことを特徴とするコンピュータシステム。
【請求項１７】
サービスを発見し対話するための方法を実施するための実行可能命令を含むコンピュータ読み込み可能な媒体であって、前記方法は、
サービスコマンドをマルチキャストし、
前記サービスコマンドに呼応して、少なくとも１つのサービスから応答データを受信し、
前記サービスコマンドに呼応して、リクエスタが少なくとも１つのサービスと対話することを可能にする発見情報を受信し、
前記応答データを処理し、
前記発見情報を処理する
ことを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１８】
請求項１７に記載のコンピュータ読み込み可能な媒体において、少なくとも１つのサービスは、以前にリクエスタによって発見されていないことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１９】
請求項１７に記載のコンピュータ読み込み可能な媒体において、応答データと発見情報とは、同時に受信されることを特徴とするコンピュータ読み取り可能な媒体。
【請求項２０】
請求項１７に記載のコンピュータ読み込み可能な媒体において、前記方法は、さらに、少なくとも１つのサービスに接続するために前記発見情報を使用することを含むことを特徴とするコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的なコンピュータとコンピュータ関連技術に関する。より具体的には、本発明はサービスを発見し対話するためのシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータや通信技術は、急速な歩みで進み続けている。事実、コンピュータや通信技術は、人間の日常の多くの側面に関わる。例えば、今日消費者によって使用される多くの装置は、その装置内部に小型コンピュータを有する。これらの小型コンピュータは、精密さに関して様々なサイズ及び程度のものが提供されている。これらの小型コンピュータは、１つのマイクロコントローラから、全ての機能を持つ完全なコンピュータシステムまで、全てを含んでいる。例えば、これらの小型コンピュータは、マイクロコントローラのようなワンチップコンピュータ、コントローラのような１ボードのタイプのコンピュータ、ＩＢＭTM−ＰＣコンパチブルのような典型的なデスクトップコンピュータなどであっても良い。
【０００３】
コンピュータは、一般的に、そのコンピュータの心臓部に１つ以上のプロセッサを有する。プロセッサは、通常、異なる外部の入力と出力に相互接続されており、特定のコンピュータ又は装置を管理するために機能する。例えば、サーモスタットのプロセッサは、温度設定を選択するために使用されるボタン、温度を変えるための暖炉やエアコン、及び現在の温度をディスプレイ上から読んだり表示したりするための温度センサと接続できる。
【０００４】
多くの電気製品や装置などは、１つ以上の小型コンピュータを含んでいる。例えば、サーモスタット、暖炉、空調システム、冷蔵庫、電話機、タイプライタ、自動車、自動販売機、及び多くの異なるタイプの産業機器は、現在一般的に、小型コンピュータ又はプロセッサをそれらの内部に有する。コンピュータソフトウェアは、これらコンピュータのプロセッサを動かして、いかに所定のタスクを実行するかをプロセッサに指示する。例えば、サーモスタット上で動作するコンピュータソフトウェアは、特定の温度に達している場合エアコンの実行を止めたり、又は必要に応じて暖房機をオンにしたりすることができる。
【０００５】
装置、電気製品、ツールなどの一部であるこれらのタイプの小型コンピュータは、しばしば組込み機器又は組込みシステムと呼ばれる。（用語「組込み機器」と「組込みシステム」は本明細書において互換性を持って使用される）。組込みシステムは、通常、コンピュータハードウェアと、より大きいシステムの一部であるソフトウェアについて言及する。組込みシステムは、キーボード、マウス、及び／又はモニタなどの典型的な入出力装置を有することができない。通常、それぞれの心臓部で組み込まれているシステムは、１つ以上のプロセッサである。
【０００６】
照明システムは組込みシステムを組み込むことができる。照明システムの効力を監視し、制御するために組込みシステムを使用できる。例えば、組込みシステムは、照明システムの中で照明の明るさを薄暗くするための制御を与えることができる。あるいはまた、組込みシステムは、照明の明るさを強めるための制御を与えることができる。組込みシステムは、照明システム内の個々の照明内の特定の照明パターンを起動するための制御を与えることができる。組込みシステムは、照明システム内の個々のスイッチと結合できる。これらの組込みシステムは、個々の照明又は全体の照明システムにパワーアップ、パワーダウンするためのスイッチ対して指示できる。同様に、組込みシステムは、照明システム内の個々の照明と結合できる。それぞれの個々の照明の明るさ又は電源状態は、組込みシステムにより制御できる。
【０００７】
セキュリティシステムもまた、組込みシステムを組み込むことができる。組込みシステムは、セキュリティシステムを備える個人セキュリティセンサを制御するために使用できる。例えば、組込みシステムは、それぞれのセキュリティセンサを自動的に強化する制御を与えることができる。組込みシステムは、それぞれの個人セキュリティセンサと結合できる。例えば、組込みシステムは、動作センサと結合できる。動きが検出された場合、組込みシステムは、自動的に個々の動作センサをパワーアップして、動作センサを作動するための制御を与えることができる。動作センサの作動では、動作センサの中に配置されたＬＥＤパワーアップするための指示を与えたり、動作センサの出力部からアラームを出力したり、等を含むことができる。組込みシステムは、ドアを監視するセンサとも結合できる。組込みシステムは、ドアが開けられるか、又は閉じられるとき、作動するためにドアを監視するセンサに指示を与えることができる。同様に、組込みシステムは、窓を監視するセンサと結合できる。窓が開けられるか、閉じられた場合、組込みシステムは、窓のセンサモニタリングを作動するために指示を与えることができる。
【０００８】
携帯電話などのワイヤレス製品を制御するのにもまた、いくつかの組込みシステムを使用できる。組込みシステムは、携帯電話のＬＥＤディスプレイをパワーアップするための指示を与えることができる。組込みシステムは、携帯電話に関する音声通知をユーザに与えるために、携帯電話内のオーディオスピーカーもまた作動することができる。
【０００９】
家庭電化製品もまた、組込みシステムを組み込むことができる。家電は、従来の台所で通常使用される電気製品、例えば、ストーブ、冷蔵庫、電子レンジなどを含むことができる。家電はまた、ユーザの健康と快適な暮らしに関する電気製品を含むことができる。例えば、マッサージリクライニングシートは、組込みシステムを組み込むことができる。組込みシステムは、椅子の背もたれ部分を、ユーザの好みに従って自動的にもたれさせるための指示を与えることができる。組込みシステムはまた、リクライニングシート内の振動を、ユーザの好みに従って引き起こす椅子内の振動装置を始動するためにも指示を与えることができる。
【００１０】
家庭内で通常備えられる更なる製品もまた、組込みシステムを組み込むことができる。例えば、コンテナータンクを詰め替えるのに使用される水のレベルを制御するために、トイレ内で組込みシステムを使用できる。空気の流出を制御するためにジェットバス内で組込みシステムを使用できる。
【００１１】
上記のように、組込みシステムは、多くの異系統、資源、製品などを監視又は制御するために使用できる。インターネットとワールドワイドウェブの発展で、組込みシステムは、リモートで制御及び／又は監視されることができるように、ますますインターネットに接続されるようになる。ローカルエリアネットワークや広域ネットワークなどを含むコンピュータネットワークに、他の組込みシステムを接続できる。本明細書で用いられるように、用語「コンピュータネットワーク」（又は、単に「ネットワーク」）は、一連のノードが通信パスによって相互接続されるどのようなシステムをも示す。用語「ノード」は、コンピュータネットワークの一部として接続されるどのような装置をも示す。組込みシステムがネットワークノードであっても良い。ネットワークノードの他の実施例は、コンピュータ、携帯情報端末（ＰＤＡ：Personal Digital Assistants）、携帯電話などを含んでいる。
【００１２】
一部の組込みシステムは、コンピュータネットワークを用いて、他のコンピュータ機器に対してデータ及び／又はサービスを提供できる。多くの異種のサービスを提供できる。サービスのいくつかの実施例は、ある場所から温度データを提供したり、監視データを提供したり、気象情報を提供したり、オーディオストリームを供給したり、ビデオストリーム提供したりすることなどを含んでいる。本明細書で用いられるように、「リクエスタ」という用語は、プロバイダからサービスを要求するノードを示す。「プロバイダ」という用語は、リクエスタに対してサービスを提供するノードを示す。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
コンピュータネットワーク内のノードのうちのいくつかは、マルチキャスト技術を使用して、ネットワーク上の他のノードにメッセージを送るように構成されることができる。コンピュータネットワークの文脈中では、「マルチキャスティング」という用語は、ネットワーク上で同時に２つ以上のノードにメッセージを送るプロセスを示す。ブロードキャストがネットワーク上のすべてのノードにメッセージを送ることを意味するのに対して、マルチキャスティングはネットワーク内のノードの特定のグループにメッセージを送ることを意味するため、マルチキャスティングはブロードキャストとは異なる。
【００１４】
様々なプロトコルは、ネットワークで利用可能なサービスをノードが発見することを可能にするために定義されてきた。そのようなプロトコルのいくつかの例は、サービスロケーションプロトコル（ＳＬＰ：Service Location Protocol）、Bonjour（ボンジュール）などを含む。既知の発見プロトコルは、サービス及びそれらと対話する方法に関する情報を発見するために典型的にはマルチキャスト技術を使用する。
【００１５】
既知のアプローチで、サービスを発見するプロセスは、サービスと対話するプロセスと分離されている。ＳＬＰやボンジュールのようなプロトコルは、それらとの対話のためにではなく、発見するサービスのためのメカニズムを提供する。一旦サービスが発見されると、完全に異なるプロトコル（例えばＳＯＡＰ）は、サービスと対話するために使用される。従って、既知のアプローチで、サービスのリクエスタは、典型的にはサービスに対処するための２つのプロトコルスタック、サービス発見用のプロトコルスタック及びサービス対話用の個別のプロトコルスタックを有する。しかしながら、サービス用の２つの別個のプロトコルスタックの実行は、いくつかの埋め込みシステムのような制限された資源（処理能力、メモリなど）を備えたいくつかの機器にとって、難しいかもしれない。
【００１６】
上記を考慮すると、コンピュータネットワーク上のサービスを発見し対話することに関する改良によって、利点を具現できる。コンピュータネットワーク上のサービスのより効率的な発見を容易にするためのいくつかの例のシステム及び方法が、本明細書に開示される。
【課題を解決するための手段】
【００１７】
サービスを発見し対話するためのシステム及び方法が開示される。典型的な実施例において、リクエスタはサービスコマンドをマルチキャストする。サービスコマンドに呼応して、リクエスタは、以前にリクエスタによって発見されていない少なくとも１つのサービスから応答データを受信する。リクエスタはまた、リクエスタがさらに少なくとも１つのサービスと対話することができる発見情報を受信できる。リクエスタは、特定のサービスのための発見情報によって、サービスのプロバイダとの接続（例えばＴＣＰ／ＩＰ接続）を確立することができる。例えば、特定のサービスのための発見情報は、サービスのプロバイダのネットワークアドレスと、サービスが利用可能なプロバイダのポートであっても良い。サービスとの更なる対話が所望される場合、リクエスタは、サービスのプロバイダとの接続を確立するために発見情報を使用できる。
【００１８】
いくつかの実施例では、特定のサービスからの応答データと、リクエスタがさらにサービスと対話することができる発見情報とが、同時に受信できる。例えば、応答データは、サービスから送られるパケットのペイロード内に含まれることができ、発見情報は、パケットの転送ヘッダ内に含まれることができる。
【００１９】
リクエスタは、ユーザデータグラムプロトコルの実現に従って、サービスコマンドをマルチキャストすることができる。応答データと発見情報は、ユーザデータグラムプロトコルの実現に従って、ユニキャストを介して受信できる。
【００２０】
リクエスタは非マルチキャストプロバイダに置かれるサービスから応答データを受信できる。この状況で、発見情報は、リクエスタがマルチキャストプロキシへの接続を確立することを可能にすることができる。マルチキャストプロキシは、リクエスタと非マルチキャストプロバイダとのインターフェースとして役立つことができる。
【００２１】
リクエスタは、マルチキャストアドレシングを送るように構成されない少なくとも１つのネットワークの装置によって、リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービスから応答データを受信できる。
【発明を実施するための最良の形態】
【００２２】
本発明の例示された実施形態は、以下の説明と添付の特許請求の範囲から、添付図面と共により完全に明らかになる。これらの図面について理解することは、例示された実施形態についてのみ描いていることであり、従って、本発明の範囲の限定であることは考慮されない。本発明の例示された実施形態は、更なる特定性で説明され、添付図面を用いて詳しく述べる。
【００２３】
図面を参照しながら本発明の様々な実施例について説明する。同一参照番号は同一か機能上同様の要素を示す。本明細書において一様に説明し図面に示す本発明の実施例は、広く様々な異なる形態でアレンジし設計することができるであろう。それ故、図面で表される本発明の様々に例示された実施形態の以下のより詳細な説明は、本発明のクレームとしての範囲を限定する意図でなく、単に本発明の実施例を示す意図である。
【００２４】
「例」という言葉は、「実施例、実例、又は図示としての役目をすること」を意味するために本明細書において専らに使用される。本明細書に「例」として記述されたどんな実施例も、他の実施例を越えて好ましい又は有利であると理解されるために必ずしも必要ではない。図面に実施例の種々の外観を提示するが、特別に示さなかったといって、比例するように必ずしも図面を作成するというわけではない。
【００２５】
本明細書に開示された実施例の多くの素材を、コンピュータソフトウェア、電子ハードウェア、又は両方の組合せとして、実施することができる。一般的に、明確にハードウェアとソフトウェアのこの互換性を示すために、それらの機能性において種々の装置について説明する。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊なアプリケーションと設計制約条件に依存する。当業者は各特殊アプリケーションのために様々な方法で説明した機能性を実施することができるが、本発明の範囲から逸脱して、そのような実施決定を解釈するべきでない。
【００２６】
説明された機能性がコンピュータソフトウェアとして実施される場合、そのようなソフトウェアは、どのようなタイプの機械命令も含むことができるか、コンピュータ実行可能コードがメモリデバイスの中に位置し及び／又は電子信号としてシステムバス又はネットワーク上を伝送される。本明細書で説明される装置に関連する機能性を実施するソフトウェアは、ただ一つの指示、又は多くの指示を具備することができ、異なるプログラムの中といくつかのメモリデバイスにまたがって、様々な異なるコードセグメントに分散できる。
【００２７】
図１は、一実施例による、サービスを発見し対話するためのシステム１００を示すブロック図である。リクエスタ１０２は、マルチキャストを介してマルチキャストグループへサービスコマンド１０４を送信する。（上記のように、用語「リクエスタ」は、プロバイダからサービスを要求するノードを示す。）サービスコマンド１０４は、オペレーションを実行するサービス１０６への命令である。サービスコマンド１０４の例は、サービス１０６によって提供される関数をコールすること、サービス１０６によって提供される変数を読み込むこと／設定すること、などを含む。
【００２８】
リクエスタ１０２が以前に発見していないサービス１０６が、図１に示されている。サービス１０６は、プロバイダ１１４上に置かれている。
【００２９】
（上記のように、用語「プロバイダ」は、リクエスタに対してサービスを提供するノードを示す。）プロバイダ１１４が、ネットワークへのアクセスをサービス１０６に提供し、事実上、実際にサービスコマンド１０４を受信して応答メッセージ１１０を送信することが理解できる。このプロバイダ１１４は、サービスコマンド１０４が送信されるマルチキャストグループに加わって、このマルチキャストグループに関連するマルチキャストポート上で耳を傾けている。その結果、プロバイダ１１４は、リクエスタ１０２からサービスコマンド１０４を受信し、サービス１０６にそれを転送する。サービス１０６は、サービスコマンド１０４によって指定されたオペレーションを実行する。サービスコマンドは応答データ１０８を発生させることができる。例えば、サービスコマンド１０４が変数を読む命令であれば、応答データ１０８は、変数の値であろう。別の例として、サービスコマンド１０４が関数呼出しであれば、応答データ１０８は、その関数によって返される１つ以上の値であろう。
【００３０】
サービスコマンド１０４によって指定されたオペレーションを実行した後、プロバイダ１１４は、ユニキャストを介して応答メッセージ１１０をリクエスタ１０２に送信する。送信される応答メッセージ１１０は、応答データ１０８を含む。さらに、応答メッセージ１１０はまた、サービス１０６及びプロバイダ１１４に関する発見情報１１２を含む。発見情報１１２は、リクエスタ１０２によってサービス１０６とプロバイダ１１４との発見を容易にする情報である。（上述したように、サービスコマンド１０４をマルチキャストするときには、リクエスタ１０２はまだサービス１０６を発見していない。）例えば、発見情報１１２は、プロバイダ１１４のネットワークアドレスやサービス１０６が利用可能なプロバイダ１１４のポートのような、プロバイダ１１４との接続（例えばＴＣＰ／ＩＰ接続）をリクエスタ１０２が確立することができる情報を含むことができる。プロバイダ１１４が実際にサービスコマンド１０４と応答メッセージ１１０を送受信する一方、サービス１０６によってそれらが同様に受送信されると言える。同様に、発見情報１１２の一部は、プロバイダ１１４と、サービス１０６への一部に関連する。発見情報１１２は、プロバイダ１１４とサービス１０６の両方を同時に発見する。
【００３１】
上述したように、既知のアプローチでは、サービスを発見するプロセスは、サービスと対話するプロセスから分離されている。対照的に、描かれた実施例では、リクエスタ１０２は、同時にサービス１０６を発見し対話する。サービスコマンド１０４をマルチキャストすることに呼応して、リクエスタ１０２は、応答データ１０８と発見情報１１２の両方を同時に受信する。リクエスタ１０２は、応答メッセージ１１０の中に含まれているサービス１０６（例えば、ネットワークアドレスとポート）のための発見情報１１２を処理することによって、サービス１０６を発見する。リクエスタ１０２は、応答メッセージ１１０の中に含まれている応答データ１０８を処理することによって、サービス１０６と対話する。
【００３２】
簡単にするために、図１は、リクエスタ１０２によって送られたサービスコマンド１０４に応答する単一のサービス１０６を示している。しかしながら、複数のサービス１０６がサービスコマンド１０４に応答することもできる。サービスコマンド１０４を受信する各サービス１０６がそれに応じるように、サービスコマンド１０４を設計できる。これで、リクエスタ１０２は特定の領域内ですべてのサービス１０６を発見できる。例えば、サービスコマンド１０４がプリンタサービス１０６からプリンタ名変数を読む命令であれば、サービスコマンド１０４を受信するそれぞれのプリンタサービス１０６は、プリンタ名変数の値を返すことができ、その結果、リクエスタ１０２が特定の領域（例えば、コンピュータネットワーク）内で有効なすべてのプリンタを発見することを可能にする。
【００３３】
複数のサービス１０６をサービスコマンド１０４に対して応答することができるものの、ある状況下では、リクエスタ１０２は特定の領域内のすべての利用可能なサービス１０６を発見することを望まないかもしれない。その代わりに、リクエスタ１０２は、特定のサービス１０６、又は特定のサービス１０６に、単に問い合わせることを望むことができる。例えば、特定の領域内ですべてのプリンタを発見することの代わりに、リクエスタ１０２は、特定のプリンタサービス１０６を発見することを望むことができる（例えば、特定のプリンタにプリントジョブを送信することができるように）。この機能性を供給するためのメカニズムは、以下で述べられる。
【００３４】
ある状況下では、サービス１０６から応答メッセージ１１０を受信した後、リクエスタ１０２がサービス１０６との追加の対話をもつことは望ましいであろう。例えば、機器の温度を返すサービス１０６について考える。機器の温度がある閾値を越えることを示す応答メッセージ１１０をサービス１０６が送信する場合、リクエスタ１０２はそのサービス１０６に対し追加の情報を要求するように構成することができる。
【００３５】
サービス１０６からの応答メッセージ１１０が受信された後、サービス１０６との更なる対話が所望される場合、リクエスタ１０２は、サービス１０６と対話するために、プロバイダ１１４との接続１１６（例えばＴＣＰ／ＩＰ接続）を確立するためにサービス１０６から受信された発見情報１１２を使用することができる。そして、リクエスタ１０２は、この接続１１６を介してさらにサービス１０６と対話できる。
【００３６】
ある実施例では、リクエスタ１０２は、サービスコマンド１０４をマルチキャストするためのトランスポートプロトコルとして、ユーザデータグラムプロトコル（ＵＤＰ）の実現を用いることができる。さらに、サービス１０６は、応答メッセージ１１０をリクエスタ１０２に戻すユニキャストのためのトランスポートプロトコルとして、ＵＤＰを使用することができる。
【００３７】
図２は、図１に表わされた実施例における、リクエスタ１０２のオペレーションを示すフローチャートである。リクエスタ１０２は、サービスコマンド１０４をマルチキャストグループにマルチキャストする（２０２）。リクエスタ１０２が以前に発見していない少なくとも１つのサービス１０６が、リクエスタ１０２からサービスコマンド１０４を受信し応答する。
【００３８】
サービス１０６がサービスコマンド１０４を受信するとき、それはサービスコマンド１０４によって指定されるオペレーションを実行する。サービスコマンドは応答データ１０８を発生させることができる。サービス１０６は次に、送信することができ、リクエスタ１０２はユニキャストを介して応答メッセージ１１０を受信できる（２０４）。応答メッセージ１１０は応答データ１０８を含むことができる。応答メッセージ１１０はまた、サービス１０６に関する発見情報１１２を含むことができる。（それは、リクエスタ１０２でサービス１０６の発見を容易にする情報である）。
【００３９】
リクエスタ１０２は、応答メッセージ１１０内に含まれたプロバイダ１１４（例えば、ネットワークアドレスとポート）のための発見情報１１２を処理することでサービス１０６を発見する（２０６）。リクエスタ１０２は、応答メッセージ１１０内に含まれている応答データ１０８を処理することによりサービス１０６と対話する（２０８）。従って、リクエスタ１０２は、応答メッセージ１１０を受信して処理することによって、同時に、サービス１０６を発見し対話する。
【００４０】
サービス１０６からの応答メッセージ１１０が受け取られていた後、サービス１０６との更なる対話が所望されるなら、リクエスタ１０２は、サービス１０６との接続１１６（例えば、ＴＣＰ／ＩＰ接続）を確立する（２１０）ためにサービス１０６から受信された発見情報１１２を使用することができる。そして、リクエスタ１０２は、この接続１１６を介してさらにサービス１０６と対話できる（２１２）。
【００４１】
図３は、一実施例による、サービスコマンド１０４への応答を含むパケット３１０の構成を示すブロック図である。表現された実施例では、応答パケット３１０の転送ヘッダ３１８は、サービス１０６が割り当てられるプロバイダ１１４のポート３２２と同様に、サービス１０６のプロバイダ１１４のネットワークアドレス３２０を含む。応答パケット３１０が送信されるよう要求するサービス１０６の一部として応答パケット３１０がプロバイダ１１４によって処理されるとき、この発見情報３１２は、転送ヘッダ３１８に含まれている。発見情報３１２が応答パケット３１０の転送ヘッダ３１８に含まれているため、発見情報３１２が応答パケットのペイロード３２４に含まれる必要はない。その結果、応答パケット３１０のペイロード３２４は、応答データ３０８、すなわち、サービス１０６がサービスコマンド１０４に応答してリクエスタ１０２に送信しているデータを含むことができる。
【００４２】
発見をサービスする既知のアプローチでは、リクエスタは、通常はサービスに関する情報を発見するためにサービスとは対話しない。その代わりに、個別の発見サーバは、利用可能なサービスに関する情報を提供できる。さらに、利用可能なサービスに関する情報の要求に対する応答は通常、エフェメラルポート、すなわち、応答を送信する目的のために一時的に割り当てられるポートから送信される。従って、既知のアプローチに従って送られる応答パケットの転送ヘッダは、サービスとの接続を確立する方法に関する情報を提供しない。対照的に、表わされた実施例では、発見情報３１２（すなわち、プロバイダ１１４のネットワークアドレス３２０とポート３２２）は、応答パケット３１０のペイロード３２４にレスポンス・データ３０８の補足余地を残して、応答パケット３１０の転送ヘッダ３１８に含まれている。
【００４３】
上記のように、ある状況の下では、リクエスタは、特定の領域内のすべての利用可能なサービスを発見したいと望まないかもしれない。その代わりに、リクエスタは、特定のサービス、又は特定のサービスのために、単なる問い合わせを望むことができる。例えば、ネットワーク内のすべてのプリンタを発見することの代わりに、リクエスタは、特定のプリンタを発見することを望むことができる（例えば、それに対してプリントジョブを送信することができるように）。
【００４４】
リクエスタが特定の領域内の特定のサービス（又はサービスのセット）を発見することを可能にするために、領域内の各サービスは、１つ以上の条件が満たされている場合にだけ値を返す関数を提供できる。この種類の関数は、本明細書において条件関数と呼ばれる。
【００４５】
図４は、一実施例による、サービス４０６で実行することができる条件関数４２６を示すブロック図である。条件関数４２６は、１つ以上の入力パラメータ４２８、１つ以上の条件評価オペレーション４３０、及び１つ以上の条件リターンオペレーション４３２を含んでいる。入力パラメータ４２８は、条件関数４２６をコールするときに、リクエスタによって提供される値である。条件評価オペレーション４３０は、１つ以上の条件が満たされているか否かを評価するためのオペレーションである。条件評価オペレーション４３０は、入力パラメータ４２８とサービス４０６によって保持される１つ以上の変数４３４とを比較することを含むことができる。条件リターン操作４３２は、適切な条件が満たされている場合に、呼出し側のリクエスタへ値を戻すためのオペレーションである。
【００４６】
図４に示す条件関数４２６の特定の実施例は、これから論じられる。この例では、リクエスタはネットワーク内の特定のプリンタを発見することを望んでいると仮定する。ネットワーク内の各プリンタサービスは、入力パラメータ４２８として所望のプリンタの名前を受け付ける条件関数４２６で構成できる。関数４２６は、所望のプリンタ名とサービス４０６によって保持される維持されるプリンタ名変数４３４とを比較することを含む条件評価オペレーション４３０を実行する。そして、条件リターンオペレーション４３２が実行される。特に、所望のプリンタ名がプリンタ名変数４３４にマッチする場合、関数４２６は、値（例えば、真）を呼出し側のリクエスタに返す。所望のプリンタ名がプリンタ名変数４３４にマッチしない場合、関数４２６は、リクエスタに何も返さない。リクエスタがこの例で述べられた条件関数４２６への呼び出しをマルチキャストすると、所望のプリンタに対応するプリンタサービス４０６だけが応答する。従って、リクエスタは、ネットワーク内の特定のプリンタを発見できる。
【００４７】
上で説明した実施例は、サービスを発見し対話するマルチキャスト技術の使用を含んでいる。しかしながら、いくつかのタイプのノードは、マルチキャストメッセージを処理するためには構成されないかもしれない。例えば、あるノードは、マルチキャストメッセージの受信及び／又は処理ができないかもしれない（例えば、それらはマルチキャストメッセージの処理のための適切なマルチキャストプロトコルスタックを有しない）。さらに、マルチキャストメッセージを処理することができるいくつかのノードは、少なくとも一時的にマルチキャストメッセージを処理しないように構成されるかもしれないし通知されるかもしれない。用語「非マルチキャストノード」は、マルチキャストメッセージを処理することができないため、あるいはマルチキャストメッセージを処理しないように構成又は通知されるため、マルチキャストメッセージを処理しないノードを示すために本明細書にて使用される。ある状況下では、リクエスタは、非マルチキャストノードによって提供されるサービスを発見し対話したいと望むかもしれない。
【００４８】
図５は、一実施例による、非マルチキャストノード上に置かれたサービスを発見し対話するためのシステム５００を示すブロック図である。システム５００は、マルチキャストプロキシ５３６を含んでいる。一般用語では、マルチキャストプロキシ５３６は、マルチキャスト対応のノードと非マルチキャストノードとの間のインターフェースとしての役目をする。非マルチキャストノードは、マルチキャストプロキシ５３６に登録する。マルチキャストプロキシ５３６は、登録された非マルチキャストノードの代理として、マルチキャストメッセージを受信し、登録された非マルチキャストノードにこれらのメッセージを転送する。非マルチキャストノードは、マルチキャストプロキシを介してマルチキャストメッセージに応答することができる。
【００４９】
リクエスタ５０２が、マルチキャストを介してマルチキャストプロキシ５３６を含むマルチキャストグループにサービスコマンド５０４を送信する場合、マルチキャストプロキシ５３６は、サービスコマンド５０４を受信し、要求されたサービス（本明細書で「非マルチキャストプロバイダ」と呼ばれる）を提供する１つ以上の非マルチキャストノードにそれを転送する。表わされた実施例には、マルチキャストプロキシ５３６と非マルチキャストプロバイダ５１４との接続５１７（例えば、ＴＣＰ／ＩＰ接続）が存在する。マルチキャストプロキシ５３６は、接続５１７を介してサービスコマンド５０４を非マルチキャストプロバイダ５１４に転送できる。サービスコマンド５０４によって指定されるオペレーションを行なった後に、サービス５０６は、接続５１７を介して応答メッセージ５１０をマルチキャストプロキシ５３６に送り戻す。応答メッセージ５１０は、応答データ５０８、すなわち、サービス５０６がサービスコマンド５０４に呼応してリクエスタ５０２に送信しているデータを含んでいる。マルチキャストプロキシ５３６は、発見情報５１２（すなわち、マルチキャストプロキシ５３６の発見を容易にする情報５１２）を応答メッセージ５１０に追加し、元のリクエスタ５０２にユニキャストを介して応答メッセージ５１０を送信する。
【００５０】
まさに説明したプロセスで、リクエスタ５０２は非マルチキャストプロバイダ５１４に置かれるサービス５０６を同時に発見し対話することができる。上述したように、リクエスタ５０２は、応答メッセージ５１０内に含まれている応答データ５０８を処理することによって、サービス５０６と対話する。リクエスタ５０２は、応答メッセージ５１０内に含まれているマルチキャストプロキシ５３６用の発見情報５１２を処理することで、サービス５０２とさらに対話する方法を発見する。サービス５０６との更なる対話が所望される場合、リクエスタ５０２は、マルチキャストプロキシ５３６との接続５１６を確立するために発見情報５１２を使用することができる。そして、リクエスタ５０２は、マルチキャストプロキシ５３６を介してサービス５０６とさらに対話することができる。
【００５１】
ある実施例では、マルチキャストプロキシ５３６は、それが受信するマルチキャストメッセージを選択的に転送する選択的マルチキャストプロキシであっても良い。マルチキャストを介してサービスの要求を受信する場合、選択的マルチキャストプロキシが要求されたサービスのプロバイダを特定し、サービスがそのプロバイダに要求することを明確に指示するように、選択的マルチキャストプロキシを構成することができる。言いかえれば、選択的マルチキャストプロキシは、他の非マルチキャストノードのような他のノードではなく、そのプロバイダだけにサービス要求を転送する。選択的マルチキャストプロキシに関する追加の詳細は、「コンピュータネットワーク上の選択的マルチキャストプロキシを提供するためのシステム及び方法（Systems And Methods For Providing A Selective Multicast Proxy On A Computer Network）」というタイトルで、２００５年１２月１６日に出願された、発明者Thomas MilliganとBryant Easthamの、同時係属中である米国特許出願第＿＿＿＿＿＿＿＿号に記載されている。この同時係属中である米国の特許出願全体（それは現在の発明の譲受人に割り当てられる）は、ここに参考文献として援用する。
【００５２】
いくつかの状況下では、リクエスタは、個別のネットワーク内のノードによって提供されるサービスを、発見し対話することを望むことができる。通常、１つ以上のネットワーク機器（例えば、ルータ、ファイアウォールなど）は、プロバイダのネットワークからリクエスタのネットワークを分離する。これらのネットワークの機器のうちのいくつかあるいはすべては、マルチキャストアドレシングを送るためには構成されないかもしれない。上述したように、リクエスタは、サービスコマンドをマルチキャスティングすることによって、サービスを発見し対話するプロセスを起動する。従って、個別のネットワーク内のサービスの発見や対話を容易にするために、ネットワークを介してマルチキャストトラフィックをブリッジするための何らかの機構を提供できる。
【００５３】
図６は、一実施例による、個別のネットワーク内でサービスを発見し対話するためのシステム６００を示すブロック図である。システム６００は、複数のコンピュータネットワーク６４０、すなわち、ネットワーク（Ａ）６４０ａ及びネットワーク（Ｂ）６４０ｂを含んでいる。各ネットワーク６４０は、複数の相互接続形ノードを含んでいる。ネットワーク６４０ａ、６４０ｂ、マルチキャストアドレス指定を送るように構成されていない少なくとも１つのネットワーク機器６４２（例えば、ルータ、ファイアウォールなど）によって分離される。
【００５４】
各ネットワークは、マルチキャストリピータ６４６を含む少なくとも１つのノード６４４を含んでいる。より詳しく述べると、ネットワーク（Ａ）６４０ａは、マルチキャストリピータ６４６ａを含むノード６４４ａを含んでおり、ネットワーク（Ｂ）６４０ｂは、マルチキャストリピータ６４６ｂを含むノード６４４ｂを含んでいる。一般用語では、マルチキャストリピータ６４６は、１つの分離されたネットワーク（例えば、ネットワーク（Ａ）６４０ａ）上で起こるマルチキャストメッセージを、別の分離されたネットワーク（例えば、ネットワーク（Ｂ）６４０ｂ）上のノードに対して繰り返され、そのノードによって応答されるように許可するネットワークブリッジである。これを遂行するために、各マルチキャストリピータ６４６は、他のすべての既知のリピータ６４６（もし、マルチキャストメッセージが既に転送されていなければ）に、受信する各マルチキャストメッセージを転送するように構成される。マルチキャストリピータ６４６ａの構成及びオペレーションに関する追加の詳細は、「ネットワークブリッジをＵＤＰマルチキャストトラフィックに提供するためのシステム及び方法（Systems And Methods For Providing A Network Bridge For UDP Multicast Traffic）」というタイトルで、２００５年１２月２０日に出願された、発明者Thomas MilliganとBryant Easthamの米国特許出願第＿＿＿＿＿＿＿＿号に記載されている。この米国の特許出願全体（それは現在の発明の譲受人に割り当てられる）は、ここに参考文献として援用する。
【００５５】
ネットワーク（Ａ）６４０ａ内のリクエスタ６０２がサービスコマンドをマルチキャストするとき、ネットワーク（Ａ）６４０ａ内のマルチキャストリピータ６４６ａは、サービスコマンドを受信し、ネットワーク（Ｂ）リピータ６４６ｂで確立された接続（例えば、ＴＣＰ／ＩＰ接続）を介してネットワーク（Ｂ）６４０ｂ内のマルチキャストリピータ６４６ｂにそれを送信する。ネットワーク（Ｂ）リピータ６４６ｂは、ネットワーク（Ｂ）６４０ｂ上でサービスコマンドをマルチキャストする（そのポイントでは、ネットワーク（Ｂ）６４０ｂ内のプロバイダ６１４におけるサービス６０６によって受信され、応答される）。
【００５６】
前述のとおり、ネットワーク内のノードは、組込みシステムを含むことができる。本システム及び方法は、組み込みシステムが他のコンピュータ機器にデータ及び／又はサービスを提供するコンピュータネットワーク内で実行することができる。図７は、一実施例に従って構成される組込みシステム７０２で用いることができるハードウェア機器のブロック図である。ＣＰＵ（Central Processing Unit）７０８又はプロセッサは、その他の装置（装置はバス７１０を介してＣＰＵ７０８と結合される）を含んでいる組込みシステム７０２の動作を制御するために提供できる。ＣＰＵ７０８は、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ又は当技術分野で既知のその他の機器として供されることができる。ＣＰＵ７０８は、メモリ内に保存されたプログラムコードに基づいて、論理的及び算術演算を実行する。所定の実施例では、メモリ７１４は、ＣＰＵ７０８を含むオンボードでメモリであっても良い。例えば、マイクロコントローラは、しばしばオンボードメモリの所定の量を含む。
【００５７】
組込みシステム７０２はまた、ネットワークインタフェース７１２も含むことができる。ネットワークインタフェース７１２は、組込みシステム７０２を、ネットワークに接続させる。ネットワークは、ポケベルのネットワーク、セルラネットワーク、グローバルな通信ネットワーク、インターネット、コンピュータネットワーク、電話網であっても良い。ネットワークインタフェース７１２は、標準プロトコルに従って、適用すべきネットワークのために動作する。
【００５８】
組込みシステム７０２はまた、メモリ７１４も含むことができる。メモリ７１４は、一時的なデータを格納するためのＲＡＭ（Random Access Memory）を含むことができる。代わりに又は更に、メモリ７１４は、一定のコードやコンフィギュレーションデータのような、より恒久的なデータを格納するためのＲＯＭ（Read-Only Memory）を含むことができる。メモリ７１４は、ハードディスクドライブなどの磁気記憶装置としてもまた、供されることができる。メモリ７１４は、電子的情報を格納できるどのようなタイプの電子装置であっても良い。
【００５９】
組込みシステム７０２はまた、１つ以上のＣＯＭポート７１６も含むことができる。ＣＯＭポートは他の装置との通信を容易にする。組込みシステム７０２はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、モニタ、スピーカー、プリンタなどのような入出力装置７１８も含むことができる。
【００６０】
もちろん、図７はコンピュータシステム７０１の１つの可能な構造だけを示している。他の種々のアーキテクチャと装置を利用できる。
【００６１】
本システム及び方法は、様々な場面に使用することができる。図８は本システム及び方法を実施することができるシステムの１つの実施例を示している。図８は、照明コントローラシステム８０８を含む照明システム８００の１つの実施例を示すブロック図である。図８の照明システム８００は、家庭内の種々の部屋に組み込むことができる。図示したように、システム８００は、部屋（Ａ）８０２、部屋（Ｂ）８０４、及び部屋（Ｃ）８０６を含んでいる。図８では３つの部屋が示されているが、システム８００は、家庭、居住、又は他の環境の中で、どのような数及び種類の部屋でも導入できる。
【００６２】
照明コントローラシステム８０８は、システム８００内で、追加組込みシステム及び装置を監視し、制御できる。１つの実施例において、部屋（Ａ）８０２と部屋（Ｂ）８０４は、それぞれスイッチ装置８１４、８１８を含んでいる。スイッチ装置８１４、８１８は、セカンダリ組込みシステム８１６、８２０もまた含むことができる。セカンダリ組込みシステム８１６、８２０は、照明コントローラシステム８０８からの指示を受信できる。セカンダリ組込みシステム８１６、８２０は、その後これらの指示を実行できる。その指示は、種々の照明装置８１０、８１２、８２２、８２４の電源を入れたり、電源を切ったりすることを含むことができる。その指示は、種々の照明装置８１０、８１２、８２２、８２４の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。その指示は、種々のパターンの照明装置８１０、８１２、８２２、８２４の明るさをアレンジすることを更に含むことができる。セカンダリ組込みシステム８１６、８２０は、部屋（Ａ）８０２と部屋（Ｂ）８０４にある各照明装置８１０、８１２、８２２、８２４を監視して制御するために、照明コントローラシステム８０８を円滑にする。
【００６３】
照明コントローラシステム８０８はまた、描かれた部屋（Ｃ）８０６にセカンダリ組込みシステム８２８を含む照明装置８２６に直接指示を与えるかもしれない。照明コントローラシステム８０８は、個別の照明装置８２６をパワーアップ又はパワーダウンするために、セカンダリ組込みシステム８２８に指示することができる。同様に、照明コントローラシステム８０８から受信された指示は、個々の照明装置８２６の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。
【００６４】
照明コントローラシステム８０８はまた、システム８００内の個々の照明装置８３０及び８３２に対して、監視し、直接指示を与えることができる。これらの指示は、以前に説明したものと同様の指示を含むことができる。
【００６５】
図９は、本発明の本システム及び方法を実施することができるシステムの追加実施例である。図９は、セキュリティシステム９００を示すブロック図である。描かれた実施例におけるセキュリティシステム９００は、部屋（Ａ）９０２、部屋（Ｂ）９０４、部屋（Ｃ）９０６で実施される。これらの部屋は、家庭又は他の閉じられた環境の範囲にあってもよい。システム９００はまた、部屋（Ａ）９０２、部屋（Ｂ）９０４、及び部屋（Ｃ）９０６がそれぞれ領域又は境界を表す開かれた環境で実施することもできる。
【００６６】
システム９００は、セキュリティコントローラシステム９０８を含んでいる。セキュリティコントローラシステム９０８は、システム９００内の種々の装置を監視し、情報を受信する。例えば、動作センサ９１４、９１８は、セカンダリ組込みシステム９１６を含むことができる。動きがセカンダリ組込みシステム９１６、９２０を介して検出されるとき、動作センサ９１４、９１８は、動きのために即座に空間を監視し、セキュリティコントローラシステム９０８に警告することができる。セキュリティコントローラシステム９０８はまた、システム９００内の種々の装置にも指示を与えることができる。例えば、セキュリティコントローラシステム９０８は、窓センサ９１０、９２２とドアセンサ９１２、９２４を、パワーアップ又はパワーダウンするために、セカンダリ組込みシステム９１６、９２０へ指示を供給できる。１つの実施例において、セカンダリ組込みシステム９１６、９２０は、窓センサ９１０、９２２が窓の動きを検出した場合に、セキュリティコントローラシステム９０８に通知する。同様に、セカンダリ組込みシステム９１６、９２０は、ドアセンサ９１２、９２４がドアの動きを検出した場合に、セキュリティコントローラシステム９０８に通知する。セカンダリ組込みシステム９１６、９２０は、動作センサ９１４、９１８内に設置されたＬＥＤ（図示せず）を作動させるために、動作センサ９１４、９１８に対して指示できる。
【００６７】
セキュリティコントローラシステム９０８はまた、システム９００内の個々の装置を監視し、直接指示を与えることができる。例えば、セキュリティコントローラシステム９０８は、動作センサ９３０又は窓のセンサ９３２を監視し、パワーアップ又はパワーダウンするための指示を与えることができる。セキュリティコントローラシステム９０８はまた、センサ９３０及び９３２内でＬＥＤ（図示せず）又はオーディオの警告通知を作動させるために、動作センサ９３０と窓のセンサ９３２に対して指示もできる
それぞれの個々の装置はまた、セカンダリ組込みシステムを含むことができるシステム９００を備える。例えば、図９はセカンダリ組込みシステム９２８を含むドアセンサ９２６を示している。セキュリティコントローラシステム９０８は、以前説明したのと同じような方法で、セカンダリ組込みシステム９２８を監視し、指示を与えることができる。
【００６８】
図１０は、ホームコントロールシステム１０００の１つの実施例を示すブロック図である。ホームコントロールシステム１０００は、照明システム８００、セキュリティシステム９００などの種々のシステムのモニタリングを容易にするホームコントローラ１００８を含んでいる。ホームコントロールシステム１０００は、ユーザに、１つ以上の組込みシステムを通して、種々の装置とシステムを制御することを可能にしている。１つの実施例では、ホームコントローラシステム１００８は、以前に図８及び図９に関連して説明したのと同じ方法で、情報を監視して提供する。描かれている実施例では、ホームコントローラ１００８は、セカンダリ組込みシステム１０２０を介して暖房装置１０２４に指示を与える。暖房装置１０２４は、居住場所又はオフィスで通常備えられる暖炉又は他の加熱装置を含むことができる。ホームコントローラシステム１００８は、セカンダリ組込みシステム１０２０を介して、暖房装置１０２４をパワーアップ又はパワーダウンするための指示を与えることができる。
【００６９】
同様に、ホームコントローラ１００８は、ホームコントロールシステム１０００内の冷房装置１０３０などの装置を監視して、直接指示を与えることができる。冷房装置１０３０は、居住場所又はオフィスで通常備えられるエアコン又は他の冷却装置を含むことができる。セントラルホームコントローラ１００８は、セントラル組込みシステム１００８によってコントロールされた計測温度に応じてパワーアップ又はパワーダウンするように、冷房装置１０３０に指示できる。ホームコントローラシステム１００８は、以前に図８及び図９に関連して説明したのと同じ方法で機能する。
【００７０】
さまざまな異なった技術と手法のどれかを使用することで、情報と信号を表すことができる。データ、指示、コマンド、情報、信号、ビット、シンボル、及びチップは、例えば、電圧、電流、電磁波、磁場又は粒子、光波又は粒子、又はそれのどのような組合せによって表すことができる上記の説明を通して参照できる。
【００７１】
本明細書に開示された実施例に関して説明した、種々の図示した論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実施することができる。明確にハードウェアとソフトウェアのこの互換性を図示するために、種々の図示された装置、ブロック、モジュール、回路、及びステップは、一般的に上記の機能性に関して説明されている。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊用途と設計制約条件に依存する。当業者は、各特殊用途のための様々な方法における説明された機能性を実施することができるが、本発明の範囲からの逸脱しながら、そのような実施判断を解釈するべきでない。
【００７２】
本明細書に開示された実施例に関して説明された図示した論理ブロック、モジュール、及び回路は、汎用プロセッサ、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array signal）又は他のプログラマブル論理デバイス、離散的なゲート又はトランジスタロジック、離散的なハードウェア機器、又は本明細書に記載された機能を実行するように設計されたどのような組合せでも、実施又は実行できる。汎用プロセッサは、マイクロプロセッサであっても良いが、代替として、プロセッサは、どのような従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態マシンであっても良い。プロセッサ又は、コンピュータ機器の組合せ、例えば、ＤＳＰとマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに関連した１つ以上のマイクロプロセッサ、又はいかなる他のそのような形態の組合せとしても実施することができる。
【００７３】
本明細書に開示された実施例に関して説明された方法又はアルゴリズムのステップは、直接的にハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、又は２つの組合せで、具体化されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、又は当技術分野で既知の記憶媒体のいかなる他の形式にも常駐できる。例示された記憶媒体は、プロセッサが記憶媒体から情報を読み込んで、情報を書書き込むことができるように、プロセッサと結合される。別の方法では、記憶媒体はプロセッサに不可欠であろう。プロセッサと記憶媒体は、ＡＳＩＣに常駐できる。ＡＳＩＣは、利用者端末に常駐できる。別の方法では、プロセッサと記憶媒体は、個別装置として利用者端末に常駐できる。
【００７４】
本明細書に開示された方法は、説明された方法を遂行するために、１つ以上のステップ又は動作を具備する。方法ステップ及び／又は動作は、本発明の範囲から逸脱しないで、互いに交換できる。言い換えれば、実施例の適切な動作のために、ステップ又は動作に特定の順序を要しない限り、特定のステップ及び／又は動作の順序及び／又は行使は、本発明の範囲を逸脱しないで変更できる。
【００７５】
本発明の特定の実施例とアプリケーションを図示して説明したが、本発明が本明細書に開示された正確な形態と装置に限定されないことを理解されるべきである。当分野の当業者にとって明白な種々の修正、変更、及びバリエーションは、本発明の趣旨と範囲から逸脱しないで、本明細書に開示した本発明のアレンジ、操作、及び方法やシステムの詳細を成しうることができるであろう。
【産業上の利用可能性】
【００７６】
本発明は組込みシステムに適用できる。
【図面の簡単な説明】
【００７７】
【図１】一実施例による、サービスを発見し対話するためのシステムを示すブロック図である。
【図２】図１に表わされた実施例における、リクエスタのオペレーションを示すフローチャートである。
【図３】一実施例による、サービスコマンドへの応答を含むパケットの構成を示すブロック図である。
【図４】一実施例による、サービスで実行することができる条件関数を示すブロック図である。
【図５】一実施例による、非マルチキャストノード上に置かれたサービスを発見し対話するためのシステムを示すブロック図である。
【図６】一実施例による、個別のネットワーク内でサービスを発見し対話するためのシステムを示すブロック図である。
【図７】一実施例によって構成される組込みシステムで用いることができるハードウェア機器のブロック図である。
【図８】本システム及び方法を実施することができる照明システムの一例を示す。
【図９】本システム及び方法を実施することができるセキュリティシステムの一例を示す。
【図１０】本システム及び方法を実施することができるホームコントローラシステムの一例を示す。
【手続補正書】
【提出日】平成19年9月25日(2007.9.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロバイダの提供するサービスを発見しそれと対話するための方法であって、前記方法はリクエスタによって実行され、
前記リクエスタは、前記プロバイダのサービス処理部を動作させる命令を含んだサービスコマンドをマルチキャストすることと、
前記サービスコマンドに呼応し、前記サービス処理部が行った動作結果を示す応答データ、及び、当該サービス処理部と対話するための発見情報を、少なくとも１つのプロバイダから受信することと、
前記リクエスタが、前記サービス処理部への命令に対応した前記応答データを受信することによって、前記サービス処理部と対話することと、
前記リクエスタが、前記発見情報を用いて、対話するサービス処理部を提供する前記プロバイダとの接続を確立することと、を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記サービスコマンドをマルチキャストする前には、少なくとも１つのサービス処理部は、以前にリクエスタによって発見されていないことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記応答データと前記発見情報とは、前記プロバイダが、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に受信されることを特徴とする方法。
【請求項４】
請求項３に記載の方法において、前記サービス処理部から送信されたパケットには、特定のサービス処理部からの前記発見情報が、当該パケットの転送ヘッダ内に含まれ、特定のサービス処理部からの前記応答データが、当該パケットのペイロード内に含まれていることを特徴とする方法。
【請求項５】
請求項１に記載の方法において、特定のサービス処理部からの前記発見情報は、
前記サービス処理部のプロバイダのネットワークアドレスと、
前記サービス処理部が利用可能であるプロバイダのポートと
を含むことを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記サービスコマンドは、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、前記リクエスタが、前記サービスコマンドのマルチキャストを、ユーザデータグラムプロトコルに従って実行することを特徴とする方法。
【請求項８】
請求項１に記載の方法において、前記応答データと前記発見情報は、ユーザデータグラムプロトコルの実現に従ってユニキャストを介して受信されることを特徴とする方法。
【請求項９】
リクエスタとネットワークを介して接続され、前記リクエスタがサービスコマンドを送信したことに対して、当該リクエスタに対して応答データを提供するプロバイダにおいて、
前記リクエスタが以前に発見していない少なくとも１つのサービス処理部が、前記リクエスタからマルチキャストされた、前記サービス処理部への命令を含み当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて、前記リクエスタに応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信し、
前記リクエスタによって、前記プロバイダのサービス処理部から送信された応答データを受信させ、更に、当該プロバイダのサービス処理部の発見情報を受信させ、
前記応答データが、前記リクエスタによって、前記プロバイダのサービス処理部と対話を可能とさせるデータであり、前記発見情報が、前記リクエスタによって、前記プロバイダのサービス処理部との間で接続を確立させる情報であること
を特徴とするプロバイダ。
【請求項１０】
請求項９に記載のプロバイダにおいて、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信することを特徴とするプロバイダ。
【請求項１１】
請求項９に記載のプロバイダにおいて、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信することを特徴とするプロバイダ。
【請求項１２】
請求項９に記載のプロバイダにおいて、前記プロバイダのサービス処理部が、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することを特徴とするプロバイダ。
【請求項１３】
リクエスタとプロバイダとがネットワークを介して接続され、前記リクエスタが前記プロバイダにサービスコマンドを送信し、前記プロバイダのサービス処理部が前記リクエスタに対して応答データを提供するシステムにおいて、
前記リクエスタが、前記サービス処理部への命令を含み、当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドをマルチキャストし、
少なくとも１つのサービス処理部が、前記リクエスタからサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて、前記リクエスタに応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信し、
前記リクエスタが、前記プロバイダのサービス処理部から送信された応答データを受信し、更に、当該プロバイダの発見情報を受信し、
前記リクエスタが、受信した応答メッセージを処理して、前記プロバイダのサービス処理部と対話し、
前記リクエスタが、受信した発見情報処理して、前記プロバイダのサービス処理部との間で接続を確立させること
を特徴とするシステム。
【請求項１４】
請求項１３に記載のシステムにおいて、前記サービスコマンドをマルチキャストする前には、少なくとも１つのサービス処理部は、以前にリクエスタによって発見されていないことを特徴とするシステム。
【請求項１５】
請求項１３に記載のシステムにおいて、前記プロバイダが、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信することを特徴とするシステム。
【請求項１６】
請求項１３に記載のシステムにおいて、前記プロバイダが、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信することを特徴とするシステム。
【請求項１７】
請求項１３に記載のシステムにおいて、少なくとも１つのサービス処理部は、マルチキャストされたサービスコマンドを処理しない非マルチキャストプロバイダ上に置かれるサービス処理部を含み、
前記リクエスタが、非マルチキャストプロバイダとの間に設けられたマルチキャストプロキシに前記サービスコマンドをマルチキャストし、
前記マルチキャストプロキシが、当該サービスコマンドを受信し、当該サービスコマンドを、要求されたサービス処理部を提供する１つ以上の非マルチキャストプロバイダに転送し、
前記非マルチキャストプロバイダが、前記サービスコマンドを受信して、前記応答データ及び発見情報を前記マルチキャストプロキシに送信し、
前記マルチキャストプロキシが、前記非マルチキャストプロバイダから送信された前記応答データ及び前記発見情報を受信して、当該応答データ及び前記発見情報を前記リクエスタに転送し、
前記リクエスタが、前記マルチキャストプロキシから送信された前記応答データ及び前記発見情報を受信すること
を特徴とするシステム。
【請求項１８】
請求項１３に記載のシステムにおいて、少なくとも１つのサービス処理部は、マルチキャストアドレスのパケットを転送するように構成されてない少なくとも１つのネットワーク機器によって前記リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービス処理部を含み、
前記リクエスタが、第１のネットワーク内でサービスコマンドをマルチキャストし、
当該第１のネットワーク内のマルチキャストリピータが、当該サービスコマンドを受信して、前記ネットワーク機器を介して、第２のネットワークのマルチキャストリピータにサービスコマンドを送信し、
前記第２のネットワークのマルチキャストリピータが、前記第１のネットワークから送信されたサービスコマンドを第２のネットワーク上でマルチキャストし、
前記第２のネットワーク内のプロバイダにおけるサービス処理部が、マルチキャストされたサービスコマンドを受信し、当該サービスコマンドに対する応答データ及び発見情報を送信すること
を特徴とするシステム。
【請求項１９】
プロバイダのサービス処理部を発見し対話するための方法を実施するための実行可能命令を含むコンピュータ読み込み可能な媒体であって、前記方法は、
前記リクエスタが、前記サービス処理部への命令を含み、当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドをマルチキャストし、
前記サービスコマンドによって命令されたサービス処理部を提供する前記プロバイダが前記サービスコマンドに呼応して送信された応答データを、前記リクエスタが、前記サービスコマンドによって命令した少なくとも１つのサービス処理部から受信し、
前記プロバイダが前記サービスコマンドに呼応して送信された少なくとも１つのサービス処理部と対話することを可能にする発見情報を、前記リクエスタが受信し、
前記リクエスタが、前記サービス処理部への命令に対応した前記応答データを受信することによって、前記サービス処理部と対話し、
前記リクエスタが、前記発見情報を用いて、対話するサービス処理部を提供する前記プロバイダとの接続を確立することを含むこと
を特徴とするコンピュータ読み取り可能な媒体。
【請求項２０】
請求項１９に記載のコンピュータ読み取り可能な媒体において、前記方法は、前記応答データと前記発見情報とは、前記プロバイダが、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に受信されることを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２１】
請求項１９に記載のコンピュータ読み取り可能な媒体において、前記方法は、前記サービス処理部から送信されたパケットには、特定のサービス処理部からの前記発見情報が、当該パケットの転送ヘッダ内に含まれ、特定のサービス処理部からの前記応答データが、当該パケットのペイロード内に含まれていることを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２２】
リクエスタとネットワークを介して接続されたプロバイダが、前記リクエスタがサービスコマンドを送信したことに対して、当該リクエスタに対して応答データを提供する命令を含むコンピュータ読み取り可能な媒体において、
前記リクエスタが以前に発見していない少なくとも１つのサービス処理部が、前記リクエスタからマルチキャストされた、前記サービス処理部への命令を含み当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて、前記リクエスタに応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信する命令を含み、
前記リクエスタによって、前記プロバイダのサービス処理部から送信された応答データを受信させ、更に、当該プロバイダのサービス処理部の発見情報を受信させ、
前記応答データが、前記リクエスタによって、前記プロバイダのサービス処理部と対話を可能とさせるデータであり、前記発見情報が、前記リクエスタによって、前記プロバイダのサービス処理部との間で接続を確立させる情報であること
を特徴とするコンピュータ読み取り可能な媒体。
【請求項２３】
請求項２２に記載のコンピュータ読み取り可能な媒体において、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信する処理を実行させる命令を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２４】
請求項２２に記載のコンピュータ読み取り可能な媒体において、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信する命令を含むことを特徴とするコンピュータ読み取り可能な媒体。
【手続補正書】
【提出日】平成19年12月28日(2007.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロバイダの提供するサービスを発見しそれと対話するための方法であって、前記方法はリクエスタによって実行され、
サービスコマンドをマルチキャストする前には少なくとも１つのサービス処理部が以前にリクエスタによって発見されていない状況にて、前記リクエスタが、前記プロバイダのサービス処理部を動作させる命令を含んだサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドをマルチキャストすることと、
前記プロバイダのサービス処理部が、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記リクエスタが、前記サービス処理部が行った動作結果を示す前記比較結果を含む応答データ、及び、当該サービス処理部と対話するための発見情報を、少なくとも１つのプロバイダから受信することと、
前記リクエスタが、前記サービス処理部への命令に対応した前記応答データを受信することによって、前記サービス処理部と対話することと、
前記リクエスタが、前記発見情報を用いて、対話するサービス処理部を提供する前記プロバイダとの接続を確立することと、を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記応答データと前記発見情報とは、前記プロバイダが、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に受信されることを特徴とする方法。
【請求項３】
請求項２に記載の方法において、前記サービス処理部から送信されたパケットには、特定のサービス処理部からの前記発見情報が、当該パケットの転送ヘッダ内に含まれ、特定のサービス処理部からの前記応答データが、当該パケットのペイロード内に含まれていることを特徴とする方法。
【請求項４】
請求項１に記載の方法において、特定のサービス処理部からの前記発見情報は、
前記サービス処理部のプロバイダのネットワークアドレスと、
前記サービス処理部が利用可能であるプロバイダのポートと
を含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記リクエスタが、前記サービスコマンドのマルチキャストを、ユーザデータグラムプロトコルに従って実行することを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記応答データと前記発見情報は、ユーザデータグラムプロトコルの実現に従ってユニキャストを介して受信されることを特徴とする方法。
【請求項７】
リクエスタとネットワークを介して接続され、前記リクエスタがサービスコマンドを送信したことに対して、当該リクエスタに対して応答データを提供するプロバイダにおいて、
前記リクエスタが以前に発見していない少なくとも１つのサービス処理部が、前記リクエスタからマルチキャストされた、前記サービス処理部への命令を含み当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて前記リクエスタに前記比較結果を含む応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信し、
前記リクエスタによって、前記プロバイダのサービス処理部から送信された応答データを受信させ、更に、当該プロバイダのサービス処理部の発見情報を受信させ、
前記応答データが、前記リクエスタによって、前記プロバイダのサービス処理部と対話を可能とさせるデータであり、前記発見情報が、前記リクエスタによって、前記プロバイダのサービス処理部との間で接続を確立させる情報であること
を特徴とするプロバイダ。
【請求項８】
請求項７に記載のプロバイダにおいて、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信することを特徴とするプロバイダ。
【請求項９】
請求項７に記載のプロバイダにおいて、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信することを特徴とするプロバイダ。
【請求項１０】
リクエスタとプロバイダとがネットワークを介して接続され、前記リクエスタが前記プロバイダにサービスコマンドを送信し、前記プロバイダのサービス処理部が前記リクエスタに対して応答データを提供するシステムにおいて、
サービスコマンドをマルチキャストする前には少なくとも１つのサービス処理部が以前にリクエスタによって発見されていない状況にて、前記リクエスタが、前記サービス処理部への命令を含み、当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドをマルチキャストし、
少なくとも１つのサービス処理部が、前記リクエスタからサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて前記リクエスタに前記比較結果を含む応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信し、
前記リクエスタが、前記プロバイダのサービス処理部から送信された応答データを受信し、更に、当該プロバイダの発見情報を受信し、
前記リクエスタが、受信した応答メッセージを処理して、前記プロバイダのサービス処理部と対話し、
前記リクエスタが、受信した発見情報を処理して、前記プロバイダのサービス処理部との間で接続を確立させること
を特徴とするシステム。
【請求項１１】
請求項１０に記載のシステムにおいて、前記プロバイダが、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信することを特徴とするシステム。
【請求項１２】
請求項１０に記載のシステムにおいて、前記プロバイダが、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信することを特徴とするシステム。
【請求項１３】
請求項１０に記載のシステムにおいて、少なくとも１つのサービス処理部は、マルチキャストされたサービスコマンドを処理しない非マルチキャストプロバイダ上に置かれるサービス処理部を含み、
サービスコマンドをマルチキャストする前には少なくとも１つのサービス処理部が以前にリクエスタによって発見されていない状況にて、前記リクエスタが、非マルチキャストプロバイダとの間に設けられたマルチキャストプロキシに前記サービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドをマルチキャストし、
前記マルチキャストプロキシが、当該サービスコマンドを受信し、当該サービスコマンドを、要求されたサービス処理部を提供する１つ以上の非マルチキャストプロバイダに転送し、
前記非マルチキャストプロバイダが、前記サービスコマンドを受信して、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記比較結果を含む応答データ及び発見情報を前記マルチキャストプロキシに送信し、
前記マルチキャストプロキシが、前記非マルチキャストプロバイダから送信された前記応答データ及び前記発見情報を受信して、当該応答データ及び前記発見情報を前記リクエスタに転送し、
前記リクエスタが、前記マルチキャストプロキシから送信された前記応答データ及び前記発見情報を受信すること
を特徴とするシステム。
【請求項１４】
請求項１０に記載のシステムにおいて、少なくとも１つのサービス処理部は、マルチキャストアドレスのパケットを転送するように構成されてない少なくとも１つのネットワーク機器によって前記リクエスタのネットワークから分離されるネットワーク内のプロバイダに置かれるサービス処理部を含み、
サービスコマンドをマルチキャストする前には少なくとも１つのサービス処理部が以前にリクエスタによって発見されていない状況にて、前記リクエスタが、第１のネットワーク内でサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドをマルチキャストし、
当該第１のネットワーク内のマルチキャストリピータが、当該サービスコマンドを受信して、前記ネットワーク機器を介して、第２のネットワークのマルチキャストリピータにサービスコマンドを送信し、
前記第２のネットワークのマルチキャストリピータが、前記第１のネットワークから送信されたサービスコマンドを第２のネットワーク上でマルチキャストし、
前記第２のネットワーク内のプロバイダにおけるサービス処理部が、マルチキャストされたサービスコマンドを受信し、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記比較結果を含む応答データ及び発見情報を送信すること
を特徴とするシステム。
【請求項１５】
プロバイダのサービス処理部を発見し対話するための方法を実施するための実行可能命令を含むコンピュータ読み込み可能な媒体であって、前記方法は、
サービスコマンドをマルチキャストする前には少なくとも１つのサービス処理部が以前にリクエスタによって発見されていない状況にて、前記リクエスタが、前記サービス処理部への命令を含み、当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドをマルチキャストし、
前記サービスコマンドによって命令されたサービス処理部を有する前記プロバイダが、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記サービスコマンドに呼応して送信された前記比較結果を含む応答データを、前記リクエスタが、前記サービスコマンドによって命令した少なくとも１つのサービス処理部から受信し、
前記プロバイダが前記サービスコマンドに呼応して送信された少なくとも１つのサービス処理部と対話することを可能にする発見情報を、前記リクエスタが受信し、
前記リクエスタが、前記サービス処理部への命令に対応した前記応答データを受信することによって、前記サービス処理部と対話し、
前記リクエスタが、前記発見情報を用いて、対話するサービス処理部を提供する前記プロバイダとの接続を確立することを含むこと
を特徴とするコンピュータ読み取り可能な媒体。
【請求項１６】
請求項１５に記載のコンピュータ読み取り可能な媒体において、前記方法は、前記応答データと前記発見情報とは、前記プロバイダが、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に受信されることを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１７】
請求項１５に記載のコンピュータ読み取り可能な媒体において、前記方法は、前記サービス処理部から送信されたパケットには、特定のサービス処理部からの前記発見情報が、当該パケットの転送ヘッダ内に含まれ、特定のサービス処理部からの前記応答データが、当該パケットのペイロード内に含まれていることを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１８】
リクエスタとネットワークを介して接続されたプロバイダが、前記リクエスタがサービスコマンドを送信したことに対して、当該リクエスタに対して応答データを提供する命令を含むコンピュータ読み取り可能な媒体において、
前記リクエスタが以前に発見していない少なくとも１つのサービス処理部が、前記リクエスタからマルチキャストされた、前記サービス処理部への命令を含み当該命令したサービス処理部の動作によって生成された応答データを発生させるサービスコマンドであって、前記プロバイダのサービス処理部によって、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行させるサービスコマンドを受信し、
前記プロバイダのサービス処理部が、前記リクエスタによって提供された入力パラメータと予め保持しておいた値とを比較する条件評価動作と、前記リクエスタによって提供された入力パラメータと予め保持しておいた値との間に適切な条件が満たされている場合に当該リクエスタに比較結果を返信する動作とを含む条件関数を実行することによって、前記プロバイダのサービス処理部が、前記サービスコマンドに対して応答データを発生させて前記リクエスタに前記比較結果を含む応答データを送信し、更に、当該プロバイダの少なくとも１つのサービス処理部と対話することを可能にする発見情報を送信し、
前記リクエスタによって、前記プロバイダのサービス処理部から送信された応答データを受信させ、更に、当該プロバイダのサービス処理部の発見情報を受信させ、
前記応答データが、前記リクエスタによって、前記プロバイダのサービス処理部と対話を可能とさせるデータであり、前記発見情報が、前記リクエスタによって、前記プロバイダのサービス処理部との間で接続を確立させる情報であること
を特徴とするコンピュータ読み取り可能な媒体。
【請求項１９】
請求項１８に記載のコンピュータ読み取り可能な媒体において、前記応答データと前記発見情報とを、単一の応答メッセージに含めて、前記サービスコマンドを送信したリクエスタに対して、同時に送信する処理を実行させる命令を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２０】
請求項１８に記載のコンピュータ読み取り可能な媒体において、特定のサービス処理部からの前記発見情報をパケットの転送ヘッダ内に含め、特定のサービス処理部の前記応答データを、当該パケットのペイロード内に含めて、前記サービスコマンドを送信したリクエスタに対して送信する命令を含むことを特徴とするコンピュータ読み取り可能な媒体。
【国際調査報告】
2008542853.tif 000003
2008542853.tif 000004