JPH076139A - リモートプロシジャコールシステム - Google Patents

リモートプロシジャコールシステム

Info

Publication number
JPH076139A
JPH076139A JP5149027A JP14902793A JPH076139A JP H076139 A JPH076139 A JP H076139A JP 5149027 A JP5149027 A JP 5149027A JP 14902793 A JP14902793 A JP 14902793A JP H076139 A JPH076139 A JP H076139A
Authority
JP
Japan
Prior art keywords
error
node
request
rpc
network address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5149027A
Other languages
English (en)
Inventor
Naoki Hiraoka
直樹 平岡
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5149027A priority Critical patent/JPH076139A/ja
Publication of JPH076139A publication Critical patent/JPH076139A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 リモートプロシジャコールがネスト形式にな
っている場合、エラーを発見したノードが、最初の要求
元と途中のノードに直接エラー報告することにより、関
連する資源をいち早く解放しようとするものである。 【構成】 アプリケーション2からプロシジャの要求を
RPCシステム3に出すと、その要求を他ノードへ転送
する。この時、ネットワークアドレス情報転送装置4
は、どのRPC処理に関係したかを示すネットワークア
ドレス情報をその要求先に送る。エラーが発生した場合
は、直接エラー送受信装置5がネットワークアドレス情
報転送装置4が保持している全てのアドレス先のノード
へ直接エラー報告を行う。直接エラー送受信装置5が、
直接エラーを受信するとRPC処理装置3を介してアプ
リケーション2にエラーを通知する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報の分散処理技術に
係り、特に分散しているシステムが他のシステムと通信
するためのリモートプロシジャコール(以下、RPCと
記す)システムに関するものである。
【0002】
【従来の技術】従来のRPCの技術は、処理を要求する
側(クライアント)と処理を実行する(サーバ)間の1
対1の関係でのみ実現された技術であり、クライアント
が実行要求(コール)し、サーバが結果を返す(リター
ン)ものである。
【0003】これらのRPCの従来技術についてはエイ
・シ・エム・トランザクション・オン・コンピュータ・
システムズ ボリューム2.ナンバー1(1984年2
月)第39ページから59ページ(ACM Transaction on
Computer Systems, Vol.2,NO.1, February 1984、 Pag
e39-59)、プレンティスホール社(PRENTICE HALL)が出
版したエーティアンドティ ユニックス システム フ
ァイブ リリース4プログラマーズガイド:ネットワー
キング インタフェース(AT&T UNIX SYSTEMV REREAS E4
Programmer's Guide:Networking Interfaces)及びLザ
ーン著ネットワーク コンピューティング アーキテク
チャ(1991年)(L.Zahn Network Computing Archit
ecture 1991)で論じられている。
【0004】従来技術でプロシジャコールのネストの場
合の処理は、1対1のRPC技術の組み合わせである。
【0005】このような従来技術におけるプロシジャコ
ールのネストの場合のエラー処理を図12に示す。ノー
ド1xはノード1yへの処理要求22yを出し、ノード
1yは、ノード1zへの処理要求22zを出す。ここ
で、ノード1zがエラーを検知した場合、ノード1z
は、ノード1yへエラー報告23zを送り、ノード1y
が、ノード1xへエラー報告23yを送る処理となる。
【0006】そして、アプリケーションプログラム2
y,2zを介し、エラー報告を行い、システム資源21
y,21zを解放している。
【0007】
【発明が解決しようとする課題】しかし、従来のRPC
の技術において、リモートプロシジャコールがネストの
形式になっている場合のエラーの報告は、途中のノード
を順々に経由して要求元のノードに送られるため、要求
元のノードの待ち時間が長くなり、要求元及び途中のノ
ードのシステム資源の開放がすぐにできないという問題
点がある。
【0008】本発明の目的は、エラー時におけるRPC
処理に関するシステム資源の保持時間を短縮させること
である。
【0009】
【課題を解決するための手段】前記の目的を達成するた
めに、プロシジャコールがネストする場合、ノードはプ
ロシジャ要求(以下、RPC要求と記す)が経由した全
てのRPCシステムのあるノードのネットワーク上のア
ドレス等の情報を持つネットワークアドレス関連情報の
リストを作成する手段と、前記ネットワークアドレス情
報リストを次のRPCをコールするノードに渡す手段
と、要求処理中にエラーが発生したときに、ネットワー
クアドレス関連情報リスト先全てのノードにエラーを報
告する手段を設ける。
【0010】また、前記手段にアプリケーションエラー
を報告する手段を設ける。
【0011】
【作用】前記手段によれば、経由した全てのRPCシス
テムのあるノードヘアドレス情報のリストを処理の要求
と共に転送し、エラーが発生したときにそのアドレス情
報のリストに記載されているノード全てにエラー報告を
行うようすることにより、エラー時におけるRPC処理
に関するシステム資源の保持時間を短縮させることが可
能になる。
【0012】そして、アプリケーションエラーもアプリ
ケーションが関数をコールすることにより、RPCシス
テムにエラーを報告できる。
【0013】
【実施例】以下、本発明の実施例を図面により詳細に説
明する。
【0014】図1は本実施例のRPCシステムの構成を
示すブロック図である。
【0015】図1に示すようにノード1は、アプリケー
ションプログラム2、RPCシステム3、ネットワーク
インタフェース9から構成されている。
【0016】そして、RPCシステム3は、ネットワー
クアドレス生成及び転送部4、直接エラー送受信部5、
アプリケーションエラー伝達部6、データ処理部7、プ
ロトコル処理部8からなる。
【0017】次に、図2、図3を用い、本実施例のRP
Cシステムのエラー時の処理動作を説明する。
【0018】図2は、ノード1aがノード1bに処理を
要求22aし、更にノード1bが、他のノード1cに処
理を要求22bし、また更にノード1cがノード1dに
処理を要求する場合の例を示したものである。
【0019】図3は、要求元のノードが生成するリモー
トプロシジャコール制御情報を示したものである。
【0020】RPC制御情報は、RPC要求の場合のプ
ロトコルのデータ形式を表しており、先頭からこのプロ
トコルの形式のパケット種別31、RPCバージョン情
報32、要求の識別子33、転送するネットワークアド
レス関連情報リスト34からなる。
【0021】要求の識別子33は、要求を識別する20
桁くらいの英数字の組み合わせからなるもので、図2の
要求元ノード1aが生成する。要求元ノード1aからR
PC要求を受けたノード1bのネットワークアドレス生
成及び転送部4は、ノード1aのアドレス関連情報をネ
ットワークアドレス関連情報リスト34に追記する。
【0022】ノード1bのRPCシステムは、これらの
情報と共にRPC要求22bの内容をノード1cへ送
る。
【0023】ノード1cが、更にRPCの要求22cを
ノード1dに行う場合も前記同様な処理でノード1bの
アドレスをネットワークアドレス関連情報リスト34に
追記してノード1dへRPC要求する。この場合、要求
の識別子33は、ノード1aで生成したものと同じ値で
ある。また、プロシジャのネストが続く限り同様な処理
を続ける。
【0024】ここで、ノード1dでエラーが発生した際
には、エラーを検知したノード1dの直接エラー送受信
部5が、ネットワークアドレス関連情報リスト34に格
納されている全てのノードに対し、エラー報告を送る。
この場合、同じ要求の識別子33を持つプロシジャに対
しエラーが通知される。
【0025】この時送るエラーのプロトコルのデータ形
式を図4に示す。エラー報告のプロトコルのデータは、
エラー報告パケット31b、RPCバージョン情報32
及び要求の識別子33からなるRPC制御情報30であ
る。
【0026】このエラーを受け取った各ノード1a,1
b,1cの直接エラー送受信部5は、RPCを発行した
アプリケーションプログラム2a,2b,2cに対し、
エラー通知を行い、システム資源21a,21b,21
cを解放する。
【0027】各ノード上のアプリケーションプログラム
2ヘのエラー通知方法には、エクセプション(例外通
知)として送る方法及びリターンコードにエラーをセッ
トする方法などがある。
【0028】エクセプションで通知した場合、アプリケ
ーションプログラム2のエクセプションハンドラールー
ティンが対応する処理を行う。
【0029】リターンコードを返す場合は、アプリケー
ションプログラム2がそのリターンコードを受信するこ
とでプロシジャが終了する。その後、このリターンコー
ドを後処理の目的に使用できる。
【0030】また、アプリケーションエラーが発生した
場合には、アプリケーションエラーの発生をアプリケー
ションエラー伝達部6に通知するための通知関数を新た
に定義する。この通知関数は、正常に動作を行っている
ときは、一定の値が通知され、アプリケーションエラー
時には、違った値が通知される。
【0031】したがって、アプリケーションエラー時に
アプリケーションプログラムがこのエラー通知関数をコ
ールすることにより、アプリケーションエラー伝達部6
にエラーの発生を報告する。
【0032】そして、アプリケーションエラー伝達部6
は、直接エラー送受信部5を介し、前述と同様に、関連
するノードにエラー通知を行うことを要請する。
【0033】次に、図5に示すようにRPCが並行して
2つ以上のノードをコールした場合のエラー処理につい
て述べる。
【0034】図5は、要求元ノード1eからRPCの要
求22dを受けたノード1fから、更にノード1g、ノ
ード1iに対して同時にRPCの要求22e、22gを
行い、更にノード1g、1iは、それぞれノード1h、
1jに対してRPCの要求22f、22hを行った場合
の例を示したものであり、ここで、ノード1hにてエラ
ーが発生したとする。
【0035】要求元ノード1eで生成されたネットワー
クアドレス関連情報リスト34には、要求元ノード1e
からエラーが発生したノード1hまで経由したノードの
アドレスが書き込まれている。このリストより、前述同
様に、ノード1hからノード1e、1f、1gへ直接エ
ラー報告23d、23e、23fを送る。
【0036】ここで、分岐したRPCの要求22gを出
したノード1fがエラー報告を受けた時には、ノード1
iに対してRPCの処理のキャンセルの要求50aを出
す。そして、このキャンセルの要求50aを受けたノー
ド1iは、RPCの要求22hを出したノード1jに対
して、キャンセルの要求50bを出す。
【0037】このキャンセルの要求のデータ形式を図6
に示す。キャンセルの要求は、キャンセル要求パケット
31c、RPCバージョン情報32及び要求の識別子3
3からなるRPC制御情報30である。
【0038】キャンセルの要求は、ノード内で同じ要求
の識別子を持つプロシジャがそのコール先へ出す。ま
た、この分岐先のノードでRPCがネストしている場合
は、キャンセル要求を先へ先へと出す。
【0039】したがって、前述の図2の例と同様に、R
PCのエラー時に全ての関連する資源を比較的早く開放
できるようになる。
【0040】また、従来の方式と本発明のエラーリター
ン方式の採用の選択は、アプリケーションプログラムの
コンパイル時に指定したり、コマンド等により指定でき
るようにすることにより、従来方式と本発明の方式を双
方利用できる。
【0041】次に、本実施例の処理手順について、図7
から図11のフローチャートを用い説明する。
【0042】まず、図7で最初の要求元のノードの処理
手順を示す。RPCでアプリケーションからRPCシス
テムに要求が来ると、最初の要求元ノードのネットワー
クアドレス生成及び転送部4は、要求の識別子33及び
経由ノードのネットワークアドレス情報リスト34を生
成する(ステップ701,702)。そして、ネットワ
ークアドレス情報リストカウンター34dに、0をセッ
トする(ステップ703)。
【0043】以上3つの生成物を図3に示すようなプロ
トコルのデータ形式に代入(ステップ704)し、他の
ノードへこのプロトコルを送る(ステップ705)。
【0044】次に、途中のノードの処理手順を図9に示
す。図3に示すようなプロトコルデータを受け取ったノ
ードは、他のノードへプロシジャを更にコールしている
かどうかを判断し(ステップ801)、コールしていな
い場合は、アプリケーションの実行結果を返す。他のノ
ードに対して、RPCの要求をしている場合は、RPC
の要求元のノードから送られてきた経由ノードのネット
ワークアドレス関連情報リスト34に要求元のネットワ
ークアドレスを追記し(ステップ802)、ネットワー
クアドレスリストカウンター34dに1を加える(ステ
ップ803)。そして、プロトコルデータを他ノードへ
送出する(ステップ804)。これをRPCの要求を行
った全てのノードに対して行う。
【0045】そして、エラーを検知したノードの処理手
順を図9に示す。エラーがアプリケーションエラーであ
るか判断し(ステップ901)、アプリケーションのエ
ラーの場合は、アプリケーションプログラム2が、アプ
リケーションエラーを直接返す関数を発行(ステップ9
02)し、それをアプリケーションエラー伝達部が受け
取る。RPCシステムエラーの場合は、RPCシステム
が検知する。
【0046】そして、ネットワークアドレスリストカウ
ンター34dの値を判定する(ステップ903)。
【0047】リストカウンタ34dの値が”0”の場合
は、エラー報告を要求元ノードに行い、”0”でない場
合は、ネットワークアドレス情報リスト34からネット
ワークアドレス情報を1つ取り込む(ステップ90
4)。
【0048】そして、図4に示すようなプロトコルのデ
ータ形式に要求の識別子33を代入し、ネットワークア
ドレス関連情報リスト34にあるノードへ送出し(ステ
ップ905)、ネットワークアドレスリストカウンタ3
4dから1を引き(ステップ906)、同様の処理をネ
ットワークアドレスリストカウンタ34dが”0”にな
るまで行い、”0”になると処理が終了する。
【0049】次に、図4で示した形式のプロトコルを受
信したノードの処理手順を図10に示す。エラー直接送
受信部5は、アプリケーションプログラム2にRPCで
エラーがあったことを報告する(ステップ1001)。
そして、RPCシステム3が他のノードに要求を出して
いるかどうかをを判定する(ステップ1002)。
【0050】要求を出している場合は、図6に示すよう
なプロトコルのデータ形式に要求の識別子33を代入し
て、要求先に図6に示すキャンセルを通知するプロトコ
ルを送出(ステップ1003)する。要求を出していな
い場合は、処理を終了する。
【0051】最後に、図6で示した形式のプロトコルを
受信したノードの処理手順を図11に示す。プロトコル
のキャンセルの要求を受信するとRPCで要求された処
理をキャンセルする(ステップ1101)。そして、他
のノードに要求を出しているかを判定する(ステップ1
102)。
【0052】要求を出している場合は、図6に示すプロ
トコルのデータ形式に要求の識別子33を代入し、要求
先に図6に示すキャンセルを通知するプロトコルを送出
する(ステップ1103)。要求を出していない場合
は、処理を終了する。
【0053】以上、説明したように、経由した全てのR
PCシステムのあるノードヘアドレス情報のリストをR
PCの要求とともに転送し、エラーが発生したときにそ
のアドレス情報のリストに記載されているノード全てに
エラー報告を行うようすることにより、エラー発生時に
要求元のRPCの待ち時間が短くなり、経由ノードのR
PCの待ち時間が短縮されるので、RPCに関係する資
源がいち早く解放されることにより、RPC処理の全体
の性能向上の効果がある。
【0054】
【発明の効果】以上説明したように、本発明によれば、
エラー発生時に要求元のRPCの待ち時間が短くなり、
経由ノードのRPCの待ち時間が短縮されるので、RP
Cに関係する資源がいち早く解放されることにより、R
PC処理の全体の性能向上の効果がある。
【0055】また、アプリケーションのエラー時にアプ
リケーションプログラムがこのエラー通知関数をコール
することにより、エラーの報告ができる。
【図面の簡単な説明】
【図1】本発明の一実施例のRPCシステムの構成を示
すブロック図である。
【図2】本実施例のRPCシステムのエラー時の処理動
作を説明するための図である。
【図3】本実施例のプロシジャ要求のプロトコルのデー
タ形式を示した図である。
【図4】本実施例のエラーを報告するプロトコルのデー
タ形式を示した図である。
【図5】本実施例の分岐ノードを含むRPCシステムの
エラー時の処理動作を説明するための図である。
【図6】本実施例のキャンセル要求のプロトコルのデー
タ形式を示した図である。
【図7】本実施例の最初の要求元ノードの処理手順を示
したフローチャートである。
【図8】本実施例の途中のノードの処理手順を示したフ
ローチャートである。
【図9】本実施例のエラーを検知したノードの処理手順
を示したフローチャートである。
【図10】本実施例のエラーを直接受けたノードの処理
手順を示したフローチャートである。
【図11】本実施例のキャンセルを受けたノードの処理
手順を示したフローチャートである。
【図12】従来のRPCシステムのエラー時の処理動作
を説明するための図である。
【符号の説明】
1…ノード、2…アプリケーションプログラム、3…R
PCシステム、4…ネットワークアドレス生成及び転送
部、5…直接エラー送受信部、6…アプリケーションエ
ラー伝達部、7…データ処理部、8…プロトコル処理
部、9…ネットワークインタフェース、21…資源、2
2…RPC要求、23…エラー報告、30…RPC制御
情報、31…パケット種別、32…RPCバージョン情
報、33…要求の識別子、34…ネットワークアドレス
情報リスト、40…データ、50…キャンセル要求。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 分散している別のシステムのプロシジャ
    をコールするリモートプロシジャコールシステムにおい
    て、別のシステムによってプロシジャをコールされたシ
    ステムが、更にまた別システムへのプロシジャ要求を行
    うというプロシジャコールがネストする際に、プロシジ
    ャ要求が経由したリモートプロシジャコールシステムが
    設置されている全てのノードのネットワーク上のアドレ
    ス等の情報を持つネットワークアドレス関連情報のリス
    トを作成する手段と、前記ネットワークアドレス情報リ
    ストを次のRPCをコールするノードに渡す手段と、要
    求処理中にエラーが発生したときに、ネットワークアド
    レス関連情報リスト先全てのノードにエラーを報告する
    手段とを設けたことを特徴とするリモートプロシジャコ
    ールシステム。
  2. 【請求項2】 前記請求項1に記載されているリモート
    プロシジャコールシステムにおいて、アプリケーション
    エラーを報告する手段を設けたことを特徴とするリモー
    トプロシジャコールシステム。
JP5149027A 1993-06-21 1993-06-21 リモートプロシジャコールシステム Pending JPH076139A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5149027A JPH076139A (ja) 1993-06-21 1993-06-21 リモートプロシジャコールシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5149027A JPH076139A (ja) 1993-06-21 1993-06-21 リモートプロシジャコールシステム

Publications (1)

Publication Number Publication Date
JPH076139A true JPH076139A (ja) 1995-01-10

Family

ID=15466074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5149027A Pending JPH076139A (ja) 1993-06-21 1993-06-21 リモートプロシジャコールシステム

Country Status (1)

Country Link
JP (1) JPH076139A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154269B2 (en) 2010-07-09 2015-10-06 Thomson Licensing Method for operating a remote procedure call handler in a client and a server and computer system comprising the same
JP2015210791A (ja) * 2014-04-30 2015-11-24 富士通株式会社 分散処理装置、分散処理システム、および分散処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154269B2 (en) 2010-07-09 2015-10-06 Thomson Licensing Method for operating a remote procedure call handler in a client and a server and computer system comprising the same
JP2015210791A (ja) * 2014-04-30 2015-11-24 富士通株式会社 分散処理装置、分散処理システム、および分散処理プログラム

Similar Documents

Publication Publication Date Title
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
EP1027794B1 (en) Method and system for facilitating distributed software development in a distribution unaware manner
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
EP0006216B1 (en) Improvements in digital data processing systems
US7529823B2 (en) Notifications for shared resources
US6412034B1 (en) Transaction-based locking approach
US6920475B1 (en) Communication architecture for distributed computing environment
JP2000163372A (ja) トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2001522086A (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
CN113268471B (zh) 处理分布式事务的方法、代理连接池、系统、设备及介质
US20070233876A1 (en) Interprocess communication management using a socket layer
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
JPH076139A (ja) リモートプロシジャコールシステム
CN112181681A (zh) 一种远程调用方法、装置、计算机设备及存储介质
JPH0628322A (ja) 情報処理装置
US7752254B2 (en) Propagating contexts between a first and second system
Goscinski et al. Message passing and RPC-based interprocess communication mechanisms in the RHODOS microkernel
JP4668367B2 (ja) コンピュータ、並列分散システムおよび機能呼び出し方法
Millard et al. Support for ADA intertask communication in a message-based distributed operating system
JPS63167938A (ja) 信号処理装置及び信号処理方法
JPH0221354A (ja) コンピュータネットワークシステムにおける遠隔機能実行方式
JP2000259436A (ja) 分散オブジェクト環境における排他制御方式
JP3320221B2 (ja) クライアント/サーバシステムおよび同システム用ワークステーション装置
JPH0314058A (ja) クライアントとサーバ間のメッセージ通信制御方式