JPH08161163A - 分散プロセス改版方法 - Google Patents

分散プロセス改版方法

Info

Publication number
JPH08161163A
JPH08161163A JP6283790A JP28379094A JPH08161163A JP H08161163 A JPH08161163 A JP H08161163A JP 6283790 A JP6283790 A JP 6283790A JP 28379094 A JP28379094 A JP 28379094A JP H08161163 A JPH08161163 A JP H08161163A
Authority
JP
Japan
Prior art keywords
signal
message
group
event
old
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
JP6283790A
Other languages
English (en)
Inventor
Hiroaki Higaki
博章 桧垣
Yutaka Hirakawa
豊 平川
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP6283790A priority Critical patent/JPH08161163A/ja
Publication of JPH08161163A publication Critical patent/JPH08161163A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Telephonic Communication Services (AREA)

Abstract

(57)【要約】 【目的】 分散システムの正しいアプリケーションプロ
グラム実行を保証しつつ、一時停止オーバヘッドの小さ
い改版処理を実現する分散プロセス改版方法を提供す
る。 【構成】 プロセス1は他のプロセスとメッセージ通信
を行いながらアプリケーションプログラム2に記述され
た処理を行う。アプリケーションプログラム2には宛先
プロセス名とメッセージ送信イベント6およびメッセー
ジ受信イベント7が記述され、これらの実行時にそれぞ
れ送信イベント処理部3に対して宛先プロセス名と送信
イベント処理要求が出され、受信イベント処理部4に受
信イベント処理要求が出される。送信イベント処理部3
および受信イベント処理部4はそれぞれアプリケーショ
ンプログラムからのメッセージ送信イベント処理要求お
よびメッセージ受信イベント処理要求に対する処理を行
う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、分散システムで運用中
の旧版プロセスを、旧版プロセスが実行しているアプリ
ケーションプログラムに対して機能追加や機能変更を加
えたアプリケーションプログラムを実行する新版プロセ
スに置き換える分散プロセス改版方法に関する。
【0002】
【従来の技術】長期的継続運用が可能なシステムを実現
するためには、システムに対するユーザの要求やシステ
ムを取り巻く環境の時間的変化に対して柔軟に対応する
力をシステムが具備する必要がある。分散システムにお
いては、システムを構成するプロセスを置き換える改版
処理によって機能追加や機能変更を可能とし、これらの
変化への柔軟な対応を実現している。
【0003】従来、提案されてきた改版処理手法は、改
版処理の影響によって未定義受信やデッドロックが発生
することを完全に回避するように設計されている(文献
1:"Dynamically Updating Distributed Software:Sup
porting Change in Uncertain and Mistrustful Enviro
nments",M.E.Segal 等、Proceedings of IEEE Conferen
ce on Software Maintenance,pp.254-261 (1989)、文献
2:"The Evolving Philosophers Problem:Dynamic Cha
nge Management",J.Kramer等、IEEE Transaction on So
ftware Engineering,vol.16,No.11,pp.1293-1306 (199
0) 参照)。
【0004】これらの手法では、すべての改版対象のプ
ロセスおよびこれらとの間に処理依存関係を持つすべて
のプロセスを同時に停止させた安定状態で、すべての改
版対象プロセスの置換を実行する。文献1では、改版対
象プロセスおよびこれらに対してリモートプロシージャ
コールによる手続き呼び出しをする可能性を持つすべて
のプロセスの一時停止を確認した後に、プロセス置換を
実行する。文献2では、改版対象サーバプロセスおよび
これらに対して処理を依頼する可能性を持つすべてのク
ライアントプロセスの一時停止を確認した後に、プロセ
ス置換を実行する。このように、継続運用中の分散シス
テムへの機能追加や機能変更をシステム動作の一時停止
によって実現する方法は、未定義受信やデッドロックを
発生しないという意味では安全である。しかしながら、
分散システムの大規模化に伴って、システムを一時停止
するオーバヘッドは増大している。また、これらの手法
の適用可能な分散アプリケーションの範囲は、プロセス
間の関係が静的に解析可能な2者間の主従関係のみで構
成されるリモートプロシージャコールタイプやクライア
ントサーバタイプに限定されている。
【0005】一方、コンピュータネットワークシステ
ム、分散制御システム、協調型問題解決支援システム
(分散AI)、協調作業支援システム、分散データベー
スシステムなどの近年の多くの分散システムでは、対等
なプロセスが自律的に動作、通信するパートナタイプ分
散アプリケーションが実行されている。パートナタイプ
分散アプリケーションにおけるプロセス間依存関係は、
動的に決定され、ひとつのプロセスが同時に複数のプロ
セスと依存関係を持つという特徴がある。このため、静
的な依存関係解析は困難であり、可能な場合でも、従来
手法における同期停止を行うべきプロセス数が多くな
り、改版処理に多大な時間および通信オーバヘッドを要
する。従来手法がパートナタイプ分散アプリケーション
に対して適用困難であることは、文献"Application Lev
el Programming",M.R.Barbacci等、Proceedings of 9th
ICDCS,pp.458-465(1990) に指摘されている。
【0006】なお、分散システムを構成するプロセス間
の通信チャネルは、FIFO(First-inFirst-out)である
ものとする。また、旧版プロセスのみからなるシステ
ム、新版プロセスのみからなるシステムはともにプロセ
ス間通信において未定義受信やデッドロックを発生しな
いものとする。
【0007】
【発明が解決しようとする課題】上述したように、複数
のプロセスを同期停止させた安定状態でプロセス置換を
行う従来の改版方法は、対等なプロセスが自律的に動
作、通信する分散アプリケーションに対して適用困難と
いう問題がある。
【0008】本発明は、上記に鑑みてなされたもので、
その目的とするところは、複数プロセスの同期停止を必
要とせずに、複数の改版対象旧版プロセスが独立に新版
プロセスを起動することで改版処理を開始するととも
に、このとき旧版プロセスはただちに停止終了するので
はなく、動作を継続し、新版プロセスの処理によって未
定義受信かデッドロックを発生する場合には、旧版プロ
セスによる処理を再開させることによって、分散システ
ムの正しいアプリケーションプログラム実行を保証しつ
つ、一時停止オーバヘッドの小さい改版処理を実現する
分散プロセス改版方法を提供することにある。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明の分散プロセス改版方法は、複数のプロセス
が互いにメッセージ通信を行いながら処理を進める分散
処理環境上で、運用中のプロセスである旧版プロセス
を、旧版プロセスが実行しているアプリケーションプロ
グラムに機能追加や機能変更を加えたアプリケーション
プログラムを実行する新版プロセスに置き換える分散プ
ロセス改版方法であって、各旧版プロセスは、それぞれ
独自のプロセスグループを構成し、アプリケーションプ
ログラムの改版時に独立に新版プロセスを前記プロセス
グループ内に起動し、プロセスがアプリケーションプロ
グラムからのメッセージ送信イベント実行要求に対し
て、新版プロセスが起動されているプロセスグループで
は、新版プロセスは、無設定の旨のチェックポイント設
定情報を付加したグループ通信信号を宛先プロセスグル
ープに送信するとともに、該メッセージと宛先プロセス
グループと受信イベントの旨のイベント種別から構成さ
れるイベント情報信号を自プロセスグループ内の旧版プ
ロセスに送信し、旧版プロセスは、該グループ通信信号
を宛先プロセスグループに通知し、旧版プロセスが送信
イベントで送信するべきメッセージ、宛先、受信のイベ
ント種別のいずれかが旧版プロセスが送信用に事前に受
信した信号と異なっている場合にはチェックポイントを
設定し、新版プロセスが起動されていないプロセスグル
ープでは、旧版プロセスが宛先プロセスグループに前記
グループ通信信号を送信し、プロセスがアプリケーショ
ンプログラムのメッセージ受信イベント実行要求に対し
て、新版プロセスが起動されているプロセスグループで
は、新版プロセスは、メッセージを受理できないならば
自プロセスを放棄してロールバック処理を開始し、受信
信号に含まれるメッセージが受信イベントで受理できる
メッセージならば、該メッセージをアプリケーションプ
ログラムに配付するとともに、該メッセージに送信元と
受信のイベント種別を付加したイベント情報信号を自プ
ロセスグループ内の旧版プロセスに送信し、旧版プロセ
スは、前記グループ通信信号と、該信号と対応する前記
イベント情報信号を受信し、後者に前者中のチェックポ
イント設定情報を加えた信号を受信信号とし、受信信号
中のイベント種別が受信でない場合またはチェックポイ
ント設定情報が設定済みの場合、チェックポイントを設
定し、それ以外は該メッセージをアプリケーションプロ
グラムに配付し、新版プロセスが起動されていないプロ
セスグループでは、旧版プロセスは、送信元の新版プロ
セスと旧版プロセスから前記グループ通信信号を受信し
た場合、前者を破棄し、後者を受信信号とし、タイムア
ウトを設定して、タイムオーバ以前に他のプロセスグル
ープから信号を受信したらタイムアウトをリセットし、
設定したタイムアウトがタイムオーバとなった場合、ロ
ールバック処理を開始し、送信元プロセスグループがチ
ェックポイントを設定している場合は、チェックポイン
トを設定し、チェックポイントが設定されていない場合
または受信信号に含まれるメッセージが受信イベントで
受理できるメッセージならば、該メッセージをアプリケ
ーションプログラムに配付し、ロールバック処理とし
て、プロセスがチェックポイントを設定した後に信号を
送受したすべてのプロセスグループで設定されたチェッ
クポイントに旧版プロセスをロールバックさせて実行再
開させることを要旨とする。
【0010】
【作用】本発明の分散プロセス改版方法では、改版対象
プロセス毎に独立に改版処理を開始することができ、複
数のプロセスを同期停止するオーバヘッドを必要とせ
ず、また従来の方法では適用不可能であったパートナタ
イプ分散アプリケーションにおける改版処理が可能とな
り、新旧版のアプリケーションプログラムがシステムに
混在することによって発生する可能性がある未定義受信
とデッドロックをプロセスが実行するアプリケーション
プログラム間の通信に対しては隠蔽することができるた
めに、改版処理の影響によってシステムが回復不能な異
常状態に陥ることがなく、ロールバック後の旧版プロセ
スからなるシステムが未定義受信とデッドロックを発生
しないことを保証できる。
【0011】
【実施例】以下、図面を用いて本発明の実施例を説明す
る。
【0012】まず、本発明の分散プロセス改版方法につ
いて概略的に説明する。
【0013】改版処理の対象となる分散システムを構成
する各プロセスはそれぞれひとつのプロセスグループに
属するとし、プロセスが実行するアプリケーションプロ
グラムに記述されたメッセージ通信をプロセスグループ
間通信として実現する。各プロセスは、他のプロセスと
の同期を必要とせず、独立に新版プロセスをプロセスグ
ループ内に起動する。この結果、プロセスグループに
は、改版処理が開始されていないために単一版のプロセ
スのみが含まれる場合と改版処理を実行しているために
新旧2版のプロセスが含まれる場合が存在する。
【0014】アプリケーションプログラムが送信イベン
トを実行する場合にプロセスが行う処理手順は以下の通
りである。
【0015】図2に示すように、改版処理実行中のプロ
セスグループでは、新版プロセスはアプリケーションプ
ログラムから送信要求されたメッセージを含むグループ
通信信号を宛先プロセスグループに送信するとともに、
同一メッセージを含むイベント情報信号を旧版プロセス
にも送信する。旧版プロセスは、新版プロセスから受信
した信号によって新版プロセスが実行したイベントを知
ることができる。
【0016】もし、新版プロセスが実行したイベント
が、旧版プロセスがアプリケーションプログラムから送
信要求されたものと同じメッセージの送信イベントであ
るならば、旧版プロセスはこのメッセージを含むグルー
プ通信信号を宛先プロセスグループに送信する。もし、
新版プロセスが実行したイベントが、旧版プロセスがア
プリケーションプログラムから送信要求されたものとは
異なるメッセージの、または異なる宛先の送信イベント
であるならば、旧版プロセスは新版プロセスから受信し
た信号に含まれるメッセージを含むグループ通信信号を
このメッセージの宛先プロセスグループに送信し、チェ
ックポイントを設定し、該チェックポイントから動作を
再開するためのロールバック処理を行うまでアプリケー
ションプログラムの実行を一時停止する。
【0017】もし、新版プロセスが実行したイベントが
受信イベントであるならば、旧版プロセスはチェックポ
イントを設定し、ロールバック処理を行うまでアプリケ
ーションプログラムの実行を一時停止する。改版処理を
開始していないプロセスグループに属する単一版プロセ
スは、アプリケーションプログラムから送信要求された
メッセージを含むグループ通信信号を宛先プロセスグル
ープに送信する。ここで、宛先プロセスグループに送信
されるすべてのグループ通信信号には、送信したプロセ
スグループがチェックポイントを設定しているか否かの
情報を付加することとする。
【0018】アプリケーションプログラムが受信イベン
トを実行する場合にプロセスが行う処理手順は以下の通
りである。
【0019】改版処理中のプロセスグループでは、新版
プロセスは、受信したグループ通信信号に含まれるメッ
セージが新版プロセスのアプリケーションプログラムで
予め設定された受理可能なメッセージである場合にはア
プリケーションプログラムに配付するとともに、このメ
ッセージを含むイベント情報信号を旧版プロセスに送信
する。受理不可能なメッセージである場合には、新版プ
ロセスは停止し、このプロセスグループにおける改版処
理は中断される。旧版プロセスは、新版プロセスから受
信したイベント情報信号によって新版プロセスが実行し
たイベントを知ることができる。
【0020】もし、新版プロセスが実行したイベントが
受信したイベントであり、新版プロセスがアプリケーシ
ョンプログラムへ配付したメッセージを旧版プロセスの
アプリケーションプログラムも受理可能であるならば、
旧版プロセスもアプリケーションプログラムへこのメッ
セージを配付する。このとき、もしこの信号の送信元プ
ロセスグループがチェックポイント設定済みであるとい
う情報がこの信号に含まれているならば、旧版プロセス
はチェックポイントを設定し、ロールバック処理を行う
までアプリケーションプログラムの実行を一時停止す
る。もし、新版プロセスが実行したイベントは受信イベ
ントであるが、新版プロセスがアプリケーションプログ
ラムへ配付したメッセージを旧版プロセスのアプリケー
ションプログラムは受理できないならば、旧版プロセス
はチェックポイントを設定し、ロールバック処理を行う
まではアプリケーションプログラムの実行を一時停止す
る。
【0021】もし、新版プロセスが実行したイベントが
送信イベントであるならば、旧版プロセスは新版プロセ
スから受信したイベント情報信号に含まれるメッセージ
を含むグループ通信信号をこのメッセージの宛先プロセ
スグループに受信し、チェックポイントを設定し、ロー
ルバック処理を行うまでアプリケーションプログラムの
実行を一時停止する。改版処理を開始していないプロセ
スグループに属する単一版プロセスは、グループ通信信
号を受信していない場合はタイムアウトを設定する。
【0022】もし、タイムオーバ前に他のプロセスグル
ープからグループ通信信号を受信した場合は、設定した
タイムアウトをリセットして以下の処理を行う。もし、
受信信号に含まれるメッセージをアプリケーションプロ
グラムで受理することが可能であるならば、アプリケー
ションプログラムへこのメッセージを配付する。このと
き、このグループ通信信号の送信元プロセスグループが
チェックポイント設定済みであるという情報がこの信号
に含まれているならば、単一版プロセスはチェックポイ
ントを設定する。もし、受信信号に含まれるメッセージ
をアプリケーションプログラムで受理することが不可能
であるならば、ロールバック処理を開始する。信号を受
信することなくタイムオーバした場合には、デッドロッ
クの検出を送信元プロセスグループに通知する。
【0023】ロールバックの処理手順は以下の通りであ
る。
【0024】受信イベント実行時に新版プロセスがアプ
リケーションプログラムで受理できないメッセージを含
むグループ通信信号を受信した場合、他のプロセスグル
ープからロールバック処理を要求する回復信号を受信し
た場合、または改版実行中のプロセスグループが改版処
理を開始していないプロセスグループからデッドロック
検出を通知するデッドロック検出信号を受信した場合に
は、チェックポイント設定済みの情報を含んだグループ
通信信号を送受信したすべてのプロセスグループにロー
ルバック処理を要求する回復信号を送信する。その後、
この回復信号の宛先プロセスグループのすべてからロー
ルバック処理を要求する回復信号を受信した時点で、設
定されているチェックポイントから旧版プロセスが処理
を再開する。これらの処理は、改版実行中のプロセスグ
ループに属する旧版プロセスと改版処理を開始していな
いプロセスグループに属する単一版プロセスによって実
行される。
【0025】すべての改版対象プロセスグループにおい
て新版プロセスが起動された場合は、それらのプロセス
グループに含まれる旧版プロセスを停止することで改版
処理を終了する。
【0026】次に、本発明の実施例について具体的に説
明する。
【0027】図1は、本発明の一実施例に係る分散プロ
セス改版方法を実施する装置の構成を示すブロック図で
ある。
【0028】図1において、プロセス1は他のプロセス
とメッセージ通信を行いながらアプリケーションプログ
ラム2に記述された処理を行う。アプリケーションプロ
グラム2には宛先プロセス名と送信するメッセージを定
めたメッセージ送信イベント6、およびアプリケーショ
ンプログラムで受理可能なメッセージの集合(例えば、
a,b,cの3種類のメッセージが受理可能である場合
は{a,b,c}であり、以下では受理可能メッセージ
候補集合と呼ぶ。)を定めたメッセージ受信イベント7
が記述されており、これらの実行時にはそれぞれ送信イ
ベント処理部3に対して宛先プロセス名と送信メッセー
ジを含む送信イベント処理要求、受信イベント処理部4
に対して受理可能メッセージ候補集合情報を含む受信イ
ベント処理要求が出される。
【0029】送信イベント処理部3は、アプリケーショ
ンプログラム2からのメッセージ送信イベント処理要求
に対する処理を行う。この時、プロセスが改版処理を開
始していないプロセスグループに属する単一版プロセス
であるか、改版処理実行中のプロセスグループに属する
新版プロセスである場合には、宛先プロセスグループに
メッセージを送信する。改版処理実行中のプロセスグル
ープに属する旧版プロセスである場合には、受信信号キ
ュー8から信号を取り出す。
【0030】受信イベント処理部4は、アプリケーショ
ンプログラム2からのメッセージ受信イベント処理要求
に対する処理を行う。この時、プロセスが改版処理を開
始していないプロセスグループに属する単一版プロセス
であるか、改版処理実行中のプロセスグループに属する
新版プロセスである場合には、受信信号キュー8から信
号を取り出し、その信号に含まれるメッセージが受信可
能メッセージ候補集合に含まれるならば、このメッセー
ジをアプリケーションプログラム2に配付する。改版処
理実行中のプロセスグループに属する旧版プロセスであ
る場合には、受信信号キュー8から信号を取り出し、そ
の信号によって知ることができる新版プロセスが実行し
たイベントが受信イベントであり、かつその信号に含ま
れるメッセージが受信可能メッセージ候補集合に含まれ
るならば、このメッセージをアプリケーションプログラ
ム2に配付する。
【0031】他のプロセスから受信した信号は、受信信
号処理部5で処理され、受信信号キュー8、保留信号バ
ッファ9、凍結信号キュー10のいずれかに登録される
か、あるいは破棄される。
【0032】ロールバック処理実現のために、プロセス
グループIDの集合であるチェックポイントリスト(C
PL)11とロールバックリスト(RBL)12を用い
る。チェックポイントリスト11にはプロセスがチェッ
クポイントを設定した後に信号を送受したすべてのプロ
セスグループを登録し、ロールバックリスト12にはロ
ールバック処理実行中にプロセスがロールバック処理を
要求する信号を受信したすべてのプロセスグループを登
録する。
【0033】また、本実施例において、プロセス間で送
受される信号の伝達経路を図2と図3に示す。図2はプ
ロセスグループ間でメッセージを伝達するグループ通信
を実現するための信号伝達経路の概要であり、図3はロ
ールバック処理を実現するための信号伝達経路の概要で
ある。これらを実現するためにプロセスが行う処理につ
いて以下に示す。
【0034】まず、アプリケーションプログラム2から
の送信イベント実行要求に対する処理について説明す
る。
【0035】プロセスグループSGに属するプロセスp
のアプリケーションプログラムがメッセージAPmes
をプロセスグループRGに送信するメッセージ送信イベ
ントの処理を要求した場合の送信イベント処理部3にお
ける処理アルゴリズムを図4に示す。
【0036】プロセスpが単一版プロセスである場合に
は、図4(a)に示すように、RGに属するすべてのプ
ロセスにAPmesを含むグループ通信信号を送信す
る。この時、プロセスpがチェックポイント設定済みで
ある場合には、チェックポイントパラメータCPP=T
rueの情報を信号に付加するとともに、チェックポイ
ントリスト11にRGを登録する。プロセスpがチェッ
クポイント未設定である場合には、チェックポイントパ
ラメータCPP=Falseの情報を信号に付加する。
【0037】プロセスpが新版プロセスである場合に
は、図4(b)に示すように、RGに属する新版プロセ
ス(RGが改版処理を開始していないプロセスグループ
である場合には単一版プロセス)にAPmesを含むグ
ループ通信信号を送信する。信号にはチェックポイント
パラメータCPP=Nullの情報を付加する。さら
に、SGの旧版プロセスに、宛先プロセスグループR
G,APmesおよびイベントパラメータEVP=Se
ndを含むイベント情報信号を送信する。
【0038】プロセスpが旧版プロセスである場合に
は、図5に示すように、受信信号キュー8の先頭から信
号を取り出す。この信号に含まれるイベントパラメータ
EVP=Receiveである場合には、後述するチェ
ックポイント設定処理を行う。イベントパラメータEV
P=Sendであり、この信号に含まれる宛先プロセス
グループとメッセージがそれぞれRGとAPmesに等
しいならば、RGに属する旧版プロセス(RGが改版処
理を開始していないプロセスグループである場合には、
単一版プロセス)に、APmesを含むグループ通信信
号を送信する。この信号にはチェックポイントパラメー
タCPP=Falseの情報を付加する。
【0039】一方、イベントパラメータEVP=Sen
dであるが、信号に含まれる宛先プロセスグループがR
Gと異なる、あるいは信号に含まれるメッセージがAP
mesとは異なる場合には、RGに属する旧版プロセス
(RGが改版処理を開始していないプロセスグループで
ある場合には単一版プロセス)にAPmesを含むグル
ープ通信信号を送信するとともに、チェックポイントリ
スト11にSGとRGを登録し、後述するチェックポイ
ント設定処理を行う。この信号にはチェックポイントパ
ラメータCPP=Trueの情報を付加する。
【0040】次に、アプリケーションプログラムからの
受信イベント実行要求に対する処理について説明する。
【0041】プロセスグループRGに属するプロセスp
のアプリケーションプログラムが受信可能メッセージ候
補集合がSetRである受信イベントの処理を要求した
場合の受信イベント処理部における処理アルゴリズムを
図6ないし図8に示す。
【0042】プロセスpが単一版プロセスである場合に
は、受信信号キュー8の先頭から信号を取り出す。この
時、受信信号キュー8が空であるならば、タイムアウト
を設定して受信信号キュー8に信号が登録されるのを持
つ。受信信号キュー8に信号が登録されないままタイム
オーバした場合には、デッドロック検出信号を送信側プ
ロセスグループに属する旧版プロセス(改版処理を開始
していないプロセスグループである場合には単一版プロ
セス)に送信し、再びタイムアウトを設定する。タイム
オーバする以前に受信信号キュー8に信号が登録された
場合には、設定されているタイムアウトをリセットし、
この信号を受信信号キュー8から取り出して以下の処理
を行う。
【0043】この信号にチェックポイントパラメータC
PP=Trueの情報が含まれている場合には、送信元
プロセスグループではチェックポイントを設定済みであ
ることが分かる。そこで、プロセスpがチェックポイン
ト未設定である場合にはRGをチェックポイントリスト
11に登録するとともに、現状態をチェックポイント1
1に設定する。そして、この信号の送信元プロセスグル
ープをチェックポイントリスト11に登録する。ここ
で、この信号に含まれるメッセージがSetRに含まれ
るならば、アプリケーションプログラムにこのメッセー
ジを配付する。含まれていないならば、チェックポイン
トリスト11に登録されているすべてのプロセスグルー
プの旧版プロセス(改版処理を開始していないプロセス
グループについては単一版プロセス)に回復信号を送信
し、ロールバックリスト12にRGを登録する。
【0044】一方、受信信号キュー8から取り出した信
号にチェックポイントパラメータCPP=Falseの
情報が含まれている場合には、アプリケーションプログ
ラムにこの信号に含まれるメッセージを配付する。この
時、プロセスpがチェックポイント設定済みである場合
には、この信号を凍結信号キュー10に登録する。
【0045】プロセスpが新版プロセスである場合に
は、図7に示すように、受信信号キュー8の先頭から信
号を取り出す。この信号に含まれるメッセージがSet
Rに含まれるならば、アプリケーションプログラムにこ
の信号を配付し、RGの旧版プロセスに、この信号の送
信側プロセスグループ、この信号に含まれるメッセー
ジ、イベントパラメータEVP=Receiveの情報
を含むイベント情報信号を送信する。含まれていないな
らば、放棄信号をRGの旧版プロセスに送信してプロセ
スpは停止する。
【0046】プロセスpが旧版プロセスである場合に
は、図8に示すように、受信信号キュー8の先頭から信
号を取り出す。この信号に含まれるイベントパラメータ
EVP=Sendである場合には、RGとこの信号に含
まれる宛先プロセスグループをチェックポイントリスト
11に登録し、この信号に含まれる宛先プロセスグルー
プの旧版プロセス(改版処理を開始していないプロセス
グループである場合には単一版プロセス)に、この信号
に含まれるメッセージを含むグループ通信信号をチェッ
クポイントパラメータCPP=Trueの情報を付加し
て送信し、後述するチェックポイント設定処理を行う。
【0047】EVP=Receiveであり、この信号
に含まれるチェックポイントパラメータCPP=Tru
eである場合には、RGとこの信号に含まれる宛先プロ
セスグループをチェックポイントリスト11に登録し、
後述するチェックポイント設定処理を行う。一方、EV
P=Receiveであり、この信号に含まれるチェッ
クポイントパラメータCPP=Falseである場合に
は、アプリケーションプログラムにこの信号に含まれる
メッセージを配付する。
【0048】次に、信号の受信処理について説明する。
【0049】プロセスは他のプロセスからグループ通信
信号、イベント情報信号、放棄信号、回復信号、デッド
ロック検出信号の5種類の信号を受信する。以下では、
それぞれの信号を受信した場合における受信信号処理部
5の処理アルゴリズムについて述べる。
【0050】プロセスグループGに属するプロセスpが
グループ通信信号を受信した場合の処理アルゴリズムを
図9に示す。
【0051】プロセスpが単一版プロセスである場合に
は、図9(a)に示すように、受信信号にチェックポイ
ントパラメータCPP=Nullの情報が含まれるなら
ば破棄し、CPP=TrueあるいはCPP=Fals
eの情報が含まれるならばこの信号を受信信号キュー8
に登録する。
【0052】プロセスpが新版プロセスである場合に
は、図9(b)に示すように、受信信号を受信信号キュ
ー8に登録する。
【0053】プロセスpが旧版プロセスである場合に
は、図10に示すように、受信信号にチェックポイント
パラメータCPP=Nullの情報が含まれるならば、
この信号をGの新版プロセスに転送する。CPP=Tr
ueまたはCPP=Falseである場合には以下の処
理を行う。プロセスpがチェックポイント未設定である
ならば、受信信号を保留信号バッファ9に登録する。プ
ロセスpがチェックポイント設定済みであり、受信信号
に含まれるチェックポイントパラメータCPP=Tru
eであるならば、この信号の送信元プロセスグループを
チェックポイントリスト11に登録して信号を破棄す
る。プロセスpがチェックポイント設定済みであり、受
信信号に含まれるチェックポイントパラメータCPP=
Falseであるならば、この信号を凍結信号キュー1
0に登録する。
【0054】プロセスグループGに属する旧版プロセス
pがイベント情報信号を受信した場合の処理アルゴリズ
ムを図11に示す。
【0055】プロセスpがチェックポイント未設定であ
るならば、受信信号に対応するグループ通信信号を保留
信号バッファ9から検索し、検索した信号に含まれるチ
ェックポイントパラメータの情報を受信信号に複写す
る。検索した信号を保留信号バッファ9から削除すると
ともに破棄し、受信信号を受信信号キュー8に登録す
る。プロセスpがチェックポイント設定済みであり、受
信信号に含まれるイベントパラメータEVP=Send
であるならば、受信信号に含まれる宛先プロセスグルー
プをチェックポイントリスト11に登録し、受信信号に
含まれるメッセージとチェックポイントパラメータCP
P=Trueを含むグループ通信信号を受信信号に含ま
れる宛先プロセスグループの旧版プロセス(改版処理を
開始していないプロセスグループであるならば単一版プ
ロセス)に送信する。
【0056】プロセスグループGに属する旧版プロセス
pが放棄信号を受信した場合の処理アルゴリズムを図1
2に示す。
【0057】プロセスpがチェックポイント未設定の場
合には、後述の回復処理を実行する。プロセスpがチェ
ックポイント設定済みの場合には、Gをロールバックリ
スト12に登録するとともに、チェックポイントリスト
11に登録されているすべてのプロセスグループに属す
る旧版プロセス(改版処理を開始していないプロセスグ
ループでは単一版プロセス)に回復信号を送信する。こ
こで、チェックポイントリスト11とロールバックリス
ト12が等しいならば後述する回復処理を実行する。
【0058】プロセスグループGに属する旧版プロセス
pがデッドロック検出信号を受信した場合の処理アルゴ
リズムを図13に示す。
【0059】この時、プロセスグループGをロールバッ
クリスト12に登録するとともに、チェックポイントリ
スト11に登録されているすべてのプロセスグループに
属する旧版プロセス(改版処理を開始していないプロセ
スグループでは単一版プロセス)に回復信号を送信す
る。
【0060】プロセスグループGに属するプロセスpが
回復信号を受信した場合の処理アルゴリズムを図14に
示す。
【0061】プロセスpが単一版プロセスである場合、
図14(a)に示すように、ロールバックリスト12に
何も登録されていないならば、チェックポイントリスト
11に登録されているすべてのプロセスグループの旧版
プロセス(改版処理を開始していないプロセスグループ
であるならば単一版プロセス)に回復信号を送信すると
ともに、ロールバックリスト12にGを登録する。そし
て、受信信号の送信側プロセスグループをロールバック
リスト12に登録する。この時ロールバックリスト12
がチェックポイントリスト11と等しいならば、後述す
る回復処理を行う。
【0062】プロセスpが新版プロセスである場合、図
14(b)に示すように、放棄信号をGの旧版プロセス
に送信して停止する。
【0063】プロセスpが旧版プロセスである場合、図
14(c)に示すように、ロールバックリスト12に何
も登録されていないならば、回復信号をGの新版プロセ
スに送信する。そして、受信信号の送信元プロセスグル
ープをロールバックリスト12に登録する。この時ロー
ルバックリスト12がチェックポイントリスト11と等
しいならば、後述する回復処理を行う。
【0064】プロセスpの受信信号処理部5におけるチ
ェックポイント設定処理を図15に示す。
【0065】まず、受信信号キュー8の先頭から信号を
取り出す。この信号にイベントパラメータEVP=Se
ndの情報が含まれているならば、信号に含まれる宛先
プロセスグループをチェックポイントリスト11に登録
し、この信号に含まれる宛先プロセスグループに属する
旧版プロセス(改版処理を開始していないプロセスグル
ープである場合には単一版プロセス)に、この信号に含
まれるメッセージとチェックポイントパラメータCPP
=Trueの情報を含むグループ通信信号を送信する。
イベントパラメータEVP=Receiveの情報が含
まれており、更にチェックポイントパラメータCPP=
Trueの情報が含まれているならば、この信号の送信
側プロセスグループをチェックポイントリスト11に登
録する。イベントパラメータEVP=Receiveの
情報が含まれており、更にチェックポイントパラメータ
CPP=Falseの情報が含まれているならば、この
信号を凍結信号キュー10に登録する。
【0066】以上の処理を受信信号キュー8が空になる
まで繰り返す。次に、保留信号バッファ9から信号を取
り出す。この信号にチェックポイントパラメータCPP
=Trueの情報が含まれているならば、この信号の送
信元プロセスグループをチェックポイントリスト11に
登録する。この信号にチェックポイントパラメータCP
P=Falseの情報が含まれているならば、この信号
を凍結信号キュー10に登録する。以上の処理を保留信
号バッファ9が空になるまで繰り返す。最後に、現状態
をチェックポイントに設定する。
【0067】プロセスpの受信信号処理部5における回
復処理を図16に示す。
【0068】まず、受信信号キュー8の先頭から信号を
取り出す。この信号にチェックポイントパラメータCP
P=Falseの情報が含まれているならば、この信号
を凍結信号キュー10に登録する。以上の処理を受信信
号キュー8が空なるまで繰り返す。そして、凍結信号キ
ュー10を受信信号キュー8に複写し、凍結信号キュー
10、チェックポイントリスト11、ロールバックリス
ト12を空にする。
【0069】
【発明の効果】以上説明したように、本発明によれば、
複数プロセスの同期停止を必要とせず、アプリケーショ
ンプログラム間のメッセージ通信では未定義受信とデッ
ドロックを発生することがなく、更にロールバックが必
要な場合でも最小のオーバヘッドでそれを実現すること
ができるため、安全でオーバヘッドの小さい改版処理機
能を持つ分散システムを構築することが可能である。
【図面の簡単な説明】
【図1】本発明の一実施例に係る分散プロセス改版方法
を実施する装置の構成を示すブロック図である。
【図2】プロセスグループ間でメッセージを伝達するグ
ループ通信を実現するための信号伝達経路を示す概略図
である。
【図3】ロールバック処理を実現するための信号伝達経
路を示す概略図である。
【図4】プロセスグループSGに属するプロセスpのア
プリケーションプログラムがプロセスグループRGにメ
ッセージAPmesを送信する送信イベントを実行する
ときの送信イベント処理部における送信イベント処理ア
ルゴリズムを示すフローチャートである。
【図5】プロセスグループSGに属するプロセスpのア
プリケーションプログラムがプロセスグループRGにメ
ッセージAPmesを送信する送信イベントを実行する
ときの送信イベント処理部における送信イベント処理ア
ルゴリズムを示すフローチャートである。
【図6】プロセスグループRGに属するプロセスpのア
プリケーションプログラムが受理可能メッセージ候補集
合がSetRである受信イベントを実行するときの受信
イベント処理部における受信イベント処理アルゴリズム
を示すフローチャートであり、プロセスpが単一版プロ
セスである場合のフローチャートである。
【図7】プロセスグループRGに属するプロセスpのア
プリケーションプログラムが受理可能メッセージ候補集
合がSetRである受信イベントを実行するときの受信
イベント処理部における受信イベント処理アルゴリズム
を示すフローチャートであり、プロセスpが新版プロセ
スである場合のフローチャートである。
【図8】プロセスグループRGに属するプロセスpのア
プリケーションプログラムが受理可能メッセージ候補集
合がSetRである受信イベントを実行するときの受信
イベント処理部における受信イベント処理アルゴリズム
を示すフローチャートであり、プロセスpが旧版プロセ
スである場合のフローチャートである。
【図9】プロセスグループGに属するプロセスpがグル
ープ通信信号を受信したときの受信信号処理部における
処理アルゴリズムを示すフローチャートである。
【図10】プロセスグループGに属するプロセスpがグ
ループ通信信号を受信したときの受信信号処理部におけ
る処理アルゴリズムを示すフローチャートである。
【図11】プロセスグループGに属するプロセスpがイ
ベント情報信号を受信したときの受信信号処理部におけ
る処理アルゴリズムを示すフローチャートである。
【図12】プロセスグループGに属するプロセスpが放
棄信号を受信したときの受信信号処理部における処理ア
ルゴリズムを示すフローチャートである。
【図13】プロセスグループGに属するプロセスpがデ
ッドロック検出信号を受信したときの受信信号処理部に
おける処理アルゴリズムを示すフローチャートである。
【図14】プロセスグループGに属するプロセスpが回
復信号を受信したときの受信信号処理部における処理ア
ルゴリズムを示すフローチャートである。
【図15】プロセスpの受信信号処理部におけるチェッ
クポイント設定処理アルゴリズムを示すフローチャート
である。
【図16】プロセスpの受信信号処理部における回復処
理アルゴリズムを示すフローチャートである。
【符号の説明】
1 プロセス 2 アプリケーションプログラム 3 送信イベント処理部 4 受信イベント処理部 5 受信信号処理部 8 受信信号キュー 9 保留信号バッファ 10 凍結信号キュー 11 チェックポイントリスト 12 ロールバックリスト
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04Q 3/545

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスが互いにメッセージ通信
    を行いながら処理を進める分散処理環境上で、運用中の
    プロセスである旧版プロセスを、旧版プロセスが実行し
    ているアプリケーションプログラムに機能追加や機能変
    更を加えたアプリケーションプログラムを実行する新版
    プロセスに置き換える分散プロセス改版方法であって、 各旧版プロセスは、それぞれ独自のプロセスグループを
    構成し、アプリケーションプログラムの改版時に独立に
    新版プロセスを前記プロセスグループ内に起動し、 プロセスがアプリケーションプログラムからのメッセー
    ジ送信イベント実行要求に対して、新版プロセスが起動
    されているプロセスグループでは、新版プロセスは、無
    設定の旨のチェックポイント設定情報を付加したグルー
    プ通信信号を宛先プロセスグループに送信するととも
    に、該メッセージと宛先プロセスグループと受信イベン
    トの旨のイベント種別から構成されるイベント情報信号
    を自プロセスグループ内の旧版プロセスに送信し、旧版
    プロセスは、該グループ通信信号を宛先プロセスグルー
    プに通知し、旧版プロセスが送信イベントで送信するべ
    きメッセージ、宛先、受信のイベント種別のいずれかが
    旧版プロセスが送信用に事前に受信した信号と異なって
    いる場合にはチェックポイントを設定し、新版プロセス
    が起動されていないプロセスグループでは、旧版プロセ
    スが宛先プロセスグループに前記グループ通信信号を送
    信し、 プロセスがアプリケーションプログラムのメッセージ受
    信イベント実行要求に対して、新版プロセスが起動され
    ているプロセスグループでは、新版プロセスは、メッセ
    ージを受理できないならば自プロセスを放棄してロール
    バック処理を開始し、受信信号に含まれるメッセージが
    受信イベントで受理できるメッセージならば、該メッセ
    ージをアプリケーションプログラムに配付するととも
    に、該メッセージに送信元と受信のイベント種別を付加
    したイベント情報信号を自プロセスグループ内の旧版プ
    ロセスに送信し、旧版プロセスは、前記グループ通信信
    号と、該信号と対応する前記イベント情報信号を受信
    し、後者に前者中のチェックポイント設定情報を加えた
    信号を受信信号とし、受信信号中のイベント種別が受信
    でない場合またはチェックポイント設定情報が設定済み
    の場合、チェックポイントを設定し、それ以外は該メッ
    セージをアプリケーションプログラムに配付し、 新版プロセスが起動されていないプロセスグループで
    は、旧版プロセスは、送信元の新版プロセスと旧版プロ
    セスから前記グループ通信信号を受信した場合、前者を
    破棄し、後者を受信信号とし、タイムアウトを設定し
    て、タイムオーバ以前に他のプロセスグループから信号
    を受信したらタイムアウトをリセットし、設定したタイ
    ムアウトがタイムオーバとなった場合、ロールバック処
    理を開始し、送信元プロセスグループがチェックポイン
    トを設定している場合は、チェックポイントを設定し、
    チェックポイントが設定されていない場合または受信信
    号に含まれるメッセージが受信イベントで受理できるメ
    ッセージならば、該メッセージをアプリケーションプロ
    グラムに配付し、 ロールバック処理として、プロセスがチェックポイント
    を設定した後に信号を送受したすべてのプロセスグルー
    プで設定されたチェックポイントに旧版プロセスをロー
    ルバックさせて実行再開させることを特徴とする分散プ
    ロセス改版方法。
JP6283790A 1994-11-17 1994-11-17 分散プロセス改版方法 Pending JPH08161163A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6283790A JPH08161163A (ja) 1994-11-17 1994-11-17 分散プロセス改版方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6283790A JPH08161163A (ja) 1994-11-17 1994-11-17 分散プロセス改版方法

Publications (1)

Publication Number Publication Date
JPH08161163A true JPH08161163A (ja) 1996-06-21

Family

ID=17670179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6283790A Pending JPH08161163A (ja) 1994-11-17 1994-11-17 分散プロセス改版方法

Country Status (1)

Country Link
JP (1) JPH08161163A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013125772A1 (ko) * 2012-02-23 2013-08-29 한국과학기술정보연구원 분산 데이터 상호 운용을 위한 메시지 전송 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013125772A1 (ko) * 2012-02-23 2013-08-29 한국과학기술정보연구원 분산 데이터 상호 운용을 위한 메시지 전송 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
JP3268534B2 (ja) 保護された資源の同期点管理を行うコンピュータ・システム
JP3066660B2 (ja) トランザクション処理環境における通信インターフェース
US6934247B2 (en) Recovery following process or system failure
JP3293839B2 (ja) 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US8214686B2 (en) Distributed processing method
CN110324417B (zh) 一种基于拟态防御的云服务执行体动态重构方法
JPH05197698A (ja) 分散型情報処理システムのデバッグ方式
EP1099164B1 (en) Method and program for processing administrative requests of a distributed network application executing in a clustered computing environment
US7568131B2 (en) Non-intrusive method for logging external events related to an application process, and a system implementing said method
JPH06332870A (ja) オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置
JPH06202912A (ja) データ処理方法および装置
JPH0831043B2 (ja) コミット手順の非同期的再同期化実行装置および方法
KR20200078328A (ko) 소프트웨어 애플리케이션 프로세스를 모니터링하는 시스템 및 방법
CN113778714B (zh) 一种Linux兼容Android的共享剪切板方法及装置
US6704766B1 (en) Method and apparatus for dynamically controlling the execution of a request handler on a processor resource
JPH11345131A (ja) タスク終了を通知する方法および装置
JPH08161163A (ja) 分散プロセス改版方法
US5613133A (en) Microcode loading with continued program execution
WO2019000791A1 (zh) 一种以异步方式进行远程过程调用的方法及装置
CN101895519A (zh) 服务处理方法和装置
CN114816866A (zh) 故障处理方法、装置、电子设备和存储介质
JPH07141204A (ja) 分散プロセス改版装置
KR20190001495A (ko) Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치
JP2003330739A (ja) 通信応答同期システム及び方法並びに通信応答同期プログラム
JPH09259051A (ja) アラーム通知処理方式

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees