JPH0749844A - 異バージョンプログラムの多重実行方法および計算機システム - Google Patents

異バージョンプログラムの多重実行方法および計算機システム

Info

Publication number
JPH0749844A
JPH0749844A JP6106462A JP10646294A JPH0749844A JP H0749844 A JPH0749844 A JP H0749844A JP 6106462 A JP6106462 A JP 6106462A JP 10646294 A JP10646294 A JP 10646294A JP H0749844 A JPH0749844 A JP H0749844A
Authority
JP
Japan
Prior art keywords
message
program
processor
programs
data
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
JP6106462A
Other languages
English (en)
Inventor
Masayuki Orimo
昌之 織茂
Kinji Mori
欣司 森
Katsumi Kono
克己 河野
Shigeki Hirasawa
茂樹 平澤
Hiroshi Fujise
洋 藤瀬
Hitoshi Suzuki
仁 鈴木
Tomoaki Nakamura
智明 中村
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 JP6106462A priority Critical patent/JPH0749844A/ja
Priority claimed from US08/253,482 external-priority patent/US5630135A/en
Publication of JPH0749844A publication Critical patent/JPH0749844A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 ユーザの負担が少なく、且つ、各バージョン
のプログラムの処理結果を有効に活用することが出来る
異バージョンプログラムの多重実行方法を提供する。 【構成】 少なくとも2つの第1のプロセッサ12、1
3で、同一の機能を達成しバージョンの異なる複数のプ
ログラム52a、52bを実行し、第1のプロセッサ1
2、13からプログラムの実行結果として出力されたデ
ータと実行したプログラムのバージョンを示す属性情報
とを含むメッセージ520a、520bをネットワーク
1に送信する。メッセージ520a、520bは第2の
プロセッサ14により受信される。第2のプロセッサ1
4では、受信したメッセージ520a、520bに含ま
れる属性情報に基づいて受信したメッセージの中から1
つのメッセージを選択し、選択の結果得られたメッセー
ジに含まれるデータを用いて自己のプログラムを実行す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサがネ
ットワークにより接続された分散処理システムにおける
プログラムの実行方法にかかり、特に、異なるバージョ
ンのプログラム並列的に多重実行する方法およびそのた
めの計算機システムに関し、さらに詳しくは、ユーザの
負担を軽減し且つ各プログラム間の独立性を保持でき更
に最終的に選択されない実行結果も有効活用することが
出来る異バージョンプログラムの多重実行方法およびそ
の方法を実施するための計算機システムに関する。
【0002】
【従来の技術】従来、複数の処理装置が伝送路により接
続されたシステムにおいて、複数の処理装置で、異なる
バージョンのプログラムを多重実行する方法として、次
のDRB方式とNバージョン方式とが知られている。な
お、以下、本明細書において、バージョンの異なるプロ
グラムとは、同一機能を果たす複数のプログラムであっ
て、各プログラムの構造が異なるプログラムをいう。各
プログラムの実行結果は、同一であっても同一でなくて
もよい。例えば、同一事象に対するシミュレーションプ
ログラムであって、計算精度は低いが計算時間が短いプ
ログラムと,計算精度は高いが計算時間が長くなるプロ
グラムのような2つのプログラムは、バージョンの異な
るプログラムである。
【0003】DRB方式は、例えば、“IEEE Transacti
ons on Computers,vol.38,no.5,1989,pp 626 - 63
6”に述べられているように、異なるバージョンのプロ
グラムに順位づけを行い、第1順位のバージョンのプロ
グラムの実行結果をアクセプタンステストと呼ばれる予
め定められたテスト論理によりテストし、テスト結果が
OKならそれを選択する。テスト結果がNGなら、第2
順位のバージョンのプログラムの実行結果を選択する。
【0004】一方、Nバージョン方式は、例えば、“IE
EE Computer vol.17,no.8,1984,pp 67 - 80”に述べ
られているように、異なるバージョンのプログラムを複
数の処理装置で並列に実行し、それら各プログラムの実
行結果を出力チェック用処理装置で比較し、多数決論理
に基づいて1つの実行結果を選択する。
【0005】
【発明が解決しようとする課題】DRB方式では、アク
セプタンステストをユーザが作成しなければならず、し
かもアクセプタンステストの作成は容易でないため、ユ
ーザの負担が大きいという問題がある。一方、Nバージ
ョン方式では、各プログラムの出力結果を単純比較する
ため、異なるバージョンのプログラムであってもその出
力が全く同じであることが要求される。このため、各プ
ログラム間の独立性が低く、異なるバージョンのプログ
ラムを作成しにくい問題点がある。また、多数決論理で
少数側となった実行結果は単に捨てられるだけであり、
その実行結果を有効に活用できないといった問題があ
る。
【0006】従って、本発明の目的は、ユーザの負担を
軽減し、且つ、各プログラム間の独立性を保持でき、さ
らに、最終的に出力されない実行結果も有効に活用する
ことが出来る異バージョンプログラムの多重実行方法を
提供することにある。
【0007】また、本発明の他の目的は、本発明の異バ
ージョンプログラムの多重実行方法を好適に実施するた
めの計算機システムを提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、本発明の第1の観点によれば、複数のプロセッサが
ネットワークにより接続された分散処理システムにおい
て、少なくとも2つの第1のプロセッサで同一の機能を
達成する異なるバージョンのプログラムを実行し、第1
のプロセッサからプログラムの実行結果として出力され
たデータと実行したプログラムのバージョンを示す属性
情報とを含むメッセージを前記ネットワークに送信す
る。第1のプロセッサから送信された異なるバージョン
のプログラムによる処理の結果を含む複数のメッセージ
は、第2のプロセッサにより受信される。第2のプロセ
ッサは、受信したメッセージに含まれる属性情報に基づ
いて受信したメッセージの中から1つのメッセージを選
択し、選択の結果得られたメッセージに含まれるデータ
を用いて第2のプロセッサ内のプログラムを実行する。
本発明のある態様では、第2のプロセッサは、第1のプ
ロセッサから送信された複数のメッセージのうちで、予
め定められた許容時間内に受信することのできたメッセ
ージを前記選択の対象とする。そして、選択対象のメッ
セージの中から優先順位の最も高いバージョンのプログ
ラムにより送信されたメッセージを判別して1つのメッ
セージを選択する。また、第1のプロセッサで実行され
るバージョンの異なるプログラムには、例えば、それぞ
れ計算精度が異なるプログラム、あるいは、それぞれ開
発時期の異なるプログラムが含まれる。
【0009】また、本発明の第2の観点によれば、複数
のプロセッサがネットワークにより接続された分散処理
システムにおいて、少なくとも2つの第1のプロセッサ
で同一の機能を達成する異なるバージョンのプログラム
を実行し、第1のプロセッサからプログラムの実行結果
として出力されたデータと実行したプログラムのバージ
ョンを示す属性情報とを含むメッセージをネットワーク
に送信する。第1のプロセッサから送信された異なるバ
ージョンのプログラムによる処理の結果を含む複数のメ
ッセージは、第2のプロセッサにより受信される。第2
のプロセッサは、受信したメッセージに含まれるデータ
及び属性情報に基づいて受信したメッセージの中から1
つのメッセージを選択し、選択の結果得られたメッセー
ジに含まれるデータを用いて第2のプロセッサ内のプロ
グラムを実行する。このようなプログラム実行方法にお
いて、より好ましくは、第2のプロセッサは、属性情報
に基づいて前記メッセージを送信したプログラムの優先
順位を認識し、この認識結果を用いて優先順位が所定の
関係にあるメッセージに含まれるデータ間でその妥当性
の判定を行う。そして、判定の結果妥当と判定されたデ
ータを含むメッセージの中で優先順位の最も高いプログ
ラムから送信されたメッセージを選択する。
【0010】さらに、本発明の第3の観点では、メッセ
ージの伝送を行うための伝送路、この伝送路に接続され
それぞれ同一の機能を実現するバージョンの異なるプロ
グラムを実行する複数の第1のプロセッサ、及び伝送路
に接続され、第1のプロセッサから送信されたメッセー
ジに含まるデータを利用するプログラムを実行する第2
のプロセッサを含む計算機システムが提供される。より
詳しくは、第1のプロセッサは、プログラムを実行する
プログラム実行手段、実行手段によるプログラムの実行
の結果得られたデータと、実行手段により実行されるプ
ログラムのバージョンを示す属性情報とを含むメッセー
ジを作成するメッセージ作成手段、及び、作成されたメ
ッセージを伝送路に送出するインタフェースとを含む。
また、第2のプロセッサは、伝送路からメッセージを取
り込むインタフェース、インタフェースにより取り込ん
だメッセージからデータ及び属性情報を抽出するメッセ
ージ解読手段、抽出された属性情報に基づいて第1のプ
ロセッサから送信された複数のメッセージのデータの中
から1つのメッセージに含まれるデータを選択する選択
手段、及び選択手段により選択されたデータを用いてプ
ログラムの実行を行うプログラム実行手段を含む。
【0011】
【作用】以上説明した本発明の第1、第2の観点によれ
ば、バージョンの異なるプログラムを実行する第1のプ
ロセッサから送信されるメッセージに含まれる属性情報
を参照することにより、そのメッセージを利用する第2
のプロセッサ側で、それぞれのメッセージの発生元とな
るプログラムのバージョンを認識することが可能にな
る。これにより、同一の機能を果たすが、実行論理や実
行精度などの異なるプログラムを並列に実行し、各プロ
グラムのバージョン、実行結果の内容、出力時間等に基
づいて、そのプログラムにとって適切な実行結果を選択
して利用することが出来る。従って、従来のようにアク
セプタンステストをユーザが作成する必要がなくなり、
ユーザの負担を軽減できる。また、各バージョンのプロ
グラムによる実行結果のうち、それらを利用する処理装
置側でその要求に応じてどの実行結果を利用するかを任
意に選択することができる。このため、各プログラム間
の独立性を保持することができ、あるいは、プログラム
の実行に最終的には利用されないメッセージであっても
有効に活用することができる。さらに、異なるバージョ
ンのプログラムからのメッセージの選択も、アクセプタ
ンステストのように固定的でなく、入力データに応じた
基準で選択することで、入力データに応じた的確な実行
結果の選択が可能となり、ユーザの要求にきめ細かく対
応することができ、ユーザインタフェースを向上させる
ことが可能となる。
【0012】
【実施例】図1は、本発明の第1の実施例による異バー
ジョンプログラムの多重実行方法が適用される異バージ
ョンプログラム多重実行システムの全体構成図である。
【0013】異バージョンプログラム多重実行システム
100は、任意の形態のネットワーク1に、プロセッサ
11,12,13,14を接続して構成される。各プロ
セッサ11,12,13,14は、その内部のメモリに
アプリケーションプログラムを格納し、これを実行する
ことにより各種の処理を行う。各アプリケーションプロ
グラムは、機能に対応して付けられた名称と、バージョ
ン情報を含む属性とを持ち、それらにより管理されてい
る。なお、同一の機能を実現する異なるバージョンのプ
ログラムが存在しないときは、その属性は“Null”にな
っている。
【0014】図2は、ネットワーク1上を流れるメッセ
ージのフォーマットの要部を示すフォーマット図であ
る。
【0015】本メッセージによりプロセッサ間で伝送さ
れるデータは、Data部305に格納される。CC部
201には、Data部205に格納されるデータの内
容を示す内容コードが格納される。ネットワーク1に接
続されている各プロセッサ11〜14は、CC部201
の内容コードに基づき、ネットワーク1上を流れるメッ
セージを取り込むか否かを判定する。この判定処理につ
いては、後で詳細に述べる。
【0016】Name部203は、本メッセージを生成
したアプリケーションプログラムを識別するための情報
を格納するエリアである。本実施例では、Name部2
03に格納する情報としてアプリケーションプログラム
の名称を用いる。ATR部204は、本メッセージを生
成したアプリケーションプログラムの属性を格納するエ
リアである。なお、ネットワーク1上を流れるメッセー
ジには、このほか、メッセージを伝送するための各種の
制御コードなどが含まれるが、これについては、本発明
に直接関係するものではないので、特に説明は行わな
い。
【0017】図3は、プロセッサ11の内部構成を示す
ブロック図である。他のプロセッサ12,13,14も
同様の構成である。
【0018】インタフェース301は、ネットワーク1
との間でのメッセージ転送を制御するユニットである。
処理ユニット302は、以下に説明する各種バッファ、
テーブル、エリアを使用して、プロセッサ内の制御を行
うユニットである。
【0019】受信バッファ303は、ネットワーク1よ
り受信したメッセージを格納するためのバッファであ
る。インタフェース301により受信されたメッセージ
は、処理ユニット302により一旦受信バッファ303
に格納される。送信バッファ304は、ネットワーク1
に送信するメッセージを格納するためのバッファであ
る。送信されるメッセージは、一旦送信バッファ304
に格納され、インタフェース301によりネットワーク
1上に送信される。内容コードテーブル305は、プロ
セッサ11が必要とするデータに対応した内容コードを
格納するエリアである。内容コードテーブル305に格
納されるべき内容コードは、図示していないディスク装
置などの書き込み可能な不揮発性の外部記憶媒体に格納
されており、プロセッサ立ち上げ時に、外部記憶媒体か
ら読み出されて内容コードテーブル305に設定され
る。メッセージ判別用バッファ306は、受信したメッ
セージを、メッセージ判別処理のために保持しておくバ
ッファである。AP用入出力データエリア307は、ア
プリケーションプログラムを実行するために必要な入力
データおよびアプリケーションプログラムの実行結果の
出力データを格納するためのエリアである。アプリケー
ションプログラムエリア308は、アプリケーションプ
ログラムを実行するエリアである。
【0020】図4は、内容コードテーブル305の構成
図である。
【0021】内容コードテーブル305は、自プロセッ
サ内で実行される各アプリケーションプログラムに対応
する各行3051,3052,…から構成される。
【0022】一つの行3051、3052は、大きく分
けて、その行が対応しているアプリケーションプログラ
ムの入出力データに関する情報を保持するCC情報エリ
ア30511と、該当するアプリケーションプログラム
に関する情報を保持するAP情報エリア30512とに
より構成される。
【0023】CC情報エリア30511は、本行に対応
するアプリケーションプログラムの入力データの内容コ
ードを格納するICC部30511aと、当該アプリケ
ーションプログラムの出力データの内容コードを格納す
るOCC部30511bとから構成される。また、AP
情報エリア30512は、本行に対応するアプリケーシ
ョンプログラムの名称を格納するName部30512
aと、当該アプリケーションプログラムの属性を格納す
るATR部30512bとから構成される。
【0024】図5は、メッセージ判別用バッファ306
の構成図である。
【0025】メッセージ判別用バッファ306は、受信
メッセージのCC部201に保持される内容コードを格
納するCC部3060、受信メッセージのName部2
03に保持されるアプリケーションプログラムの名称を
格納するName部3061、受信メッセージのATR
部204に保持される属性を格納するATR部306
2、及び受信メッセージのData部205に保持され
るデータを格納するData部3063を含んで構成さ
れている。異なるバージョンの複数のプログラムからの
メッセージに対応するため、1つのCC部3060とN
ame部3061とに対して、複数のATR部3062
とData部3063とが設定されている。
【0026】図6は、AP用入出力データエリア307
の構成図である。
【0027】AP用入出力データエリア307は、自プ
ロセッサ内で実行される各アプリケーションプログラム
に対応する各行3071,3072,…からなる。
【0028】一つの行は、その行に対応するアプリケー
ションプログラムの名称を格納するName部3071
1、当該アプリケーションプログラムの属性を格納する
ATR部30712、当該アプリケーションプログラム
への入力データを格納するためのidata部3071
3、及び当該アプリケーションプログラムからの出力デ
ータを格納するためのodata部30714から構成
される。
【0029】次に、各プロセッサ11〜14でのメッセ
ージ受信時の処理の流れについて説明する。
【0030】図7は、メッセージの受信時に各プロセッ
サ11〜14の処理ユニット302により行われる処理
の流れを示すフローチャートである。各プロセッサ11
〜14の処理ユニット302は、インタフェース301
によりネットワーク1からメッセージを受信すると、そ
のメッセージを受信バッファ303に格納し、内容コー
ドテーブル305のICC部30511aに、受信バッ
ファ303に格納したメッセージのCC部201に格納
されている内容コードと一致する内容コードが登録され
ているかチェックする(ステップ601)。一致するも
のがない場合は、受信バッファ303の内容を消去して
(ステップ611)、メッセージの受信処理を終了す
る。内容コードテーブル305に、受信バッファ303
のに格納したメッセージの内容コードと一致するものが
あった場合は、次に、受信バッファ303に格納したメ
ッセージのATR部204にそのメッセージを送信した
アプリケーションプログラムの属性がセットされている
か否かチェックする(ステップ602)。ATR部20
4に属性がセットされていない場合(ATR部204
が"Null"の場合)は、ステップ608に進む。ATR部
に属性がセットされていれば、他のバージョンのアプリ
ケーションプログラムの出力との間の判別を行うため
に、そのメッセージをメッセージ判別用バッファ306
に格納する(ステップ603)。具体的には、メッセー
ジの内容コードをメッセージ判別用バッファ306のC
C部3060に、プログラム名をName部3061
に、属性をATR部3062に、データをData部3
063にそれぞれ格納する。続いて、メッセージ判別用
バッファ306に、同一のプログラム名を有するアプリ
ケーションプログラムであって、属性の異なるものから
受信したメッセージが既に格納されているか否かチェッ
クする(ステップ604)。属性の異なる他のアプリケ
ーションプログラムからのメッセージが格納されていな
い場合には、属性の異なる他のアプリケーションプログ
ラムからのメッセージを所定の時間待つために、タイマ
をセットして(ステップ610)、受信処理を終了す
る。また、ステップ604において、属性の異なる他の
アプリケーションプログラムからのメッセージが、メッ
セージ判別用バッファ306に既に存在している場合に
は、先にセットしたタイマがタイムアウトしているか否
か判定する(ステップ605)。タイムアウトしていな
ければ、さらに他のメッセージの受信を待つために、受
信処理を終了する。なお、タイムアウトまでの時間は、
同一の処理を行う全てのアプリケーションプログラムか
らのメッセージを受信できるよう、アプリケーションプ
ログラムの中で、もっとも早く処理を終了するものと最
も遅く処理を終了するものとの処理時間の差よりも少し
大きめの時間とする。ネットワーク1上でのメッセージ
の伝送遅れ時間に差がある場合には、この時間差も考慮
する。
【0031】先に、ステップ610でセットしたタイマ
がタイムアウトした場合、あるいは、ステップ605で
タイムアウトと判定された場合には、タイマをリセット
する(ステップ606)。次に、メッセージ判別用バッ
ファ306に格納したメッセージについて、どのメッセ
ージでアプリケーションプログラムを実行するか判定を
行なう(ステップ607)。ステップ607では、メッ
セージ判別用バッファ306に格納されているメッセー
ジが1つだけの場合は、格納されているメッセージをA
P用入出力データエリア307に格納すべきメッセージ
として選択する。メッセージ判別用バッファ306に複
数のメッセージが格納されている場合は、それらのAT
R部3062およびData部3063の内容を比較
し、適切なメッセージ選択論理により1つのメッセージ
を選択し、そのメッセージをAP用入出力データエリア
307に格納すべきメッセージとして選択する。メッセ
ージ選択論理についての具体的な説明については後述す
る。
【0032】ステップ608では、ステップ607で選
択したメッセージ(ステップ602からステップ608
に飛んだ場合には、受信バッファ303のメッセージ)
をAP用入出力データエリア307に格納する。この
際、内容コードテーブル305を参照し、受信メッセー
ジのCC部201の内容コードと同一の内容コードを格
納したICC部30511aに対応するName部30
512aとATR部30512bから、そのメッセージ
を利用するアプリケーションプログラムのプログラム名
と属性を求める。そして、このプログラム名、属性を持
つAP用入出力データエリア307のName部307
11とATR部30712に対応するidata部30
713にメッセージ判別用バッファ306のData部
3060に格納したデータ(ステップ602からステッ
プ608に飛んだ場合には、受信バッファ303内のメ
ッセージのData部に格納されるデータ)を格納す
る。また、メッセージ判別用バッファ306をクリアす
る。
【0033】AP用入出力データエリア307のida
ta部30713にメッセージを格納後、処理ユニット
302は、その行に対応するアプリケーションプログラ
ムを実行する(ステップ609)。
【0034】アプリケーションプログラムは、その実行
の結果、他のアプリケーションプログラムに伝送すべき
データがあれば、そのデータを、AP用入出力データエ
リア307の対応する行のodata部30714に格
納する。処理ユニット302は、odata部3071
4に格納された実行結果データに、CC部201,Na
me部203,ATR部204を付加して、メッセージ
を生成し、送信バッファ304に格納する。送信バッフ
ァ304に格納されたメッセージは、適宜インタフェー
ス301経由で、ネットワーク1に送出されて他のプロ
セッサに伝送される。
【0035】次に、ステップ607において複数のメッ
セージから1つのメッセージを選択する際に用いられる
メッセージ選択論理について説明する。本実施例では、
メッセージ選択の一例として、メッセージを発生したア
プリケーションプログラムが、そのバージョンごとに異
なる精度で同一のシミュレーションを行うものである場
合に、精度の高いシミュレーションの結果の妥当性を精
度の低いシミュレーション結果でチェックした上で適切
なメッセージを選択する方法について説明する。
【0036】まず、メッセージ判別用バッファ306の
ATR部3062の内容から、そのData部3063
の内容が精度の低いシミュレーションを行うアプリケー
ションプログラム(プログラムA)の実行結果であるデ
ータ“X”と、高精度でシミュレーションを行うアプリ
ケーションプログラム(プログラムB)の実行結果であ
るデータ“Y”を認識する。そして、以下の式に従っ
て、プログラムAのシミュレーション結果(精度の低い
シミュレーション結果)基づいてプログラムBのシミュ
レーション結果(精度の高いシミュレーション結果)高
精度シミュレーション結果の妥当性をチェックする。こ
こで(数1)において、“d”は予め定められた許容値
とする。
【0037】 X−d<Y<X+d (数1) この(数1)が成立すればプログラムBによるシミュレ
ーション結果は妥当であると判断し、プログラムBから
のメッセージをアプリケーションプログラムの実行に用
いるメッセージとして選択する。もし、(数1)が成立
しなければプログラムBによるシミュレーション結果は
妥当でないと判定する。そして、プログラムAからのメ
ッセージをアプリケーションプログラムの実行に用いる
メッセージとして選択する。アプリケーションプログラ
ムに応じて上記(数1)以外の判定式、例えば、X<Y
<X+dや,X<Yなどの判定式を採用してもよい。
【0038】本実施例では、このようにして、精度は高
いがバグを含みやすい複雑なロジックを持つアプリケー
ションプログラムの実行結果の妥当性を、精度は低いけ
れどもバグを含みにくい単純なロジックを持つアプリケ
ーションプログラムの実行結果を利用してチェックでき
る。従って、従来のようにアクセプタンステストをユー
ザが作成する必要がなくなる。また、チェックの基準が
入力データに応じて決まり、アクセプタンステストのよ
うに固定的でないため、入力データに応じた的確な実行
結果の選択が可能となる。また、上記の選択論理より、
新しいバージョンのアプリケーションプログラムと並行
して旧いバージョンのアプリケーションプログラムを動
作させて、旧いバージョンのアプリケーションプログラ
ムの処理結果により新しいバージョンのアプリケーショ
ンプログラムの処理結果の妥当性をチェックしつつ利用
することもできる。
【0039】なお、上記の方法では、バージョンの異な
る2つのアプリケーションプログラムから送信されたメ
ッセージの選択を説明したが、3個以上の異なるバージ
ョンのプログラムを並列に実行する場合には、各バージ
ョンのアプリケーションプログラムの属性に、計算精度
が高い順に順位を付け、メッセージ判別用バッファ30
6内のメッセージの中で第i順位の属性が格納されたA
TR部3062を持つメッセージのData部3063
の内容の妥当性を第(i+1)順位の属性が格納された
ATR部3062を持つメッセージのData部306
3の内容によりチェックすることをi=1からiをイン
クリメントしながら順に実行し、チェック結果が最初に
OKとなった時の第i順位のATR部を持つメッセージ
を選択すればよい。
【0040】図8は、各プロセッサ11,12,13,
14で、アプリケーションプログラム51,52a,5
2b,54がそれぞれ実行される場合におけるメッセー
ジの流れを示す図である。
【0041】図8において、プロセッサ11は、アプリ
ケーションプログラム51を実行し、その結果をCC部
201に“CCbi”を持つメッセージとして送信す
る。アプリケーションプログラム51の名称は“A”で
あり、同一機能を達成する他のバージョンのプログラム
が存在しないので、その属性は、“Null”である。プロ
セッサ12、13はCC部201に“CCbi”がセッ
トされたメッセージを受信してアプリケーションプログ
ラム52a、52bを実行し、その結果をCC部201
に“CCbo”を持つメッセージとして送出する。アプ
リケーションプログラム52aとアプリケーションプロ
グラム52bは、アプリケーションプログラム51の出
力した処理結果を用い同一のシュミレーションを行う異
なるバージョンのプログラムであり、互いに同じ名称で
異なる属性を持っている。具体的には、アプリケーショ
ンプログラム52aは、複雑な論理で高精度のシミュレ
ーションを行うが、計算時間が長くかかり、プログラム
エラーを含みやすいプログラムである。一方、アプリケ
ーションプログラム52bは、単純な論理で低精度のシ
ミュレーションを行うが、計算時間が短くてすみ、プロ
グラムエラーを含みにくいプログラムである。アプリケ
ーションプログラム52aの名称は“B”,属性は
“1”であり、アプリケーションプログラム52bの名
称は“B”,属性は“2”である。プロセッサ14は、
プロセッサ12、13から送信されたアプリケーション
プログラム52a、52bのシミュレーション結果を含
むメッセージを受信し、その中から上記の選択論理によ
り一方のメッセージを選択してアプリケーションプログ
ラム54を実行する。アプリケーションプログラム54
の名称は“C”であり、同一機能を達成する他のバージ
ョンのプログラムが存在しないので、その属性は、“Nu
ll”である。
【0042】以上のような処理を行うために、プロセッ
サ12の内容コードテーブル305のアプリケーション
プログラム52aに対応する行には、ICC部3051
1aに“CCbi”,OCC部30511bに“CCb
o”,Name部30512aに“B”,ATR部30
512bに“1”が予め設定されている。同様に、プロ
セッサ13の内容コードテーブル305のアプリケーシ
ョンプログラム52bに対応する行には、ICC部30
511aに“CCbi”,OCC部30511bに“C
Cbo”,Name部30512aに“B”,ATR部
30512bに“2”が予め設定されている。また、プ
ロセッサ14の内容コードテーブル305のアプリケー
ションプログラム54に対応する行のICC部3051
1aには“CCbo”が、Name部30512aには
“C”が設定されている。
【0043】まず、プロセッサ11がアプリケーション
プログラム51を実行し、実行結果メッセージ510を
ネットワーク1に送出する。このメッセージ510のC
C部201が“CCbi”であることを認識すると、プ
ロセッサ12,13はメッセージ510を受信する。メ
ッセージ510のATR部204には“Null”が設定さ
れているため、プロセッサ12、13は、メッセージ5
10を受信すると他のメッセージを待つことなくアプリ
ケーションプログラム52a,52bをそれぞれ実行す
る。そして、その実行結果としてメッセージ520a,
520bを、ネットワーク1にそれぞれ送出する。
【0044】メッセージ520a,520bの構成は、 (1)メッセージ520a CC部:CCbo、 Name部:B、 ATR部:
1、Data部:プログラム52aによるシミュレーシ
ョン結果 (2)メッセージ520b CC部:CCbo、 Name部:B、 ATR部:
2、Data部:プログラム52bによるシミュレーシ
ョン結果 である。
【0045】メッセージ520a,520bをこの順に
プロセッサ14が受信するとする。プロセッサ14は、
まず、メッセージ520aを受信すると、そのATR部
204が“Null”ではなく、異なるバージョンのプログ
ラムがあることを認識すると、そのメッセージをメッセ
ージ判別用バッファ306に格納する。メッセージ判別
用バッファ306のCC部3060は“CCbo”,N
ame部3061は“B”,ATR部3062は
“1”,Data部3063は“プログラム52aによ
るシミュレーション結果”となる。その後、プロセッサ
14はメッセージ52bの受信を待つためにタイマをセ
ットし、受信処理を終了する。
【0046】次に、プロセッサ14がメッセージ520
bを受信すると、メッセージ520bをメッセージ判別
用バッファ306に格納するが、CC部,Name部は
同一のものが既に格納されているため、そのエリアのA
TR部に“2”,Data部に“プログラムB2による
シミュレーション結果”を格納する。タイマがタイムア
ウトすると、先に説明した選択論理によりメッセージ5
20aとメッセージ520bの一方を選択して、AP用
入出力データエリア307に格納し、メッセージ判別用
バッファ306をクリアする。そして、AP用入出力デ
ータエリア307に格納したメッセージのCC部306
0と同じICC部30511aを持つ内容コードテーブ
ル305の行を調べて、その行のAP情報エリア305
12に登録されたアプリケーションプログラムを実行す
る。ここでは、プログラム名として“C”が登録されて
いるから、アプリケーションプログラム54を実行す
る。
【0047】このように、プロセッサ14では、異なる
バージョンのプログラムの実行結果の出力の一つを選択
し、それに基づいてアプリケーションプログラムCを実
行することが出来る。
【0048】このようなシステムにおいて、さらに、他
のプロセッサによりメッセージ520a、520bのう
ちで、アプリケーションプログラム54により利用され
たメッセージを記録できるようにしたシステムを図9に
示す。図9において、プロセッサ15は、アプリケーシ
ョンプログラム55を備えている。また、プロセッサ1
5には、ディスク装置150、及びプリンタ151が接
続されている。図9の他の部分は、先に説明したものと
なんら変わるところがないので説明は省略する。
【0049】プロセッサ15は、プロセッサ14と同様
にして、ネットワーク1上からメッセージ520aと5
20bを受信し、プロセッサ14と同一のメッセージ選
択論理を用いていずれか一方のメッセージを選択する。
そして、選択したメッセージによりアプリケーションプ
ログラム55を実行する。アプリケーションプログラム
55は、選択されたメッセージをディスク装置150に
格納するとともに、プリンタ151によりプリントアウ
トする。
【0050】このようにしてディスク装置150に記録
された情報、あるいは、プリンタ151による出力を用
いることにより、システムをオンラインで動作させた状
態で、精度の高い演算を行っているアプリケーションプ
ログラムが正常に動作しいるか否か確認することが可能
となる。また、同様にして、新たなバージョンのプログ
ラムでの運用を開始する際に、新たなバージョンのプロ
グラムと旧バージョンのプログラムとを多重実行するこ
とで、運用を停止することなく新たなバージョンのプロ
グラムを導入し、その動作の確認をオンライン状態で行
うことが可能になる。
【0051】以上説明した実施例では、精度は低いけれ
ども簡単なアルゴリズムでプログラムエラーの少ないア
プリケーションプログラムの処理結果を用いて精度の高
いアプリケーションプログラムの処理の結果の妥当性を
確認して自己のプログラムの実行に用いるメッセージを
選択しているが、各プログラムの処理結果の妥当性が十
分に確認されている場合には、上記のような妥当性のチ
ェックを行わずに、受信したメッセージの中でその属性
により精度が最も高いことが示されるメッセージを選択
するようにしてもよい。また、最初のメッセージを受信
してからプログラムを実行するまでの時間が制限される
ような場合には、タイムアウトまでの時間として、許容
される時間以内で設定し、この時間以内に受信できたメ
ッセージの中で最も精度の高い処理結果を用いるように
すればよい。このようにすることで、リアルタイム性を
損なうことなく、かつ、精度の高いアプリケーションプ
ログラムによる処理の結果を可能な限り有効に利用する
ことが可能となる。
【0052】これまで説明してきた実施例は、バージョ
ンの異なる複数のアプリケーションプログラムによる処
理の結果のうちから一つを選択するものであるが、これ
ら複数の処理結果を全て利用することも可能である。以
下、この方法について図10を参照しつつ説明する。
【0053】図10において、プロセッサ11,12,
13には、バージョンの異なるアプリケーションプログ
ラム71a,71b,71cがそれぞれ配置されてい
る。アプリケーションプログラム71a,71b,71
cは、同一の機能を実現する異なるバージョンのプログ
ラムであって、その名称は、“X”であり、それぞれ、
“1”,“2”,“3”の属性を持っている。アプリケ
ーションプログラム71aは、複雑な論理に基づく精度
の高いシュミレーションを行うプログラムであり、その
演算時間は大きい。一方、アプリケーションプログラム
71cは、簡単な論理に基づく精度の低いシミュレーシ
ョンを行うもであるが、その演算時間は小さいものであ
る。アプリケーションプログラム71bは、精度、演算
時間ともにアプリケーションプログラム71aとアプリ
ケーションプログラム71cの間に位置するものであ
る。
【0054】プロセッサ14には、アプリケーションプ
ログラム72,73が配置されており、ユーザとのイン
タフェース手段として端末1401が接続されている。
アプリケーションプログラム72は、端末1401から
入力された依頼に基づき、シミュレーションの依頼を行
うプログラムである。また、アプリケーションプログラ
ム73は、シミュレーションの結果を受け取りそれを端
末1401に出力するプログラムである。
【0055】プロセッサ14は、端末1401からの依
頼を受け付けると、アプリケーションプログラム72に
よる処理を実行し、シミュレーションを依頼するメッセ
ージ720をネットワーク1に出力する。プロセッサ1
1,12,13は、メッセージ720を受信すると、そ
れぞれアプリケーションプログラム71a,71b,7
1cの実行を開始する。そして、まず最初にアプリケー
ションプログラム71cの実行結果がメッセージ710
cとしてネットワーク1に出力される。この後、アプリ
ケーションプログラム71bの実行結果がメッセージ7
10bとしてネットワーク1に出力され、最後にアプリ
ケーションプログラム71aの実行結果がメッセージ7
10aとしてネットワーク1に出力される。プロセッサ
14は、メッセージ710c,710b,710aをこ
の順に受信し、これらのメッセージを受信するとその都
度アプリケーションプログラム73による処理を実行
し、順次受け取ったメッセージの内容を端末1401に
表示する。
【0056】以上により、端末1401には、まず精度
の低いシミュレーションの結果が表示され、次に中位の
精度を持つシミュレーションの結果が表示される。そし
て、最後に精度の高いシミュレーションの結果が表示さ
れる。これより、ユーザは、精度の高いシミュレーショ
ンの結果を得るまでに、その概略の結果を前もって得る
ことができる。また、徐々に精度が向上して行くシミュ
レーションの結果の間の関連を把握することができるた
め、ユーザインタフェースが向上する。例えば、アプリ
ケーションプログラム71a,71b,71cが、解析
精度の異なる画像解析プログラムである場合を考える
と、端末1401には、処理の依頼後まもなく粗い画像
が表示され、時間と共に徐々に精度の良い画像を表示し
ていくことが可能となる。
【0057】以上、本発明について具体的な例を掲げて
説明したが、本発明はこれら実施例に限定されるもので
はなく、本発明の主旨の範囲内において様々な態様を取
り得ることはいうまでもない。例えば、バージョンの異
なる複数のプログラムからのメッセージを、異なる処理
を行う複数のプログラムで利用することも可能である。
この場合、各プログラムが利用するメッセージの選択を
同一の基準(異なるメッセージ選択論理)により選択す
るだけでなく、個々のプログラムごとに、異なる基準に
より選択するようすることもできる。また、クライアン
ト/サーバ構成のシステムにおいて、クライアントから
の処理の依頼をバージョンの異なる複数のプログラム
(サーバ)で処理し、クライアント側で、その要求に応
じてこれら複数のバージョンのプログラムによる処理結
果を利用するようにすることもできる。
【0058】
【発明の効果】本発明のプログラム実行方法および処理
装置によれば、同一の機能を果たすが、実行論理や実行
精度などの異なるプログラムを並列に実行し、各プログ
ラムのバージョン、実行結果の内容、出力時間等に基づ
いて、一つの実行結果を選択して利用することが出来
る。従って、従来のようにアクセプタンステストをユー
ザが作成する必要がなくなり、ユーザの負担を軽減でき
る。また、各プログラム間の独立性を保持することがで
き、さらに、プログラムの実行に最終的には利用されな
いメッセージであっても有効に活用することが出来る。
さらにまた、異なるバージョンのプログラムからのメッ
セージの選択も、アクセプタンステストのように固定的
でなく、入力データに応じた基準で選択することで、入
力データに応じた的確な実行結果の選択が可能となり、
ユーザの要求にきめ細かく対応することが可能となっ
て、ユーザインタフェースを向上させることが出来る。
【図面の簡単な説明】
【図1】本発明にかかる異バージョンプログラム多重実
行方法が適用される計算機システムの全体構成図であ
る。
【図2】ネットワーク上を伝送されるメッセージのフォ
ーマット図である。
【図3】プロセッサの一構成例を示すブロック図であ
る。
【図4】内容コードテーブルの構成図である。
【図5】メッセージ判別用バッファの構成図である。
【図6】AP用入出力データエリアの構成図である。
【図7】各プロセッサにより実行されるメッセージ受信
時の処理の流れを示すフローチャートである。メッセー
ジの流れを示す説明図である。
【図8】プロセッサ間でのメッセージの受け渡しの様子
を示すデータフロー図である。
【図9】プロセッサ間でのメッセージの受け渡しの他の
一例を示すデータフロー図である。
【図10】プロセッサ間でのメッセージの受け渡しのさ
らに他の一例を示すデータフロー図である。
【符号の説明】
1:ネットワーク、11〜14:プロセッサ、301:
インタフェース、302処理ユニット、303:受信バ
ッファ、304:送信バッファ、305:内容コードテ
ーブル、306:メッセージ判別用バッファ、307:
AP用入出力データエリア、308:アプリケーション
プログラムエリア。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 平澤 茂樹 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 藤瀬 洋 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 鈴木 仁 神奈川県海老名市下今泉810番地 株式会 社日立製作所オフィスシステム事業部内 (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサがネットワークにより接
    続された分散処理システムにおける異バージョンプログ
    ラムの多重実行方法であって、少なくとも2つの第1の
    プロセッサで同一の機能を達成する異なるバージョンの
    プログラムを実行し、前記第1のプロセッサから前記プ
    ログラムの実行結果出力されたデータと実行したプログ
    ラムのバージョンを示す属性情報とを含むメッセージを
    前記ネットワークに送信し、第2のプロセッサで前記第
    1のプロセッサの各々から送信されたメッセージを受信
    し、受信したメッセージに含まれる属性情報に基づいて
    前記受信したメッセージの中から1つのメッセージを選
    択し、前記選択の結果得られたメッセージに含まれるデ
    ータを用いて前記第2のプロセッサ内のプログラムを実
    行することを特徴とする異バージョンプログラムの多重
    実行方法。
  2. 【請求項2】前記選択ステップは、前記第1のプロセッ
    サから送信された複数のメッセージのうちで、予め定め
    られた許容時間内に受信することのできたメッセージを
    前記選択の対象とする請求項1記載の異バージョンプロ
    グラムの多重実行方法。
  3. 【請求項3】前記選択ステップは、前記選択対象のメッ
    セージの中から優先順位の最も高いバージョンのプログ
    ラムにより送信されたメッセージを判別し、前記判別の
    結果に従って前記1つのメッセージを選択するステップ
    を含むことを特徴とする請求項2記載の異バージョンプ
    ログラム多重実行方法。
  4. 【請求項4】前記第1のプロセッサによるプログラムの
    実行ステップでは、前記第1のプロセッサによりそれぞ
    れ計算精度の異なるプログラムを実行することを特徴と
    する請求項1記載の異バージョンプログラムの多重実行
    方法。
  5. 【請求項5】前記第1のプロセッサによるプログラムの
    実行ステップでは、前記第1のプロセッサによりそれぞ
    れ開発された時期の異なるプログラムを実行することを
    特徴とする請求項5記載の異バージョンプログラムの多
    重実行方法。
  6. 【請求項6】複数のプロセッサがネットワークにより接
    続された分散処理システムにおける異バージョンプログ
    ラムの多重実行方法であって、少なくとも2つの第1の
    プロセッサで同一の機能を達成する異なるバージョンの
    プログラムを実行し、前記第1のプロセッサから前記プ
    ログラムの実行結果出力されたデータと実行したプログ
    ラムのバージョンを示す属性情報とを含むメッセージを
    前記ネットワークに送信し、第2のプロセッサで前記第
    1のプロセッサの各々から送信されたメッセージを受信
    し、受信したメッセージに含まれる属性情報及びデータ
    に基づいて前記受信したメッセージの中から1つのメッ
    セージを選択し、前記選択の結果得られたメッセージに
    含まれるデータを用いて前記第2のプロセッサ内のプロ
    グラムを実行することを特徴とする異バージョンプログ
    ラムの多重実行方法。
  7. 【請求項7】前記選択ステップは、前記属性情報に基づ
    いて前記メッセージを送信したプログラムの優先順位を
    認識し、前記認識の結果に従って前記優先順位が所定の
    関係にあるメッセージのそれぞれに含まれるデータ間の
    関係に基づいて該データの妥当性を判定し、前記判定の
    結果妥当と判定されたデータを含むメッセージの中で前
    記優先順位の最も高いプログラムから送信されたメッセ
    ージを選択する。ステップを含むことを特徴とする請求
    項6記載の異バージョンプログラムの多重実行方法。
  8. 【請求項8】複数のプロセッサがネットワークにより接
    続された計算機システムにおいて、プログラムを実行す
    るプログラム実行手段、前記プログラム実行手段による
    プログラムの実行の結果得られたデータと、前記データ
    を発生したプログラムのバージョンを示す属性情報とを
    含むメッセージを作成するメッセージ作成手段、及び、
    前記メッセージ作成手段により作成されたメッセージを
    前記伝送路に送出するインタフェースとを含み、それぞ
    れ同一の機能を実現するバージョンの異なるプログラム
    を実行する複数の第1のプロセッサと、前記伝送路に接
    続され、前記第1のプロセッサから送信されたメッセー
    ジに含まるデータを利用するプログラムを実行する第2
    のプロセッサであって、前記ネットワークからメッセー
    ジを取り込むインタフェース、該インタフェースにより
    取り込んだメッセージから前記データ及び前記属性情報
    を抽出するメッセージ解読手段、抽出された属性情報に
    基づいて前記第1のプロセッサから送信された複数のメ
    ッセージのデータの中から1つのメッセージに含まれる
    データを選択する選択手段、及び該選択手段により選択
    されたデータを用いてプログラムの実行を行うプログラ
    ム実行手段を含む第2のプロセッサとを有することを特
    徴とする計算機システム。
JP6106462A 1993-06-04 1994-05-20 異バージョンプログラムの多重実行方法および計算機システム Pending JPH0749844A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6106462A JPH0749844A (ja) 1993-06-04 1994-05-20 異バージョンプログラムの多重実行方法および計算機システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP13494593 1993-06-04
JP5-134945 1993-06-04
JP6106462A JPH0749844A (ja) 1993-06-04 1994-05-20 異バージョンプログラムの多重実行方法および計算機システム
US08/253,482 US5630135A (en) 1993-06-04 1994-06-03 Multiple-execution method of multiple-version programs and computer system therefor

Publications (1)

Publication Number Publication Date
JPH0749844A true JPH0749844A (ja) 1995-02-21

Family

ID=27310735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6106462A Pending JPH0749844A (ja) 1993-06-04 1994-05-20 異バージョンプログラムの多重実行方法および計算機システム

Country Status (1)

Country Link
JP (1) JPH0749844A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009289266A (ja) * 2008-05-29 2009-12-10 Dspace Digital Signal Processing & Control Engineering Gmbh リアルタイムでシミュレーションされるべき信号を計算するためのタスクを実施する方法
JPWO2008126196A1 (ja) * 2007-03-19 2010-07-22 富士通株式会社 シミュレーション制御プログラム、記録媒体、シミュレーション装置およびシミュレーション制御方法
JP2011003052A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp データ処理装置及び制御方法及びプログラム
WO2017208409A1 (ja) * 2016-06-01 2017-12-07 株式会社日立製作所 情報処理システム及び業務冗長化方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008126196A1 (ja) * 2007-03-19 2010-07-22 富士通株式会社 シミュレーション制御プログラム、記録媒体、シミュレーション装置およびシミュレーション制御方法
JP2009289266A (ja) * 2008-05-29 2009-12-10 Dspace Digital Signal Processing & Control Engineering Gmbh リアルタイムでシミュレーションされるべき信号を計算するためのタスクを実施する方法
JP2011003052A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp データ処理装置及び制御方法及びプログラム
WO2017208409A1 (ja) * 2016-06-01 2017-12-07 株式会社日立製作所 情報処理システム及び業務冗長化方法
JPWO2017208409A1 (ja) * 2016-06-01 2018-12-06 株式会社日立製作所 情報処理システム及び業務冗長化方法
US10365864B2 (en) 2016-06-01 2019-07-30 Hitachi, Ltd. Information processing system and operation redundantizing method

Similar Documents

Publication Publication Date Title
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
EP0274689B1 (en) System and method of providing synchronous message exchange in an asynchronous operating environment
US6578159B1 (en) Transaction processing method and apparatus
US5630135A (en) Multiple-execution method of multiple-version programs and computer system therefor
CN114285807A (zh) 一种报文信息管理方法、装置、服务器和存储介质
EP1906305A2 (en) Method and system for data preparation and communication between software applications
US7594235B2 (en) Method of executing on a station of a communication network a computer program represented in a markup language
US8533702B2 (en) Dynamically resolving fix groups for managing multiple releases of multiple products on multiple systems
JPH0749844A (ja) 異バージョンプログラムの多重実行方法および計算機システム
CN115168094A (zh) 数据核对方法、装置、设备、系统、存储介质及产品
US20110321043A1 (en) System, Method and Program Product for Native Interface Optimization of Read-Only Arrays
JP2002063060A (ja) 計算機システムおよびそのデータ転送方法
JP2001060157A (ja) アプリケーション間メッセージ交換方式
CN109905459A (zh) 一种数据传输方法及装置
US20060015622A1 (en) Enabling asynchronous transaction interactions on Web browsers
JP5913155B2 (ja) パケットリプレイ装置およびパケットリプレイ方法
CN115033410B (zh) 异常链路的跟踪方法、系统、网关及存储介质
JPH0628322A (ja) 情報処理装置
US20020199030A1 (en) Additions on circular singly linked lists
CN114565362B (zh) 页面生成方法、装置、电子设备及存储介质
CN112035711B (zh) 信息查询方法、装置、设备及存储介质
CN119620964B (zh) 一种nand闪存重读方法、计算机设备及存储介质
EP0353079B1 (en) Queue-based inter-process communications system for digital data processing system
JPH04213126A (ja) ソフトウェアテスト方式
CN121334272A (zh) 一种基于socket的响应方法、装置、设备及存储介质