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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Abstract
(57)【要約】
【課題】 高可用性計算機システムにおいて部分的な故
障が発生した場合に、容易に要求メッセージの再送を行
い、正しい返信メッセージを返送することが課題であ
る。 【解決手段】 クライアント21はライブラリであるP
ALIB23を呼び出し、RPC要求の本送と再送に同
一の識別情報を付加して、サーバ31に送信する。現用
サーバは、受信したRPC要求の識別情報を故障時にも
破壊されないステーブル・エリア35に保存し、要求さ
れたサービスを実行する。現用サーバが故障すると待機
サーバが処理を引き継ぎ、PALIB37が、クライア
ント21から再送されたRPC要求の識別情報をステー
ブル・エリア35内のそれと比較して、冗長な再送(冗
送)であることを検出する。そこで、待機サーバは冗送
検出時の返信処理を行って、正しい結果をクライアント
21に返す。また、中継サーバがクライアント21とサ
ーバ31との間の通信を中継する場合は、中継サーバの
故障に備えて、中継する要求メッセージの識別情報を保
存しておく。
障が発生した場合に、容易に要求メッセージの再送を行
い、正しい返信メッセージを返送することが課題であ
る。 【解決手段】 クライアント21はライブラリであるP
ALIB23を呼び出し、RPC要求の本送と再送に同
一の識別情報を付加して、サーバ31に送信する。現用
サーバは、受信したRPC要求の識別情報を故障時にも
破壊されないステーブル・エリア35に保存し、要求さ
れたサービスを実行する。現用サーバが故障すると待機
サーバが処理を引き継ぎ、PALIB37が、クライア
ント21から再送されたRPC要求の識別情報をステー
ブル・エリア35内のそれと比較して、冗長な再送(冗
送)であることを検出する。そこで、待機サーバは冗送
検出時の返信処理を行って、正しい結果をクライアント
21に返す。また、中継サーバがクライアント21とサ
ーバ31との間の通信を中継する場合は、中継サーバの
故障に備えて、中継する要求メッセージの識別情報を保
存しておく。
Description
【0001】
【発明の属する技術分野】本発明は、ハードウェアまた
はソフトウェアの部分故障発生時に、実行中の処理を待
機系において継続する高可用性計算機システムに関す
る。
はソフトウェアの部分故障発生時に、実行中の処理を待
機系において継続する高可用性計算機システムに関す
る。
【0002】
【従来の技術】近年、全体の処理を機能により分割し、
複数のプロセスにより実現する手法が用いられるように
なった。分割したプロセスを互いに故障の影響を受けな
いプロセッサ上に配置し、それぞれに故障時にバックア
ップ機能を持つプロセスを置くことで、システムの部分
故障が全体のサービスを停止させないようなシステムを
構成することができる。
複数のプロセスにより実現する手法が用いられるように
なった。分割したプロセスを互いに故障の影響を受けな
いプロセッサ上に配置し、それぞれに故障時にバックア
ップ機能を持つプロセスを置くことで、システムの部分
故障が全体のサービスを停止させないようなシステムを
構成することができる。
【0003】機能分割された各プロセスは、プロセス間
通信を用いてサービスの要求と結果の返送を行なう。プ
ロセス間通信を行なうためには、送り元プロセスは通信
の単位となるメッセージをどのプロセスに送るかを指定
する。このとき、送り先プロセスを指定するために識別
子を用いる。1つの識別子が表現する宛先には次の2通
りの意味がある。 (A)1つのプロセス(ポート)を表す。 (B)複数のプロセス(ポートグループ)を表す。
通信を用いてサービスの要求と結果の返送を行なう。プ
ロセス間通信を行なうためには、送り元プロセスは通信
の単位となるメッセージをどのプロセスに送るかを指定
する。このとき、送り先プロセスを指定するために識別
子を用いる。1つの識別子が表現する宛先には次の2通
りの意味がある。 (A)1つのプロセス(ポート)を表す。 (B)複数のプロセス(ポートグループ)を表す。
【0004】ポートを宛先として発信した場合、メッセ
ージはそのポートを持つプロセスによって受信される。
ポートグループを宛先にして発信した場合、メッセージ
はそのポートグループに属するプロセスのうちの1つに
送られる。ポートグループに属するポートのうちどのポ
ートにメッセージが到着するかは、プロセス間通信の機
構により決定される。
ージはそのポートを持つプロセスによって受信される。
ポートグループを宛先にして発信した場合、メッセージ
はそのポートグループに属するプロセスのうちの1つに
送られる。ポートグループに属するポートのうちどのポ
ートにメッセージが到着するかは、プロセス間通信の機
構により決定される。
【0005】従来の耐故障型RPC(remote procedure
call :遠隔手続き呼出し)機構では、複数プロセスを
用いた高可用性計算機システムを実現するために、仕掛
り中メッセージの自動再送機構および手動再送機構を用
いて、発信プロセスが故障時の対応をしなくてもよいよ
うにする技術がある。この自動/手動再送機構を使うこ
とにより、フォールト・トレラント(FT)化された処
理系がRPCを実行中に故障した場合でも、故障時に仕
掛り中であったRPC要求を再送信することでサービス
を継続することが可能となる。
call :遠隔手続き呼出し)機構では、複数プロセスを
用いた高可用性計算機システムを実現するために、仕掛
り中メッセージの自動再送機構および手動再送機構を用
いて、発信プロセスが故障時の対応をしなくてもよいよ
うにする技術がある。この自動/手動再送機構を使うこ
とにより、フォールト・トレラント(FT)化された処
理系がRPCを実行中に故障した場合でも、故障時に仕
掛り中であったRPC要求を再送信することでサービス
を継続することが可能となる。
【0006】また、近年、全体の処理を複数の処理系に
分散させ、各処理系間を通信によって接続することによ
り、システム全体の処理を行なう手法が用いられるよう
になってきた。このような分散システムにおいて、同じ
サービスを行なう処理系を複数用意することによって、
耐故障性を向上させるシステムが提案されている。この
とき、ある処理系が動作不能になった場合、その現用系
の処理を、正常にかつ故障前との整合性を保持しつつ、
予備の処理系に再開させるための手続きが必要となる。
分散させ、各処理系間を通信によって接続することによ
り、システム全体の処理を行なう手法が用いられるよう
になってきた。このような分散システムにおいて、同じ
サービスを行なう処理系を複数用意することによって、
耐故障性を向上させるシステムが提案されている。この
とき、ある処理系が動作不能になった場合、その現用系
の処理を、正常にかつ故障前との整合性を保持しつつ、
予備の処理系に再開させるための手続きが必要となる。
【0007】特に、ハードウェアおよびソフトウェアに
よる通信における遠隔処理を、複数の処理系を中継する
ことにより行う場合においては、中継処理系の故障発生
時における通信再送時の整合性をいかにして保証するか
が問題となる。分散化された処理系において、処理系A
から処理系Bへサービス要求を送り、処理の一部を処理
系Bが処理系Cへ中継し、処理系Cがサービスを行うこ
とがある。この場合、処理系Bを中継処理系と呼ぶ。
よる通信における遠隔処理を、複数の処理系を中継する
ことにより行う場合においては、中継処理系の故障発生
時における通信再送時の整合性をいかにして保証するか
が問題となる。分散化された処理系において、処理系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の場合、クライアントが同じメッセージ
を再送信しサーバが再実行を行っても、同じ結果を得ら
れなかったり正しくない副作用を引き起こしたりする。
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の再送を冗送と呼ぶ。
は、ファイルやディレクトリの削除がある。1回目の削
除要求が送信された後サーバ側で実行され、クライアン
トに結果が返りつつある時に故障が起こったとする。こ
こで、削除要求が再送され、単純に再実行が行われる
と、サーバは存在しないファイルやディレクトリを消去
しようとしているものと判断し、クライアントにエラー
メッセージを返してしまう。このようなノンアイデンポ
テントな処理を要求するRPCの再送において、既にサ
ーバで実行されているにもかかわらず、冗長に発生する
RPCの再送を冗送と呼ぶ。
【0010】サーバ・クライアント型の処理系におい
て、サーバがノンアイデンポテントなRPC処理を行な
っている時に、あるトランザクションが何らかの原因で
再送された場合は、それを検出し、前回の処理結果を返
送しなければ正しい結果を返しているとは言えない。こ
れらを検出し、再送時にも正しい結果を返す機構が冗送
検出機構であり、その実現方法は各種存在する。簡単な
ものには、冗送検出する処理系がノンアイデンポテント
な処理のトランザクションとその結果を覚えておき、同
じトランザクションが要求された場合に、覚えていた結
果を返すという方法がある。
て、サーバがノンアイデンポテントなRPC処理を行な
っている時に、あるトランザクションが何らかの原因で
再送された場合は、それを検出し、前回の処理結果を返
送しなければ正しい結果を返しているとは言えない。こ
れらを検出し、再送時にも正しい結果を返す機構が冗送
検出機構であり、その実現方法は各種存在する。簡単な
ものには、冗送検出する処理系がノンアイデンポテント
な処理のトランザクションとその結果を覚えておき、同
じトランザクションが要求された場合に、覚えていた結
果を返すという方法がある。
【0011】
【発明が解決しようとする課題】しかしながら、従来の
耐故障型RPC機構には次のような問題がある。従来の
再送機構では、上述のようなノンアイデンポテントな処
理に自動的に対応する支援機構がなく、クライアントと
サーバ双方の処理プログラムに冗送検出用の処理コード
をあらかじめ付加する作業が必要となる。したがって、
冗送に対応するためには、プログラマの負担が増大する
という問題がある。
耐故障型RPC機構には次のような問題がある。従来の
再送機構では、上述のようなノンアイデンポテントな処
理に自動的に対応する支援機構がなく、クライアントと
サーバ双方の処理プログラムに冗送検出用の処理コード
をあらかじめ付加する作業が必要となる。したがって、
冗送に対応するためには、プログラマの負担が増大する
という問題がある。
【0012】また、複数の処理系が通信によってシステ
ムを構成している場合に、通信機構によって通信の故障
を隠蔽するためには、中継処理系は故障復帰時にそれま
で受信した通信と送信した通信の一貫性の保証を行なわ
なければならない。
ムを構成している場合に、通信機構によって通信の故障
を隠蔽するためには、中継処理系は故障復帰時にそれま
で受信した通信と送信した通信の一貫性の保証を行なわ
なければならない。
【0013】例えば、今、処理系Aから処理系Bを中継
して処理系Cにサービスを要求し、処理系Bが処理系C
に中継した後に処理系Bが故障したとする。この時点
で、処理系Aはサービスの要求を出した状態であり、処
理系Cは処理系Bの故障とは独立に処理を継続する。代
替処理系B′がこの一連の通信を再開するには通信機構
が処理系Aからのサービスの再要求と、それを受けた中
継処理系B′が処理系Cに対してこのサービスの再要求
を中継する必要がある。
して処理系Cにサービスを要求し、処理系Bが処理系C
に中継した後に処理系Bが故障したとする。この時点
で、処理系Aはサービスの要求を出した状態であり、処
理系Cは処理系Bの故障とは独立に処理を継続する。代
替処理系B′がこの一連の通信を再開するには通信機構
が処理系Aからのサービスの再要求と、それを受けた中
継処理系B′が処理系Cに対してこのサービスの再要求
を中継する必要がある。
【0014】ここで、処理系Cはある故障隠蔽機構を持
っている。それは、ノンアイデンポテントなサービスを
実行した場合には、その処理自身は再処理要求時には実
行せず、結果のみを返すという冗送検出機構である。こ
の処理系Cにおける冗送検出機構を動作させるために
は、前回と等しい要求を再処理要求通信時に処理系B′
が処理系Cに出さなければならないが、要求の等価性を
保証する一貫した技術は確立されていない。
っている。それは、ノンアイデンポテントなサービスを
実行した場合には、その処理自身は再処理要求時には実
行せず、結果のみを返すという冗送検出機構である。こ
の処理系Cにおける冗送検出機構を動作させるために
は、前回と等しい要求を再処理要求通信時に処理系B′
が処理系Cに出さなければならないが、要求の等価性を
保証する一貫した技術は確立されていない。
【0015】本発明は、高可用性計算機システムにおい
て部分的な故障が発生した場合に、容易に要求メッセー
ジの再送を行い、正しい返信メッセージを返送する耐故
障型RPCシステムおよびその方法を提供することを目
的とする。
て部分的な故障が発生した場合に、容易に要求メッセー
ジの再送を行い、正しい返信メッセージを返送する耐故
障型RPCシステムおよびその方法を提供することを目
的とする。
【0016】
【課題を解決するための手段】図1は、本発明の耐故障
型通信システムの原理図である。図1の耐故障型通信シ
ステムは、サービスを要求する第1のプロセスがサービ
スを提供する第2のプロセスに通信を介して依頼した処
理の結果を、該第2のプロセスから第1のプロセスに返
送するシステムである。この耐故障型通信システムは、
ポート管理手段1、識別子付加手段2、送信手段3、検
出手段4、返信手段5、第1の記憶手段6、中継手段
7、および第2の記憶手段8を備える。
型通信システムの原理図である。図1の耐故障型通信シ
ステムは、サービスを要求する第1のプロセスがサービ
スを提供する第2のプロセスに通信を介して依頼した処
理の結果を、該第2のプロセスから第1のプロセスに返
送するシステムである。この耐故障型通信システムは、
ポート管理手段1、識別子付加手段2、送信手段3、検
出手段4、返信手段5、第1の記憶手段6、中継手段
7、および第2の記憶手段8を備える。
【0017】ポート管理手段1は、要求メッセージを発
信するプロセスの集合に対して設けられた集合ポートの
集合ポート識別子と、その集合内の各プロセスのポート
のポート識別子との対応関係を管理する。
信するプロセスの集合に対して設けられた集合ポートの
集合ポート識別子と、その集合内の各プロセスのポート
のポート識別子との対応関係を管理する。
【0018】識別子付加手段2は、上記要求メッセージ
の最初の送信と再送信とに、同一の集合ポート識別子を
含む識別情報を自動的に付加する。送信手段3は、上記
識別情報を付加された要求メッセージを、第1のプロセ
スから第2のプロセスへ送信する。
の最初の送信と再送信とに、同一の集合ポート識別子を
含む識別情報を自動的に付加する。送信手段3は、上記
識別情報を付加された要求メッセージを、第1のプロセ
スから第2のプロセスへ送信する。
【0019】検出手段4は、上記要求メッセージを受信
し、その要求メッセージに付加された識別情報を調べ
て、その要求メッセージが冗長な再送かどうかを自動的
に検出する。
し、その要求メッセージに付加された識別情報を調べ
て、その要求メッセージが冗長な再送かどうかを自動的
に検出する。
【0020】返信手段5は、検出手段4が冗長な再送を
検出した時、冗送処理を行って、第2のプロセスが実行
した処理の結果を第1のプロセスに返信する。第1の記
憶手段6は、検出手段4が受信した第1の要求メッセー
ジの識別情報を登録した冗送処理テーブルを記憶し、前
記第1または第2のプロセスの故障時にもその記憶内容
は失われない。
検出した時、冗送処理を行って、第2のプロセスが実行
した処理の結果を第1のプロセスに返信する。第1の記
憶手段6は、検出手段4が受信した第1の要求メッセー
ジの識別情報を登録した冗送処理テーブルを記憶し、前
記第1または第2のプロセスの故障時にもその記憶内容
は失われない。
【0021】検出手段4は、上記第1の要求メッセージ
の後に受信した第2の要求メッセージの識別情報が上記
冗送処理テーブルに登録された識別情報と一致した時、
第2の要求メッセージが冗長な再送であると判定する。
の後に受信した第2の要求メッセージの識別情報が上記
冗送処理テーブルに登録された識別情報と一致した時、
第2の要求メッセージが冗長な再送であると判定する。
【0022】中継手段7は、前記第1のプロセスからの
要求メッセージを中継して、前記第2のプロセスへ中継
メッセージを送信する第1の中継プロセスと、第1の中
継プロセスの故障時に処理を引き継ぐ第2の中継プロセ
スとを有する。
要求メッセージを中継して、前記第2のプロセスへ中継
メッセージを送信する第1の中継プロセスと、第1の中
継プロセスの故障時に処理を引き継ぐ第2の中継プロセ
スとを有する。
【0023】第2の記憶手段8は、上記要求メッセージ
の識別情報と上記中継メッセージの識別情報との対応関
係を記憶し、第1の中継プロセスの故障時にもその記憶
内容は失われない。
の識別情報と上記中継メッセージの識別情報との対応関
係を記憶し、第1の中継プロセスの故障時にもその記憶
内容は失われない。
【0024】第2の中継プロセスは、第1の中継プロセ
スの故障時に、第2の記憶手段8が記憶する情報を参照
して中継中の処理を引き継ぎ、故障時に中継中であった
中継メッセージを第2のプロセスに再送する。そして、
第1のプロセスから要求メッセージが再送された時、再
送した中継メッセージに対する第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は、最初に送る要求メッセージ
と、再実行のために再送する要求メッセージとに、同一
のポートエイリアス識別子を識別情報として付加する。
れクライアント、サーバに対応する。また、図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のプロセスに返信する。
処理テーブルを参照して、最初の要求メッセージと再送
された要求メッセージの識別情報を比較し、それらが一
致したときに、再送メッセージが冗送である可能性があ
ると判断する。このとき、第2のプロセスが既にサービ
スを実行していて、再送メッセージが冗送であることが
確定すると、返信手段5は冗送処理を行って、サービス
の実行結果を第1のプロセスに返信する。
【0027】冗送処理テーブルの内容は、第1または第
2のプロセスの故障時にも破壊されないので、検出手段
4は常に冗送を正しく検出することができる。したがっ
て、第2のプロセスがノンアイデンポテントな処理を行
う場合でも、要求メッセージの冗送に対応して正しい結
果が返信される。
2のプロセスの故障時にも破壊されないので、検出手段
4は常に冗送を正しく検出することができる。したがっ
て、第2のプロセスがノンアイデンポテントな処理を行
う場合でも、要求メッセージの冗送に対応して正しい結
果が返信される。
【0028】また、第2の中継プロセスは、第1の中継
プロセスの故障時に、第2の記憶手段8が記憶する要求
メッセージと中継メッセージの対応関係を参照して、中
継中の処理を正しく引き継ぐことができる。これによ
り、中継プロセスの故障発生時における現用系から待機
系への引き継ぎ処理時において、処理の整合性が確保さ
れる。
プロセスの故障時に、第2の記憶手段8が記憶する要求
メッセージと中継メッセージの対応関係を参照して、中
継中の処理を正しく引き継ぐことができる。これによ
り、中継プロセスの故障発生時における現用系から待機
系への引き継ぎ処理時において、処理の整合性が確保さ
れる。
【0029】第2の中継プロセスは、引き継いだ処理の
中継メッセージを第2のプロセスに再送し、それに対す
る返信メッセージを第1のプロセスに転送する。こうし
て、第1のプロセスは正しい処理結果を受け取ることが
できる。
中継メッセージを第2のプロセスに再送し、それに対す
る返信メッセージを第1のプロセスに転送する。こうし
て、第1のプロセスは正しい処理結果を受け取ることが
できる。
【0030】このように、通信時に中継を行なう処理系
において一連の通信関係の情報を保存し、故障発生時の
再処理要求に対しては、保存された情報を代替処理系で
用いる。これにより、一連の通信による処理の整合性を
確保することが可能となり、経路故障の隠蕨を実現する
ことができる。また、サービスの作成者は、このような
中継機能を用いることにより、中継時に起こる故障から
整合性を保ちつつ、回復することが可能となる。
において一連の通信関係の情報を保存し、故障発生時の
再処理要求に対しては、保存された情報を代替処理系で
用いる。これにより、一連の通信による処理の整合性を
確保することが可能となり、経路故障の隠蕨を実現する
ことができる。また、サービスの作成者は、このような
中継機能を用いることにより、中継時に起こる故障から
整合性を保ちつつ、回復することが可能となる。
【0031】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を詳細に説明する。図2は、本発明の耐故
障型RPCシステムにおける故障管理機構を示してい
る。図2において、クライアント14(要求発信プロセ
ス)にサービスを提供するプロセスの集合へのポート
を、ポートエイリアス(Port Alias)と呼ぶ。ここで
は、ポートエイリアス15は、プライマリ・サーバ(Pr
imary Server)16のポートおよびバックアップ・サー
バ(Back up Server)17のポートに通じている。
の実施の形態を詳細に説明する。図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は、システム全体におけ
るプロセスの生成、消滅、および各プロセスがどのよう
なサービスを行なっているかの情報を、管理テーブルと
して保持している。
は、プロセスの配置、切替え等を管理する故障管理機構
を持つ。図2では、フォールト・トレラント・マネジャ
ー(Fault Tolerant Manager:FTM)11が故障管理
機構の役割を果たす。FTM11は、その部分機構とし
てポートエイリアス管理機構(Port Alias Manager:P
AM)12を持つ。FTM11は、システム全体におけ
るプロセスの生成、消滅、および各プロセスがどのよう
なサービスを行なっているかの情報を、管理テーブルと
して保持している。
【0034】また、PAM12は、システム全体で存在
する全てのポートエイリアスのテーブル(ポートエイリ
アス・テーブル、Port Alias Table)13を持ってい
る。ポートエイリアス・テーブル13には、各ポートエ
イリアスに属するポートとそのポートを持つプロセスが
登録され、そのうち現在サービスを行なっているプロセ
スのポートにサービス中のマークが付加されている。
する全てのポートエイリアスのテーブル(ポートエイリ
アス・テーブル、Port Alias Table)13を持ってい
る。ポートエイリアス・テーブル13には、各ポートエ
イリアスに属するポートとそのポートを持つプロセスが
登録され、そのうち現在サービスを行なっているプロセ
スのポートにサービス中のマークが付加されている。
【0035】サービスを提供する側では、最初のプロセ
スであるプライマリ・サーバ16が生成された時にポー
トエイリアス識別子を1つ作成し、自分自身のポートを
ポートエイリアス15に属させることをPAM12に通
知する。この通知を受けて、PAM12はポートエイリ
アス・テーブル13にポートエイリアス15の情報を登
録する。プライマリ・サーバ16の待機プロセスである
バックアップ・サーバ17は、ポートエイリアス15の
識別子をFTM11に問い合わせ、自分のポートをポー
トエイリアス15に属させることをPAM12に通知す
る。こうして、バックアップ・サーバ17のポートがプ
ライマリ・サーバ16のポートと同じポートエイリアス
15に登録される。
スであるプライマリ・サーバ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に待機プロセスを登録する。
生成/消滅を検知し、故障したプロセスがどれであるか
をPAM12に知らせる。PAM12は、故障したプロ
セスが登録したポートを、ポートエイリアス・テーブル
13内の対応するポートエイリアスから削除する。新し
く待機プロセスが起動されると、PAM12に対して自
分のポート識別子とポートエイリアス識別子を含む登録
要求を送る。PAM12は、ポートエイリアス・テーブ
ル13に待機プロセスを登録する。
【0038】図2では、プライマリ・サーバ16が故障
した時にバックアップ・サーバ17が代わりに起動さ
れ、バックアップ・サーバ17がポートエイリアス・テ
ーブル13に登録される。
した時にバックアップ・サーバ17が代わりに起動さ
れ、バックアップ・サーバ17がポートエイリアス・テ
ーブル13に登録される。
【0039】このように構成することで、サービスを要
求するプロセスからポートエイリアスヘ送信されたメッ
セージは、自動的にサービスを提供しているプロセスに
到着する。また、サービスを提供するポートを問い合わ
せる代わりに、ポートエイリアスを問い合わせること
で、故障が起こった後も同じ識別子を用いて、サービス
を提供するプロセスとの通信を継続することができる。
ポートエイリアスは、現在サービスを提供しているプロ
セスへRPCを要求する際用いる仮想的な宛先であり、
故障時の引き継ぎによって変化しない。
求するプロセスからポートエイリアスヘ送信されたメッ
セージは、自動的にサービスを提供しているプロセスに
到着する。また、サービスを提供するポートを問い合わ
せる代わりに、ポートエイリアスを問い合わせること
で、故障が起こった後も同じ識別子を用いて、サービス
を提供するプロセスとの通信を継続することができる。
ポートエイリアスは、現在サービスを提供しているプロ
セスへRPCを要求する際用いる仮想的な宛先であり、
故障時の引き継ぎによって変化しない。
【0040】また、ポートエイリアスはサービスを要求
するプロセスに対しても同様に定義することができる。
この場合、ポートエイリアスは複数の要求発信プロセス
の集合のポートを表し、RPCを要求する際用いる仮想
的な発信元となる。この仮想的な発信元もまた、PAM
12によりポートエイリアス・テーブル13を用いて管
理され、故障時の引き継ぎによって変化しない。
するプロセスに対しても同様に定義することができる。
この場合、ポートエイリアスは複数の要求発信プロセス
の集合のポートを表し、RPCを要求する際用いる仮想
的な発信元となる。この仮想的な発信元もまた、PAM
12によりポートエイリアス・テーブル13を用いて管
理され、故障時の引き継ぎによって変化しない。
【0041】図3は、通信機構としてポートとポートグ
ループしか持たないシステムの上で、プロセスにリンク
されるライブラリを用いて、仮想的にプロセス間通信を
実施する例を示している。図3において、図2と同じ要
素には同じ符号が付加されている。FTM11は、一般
に各クライアントやサーバ等のプロセスが配置される計
算機毎に設けられ、システムを構成する計算機の数だけ
存在する。したがって、PAM12もまた同数存在する
ことになる。これらの計算機はネットワークにより接続
される。
ループしか持たないシステムの上で、プロセスにリンク
されるライブラリを用いて、仮想的にプロセス間通信を
実施する例を示している。図3において、図2と同じ要
素には同じ符号が付加されている。FTM11は、一般
に各クライアントやサーバ等のプロセスが配置される計
算機毎に設けられ、システムを構成する計算機の数だけ
存在する。したがって、PAM12もまた同数存在する
ことになる。これらの計算機はネットワークにより接続
される。
【0042】PAM12は、上述のポートエイリアス・
テーブル13を持っている。クライアント14のライブ
ラリ(LIBRARY )18は、クライアント14からポート
エイリアス15へのメッセージ発信を指示されると、P
AM12に対してポートグループを用いてポートエイリ
アス・テーブル13に関する問い合わせを行なう。仮
に、ライブラリ18が、ポートグループを介してネット
ワーク上の複数のPAMのいずれかにポートを問い合わ
せたとしても、全てのPAMがシステム全体のポートエ
イリアスの情報を持っているので、どのPAMでも答え
ることができる。
テーブル13を持っている。クライアント14のライブ
ラリ(LIBRARY )18は、クライアント14からポート
エイリアス15へのメッセージ発信を指示されると、P
AM12に対してポートグループを用いてポートエイリ
アス・テーブル13に関する問い合わせを行なう。仮
に、ライブラリ18が、ポートグループを介してネット
ワーク上の複数のPAMのいずれかにポートを問い合わ
せたとしても、全てのPAMがシステム全体のポートエ
イリアスの情報を持っているので、どのPAMでも答え
ることができる。
【0043】PAM12は、ポートエイリアス・テーブ
ル13を用いてポートエイリアス15に属するポートの
うち現在使用されているものを検索し、それをライブラ
リ18に返す。ライブラリ18は、PAM12から通知
されたポートに対してプロセス間通信機構を用いてメッ
セージを送る。
ル13を用いてポートエイリアス15に属するポートの
うち現在使用されているものを検索し、それをライブラ
リ18に返す。ライブラリ18は、PAM12から通知
されたポートに対してプロセス間通信機構を用いてメッ
セージを送る。
【0044】同じポートエイリアスへ2回目以降メッセ
ージの送信を行なう場合に備えて、ライブラリ18は、
宛先ポートのヒントを覚えておくことができる。もし、
ヒントが既に存在する場合には、PAM12への問い合
わせを省略して、そのポートへメッセージを送る。しか
し、送り先ポートのプロセスが消滅していると、メッセ
ージの送信が失敗する。その場合は、PAMに対して問
い合わせを再度行ない、新しくサービスを行なうことに
なったポートへメッセージを送り直す。
ージの送信を行なう場合に備えて、ライブラリ18は、
宛先ポートのヒントを覚えておくことができる。もし、
ヒントが既に存在する場合には、PAM12への問い合
わせを省略して、そのポートへメッセージを送る。しか
し、送り先ポートのプロセスが消滅していると、メッセ
ージの送信が失敗する。その場合は、PAMに対して問
い合わせを再度行ない、新しくサービスを行なうことに
なったポートへメッセージを送り直す。
【0045】図4は、ポートエイリアス・テーブル13
の例を示している。図4のテーブルには、ポートエイリ
アス識別子、登録ポートの識別子、および登録プロセス
の識別子に加えて、サービス中のプロセスを指すマーク
が格納されている。
の例を示している。図4のテーブルには、ポートエイリ
アス識別子、登録ポートの識別子、および登録プロセス
の識別子に加えて、サービス中のプロセスを指すマーク
が格納されている。
【0046】図5は、耐故障型RPC支援機構における
冗送検出機構を示している。図5において、クライアン
ト21は、メインルーチンを記述するSSC(server s
pecific code)22と、SSCから呼び出されるライブ
ラリであるPALIB23とからなり、ポート24とポ
ートエイリアス25を有する。また、ノンアイデンポテ
ント・サーバ31は、耐故障性を実現するために、現用
サーバおよび同じ機能をもつ予備の待機サーバを持ち、
これらに共通のポートであるポートエイリアス39を備
える。現用サーバと待機サーバは、互いに情報を引き継
ぐために、故障時にも破懐されない記憶領域であるステ
ーブル・エリア(stable area :SA)35を共有して
いる。現用サーバの故障時には、待機サーバがSA35
から情報を得ることにより、復帰処理における整合性を
保つことができる。
冗送検出機構を示している。図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
を有する。
呼び出されるライブラリであるPALIB33とからな
り、ポートエイリアス39に属するポート34を有す
る。また、待機サーバは、SSC36とPALIB37
とからなり、ポートエイリアス39に属するポート38
を有する。
【0048】クライアント側のPALIB23とサーバ
側のPALIB33、37とが連携して、プロセス間の
通信機構および冗送検出機構としての役割を果たし、以
下のようにしてメッセージの冗送を検出する。以下の記
述において、ポートエイリアスが行う処理は、そのポー
トエイリアスを有するクライアントまたはサーバが行う
処理を表す。
側のPALIB33、37とが連携して、プロセス間の
通信機構および冗送検出機構としての役割を果たし、以
下のようにしてメッセージの冗送を検出する。以下の記
述において、ポートエイリアスが行う処理は、そのポー
トエイリアスを有するクライアントまたはサーバが行う
処理を表す。
【0049】まず、クライアント21側の通信機構であ
るPALIB23が、すべてのRPCメッセージに対し
てRPC要求の一意性を確保する識別子(ID)を付加
し、メッセージと同送する。この一意性を確保するID
としては、{srcAlias, srcPort,transId }の組み合
わせ、または、{srcAlias,incarnation ,transId}
の組み合わせを用いる。RPCメッセージに付加された
IDはサーバ31のSA35に保持され、受信メッセー
ジの識別に利用される。
る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)毎に一意となる番号を用いてもよく、ポートエ
イリアス毎に一意となる番号を用いてもよく、またプロ
セス毎に一意となる番号を用いてもよい。
特定する識別子で、メッセージの本送と再送では同じ値
になる。 srcPortは、本送時の発信元プロセスのポート
の識別子である。incarnation は、本送時の現用系プロ
セスのインカーネンション番号である。インカーネンシ
ョン番号とは、現用系プロセスから待機系プロッスへ引
き継ぎが起こる度に異なる値を取る世代番号で、FTM
11により管理される。transId は、FTトランザクシ
ョンの一意性を確保するためのIDで、本送と再送では
同じ値が用いられる。このtransId としては、サイト
(site)毎に一意となる番号を用いてもよく、ポートエ
イリアス毎に一意となる番号を用いてもよく、またプロ
セス毎に一意となる番号を用いてもよい。
【0051】耐故障RPC支援機構のサーバ31の利用
者は、現在処理中のRPCの冗送メッセージが送られて
きた時に、ポートエイリアス39に対して希望する動作
を指定する。例えば、クライアント21へ自動的に返送
して欲しいメッセージの内容を、ポートエイリアス39
に指定する。ポートエイリアス39はそれを記憶してお
き、後述の冗送検出処理で利用する。あるいはまた、冗
送処理用の関数である冗送ハンドラを呼び出してくれる
ように、ポートエイリアス39に指定することもでき
る。このとき、ポートエイリアス39は、冗送ハンドラ
を呼び出す際に渡す起動用のパラメータを記憶してお
く。ポートエイリアス39は、この指定に応じて冗送検
出処理で冗送ハンドラを呼び出す。
者は、現在処理中のRPCの冗送メッセージが送られて
きた時に、ポートエイリアス39に対して希望する動作
を指定する。例えば、クライアント21へ自動的に返送
して欲しいメッセージの内容を、ポートエイリアス39
に指定する。ポートエイリアス39はそれを記憶してお
き、後述の冗送検出処理で利用する。あるいはまた、冗
送処理用の関数である冗送ハンドラを呼び出してくれる
ように、ポートエイリアス39に指定することもでき
る。このとき、ポートエイリアス39は、冗送ハンドラ
を呼び出す際に渡す起動用のパラメータを記憶してお
く。ポートエイリアス39は、この指定に応じて冗送検
出処理で冗送ハンドラを呼び出す。
【0052】ここで、冗送検出処理について説明する。
ノンアイデンポテントな処理において、現用サーバは、
RPCの処理中にロールバック不可能な状態に変化する
前に、冗送に関する処理が行なわれる可能性があること
をPALIB33に知らせる。これをロールフォワード
ポイントの通知と呼ぶ。ロールフォワードポイントと
は、SSC32のメインルーチン中の特定のポイント
で、それを越えて処理が進むと元の状態に復帰できなく
なるようなポイントを指す。この通知を受けてPALI
B33は、SA35内またはPALIB33、37が管
理する他のメモリ領域内の冗送処理テーブルに、冗送検
出用の情報(メッセージのID等)とともにロールフォ
ワードポイント通知済みであることを登録する。
ノンアイデンポテントな処理において、現用サーバは、
RPCの処理中にロールバック不可能な状態に変化する
前に、冗送に関する処理が行なわれる可能性があること
をPALIB33に知らせる。これをロールフォワード
ポイントの通知と呼ぶ。ロールフォワードポイントと
は、SSC32のメインルーチン中の特定のポイント
で、それを越えて処理が進むと元の状態に復帰できなく
なるようなポイントを指す。この通知を受けてPALI
B33は、SA35内またはPALIB33、37が管
理する他のメモリ領域内の冗送処理テーブルに、冗送検
出用の情報(メッセージのID等)とともにロールフォ
ワードポイント通知済みであることを登録する。
【0053】ロールフォワードポイント通知より前に現
用サーバが故障した場合、再送機構によって起こるメッ
セージの再送は冗送には該当しない。したがって、新現
用サーバでは、RPC要求に対して単に再実行を行うこ
とで、正しく処理が継続される。しかし、ロールフォワ
ードポイント通知以降でクライアント21にRPCの応
答が帰るまでの間に、クライアント21もしくはサーバ
31に故障が起こった場合、再送機構による再送は冗送
となる。
用サーバが故障した場合、再送機構によって起こるメッ
セージの再送は冗送には該当しない。したがって、新現
用サーバでは、RPC要求に対して単に再実行を行うこ
とで、正しく処理が継続される。しかし、ロールフォワ
ードポイント通知以降でクライアント21にRPCの応
答が帰るまでの間に、クライアント21もしくはサーバ
31に故障が起こった場合、再送機構による再送は冗送
となる。
【0054】SSC32は、冗送検出時に行なう処理の
内容が確定した時点で、PALIB33に冗送処理の指
定を行なう。現用サーバ、待機サーバのプロセスにリン
クされたPALIB33、37は、RPCメッセージを
受信する毎に冗送処理テーブルのロールフォワードポイ
ント通知情報と比較を行い、受信メッセージが冗送であ
るかどうかをチェックする。冗送が検出されると、プロ
セスによってメッセージに対して登録されていた冗送処
理を起動する。
内容が確定した時点で、PALIB33に冗送処理の指
定を行なう。現用サーバ、待機サーバのプロセスにリン
クされたPALIB33、37は、RPCメッセージを
受信する毎に冗送処理テーブルのロールフォワードポイ
ント通知情報と比較を行い、受信メッセージが冗送であ
るかどうかをチェックする。冗送が検出されると、プロ
セスによってメッセージに対して登録されていた冗送処
理を起動する。
【0055】ここでは、SSC32のメインルーチンの
ロールフォワードポイントを越えて処理が進んだ後に現
用サーバが故障し、処理は待機サーバに引き継がれる。
待機サーバは、SA35の冗送処理テーブルを参照して
冗送を検出し、あらかじめ登録された冗送処理ルーチン
を呼び出して、クライアント21に返信する。
ロールフォワードポイントを越えて処理が進んだ後に現
用サーバが故障し、処理は待機サーバに引き継がれる。
待機サーバは、SA35の冗送処理テーブルを参照して
冗送を検出し、あらかじめ登録された冗送処理ルーチン
を呼び出して、クライアント21に返信する。
【0056】冗送が検出された時に行われる冗送処理と
しては、例えば次の2種類が設定できる。1つは自動結
果返送(AUTO REPLY)で、ポートエイリアス
39は、あらかじめサーバ31が登録しておいた返信メ
ッセージを自動的にクライアント21に返す。SSC3
2は、冗送に対する処理の登録時に、PALIB33を
介して返信メッセージを同時に登録しておく。PALI
B33は、冗送処理テーブルの該当メッセージの項目
を、ロールフォワードポイント通知済みから自動結果返
送登録済みに変化させ、同時に返信メッセージを登録す
る。冗送検出時には、登録されたメッセージが自動的に
クライアント21に返信される。
しては、例えば次の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に対して返信を行なうことを求められ
る。
age handler )を用いる処理である。この場合は、冗送
を検出した時に呼び出す関数である冗送ハンドラをメッ
セージ毎に設定し、ポートエイリアス39が冗送を検出
すると、登録された冗送ハンドラを呼び出す。SSC3
2は、冗送に対する処理の登録時に、PALIB33を
介して冗送ハンドラの呼び出し処理を登録する。PAL
IB33は、冗送処理テーブルの該当メッセージの項目
を、ロールフォワードポイント通知済みから冗送ハンド
ラ登録済みに変化させ、同時に冗送ハンドラヘ渡す引数
を登録する。冗送検出時には、登録された冗送ハンドラ
が引数を伴って呼び出される。呼び出された冗送ハンド
ラは、既に実行されたRPC処理の結果を再度計算し、
クライアント21に対して返信を行なうことを求められ
る。
【0058】このように構成することで、ノンアイデン
ポテントな処理を行うサーバであっても、容易に冗送に
対応することができ、処理のアイデンポテント(idempo
tent)性を確保することができる。
ポテントな処理を行うサーバであっても、容易に冗送に
対応することができ、処理のアイデンポテント(idempo
tent)性を確保することができる。
【0059】図6は、図5の現用サーバがロールフォワ
ードポイント通過後に故障した時のRPC要求の自動再
送および冗送検出の例を示している。図6においては、
クライアント21のPALIB23は、メッセージにI
Dとして{srcAlias, srcPort,transId }を付加し、
サーバ31のポートエイリアス39に送信する。ここ
で、srcAlias、 srcPortは、それぞれポートエイリアス
25、ポート24の識別子を表す。このとき、現用サー
バは、受信したメッセージのIDをSA35の冗送処理
テーブルに登録しておく。
ードポイント通過後に故障した時の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に返す。
障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に返送する。
障RPC支援機構の動作は、次の通りである。 (1)ロールフォワードポイントにおいて、現用サーバ
は、複数の関数からなる冗送ハンドラ配列の中で、起動
したい関数と起動時に関数に渡す引数を登録する。 (2)現用サーバ故障の後、ポートエイリアス25がサ
ーバ故障を検出し、要求メッセージの自動再送を行う。 (3)新現用サーバのPALIB37は、自動再送され
た要求メッセージの{srcAlias, srcPort,transId }
を、SA35に格納されたものと比較して、その要求メ
ッセージが冗送であることを知る。 (4)ポートエイリアス39は、(旧現用サーバ)が先
ほど登録しておいた冗送ハンドラを呼び出す。 (5)新現用サーバ内の冗送ハンドラは、旧現用サーバ
の処理結果を伝えるメッセージの再計算を行い、返信メ
ッセージとしてクライアント21に返送する。
【0062】以上はサーバ故障時の冗送処理の例である
が、クライアント故障時にも冗送が検出される場合があ
る。図7は、サーバがロールフォワードポイント通過後
にクライアントが故障した時の、RPC要求の手動再送
および冗送検出の例を示している。
が、クライアント故障時にも冗送が検出される場合があ
る。図7は、サーバがロールフォワードポイント通過後
にクライアントが故障した時の、RPC要求の手動再送
および冗送検出の例を示している。
【0063】図7において、クライアント41は、耐故
障性を実現するために、現用クライアントおよび同じ機
能をもつ予備の待機クライアントを持ち、これらに共通
のポートであるポートエイリアス48を備える。現用ク
ライアントは、SSC42と、SSCから呼び出される
ライブラリであるPALIB43とからなり、ポートエ
イリアス48に属するポート44を有する。また、待機
クライアントは、SSC45とPALIB46とからな
り、ポートエイリアス48に属するポート47を有す
る。また、ノンアイデンポテント・サーバ51は、SS
C52とPALIB53とからなり、ステーブル・エリ
ア(SA)56、ポート54、およびポートエイリアス
55を有する。
障性を実現するために、現用クライアントおよび同じ機
能をもつ予備の待機クライアントを持ち、これらに共通
のポートであるポートエイリアス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の冗送処理テーブルに登録して
おく。
ッセージに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の処理についてより詳細に説明する。
セージと同送する場合の耐故障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)、処理を終了する。
送信する時に、そのメインルーチンから呼び出される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 として用いられている。
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 の処理
については後述する。
ージ受信処理の疑似コードを示している。図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にセットする。
び出される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が冗送検出を示していない場合は、
ループ処理を終了する。
は、冗送処理テーブルから返信メッセージの内容を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は、要求された処理を実際に
実行する際に呼び出され、冗送処理テーブル内のその処
理に対応する識別子に対して、再送された要求の実行を
一時的に停止する旨を登録する。これにより、再送要求
のブロック登録が行われ、その識別子を持つ再送メッセ
ージの処理は一旦停止される。
る登録処理の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によるブロック登録が行われてい
た場合には、それを消去する。
処理が完了した時に呼び出され、その処理に対応する識
別子に対して、冗送検出のための情報と検出時の処理を
登録する。このとき、受信メッセージから取り出された
識別子とともに、冗送処理のタイプを表すtype(AUTO_
REPLY または REDUNDANT_MESSAGE _HANDLER )を冗送
処理テーブルに書き込む。typeがAUTO_REPLY の場合
は、さらに自動的に返送する返信メッセージをreply デ
ータとして書き込んでおく。また、typeが REDUNDANT_
MESSAGE _HANDLER の場合は、さらに冗送ハンドラに渡
すデータをarg データとして書き込んでおく。ここで、
もしPA_blockRequestによるブロック登録が行われてい
た場合には、それを消去する。
【0073】こうして冗送処理テーブルに登録された情
報は、再送メッセージの受信時に図12のPA_receive
により参照される。次に、図14から図18までを参照
しながら、サービスを要求する処理系(クライアント)
が中継処理系を介してサービスを提供する処理系(サー
バ)と通信を行う場合について説明する。この場合、中
継処理系に中継した通信の整合性を保つための情報を保
存することによって、故障からの復帰時に、代替中継処
理系がその情報を用いて正常な通信状態に復帰する。
報は、再送メッセージの受信時に図12のPA_receive
により参照される。次に、図14から図18までを参照
しながら、サービスを要求する処理系(クライアント)
が中継処理系を介してサービスを提供する処理系(サー
バ)と通信を行う場合について説明する。この場合、中
継処理系に中継した通信の整合性を保つための情報を保
存することによって、故障からの復帰時に、代替中継処
理系がその情報を用いて正常な通信状態に復帰する。
【0074】図14、15、16は、クライアントから
サーバへの要求を中継処理する中継サーバの動作を示し
ている。耐故障性を実現するために、クライアント、サ
ーバ、および中継サーバの各処理系は、現用系と同じ機
能をもつ予備の処理系(待機系)を持っている。各現用
系と待機系は、それらの間で情報を引き継ぐため、故障
時にも破懐されないSA(ステーブル・エリア)を共有
している。また、クライアント、サーバ、および中継サ
ーバの各処理系は、前述のような冗送検出機構を備え
る。現用系の故障時には、待機系がSAから情報を得る
ことにより、復帰処理において整合性を保つ。
サーバへの要求を中継処理する中継サーバの動作を示し
ている。耐故障性を実現するために、クライアント、サ
ーバ、および中継サーバの各処理系は、現用系と同じ機
能をもつ予備の処理系(待機系)を持っている。各現用
系と待機系は、それらの間で情報を引き継ぐため、故障
時にも破懐されないSA(ステーブル・エリア)を共有
している。また、クライアント、サーバ、および中継サ
ーバの各処理系は、前述のような冗送検出機構を備え
る。現用系の故障時には、待機系がSAから情報を得る
ことにより、復帰処理において整合性を保つ。
【0075】現用系の中継サーバは、中継処理毎に、ク
ライアントからのメッセージのメッセージIDとサーバ
へのメッセージのメッセージIDの組合せをリストとし
てSAに書き込み、それを保持する。さらに、サーバへ
のメッセージ自身をこのリストに付加してもよい。ここ
で、IDとは送受信される通信を一意に決める識別子で
ある。クライアントからのメッセージIDは、冗送検出
機構がクライアントからの再送を判断できるように、ク
ライアントがメッセージに付けるIDである。また、サ
ーバへのメッセージIDは、故障時に待機系がサーバへ
再度メッセージを送信できるように、中継サーバによっ
て付けられるIDである。
ライアントからのメッセージのメッセージ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の処理フラグ(不図示)を“処理中”に設
定する。
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の処理フラグを“終
了”に変更する。
に、中継サーバ61はサーバから返信メッセージres Y
を受け取ると、それに対応するメッセージres Xをクラ
イアントに返す。そして、mes Xの処理フラグを“終
了”に変更する。
【0078】中継サーバ61における故障発生時には、
図16に示すように、SA63内のリストは待機系中継
サーバ62に引き継がれる。新しい中継サーバ62は、
SA63内のリストの処理フラグをチェックし、処理が
完了していないトランザクションを発見した場合、SA
63に保存していたメッセージIDとメッセージをサー
バへ送信する。SA63に保存されたメッセージを用い
る他に、中継サーバ62のSSCは適当な他の中継メッ
セージを指定して、それをサーバへ送信することもでき
る。あるいは、必要に応じて中継メッセージを新たに作
成して送ることもできる。このとき、サーバ側とクライ
アント側では各々次のような処理が行われる。
図16に示すように、SA63内のリストは待機系中継
サーバ62に引き継がれる。新しい中継サーバ62は、
SA63内のリストの処理フラグをチェックし、処理が
完了していないトランザクションを発見した場合、SA
63に保存していたメッセージIDとメッセージをサー
バへ送信する。SA63に保存されたメッセージを用い
る他に、中継サーバ62のSSCは適当な他の中継メッ
セージを指定して、それをサーバへ送信することもでき
る。あるいは、必要に応じて中継メッセージを新たに作
成して送ることもできる。このとき、サーバ側とクライ
アント側では各々次のような処理が行われる。
【0079】サーバ側では、サーバ内の冗送検出機構に
より処理の整合性が保持され、正確なリプライが中継サ
ーバ62に返送される。中継サーバ62は、この返送さ
れた値をもとに結果を計算し、中継サーバにおける冗送
検出機構のデータとして保持する。
より処理の整合性が保持され、正確なリプライが中継サ
ーバ62に返送される。中継サーバ62は、この返送さ
れた値をもとに結果を計算し、中継サーバにおける冗送
検出機構のデータとして保持する。
【0080】クライアント側では、メッセージの返送が
行われていないことを感知し、要求メッセージを再送す
る。中継サーバ62においては、クライアントからの再
送メッセージを受け取ると、SA63内にあるメッセー
ジIDと再送メッセージのIDが同じであることから、
冗送検出機構が冗送であることを認識する。そして、も
し、サーバ側からのリプライが既に行われており返送が
できる状態であれば、そのまま正しいリプライを返す。
サーバからのリプライがまだであれば、そのリプライを
待ち、リプライがきて返送すべきメッセージが計算され
た後、クライアントに返送する。そして、対応する処理
フラグを“終了”に書き換える。
行われていないことを感知し、要求メッセージを再送す
る。中継サーバ62においては、クライアントからの再
送メッセージを受け取ると、SA63内にあるメッセー
ジIDと再送メッセージのIDが同じであることから、
冗送検出機構が冗送であることを認識する。そして、も
し、サーバ側からのリプライが既に行われており返送が
できる状態であれば、そのまま正しいリプライを返す。
サーバからのリプライがまだであれば、そのリプライを
待ち、リプライがきて返送すべきメッセージが計算され
た後、クライアントに返送する。そして、対応する処理
フラグを“終了”に書き換える。
【0081】図16においては、中継サーバ62は、ク
ライアントからmes Xと同じIDを持つ再送メッセージ
mes X′を受け取ると、SA63内の情報をチェックす
る。そして、そのIDとともに保持されているmes Yを
取り出し、mes Y′としてサーバに送る。サーバから対
応する返信メッセージres Yが送られてくると、それを
res Xとしてクライアントに送る。
ライアントからmes Xと同じIDを持つ再送メッセージ
mes X′を受け取ると、SA63内の情報をチェックす
る。そして、そのIDとともに保持されているmes Yを
取り出し、mes Y′としてサーバに送る。サーバから対
応する返信メッセージres Yが送られてくると、それを
res Xとしてクライアントに送る。
【0082】システムをこのように構成することによっ
て、中継処理系を持つ通信の故障時の復帰処理における
整合性を保証し、その故障に関する処理を通信機構内に
隠蔽することが可能となる。
て、中継処理系を持つ通信の故障時の復帰処理における
整合性を保証し、その故障に関する処理を通信機構内に
隠蔽することが可能となる。
【0083】図17、18は、分散処理システムにおい
て、本発明による手法を用いた耐故障システムの例を示
している。この耐故障システムは、クライアントである
プロセスA、中継サーバの現用系であるプロセスB、そ
の待機系であるプロセスB′、およびサーバであるプロ
セスCから構成されている。
て、本発明による手法を用いた耐故障システムの例を示
している。この耐故障システムは、クライアントである
プロセス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))。
下のような順で通信が行われる。 ♯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にリプライす
るのを待つ。
ス間で処理の順序が保証されないので、必ずしも上記の
順に動作するとは限らない。これらのプロセス間におけ
る実行順序の同期は冗送検出機構内で取られるものとす
る。例えば、冗送検出機構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に転送さ
れる。
ス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′は再送された要求メッセージ
に従って、通常動作時と同様にして最初から処理をやり
直す。
の例であるが、サーバが実行した処理を元に戻すことが
できるトランザクションの場合には、ロールバックによ
る復旧処理を行うこともある。そのためには、プロセス
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は、ハー
ドディスク装置等の記憶装置である。
サーバ等の各処理系は各々独立した計算機に割り当てら
れ、それらの計算機はネットワークにより互いに接続さ
れる。図19は、各計算機のハードウェア構成例を示し
ている。図19の計算機は通信部81、CPU(中央処
理装置)82、メモリ83、入出力端末84、およびフ
ァイル格納装置85を備え、それらの要素はバス86に
より接続されている。CPU82は、メモリ83を用い
て必要な機能のプロセスを生成し、通信部81を介して
他の計算機上のプロセスとの間で通信を行う。入出力端
末84は、ユーザインタフェースを実現するためのディ
スプレイ端末等であり、ファイル格納装置85は、ハー
ドディスク装置等の記憶装置である。
【0089】また、例えば、1つの計算機上でマルチプ
ロセス機能を用いて複数のプロセスを生成し、各々に各
処理系の機能を割り当てることもできる。この場合、同
一の計算機上のプロセス間では、ネットワークを介さず
にプロセス間通信が行われる。
ロセス機能を用いて複数のプロセスを生成し、各々に各
処理系の機能を割り当てることもできる。この場合、同
一の計算機上のプロセス間では、ネットワークを介さず
にプロセス間通信が行われる。
【0090】
【発明の効果】本発明によれば、高可用性計算機システ
ムにおいてRPC要求が発信された後のハードウェアま
たはソフトウェアの故障時に、容易に要求メッセージの
再送を行い、正しい返信メッセージを返送することがで
きる。特に、ノンアイデンポテントな処理を行うサーバ
であっても、クライアントからのメッセージの冗送に対
応することができる。また、分散システムにおいて通信
の中継処理系が存在する場合でも、その故障時に正常状
態に復帰することが可能となる。
ムにおいて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のプロセスがサ
ービスを提供する第2のプロセスに通信を介して依頼し
た処理の結果を、該第2のプロセスから第1のプロセス
に返送する耐故障型通信システムにおいて、 要求メッセージを発信するプロセスの集合に対して設け
られた集合ポートの集合ポート識別子と、該集合内の各
プロセスのポートのポート識別子との対応関係を管理す
るポート管理手段と、 前記要求メッセージの最初の送信と再送信とに、同一の
集合ポート識別子を含む識別情報を自動的に付加する識
別子付加手段と、 前記識別情報を付加された要求メッセージを、前記第1
のプロセスから第2のプロセスへ送信する送信手段とを
備えることを特徴とする耐故障型RPCシステム。 - 【請求項2】 前記識別子付加手段は、前記要求メッセ
ージに前記識別情報を自動的に付加するライブラリを有
し、該要求メッセージの送信時に該ライブラリを呼び出
すことを特徴とする請求項1記載の耐故障型RPCシス
テム。 - 【請求項3】 前記識別子付加手段は、前記識別情報と
してさらに同一のポート識別子を付加することを特徴と
する請求項1記載の耐故障型RPCシステム。 - 【請求項4】 前記識別子付加手段は、前記識別情報と
してさらに同一のインカーネーション番号を付加するこ
とを特徴とする請求項1記載の耐故障型RPCシステ
ム。 - 【請求項5】 前記識別子付加手段は、前記識別情報と
してさらに同一のトランザクション識別子を付加するこ
とを特徴とする請求項3または2記載の耐故障型RPC
システム。 - 【請求項6】 前記識別子付加手段は、前記トランザク
ション識別子として、プロセス毎に一意性を持つ識別子
を用いることを特徴とする請求項5記載の耐故障型RP
Cシステム。 - 【請求項7】 前記識別子付加手段は、前記トランザク
ション識別子として、集合ポート毎に一意性を持つ識別
子を用いることを特徴とする請求項5記載の耐故障型R
PCシステム。 - 【請求項8】 前記識別子付加手段は、前記トランザク
ション識別子として、サイト毎に一意性を持つ識別子を
用いることを特徴とする請求項5記載の耐故障型RPC
システム。 - 【請求項9】 前記要求メッセージを受信し、該要求メ
ッセージに付加された前記識別情報を調べて、該要求メ
ッセージが冗長な再送かどうかを自動的に検出する検出
手段と、 該検出手段が冗長な再送を検出した時、冗送処理を行っ
て、前記第2のプロセスが実行した処理の結果を前記第
1のプロセスに返信する返信手段とをさらに備えること
を特徴とする請求項1記載の耐故障型RPCシステム。 - 【請求項10】 サービスを要求する第1のプロセスが
サービスを提供する第2のプロセスに通信を介して依頼
した処理の結果を、該第2のプロセスから第1のプロセ
スに返送する耐故障型通信システムにおいて、 プロセスの集合に対して設けられた集合ポートの集合ポ
ート識別子を含む識別情報を付加された要求メッセージ
を受信し、該識別情報を調べて該要求メッセージが冗長
な再送かどうかを自動的に検出する検出手段と、 該検出手段が冗長な再送を検出した時、冗送処理を行っ
て、前記第2のプロセスが実行した処理の結果を前記第
1のプロセスに返信する返信手段とを備えることを特徴
とする耐故障型RPCシステム。 - 【請求項11】 前記検出手段は、前記識別情報を調べ
て前記要求メッセージが冗長な再送かどうかを自動的に
検出するライブラリを有し、該要求メッセージの受信時
に該ライブラリを呼び出すことを特徴とする請求項10
記載の耐故障型RPCシステム。 - 【請求項12】 冗長な再送が検出された時、前記返信
手段は、あらかじめ指定された返信メッセージを前記第
1のプロセスに返送することを特徴とする請求項10記
載の耐故障型RPCシステム。 - 【請求項13】 冗長な再送が検出された時、前記返信
手段は、関数を呼び出して返信メッセージを生成し、該
返信メッセージを前記第1のプロセスに返送することを
特徴とする請求項10記載の耐故障型RPCシステム。 - 【請求項14】 前記返信手段は、あらかじめ指定され
た返信メッセージを前記第1のプロセスに返送する自動
返送処理を行うか、または、関数を呼び出して返信メッ
セージを生成し前記第1のプロセスに返送する返信生成
処理を行うかを選択し、冗長な再送が検出された時、選
択した冗送処理を行うことを特徴とする請求項10記載
の耐故障型RPCシステム。 - 【請求項15】 受信した第1の要求メッセージの識別
情報を登録した冗送処理テーブルを記憶し、前記第1ま
たは第2のプロセスの故障時にも記憶内容が失われない
第1の記憶手段をさらに備え、 前記検出手段は、前記第1の要求メッセージの後に受信
した第2の要求メッセージの識別情報が前記冗送処理テ
ーブルに登録された識別情報と一致した時、該第2の要
求メッセージが冗長な再送であると判定することを特徴
とする請求項10記載の耐故障型RPCシステム。 - 【請求項16】 前記第1の記憶手段は、前記冗送処理
として自動返送処理を前記冗送処理テーブルに登録し、
該自動返送処理により返送する返信メッセージを記憶
し、冗長な再送が検出された時、前記返信手段は、該第
1の記憶手段に記憶された該返信メッセージを前記第1
のプロセスに返送することを特徴とする請求項15記載
の耐故障型RPCシステム。 - 【請求項17】 前記第1の記憶手段は、前記冗送処理
として返信生成処理を前記冗送処理テーブルに登録し、
冗長な再送が検出された時、前記返信手段は、該返信生
成処理により返信メッセージを生成して前記第1のプロ
セスに返送することを特徴とする請求項15記載の耐故
障型RPCシステム。 - 【請求項18】 前記第1の記憶手段は、さらに前記返
信生成処理に与えるパラメータを記憶し、冗長な再送が
検出された時、前記返信手段は、該第1の記憶手段に記
憶された該パラメータを用いて前記返信メッセージを生
成することを特徴とする請求項15記載の耐故障型RP
Cシステム。 - 【請求項19】 前記検出手段は、発信元プロセスのイ
ンカーネーション番号を含む前記識別情報を付加された
前記要求メッセージを受信し、該インカーネーション番
号を用いて前記要求メッセージが冗長な再送かどうかを
検出することを特徴とする請求項10記載の耐故障型R
PCシステム。 - 【請求項20】 サービスを要求する第1のプロセスが
サービスを提供する第2のプロセスに通信を介して依頼
した処理の結果を、該第2のプロセスから第1のプロセ
スに返送する耐故障型通信システムにおいて、 前記第1のプロセスからの要求メッセージを中継して、
前記第2のプロセスへ中継メッセージを送信する第1の
中継プロセスと、該第1の中継プロセスの故障時に処理
を引き継ぐ第2の中継プロセスとを有する中継手段と、 前記要求メッセージの識別情報と前記中継メッセージの
識別情報との対応関係を記憶し、前記第1の中継プロセ
スの故障時にも記憶内容が失われない第2の記憶手段と
を備えることを特徴とする耐故障型RPCシステム。 - 【請求項21】 前記第2の中継プロセスは、前記第1
の中継プロセスの故障時に、前記第2の記憶手段が記憶
する情報を参照して中継中の処理を引き継ぎ、該故障時
に中継中であった中継メッセージを前記第2のプロセス
に再送し、前記第1のプロセスから要求メッセージが再
送された時、再送した中継メッセージに対する該第2の
プロセスからの返信メッセージに基づいて該第1のプロ
セスに返信することを特徴とする請求項20記載の耐故
障型RPCシステム。 - 【請求項22】 前記第2の記憶手段は、前記識別情報
の対応関係に加えて前記中継メッセージの内容を記憶
し、前記第1の中継プロセスの故障時に、前記第2の中
継プロセスは該第2の記憶手段に記憶された中継メッセ
ージを再送することを特徴とする請求項21記載の耐故
障型RPCシステム。 - 【請求項23】 前記第2の中継プロセスは、前記第2
のプロセスに再送する中継メッセージの内容を指定する
ことを特徴とする請求項21記載の耐故障型RPCシス
テム。 - 【請求項24】 前記第2の中継プロセスは、前記第2
のプロセスから前記返信メッセージを受け取るまで、前
記第1のプロセスから再送された要求メッセージに関す
る処理を待ち合わせることを特徴とする請求項21記載
の耐故障型RPCシステム。 - 【請求項25】 前記第2の中継プロセスは、前記第1
の中継プロセスの故障時に、前記第2の記憶手段が記憶
する情報を参照して中継中の処理を引き継ぎ、該故障時
に中継中であったメッセージの処理をキャンセルし、前
記第2のプロセスに依頼した処理をキャンセルするよう
依頼することを特徴とする請求項20記載の耐故障型R
PCシステム。 - 【請求項26】 サービスを要求する第1のプロセスが
サービスを提供する第2のプロセスに通信を介して依頼
した処理の結果を、該第2のプロセスから第1のプロセ
スに返送する通信システムにおける耐故障通信方法であ
って、 要求メッセージを発信するプロセスの集合に対して設け
られた集合ポートの集合ポート識別子と、該集合内の各
プロセスのポートのポート識別子との対応関係を保持
し、 前記要求メッセージの最初の送信と再送信とに、同一の
集合ポート識別子を含む識別情報を自動的に付加し、 前記識別情報を付加された要求メッセージを、前記第1
のプロセスから第2のプロセスへ送信し、 該要求メッセージの該識別情報を調べて、該要求メッセ
ージが冗長な再送かどうかを自動的に検出し、 冗長な再送を検出した時、冗送処理を行って、前記第2
のプロセスが実行した処理の結果を前記第1のプロセス
に返信することを特徴とする耐故障通信方法。 - 【請求項27】 サービスを要求する第1のプロセスが
サービスを提供する第2のプロセスに通信を介して依頼
した処理の結果を、該第2のプロセスから第1のプロセ
スに返送する通信システムにおける耐故障通信方法であ
って、 前記第1のプロセスからの要求メッセージを中継して、
前記第2のプロセスへ中継メッセージを送信し、 前記要求メッセージの識別情報と前記中継メッセージの
識別情報との対応関係を、中継機能の故障時にも記憶内
容が失われない記憶領域に保持し、 前記中継機能の故障時に、前記記憶領域内の情報を参照
して、中継中であった中継メッセージを前記第2のプロ
セスに再送し、 前記第1のプロセスから要求メッセージが再送された
時、再送した中継メッセージに対する該第2のプロセス
からの返信メッセージに基づいて、該第1のプロセスに
返信することを特徴とする耐故障通信方法。
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)
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)
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)
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 |
-
1995
- 1995-08-28 JP JP7218391A patent/JPH0962526A/ja not_active Withdrawn
-
1996
- 1996-08-23 GB GB9617654A patent/GB2305087B/en not_active Expired - Fee Related
- 1996-08-23 GB GB0003748A patent/GB2344035B/en not_active Expired - Fee Related
- 1996-08-26 US US08/703,059 patent/US5802298A/en not_active Expired - Lifetime
Cited By (5)
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 |