JPH0962526A - 耐故障型rpcシステムおよび方法 - Google Patents

耐故障型rpcシステムおよび方法

Info

Publication number
JPH0962526A
JPH0962526A JP7218391A JP21839195A JPH0962526A JP H0962526 A JPH0962526 A JP H0962526A JP 7218391 A JP7218391 A JP 7218391A JP 21839195 A JP21839195 A JP 21839195A JP H0962526 A JPH0962526 A JP H0962526A
Authority
JP
Japan
Prior art keywords
message
fault
tolerant
relay
redundant
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.)
Withdrawn
Application number
JP7218391A
Other languages
English (en)
Inventor
Yuji Imai
祐二 今井
Yoshinobu Ito
栄信 伊藤
Masahiro Komura
昌弘 小村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7218391A priority Critical patent/JPH0962526A/ja
Priority to GB9617654A priority patent/GB2305087B/en
Priority to GB0003748A priority patent/GB2344035B/en
Priority to US08/703,059 priority patent/US5802298A/en
Publication of JPH0962526A publication Critical patent/JPH0962526A/ja
Withdrawn 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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Abstract

(57)【要約】 【課題】 高可用性計算機システムにおいて部分的な故
障が発生した場合に、容易に要求メッセージの再送を行
い、正しい返信メッセージを返送することが課題であ
る。 【解決手段】 クライアント21はライブラリであるP
ALIB23を呼び出し、RPC要求の本送と再送に同
一の識別情報を付加して、サーバ31に送信する。現用
サーバは、受信したRPC要求の識別情報を故障時にも
破壊されないステーブル・エリア35に保存し、要求さ
れたサービスを実行する。現用サーバが故障すると待機
サーバが処理を引き継ぎ、PALIB37が、クライア
ント21から再送されたRPC要求の識別情報をステー
ブル・エリア35内のそれと比較して、冗長な再送(冗
送)であることを検出する。そこで、待機サーバは冗送
検出時の返信処理を行って、正しい結果をクライアント
21に返す。また、中継サーバがクライアント21とサ
ーバ31との間の通信を中継する場合は、中継サーバの
故障に備えて、中継する要求メッセージの識別情報を保
存しておく。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウェアまた
はソフトウェアの部分故障発生時に、実行中の処理を待
機系において継続する高可用性計算機システムに関す
る。
【0002】
【従来の技術】近年、全体の処理を機能により分割し、
複数のプロセスにより実現する手法が用いられるように
なった。分割したプロセスを互いに故障の影響を受けな
いプロセッサ上に配置し、それぞれに故障時にバックア
ップ機能を持つプロセスを置くことで、システムの部分
故障が全体のサービスを停止させないようなシステムを
構成することができる。
【0003】機能分割された各プロセスは、プロセス間
通信を用いてサービスの要求と結果の返送を行なう。プ
ロセス間通信を行なうためには、送り元プロセスは通信
の単位となるメッセージをどのプロセスに送るかを指定
する。このとき、送り先プロセスを指定するために識別
子を用いる。1つの識別子が表現する宛先には次の2通
りの意味がある。 (A)1つのプロセス(ポート)を表す。 (B)複数のプロセス(ポートグループ)を表す。
【0004】ポートを宛先として発信した場合、メッセ
ージはそのポートを持つプロセスによって受信される。
ポートグループを宛先にして発信した場合、メッセージ
はそのポートグループに属するプロセスのうちの1つに
送られる。ポートグループに属するポートのうちどのポ
ートにメッセージが到着するかは、プロセス間通信の機
構により決定される。
【0005】従来の耐故障型RPC(remote procedure
call :遠隔手続き呼出し)機構では、複数プロセスを
用いた高可用性計算機システムを実現するために、仕掛
り中メッセージの自動再送機構および手動再送機構を用
いて、発信プロセスが故障時の対応をしなくてもよいよ
うにする技術がある。この自動/手動再送機構を使うこ
とにより、フォールト・トレラント(FT)化された処
理系がRPCを実行中に故障した場合でも、故障時に仕
掛り中であったRPC要求を再送信することでサービス
を継続することが可能となる。
【0006】また、近年、全体の処理を複数の処理系に
分散させ、各処理系間を通信によって接続することによ
り、システム全体の処理を行なう手法が用いられるよう
になってきた。このような分散システムにおいて、同じ
サービスを行なう処理系を複数用意することによって、
耐故障性を向上させるシステムが提案されている。この
とき、ある処理系が動作不能になった場合、その現用系
の処理を、正常にかつ故障前との整合性を保持しつつ、
予備の処理系に再開させるための手続きが必要となる。
【0007】特に、ハードウェアおよびソフトウェアに
よる通信における遠隔処理を、複数の処理系を中継する
ことにより行う場合においては、中継処理系の故障発生
時における通信再送時の整合性をいかにして保証するか
が問題となる。分散化された処理系において、処理系A
から処理系Bへサービス要求を送り、処理の一部を処理
系Bが処理系Cへ中継し、処理系Cがサービスを行うこ
とがある。この場合、処理系Bを中継処理系と呼ぶ。
【0008】今、処理系Aからのサービス要求が処理系
Bを経由した後、処理系Cで受信され、処理系Cで特定
の処理が行なわれたとする。処理系Cへの送信が行われ
た後に中継処理系Bが故障した場合、処理系Bの代替処
理系B′が用意された後、処理系Aは通信機構の再送機
能により、サービスの再要求を行う。代替処理系B′が
再送されたサービス要求を中継し、再び処理系Cがサー
ビスを再開する。処理系Aのようにサービス要求を発信
する処理系はクライアントと呼ばれ、処理系Cのように
サービスを提供する処理系はサーバと呼ばれる。また、
処理系B、B′のようにサービスを中継する処理系は中
継サーバと呼ばれる。 クライアントからのRPCによ
るサービス要求に対し、サーバがそのサービスを実行し
たとき、そのサービスの終了後にサーバがサービス開始
前に戻れない状態に遷移するような場合がある。このよ
うな場合、そのRPCをノンアイデンポテント(non-id
empotent)なRPCと呼ぶことにする。ノンアイデンポ
テントなRPCの場合、クライアントが同じメッセージ
を再送信しサーバが再実行を行っても、同じ結果を得ら
れなかったり正しくない副作用を引き起こしたりする。
【0009】ノンアイデンポテントな処理の例として
は、ファイルやディレクトリの削除がある。1回目の削
除要求が送信された後サーバ側で実行され、クライアン
トに結果が返りつつある時に故障が起こったとする。こ
こで、削除要求が再送され、単純に再実行が行われる
と、サーバは存在しないファイルやディレクトリを消去
しようとしているものと判断し、クライアントにエラー
メッセージを返してしまう。このようなノンアイデンポ
テントな処理を要求するRPCの再送において、既にサ
ーバで実行されているにもかかわらず、冗長に発生する
RPCの再送を冗送と呼ぶ。
【0010】サーバ・クライアント型の処理系におい
て、サーバがノンアイデンポテントなRPC処理を行な
っている時に、あるトランザクションが何らかの原因で
再送された場合は、それを検出し、前回の処理結果を返
送しなければ正しい結果を返しているとは言えない。こ
れらを検出し、再送時にも正しい結果を返す機構が冗送
検出機構であり、その実現方法は各種存在する。簡単な
ものには、冗送検出する処理系がノンアイデンポテント
な処理のトランザクションとその結果を覚えておき、同
じトランザクションが要求された場合に、覚えていた結
果を返すという方法がある。
【0011】
【発明が解決しようとする課題】しかしながら、従来の
耐故障型RPC機構には次のような問題がある。従来の
再送機構では、上述のようなノンアイデンポテントな処
理に自動的に対応する支援機構がなく、クライアントと
サーバ双方の処理プログラムに冗送検出用の処理コード
をあらかじめ付加する作業が必要となる。したがって、
冗送に対応するためには、プログラマの負担が増大する
という問題がある。
【0012】また、複数の処理系が通信によってシステ
ムを構成している場合に、通信機構によって通信の故障
を隠蔽するためには、中継処理系は故障復帰時にそれま
で受信した通信と送信した通信の一貫性の保証を行なわ
なければならない。
【0013】例えば、今、処理系Aから処理系Bを中継
して処理系Cにサービスを要求し、処理系Bが処理系C
に中継した後に処理系Bが故障したとする。この時点
で、処理系Aはサービスの要求を出した状態であり、処
理系Cは処理系Bの故障とは独立に処理を継続する。代
替処理系B′がこの一連の通信を再開するには通信機構
が処理系Aからのサービスの再要求と、それを受けた中
継処理系B′が処理系Cに対してこのサービスの再要求
を中継する必要がある。
【0014】ここで、処理系Cはある故障隠蔽機構を持
っている。それは、ノンアイデンポテントなサービスを
実行した場合には、その処理自身は再処理要求時には実
行せず、結果のみを返すという冗送検出機構である。こ
の処理系Cにおける冗送検出機構を動作させるために
は、前回と等しい要求を再処理要求通信時に処理系B′
が処理系Cに出さなければならないが、要求の等価性を
保証する一貫した技術は確立されていない。
【0015】本発明は、高可用性計算機システムにおい
て部分的な故障が発生した場合に、容易に要求メッセー
ジの再送を行い、正しい返信メッセージを返送する耐故
障型RPCシステムおよびその方法を提供することを目
的とする。
【0016】
【課題を解決するための手段】図1は、本発明の耐故障
型通信システムの原理図である。図1の耐故障型通信シ
ステムは、サービスを要求する第1のプロセスがサービ
スを提供する第2のプロセスに通信を介して依頼した処
理の結果を、該第2のプロセスから第1のプロセスに返
送するシステムである。この耐故障型通信システムは、
ポート管理手段1、識別子付加手段2、送信手段3、検
出手段4、返信手段5、第1の記憶手段6、中継手段
7、および第2の記憶手段8を備える。
【0017】ポート管理手段1は、要求メッセージを発
信するプロセスの集合に対して設けられた集合ポートの
集合ポート識別子と、その集合内の各プロセスのポート
のポート識別子との対応関係を管理する。
【0018】識別子付加手段2は、上記要求メッセージ
の最初の送信と再送信とに、同一の集合ポート識別子を
含む識別情報を自動的に付加する。送信手段3は、上記
識別情報を付加された要求メッセージを、第1のプロセ
スから第2のプロセスへ送信する。
【0019】検出手段4は、上記要求メッセージを受信
し、その要求メッセージに付加された識別情報を調べ
て、その要求メッセージが冗長な再送かどうかを自動的
に検出する。
【0020】返信手段5は、検出手段4が冗長な再送を
検出した時、冗送処理を行って、第2のプロセスが実行
した処理の結果を第1のプロセスに返信する。第1の記
憶手段6は、検出手段4が受信した第1の要求メッセー
ジの識別情報を登録した冗送処理テーブルを記憶し、前
記第1または第2のプロセスの故障時にもその記憶内容
は失われない。
【0021】検出手段4は、上記第1の要求メッセージ
の後に受信した第2の要求メッセージの識別情報が上記
冗送処理テーブルに登録された識別情報と一致した時、
第2の要求メッセージが冗長な再送であると判定する。
【0022】中継手段7は、前記第1のプロセスからの
要求メッセージを中継して、前記第2のプロセスへ中継
メッセージを送信する第1の中継プロセスと、第1の中
継プロセスの故障時に処理を引き継ぐ第2の中継プロセ
スとを有する。
【0023】第2の記憶手段8は、上記要求メッセージ
の識別情報と上記中継メッセージの識別情報との対応関
係を記憶し、第1の中継プロセスの故障時にもその記憶
内容は失われない。
【0024】第2の中継プロセスは、第1の中継プロセ
スの故障時に、第2の記憶手段8が記憶する情報を参照
して中継中の処理を引き継ぎ、故障時に中継中であった
中継メッセージを第2のプロセスに再送する。そして、
第1のプロセスから要求メッセージが再送された時、再
送した中継メッセージに対する第2のプロセスからの返
信メッセージに基づいて、第1のプロセスに返信する。
【0025】第1、第2のプロセスは、例えば、それぞ
れクライアント、サーバに対応する。また、図1のポー
ト管理手段1は、実施形態における図2のポートエイリ
アス・マネジャー12に対応し、識別子付加手段2は図
5、6、7のPALIB23、43、46に対応し、送
信手段3は図19の通信部81に対応する。検出手段4
および返信手段5は図5、6、7のPALIB33、3
7、53に対応し、第1の記憶手段6はステーブル・エ
リア35、56に対応する。中継手段7が有する第1、
第2の中継プロセスは、それぞれ図14の中継サーバ6
1、62に対応し、第2の記憶手段8はステーブル・エ
リア63に対応する。 ポート管理手段1が、発信元プ
ロセスの集合に対して設けられた通信ポートである集合
ポートの集合ポート識別子を、その集合に属する各プロ
セスのポートのポート識別子と対応させて保持する。こ
のような集合ポートをポートエイリアスと呼ぶことにす
る。識別子付加手段2は、最初に送る要求メッセージ
と、再実行のために再送する要求メッセージとに、同一
のポートエイリアス識別子を識別情報として付加する。
【0026】検出手段4は、第1の記憶手段6内の冗送
処理テーブルを参照して、最初の要求メッセージと再送
された要求メッセージの識別情報を比較し、それらが一
致したときに、再送メッセージが冗送である可能性があ
ると判断する。このとき、第2のプロセスが既にサービ
スを実行していて、再送メッセージが冗送であることが
確定すると、返信手段5は冗送処理を行って、サービス
の実行結果を第1のプロセスに返信する。
【0027】冗送処理テーブルの内容は、第1または第
2のプロセスの故障時にも破壊されないので、検出手段
4は常に冗送を正しく検出することができる。したがっ
て、第2のプロセスがノンアイデンポテントな処理を行
う場合でも、要求メッセージの冗送に対応して正しい結
果が返信される。
【0028】また、第2の中継プロセスは、第1の中継
プロセスの故障時に、第2の記憶手段8が記憶する要求
メッセージと中継メッセージの対応関係を参照して、中
継中の処理を正しく引き継ぐことができる。これによ
り、中継プロセスの故障発生時における現用系から待機
系への引き継ぎ処理時において、処理の整合性が確保さ
れる。
【0029】第2の中継プロセスは、引き継いだ処理の
中継メッセージを第2のプロセスに再送し、それに対す
る返信メッセージを第1のプロセスに転送する。こうし
て、第1のプロセスは正しい処理結果を受け取ることが
できる。
【0030】このように、通信時に中継を行なう処理系
において一連の通信関係の情報を保存し、故障発生時の
再処理要求に対しては、保存された情報を代替処理系で
用いる。これにより、一連の通信による処理の整合性を
確保することが可能となり、経路故障の隠蕨を実現する
ことができる。また、サービスの作成者は、このような
中継機能を用いることにより、中継時に起こる故障から
整合性を保ちつつ、回復することが可能となる。
【0031】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を詳細に説明する。図2は、本発明の耐故
障型RPCシステムにおける故障管理機構を示してい
る。図2において、クライアント14(要求発信プロセ
ス)にサービスを提供するプロセスの集合へのポート
を、ポートエイリアス(Port Alias)と呼ぶ。ここで
は、ポートエイリアス15は、プライマリ・サーバ(Pr
imary Server)16のポートおよびバックアップ・サー
バ(Back up Server)17のポートに通じている。
【0032】要求発信プロセスは、プロセス問通信の宛
先としてポートエイリアスを表す識別子をプロセス間通
信機構に与える。プロセス間通信機構は、ポートエイリ
アスに登録されている複数のポートのうち、現在サービ
スを提供しているプロセスのポートを選択し、メッセー
ジをそのポートに配送する。
【0033】複数プロセスによる高可用計算機システム
は、プロセスの配置、切替え等を管理する故障管理機構
を持つ。図2では、フォールト・トレラント・マネジャ
ー(Fault Tolerant Manager:FTM)11が故障管理
機構の役割を果たす。FTM11は、その部分機構とし
てポートエイリアス管理機構(Port Alias Manager:P
AM)12を持つ。FTM11は、システム全体におけ
るプロセスの生成、消滅、および各プロセスがどのよう
なサービスを行なっているかの情報を、管理テーブルと
して保持している。
【0034】また、PAM12は、システム全体で存在
する全てのポートエイリアスのテーブル(ポートエイリ
アス・テーブル、Port Alias Table)13を持ってい
る。ポートエイリアス・テーブル13には、各ポートエ
イリアスに属するポートとそのポートを持つプロセスが
登録され、そのうち現在サービスを行なっているプロセ
スのポートにサービス中のマークが付加されている。
【0035】サービスを提供する側では、最初のプロセ
スであるプライマリ・サーバ16が生成された時にポー
トエイリアス識別子を1つ作成し、自分自身のポートを
ポートエイリアス15に属させることをPAM12に通
知する。この通知を受けて、PAM12はポートエイリ
アス・テーブル13にポートエイリアス15の情報を登
録する。プライマリ・サーバ16の待機プロセスである
バックアップ・サーバ17は、ポートエイリアス15の
識別子をFTM11に問い合わせ、自分のポートをポー
トエイリアス15に属させることをPAM12に通知す
る。こうして、バックアップ・サーバ17のポートがプ
ライマリ・サーバ16のポートと同じポートエイリアス
15に登録される。
【0036】クライアント14は、プロセス間通信機構
を呼び出し、宛先にポートエイリアス識別子を付加して
メッセージを送信するように要求する。プロセス間通信
機構は、ポートエイリアスに登録されているポートの中
で現在サービスを提供しているものを選択して、そのポ
ートにサービスを要求するメッセージを送信する。
【0037】故障発生時には、FTM11はプロセスの
生成/消滅を検知し、故障したプロセスがどれであるか
をPAM12に知らせる。PAM12は、故障したプロ
セスが登録したポートを、ポートエイリアス・テーブル
13内の対応するポートエイリアスから削除する。新し
く待機プロセスが起動されると、PAM12に対して自
分のポート識別子とポートエイリアス識別子を含む登録
要求を送る。PAM12は、ポートエイリアス・テーブ
ル13に待機プロセスを登録する。
【0038】図2では、プライマリ・サーバ16が故障
した時にバックアップ・サーバ17が代わりに起動さ
れ、バックアップ・サーバ17がポートエイリアス・テ
ーブル13に登録される。
【0039】このように構成することで、サービスを要
求するプロセスからポートエイリアスヘ送信されたメッ
セージは、自動的にサービスを提供しているプロセスに
到着する。また、サービスを提供するポートを問い合わ
せる代わりに、ポートエイリアスを問い合わせること
で、故障が起こった後も同じ識別子を用いて、サービス
を提供するプロセスとの通信を継続することができる。
ポートエイリアスは、現在サービスを提供しているプロ
セスへRPCを要求する際用いる仮想的な宛先であり、
故障時の引き継ぎによって変化しない。
【0040】また、ポートエイリアスはサービスを要求
するプロセスに対しても同様に定義することができる。
この場合、ポートエイリアスは複数の要求発信プロセス
の集合のポートを表し、RPCを要求する際用いる仮想
的な発信元となる。この仮想的な発信元もまた、PAM
12によりポートエイリアス・テーブル13を用いて管
理され、故障時の引き継ぎによって変化しない。
【0041】図3は、通信機構としてポートとポートグ
ループしか持たないシステムの上で、プロセスにリンク
されるライブラリを用いて、仮想的にプロセス間通信を
実施する例を示している。図3において、図2と同じ要
素には同じ符号が付加されている。FTM11は、一般
に各クライアントやサーバ等のプロセスが配置される計
算機毎に設けられ、システムを構成する計算機の数だけ
存在する。したがって、PAM12もまた同数存在する
ことになる。これらの計算機はネットワークにより接続
される。
【0042】PAM12は、上述のポートエイリアス・
テーブル13を持っている。クライアント14のライブ
ラリ(LIBRARY )18は、クライアント14からポート
エイリアス15へのメッセージ発信を指示されると、P
AM12に対してポートグループを用いてポートエイリ
アス・テーブル13に関する問い合わせを行なう。仮
に、ライブラリ18が、ポートグループを介してネット
ワーク上の複数のPAMのいずれかにポートを問い合わ
せたとしても、全てのPAMがシステム全体のポートエ
イリアスの情報を持っているので、どのPAMでも答え
ることができる。
【0043】PAM12は、ポートエイリアス・テーブ
ル13を用いてポートエイリアス15に属するポートの
うち現在使用されているものを検索し、それをライブラ
リ18に返す。ライブラリ18は、PAM12から通知
されたポートに対してプロセス間通信機構を用いてメッ
セージを送る。
【0044】同じポートエイリアスへ2回目以降メッセ
ージの送信を行なう場合に備えて、ライブラリ18は、
宛先ポートのヒントを覚えておくことができる。もし、
ヒントが既に存在する場合には、PAM12への問い合
わせを省略して、そのポートへメッセージを送る。しか
し、送り先ポートのプロセスが消滅していると、メッセ
ージの送信が失敗する。その場合は、PAMに対して問
い合わせを再度行ない、新しくサービスを行なうことに
なったポートへメッセージを送り直す。
【0045】図4は、ポートエイリアス・テーブル13
の例を示している。図4のテーブルには、ポートエイリ
アス識別子、登録ポートの識別子、および登録プロセス
の識別子に加えて、サービス中のプロセスを指すマーク
が格納されている。
【0046】図5は、耐故障型RPC支援機構における
冗送検出機構を示している。図5において、クライアン
ト21は、メインルーチンを記述するSSC(server s
pecific code)22と、SSCから呼び出されるライブ
ラリであるPALIB23とからなり、ポート24とポ
ートエイリアス25を有する。また、ノンアイデンポテ
ント・サーバ31は、耐故障性を実現するために、現用
サーバおよび同じ機能をもつ予備の待機サーバを持ち、
これらに共通のポートであるポートエイリアス39を備
える。現用サーバと待機サーバは、互いに情報を引き継
ぐために、故障時にも破懐されない記憶領域であるステ
ーブル・エリア(stable area :SA)35を共有して
いる。現用サーバの故障時には、待機サーバがSA35
から情報を得ることにより、復帰処理における整合性を
保つことができる。
【0047】現用サーバは、SSC32と、SSCから
呼び出されるライブラリであるPALIB33とからな
り、ポートエイリアス39に属するポート34を有す
る。また、待機サーバは、SSC36とPALIB37
とからなり、ポートエイリアス39に属するポート38
を有する。
【0048】クライアント側のPALIB23とサーバ
側のPALIB33、37とが連携して、プロセス間の
通信機構および冗送検出機構としての役割を果たし、以
下のようにしてメッセージの冗送を検出する。以下の記
述において、ポートエイリアスが行う処理は、そのポー
トエイリアスを有するクライアントまたはサーバが行う
処理を表す。
【0049】まず、クライアント21側の通信機構であ
るPALIB23が、すべてのRPCメッセージに対し
てRPC要求の一意性を確保する識別子(ID)を付加
し、メッセージと同送する。この一意性を確保するID
としては、{srcAlias, srcPort,transId }の組み合
わせ、または、{srcAlias,incarnation ,transId}
の組み合わせを用いる。RPCメッセージに付加された
IDはサーバ31のSA35に保持され、受信メッセー
ジの識別に利用される。
【0050】srcAliasは、発信元のポートエイリアスを
特定する識別子で、メッセージの本送と再送では同じ値
になる。 srcPortは、本送時の発信元プロセスのポート
の識別子である。incarnation は、本送時の現用系プロ
セスのインカーネンション番号である。インカーネンシ
ョン番号とは、現用系プロセスから待機系プロッスへ引
き継ぎが起こる度に異なる値を取る世代番号で、FTM
11により管理される。transId は、FTトランザクシ
ョンの一意性を確保するためのIDで、本送と再送では
同じ値が用いられる。このtransId としては、サイト
(site)毎に一意となる番号を用いてもよく、ポートエ
イリアス毎に一意となる番号を用いてもよく、またプロ
セス毎に一意となる番号を用いてもよい。
【0051】耐故障RPC支援機構のサーバ31の利用
者は、現在処理中のRPCの冗送メッセージが送られて
きた時に、ポートエイリアス39に対して希望する動作
を指定する。例えば、クライアント21へ自動的に返送
して欲しいメッセージの内容を、ポートエイリアス39
に指定する。ポートエイリアス39はそれを記憶してお
き、後述の冗送検出処理で利用する。あるいはまた、冗
送処理用の関数である冗送ハンドラを呼び出してくれる
ように、ポートエイリアス39に指定することもでき
る。このとき、ポートエイリアス39は、冗送ハンドラ
を呼び出す際に渡す起動用のパラメータを記憶してお
く。ポートエイリアス39は、この指定に応じて冗送検
出処理で冗送ハンドラを呼び出す。
【0052】ここで、冗送検出処理について説明する。
ノンアイデンポテントな処理において、現用サーバは、
RPCの処理中にロールバック不可能な状態に変化する
前に、冗送に関する処理が行なわれる可能性があること
をPALIB33に知らせる。これをロールフォワード
ポイントの通知と呼ぶ。ロールフォワードポイントと
は、SSC32のメインルーチン中の特定のポイント
で、それを越えて処理が進むと元の状態に復帰できなく
なるようなポイントを指す。この通知を受けてPALI
B33は、SA35内またはPALIB33、37が管
理する他のメモリ領域内の冗送処理テーブルに、冗送検
出用の情報(メッセージのID等)とともにロールフォ
ワードポイント通知済みであることを登録する。
【0053】ロールフォワードポイント通知より前に現
用サーバが故障した場合、再送機構によって起こるメッ
セージの再送は冗送には該当しない。したがって、新現
用サーバでは、RPC要求に対して単に再実行を行うこ
とで、正しく処理が継続される。しかし、ロールフォワ
ードポイント通知以降でクライアント21にRPCの応
答が帰るまでの間に、クライアント21もしくはサーバ
31に故障が起こった場合、再送機構による再送は冗送
となる。
【0054】SSC32は、冗送検出時に行なう処理の
内容が確定した時点で、PALIB33に冗送処理の指
定を行なう。現用サーバ、待機サーバのプロセスにリン
クされたPALIB33、37は、RPCメッセージを
受信する毎に冗送処理テーブルのロールフォワードポイ
ント通知情報と比較を行い、受信メッセージが冗送であ
るかどうかをチェックする。冗送が検出されると、プロ
セスによってメッセージに対して登録されていた冗送処
理を起動する。
【0055】ここでは、SSC32のメインルーチンの
ロールフォワードポイントを越えて処理が進んだ後に現
用サーバが故障し、処理は待機サーバに引き継がれる。
待機サーバは、SA35の冗送処理テーブルを参照して
冗送を検出し、あらかじめ登録された冗送処理ルーチン
を呼び出して、クライアント21に返信する。
【0056】冗送が検出された時に行われる冗送処理と
しては、例えば次の2種類が設定できる。1つは自動結
果返送(AUTO REPLY)で、ポートエイリアス
39は、あらかじめサーバ31が登録しておいた返信メ
ッセージを自動的にクライアント21に返す。SSC3
2は、冗送に対する処理の登録時に、PALIB33を
介して返信メッセージを同時に登録しておく。PALI
B33は、冗送処理テーブルの該当メッセージの項目
を、ロールフォワードポイント通知済みから自動結果返
送登録済みに変化させ、同時に返信メッセージを登録す
る。冗送検出時には、登録されたメッセージが自動的に
クライアント21に返信される。
【0057】もう1つは冗送ハンドラ(redundant mess
age handler )を用いる処理である。この場合は、冗送
を検出した時に呼び出す関数である冗送ハンドラをメッ
セージ毎に設定し、ポートエイリアス39が冗送を検出
すると、登録された冗送ハンドラを呼び出す。SSC3
2は、冗送に対する処理の登録時に、PALIB33を
介して冗送ハンドラの呼び出し処理を登録する。PAL
IB33は、冗送処理テーブルの該当メッセージの項目
を、ロールフォワードポイント通知済みから冗送ハンド
ラ登録済みに変化させ、同時に冗送ハンドラヘ渡す引数
を登録する。冗送検出時には、登録された冗送ハンドラ
が引数を伴って呼び出される。呼び出された冗送ハンド
ラは、既に実行されたRPC処理の結果を再度計算し、
クライアント21に対して返信を行なうことを求められ
る。
【0058】このように構成することで、ノンアイデン
ポテントな処理を行うサーバであっても、容易に冗送に
対応することができ、処理のアイデンポテント(idempo
tent)性を確保することができる。
【0059】図6は、図5の現用サーバがロールフォワ
ードポイント通過後に故障した時のRPC要求の自動再
送および冗送検出の例を示している。図6においては、
クライアント21のPALIB23は、メッセージにI
Dとして{srcAlias, srcPort,transId }を付加し、
サーバ31のポートエイリアス39に送信する。ここ
で、srcAlias、 srcPortは、それぞれポートエイリアス
25、ポート24の識別子を表す。このとき、現用サー
バは、受信したメッセージのIDをSA35の冗送処理
テーブルに登録しておく。
【0060】冗送処理が自動結果返送処理の場合の耐故
障RPC支援機構の動作は、次の通りである。 (1)現用サーバは、ロールフォワードポイント通知を
行い、冗送の可能性が確定した時点で、冗送検出時に返
す自動返信メッセージを冗送処理テーブルに登録する。 (2)現用サーバ故障の後、ポートエイリアス25がサ
ーバ故障を検出し、要求メッセージの自動再送を行う。 (3)現用サーバの処理を引き継いだ待機サーバ(新現
用サーバ)のPALIB37は、自動再送された要求メ
ッセージの{srcAlias, srcPort,transId }を、SA
35に格納されたものと比較して、その要求メッセージ
が冗送であることを知る。 (4)ポートエイリアス39は、故障したサーバ(旧現
用サーバ)が先ほど登録しておいた返信メッセージを、
自動的にクライアント21に返す。
【0061】冗送処理が冗送ハンドラ処理の場合の耐故
障RPC支援機構の動作は、次の通りである。 (1)ロールフォワードポイントにおいて、現用サーバ
は、複数の関数からなる冗送ハンドラ配列の中で、起動
したい関数と起動時に関数に渡す引数を登録する。 (2)現用サーバ故障の後、ポートエイリアス25がサ
ーバ故障を検出し、要求メッセージの自動再送を行う。 (3)新現用サーバのPALIB37は、自動再送され
た要求メッセージの{srcAlias, srcPort,transId }
を、SA35に格納されたものと比較して、その要求メ
ッセージが冗送であることを知る。 (4)ポートエイリアス39は、(旧現用サーバ)が先
ほど登録しておいた冗送ハンドラを呼び出す。 (5)新現用サーバ内の冗送ハンドラは、旧現用サーバ
の処理結果を伝えるメッセージの再計算を行い、返信メ
ッセージとしてクライアント21に返送する。
【0062】以上はサーバ故障時の冗送処理の例である
が、クライアント故障時にも冗送が検出される場合があ
る。図7は、サーバがロールフォワードポイント通過後
にクライアントが故障した時の、RPC要求の手動再送
および冗送検出の例を示している。
【0063】図7において、クライアント41は、耐故
障性を実現するために、現用クライアントおよび同じ機
能をもつ予備の待機クライアントを持ち、これらに共通
のポートであるポートエイリアス48を備える。現用ク
ライアントは、SSC42と、SSCから呼び出される
ライブラリであるPALIB43とからなり、ポートエ
イリアス48に属するポート44を有する。また、待機
クライアントは、SSC45とPALIB46とからな
り、ポートエイリアス48に属するポート47を有す
る。また、ノンアイデンポテント・サーバ51は、SS
C52とPALIB53とからなり、ステーブル・エリ
ア(SA)56、ポート54、およびポートエイリアス
55を有する。
【0064】現用クライアントのPALIB43は、メ
ッセージにIDとして{srcAlias,srcPort,transId
}または{srcAlias,incarnation ,transId }を付
加し、サーバ51に送信する。ここで、srcAlias、 src
Portは、それぞれポートエイリアス48、ポート44の
識別子を表す。このとき、サーバ51は、受信したメッ
セージのIDをSA56の冗送処理テーブルに登録して
おく。
【0065】発信元ポートの識別子( srcPort)をメッ
セージと同送する場合の耐故障RPC支援機構の動作
は、次の通りである。 (1)現用クライアント故障の後、待機クライアントが
新現用クライアントとなって、要求メッセージの手動再
送を行なう。この時、再送メッセージと同送される src
Portは、故障した旧現用クライアントによる本送時の s
rcPortと同じにしておく。 (2)サーバ51のPALIB53は、再送された要求
メッセージの{srcAlias, srcPort,transId }を、S
A56に格納されたものと比較して、その要求メッセー
ジが冗送であることを知る。 (3)ポートエイリアス55は、上述の自動結果返送ま
たは冗送ハンドラ呼び出しの冗送処理を行って、返信メ
ッセージをクライアント41のポートエイリアス48に
返送する。 メッセージのインカーネーション番号(in
carnation )をメッセージと同送する場合の耐故障RP
C支援機構の動作は、次の通りである。 (1)現用クライアント故障の後、待機クライアントが
新現用クライアントとなって、要求メッセージの手動再
送を行なう。この時、再送メッセージと同送されるinca
rnation は、故障した旧現用クライアントによる本送時
のincarnation と同じにしておく。 (2)サーバ51のPALIB53は、再送された要求
メッセージの{srcAlias,incarnation ,transId }
を、SA56に格納されたものと比較して、その要求メ
ッセージが冗送であることを知る。 (3)ポートエイリアス55は、上述の自動結果返送ま
たは冗送ハンドラ呼び出しの冗送処理を行って、返信メ
ッセージをクライアント41のポートエイリアス48に
返送する。 次に、図8から図13までを参照しなが
ら、PALIBの処理についてより詳細に説明する。
【0066】図8は、クライアントが要求メッセージを
送信する時に、そのメインルーチンから呼び出されるP
ALIBの処理のフローチャートである。図8において
処理が開始されると、PALIBは要求メッセージに識
別子を付加し(ステップS1)、RPC要求の関数を用
いて要求メッセージをサーバに送信して(ステップS
2)、処理を終了する。
【0067】図9は、このようなクライアント側のPA
LIBの疑似コードを示している。図9において、PA_
Callは、発信元アドレス、送信先アドレス、および送信
するメッセージ(message )を引数として呼び出され、
トランザクションカウンタの値を message_IDにセット
した後、トランザクションカウンタをインクリメントす
る。次に、送信メッセージに srcPortと message_IDを
添付し、ipcCallを用いてそれを送信する。ここで、 me
ssage_IDは、上述のtransId として用いられている。
【0068】図10は、サーバ側のSSCによるメッセ
ージ受信処理の疑似コードを示している。図10におい
て、serverMainLoopは、サーバが初期化を終了した後に
行うループ処理を表す。このループ処理において、サー
バはサービス要求(request)を引数としてPA_receive
を呼び出した後、要求の種類に応じてfile_delete
(ファイルの削除)やfile_create(ファイルの作成)
などの処理ルーチンを呼び出す。例えば、要求内容がフ
ァイルの削除の場合は、file_deleteが呼び出され、指
定されたファイルを削除する。そして、その結果を返信
メッセージreplyにまとめ、ipcReplyを用いてクライア
ントに送信する。このとき、file_deleteから呼び出さ
れるPA_blockRequestおよびPA_setRedProcess の処理
については後述する。
【0069】図11は、サーバのメインルーチンから呼
び出されるPA_receive に相当するPALIBの処理の
フローチャートである。図11において処理が開始され
ると、PALIBは要求メッセージを受信し(ステップ
S11)、受信したメッセージから識別子を取り出す
(ステップS12)。次に、取り出した識別子を用いて
冗送処理テーブルを検索し(ステップS13)、同じ識
別子を持つメッセージが既に登録されているかどうかを
調べる(ステップS14)。同じ識別子が見つからなけ
れば受信したメッセージは冗送ではないと判断して、処
理を終了する。同じ識別子が見つかれば受信したメッセ
ージは冗送であると判断し、登録された冗送処理のタイ
プを調べる(ステップS15)。そして、処理のタイプ
に応じて、自動結果返送(ステップS16)または冗送
ハンドラによる返送(ステップS17)を行って、処理
を終了する。 図12は、このようなサーバ側のPAL
IBの疑似コードを示している。図12において、PA_
receive は、受信メッセージ(message )を引数として
SSCから呼び出され、ループ処理を行う。ループ処理
において、PALIBは、受信メッセージから識別子 s
rcPortと message_IDを取り出し、これらを用いてSA
内の冗送処理テーブルを検索し、検索結果をrsltにセッ
トする。rsltが同じ識別子が見つかったことを示す場合
は、冗送処理テーブルに登録されている冗送検出時の処
理のタイプを読み出し、 process_typeにセットする。
【0070】そして、それが自動結果返送を指す場合
は、冗送処理テーブルから返信メッセージの内容をrepl
y にコピーし、ipcReplyによりreply を返送して、ルー
プの先頭に戻る。また、 process_typeが冗送ハンドラ
呼び出しを指す場合は、登録されたハンドラ関数のポイ
ンタをfunctionにセットし、冗送処理テーブルから関数
に渡すデータ(パラメータ)をarg にコピーする。次
に、arg 、message 、reply を引数として、functionが
指す関数を呼び出し、対応する返信メッセージを生成し
てreply に格納する。ipcReplyによりreply を返送す
る。そして、ipcReplyによりreply を返送して、ループ
の先頭に戻る。rsltが冗送検出を示していない場合は、
ループ処理を終了する。
【0071】図13は、図10のSSCから呼び出され
る登録処理のPALIBの疑似コードを示している。図
13のPALIBは、クライアントから受信する要求に
対応して行われる処理において呼び出される。図13に
おいて、PA_blockRequestは、要求された処理を実際に
実行する際に呼び出され、冗送処理テーブル内のその処
理に対応する識別子に対して、再送された要求の実行を
一時的に停止する旨を登録する。これにより、再送要求
のブロック登録が行われ、その識別子を持つ再送メッセ
ージの処理は一旦停止される。
【0072】PA_setRedProcess は、例えば要求された
処理が完了した時に呼び出され、その処理に対応する識
別子に対して、冗送検出のための情報と検出時の処理を
登録する。このとき、受信メッセージから取り出された
識別子とともに、冗送処理のタイプを表すtype(AUTO_
REPLY または REDUNDANT_MESSAGE _HANDLER )を冗送
処理テーブルに書き込む。typeがAUTO_REPLY の場合
は、さらに自動的に返送する返信メッセージをreply デ
ータとして書き込んでおく。また、typeが REDUNDANT_
MESSAGE _HANDLER の場合は、さらに冗送ハンドラに渡
すデータをarg データとして書き込んでおく。ここで、
もしPA_blockRequestによるブロック登録が行われてい
た場合には、それを消去する。
【0073】こうして冗送処理テーブルに登録された情
報は、再送メッセージの受信時に図12のPA_receive
により参照される。次に、図14から図18までを参照
しながら、サービスを要求する処理系(クライアント)
が中継処理系を介してサービスを提供する処理系(サー
バ)と通信を行う場合について説明する。この場合、中
継処理系に中継した通信の整合性を保つための情報を保
存することによって、故障からの復帰時に、代替中継処
理系がその情報を用いて正常な通信状態に復帰する。
【0074】図14、15、16は、クライアントから
サーバへの要求を中継処理する中継サーバの動作を示し
ている。耐故障性を実現するために、クライアント、サ
ーバ、および中継サーバの各処理系は、現用系と同じ機
能をもつ予備の処理系(待機系)を持っている。各現用
系と待機系は、それらの間で情報を引き継ぐため、故障
時にも破懐されないSA(ステーブル・エリア)を共有
している。また、クライアント、サーバ、および中継サ
ーバの各処理系は、前述のような冗送検出機構を備え
る。現用系の故障時には、待機系がSAから情報を得る
ことにより、復帰処理において整合性を保つ。
【0075】現用系の中継サーバは、中継処理毎に、ク
ライアントからのメッセージのメッセージIDとサーバ
へのメッセージのメッセージIDの組合せをリストとし
てSAに書き込み、それを保持する。さらに、サーバへ
のメッセージ自身をこのリストに付加してもよい。ここ
で、IDとは送受信される通信を一意に決める識別子で
ある。クライアントからのメッセージIDは、冗送検出
機構がクライアントからの再送を判断できるように、ク
ライアントがメッセージに付けるIDである。また、サ
ーバへのメッセージIDは、故障時に待機系がサーバへ
再度メッセージを送信できるように、中継サーバによっ
て付けられるIDである。
【0076】図14においては、現用系の中継サーバ6
1は、クライアントからメッセージmes Xを受け取り、
それに対応するメッセージmes Yをサーバに送ってい
る。このとき、中継サーバ61は、mes X、mes YのI
Dとmes Y自身とをSA63に書き込む。また、SA6
3内のmes Xの処理フラグ(不図示)を“処理中”に設
定する。
【0077】通常動作においては、図15に示すよう
に、中継サーバ61はサーバから返信メッセージres Y
を受け取ると、それに対応するメッセージres Xをクラ
イアントに返す。そして、mes Xの処理フラグを“終
了”に変更する。
【0078】中継サーバ61における故障発生時には、
図16に示すように、SA63内のリストは待機系中継
サーバ62に引き継がれる。新しい中継サーバ62は、
SA63内のリストの処理フラグをチェックし、処理が
完了していないトランザクションを発見した場合、SA
63に保存していたメッセージIDとメッセージをサー
バへ送信する。SA63に保存されたメッセージを用い
る他に、中継サーバ62のSSCは適当な他の中継メッ
セージを指定して、それをサーバへ送信することもでき
る。あるいは、必要に応じて中継メッセージを新たに作
成して送ることもできる。このとき、サーバ側とクライ
アント側では各々次のような処理が行われる。
【0079】サーバ側では、サーバ内の冗送検出機構に
より処理の整合性が保持され、正確なリプライが中継サ
ーバ62に返送される。中継サーバ62は、この返送さ
れた値をもとに結果を計算し、中継サーバにおける冗送
検出機構のデータとして保持する。
【0080】クライアント側では、メッセージの返送が
行われていないことを感知し、要求メッセージを再送す
る。中継サーバ62においては、クライアントからの再
送メッセージを受け取ると、SA63内にあるメッセー
ジIDと再送メッセージのIDが同じであることから、
冗送検出機構が冗送であることを認識する。そして、も
し、サーバ側からのリプライが既に行われており返送が
できる状態であれば、そのまま正しいリプライを返す。
サーバからのリプライがまだであれば、そのリプライを
待ち、リプライがきて返送すべきメッセージが計算され
た後、クライアントに返送する。そして、対応する処理
フラグを“終了”に書き換える。
【0081】図16においては、中継サーバ62は、ク
ライアントからmes Xと同じIDを持つ再送メッセージ
mes X′を受け取ると、SA63内の情報をチェックす
る。そして、そのIDとともに保持されているmes Yを
取り出し、mes Y′としてサーバに送る。サーバから対
応する返信メッセージres Yが送られてくると、それを
res Xとしてクライアントに送る。
【0082】システムをこのように構成することによっ
て、中継処理系を持つ通信の故障時の復帰処理における
整合性を保証し、その故障に関する処理を通信機構内に
隠蔽することが可能となる。
【0083】図17、18は、分散処理システムにおい
て、本発明による手法を用いた耐故障システムの例を示
している。この耐故障システムは、クライアントである
プロセスA、中継サーバの現用系であるプロセスB、そ
の待機系であるプロセスB′、およびサーバであるプロ
セスCから構成されている。
【0084】通常動作時には、図17に示すように、以
下のような順で通信が行われる。 ♯1 プロセスAがプロセスBへメッセージAを送信す
る(図17(a))。 ♯2 プロセスBがSAへ必要な情報(メッセージAを
中継中であることを示す情報)を書き込む(図17
(a))。このとき、メッセージAのIDである idA
と、プロセスCへ送信するメッセージBのIDである i
d Bと、メッセージB自身とがSAに記録される。 ♯3 プロセスBがプロセスCヘメッセージBを送信す
る(図17(a))。 ♯4 プロセスCがサービスを実行後、冗送検出機構7
1を用いてプロセスCのSA(不図示)に冗送処理を登
録した後に、プロセスBに返信メッセージres Bを送る
(図17(b))。 ♯5 プロセスBがSAに冗送処理の登録を行う(図1
7(b))。 ♯6 プロセスBがプロセスAへ返信メッセージres A
を送る(図17(b))。 中継サーバであるプロセスBの故障時には、待機系プロ
セスB′がSA内の情報を用いて故障復旧処理を行う。
この処理は、図18に示すように、以下のような手順で
実行される。 ♯1〜♯4の処理については、図17の場合と同様であ
る。今、プロセスCがサービスを終了した時点で、プロ
セスBが故障したとする(図18(a))。 ♯5 プロセスBの処理を引き継いだプロセスB′は、
まずSA内の情報をチェックし、終了していないトラン
ザクションを発見する(図18(b))。 ♯6 プロセスB′は、メッセージBと同じIDおよび
同じメッセージを使って、再度プロセスCにサービスを
要求する(図18(b))。 ♯7 プロセスCの冗送検出機構71は、プロセスB′
がメッセージBと同じ情報を転送してきたことを検出
し、冗送検出時の処理を行なった後、返信メッセージre
ply をプロセスB′に返送する(図18(b))。 ♯8 プロセスB′が、プロセスCからのreply を冗送
検出機構72に知らせる(図18(b))。 ♯9 プロセスAが再送メッセージA′をプロセスB′
に送る。プロセスB′では、冗送検出機構72によりメ
ッセージA′がメッセージAの再送であることを検出す
る(図18(c))。 ♯10 冗送検出機構72はSAを参照して、既にプロ
セスCからの返信メッセージがあれば、それをプロセス
Aに転送する(図18(c))。
【0085】ただし、分散システム上では異なるプロセ
ス間で処理の順序が保証されないので、必ずしも上記の
順に動作するとは限らない。これらのプロセス間におけ
る実行順序の同期は冗送検出機構内で取られるものとす
る。例えば、冗送検出機構71は、プロセスCによるサ
ービスの実行が終了するまで、プロセスB′にリプライ
するのを待つ。同様に、冗送検出機構72は、プロセス
Cからreply を受け取るまで、プロセスAにリプライす
るのを待つ。
【0086】プロセスAからの再送メッセージがプロセ
スCからの返信メッセージよりも先に到着した場合の手
順は、以下の通りである。 ♯1〜♯4の処理については、図18(a)と同様であ
る。プロセスCがサービスを終了した時点で、プロセス
Bが故障したとする。 ♯5 プロセスAが再送メッセージA′をプロセスB′
に送る。プロセスB′では、冗送検出機構72によりメ
ッセージA′がメッセージAの再送であることを検出す
る。しかし、メッセージAに関する処理はプロセスB′
による引き継ぎが必要であるとSAに登録されているの
で、メッセージA′の転送は一旦停止される。このよう
に、メッセージの再送を一旦停止させるブロック登録
は、例えば、図13のライブラリPA_blockRequestを用
いて行われる。 ♯6 プロセスB′はSA内の情報をチェックし、終了
していないトランザクションを発見する。 ♯7 プロセスB′は、メッセージBと同じIDおよび
同じメッセージを使って、再度プロセスCにサービスを
要求する。 ♯8 プロセスCの冗送検出機構71は、プロセスB′
がメッセージBと同じ情報を転送してきたことを検出
し、冗送検出時の処理を行なった後、返信メッセージre
ply をプロセスB′に返送する。 ♯9 プロセスB′が、プロセスCからのreply を冗送
検出機構72に知らせる。 ♯10 冗送検出機構72はSAのブロック登録を解除
し、一旦停止していたメッセージA′の処理を、冗送検
出まで遡って再開する。ここで、メッセージAの再送が
検出され、登録されているreply がプロセスAに転送さ
れる。
【0087】以上は、ロールフォワードによる復旧処理
の例であるが、サーバが実行した処理を元に戻すことが
できるトランザクションの場合には、ロールバックによ
る復旧処理を行うこともある。そのためには、プロセス
Bにおいて中途状態にある処理とプロセスCで一旦実行
した処理とを、実行前の状態に戻すことが可能でなけれ
ばならない。この場合の手順は以下の通りである。 ♯1〜♯4の処理については、図18(a)と同様であ
る。プロセスCがサービスを終了した時点で、プロセス
Bが故障したとする。 ♯5 プロセスB′はSA内の情報をチェックし、終了
していないトランザクションを発見する。 ♯6 プロセスB′は、プロセスBが故障前にプロセス
Cに依頼した処理を実行前の状態に戻すように、プロセ
スCに依頼する。 ♯7 プロセスB′は、このトランザクションに対応し
たSSCを実行中であること示すSA内の処理フラグ
を、“処理中”から例えば“終了”に変更し、中継処理
をキャンセルする。これにより、SSC内処理のロール
バックが行われる。 ♯8 プロセスCは実行した処理を元の状態に戻し、プ
ロセスCのSAに登録された冗送処理を消去し、これを
キャンセルする。 ♯9 この後、プロセスAからメッセージの自動再送が
行われると、プロセスB′は再送された要求メッセージ
に従って、通常動作時と同様にして最初から処理をやり
直す。
【0088】以上の実施形態において、クライアント、
サーバ等の各処理系は各々独立した計算機に割り当てら
れ、それらの計算機はネットワークにより互いに接続さ
れる。図19は、各計算機のハードウェア構成例を示し
ている。図19の計算機は通信部81、CPU(中央処
理装置)82、メモリ83、入出力端末84、およびフ
ァイル格納装置85を備え、それらの要素はバス86に
より接続されている。CPU82は、メモリ83を用い
て必要な機能のプロセスを生成し、通信部81を介して
他の計算機上のプロセスとの間で通信を行う。入出力端
末84は、ユーザインタフェースを実現するためのディ
スプレイ端末等であり、ファイル格納装置85は、ハー
ドディスク装置等の記憶装置である。
【0089】また、例えば、1つの計算機上でマルチプ
ロセス機能を用いて複数のプロセスを生成し、各々に各
処理系の機能を割り当てることもできる。この場合、同
一の計算機上のプロセス間では、ネットワークを介さず
にプロセス間通信が行われる。
【0090】
【発明の効果】本発明によれば、高可用性計算機システ
ムにおいてRPC要求が発信された後のハードウェアま
たはソフトウェアの故障時に、容易に要求メッセージの
再送を行い、正しい返信メッセージを返送することがで
きる。特に、ノンアイデンポテントな処理を行うサーバ
であっても、クライアントからのメッセージの冗送に対
応することができる。また、分散システムにおいて通信
の中継処理系が存在する場合でも、その故障時に正常状
態に復帰することが可能となる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】実施例における故障管理機構を示す図である。
【図3】ライブラリを用いたプロセス間通信を示す図で
ある。
【図4】ポートエイリアス・テーブルを示す図である。
【図5】実施例における冗送検出機構を示す図である。
【図6】サーバ故障時の自動再送を示す図である。
【図7】クライアント故障時の手動再送を示す図であ
る。
【図8】クライアント側のライブラリの処理のフローチ
ャートである。
【図9】クライアント側のライブラリを示す図である。
【図10】サーバの受信処理のコードを示す図である。
【図11】サーバ側のライブラリの処理のフローチャー
トである。
【図12】サーバ側の受信処理のライブラリを示す図で
ある。
【図13】サーバ側の登録処理のライブラリを示す図で
ある。
【図14】中継サーバによる識別子の書き込みを示す図
である。
【図15】中継サーバによる返信メッセージの転送を示
す図である。
【図16】中継サーバによる冗送検出時の処理を示す図
である。
【図17】中継サーバの通常時の動作を示す図である。
【図18】中継サーバの故障時の動作を示す図である。
【図19】計算機のハードウェア構成を示す図である。
【符号の説明】
1 ポート管理手段 2 識別子付加手段 3 送信手段 4 検出手段 5 返信手段 6 第1の記憶手段 7 中継手段 8 第2の記憶手段 11 フォールト・トレラント・マネジャー 12 ポートエイリアス・マネジャー 13 ポートエイリアス・テーブル 14、21、41 クライアント 15、25、39、48、55 ポートエイリアス 16 プライマリ・サーバ 17 バックアップ・サーバ 18 ライブラリ 22、32、36、42、45、52 SSC 23、33、37、43、46、53 PALIB 24、34、38、44、47、54 ポート 31、51 サーバ 35、56、63 ステーブル・エリア 61、62 中継サーバ 71、72 冗送検出機構 81 通信部 82 CPU 83 メモリ 84 入出力端末 85 ファイル格納部 86 バス

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 サービスを要求する第1のプロセスがサ
    ービスを提供する第2のプロセスに通信を介して依頼し
    た処理の結果を、該第2のプロセスから第1のプロセス
    に返送する耐故障型通信システムにおいて、 要求メッセージを発信するプロセスの集合に対して設け
    られた集合ポートの集合ポート識別子と、該集合内の各
    プロセスのポートのポート識別子との対応関係を管理す
    るポート管理手段と、 前記要求メッセージの最初の送信と再送信とに、同一の
    集合ポート識別子を含む識別情報を自動的に付加する識
    別子付加手段と、 前記識別情報を付加された要求メッセージを、前記第1
    のプロセスから第2のプロセスへ送信する送信手段とを
    備えることを特徴とする耐故障型RPCシステム。
  2. 【請求項2】 前記識別子付加手段は、前記要求メッセ
    ージに前記識別情報を自動的に付加するライブラリを有
    し、該要求メッセージの送信時に該ライブラリを呼び出
    すことを特徴とする請求項1記載の耐故障型RPCシス
    テム。
  3. 【請求項3】 前記識別子付加手段は、前記識別情報と
    してさらに同一のポート識別子を付加することを特徴と
    する請求項1記載の耐故障型RPCシステム。
  4. 【請求項4】 前記識別子付加手段は、前記識別情報と
    してさらに同一のインカーネーション番号を付加するこ
    とを特徴とする請求項1記載の耐故障型RPCシステ
    ム。
  5. 【請求項5】 前記識別子付加手段は、前記識別情報と
    してさらに同一のトランザクション識別子を付加するこ
    とを特徴とする請求項3または2記載の耐故障型RPC
    システム。
  6. 【請求項6】 前記識別子付加手段は、前記トランザク
    ション識別子として、プロセス毎に一意性を持つ識別子
    を用いることを特徴とする請求項5記載の耐故障型RP
    Cシステム。
  7. 【請求項7】 前記識別子付加手段は、前記トランザク
    ション識別子として、集合ポート毎に一意性を持つ識別
    子を用いることを特徴とする請求項5記載の耐故障型R
    PCシステム。
  8. 【請求項8】 前記識別子付加手段は、前記トランザク
    ション識別子として、サイト毎に一意性を持つ識別子を
    用いることを特徴とする請求項5記載の耐故障型RPC
    システム。
  9. 【請求項9】 前記要求メッセージを受信し、該要求メ
    ッセージに付加された前記識別情報を調べて、該要求メ
    ッセージが冗長な再送かどうかを自動的に検出する検出
    手段と、 該検出手段が冗長な再送を検出した時、冗送処理を行っ
    て、前記第2のプロセスが実行した処理の結果を前記第
    1のプロセスに返信する返信手段とをさらに備えること
    を特徴とする請求項1記載の耐故障型RPCシステム。
  10. 【請求項10】 サービスを要求する第1のプロセスが
    サービスを提供する第2のプロセスに通信を介して依頼
    した処理の結果を、該第2のプロセスから第1のプロセ
    スに返送する耐故障型通信システムにおいて、 プロセスの集合に対して設けられた集合ポートの集合ポ
    ート識別子を含む識別情報を付加された要求メッセージ
    を受信し、該識別情報を調べて該要求メッセージが冗長
    な再送かどうかを自動的に検出する検出手段と、 該検出手段が冗長な再送を検出した時、冗送処理を行っ
    て、前記第2のプロセスが実行した処理の結果を前記第
    1のプロセスに返信する返信手段とを備えることを特徴
    とする耐故障型RPCシステム。
  11. 【請求項11】 前記検出手段は、前記識別情報を調べ
    て前記要求メッセージが冗長な再送かどうかを自動的に
    検出するライブラリを有し、該要求メッセージの受信時
    に該ライブラリを呼び出すことを特徴とする請求項10
    記載の耐故障型RPCシステム。
  12. 【請求項12】 冗長な再送が検出された時、前記返信
    手段は、あらかじめ指定された返信メッセージを前記第
    1のプロセスに返送することを特徴とする請求項10記
    載の耐故障型RPCシステム。
  13. 【請求項13】 冗長な再送が検出された時、前記返信
    手段は、関数を呼び出して返信メッセージを生成し、該
    返信メッセージを前記第1のプロセスに返送することを
    特徴とする請求項10記載の耐故障型RPCシステム。
  14. 【請求項14】 前記返信手段は、あらかじめ指定され
    た返信メッセージを前記第1のプロセスに返送する自動
    返送処理を行うか、または、関数を呼び出して返信メッ
    セージを生成し前記第1のプロセスに返送する返信生成
    処理を行うかを選択し、冗長な再送が検出された時、選
    択した冗送処理を行うことを特徴とする請求項10記載
    の耐故障型RPCシステム。
  15. 【請求項15】 受信した第1の要求メッセージの識別
    情報を登録した冗送処理テーブルを記憶し、前記第1ま
    たは第2のプロセスの故障時にも記憶内容が失われない
    第1の記憶手段をさらに備え、 前記検出手段は、前記第1の要求メッセージの後に受信
    した第2の要求メッセージの識別情報が前記冗送処理テ
    ーブルに登録された識別情報と一致した時、該第2の要
    求メッセージが冗長な再送であると判定することを特徴
    とする請求項10記載の耐故障型RPCシステム。
  16. 【請求項16】 前記第1の記憶手段は、前記冗送処理
    として自動返送処理を前記冗送処理テーブルに登録し、
    該自動返送処理により返送する返信メッセージを記憶
    し、冗長な再送が検出された時、前記返信手段は、該第
    1の記憶手段に記憶された該返信メッセージを前記第1
    のプロセスに返送することを特徴とする請求項15記載
    の耐故障型RPCシステム。
  17. 【請求項17】 前記第1の記憶手段は、前記冗送処理
    として返信生成処理を前記冗送処理テーブルに登録し、
    冗長な再送が検出された時、前記返信手段は、該返信生
    成処理により返信メッセージを生成して前記第1のプロ
    セスに返送することを特徴とする請求項15記載の耐故
    障型RPCシステム。
  18. 【請求項18】 前記第1の記憶手段は、さらに前記返
    信生成処理に与えるパラメータを記憶し、冗長な再送が
    検出された時、前記返信手段は、該第1の記憶手段に記
    憶された該パラメータを用いて前記返信メッセージを生
    成することを特徴とする請求項15記載の耐故障型RP
    Cシステム。
  19. 【請求項19】 前記検出手段は、発信元プロセスのイ
    ンカーネーション番号を含む前記識別情報を付加された
    前記要求メッセージを受信し、該インカーネーション番
    号を用いて前記要求メッセージが冗長な再送かどうかを
    検出することを特徴とする請求項10記載の耐故障型R
    PCシステム。
  20. 【請求項20】 サービスを要求する第1のプロセスが
    サービスを提供する第2のプロセスに通信を介して依頼
    した処理の結果を、該第2のプロセスから第1のプロセ
    スに返送する耐故障型通信システムにおいて、 前記第1のプロセスからの要求メッセージを中継して、
    前記第2のプロセスへ中継メッセージを送信する第1の
    中継プロセスと、該第1の中継プロセスの故障時に処理
    を引き継ぐ第2の中継プロセスとを有する中継手段と、 前記要求メッセージの識別情報と前記中継メッセージの
    識別情報との対応関係を記憶し、前記第1の中継プロセ
    スの故障時にも記憶内容が失われない第2の記憶手段と
    を備えることを特徴とする耐故障型RPCシステム。
  21. 【請求項21】 前記第2の中継プロセスは、前記第1
    の中継プロセスの故障時に、前記第2の記憶手段が記憶
    する情報を参照して中継中の処理を引き継ぎ、該故障時
    に中継中であった中継メッセージを前記第2のプロセス
    に再送し、前記第1のプロセスから要求メッセージが再
    送された時、再送した中継メッセージに対する該第2の
    プロセスからの返信メッセージに基づいて該第1のプロ
    セスに返信することを特徴とする請求項20記載の耐故
    障型RPCシステム。
  22. 【請求項22】 前記第2の記憶手段は、前記識別情報
    の対応関係に加えて前記中継メッセージの内容を記憶
    し、前記第1の中継プロセスの故障時に、前記第2の中
    継プロセスは該第2の記憶手段に記憶された中継メッセ
    ージを再送することを特徴とする請求項21記載の耐故
    障型RPCシステム。
  23. 【請求項23】 前記第2の中継プロセスは、前記第2
    のプロセスに再送する中継メッセージの内容を指定する
    ことを特徴とする請求項21記載の耐故障型RPCシス
    テム。
  24. 【請求項24】 前記第2の中継プロセスは、前記第2
    のプロセスから前記返信メッセージを受け取るまで、前
    記第1のプロセスから再送された要求メッセージに関す
    る処理を待ち合わせることを特徴とする請求項21記載
    の耐故障型RPCシステム。
  25. 【請求項25】 前記第2の中継プロセスは、前記第1
    の中継プロセスの故障時に、前記第2の記憶手段が記憶
    する情報を参照して中継中の処理を引き継ぎ、該故障時
    に中継中であったメッセージの処理をキャンセルし、前
    記第2のプロセスに依頼した処理をキャンセルするよう
    依頼することを特徴とする請求項20記載の耐故障型R
    PCシステム。
  26. 【請求項26】 サービスを要求する第1のプロセスが
    サービスを提供する第2のプロセスに通信を介して依頼
    した処理の結果を、該第2のプロセスから第1のプロセ
    スに返送する通信システムにおける耐故障通信方法であ
    って、 要求メッセージを発信するプロセスの集合に対して設け
    られた集合ポートの集合ポート識別子と、該集合内の各
    プロセスのポートのポート識別子との対応関係を保持
    し、 前記要求メッセージの最初の送信と再送信とに、同一の
    集合ポート識別子を含む識別情報を自動的に付加し、 前記識別情報を付加された要求メッセージを、前記第1
    のプロセスから第2のプロセスへ送信し、 該要求メッセージの該識別情報を調べて、該要求メッセ
    ージが冗長な再送かどうかを自動的に検出し、 冗長な再送を検出した時、冗送処理を行って、前記第2
    のプロセスが実行した処理の結果を前記第1のプロセス
    に返信することを特徴とする耐故障通信方法。
  27. 【請求項27】 サービスを要求する第1のプロセスが
    サービスを提供する第2のプロセスに通信を介して依頼
    した処理の結果を、該第2のプロセスから第1のプロセ
    スに返送する通信システムにおける耐故障通信方法であ
    って、 前記第1のプロセスからの要求メッセージを中継して、
    前記第2のプロセスへ中継メッセージを送信し、 前記要求メッセージの識別情報と前記中継メッセージの
    識別情報との対応関係を、中継機能の故障時にも記憶内
    容が失われない記憶領域に保持し、 前記中継機能の故障時に、前記記憶領域内の情報を参照
    して、中継中であった中継メッセージを前記第2のプロ
    セスに再送し、 前記第1のプロセスから要求メッセージが再送された
    時、再送した中継メッセージに対する該第2のプロセス
    からの返信メッセージに基づいて、該第1のプロセスに
    返信することを特徴とする耐故障通信方法。
JP7218391A 1995-08-28 1995-08-28 耐故障型rpcシステムおよび方法 Withdrawn JPH0962526A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7218391A JPH0962526A (ja) 1995-08-28 1995-08-28 耐故障型rpcシステムおよび方法
GB9617654A GB2305087B (en) 1995-08-28 1996-08-23 Defect-free type remote procedure call system and method thereof
GB0003748A GB2344035B (en) 1995-08-28 1996-08-23 Fault-tolerant type remote procedure call system and method thereof
US08/703,059 US5802298A (en) 1995-08-28 1996-08-26 Defect-free type remote procedure call system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7218391A JPH0962526A (ja) 1995-08-28 1995-08-28 耐故障型rpcシステムおよび方法

Publications (1)

Publication Number Publication Date
JPH0962526A true JPH0962526A (ja) 1997-03-07

Family

ID=16719178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7218391A Withdrawn JPH0962526A (ja) 1995-08-28 1995-08-28 耐故障型rpcシステムおよび方法

Country Status (3)

Country Link
US (1) US5802298A (ja)
JP (1) JPH0962526A (ja)
GB (2) GB2305087B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330782A (ja) * 2005-05-23 2006-12-07 Nomura Research Institute Ltd 冗長構成システムおよび第1のコンピュータシステムに障害が発生したときに第2のコンピュータシステムが直ちにリカバーする方法
JP2010073211A (ja) * 2009-09-18 2010-04-02 Bank Of Tokyo-Mitsubishi Ufj Ltd サービス処理装置、システム、プログラム及び記録媒体
JP2012009041A (ja) * 2005-08-08 2012-01-12 Qualcomm Inc 装置インターフェースアーキテクチャおよびプロトコル
US8103758B2 (en) 2008-09-18 2012-01-24 The Bank Of Tokyo-Mitsubishi Ufj, Ltd. Service processing apparatus, system, and recording medium

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6134673A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6247079B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6138250A (en) 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6269412B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Apparatus for recording information system events
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6122758A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6148355A (en) 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6272648B1 (en) 1997-05-13 2001-08-07 Micron Electronics, Inc. System for communicating a software-generated pulse waveform between two servers in a network
US6163849A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6134668A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6073255A (en) 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US5987554A (en) 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US5892928A (en) 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6122746A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6324567B2 (en) * 1997-06-11 2001-11-27 Oracle Corporation Method and apparatus for providing multiple commands to a server
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6088816A (en) 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6154835A (en) 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6065053A (en) 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6009541A (en) 1997-10-01 1999-12-28 Micron Electronics, Inc. Apparatus for performing an extensive diagnostic test in conjunction with a bios test routine
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6324574B1 (en) * 1997-11-07 2001-11-27 International Business Machines Corporation Relay server for unsigned applets
US5963947A (en) * 1998-01-27 1999-10-05 International Business Machines Corporation Technique of dynamically adding functionality from a client to manipulated data at a server
EP1057108A1 (en) * 1998-02-26 2000-12-06 Sun Microsystems, Inc. Method and apparatus for the suspension and continuation of remote processes
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
KR20010034514A (ko) 1998-02-26 2001-04-25 케네쓰 올센 원격 메소드를 식별하는 해시 판정 방법 및 시스템
US6167430A (en) * 1998-05-12 2000-12-26 Unisys Corporation Multicomputer with distributed directory and operating system
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
JP2000295294A (ja) * 1999-04-06 2000-10-20 Sony Corp ネットワークシステム及びネットワーク制御方法、信号送受信装置
US7346648B1 (en) 1999-05-28 2008-03-18 Sentillion, Inc. Context management server appliance
DE60025023T2 (de) * 1999-05-28 2006-08-24 Sentillion, Inc., Andover Server zum verwalten von kontextinformation
US6587959B1 (en) * 1999-07-28 2003-07-01 Emc Corporation System and method for addressing scheme for use on clusters
KR100302867B1 (ko) * 1999-10-01 2001-11-02 서평원 에치 디 엘 씨 중계 노드 제어장치 및 방법
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US7117139B2 (en) * 2001-08-28 2006-10-03 Qiyong Bian Co-simulation verilog/PLI and system C modules using remote procedure call
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7532568B1 (en) * 2002-07-09 2009-05-12 Nortel Networks Limited Geographic redundancy for call servers in a cellular system based on a bearer-independent core network
CN100373799C (zh) * 2003-07-01 2008-03-05 中兴通讯股份有限公司 一种宽带接入服务器热备份的方法
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7720971B2 (en) 2005-09-12 2010-05-18 Microsoft Corporation Arbitrating an appropriate back-end server to receive channels of a client session
US8305876B2 (en) * 2006-11-22 2012-11-06 Avaya Inc. Accelerated recovery during negotiation between a media gateway and a media gateway controller
US7633932B2 (en) * 2006-11-22 2009-12-15 Avaya Inc. Accelerated removal from service of a signal processor at a media gateway
JP4401425B1 (ja) * 2008-09-18 2010-01-20 株式会社三菱東京Ufj銀行 サービス処理装置、システム、プログラム及び記録媒体
US10382587B2 (en) 2015-06-26 2019-08-13 International Business Machines Corporation De-duplicating remote procedure calls
CN113806069B (zh) * 2021-08-05 2024-04-05 广东核电合营有限公司 一种核电站系统交互方法、装置、外围系统及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US5253342A (en) * 1989-01-18 1993-10-12 International Business Machines Corporation Intermachine communication services
US5276871A (en) * 1991-03-18 1994-01-04 Bull Hn Information Systems Inc. Method of file shadowing among peer systems
US5448698A (en) * 1993-04-05 1995-09-05 Hewlett-Packard Company Inter-processor communication system in which messages are stored at locations specified by the sender
US5371889A (en) * 1993-04-22 1994-12-06 Digital Equipment Corporation Journalling optimization system and method for distributed computations
FR2714746B1 (fr) * 1993-12-31 1996-02-02 Bull Sa Procédé de simulation d'une architecture "serveur" à partir d'une architecture "client".
CA2145921A1 (en) * 1994-05-10 1995-11-11 Vijay Pochampalli Kumar Method and apparatus for executing a distributed algorithm or service on a simple network management protocol based computer network
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330782A (ja) * 2005-05-23 2006-12-07 Nomura Research Institute Ltd 冗長構成システムおよび第1のコンピュータシステムに障害が発生したときに第2のコンピュータシステムが直ちにリカバーする方法
JP2012009041A (ja) * 2005-08-08 2012-01-12 Qualcomm Inc 装置インターフェースアーキテクチャおよびプロトコル
US8705550B2 (en) 2005-08-08 2014-04-22 Qualcomm Incorporated Device interface architecture and protocol
US8103758B2 (en) 2008-09-18 2012-01-24 The Bank Of Tokyo-Mitsubishi Ufj, Ltd. Service processing apparatus, system, and recording medium
JP2010073211A (ja) * 2009-09-18 2010-04-02 Bank Of Tokyo-Mitsubishi Ufj Ltd サービス処理装置、システム、プログラム及び記録媒体

Also Published As

Publication number Publication date
GB2305087A (en) 1997-03-26
GB2305087B (en) 2000-07-12
GB2344035A (en) 2000-05-24
US5802298A (en) 1998-09-01
GB9617654D0 (en) 1996-10-02
GB0003748D0 (en) 2000-04-05
GB2344035B (en) 2000-07-12

Similar Documents

Publication Publication Date Title
JPH0962526A (ja) 耐故障型rpcシステムおよび方法
US5941999A (en) Method and system for achieving high availability in networked computer systems
CN107070919B (zh) 用于数据库事务的幂等性
US7293192B2 (en) System and method for failover
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
US8788455B2 (en) Disaster recovery
JP4960963B2 (ja) データベースミラーからのオンラインページリストア
US20020161840A1 (en) Adapter for interfacing with a workflow engine
US6381617B1 (en) Multiple database client transparency system and method therefor
US8504873B1 (en) Method and apparatus for providing in-memory checkpoint services within a distributed transaction
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2012069168A (ja) 地理的分散型クラスタ
US6389431B1 (en) Message-efficient client transparency system and method therefor
WO1997027542A1 (en) Fault-tolerant processing method
WO1991014230A1 (en) Message communication processing system
Speirs et al. Using passive replicates in delta-4 to provide dependable distributed computing
JP5292351B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US9069632B2 (en) Message processing
EP1247182A1 (en) Preserving consistency of passively-replicated non-deterministic objects
KR20090123518A (ko) 실시간 데이터 복제 시스템
WO2007035680A1 (en) Productivity suite to line of business synchronization mechanism
JP2612385B2 (ja) 多重化サブシステム間処理引継ぎ処理方式
CN115297129B (zh) 数据通信网络建立方法及装置
CN116501544A (zh) 一种数据库备份方法及系统、电子设备、存储介质
Bartoli et al. BS Middleware Platform

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021105