JP2008522449A - 分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法 - Google Patents

分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法 Download PDF

Info

Publication number
JP2008522449A
JP2008522449A JP2007525084A JP2007525084A JP2008522449A JP 2008522449 A JP2008522449 A JP 2008522449A JP 2007525084 A JP2007525084 A JP 2007525084A JP 2007525084 A JP2007525084 A JP 2007525084A JP 2008522449 A JP2008522449 A JP 2008522449A
Authority
JP
Japan
Prior art keywords
binding
computing device
network
provider
collision function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007525084A
Other languages
English (en)
Other versions
JP4466737B2 (ja
Inventor
ブライアント イーストハム,
トーマス ミリガン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Publication of JP2008522449A publication Critical patent/JP2008522449A/ja
Application granted granted Critical
Publication of JP4466737B2 publication Critical patent/JP4466737B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

バインディングの交渉方法を実施するように構成されたコンピュータデバイスを開示する。このコンピュータデバイスは、プロセッサと、このプロセッサと電子的通信状態にあるメモリーとを含んでいる。第1のバインディングは第1のバインディングIDを有している。命令はメモリーに記憶されて、バインディングの交渉方法を実施する。第1のバインディングはネットワーク上で公示される。第2のプロバイダもネットワーク上で第2のバインディングIDを持つ第1のバインディングを提供することが気付かれる。すると、コンピュータデバイスは、第1のバインディングを提供すべきかどうか、衝突関数(F)を評価することによって判定する。この衝突関数の結果に基づいて、第2のバインディングIDを持つ第1のバインディングの追加を停止するか、または、第1のバインディングIDを持つ第1のバインディングをキャンセルする。
【選択図】図1

Description

本発明は、一般的にはコンピュータとコンピュータ関連技術とに関連する。より詳しくは、本発明は、分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法とに関する。
コンピュータと通信の技術は急速に進歩し続けている。実際、コンピュータと通信の技術は個人の日常の多くの側面で関わっている。例えば、今日消費者が用いているデバイスの多くが、その中に小型のコンピュータを有している。このような小型コンピュータは、サイズがさまざまであり、精巧さの程度もまちまちである。このような小型コンピュータとしては、1つのマイクロコンピュータから全機能式の完全なコンピュータシステムまであらゆるものが含まれている。例えば、このような小型コンピュータは、マイクロコントローラなどの1チップコンピュータ、コントローラなどの1ボードタイプのコンピュータ、IBM−PC互換機などの一般的なデスクトップコンピュータなどがある。
コンピュータは、一般的に、その心臓部に1つ以上のプロセッサを有している。この(これらの)プロセッサは、さまざまな外部の入出力部に相互接続されて、特定のコンピュータやデバイスを管理するように機能している。例えば、サーモスタット中のプロセッサは、温度設定値を選択するためのボタンに接続されたり、暖炉や空調装置に接続されて温度を変更したり、温度センサーに接続されて、現時点での温度を読み取ってディスプレイ上に表示したりする。
多くの電化製品やデバイスなどに、1つ以上の小型コンピュータが含まれている。例えば、サーモスタット、暖炉、空調システム、冷蔵庫、電話、タイプライタ、自動車、自動販売機および多くのさまざまなタイプの産業装置では、今日その内部に小型コンピュータ、すなわちプロセッサを含んでいるのが一般的である。コンピュータソフトウエアが、このようなコンピュータのプロセッサを実行して、あるタスクをどのように実行するかをプロセッサに指示している。例えば、コンピュータソフトウエアがサーモスタット上で実行されることによって、空調装置が、ある特定の温度に達したときに動作を停止させ、必要なときにヒータをオンしたりさせる。
デバイスや、電化製品や、ツールなどの一部であるこのようなタイプの小型コンピュータは、しばしば埋め込み式システムと呼ばれる。「埋め込み式システム」という用語は一般的には、大型システムの一部であるコンピュータハードウエアとソフトウエアのことである。埋め込み式システムは、キーボード、マウスおよび/またはモニターなどの一般的な入/出力装置を有しない。通常は、それぞれの埋め込み式システムの心臓部には、1つ以上のプロセッサがある。
照明システムは埋め込み式システムを組み込んでいる。この埋め込み式システムは、照明システムの効果を監視して制御するために用いることができる。例えば、埋め込み式システムは、照明システム内部のライトの明るさを落とすように制御したりする。また、埋め込み式システムはライトの明るさを増すように制御したりする。埋め込み式システムは、照明システム内部の個々のライトで特定の照明パターンを始動するように制御する。埋め込み式システムは照明システム内の個々のスイッチに連結されている。このような埋め込み式システムは、これらスイッチに対して、個々のライトや照明システム全体の電源を入れたり落としたりするように指示する。同様に、埋め込み式システムは、照明システム内の個々のライトに連結されたりする。個々のライトそれぞれの明るさや電源状態は、埋め込み式システムによって制御されている。
セキュリティシステムもまた、埋め込み式システムを内蔵している。この埋め込み式システムは、このセキュリティシステムを備える個々のセキュリティセンサーを制御するために用いられる。例えば、埋め込み式システムは、各セキュリティセンサーの電源を自動的に入れるように制御する。埋め込み式システムは個々のセキュリティセンサーそれぞれに連結されている。例えば、埋め込み式システムは、動きセンサーに連結されている。この埋め込み式システムは、個々の動きセンサーの電源を入れて、動きが検出されると動きセンサーを起動するように制御する。動きセンサーを起動する動作には、動きセンサー内に置かれたLEDの電源を入れる命令や、動きセンサーの出力ポートから警報を出力する命令や、類似の命令を提供する動作が含まれる。埋め込み式システムはまた、ドアを監視しているセンサーに連結されている。埋め込み式システムは、ドアを監視しているセンサーに命令を出力して、ドアが開閉する際に起動するようにする。同様に、埋め込み式システムは窓を監視しているセンサーに連結されている。埋め込み式システムは、窓が開閉する際に窓を監視しているセンサーを起動する命令を提供する。
携帯電話などの無線製品を制御するために使用されるような埋め込み式システムも存在する。このような埋め込み式システムは、携帯電話のLEDディスプレイの電源を入れる命令を提供する。この埋め込み式システムはまた、携帯電話内部の音声スピーカを起動して、携帯電話に関連する音声通知をユーザに提供する。
家庭電化製品もまた、埋め込み式システムを内蔵している。家庭電化製品には、一般的に従来の台所で用いられる電化製品、例えば、ストーブ、冷蔵庫、電子レンジなどが含まれる。家庭電化製品にはまた、ユーザの健康や快適な暮らしに関連する機器を含む。例えば、マッサージ用リクライニングチェアは、埋め込み式システムを内蔵している。この埋め込み式システムは、ユーザの好みにしたがってチェアの背もたれを自動的にリクライニングする命令を提供する。この埋め込み式システムはまた、チェア内部の振動部品を始動させる命令を出力して、ユーザの好みにしたがってリクライニングチェア内で振動を引き起こす。
これ以外にも家庭で一般に見受けられる製品でも、埋め込み式システムが内蔵されている。例えば、トイレで用いられている埋め込み式システムは、容器のタンクを満たすために用いられる水の水位を制御する。埋め込み式システムは、ジャグジー式浴槽内部で、空気の流出量を制御するために用いられている。
すでに述べたように、埋め込み式システムは、多くのさまざまなシステムや、リソースや、製品などを監視したり制御したりするために用いられている。インターネットとWWWの成長に伴って、埋め込み式システムはますますインターネットに接続され、遠隔監視/制御が可能となっている。他にも、ローカルエリアネットワークや、ワイドエリアネットワークなどを含むコンピュータネットワークに接続されている埋め込みシステムがある。
一部の埋め込み式システムでは、コンピュータネットワークを用いて他のコンピュータデバイスにデータおよび/またはサービスを提供している。また、コンピュータネットワークを用いて他のコンピュータデバイスにデータおよび/またはサービスを提供している一般的なコンピュータやコンピュータデバイスもある。ネットワークには多くのプロバイダが存在する。時として、プロバイダは失敗することがあるが、この場合、プロバイダが提供中のデータおよび/またはサービスも失敗しかねないことを意味する。コンピュータネットワーク上でフェイルオーバーを取り扱うシステムと方法が提供されればその恩典が実感されるであろう。
バインディングの交渉方法を実施するように構成されたコンピュータデバイスを開示する。このコンピュータデバイスは、プロセッサと、このプロセッサと電子的に通信しているメモリーとを含んでいる。第1のバインディングは、第1のバインディングIDを有している。命令をこのメモリーに記憶しておいて、バインディングの交渉方法を実施する。この第1のバインディングはネットワーク上で公示される。第2のプロバイダもネットワーク上で第1のバインディングに第2のバインディングIDを提供していることが気付かれる。次に、コンピュータデバイスは、衝突関数(F)を評価することによって第1のバインディングを提供すべきであるかどうか決定する。衝突関数の結果に基づいて、第2のバインディングIDを持つ第1のバインディングの追加が停止されるか、または、第1のバインディングIDを持つ第1のバインディングがキャンセルされる。
第1のバインディングは、オブジェクトとインタフェースを含んでいる。サービスは、このオブジェクトとこのインタフェースを使用してアクセスされる。
一部の実施形態では、衝突関数は、第1のバインディングIDと第2のバインディングIDを入力として用いて、ブール演算結果を出力している。さらに、衝突関数(F)が、F(A,B)がF(B,A)とは同じではないという条件を満足し、したがって、F(A,B)が真であれば、F(B,A)は偽であるという条件を(F)が満足させる。ある実施形態では、衝突関数(F)は未満関数を含んでいる。
命令によって第2の方法を実施する。解除試行をネットワークから受信する。この解除試行は、ネットワーク上で第2のバインディングを解除しようとするものである。コンピュータデバイスが、第2のバインディングを提供する機能を有しているかどうかが決定される。解除試行は、コンピュータデバイスが第2のバインディングを提供することが不可能であれば継続することが許容される。コンピュータデバイスが第2のバインディングを提供することが可能であるが、現時点では第2のバインディングを提供していない場合には、解除試行は停止されて、第2のバインディングがネットワークに追加される。一部の実施形態では、コンピュータデバイスが、三段階完遂方法を実施するように構成されている。
コンピュータデバイスは、さまざまなシステムとして実現されている。例えば、コンピュータデバイスは、照明制御システムの一部である埋め込み式デバイスである。セキュリティシステムの一部である埋め込み式デバイスであるコンピュータデバイスもある。さらに、住宅制御システムの一部である埋め込み式デバイスであるコンピュータデバイスもある。
2つ以上のプロバイダ間でのバインディングの交渉方法も開示されている。第1のバインディングは第1のバインディングIDを有している。第1のバインディングが、第1のプロバイダによってネットワーク上で公示される。第2のプロバイダも第1のバインディングに第2のバインディングIDをネットワーク上で提供していることが気付かれる。すると、第1のプロバイダが、自身が第1のバインディングを提供すべきであるかどうか衝突関数(F)を評価することによって決定する。この衝突関数の結果に基づいて、第2のバインディングIDを持つ第1のバインディングの追加が停止されるか、または、第1のバインディングIDを持つ第1のバインディングがキャンセルされる。
2つ以上のプロバイダ同士間でのバインディングの交渉方法を実施する実行可能命令を含んでいるコンピュータ読み取り可能な媒体も開示される。第1のバインディングは第1のバインディングIDを有している。第1のバインディングが、第1のプロバイダによってネットワーク上で公示される。第2のプロバイダも第1のバインディングに第2のバインディングIDをネットワーク上で提供していることが気付かれる。すると、第1のプロバイダが、自身が第1のバインディングを提供すべきであるかどうか衝突関数(F)を評価することによって決定する。この衝突関数の結果に基づいて、第2のバインディングIDを持つ第1のバインディングの追加が停止されるか、または、第1のバインディングIDを持つ第1のバインディングがキャンセルされる。
本発明の典型的な実施形態は、添付図面と一緒にして以下の説明と添付の特許請求の範囲を読めばより完全に明らかになるであろう。これらの図面は単に典型的な実施形態を示しているだけであり、したがって、本発明の範囲を制限するものと考えるべきではないことを理解されたうえで、以下の添付図面を用いてさらに具体的にそして詳細に本発明の典型的な実施形態が説明される。
本発明のさまざまな実施形態を、図面を参照して以下に説明するが、図中類似の参照番号は同一のまたは機能的に類似の部品を示している。本書の図面に概説し図示される本発明の実施形態は、互いに異なったさまざまな構成に配置したり設計したりすることが可能である。したがって、図に提示されている本発明のいくつかの典型的な実施形態に関する以下のより詳細な説明は、申し立てとおり本発明の範囲を制限することを意図するものではなく、本発明の実施形態を単に代表して示しているだけである。
「典型的な」という用語は、本書で用いる限り専一に、「例や、事例や、例証として機能する」ことを意味するものとする。本書で「典型的な」と説明するいかなる実施形態も、他の実施形態より好ましいとか利点があると必ずしも解釈すべきではない。本発明のさまざまな態様を図中に提示するが、図は、特に記載がない限り必ずしも同じ尺度で作図されているわけではない。
本書に開示する実施形態の多くの特徴は、コンピュータソフトウエア、電子的ハードウエアまたは双方の組み合わせとして実現される。ハードウエアとソフトウエアのこの交換可能性を明瞭に解説するため、さまざまな構成要素を一般的にその機能性という観点から説明する。このような機能性がハードウエアとして実現されるかソフトウエアとして実現されるかは、全体的なシステムに課せられる特定の応用と設計上の制約によって決まる。当業者は、記載されている機能性を特定の応用分野ごとにさまざまな仕方で実現するが、このような実現例は、本発明の範囲からの逸脱をもたらすものと解釈すべきではない。
ここに記載する機能性をコンピュータソフトウエアとして実施すると、このようなソフトウエアは、メモリーデバイス内に置かれおよび/またはシステムバスやネットワーク上で電子信号として送信される何らかのタイプのコンピュータ命令またはコンピュータ実行可能コードを含んでいる。本書に記載するコンポーネントと関連する機能性を実施するソフトウエアは、1つの命令または多くの命令を含み、また、互いに異なったいくつかのセグメント上や、さまざまなプログラム中や、いくつかのメモリーデバイス上に分散される。
分散型ネットワークでは、システムを一緒に接続している基礎を成すネットワークにしばしば障害がある。一般的なネットワークでは、障害に遭遇したら、替わりのルートを特定してこれらのルートに切り替えることによってこの問題を解決している。ネットワークコンポーネントの障害に加えて、情報の最終的なプロバイダも故障することがありえる。一般的なネットワークでは、複数の「冗長な」プロバイダを有しておいて、フェイルオーバー機能を利用して、これらのプロバイダ間で要求を切り替えることによって、この問題を解決している。これら2つの解決策は通常は、動作スケールが異なっている。ネットワークリンク上の故障はWAN環境下で発生し、フェイルオーバーは通常はLANで発生し、専用のハードウエアが、さまざまなシステムを監視して、切り替えるようにしている。
本システムと方法は、同じバインディングのプロバイダを複数有する機能が提供されるが、ここでこれらプロバイダの内で実際にルーティング可能なのは一回に1つだけである。他のプロバイダはアクティブ状態ではないが、現在ルーティング可能なプロバイダが何らかの理由によって故障すればアクティブで可視となることが可能である。
これによって、分散システム中でサービス(プロバイダ)の稼働率が高くなる。また、今日の多くのシステムがそうであるように、潜在的なすべてのプロバイダを緊密に連結しておくことが必要とされることはない。
このシステムは、任意に接続されたノード集合を含んでいる。この接続物の集合にはループが含まれることがあるが、各ノードからその他方のノードには少なくとも1つのルートが存在している。このネットワークには、リクエスタとプロバイダが接続されている。このようなリクエスタとプロバイダは、ネットワーク上の1つのノードに接続されている互いに別々のノード上に存在したり、ネットワークのノード自身の上で稼動していたりする。
プロバイダはバインディング情報をネットワーク中に追加する。各バインディングには固有の識別子が割り当てられ、また、オブジェクト識別子とインタフェース識別子を含んでいる。部分的な複製(オブジェクト識別子とインタフェース識別子を意味する)は許容されるが、バインディングの固有識別子は別のバインディングによって複製することは不可能である。
この情報は、分散三段階完遂方法(以下に説明する)を用いてネットワーク中を伝播される。これによって、ネットワーク上のいかなるノードにも、伝播を無制限に「停止させる」機能が与えられる。リンクが破られて、ネットワークが新しいルートを決定する必要がある場合やバインディングがシステムから除去されたりした場合にも、同じ手順が用いられる。
図1は、ネットワーク100上の2つの介在アクセスノードを示すネットワークブロック図である。プロバイダ102はネットワーク100と電子的通信状態にある。図1のネットワーク実施形態100は、ネットワーク100と電子的通信状態にある2つのリクエスタ104を含んでいる。介在アクセスノード106もまた、ネットワーク100上にある。ネットワーク100上にはもっと多くのノードが存在することもある。
介在アクセスノード106は、ネットワーク100に対して特徴とサービスを提供するネットワークノードである。介在アクセスノード106は、さまざまな仕方で用いられる。例えば、介在アクセスノード106は、ネットワーク上に存在して、ネットワーク100上のコンピュータ、アプリケーションおよび/オブジェクトにサービスを提供している。介在アクセスノード106はまた、プロトコルコンバータとして用いられる。介在アクセスノード106は埋め込まれたり、または、企業のトラフィックを取り扱うに十分な大きさを有していたりする。
介在アクセスノード106が含み得る1つの特徴はオブジェクトの洗練化である。オブジェクトの洗練化とは、介在アクセスノード106が自分自身をオブジェクトの位置において、同じインタフェースのさまざまな実現例となるような状況のことである。これによって、とりわけ、インタフェースの実際のエンドプロバイダを変更することなく、固定されるべきインタフェースを実現する際の問題が考慮に入れられる。
介在アクセスノード106のさらなる特徴は、オブジェクトの拡大化という特徴である。オブジェクトの拡大化とは、介在アクセスノード106が、エンドプロバイダがサポートしていないオブジェクトに対して新たなインタフェースを追加するような状況である。
現在の設計では、介在アクセスノード106はクライアントとデバイスを区別していないため、追加されたいかなるサービスも、どの(許可された)接続済のエンティティやノードに対して利用可能である。
図1に示すようなネットワーク100は、ウェブサービスの多くの特徴を継承している。ウェブサービスは、通常はHTTPとSOAPであるウェブプロトコルを用いてアクセスされる。このアーキテクチャは、ピアツーピアパラダイムのネットワーキングに基づいている。
複数の介在アクセスノード106が互いに通信状態にあると、介在アクセスノードネットワーク110が形成される。リクエスタ104および/またはプロバイダ102にとっては、介在アクセスノードネットワーク110の1つ以上の介在アクセスノード106は1つの介在アクセスノード106に見える。介在アクセスノードネットワーク110に含まれるサイズまたは数は、プロバイダ102および/またはリクエスタ104にとっては透明である。
プロバイダ102は、サービス108のソースであるネットワーク100上のノードである。リクエスタ104は、サービス108のユーザであるネットワーク100上のノードである。リクエスタ104は、直接的にサービス108を発見してこれを制御またはこれと相互作用するノード上で実施されるソフトウエアエンティティである。
サービス108は、コンピュータデバイスによって提供される任意の種類のサービスである。サービス108の考えられる一部の例としては、あるロケーションから温度データを提供したり、監視データを提供したり、気象情報を提供したり、音声ストリームを提供したり、映像ストリームを提供したりするなどのサービスがある。多くのさまざまな種類のサービスおよび/またはデータが、プロバイダ102からコンピュータネットワーク100を介して提供される。
サービス108は、1つ以上のバインディング112を介してアクセスされる。バインディング112は、オブジェクト識別子114とインタフェース識別子116を含んでいる。一般的に、オブジェクト識別子114とインタフェース識別子116は対になっている。プロバイダ102は、複数のバインディング112を提供することが可能である。複数のプロバイダ102が、同じサービス108、バインディング112、オブジェクト114またはインタフェース116を提供しているということもありえる。各バインディング112は、固有のバインディングID118で表すことが可能である。バインディングID118は、介在アクセスノードネットワーク110に固有のものでなければならない。
プロバイダ102は、埋め込み式プロバイダでありえる。埋め込み式プロバイダとして、埋め込み式デバイス上で実現されるプロバイダ102がある。埋め込み式デバイスは、一般的なデスクトップコンピュータと関連している全く同じコンポーネントを含むことはないあるタイプのコンピュータデバイスである。例えば、モニターを含まない埋め込み式デバイスもあれば、キーボードやマウスを含まない埋め込み式デバイスもあれば、モニターも、キーボードも、マウスも含まない埋め込み式デバイスもある。多くの埋め込み式デバイスがマイクロコントローラベースのデバイスである、すなわち、埋め込み式デバイスの中央プロセッサはマイクロコントローラである。
「ネットワーク」という用語は本書では、1連のノードが通信経路によって相互接続されているシステムのことである。ノードとは、他のノードと通信している物理コンピュータデバイスである。ノードの特定的な動作は、それが実行するアプリケーションやソフトウエアによって決まる。ネットワークのノード上で実行されるアプリケーションは、データをネットワーク上でどのように送出するかに関するプロトコルや、形式化されたルールを実施するソフトウエアモジュールを介して互いに通信している。データ伝送のタイミングや、順序付けや、エラーチェックを取り扱うプロトコルがある。さらに、データのフォーマット方法やノードが交換するコマンドや応答を取り扱うプロトコルもある。協働するプロトコル集合はプロトコルスタックと呼ばれ、これらのプロトコルは、構築されたスタック上で互いの上に重なり合ったレイヤーとして動作する。プロトコルスタックの最上レイヤーをアプリケーションが用い、中間レイヤーはノード間でのデータのグループ(パケットやフレーム)の転送を取り扱い、最下レイヤーは、データを転送するネットワーキングハードウエアを直接的に取り扱う。
物理ネットワークは、ある種の物理媒体(例えば、電線、光ファイバ、空気)によって接続されたノードから成っている。この物理接続は、時として、リンクと呼ばれる。2つのノードに限られる物理ネットワークをポイントツーポイントと呼び、3つ以上のノードをサポートする物理ネットワークを多重アクセスと呼ぶ。多重アクセスネットワーク上の各ノードは、ネットワーク上の他のノードと区別するために用いられる物理アドレスを有している。
論理ネットワークを物理ネットワークに重ねて、固有のノードグループを指定する。論理ネットワーク上の各ノードは、プロトコルによってそのノードの物理アドレスにマッピングされる論理アドレスを有している。サブネットワーク、すなわち、サブネットとは、サブネット番号によって区別される、ネットワークの物理的または論理的に独立した部分のことである。
たいていのプロトコルは論理ネットワークを取り扱うが、これは、たいていの物理ネットワークのイシュー(issues)が多くの明確な実施例をすでに有しており、新たな物理レイヤーを定義する必要がないからである。論理ネットワークはまた、物理ネットワークから隔離されているという恩典を有しており、したがって、より一般的に有用である。例えば、TCP/IPは、論理ネットワーク(IP)の上に定義される。IPは多くの物理ネットワーク(イーサネット(登録商標)、シリアルネットワーク、無線ネットワークなど)上で稼動することが可能である。このため、TCP/IPは、ある特定的な物理ネットワークという形でしか定義されなかった場合より一般的な解決策となっている。
介在アクセスノード106は任意の数だけ、ネットワーク100上で用いられる。図2に、図示するように複数の介在アクセスノード206を含んでいるネットワーク200を示す。2つのリクエスタ204が、介在アクセスノード206と電子的に通信状態にある。また、リクエスタ/プロバイダ205が、介在アクセスノード206と電子的に通信状態にある。図2に示すネットワーク実施形態200上では、2つのリクエスタ204は双方ともが、プロバイダ202が提供しているサービス208を要求する。サービス208からのデータは、介在アクセスノードネットワーク210を介して送出される。
図2の介在アクセスノードネットワーク210は、図1の介在アクセスノードネットワーク110と同じように動作する。一般的な動作では、リクエスタ104および204とプロバイダ102および202とは、リクエスタ/プロバイダ205を含み、図1の介在アクセスノードネットワーク110と図2の介在アクセスノードネットワーク210を区別しない。図2はまた、図示するリクエスタ/プロバイダ205が示すように、ノードがリクエスタとプロバイダの双方として働くことを示している。このリクエスタ/プロバイダ205は、サービス228とバインディング232を提供している。図2はまた、サービス/バインディングが、介在アクセスノード206eによって提供されることを示している。
介在アクセスノード106と206は、ループを含む任意の仕方で接続される。図1と図2では、リクエスタ104、204および205とプロバイダ102、202、205および206eが図示されていた。リクエスタとプロバイダは、介在アクセスノード上で、互いに別々のノードであったり共存していたりする。
図3は、2つのバインディング412aと412bを有するプロバイダ402のブロック図である。プロバイダ402は、介在アクセスノードネットワーク110に接続すると、第1のバインディング公示430aと第2のバインディング公示430bを送出することによってその第1のバインディング412aと第2のバインディング412bを公示する。第1のバインディング公示430aは、この信号を受信するものすべてに対して、第1のバインディング412aが利用可能であり、その特定的なバインディングIDが418aであることを通知する。第2のバインディング公示430bは、この信号を受信するものすべてに対して、第2のバインディング412bが利用可能であり、その特定的なバインディングIDが418bであることを通知する。この情報によって、リクエスタはプロバイダ402からバインディング412aと412bを要求することが可能となる。また、第1の介在アクセスノード106と206がバインディングID418を割り当てて、それを追跡することが可能である。これが可能であるのは、プロバイダ402は単にオブジェクト114とインタフェース116を必要とするだけであるのに対して、介在アクセスノードは固有のバインディングID418を必要とするからである。
図4は三段階完遂プロセスを示すタイムチャート500である。時間軸501が示されている。介在アクセスノードA502は、ネットワーク100中に追加すべきバインディングを有している。ネットワーク100に接続した後のある時点、すなわち時点t1で、介在アクセスノードA502はバインディングの公示530をする。この公示530は、別の介在アクセスノードである介在アクセスノードB504に到達する。すると、この介在アクセスノードB504は、時点t2でバインディングに対して肯定応答505をする。この時点で、介在アクセスノードA502は、いまだ、介在アクセスノードB504に対する潜在的プロバイダとはなっていない。介在アクセスノードA502をロックして他方の介在アクセスノードB504に対してサービスまたはバインディングを提供するためには、介在アクセスノードA502は、時点t3に示すように、介在アクセスノードB504でバインディングを確認532する必要がある。この時点では、確認532をした後では、三段階完遂プロセスは終了しており、また、介在アクセスノードA502は、介在アクセスノードB504に対してサービスを提供することを完遂している。いったん確認したら、介在アクセスノードB504は、接続されているリクエスタ104があればそれに対してバインディングを公示する。ここで、この最終的な公示は、三段階完遂プロセスを用いる必要がない。
図5は、介在アクセスノード106による信号またはメッセージの伝播方法600を示すフローチャートである。公示430aなどのメッセージまたは信号は、図示する方法600にしたがって処理される。メッセージや信号が受信される602。次に、このメッセージ/信号が複製であるかどうかを、この信号またはメッセージの固有のバインディングID418をチェックすることによって判定する604。この信号が複製であれば、ノードは、即座にこの信号に対して肯定応答606をする。
信号/メッセージが複製でなければ、このノードに対して信号を送ったノード以外のこのノードに接続されているすべての介在アクセスノード106に対してこの信号/メッセージを伝播させる608。すると、ノードは、自身が信号を送った相手の接続済みのノードから肯定応答が来るのを待つ610。肯定応答が受信されおよび/またはタイムアウトになると、接続されているすべての介在アクセスノード106に確認が送られる612。ここで、この確認は、この信号のオリジナルの送出者によってしか始動されない。しかしながら、それは、すべての介在アクセスノード106によって転送される。
図5にその概要を示す方法600を実施すると、その結果、ループを含む介在ノード106の動作が最適化される。中間ノードに直接に接続されている(共存している)プロバイダは、非常に低いオーバヘッドで同じロジックを使用することが可能である。
複数のプロバイダがネットワークに接続して、同じバインディングを提供していると問題が発生することがある。本実施形態では、これらプロバイダの内の1つだけに実際にバインディングを提供させ、その一方で、同じバインディングを持つ追加のプロバイダをネットワークによって予備として保持しておいて、必要に応じて将来バインディングを提供することが可能となるようにすることが望ましい、と仮定されている。三段階完遂を用いて、どのプロバイダが実際にバインディングを提供するかを交渉する。各プロバイダは、バインディングを提供する等しい権利と能力を有していると仮定されており、したがって、どれが実際にそれを提供するかを決定するいかなる手段でも受け入れ可能である。
図6は、1つ以上の介在アクセスノードと2つのプロバイダ702aと702bを含んでいるネットワーク710のブロック図700である。プロバイダA702aは、バインディングIDのA718aを持つ第1のバインディング712aを含んでいる。プロバイダB702bは、バインディングIDのB718bを持つ第1のバインディング712bを含んでいる。したがって、バインディングIDは718a、718bと互いに異なってはいるが、双方のプロバイダは同じバインディング、すなわち、第1のバインディングを提供することが可能である。ネットワーク710およびプロバイダ702aと702bは、どのプロバイダ702がバインディングを提供して、どのプロバイダを後で、必要に応じてバインディングを提供するように予備として保持しておくかを交渉して決定する必要がある。この状況は、一般的には、2つ以上のプロバイダ702がほぼ同じ時間にネットワーク710に接続し、これで、プロバイダのどれもが、他のプロバイダが自身のバインディングを公示するまではそれらに気付かないような場合に発生する。
図7は、図6に示すような状況下でどのプロバイダ702がバインディング712を提供するかを決定する方法800の一実施形態を示すフローチャートである。フローチャート800を、説明の都合上、プロバイダA702aに関連して説明する。しかしながら、本実施形態では、これと同じ方法を、プロバイダB702bによっても実施されることが理解されるであろう。プロバイダA702aがネットワーク710に接続する802。次に、プロバイダA702aは、その固有のバインディングIDである718aを持つ自身の第1のバインディング712aを公示する804。ほぼ同時に、プロバイダB702bはネットワーク710に接続し、その固有のバインディングIDである718bを持つ自身の第1のバインディング712bを公示する。プロバイダが双方とも、分散三段階完遂プロセスを開始したことになる。
この分散三段階完遂プロセス中、プロバイダA702aは、プロバイダB702bに気付く806、具体的には、プロバイダB702bが同じ第1のバインディング712を提供しようとしていることに気付くようになる。プロバイダA702aは、例えば、プロバイダB702bから公示を受信するとこのことに気付く。次に、プロバイダA702aは、第1のバインディング712aを提供するかどうか決定する808。これは、プロバイダA702aのバインディングIDである718aを入力(1)として、プロバイダB702bのバインディングIDである718bを入力(2)として取る衝突関数(F)を評価することによって達成される。その結果810が真であれば、プロバイダA702aは、プロバイダB702bに対して期待される肯定応答を送らないことによって、プロバイダB702bの追加を停止する812。結果が偽であれば、プロバイダA702aは自分自身の追加をキャンセルする814。プロバイダA702aは、これに限られないが、キャンセルメッセージを送出することによって、または、単にいかなるバインディングも確認せず、したがって、他のどのノードとも三段階完遂を履行しないことを含む多くの方法で自分自身の追加をキャンセルし得る。
いったんこの方法800がプロバイダ702aと702bによって完了すると、1つのバインディングしかアクティブとならない。代替のプロバイダ(予備として保持されているバインディングを持つプロバイダ)がまだ存在している。現行のプロバイダが何らかの理由によってバインディングを解除すると、これらの「代替の」プロバイダは、同じバインディングを(上記のプロセスを用いて)追加しながらも、同時に、解除を「停止」し、次に、解除を継続させる。これによって、1つのプロバイダから別のプロバイダへのフェイルオーバーが可能となる。このプロセスを図8に関連して以下に説明する。
開示の実施形態では、衝突関数(F)は次の条件を満足する:(1)Fの結果、ブール代数の(真/偽)となり、(2)F(G1,G2)はF(G2,G1)の逆である。第1の条件は単に、Fを評価すると、その結果が真または偽となることを意味するだけである。第2の条件は、パラメータは同じでも順序が異なれば、衝突関数の結果は同じではないことを意味する。例えば、F(G1,G2)=F(G1,G2)であるが、F(G1,G2)はF(G2,G1)とは逆の結果となる。これらの条件によって、いかなるプロバイダも、あくまで、自分自身のバインディングID(例えばG1)を衝突関数のパラメータ中の最初に入れることが重要となる。代替として、いかなるプロバイダも、あくまで、自分自身のバインディングID(例えばG1)を衝突関数のパラメータ中の二番目に入れるようにしても良い。パラメータの順序が重要であるから、プロバイダは、パラメータを衝突関数に与えるに際して常に同じルールを適用する必要がある。Fの1例として、「未満」比較がある。バインディングID718aが6,000であり、バインディングID718bが10,000であり、Fが未満比較であれば、6,000<10,000であるから、F(6,000,10,000)の結果は真となる。加えて、10,000は6,000未満ではないから、F(10,000,6,000)の結果は偽となる。
図8は、1つのプロバイダから別のプロバイダへのフェイルオーバーを可能とする方法900の実施形態である。状況が図6に示すとおりであり、図7の方法が実行され、これで、ただ1つのプロバイダ、すなわち、プロバイダA702aがアクティブとなってバインディング712aを提供しているものと仮定する。プロバイダA702aは、システムからバインディング712aを解除しようと試みる902。例えば、おそらくプロバイダA702aがオフラインとなるか誤動作するかして、動作継続が不可能となる。プロバイダB702bは、解除を受信すると904、自身が同じバインディングを提供可能であるかどうかチェックして判定する906。同じバインディングを提供不可能であれば、バインディングの解除は継続する908。この状況では、プロバイダB702bは第1のバインディング712bを有さず、その結果、同じバインディング(すなわち第1のバインディング)を提供可能である。すると、プロバイダB702bは、第1のバインディングの解除を停止する910。プロバイダB702bはまた、上記のプロセスを用いて、第1のバインディング712bをシステムまたはネットワークに対して追加する912。プロバイダB702bは、最終的に、第1のバインディング712aの解除動作の継続を許容する914。すると、プロバイダB702bは、第1のバインディング712bをそのバインディングIDであるB718bと一緒に提供し始め、一方、バインディングIDであるA718aを持つ第1のバインディング712aが解除される。これによって、1つのプロバイダから別のプロバイダへのフェイルオーバーが可能となる。
図9は、リクエスタ104がプロバイダ102とのサービス通信リンクを確立する方法1000の実施形態のフローチャートである。リクエスタ104は、ネットワーク100に接続する1002。次に、リクエスタ104は、バインディングのリストを介在アクセスノード106に要求する1004。このバインディングリストを用いて、リクエスタは、自身がどのようなサービスを必要としているか判定可能となり、したがって、プロバイダ102にサービスを要求する1006。介在アクセスノードネットワーク110や210は、リクエスタ104からの要求をプロバイダ102に通信する1008。
図10は、埋め込み式プロバイダまたは埋め込み式リクエスタとして用いられる埋め込み式デバイスの実施形態で用いられるハードウエアコンポーネントのブロック図である。
CPU1110すなわちプロセッサは、バス1112を介してCPU1110に連結されている他のコンポーネントを含む埋め込み式デバイス1102の動作を制御するためのものである。CPU1110は、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサまたは技術上周知の他のデバイスとして実現される。CPU1110は、メモリー1114に記憶されているプログラムコードに基づいて論理演算と算術演算を実行する。ある実施形態では、メモリー1114は、CPU1110と一緒に含まれるオンボードメモリーである。例えば、マイクロコントローラはしばしばある分量のオンボードメモリーを含んでいる。
埋め込み式デバイス1102はまた、ネットワークインタフェース1116を含んでいる。ネットワークインタフェース1116によって、埋め込み式デバイス1102とネットワーク100に接続されている他のデバイスとの間の通信が容易となる。ネットワーク100は、ポケベルネットワーク、セルラーネットワーク、グローバル通信ネットワーク、インターネット、コンピュータネットワーク、電話ネットワークなどである。ネットワークインタフェース1116は、アプリケーションネットワーク100用の標準プロトコルにしたがって動作する。
埋め込み式デバイス1102はまた、メモリー1114を含んでいる。メモリー1114は、一時的なデータを記憶するランダムアクセスメモリー(RAM)を含んでいる。代替として、またはそれに加えて、メモリー1114は、固定コードや構成データなどのより永久的なデータを記憶する読み出し専用メモリー(ROM)を含むことがある。メモリー1114はまた、ハードディスクドライブなどの磁気記憶装置として実現されたりする。メモリー1114は、電子情報を記憶可能であれば、いかなるタイプの電子デバイスでも良い。
埋め込み式デバイス1102はまた、通信ポート1118を含むことがあるが、これによって他のデバイスとの通信が容易となる。埋め込み式デバイス1102はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、モニター、スピーカ、プリンタなどの入/出力デバイス1120を含んでいる。
本システムと方法はいくつかの状況で用いられる。図11に、本システムと方法が実現されているシステムの一実施形態を示す。図11は、照明コントローラシステム1208を含んでいる照明システム1200の一実施形態を示すブロック図である。図11の照明システム1200は、家庭内のさまざまな部屋に取り付けられる。図示するように、システム1200は、部屋A1202、部屋B1204と部屋C1206を含んでいる。図11には部屋を3つ示しているがシステム1200は、家庭や、住居や他の環境の内部の部屋がいくつであっても、どのような部屋であっても実現される。
照明コントローラシステム1208は、システム1200内の追加の埋め込み式のシステムやコンポーネントを監視して制御する。一実施形態では、部屋A1202と部屋B1204のそれぞれが、スイッチコンポーネント1214や1218を含んでいる。このスイッチコンポーネント1214や1218もまた、第2の埋め込み式システム1216や1220を含んでいる。第2の埋め込み式システム1216や1220は、照明コントローラシステム1208から命令を受信する。すると、第2の埋め込み式システム1216や1220は、これらの命令を実行する。これらの命令には、さまざまな光コンポーネント1210、1212、1222および1224のパワーをオン/オフする命令が含まれる。これらの命令にはまた、さまざまな光コンポーネント1210、1212、1222および1224の明るさを増減させる命令が含まれる。これらの命令にはさらに、さまざまな光コンポーネント1210、1212、1222および1224の明るさをさまざまなパターンで配置する命令が含まれる。第2の埋め込み式システム1216や1220によって、照明コントローラシステム1208は、部屋A1202と部屋B1204内に配置されている各光コンポーネント1210、1212、1222および1224を監視、制御し易くなる。
照明コントローラシステム1208はまた、図示の部屋C1206中の第2の埋め込み式システム1228を含む光コンポーネント1226に対して直接に命令を提供する。照明コントローラシステム1208は、第2の埋め込み式システム1228に対して、個々の光コンポーネント1226の電源をオン/オフするように命令する。同様に、照明コントローラシステム1208から受信する命令には、個々の光コンポーネント1226の明るさを増減させる命令が含まれる。
照明コントローラシステム1208はまた、システム1220内の個々の光コンポーネント1230や1232を直接的に監視しこれに命令を提供する。これらの命令には、既述した同様の命令が含まれる。
図12は、本発明の本システムと方法が実現されているシステムのさらなる実施形態である。図12は、セキュリティシステム1300を図示するブロック図である。図示する実施形態中のセキュリティシステム1300は、部屋A1302、B1304およびC1306中で実現されている。これらの部屋は、家庭や他の囲い込まれた環境の領域に存在する。システム1300はまた、部屋A1302、B1304およびC1306がそれぞれ領域や境界を表している開放環境中で実現される。
システム1300はセキュリティコントローラシステム1308を含んでいる。このセキュリティコントローラシステム1308は、システム1300内のさまざまなコンポーネントを監視してこれらからの情報を受信する。例えば、動きセンサー1314や1318は、第2の埋め込み式システム1316や1320を含んでいる。動きセンサー1314や1318は、すぐ隣のスペースに動きがないか監視し、第2の埋め込み式システム1316や1320を介して動きが検出されたらセキュリティコントローラシステム1308に警告する。セキュリティコントローラシステム1308はまた、システム1300内のさまざまなコンポーネントに命令を提供する。例えば、セキュリティコントローラシステム1308は、第2の埋め込み式システム1316や1320に命令を出力して、窓センサー1310や1322およびドアセンサー1312や1324の電源をオン/オフさせる。一実施形態では、第2の埋め込み式システム1316や1320は、窓センサー1310や1322が窓の動きを検出するとセキュリティコントローラシステム1308にそれを通知する。同じように、第2の埋め込み式システム1316や1320は、ドアセンサー1312や1324がドアの動きを検出するとセキュリティコントローラシステム1308にそれを通知する。第2の埋め込み式システム1316や1320は、動きセンサー1314や1318に対して、動きセンサー1314や1318内のLED(図示せず)を起動するように命令する。
セキュリティコントローラシステム1308は、システム1300内の個々のコンポーネントを直接的に監視してこれらの命令を提供する。例えば、セキュリティコントローラシステム1308は、動きセンサー1330や窓センサー1332を監視してこれらに対して電源をオン/オフする命令を提供する。セキュリティコントローラシステム1308はまた、動きセンサー1330や窓センサー1332に対して、センサー1330と1332内のLED(図示せず)や音声警告の通知を起動する。
システム1300を備えている個々の各コンポーネントは、第2の埋め込み式システムを含んでいる。例えば、図12に、第2の埋め込み式システム1328を含んでいるドアセンサー1326を図示する。セキュリティコントローラシステム1308は、既述したのと同じような仕方で第2の埋め込み式システム1328を監視してこれに命令を提供する。
図13は、ホームシステム1400の一実施形態を示すブロック図である。ホームシステム1400は、照明システム1200や、セキュリティシステム1300や、類似物などのさまざまなシステムの監視を容易にするホームコントローラ1408を含んでいる。ホームシステム1400によって、ユーザは、1つ以上の埋め込み式システムによってさまざまなコンポーネントとシステムを制御することが可能となる。一実施形態では、ホームコントローラシステム1408は、図11や図12を参照して既述したのと同じ仕方で監視して情報を提供する。図示する実施形態では、ホームコントローラ1408は、第2の埋め込み式システム1420を介して加熱コンポーネント1424に命令を提供する。加熱コンポーネント1424は、暖炉や、住居地やオフィスで一般的に見受けられる他の暖房器具を含んでいる。ホームコントローラシステム1408は、第2の埋め込み式システム1420を介して加熱コンポーネント1424の電源をオン/オフする命令を提供する。
同じように、ホームコントローラ1408は、冷却コンポーネント1430などのホームシステム1400内のコンポーネントを直接的に監視してこれに命令を提供する。冷却コンポーネント1430は、エアコンや、住居地やオフィスで一般的に見受けられる他の冷房器具を含んでいる。セントラルホームコントローラ1408は、中央埋め込み式システム1408が収集した温度読み取り値に基づいて、冷却コンポーネント1430に対して電源をオン/オフするように命令する。ホームシステム1400は、図11と図12を参照して既述したのと同じように機能する。
埋め込み式デバイスには多くのタイプがあり、デバイスネットワークを生成するには多くの理由がある。デバイスネットワーキングの応用分野の例をいくつか既述する。当業者は、これらが単なる例示に過ぎないことを理解されるであろう。
デバイスネットワーキングの応用分野の1例として、遠隔監視がある。多くの有用なデバイスネットワークでは、遠隔監視が行われるが、これは、1つのノードから別のノードへの一方通行の情報転送である。このような応用分野では、プロバイダは一般的には、リクエスタに応答してある情報を報告する小型のサーバとして動作する。プロバイダはまた、自身の状態情報を加入者に公開するように設定することが可能である。リクエスタは、おそらくは更新内容を送ってくる頻度を制限する何らかの手段を用いて、状態が変化するといつでも周期的に報告または更新するように要求する。プロバイダは、何らかの事象や例外的な状況が発生したらそれをリクエスタに通知するように設定することが可能である。
デバイスネットワーク応用分野の別の例として、遠隔制御があるが、この場合、リクエスタが、何か特定の動作を発動させるようなコマンドをプロバイダに送ることが可能である。たいていの場合、遠隔制御には、ある種のフィードバックが伴う。
デバイスネットワーク応用分野のさらに別の例として、分散制御システムがある。個々のプロバイダと関連する機能とデータを、ネットワークを介して組み合わせて調整し、これによって、付加価値を持つ分散システムを生成することが可能である。時として、これらの分散制御システムは、大なり小なり自動的に設定可能である。多くの場合、より洗練されたデバイスは、ピアツーピアネットワークと一緒になって、構成や、監視や診断といった業務を実行する。このようなシステムは、ピアとして通信する、または、システム中の各オブジェクトが制御ロジックのすべてを含む1つの中央ノードと通信しているマスタースレーブ構成を介して通信するオブジェクトによって生成される。
ネットワーキング応用分野のカテゴリ毎に、リクエスタがプロバイダに接続するさまざまな仕方がある。比較的少数のプロバイダを伴うような場合、リクエスタは、ウェブブラウザや、ポケベルや、さらにはWAPイネーブル式携帯電話を用いて、大なり小なり対話式にプロバイダと通信する。しかしながら、プロバイダの数が増えるに連れて、これらの方法は効果がなくなり、リクエスタは、表計算ソフトやデータベースアプリケーションなどのより一般的なデータ管理技法を用いることになる。
さまざまなネットワークが時の経過と共に、また、さまざまな技術によって実現されるに連れて、各ネットワークが自分自身のプロトコルを用いているため、互いに通信不可能であるような、複数のネットワークが同じ家庭や設備の中に同居するというような状況が発生しかねない。この場合、これらさまざまなネットワークとプロトコルを橋渡しして、1つの大規模なネットワークを作成することが可能である。これによって、1つのアプリケーションが各プロバイダにアクセスし、これによって、プロバイダすべての対話を簡略化することが可能である。
情報と信号は、互いに異なったさまざまな技術や技法のいずれかを用いて表される。例えば、上の説明全体にわたって引用されたデータ、命令、コマンド、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁場や磁性粒子、光場や光粒子またはこれらの何らかの組み合わせによって表される。
本書に開示する実施形態と関連して説明したさまざまな解説的な論理ブロック、モジュール、回路呼びアルゴリズムステップは、電子式ハードウエア、コンピュータソフトウエアまたはこれら双方の組み合わせとして実現される。ハードウエアとソフトウエアのこの交換可能性を明瞭に示すために、さまざまなコンポーネント、ブロック、モジュール、回路およびステップを図示して、一般にその機能性という点について上で解説した。このような機能性がハードウエアとして実現されるかソフトウエアとして実現されるかは、特定の応用分野と全体的なシステムに課せられる設計上の制約によって決まる。当業者は、特定の応用分野毎に上記の機能性をさまざまな仕方で実現するが、どのように実現するかについてのこのような判断は、本発明の範囲から逸脱するものと解釈すべきではない。
本書に開示する実施形態を参照して説明したさまざまな解説的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)信号もしくは他のプログラマブル論理デバイス、離散ゲートもしくはトランジスタロジック、離散ハードウエアコンポーネント、または本書に記載する機能を実行するように設計されたこれらの何らかの組み合わせによって実現または実施される。汎用プロセッサは、マイクロプロセッサであるが、代替例では、なんらかの従来型プロセッサや、コントローラや、マイクロコントローラや、状態機械であってもよい。プロセッサはまた、コンピュータデバイスの組み合わせ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと一緒になった1つ以上のマイクロプロセッサまたはこのような他の何らかの構造体の組み合わせとして実現される。
本書に開示する実施形態に関連して説明した方法やアルゴリズムのステップは、直接にハードウエアとして、プロセッサによって実行されるソフトウエアモジュールとして、または双方の組み合わせとして実現される。ソフトウエアモジュールは、RAMメモリー、フラッシュメモリー、ROMメモリー、EPROMメモリー、EEPROMメモリー、レジスタ、ハードディスク、取り外し式ディスク、CD−ROMまたは技術上周知の他の何らかの形態の記憶媒体に常駐している。例示の記憶媒体はプロセッサに連結され、これで、プロセッサが記憶媒体から情報を読み取ったりこれに書き込んだりすることが可能となるようにしている。代替例では、記憶媒体はプロセッサと一体になっている。プロセッサと記憶媒体はASIC中に常駐している。ASICはユーザ端末に常駐している。代替例では、プロセッサと記憶媒体は、ユーザ端末中で個別の部品として常駐している。
本書に開示する方法は、説明した方法を達成するステップや動作を1つ以上含んでいる。これらの方法のステップおよび/または動作は、本発明の範囲から逸脱することなく互いと交換可能である。言い換えれば、本実施形態を正しく動作させるためにステップや動作の特定的な順序が必要でない限り、特定のステップおよび/動作の順序および/または使用は、本発明の範囲から逸脱することなく修正可能である。
本発明の具体的な実施形態と応用分野を図示して説明したが、本発明は、本書に開示する構成とコンポーネントにだけ限られるものではないことを理解すべきである。当業者には明らかなさまざまな修正、変化、変更を、本発明の精神と範囲から逸脱することなく本書に開示する本発明の方法とシステムの装置、動作および詳細に施すことが可能である。
本発明は埋め込み式システムに適用可能である。
本発明の範例的実施例が、以下の説明とそれに付された請求項を添付図面に絡め参酌することで、より十全に明らかとなろう。それらの図面は、範例的実施例のみを図化しており、従って、発明の範囲の限定と捉えるべきではないとの理解の下、本発明の範例的実施例を更に特定し詳述する説明を、次に、添付図面を用いて行うが、その図面中:
コンピュータネットワーク上の2つの介在アクセスノードを示すネットワークブロック図である。 コンピュータネットワーク上のいくつかの介在アクセスノードを示すネットワークブロック図である。 2つのバインディングを持つプロバイダのブロック図である。 三段階完遂プロセスを示すタイムチャートである。 介在アクセスノードによる信号またはメッセージの伝播方法を示すフローチャートである。 1つ以上の介在アクセスノードと2つのプロバイダとを含んでいるネットワークのブロック図である。 どのプロバイダがバインディングを提供するかを決定する方法の一実施形態を示すフローチャートである。 1つのプロバイダから別のプロバイダへのフェイルオーバーを可能とする実施形態のフローチャートである。 リクエスタがプロバイダとのサービス通信リンクを確立する方法の実施形態のフローチャートである。 コンピュータデバイスまたは埋め込み式デバイスの実施形態で用いられるハードウエアコンポーネントのブロック図である。 本書に開示するシステムと方法を利用する照明システムを示すブロック図である。 本書に開示するシステムと方法を利用するセキュリティシステムを示すブロック図である。 本書に開示するシステムと方法を利用するホームシステムを示すブロック図である。

Claims (20)

  1. バインディングの交渉方法を実施するように構成されたコンピュータデバイスであって、
    プロセッサと、
    前記プロセッサと電子的通信状態にあるメモリーと、
    第1のバインディングIDを持つ第1のバインディングと、
    前記メモリーに記憶される命令とを備え、
    前記命令は、
    ネットワーク上で前記第1のバインディングを公示することと、
    第2のプロバイダも前記ネットワーク上で第2のバインディングIDを持つ前記第1のバインディングを提供していることを見つけることと、
    前記コンピュータデバイスが前記第1のバインディングを提供すべきであるかどうかを、衝突関数(F)を評価することによって判定することと、
    前記衝突関数の結果に基づいて、前記第2のバインディングIDを持つ前記第1のバインディングの追加を停止するか、または、前記第1のバインディングIDを持つ前記第1のバインディングをキャンセルすることと
    を含む方法を実施するように実行可能であるコンピュータデバイス。
  2. 前記第1のバインディングがオブジェクトとインタフェースを備える、請求項1に記載のコンピュータデバイス。
  3. 前記オブジェクトと前記インタフェースを用いることによってサービスがアクセスされる、請求項2に記載のコンピュータデバイス。
  4. 前記衝突関数が、前記第1のバインディングIDと前記第2のバインディングIDを入力として用いる、請求項1に記載のコンピュータデバイス。
  5. 前記衝突関数がブール代数の演算結果を提供する、請求項4に記載のコンピュータデバイス。
  6. 前記衝突関数(F)が、F(A,B)がF(B,A)と同じではないという条件を満足する、請求項5に記載のコンピュータデバイス。
  7. 前記衝突関数(F)が、F(A,B)=真であれば、F(B,A)=偽という条件を満足する、請求項5に記載のコンピュータデバイス。
  8. 前記衝突関数(F)が未満関数を含む、請求項5に記載のコンピュータデバイス。
  9. 前記命令は、
    前記ネットワークから、ネットワーク上の第2のバインディングを解除しようとする解除試行を受信することと、
    前記コンピュータデバイスが、前記第2のバインディングを提供する能力があるかどうか判定することと、
    前記コンピュータデバイスが、前記第2のバインディングを提供することが不可能であれば、前記解除試行を継続させることと、
    前記コンピュータデバイスが、前記第2のバインディングを提供することが可能であるが、現時点では前記第2のバインディングを提供していない場合に、前記解除試行を停止して、前記第2のバインディングを前記ネットワークに追加することと
    を含む第2の方法を実施するように実行可能である、請求項1に記載のコンピュータデバイス。
  10. 前記コンピュータデバイスが、三段階完遂方法を実施するように構成されている、請求項1に記載のコンピュータデバイス。
  11. 前記コンピュータデバイスが、照明制御システムの一部である埋め込み式デバイスである、請求項1に記載のコンピュータデバイス。
  12. 前記コンピュータデバイスが、セキュリティシステムの一部である埋め込み式デバイスである、請求項1に記載のコンピュータデバイス。
  13. 前記コンピュータデバイスが、ホームコントローラシステムの一部である埋め込み式デバイスである、請求項1に記載のコンピュータデバイス。
  14. 2つ以上のプロバイダ間で交渉をバインディングする方法であって、
    第1のバインディングIDを持つ第1のバインディングを第1のプロバイダによってネットワーク上で公示することと、
    第2のプロバイダも前記ネットワーク上で第2のバインディングIDを持つ前記第1のバインディングを提供していることを見つけることと、
    前記第1のプロバイダが前記第1のバインディングを提供すべきであるかどうかを、衝突関数(F)を評価することによって判定することと、
    前記衝突関数の結果に基づいて、前記第2のバインディングIDを持つ前記第1のバインディングの追加を停止するか、または、前記第1のバインディングIDを持つ前記第1のバインディングをキャンセルすることと
    を含む方法。
  15. 前記衝突関数がブール代数の演算結果を出力する、請求項14に記載の方法。
  16. 前記衝突関数(F)が、F(A,B)がF(B,A)と同じではないという条件を満足する、請求項15に記載の方法。
  17. 前記衝突関数(F)が、F(A,B)=真であれば、F(B,A)=偽という条件を満足する、請求項15に記載の方法。
  18. 前記ネットワークから、ネットワーク上の第2のバインディングを解除しようとする解除試行を受信することと、
    前記第1のプロバイダが前記第2のバインディングを提供する能力があるかどうか判定することと、
    前記第1のプロバイダが、前記第2のバインディングを提供することが不可能であれば、前記解除試行を継続させることと、
    前記第1のプロバイダが、前記第2のバインディングを提供することが可能であるが、現時点では前記第2のバインディングを提供していない場合に、前記解除試行を停止して、前記第2のバインディングを前記ネットワークに追加することと
    をさらに含む、請求項14に記載の方法。
  19. 前記第1のプロバイダと前記第2のプロバイダが、三段階完遂方法を実施して用いる、請求項18に記載の方法。
  20. 2つ以上のプロバイダ間で交渉をバインディングする方法を実施する実行可能命令を含むコンピュータ読み取り可能な媒体であって、前記方法が、
    第1のバインディングIDを持つ第1のバインディングを第1のプロバイダによってネットワーク上で公示することと、
    第2のプロバイダも前記ネットワーク上で第2のバインディングIDを持つ前記第1のバインディングを提供していることに見つけることと、
    前記第1のプロバイダが前記第1のバインディングを提供すべきであるかどうかを、衝突関数(F)を評価することによって判定することと、
    前記衝突関数の結果に基づいて、前記第2のバインディングIDを持つ前記第1のバインディングの追加を停止するか、または、前記第1のバインディングIDを持つ前記第1のバインディングをキャンセルすることと
    を含む、コンピュータ読み取り可能な媒体。
JP2007525084A 2005-12-13 2006-01-18 分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法 Expired - Fee Related JP4466737B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/302,306 US8533255B2 (en) 2005-12-13 2005-12-13 Systems and methods for handling failover in a distributed routing environment
PCT/JP2006/301082 WO2007069344A1 (en) 2005-12-13 2006-01-18 Systems and methods for handling failover in a distributed routing environment

Publications (2)

Publication Number Publication Date
JP2008522449A true JP2008522449A (ja) 2008-06-26
JP4466737B2 JP4466737B2 (ja) 2010-05-26

Family

ID=36756621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007525084A Expired - Fee Related JP4466737B2 (ja) 2005-12-13 2006-01-18 分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法

Country Status (7)

Country Link
US (1) US8533255B2 (ja)
EP (1) EP1961192B1 (ja)
JP (1) JP4466737B2 (ja)
KR (1) KR100996026B1 (ja)
CN (1) CN101120578A (ja)
RU (1) RU2399161C2 (ja)
WO (1) WO2007069344A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015517288A (ja) * 2012-04-30 2015-06-18 ジオ・インコーポレイテッド 構成可能なコネクタ接続式サーバ増補型制御システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803981B (zh) * 2016-12-30 2018-05-22 广州高清视信数码科技股份有限公司 移动终端与电视机顶盒的绑定、信息交互方法及系统
CN109218365B (zh) * 2017-07-04 2021-12-10 百度在线网络技术(北京)有限公司 数据传输方法和系统
CN108107717B (zh) * 2017-09-27 2021-01-12 西北工业大学深圳研究院 一种适用于量化多自主体系统的分布式控制方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455865A (en) * 1989-05-09 1995-10-03 Digital Equipment Corporation Robust packet routing over a distributed network containing malicious failures
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US6031817A (en) * 1996-12-23 2000-02-29 Cascade Communications Corporation System and method for providing notification of malfunctions in a digital data network
US6594235B1 (en) * 1999-04-28 2003-07-15 3Com Corporation Method of triggering reroutes in an asynchronous transfer mode network
US6671819B1 (en) * 2000-04-06 2003-12-30 Bbnt Solutions Llc System and methods routing packets on alterate paths
US7089311B2 (en) * 2001-01-31 2006-08-08 International Business Machines Corporation Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection
US7068595B2 (en) * 2001-04-13 2006-06-27 Sun Microsystems, Inc. Method and apparatus for facilitating instant failover during packet routing
US8180871B2 (en) * 2001-05-23 2012-05-15 International Business Machines Corporation Dynamic redeployment of services in a computing network
CA2496421A1 (en) * 2004-01-28 2005-07-28 Gridiron Software Inc. Zero configuration peer discovery in a grid computing environment
US7272728B2 (en) * 2004-06-14 2007-09-18 Iovation, Inc. Network security and fraud detection system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015517288A (ja) * 2012-04-30 2015-06-18 ジオ・インコーポレイテッド 構成可能なコネクタ接続式サーバ増補型制御システム

Also Published As

Publication number Publication date
RU2399161C2 (ru) 2010-09-10
US8533255B2 (en) 2013-09-10
RU2008123830A (ru) 2009-12-27
EP1961192B1 (en) 2013-05-08
US20070135941A1 (en) 2007-06-14
WO2007069344A1 (en) 2007-06-21
KR20080077146A (ko) 2008-08-21
EP1961192A1 (en) 2008-08-27
CN101120578A (zh) 2008-02-06
JP4466737B2 (ja) 2010-05-26
KR100996026B1 (ko) 2010-11-22

Similar Documents

Publication Publication Date Title
KR100970530B1 (ko) 컴퓨터 네트워크 상의 선택식 멀티캐스트 프록시를제공하기 위한 시스템 및 방법
JP4412405B2 (ja) ネットワーク内通信用転送処理を選択するためのシステムと方法
US6876628B2 (en) Optimization of subnetwork bandwidth based on desired subscription rates
CA2611527A1 (en) Software architecture system and method for communication with, and management of, at least one component within a household appliance
US8626873B2 (en) Systems and methods for managing a provider's online status in a distributed network
JP4466737B2 (ja) 分散ルーティング環境下でフェイルオーバーを取り扱うシステムと方法
EP1964373B1 (en) Systems and methods for efficient electronic communication in a distributed routing environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100215

R150 Certificate of patent or registration of utility model

Ref document number: 4466737

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees