ネットワーク装置のバックアップ
1つのネットワーク装置が、他の少なくとも1つのネットワーク装置をそれ自体のバックアップとして選択し、それ自体が使用不能なときに、そのネットワーク装置の役割を1つ(または複数)のバックアップ・ネットワーク装置が果たす際に使用される情報を通信する。このネットワーク装置はまた、これをそれ自体のバックアップ装置として選択した、少なくとも1つのネットワーク装置から、その1つ(または複数)の選択元の装置が使用不能なときに、その1つ(または複数)の選択元の装置の役割を果たす際に使用する情報を受信する。各ネットワーク装置は、それがバックアップとして有するのと同じ数の装置のバックアップとして働くことができる。バックアップ装置の選択は、装置の信頼性に基づくものであってよい。一実施形態では、各ネットワーク装置は、1次および2次バックアップを有する。1次バックアップは、ネットワーク装置が使用不能になったときに、ネットワーク装置の役割を果たし、2次バックアップは、ネットワーク装置とその1次バックアップがどちらも使用不能であるときに、ネットワーク装置の役割を果たす。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、参照によりその内容が本明細書に組み込まれている、2003年11月21日に出願された優先権仮出願第60/523703号の利益を主張する。
【0002】
本発明は、たとえば分散型ピア・ツー・ピア通信ネットワーク内でのピアのバックアップなど、ネットワーク装置のバックアップに関する。
【背景技術】
【0003】
多くの知られている回線交換(circuit−switched)またはパケット交換電話ソリューションでは、集中型の装置(たとえば、スイッチまたは構内交換機(PBX))が、呼の終了、呼の処理、交換、および/または呼の対応機能を提供する。大規模なシステムでは、中央装置が、コンピュータに電話セットを接続するライン・カードと呼ばれる回路基板上でいくつかの機能を制御する、強力なコンピュータであることもある。小規模なシステム(たとえば、端末セットが10個以下のシステム)では、中央の知能(intelligence)が実際に、中央の処理装置を保持するように特別に設計された「黄金の」電話セット内に所在していることもある。
【0004】
中央装置のとる形態に関わらず、いくつかの端末セット(たとえば、有線または無線電話セット)は通常、中央装置に接続される。中央装置と比較すると、端末セットは通常「ダム(dumb)」デバイスである。すなわち、端末セットは単に、フック・スイッチ情報およびキー・プレス(たとえば、デュアル・トーン多周波数すなわちDTMFトーン)を中央装置に送信し、ダイヤル・トーン、呼出音、音声信号など、中央装置からの信号を音に(あるいは、場合によっては画像またはビデオに)変換することしかできない。端末セットは通常、他のどんな端末セットの存在にも気付かず、別の端末セットとそれ自体を相互接続する固有の能力を有していない。
【0005】
集中型電話システムでは、ネットワーク内での電話セットの管理および発見は通常、中央装置によって実施される。たとえば、従来の回線交換型の時分割多重(TDM)電話システムでは、各端末セットが、たとえば中央の呼処理装置上のポートに接続されることがある。典型的には、各端末セットは、電源投入時に発生する初期化シーケンスの一部として、それ自体の使用可能性を中央装置に告知する。中央装置は、新しい端末セットが接続されたときのかかる告知の有無について各ポートを監視し、したがって新たに追加された端末セットを「発見」することができる。
【0006】
集中型のボイス・オーバ・インターネット・プロトコル(IP)すなわちVoIP電話システムでは、これと非常に似てはいるがやや複雑化した手続きが利用されるものの、端末セットは依然として、ネットワークを介してそれ自体の使用可能性を中央の呼処理装置に告知する。当技術分野で知られているように、VoIPは、IPに基づくデータ・ネットワークを介して呼を送出する。通信は、パケット・データの形をとっており、したがって、回線交換ネットワークの場合のような固定式の接続は存在しない。通信するのは、テキスト、音声、グラフィック、あるいはビデオであってもよい。IP装置は、相互運用可能なように、H.323やセッション開始プロトコル(SIP)のような標準に準拠していることがある。H.323標準には一般に、端末、ネットワーク装置、およびサービスの間でのマルチメディア通信がどのように発生するかが記述されている。SIP標準は、インターネットを介するマルチメディア・セッションをセット・アップし、変更し、解体するための技術要件をカバーする。本明細書で使用する「呼」という用語は、2つのエンド・ポイント間でのマルチメディア通信を指し、また、音声電話を含む。
【0007】
中央装置が回線交換型であるのかそれともパケット交換型であるのかに関わらず、新しい端末セットを発見する過程の中で、中央装置は通常、ネットワーク・アドレスの形の加入者電話番号(Directory Number:DN)の割当ておよび管理を自動的に行うことになる。DNは、たとえばPBXの内線であってもよい。DNは、個々のセットに割り当てられると、中央装置の維持しているDNのリストに加えられる。呼出し元の端末セットからDNが転送されたときに、集中型の装置が呼び出すべき物理的な端末セットの識別を判定できることが、この集中型のリストに基づいているだけであることが多い。
【特許文献1】優先権仮出願第60/523703号
【発明の開示】
【発明が解決しようとする課題】
【0008】
集中型システムでは通常、各端末セットを対象とする呼の取扱いオプション(call treatment options)も、中央に格納され、関連する端末セットが中央装置から切断されている場合でさえ、依然として使用可能なままである。「呼の取扱いオプション」という用語は、着呼をどのように処理すべきかを、たとえば音声メールに転送する前に鳴動が何回発生すべきか、または呼を別の内線に自動的に転送すべきかどうかを決定する設定を指す。呼の取扱いオプションが使用可能なままである故に、切断状態となった端末セット宛ての着呼であるにも関わらず、その端末セットが接続されていたときと同じ様式で着呼が処理されることもある。
【0009】
より高い処理能力に伴うコストおよびメモリが減少し続けるに従い、ネットワークに接続されるあらゆる電話セットに呼処理エンジンを含めることが、実現可能になってきている。かかるシステムでは、中央装置を排除することが望ましいかもしれない。かかる非集中型(decentralized)システムは、分散型電話システムと呼ばれることもある。
【0010】
分散型電話システムでは、中央装置が存在しないので、端末セットを対象とする呼の取扱いオプションを中央装置に格納することは、不可能である。呼の取扱いオプションは、それを適用する個々の端末セットに格納することもできる。しかし、かかる端末セットが切断状態となり、あるいはその他の原因で非アクティブ状態となった場合は、その端末セットを対象とする呼の取扱いオプションにアクセス不能となることもある。端末セットが使用不能になったときでさえ、その端末セットを対象とする呼の取扱いオプションが依然として使用可能なままであることが、望ましいはずである。
【0011】
より一般的にいえば、1つのネットワーク装置が使用不能になったときにも、その使用不能状態の間に、その使用不能なネットワーク装置の役割を別のネットワーク装置が果たすことを可能とし得るように、そのネットワーク装置に特有のデータが依然として使用可能なままであることが、望ましいはずである。
【課題を解決するための手段】
【0012】
1つのネットワーク装置が、他の少なくとも1つのネットワーク装置をそれ自体のバックアップとして選択し、それ自体が使用不能なときに、そのネットワーク装置の役割を1つ(または複数)のバックアップ・ネットワーク装置が果たす際に使用される情報を通信する。このネットワーク装置はまた、これをそれ自体のバックアップ装置として選択した、少なくとも1つのネットワーク装置から、その1つ(または複数)の選択元の装置が使用不能なときに、その1つ(または複数)の選択元の装置の役割を果たす際に使用する情報を受信する。各ネットワーク装置は、それがバックアップとして有するのと同じ数の装置のバックアップとして働くことができる。バックアップ装置の選択は、装置の信頼性に基づくものであってよい。一実施形態では、各ネットワーク装置は、1次および2次バックアップを有する。1次バックアップは、ネットワーク装置が使用不能になったときに、ネットワーク装置の役割を果たし、2次バックアップは、ネットワーク装置とその1次バックアップがどちらも使用不能であるときに、ネットワーク装置の役割を果たす。
【0013】
本発明の一態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置において、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択する工程であって、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される工程と、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信する工程であって、通信された前記情報は、前記1つのネットワーク装置が使用不能であるときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される工程と、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信する工程であって、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される工程とを含む方法が、提供される。
【0014】
本発明の他の態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置であって、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択され、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用され、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用されるように適合されたネットワーク装置が、提供される。
【0015】
本発明の他の態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置での実行を対象とするマシン実行可能なコードを含むマシン可読媒体であって、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される、マシン実行可能なコードと、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される、マシン実行可能なコードと、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される、マシン実行可能なコードとを備えるマシン可読媒体が、提供される。
【0016】
本発明の特定の諸実施形態に関する以下の説明を添付の図面と併せて考察すれば、本発明のその他の諸態様および特徴が当業者には明らかとなるであろう。
【0017】
ここで、本発明の好ましい諸実施形態を、添付の図面を参照して説明する。
【発明を実施するための最良の形態】
【0018】
概要として、複数の端末セットを含む分散型電話システム内の端末セットが、たとえばピアの発見を実施したことから、システム内の他の端末セットを認識しているものと推定される。この認識は、システム内の各端末セットの信頼性の指示(indication)を含む。このコンテキストにおいて「信頼性」とは、分散型電話システムの外部の接続を端末セットが確実な形で確立できる能力を指す。たとえば、ブリッジ接続(たとえば、イントラネット)によって結ばれた2つのサブ・ネットワークを含む電話システムにおいて、第1のサブ・ネットワークが、たとえば公衆交換電話網(PSTN)への外部接続を有し、第2のサブ・ネットワークが、その外部接続を有していない場合は、第2のサブ・ネットワーク上の端末セットにおけるPSTNとの接続を確立する能力は、ブリッジ接続の動作が継続することに依存する。この例では、第2のサブ・ネットワーク上の端末セットは、ブリッジ接続の動作状態に関わらずPSTNへの接続を確立できる第1のサブ・ネットワーク上の端末セットよりも信頼性が低いとされる。
【0019】
この情報を使用して、各端末セットが、ピア・バックアップの選択を行う。ピア・バックアップの選択の目的は、現在の端末セットが1次バックアップ端末セットおよび2次バックアップ端末セットを選択することにある。バックアップ端末セット(または単に「バックアップ」)は、現在の端末セットが使用不能になった(たとえば、切断状態になり、電力を消失し、あるいはその他の原因で着呼を受けることができない状態になった)場合に、現在の端末セットの役割(場合によっては、たとえば現在のセットの呼の処理オプションおよび音声メールの挨拶をエミュレートするような機能を含む)を果たすことができる端末セットである。より具体的には、1次バックアップ端末セットは、現在の端末セットが使用不能なときに、現在の端末セットの役割を果たすことができ、2次バックアップ端末セットは、現在の端末セットと1次バックアップがどちらも使用不能になった場合に、現在の端末セットの役割を果たすことができる。また、1次バックアップは、「第1レベルの」バックアップと呼ぶこともあり、2次バックアップは、「第2レベルの」バックアップと呼ぶこともある。あるいは一般に、バックアップを「スレーブ」と呼ぶこともある。スレーブが割り当てられた端末セットを、「割当て先(assignee)」または「マスタ」端末セットと呼ぶこともある。
【0020】
現在の端末セットが他の端末セットのうちのどれをそれ自体のバックアップとして選択すべきかを決定する上で、以下の通り、現在の端末セットの信頼性ならびに見込まれる(prospective)バックアップの信頼性の両方が考慮に入れられる。
【0021】
このシステム内の端末セットはすべて、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化される。M個のプールを作成する基礎となるのは、端末セットの信頼性であり、各端末セットは、同様の信頼性を有する見込まれるバックアップのプールに入れられる。最初に、見込まれるバックアップの「現在の」プールとして、最も信頼性の高い端末セットを有するプールが選出される。すべての端末セットがまず1次(すなわち第1レベルの)バックアップを受け取り、その後で2次バックアップがあればそれが割り当てられるということを反映するために、「現在のバックアップ・レベル」が、「第1レベル」にセットされる。
【0022】
その後、現在のプールからの端末セットが、1次バックアップとして、割当て先の端末セットの信頼性の昇順に、システム内のすべての端末セットに割り当てられる(すなわち、最も信頼性の低い端末セットが最初にバックアップを受け取る)。バックアップは、端末セットが2つ以上の1次バックアップを受け取らないように割り当てられる。
【0023】
割当ては、(a)見込まれるバックアップの現在のプール内のあらゆる端末セットが割当てを2回受ける(プール内の各端末セットがスレーブとして割り当てられたマスタの数が2になる)まで、または(b)システム内のあらゆる端末セットが1次バックアップを受け取るまで続く。
【0024】
(a)が発生したときは、見込まれるバックアップの次のプールが信頼性の降順に選出され(すなわち、見込まれるバックアップの、次に信頼性の高いプールが現在のプールになる)、上述したように割当てが繰り返される。
【0025】
(b)が発生したときは、1次バックアップの割当てが完了する。その後、「現在のバックアップ・レベル」が、第1レベル(1次)から第2レベル(2次)に変更され、2次バックアップの割当てが、1次バックアップと同じ様式で進められる。
【0026】
すべての2次バックアップが割り当てられると、バックアップの選択は完了する。この段階で、現在の端末セットは、1次および2次バックアップとしてどの端末セットがシステム内の各端末セットに割り当てられたかを認識することになる。この情報は、(PBXの内線に類似する)加入者電話番号や(たとえば、VoIP電話をかけるのに使用される)IPアドレスなど、各端末セットに関する他の情報を含む経路表の形で格納されてもよい。しかし、マスタ/スレーブ関係を強固にするために、以下の通り各マスタ端末セットとそれに割り当てられたスレーブとの間の通信が、依然として必要とされる。
【0027】
現在の端末セットは、その経路表を検査することにより、それ自体の1次および2次バックアップとしてどの2つの端末セットが割り当てられたかを特定することができる。この情報を使用して、現在の端末セットが、特定された端末セットのそれぞれに対して、それ自体のスレーブとなるよう正式に要求する要求メッセージを送信する。
【0028】
現在の端末セットのスレーブとなることへのその同意が各端末から与えられたと仮定すると、現在の端末セットが、それ自体のローカル・データベースのコピーをスレーブ端末セットに送信し、スレーブが、そのコピーをそれ自体のローカルに格納する。かかるデータベースのコピーは、「シャドウ(shadow)」データベースと呼ばれる。シャドウ・データベースは、マスタ端末セットが使用不能になったときに、スレーブがマスタ端末セットの役割を果たす(その動作をエミュレートする)のを可能にするために必要な情報を含んでいる。この情報は、たとえば呼の処理オプションまたは音声メールの挨拶を含んでいてもよい。
【0029】
同時に、現在の端末セットは、他の2つの端末セットからそれらのスレーブとして働くよう求められる要求を受信することになる。現在の端末セットはこれに同意すると、「シャドウ」データベースの形で現在の端末セットのローカルに格納するための、要求元セットのデータベースのコピーを受信する。
【0030】
システムの動作中は、マスタのデータベース内の情報が変更され得る可能性がある。たとえば、マスタ端末セットのユーザは、たとえば端末セットを最初に鳴動させるのではなく、着呼が音声メールへと直接転送されるように端末セットの構成を更新することもある。この状況では、マスタは、マスタのデータベースとスレーブのシャドウ・データベースとの一貫性を維持するために、それ自体のデータベースに更新があった後は、変更された情報を各スレーブに通信することになる。
【0031】
マスタ端末セットが使用不能な場合、1次端末セットがそのマスタの役割を果たすことになる。たとえば、呼出し元の端末セットは、使用不能な端末セットに接続できない場合は、その使用不能なセットの1次バックアップとしてどの端末セットが働いているかを特定するために、それ自体のローカルで維持している経路表を利用する。次いで、呼出し元の端末セットは、その呼が当初使用不能なマスタに宛てられたものであることを1次バックアップが認識するような様式で、特定した1次バックアップに接続しようと試みる。それがアクティブであると仮定すると、1次バックアップは、マスタが使用不能であることに呼出し側が気付くことすらできないように、マスタがその呼を受け取った場合と同じ様式で(たとえば、同じ呼の処理オプションおよび音声メールの挨拶を用いて)呼を受け取る。
【0032】
1次バックアップが使用不能である場合も、同様のやり方で、2次バックアップに接続しようとする試みがなされる。
【0033】
1次および2次端末セットの両方が使用不能である場合は、呼出し側の端末セットは、一般的なやり方で(すなわち、使用不能なマスタのデータベースのコピーの利益なしに)呼を受けることができる。
【0034】
スレーブ端末セットがそのマスタをエミュレートしている間は、スレーブ端末セットにおいて加えられたマスタの構成に対するどんな変更も、そのマスタを対象とするスレーブのシャドウ・データベースに変更が及ぶことになる。これらの変更は、スレーブによって追跡され、他のスレーブが現在のスレーブのシャドウ・データベースとそれ自体のシャドウ・データベースとの一貫性を維持することができるように、同じマスタに仕える他のスレーブに報告される。また、追跡された変更は、マスタが再びアクティブになったときに、その使用不能状態の間に(そのマスタのバックアップとしての立場の)スレーブに加えられたどの構成変更の利益も享受することができるように、マスタに送信される。
【0035】
1次および2次バックアップが既に割り当てられている分散型電話システムに端末セットが追加された場合、その新しい端末セットは、既存のマスタ端末セットに対して、そのバックアップの1つを引き渡すよう求める要求を送信することができる。たとえば、新しい端末セットは、既存のマスタ端末セットの1次バックアップと2次バックアップがどちらも最も信頼性の高いものであると判定した場合は、そのマスタに対して、その2次バックアップを新しい端末セットがそれ自体の1次バックアップとして使用するためにそれを引き渡すよう求めることができる。この場合では、新しい端末セットは、既存のマスタに先取り(preemption)要求を送信する。マスタからバックアップが引き渡されると、新しい端末セットは、先取りしたバックアップ端末セットをそれ自体の1次バックアップとして主張し、それとの間での必要な情報交換を実施する。次いで、引渡し元のマスタは、新しい端末セットをそれ自体の2次バックアップとして割当て、それとの間での必要な情報交換を実施することができる。これが、新しい端末セットの2次バックアップを獲得するために繰り返される。次いで、引渡し元の端末セットのそれぞれは、新しい端末セットをそれ自体のバックアップとして割り当てることができる。
【0036】
システムの動作中は、各端末セットは周期的に、それ自体の現在の1次および2次バックアップの識別を他のすべての端末セットに通知する(PEER_ASSERTという「ハートビート」メッセージが使用されるが、これについては以下でより詳細に説明する)。端末セットのバックアップの識別に変更があった場合は、他の端末セットは、上記のメッセージを介してその変更に気付き、それに従ってそれぞれの経路表を更新する。
【0037】
図1を参照すると、ネットワーク・ベースの分散型ピア・ツー・ピア呼処理を利用し、本発明の一実施形態によるピア・バックアップを実施する、分散型電話システム10(または「電話システム10」)が示されている。電話システム10は、全体のネットワーク30を形成するための、イントラネット14を備えるブリッジ接続によって相互接続された、2つのローカル・エリア・ネットワーク(LAN)16および18を含む。諸代替実施形態では、異なる形態のブリッジ接続(たとえば、公衆インターネットを介して2つのオフィスを接続する仮想私設ネットワーク(VPN)トンネル)を利用することもできる。LAN16および18は、単にネットワーク16および18と、あるいは全体のネットワーク30の存在を暗に示すために、サブ・ネットワーク16および18と呼ばれることもある。第1のサブ・ネットワーク16は、スイッチ12によって相互接続された2つの端末セット100−3および100−4を含む。第2のサブ・ネットワーク18は、スイッチ20によって相互接続された7つの端末セット100−1、100−2、および100−5〜100−9を含む。スイッチ12および20は、ネットワーク・ハブに置き換えることもできる。
【0038】
サブ・ネットワーク18は、サブ・ネットワーク18に外部接続性をもたらすシン・トランク・インターフェイス(Thin Trunk Interface:TTI)40も含む。TTI 40は、たとえば基本的なアナログまたはデジタルT1/E1インターフェイスであっても、他の任意のPSTNインターフェイスであってもよく、ローカル・セントラル・オフィスまたはPSTN相互動作インターフェイスを提供し、いくつかの外部の電話「回線(line)」1、2、3、4と結合されている。回線1、2、3、4は、ローカル・セントラル・オフィスまたはPSTN(図示せず)から提供される機構を表す対線(wire pairs)である。本発明のいくつかの実施形態では、複数のTTIが必要とされ得るような多くの外部回線が存在する。たとえば、PSTNに8つの回線が必要とされる場合は、システム10に第2のTTIを追加することができる。
【0039】
図1におけるネットワーク30の構成が与えられたとすると、いくつかの端末セットにおけるPSTNとの接続を確立できる(あるいはより一般的には、全体のネットワーク30の外部の接続を確立できる)能力は、他の端末セットにおけるPSTNとの接続を確立できる能力よりも、干渉または障害の影響を受けやすいことがあるのは、明らかなはずである。たとえば、サブ・ネットワーク18上にTTI 40が存在する故に、サブ・ネットワーク18に直接接続されている端末セット、すなわち端末セット100−1、100−2、および100−5〜100−9は、比較的信頼性の高いPSTNへの接続性を享受することができる。一方、サブ・ネットワーク12上にはTTIが存在しない故に、サブ・ネットワーク12に直接接続されている端末セット、すなわち端末セット100−3および100−4は、より信頼性の低いPSTNへの接続性を有するかもしれない。すなわち、端末セット100−3および100−4は、イントラネット14およびサブ・ネットワーク18を介してPSTNにアクセスできるかもしれないが、それらのPSTN接続性は、中間にあるイントラネット14における障害の可能性の故に、より信頼性が低いと考えられる。(サブ)ネットワークが外部接続性を維持することのできる蓋然性は、クラス番号によって表される。本明細書で使用されるより低いクラス番号は、より信頼性の高い外部接続性を示す。したがって、サブ・ネットワーク18は、クラス1の(すなわち、より信頼性の高い)ネットワークと見なすことができ、サブ・ネットワーク12は、クラス2の(すなわち、より信頼性の低い)ネットワークと見なされる。したがって、サブ・ネットワーク18上のすべての端末セットは、サブ・ネットワーク12上のどの端末セットよりも信頼性が高いと見なされる。
【0040】
図1には、9つの端末セットしか示されていない。一般には、T≧2とする、合計T個の端末セットを存在させることができる。本発明のいくつかの実施形態では、Tは大きな数、たとえば千単位である。
【0041】
図1のシステム10は、従来の集中型電話システムとは異なり、分散型の呼処理を特徴としている。この分散型の呼処理は、たとえば分散型の音声メールを含めたいくつかの機能を特徴とすることもある。
【0042】
図2を参照すると、図1の電話システム10における例示的な端末セット100−X(X=1〜9)の部分的な回路ブロック図が、示されている。中央処理装置(CPU)530、メモリ管理ユニット(MMU)545、およびランダム・アクセス・メモリ(RAM)535が、計算装置の基礎を提供する。この計算装置は、オーディオ信号の符号化および復号用のデジタル信号処理装置(DSP)520に接続されている。DSP 520は、オーディオ・インターフェイス510に接続されている。計算装置は、LANおよびパーソナル・コンピュータ(PC)への接続を可能にする3ポート・スイッチ525にも接続されている。計算装置は、フラッシュ不揮発性メモリ540、赤外線(IR)インターフェイス550、キーパッドおよびボタン・インターフェイス555、液晶ディスプレイ(LCD)コントローラ560、端末セット100の標準化された拡張を可能にするパーソナル・コンピュータ・メモリ・カード国際協会(PCMCIA)インターフェイス565などの周辺機器のホストにも接続されている。ここでは特定のアーキテクチャが示されているが、より一般的には、以下で説明する方法を実装するのに十分な処理およびメモリ容量が使用可能であると仮定すれば、どんなパケット・ベースの(たとえば、インターネット・プロトコル(IP))電話でも使用することができる。たとえば、Mitel社、Nortel Networks社、Avaya社、Siemens社、NEC社、Pingtel社、3COM社などによって製造される既製のIP電話(たとえば、Nortel i2004、Siemens optiPoint 410、またはAvaya 4610)を使用することもできる。
【0043】
図3を参照すると、例示的な端末セット100−4上で動作するソフトウェアの機能ブロック図が示されている。これと同じソフトウェアが図1の各端末セット100−X上で動作していることが、理解されるであろう。このソフトウェアは通常、図2のRAM535内に格納され、CPU530上で走り、磁気または光ディスク、テープ、チップ、あるいは別の形態の1次または2次ストレージとし得る、マシン可読媒体32(図1)からロードすることができる。より一般的には、このソフトウェアは、汎用または専用の処理装置、ファームウェア、ハードウェア、特定用途向け集積回路(ASIC)、書替え可能ゲート・アレイ(Field−Programmable Gate Array:FPGA)、汎用または専用ロジックによって実行される、メモリ内に格納されたマシン実行可能なコードの任意の適当な組合せとして実装することができる。
【0044】
システム・ディスパッチャ120が、プロトコル・スタック60、呼処理モジュール70、音声メール・モジュール80、ダイヤル規則モジュール90、ピア発見モジュール110、ディスプレイ・ハンドラ130、オーディオ・ハンドラ140、入力ハンドラ150、およびピア・バックアップ・モジュール160を含む様々な機能要素間の通信およびスケジューリングを行う。
【0045】
プロトコル・スタック60は、端末セットがメッセージを送信し受信するのを可能にする、コンピュータ・ネットワーキング・プロトコル(またはプロトコル・セット)のソフトウェア実装である。プロトコル・スタックは、当業者にはよく理解されている。
【0046】
呼処理モジュール70は、呼のセット・アップおよび解体、ならびに音声チャネルのセット・アップを行うために、プロトコル・スタック60と相互作用する。呼が受信されたがユーザがそれに応答できない場合は、その呼を音声メールに転送し、あるいはモジュール70の動作によって処理することができる。モジュール70によって処理される呼は、現在の端末セットに宛てられた呼であることも、その端末セットが使用不能である場合には現在の端末セットがそのバックアップとして働く、別の端末セットに宛てられた呼であることもある。いくつかのセットにおける呼処理モジュール70が、集中型の装置を必要としない分散型の形式で、集合的にPBXと同様の呼処理機能を提供するように働く。呼処理モジュール70は、様々な呼スレッド(call thread)を管理する責任を負う呼処理ディスパッチャ(CPディスパッチャ)71も有する。呼処理モジュール70は、以下でより詳細に説明する。
【0047】
音声メール・モジュール80は、呼が受信されたがユーザがそれに応答できないときに、音声メール・サービスを提供する。
【0048】
ダイヤル規則モジュール90は、電話をどのようにかけるかを制御する呼処理モジュール70に適用する、1組のダイヤル規則を含んでいる。
【0049】
ピア発見モジュール110は、端末セット100−Xが最初にネットワークに接続されたときのピアの発見を容易にする。モジュール110には、いくつかの責任がある。第1に、モジュール110は、端末セットのネットワークへの最初の接続時に、現在の端末セット100−Xに一意のDNを自動的に割り当てることを容易にする。第2に、モジュール110は、ネットワーク30からの端末セットの切断が生じ、あるいは端末セットの電力の消失が生じたときにも、端末セット100−Xに割り当てられたDNが保存されることを保証する(これらのどちらでも、端末セットは「非アクティブ」となる)。DNを保存する動機は、(たとえば、端末セットとネットワークの間の接続障害、単純な電力の消失、または圏外への無線端末セットの移動を原因とする)ネットワーク30からの端末セットの一時的な切断の結果として、非アクティブ状態の端末セットのDNが再び割り当てられるのを防ぐためであるかもしれない。この再割当ては、どの端末セットが呼び出されたのかについて呼出し側に混乱を招く可能性がある。第3に、ネットワーク30内のその他のすべての端末セットでの動作に関連する、端末セット100−Xでのモジュール110の動作により、各端末セットが、ネットワーク30に接続されている他のあらゆる端末セットのDNに気付くことになり、その結果、各端末セットは他の端末セットに電話をかけることができる。ピア発見モジュール110の行う動作に関する簡単な概要を以下に示す。
【0050】
「購入時のままの(factory fresh)」(すなわち、未構成の)状態の端末セットのネットワークへの初期接続時には、端末セットは、ネットワーク接続通知を用いて、それ自体のネットワークへの接続をネットワーク上のその他の端末セット(それ自体の「ピア」)に通知する。ネットワーク接続通知は、端末セットに関連する一意の識別子を、たとえば媒体アクセス制御(MAC)アドレスなどを含む。当技術分野で知られているように、MACアドレスは、ネットワーク装置用の一意の識別子として働く、一意のハードウェア・アドレスまたはハードウェア番号である。ネットワーク接続通知は、「I_AM_HERE」メッセージの形をとることができ、このメッセージは、(本発明の一実施形態のような場合では、少なくともその他のピアから各受信メッセージについての肯定応答が送信されない場合には)それが受信される可能性を高めるために複数回にわたって送信される。
【0051】
また、新たに接続された端末セットは、他の端末セットからの存在通知(existence notification)を受信する。存在通知は、現在ネットワーク上に所在し(すなわち、アクティブであり、ネットワークに接続されている)、あるいは以前ネットワーク上に所在した(すなわち、以前はアクティブな状態にあって接続もされていたが、今は切断状態となり、非アクティブである)端末セットの存在に関する指示である。この実施形態では、存在通知は、「I_AM_HERE」メッセージ(先に説明した)、「PEER_ASSERT」メッセージ(以下で説明する)、または「INACTIVE_PEER_ASSERT」メッセージ(以下で説明する)のいずれかとすることができる。各存在通知は、メッセージがそれに関して送信される端末セットの一意の識別子を含む。さらに、後者の2つのタイプのメッセージ(「PEER_ASSERT」および「INACTIVE_PEER_ASSERT」メッセージ)は、既に主張されているDNの指示、ならびに送信元の端末セットの1次バックアップおよび2次バックアップの識別を提供し、あるDNを既に少なくとも1つの端末セットが主張しているネットワークに新たに接続された端末セットが参加するときにだけ、受信される。
【0052】
存在メッセージからは、ネットワーク上のすべての端末セットのリスト(経路表と呼ばれる)が作成される。リスト内の端末セットは、それらの一意のネットワーク装置識別子によってソートされる。DNを既に主張しているどの端末セットについても、その主張しているDNが、ソート済みのリスト内で示されることになる。新たに接続された端末セットは、リスト内の順序位置を有することになる。
【0053】
新たに接続された端末セットは、見込まれるDNを選択するために、ベースDNにリスト内でのそれ自体の順序位置に関連するオフセットを追加することができる。たとえば、DNがPBXの内線であるシステムにおいて、新しい端末セットが9つの端末セットのリスト内の4番目にあると仮定すると、見込まれるDNを204と(端末セットの順序位置に等しいオフセット、すなわちベースDNの200に4を足したもの)決定することができる。端末セットに関連する一意の順序位置に基づいて見込まれるDNの選択を行うことにより、様々な端末セットが一意の見込まれるDNを選択することが容易になる。これは、以前に割り当てられたDNを有する既存の端末セットを有していないネットワークに、購入時のままの複数の端末セットが同時に参加するというシナリオを仮定している。この原理(rationale)は、様々な端末セットが当初同じ見込まれるDNを選択することにより、衝突解決処理に時間を費やすことになり得るのを防止しようと試みることである。
【0054】
次いで、新たに接続された端末セットは、それ自体の見込まれるDNを選択すると、それを他の各端末セットに通知する。これは、「DNプローブ」と呼ばれる。新たに接続された端末セットは、(他の端末セットのうちの1つによる、そのDNに対する既存の主張に基づく何らかの異議(objection)がある場合でも)その見込まれるDNを主張することに他の端末セットが反対するのでなければ、その見込まれるDNをそれ自体のDNとして主張する。新たに接続された端末セットは、異議があればそれを示すのに十分な時間をその他の端末セットに与えるために、それ自体の見込まれるDNを主張する前に、所定の時間間隔だけ経過させてもよい。見込まれるDNの主張が成功したものと仮定すると、新たに接続された端末セットは、そのDNに対するそれ自体の主張を他の各端末セットに通知する。また、新たに接続されたセットは、端末セットが電力を消失したときにも、割当て済みのDNを呼び出すことができるように、その主張したDNを不揮発性メモリ内に格納する。経路表も格納することができる。
【0055】
確立されているネットワークに新たに接続された端末セットが参加する場合は、そのネットワーク上の他の端末セットは、既にそれら自体のDNの選択を済ませている。この場合では、新たに接続された端末セットの選出した見込まれるDNが、既に既存の端末セットのうちの1つに割り当てられている可能性もある。たとえば、ソート済みの端末セットのリスト内での新たに接続された端末セットの順序位置が、リストの末尾以外である(たとえば、新しい端末セットの一意の識別子によりそれがソート済みのリストの中間付近に配置されている)場合は、新たに接続された端末セットの順序位置に関連するオフセットがベースDNに追加された結果として得られる見込まれるDNが、既存の端末セットのうちの1つのDNであることもある。
【0056】
この可能性の点から、新たに接続された電話機は、それ自体の見込まれるDNを他のいずれかの端末セットに通知しようと試みる前に、まず、それ自体の経路表を参照して、その見込まれるDNが既にネットワーク内の他のいずれかの端末セットによって主張されているかどうかを判定する。見込まれるDNが既に別のセットによって主張されている場合は、新たに接続された端末セットは、その選出をいずれかのその他の端末セットに通知する前に、たとえばリスト内で見受けられる最大のDNに1などのオフセットを追加することによって、別の見込まれるDNを選択することができる。これにより、そうしない場合には新たに接続された端末セットがそれ自体の見込まれるDNを他の各端末セットに通知して、その他の端末セットのうちの既にそのDNを主張している1つの端末セットから異議を受信するだけに終わる可能性のある、ネットワーク上の不必要な通信オーバーヘッドを回避することができる。
【0057】
新たに接続された端末セットは、DNの主張に成功すると、そのDNに対するそれ自体の主張を、周期的にネットワーク上のその他の端末セットに通知する。この実施形態では、それぞれの周期的な通知は、「PEER_ASSERT」メッセージの形をとり、これは、新たに接続された端末セットの継続的なネットワーク・プレゼンスおよびそのDNに対する継続的な主張を示す、「ハートビート」として働く。PEER_ASSERTメッセージは、現在の端末セットの1次および2次バックアップにおける識別の指示も含んでいる(その結果、現在の端末セットのバックアップの識別に変更があった場合に、他の端末セットがその変更に気付き、それに従ってそれぞれの経路表を更新することになる)。この通知は、ネットワーク上のその他の端末セットによって監視される。この実施形態では、周期的な通知は、(たとえば、0秒と2秒の間の)ランダムな時間間隔で発生する。端末セットからの通知を受信することなく所定の量の時間が経過した場合は、その端末セットは、非アクティブ状態になったものと推定される。周期的な通知は、そのDNを後に追加される端末セットがそれ自体のDNとして主張しようと試みるのを防止する働きもする。たとえば、別の端末セットがそのDNをそれ自体の見込まれるDNとして選択しており、他の端末セットからの何らかの異議を待っている場合に、この通知は、その端末セットによるそのDNの主張に対する異議として働くこともある。急送異議(Express objection)(たとえば、DN_CONFLICTメッセージ)を送信することもできる。
【0058】
DNを主張した端末セットは、ネットワークから切断されまたは電力を消失した場合は、そのDNに対するそれ自体の主張をネットワーク上のその他の端末セットに周期的に通知することができない可能性が高い。この場合には、(たとえば、その端末セットからの最近のPEER_ASSERTメッセージが何ら存在しないことから)切断された端末セットの使用不能状態に気付いたネットワーク内の別の端末セットが介入し、切断された端末セットは非アクティブ状態にあるが、それ自体のDNは既に主張されていることを、ネットワーク上のその他の端末セットに周期的に通知することを開始する。介入してきた端末セットは、便宜上「代理(surrogate)」と呼ぶが、それ自体のDNに対するその主張をその他の端末セットに周期的に通知することに加えて、(以下で説明する「INACTIVE_PEER_ASSERT」メッセージの形をとる)これらの周期的な通知を送信する責任を負う。どの端末セットを非アクティブ状態の端末セットの代理にするべきかを決定するアルゴリズムを、適用することができる。非アクティブ状態の端末セットに代わって送信される代理による周期的な通知は、切断された端末セットのDNを後に追加された端末セットがそれ自体のDNとして主張しようと試みるのを防止することができる。
【0059】
切断された端末セットは、後にネットワークに再接続された場合は、(それ自体の不揮発性メモリから呼び出すことのできる)それ自体のDNをその他の端末セットに通知することを自ら再開することができる。代理の端末セットは、再接続を検出したときは、再接続された端末セットがその責任を再び果たすようになっているので、再接続された端末セットのDNをその他の端末セットに通知するのを中止することができる。
【0060】
再び図3を参照すると、ディスプレイ・ハンドラ130は、情報をフォーマットしユーザに表示する責任を負う。
【0061】
オーディオ・ハンドラ140は、呼出音、話中音、通話中着信音などのオーディオ音を再生するように、あるいはシステム・ディスパッチャ120からのオーディオ・メッセージを受信したときに、ネットワークからハンドセットのスピーカ(またはスピーカ・フォン)への音声チャネルに接続するように適合されている。
【0062】
入力ハンドラ150は、キー・プレス、フック・スイッチ、ボリューム・キー、ハンズ・フリー、ミュート・ボタンなどの機能を監視し、システム・ディスパッチャ120にそれが取るべき適切な措置について知らせる責任を負う。
【0063】
ピア・バックアップ・モジュール160は一般に、他の端末セットを現在の端末セットのバックアップ端末セットとして選択し、その使用をサポートする責任を負う。モジュール160は、現在の端末セットを他の端末セットのバックアップ端末セットとして使用することをサポートする責任も負う。モジュール160の動作は、以下でより詳細に説明する。
【0064】
図4は、図3の呼処理モジュール70ならびにプロトコル・スタック60の機能ブロック図である。入力側の(incoming)ネットワーク・メッセージ・チャネル50が示されており、これは、電話機がそこに接続されるネットワーク30を介してメッセージを受信し、それらをプロトコル・スタック60に渡すのに適した任意のメカニズムである。同様に、出力側の(outgoing)メッセージ・チャネルが52で示されており、これは、生成されたメッセージを、ネットワーク30を介して送信するための通路を提供する。図4の実施形態では、端末セット100−Xによってサポートされる機能の必要を満たす、4つの呼スレッド72、73、74、75が存在する。各呼スレッドはそれぞれ、呼を処理することができる。たとえば、1つの呼スレッドを用いて端末への音声電話を処理することができ、同時に、別の呼スレッドを使用して音声メール・メッセージを録音することができる。諸代替実施形態は、呼スレッドの数が異なることもあることを理解されたい。一般には、1つを主回線用とし、もう1つを音声メール用とする、少なくとも2つの呼スレッドが存在するはずである。図4の実施形態では、4つの呼スレッド72、73、74、75のうちの3つを使用し、第4の呼スレッドを音声メール用のスペアとして働かせて、3者間会議を処理することができる。第3の呼スレッドは、バックアップとして特定の端末が指定されている別の端末によって受信された音声メール・メッセージを録音する際に必要とされることもある。
【0065】
入力側のメッセージは、チャネル50を介してプロトコル・スタック60に届いたときは、受信(RX)スタック65の待ち行列に入れられ、最終的にCPディスパッチャ71へと送信される。CPディスパッチャ71は、その呼の宛先のスレッドを判定し、呼スレッド72、73、74、または75のうちの該当する1つにそのメッセージを転送する。このネットワーク・メッセージに応答して、その該当する呼スレッドは、パッケージ化され、送信(TX)スタック55を介してその宛先へと送信されるべき応答を、プロトコル・スタック60に送信することによって応答する。ネットワークへと折り返し送信されるメッセージのタイプは、呼スレッドの状態に依存する。たとえば、メッセージがセッション開始プロトコル(SIP)に基づく新しい呼についてのINVITEメッセージである場合は、応答は、呼の応答があったときに返される「180」RINGINGメッセージや「200」OKメッセージなどの適切な肯定応答である。
【0066】
図5は、例示的な端末セット100−Xによって維持される例示的な経路表200を示す。定常状態では、図1の9つの各端末セットは、図5に示されるのと同一の経路表200を有することになる。経路表200は、ピアの発見とピア・バックアップの選択がどちらも完了した後に作成される。ピアの発見が完了することにより、ネットワーク30上の各端末セットを対象とするエントリ(すなわち、行)が存在することになり、各端末セットが一意のDNの主張を済ませたことになる。ピア・バックアップの選択(以下でより詳細に説明する)が完了することにより、各ピアに、1次バックアップ端末セットおよび2次バックアップ端末セットが割り当てられたことになる。
【0067】
経路表200内にエントリを有する各端末セットまたは他のネットワーク装置については、次の情報が、すなわち、DN(列210)、MACアドレス(列220)、IPアドレス(列230)、装置タイプ(列250)、第1のバックアップ(列260)、第1のバックアップのタイプ(列265)、第2のバックアップ(列270)、第2のバックアップのタイプ(列275)、端末セットの状態(列296)、およびネットワーク・クラス(列299)が維持される。ピア・バックアップとの関連性の低いその他の情報(図示せず)も維持することができる。
【0068】
DN(列210)は、端末セットのPBXの内線に類似するものである。MACアドレス(列220)は、端末セットを一意に識別するハードウェア・アドレスである。図5の例示的な経路表200では、各MACアドレスは、最後の2つの文字を除けば同じである。IPアドレス(列230)は、端末セットのIPアドレスであり、このアドレスは、たとえばVoIPのメッセージングに使用される。装置タイプ(列250)は、ネットワーク装置のタイプの指示である。この例では、経路表200内の最初の9つのエントリは、VoIP対応(VoIP−capable)端末セットである。最後のエントリは、TTI 40である。他の様々なタイプのネットワーク装置(たとえば、ゲートウェイ)が、経路表200に含まれていてもよい。第1および第2のバックアップ(列260および270)は、その行で表される端末セットにバックアップとして割り当てられた2つの端末セットを識別する。各バックアップは、MACアドレスによって識別される(理解を助けるために、列260および270の括弧内にDNを示してある)。第1および第2のバックアップのタイプは、列265および275のそれぞれに示されている。「Pri」は、1次バックアップを示し、「Sec」は、2次バックアップを示す。最後に、クラス(列299)は、その行で表される端末セットがそこに接続されるネットワークの(上記で説明した)ネットワーク・クラスを示し、これは、その行で表される端末セットの信頼性を示す。
【0069】
ピア・バックアップの選択
端末セット100−Xが当初購入時のままの状態でネットワーク30に接続したときに、ピア・バックアップ・モジュール160が、ピア・バックアップの選択を行う。ピア・バックアップの選択の目的は、現在の端末セットが使用不能になった場合に、現在の端末セットの役割を果たすことになる、1次バックアップ端末セットおよび2次バックアップ端末セットを選択することにある。ピア・バックアップの選択の結果として、呼出し元の端末セットが(マスタが使用不能である場合には)1次バックアップに、また(マスタと1次バックアップがどちらも使用不能である場合には)2次バックアップに、それ自体の呼をリダイレクトするのを可能にするのに十分なバックアップ情報(列260、265、270、および275内)が、ローカルの経路表200(図5)ならびに他の端末セットにおける経路表200に取り込まれる(population)ことになる。
【0070】
図6は、仮想的な3つの端末セットA、B、およびCの間でのピア・バックアップの選択の結果を示す、概念的なブロック図である。図6では、各端末セットは、2つのマスタ「ポート」および2つのスレーブ「ポート」を有する1つのボックスとして示されている。第1の端末セット上のマスタ・ポートが第2の端末セット上のスレーブ・ポートと相互接続されている場合は、すなわち、第2の端末セットが第1の端末セットにスレーブ(すなわち、バックアップ)として割り当てられていることを示している。たとえば、端末セットAと端末セットBの間の相互接続731は、(図6では1次または2次バックアップとしてのBの状態が示されていないが)BがAのバックアップであることを示している。したがって、相互接続731、732、733、および734は集合的に、端末セットBおよびCがAのバックアップとして割り当てられていること、端末セットAがBのバックアップとして割り当てられていること、ならびに端末セットAがCのバックアップとしても割り当てられていることを示している。このことは、他のそれぞれの端末セットのバックアップとして端末セットが働くことができることを実際に示している。
【0071】
図6の各ポートおよび相互接続は、物理的なポートまたは相互接続に対応していないことが理解されるであろう。概念上の相互接続731、732、733、および734は、単なる例示のためにすぎず、実際には、各セットの経路表200(図5)におけるセットA、B、およびCのMACアドレスを、バックアップの列260および/または270において適切に識別するような他の手段によって実施される。
【0072】
図7は、本発明の一実施形態による、バックアップ端末セットを選択する動作を示す。例示的な1つの例として、図1の端末セット100−1〜100−9を対象とするバックアップの選択を以下で説明する。表1は、バックアップの選択が実施される端末セット100−1〜100−9のそれぞれのネットワーク・クラスを示す。
【0073】
【表1】
【0074】
表1に示されるように、端末セット100−1、100−2、および100−5〜100−9は、クラス1の(サブ)ネットワーク18に接続され、端末セット100−3および100−4は、クラス2の(サブ)ネットワーク16に接続されている(図1)。
【0075】
図7を参照すると、見込まれるバックアップ(すなわち、端末セット100−1〜100−9のすべて)が最初に、バックアップ端末セットとしての選択のために順序付けられる(1810)。この順序付けは、以下の表2に示されている。表2を参照すると、この実施形態では、見込まれるバックアップは、(1)ネットワーク・クラス(クラスの信頼性の降順)によって、また(2)バックアップ・タイプ(バックアップの優先順位の降順、すなわち1次の後に2次)によって順序付けられている。この実施形態における有効なバックアップ・スキームでは、各見込まれるバックアップが1次バックアップとしても2次バックアップとしても働くことになる故に、各見込まれるバックアップは、順序付けのために、1度は1次バックアップとして、1度は2次バックアップとして、2度リストに入れられる。ネットワーク・クラスとバックアップ・タイプとの一意の各組合せが、「グループ」を構成する。この実施形態では、2つのネットワーク・クラスが存在し、また、各端末セットが1次バックアップとしても2次バックアップとしても働くので、4つのグループが存在する。これらの4つのグループは、表2のグループ1〜4として識別される。
【0076】
【表2】
【0077】
言い換えれば、端末セットは、見込まれるバックアップの、各「プール」が特定の信頼性(すなわち、ネットワーク・クラス)の端末セットを含む、M個のプールに入れられる。この場合、M=2であることから、2つの信頼性レベル(すなわち、クラス1とクラス2)が存在するので、2つのプールが、すなわち第1のプール(セット100−3および100−4)と第2のプール(セット100−1、100−2、および100−5〜100−9)が作成される。第1および第2のプールは、表2のグループ1および2に対応する。グループ3および4は、グループ1および2の単なる複製にすぎず、見込まれる2次バックアップと見込まれる1次バックアップのそれぞれの立場で、同じ端末セットを表している。
【0078】
表2に示されるように、順序位置1〜9(グループ1および2)の端末セットは、それぞれの立場を見込まれる1次(P)バックアップ端末セットとしてリストに入れられた、システム内のすべての端末セットを含む。順序位置10〜18(グループ3および4)の端末セットは、それぞれの立場を見込まれる2次(S)バックアップ端末セットとして(同じ順序で)リストに入れられている、順序位置1〜9の同じ1組の端末セットである。
【0079】
グループ1、2、3、および4の各グループ内で、各端末セットは、それぞれのMACアドレス(図示せず)に従って順序付けされている。たとえば、表2の順序位置6および7では、DN207を有する端末セットは、DN206を有する端末セットよりも低いMACアドレスを有し、したがって、DN206を有する端末セットよりも先に選択されるように順序付けされる。こうしたグループ内での順序付けの基礎は、この実施形態の動作に必須のものではなく、諸代替実施形態によって異なることもある。
【0080】
次に、最も信頼性の高いネットワーク・クラスにおける1組の端末セットが(ここでは、クラス1のネットワーク上の端末セット、すなわち端末セット100−1、100−2、および100−5〜100−9)、1次バックアップとして割り当てられることになる第1のプールの端末セットとして選出される(1820)。この選出は、信頼性の高いバックアップに対する初期選好を反映している。
【0081】
その後、順序付けされたその1組の端末セット(表2)の索引が、第1の端末セットの順序番号にセットされ、この索引は、バックアップを受け取る第1の端末セットを、言い換えれば、第1の割当て先を表す(1830)。1830で識別される端末セットは、最も信頼性の低いネットワーク・クラスの端末セットとなり、より具体的には、最も信頼性の低いネットワーク・クラスにおけるすべての端末セットのうちの最も低いMACアドレスを有する端末セットとなる。最も信頼性の低いネットワーク・クラスが最初に選出されるということは、最も信頼性の低いネットワーク上の端末セットが最初にバックアップを受け取るというバックアップの割当てストラテジを反映している。「最も低いMAC番号」の判定基準(criterion)は、単に2次的な順序付けスキームにすぎず、より重要性の低いものである。1820で識別された第1の受取り先(recipient)に割り当てられることになる第1のバックアップは、最も信頼性の高いネットワーク・クラスからのものであることが理解されるであろう。この手法の原理は、最も信頼性の低いネットワーク上の端末セットが、最も信頼性の高いネットワーク・クラスの端末セットをそれぞれのバックアップとして受け取るべきである、ということである。
【0082】
1840で、バックアップとして割り当てられる第1の端末セット(すなわち、端末セット100−1)は、1830における索引の設定によって識別された、表2の現在の順序位置にある端末セット(すなわち、端末セット100−3)に、1次(または第1レベルの)バックアップとして割り当てられる。したがって、この最初の繰返しでは、ネットワーク・クラス1におけるすべての端末セットのうちの最も低いMACアドレスを有する端末セット(端末セット100−1)が、最も信頼性の低いネットワーク・クラスからの、最も低いMACアドレスを有する端末セット(端末セット100−3)を対象とする1次バックアップとして割り当てられる。
【0083】
次に、割り当てるための他のバックアップが存在するかどうかが評価される(すなわち、1次バックアップとしても2次バックアップとしても依然として割り当てられていない端末セットがあるかどうかに関する問合せが行われる)(1850)。割り当てるためのバックアップが残っていない場合(すなわち、すべてのバックアップが1次バックアップとしても2次バックアップとしても割り当てられた場合)は、ピアの選択が終了する。一方、1次バックアップとしても2次バックアップとしても割り当てられていない何らかの端末セットが(いずれかのプール内に)残っている場合は、見込まれるバックアップの現在のネットワーク・クラス(すなわち、現在のプール)内に、依然として2つの端末セットにバックアップとして割り当てられていない何らかの端末セットが残っているかどうかが評価される(1860)。
【0084】
1860での評価が肯定的になされた場合は、次のバックアップの受取り先(すなわち、次の割当て先)の表2内の順序位置を示す索引が増分され(1865)、次のバックアップの割当てのために、ステップ1840に戻る。
【0085】
一方、1860での評価が否定的になされた(すなわち、現在のネットワーク・クラス/現在のプールにおけるすべての端末セットが、2つの端末セットにバックアップとして割り当てられている)場合は、より信頼性の低いネットワーク・クラスを有する何らかの端末セットが存在するかどうか(すなわち、より信頼性の低い何らかの見込まれるバックアップのプールが存在するかどうか)が、さらに評価される(1870)。後者の評価が肯定的になされた場合は、1840に戻る前に新しいネットワーク・クラスについての処理を繰り返すために、1880で、ネットワーク・クラスが増分される(すなわち、次に信頼性の高いクラス番号にセットされる)。一方、1870での評価が否定的になされた場合は、各端末セットがそれぞれの2つのバックアップを受け取っていることとなり、選択が終了する。
【0086】
分かりやすくするために、1870の「Yes」分岐は通常、あるグループの「購入時のままの」セットを対象とするバックアップの選択が完了したときに辿られることになる。一方、1850の「No」分岐は、新しい端末セットが端末セットの既存のグループに加わったときに辿ることができる。
【0087】
バックアップの割当てが終了すると、バックアップ端末セットの割当ては、表3に示される通りとなる。
【0088】
【表3】
【0089】
表3では、1番目の列が、バックアップ端末セットを識別し、2番目の列が、バックアップ・セットのネットワーク・クラスを指定し、3番目の列が、列1で識別されたセットがバックアップとして働く第1の端末セットを識別し(括弧内にはバックアップのタイプが識別されている)、4番目の列が、列1で識別されたセットがバックアップとして働く第2の端末セットを識別する(括弧内にはやはりバックアップのタイプが識別されている)。
【0090】
表3のバックアップの割当て情報は、システム内の端末セットのそれぞれの経路表200(図5)に、より詳細には、経路表200の列260、265、270、および275に取り込まれる。バックアップの割当て情報は、各装置から周期的に送信されるPEER_ASSERTメッセージを介して伝播される。結果的には、各端末セットにおける経路表200は、図5に示されるような体裁となる。
【0091】
表3に示されるように、バックアップ端末セットは、1つの端末セットにとっての1次バックアップとして働き、別の端末セットにとっての2次バックアップとして働くことができるので、2つの異なる端末セットの1次バックアップとして働くことも、2つの異なる端末セットの2次バックアップとして働くこともできる。たとえば、表3の最初の行を参照すると、端末セット100−1は、端末セット100−3の1次バックアップ端末セットであり、端末セット100−8の1次バックアップ端末セットでもあることを理解することができる。表3の7番目の行を参照すると、端末セット100−9は、端末セット100−6の1次バックアップとして、また、端末セット100−5の2次バックアップとして働いている。最後に、表3の最後の行に示されるように、端末セット100−4は、端末セット100−6の2次バックアップ端末セットとして、また、端末セット100−9の2次バックアップ端末セットとしても働いている。ただし、バックアップが同じマスタにとっての1次バックアップと2次バックアップの両方として働くことはないことに留意されたい。
【0092】
図7に示されるバックアップの選択は、より信頼性の低い(クラス2の)ネットワーク内の端末セットがより信頼性の高い(クラス1の)ネットワーク内のバックアップ端末セットを有することを可能にし、その結果、発呼者がPSTNから、たとえばイントラネット14の障害が原因でより信頼性の低いネットワークにアクセスできなくなった場合にも、より信頼性の低いネットワーク(すなわち、サブ・ネットワーク16)の端末セットが、より信頼性の高いネットワーク(すなわち、サブ・ネットワーク18)上のバックアップの機能を有することができる。
【0093】
いくつかの実施形態では、バックアップを必要とする端末セットはすべて、同じネットワーク・クラスを有することになる。かかる場合では、端末セットを、たとえばMACアドレスだけを使用して順序付けすることもできる。さらに、本発明の諸実施形態は、(たとえば、表2のように)MACアドレスを識別子として使用して端末セットを順序付けることに限定されるものではない。たとえば、IPアドレス、DN、シリアル番号など、他の識別子を使用することもできる。
【0094】
図8は、図3のピア・バックアップ・モジュール160の構造をより詳細に示す機能ブロック図である。各端末セット100−Xにおけるピア・バックアップ・モジュール160は、同じである。例示的な1つの例として、図6の仮想的な端末セットAの観点から、ピア・バックアップ・モジュール160の動作を説明する。
【0095】
バックアップ・マネージャ810は、どの端末セットが現在の端末セットAの1次および2次バックアップとなるかを決定し、現在のセットAがそれらのバックアップのマスタとなるために必要な措置を取る責任を負う。バックアップ・マネージャ810は、それ自体の対象を支援する、第1のマスタ・バックアップ・モジュール830および第2のマスタ・バックアップ・モジュール840の機能を管理し調整する。
【0096】
ジャーナル・マネージャ880は、マスタ・データベース855(現在の端末セットAの設定に関連するデータを含む)と、端末セットAのスレーブのそれぞれ(すなわち、端末セットBおよびCであり、図示されてはいないが、それぞれのピア・バックアップ・モジュール160のインスタンスを有している)によって維持される「シャドウ」データベースとを同期化する責任を負う。シャドウ・データベースは、マスタ端末セットが使用不能になった場合にスレーブがそれをエミュレートするために維持している、マスタ端末セットのデータベースのコピーである。ジャーナル・マネージャ880は、現在の端末セットAがスレーブとして働く各マスタ端末セットのデータベースのコピー(すなわち、端末セットBおよびCのマスタ・データベースのコピー)である、現在の端末セットAによって維持される1対のシャドウ・データベース815と828とを同期化する責任も負う。ブロック854、814、および824は、それによってデータベース855、815、および828がそれぞれアクセスされるデータベース・モジュールである。
【0097】
図8の残りのブロックは、マスタ端末セットとしての端末セットAの役割、あるいは端末セットBおよびCのスレーブとしてのその役割に関するものである。次にこれらについて説明する。
マスタ端末セットとしての端末セットAに関連するブロック
【0098】
マスタ・バックアップ・モジュール830は、端末セットAを対象とする第1のスレーブ(たとえば、端末セットB)を確立し、またはそのスレーブを取り除くための、現在の端末セットAにおける別の端末セットとのマスタ側の相互作用を支配するスレッドである。モジュール830の動作を、以下でより詳細に説明する。マスタ・バックアップ・モジュール840は、それが端末セットAを対象とする第2のスレーブ(たとえば、端末セットC)を確立し、またはそのスレーブを取り除くためのマスタ側の相互作用を支配する点を除けば、モジュール830に類似するものである。
【0099】
ローカル・ジャーナル・モジュール850は、ローカル・ジャーナル851へのアクセスを提供する。ローカル・ジャーナル851は、マスタ・データベース855に最近発生した1組の変更(すなわち、現在の端末セットAの構成に対する最近の変更)を表す。かかる変更は、スレーブ端末セットBおよびCに報告する目的で追跡される。
【0100】
オブザーバ890は、ローカル・ジャーナル851の変更の有無を監視し、ジャーナル・マネージャ880がスレーブ端末セットBおよびCに対する変更の伝播を調整できるように、変更が検出されたことをジャーナル・マネージャ880に示す責任を負う。ジャーナル・マネージャ880は、たとえば報告すべき変更があるかどうかをオブザーバ・モジュール890に周期的に確認することができ、報告すべき変更がある場合は、ネットワーク30に送信されるメッセージ(図1)を用いて、その変更をバックアップ端末セットBおよびCに報告する。
【0101】
スレーブ端末セットとしての端末セットAに関連するブロック
スレーブ・モジュール811は、端末セットAを、その他の端末セット(たとえば、セットB)を対象とする(1次と2次のいずれかの)スレーブとして確立し、またはスレーブとして取り除くための、現在の端末セットAにおける別の端末セットとのスレーブ側の相互作用を支配するスレッドである。スレーブ・モジュール811の動作を、以下でより詳細に説明する。2次スレーブ・モジュール821は、それが端末セットAを、別の端末セット(たとえば、端末セットC)を対象とする(1次と2次のいずれかの)スレーブとして確立し、またはスレーブとして取り除くためのスレーブ側の相互作用を支配する点を除けば、モジュール811に類似するものである。
【0102】
シャドウ・データベース815および828は、Aがスレーブとして働く各マスタ端末セットのデータベースのコピー(すなわち、端末セットBおよびCのマスタ・データベースのコピー)である。第1のデータベース815は、端末セットBが使用不能になった場合に端末セットAがそれをエミュレートするのを可能にするために使用される(この例では、端末セットAを端末セットBの1次スレーブと仮定する)。バックアップのデータベース815内に格納される情報の例としては、たとえば、端末セットBのユーザ・オプションおよび短縮ダイヤル設定を挙げることができる。第2のデータベース828は、データベース815に類似するものであるが、必要に応じて、端末セットC(この例では、端末セットAをそれ自体の2次バックアップとして選択したものと推定される)をエミュレートするために使用される。
【0103】
端末セットAが(使用不能な)マスタ端末セットBの役割を果たしている(すなわち、バックアップとして「アクティブ化」されている)場合は、オブザーバ・モジュール860が、モジュール816を介して、使用不能なマスタのシャドウ・データベース815に対する変更を表すローカル・ジャーナル825の変更の有無を監視し、変更が検出されたことをジャーナル・マネージャ880に示す責任を負う。変更が検出された場合は、ジャーナル・マネージャ880は、同じ使用不能なマスタを対象に存在し得る他の任意のスレーブに対する変更の伝播を調整する。他のスレーブの識別は、たとえば、ローカルの経路表200(図5)を検査することによって取得することができる。ジャーナル・マネージャ880は、マスタ端末セットBが再び使用可能になった後の、マスタ端末セットBに対する変更の伝播も調整する。
【0104】
図8では、マスタと2つのスレーブのそれぞれに対して1つのデータベースおよび1つのジャーナルしか示されていない。しかし、本発明のいくつかの実施形態では、マスタとスレーブのそれぞれに対して複数のデータベースおよびジャーナルが存在することを理解されたい。
【0105】
モジュール821、824、826、828、838、および870は(それぞれ)、端末セットAがバックアップとして働いている他のマスタ端末セット(すなわち、端末セットC)にそれらが関連している点を除けば、モジュール811、814、816、815、825、および860に類似するものである。
【0106】
ジャーナル・マネージャ880は、報告すべき変更があるかどうかをオブザーバ・モジュール860、870に周期的に確認し、報告すべき変更がある場合は、その変更を該当するマスタ端末セットBまたはCに報告する。
【0107】
DN210を有する新しい端末セット100−10が、システム10のサブ・ネットワーク16(図1)に接続された場合は、その新しい端末セットに1次および2次バックアップ端末セットが提供されることが好ましいはずである。しかし、端末セット100−1〜100−9が定常状態のコンディションにあると仮定すると、新しい端末セットのバックアップとして働かせるのに使用可能な端末セットが存在しないことになる。特に、新しい端末セットのバックアップとして働かせるのに使用可能な、(それらの最高の信頼性の故にバックアップとして好ましい)より信頼性の高いサブ・ネットワーク18内の端末セットが存在しないことになる。
【0108】
この場合では、新しい端末セット100−10は、(ピアの発見動作を通じてそれ自体がネットワークに接続されたときに構築する)経路表200の列270を検査して、現在2次バックアップとして働いている何らかの端末セットがネットワーク・クラス1内にある(すなわち、最も信頼できる)かどうかを判定することができる。それ自体の経路表200が図5の例示的な経路表200に示される情報を反映していると仮定すると、この検査により、たとえば端末セット100−8および100−9が上記のカテゴリに入っていることを明らかにすることができる。
【0109】
この場合では、新しい端末セットは、現時点で端末セット100−8および100−9をそれ自体のバックアップとして有しているマスタ端末セットのそれぞれに対して(たとえば、端末セット100−2および100−5のそれぞれに対して)、それぞれの2次バックアップを引き渡すよう求める先取りメッセージを送信することができる。その後、新しい端末セット100−10は、端末セット100−8に対して、端末セット100−10の1次バックアップになるよう求めるメッセージを送信することができる。同様に、新しい端末セット100−10は、端末セット100−9に対して、端末セット100−10の2次バックアップになるよう求めるメッセージを送信することができる。
【0110】
その後、この先取りの結果としてそれぞれの2次バックアップを失った各端末セット100−2および100−5は、新しい端末100−10に対して、それぞれの2次バックアップとなるよう求めるメッセージを送信することができる。
【0111】
図9は、図8のマスタ・バックアップ・モジュール830をより詳細に示す。マスタ・バックアップ・モジュール830は、マスタ端末セットにおける、単一のバックアップ端末セットを割当て、割当てを解除し、先取りを行うための動作を支配する状態マシンを構成することが、理解されるであろう。したがって、各端末セットが1次および2次バックアップを有するこの実施形態では、第2のバックアップ端末セットの割当て、割当ての解除、および先取りを行うための、マスタ・バックアップ・モジュールの第2のインスタンス(すなわち、図8のモジュール840)も存在することになる。図9に示される状態マシンは、状態間の流れ図の諸ステップに類するステップを組み込んでおり、したがって図9は、流れ図および/または状態マシンの形であると見なし得ることが、理解されるであろう。この状態マシンを、マスタ端末セットとしての立場の端末セットAによる動作に関連して説明する。
【0112】
まず、端末セットAが、どのようなバックアップも割り当てられていないアイドル状態920に入る。バックアップ・マネージャ810から、バックアップを追加するよう求める命令があると(これは、ブート・アップ、ネットワーク30への新しい端末セットの追加、ネットワーク30からの既存の端末セットの除去、または既存の端末セットの使用可能状態への復帰に続いて、バックアップ・マネージャ810がそのスレーブの関係を検査した後に発生することがある)、見込まれる端末セットに対して、端末セットAのバックアップの役割を果たすよう要求する作成要求(Create Request)メッセージが送信される(934)。次いで、端末セットAは、「作成」状態940に関連する見込まれるバックアップ端末セットからの、端末セットAのバックアップの役割を果たすことへのその意思を反映する肯定的な作成応答(Creating Response)メッセージを待つ。バックアップ端末セットからの肯定的な作成応答メッセージが受信されると、そのバックアップ端末セットは、ローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナルにオブザーバとして追加される(944)。すなわち、作成応答メッセージは、ブロック810に到達し、処理のためにブロック830または840へと(その特定のスレーブとの関係を管理しているいずれかのブロックへと)経路指定される。スレーブ端末は、マスタ・データベース(855)のオブザーバ(890)となり、ローカル・ジャーナル・モジュール(850)によって維持される。このことは、こうすることでローカル・データベースへの変更にスレーブが気付くようになることを意味する。次いで、端末セットAは、こうしてバックアップが割り当てられたアクティブ状態950に入る。
【0113】
バックアップ端末セットとして使用可能な端末セットが存在しない場合は、別の端末セットにそのバックアップの1つを手放させる動作をトリガするための先取りイベントが、バックアップ・マネージャ810によって開始される。この場合では、現在の端末セット(セットA)は、(上述したような、最も信頼性の高い2次バックアップを有するものとして識別され得る)別のマスタ端末セットに対して、そのバックアップの1つが引き渡されるようにするための先取り(Pre−empt)メッセージを送信する(924)。次いで、端末セットAは、その他のマスタ端末セットからの、バックアップ端末セットが手放されたことを示す肯定的な先取り応答(Pre−empt Response)を待つ(930)。
【0114】
その後、端末セットAは、上述したような934から始まる動作を続けることにより、アクティブ状態950に移行すると、この時点で、引き渡されたバックアップが現在の端末セットに割り当てられた状態になる。
【0115】
状態950で、たとえばマスタ端末セットがネットワークから取り除かれる故に、バックアップ・マネージャ810が、そのマスタ端末セットからの割当て済みバックアップ端末セットの割当て解除を開始した場合は、そのバックアップ端末セットは、ローカル・ジャーナル・モジュール850が維持しているジャーナルのオブザーバとして取り除かれる(956)。このシナリオでは、バックアップ・マネージャ810は、ローカル端末セットがネットワークから取り除かれようとしていることをバックアップ・マスタ830に知らせるはずである。次いで、バックアップ・マスタ830は、削除要求(Delete Request)をスレーブに送信するはずである。削除応答(Delete Response)が受信されると、マスタ・データベース855のオブザーバ・エントリ890が、取り除かれ、もはやローカル・ジャーナル・モジュール850によって監視されることはなくなるはずである。次いで、マスタ端末セットAは、そのバックアップに対して、それがもはや端末セットAのバックアップとして必要とされなくなった旨を命令するためのバックアップ削除要求(backup delete request)を送信する(958)。次いで、端末セットAは、アイドル状態920に戻る前に、バックアップ端末セットがそれ自体の経路表200から、端末セットAをマスタとするすべての参照を取り除いたことを示す肯定的な削除応答を待つ(970)。
【0116】
その代わりに、状態950から、端末セットAにそのバックアップの1つを手放すよう要求する、別の端末セットからの先取り要求が受信された場合は、バックアップ・マネージャ810は、それ自体のバックアップBをローカル・ジャーナル・モジュール850が維持しているジャーナルのオブザーバとして取り除くための削除要求イベントを開始する(952)。バックアップ・マネージャ810は、先取り要求を処理のためにバックアップ・マスタ830へと経路指定するはずである。すなわち、マスタ・バックアップ・モジュール830は次いで、スレーブへの削除要求を開始するはずである。削除応答が受信されると、マスタ・データベース855のオブザーバ・エントリ890が、取り除かれ、もはやローカル・ジャーナル・モジュール850によって監視されることはなくなるはずである。次いで、端末セットAは、バックアップBに対して、それが先取りされることを示すバックアップ削除要求を送信する(954)。次いで、端末セットAは、バックアップ端末セットBがセットAをマスタ端末セットとするすべての参照を取り除いたことを示す肯定的な削除応答を待つ(状態960)。バックアップBからの肯定的な削除応答が受信されると、端末セットAは、先取りイベントを開始した端末セットに肯定的な先取り応答を送信する(ステップ964)。次いで、端末セットAは、アイドル状態920に戻る。
【0117】
図10は、図8のスレーブ・モジュール811をより詳細に示す。スレーブ・モジュール811は、端末セットAにおける、第1のマスタへのそのバックアップとしての割当ておよび割当ての解除を有効化するためのスレーブ側の動作を支配する状態マシンを構成することが、理解されるであろう。端末セットAをバックアップとして第2のマスタに割当て、その割当てを解除するための、スレーブ・モジュールの第2のインスタンス(すなわち、図8のモジュール821)も存在する。図10のモジュール811は、状態マシンの状態間の流れ図の諸ステップに類するステップを組み込んでおり、したがって図10は、流れ図および/または状態マシンの形であると見なし得ることが、理解されるであろう。端末セットBにバックアップとして割り当てられ、その割当てが解除される端末セットAの観点から、図10を説明する。
【0118】
モジュール811は当初、端末セットAがバックアップとして依然として割り当てられていないことを表す、アイドル状態1020にある。端末セットBは、「端末セットAをそれ自体のバックアップとする」ことを望む場合は、端末セットAに作成要求メッセージを送信する。端末セットAにおいて作成要求メッセージが受信されると、端末セットAのバックアップ・マネージャ810が、セットBが使用不能なときに端末セットAがその役割を果たす際に使用する情報を、見込まれるマスタ端末セットBから受信するために、シャドウ・データベース815を作成するプロセスを開始する(1022)。バックアップ・マネージャ810は、使用不能なマスタのシャドウ・データベース815に対する変更があればそれを追跡する際に使用される、バックアップのデータベース815用のジャーナル825を作成するプロセスも開始する(1024)。次いで、端末セットAは、その要求が実施されたことを示す作成応答OK(Create Response OK)メッセージを用いて端末セットBに応答し(1026)、マスタ端末セットBのバックアップとして割り当てられたアクティブ状態1030に入る。
【0119】
マスタ端末セットBは、後で端末セットAをそれ自体のバックアップとして取り除くことを望んだ場合は、端末セットAに削除要求を送信する。端末セットBからの削除要求が受信されると、端末セットAのバックアップ・マネージャ810が、それぞれ1022および1024で作成されたバックアップのデータベース815およびジャーナル825の除去を開始する(1034)。次いで、端末セットAは、マスタ端末セットBに対して、その削除要求が成功したことを示す削除OK応答(Delete OK response)を送信した後、バックアップとしての割当てが解除されているアイドル状態1020に戻る(1038)。
【0120】
図11は、バックアップとして割り当てられた端末セットのジャーナル・マネージャ880の動作を支配する、状態マシン/流れ図を示す。端末セットBとCのぞれぞれのバックアップとして働くものと仮定された端末セットAの観点から、図11を説明する。
【0121】
まず、端末セットAのジャーナル・マネージャ880が、ジャーナル変更状態の待ち状態1120に入る。それ自体のバックアップBまたはCのいずれか1つからの更新が受信されると(すなわち、たとえばユーザの指定した端末セット構成への変更に基づく、マスタ端末セットBまたはCのいずれかのマスタのデータに対する変更の指示が受信されると)、シャドウ・データベース815、828(図8)のうちの該当する1つが更新される。次いで、ジャーナル・マネージャ880は、肯定応答(ACK)メッセージを用いて、その更新を送信したマスタ端末セットに応答し(1124)、ジャーナル変更状態の待ち状態1120に戻る。
【0122】
ローカル・ジャーナル・モジュール850からのマスタ・データベース855が変更された旨の(その変更をスレーブに伝播すべきであるといった)指示を、ジャーナル・マネージャ880が(オブザーバ890を介して)受信した場合は、タイマが始動され(1126)、ジャーナル・マネージャ880は、アクティブ状態1130に入る。タイマは、送信すべき何らかのデータがあるかどうかを検査するために、すなわち、ジャーナル・マネージャ880がオブザーバ890を周期的にポーリングするために使用される(タイマの満了は、図14の動作1452に対応する)。一代替実施形態は、ポーリングの代わりに非同期通知を利用することもできることが、理解されるであろう。アクティブ状態1130においてタイマが満了すると、ジャーナル・マネージャ880は、バックアップ端末セットBおよびCに送信すべき変更が存在するかどうかをオブザーバ・モジュール890に確認する(1136)。送信すべき変更がある場合は、その変更が端末セットBとCの両方に送信される(1138)。次いで、タイマがリセットされ、始動され(1140)、マスタ端末は、アクティブ状態1130に戻る。
【0123】
1136で、バックアップ端末セットBおよびCに送信すべき変更が存在しない場合は、ジャーナル・マネージャ880は、ジャーナル変更状態の待ち状態1120に戻る。ジャーナル・マネージャ880が、状態1130から、1138で送信した変更に応答するいずれかのバックアップ端末セットからの肯定応答メッセージを受信した場合は、その変更を報告すべき変更のリストから取り除くことができ、ジャーナル・マネージャ880は、アクティブ状態1130に戻る。
【0124】
アクティブ状態1130の間に、端末セットBまたはCのいずれかからの変更の指示が受信された場合は、シャドウ・データベース815、828のうちの該当する1つが更新され(1132)、次いで、ジャーナル・マネージャ880は、肯定応答メッセージを用いて、端末セットBおよびCのそれぞれ1つに応答する。次いで、バックアップ端末セットのジャーナル・マネージャは、アクティブ状態1130に戻る。
【0125】
図12は、マスタ端末セットとバックアップ端末セットの間での、マスタへのバックアップ端末セットの割当ておよびマスタからのその割当ての解除を行うための信号を示すシーケンス図である。端末セットAがマスタ端末セットであり、端末セットBがバックアップ端末セットであると仮定して、図12を説明する。図12を説明する際は、マスタ端末セットAおよびバックアップ端末セットBにおいて動作するモジュール830および811をそれぞれ示す、図9および10を参照する。
【0126】
端末セットBにそのバックアップ端末セットが割り当てられるようにするために、端末セットAは、端末セットBにバックアップ作成要求(Create Backup Request)1210を送信する(図9の934)。このメッセージは、端末セットBに端末セットAのバックアップとなるよう命令し、さらに、これにより端末セットBにおいて、端末セットAを対象とするデータベース815、ジャーナル825、およびオブザーバ860が作成されることになる。それがバックアップとして働くことができると仮定すると、端末セットBは、肯定的なバックアップ作成応答(Create Backup Response)1220を用いて応答する(図10の1026)。肯定的なバックアップ作成応答1220が受信されると、端末セットAは、端末セットBを端末セットAのローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナル851に、オブザーバ890として追加する(図9の944)。この段階で、端末セットBは、端末セットAのバックアップとなる。したがって、端末セットAは、アクティブ状態950(図9)にあり、端末セットBは、アクティブ状態1030(図10)にある。
【0127】
再び図12を参照すると、後のある時点で端末セットBがもはや端末セットAのバックアップとして必要でなくなった場合は、端末セットAは、端末セットBにバックアップ削除要求1230を送信する(図9の958)。バックアップ削除要求1230が受信されると、端末セットBは、端末セットAに関連するすべてのデータベースおよびジャーナルを削除し(図10の1034)、これが成功したものと仮定すると、肯定的なバックアップ削除応答(Delete Backup Response)1240を用いて応答する(図10の1038)。この段階で、端末セットBは、もはや端末セットAのバックアップではなく、したがって、端末セットAがアイドル状態920(図9)となり、端末セットBがアイドル状態1020(図10)となる。
【0128】
図13は、あるマスタ端末セットが、別のマスタ端末セットにおけるバックアップ端末セットの割当てを先取りするシーケンス図である。例示的な1つの例として、図13では、当初、端末セットAが端末セットCをバックアップ端末セットとして有しているものと仮定され、端末セットBがそれ自体のバックアップ端末セットとして端末セットCを獲得する措置を取ることが仮定されている。図13を説明する際は、端末セットAにおけるモジュール830(および/または840)の動作を示す図9と、端末セットBおよびCにおけるモジュール811(および/または821)の動作を示す図10とをそれぞれ参照する。
【0129】
まず、端末セットCが端末セットAのバックアップとして割り当てられるように、図12に関して上述した様式で、バックアップ作成要求メッセージ1310およびバックアップ作成応答メッセージ1320が、端末セットAとCの間で交換されたものと仮定する。
【0130】
端末セットBは、後のある時点で端末セットCをそれ自体のバックアップとして獲得することを望んだ場合は、端末セットAに先取り要求1330を送信する(図9の924)。先取り要求1330が受信されると、端末セットAは、上述したようなバックアップ削除要求メッセージ1340およびバックアップ削除応答メッセージ1350を端末セットCとの間で交換することにより、それ自体のバックアップ端末セットとしての端末セットCの割当てが解除されるようにする(図9の954および図10の1038)。肯定的なバックアップ削除応答1350が受信されると、端末セットAは、端末セットBに対して、端末セットCが現在バックアップとして使用可能であることを示す肯定的な先取り応答1360を送信する(図9の964)。次いで、端末セットBは、端末セットCが端末セットBのバックアップとなるようにするために、上述したようなバックアップ作成要求メッセージ1370およびバックアップ作成応答メッセージ1380を端末セットCとの間で交換する。
【0131】
図14は、端末セットBのマスタ端末セットとしての役割の端末セットAによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。図14では、バックアップ端末セットが音声メール・モジュール80の一部を形成する音声メール・アプリケーションをバックアップすることが望まれる例示的な1つの例の、端末セットAの辿るプロセスが示されている。ただし、本発明は、音声メール・アプリケーションのバックアップに限定されるものではない。本発明は、たとえば着呼をどのように処理すべきかを支配する「呼制御」アプリケーションを対象とする、ユーザ選好および短縮ダイヤルをバックアップするために使用することもできる。
【0132】
音声メール・モジュール80内のアプリケーションが初期化されたときは、音声メール・モジュール80は、信号1410で示されるデータベースを作成する(諸代替実施形態では、2つ以上のデータベースを作成してもよく、たとえば、複数のデータベースを使用して、音声メール・データを優先順位別に、たとえば優先順位の高いメッセージと通常の優先順位のメッセージとに分けるなどして分離することもできる)。別の端末セット(端末セットB)上でデータベースをバックアップすることが望まれているので、アプリケーションは、端末セットAにおけるピア・バックアップ・モジュール160のバックアップ・マネージャ810に対して、データベースIDを含むバックアップDBメッセージ1412を送信する。バックアップDBメッセージ1412が受信されると、バックアップ・マネージャ810は、ローカル・ジャーナル・モジュール850に対して、音声メール・アプリケーション用のローカル・ジャーナルを作成するための信号1414を送信する。このジャーナルは、データベースに最近発生した1組の変更を表す。次に、ローカル・ジャーナル・モジュール850は、ローカル・ジャーナル・モジュール850をオブザーバとして追加するためのメッセージ1416をデータベースに送信し、オブザーバをそのリストに追加する(1418)。オブザーバの目的は、データベース内の変更を追跡することにある。バックアップ・マネージャ810は、マスタ・バックアップ・モジュール830に対して、データベースおよびジャーナルを作成し、端末セットB上のジャーナルにオブザーバを割り当てるよう要求する、バックアップ作成メッセージ1420を送信する。図14では、分かりやすくするために、バックアップ作成メッセージ1420を介して行われる要求が、マスタ・バックアップ・モジュール830だけに送信されるように示してあるが、データベースおよびジャーナルを作成し、端末セットC上のジャーナルにオブザーバを割り当てることに関連のあるマスタ・バックアップ・モジュール840についても、同様の要求が行われることを理解されたい。
【0133】
マスタ・バックアップ・モジュール830は、端末セットBに対して、バックアップ端末セット(端末セットB)においてアプリケーション用のデータベースおよびジャーナルを作成し、端末セットBのジャーナルに端末セットBのオブサーバを割り当てるよう命令する、要求1424を送信する。端末セットBは、Bがバックアップとなることに同意し、該当するジャーナル・エントリを作成したことを示す、肯定的なバックアップ作成応答1430を用いて応答する。次いで、マスタ・バックアップ・モジュール830は、バックアップ・マネージャ810に対して、端末セットBをバックアップ端末セットとして登録するよう要求するバックアップ登録(register backup)メッセージ1432を送信する。次いで、バックアップ・マネージャ810は、端末セットBをローカル・ジャーナル・モジュール850にオブザーバとして追加するよう要求する、信号1434を送信する。次いで、ローカル・ジャーナル・モジュール850は、オブザーバ・モジュール890に対して、端末セットBに(端末セットAの)オブザーバを作成するためのオブザーバ作成(create observer)メッセージ1436を送信する。ローカル・ジャーナル・モジュール850は、音声メール・モジュール80に対して、音声メール・モジュール80のデータベースからレコードを検索するための信号1438を送信する。次いで、ローカル・ジャーナル・モジュール850は、オブザーバ・モジュール890に対して、ローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナルにおいてそのアプリケーションについて検索されたレコード(すなわち、所与のバックアップに送信される必要のある、データベースに対する1組の修正)を表すエントリを変更リストに追加するよう命令する、信号1440を送信する。
【0134】
ジャーナル・マネージャ880は後のある時点で(たとえば、装置が使用不能期間の後、使用可能な状態に復帰したときに)、オブザーバ・モジュール890に対して、アプリケーション用の変更リストをオブザーバ・モジュール890から検索するための変更リスト取得(get change list)メッセージ1442を送信する。次いで、ジャーナル・マネージャ880は、端末セットBに対して、アプリケーション用のデータベースをそれぞれ更新するよう命令する更新要求(update request)メッセージ1444を送信する。
【0135】
図14に示されるように、音声メール・アプリケーションが(たとえば、発呼者が音声メール・メッセージを残した後に)新しいデータを生成すると、そのデータは、信号1446を介して音声メール・モジュール80のデータベースに追加され、または修正される。また、新しいデータが生成されると、音声メール・モジュール80のデータベースからローカル・ジャーナル・モジュール850に対して、音声メール・モジュール80内のデータベースからの新しいデータを含むDB変更更新(DB change updates)1448の信号が送られることになる。これに応答して、ローカル・ジャーナル・モジュール850は、その新しいデータをアプリケーション用のローカル・ジャーナルに追加し、オブザーバ・モジュール890に対して、アプリケーション用の変更リストを更新するよう命令するメッセージ1450を送信する。ジャーナル・マネージャ880は後のある時点で、オブザーバ・モジュール890に対して、オブザーバ・モジュール890からアプリケーション用の変更リストを検索するための変更リスト取得メッセージ1452を送信する。次いで、ジャーナル・マネージャ880は、端末セットBに対して、アプリケーション用の対応するデータベースを更新するよう命令する更新要求メッセージ1454を送信する。
【0136】
図15は、別の端末セットのバックアップになるときのバックアップ端末セットのメッセージングを示すシーケンス図である。この例では、端末セットAのバックアップの役割を果たすときの端末セットBにおける動作を説明する。
【0137】
まず、端末セットBが、マスタ端末セットAから、端末セットBにセットAのバックアップとして働くよう求める要求を構成する、バックアップ作成要求(Backup Create Request)1510を受信する。端末セットBのバックアップ・マネージャ810が、データベース・モジュール814に対して、マスタ上で走っているアプリケーションからの、たとえば音声メール・アプリケーションからのデータ用のデータベースを(スレーブ端末セットBにおいても)作成するための、バックアップ・データベース(すなわち、シャドウ・データベース)作成(create a backup database)メッセージ1520を送信する。バックアップ・マネージャ810はその後、(端末セットB内のすべての)ジャーナル・モジュール816に対して、端末セットB上で走っているアプリケーション用のバックアップ・ジャーナル825を作成するようバックアップのジャーナル・モジュール816に命令する、バックアップ・ジャーナル作成(create backup journal)メッセージ1522を送信する。端末セットBのバックアップ・マネージャ810は、ジャーナル・モジュール816に対して、後者のモジュールにマスタ端末セットAをバックアップのデータベースにオブザーバとして追加するよう命令する、メッセージ1524も送信する。さらに、端末セットAのその他のバックアップ端末セット(すなわち、第2のスレーブ)が、バックアップのデータベースにオブザーバとして追加される。
【0138】
次いで、バックアップのジャーナル・モジュール816は、オブザーバ・モジュール860に対して、後者のモジュールにマスタ端末セットにおいて走っているアプリケーション用のオブザーバをバックアップ端末セットにおいて作成するよう命令する、作成(create)信号1530を送信する。次いで、端末セットBのバックアップ・マネージャ810は、マスタ端末セットAに対して、端末セットBが現在端末セットAのバックアップとして割り当てられていることを示す、バックアップ作成応答OK(backup create response OK)メッセージ1540を開始する。このメッセージは、マスタ端末セットA上で走っているアプリケーション用のデータベース、バックアップ・ジャーナル、およびオブザーバが作成されたことを確認する。
【0139】
マスタ端末セットAは後のある時点で、バックアップ端末セットBに対して、端末セットBのジャーナル・マネージャ880から受信したジャーナル更新要求(journal update request)1550を送信する。端末セットBのジャーナル・マネージャ880は、端末セットBにおけるバックアップのデータベース・モジュール814に対して、端末セットB上のアプリケーション用に作成されたバックアップのデータベース815への取込みを行う、更新(update)メッセージ1554を送信する。
【0140】
図16は、バックアップのマスタ端末セットが使用不能であるときの、バックアップ端末セットのシーケンス図である。この例では、バックアップ端末セットを端末セットAと仮定し、マスタ端末セットを端末セットBと仮定する(図6)。
【0141】
マスタ端末セットBが呼を受信するのに使用不能であるときは、スレーブ端末セットAのジャーナル・マネージャ880が、(たとえば、すべてのピアに関する「アップ/ダウン」状態を監視する、ピア・ツー・ピア・サブシステムまたはモジュールから)ジャーナル・マネージャ880がBのデータベースにおけるAのコピーへのローカル変更に関する更新をマスタ端末セットBに送信しない旨を示す、メッセージ1610を受信する。マスタ端末セットBに宛てられた呼が、1次バックアップ(端末セットA)に転送される。たとえば、呼を開始した端末セットのピア・ツー・ピア・サブシステムは、それ自体の「呼制御」アプリケーションに対して、端末セットBがダウンしているときはそれを対象とする呼を端末セットAに渡すよう命令することができる。スレーブ端末セットAのアプリケーションがマスタ端末セットBのアプリケーションの代わりに走っている間に、そのアプリケーションに関連するデータベースに対する変更が生じたときは、スレーブ端末セットAで走っているアプリケーションが、バックアップのデータベース・モジュール814に対して、その変更を記録するよう要求するレコード追加(add record)メッセージ1620を送信する。バックアップのデータベース・モジュール814は、データベース815の変更を実施し、(メッセージ1630を介して)そのデータベースに関連するジャーナルの変更の記録をバックアップのジャーナル・モジュール816に通知する。次いで、バックアップのジャーナル・モジュールは、オブザーバ・モジュール860に変更リストへの追加(add to change list)メッセージ1640を送信する。
【0142】
図17は、それ自体のマスタ端末セットが使用不能期間の後に使用可能になったときの、バックアップ端末セットのシーケンス図である。図17に関する以下の説明では、端末セットAがマスタ端末セットであり、端末セットBがバックアップ端末セットであると仮定している。
【0143】
端末セットAが使用不能状態にあった後、呼を受けるのに使用可能になったときは、(たとえば、セットBのピアの状態を監視する、セットBのローカルのピア・ツー・ピア・サブシステムまたはモジュールからの)ピア・アップ(peer up)メッセージ1710が、バックアップ端末セットBのジャーナル・マネージャ880によって受信される。端末セットBのジャーナル・マネージャ880は、端末セットBのジャーナル・オブザーバ・モジュール860に対して、端末セットAが使用不能であった間に(端末セットBのシャドウ・データベース内の)端末セットAの情報に加えられた変更に関連する変更リストを検索するための、変更リスト取得メッセージ1720を送信する。ジャーナル・オブザーバ・モジュール860は、メッセージ1725において、その変更リストを端末セットBのジャーナル・マネージャ880に転送する。次いで、ジャーナル・マネージャ880は、ジャーナル更新要求1730を開始し、これをマスタ端末セットAに送信する。
【0144】
図18は、バックアップが割り当てられた後に、図1の電話システム10内の宛先端末セットへの呼を開始する動作の流れ図である。
【0145】
呼の発信元、たとえばネットワーク30に接続された電話端末セットのうちの1つが、たとえば発信元の端末セットのユーザからの所望の宛先セットに関するDNのエントリに応答して、ネットワーク30上の別の電話端末に接続しようと試みる(600)。たとえば、宛先電話セットがネットワークから切断され、ポートを消失した故に、または宛先セットの呼処理スレッド72、73、74、および75(図4)がすべて使用されている故に、宛先端末セットが使用不能である場合は(605)、発信元の電話セットにより、そのローカルの経路表200の列260から第1のバックアップが識別される。
【0146】
次いで、発信元の端末セットは、列220または230のうちの1つの対応する宛先アドレスを使用して、1次バックアップ端末セットを呼び出そうと試みる(610)。この呼が失敗した場合(すなわち、1次バックアップも使用不能である場合)は、経路表200の列270から、その使用不能なマスタ用の2次バックアップ番号に関する情報が検索される。次いで、表200から検索された2次バックアップ・セットの宛先アドレスを使用して、そのセットに対する呼出しが試みられる(620)。
【0147】
呼出しが試みられている対象の端末セットは、受信元であるその端末セットが呼を受けるのに使用可能である場合にしか、応答すべき呼を知らせるのに鳴動することができないことに留意されたい。他のどのような場合でも、単に呼処理スレッドと、呼に応答する端末の音声メール・モジュールとを協働させることにより、関連する端末セットを鳴動させることなく、呼を処理することができる。
【0148】
いくつかの実施形態では、端末に特有でない一般的な呼処理機能が提供される。一般的な呼処理としては、たとえば、個人化された挨拶の代わりに一般的な音声メールの挨拶(たとえば、「ただ今電話に出ることができません。メッセージを残して下さい。」)を再生することを挙げることができる。
【0149】
呼の宛先である端末セット、またはその端末セットのバックアップとしてアクティブ化されている端末セットのいずれかが呼を受信したときは、その端末セットは、所望の宛先電話セットに対する呼出しが無事完了したことが発信元に示されるような様式で、その呼を受ける。これにはたとえば、所望の電話セットを対象とする個人化された音声メールの挨拶を再生すること、および音声メールまたは呼の転送を処理する何らかのユーザ・オプションが必要なこともある。
【0150】
一方、この一般的な呼処理機能を用いると、端末がバックアップとして指定されていない端末セットの代わりに呼を受けることが可能になる。一般的な処理機能は、図18に示されている。
【0151】
図18に示されるように、この実施形態では、一般的な呼処理は、すべてのバックアップが(すなわち、1次も2次も)使用不能なときに発生する。620で2次バックアップ(すなわち、「第2レベルのバックアップ」)に対して試みられた呼出しが失敗した場合は、630で、発信元の端末セットは任意選択で、宛先端末セットの代わりにその呼に応答することができる(630および640)。これは、発信元の端末が宛先端末に特有などんな呼処理機能も有していない故に、必然的に一般的な様式で行われることになるはずである。一般的な呼出しが完了した結果生じるデータベースのどんな変更も、通常の呼出しの完了と同じように扱われ、すなわち、ジャーナル・マネージャ880(図8)によって該当する1つ(または複数)のセットへと伝播される。
【0152】
一般的な呼処理が使用可能でない諸実施形態では、すべてのバックアップ端末が使用不能である場合は、一般的な呼応答が実施される代わりに、発呼者に対して話中音が再生される(660)。ステップ600、610、620における試みのいずれかが成功した場合は、関連するセットによって呼が受けられ処理される(650)。
【0153】
当業者には理解されるように、上述した実施形態には、本発明の趣旨から逸脱することなく変更を加えることができる。たとえば、本明細書に記載の実施形態の大部分では端末セットであるピアについて言及しているが、ここに記載の方法は、他の形態のネットワーク装置など、端末セット以外のピアにも等しく適用可能であることが理解されるであろう。また、ネットワーク装置は、LANだけではなく任意の形態のネットワークによって相互接続されてもよい。さらに、ピアの発見についての記載では、加入者電話番号の選択、プローブ、アサートについて言及しているが、本明細書に記載の方法は、加入者電話番号以外のネットワーク・アドレスにも等しく適用可能であることが理解されるであろう。
【0154】
バックアップ・レベルの数(すなわち、マスタ毎のバックアップの数)は、本明細書に記載の実施形態における2つのバックアップ・レベルとは異なるものであってもよいことが理解されるであろう。一般に、Nを1以上の整数とする、最大N個のバックアップ・レベルが存在してもよい。
【0155】
さらに、上述した実施形態における端末セットは、各端末セットがN回バックアップとして働き、それ自体がN個のバックアップを有するという意味では「対称的」なものであるが、このことが必ずしもすべての実施形態に当てはまる必要はない。
【0156】
また、図5に示される経路表200は、維持され得る情報のタイプに関する非常に特有な例であることにも留意されたい。諸代替実施形態では、それぞれの経路表に異なる情報が含まれていてもよい。たとえば、バックアップ端末セットは、MACアドレス以外の何らかの様式で識別されてもよい。
【0157】
確認のために、本発明は、他の端末セットのバックアップ機能を提供する端末セットに限定されるものではないことに留意されたい。本発明のいくつかの実施形態では、TTIなど他のネットワーク装置が、バックアップ機能を提供し、あるいは他のネットワーク装置からのバックアップ機能の利益を享受してもよい。
【0158】
さらに、上記で使用される「信頼性」という用語は、分散型電話システムの外部の接続(たとえば、PSTNからの呼の受信)を端末セットが確実な形で確立できる能力を指すが、他のタイプのネットワーク装置については他の意味を有することもあることが、理解されるべきである。一般に、「信頼性」という用語は、ネットワーク装置が所望の対象に到達し、または所望のタスクを完了させることができる蓋然性を指し、この蓋然性は、ネットワーク装置に応じて異なることもある。
【0159】
最後に、本明細書に記載の諸実施形態におけるネットワーク装置は、ピア・ツー・ピア・ネットワーク内のピアであるが、そうすることが必ずしも必要とされるわけではないことが理解されるであろう。本明細書に記載のバックアップ手法は、「ピア・ツー・ピア」ネットワークとして必ずしも分類可能でないネットワーク上の、「ピア」として必ずしも分類可能でないネットワーク装置をバックアップするために使用されてもよい。
【0160】
上記の教示に照らせば、本発明の数々の変更形態および変形形態が可能である。たとえば、本発明の諸実施形態は、電話端末セットである上記の端末に限定されるものではなく、本発明のいくつかの実施形態では、端末セットは、任意のネットワーク通信装置である。したがって、本明細書に具体的に記載されている形以外でも、添付の特許請求の範囲内で本発明を実施できることが理解されるであろう。
【図面の簡単な説明】
【0161】
【図1】本発明の一実施形態によるピア・バックアップを利用する電話システムの図である。
【図2】図1に示される各端末セットの部分的な回路ブロック図である。
【図3】図1の各端末セット上で動作するソフトウェアの機能ブロック図である。
【図4】図3のピア・ツー・ピア呼処理モジュールの機能ブロック図である。
【図5】図1の例示的な端末セットの経路表である。
【図6】本発明の一実施形態による、マスタ/スレーブ関係をもつ3つの端末セットのブロック図である。
【図7】本発明の一実施形態による、バックアップ端末セットを選択する方法の流れ図である。
【図8】図3の端末セットの一部として動作するピア・バックアップのためのソフトウェアの機能ブロック図である。
【図9】バックアップの割当て、割当ての解除、および先取りの際のマスタ端末セットの動作を支配する、状態マシン/流れ図である。
【図10】それ自体のバックアップとしての割当ておよび割当ての解除を有効化する際の端末セットの動作を支配する、状態マシン/流れ図である。
【図11】他の2つの端末セットのバックアップ端末セットとして割り当てられた端末セットにおけるジャーナル・マネージャ・コンポーネントの動作を支配する、状態マシン/流れ図である。
【図12】マスタ端末セットとバックアップ端末セットの間での、バックアップ端末セットの割当ておよび割当ての解除を行うための信号を示すシーケンス図である。
【図13】本発明の別の実施形態による、あるマスタ端末セットが別のマスタ端末セットよりも先にバックアップ端末セットを先取りするシーケンス図である。
【図14】マスタ端末セットとして働く端末セットによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。
【図15】別の端末セットの第1のバックアップ端末セットとして働く端末セットによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。
【図16】マスタ端末セットが使用不能であるときの、ある端末セットがそのマスタ端末セットのバックアップ端末セットとして働くシーケンス図である。
【図17】マスタ端末セットが使用不能になったときの、ある端末セットがそのマスタ端末セットのバックアップ端末セットとして働くシーケンス図である。
【図18】図1の電話システム内の宛先端末セットへの呼を開始する方法の流れ図である。
【技術分野】
【0001】
本願は、参照によりその内容が本明細書に組み込まれている、2003年11月21日に出願された優先権仮出願第60/523703号の利益を主張する。
【0002】
本発明は、たとえば分散型ピア・ツー・ピア通信ネットワーク内でのピアのバックアップなど、ネットワーク装置のバックアップに関する。
【背景技術】
【0003】
多くの知られている回線交換(circuit−switched)またはパケット交換電話ソリューションでは、集中型の装置(たとえば、スイッチまたは構内交換機(PBX))が、呼の終了、呼の処理、交換、および/または呼の対応機能を提供する。大規模なシステムでは、中央装置が、コンピュータに電話セットを接続するライン・カードと呼ばれる回路基板上でいくつかの機能を制御する、強力なコンピュータであることもある。小規模なシステム(たとえば、端末セットが10個以下のシステム)では、中央の知能(intelligence)が実際に、中央の処理装置を保持するように特別に設計された「黄金の」電話セット内に所在していることもある。
【0004】
中央装置のとる形態に関わらず、いくつかの端末セット(たとえば、有線または無線電話セット)は通常、中央装置に接続される。中央装置と比較すると、端末セットは通常「ダム(dumb)」デバイスである。すなわち、端末セットは単に、フック・スイッチ情報およびキー・プレス(たとえば、デュアル・トーン多周波数すなわちDTMFトーン)を中央装置に送信し、ダイヤル・トーン、呼出音、音声信号など、中央装置からの信号を音に(あるいは、場合によっては画像またはビデオに)変換することしかできない。端末セットは通常、他のどんな端末セットの存在にも気付かず、別の端末セットとそれ自体を相互接続する固有の能力を有していない。
【0005】
集中型電話システムでは、ネットワーク内での電話セットの管理および発見は通常、中央装置によって実施される。たとえば、従来の回線交換型の時分割多重(TDM)電話システムでは、各端末セットが、たとえば中央の呼処理装置上のポートに接続されることがある。典型的には、各端末セットは、電源投入時に発生する初期化シーケンスの一部として、それ自体の使用可能性を中央装置に告知する。中央装置は、新しい端末セットが接続されたときのかかる告知の有無について各ポートを監視し、したがって新たに追加された端末セットを「発見」することができる。
【0006】
集中型のボイス・オーバ・インターネット・プロトコル(IP)すなわちVoIP電話システムでは、これと非常に似てはいるがやや複雑化した手続きが利用されるものの、端末セットは依然として、ネットワークを介してそれ自体の使用可能性を中央の呼処理装置に告知する。当技術分野で知られているように、VoIPは、IPに基づくデータ・ネットワークを介して呼を送出する。通信は、パケット・データの形をとっており、したがって、回線交換ネットワークの場合のような固定式の接続は存在しない。通信するのは、テキスト、音声、グラフィック、あるいはビデオであってもよい。IP装置は、相互運用可能なように、H.323やセッション開始プロトコル(SIP)のような標準に準拠していることがある。H.323標準には一般に、端末、ネットワーク装置、およびサービスの間でのマルチメディア通信がどのように発生するかが記述されている。SIP標準は、インターネットを介するマルチメディア・セッションをセット・アップし、変更し、解体するための技術要件をカバーする。本明細書で使用する「呼」という用語は、2つのエンド・ポイント間でのマルチメディア通信を指し、また、音声電話を含む。
【0007】
中央装置が回線交換型であるのかそれともパケット交換型であるのかに関わらず、新しい端末セットを発見する過程の中で、中央装置は通常、ネットワーク・アドレスの形の加入者電話番号(Directory Number:DN)の割当ておよび管理を自動的に行うことになる。DNは、たとえばPBXの内線であってもよい。DNは、個々のセットに割り当てられると、中央装置の維持しているDNのリストに加えられる。呼出し元の端末セットからDNが転送されたときに、集中型の装置が呼び出すべき物理的な端末セットの識別を判定できることが、この集中型のリストに基づいているだけであることが多い。
【特許文献1】優先権仮出願第60/523703号
【発明の開示】
【発明が解決しようとする課題】
【0008】
集中型システムでは通常、各端末セットを対象とする呼の取扱いオプション(call treatment options)も、中央に格納され、関連する端末セットが中央装置から切断されている場合でさえ、依然として使用可能なままである。「呼の取扱いオプション」という用語は、着呼をどのように処理すべきかを、たとえば音声メールに転送する前に鳴動が何回発生すべきか、または呼を別の内線に自動的に転送すべきかどうかを決定する設定を指す。呼の取扱いオプションが使用可能なままである故に、切断状態となった端末セット宛ての着呼であるにも関わらず、その端末セットが接続されていたときと同じ様式で着呼が処理されることもある。
【0009】
より高い処理能力に伴うコストおよびメモリが減少し続けるに従い、ネットワークに接続されるあらゆる電話セットに呼処理エンジンを含めることが、実現可能になってきている。かかるシステムでは、中央装置を排除することが望ましいかもしれない。かかる非集中型(decentralized)システムは、分散型電話システムと呼ばれることもある。
【0010】
分散型電話システムでは、中央装置が存在しないので、端末セットを対象とする呼の取扱いオプションを中央装置に格納することは、不可能である。呼の取扱いオプションは、それを適用する個々の端末セットに格納することもできる。しかし、かかる端末セットが切断状態となり、あるいはその他の原因で非アクティブ状態となった場合は、その端末セットを対象とする呼の取扱いオプションにアクセス不能となることもある。端末セットが使用不能になったときでさえ、その端末セットを対象とする呼の取扱いオプションが依然として使用可能なままであることが、望ましいはずである。
【0011】
より一般的にいえば、1つのネットワーク装置が使用不能になったときにも、その使用不能状態の間に、その使用不能なネットワーク装置の役割を別のネットワーク装置が果たすことを可能とし得るように、そのネットワーク装置に特有のデータが依然として使用可能なままであることが、望ましいはずである。
【課題を解決するための手段】
【0012】
1つのネットワーク装置が、他の少なくとも1つのネットワーク装置をそれ自体のバックアップとして選択し、それ自体が使用不能なときに、そのネットワーク装置の役割を1つ(または複数)のバックアップ・ネットワーク装置が果たす際に使用される情報を通信する。このネットワーク装置はまた、これをそれ自体のバックアップ装置として選択した、少なくとも1つのネットワーク装置から、その1つ(または複数)の選択元の装置が使用不能なときに、その1つ(または複数)の選択元の装置の役割を果たす際に使用する情報を受信する。各ネットワーク装置は、それがバックアップとして有するのと同じ数の装置のバックアップとして働くことができる。バックアップ装置の選択は、装置の信頼性に基づくものであってよい。一実施形態では、各ネットワーク装置は、1次および2次バックアップを有する。1次バックアップは、ネットワーク装置が使用不能になったときに、ネットワーク装置の役割を果たし、2次バックアップは、ネットワーク装置とその1次バックアップがどちらも使用不能であるときに、ネットワーク装置の役割を果たす。
【0013】
本発明の一態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置において、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択する工程であって、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される工程と、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信する工程であって、通信された前記情報は、前記1つのネットワーク装置が使用不能であるときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される工程と、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信する工程であって、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される工程とを含む方法が、提供される。
【0014】
本発明の他の態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置であって、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択され、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用され、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用されるように適合されたネットワーク装置が、提供される。
【0015】
本発明の他の態様によれば、複数のネットワーク装置のうちの1つのネットワーク装置での実行を対象とするマシン実行可能なコードを含むマシン可読媒体であって、前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される、マシン実行可能なコードと、前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される、マシン実行可能なコードと、マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される、マシン実行可能なコードとを備えるマシン可読媒体が、提供される。
【0016】
本発明の特定の諸実施形態に関する以下の説明を添付の図面と併せて考察すれば、本発明のその他の諸態様および特徴が当業者には明らかとなるであろう。
【0017】
ここで、本発明の好ましい諸実施形態を、添付の図面を参照して説明する。
【発明を実施するための最良の形態】
【0018】
概要として、複数の端末セットを含む分散型電話システム内の端末セットが、たとえばピアの発見を実施したことから、システム内の他の端末セットを認識しているものと推定される。この認識は、システム内の各端末セットの信頼性の指示(indication)を含む。このコンテキストにおいて「信頼性」とは、分散型電話システムの外部の接続を端末セットが確実な形で確立できる能力を指す。たとえば、ブリッジ接続(たとえば、イントラネット)によって結ばれた2つのサブ・ネットワークを含む電話システムにおいて、第1のサブ・ネットワークが、たとえば公衆交換電話網(PSTN)への外部接続を有し、第2のサブ・ネットワークが、その外部接続を有していない場合は、第2のサブ・ネットワーク上の端末セットにおけるPSTNとの接続を確立する能力は、ブリッジ接続の動作が継続することに依存する。この例では、第2のサブ・ネットワーク上の端末セットは、ブリッジ接続の動作状態に関わらずPSTNへの接続を確立できる第1のサブ・ネットワーク上の端末セットよりも信頼性が低いとされる。
【0019】
この情報を使用して、各端末セットが、ピア・バックアップの選択を行う。ピア・バックアップの選択の目的は、現在の端末セットが1次バックアップ端末セットおよび2次バックアップ端末セットを選択することにある。バックアップ端末セット(または単に「バックアップ」)は、現在の端末セットが使用不能になった(たとえば、切断状態になり、電力を消失し、あるいはその他の原因で着呼を受けることができない状態になった)場合に、現在の端末セットの役割(場合によっては、たとえば現在のセットの呼の処理オプションおよび音声メールの挨拶をエミュレートするような機能を含む)を果たすことができる端末セットである。より具体的には、1次バックアップ端末セットは、現在の端末セットが使用不能なときに、現在の端末セットの役割を果たすことができ、2次バックアップ端末セットは、現在の端末セットと1次バックアップがどちらも使用不能になった場合に、現在の端末セットの役割を果たすことができる。また、1次バックアップは、「第1レベルの」バックアップと呼ぶこともあり、2次バックアップは、「第2レベルの」バックアップと呼ぶこともある。あるいは一般に、バックアップを「スレーブ」と呼ぶこともある。スレーブが割り当てられた端末セットを、「割当て先(assignee)」または「マスタ」端末セットと呼ぶこともある。
【0020】
現在の端末セットが他の端末セットのうちのどれをそれ自体のバックアップとして選択すべきかを決定する上で、以下の通り、現在の端末セットの信頼性ならびに見込まれる(prospective)バックアップの信頼性の両方が考慮に入れられる。
【0021】
このシステム内の端末セットはすべて、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化される。M個のプールを作成する基礎となるのは、端末セットの信頼性であり、各端末セットは、同様の信頼性を有する見込まれるバックアップのプールに入れられる。最初に、見込まれるバックアップの「現在の」プールとして、最も信頼性の高い端末セットを有するプールが選出される。すべての端末セットがまず1次(すなわち第1レベルの)バックアップを受け取り、その後で2次バックアップがあればそれが割り当てられるということを反映するために、「現在のバックアップ・レベル」が、「第1レベル」にセットされる。
【0022】
その後、現在のプールからの端末セットが、1次バックアップとして、割当て先の端末セットの信頼性の昇順に、システム内のすべての端末セットに割り当てられる(すなわち、最も信頼性の低い端末セットが最初にバックアップを受け取る)。バックアップは、端末セットが2つ以上の1次バックアップを受け取らないように割り当てられる。
【0023】
割当ては、(a)見込まれるバックアップの現在のプール内のあらゆる端末セットが割当てを2回受ける(プール内の各端末セットがスレーブとして割り当てられたマスタの数が2になる)まで、または(b)システム内のあらゆる端末セットが1次バックアップを受け取るまで続く。
【0024】
(a)が発生したときは、見込まれるバックアップの次のプールが信頼性の降順に選出され(すなわち、見込まれるバックアップの、次に信頼性の高いプールが現在のプールになる)、上述したように割当てが繰り返される。
【0025】
(b)が発生したときは、1次バックアップの割当てが完了する。その後、「現在のバックアップ・レベル」が、第1レベル(1次)から第2レベル(2次)に変更され、2次バックアップの割当てが、1次バックアップと同じ様式で進められる。
【0026】
すべての2次バックアップが割り当てられると、バックアップの選択は完了する。この段階で、現在の端末セットは、1次および2次バックアップとしてどの端末セットがシステム内の各端末セットに割り当てられたかを認識することになる。この情報は、(PBXの内線に類似する)加入者電話番号や(たとえば、VoIP電話をかけるのに使用される)IPアドレスなど、各端末セットに関する他の情報を含む経路表の形で格納されてもよい。しかし、マスタ/スレーブ関係を強固にするために、以下の通り各マスタ端末セットとそれに割り当てられたスレーブとの間の通信が、依然として必要とされる。
【0027】
現在の端末セットは、その経路表を検査することにより、それ自体の1次および2次バックアップとしてどの2つの端末セットが割り当てられたかを特定することができる。この情報を使用して、現在の端末セットが、特定された端末セットのそれぞれに対して、それ自体のスレーブとなるよう正式に要求する要求メッセージを送信する。
【0028】
現在の端末セットのスレーブとなることへのその同意が各端末から与えられたと仮定すると、現在の端末セットが、それ自体のローカル・データベースのコピーをスレーブ端末セットに送信し、スレーブが、そのコピーをそれ自体のローカルに格納する。かかるデータベースのコピーは、「シャドウ(shadow)」データベースと呼ばれる。シャドウ・データベースは、マスタ端末セットが使用不能になったときに、スレーブがマスタ端末セットの役割を果たす(その動作をエミュレートする)のを可能にするために必要な情報を含んでいる。この情報は、たとえば呼の処理オプションまたは音声メールの挨拶を含んでいてもよい。
【0029】
同時に、現在の端末セットは、他の2つの端末セットからそれらのスレーブとして働くよう求められる要求を受信することになる。現在の端末セットはこれに同意すると、「シャドウ」データベースの形で現在の端末セットのローカルに格納するための、要求元セットのデータベースのコピーを受信する。
【0030】
システムの動作中は、マスタのデータベース内の情報が変更され得る可能性がある。たとえば、マスタ端末セットのユーザは、たとえば端末セットを最初に鳴動させるのではなく、着呼が音声メールへと直接転送されるように端末セットの構成を更新することもある。この状況では、マスタは、マスタのデータベースとスレーブのシャドウ・データベースとの一貫性を維持するために、それ自体のデータベースに更新があった後は、変更された情報を各スレーブに通信することになる。
【0031】
マスタ端末セットが使用不能な場合、1次端末セットがそのマスタの役割を果たすことになる。たとえば、呼出し元の端末セットは、使用不能な端末セットに接続できない場合は、その使用不能なセットの1次バックアップとしてどの端末セットが働いているかを特定するために、それ自体のローカルで維持している経路表を利用する。次いで、呼出し元の端末セットは、その呼が当初使用不能なマスタに宛てられたものであることを1次バックアップが認識するような様式で、特定した1次バックアップに接続しようと試みる。それがアクティブであると仮定すると、1次バックアップは、マスタが使用不能であることに呼出し側が気付くことすらできないように、マスタがその呼を受け取った場合と同じ様式で(たとえば、同じ呼の処理オプションおよび音声メールの挨拶を用いて)呼を受け取る。
【0032】
1次バックアップが使用不能である場合も、同様のやり方で、2次バックアップに接続しようとする試みがなされる。
【0033】
1次および2次端末セットの両方が使用不能である場合は、呼出し側の端末セットは、一般的なやり方で(すなわち、使用不能なマスタのデータベースのコピーの利益なしに)呼を受けることができる。
【0034】
スレーブ端末セットがそのマスタをエミュレートしている間は、スレーブ端末セットにおいて加えられたマスタの構成に対するどんな変更も、そのマスタを対象とするスレーブのシャドウ・データベースに変更が及ぶことになる。これらの変更は、スレーブによって追跡され、他のスレーブが現在のスレーブのシャドウ・データベースとそれ自体のシャドウ・データベースとの一貫性を維持することができるように、同じマスタに仕える他のスレーブに報告される。また、追跡された変更は、マスタが再びアクティブになったときに、その使用不能状態の間に(そのマスタのバックアップとしての立場の)スレーブに加えられたどの構成変更の利益も享受することができるように、マスタに送信される。
【0035】
1次および2次バックアップが既に割り当てられている分散型電話システムに端末セットが追加された場合、その新しい端末セットは、既存のマスタ端末セットに対して、そのバックアップの1つを引き渡すよう求める要求を送信することができる。たとえば、新しい端末セットは、既存のマスタ端末セットの1次バックアップと2次バックアップがどちらも最も信頼性の高いものであると判定した場合は、そのマスタに対して、その2次バックアップを新しい端末セットがそれ自体の1次バックアップとして使用するためにそれを引き渡すよう求めることができる。この場合では、新しい端末セットは、既存のマスタに先取り(preemption)要求を送信する。マスタからバックアップが引き渡されると、新しい端末セットは、先取りしたバックアップ端末セットをそれ自体の1次バックアップとして主張し、それとの間での必要な情報交換を実施する。次いで、引渡し元のマスタは、新しい端末セットをそれ自体の2次バックアップとして割当て、それとの間での必要な情報交換を実施することができる。これが、新しい端末セットの2次バックアップを獲得するために繰り返される。次いで、引渡し元の端末セットのそれぞれは、新しい端末セットをそれ自体のバックアップとして割り当てることができる。
【0036】
システムの動作中は、各端末セットは周期的に、それ自体の現在の1次および2次バックアップの識別を他のすべての端末セットに通知する(PEER_ASSERTという「ハートビート」メッセージが使用されるが、これについては以下でより詳細に説明する)。端末セットのバックアップの識別に変更があった場合は、他の端末セットは、上記のメッセージを介してその変更に気付き、それに従ってそれぞれの経路表を更新する。
【0037】
図1を参照すると、ネットワーク・ベースの分散型ピア・ツー・ピア呼処理を利用し、本発明の一実施形態によるピア・バックアップを実施する、分散型電話システム10(または「電話システム10」)が示されている。電話システム10は、全体のネットワーク30を形成するための、イントラネット14を備えるブリッジ接続によって相互接続された、2つのローカル・エリア・ネットワーク(LAN)16および18を含む。諸代替実施形態では、異なる形態のブリッジ接続(たとえば、公衆インターネットを介して2つのオフィスを接続する仮想私設ネットワーク(VPN)トンネル)を利用することもできる。LAN16および18は、単にネットワーク16および18と、あるいは全体のネットワーク30の存在を暗に示すために、サブ・ネットワーク16および18と呼ばれることもある。第1のサブ・ネットワーク16は、スイッチ12によって相互接続された2つの端末セット100−3および100−4を含む。第2のサブ・ネットワーク18は、スイッチ20によって相互接続された7つの端末セット100−1、100−2、および100−5〜100−9を含む。スイッチ12および20は、ネットワーク・ハブに置き換えることもできる。
【0038】
サブ・ネットワーク18は、サブ・ネットワーク18に外部接続性をもたらすシン・トランク・インターフェイス(Thin Trunk Interface:TTI)40も含む。TTI 40は、たとえば基本的なアナログまたはデジタルT1/E1インターフェイスであっても、他の任意のPSTNインターフェイスであってもよく、ローカル・セントラル・オフィスまたはPSTN相互動作インターフェイスを提供し、いくつかの外部の電話「回線(line)」1、2、3、4と結合されている。回線1、2、3、4は、ローカル・セントラル・オフィスまたはPSTN(図示せず)から提供される機構を表す対線(wire pairs)である。本発明のいくつかの実施形態では、複数のTTIが必要とされ得るような多くの外部回線が存在する。たとえば、PSTNに8つの回線が必要とされる場合は、システム10に第2のTTIを追加することができる。
【0039】
図1におけるネットワーク30の構成が与えられたとすると、いくつかの端末セットにおけるPSTNとの接続を確立できる(あるいはより一般的には、全体のネットワーク30の外部の接続を確立できる)能力は、他の端末セットにおけるPSTNとの接続を確立できる能力よりも、干渉または障害の影響を受けやすいことがあるのは、明らかなはずである。たとえば、サブ・ネットワーク18上にTTI 40が存在する故に、サブ・ネットワーク18に直接接続されている端末セット、すなわち端末セット100−1、100−2、および100−5〜100−9は、比較的信頼性の高いPSTNへの接続性を享受することができる。一方、サブ・ネットワーク12上にはTTIが存在しない故に、サブ・ネットワーク12に直接接続されている端末セット、すなわち端末セット100−3および100−4は、より信頼性の低いPSTNへの接続性を有するかもしれない。すなわち、端末セット100−3および100−4は、イントラネット14およびサブ・ネットワーク18を介してPSTNにアクセスできるかもしれないが、それらのPSTN接続性は、中間にあるイントラネット14における障害の可能性の故に、より信頼性が低いと考えられる。(サブ)ネットワークが外部接続性を維持することのできる蓋然性は、クラス番号によって表される。本明細書で使用されるより低いクラス番号は、より信頼性の高い外部接続性を示す。したがって、サブ・ネットワーク18は、クラス1の(すなわち、より信頼性の高い)ネットワークと見なすことができ、サブ・ネットワーク12は、クラス2の(すなわち、より信頼性の低い)ネットワークと見なされる。したがって、サブ・ネットワーク18上のすべての端末セットは、サブ・ネットワーク12上のどの端末セットよりも信頼性が高いと見なされる。
【0040】
図1には、9つの端末セットしか示されていない。一般には、T≧2とする、合計T個の端末セットを存在させることができる。本発明のいくつかの実施形態では、Tは大きな数、たとえば千単位である。
【0041】
図1のシステム10は、従来の集中型電話システムとは異なり、分散型の呼処理を特徴としている。この分散型の呼処理は、たとえば分散型の音声メールを含めたいくつかの機能を特徴とすることもある。
【0042】
図2を参照すると、図1の電話システム10における例示的な端末セット100−X(X=1〜9)の部分的な回路ブロック図が、示されている。中央処理装置(CPU)530、メモリ管理ユニット(MMU)545、およびランダム・アクセス・メモリ(RAM)535が、計算装置の基礎を提供する。この計算装置は、オーディオ信号の符号化および復号用のデジタル信号処理装置(DSP)520に接続されている。DSP 520は、オーディオ・インターフェイス510に接続されている。計算装置は、LANおよびパーソナル・コンピュータ(PC)への接続を可能にする3ポート・スイッチ525にも接続されている。計算装置は、フラッシュ不揮発性メモリ540、赤外線(IR)インターフェイス550、キーパッドおよびボタン・インターフェイス555、液晶ディスプレイ(LCD)コントローラ560、端末セット100の標準化された拡張を可能にするパーソナル・コンピュータ・メモリ・カード国際協会(PCMCIA)インターフェイス565などの周辺機器のホストにも接続されている。ここでは特定のアーキテクチャが示されているが、より一般的には、以下で説明する方法を実装するのに十分な処理およびメモリ容量が使用可能であると仮定すれば、どんなパケット・ベースの(たとえば、インターネット・プロトコル(IP))電話でも使用することができる。たとえば、Mitel社、Nortel Networks社、Avaya社、Siemens社、NEC社、Pingtel社、3COM社などによって製造される既製のIP電話(たとえば、Nortel i2004、Siemens optiPoint 410、またはAvaya 4610)を使用することもできる。
【0043】
図3を参照すると、例示的な端末セット100−4上で動作するソフトウェアの機能ブロック図が示されている。これと同じソフトウェアが図1の各端末セット100−X上で動作していることが、理解されるであろう。このソフトウェアは通常、図2のRAM535内に格納され、CPU530上で走り、磁気または光ディスク、テープ、チップ、あるいは別の形態の1次または2次ストレージとし得る、マシン可読媒体32(図1)からロードすることができる。より一般的には、このソフトウェアは、汎用または専用の処理装置、ファームウェア、ハードウェア、特定用途向け集積回路(ASIC)、書替え可能ゲート・アレイ(Field−Programmable Gate Array:FPGA)、汎用または専用ロジックによって実行される、メモリ内に格納されたマシン実行可能なコードの任意の適当な組合せとして実装することができる。
【0044】
システム・ディスパッチャ120が、プロトコル・スタック60、呼処理モジュール70、音声メール・モジュール80、ダイヤル規則モジュール90、ピア発見モジュール110、ディスプレイ・ハンドラ130、オーディオ・ハンドラ140、入力ハンドラ150、およびピア・バックアップ・モジュール160を含む様々な機能要素間の通信およびスケジューリングを行う。
【0045】
プロトコル・スタック60は、端末セットがメッセージを送信し受信するのを可能にする、コンピュータ・ネットワーキング・プロトコル(またはプロトコル・セット)のソフトウェア実装である。プロトコル・スタックは、当業者にはよく理解されている。
【0046】
呼処理モジュール70は、呼のセット・アップおよび解体、ならびに音声チャネルのセット・アップを行うために、プロトコル・スタック60と相互作用する。呼が受信されたがユーザがそれに応答できない場合は、その呼を音声メールに転送し、あるいはモジュール70の動作によって処理することができる。モジュール70によって処理される呼は、現在の端末セットに宛てられた呼であることも、その端末セットが使用不能である場合には現在の端末セットがそのバックアップとして働く、別の端末セットに宛てられた呼であることもある。いくつかのセットにおける呼処理モジュール70が、集中型の装置を必要としない分散型の形式で、集合的にPBXと同様の呼処理機能を提供するように働く。呼処理モジュール70は、様々な呼スレッド(call thread)を管理する責任を負う呼処理ディスパッチャ(CPディスパッチャ)71も有する。呼処理モジュール70は、以下でより詳細に説明する。
【0047】
音声メール・モジュール80は、呼が受信されたがユーザがそれに応答できないときに、音声メール・サービスを提供する。
【0048】
ダイヤル規則モジュール90は、電話をどのようにかけるかを制御する呼処理モジュール70に適用する、1組のダイヤル規則を含んでいる。
【0049】
ピア発見モジュール110は、端末セット100−Xが最初にネットワークに接続されたときのピアの発見を容易にする。モジュール110には、いくつかの責任がある。第1に、モジュール110は、端末セットのネットワークへの最初の接続時に、現在の端末セット100−Xに一意のDNを自動的に割り当てることを容易にする。第2に、モジュール110は、ネットワーク30からの端末セットの切断が生じ、あるいは端末セットの電力の消失が生じたときにも、端末セット100−Xに割り当てられたDNが保存されることを保証する(これらのどちらでも、端末セットは「非アクティブ」となる)。DNを保存する動機は、(たとえば、端末セットとネットワークの間の接続障害、単純な電力の消失、または圏外への無線端末セットの移動を原因とする)ネットワーク30からの端末セットの一時的な切断の結果として、非アクティブ状態の端末セットのDNが再び割り当てられるのを防ぐためであるかもしれない。この再割当ては、どの端末セットが呼び出されたのかについて呼出し側に混乱を招く可能性がある。第3に、ネットワーク30内のその他のすべての端末セットでの動作に関連する、端末セット100−Xでのモジュール110の動作により、各端末セットが、ネットワーク30に接続されている他のあらゆる端末セットのDNに気付くことになり、その結果、各端末セットは他の端末セットに電話をかけることができる。ピア発見モジュール110の行う動作に関する簡単な概要を以下に示す。
【0050】
「購入時のままの(factory fresh)」(すなわち、未構成の)状態の端末セットのネットワークへの初期接続時には、端末セットは、ネットワーク接続通知を用いて、それ自体のネットワークへの接続をネットワーク上のその他の端末セット(それ自体の「ピア」)に通知する。ネットワーク接続通知は、端末セットに関連する一意の識別子を、たとえば媒体アクセス制御(MAC)アドレスなどを含む。当技術分野で知られているように、MACアドレスは、ネットワーク装置用の一意の識別子として働く、一意のハードウェア・アドレスまたはハードウェア番号である。ネットワーク接続通知は、「I_AM_HERE」メッセージの形をとることができ、このメッセージは、(本発明の一実施形態のような場合では、少なくともその他のピアから各受信メッセージについての肯定応答が送信されない場合には)それが受信される可能性を高めるために複数回にわたって送信される。
【0051】
また、新たに接続された端末セットは、他の端末セットからの存在通知(existence notification)を受信する。存在通知は、現在ネットワーク上に所在し(すなわち、アクティブであり、ネットワークに接続されている)、あるいは以前ネットワーク上に所在した(すなわち、以前はアクティブな状態にあって接続もされていたが、今は切断状態となり、非アクティブである)端末セットの存在に関する指示である。この実施形態では、存在通知は、「I_AM_HERE」メッセージ(先に説明した)、「PEER_ASSERT」メッセージ(以下で説明する)、または「INACTIVE_PEER_ASSERT」メッセージ(以下で説明する)のいずれかとすることができる。各存在通知は、メッセージがそれに関して送信される端末セットの一意の識別子を含む。さらに、後者の2つのタイプのメッセージ(「PEER_ASSERT」および「INACTIVE_PEER_ASSERT」メッセージ)は、既に主張されているDNの指示、ならびに送信元の端末セットの1次バックアップおよび2次バックアップの識別を提供し、あるDNを既に少なくとも1つの端末セットが主張しているネットワークに新たに接続された端末セットが参加するときにだけ、受信される。
【0052】
存在メッセージからは、ネットワーク上のすべての端末セットのリスト(経路表と呼ばれる)が作成される。リスト内の端末セットは、それらの一意のネットワーク装置識別子によってソートされる。DNを既に主張しているどの端末セットについても、その主張しているDNが、ソート済みのリスト内で示されることになる。新たに接続された端末セットは、リスト内の順序位置を有することになる。
【0053】
新たに接続された端末セットは、見込まれるDNを選択するために、ベースDNにリスト内でのそれ自体の順序位置に関連するオフセットを追加することができる。たとえば、DNがPBXの内線であるシステムにおいて、新しい端末セットが9つの端末セットのリスト内の4番目にあると仮定すると、見込まれるDNを204と(端末セットの順序位置に等しいオフセット、すなわちベースDNの200に4を足したもの)決定することができる。端末セットに関連する一意の順序位置に基づいて見込まれるDNの選択を行うことにより、様々な端末セットが一意の見込まれるDNを選択することが容易になる。これは、以前に割り当てられたDNを有する既存の端末セットを有していないネットワークに、購入時のままの複数の端末セットが同時に参加するというシナリオを仮定している。この原理(rationale)は、様々な端末セットが当初同じ見込まれるDNを選択することにより、衝突解決処理に時間を費やすことになり得るのを防止しようと試みることである。
【0054】
次いで、新たに接続された端末セットは、それ自体の見込まれるDNを選択すると、それを他の各端末セットに通知する。これは、「DNプローブ」と呼ばれる。新たに接続された端末セットは、(他の端末セットのうちの1つによる、そのDNに対する既存の主張に基づく何らかの異議(objection)がある場合でも)その見込まれるDNを主張することに他の端末セットが反対するのでなければ、その見込まれるDNをそれ自体のDNとして主張する。新たに接続された端末セットは、異議があればそれを示すのに十分な時間をその他の端末セットに与えるために、それ自体の見込まれるDNを主張する前に、所定の時間間隔だけ経過させてもよい。見込まれるDNの主張が成功したものと仮定すると、新たに接続された端末セットは、そのDNに対するそれ自体の主張を他の各端末セットに通知する。また、新たに接続されたセットは、端末セットが電力を消失したときにも、割当て済みのDNを呼び出すことができるように、その主張したDNを不揮発性メモリ内に格納する。経路表も格納することができる。
【0055】
確立されているネットワークに新たに接続された端末セットが参加する場合は、そのネットワーク上の他の端末セットは、既にそれら自体のDNの選択を済ませている。この場合では、新たに接続された端末セットの選出した見込まれるDNが、既に既存の端末セットのうちの1つに割り当てられている可能性もある。たとえば、ソート済みの端末セットのリスト内での新たに接続された端末セットの順序位置が、リストの末尾以外である(たとえば、新しい端末セットの一意の識別子によりそれがソート済みのリストの中間付近に配置されている)場合は、新たに接続された端末セットの順序位置に関連するオフセットがベースDNに追加された結果として得られる見込まれるDNが、既存の端末セットのうちの1つのDNであることもある。
【0056】
この可能性の点から、新たに接続された電話機は、それ自体の見込まれるDNを他のいずれかの端末セットに通知しようと試みる前に、まず、それ自体の経路表を参照して、その見込まれるDNが既にネットワーク内の他のいずれかの端末セットによって主張されているかどうかを判定する。見込まれるDNが既に別のセットによって主張されている場合は、新たに接続された端末セットは、その選出をいずれかのその他の端末セットに通知する前に、たとえばリスト内で見受けられる最大のDNに1などのオフセットを追加することによって、別の見込まれるDNを選択することができる。これにより、そうしない場合には新たに接続された端末セットがそれ自体の見込まれるDNを他の各端末セットに通知して、その他の端末セットのうちの既にそのDNを主張している1つの端末セットから異議を受信するだけに終わる可能性のある、ネットワーク上の不必要な通信オーバーヘッドを回避することができる。
【0057】
新たに接続された端末セットは、DNの主張に成功すると、そのDNに対するそれ自体の主張を、周期的にネットワーク上のその他の端末セットに通知する。この実施形態では、それぞれの周期的な通知は、「PEER_ASSERT」メッセージの形をとり、これは、新たに接続された端末セットの継続的なネットワーク・プレゼンスおよびそのDNに対する継続的な主張を示す、「ハートビート」として働く。PEER_ASSERTメッセージは、現在の端末セットの1次および2次バックアップにおける識別の指示も含んでいる(その結果、現在の端末セットのバックアップの識別に変更があった場合に、他の端末セットがその変更に気付き、それに従ってそれぞれの経路表を更新することになる)。この通知は、ネットワーク上のその他の端末セットによって監視される。この実施形態では、周期的な通知は、(たとえば、0秒と2秒の間の)ランダムな時間間隔で発生する。端末セットからの通知を受信することなく所定の量の時間が経過した場合は、その端末セットは、非アクティブ状態になったものと推定される。周期的な通知は、そのDNを後に追加される端末セットがそれ自体のDNとして主張しようと試みるのを防止する働きもする。たとえば、別の端末セットがそのDNをそれ自体の見込まれるDNとして選択しており、他の端末セットからの何らかの異議を待っている場合に、この通知は、その端末セットによるそのDNの主張に対する異議として働くこともある。急送異議(Express objection)(たとえば、DN_CONFLICTメッセージ)を送信することもできる。
【0058】
DNを主張した端末セットは、ネットワークから切断されまたは電力を消失した場合は、そのDNに対するそれ自体の主張をネットワーク上のその他の端末セットに周期的に通知することができない可能性が高い。この場合には、(たとえば、その端末セットからの最近のPEER_ASSERTメッセージが何ら存在しないことから)切断された端末セットの使用不能状態に気付いたネットワーク内の別の端末セットが介入し、切断された端末セットは非アクティブ状態にあるが、それ自体のDNは既に主張されていることを、ネットワーク上のその他の端末セットに周期的に通知することを開始する。介入してきた端末セットは、便宜上「代理(surrogate)」と呼ぶが、それ自体のDNに対するその主張をその他の端末セットに周期的に通知することに加えて、(以下で説明する「INACTIVE_PEER_ASSERT」メッセージの形をとる)これらの周期的な通知を送信する責任を負う。どの端末セットを非アクティブ状態の端末セットの代理にするべきかを決定するアルゴリズムを、適用することができる。非アクティブ状態の端末セットに代わって送信される代理による周期的な通知は、切断された端末セットのDNを後に追加された端末セットがそれ自体のDNとして主張しようと試みるのを防止することができる。
【0059】
切断された端末セットは、後にネットワークに再接続された場合は、(それ自体の不揮発性メモリから呼び出すことのできる)それ自体のDNをその他の端末セットに通知することを自ら再開することができる。代理の端末セットは、再接続を検出したときは、再接続された端末セットがその責任を再び果たすようになっているので、再接続された端末セットのDNをその他の端末セットに通知するのを中止することができる。
【0060】
再び図3を参照すると、ディスプレイ・ハンドラ130は、情報をフォーマットしユーザに表示する責任を負う。
【0061】
オーディオ・ハンドラ140は、呼出音、話中音、通話中着信音などのオーディオ音を再生するように、あるいはシステム・ディスパッチャ120からのオーディオ・メッセージを受信したときに、ネットワークからハンドセットのスピーカ(またはスピーカ・フォン)への音声チャネルに接続するように適合されている。
【0062】
入力ハンドラ150は、キー・プレス、フック・スイッチ、ボリューム・キー、ハンズ・フリー、ミュート・ボタンなどの機能を監視し、システム・ディスパッチャ120にそれが取るべき適切な措置について知らせる責任を負う。
【0063】
ピア・バックアップ・モジュール160は一般に、他の端末セットを現在の端末セットのバックアップ端末セットとして選択し、その使用をサポートする責任を負う。モジュール160は、現在の端末セットを他の端末セットのバックアップ端末セットとして使用することをサポートする責任も負う。モジュール160の動作は、以下でより詳細に説明する。
【0064】
図4は、図3の呼処理モジュール70ならびにプロトコル・スタック60の機能ブロック図である。入力側の(incoming)ネットワーク・メッセージ・チャネル50が示されており、これは、電話機がそこに接続されるネットワーク30を介してメッセージを受信し、それらをプロトコル・スタック60に渡すのに適した任意のメカニズムである。同様に、出力側の(outgoing)メッセージ・チャネルが52で示されており、これは、生成されたメッセージを、ネットワーク30を介して送信するための通路を提供する。図4の実施形態では、端末セット100−Xによってサポートされる機能の必要を満たす、4つの呼スレッド72、73、74、75が存在する。各呼スレッドはそれぞれ、呼を処理することができる。たとえば、1つの呼スレッドを用いて端末への音声電話を処理することができ、同時に、別の呼スレッドを使用して音声メール・メッセージを録音することができる。諸代替実施形態は、呼スレッドの数が異なることもあることを理解されたい。一般には、1つを主回線用とし、もう1つを音声メール用とする、少なくとも2つの呼スレッドが存在するはずである。図4の実施形態では、4つの呼スレッド72、73、74、75のうちの3つを使用し、第4の呼スレッドを音声メール用のスペアとして働かせて、3者間会議を処理することができる。第3の呼スレッドは、バックアップとして特定の端末が指定されている別の端末によって受信された音声メール・メッセージを録音する際に必要とされることもある。
【0065】
入力側のメッセージは、チャネル50を介してプロトコル・スタック60に届いたときは、受信(RX)スタック65の待ち行列に入れられ、最終的にCPディスパッチャ71へと送信される。CPディスパッチャ71は、その呼の宛先のスレッドを判定し、呼スレッド72、73、74、または75のうちの該当する1つにそのメッセージを転送する。このネットワーク・メッセージに応答して、その該当する呼スレッドは、パッケージ化され、送信(TX)スタック55を介してその宛先へと送信されるべき応答を、プロトコル・スタック60に送信することによって応答する。ネットワークへと折り返し送信されるメッセージのタイプは、呼スレッドの状態に依存する。たとえば、メッセージがセッション開始プロトコル(SIP)に基づく新しい呼についてのINVITEメッセージである場合は、応答は、呼の応答があったときに返される「180」RINGINGメッセージや「200」OKメッセージなどの適切な肯定応答である。
【0066】
図5は、例示的な端末セット100−Xによって維持される例示的な経路表200を示す。定常状態では、図1の9つの各端末セットは、図5に示されるのと同一の経路表200を有することになる。経路表200は、ピアの発見とピア・バックアップの選択がどちらも完了した後に作成される。ピアの発見が完了することにより、ネットワーク30上の各端末セットを対象とするエントリ(すなわち、行)が存在することになり、各端末セットが一意のDNの主張を済ませたことになる。ピア・バックアップの選択(以下でより詳細に説明する)が完了することにより、各ピアに、1次バックアップ端末セットおよび2次バックアップ端末セットが割り当てられたことになる。
【0067】
経路表200内にエントリを有する各端末セットまたは他のネットワーク装置については、次の情報が、すなわち、DN(列210)、MACアドレス(列220)、IPアドレス(列230)、装置タイプ(列250)、第1のバックアップ(列260)、第1のバックアップのタイプ(列265)、第2のバックアップ(列270)、第2のバックアップのタイプ(列275)、端末セットの状態(列296)、およびネットワーク・クラス(列299)が維持される。ピア・バックアップとの関連性の低いその他の情報(図示せず)も維持することができる。
【0068】
DN(列210)は、端末セットのPBXの内線に類似するものである。MACアドレス(列220)は、端末セットを一意に識別するハードウェア・アドレスである。図5の例示的な経路表200では、各MACアドレスは、最後の2つの文字を除けば同じである。IPアドレス(列230)は、端末セットのIPアドレスであり、このアドレスは、たとえばVoIPのメッセージングに使用される。装置タイプ(列250)は、ネットワーク装置のタイプの指示である。この例では、経路表200内の最初の9つのエントリは、VoIP対応(VoIP−capable)端末セットである。最後のエントリは、TTI 40である。他の様々なタイプのネットワーク装置(たとえば、ゲートウェイ)が、経路表200に含まれていてもよい。第1および第2のバックアップ(列260および270)は、その行で表される端末セットにバックアップとして割り当てられた2つの端末セットを識別する。各バックアップは、MACアドレスによって識別される(理解を助けるために、列260および270の括弧内にDNを示してある)。第1および第2のバックアップのタイプは、列265および275のそれぞれに示されている。「Pri」は、1次バックアップを示し、「Sec」は、2次バックアップを示す。最後に、クラス(列299)は、その行で表される端末セットがそこに接続されるネットワークの(上記で説明した)ネットワーク・クラスを示し、これは、その行で表される端末セットの信頼性を示す。
【0069】
ピア・バックアップの選択
端末セット100−Xが当初購入時のままの状態でネットワーク30に接続したときに、ピア・バックアップ・モジュール160が、ピア・バックアップの選択を行う。ピア・バックアップの選択の目的は、現在の端末セットが使用不能になった場合に、現在の端末セットの役割を果たすことになる、1次バックアップ端末セットおよび2次バックアップ端末セットを選択することにある。ピア・バックアップの選択の結果として、呼出し元の端末セットが(マスタが使用不能である場合には)1次バックアップに、また(マスタと1次バックアップがどちらも使用不能である場合には)2次バックアップに、それ自体の呼をリダイレクトするのを可能にするのに十分なバックアップ情報(列260、265、270、および275内)が、ローカルの経路表200(図5)ならびに他の端末セットにおける経路表200に取り込まれる(population)ことになる。
【0070】
図6は、仮想的な3つの端末セットA、B、およびCの間でのピア・バックアップの選択の結果を示す、概念的なブロック図である。図6では、各端末セットは、2つのマスタ「ポート」および2つのスレーブ「ポート」を有する1つのボックスとして示されている。第1の端末セット上のマスタ・ポートが第2の端末セット上のスレーブ・ポートと相互接続されている場合は、すなわち、第2の端末セットが第1の端末セットにスレーブ(すなわち、バックアップ)として割り当てられていることを示している。たとえば、端末セットAと端末セットBの間の相互接続731は、(図6では1次または2次バックアップとしてのBの状態が示されていないが)BがAのバックアップであることを示している。したがって、相互接続731、732、733、および734は集合的に、端末セットBおよびCがAのバックアップとして割り当てられていること、端末セットAがBのバックアップとして割り当てられていること、ならびに端末セットAがCのバックアップとしても割り当てられていることを示している。このことは、他のそれぞれの端末セットのバックアップとして端末セットが働くことができることを実際に示している。
【0071】
図6の各ポートおよび相互接続は、物理的なポートまたは相互接続に対応していないことが理解されるであろう。概念上の相互接続731、732、733、および734は、単なる例示のためにすぎず、実際には、各セットの経路表200(図5)におけるセットA、B、およびCのMACアドレスを、バックアップの列260および/または270において適切に識別するような他の手段によって実施される。
【0072】
図7は、本発明の一実施形態による、バックアップ端末セットを選択する動作を示す。例示的な1つの例として、図1の端末セット100−1〜100−9を対象とするバックアップの選択を以下で説明する。表1は、バックアップの選択が実施される端末セット100−1〜100−9のそれぞれのネットワーク・クラスを示す。
【0073】
【表1】
【0074】
表1に示されるように、端末セット100−1、100−2、および100−5〜100−9は、クラス1の(サブ)ネットワーク18に接続され、端末セット100−3および100−4は、クラス2の(サブ)ネットワーク16に接続されている(図1)。
【0075】
図7を参照すると、見込まれるバックアップ(すなわち、端末セット100−1〜100−9のすべて)が最初に、バックアップ端末セットとしての選択のために順序付けられる(1810)。この順序付けは、以下の表2に示されている。表2を参照すると、この実施形態では、見込まれるバックアップは、(1)ネットワーク・クラス(クラスの信頼性の降順)によって、また(2)バックアップ・タイプ(バックアップの優先順位の降順、すなわち1次の後に2次)によって順序付けられている。この実施形態における有効なバックアップ・スキームでは、各見込まれるバックアップが1次バックアップとしても2次バックアップとしても働くことになる故に、各見込まれるバックアップは、順序付けのために、1度は1次バックアップとして、1度は2次バックアップとして、2度リストに入れられる。ネットワーク・クラスとバックアップ・タイプとの一意の各組合せが、「グループ」を構成する。この実施形態では、2つのネットワーク・クラスが存在し、また、各端末セットが1次バックアップとしても2次バックアップとしても働くので、4つのグループが存在する。これらの4つのグループは、表2のグループ1〜4として識別される。
【0076】
【表2】
【0077】
言い換えれば、端末セットは、見込まれるバックアップの、各「プール」が特定の信頼性(すなわち、ネットワーク・クラス)の端末セットを含む、M個のプールに入れられる。この場合、M=2であることから、2つの信頼性レベル(すなわち、クラス1とクラス2)が存在するので、2つのプールが、すなわち第1のプール(セット100−3および100−4)と第2のプール(セット100−1、100−2、および100−5〜100−9)が作成される。第1および第2のプールは、表2のグループ1および2に対応する。グループ3および4は、グループ1および2の単なる複製にすぎず、見込まれる2次バックアップと見込まれる1次バックアップのそれぞれの立場で、同じ端末セットを表している。
【0078】
表2に示されるように、順序位置1〜9(グループ1および2)の端末セットは、それぞれの立場を見込まれる1次(P)バックアップ端末セットとしてリストに入れられた、システム内のすべての端末セットを含む。順序位置10〜18(グループ3および4)の端末セットは、それぞれの立場を見込まれる2次(S)バックアップ端末セットとして(同じ順序で)リストに入れられている、順序位置1〜9の同じ1組の端末セットである。
【0079】
グループ1、2、3、および4の各グループ内で、各端末セットは、それぞれのMACアドレス(図示せず)に従って順序付けされている。たとえば、表2の順序位置6および7では、DN207を有する端末セットは、DN206を有する端末セットよりも低いMACアドレスを有し、したがって、DN206を有する端末セットよりも先に選択されるように順序付けされる。こうしたグループ内での順序付けの基礎は、この実施形態の動作に必須のものではなく、諸代替実施形態によって異なることもある。
【0080】
次に、最も信頼性の高いネットワーク・クラスにおける1組の端末セットが(ここでは、クラス1のネットワーク上の端末セット、すなわち端末セット100−1、100−2、および100−5〜100−9)、1次バックアップとして割り当てられることになる第1のプールの端末セットとして選出される(1820)。この選出は、信頼性の高いバックアップに対する初期選好を反映している。
【0081】
その後、順序付けされたその1組の端末セット(表2)の索引が、第1の端末セットの順序番号にセットされ、この索引は、バックアップを受け取る第1の端末セットを、言い換えれば、第1の割当て先を表す(1830)。1830で識別される端末セットは、最も信頼性の低いネットワーク・クラスの端末セットとなり、より具体的には、最も信頼性の低いネットワーク・クラスにおけるすべての端末セットのうちの最も低いMACアドレスを有する端末セットとなる。最も信頼性の低いネットワーク・クラスが最初に選出されるということは、最も信頼性の低いネットワーク上の端末セットが最初にバックアップを受け取るというバックアップの割当てストラテジを反映している。「最も低いMAC番号」の判定基準(criterion)は、単に2次的な順序付けスキームにすぎず、より重要性の低いものである。1820で識別された第1の受取り先(recipient)に割り当てられることになる第1のバックアップは、最も信頼性の高いネットワーク・クラスからのものであることが理解されるであろう。この手法の原理は、最も信頼性の低いネットワーク上の端末セットが、最も信頼性の高いネットワーク・クラスの端末セットをそれぞれのバックアップとして受け取るべきである、ということである。
【0082】
1840で、バックアップとして割り当てられる第1の端末セット(すなわち、端末セット100−1)は、1830における索引の設定によって識別された、表2の現在の順序位置にある端末セット(すなわち、端末セット100−3)に、1次(または第1レベルの)バックアップとして割り当てられる。したがって、この最初の繰返しでは、ネットワーク・クラス1におけるすべての端末セットのうちの最も低いMACアドレスを有する端末セット(端末セット100−1)が、最も信頼性の低いネットワーク・クラスからの、最も低いMACアドレスを有する端末セット(端末セット100−3)を対象とする1次バックアップとして割り当てられる。
【0083】
次に、割り当てるための他のバックアップが存在するかどうかが評価される(すなわち、1次バックアップとしても2次バックアップとしても依然として割り当てられていない端末セットがあるかどうかに関する問合せが行われる)(1850)。割り当てるためのバックアップが残っていない場合(すなわち、すべてのバックアップが1次バックアップとしても2次バックアップとしても割り当てられた場合)は、ピアの選択が終了する。一方、1次バックアップとしても2次バックアップとしても割り当てられていない何らかの端末セットが(いずれかのプール内に)残っている場合は、見込まれるバックアップの現在のネットワーク・クラス(すなわち、現在のプール)内に、依然として2つの端末セットにバックアップとして割り当てられていない何らかの端末セットが残っているかどうかが評価される(1860)。
【0084】
1860での評価が肯定的になされた場合は、次のバックアップの受取り先(すなわち、次の割当て先)の表2内の順序位置を示す索引が増分され(1865)、次のバックアップの割当てのために、ステップ1840に戻る。
【0085】
一方、1860での評価が否定的になされた(すなわち、現在のネットワーク・クラス/現在のプールにおけるすべての端末セットが、2つの端末セットにバックアップとして割り当てられている)場合は、より信頼性の低いネットワーク・クラスを有する何らかの端末セットが存在するかどうか(すなわち、より信頼性の低い何らかの見込まれるバックアップのプールが存在するかどうか)が、さらに評価される(1870)。後者の評価が肯定的になされた場合は、1840に戻る前に新しいネットワーク・クラスについての処理を繰り返すために、1880で、ネットワーク・クラスが増分される(すなわち、次に信頼性の高いクラス番号にセットされる)。一方、1870での評価が否定的になされた場合は、各端末セットがそれぞれの2つのバックアップを受け取っていることとなり、選択が終了する。
【0086】
分かりやすくするために、1870の「Yes」分岐は通常、あるグループの「購入時のままの」セットを対象とするバックアップの選択が完了したときに辿られることになる。一方、1850の「No」分岐は、新しい端末セットが端末セットの既存のグループに加わったときに辿ることができる。
【0087】
バックアップの割当てが終了すると、バックアップ端末セットの割当ては、表3に示される通りとなる。
【0088】
【表3】
【0089】
表3では、1番目の列が、バックアップ端末セットを識別し、2番目の列が、バックアップ・セットのネットワーク・クラスを指定し、3番目の列が、列1で識別されたセットがバックアップとして働く第1の端末セットを識別し(括弧内にはバックアップのタイプが識別されている)、4番目の列が、列1で識別されたセットがバックアップとして働く第2の端末セットを識別する(括弧内にはやはりバックアップのタイプが識別されている)。
【0090】
表3のバックアップの割当て情報は、システム内の端末セットのそれぞれの経路表200(図5)に、より詳細には、経路表200の列260、265、270、および275に取り込まれる。バックアップの割当て情報は、各装置から周期的に送信されるPEER_ASSERTメッセージを介して伝播される。結果的には、各端末セットにおける経路表200は、図5に示されるような体裁となる。
【0091】
表3に示されるように、バックアップ端末セットは、1つの端末セットにとっての1次バックアップとして働き、別の端末セットにとっての2次バックアップとして働くことができるので、2つの異なる端末セットの1次バックアップとして働くことも、2つの異なる端末セットの2次バックアップとして働くこともできる。たとえば、表3の最初の行を参照すると、端末セット100−1は、端末セット100−3の1次バックアップ端末セットであり、端末セット100−8の1次バックアップ端末セットでもあることを理解することができる。表3の7番目の行を参照すると、端末セット100−9は、端末セット100−6の1次バックアップとして、また、端末セット100−5の2次バックアップとして働いている。最後に、表3の最後の行に示されるように、端末セット100−4は、端末セット100−6の2次バックアップ端末セットとして、また、端末セット100−9の2次バックアップ端末セットとしても働いている。ただし、バックアップが同じマスタにとっての1次バックアップと2次バックアップの両方として働くことはないことに留意されたい。
【0092】
図7に示されるバックアップの選択は、より信頼性の低い(クラス2の)ネットワーク内の端末セットがより信頼性の高い(クラス1の)ネットワーク内のバックアップ端末セットを有することを可能にし、その結果、発呼者がPSTNから、たとえばイントラネット14の障害が原因でより信頼性の低いネットワークにアクセスできなくなった場合にも、より信頼性の低いネットワーク(すなわち、サブ・ネットワーク16)の端末セットが、より信頼性の高いネットワーク(すなわち、サブ・ネットワーク18)上のバックアップの機能を有することができる。
【0093】
いくつかの実施形態では、バックアップを必要とする端末セットはすべて、同じネットワーク・クラスを有することになる。かかる場合では、端末セットを、たとえばMACアドレスだけを使用して順序付けすることもできる。さらに、本発明の諸実施形態は、(たとえば、表2のように)MACアドレスを識別子として使用して端末セットを順序付けることに限定されるものではない。たとえば、IPアドレス、DN、シリアル番号など、他の識別子を使用することもできる。
【0094】
図8は、図3のピア・バックアップ・モジュール160の構造をより詳細に示す機能ブロック図である。各端末セット100−Xにおけるピア・バックアップ・モジュール160は、同じである。例示的な1つの例として、図6の仮想的な端末セットAの観点から、ピア・バックアップ・モジュール160の動作を説明する。
【0095】
バックアップ・マネージャ810は、どの端末セットが現在の端末セットAの1次および2次バックアップとなるかを決定し、現在のセットAがそれらのバックアップのマスタとなるために必要な措置を取る責任を負う。バックアップ・マネージャ810は、それ自体の対象を支援する、第1のマスタ・バックアップ・モジュール830および第2のマスタ・バックアップ・モジュール840の機能を管理し調整する。
【0096】
ジャーナル・マネージャ880は、マスタ・データベース855(現在の端末セットAの設定に関連するデータを含む)と、端末セットAのスレーブのそれぞれ(すなわち、端末セットBおよびCであり、図示されてはいないが、それぞれのピア・バックアップ・モジュール160のインスタンスを有している)によって維持される「シャドウ」データベースとを同期化する責任を負う。シャドウ・データベースは、マスタ端末セットが使用不能になった場合にスレーブがそれをエミュレートするために維持している、マスタ端末セットのデータベースのコピーである。ジャーナル・マネージャ880は、現在の端末セットAがスレーブとして働く各マスタ端末セットのデータベースのコピー(すなわち、端末セットBおよびCのマスタ・データベースのコピー)である、現在の端末セットAによって維持される1対のシャドウ・データベース815と828とを同期化する責任も負う。ブロック854、814、および824は、それによってデータベース855、815、および828がそれぞれアクセスされるデータベース・モジュールである。
【0097】
図8の残りのブロックは、マスタ端末セットとしての端末セットAの役割、あるいは端末セットBおよびCのスレーブとしてのその役割に関するものである。次にこれらについて説明する。
マスタ端末セットとしての端末セットAに関連するブロック
【0098】
マスタ・バックアップ・モジュール830は、端末セットAを対象とする第1のスレーブ(たとえば、端末セットB)を確立し、またはそのスレーブを取り除くための、現在の端末セットAにおける別の端末セットとのマスタ側の相互作用を支配するスレッドである。モジュール830の動作を、以下でより詳細に説明する。マスタ・バックアップ・モジュール840は、それが端末セットAを対象とする第2のスレーブ(たとえば、端末セットC)を確立し、またはそのスレーブを取り除くためのマスタ側の相互作用を支配する点を除けば、モジュール830に類似するものである。
【0099】
ローカル・ジャーナル・モジュール850は、ローカル・ジャーナル851へのアクセスを提供する。ローカル・ジャーナル851は、マスタ・データベース855に最近発生した1組の変更(すなわち、現在の端末セットAの構成に対する最近の変更)を表す。かかる変更は、スレーブ端末セットBおよびCに報告する目的で追跡される。
【0100】
オブザーバ890は、ローカル・ジャーナル851の変更の有無を監視し、ジャーナル・マネージャ880がスレーブ端末セットBおよびCに対する変更の伝播を調整できるように、変更が検出されたことをジャーナル・マネージャ880に示す責任を負う。ジャーナル・マネージャ880は、たとえば報告すべき変更があるかどうかをオブザーバ・モジュール890に周期的に確認することができ、報告すべき変更がある場合は、ネットワーク30に送信されるメッセージ(図1)を用いて、その変更をバックアップ端末セットBおよびCに報告する。
【0101】
スレーブ端末セットとしての端末セットAに関連するブロック
スレーブ・モジュール811は、端末セットAを、その他の端末セット(たとえば、セットB)を対象とする(1次と2次のいずれかの)スレーブとして確立し、またはスレーブとして取り除くための、現在の端末セットAにおける別の端末セットとのスレーブ側の相互作用を支配するスレッドである。スレーブ・モジュール811の動作を、以下でより詳細に説明する。2次スレーブ・モジュール821は、それが端末セットAを、別の端末セット(たとえば、端末セットC)を対象とする(1次と2次のいずれかの)スレーブとして確立し、またはスレーブとして取り除くためのスレーブ側の相互作用を支配する点を除けば、モジュール811に類似するものである。
【0102】
シャドウ・データベース815および828は、Aがスレーブとして働く各マスタ端末セットのデータベースのコピー(すなわち、端末セットBおよびCのマスタ・データベースのコピー)である。第1のデータベース815は、端末セットBが使用不能になった場合に端末セットAがそれをエミュレートするのを可能にするために使用される(この例では、端末セットAを端末セットBの1次スレーブと仮定する)。バックアップのデータベース815内に格納される情報の例としては、たとえば、端末セットBのユーザ・オプションおよび短縮ダイヤル設定を挙げることができる。第2のデータベース828は、データベース815に類似するものであるが、必要に応じて、端末セットC(この例では、端末セットAをそれ自体の2次バックアップとして選択したものと推定される)をエミュレートするために使用される。
【0103】
端末セットAが(使用不能な)マスタ端末セットBの役割を果たしている(すなわち、バックアップとして「アクティブ化」されている)場合は、オブザーバ・モジュール860が、モジュール816を介して、使用不能なマスタのシャドウ・データベース815に対する変更を表すローカル・ジャーナル825の変更の有無を監視し、変更が検出されたことをジャーナル・マネージャ880に示す責任を負う。変更が検出された場合は、ジャーナル・マネージャ880は、同じ使用不能なマスタを対象に存在し得る他の任意のスレーブに対する変更の伝播を調整する。他のスレーブの識別は、たとえば、ローカルの経路表200(図5)を検査することによって取得することができる。ジャーナル・マネージャ880は、マスタ端末セットBが再び使用可能になった後の、マスタ端末セットBに対する変更の伝播も調整する。
【0104】
図8では、マスタと2つのスレーブのそれぞれに対して1つのデータベースおよび1つのジャーナルしか示されていない。しかし、本発明のいくつかの実施形態では、マスタとスレーブのそれぞれに対して複数のデータベースおよびジャーナルが存在することを理解されたい。
【0105】
モジュール821、824、826、828、838、および870は(それぞれ)、端末セットAがバックアップとして働いている他のマスタ端末セット(すなわち、端末セットC)にそれらが関連している点を除けば、モジュール811、814、816、815、825、および860に類似するものである。
【0106】
ジャーナル・マネージャ880は、報告すべき変更があるかどうかをオブザーバ・モジュール860、870に周期的に確認し、報告すべき変更がある場合は、その変更を該当するマスタ端末セットBまたはCに報告する。
【0107】
DN210を有する新しい端末セット100−10が、システム10のサブ・ネットワーク16(図1)に接続された場合は、その新しい端末セットに1次および2次バックアップ端末セットが提供されることが好ましいはずである。しかし、端末セット100−1〜100−9が定常状態のコンディションにあると仮定すると、新しい端末セットのバックアップとして働かせるのに使用可能な端末セットが存在しないことになる。特に、新しい端末セットのバックアップとして働かせるのに使用可能な、(それらの最高の信頼性の故にバックアップとして好ましい)より信頼性の高いサブ・ネットワーク18内の端末セットが存在しないことになる。
【0108】
この場合では、新しい端末セット100−10は、(ピアの発見動作を通じてそれ自体がネットワークに接続されたときに構築する)経路表200の列270を検査して、現在2次バックアップとして働いている何らかの端末セットがネットワーク・クラス1内にある(すなわち、最も信頼できる)かどうかを判定することができる。それ自体の経路表200が図5の例示的な経路表200に示される情報を反映していると仮定すると、この検査により、たとえば端末セット100−8および100−9が上記のカテゴリに入っていることを明らかにすることができる。
【0109】
この場合では、新しい端末セットは、現時点で端末セット100−8および100−9をそれ自体のバックアップとして有しているマスタ端末セットのそれぞれに対して(たとえば、端末セット100−2および100−5のそれぞれに対して)、それぞれの2次バックアップを引き渡すよう求める先取りメッセージを送信することができる。その後、新しい端末セット100−10は、端末セット100−8に対して、端末セット100−10の1次バックアップになるよう求めるメッセージを送信することができる。同様に、新しい端末セット100−10は、端末セット100−9に対して、端末セット100−10の2次バックアップになるよう求めるメッセージを送信することができる。
【0110】
その後、この先取りの結果としてそれぞれの2次バックアップを失った各端末セット100−2および100−5は、新しい端末100−10に対して、それぞれの2次バックアップとなるよう求めるメッセージを送信することができる。
【0111】
図9は、図8のマスタ・バックアップ・モジュール830をより詳細に示す。マスタ・バックアップ・モジュール830は、マスタ端末セットにおける、単一のバックアップ端末セットを割当て、割当てを解除し、先取りを行うための動作を支配する状態マシンを構成することが、理解されるであろう。したがって、各端末セットが1次および2次バックアップを有するこの実施形態では、第2のバックアップ端末セットの割当て、割当ての解除、および先取りを行うための、マスタ・バックアップ・モジュールの第2のインスタンス(すなわち、図8のモジュール840)も存在することになる。図9に示される状態マシンは、状態間の流れ図の諸ステップに類するステップを組み込んでおり、したがって図9は、流れ図および/または状態マシンの形であると見なし得ることが、理解されるであろう。この状態マシンを、マスタ端末セットとしての立場の端末セットAによる動作に関連して説明する。
【0112】
まず、端末セットAが、どのようなバックアップも割り当てられていないアイドル状態920に入る。バックアップ・マネージャ810から、バックアップを追加するよう求める命令があると(これは、ブート・アップ、ネットワーク30への新しい端末セットの追加、ネットワーク30からの既存の端末セットの除去、または既存の端末セットの使用可能状態への復帰に続いて、バックアップ・マネージャ810がそのスレーブの関係を検査した後に発生することがある)、見込まれる端末セットに対して、端末セットAのバックアップの役割を果たすよう要求する作成要求(Create Request)メッセージが送信される(934)。次いで、端末セットAは、「作成」状態940に関連する見込まれるバックアップ端末セットからの、端末セットAのバックアップの役割を果たすことへのその意思を反映する肯定的な作成応答(Creating Response)メッセージを待つ。バックアップ端末セットからの肯定的な作成応答メッセージが受信されると、そのバックアップ端末セットは、ローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナルにオブザーバとして追加される(944)。すなわち、作成応答メッセージは、ブロック810に到達し、処理のためにブロック830または840へと(その特定のスレーブとの関係を管理しているいずれかのブロックへと)経路指定される。スレーブ端末は、マスタ・データベース(855)のオブザーバ(890)となり、ローカル・ジャーナル・モジュール(850)によって維持される。このことは、こうすることでローカル・データベースへの変更にスレーブが気付くようになることを意味する。次いで、端末セットAは、こうしてバックアップが割り当てられたアクティブ状態950に入る。
【0113】
バックアップ端末セットとして使用可能な端末セットが存在しない場合は、別の端末セットにそのバックアップの1つを手放させる動作をトリガするための先取りイベントが、バックアップ・マネージャ810によって開始される。この場合では、現在の端末セット(セットA)は、(上述したような、最も信頼性の高い2次バックアップを有するものとして識別され得る)別のマスタ端末セットに対して、そのバックアップの1つが引き渡されるようにするための先取り(Pre−empt)メッセージを送信する(924)。次いで、端末セットAは、その他のマスタ端末セットからの、バックアップ端末セットが手放されたことを示す肯定的な先取り応答(Pre−empt Response)を待つ(930)。
【0114】
その後、端末セットAは、上述したような934から始まる動作を続けることにより、アクティブ状態950に移行すると、この時点で、引き渡されたバックアップが現在の端末セットに割り当てられた状態になる。
【0115】
状態950で、たとえばマスタ端末セットがネットワークから取り除かれる故に、バックアップ・マネージャ810が、そのマスタ端末セットからの割当て済みバックアップ端末セットの割当て解除を開始した場合は、そのバックアップ端末セットは、ローカル・ジャーナル・モジュール850が維持しているジャーナルのオブザーバとして取り除かれる(956)。このシナリオでは、バックアップ・マネージャ810は、ローカル端末セットがネットワークから取り除かれようとしていることをバックアップ・マスタ830に知らせるはずである。次いで、バックアップ・マスタ830は、削除要求(Delete Request)をスレーブに送信するはずである。削除応答(Delete Response)が受信されると、マスタ・データベース855のオブザーバ・エントリ890が、取り除かれ、もはやローカル・ジャーナル・モジュール850によって監視されることはなくなるはずである。次いで、マスタ端末セットAは、そのバックアップに対して、それがもはや端末セットAのバックアップとして必要とされなくなった旨を命令するためのバックアップ削除要求(backup delete request)を送信する(958)。次いで、端末セットAは、アイドル状態920に戻る前に、バックアップ端末セットがそれ自体の経路表200から、端末セットAをマスタとするすべての参照を取り除いたことを示す肯定的な削除応答を待つ(970)。
【0116】
その代わりに、状態950から、端末セットAにそのバックアップの1つを手放すよう要求する、別の端末セットからの先取り要求が受信された場合は、バックアップ・マネージャ810は、それ自体のバックアップBをローカル・ジャーナル・モジュール850が維持しているジャーナルのオブザーバとして取り除くための削除要求イベントを開始する(952)。バックアップ・マネージャ810は、先取り要求を処理のためにバックアップ・マスタ830へと経路指定するはずである。すなわち、マスタ・バックアップ・モジュール830は次いで、スレーブへの削除要求を開始するはずである。削除応答が受信されると、マスタ・データベース855のオブザーバ・エントリ890が、取り除かれ、もはやローカル・ジャーナル・モジュール850によって監視されることはなくなるはずである。次いで、端末セットAは、バックアップBに対して、それが先取りされることを示すバックアップ削除要求を送信する(954)。次いで、端末セットAは、バックアップ端末セットBがセットAをマスタ端末セットとするすべての参照を取り除いたことを示す肯定的な削除応答を待つ(状態960)。バックアップBからの肯定的な削除応答が受信されると、端末セットAは、先取りイベントを開始した端末セットに肯定的な先取り応答を送信する(ステップ964)。次いで、端末セットAは、アイドル状態920に戻る。
【0117】
図10は、図8のスレーブ・モジュール811をより詳細に示す。スレーブ・モジュール811は、端末セットAにおける、第1のマスタへのそのバックアップとしての割当ておよび割当ての解除を有効化するためのスレーブ側の動作を支配する状態マシンを構成することが、理解されるであろう。端末セットAをバックアップとして第2のマスタに割当て、その割当てを解除するための、スレーブ・モジュールの第2のインスタンス(すなわち、図8のモジュール821)も存在する。図10のモジュール811は、状態マシンの状態間の流れ図の諸ステップに類するステップを組み込んでおり、したがって図10は、流れ図および/または状態マシンの形であると見なし得ることが、理解されるであろう。端末セットBにバックアップとして割り当てられ、その割当てが解除される端末セットAの観点から、図10を説明する。
【0118】
モジュール811は当初、端末セットAがバックアップとして依然として割り当てられていないことを表す、アイドル状態1020にある。端末セットBは、「端末セットAをそれ自体のバックアップとする」ことを望む場合は、端末セットAに作成要求メッセージを送信する。端末セットAにおいて作成要求メッセージが受信されると、端末セットAのバックアップ・マネージャ810が、セットBが使用不能なときに端末セットAがその役割を果たす際に使用する情報を、見込まれるマスタ端末セットBから受信するために、シャドウ・データベース815を作成するプロセスを開始する(1022)。バックアップ・マネージャ810は、使用不能なマスタのシャドウ・データベース815に対する変更があればそれを追跡する際に使用される、バックアップのデータベース815用のジャーナル825を作成するプロセスも開始する(1024)。次いで、端末セットAは、その要求が実施されたことを示す作成応答OK(Create Response OK)メッセージを用いて端末セットBに応答し(1026)、マスタ端末セットBのバックアップとして割り当てられたアクティブ状態1030に入る。
【0119】
マスタ端末セットBは、後で端末セットAをそれ自体のバックアップとして取り除くことを望んだ場合は、端末セットAに削除要求を送信する。端末セットBからの削除要求が受信されると、端末セットAのバックアップ・マネージャ810が、それぞれ1022および1024で作成されたバックアップのデータベース815およびジャーナル825の除去を開始する(1034)。次いで、端末セットAは、マスタ端末セットBに対して、その削除要求が成功したことを示す削除OK応答(Delete OK response)を送信した後、バックアップとしての割当てが解除されているアイドル状態1020に戻る(1038)。
【0120】
図11は、バックアップとして割り当てられた端末セットのジャーナル・マネージャ880の動作を支配する、状態マシン/流れ図を示す。端末セットBとCのぞれぞれのバックアップとして働くものと仮定された端末セットAの観点から、図11を説明する。
【0121】
まず、端末セットAのジャーナル・マネージャ880が、ジャーナル変更状態の待ち状態1120に入る。それ自体のバックアップBまたはCのいずれか1つからの更新が受信されると(すなわち、たとえばユーザの指定した端末セット構成への変更に基づく、マスタ端末セットBまたはCのいずれかのマスタのデータに対する変更の指示が受信されると)、シャドウ・データベース815、828(図8)のうちの該当する1つが更新される。次いで、ジャーナル・マネージャ880は、肯定応答(ACK)メッセージを用いて、その更新を送信したマスタ端末セットに応答し(1124)、ジャーナル変更状態の待ち状態1120に戻る。
【0122】
ローカル・ジャーナル・モジュール850からのマスタ・データベース855が変更された旨の(その変更をスレーブに伝播すべきであるといった)指示を、ジャーナル・マネージャ880が(オブザーバ890を介して)受信した場合は、タイマが始動され(1126)、ジャーナル・マネージャ880は、アクティブ状態1130に入る。タイマは、送信すべき何らかのデータがあるかどうかを検査するために、すなわち、ジャーナル・マネージャ880がオブザーバ890を周期的にポーリングするために使用される(タイマの満了は、図14の動作1452に対応する)。一代替実施形態は、ポーリングの代わりに非同期通知を利用することもできることが、理解されるであろう。アクティブ状態1130においてタイマが満了すると、ジャーナル・マネージャ880は、バックアップ端末セットBおよびCに送信すべき変更が存在するかどうかをオブザーバ・モジュール890に確認する(1136)。送信すべき変更がある場合は、その変更が端末セットBとCの両方に送信される(1138)。次いで、タイマがリセットされ、始動され(1140)、マスタ端末は、アクティブ状態1130に戻る。
【0123】
1136で、バックアップ端末セットBおよびCに送信すべき変更が存在しない場合は、ジャーナル・マネージャ880は、ジャーナル変更状態の待ち状態1120に戻る。ジャーナル・マネージャ880が、状態1130から、1138で送信した変更に応答するいずれかのバックアップ端末セットからの肯定応答メッセージを受信した場合は、その変更を報告すべき変更のリストから取り除くことができ、ジャーナル・マネージャ880は、アクティブ状態1130に戻る。
【0124】
アクティブ状態1130の間に、端末セットBまたはCのいずれかからの変更の指示が受信された場合は、シャドウ・データベース815、828のうちの該当する1つが更新され(1132)、次いで、ジャーナル・マネージャ880は、肯定応答メッセージを用いて、端末セットBおよびCのそれぞれ1つに応答する。次いで、バックアップ端末セットのジャーナル・マネージャは、アクティブ状態1130に戻る。
【0125】
図12は、マスタ端末セットとバックアップ端末セットの間での、マスタへのバックアップ端末セットの割当ておよびマスタからのその割当ての解除を行うための信号を示すシーケンス図である。端末セットAがマスタ端末セットであり、端末セットBがバックアップ端末セットであると仮定して、図12を説明する。図12を説明する際は、マスタ端末セットAおよびバックアップ端末セットBにおいて動作するモジュール830および811をそれぞれ示す、図9および10を参照する。
【0126】
端末セットBにそのバックアップ端末セットが割り当てられるようにするために、端末セットAは、端末セットBにバックアップ作成要求(Create Backup Request)1210を送信する(図9の934)。このメッセージは、端末セットBに端末セットAのバックアップとなるよう命令し、さらに、これにより端末セットBにおいて、端末セットAを対象とするデータベース815、ジャーナル825、およびオブザーバ860が作成されることになる。それがバックアップとして働くことができると仮定すると、端末セットBは、肯定的なバックアップ作成応答(Create Backup Response)1220を用いて応答する(図10の1026)。肯定的なバックアップ作成応答1220が受信されると、端末セットAは、端末セットBを端末セットAのローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナル851に、オブザーバ890として追加する(図9の944)。この段階で、端末セットBは、端末セットAのバックアップとなる。したがって、端末セットAは、アクティブ状態950(図9)にあり、端末セットBは、アクティブ状態1030(図10)にある。
【0127】
再び図12を参照すると、後のある時点で端末セットBがもはや端末セットAのバックアップとして必要でなくなった場合は、端末セットAは、端末セットBにバックアップ削除要求1230を送信する(図9の958)。バックアップ削除要求1230が受信されると、端末セットBは、端末セットAに関連するすべてのデータベースおよびジャーナルを削除し(図10の1034)、これが成功したものと仮定すると、肯定的なバックアップ削除応答(Delete Backup Response)1240を用いて応答する(図10の1038)。この段階で、端末セットBは、もはや端末セットAのバックアップではなく、したがって、端末セットAがアイドル状態920(図9)となり、端末セットBがアイドル状態1020(図10)となる。
【0128】
図13は、あるマスタ端末セットが、別のマスタ端末セットにおけるバックアップ端末セットの割当てを先取りするシーケンス図である。例示的な1つの例として、図13では、当初、端末セットAが端末セットCをバックアップ端末セットとして有しているものと仮定され、端末セットBがそれ自体のバックアップ端末セットとして端末セットCを獲得する措置を取ることが仮定されている。図13を説明する際は、端末セットAにおけるモジュール830(および/または840)の動作を示す図9と、端末セットBおよびCにおけるモジュール811(および/または821)の動作を示す図10とをそれぞれ参照する。
【0129】
まず、端末セットCが端末セットAのバックアップとして割り当てられるように、図12に関して上述した様式で、バックアップ作成要求メッセージ1310およびバックアップ作成応答メッセージ1320が、端末セットAとCの間で交換されたものと仮定する。
【0130】
端末セットBは、後のある時点で端末セットCをそれ自体のバックアップとして獲得することを望んだ場合は、端末セットAに先取り要求1330を送信する(図9の924)。先取り要求1330が受信されると、端末セットAは、上述したようなバックアップ削除要求メッセージ1340およびバックアップ削除応答メッセージ1350を端末セットCとの間で交換することにより、それ自体のバックアップ端末セットとしての端末セットCの割当てが解除されるようにする(図9の954および図10の1038)。肯定的なバックアップ削除応答1350が受信されると、端末セットAは、端末セットBに対して、端末セットCが現在バックアップとして使用可能であることを示す肯定的な先取り応答1360を送信する(図9の964)。次いで、端末セットBは、端末セットCが端末セットBのバックアップとなるようにするために、上述したようなバックアップ作成要求メッセージ1370およびバックアップ作成応答メッセージ1380を端末セットCとの間で交換する。
【0131】
図14は、端末セットBのマスタ端末セットとしての役割の端末セットAによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。図14では、バックアップ端末セットが音声メール・モジュール80の一部を形成する音声メール・アプリケーションをバックアップすることが望まれる例示的な1つの例の、端末セットAの辿るプロセスが示されている。ただし、本発明は、音声メール・アプリケーションのバックアップに限定されるものではない。本発明は、たとえば着呼をどのように処理すべきかを支配する「呼制御」アプリケーションを対象とする、ユーザ選好および短縮ダイヤルをバックアップするために使用することもできる。
【0132】
音声メール・モジュール80内のアプリケーションが初期化されたときは、音声メール・モジュール80は、信号1410で示されるデータベースを作成する(諸代替実施形態では、2つ以上のデータベースを作成してもよく、たとえば、複数のデータベースを使用して、音声メール・データを優先順位別に、たとえば優先順位の高いメッセージと通常の優先順位のメッセージとに分けるなどして分離することもできる)。別の端末セット(端末セットB)上でデータベースをバックアップすることが望まれているので、アプリケーションは、端末セットAにおけるピア・バックアップ・モジュール160のバックアップ・マネージャ810に対して、データベースIDを含むバックアップDBメッセージ1412を送信する。バックアップDBメッセージ1412が受信されると、バックアップ・マネージャ810は、ローカル・ジャーナル・モジュール850に対して、音声メール・アプリケーション用のローカル・ジャーナルを作成するための信号1414を送信する。このジャーナルは、データベースに最近発生した1組の変更を表す。次に、ローカル・ジャーナル・モジュール850は、ローカル・ジャーナル・モジュール850をオブザーバとして追加するためのメッセージ1416をデータベースに送信し、オブザーバをそのリストに追加する(1418)。オブザーバの目的は、データベース内の変更を追跡することにある。バックアップ・マネージャ810は、マスタ・バックアップ・モジュール830に対して、データベースおよびジャーナルを作成し、端末セットB上のジャーナルにオブザーバを割り当てるよう要求する、バックアップ作成メッセージ1420を送信する。図14では、分かりやすくするために、バックアップ作成メッセージ1420を介して行われる要求が、マスタ・バックアップ・モジュール830だけに送信されるように示してあるが、データベースおよびジャーナルを作成し、端末セットC上のジャーナルにオブザーバを割り当てることに関連のあるマスタ・バックアップ・モジュール840についても、同様の要求が行われることを理解されたい。
【0133】
マスタ・バックアップ・モジュール830は、端末セットBに対して、バックアップ端末セット(端末セットB)においてアプリケーション用のデータベースおよびジャーナルを作成し、端末セットBのジャーナルに端末セットBのオブサーバを割り当てるよう命令する、要求1424を送信する。端末セットBは、Bがバックアップとなることに同意し、該当するジャーナル・エントリを作成したことを示す、肯定的なバックアップ作成応答1430を用いて応答する。次いで、マスタ・バックアップ・モジュール830は、バックアップ・マネージャ810に対して、端末セットBをバックアップ端末セットとして登録するよう要求するバックアップ登録(register backup)メッセージ1432を送信する。次いで、バックアップ・マネージャ810は、端末セットBをローカル・ジャーナル・モジュール850にオブザーバとして追加するよう要求する、信号1434を送信する。次いで、ローカル・ジャーナル・モジュール850は、オブザーバ・モジュール890に対して、端末セットBに(端末セットAの)オブザーバを作成するためのオブザーバ作成(create observer)メッセージ1436を送信する。ローカル・ジャーナル・モジュール850は、音声メール・モジュール80に対して、音声メール・モジュール80のデータベースからレコードを検索するための信号1438を送信する。次いで、ローカル・ジャーナル・モジュール850は、オブザーバ・モジュール890に対して、ローカル・ジャーナル・モジュール850が維持しているローカル・ジャーナルにおいてそのアプリケーションについて検索されたレコード(すなわち、所与のバックアップに送信される必要のある、データベースに対する1組の修正)を表すエントリを変更リストに追加するよう命令する、信号1440を送信する。
【0134】
ジャーナル・マネージャ880は後のある時点で(たとえば、装置が使用不能期間の後、使用可能な状態に復帰したときに)、オブザーバ・モジュール890に対して、アプリケーション用の変更リストをオブザーバ・モジュール890から検索するための変更リスト取得(get change list)メッセージ1442を送信する。次いで、ジャーナル・マネージャ880は、端末セットBに対して、アプリケーション用のデータベースをそれぞれ更新するよう命令する更新要求(update request)メッセージ1444を送信する。
【0135】
図14に示されるように、音声メール・アプリケーションが(たとえば、発呼者が音声メール・メッセージを残した後に)新しいデータを生成すると、そのデータは、信号1446を介して音声メール・モジュール80のデータベースに追加され、または修正される。また、新しいデータが生成されると、音声メール・モジュール80のデータベースからローカル・ジャーナル・モジュール850に対して、音声メール・モジュール80内のデータベースからの新しいデータを含むDB変更更新(DB change updates)1448の信号が送られることになる。これに応答して、ローカル・ジャーナル・モジュール850は、その新しいデータをアプリケーション用のローカル・ジャーナルに追加し、オブザーバ・モジュール890に対して、アプリケーション用の変更リストを更新するよう命令するメッセージ1450を送信する。ジャーナル・マネージャ880は後のある時点で、オブザーバ・モジュール890に対して、オブザーバ・モジュール890からアプリケーション用の変更リストを検索するための変更リスト取得メッセージ1452を送信する。次いで、ジャーナル・マネージャ880は、端末セットBに対して、アプリケーション用の対応するデータベースを更新するよう命令する更新要求メッセージ1454を送信する。
【0136】
図15は、別の端末セットのバックアップになるときのバックアップ端末セットのメッセージングを示すシーケンス図である。この例では、端末セットAのバックアップの役割を果たすときの端末セットBにおける動作を説明する。
【0137】
まず、端末セットBが、マスタ端末セットAから、端末セットBにセットAのバックアップとして働くよう求める要求を構成する、バックアップ作成要求(Backup Create Request)1510を受信する。端末セットBのバックアップ・マネージャ810が、データベース・モジュール814に対して、マスタ上で走っているアプリケーションからの、たとえば音声メール・アプリケーションからのデータ用のデータベースを(スレーブ端末セットBにおいても)作成するための、バックアップ・データベース(すなわち、シャドウ・データベース)作成(create a backup database)メッセージ1520を送信する。バックアップ・マネージャ810はその後、(端末セットB内のすべての)ジャーナル・モジュール816に対して、端末セットB上で走っているアプリケーション用のバックアップ・ジャーナル825を作成するようバックアップのジャーナル・モジュール816に命令する、バックアップ・ジャーナル作成(create backup journal)メッセージ1522を送信する。端末セットBのバックアップ・マネージャ810は、ジャーナル・モジュール816に対して、後者のモジュールにマスタ端末セットAをバックアップのデータベースにオブザーバとして追加するよう命令する、メッセージ1524も送信する。さらに、端末セットAのその他のバックアップ端末セット(すなわち、第2のスレーブ)が、バックアップのデータベースにオブザーバとして追加される。
【0138】
次いで、バックアップのジャーナル・モジュール816は、オブザーバ・モジュール860に対して、後者のモジュールにマスタ端末セットにおいて走っているアプリケーション用のオブザーバをバックアップ端末セットにおいて作成するよう命令する、作成(create)信号1530を送信する。次いで、端末セットBのバックアップ・マネージャ810は、マスタ端末セットAに対して、端末セットBが現在端末セットAのバックアップとして割り当てられていることを示す、バックアップ作成応答OK(backup create response OK)メッセージ1540を開始する。このメッセージは、マスタ端末セットA上で走っているアプリケーション用のデータベース、バックアップ・ジャーナル、およびオブザーバが作成されたことを確認する。
【0139】
マスタ端末セットAは後のある時点で、バックアップ端末セットBに対して、端末セットBのジャーナル・マネージャ880から受信したジャーナル更新要求(journal update request)1550を送信する。端末セットBのジャーナル・マネージャ880は、端末セットBにおけるバックアップのデータベース・モジュール814に対して、端末セットB上のアプリケーション用に作成されたバックアップのデータベース815への取込みを行う、更新(update)メッセージ1554を送信する。
【0140】
図16は、バックアップのマスタ端末セットが使用不能であるときの、バックアップ端末セットのシーケンス図である。この例では、バックアップ端末セットを端末セットAと仮定し、マスタ端末セットを端末セットBと仮定する(図6)。
【0141】
マスタ端末セットBが呼を受信するのに使用不能であるときは、スレーブ端末セットAのジャーナル・マネージャ880が、(たとえば、すべてのピアに関する「アップ/ダウン」状態を監視する、ピア・ツー・ピア・サブシステムまたはモジュールから)ジャーナル・マネージャ880がBのデータベースにおけるAのコピーへのローカル変更に関する更新をマスタ端末セットBに送信しない旨を示す、メッセージ1610を受信する。マスタ端末セットBに宛てられた呼が、1次バックアップ(端末セットA)に転送される。たとえば、呼を開始した端末セットのピア・ツー・ピア・サブシステムは、それ自体の「呼制御」アプリケーションに対して、端末セットBがダウンしているときはそれを対象とする呼を端末セットAに渡すよう命令することができる。スレーブ端末セットAのアプリケーションがマスタ端末セットBのアプリケーションの代わりに走っている間に、そのアプリケーションに関連するデータベースに対する変更が生じたときは、スレーブ端末セットAで走っているアプリケーションが、バックアップのデータベース・モジュール814に対して、その変更を記録するよう要求するレコード追加(add record)メッセージ1620を送信する。バックアップのデータベース・モジュール814は、データベース815の変更を実施し、(メッセージ1630を介して)そのデータベースに関連するジャーナルの変更の記録をバックアップのジャーナル・モジュール816に通知する。次いで、バックアップのジャーナル・モジュールは、オブザーバ・モジュール860に変更リストへの追加(add to change list)メッセージ1640を送信する。
【0142】
図17は、それ自体のマスタ端末セットが使用不能期間の後に使用可能になったときの、バックアップ端末セットのシーケンス図である。図17に関する以下の説明では、端末セットAがマスタ端末セットであり、端末セットBがバックアップ端末セットであると仮定している。
【0143】
端末セットAが使用不能状態にあった後、呼を受けるのに使用可能になったときは、(たとえば、セットBのピアの状態を監視する、セットBのローカルのピア・ツー・ピア・サブシステムまたはモジュールからの)ピア・アップ(peer up)メッセージ1710が、バックアップ端末セットBのジャーナル・マネージャ880によって受信される。端末セットBのジャーナル・マネージャ880は、端末セットBのジャーナル・オブザーバ・モジュール860に対して、端末セットAが使用不能であった間に(端末セットBのシャドウ・データベース内の)端末セットAの情報に加えられた変更に関連する変更リストを検索するための、変更リスト取得メッセージ1720を送信する。ジャーナル・オブザーバ・モジュール860は、メッセージ1725において、その変更リストを端末セットBのジャーナル・マネージャ880に転送する。次いで、ジャーナル・マネージャ880は、ジャーナル更新要求1730を開始し、これをマスタ端末セットAに送信する。
【0144】
図18は、バックアップが割り当てられた後に、図1の電話システム10内の宛先端末セットへの呼を開始する動作の流れ図である。
【0145】
呼の発信元、たとえばネットワーク30に接続された電話端末セットのうちの1つが、たとえば発信元の端末セットのユーザからの所望の宛先セットに関するDNのエントリに応答して、ネットワーク30上の別の電話端末に接続しようと試みる(600)。たとえば、宛先電話セットがネットワークから切断され、ポートを消失した故に、または宛先セットの呼処理スレッド72、73、74、および75(図4)がすべて使用されている故に、宛先端末セットが使用不能である場合は(605)、発信元の電話セットにより、そのローカルの経路表200の列260から第1のバックアップが識別される。
【0146】
次いで、発信元の端末セットは、列220または230のうちの1つの対応する宛先アドレスを使用して、1次バックアップ端末セットを呼び出そうと試みる(610)。この呼が失敗した場合(すなわち、1次バックアップも使用不能である場合)は、経路表200の列270から、その使用不能なマスタ用の2次バックアップ番号に関する情報が検索される。次いで、表200から検索された2次バックアップ・セットの宛先アドレスを使用して、そのセットに対する呼出しが試みられる(620)。
【0147】
呼出しが試みられている対象の端末セットは、受信元であるその端末セットが呼を受けるのに使用可能である場合にしか、応答すべき呼を知らせるのに鳴動することができないことに留意されたい。他のどのような場合でも、単に呼処理スレッドと、呼に応答する端末の音声メール・モジュールとを協働させることにより、関連する端末セットを鳴動させることなく、呼を処理することができる。
【0148】
いくつかの実施形態では、端末に特有でない一般的な呼処理機能が提供される。一般的な呼処理としては、たとえば、個人化された挨拶の代わりに一般的な音声メールの挨拶(たとえば、「ただ今電話に出ることができません。メッセージを残して下さい。」)を再生することを挙げることができる。
【0149】
呼の宛先である端末セット、またはその端末セットのバックアップとしてアクティブ化されている端末セットのいずれかが呼を受信したときは、その端末セットは、所望の宛先電話セットに対する呼出しが無事完了したことが発信元に示されるような様式で、その呼を受ける。これにはたとえば、所望の電話セットを対象とする個人化された音声メールの挨拶を再生すること、および音声メールまたは呼の転送を処理する何らかのユーザ・オプションが必要なこともある。
【0150】
一方、この一般的な呼処理機能を用いると、端末がバックアップとして指定されていない端末セットの代わりに呼を受けることが可能になる。一般的な処理機能は、図18に示されている。
【0151】
図18に示されるように、この実施形態では、一般的な呼処理は、すべてのバックアップが(すなわち、1次も2次も)使用不能なときに発生する。620で2次バックアップ(すなわち、「第2レベルのバックアップ」)に対して試みられた呼出しが失敗した場合は、630で、発信元の端末セットは任意選択で、宛先端末セットの代わりにその呼に応答することができる(630および640)。これは、発信元の端末が宛先端末に特有などんな呼処理機能も有していない故に、必然的に一般的な様式で行われることになるはずである。一般的な呼出しが完了した結果生じるデータベースのどんな変更も、通常の呼出しの完了と同じように扱われ、すなわち、ジャーナル・マネージャ880(図8)によって該当する1つ(または複数)のセットへと伝播される。
【0152】
一般的な呼処理が使用可能でない諸実施形態では、すべてのバックアップ端末が使用不能である場合は、一般的な呼応答が実施される代わりに、発呼者に対して話中音が再生される(660)。ステップ600、610、620における試みのいずれかが成功した場合は、関連するセットによって呼が受けられ処理される(650)。
【0153】
当業者には理解されるように、上述した実施形態には、本発明の趣旨から逸脱することなく変更を加えることができる。たとえば、本明細書に記載の実施形態の大部分では端末セットであるピアについて言及しているが、ここに記載の方法は、他の形態のネットワーク装置など、端末セット以外のピアにも等しく適用可能であることが理解されるであろう。また、ネットワーク装置は、LANだけではなく任意の形態のネットワークによって相互接続されてもよい。さらに、ピアの発見についての記載では、加入者電話番号の選択、プローブ、アサートについて言及しているが、本明細書に記載の方法は、加入者電話番号以外のネットワーク・アドレスにも等しく適用可能であることが理解されるであろう。
【0154】
バックアップ・レベルの数(すなわち、マスタ毎のバックアップの数)は、本明細書に記載の実施形態における2つのバックアップ・レベルとは異なるものであってもよいことが理解されるであろう。一般に、Nを1以上の整数とする、最大N個のバックアップ・レベルが存在してもよい。
【0155】
さらに、上述した実施形態における端末セットは、各端末セットがN回バックアップとして働き、それ自体がN個のバックアップを有するという意味では「対称的」なものであるが、このことが必ずしもすべての実施形態に当てはまる必要はない。
【0156】
また、図5に示される経路表200は、維持され得る情報のタイプに関する非常に特有な例であることにも留意されたい。諸代替実施形態では、それぞれの経路表に異なる情報が含まれていてもよい。たとえば、バックアップ端末セットは、MACアドレス以外の何らかの様式で識別されてもよい。
【0157】
確認のために、本発明は、他の端末セットのバックアップ機能を提供する端末セットに限定されるものではないことに留意されたい。本発明のいくつかの実施形態では、TTIなど他のネットワーク装置が、バックアップ機能を提供し、あるいは他のネットワーク装置からのバックアップ機能の利益を享受してもよい。
【0158】
さらに、上記で使用される「信頼性」という用語は、分散型電話システムの外部の接続(たとえば、PSTNからの呼の受信)を端末セットが確実な形で確立できる能力を指すが、他のタイプのネットワーク装置については他の意味を有することもあることが、理解されるべきである。一般に、「信頼性」という用語は、ネットワーク装置が所望の対象に到達し、または所望のタスクを完了させることができる蓋然性を指し、この蓋然性は、ネットワーク装置に応じて異なることもある。
【0159】
最後に、本明細書に記載の諸実施形態におけるネットワーク装置は、ピア・ツー・ピア・ネットワーク内のピアであるが、そうすることが必ずしも必要とされるわけではないことが理解されるであろう。本明細書に記載のバックアップ手法は、「ピア・ツー・ピア」ネットワークとして必ずしも分類可能でないネットワーク上の、「ピア」として必ずしも分類可能でないネットワーク装置をバックアップするために使用されてもよい。
【0160】
上記の教示に照らせば、本発明の数々の変更形態および変形形態が可能である。たとえば、本発明の諸実施形態は、電話端末セットである上記の端末に限定されるものではなく、本発明のいくつかの実施形態では、端末セットは、任意のネットワーク通信装置である。したがって、本明細書に具体的に記載されている形以外でも、添付の特許請求の範囲内で本発明を実施できることが理解されるであろう。
【図面の簡単な説明】
【0161】
【図1】本発明の一実施形態によるピア・バックアップを利用する電話システムの図である。
【図2】図1に示される各端末セットの部分的な回路ブロック図である。
【図3】図1の各端末セット上で動作するソフトウェアの機能ブロック図である。
【図4】図3のピア・ツー・ピア呼処理モジュールの機能ブロック図である。
【図5】図1の例示的な端末セットの経路表である。
【図6】本発明の一実施形態による、マスタ/スレーブ関係をもつ3つの端末セットのブロック図である。
【図7】本発明の一実施形態による、バックアップ端末セットを選択する方法の流れ図である。
【図8】図3の端末セットの一部として動作するピア・バックアップのためのソフトウェアの機能ブロック図である。
【図9】バックアップの割当て、割当ての解除、および先取りの際のマスタ端末セットの動作を支配する、状態マシン/流れ図である。
【図10】それ自体のバックアップとしての割当ておよび割当ての解除を有効化する際の端末セットの動作を支配する、状態マシン/流れ図である。
【図11】他の2つの端末セットのバックアップ端末セットとして割り当てられた端末セットにおけるジャーナル・マネージャ・コンポーネントの動作を支配する、状態マシン/流れ図である。
【図12】マスタ端末セットとバックアップ端末セットの間での、バックアップ端末セットの割当ておよび割当ての解除を行うための信号を示すシーケンス図である。
【図13】本発明の別の実施形態による、あるマスタ端末セットが別のマスタ端末セットよりも先にバックアップ端末セットを先取りするシーケンス図である。
【図14】マスタ端末セットとして働く端末セットによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。
【図15】別の端末セットの第1のバックアップ端末セットとして働く端末セットによる、アプリケーションが初期化されたときのメッセージングのシーケンス図である。
【図16】マスタ端末セットが使用不能であるときの、ある端末セットがそのマスタ端末セットのバックアップ端末セットとして働くシーケンス図である。
【図17】マスタ端末セットが使用不能になったときの、ある端末セットがそのマスタ端末セットのバックアップ端末セットとして働くシーケンス図である。
【図18】図1の電話システム内の宛先端末セットへの呼を開始する方法の流れ図である。
【特許請求の範囲】
【請求項1】
複数のネットワーク装置のうちの1つのネットワーク装置において、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択する工程であって、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される工程と、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信する工程であって、通信された前記情報は、前記1つのネットワーク装置が使用不能であるときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される工程と、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信する工程であって、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される工程と
を含む方法。
【請求項2】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、少なくとも1つの前記マスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項1に記載の方法。
【請求項3】
前記選択する工程は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項2に記載の方法。
【請求項4】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項3に記載の方法。
【請求項5】
前記選択する工程は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化する工程と、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出する工程と、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットする工程であって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示す工程と、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てる工程とを含む、
請求項3に記載の方法。
【請求項6】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出する工程と、
前記割当てを繰り返す工程とをさらに含む、
請求項5に記載の方法。
【請求項7】
前記複数のネットワーク装置のそれぞれがN個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出する工程と、前記繰り返す工程とを繰り返す工程をさらに含む、
請求項6に記載の方法。
【請求項8】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分する工程と、
前記割当てを繰り返す工程とをさらに含む、
請求項5に記載の方法。
【請求項9】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分する工程と、前記繰り返す工程とを繰り返す工程をさらに含む、
請求項8に記載の方法。
【請求項10】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信する工程をさらに含む、請求項1に記載の方法。
【請求項11】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込む工程をさらに含む、請求項1に記載の方法。
【請求項12】
マスタ・ネットワーク装置が使用不能であることが検出されたときに、前記マスタ・ネットワーク装置の役割を果たす工程をさらに含む、請求項5に記載の方法。
【請求項13】
前記マスタ・ネットワーク装置の役割を果たす前記工程は、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項12に記載の方法。
【請求項14】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡する工程をさらに含む、請求項12に記載の方法。
【請求項15】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別する工程と、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信する工程とをさらに含む、
請求項14に記載の方法。
【請求項16】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲る工程と、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信する工程とをさらに含む、
請求項14に記載の方法。
【請求項17】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信する工程と、
前記変更を前記維持している情報に組み込む工程とをさらに含む、
請求項1に記載の方法。
【請求項18】
前記選択する工程は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別する工程と、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信する工程と、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張する工程とを含む、
請求項2に記載の方法。
【請求項19】
前記識別する工程は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項18に記載の方法。
【請求項20】
前記識別する工程と、前記送信する工程と、前記主張する工程とをN回繰り返す工程をさらに含む、請求項18に記載の方法。
【請求項21】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項1に記載の方法。
【請求項22】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定する工程と、
前記判定に基づいて呼を開始する工程とをさらに含む、
請求項21に記載の方法。
【請求項23】
前記判定する工程で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始する工程は、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別する工程と、
識別された前記バックアップ・ネットワーク装置に対する呼を開始する工程とを含む、
請求項22に記載の方法。
【請求項24】
識別された前記バックアップ・ネットワーク装置に対する呼を開始する前記工程は、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項23に記載の方法。
【請求項25】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別する工程と、前記開始する工程とを繰り返す工程をさらに含む、請求項24に記載の方法。
【請求項26】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受ける工程をさらに含む、請求項25に記載の方法。
【請求項27】
複数のネットワーク装置のうちの1つのネットワーク装置であって、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択され、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用され、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用されるように適合された、
ネットワーク装置。
【請求項28】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、前記少なくとも1つのマスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項27に記載のネットワーク装置。
【請求項29】
前記選択は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項28に記載のネットワーク装置。
【請求項30】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項29に記載のネットワーク装置。
【請求項31】
前記選択は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化することと、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出することと、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットすることであって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示すことと、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てることとを含む、
請求項29に記載のネットワーク装置。
【請求項32】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出し、
前記割当てを繰り返すようにさらに適合された、
請求項31に記載のネットワーク装置。
【請求項33】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出と、前記繰返しとを繰り返すようにさらに適合された、
請求項32に記載のネットワーク装置。
【請求項34】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分し、
前記割当てを繰り返すようにさらに適合された、
請求項31に記載のネットワーク装置。
【請求項35】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分と、前記繰返しとを繰り返すようにさらに適合された、
請求項34に記載のネットワーク装置。
【請求項36】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信するようにさらに適合された、請求項27に記載のネットワーク装置。
【請求項37】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込むようにさらに適合された、請求項27に記載のネットワーク装置。
【請求項38】
マスタ・ネットワーク装置が使用不能であることが検出されたときは、前記マスタ・ネットワーク装置の役割を果たすようにさらに適合された、請求項31に記載のネットワーク装置。
【請求項39】
前記マスタ・ネットワーク装置の役割を果たすことは、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項38に記載のネットワーク装置。
【請求項40】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡するようにさらに適合された、請求項38に記載のネットワーク装置。
【請求項41】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別し、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信するようにさらに適合された、
請求項40に記載のネットワーク装置。
【請求項42】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲り、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信するようにさらに適合された、
請求項40に記載のネットワーク装置。
【請求項43】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信し、
前記変更を前記維持している情報に組み込むようにさらに適合された、
請求項27に記載のネットワーク装置。
【請求項44】
前記選択は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別することと、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信することと、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張することとを含む、
請求項28に記載のネットワーク装置。
【請求項45】
前記識別は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項44に記載のネットワーク装置。
【請求項46】
前記識別と、前記送信と、前記主張とをN回繰り返すようにさらに適合された、請求項44に記載のネットワーク装置。
【請求項47】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項27に記載のネットワーク装置。
【請求項48】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定し、
前記判定に基づいて呼を開始するようにさらに適合された、
請求項47に記載のネットワーク装置。
【請求項49】
前記判定で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始することは、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別することと、
識別された前記バックアップ・ネットワーク装置に対する呼を開始することとを含む、
請求項48に記載のネットワーク装置。
【請求項50】
識別された前記バックアップ・ネットワーク装置に対する前記呼を開始することは、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項49に記載のネットワーク装置。
【請求項51】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別と、前記開始とを繰り返すようにさらに適合された、請求項50に記載のネットワーク装置。
【請求項52】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受けるようにさらに適合された、請求項51に記載のネットワーク装置。
【請求項53】
複数のネットワーク装置のうちの1つのネットワーク装置での実行を対象とするマシン実行可能なコードを含むマシン可読媒体であって、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される、マシン実行可能なコードと、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される、マシン実行可能なコードと、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される、マシン実行可能なコードとを備える
マシン可読媒体。
【請求項54】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、前記少なくとも1つのマスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項53に記載のマシン可読媒体。
【請求項55】
前記選択は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項54に記載のマシン可読媒体。
【請求項56】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項55に記載のマシン可読媒体。
【請求項57】
前記選択は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化することと、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出することと、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットすることであって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示すことと、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てることとを含む、
請求項55に記載のマシン可読媒体。
【請求項58】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出し、
前記割当てを繰り返すためのマシン実行可能なコードをさらに備える、
請求項57に記載のマシン可読媒体。
【請求項59】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出と、前記繰返しとを繰り返すためのマシン実行可能なコードをさらに備える、
請求項58に記載のマシン可読媒体。
【請求項60】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分し、
前記割当てを繰り返すためのマシン実行可能なコードをさらに備える、
請求項57に記載のマシン可読媒体。
【請求項61】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分と、前記繰返しとを繰り返すためのマシン実行可能なコードをさらに備える、
請求項60に記載のマシン可読媒体。
【請求項62】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信するためのマシン実行可能なコードをさらに備える、請求項53に記載のマシン可読媒体。
【請求項63】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込むためのマシン実行可能なコードをさらに備える、請求項53に記載のマシン可読媒体。
【請求項64】
マスタ・ネットワーク装置が使用不能であることが検出されたときに、前記マスタ・ネットワーク装置の役割を果たすためのマシン実行可能なコードをさらに備える、請求項57に記載のマシン可読媒体。
【請求項65】
前記マスタ・ネットワーク装置の役割を果たすことは、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項64に記載のマシン可読媒体。
【請求項66】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡するためのマシン実行可能なコードをさらに備える、請求項64に記載のマシン可読媒体。
【請求項67】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別し、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信するためのマシン実行可能なコードをさらに備える、
請求項66に記載のマシン可読媒体。
【請求項68】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲り、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信するためのマシン実行可能なコードをさらに備える、
請求項66に記載のマシン可読媒体。
【請求項69】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信し、
前記変更を前記維持している情報に組み込むためのマシン実行可能なコードをさらに備える、
請求項53に記載のマシン可読媒体。
【請求項70】
前記選択は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別することと、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信することと、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張することとを含む、
請求項54に記載のマシン可読媒体。
【請求項71】
前記識別は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項70に記載のマシン可読媒体。
【請求項72】
前記識別と、前記送信と、前記主張とをN回繰り返すためのマシン実行可能なコードをさらに備える、請求項70に記載のマシン可読媒体。
【請求項73】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項53に記載のマシン可読媒体。
【請求項74】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定し、
前記判定に基づいて呼を開始するためのマシン実行可能なコードをさらに備える、
請求項73に記載のマシン可読媒体。
【請求項75】
前記判定で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始することは、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別することと、
識別された前記バックアップ・ネットワーク装置に対する呼を開始することとを含む、
請求項74に記載のマシン可読媒体。
【請求項76】
識別された前記バックアップ・ネットワーク装置に対する前記呼を開始することは、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項75に記載のマシン可読媒体。
【請求項77】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別と、前記開始とを繰り返すためのマシン実行可能なコードをさらに備える、請求項76に記載のマシン可読媒体。
【請求項78】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受けるためのマシン実行可能なコードをさらに備える、請求項77に記載のマシン可読媒体。
【請求項1】
複数のネットワーク装置のうちの1つのネットワーク装置において、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択する工程であって、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される工程と、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信する工程であって、通信された前記情報は、前記1つのネットワーク装置が使用不能であるときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される工程と、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信する工程であって、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される工程と
を含む方法。
【請求項2】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、少なくとも1つの前記マスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項1に記載の方法。
【請求項3】
前記選択する工程は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項2に記載の方法。
【請求項4】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項3に記載の方法。
【請求項5】
前記選択する工程は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化する工程と、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出する工程と、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットする工程であって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示す工程と、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てる工程とを含む、
請求項3に記載の方法。
【請求項6】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出する工程と、
前記割当てを繰り返す工程とをさらに含む、
請求項5に記載の方法。
【請求項7】
前記複数のネットワーク装置のそれぞれがN個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出する工程と、前記繰り返す工程とを繰り返す工程をさらに含む、
請求項6に記載の方法。
【請求項8】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分する工程と、
前記割当てを繰り返す工程とをさらに含む、
請求項5に記載の方法。
【請求項9】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分する工程と、前記繰り返す工程とを繰り返す工程をさらに含む、
請求項8に記載の方法。
【請求項10】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信する工程をさらに含む、請求項1に記載の方法。
【請求項11】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込む工程をさらに含む、請求項1に記載の方法。
【請求項12】
マスタ・ネットワーク装置が使用不能であることが検出されたときに、前記マスタ・ネットワーク装置の役割を果たす工程をさらに含む、請求項5に記載の方法。
【請求項13】
前記マスタ・ネットワーク装置の役割を果たす前記工程は、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項12に記載の方法。
【請求項14】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡する工程をさらに含む、請求項12に記載の方法。
【請求項15】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別する工程と、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信する工程とをさらに含む、
請求項14に記載の方法。
【請求項16】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲る工程と、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信する工程とをさらに含む、
請求項14に記載の方法。
【請求項17】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信する工程と、
前記変更を前記維持している情報に組み込む工程とをさらに含む、
請求項1に記載の方法。
【請求項18】
前記選択する工程は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別する工程と、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信する工程と、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張する工程とを含む、
請求項2に記載の方法。
【請求項19】
前記識別する工程は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項18に記載の方法。
【請求項20】
前記識別する工程と、前記送信する工程と、前記主張する工程とをN回繰り返す工程をさらに含む、請求項18に記載の方法。
【請求項21】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項1に記載の方法。
【請求項22】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定する工程と、
前記判定に基づいて呼を開始する工程とをさらに含む、
請求項21に記載の方法。
【請求項23】
前記判定する工程で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始する工程は、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別する工程と、
識別された前記バックアップ・ネットワーク装置に対する呼を開始する工程とを含む、
請求項22に記載の方法。
【請求項24】
識別された前記バックアップ・ネットワーク装置に対する呼を開始する前記工程は、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項23に記載の方法。
【請求項25】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別する工程と、前記開始する工程とを繰り返す工程をさらに含む、請求項24に記載の方法。
【請求項26】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受ける工程をさらに含む、請求項25に記載の方法。
【請求項27】
複数のネットワーク装置のうちの1つのネットワーク装置であって、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択され、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用され、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用されるように適合された、
ネットワーク装置。
【請求項28】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、前記少なくとも1つのマスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項27に記載のネットワーク装置。
【請求項29】
前記選択は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項28に記載のネットワーク装置。
【請求項30】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項29に記載のネットワーク装置。
【請求項31】
前記選択は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化することと、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出することと、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットすることであって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示すことと、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てることとを含む、
請求項29に記載のネットワーク装置。
【請求項32】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出し、
前記割当てを繰り返すようにさらに適合された、
請求項31に記載のネットワーク装置。
【請求項33】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出と、前記繰返しとを繰り返すようにさらに適合された、
請求項32に記載のネットワーク装置。
【請求項34】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分し、
前記割当てを繰り返すようにさらに適合された、
請求項31に記載のネットワーク装置。
【請求項35】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分と、前記繰返しとを繰り返すようにさらに適合された、
請求項34に記載のネットワーク装置。
【請求項36】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信するようにさらに適合された、請求項27に記載のネットワーク装置。
【請求項37】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込むようにさらに適合された、請求項27に記載のネットワーク装置。
【請求項38】
マスタ・ネットワーク装置が使用不能であることが検出されたときは、前記マスタ・ネットワーク装置の役割を果たすようにさらに適合された、請求項31に記載のネットワーク装置。
【請求項39】
前記マスタ・ネットワーク装置の役割を果たすことは、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項38に記載のネットワーク装置。
【請求項40】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡するようにさらに適合された、請求項38に記載のネットワーク装置。
【請求項41】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別し、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信するようにさらに適合された、
請求項40に記載のネットワーク装置。
【請求項42】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲り、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信するようにさらに適合された、
請求項40に記載のネットワーク装置。
【請求項43】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信し、
前記変更を前記維持している情報に組み込むようにさらに適合された、
請求項27に記載のネットワーク装置。
【請求項44】
前記選択は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別することと、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信することと、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張することとを含む、
請求項28に記載のネットワーク装置。
【請求項45】
前記識別は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項44に記載のネットワーク装置。
【請求項46】
前記識別と、前記送信と、前記主張とをN回繰り返すようにさらに適合された、請求項44に記載のネットワーク装置。
【請求項47】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項27に記載のネットワーク装置。
【請求項48】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定し、
前記判定に基づいて呼を開始するようにさらに適合された、
請求項47に記載のネットワーク装置。
【請求項49】
前記判定で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始することは、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別することと、
識別された前記バックアップ・ネットワーク装置に対する呼を開始することとを含む、
請求項48に記載のネットワーク装置。
【請求項50】
識別された前記バックアップ・ネットワーク装置に対する前記呼を開始することは、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項49に記載のネットワーク装置。
【請求項51】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別と、前記開始とを繰り返すようにさらに適合された、請求項50に記載のネットワーク装置。
【請求項52】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受けるようにさらに適合された、請求項51に記載のネットワーク装置。
【請求項53】
複数のネットワーク装置のうちの1つのネットワーク装置での実行を対象とするマシン実行可能なコードを含むマシン可読媒体であって、
前記1つのネットワーク装置のバックアップとして働く、前記複数のネットワーク装置のうちの他の少なくとも1つのネットワーク装置を選択し、前記選択により、少なくとも1つのバックアップ・ネットワーク装置が選択される、マシン実行可能なコードと、
前記1つのネットワーク装置の維持している情報を、前記各バックアップ・ネットワーク装置に通信し、通信された前記情報は、前記1つのネットワーク装置が使用不能なときに、前記1つのネットワーク装置の役割を前記バックアップ・ネットワーク装置が果たす際に使用される、マシン実行可能なコードと、
マスタ・ネットワーク装置となるために前記1つのネットワーク装置をそれ自体のバックアップとして選択した、前記1つのネットワーク装置とは異なる少なくとも1つのネットワーク装置からの情報を受信し、受信された前記情報は、前記マスタ・ネットワーク装置が使用不能なときに、前記マスタ・ネットワーク装置の役割を前記1つのネットワーク装置が果たす際に使用される、マシン実行可能なコードとを備える
マシン可読媒体。
【請求項54】
前記少なくとも1つのバックアップ・ネットワーク装置は、N個のバックアップ装置を備え、前記少なくとも1つのマスタ・ネットワーク装置は、N個のマスタ装置を備え、Nは、1以上の整数である、請求項53に記載のマシン可読媒体。
【請求項55】
前記選択は、前記1つのネットワーク装置の信頼性と、前記N個のバックアップ装置のそれぞれの信頼性とに基づく、請求項54に記載のマシン可読媒体。
【請求項56】
前記複数のネットワーク装置は、ネットワークによって相互接続され、ネットワーク装置の前記信頼性は、前記ネットワークの外部の装置との接続をそのネットワーク装置が確立できる蓋然性を含む、請求項55に記載のマシン可読媒体。
【請求項57】
前記選択は、
前記複数のネットワーク装置を、見込まれるバックアップのプール内の各ネットワーク装置が同じ信頼性を有し、Mを1以上の整数とする、見込まれるバックアップのM個のプールにグループ化することと、
見込まれるバックアップの現在のプールとして、最も信頼性の高い見込まれるバックアップのプールを選出することと、
現在のバックアップ・レベルを第1のバックアップ・レベルにセットすることであって、前記バックアップ・レベルは、バックアップ・ネットワーク装置が割り当てられている特定のネットワーク装置が使用不能な場合、ならびに前記特定のネットワーク装置にバックアップ・ネットワーク装置として割り当てられている、より低いバックアップ・レベルの他のネットワーク装置がすべて使用不能な場合に、前記他のバックアップ・ネットワーク装置に関連する前記特定のネットワーク装置の役割を、前記バックアップ・ネットワーク装置が果たすことになる相対順序を示すことと、
どのネットワーク装置も前記現在のバックアップ・レベルの2つ以上のバックアップ・ネットワーク装置の割当て先とならないように、割当て先のネットワーク装置の信頼性の昇順に、
(a)前記見込まれるバックアップの現在のプール内のあらゆるネットワーク装置が、バックアップ・ネットワーク装置としてN回割り当てられるまで、あるいは、
(b)前記複数のネットワーク装置のそれぞれが、前記現在のバックアップ・レベルのバックアップ・ネットワーク装置の割当て先となるまで、前記見込まれるバックアップの現在のプールからの前記現在のバックアップ・レベルのネットワーク装置を、前記複数のネットワーク装置に割り当てることとを含む、
請求項55に記載のマシン可読媒体。
【請求項58】
前記(a)が発生したときは、
前記見込まれるバックアップの現在のプールとして、信頼性の降順に、見込まれるバックアップの別のプールを選出し、
前記割当てを繰り返すためのマシン実行可能なコードをさらに備える、
請求項57に記載のマシン可読媒体。
【請求項59】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記選出と、前記繰返しとを繰り返すためのマシン実行可能なコードをさらに備える、
請求項58に記載のマシン可読媒体。
【請求項60】
前記(b)が発生したときは、
前記現在のバックアップ・レベルがN未満である場合は、前記現在のバックアップ・レベルを次のバックアップ・レベルに増分し、
前記割当てを繰り返すためのマシン実行可能なコードをさらに備える、
請求項57に記載のマシン可読媒体。
【請求項61】
前記複数のネットワーク装置のそれぞれが、N個のバックアップ・ネットワーク装置の割当て先となるまで、前記増分と、前記繰返しとを繰り返すためのマシン実行可能なコードをさらに備える、
請求項60に記載のマシン可読媒体。
【請求項62】
前記1つのネットワーク装置の維持している前記情報に対する変更が検出されたときは、前記変更を、前記N個のバックアップ・ネットワーク装置のそれぞれに通信するためのマシン実行可能なコードをさらに備える、請求項53に記載のマシン可読媒体。
【請求項63】
マスタ・ネットワーク装置から受信された情報に対する変更の指示を、前記マスタ・ネットワーク装置から受信したときは、前記変更を、前記受信された情報に組み込むためのマシン実行可能なコードをさらに備える、請求項53に記載のマシン可読媒体。
【請求項64】
マスタ・ネットワーク装置が使用不能であることが検出されたときに、前記マスタ・ネットワーク装置の役割を果たすためのマシン実行可能なコードをさらに備える、請求項57に記載のマシン可読媒体。
【請求項65】
前記マスタ・ネットワーク装置の役割を果たすことは、同じマスタ・ネットワーク装置にバックアップとして割り当てられている、前記1つのネットワーク装置よりもバックアップ・レベルの低い他のあらゆるバックアップ・ネットワーク装置が使用不能であることが検出されることを条件とする、請求項64に記載のマシン可読媒体。
【請求項66】
前記マスタ・ネットワーク装置の役割を果たすようになった後に、前記マスタ・ネットワーク装置から受信された情報に対して変更があった場合は、その変更を追跡するためのマシン実行可能なコードをさらに備える、請求項64に記載のマシン可読媒体。
【請求項67】
前記マスタ・ネットワーク装置の前記受信された情報に対する変更が発生したときに、
前記マスタ・ネットワーク装置に割り当てられている他のバックアップ・ネットワーク装置がある場合は、その他のバックアップ・ネットワーク装置を識別し、
前記マスタ・ネットワーク装置に割り当てられている前記他のバックアップ・ネットワーク装置に、前記変更を通信するためのマシン実行可能なコードをさらに備える、
請求項66に記載のマシン可読媒体。
【請求項68】
前記マスタ・ネットワーク装置が使用可能であることが検出されたときは、
前記マスタ・ネットワーク装置の役割を前記マスタ・ネットワーク装置に譲り、
前記マスタ・ネットワーク装置から受信された情報に対する変更があれば、その変更を前記マスタ・ネットワーク装置に通信するためのマシン実行可能なコードをさらに備える、
請求項66に記載のマシン可読媒体。
【請求項69】
前記1つのネットワーク装置が使用不能期間の後、使用可能になったときは、
前記バックアップ・ネットワーク装置の1つから、前記維持している情報に対する変更を受信し、
前記変更を前記維持している情報に組み込むためのマシン実行可能なコードをさらに備える、
請求項53に記載のマシン可読媒体。
【請求項70】
前記選択は、
前記1つのネットワーク装置とは異なるマスタ・ネットワーク装置に割り当てられている、バックアップ・ネットワーク装置を識別することと、
前記マスタ・ネットワーク装置から、識別された前記バックアップ・ネットワーク装置の割当てを解除する通信を送信することと、
前記バックアップ・ネットワーク装置を、前記1つのネットワーク装置のバックアップ・ネットワーク装置として主張することとを含む、
請求項54に記載のマシン可読媒体。
【請求項71】
前記識別は、前記バックアップ・ネットワーク装置の信頼性に基づく、請求項70に記載のマシン可読媒体。
【請求項72】
前記識別と、前記送信と、前記主張とをN回繰り返すためのマシン実行可能なコードをさらに備える、請求項70に記載のマシン可読媒体。
【請求項73】
前記ネットワーク装置は、呼を開始し受けることができる端末セットであり、使用不能状態は、着呼を受けることができない状態を含む、請求項53に記載のマシン可読媒体。
【請求項74】
所期の宛先ネットワーク装置が使用可能であるかどうかを判定し、
前記判定に基づいて呼を開始するためのマシン実行可能なコードをさらに備える、
請求項73に記載のマシン可読媒体。
【請求項75】
前記判定で前記所期の宛先ネットワーク装置が使用不能であると判定された場合は、前記呼を開始することは、
前記所期の宛先ネットワーク装置のバックアップ・ネットワーク装置を識別することと、
識別された前記バックアップ・ネットワーク装置に対する呼を開始することとを含む、
請求項74に記載のマシン可読媒体。
【請求項76】
識別された前記バックアップ・ネットワーク装置に対する前記呼を開始することは、識別された前記バックアップ・ネットワーク装置が使用可能であると判定されることを条件とする、請求項75に記載のマシン可読媒体。
【請求項77】
識別されたバックアップ・ネットワーク装置が使用可能であると分かるまで、あるいは前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定されるまで、前記識別と、前記開始とを繰り返すためのマシン実行可能なコードをさらに備える、請求項76に記載のマシン可読媒体。
【請求項78】
前記所期の宛先ネットワーク装置が使用可能なバックアップ・ネットワーク装置を有していないと判定された場合は、前記1つのネットワーク装置において前記呼を受けるためのマシン実行可能なコードをさらに備える、請求項77に記載のマシン可読媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公表番号】特表2007−516668(P2007−516668A)
【公表日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願番号】特願2006−540120(P2006−540120)
【出願日】平成16年11月22日(2004.11.22)
【国際出願番号】PCT/CA2004/002005
【国際公開番号】WO2005/050952
【国際公開日】平成17年6月2日(2005.6.2)
【出願人】(507058225)アバイア カナダ コーポレーション (1)
【Fターム(参考)】
【公表日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願日】平成16年11月22日(2004.11.22)
【国際出願番号】PCT/CA2004/002005
【国際公開番号】WO2005/050952
【国際公開日】平成17年6月2日(2005.6.2)
【出願人】(507058225)アバイア カナダ コーポレーション (1)
【Fターム(参考)】
[ Back to top ]