JPH11328139A - 高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置 - Google Patents

高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置

Info

Publication number
JPH11328139A
JPH11328139A JP11101887A JP10188799A JPH11328139A JP H11328139 A JPH11328139 A JP H11328139A JP 11101887 A JP11101887 A JP 11101887A JP 10188799 A JP10188799 A JP 10188799A JP H11328139 A JPH11328139 A JP H11328139A
Authority
JP
Japan
Prior art keywords
server
primary
failure
call
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11101887A
Other languages
English (en)
Inventor
Declan J Murphy
ジェイ. マーフィー デクラン
Madhusudhan Talluri
タルーリ マドゥスハン
Vladimir Matena
マテナ ブラディミール
Yousef A Khalidi
エイ. カリディ ヨセフ
Jose M Bernabeu-Auban
エム. ベルナボウ−オウバン ホセ
Andrew G Tucker
ジー. タッカー アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11328139A publication Critical patent/JPH11328139A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】 第1のサーバから第2のサーバへのトランス
ペアレントフェイルオーバを容易にする方法および装置
を提供する。 【解決手段】 オブジェクトのアクティブな呼び出しに
対する第1のサーバから第2のサーバにトランスペアレ
ントフェイルオーバーを提供する方法であって、オブジ
ェクトに対する呼び出しのための一次サーバとして第1
のサーバが機能し、第1のサーバの故障によりオブジェ
クトに対する新しい一次サーバとして第2のサーバを選
択する工程と、第2のサーバがオブジェクトに対する新
しい一次サーバとして機能するように再設定する工程
と、不完全であるアクティブな呼び出しを第2のサーバ
上のオブジェクトに対して自動的に再試行する工程と、
を含む方法。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して分散オブジ
ェクトオペレーティングシステムに関し、より詳細に
は、遠隔オブジェクトへのアクセス中に第1のサーバか
ら第2のサーバへのトランスペアレントフェイルオーバ
ー(failover)を支持するシステムおよび方法に関す
る。
【0002】
【従来の技術】本出願は以下に示す譲受人が同一の米国
特許出願に関する:1997年3月31日に出願された
Matenaらによる係属中のシリアル番号第08/8
29,156号、1997年6月30日に出願されたM
urphyらによる係属中のシリアル番号第08/88
4,978号、1997年6月19日に出願されたTu
ckerらによる係属中のシリアル番号第08/87
9,150号、1997年6月19日に出願された係属
中のTuckerらによるシリアル番号第08/87
9,151号。これらの開示は、全文に記載して全ての
目的に対して参考として援用する。
【0003】コンピュータシステムをリンクするために
コンピュータネットワークが増加して使用されるように
なるにしたがい、コンピュータネットワークにわたって
コンピュータシステム間の相互作用を制御するために分
散オペレーティングシステムが開発されてきた。いくつ
かの分散オペレーティングシステムでは、クライアント
コンピュータシステムは、サーバコンピュータシステム
上のリソースにアクセスすることが可能になる。例え
ば、クライアントコンピュータシステムは、サーバコン
ピュータシステム上のデータベースに含まれる情報にア
クセスすることが可能であり得る。サーバが故障する
際、分散オペレーティングシステムがこの故障から自動
的に復帰することが望ましい。このようなサーバの故障
から復帰する能力を処理する分散オペレーティングシス
テムを有する分散コンピュータシステムは、「高度利用
可能システム(highly available system)」と呼ばれ
る。このように高度利用可能システム上に格納されるデ
ータオブジェクトは、「高度利用可能データオブジェク
ト」と呼ばれる。
【0004】高度利用可能システムが適切に機能するた
めには、高度利用可能システムはサーバの故障を検出し
てシステム自身を再設定し、故障したサーバ上のオブジ
ェクトに対するアクセスを他のサーバのバックアップコ
ピーに再指示することができなくてはならない。別のサ
ーバのバックアップコピーに切り換えるプロセスを「フ
ェイルオーバー」と呼ぶ。
【0005】
【発明が解決しようとする課題】現存するクライアント
サーバシステムは、典型的にサーバの故障をはっきり検
出して復帰するためのクライアントアプリケーションプ
ログラムに依存する。例えば、典型的にクライアントア
プリケーションプログラムは、タイムアウトおよび再試
行の手順を明白に特定するコードを含む。この追加のコ
ードは、クライアントのアプリケーションプログラミン
グをより複雑かつ煩雑にする。また、このコードはクラ
イアントアプリケーションプログラムに対して検査およ
びデバッグするのを難しくする。なぜなら、クライアン
トコンピュータシステムとサーバのコンピュータシステ
ムの間の相互作用の無数の潜在的非同期性を系統的に再
形成することが困難だからである。さらに、各クライア
ントアプリケーションプログラムは、サーバの高度利用
可能オブジェクトにアクセスする度にこのようなフェイ
ルオーバーコードを提供しなくてはならない。
【0006】よって、クライアントアプリケーションプ
ログラムにはトランスペアレントな方法でサーバの故障
から復帰する分散オブジェクトオペレーティングシステ
ムが必要である。このような分散システムは、クライア
ントアプリケーションプログラムが故障検出と再試行コ
ードを提供し且つ検査する負担なしに書き込まれること
が可能になる。
【0007】本発明は上記の課題に鑑みてなされたもの
であり、その目的は上記のような問題点を克服して、第
1のサーバから第2のサーバへのトランスペアレントフ
ェイルオーバを容易にする方法および装置を提供するこ
とである。
【0008】
【課題を解決するための手段】本発明の1つの局面によ
れば、オブジェクトのアクティブな呼び出しに対する第
1のサーバから第2のサーバにトランスペアレントフェ
イルオーバーを提供する方法は、該オブジェクトに対す
る呼び出しのための一次サーバとして該第1のサーバが
機能し、該第1のサーバの故障により該オブジェクトに
対する新しい一次サーバとして該第2のサーバを選択す
る工程と、該第2のサーバが該オブジェクトに対する該
新しい一次サーバとして機能するように再設定する工程
と、不完全である該アクティブな呼び出しを該第2のサ
ーバ上の該オブジェクトに対して自動的に再試行する工
程と、を含む。これにより、上記目的が達成される。
【0009】前記第2のサーバを選択する動作および前
記第2のサーバを再設定する動作が自動的に実施されて
もよい。
【0010】前記第2のサーバを再設定する工程の前
に、前記オブジェクトに対する前記アクティブな呼び出
しを終了する工程を更に含んでもよい。
【0011】前記アクティブな呼び出しを終了する工程
は、非応答ノードに対する任意の該アクティブな呼び出
しが障害を取り除き、完了させる工程を含んでもよい。
【0012】前記第1のサーバの故障の後に前記オブジ
ェクトに対する任意の新しいアクティブな呼び出しを遮
断する工程と、前記第2のサーバを再設定する工程の後
に該オブジェクトに対する該新しいアクティブな呼び出
しから障害を取り除く工程と、を更に含んでもよい。
【0013】前記第1のサーバの故障を検出する工程を
更に含んでもよい。
【0014】前記故障を検出する動作が前記第1のサー
バ、前記第2のサーバ、および複数の追加のコンピュー
タシステムのうちの少なくとも2つにわたって分散され
るシステムマネージャによって実行されることによっ
て、該システムマネージャがサーバの故障に対して耐性
を有してもよい。
【0015】前記第1のサーバのクライアントに該第1
のサーバが故障したことを知らせる工程を更に含んでも
よい。
【0016】前記オブジェクトが前記第1のサーバ上の
一次コピーおよび前記第2のサーバ上の二次コピーを有
し、該一次コピーが該第1のサーバ上で更新されたと
き、該第2のサーバ上で該二次コピーを更新する工程を
更に含んでもよい。
【0017】前記オブジェクトが、オブジェクトのグル
ープを含んでもよい。
【0018】本発明の別の局面によれば、オブジェクト
のアクティブな呼び出しに対する第1のサーバから第2
のサーバにトランスペアレントフェイルオーバーを提供
する方法は、該オブジェクトに対する呼び出しのための
一次サーバとして該第1のサーバが機能し、該第1のサ
ーバの故障を検出する工程と、該第1のサーバの故障を
検出する工程の後に、該オブジェクトに対する任意の新
しいアクティブな呼び出しを遮断する工程と、非応答ノ
ードに対する任意のアクティブな呼び出しが障害を取り
除き完了させる工程を含む、該オブジェクトに対する該
アクティブな呼び出しを終了する工程と、該オブジェク
トに対する新しい一次サーバとして機能するように該第
2のサーバを選択する工程と、該オブジェクトに対する
該新しい一次サーバとして該第2のサーバを再設定する
工程と、該第2のサーバを再設定する工程の後に、該オ
ブジェクトに対する該新しいアクティブな呼び出しから
障害を取り除く工程と、不完全である該アクティブな呼
び出しを該第2のサーバ上の該オブジェクトに対して自
動的に再試行する工程と、を含む。これにより、上記目
的が達成される。
【0019】前記故障を検出する動作が前記第1のサー
バ、前記第2のサーバ、および複数の追加のコンピュー
タシステムのうちの少なくとも2つにわたって分散され
るシステムマネージャによって実行されることによっ
て、該システムマネージャがサーバの故障に対して耐性
を有してもよい。
【0020】前記第1のサーバのクライアントに該第1
のサーバが故障したことを知らせる工程を更に含んでも
よい。
【0021】前記オブジェクトが前記第1のサーバ上の
一次コピーおよび前記第2のサーバ上の二次コピーを有
し、該一次コピーが該第1のサーバ上で更新されたと
き、該第2のサーバ上で該二次コピーを更新する工程を
更に含んでもよい。
【0022】前記オブジェクトが、オブジェクトのグル
ープを含んでもよい。
【0023】本発明の別の局面によれば、オブジェクト
のアクティブな呼び出しに対して第1のサーバから第2
のサーバへのトランスペアレントなフェイルオーバーを
提供する装置は、該第1のサーバが該オブジェクトに対
する呼び出しの一次サーバとして機能し、ネットワーク
と結合された該第1のサーバと、該ネットワークと結合
された該第2のサーバと、該第1のサーバの故障を検出
し、該オブジェクトに対する新しい一次サーバとして機
能するように該第2のサーバを選択する該ネットワーク
上の少なくとも1つのノード上に常駐するシステムマネ
ージャと、該システムマネージャと通信し、該オブジェ
クトに対する該新しい一次サーバとして機能するように
該第2のサーバを再設定する、再設定メカニズムと、該
第2のサーバと通信し、該第2のサーバが再設定された
後に、該オブジェクトに対する不完全である該アクティ
ブな呼び出しを該第2のサーバに自動的に再試行する、
再試行メカニズムと、を含む。これにより、上記目的が
達成される。
【0024】前記システムマネージャおよび前記再設定
メカニズムが、クライアントアプリケーションプログラ
ムからの明白な再試行命令を必要とせずに動作してもよ
い。
【0025】前記第2のサーバが再設定される前に、前
記オブジェクトに対する前記アクティブな呼び出しを終
了する、終了メカニズムを更に含んでもよい。
【0026】前記終了メカニズムは、非反応ノードに対
する呼び出しが障害を取り除き、完了させるように設定
してもよい。
【0027】前記第1のサーバの故障が検出された時に
前記オブジェクトに対する新しいアクティブな呼び出し
を遮断し、前記第2のサーバが再設定された後にオブジ
ェクトに対する該新しいアクティブな呼び出しから障害
を取り除く、遮断メカニズムを更に含んでもよい。
【0028】前記オブジェクトがオブジェクトのグルー
プを含んでもよい。
【0029】前記システムマネージャが前記ネットワー
ク上の複数ノードにわたって分散されることにより該シ
ステムマネージャがノードの故障に耐性を有してもよ
い。
【0030】前記システムマネージャが、前記第1のサ
ーバが故障したことを該第1のサーバのクライアントに
知らせるように設定してもよい。
【0031】前記システムマネージャが前記オブジェク
トに対する前記新しい一次サーバとして機能するように
前記第2のサーバを選択する選択メカニズムを含んでも
よい。
【0032】前記オブジェクトに対する一次サーバと通
信し、該オブジェクトに対する少なくとも1つの二次サ
ーバと通信する更新メカニズムであって、該更新メカニ
ズムは、該オブジェクトの一次コピーが該オブジェクト
に対する一次サーバで更新されたとき、該オブジェクト
の少なくとも1つの二次コピーが該オブジェクトに対す
る少なくとも1つの二次サーバ上で更新されることを確
認してもよい。
【0033】本発明の別の局面によれば、オブジェクト
のアクティブな呼び出しに対して第1のサーバから第2
のサーバへのトランスペアレントなフェイルオーバーを
提供する装置は、該第1のサーバが該オブジェクトに対
する呼び出しの一次サーバとして機能し、ネットワーク
と結合された該第1のサーバと、該ネットワークと結合
された該第2のサーバと、該第1のサーバの故障を検出
し、該オブジェクトに対する一次サーバとして機能する
ように該第2のサーバを選択する該ネットワーク上の少
なくとも1つのノード上に常駐するシステムマネージャ
と、該第2のサーバが該オブジェクトに対する新しい一
次サーバとして機能するように再設定される前に、該オ
ブジェクトに対する該アクティブな呼び出しを終了する
終了メカニズムと、該第1のサーバの故障が検出された
時に該オブジェクトに対する新しい呼び出しを遮断し、
該第2のサーバが再設定された後に該オブジェクトに対
する該新しい呼び出しから障害を取り除く遮断メカニズ
ムと、該システムマネージャと通信し、該オブジェクト
に対する該新しい一次サーバとして機能するように該第
2のサーバを再設定する再設定メカニズムと、該第2の
サーバと通信し、該第2のサーバが再設定された後に該
オブジェクトに対する不完全な呼び出しを自動的に再試
行する再試行メカニズムと、を含む。これにより、上記
目的が達成される。
【0034】前記終了メカニズムは、非応答ノードに対
する呼び出しが障害を取り除き、完了させるように設定
されてもよい。
【0035】前記システムマネージャは、前記ネットワ
ーク上の複数ノードにわったって分散されることから該
システムマネージャがノードの故障に耐性を有してもよ
い。
【0036】前記システムマネージャが、前記第1のサ
ーバが故障したことを該第1のサーバのクライアントに
知らせるように設定されてもよい。
【0037】前記システムマネージャが前記オブジェク
トに対する前記新しい一次サーバとして機能するように
前記第2のサーバを選択する選択メカニズムを含んでも
よい。
【0038】前記オブジェクトがオブジェクトのグルー
プを含んでもよい。
【0039】前記オブジェクトに対する一次サーバと通
信し、該オブジェクトに対する少なくとも1つの二次サ
ーバと通信する更新メカニズムであって、該更新メカニ
ズムは、該オブジェクトの一次コピーが該オブジェクト
に対する一次サーバで更新されたとき、該オブジェクト
の少なくとも1つの二次コピーが該オブジェクトに対す
る少なくとも1つの二次サーバ上で更新されることを確
認してもよい。
【0040】本発明の更に別の局面では、命令を格納す
るプログラム記憶装置は、コンピュータによって実行さ
れる時、オブジェクトのアクティブな呼び出しに対して
第1のサーバから第2のサーバへのトランスペアレント
なフェイルオーバーを提供する方法を実施し、該第1の
サーバが該オブジェクトに対する呼び出しのための一次
サーバとして機能し、該方法が該第1のサーバが故障し
た際にオブジェクトに対する新しい一次サーバとして該
第2のサーバを選択する工程と、該第2のサーバを該オ
ブジェクトに対する該新しい一次サーバとして機能する
ように再設定する工程と、不完全である該アクティブな
呼び出しを該第2のサーバ上の該オブジェクトに対して
自動的に再試行する工程と、を含む。これにより、上記
目的が達成される。
【0041】本発明の更に別の局面によれば、コンピュ
ータによって実行される時、命令を搬送する搬送波で具
体化されるコンピュータ命令信号は、オブジェクトのア
クティブな呼び出しに対して第1のサーバから第2のサ
ーバへのトランスペアレントなフェイルオーバーを提供
する方法を実施し、該第1のサーバが該オブジェクトに
対する呼び出しのための一次サーバとして機能し、該方
法が、該第1のサーバが故障した際にオブジェクトに対
する新しい一次サーバとして該第2のサーバを選択する
工程と、該第2のサーバを該オブジェクトに対する該新
しい一次サーバとして機能するように再設定する工程
と、不完全である該アクティブな呼び出しを該第2のサ
ーバ上の該オブジェクトに対して自動的に再試行する工
程と、を含む。これにより、上記目的が達成される。
【0042】本発明の更に別の実施形態は、以下の詳細
な説明から当業者に容易に明白になる。詳細な説明にお
いて、本発明の実施形態は本発明を実施するために考え
られる最良のモードを示す目的でのみ示され、説明され
る。理解されるように、本発明の精神および範囲から逸
脱することなく本発明は他のおよび別の実施形態も可能
であり、その詳細も、多くの明白な点で改変が可能であ
る。よって、図面および詳細な説明は、本質的に例示的
であり、制限的ではないとみなされる。
【0043】
【発明の実施の形態】定義 フェイルオーバー−第1のサーバが故障した際に、第1
のサーバ上のオブジェクトの一次コピーから第2のサー
バ上のオブジェクトの二次コピーに切り換えるプロセ
ス。
【0044】サーバの故障−サーバがクライアントから
の要求に適時な方法で反応することに失敗する際に起こ
る状態。
【0045】オブジェクト−任意のデータオブジェク
ト、またはより狭い定義では、オブジェクト指向のプロ
グラミング環境内で規定されるオブジェクト。
【0046】レプリカマネージャ(replica manager)
−様々なサーバにおけるオブジェクトの多様な一次およ
び二次コピーの記録を取るプロセスまたはメカニズム。
【0047】トランスペアレントに再試行する−クライ
アントアプリケーションプログラムの明白な再試行無し
にオブジェクトに対する呼び出しを再試行すること。
【0048】トランスペアレントフェイルオーバー−ク
ライアントアプリケーションプログラムからの明白な故
障検出および再試行の命令無しで自動的に起こるフェイ
ルオーバーオブジェクトに対する呼び出しを終了する−
オブジェクトに対する任意のアクティブな呼び出しが完
了するのを待つこと。これは、オブジェクトに対する呼
び出しに関するデータ構造を分解することを追加的に含
み得る。
【0049】分散システムの説明 図1は、本発明の実施形態によるクライアントのシステ
ムおよび/またはサーバシステムとして機能できる複数
のノード102、106、110、および114を含む
分散コンピューティングシステムを示す図である。図1
に示すシステムは、ネットワーク100を含み、ノード
102、106、110および114に結合される。ネ
ットワーク100は一般に、以下に制限はされないが、
ローカルエリアネットワーク、ワイドエリアネットワー
ク、またはネットワークの組合せを含むコンピュータ間
の任意のタイプの配線またはワイヤレスのリンクであ
る。ノード102、106、110および114はネッ
トワーク100を用いて互いに通信する。ノード10
4、106、110および114の各々は、独立のクラ
イアント/サーバコンピュータシステムを示し、ここで
各ノードは、クライアントコンピュータシステムおよび
/またはサーバコンピュータシステムとして機能し得
る。クライアントコンピュータシステムはオブジェクト
を呼び出すノードに関連する。サーバコンピュータシス
テムは、オブジェクトの方法を格納するノードに関連す
る。特定の場合では、オブジェクトに対するクライアン
トおよびサーバは、同一ノード上に存在する。他の場合
では、クライアントおよびサーバは、異なるノード上に
存在する。
【0050】図1は、記憶装置118および120を含
む。ノード102および106は、記憶装置118に結
合される。ノード110および114は、記憶装置12
0に結合される。記憶装置118および120は、ノー
ド102、106、110および114からのデータの
ための不揮発性記憶装置を含む。
【0051】各ノード102、106、110、および
114は、1つ以上のドメインを有する。ドメインは、
それ自身のアドレス空間を有するプロセスであると規定
される。ドメインは、実行の複数スレッドを有し得、ユ
ーザまたはカーネルアプリケーション手順を実行し得
る。カーネルドメインは、オペレーティングシステムに
関連し、ユーザドメインは、オペレーティングシステム
以外のプロセスに関連する。ユーザドメインは、典型的
に1つ以上のアプリケーション手順を実行する。各ドメ
インは、それに関連する1つ以上のオブジェクトを有す
る。
【0052】1つの実施形態において、オペレーティン
グシステムは、California,Palo Al
toのSun Microsystems, Inc.
の製品であるSolaris MC operatin
g systemである。Solaris MC op
erating systemは、UNIXベースのオ
ペレーティングシステムである。よって、本願の技術を
説明するにあたって、UNIX用語および概念が頻繁に
使用される。しかし、この使用は説明の目的であり、こ
の特定のオペレーティングシステムに本発明を制限する
と解釈されるべきではない。
【0053】各スレッドは、オブジェクトの実行(すな
わち、オブジェクトの方法)を要求し得る。オブジェク
トのロケーションは、スレッドに対してトランスペアレ
ントである。オブジェクトは、複数のロケーションのう
ちの1つに常駐し得る。それは、要求スレッドとして同
一のドメイン内、要求スレッドとして同一のノード内で
あるが異なるドメインに、または遠隔ノードのドメイン
に常駐し得る。
【0054】カーネルドメインは、カーネルアプリケー
ションを実行し得る複数のスレッドを有する。各カーネ
ルドメインは、それに関連する1つ以上のカーネルオブ
ジェクトを有し得る。カーネルオブジェクトは、ドメイ
ン内のスレッドによって、または別のノードにおけるド
メイン内のスレッドによって呼び出され得る。
【0055】要求アプリケーションのドメイン内のオブ
ジェクトのための方法の実行は、ローカルの手順呼び出
しとして取り扱われる。ローカルの手順呼び出しは、典
型的に、アプリケーションからオブジェクトの方法へ制
御を転送し、最終的に制御をアプリケーションに戻す機
能またはサブルーチン呼び出しである。オブジェクトに
関する引数(argument)は、ローカルの手順呼び出しを
通過する。
【0056】遠隔ドメインに常駐するオブジェクトのた
めの方法の実行は、遠隔手順呼び出しとして取り扱われ
る。遠隔手順呼び出しは、遠隔手順呼び出しを扱う分散
メカニズムであるオブジェクト要求ブローカー(OR
B)によって処理(handle)される。よって、ORB
は、異なるドメインに常駐するオブジェクトのための方
法を要求アプリケーションから呼び出す。これらの遠隔
オブジェクトは、要求アプリケーションとして同一のノ
ードに、または異なるノードに置かれ得る。
【0057】クライアント−サーバ相互作用の説明 図2Aは、非高度利用可能システムのオブジェクト20
6に対する呼び出しに関する従来技術のクライアント−
サーバ相互作用を示す。この実施形態において、クライ
アント200は、サーバ202上でオブジェクト206
に対するリファレンスを作成する。概して、このリファ
レンスは、オブジェクト206の呼び出しの形式であ
る。
【0058】本実施形態において、クライアント200
は以下のように呼び出しを行う。クライアント200
は、サーバ202上のオブジェクト206に対して呼び
出し204を作成する。これにより、ネットワーク10
0をわたってサーバ202に要求208が発生される。
要求208に応答して、サーバ202はオブジェクト2
06上の具体的な機能を呼び出す。この機能呼び出しが
完了した後、サーバ202はネットワーク100をわた
ってクライアント200に応答210を返す。オブジェ
クト呼び出し204がこれで完了する。
【0059】図2Bは、本発明の実施形態による高度利
用可能サーバ211上の高度利用可能オブジェクト20
6に対する呼び出しに関するクライアント−サーバの相
互作用を示す。高度利用可能サーバ211は、一次サー
バ212および二次サーバ213を含む。一次サーバ2
12は、高度利用可能オブジェクトの一次コピーを含
み、二次サーバ213は、高度利用可能オブジェクトの
二次コピーを含む。チェックポイントインタフェース
(checkpointing interface)214にわたる通信を介し
て高度利用可能オブジェクトの一次コピーと二次コピー
との間で一貫性が維持される。
【0060】クライアント−サーバ相互作用は、一次サ
ーバ212が非応答になったり、または他の故障が生じ
たりしても高度利用可能サーバ211が機能し続ける以
外は、図2Aと本質的に同一の方法で進行する。まず、
クライアント200はオブジェクトに対する呼び出し2
04を作成する。これにより、ネットワーク100にわ
たって一次サーバ212に要求208が発生される。何
らかの理由で一次サーバ212が非応答になった場合、
応答210が失敗する。これを図2Bにおける十字記号
で示す。
【0061】故障が生じた時、この故障はレプリカマネ
ージャ500と呼ばれるシステムプロセスによって最終
的に検出される。レプリカマネージャ500について図
5を参照に以下で詳細に説明する。レプリカマネージャ
500は、クライアント200内のソフトウェアが二次
サーバ213に対して呼び出しを自動的に再試行させる
イベントの連鎖を開始する。これにより、二次サーバ2
13に再試行要求218が発生される。再試行要求21
8に応答して、サーバ213は、オブジェクト216の
二次コピー上の具体的な機能を呼び出す。機能呼び出し
が完了した後、サーバ213はネットワーク100を介
してクライアント200に応答220を返す。オブジェ
クト呼び出し204がここで完了する。
【0062】システム層の説明 図3は、本発明の実施形態によるクライアント200、
一次サーバ212、および二次サーバ213の間の通信
に関する様々なシステム層を示す。クライアントシステ
ム200において、オブジェクトに対する呼び出し20
4は、レプリカハンドラ302にリファレンスを転送す
るプロキシによって処理される。レプリカハンドラ30
2等のレプリカハンドラは、オブジェクト呼び出しの基
礎メカニズム、および引数通過を制御する。レプリカハ
ンドラは、オブジェクト呼び出しがどのように実行され
るか、オブジェクトリファレンスがアドレス空間の間で
どのように伝送されるか、オブジェクトリファレンスが
どのように解除されるか、および同様のオブジェクトラ
ンタイム動作を制御する。
【0063】レプリカハンドラ302は、hxdoor
308にリファレンスを転送する。1つの実施形態にお
いて、このリファレンス通過は機能呼び出しを介して達
成される。hxdoor308はレプリカハンドラ30
2とクライアントxdoor314との間に挟まれた中
間層である。hxdoor308の下にあるデータ構造
は、図4を参照して以下に更なる詳細を説明する。hx
door308はリファレンスをクライアントxdoo
r314に渡す。
【0064】クライアントxdoor314は、輸送メ
カニズム320にリファレンスを転送する。これは、リ
ファレンスを要求の形態でネットワーク100を介して
一次サーバ212上の輸送メカニズム322に転送す
る。一次サーバ212内において、この要求はサーバx
door316およびhxdoor310を介して逆の
順番でレプリカハンドラ304の方に上向きに伝搬す
る。最後に、レプリカハンドラ304は高度利用可能オ
ブジェクト206の一次コピーに要求を付与することに
よって、高度利用可能オブジェクト206上で呼び出し
が行われる。次に、同じ経路に沿って応答がクライアン
ト200に返送される。
【0065】次に、二次サーバ213上の高度利用可能
オブジェクトの二次コピー216の状態は、チェックポ
イントインタフェース214を介して更新される。この
更新プロセスは、発明者Matenaらによる、シリア
ル番号08/829,156を有する「Method
and System for AchievingH
igh Availability in Netwo
rked Computer Systems」と題さ
れた関連出願により詳細に説明されている。これは、上
記の関連出願の部分で参考のために援用される。二次サ
ーバ213がレプリカハンドラ306、hxdoor3
12、サーバxdoor318および輸送メカニズム3
24を含むことに留意されたい。示される実施形態にお
いて、サーバxdoor318(点線で表す)は、フェ
イルオーバーが生じるまで作成されない。このように、
必要になるまでサーバxdoor318の作成が遅延さ
れる。
【0066】データ構造の説明 図4は、本発明の実施形態による遠隔オブジェクトに対
する呼び出しに関するデータ構造のいくつかを示す。遠
隔ノードによってアクセス可能なオブジェクトは、特定
のノード内のオブジェクトを独自に識別するために使用
されるグローバルxdoor識別子440によって識別
されるxdoor470を有する。更に、各ノードは、
分散システム内のノードを独自に識別するノード識別子
442によって独自に示される。グローバルxdoor
識別子440は、ノード識別子442と結合され、分散
システム内のオブジェクトを独自に識別する識別子を生
成する。
【0067】アプリケーションは、ローカルxdoor
識別子またはファイル記述子を利用するオブジェクトを
参照する。遠隔オブジェクト呼び出しを実行するため
に、ORBはそのオブジェクトに対するサーバのファイ
ル記述子を使用するオブジェクトを参照する。よって、
ORBは、クライアントオブジェクトリファレンス(す
なわち、ローカルxdoor識別子)をサーバのローカ
ルxdoor識別子にマッピングする。このマッピング
は、ユーザおよびカーネルドメインに常駐する多数の手
順およびデータ構造を利用して実行される。
【0068】ORBは、このマッピングを実行するため
に複数のメカニズムを利用する。ORBは、以下の手順
を含む:ハンドラ手順、xdoor手順、およびゲート
ウェイハンドラ手順。xdoor手順は、ユーザおよび
カーネルドメインの両方に常駐する。これらのメカニズ
ムに対する簡単な説明は、図4を参照して以下に提供さ
れる。
【0069】オブジェクトは、ハンドラ手順422によ
って参照される。レプリカハンドラ302、304、お
よび306は、このようなハンドラの例である。ハンド
ラ手順422は、オブジェクト呼び出しおよび引数通過
の基本メカニズムを制御する。ハンドラ手順422は、
オブジェクト呼び出しがどのように実行されるか、オブ
ジェクトリファレンスがアドレス空間の間をどのように
伝送されるか、オブジェクトリファレンスがどのように
解放されるか、および同様のオブジェクトランタイムオ
ペレーションを制御する。ローカルオブジェクト呼び出
しに対して、ハンドラ422はローカル手順呼び出しを
オブジェクトの方法450に対して実行する。
【0070】ハンドラテーブル422は、hxdoor
テーブル480を指示する。hxdoorテーブル48
0は、対応hxdoorによって使用される。上述のよ
うに、hxdoorは、高度利用可能を容易にする間接
化技法のレベルを提供するレプリカハンドラとxdoo
rとの間の中間層である。レプリカハンドラに対してh
xdoorはxdoorのように見え、xdoorに対
してhxdoorはレプリカハンドラのように見える。
【0071】hxdoorテーブル480は、hxdo
orID486、サービスID490、呼び出し数49
2、およびフラグ494を含む。hxdoorIDは、
特定のhxdoorを識別する。サービスID490
は、特定のサービスを識別する。ここで、サービスとは
オブジェクトのグループであると規定される。呼び出し
数492は、サービスに対して現在目立つ不完全な呼び
出し数の記録を取る。最後にフラグ494はhxdoo
rがクライアント上、一次サーバ上または二次サーバ上
のいずれにあるかを示す。
【0072】遠隔ユーザオブジェクト呼び出しに対し
て、オブジェクトは、ユーザレベルxdoor452に
よってそのドメインで示される。ユーザレベルxdoo
r452は、ローカルxdoor識別子453、適切な
ハンドラへのポインタ456、door識別子458、
および他の情報からなる。本発明の1つの実施形態にお
いて、ローカルxdoor識別子453はファイル記述
子である。door識別子458は、オブジェクトを示
すdoorに対応し、カーネルレベルdoorテーブル
432に格納される。
【0073】カーネルレベルxdoor470は、分散
システムの全体にわたってオブジェクトを示すために使
用されるカーネル状態のエンティティである。カーネル
レベルxdoor470は、グローバルxdoor識別
子440、ハンドラポインタ444(これには、サーバ
ハンドラポインタ441およびクライアントハンドラポ
インタ443が含まれる)、およびdoor識別子44
6を含み得る。グローバルxdoor識別子440は、
分散システム内のオブジェクトを独自に識別するために
使用される。これは、ノード内のxdoorを参照する
ノード識別子442およびローカルxdoor識別子4
47を含む。door識別子446は、対応するdoo
r462を識別するために使用される。
【0074】xdoorには、クライアントxdoor
とサーバxdoorとの2種類がある。クライアントx
doorのみがノード識別子442等のノード識別子を
含み、サーバxdoorのみが、サーバハンドラポイン
タ441によって指示されるサーバハンドラ等のサーバ
ハンドラを含む。
【0075】doorはカーネル状態エンティティであ
る。これは、ノード内遠隔ユーザオブジェクトに対して
のみ存在する(すなわち、ノード内遠隔ユーザオブジェ
クトは、要求ドメインとして同一のノード内の異なるド
メインに常駐するオブジェクトのことである)。doo
rは、ファイル記述子によって示される。各ユーザドメ
インは、ドメインに関連するスレッドによってアクセス
可能なオブジェクトのファイル記述子を格納するユーザ
xdoorテーブルを有する。ユーザドメインは、ドメ
インのユーザxdoorテーブルに配設された、実際の
doorにマッピングされたファイル記述子を介する遠
隔オブジェクトを参照する。doorは、ユーザのアク
セス可能ドメインのアドレス空間ではなく、カーネルド
メインに常駐する。
【0076】doorを示すためのファイル記述子を使
用することによってユーザが呼び出せるオブジェクトを
制御するための安全なメカニズムが提供される。ファイ
ル記述子は、保護されたカーネル状態であり、ユーザに
よって偽造され得ない。ファイル記述子を所有すること
は、アプリケーションがオブジェクトに対する許容可能
なアクセスを有することを示す。オブジェクトを発生す
るドメインは、オブジェクトおよびそのdoorに対す
るサーバになる。サーバは、サーバがオブジェクトに対
するアクセスを望むアプリケーションに対してオブジェ
クトリファレンスを書き出す。この方式には、分散シス
テム内のオブジェクトにアクセスし得るアプリケーショ
ンを選択的に制御するための安全なメカニズムがある。
【0077】オブジェクトは、オブジェクトに関連する
多数のファイル記述子を有し得る。これらのファイル記
述子は、オブジェクトとして同一のドメインに常駐し得
るか、あるいは、オブジェクトにアクセスを有する異な
るドメインに常駐し得る。遠隔オブジェクトを参照する
各クライアントドメインは、オブジェクトを示す1つ以
上のファイル記述子を有する。本質的に、ファイル記述
子は、特定のユーザドメイン内のオブジェクトに対する
ローカル識別子である。
【0078】カーネルオブジェクトは、カーネルレベル
xdoor470によってカーネルドメインで示され
る。カーネルオブジェクトのxdoor470は、カー
ネルドメインでカーネルオブジェクトを示すローカルx
door識別子447を含む追加のフィールドを含む。
典型的に、ローカルxdoor識別子447は、ファイ
ル記述子454である。
【0079】カーネルレベルファイル記述子テーブル4
30は、ノード402内に存在する各ファイル記述子4
54を格納するために使用される。ファイル記述子テー
ブル430は、セグメント455に分割される。各セグ
メントは、特定のドメインに関するファイル記述子45
4を示す。各ファイル記述子エントリ454は、カーネ
ルレベルdoorテーブル432に格納されるdoor
を参照する。door462は、door識別子46
4、プロセス位置ポインタ466、および他の情報を含
む。プロセス位置ポインタ466は、呼び出しを行うた
めに使用されるサーバのアドレス空間における手順に対
するエントリ点を示す。ノード内遠隔ユーザオブジェク
ト呼び出しの場合では、プロセス位置ポインタ466は
サーバのxdoor手順428にアクセスするために使
用される。ノード間遠隔オブジェクト呼び出しまたは遠
隔カーネルオブジェクト呼び出しの場合では、プロセス
位置ポインタ466はオブジェクトに関するゲートウェ
イハンドラ468にアクセスするために使用される。ゲ
ートウェイハンドラ468は、遠隔オブジェクト呼び出
し要求を対応ノードに輸送することを容易にするために
使用される。ゲートウェイハンドラ468は、ファイル
記述子454を利用してオブジェクト呼び出しをそれぞ
れのシステムワイド識別子(system-wide identifier)
に変換する。
【0080】レプリカマネージャの説明 図5は、レプリカマネージャ500がどのように本発明
の実施形態による様々なサービスに対する一次サーバお
よび二次サーバの記録を取るのかを示す。各サービスに
対して、レプリカマネージャ500は、分散システム内
のどのノードが一次サーバとして機能し、どのノードが
二次サーバとして機能するのかの記録を取る。(但し、
サービスは、オブジェクトの関連コレクションであ
る。)例えば、図5において、レプリカマネージャ50
0はサービス502、504、506および508の記
録を取る。サービス502に対する一次サーバはノード
106であり、二次サーバはノード110および114
である。サービス504に対する一次サーバは、ノード
110であり、二次サーバはノード106および114
である。サービス506に対する一次サーバはノード1
02であり、二次サーバはノード110および114で
ある。サービス508に対する一次サーバは、ノード1
06であり、二次サーバはノード102、110および
114である。
【0081】本発明の1つの実施形態において、レプリ
カマネージャ500はネットワークの複数ノードにわた
って分散されるので、レプリカマネージャ500はネッ
トワーク上のノードの1つが故障した場合でも機能し続
ける。
【0082】動作の説明 図6から図9は、本発明の実施形態によって高度利用可
能を容易にすることに関する多数の動作を示す。これら
の動作は、オブジェクト作成、オブジェクト呼び出し、
およびフェイルオーバーを含む。それぞれは、図6から
図9を参照して以下に更に詳細に説明する。
【0083】オブジェクト作成の説明 図6は、本発明の実施形態によるオブジェクトの作成に
関連する動作のいくつかを示すフローチャートである。
このフローチャートは、左側の列と右側の列に分割され
る。左側の列は、一次サーバ212の動作を示し、右側
の列はクライアント200の動作を示す(図2Bを参
照)。
【0084】システムは、状態600で開始し、状態6
02に進む。状態602において、一次サーバ212は
オブジェクトを割り当てる。これにより、オブジェクト
に関するデータ構造に対してメモリが割り当てられる。
これは、オブジェクトに対するレプリカハンドラを割り
当て、オブジェクトに対するサービスIDを特定化する
ことも含む。但し、サービスは、関連するオブジェクト
のコレクションを参照する。よって、サービスIDはサ
ービスに対する識別子である。システムは、次に、状態
604に進む。状態604において、システムはオブジ
ェクトにリファレンスを渡す。これは、いくつかの他の
オブジェクト上の呼び出しの入力または出力のいずれか
として起こり得る。システムは、次に、状態606に進
む。状態606において、一次サーバ212は図3のh
xdoor310等のhxdoorを割り当てる。この
hxdoorは、hxdoor識別子(ID)を含む。
システムは、次に、状態608に進む。状態608にお
いて、一次サーバ212は、図3のサーバxdoor3
16等のサーバxdoorを割り当てる。このサーバx
doorは、サーバxdoorIDを含む。システム
は、次に、状態610に進む。前述の状態606および
608は、リファレンスがオブジェクトに最初に渡され
た時にのみ実行されることに留意されたい。後に続くリ
ファレンスに対して、hxdoor310構造およびサ
ーバxdoor316構造は既に存在し、システムは状
態606および608を単にスキップすることができ
る。状態610において、一次サーバ212は、hxd
oorIDおよびサーバxdoorIDを整理し(mars
hal)、それらをメッセージ中にパッケージングする。シ
ステムは、次に、状態612に進む。状態612におい
て、一次サーバ212はオブジェクトリファレンスを含
むメッセージをクライアント200に送信する。次に、
システムは状態614に進む。
【0085】状態614において、クライアント200
はオブジェクトリファレンスを含むメッセージを受け取
る。次に、システムは状態616に進む。状態616に
おいて、クライアント200はhxdoorIDを逆整
理し(unmarshal)、hxdoorIDをメッセージから
読み出す。次に、システムは状態618に進む。状態6
18は、クライアントxdoorを逆整理し、必要であ
れば、クライアント200は図3のクライアントxdo
or314等の新しいクライアントxdoorを作成す
る。システムは、次に、状態620に進む。状態620
において、必要であれば、クライアント200は図3の
hxdoor308等のhxdoorを作成する。次
に、システムは状態622に進む。状態622におい
て、それらが既に存在しない場合、クライアント200
は図3のレプリカハンドラ203等のレプリカハンドラ
およびプロキシを作成する。システムは、次に、終了状
態である状態624に進む。この時点で、オブジェクト
が作成され、オブジェクトに対する呼び出しを容易にす
るデータ構造が一次サーバ212およびクライアント2
00の両方において作成される。高度利用可能を提供す
るために、少なくとも1つのオブジェクトの二次コピー
が、図2Bの二次サーバ213等の二次サーバ上で作成
されなくてはならない。
【0086】図7は、本発明の実施形態による二次サー
バ上にオブジェクトを作成することに関する動作のいく
つかを示すフローチャートである。システムは、状態7
00で開始し、状態702に進む。状態702におい
て、一次サーバ212がオブジェクトを割り当てた後の
ある時点で、一次サーバ212は、二次サーバ213上
のオブジェクト(図2Bを参照)を呼び出すことによっ
て二次サーバ213上にオブジェクトを作成し始める。
これによりリファレンスがチェックポイントインタフェ
ース214(図2Bを参照)を介して一次サーバ212
から二次サーバ213に渡される。システムは、次に状
態704に進む。状態704において、二次サーバ21
3は、二次サーバ213上のオブジェクトに対して連結
を作成する。この連結は、図3に示すように、レプリカ
ハンドラ306およびhxdoor312を含む。この
連結は、図6を参照してクライアント200上のオブジ
ェクトに対して類似の連結を作成することについて上述
したものと同一のプロセスを用いて作成されるが、サー
バxdoor318が最初に作成されるのではなく、フ
ェイルオーバーの間に必要な時にのみ作成される点で異
なる。システムは、次に状態706に進む。状態706
において、二次サーバ213は、二次サーバ213内の
チェックポイントオブジェクトを呼び出す。これによ
り、オブジェクトの二次コピーが二次サーバ213上で
割り当てられる。また、二次サーバ213は、hxdo
or312およびレプリカハンドラ306(図3から)
上の機能を呼び出し、それらがオブジェクトに対する二
次サーバに関連することを知らせる。システムは、次に
状態708に進む。状態708において、フラグがhx
door312およびレプリカハンドラ306において
設定され、それらが、オブジェクトの二次コピーに関連
することを示す。これらのフラグのコンテンツは、上述
の図6で概要を説明したクライアント200上にデータ
構造を作成するプロセスと、二次サーバ213上にデー
タ構造を作成するプロセスとの唯一の顕著な違いであ
る。これらフラグは、同一のメカニズムが、クライアン
トデータ構造作成と、二次サーバデータ構造作成の両方
で使用されることを可能にする。チェックポイントオブ
ジェクトの呼び出しが完了した時、クライアントxdo
orは二次サーバ213上で削除される。上述したよう
に、サーバxdoor318は、フェイルオーバー中に
必要となるまで作成されない。システムは、最後に、終
了状態である状態710に進む。二次サーバ213上で
データ構造を作成するプロセスが、これで完了する。図
7に概要が示されるプロセスは、他の二次サーバで繰り
返され、そのような二次サーバが望まれる場合にオブジ
ェクトに対する追加の二次サーバを作成する。
【0087】この開示で、用語「オブジェクト」および
「サービス」は相互転換可能に使用されていることに留
意されたい。サービスは、関連オブジェクトのコレクシ
ョンであると規定される。概念的に、サービスはオブジ
ェクトの一般化である。なぜなら、サービスが1つのオ
ブジェクトのみを含む場合、サービスはオブジェクトと
本質的に類似するからである。1つの実施形態におい
て、オブジェクト上で実施されるように特定化された上
述の動作の全ては、サービス上で実施される。
【0088】オブジェクトの呼び出しの説明 図8は、本発明の実施形態による高度利用可能オブジェ
クトを呼び出すことに関連する動作のいくつかを示すフ
ローチャートである。システムは状態800で開始し、
状態802に進む。状態802において、クライアント
200は、オブジェクトに対する呼び出しを有するロー
カルプロキシを呼ぶ。次に、システムは状態804に進
む。状態804において、クライアント200上のプロ
キシは、クライアント200上のレプリカハンドラ30
2に呼び出しを転送する。呼び出しを転送することは、
機能呼び出しを実施することによって達成され得る。次
に、システムは状態806に進む。状態806におい
て、レプリカハンドラ302は、呼び出しに付随する引
数を整理する(コレクションする)。次に、システムは
状態808に進む。状態808において、レプリカハン
ドラ302は、呼び出しをhxdoor308に転送す
る。次に、システムは状態810に進む。状態810に
おいて、hxdoor308はオブジェクトに関する呼
び出しカウントを増加させ、オブジェクトに対する追加
の呼び出しが進行中であることを表示する。次に、hx
door308は、呼び出しをクライアントxdoor
314に転送する。次に、システムは状態812に進
む。
【0089】状態812において、クライアントxdo
or314は一次サーバ212上(図3を参照)のサー
バxdoor316に呼び出しを転送する。これは、ク
ライアント200上の輸送メカニズム320を介してネ
ットワーク100を渡り、次に一次サーバ212上の輸
送メカニズム322を介して最後にサーバxdoor3
16(図3を参照)に呼び出しを転送する事によって達
成される。次に、システムは状態814に進む。
【0090】状態814において、サーバxdoor3
16は、一次サーバ212上のレプリカハンドラ304
に呼び出しを転送する。次に、システムは状態816に
進む。状態816において、レプリカハンドラ304
は、一次サーバ212上のオブジェクト206の一次コ
ピー上の特定された機能を呼び出す。次に、システムは
状態818に進む。
【0091】状態818において、一次サーバ212
は、同一の経路を逆方向に引き返して、呼び出しに対す
る応答を送信する。この応答は、呼び出しと本質的に同
一の方法で転送される。途中で、hxdoor308は
オブジェクトに対する呼び出しカウントを減少させ、呼
び出しがもはや進行中ではないことを表示する。次に、
システムは、最終状態である状態820に進む。
【0092】フェイルオーバーの説明 図9は、本発明の実施形態による一次サーバから二次サ
ーバにオブジェクトのためのフェイルオーバーを実施す
ることに関する動作のいくつかを示すフローチャートで
ある。システムは、状態900から開始し、状態902
に進む。状態902において、システムは一次サーバ2
12の故障を検出する(図2および図3を参照)。この
故障は、一次サーバ212が機能を中断したり、または
クライアント要求を適時に処理することを中断した場合
に生じ得る。本発明の1つの実施形態において、この故
障検出は、図5を参照して上述したレプリカマネージャ
500等のレプリカマネージャによって実施される。次
に、システムは状態904に進む。状態904におい
て、レプリカマネージャ500は、一次サーバ212に
関連するクライアントに一次サーバ212がもはや適切
に機能していないことを伝える。次にシステムは状態9
06に進む。
【0093】状態906において、一次サーバ212に
対する進行中呼び出しを有する全てのhxdoorは、
進行中呼び出しが完了するのを待つ。これは、デッドノ
ード(dead node)に対する進行中呼び出しを強制して障
害を取り除き、完了することを含む。デッドノードに対
するこれら進行中の呼び出しが返ると、それらは、典型
的に、呼び出しが不完全であることを示すエラーコード
と共に返す。hxdoorは、これらのエラーコードを
別のエラーコードに変換し、クライアント200上のク
ライアントアプリケーションプログラムにエラーを返さ
ずに、プロキシによって要求が再試行されるべきである
ことを示す。これにより、再試行が自動的に起こり、ク
ライアントアプリケーションプログラムは一次サーバ2
12の故障によるエラー条件に対処する必要がなくな
る。次に、システムは状態908に進む。
【0094】状態908において、hxdoorはフラ
グを設定し、フェイルオーバーが完了するまで一次サー
バ212に対する新しい呼び出しが遮断されるべきこと
を示す。これは、新しい呼び出しがフェイルオーバープ
ロセスを妨害しないように行われる。次に、システムは
状態910に進む。状態910において、一次サーバ2
12上のオブジェクトに対する呼び出しが完了した時、
関連するクライアントxdoorは、故障した一次サー
バ212用に設定されているために廃棄される。次に、
システムは状態912に進む。
【0095】状態912において、システムは一次サー
バ212を置換するための二次サーバを選択する。本発
明の1つの実施形態において、この二次サーバはレプリ
カマネージャ500によって選択される(図5を参
照)。次に、システムは状態914に進む。状態914
において、レプリカマネージャ500は、全てのクライ
アントに新しい一次サーバに接続するよう命令する。次
に、システムは状態916に進む。状態916におい
て、クライアントは新しい一次サーバ上でオブジェクト
を呼び出す。これは、新しい一次サーバに再接続される
必要のあるhxdoor識別子のリストを渡すことを含
む。応答を整列することが新しい一次サーバ上にサーバ
xdoorを作成するきっかけとなる。次に、システム
は状態918に進む。
【0096】状態918において、hxdoor識別子
によって特定されたオブジェクトに対するリファレンス
のリストは、クライアントに返却される。次に、システ
ムは状態920に進む。状態920において、応答が受
け取られた時、クライアントは対応するクライアントx
doorに接続するために通常の逆整理メカニズムを用
いる。次にシステムは922に進む。状態922におい
て、システムは、故障した一次サーバ212上のオブジ
ェクトに対する呼び出しついての障害を取り除くように
クライアントに命令する。これにより、遮断された呼び
出しが新しい一次サーバに進むことが可能になる。次
に、システムは、最終状態である状態924に進む。こ
の時点でフェイルオーバープロセスは完了する。
【0097】本発明の1つの実施形態は、第1のサーバ
が故障した際、または非応答になった際、第1のサーバ
上のオブジェクトの一次コピーから第2のサーバ上のオ
ブジェクトの二次コピーへのトランスペアレントなフェ
イルオーバーを容易にする方法および装置を提供する。
方法は、第1のサーバの故障を検出する工程と、第2の
サーバを選択する工程と、第2のサーバをオブジェクト
に対する新しい一次サーバとして機能するように再設定
する工程と、を含む。更に、方法はクライアントアプリ
ケーションプログラムからの明白な再試行命令を必要と
せずにオブジェクトに対する不完全な呼び出しを第2の
サーバにトランスペアレントに再試行する工程を含む。
この実施形態の変形は、第2のサーバを新しい一次サー
バとして機能するように再設定する前にオブジェクトに
対するアクティブな呼び出しを終了する工程を含む。こ
の終了プロセスは、非反応ノードに対する呼び出しが障
害を取り除き完了させる工程をさらに含み得る。別の変
形は、第1のサーバの故障を検出した後にオブジェクト
に対する新しい呼び出しを遮断する工程と、第2のサー
バを新しい一次サーバとして機能するように再設定した
後にこれらの新しい呼び出しの障害を取り除く工程と、
を含む。よって、本発明は、高度利用可能システムのた
めのクライアントアプリケーションプログラムのプログ
ラミングを非常に単純化し得る。また、非高度利用可能
システム用に書き込まれたクライアントアプリケーショ
ンプログラムを高度利用可能システムで使用することが
可能になる。
【0098】本発明は、本発明の実施形態を参照して具
体的に示され、説明されたが、当業者は、形態および詳
細の前述および他の変更が本発明の精神および範囲から
逸脱する事なく成され得ることを理解する。
【0099】
【発明の効果】本発明により第1のサーバが故障した
時、または非応答になった際、第1のサーバ上のオブジ
ェクトの一次コピーから第2のサーバ上のオブジェクト
の二次コピーへのトランスペアレントフェイルオーバー
を容易にする方法および装置を提供する。本発明の方法
は、第1のサーバの故障を検出する工程と、第2のサー
バを選択する工程と、オブジェクトのための新しい一次
サーバとして機能するように第2のサーバを再設定する
工程とを含む。更に、本発明の方法は、クライアントア
プリケーションプログラムからの明白な再試行の命令な
しにオブジェクトに対する不完全な呼び出しをトランス
ペアレントに第2のサーバに再試行する工程を含む。本
発明の変形例は、第2のサーバを新しい一次サーバとし
て機能するように再設定する前に、オブジェクトのアク
ティブな呼び出しを終了する工程を更に含む。この終了
プロセスは、非応答ノードに対する呼び出しに対する障
害を取り除き、完了させる工程を含み得る。別の変形例
は、第1のサーバの故障を検出した後にオブジェクトに
対する新しい呼び出しを遮断し、新しい一次サーバとし
て機能するように第2のサーバを再設定した後に、これ
らの新しい呼び出しに対する障害を取り除く。よって、
本発明により、高度利用可能システムに対するクライア
ントアプリケーションプログラムのプログラミングを大
いに単純化し得る。また、非高度利用可能システム用に
書き込まれたクライアントアプリケーションプログラム
を、高度利用可能システムで使用することが可能にな
る。
【図面の簡単な説明】
【図1】本発明の実施形態によるクライアントおよび/
またはサーバシステムのいずれかとして機能することが
できる、複数のノード102、106、110および1
14を含む分散コンピューティングシステムを示す図で
ある。
【図2A】非高度利用可能システムにおけるオブジェク
ト206に対する呼び出しに関する従来のクライアント
−サーバ相互作用を示す。
【図2B】本発明の実施形態による高度利用可能サーバ
211上の高度利用可能オブジェクト206に対する呼
び出しに関するクライアント−サーバ相互作用を示す。
【図3】本発明の実施形態によるクライアント200、
一次サーバ212、および二次サーバ213の間の通信
に関する様々なシステム層を示す。
【図4】本発明の実施形態による遠隔オブジェクトに対
する呼び出しに関するデータ構造のいくつかを示す。
【図5】本発明の実施形態による様々なサービスに対す
る一次および二次サーバの記録をレプリカマネージャ5
00がどのように取るのかを示す。
【図6】本発明の実施形態によるオブジェクトの作成に
関する動作のいくつかを示すフローチャートである。
【図7】本発明の実施形態による二次サーバ上のオブジ
ェクトの作成に関する動作のいくつかを示すフローチャ
ートである。
【図8】本発明の実施形態による高度利用可能オブジェ
クトの呼び出しに関する動作のいくつかを示すフローチ
ャートである。
【図9】本発明の実施形態による一次から二次サーバへ
のオブジェクトのフェイルオーバーを実施することに関
する動作のいくつかを示すフローチャートである。
【符号の説明】
200 クライアント 204 呼び出し 206 一次コピー 208 要求 210、220 応答 211 高度利用可能サーバ 212 一次サーバ 213 二次サーバ 214 チェックポイントインタフェース 216 二次コピー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マドゥスハン タルーリ アメリカ合衆国 カリフォルニア 94538, フレモント, ブッシュ サークル 4466 (72)発明者 ブラディミール マテナ アメリカ合衆国 カリフォルニア 94061, レッドウッド シティ, ケントフィー ルド アベニュー 1322 (72)発明者 ヨセフ エイ. カリディ アメリカ合衆国 カリフォルニア 95014, クパチーノ, バリントン ブリッジ コート 10831 (72)発明者 ホセ エム. ベルナボウ−オウバン スペイン国 バレンシア 46021, ピー ティーエイ 18, ピーゼットエイ. フ レイ ルイス コロメール 9 (72)発明者 アンドリュー ジー. タッカー アメリカ合衆国 カリフォルニア 94025, メンロ パーク, マッケンドリー ド ライブ 214

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトのアクティブな呼び出しに
    対する第1のサーバから第2のサーバにトランスペアレ
    ントフェイルオーバーを提供する方法であって、該オブ
    ジェクトに対する呼び出しのための一次サーバとして該
    第1のサーバが機能し、 該第1のサーバの故障により該オブジェクトに対する新
    しい一次サーバとして該第2のサーバを選択する工程
    と、 該第2のサーバが該オブジェクトに対する該新しい一次
    サーバとして機能するように再設定する工程と、 不完全である該アクティブな呼び出しを該第2のサーバ
    上の該オブジェクトに対して自動的に再試行する工程
    と、 を含む方法。
  2. 【請求項2】 前記第2のサーバを選択する動作および
    前記第2のサーバを再設定する動作が自動的に実施され
    る、請求項1に記載の方法。
  3. 【請求項3】 前記第2のサーバを再設定する工程の前
    に、前記オブジェクトに対する前記アクティブな呼び出
    しを終了する工程を更に含む、請求項1に記載の方法。
  4. 【請求項4】 前記アクティブな呼び出しを終了する工
    程は、非応答ノードに対する任意の該アクティブな呼び
    出しが障害を取り除き、完了させる工程を含む、請求項
    3に記載の方法。
  5. 【請求項5】 前記第1のサーバの故障の後に前記オブ
    ジェクトに対する任意の新しいアクティブな呼び出しを
    遮断する工程と、 前記第2のサーバを再設定する工程の後に該オブジェク
    トに対する該新しいアクティブな呼び出しから障害を取
    り除く工程と、 を更に含む、請求項1に記載の方法。
  6. 【請求項6】 前記第1のサーバの故障を検出する工程
    を更に含む、請求項1に記載の方法。
  7. 【請求項7】 前記故障を検出する動作が前記第1のサ
    ーバ、前記第2のサーバ、および複数の追加のコンピュ
    ータシステムのうちの少なくとも2つにわたって分散さ
    れるシステムマネージャによって実行されることによっ
    て、該システムマネージャがサーバの故障に対して耐性
    を有する、請求項6に記載の方法。
  8. 【請求項8】 前記第1のサーバのクライアントに該第
    1のサーバが故障したことを知らせる工程を更に含む、
    請求項1に記載の方法。
  9. 【請求項9】 前記オブジェクトが前記第1のサーバ上
    の一次コピーおよび前記第2のサーバ上の二次コピーを
    有し、該一次コピーが該第1のサーバ上で更新されたと
    き、該第2のサーバ上で該二次コピーを更新する工程を
    更に含む、請求項1に記載の方法。
  10. 【請求項10】 前記オブジェクトが、オブジェクトの
    グループを含む、請求項1に記載の方法。
  11. 【請求項11】 オブジェクトのアクティブな呼び出し
    に対する第1のサーバから第2のサーバにトランスペア
    レントフェイルオーバーを提供する方法であって、該オ
    ブジェクトに対する呼び出しのための一次サーバとして
    該第1のサーバが機能し、 該第1のサーバの故障を検出する工程と、 該第1のサーバの故障を検出する工程の後に、該オブジ
    ェクトに対する任意の新しいアクティブな呼び出しを遮
    断する工程と、 非応答ノードに対する任意のアクティブな呼び出しが障
    害を取り除き完了させる工程を含む、該オブジェクトに
    対する該アクティブな呼び出しを終了する工程と、 該オブジェクトに対する新しい一次サーバとして機能す
    るように該第2のサーバを選択する工程と、 該オブジェクトに対する該新しい一次サーバとして該第
    2のサーバを再設定する工程と、 該第2のサーバを再設定する工程の後に、該オブジェク
    トに対する該新しいアクティブな呼び出しから障害を取
    り除く工程と、 不完全である該アクティブな呼び出しを該第2のサーバ
    上の該オブジェクトに対して自動的に再試行する工程
    と、 を含む方法。
  12. 【請求項12】 前記故障を検出する動作が前記第1の
    サーバ、前記第2のサーバ、および複数の追加のコンピ
    ュータシステムのうちの少なくとも2つにわたって分散
    されるシステムマネージャによって実行されることによ
    って、該システムマネージャがサーバの故障に対して耐
    性を有する、請求項11に記載の方法。
  13. 【請求項13】 前記第1のサーバのクライアントに該
    第1のサーバが故障したことを知らせる工程を更に含
    む、請求項11に記載の方法。
  14. 【請求項14】 前記オブジェクトが前記第1のサーバ
    上の一次コピーおよび前記第2のサーバ上の二次コピー
    を有し、該一次コピーが該第1のサーバ上で更新された
    とき、該第2のサーバ上で該二次コピーを更新する工程
    を更に含む、請求項11に記載の方法。
  15. 【請求項15】 前記オブジェクトが、オブジェクトの
    グループを含む、請求項11に記載の方法。
  16. 【請求項16】 オブジェクトのアクティブな呼び出し
    に対して第1のサーバから第2のサーバへのトランスペ
    アレントなフェイルオーバーを提供する装置であって、
    該第1のサーバが該オブジェクトに対する呼び出しの一
    次サーバとして機能し、 ネットワークと結合された該第1のサーバと、 該ネットワークと結合された該第2のサーバと、 該第1のサーバの故障を検出し、該オブジェクトに対す
    る新しい一次サーバとして機能するように該第2のサー
    バを選択する該ネットワーク上の少なくとも1つのノー
    ド上に常駐するシステムマネージャと、 該システムマネージャと通信し、該オブジェクトに対す
    る該新しい一次サーバとして機能するように該第2のサ
    ーバを再設定する、再設定メカニズムと、 該第2のサーバと通信し、該第2のサーバが再設定され
    た後に、該オブジェクトに対する不完全である該アクテ
    ィブな呼び出しを該第2のサーバに自動的に再試行す
    る、再試行メカニズムと、 を含む装置。
  17. 【請求項17】 前記システムマネージャおよび前記再
    設定メカニズムが、クライアントアプリケーションプロ
    グラムからの明白な再試行命令を必要とせずに動作す
    る、請求項16に記載の装置。
  18. 【請求項18】 前記第2のサーバが再設定される前
    に、前記オブジェクトに対する前記アクティブな呼び出
    しを終了する、終了メカニズムを更に含む、請求項16
    に記載の装置。
  19. 【請求項19】 前記終了メカニズムは、非反応ノード
    に対する呼び出しが障害を取り除き、完了させるように
    設定する、請求項18に記載の装置。
  20. 【請求項20】 前記第1のサーバの故障が検出された
    時に前記オブジェクトに対する新しいアクティブな呼び
    出しを遮断し、前記第2のサーバが再設定された後にオ
    ブジェクトに対する該新しいアクティブな呼び出しから
    障害を取り除く、遮断メカニズムを更に含む、請求項1
    6に記載の装置。
  21. 【請求項21】 前記オブジェクトがオブジェクトのグ
    ループを含む、請求項16に記載の装置。
  22. 【請求項22】 前記システムマネージャが前記ネット
    ワーク上の複数ノードにわたって分散されることにより
    該システムマネージャがノードの故障に耐性を有する、
    請求項16に記載の装置。
  23. 【請求項23】 前記システムマネージャが、前記第1
    のサーバが故障したことを該第1のサーバのクライアン
    トに知らせるように設定される、請求項16に記載の装
    置。
  24. 【請求項24】 前記システムマネージャが前記オブジ
    ェクトに対する前記新しい一次サーバとして機能するよ
    うに前記第2のサーバを選択する選択メカニズムを含
    む、請求項16に記載の装置。
  25. 【請求項25】 前記オブジェクトに対する一次サーバ
    と通信し、該オブジェクトに対する少なくとも1つの二
    次サーバと通信する更新メカニズムであって、該更新メ
    カニズムは、該オブジェクトの一次コピーが該オブジェ
    クトに対する一次サーバで更新されたとき、該オブジェ
    クトの少なくとも1つの二次コピーが該オブジェクトに
    対する少なくとも1つの二次サーバ上で更新されること
    を確認する、請求項16に記載の装置。
  26. 【請求項26】 オブジェクトのアクティブな呼び出し
    に対して第1のサーバから第2のサーバへのトランスペ
    アレントなフェイルオーバーを提供する装置であって、
    該第1のサーバが該オブジェクトに対する呼び出しの一
    次サーバとして機能し、 ネットワークと結合された該第1のサーバと、 該ネットワークと結合された該第2のサーバと、 該第1のサーバの故障を検出し、該オブジェクトに対す
    る一次サーバとして機能するように該第2のサーバを選
    択する該ネットワーク上の少なくとも1つのノード上に
    常駐するシステムマネージャと、 該第2のサーバが該オブジェクトに対する新しい一次サ
    ーバとして機能するように再設定される前に、該オブジ
    ェクトに対する該アクティブな呼び出しを終了する終了
    メカニズムと、 該第1のサーバの故障が検出された時に該オブジェクト
    に対する新しい呼び出しを遮断し、該第2のサーバが再
    設定された後に該オブジェクトに対する該新しい呼び出
    しから障害を取り除く遮断メカニズムと、 該システムマネージャと通信し、該オブジェクトに対す
    る該新しい一次サーバとして機能するように該第2のサ
    ーバを再設定する再設定メカニズムと、 該第2のサーバと通信し、該第2のサーバが再設定され
    た後に該オブジェクトに対する不完全な呼び出しを自動
    的に再試行する再試行メカニズムと、 を含む、装置。
  27. 【請求項27】 前記終了メカニズムは、非応答ノード
    に対する呼び出しが障害を取り除き、完了させるように
    設定される、請求項26に記載の装置。
  28. 【請求項28】 前記システムマネージャは、前記ネッ
    トワーク上の複数ノードにわたって分散されることから
    該システムマネージャがノードの故障に耐性を有する、
    請求項26に記載の装置。
  29. 【請求項29】 前記システムマネージャが、前記第1
    のサーバが故障したことを該第1のサーバのクライアン
    トに知らせるように設定される、請求項26に記載の装
    置。
  30. 【請求項30】 前記システムマネージャが前記オブジ
    ェクトに対する前記新しい一次サーバとして機能するよ
    うに前記第2のサーバを選択する選択メカニズムを含
    む、請求項26に記載の装置。
  31. 【請求項31】 前記オブジェクトがオブジェクトのグ
    ループを含む、請求項26に記載の装置。
  32. 【請求項32】 前記オブジェクトに対する一次サーバ
    と通信し、該オブジェクトに対する少なくとも1つの二
    次サーバと通信する更新メカニズムであって、該更新メ
    カニズムは、該オブジェクトの一次コピーが該オブジェ
    クトに対する一次サーバで更新されたとき、該オブジェ
    クトの少なくとも1つの二次コピーが該オブジェクトに
    対する少なくとも1つの二次サーバ上で更新されること
    を確認する、請求項26に記載の装置。
  33. 【請求項33】 命令を格納するプログラム記憶装置で
    あって、コンピュータによって実行される時、オブジェ
    クトのアクティブな呼び出しに対して第1のサーバから
    第2のサーバへのトランスペアレントなフェイルオーバ
    ーを提供する方法を実施し、該第1のサーバが該オブジ
    ェクトに対する呼び出しのための一次サーバとして機能
    し、該方法が該第1のサーバが故障した際にオブジェク
    トに対する新しい一次サーバとして該第2のサーバを選
    択する工程と、 該第2のサーバを該オブジェクトに対する該新しい一次
    サーバとして機能するように再設定する工程と、 不完全である該アクティブな呼び出しを該第2のサーバ
    上の該オブジェクトに対して自動的に再試行する工程
    と、 を含む、プログラム記憶装置。
  34. 【請求項34】 コンピュータによって実行される時、
    命令を搬送する搬送波で具体化されるコンピュータ命令
    信号であって、オブジェクトのアクティブな呼び出しに
    対して第1のサーバから第2のサーバへのトランスペア
    レントなフェイルオーバーを提供する方法を実施し、該
    第1のサーバが該オブジェクトに対する呼び出しのため
    の一次サーバとして機能し、該方法が、 該第1のサーバが故障した際にオブジェクトに対する新
    しい一次サーバとして該第2のサーバを選択する工程
    と、 該第2のサーバを該オブジェクトに対する該新しい一次
    サーバとして機能するように再設定する工程と、 不完全である該アクティブな呼び出しを該第2のサーバ
    上の該オブジェクトに対して自動的に再試行する工程
    と、 を含む、コンピュータ命令信号。
JP11101887A 1998-04-09 1999-04-08 高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置 Pending JPH11328139A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/058.406 1998-04-09
US09/058,406 US6185695B1 (en) 1998-04-09 1998-04-09 Method and apparatus for transparent server failover for highly available objects

Publications (1)

Publication Number Publication Date
JPH11328139A true JPH11328139A (ja) 1999-11-30

Family

ID=22016622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11101887A Pending JPH11328139A (ja) 1998-04-09 1999-04-08 高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置

Country Status (5)

Country Link
US (1) US6185695B1 (ja)
EP (1) EP0950954B1 (ja)
JP (1) JPH11328139A (ja)
CA (1) CA2267444A1 (ja)
DE (1) DE69908017D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011253290A (ja) * 2010-06-01 2011-12-15 Nec Corp サーバ装置、サーバシステム及びサーバ装置の制御方法

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615383B1 (en) 1998-05-29 2003-09-02 Sun Microsystems, Inc. System and method for message transmission between network nodes connected by parallel links
DE19835216B4 (de) * 1998-08-05 2005-10-27 Systemonic Ag Prozessor und Verfahren zur parallelen Datenverarbeitung
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6370654B1 (en) * 1998-12-17 2002-04-09 Northern Telecom Limited Method and apparatus to extend the fault-tolerant abilities of a node into a network
US6523130B1 (en) * 1999-03-11 2003-02-18 Microsoft Corporation Storage system having error detection and recovery
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6516423B1 (en) * 1999-10-21 2003-02-04 Ericsson Inc. System and method for providing multiple queue redundancy in a distributed computing system
JP3761374B2 (ja) * 1999-11-11 2006-03-29 沖電気工業株式会社 自動取引システム
JP3833117B2 (ja) * 2000-01-31 2006-10-11 富士通株式会社 サーバ決定方法及び装置
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US20020198996A1 (en) * 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US6816980B1 (en) * 2000-09-15 2004-11-09 Zeronines Technology, Inc. Fault tolerant, state-compatible computer system and method
US6760861B2 (en) * 2000-09-29 2004-07-06 Zeronines Technology, Inc. System, method and apparatus for data processing and storage to provide continuous operations independent of device failure or disaster
US6854072B1 (en) * 2000-10-17 2005-02-08 Continuous Computing Corporation High availability file server for providing transparent access to all data before and after component failover
US20020056053A1 (en) * 2000-10-26 2002-05-09 Ben Vine System and method for handling web failures
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US6771623B2 (en) 2000-12-01 2004-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Method for ensuring reliable mobile IP service
US7069334B2 (en) 2000-12-27 2006-06-27 Intel Corporation Image restoration and reconfiguration support for crashed devices
US20030164853A1 (en) 2000-12-29 2003-09-04 Min Zhu Distributed document sharing
US6934875B2 (en) * 2000-12-29 2005-08-23 International Business Machines Corporation Connection cache for highly available TCP systems with fail over connections
US7130883B2 (en) 2000-12-29 2006-10-31 Webex Communications, Inc. Distributed network system architecture for collaborative computing
US6901448B2 (en) * 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
US7203755B2 (en) 2000-12-29 2007-04-10 Webex—Communications, Inc. System and method for application sharing in collaborative setting
US7069298B2 (en) 2000-12-29 2006-06-27 Webex Communications, Inc. Fault-tolerant distributed system for collaborative computing
US20030167418A1 (en) * 2000-12-29 2003-09-04 Min Zhu Fault-tolerant server for collaborative computing
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7353380B2 (en) * 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
WO2002065298A1 (en) * 2001-02-13 2002-08-22 Candera, Inc. Silicon-based storage virtualization server
US7203730B1 (en) 2001-02-13 2007-04-10 Network Appliance, Inc. Method and apparatus for identifying storage devices
US20020124204A1 (en) * 2001-03-02 2002-09-05 Ling-Zhong Liu Guarantee of context synchronization in a system configured with control redundancy
US20020133601A1 (en) * 2001-03-16 2002-09-19 Kennamer Walter J. Failover of servers over which data is partitioned
US20060162639A1 (en) * 2001-03-23 2006-07-27 Costello James M Touch tunnel
JP4426736B2 (ja) * 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
US7082478B2 (en) * 2001-05-02 2006-07-25 Microsoft Corporation Logical semantic compression
US7209968B1 (en) * 2001-05-29 2007-04-24 Agilent Technologies, Inc. System and method for recovering management of network element(s) responsive to failure of a distributed gateway
US6859887B2 (en) * 2001-05-31 2005-02-22 Hewlett-Packard Development Company, L.P. Method to invoke wide-area objects in distributed computer systems
US7310743B1 (en) 2001-06-12 2007-12-18 Emc Corporation Data recovery method and apparatus
US6742138B1 (en) 2001-06-12 2004-05-25 Emc Corporation Data recovery method and apparatus
US6944786B2 (en) * 2001-07-27 2005-09-13 International Business Machines Corporation Network node failover using multicast address or port
US6954817B2 (en) 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US6910158B2 (en) 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6944787B2 (en) 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US7099935B2 (en) 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6938031B1 (en) 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US7000016B1 (en) 2001-10-19 2006-02-14 Data Return Llc System and method for multi-site clustering in a network
US6944788B2 (en) * 2002-03-12 2005-09-13 Sun Microsystems, Inc. System and method for enabling failover for an application server cluster
US7392421B1 (en) * 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
US6963996B2 (en) * 2002-04-30 2005-11-08 Intel Corporation Session error recovery
US6892320B1 (en) * 2002-06-03 2005-05-10 Sun Microsystems, Inc. Method and apparatus for providing multiple-version support for highly available objects
US20040153709A1 (en) * 2002-07-03 2004-08-05 Burton-Krahn Noel Morgen Method and apparatus for providing transparent fault tolerance within an application server environment
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
FI119407B (fi) * 2002-08-28 2008-10-31 Sap Ag Korkean palvelutason ohjelmistopohjainen yhteyspalvelin
US7475124B2 (en) * 2002-09-25 2009-01-06 Emc Corporation Network block services for client access of network-attached data storage in an IP network
DE10253037B4 (de) * 2002-11-14 2007-07-12 Roland Schaad Verfahren zur funktionellen Aufrechterhaltung eines Datenverarbeitungsnetzwerkes nach Auftreten eines Hardware- und/oder Softwarefehlers
US7664991B1 (en) * 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
US7469282B2 (en) * 2003-01-21 2008-12-23 At&T Intellectual Property I, L.P. Method and system for provisioning and maintaining a circuit in a data network
US7266715B1 (en) * 2003-04-29 2007-09-04 Cisco Technology, Inc. Methods and apparatus for maintaining a virtual private network connection
US7228459B2 (en) * 2003-05-19 2007-06-05 Tellabs Petaluma, Inc. Apparatus and method that provides a primary server and a backup server that both support a RADIUS client and share an IP address
US7424721B2 (en) 2003-05-19 2008-09-09 Sun Microsystems, Inc. Inter-object communication interface bridge
US7194655B2 (en) * 2003-06-12 2007-03-20 International Business Machines Corporation Method and system for autonomously rebuilding a failed server and a computer system utilizing the same
US7467168B2 (en) * 2003-06-18 2008-12-16 International Business Machines Corporation Method for mirroring data at storage locations
US7496916B2 (en) * 2003-09-18 2009-02-24 International Business Machines Corporation Service and recovery using multi-flow redundant request processing
US7647379B2 (en) * 2003-12-19 2010-01-12 International Business Machines Corporation System and method for re-routing messaging traffic to external resources
US7639623B2 (en) * 2003-12-23 2009-12-29 At&T Intellectual Property I, L.P. Method and system for real time simultaneous monitoring of logical circuits in a data network
US7639606B2 (en) 2003-12-23 2009-12-29 At&T Intellectual Property I, L.P. Method and system for automatically rerouting logical circuit data in a virtual private network
US8199638B2 (en) 2003-12-23 2012-06-12 At&T Intellectual Property I, L.P. Method and system for automatically rerouting logical circuit data in a data network
US7350099B2 (en) * 2003-12-23 2008-03-25 At&T Bls Intellectual Property, Inc. Method and system for utilizing a logical failover circuit for rerouting data between data networks
US8203933B2 (en) 2003-12-23 2012-06-19 At&T Intellectual Property I, L.P. Method and system for automatically identifying a logical circuit failure in a data network
US7609623B2 (en) * 2003-12-23 2009-10-27 At&T Intellectual Property I, L.P. Method and system for automatically rerouting data from an overbalanced logical circuit in a data network
US8223632B2 (en) 2003-12-23 2012-07-17 At&T Intellectual Property I, L.P. Method and system for prioritized rerouting of logical circuit data in a data network
US7646707B2 (en) * 2003-12-23 2010-01-12 At&T Intellectual Property I, L.P. Method and system for automatically renaming logical circuit identifiers for rerouted logical circuits in a data network
US7630302B2 (en) * 2003-12-23 2009-12-08 At&T Intellectual Property I, L.P. Method and system for providing a failover circuit for rerouting logical circuit data in a data network
US7318075B2 (en) * 2004-02-06 2008-01-08 Microsoft Corporation Enhanced tabular data stream protocol
US7444536B1 (en) * 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US7275192B2 (en) * 2004-04-22 2007-09-25 At&T Bls Intellectual Property, Inc. Method and system for on demand selective rerouting of logical circuit data in a data network
US8339988B2 (en) * 2004-04-22 2012-12-25 At&T Intellectual Property I, L.P. Method and system for provisioning logical circuits for intermittent use in a data network
US7460468B2 (en) 2004-04-22 2008-12-02 At&T Intellectual Property I, L.P. Method and system for automatically tracking the rerouting of logical circuit data in a data network
US7768904B2 (en) * 2004-04-22 2010-08-03 At&T Intellectual Property I, L.P. Method and system for fail-safe renaming of logical circuit identifiers for rerouted logical circuits in a data network
US7466646B2 (en) 2004-04-22 2008-12-16 At&T Intellectual Property I, L.P. Method and system for automatically rerouting logical circuit data from a logical circuit failure to dedicated backup circuit in a data network
US7779086B1 (en) * 2004-05-04 2010-08-17 Oracle America, Inc. Methods and apparatus for performing a remote procedure call
US7523341B2 (en) * 2004-05-13 2009-04-21 International Business Machines Corporation Methods, apparatus and computer programs for recovery from failures in a computing environment
HK1066447A2 (zh) * 2004-09-14 2005-02-04 Multivision Intelligent Surveillance Hong Kong Ltd 用於數字監控系統的備份系統
US8327003B2 (en) * 2005-02-03 2012-12-04 International Business Machines Corporation Handling backend failover in an application server
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US20060235904A1 (en) * 2005-04-14 2006-10-19 Rajesh Kapur Method for preserving access to system in case of disaster
US8510449B1 (en) * 2005-04-29 2013-08-13 Netapp, Inc. Caching of data requests in session-based environment
WO2007018652A1 (en) * 2005-08-05 2007-02-15 Honeywell International, Inc. Distributed and recoverable digital control system
WO2007094808A1 (en) * 2005-08-05 2007-08-23 Honeywell International Inc. Monitoring system and methods for a distributed and recoverable digital control system
US8260492B2 (en) * 2005-08-05 2012-09-04 Honeywell International Inc. Method and system for redundancy management of distributed and recoverable digital control system
TW200721008A (en) * 2005-11-23 2007-06-01 Inventec Corp Method and system for switching between embedded operating systems of computer platform
US7797570B2 (en) * 2005-11-29 2010-09-14 Netapp, Inc. System and method for failover of iSCSI target portal groups in a cluster environment
CN1980232A (zh) * 2005-12-02 2007-06-13 国际商业机器公司 远程登录会话维护方法、远程登录代理和计算机网络系统
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US7613742B2 (en) * 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
US8295162B2 (en) 2006-05-16 2012-10-23 At&T Intellectual Property I, L.P. System and method to achieve sub-second routing performance
US7793147B2 (en) * 2006-07-18 2010-09-07 Honeywell International Inc. Methods and systems for providing reconfigurable and recoverable computing resources
US7685465B1 (en) * 2006-09-19 2010-03-23 United Services Automobile Association (Usaa) High-availability data center
US7747898B1 (en) * 2006-09-19 2010-06-29 United Services Automobile Association (Usaa) High-availability data center
US7600148B1 (en) * 2006-09-19 2009-10-06 United Services Automobile Association (Usaa) High-availability data center
US9112886B2 (en) * 2007-12-27 2015-08-18 Verizon Patent And Licensing Inc. Method and system for providing centralized data field encryption, and distributed storage and retrieval
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
US8204029B2 (en) * 2008-11-10 2012-06-19 Cisco Technology, Inc. Mobile intelligent roaming using multi-modal access point devices
JP5508798B2 (ja) * 2009-09-29 2014-06-04 株式会社日立製作所 クラスタを考慮してレプリケーションを管理する管理方法及びシステム
US20130268801A1 (en) * 2010-12-10 2013-10-10 Nec Corporation Server management apparatus, server management method, and program
US9235464B2 (en) 2012-10-16 2016-01-12 Microsoft Technology Licensing, Llc Smart error recovery for database applications
US9875120B2 (en) * 2013-06-24 2018-01-23 Microsoft Technology Licensing, Llc Virtualized components in computing systems
US20150304235A1 (en) * 2014-04-17 2015-10-22 Go Daddy Operating Company, LLC Allocating and accessing website resources via domain name routing rules
US10270735B2 (en) * 2014-10-10 2019-04-23 Microsoft Technology Licensing, Llc Distributed components in computing clusters
CN106407040B (zh) 2016-09-05 2019-05-24 华为技术有限公司 一种远程数据复制方法及系统
US11018860B2 (en) 2016-10-28 2021-05-25 Microsoft Technology Licensing, Llc Highly available and reliable secret distribution infrastructure
US20220038274A1 (en) * 2020-07-29 2022-02-03 Arris Enterprises Llc Prevention of unauthorized migration of wireless access points across service providers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69121973T2 (de) * 1990-05-30 1997-01-30 Fujitsu Ltd Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
DE69521101T2 (de) 1994-10-31 2001-10-18 Ibm Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
US5682534A (en) 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5819019A (en) * 1995-12-01 1998-10-06 Silicon Graphics, Inc. System/method for recovering network resources in a distributed environment, via registered callbacks
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US5852724A (en) * 1996-06-18 1998-12-22 Veritas Software Corp. System and method for "N" primary servers to fail over to "1" secondary server
US6718550B1 (en) 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
KR19980024086A (ko) * 1996-09-03 1998-07-06 니시무로 타이조 컴퓨터 시스템 및 화일 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011253290A (ja) * 2010-06-01 2011-12-15 Nec Corp サーバ装置、サーバシステム及びサーバ装置の制御方法

Also Published As

Publication number Publication date
CA2267444A1 (en) 1999-10-09
DE69908017D1 (de) 2003-06-26
US6185695B1 (en) 2001-02-06
EP0950954A1 (en) 1999-10-20
EP0950954B1 (en) 2003-05-21

Similar Documents

Publication Publication Date Title
JPH11328139A (ja) 高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置
US6145094A (en) Transaction locks for high availability
US6393459B1 (en) Multicomputer with distributed directory and operating system
KR100232247B1 (ko) 클러스터화된 다중처리 시스템 및 시스템내 디스크 액세스 경로의 고장 회복 방법
US7085826B2 (en) Method and system for dynamic addition and removal of multiple network names on a single server
US6718486B1 (en) Fault monitor for restarting failed instances of the fault monitor
US6671704B1 (en) Method and apparatus for handling failures of resource managers in a clustered environment
KR100811876B1 (ko) 분산 처리 시스템의 스마트 스터브 또는 엔터프라이즈java™ 빈
US8285669B2 (en) Subscription-based services
US7454422B2 (en) Optimization for transaction failover in a multi-node system environment where objects' mastership is based on access patterns
US6928457B2 (en) Duplicated naming service in a distributed processing system
US6622259B1 (en) Non-disruptive migration of coordinator services in a distributed computer system
US20040205414A1 (en) Fault-tolerance framework for an extendable computer architecture
JP2002529852A (ja) 安全分散処理システムにおけるクラスター化エンタープライズジャバ
JP2002529855A (ja) 分散処理システムにおけるメッセージパッシングカーネルを有するクラスター化エンタープライズジャバ
WO1999044119A2 (en) A method and apparatus for transporting behavior in an event-based distributed system
JP4885342B2 (ja) クラスタコンピュータシステムにおける高度に利用可能な非同期i/o
JP2000132530A (ja) マルチプロセッサコンピュ―タシステム及びその動作方法
Steketee et al. Implementation of process migration in amoeba
US20020073409A1 (en) Telecommunications platform with processor cluster and method of operation thereof
US6968390B1 (en) Method and system for enabling a network function in a context of one or all server names in a multiple server name environment
US6035419A (en) Logical execution sequence error recovery method and system
CN100563233C (zh) 一种公共对象请求代理结构应用中的容错性方法
US7769844B2 (en) Peer protocol status query in clustered computer system
Galdámez et al. High availability support in CORBA environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090204