(57)【要約】  バインディングの交渉方法を実施するように構成されたコンピュータデバイスを開示する。このコンピュータデバイスは、プロセッサと、このプロセッサと電子的通信状態にあるメモリーとを含んでいる。第１のバインディングは第１のバインディングＩＤを有している。命令はメモリーに記憶されて、バインディングの交渉方法を実施する。第１のバインディングはネットワーク上で公示される。第２のプロバイダもネットワーク上で第２のバインディングＩＤを持つ第１のバインディングを提供することが気付かれる。すると、コンピュータデバイスは、第１のバインディングを提供すべきかどうか、衝突関数（Ｆ）を評価することによって判定する。この衝突関数の結果に基づいて、第２のバインディングＩＤを持つ第１のバインディングの追加を停止するか、または、第１のバインディングＩＤを持つ第１のバインディングをキャンセルする。【選択図】図１
2008522449.tif 000002
【特許請求の範囲】
【請求項１】
バインディングの交渉方法を実施するように構成されたコンピュータデバイスであって、
プロセッサと、
前記プロセッサと電子的通信状態にあるメモリーと、
第１のバインディングＩＤを持つ第１のバインディングと、
前記メモリーに記憶される命令とを備え、
前記命令は、
ネットワーク上で前記第１のバインディングを公示することと、
第２のプロバイダも前記ネットワーク上で第２のバインディングＩＤを持つ前記第１のバインディングを提供していることを見つけることと、
前記コンピュータデバイスが前記第１のバインディングを提供すべきであるかどうかを、衝突関数（Ｆ）を評価することによって判定することと、
前記衝突関数の結果に基づいて、前記第２のバインディングＩＤを持つ前記第１のバインディングの追加を停止するか、または、前記第１のバインディングＩＤを持つ前記第１のバインディングをキャンセルすることと
を含む方法を実施するように実行可能であるコンピュータデバイス。
【請求項２】
前記第１のバインディングがオブジェクトとインタフェースを備える、請求項１に記載のコンピュータデバイス。
【請求項３】
前記オブジェクトと前記インタフェースを用いることによってサービスがアクセスされる、請求項２に記載のコンピュータデバイス。
【請求項４】
前記衝突関数が、前記第１のバインディングＩＤと前記第２のバインディングＩＤを入力として用いる、請求項１に記載のコンピュータデバイス。
【請求項５】
前記衝突関数がブール代数の演算結果を提供する、請求項４に記載のコンピュータデバイス。
【請求項６】
前記衝突関数（Ｆ）が、Ｆ（Ａ，Ｂ）がＦ（Ｂ，Ａ）と同じではないという条件を満足する、請求項５に記載のコンピュータデバイス。
【請求項７】
前記衝突関数（Ｆ）が、Ｆ（Ａ，Ｂ）＝真であれば、Ｆ（Ｂ，Ａ）＝偽という条件を満足する、請求項５に記載のコンピュータデバイス。
【請求項８】
前記衝突関数（Ｆ）が未満関数を含む、請求項５に記載のコンピュータデバイス。
【請求項９】
前記命令は、
前記ネットワークから、ネットワーク上の第２のバインディングを解除しようとする解除試行を受信することと、
前記コンピュータデバイスが、前記第２のバインディングを提供する能力があるかどうか判定することと、
前記コンピュータデバイスが、前記第２のバインディングを提供することが不可能であれば、前記解除試行を継続させることと、
前記コンピュータデバイスが、前記第２のバインディングを提供することが可能であるが、現時点では前記第２のバインディングを提供していない場合に、前記解除試行を停止して、前記第２のバインディングを前記ネットワークに追加することと
を含む第２の方法を実施するように実行可能である、請求項１に記載のコンピュータデバイス。
【請求項１０】
前記コンピュータデバイスが、三段階完遂方法を実施するように構成されている、請求項１に記載のコンピュータデバイス。
【請求項１１】
前記コンピュータデバイスが、照明制御システムの一部である埋め込み式デバイスである、請求項１に記載のコンピュータデバイス。
【請求項１２】
前記コンピュータデバイスが、セキュリティシステムの一部である埋め込み式デバイスである、請求項１に記載のコンピュータデバイス。
【請求項１３】
前記コンピュータデバイスが、ホームコントローラシステムの一部である埋め込み式デバイスである、請求項１に記載のコンピュータデバイス。
【請求項１４】
２つ以上のプロバイダ間で交渉をバインディングする方法であって、
第１のバインディングＩＤを持つ第１のバインディングを第１のプロバイダによってネットワーク上で公示することと、
第２のプロバイダも前記ネットワーク上で第２のバインディングＩＤを持つ前記第１のバインディングを提供していることを見つけることと、
前記第１のプロバイダが前記第１のバインディングを提供すべきであるかどうかを、衝突関数（Ｆ）を評価することによって判定することと、
前記衝突関数の結果に基づいて、前記第２のバインディングＩＤを持つ前記第１のバインディングの追加を停止するか、または、前記第１のバインディングＩＤを持つ前記第１のバインディングをキャンセルすることと
を含む方法。
【請求項１５】
前記衝突関数がブール代数の演算結果を出力する、請求項１４に記載の方法。
【請求項１６】
前記衝突関数（Ｆ）が、Ｆ（Ａ，Ｂ）がＦ（Ｂ，Ａ）と同じではないという条件を満足する、請求項１５に記載の方法。
【請求項１７】
前記衝突関数（Ｆ）が、Ｆ（Ａ，Ｂ）＝真であれば、Ｆ（Ｂ，Ａ）＝偽という条件を満足する、請求項１５に記載の方法。
【請求項１８】
前記ネットワークから、ネットワーク上の第２のバインディングを解除しようとする解除試行を受信することと、
前記第１のプロバイダが前記第２のバインディングを提供する能力があるかどうか判定することと、
前記第１のプロバイダが、前記第２のバインディングを提供することが不可能であれば、前記解除試行を継続させることと、
前記第１のプロバイダが、前記第２のバインディングを提供することが可能であるが、現時点では前記第２のバインディングを提供していない場合に、前記解除試行を停止して、前記第２のバインディングを前記ネットワークに追加することと
をさらに含む、請求項１４に記載の方法。
【請求項１９】
前記第１のプロバイダと前記第２のプロバイダが、三段階完遂方法を実施して用いる、請求項１８に記載の方法。
【請求項２０】
２つ以上のプロバイダ間で交渉をバインディングする方法を実施する実行可能命令を含むコンピュータ読み取り可能な媒体であって、前記方法が、
第１のバインディングＩＤを持つ第１のバインディングを第１のプロバイダによってネットワーク上で公示することと、
第２のプロバイダも前記ネットワーク上で第２のバインディングＩＤを持つ前記第１のバインディングを提供していることに見つけることと、
前記第１のプロバイダが前記第１のバインディングを提供すべきであるかどうかを、衝突関数（Ｆ）を評価することによって判定することと、
前記衝突関数の結果に基づいて、前記第２のバインディングＩＤを持つ前記第１のバインディングの追加を停止するか、または、前記第１のバインディングＩＤを持つ前記第１のバインディングをキャンセルすることと
を含む、コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはコンピュータとコンピュータ関連技術とに関連する。より詳しくは、本発明は、分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法とに関する。
【背景技術】
【０００２】
コンピュータと通信の技術は急速に進歩し続けている。実際、コンピュータと通信の技術は個人の日常の多くの側面で関わっている。例えば、今日消費者が用いているデバイスの多くが、その中に小型のコンピュータを有している。このような小型コンピュータは、サイズがさまざまであり、精巧さの程度もまちまちである。このような小型コンピュータとしては、１つのマイクロコンピュータから全機能式の完全なコンピュータシステムまであらゆるものが含まれている。例えば、このような小型コンピュータは、マイクロコントローラなどの１チップコンピュータ、コントローラなどの１ボードタイプのコンピュータ、ＩＢＭ−ＰＣ互換機などの一般的なデスクトップコンピュータなどがある。
【０００３】
コンピュータは、一般的に、その心臓部に１つ以上のプロセッサを有している。この（これらの）プロセッサは、さまざまな外部の入出力部に相互接続されて、特定のコンピュータやデバイスを管理するように機能している。例えば、サーモスタット中のプロセッサは、温度設定値を選択するためのボタンに接続されたり、暖炉や空調装置に接続されて温度を変更したり、温度センサーに接続されて、現時点での温度を読み取ってディスプレイ上に表示したりする。
【０００４】
多くの電化製品やデバイスなどに、１つ以上の小型コンピュータが含まれている。例えば、サーモスタット、暖炉、空調システム、冷蔵庫、電話、タイプライタ、自動車、自動販売機および多くのさまざまなタイプの産業装置では、今日その内部に小型コンピュータ、すなわちプロセッサを含んでいるのが一般的である。コンピュータソフトウエアが、このようなコンピュータのプロセッサを実行して、あるタスクをどのように実行するかをプロセッサに指示している。例えば、コンピュータソフトウエアがサーモスタット上で実行されることによって、空調装置が、ある特定の温度に達したときに動作を停止させ、必要なときにヒータをオンしたりさせる。
【０００５】
デバイスや、電化製品や、ツールなどの一部であるこのようなタイプの小型コンピュータは、しばしば埋め込み式システムと呼ばれる。「埋め込み式システム」という用語は一般的には、大型システムの一部であるコンピュータハードウエアとソフトウエアのことである。埋め込み式システムは、キーボード、マウスおよび／またはモニターなどの一般的な入／出力装置を有しない。通常は、それぞれの埋め込み式システムの心臓部には、１つ以上のプロセッサがある。
【０００６】
照明システムは埋め込み式システムを組み込んでいる。この埋め込み式システムは、照明システムの効果を監視して制御するために用いることができる。例えば、埋め込み式システムは、照明システム内部のライトの明るさを落とすように制御したりする。また、埋め込み式システムはライトの明るさを増すように制御したりする。埋め込み式システムは、照明システム内部の個々のライトで特定の照明パターンを始動するように制御する。埋め込み式システムは照明システム内の個々のスイッチに連結されている。このような埋め込み式システムは、これらスイッチに対して、個々のライトや照明システム全体の電源を入れたり落としたりするように指示する。同様に、埋め込み式システムは、照明システム内の個々のライトに連結されたりする。個々のライトそれぞれの明るさや電源状態は、埋め込み式システムによって制御されている。
【０００７】
セキュリティシステムもまた、埋め込み式システムを内蔵している。この埋め込み式システムは、このセキュリティシステムを備える個々のセキュリティセンサーを制御するために用いられる。例えば、埋め込み式システムは、各セキュリティセンサーの電源を自動的に入れるように制御する。埋め込み式システムは個々のセキュリティセンサーそれぞれに連結されている。例えば、埋め込み式システムは、動きセンサーに連結されている。この埋め込み式システムは、個々の動きセンサーの電源を入れて、動きが検出されると動きセンサーを起動するように制御する。動きセンサーを起動する動作には、動きセンサー内に置かれたＬＥＤの電源を入れる命令や、動きセンサーの出力ポートから警報を出力する命令や、類似の命令を提供する動作が含まれる。埋め込み式システムはまた、ドアを監視しているセンサーに連結されている。埋め込み式システムは、ドアを監視しているセンサーに命令を出力して、ドアが開閉する際に起動するようにする。同様に、埋め込み式システムは窓を監視しているセンサーに連結されている。埋め込み式システムは、窓が開閉する際に窓を監視しているセンサーを起動する命令を提供する。
【０００８】
携帯電話などの無線製品を制御するために使用されるような埋め込み式システムも存在する。このような埋め込み式システムは、携帯電話のＬＥＤディスプレイの電源を入れる命令を提供する。この埋め込み式システムはまた、携帯電話内部の音声スピーカを起動して、携帯電話に関連する音声通知をユーザに提供する。
【０００９】
家庭電化製品もまた、埋め込み式システムを内蔵している。家庭電化製品には、一般的に従来の台所で用いられる電化製品、例えば、ストーブ、冷蔵庫、電子レンジなどが含まれる。家庭電化製品にはまた、ユーザの健康や快適な暮らしに関連する機器を含む。例えば、マッサージ用リクライニングチェアは、埋め込み式システムを内蔵している。この埋め込み式システムは、ユーザの好みにしたがってチェアの背もたれを自動的にリクライニングする命令を提供する。この埋め込み式システムはまた、チェア内部の振動部品を始動させる命令を出力して、ユーザの好みにしたがってリクライニングチェア内で振動を引き起こす。
【００１０】
これ以外にも家庭で一般に見受けられる製品でも、埋め込み式システムが内蔵されている。例えば、トイレで用いられている埋め込み式システムは、容器のタンクを満たすために用いられる水の水位を制御する。埋め込み式システムは、ジャグジー式浴槽内部で、空気の流出量を制御するために用いられている。
【００１１】
すでに述べたように、埋め込み式システムは、多くのさまざまなシステムや、リソースや、製品などを監視したり制御したりするために用いられている。インターネットとＷＷＷの成長に伴って、埋め込み式システムはますますインターネットに接続され、遠隔監視／制御が可能となっている。他にも、ローカルエリアネットワークや、ワイドエリアネットワークなどを含むコンピュータネットワークに接続されている埋め込みシステムがある。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
一部の埋め込み式システムでは、コンピュータネットワークを用いて他のコンピュータデバイスにデータおよび／またはサービスを提供している。また、コンピュータネットワークを用いて他のコンピュータデバイスにデータおよび／またはサービスを提供している一般的なコンピュータやコンピュータデバイスもある。ネットワークには多くのプロバイダが存在する。時として、プロバイダは失敗することがあるが、この場合、プロバイダが提供中のデータおよび／またはサービスも失敗しかねないことを意味する。コンピュータネットワーク上でフェイルオーバーを取り扱うシステムと方法が提供されればその恩典が実感されるであろう。
【課題を解決するための手段】
【００１３】
バインディングの交渉方法を実施するように構成されたコンピュータデバイスを開示する。このコンピュータデバイスは、プロセッサと、このプロセッサと電子的に通信しているメモリーとを含んでいる。第１のバインディングは、第１のバインディングＩＤを有している。命令をこのメモリーに記憶しておいて、バインディングの交渉方法を実施する。この第１のバインディングはネットワーク上で公示される。第２のプロバイダもネットワーク上で第１のバインディングに第２のバインディングＩＤを提供していることが気付かれる。次に、コンピュータデバイスは、衝突関数（Ｆ）を評価することによって第１のバインディングを提供すべきであるかどうか決定する。衝突関数の結果に基づいて、第２のバインディングＩＤを持つ第１のバインディングの追加が停止されるか、または、第１のバインディングＩＤを持つ第１のバインディングがキャンセルされる。
【００１４】
第１のバインディングは、オブジェクトとインタフェースを含んでいる。サービスは、このオブジェクトとこのインタフェースを使用してアクセスされる。
【００１５】
一部の実施形態では、衝突関数は、第１のバインディングＩＤと第２のバインディングＩＤを入力として用いて、ブール演算結果を出力している。さらに、衝突関数（Ｆ）が、Ｆ（Ａ，Ｂ）がＦ（Ｂ，Ａ）とは同じではないという条件を満足し、したがって、Ｆ（Ａ，Ｂ）が真であれば、Ｆ（Ｂ，Ａ）は偽であるという条件を（Ｆ）が満足させる。ある実施形態では、衝突関数（Ｆ）は未満関数を含んでいる。
【００１６】
命令によって第２の方法を実施する。解除試行をネットワークから受信する。この解除試行は、ネットワーク上で第２のバインディングを解除しようとするものである。コンピュータデバイスが、第２のバインディングを提供する機能を有しているかどうかが決定される。解除試行は、コンピュータデバイスが第２のバインディングを提供することが不可能であれば継続することが許容される。コンピュータデバイスが第２のバインディングを提供することが可能であるが、現時点では第２のバインディングを提供していない場合には、解除試行は停止されて、第２のバインディングがネットワークに追加される。一部の実施形態では、コンピュータデバイスが、三段階完遂方法を実施するように構成されている。
【００１７】
コンピュータデバイスは、さまざまなシステムとして実現されている。例えば、コンピュータデバイスは、照明制御システムの一部である埋め込み式デバイスである。セキュリティシステムの一部である埋め込み式デバイスであるコンピュータデバイスもある。さらに、住宅制御システムの一部である埋め込み式デバイスであるコンピュータデバイスもある。
【００１８】
２つ以上のプロバイダ間でのバインディングの交渉方法も開示されている。第１のバインディングは第１のバインディングＩＤを有している。第１のバインディングが、第１のプロバイダによってネットワーク上で公示される。第２のプロバイダも第１のバインディングに第２のバインディングＩＤをネットワーク上で提供していることが気付かれる。すると、第１のプロバイダが、自身が第１のバインディングを提供すべきであるかどうか衝突関数（Ｆ）を評価することによって決定する。この衝突関数の結果に基づいて、第２のバインディングＩＤを持つ第１のバインディングの追加が停止されるか、または、第１のバインディングＩＤを持つ第１のバインディングがキャンセルされる。
【００１９】
２つ以上のプロバイダ同士間でのバインディングの交渉方法を実施する実行可能命令を含んでいるコンピュータ読み取り可能な媒体も開示される。第１のバインディングは第１のバインディングＩＤを有している。第１のバインディングが、第１のプロバイダによってネットワーク上で公示される。第２のプロバイダも第１のバインディングに第２のバインディングＩＤをネットワーク上で提供していることが気付かれる。すると、第１のプロバイダが、自身が第１のバインディングを提供すべきであるかどうか衝突関数（Ｆ）を評価することによって決定する。この衝突関数の結果に基づいて、第２のバインディングＩＤを持つ第１のバインディングの追加が停止されるか、または、第１のバインディングＩＤを持つ第１のバインディングがキャンセルされる。
【００２０】
本発明の典型的な実施形態は、添付図面と一緒にして以下の説明と添付の特許請求の範囲を読めばより完全に明らかになるであろう。これらの図面は単に典型的な実施形態を示しているだけであり、したがって、本発明の範囲を制限するものと考えるべきではないことを理解されたうえで、以下の添付図面を用いてさらに具体的にそして詳細に本発明の典型的な実施形態が説明される。
【発明を実施するための最良の形態】
【００２１】
本発明のさまざまな実施形態を、図面を参照して以下に説明するが、図中類似の参照番号は同一のまたは機能的に類似の部品を示している。本書の図面に概説し図示される本発明の実施形態は、互いに異なったさまざまな構成に配置したり設計したりすることが可能である。したがって、図に提示されている本発明のいくつかの典型的な実施形態に関する以下のより詳細な説明は、申し立てとおり本発明の範囲を制限することを意図するものではなく、本発明の実施形態を単に代表して示しているだけである。
【００２２】
「典型的な」という用語は、本書で用いる限り専一に、「例や、事例や、例証として機能する」ことを意味するものとする。本書で「典型的な」と説明するいかなる実施形態も、他の実施形態より好ましいとか利点があると必ずしも解釈すべきではない。本発明のさまざまな態様を図中に提示するが、図は、特に記載がない限り必ずしも同じ尺度で作図されているわけではない。
【００２３】
本書に開示する実施形態の多くの特徴は、コンピュータソフトウエア、電子的ハードウエアまたは双方の組み合わせとして実現される。ハードウエアとソフトウエアのこの交換可能性を明瞭に解説するため、さまざまな構成要素を一般的にその機能性という観点から説明する。このような機能性がハードウエアとして実現されるかソフトウエアとして実現されるかは、全体的なシステムに課せられる特定の応用と設計上の制約によって決まる。当業者は、記載されている機能性を特定の応用分野ごとにさまざまな仕方で実現するが、このような実現例は、本発明の範囲からの逸脱をもたらすものと解釈すべきではない。
【００２４】
ここに記載する機能性をコンピュータソフトウエアとして実施すると、このようなソフトウエアは、メモリーデバイス内に置かれおよび／またはシステムバスやネットワーク上で電子信号として送信される何らかのタイプのコンピュータ命令またはコンピュータ実行可能コードを含んでいる。本書に記載するコンポーネントと関連する機能性を実施するソフトウエアは、１つの命令または多くの命令を含み、また、互いに異なったいくつかのセグメント上や、さまざまなプログラム中や、いくつかのメモリーデバイス上に分散される。
【００２５】
分散型ネットワークでは、システムを一緒に接続している基礎を成すネットワークにしばしば障害がある。一般的なネットワークでは、障害に遭遇したら、替わりのルートを特定してこれらのルートに切り替えることによってこの問題を解決している。ネットワークコンポーネントの障害に加えて、情報の最終的なプロバイダも故障することがありえる。一般的なネットワークでは、複数の「冗長な」プロバイダを有しておいて、フェイルオーバー機能を利用して、これらのプロバイダ間で要求を切り替えることによって、この問題を解決している。これら２つの解決策は通常は、動作スケールが異なっている。ネットワークリンク上の故障はＷＡＮ環境下で発生し、フェイルオーバーは通常はＬＡＮで発生し、専用のハードウエアが、さまざまなシステムを監視して、切り替えるようにしている。
【００２６】
本システムと方法は、同じバインディングのプロバイダを複数有する機能が提供されるが、ここでこれらプロバイダの内で実際にルーティング可能なのは一回に１つだけである。他のプロバイダはアクティブ状態ではないが、現在ルーティング可能なプロバイダが何らかの理由によって故障すればアクティブで可視となることが可能である。
【００２７】
これによって、分散システム中でサービス（プロバイダ）の稼働率が高くなる。また、今日の多くのシステムがそうであるように、潜在的なすべてのプロバイダを緊密に連結しておくことが必要とされることはない。
【００２８】
このシステムは、任意に接続されたノード集合を含んでいる。この接続物の集合にはループが含まれることがあるが、各ノードからその他方のノードには少なくとも１つのルートが存在している。このネットワークには、リクエスタとプロバイダが接続されている。このようなリクエスタとプロバイダは、ネットワーク上の１つのノードに接続されている互いに別々のノード上に存在したり、ネットワークのノード自身の上で稼動していたりする。
【００２９】
プロバイダはバインディング情報をネットワーク中に追加する。各バインディングには固有の識別子が割り当てられ、また、オブジェクト識別子とインタフェース識別子を含んでいる。部分的な複製（オブジェクト識別子とインタフェース識別子を意味する）は許容されるが、バインディングの固有識別子は別のバインディングによって複製することは不可能である。
【００３０】
この情報は、分散三段階完遂方法（以下に説明する）を用いてネットワーク中を伝播される。これによって、ネットワーク上のいかなるノードにも、伝播を無制限に「停止させる」機能が与えられる。リンクが破られて、ネットワークが新しいルートを決定する必要がある場合やバインディングがシステムから除去されたりした場合にも、同じ手順が用いられる。
【００３１】
図１は、ネットワーク１００上の２つの介在アクセスノードを示すネットワークブロック図である。プロバイダ１０２はネットワーク１００と電子的通信状態にある。図１のネットワーク実施形態１００は、ネットワーク１００と電子的通信状態にある２つのリクエスタ１０４を含んでいる。介在アクセスノード１０６もまた、ネットワーク１００上にある。ネットワーク１００上にはもっと多くのノードが存在することもある。
【００３２】
介在アクセスノード１０６は、ネットワーク１００に対して特徴とサービスを提供するネットワークノードである。介在アクセスノード１０６は、さまざまな仕方で用いられる。例えば、介在アクセスノード１０６は、ネットワーク上に存在して、ネットワーク１００上のコンピュータ、アプリケーションおよび／オブジェクトにサービスを提供している。介在アクセスノード１０６はまた、プロトコルコンバータとして用いられる。介在アクセスノード１０６は埋め込まれたり、または、企業のトラフィックを取り扱うに十分な大きさを有していたりする。
【００３３】
介在アクセスノード１０６が含み得る１つの特徴はオブジェクトの洗練化である。オブジェクトの洗練化とは、介在アクセスノード１０６が自分自身をオブジェクトの位置において、同じインタフェースのさまざまな実現例となるような状況のことである。これによって、とりわけ、インタフェースの実際のエンドプロバイダを変更することなく、固定されるべきインタフェースを実現する際の問題が考慮に入れられる。
【００３４】
介在アクセスノード１０６のさらなる特徴は、オブジェクトの拡大化という特徴である。オブジェクトの拡大化とは、介在アクセスノード１０６が、エンドプロバイダがサポートしていないオブジェクトに対して新たなインタフェースを追加するような状況である。
【００３５】
現在の設計では、介在アクセスノード１０６はクライアントとデバイスを区別していないため、追加されたいかなるサービスも、どの（許可された）接続済のエンティティやノードに対して利用可能である。
【００３６】
図１に示すようなネットワーク１００は、ウェブサービスの多くの特徴を継承している。ウェブサービスは、通常はＨＴＴＰとＳＯＡＰであるウェブプロトコルを用いてアクセスされる。このアーキテクチャは、ピアツーピアパラダイムのネットワーキングに基づいている。
【００３７】
複数の介在アクセスノード１０６が互いに通信状態にあると、介在アクセスノードネットワーク１１０が形成される。リクエスタ１０４および／またはプロバイダ１０２にとっては、介在アクセスノードネットワーク１１０の１つ以上の介在アクセスノード１０６は１つの介在アクセスノード１０６に見える。介在アクセスノードネットワーク１１０に含まれるサイズまたは数は、プロバイダ１０２および／またはリクエスタ１０４にとっては透明である。
【００３８】
プロバイダ１０２は、サービス１０８のソースであるネットワーク１００上のノードである。リクエスタ１０４は、サービス１０８のユーザであるネットワーク１００上のノードである。リクエスタ１０４は、直接的にサービス１０８を発見してこれを制御またはこれと相互作用するノード上で実施されるソフトウエアエンティティである。
【００３９】
サービス１０８は、コンピュータデバイスによって提供される任意の種類のサービスである。サービス１０８の考えられる一部の例としては、あるロケーションから温度データを提供したり、監視データを提供したり、気象情報を提供したり、音声ストリームを提供したり、映像ストリームを提供したりするなどのサービスがある。多くのさまざまな種類のサービスおよび／またはデータが、プロバイダ１０２からコンピュータネットワーク１００を介して提供される。
【００４０】
サービス１０８は、１つ以上のバインディング１１２を介してアクセスされる。バインディング１１２は、オブジェクト識別子１１４とインタフェース識別子１１６を含んでいる。一般的に、オブジェクト識別子１１４とインタフェース識別子１１６は対になっている。プロバイダ１０２は、複数のバインディング１１２を提供することが可能である。複数のプロバイダ１０２が、同じサービス１０８、バインディング１１２、オブジェクト１１４またはインタフェース１１６を提供しているということもありえる。各バインディング１１２は、固有のバインディングＩＤ１１８で表すことが可能である。バインディングＩＤ１１８は、介在アクセスノードネットワーク１１０に固有のものでなければならない。
【００４１】
プロバイダ１０２は、埋め込み式プロバイダでありえる。埋め込み式プロバイダとして、埋め込み式デバイス上で実現されるプロバイダ１０２がある。埋め込み式デバイスは、一般的なデスクトップコンピュータと関連している全く同じコンポーネントを含むことはないあるタイプのコンピュータデバイスである。例えば、モニターを含まない埋め込み式デバイスもあれば、キーボードやマウスを含まない埋め込み式デバイスもあれば、モニターも、キーボードも、マウスも含まない埋め込み式デバイスもある。多くの埋め込み式デバイスがマイクロコントローラベースのデバイスである、すなわち、埋め込み式デバイスの中央プロセッサはマイクロコントローラである。
【００４２】
「ネットワーク」という用語は本書では、１連のノードが通信経路によって相互接続されているシステムのことである。ノードとは、他のノードと通信している物理コンピュータデバイスである。ノードの特定的な動作は、それが実行するアプリケーションやソフトウエアによって決まる。ネットワークのノード上で実行されるアプリケーションは、データをネットワーク上でどのように送出するかに関するプロトコルや、形式化されたルールを実施するソフトウエアモジュールを介して互いに通信している。データ伝送のタイミングや、順序付けや、エラーチェックを取り扱うプロトコルがある。さらに、データのフォーマット方法やノードが交換するコマンドや応答を取り扱うプロトコルもある。協働するプロトコル集合はプロトコルスタックと呼ばれ、これらのプロトコルは、構築されたスタック上で互いの上に重なり合ったレイヤーとして動作する。プロトコルスタックの最上レイヤーをアプリケーションが用い、中間レイヤーはノード間でのデータのグループ（パケットやフレーム）の転送を取り扱い、最下レイヤーは、データを転送するネットワーキングハードウエアを直接的に取り扱う。
【００４３】
物理ネットワークは、ある種の物理媒体（例えば、電線、光ファイバ、空気）によって接続されたノードから成っている。この物理接続は、時として、リンクと呼ばれる。２つのノードに限られる物理ネットワークをポイントツーポイントと呼び、３つ以上のノードをサポートする物理ネットワークを多重アクセスと呼ぶ。多重アクセスネットワーク上の各ノードは、ネットワーク上の他のノードと区別するために用いられる物理アドレスを有している。
【００４４】
論理ネットワークを物理ネットワークに重ねて、固有のノードグループを指定する。論理ネットワーク上の各ノードは、プロトコルによってそのノードの物理アドレスにマッピングされる論理アドレスを有している。サブネットワーク、すなわち、サブネットとは、サブネット番号によって区別される、ネットワークの物理的または論理的に独立した部分のことである。
【００４５】
たいていのプロトコルは論理ネットワークを取り扱うが、これは、たいていの物理ネットワークのイシュー（ｉｓｓｕｅｓ）が多くの明確な実施例をすでに有しており、新たな物理レイヤーを定義する必要がないからである。論理ネットワークはまた、物理ネットワークから隔離されているという恩典を有しており、したがって、より一般的に有用である。例えば、ＴＣＰ／ＩＰは、論理ネットワーク（ＩＰ）の上に定義される。ＩＰは多くの物理ネットワーク（イーサネット(登録商標)、シリアルネットワーク、無線ネットワークなど）上で稼動することが可能である。このため、ＴＣＰ／ＩＰは、ある特定的な物理ネットワークという形でしか定義されなかった場合より一般的な解決策となっている。
【００４６】
介在アクセスノード１０６は任意の数だけ、ネットワーク１００上で用いられる。図２に、図示するように複数の介在アクセスノード２０６を含んでいるネットワーク２００を示す。２つのリクエスタ２０４が、介在アクセスノード２０６と電子的に通信状態にある。また、リクエスタ／プロバイダ２０５が、介在アクセスノード２０６と電子的に通信状態にある。図２に示すネットワーク実施形態２００上では、２つのリクエスタ２０４は双方ともが、プロバイダ２０２が提供しているサービス２０８を要求する。サービス２０８からのデータは、介在アクセスノードネットワーク２１０を介して送出される。
【００４７】
図２の介在アクセスノードネットワーク２１０は、図１の介在アクセスノードネットワーク１１０と同じように動作する。一般的な動作では、リクエスタ１０４および２０４とプロバイダ１０２および２０２とは、リクエスタ／プロバイダ２０５を含み、図１の介在アクセスノードネットワーク１１０と図２の介在アクセスノードネットワーク２１０を区別しない。図２はまた、図示するリクエスタ／プロバイダ２０５が示すように、ノードがリクエスタとプロバイダの双方として働くことを示している。このリクエスタ／プロバイダ２０５は、サービス２２８とバインディング２３２を提供している。図２はまた、サービス／バインディングが、介在アクセスノード２０６ｅによって提供されることを示している。
【００４８】
介在アクセスノード１０６と２０６は、ループを含む任意の仕方で接続される。図１と図２では、リクエスタ１０４、２０４および２０５とプロバイダ１０２、２０２、２０５および２０６ｅが図示されていた。リクエスタとプロバイダは、介在アクセスノード上で、互いに別々のノードであったり共存していたりする。
【００４９】
図３は、２つのバインディング４１２ａと４１２ｂを有するプロバイダ４０２のブロック図である。プロバイダ４０２は、介在アクセスノードネットワーク１１０に接続すると、第１のバインディング公示４３０ａと第２のバインディング公示４３０ｂを送出することによってその第１のバインディング４１２ａと第２のバインディング４１２ｂを公示する。第１のバインディング公示４３０ａは、この信号を受信するものすべてに対して、第１のバインディング４１２ａが利用可能であり、その特定的なバインディングＩＤが４１８ａであることを通知する。第２のバインディング公示４３０ｂは、この信号を受信するものすべてに対して、第２のバインディング４１２ｂが利用可能であり、その特定的なバインディングＩＤが４１８ｂであることを通知する。この情報によって、リクエスタはプロバイダ４０２からバインディング４１２ａと４１２ｂを要求することが可能となる。また、第１の介在アクセスノード１０６と２０６がバインディングＩＤ４１８を割り当てて、それを追跡することが可能である。これが可能であるのは、プロバイダ４０２は単にオブジェクト１１４とインタフェース１１６を必要とするだけであるのに対して、介在アクセスノードは固有のバインディングＩＤ４１８を必要とするからである。
【００５０】
図４は三段階完遂プロセスを示すタイムチャート５００である。時間軸５０１が示されている。介在アクセスノードＡ５０２は、ネットワーク１００中に追加すべきバインディングを有している。ネットワーク１００に接続した後のある時点、すなわち時点ｔ１で、介在アクセスノードＡ５０２はバインディングの公示５３０をする。この公示５３０は、別の介在アクセスノードである介在アクセスノードＢ５０４に到達する。すると、この介在アクセスノードＢ５０４は、時点ｔ２でバインディングに対して肯定応答５０５をする。この時点で、介在アクセスノードＡ５０２は、いまだ、介在アクセスノードＢ５０４に対する潜在的プロバイダとはなっていない。介在アクセスノードＡ５０２をロックして他方の介在アクセスノードＢ５０４に対してサービスまたはバインディングを提供するためには、介在アクセスノードＡ５０２は、時点ｔ３に示すように、介在アクセスノードＢ５０４でバインディングを確認５３２する必要がある。この時点では、確認５３２をした後では、三段階完遂プロセスは終了しており、また、介在アクセスノードＡ５０２は、介在アクセスノードＢ５０４に対してサービスを提供することを完遂している。いったん確認したら、介在アクセスノードＢ５０４は、接続されているリクエスタ１０４があればそれに対してバインディングを公示する。ここで、この最終的な公示は、三段階完遂プロセスを用いる必要がない。
【００５１】
図５は、介在アクセスノード１０６による信号またはメッセージの伝播方法６００を示すフローチャートである。公示４３０ａなどのメッセージまたは信号は、図示する方法６００にしたがって処理される。メッセージや信号が受信される６０２。次に、このメッセージ／信号が複製であるかどうかを、この信号またはメッセージの固有のバインディングＩＤ４１８をチェックすることによって判定する６０４。この信号が複製であれば、ノードは、即座にこの信号に対して肯定応答６０６をする。
【００５２】
信号／メッセージが複製でなければ、このノードに対して信号を送ったノード以外のこのノードに接続されているすべての介在アクセスノード１０６に対してこの信号／メッセージを伝播させる６０８。すると、ノードは、自身が信号を送った相手の接続済みのノードから肯定応答が来るのを待つ６１０。肯定応答が受信されおよび／またはタイムアウトになると、接続されているすべての介在アクセスノード１０６に確認が送られる６１２。ここで、この確認は、この信号のオリジナルの送出者によってしか始動されない。しかしながら、それは、すべての介在アクセスノード１０６によって転送される。
【００５３】
図５にその概要を示す方法６００を実施すると、その結果、ループを含む介在ノード１０６の動作が最適化される。中間ノードに直接に接続されている（共存している）プロバイダは、非常に低いオーバヘッドで同じロジックを使用することが可能である。
【００５４】
複数のプロバイダがネットワークに接続して、同じバインディングを提供していると問題が発生することがある。本実施形態では、これらプロバイダの内の１つだけに実際にバインディングを提供させ、その一方で、同じバインディングを持つ追加のプロバイダをネットワークによって予備として保持しておいて、必要に応じて将来バインディングを提供することが可能となるようにすることが望ましい、と仮定されている。三段階完遂を用いて、どのプロバイダが実際にバインディングを提供するかを交渉する。各プロバイダは、バインディングを提供する等しい権利と能力を有していると仮定されており、したがって、どれが実際にそれを提供するかを決定するいかなる手段でも受け入れ可能である。
【００５５】
図６は、１つ以上の介在アクセスノードと２つのプロバイダ７０２ａと７０２ｂを含んでいるネットワーク７１０のブロック図７００である。プロバイダＡ７０２ａは、バインディングＩＤのＡ７１８ａを持つ第１のバインディング７１２ａを含んでいる。プロバイダＢ７０２ｂは、バインディングＩＤのＢ７１８ｂを持つ第１のバインディング７１２ｂを含んでいる。したがって、バインディングＩＤは７１８ａ、７１８ｂと互いに異なってはいるが、双方のプロバイダは同じバインディング、すなわち、第１のバインディングを提供することが可能である。ネットワーク７１０およびプロバイダ７０２ａと７０２ｂは、どのプロバイダ７０２がバインディングを提供して、どのプロバイダを後で、必要に応じてバインディングを提供するように予備として保持しておくかを交渉して決定する必要がある。この状況は、一般的には、２つ以上のプロバイダ７０２がほぼ同じ時間にネットワーク７１０に接続し、これで、プロバイダのどれもが、他のプロバイダが自身のバインディングを公示するまではそれらに気付かないような場合に発生する。
【００５６】
図７は、図６に示すような状況下でどのプロバイダ７０２がバインディング７１２を提供するかを決定する方法８００の一実施形態を示すフローチャートである。フローチャート８００を、説明の都合上、プロバイダＡ７０２ａに関連して説明する。しかしながら、本実施形態では、これと同じ方法を、プロバイダＢ７０２ｂによっても実施されることが理解されるであろう。プロバイダＡ７０２ａがネットワーク７１０に接続する８０２。次に、プロバイダＡ７０２ａは、その固有のバインディングＩＤである７１８ａを持つ自身の第１のバインディング７１２ａを公示する８０４。ほぼ同時に、プロバイダＢ７０２ｂはネットワーク７１０に接続し、その固有のバインディングＩＤである７１８ｂを持つ自身の第１のバインディング７１２ｂを公示する。プロバイダが双方とも、分散三段階完遂プロセスを開始したことになる。
【００５７】
この分散三段階完遂プロセス中、プロバイダＡ７０２ａは、プロバイダＢ７０２ｂに気付く８０６、具体的には、プロバイダＢ７０２ｂが同じ第１のバインディング７１２を提供しようとしていることに気付くようになる。プロバイダＡ７０２ａは、例えば、プロバイダＢ７０２ｂから公示を受信するとこのことに気付く。次に、プロバイダＡ７０２ａは、第１のバインディング７１２ａを提供するかどうか決定する８０８。これは、プロバイダＡ７０２ａのバインディングＩＤである７１８ａを入力（１）として、プロバイダＢ７０２ｂのバインディングＩＤである７１８ｂを入力（２）として取る衝突関数（Ｆ）を評価することによって達成される。その結果８１０が真であれば、プロバイダＡ７０２ａは、プロバイダＢ７０２ｂに対して期待される肯定応答を送らないことによって、プロバイダＢ７０２ｂの追加を停止する８１２。結果が偽であれば、プロバイダＡ７０２ａは自分自身の追加をキャンセルする８１４。プロバイダＡ７０２ａは、これに限られないが、キャンセルメッセージを送出することによって、または、単にいかなるバインディングも確認せず、したがって、他のどのノードとも三段階完遂を履行しないことを含む多くの方法で自分自身の追加をキャンセルし得る。
【００５８】
いったんこの方法８００がプロバイダ７０２ａと７０２ｂによって完了すると、１つのバインディングしかアクティブとならない。代替のプロバイダ（予備として保持されているバインディングを持つプロバイダ）がまだ存在している。現行のプロバイダが何らかの理由によってバインディングを解除すると、これらの「代替の」プロバイダは、同じバインディングを（上記のプロセスを用いて）追加しながらも、同時に、解除を「停止」し、次に、解除を継続させる。これによって、１つのプロバイダから別のプロバイダへのフェイルオーバーが可能となる。このプロセスを図８に関連して以下に説明する。
【００５９】
開示の実施形態では、衝突関数（Ｆ）は次の条件を満足する：（１）Ｆの結果、ブール代数の（真／偽）となり、（２）Ｆ（Ｇ１，Ｇ２）はＦ（Ｇ２，Ｇ１）の逆である。第１の条件は単に、Ｆを評価すると、その結果が真または偽となることを意味するだけである。第２の条件は、パラメータは同じでも順序が異なれば、衝突関数の結果は同じではないことを意味する。例えば、Ｆ（Ｇ１，Ｇ２）＝Ｆ（Ｇ１，Ｇ２）であるが、Ｆ（Ｇ１，Ｇ２）はＦ（Ｇ２，Ｇ１）とは逆の結果となる。これらの条件によって、いかなるプロバイダも、あくまで、自分自身のバインディングＩＤ（例えばＧ１）を衝突関数のパラメータ中の最初に入れることが重要となる。代替として、いかなるプロバイダも、あくまで、自分自身のバインディングＩＤ（例えばＧ１）を衝突関数のパラメータ中の二番目に入れるようにしても良い。パラメータの順序が重要であるから、プロバイダは、パラメータを衝突関数に与えるに際して常に同じルールを適用する必要がある。Ｆの１例として、「未満」比較がある。バインディングＩＤ７１８ａが６，０００であり、バインディングＩＤ７１８ｂが１０，０００であり、Ｆが未満比較であれば、６，０００＜１０，０００であるから、Ｆ（６，０００，１０，０００）の結果は真となる。加えて、１０，０００は６，０００未満ではないから、Ｆ（１０，０００，６，０００）の結果は偽となる。
【００６０】
図８は、１つのプロバイダから別のプロバイダへのフェイルオーバーを可能とする方法９００の実施形態である。状況が図６に示すとおりであり、図７の方法が実行され、これで、ただ１つのプロバイダ、すなわち、プロバイダＡ７０２ａがアクティブとなってバインディング７１２ａを提供しているものと仮定する。プロバイダＡ７０２ａは、システムからバインディング７１２ａを解除しようと試みる９０２。例えば、おそらくプロバイダＡ７０２ａがオフラインとなるか誤動作するかして、動作継続が不可能となる。プロバイダＢ７０２ｂは、解除を受信すると９０４、自身が同じバインディングを提供可能であるかどうかチェックして判定する９０６。同じバインディングを提供不可能であれば、バインディングの解除は継続する９０８。この状況では、プロバイダＢ７０２ｂは第１のバインディング７１２ｂを有さず、その結果、同じバインディング（すなわち第１のバインディング）を提供可能である。すると、プロバイダＢ７０２ｂは、第１のバインディングの解除を停止する９１０。プロバイダＢ７０２ｂはまた、上記のプロセスを用いて、第１のバインディング7１２ｂをシステムまたはネットワークに対して追加する９１２。プロバイダＢ７０２ｂは、最終的に、第１のバインディング７１２ａの解除動作の継続を許容する９１４。すると、プロバイダＢ７０２ｂは、第１のバインディング７１２ｂをそのバインディングＩＤであるＢ７１８ｂと一緒に提供し始め、一方、バインディングＩＤであるＡ７１８ａを持つ第１のバインディング７１２ａが解除される。これによって、１つのプロバイダから別のプロバイダへのフェイルオーバーが可能となる。
【００６１】
図９は、リクエスタ１０４がプロバイダ１０２とのサービス通信リンクを確立する方法１０００の実施形態のフローチャートである。リクエスタ１０４は、ネットワーク１００に接続する１００２。次に、リクエスタ１０４は、バインディングのリストを介在アクセスノード１０６に要求する１００４。このバインディングリストを用いて、リクエスタは、自身がどのようなサービスを必要としているか判定可能となり、したがって、プロバイダ１０２にサービスを要求する１００６。介在アクセスノードネットワーク１１０や２１０は、リクエスタ１０４からの要求をプロバイダ１０２に通信する１００８。
【００６２】
図１０は、埋め込み式プロバイダまたは埋め込み式リクエスタとして用いられる埋め込み式デバイスの実施形態で用いられるハードウエアコンポーネントのブロック図である。
【００６３】
ＣＰＵ１１１０すなわちプロセッサは、バス１１１２を介してＣＰＵ１１１０に連結されている他のコンポーネントを含む埋め込み式デバイス１１０２の動作を制御するためのものである。ＣＰＵ１１１０は、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサまたは技術上周知の他のデバイスとして実現される。ＣＰＵ１１１０は、メモリー１１１４に記憶されているプログラムコードに基づいて論理演算と算術演算を実行する。ある実施形態では、メモリー１１１４は、ＣＰＵ１１１０と一緒に含まれるオンボードメモリーである。例えば、マイクロコントローラはしばしばある分量のオンボードメモリーを含んでいる。
【００６４】
埋め込み式デバイス１１０２はまた、ネットワークインタフェース１１１６を含んでいる。ネットワークインタフェース１１１６によって、埋め込み式デバイス１１０２とネットワーク１００に接続されている他のデバイスとの間の通信が容易となる。ネットワーク１００は、ポケベルネットワーク、セルラーネットワーク、グローバル通信ネットワーク、インターネット、コンピュータネットワーク、電話ネットワークなどである。ネットワークインタフェース１１１６は、アプリケーションネットワーク１００用の標準プロトコルにしたがって動作する。
【００６５】
埋め込み式デバイス１１０２はまた、メモリー１１１４を含んでいる。メモリー１１１４は、一時的なデータを記憶するランダムアクセスメモリー（ＲＡＭ）を含んでいる。代替として、またはそれに加えて、メモリー１１１４は、固定コードや構成データなどのより永久的なデータを記憶する読み出し専用メモリー（ＲＯＭ）を含むことがある。メモリー１１１４はまた、ハードディスクドライブなどの磁気記憶装置として実現されたりする。メモリー１１１４は、電子情報を記憶可能であれば、いかなるタイプの電子デバイスでも良い。
【００６６】
埋め込み式デバイス１１０２はまた、通信ポート１１１８を含むことがあるが、これによって他のデバイスとの通信が容易となる。埋め込み式デバイス１１０２はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、モニター、スピーカ、プリンタなどの入／出力デバイス１１２０を含んでいる。
【００６７】
本システムと方法はいくつかの状況で用いられる。図１１に、本システムと方法が実現されているシステムの一実施形態を示す。図１１は、照明コントローラシステム１２０８を含んでいる照明システム１２００の一実施形態を示すブロック図である。図１１の照明システム１２００は、家庭内のさまざまな部屋に取り付けられる。図示するように、システム１２００は、部屋Ａ１２０２、部屋Ｂ１２０４と部屋Ｃ１２０６を含んでいる。図１１には部屋を３つ示しているがシステム１２００は、家庭や、住居や他の環境の内部の部屋がいくつであっても、どのような部屋であっても実現される。
【００６８】
照明コントローラシステム１２０８は、システム１２００内の追加の埋め込み式のシステムやコンポーネントを監視して制御する。一実施形態では、部屋Ａ１２０２と部屋Ｂ１２０４のそれぞれが、スイッチコンポーネント１２１４や１２１８を含んでいる。このスイッチコンポーネント１２１４や１２１８もまた、第２の埋め込み式システム１２１６や１２２０を含んでいる。第２の埋め込み式システム１２１６や１２２０は、照明コントローラシステム１２０８から命令を受信する。すると、第２の埋め込み式システム１２１６や１２２０は、これらの命令を実行する。これらの命令には、さまざまな光コンポーネント１２１０、１２１２、１２２２および１２２４のパワーをオン／オフする命令が含まれる。これらの命令にはまた、さまざまな光コンポーネント１２１０、１２１２、１２２２および１２２４の明るさを増減させる命令が含まれる。これらの命令にはさらに、さまざまな光コンポーネント１２１０、１２１２、１２２２および１２２４の明るさをさまざまなパターンで配置する命令が含まれる。第２の埋め込み式システム１２１６や１２２０によって、照明コントローラシステム１２０８は、部屋Ａ１２０２と部屋Ｂ１２０４内に配置されている各光コンポーネント１２１０、１２１２、１２２２および１２２４を監視、制御し易くなる。
【００６９】
照明コントローラシステム１２０８はまた、図示の部屋Ｃ１２０６中の第２の埋め込み式システム１２２８を含む光コンポーネント１２２６に対して直接に命令を提供する。照明コントローラシステム１２０８は、第２の埋め込み式システム１２２８に対して、個々の光コンポーネント１２２６の電源をオン／オフするように命令する。同様に、照明コントローラシステム１２０８から受信する命令には、個々の光コンポーネント１２２６の明るさを増減させる命令が含まれる。
【００７０】
照明コントローラシステム１２０８はまた、システム１２２０内の個々の光コンポーネント１２３０や１２３２を直接的に監視しこれに命令を提供する。これらの命令には、既述した同様の命令が含まれる。
【００７１】
図１２は、本発明の本システムと方法が実現されているシステムのさらなる実施形態である。図１２は、セキュリティシステム１３００を図示するブロック図である。図示する実施形態中のセキュリティシステム１３００は、部屋Ａ１３０２、Ｂ１３０４およびＣ１３０６中で実現されている。これらの部屋は、家庭や他の囲い込まれた環境の領域に存在する。システム１３００はまた、部屋Ａ１３０２、Ｂ１３０４およびＣ１３０６がそれぞれ領域や境界を表している開放環境中で実現される。
【００７２】
システム１３００はセキュリティコントローラシステム１３０８を含んでいる。このセキュリティコントローラシステム１３０８は、システム１３００内のさまざまなコンポーネントを監視してこれらからの情報を受信する。例えば、動きセンサー１３１４や１３１８は、第２の埋め込み式システム１３１６や１３２０を含んでいる。動きセンサー１３１４や１３１８は、すぐ隣のスペースに動きがないか監視し、第２の埋め込み式システム１３１６や１３２０を介して動きが検出されたらセキュリティコントローラシステム１３０８に警告する。セキュリティコントローラシステム１３０８はまた、システム１３００内のさまざまなコンポーネントに命令を提供する。例えば、セキュリティコントローラシステム１３０８は、第２の埋め込み式システム１３１６や１３２０に命令を出力して、窓センサー１３１０や１３２２およびドアセンサー１３１２や１３２４の電源をオン／オフさせる。一実施形態では、第２の埋め込み式システム１３１６や１３２０は、窓センサー１３１０や１３２２が窓の動きを検出するとセキュリティコントローラシステム１３０８にそれを通知する。同じように、第２の埋め込み式システム１３１６や１３２０は、ドアセンサー１３１２や１３２４がドアの動きを検出するとセキュリティコントローラシステム１３０８にそれを通知する。第２の埋め込み式システム１３１６や１３２０は、動きセンサー１３１４や１３１８に対して、動きセンサー１３１４や１３１８内のＬＥＤ（図示せず）を起動するように命令する。
【００７３】
セキュリティコントローラシステム１３０８は、システム１３００内の個々のコンポーネントを直接的に監視してこれらの命令を提供する。例えば、セキュリティコントローラシステム１３０８は、動きセンサー１３３０や窓センサー１３３２を監視してこれらに対して電源をオン／オフする命令を提供する。セキュリティコントローラシステム１３０８はまた、動きセンサー１３３０や窓センサー１３３２に対して、センサー１３３０と１３３２内のＬＥＤ（図示せず）や音声警告の通知を起動する。
【００７４】
システム１３００を備えている個々の各コンポーネントは、第２の埋め込み式システムを含んでいる。例えば、図１２に、第２の埋め込み式システム１３２８を含んでいるドアセンサー１３２６を図示する。セキュリティコントローラシステム１３０８は、既述したのと同じような仕方で第２の埋め込み式システム１３２８を監視してこれに命令を提供する。
【００７５】
図１３は、ホームシステム１４００の一実施形態を示すブロック図である。ホームシステム１４００は、照明システム１２００や、セキュリティシステム１３００や、類似物などのさまざまなシステムの監視を容易にするホームコントローラ１４０８を含んでいる。ホームシステム１４００によって、ユーザは、１つ以上の埋め込み式システムによってさまざまなコンポーネントとシステムを制御することが可能となる。一実施形態では、ホームコントローラシステム１４０８は、図１１や図１２を参照して既述したのと同じ仕方で監視して情報を提供する。図示する実施形態では、ホームコントローラ１４０８は、第２の埋め込み式システム１４２０を介して加熱コンポーネント１４２４に命令を提供する。加熱コンポーネント１４２４は、暖炉や、住居地やオフィスで一般的に見受けられる他の暖房器具を含んでいる。ホームコントローラシステム１４０８は、第２の埋め込み式システム１４２０を介して加熱コンポーネント１４２４の電源をオン／オフする命令を提供する。
【００７６】
同じように、ホームコントローラ１４０８は、冷却コンポーネント１４３０などのホームシステム１４００内のコンポーネントを直接的に監視してこれに命令を提供する。冷却コンポーネント１４３０は、エアコンや、住居地やオフィスで一般的に見受けられる他の冷房器具を含んでいる。セントラルホームコントローラ１４０８は、中央埋め込み式システム１４０８が収集した温度読み取り値に基づいて、冷却コンポーネント１４３０に対して電源をオン／オフするように命令する。ホームシステム１４００は、図１１と図１２を参照して既述したのと同じように機能する。
【００７７】
埋め込み式デバイスには多くのタイプがあり、デバイスネットワークを生成するには多くの理由がある。デバイスネットワーキングの応用分野の例をいくつか既述する。当業者は、これらが単なる例示に過ぎないことを理解されるであろう。
【００７８】
デバイスネットワーキングの応用分野の１例として、遠隔監視がある。多くの有用なデバイスネットワークでは、遠隔監視が行われるが、これは、１つのノードから別のノードへの一方通行の情報転送である。このような応用分野では、プロバイダは一般的には、リクエスタに応答してある情報を報告する小型のサーバとして動作する。プロバイダはまた、自身の状態情報を加入者に公開するように設定することが可能である。リクエスタは、おそらくは更新内容を送ってくる頻度を制限する何らかの手段を用いて、状態が変化するといつでも周期的に報告または更新するように要求する。プロバイダは、何らかの事象や例外的な状況が発生したらそれをリクエスタに通知するように設定することが可能である。
【００７９】
デバイスネットワーク応用分野の別の例として、遠隔制御があるが、この場合、リクエスタが、何か特定の動作を発動させるようなコマンドをプロバイダに送ることが可能である。たいていの場合、遠隔制御には、ある種のフィードバックが伴う。
【００８０】
デバイスネットワーク応用分野のさらに別の例として、分散制御システムがある。個々のプロバイダと関連する機能とデータを、ネットワークを介して組み合わせて調整し、これによって、付加価値を持つ分散システムを生成することが可能である。時として、これらの分散制御システムは、大なり小なり自動的に設定可能である。多くの場合、より洗練されたデバイスは、ピアツーピアネットワークと一緒になって、構成や、監視や診断といった業務を実行する。このようなシステムは、ピアとして通信する、または、システム中の各オブジェクトが制御ロジックのすべてを含む１つの中央ノードと通信しているマスタースレーブ構成を介して通信するオブジェクトによって生成される。
【００８１】
ネットワーキング応用分野のカテゴリ毎に、リクエスタがプロバイダに接続するさまざまな仕方がある。比較的少数のプロバイダを伴うような場合、リクエスタは、ウェブブラウザや、ポケベルや、さらにはＷＡＰイネーブル式携帯電話を用いて、大なり小なり対話式にプロバイダと通信する。しかしながら、プロバイダの数が増えるに連れて、これらの方法は効果がなくなり、リクエスタは、表計算ソフトやデータベースアプリケーションなどのより一般的なデータ管理技法を用いることになる。
【００８２】
さまざまなネットワークが時の経過と共に、また、さまざまな技術によって実現されるに連れて、各ネットワークが自分自身のプロトコルを用いているため、互いに通信不可能であるような、複数のネットワークが同じ家庭や設備の中に同居するというような状況が発生しかねない。この場合、これらさまざまなネットワークとプロトコルを橋渡しして、１つの大規模なネットワークを作成することが可能である。これによって、１つのアプリケーションが各プロバイダにアクセスし、これによって、プロバイダすべての対話を簡略化することが可能である。
【００８３】
情報と信号は、互いに異なったさまざまな技術や技法のいずれかを用いて表される。例えば、上の説明全体にわたって引用されたデータ、命令、コマンド、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁場や磁性粒子、光場や光粒子またはこれらの何らかの組み合わせによって表される。
【００８４】
本書に開示する実施形態と関連して説明したさまざまな解説的な論理ブロック、モジュール、回路呼びアルゴリズムステップは、電子式ハードウエア、コンピュータソフトウエアまたはこれら双方の組み合わせとして実現される。ハードウエアとソフトウエアのこの交換可能性を明瞭に示すために、さまざまなコンポーネント、ブロック、モジュール、回路およびステップを図示して、一般にその機能性という点について上で解説した。このような機能性がハードウエアとして実現されるかソフトウエアとして実現されるかは、特定の応用分野と全体的なシステムに課せられる設計上の制約によって決まる。当業者は、特定の応用分野毎に上記の機能性をさまざまな仕方で実現するが、どのように実現するかについてのこのような判断は、本発明の範囲から逸脱するものと解釈すべきではない。
【００８５】
本書に開示する実施形態を参照して説明したさまざまな解説的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）信号もしくは他のプログラマブル論理デバイス、離散ゲートもしくはトランジスタロジック、離散ハードウエアコンポーネント、または本書に記載する機能を実行するように設計されたこれらの何らかの組み合わせによって実現または実施される。汎用プロセッサは、マイクロプロセッサであるが、代替例では、なんらかの従来型プロセッサや、コントローラや、マイクロコントローラや、状態機械であってもよい。プロセッサはまた、コンピュータデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアと一緒になった１つ以上のマイクロプロセッサまたはこのような他の何らかの構造体の組み合わせとして実現される。
【００８６】
本書に開示する実施形態に関連して説明した方法やアルゴリズムのステップは、直接にハードウエアとして、プロセッサによって実行されるソフトウエアモジュールとして、または双方の組み合わせとして実現される。ソフトウエアモジュールは、ＲＡＭメモリー、フラッシュメモリー、ＲＯＭメモリー、ＥＰＲＯＭメモリー、ＥＥＰＲＯＭメモリー、レジスタ、ハードディスク、取り外し式ディスク、ＣＤ−ＲＯＭまたは技術上周知の他の何らかの形態の記憶媒体に常駐している。例示の記憶媒体はプロセッサに連結され、これで、プロセッサが記憶媒体から情報を読み取ったりこれに書き込んだりすることが可能となるようにしている。代替例では、記憶媒体はプロセッサと一体になっている。プロセッサと記憶媒体はＡＳＩＣ中に常駐している。ＡＳＩＣはユーザ端末に常駐している。代替例では、プロセッサと記憶媒体は、ユーザ端末中で個別の部品として常駐している。
【００８７】
本書に開示する方法は、説明した方法を達成するステップや動作を１つ以上含んでいる。これらの方法のステップおよび／または動作は、本発明の範囲から逸脱することなく互いと交換可能である。言い換えれば、本実施形態を正しく動作させるためにステップや動作の特定的な順序が必要でない限り、特定のステップおよび／動作の順序および／または使用は、本発明の範囲から逸脱することなく修正可能である。
【００８８】
本発明の具体的な実施形態と応用分野を図示して説明したが、本発明は、本書に開示する構成とコンポーネントにだけ限られるものではないことを理解すべきである。当業者には明らかなさまざまな修正、変化、変更を、本発明の精神と範囲から逸脱することなく本書に開示する本発明の方法とシステムの装置、動作および詳細に施すことが可能である。
【産業上の利用可能性】
【００８９】
本発明は埋め込み式システムに適用可能である。
【図面の簡単な説明】
【００９０】
本発明の範例的実施例が、以下の説明とそれに付された請求項を添付図面に絡め参酌することで、より十全に明らかとなろう。それらの図面は、範例的実施例のみを図化しており、従って、発明の範囲の限定と捉えるべきではないとの理解の下、本発明の範例的実施例を更に特定し詳述する説明を、次に、添付図面を用いて行うが、その図面中：
【図１】コンピュータネットワーク上の２つの介在アクセスノードを示すネットワークブロック図である。
【図２】コンピュータネットワーク上のいくつかの介在アクセスノードを示すネットワークブロック図である。
【図３】２つのバインディングを持つプロバイダのブロック図である。
【図４】三段階完遂プロセスを示すタイムチャートである。
【図５】介在アクセスノードによる信号またはメッセージの伝播方法を示すフローチャートである。
【図６】１つ以上の介在アクセスノードと２つのプロバイダとを含んでいるネットワークのブロック図である。
【図７】どのプロバイダがバインディングを提供するかを決定する方法の一実施形態を示すフローチャートである。
【図８】１つのプロバイダから別のプロバイダへのフェイルオーバーを可能とする実施形態のフローチャートである。
【図９】リクエスタがプロバイダとのサービス通信リンクを確立する方法の実施形態のフローチャートである。
【図１０】コンピュータデバイスまたは埋め込み式デバイスの実施形態で用いられるハードウエアコンポーネントのブロック図である。
【図１１】本書に開示するシステムと方法を利用する照明システムを示すブロック図である。
【図１２】本書に開示するシステムと方法を利用するセキュリティシステムを示すブロック図である。
【図１３】本書に開示するシステムと方法を利用するホームシステムを示すブロック図である。
【図１】
2008522449.tif 000003
【図２】
2008522449.tif 000004
【図３】
2008522449.tif 000005
【図４】
2008522449.tif 000006
【図５】
2008522449.tif 000007
【図６】
2008522449.tif 000008
【図７】
2008522449.tif 000009
【図８】
2008522449.tif 000010
【図９】
2008522449.tif 000011
【図１０】
2008522449.tif 000012
【図１１】
2008522449.tif 000013
【図１２】
2008522449.tif 000014
【図１３】
2008522449.tif 000015
【国際調査報告】
2008522449.tif 000016
2008522449.tif 000017