JP2001005652A - プログラム間バインド方法 - Google Patents

プログラム間バインド方法

Info

Publication number
JP2001005652A
JP2001005652A JP11177755A JP17775599A JP2001005652A JP 2001005652 A JP2001005652 A JP 2001005652A JP 11177755 A JP11177755 A JP 11177755A JP 17775599 A JP17775599 A JP 17775599A JP 2001005652 A JP2001005652 A JP 2001005652A
Authority
JP
Japan
Prior art keywords
data
program
processing
programs
information
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.)
Granted
Application number
JP11177755A
Other languages
English (en)
Other versions
JP2001005652A5 (ja
JP4000718B2 (ja
Inventor
Shigetoshi Samejima
茂稔 鮫嶋
Katsumi Kono
克己 河野
Hideji Nishijima
英児 西島
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 JP17775599A priority Critical patent/JP4000718B2/ja
Publication of JP2001005652A publication Critical patent/JP2001005652A/ja
Publication of JP2001005652A5 publication Critical patent/JP2001005652A5/ja
Application granted granted Critical
Publication of JP4000718B2 publication Critical patent/JP4000718B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 個別に開発されたプログラム間を連携させる
場合において、プログラム間で送受信されるメッセージ
の設計をプログラム開発と個別に行う手間を省くと共
に、個別に開発されインタフェースの異なるプログラム
間を、プログラムを改造することなくバインドすること
を可能とする。 【解決手段】 プログラム開発時に入力されるデータや
プログラム実行に関する情報などのプログラム開発情報
を利用することで、プログラム間で交換するデータを設
計し、またプログラム実行時に設計した交換データを送
受信することで、個別に開発されたプログラムをバイン
ドすることを可能とする。

Description

【発明の詳細な説明】
【発明の属する技術分野】本発明は、複数のプログラム
により一連の処理が行われる分散処理システムのプログ
ラム間の連携方法に関し、特にプログラム開発時に入力
された外部インタフェースに関する情報を用いて、プロ
グラム間でデータ交換を行う場合に好適に適合しうるプ
ログラム間バインド方法に関するものである。
【従来の技術】分散処理システムにおけるプログラム間
のバインド方式に関しては、メッセージ交換によるもの
があり、例えば日経コンピュータ(1995年9月4日)P.P.
126 -139「メッセージ連携システム」にあるようなメッ
セージ連携ミドルウェアが分散処理装置間でのメッセー
ジ送受信を行う。これは分散処理システムを構成するプ
ログラム間で交換されるデータを、ミドルウェアが仲介
役となって交換することで、プログラム間を非同期に連
携させ、プログラムの開発や運用を柔軟にするものであ
る。ここで、メッセージデータの構成は、アプリケーシ
ョン間で個別に取り決めて設計を行い、プログラムで
は、専用のAPIを用いてメッセージの交換を行う。他に
プログラム間を連携させる方法としては、例えば「Insi
de CORBA−CORBAとそのシステム開発への応用」(ISBN4-
7561-2015-6)にあるようにオブジェクト指向プログラム
間のデータ送受信プラットフォームなどもある。これに
よると、受信側プログラム(オブジェクト)の手続きを
インタフェースとして規定し、該インタフェースを呼び
出す形式でプログラム間でメッセージデータを交換し、
プログラム間での連携を可能としている。また、メッセ
ージデータの送信を、アプリケーションからの指示と独
立して行う方法として、周期的に指定領域のデータを送
信する転写メモリ方式などがあり、例えば「日立 HI
DIC S10αシリーズ マニュアル」などにある。
この方法では、転写メモリ上のアドレスを指定してデー
タの読み書きを行うことで、プログラム間でのデータ共
有を可能としている。
【発明が解決しようとする課題】分散処理システム内の
プログラム間をメッセージデータの交換により連携させ
る方法は、プログラム間を疎結合化し、運用を容易にす
ることで普及している。一方で、このメッセージデータ
の設計は、連携するプログラム間で取り決めが必要であ
る。このためプログラム間を連携させるためには、開発
時に交換するデータ構成を合せるか、または一方のプロ
グラムに合せて連携する他方のプログラムの送信または
受信するデータ構成を変更する必要があり、開発時、改
造時に工数を要していた。プログラム間で共有するデー
タは、各々のプログラムでの処理に用いるデータである
にも関わらず、再度メッセージとしての設計が必要であ
り、プログラマにとって設計の手間が必要であった。ま
た、設計したメッセージに対して、プログラムで渡すデ
ータの設定を誤ったり、プログラムの変更によりメッセ
ージとプログラムでの設定のバージョンが異なる場合が
あり、トラブルを引き起こす可能性があった。さらに、
過去開発したシステムや他人の開発したシステムにおい
ては、システムの改造を行う場合、メッセージ化される
情報やメッセージとして受け取る情報が何かを調査する
必要がある。このために設計ドキュメントを検索した
り、ソースコードを詳細に調査する必要があるため大変
手間がかかってしまう。本発明は上記問題点を解決し、
プログラム作成時に入力した情報を用いて、プログラム
間で送受信されるデータの設計と送受信を行い、処理装
置に分散されたプログラム間のバインドを容易に、かつ
互いにインタフェースが異なる場合でも改造なく連携を
可能とするものである。
【課題を解決するための手段】本発明のプログラム間バ
インド方法は、プログラム間で交換するデータを検出す
るために、プログラム開発情報を用いて、プログラム間
で共有するデータに関する情報を抽出する手段と、デー
タの更新を行うプログラムと該データを利用するプログ
ラム間でインタフェースが異なる場合でもデータを共有
できるよう、前記手段で抽出した情報を用いてメッセー
ジデータを構成する手段と、該構造に従ってプログラム
間で交換するデータを送受信する手段とを有するもので
ある。これによりプログラムと別にデータの構成、送受
信が行われるため、プログラム作成と別にメッセージ設
計を行うことなく、またプログラムを改造することな
く、インタフェースの異なるプログラム間で情報共有す
ることを可能とする。
【発明の実施の形態】以下に、本発明の実施の形態を詳
細に説明する。特に、プログラム間で交換するデータの
抽出方法と、共通交換形式データの構成方法及び送信方
法に関して以下の例について説明する。 (1)グローバル変数を用いて共有する場合の、該変数
抽出による共通交換形式データの作成と送信方法 (2)分散オブジェクトやリモート・プロシージャ・コ
ール(Remote Procedure Call)などの処理プログラム
インタフェースを用いて共有する場合の、該処理呼出し
引数と戻り値抽出による共通交換形式データの作成と送
信方法 (3)ツールによる設定方法 図1は、本発明を適用したシステムの構成例である。伝
送媒体101を介して互いにデータの授受を行なう処理装
置111〜113と、外部との入出力インタフェースを有する
外部入出力装置121〜123から構成されている。処理装置
111〜113には、端末121〜123が接続されている。ここ
で、外部入出力装置とは、ディスプレイやキーボード、
タッチパネル等のマンマシンインタフェ−スを介して処
理装置上で実行されるプログラムの制御やプログラムの
出力参照を行ったり、制御対象機械との間の制御信号入
出力を行う機能を有している。ただしこれは必須ではな
く、外部入出力装置を持たない処理装置もある。また処
理装置111は伝送媒体102を介して処理装置114とデータ
の授受を行なう。このように各処理装置は複数の伝送媒
体を接続可能であり、処理装置111が仲介することで処
理装置114と処理装置112,113がデータの授受を行なうこ
ともできる。図2は、処理装置111〜114の内任意の処理
装置におけるソフトウェア構成を示す図である。データ
送受信処理201は、自処理装置内、または他処理装置と
の間でプログラム間の共通交換形式データの送受信を管
理するプログラムである。処理プログラム実行環境202
は、処理装置内の処理を行うプログラム211の実行や起
動、停止、データ入出力などを管理する。データ送受信
処理201と処理プログラム実行環境202は互いにデータの
交換や、処理の起動・終了といったイベントの通知を行
い、他処理装置との送受信データと処理プログラム使用
データの変換を行う。他処理装置とのデータの送受信方
法については、TCP/IPのようなコネクションベースの方
法を用いてもよいし、特開昭56−111353号に示
されたようなブロードキャスト方式を用いてもよい。処
理プログラムは、プログラム開発処理221で開発され、
ソースプログラムなどの開発情報は、処理プログラム開
発情報ファイル241に格納される。共有データ情報抽出
処理231は、データ送受信処理201で送受信する共通交換
形式データの構成とタイミングを決定するための処理
で、プログラム開発情報241を元に、処理プログラムで
用いられているデータの名前や構造といった情報を抽出
し、共有データ情報テーブル242に格納する。 (実施例1)図3は、本発明の第1の実施例における、
共有データ情報テーブル242のテーブル構成例を示す図
である。共有データ情報テーブル242の各レコードは、
データ名311、データ型312、送信元処理装置・プログラ
ム313、受信側装置・プログラム314、共有タイプ315、
共通交換形式識別子316から構成される。データ名311は
各共有データを識別するための名称であり、プログラム
で用いられている変数名を用いることができる。データ
型312は、各データの型を示し、文字列型や整数/実数型
といった種別や、サイズなどの情報を示す。送信元処理
装置・プログラム313は、共有データに対して書き込み
を行うプログラム、及び該プログラムの格納される処理
装置を示す。受信側処理装置・プログラム314は、該共
有データを読み込むプログラム及び該プログラムの格納
される処理装置を示す。共有タイプ315は、共有データ
に対する読み書き反映方法のタイプを示す。プログラム
から随時更新される共有変数である「Flow」型や、処理
の呼出し又は戻り値のように通知タイミングの明示され
る「Batch」型といった情報が格納される。共通交換形
式識別子316は、他プログラムとデータ交換する場合の
入出力単位毎の識別子である。レコード321の共有デー
タ例は、データ名「IOState」、データ型が構造体「IOS
tate」、該データへの書込みは処理装置「114」のプロ
グラム「IOControl」から行われ、読込みは不特定の複
数処理装置・プログラムから行われる、すなわち読み書
き型「Flow」型のデータの例が示されている。共通交換
形式識別子316は「IOControl」で、他レコードに示され
たデータ項目のうち同一の識別子「IOControl」を持つ
データ項目と共に送受信される。レコード322の共有デ
ータ例は、データ名「Mode」、データ型「BOOL」すなわ
ちブール型、該データへの書込みは処理装置「114」の
プログラム「IOControl」及び処理装置「111」の「Stat
eSet」から行われ、読込みは処理装置「114」のプログ
ラム「IOControl」から行われるデータの例が示されて
いる。図4は、図3にて示した共有データ情報を抽出す
る元となるプログラムソースコードの例であり、複数の
プログラム間で共有されている変数の例を示している。
プログラム331「IOControl」において、変数「IOStat
e」の構成要素に、コード341、342にて書込みを行って
いる。また、プログラム332「IOMonitor」では、コード
351にて変数「IOState」の構成要素を画面に表示する処
理を行っている。このようなコードから、図5にて説明
するステップで共有データ「IOState」を抽出すること
ができる。グローバル変数定義333には、各処理プログ
ラム間で共有されるグローバル変数の定義が記述され、
コード361に共有データ「IOState」の定義が、コード36
2に共有データ「Mode」の定義が行われている。図5
は、図3にて示した共有データ情報を抽出する処理の流
れを示す図である。本実施形態における共有データ情報
の抽出は、プログラムを選択し(ステップ371)、グロ
ーバル変数を抽出する(ステップ372)。本処理で選択
するプログラムは、システムにおける全プログラムを用
いてもよいし、特定の一連の処理を行うプログラムグル
ープのみを選択させてもよい。次に抽出したグローバル
変数に対する入出力があるかどうか検索し(ステップ37
3)、出力がある場合は(ステップ374)、共有データ情
報テーブルを検索し、同一のデータが定義されていない
場合はデータ名及びデータ型の追加を行い(ステップ37
5)、該グローバル変数のレコードに処理プログラム及
び該プログラムの実行される処理装置、共有タイプ「Fl
ow」を設定する(ステップ376)。出力がない場合は、
共有データ情報テーブルを検索し、同一のデータが定義
されていない場合はデータ名及びデータ型の追加を行
い、受信側装置・プログラムを設定する(ステップ37
7)。ここで、ステップ375及びステップ377において、
同一のデータかどうかの判定には、データ名を用いるこ
とも、またはデータに付記されたコメントなどの属性を
用いることもできる。これらのステップの後、共通交換
形式識別子を設定する(ステップ378)。共通交換形式
識別子の設定は、共有データの組合せやプログラム間で
の交換タイミングに着目して行うことができる。共有デ
ータの組合せは、送信元装置毎や、送信元装置・プログ
ラム名、選択したプログラムグループと送信元装置・プ
ログラム名の組合せ、選択したプログラムグループと送
信元装置・プログラム名と受信側装置・プログラム名の
組合せなどである。特定のプログラムのみを選択させる
ことで、共有させるグローバル変数のスコープを制限す
ることが可能である。また共有データ1つ毎に着目して
もよい。プログラム間での交換タイミングは、データ送
受信処理201で用いる、周期、更新イベント、プログラ
ム終了処理検出イベントなどである。全てのプログラム
をチェックした場合は終了し、未チェックプログラムが
存在する場合はステップ373より再度処理を行う。ここ
で示した共有データ情報の抽出は、プログラム開発処理
221で共有変数の入出力管理まで行っている場合は、ス
テップ373を省略しても容易に抽出可能である。また共
有変数がポインタ型である場合も、該ポインタの指す型
をコンパイラなどにより抽出することで、共有するデー
タの型に関する情報を抽出することでデータ型の情報を
得ることができる。なお本処理で作成した共有データ情
報テーブルの内容は、処理装置間で共有し、処理装置間
で不一致が発生しないようにする。これには、例えば特
願平8−249611に示された方法などを用いることができ
る。図6は、第1の実施例におけるデータ送受信処理201
の内、共有データ情報抽出処理231で作成した共通交換
形式データを周期的に送信する場合の流れを示す図であ
る。データ送信処理は、送信周期イベントを検出する処
理(ステップ401)と、送信データを検出する共有デー
タ情報テーブル検索処理(ステップ402)、送信するデ
ータの値を取得する処理(ステップ403)、及びデータ
送信処理(ステップ404)から構成される。共有データ
情報テーブル検索処理402は、周期イベント検出処理401
から呼び出され、共有データ情報テーブル242を検索し
て送信すべきデータを抽出する。例えば、共有データ情
報テーブル242のフィールド313「送信元処理装置・プロ
グラム」を検索し、自処理装置内の処理プログラムが更
新する共有データを抽出する。ここで抽出されたデータ
を用いて、共有データ値取得処理403は、処理プログラ
ム実行環境202より該共有データの値を取得し、共通交
換形式形成・送信404で送信データを形成して送信す
る。図7は、図6にて説明した処理で用いる送信メッセ
ージフォーマット例である。通信処理で用いる通信ヘッ
ダ511、共通交換形式識別子512、及び共有データ513の
列で構成される。共通交換形式識別子512は、例えば本
例では送信周期と送信元処理装置などに着目した共有デ
ータ構成毎に、共有データ情報抽出処理231にて一意に
指定する。共有データ513は、各データ名522、データ型
523、データ値524、及びこれらのサイズ合計を示すサイ
ズ521で構成される。なお、本例ではデータの送信処理
の流れを示したが、該データを受信した処理装置は、受
信データの共通交換形式識別子を用いて共通交換形式を
判断し、共有データ情報テーブル242の受信側装置・プ
ログラムフィールド314を用いて自処理装置が受信側装
置となっている共有データ項目を抽出し、受信データか
らこれを抽出した後処理プログラム実行環境202に渡し
て、処理装置内のプログラムが利用できるよう展開す
る。このような機構を用いることで、複数の処理装置
間、処理プログラム間で、共有データの構成やタイミン
グを意識することなくデータを共有することができる。
図8は、第1の実施例におけるデータ送受信処理201の
内、共有データ情報抽出処理231で作成した共通交換形
式データを更新時にFIFO形式で送信する場合の流れを示
す図である。データ送信処理は、共有データ更新イベン
ト検出処理(ステップ601)と、送信する共有データ値
の取得、及びメッセージ形成・送信処理(ステップ41
1)から構成される。共有データ更新イベント検出処理6
01は、処理プログラムによる共有データ更新イベント
を、更新した処理プログラム名と共に処理プログラム実
行環境202から受け取り、ステップ411を呼び出す。また
は、周期的に共有データの値変化を監視することにより
共有データ更新を検出してもよい。ステップ411におい
ては、第1の実施例同様に更新された共有データの値を
取得し、メッセージ形成・送信処理404でメッセージデ
ータを形成して送信する。送信するメッセージデータの
構成例を、図9に示す。(a)図は、本実施例におい
て、1つの共有データを1メッセージ化する場合のメッ
セージフォーマット例である。図7にて示した第1の実
施例におけるメッセージフォーマットと同様の通信ヘッ
ダ511、共通交換形式識別子711、共有データサイズ71
2、共有データ名713、共有データ型714、共有データ値7
15で構成される。共有データ715には、データ送受信処
理201が呼び出されるトリガとなった更新データの値が
格納される。(b)図は、更新された共有データを相乗
りさせて送信する場合のメッセージフォーマット例であ
る。図7にて示した第1の実施例におけるメッセージフ
ォーマットと同様の通信ヘッダ511、共通交換形式デー
タ721の列で構成される。共通交換形式データ721の構成
は、(a)図にて示した通信ヘッダ以外の部分の構成と
同様である。本フォーマットを用いる場合は、メッセー
ジ形成・送信処理404において、更新された共有データ
のフォーマット721を作成し、蓄積する。メッセージサ
イズを越えた時点、または一定タイムアウト時間経過な
どのイベントにより、蓄積された部分をメッセージとし
て送信する。本例においても、該メッセージを受信した
処理装置は、受信メッセージを解釈して共有データ項目
毎に展開し、処理プログラム実行環境202に渡して、処
理装置内のプログラムが利用できるよう展開する。この
ような機構を用いることで、処理装置、処理プログラム
間で、メッセージの構成やタイミングを意識することな
く、更新されたデータのみを他処理装置やプログラムに
通知・反映することができる。図10は、第1の実施例
におけるデータ送受信処理201の内、共有データ情報抽
出処理231で作成した共通交換形式データを、プログラ
ムの実行状況により送信する場合の流れを示す図であ
る。データ送信処理は、プログラム処理終了検出処理
(ステップ801)と、送信する共有データの検索、値の
取得、及びメッセージ形成・送信処理(ステップ411)
から構成される。プログラム処理終了検出処理801は、
処理プログラムの終了や、周期的に起動される処理プロ
グラムの終了などのイベントを、処理プログラム名と共
に処理プログラム実行環境202から受け取り、ステップ4
11を呼び出す。ステップ411においては、第1の実施例
同様に更新された共有データの値を取得し、共通交換形
式データ形成・送信処理404で送信データを形成して送
信する。ここで、送信データとしては、例えばイベント
の発生元プログラムが関係するデータを送信する。この
とき、共有データ情報テーブル検索処理402において、
共有データ情報テーブル242のフィールド313「送信元処
理装置・プログラム」を検索し、処理終了した処理プロ
グラムが送信元となっている共通交換形式データを抽出
し、以降のステップ403、ステップ404でデータ生成・送
信を行う。 (実施例2)本発明の第2の実施例においては、分散オ
ブジェクトやリモート・プロシージャ・コール(Remote
Procedure Call)などのように、プログラムに明示的
に他処理の呼出しが記述される場合の、共通交換形式デ
ータの作成と送信例について説明する。図11は、第2
の実施例における共有データ情報テーブルの設定例を示
す図である。プログラム「IOControl」からプログラム
「IOServer」の処理「StateCheck」を呼び出す場合の引
数となる変数「a」の情報がレコード901に、変数「pt
r」の情報がレコード902にそれぞれ格納されている。ま
た、処理「StateCheck」からの戻り値の情報がレコード
903に格納されている。ここで、戻り値のデータ名は呼
び出し処理名を用いて定義されている。図12は、図1
1にて示した共有データ情報を抽出するプログラムソー
スコードの例であり、処理呼出しによるデータ共有の場
合の例を示している。プログラム911「IOControl」にお
いて、コード922で他処理「StateCheck」を呼び出して
いる。このとき渡すデータは「a」、「ptr」であるが、
特に「ptr」についてはコード921においてデータ型が定
義されている。また、プログラム912「IOServer」で
は、コード923にて処理「StateCheck」を記述してお
り、コード924で値を戻している。図13は、図11に
て示した共有データ情報を抽出する処理の流れを示す図
である。本実施例における共有データ情報の抽出は、プ
ログラムを選択し(ステップ951)、該プログラム内で
他処理を呼び出している個所を抽出する(ステップ95
2)。次に該呼出しにおける引数や、引数がポインタ型
である場合は該ポインタの指すデータ、及び呼出し処理
からの戻り値を抽出し(ステップ953)、共有データ情
報テーブルに引数、戻り値、及び呼び出し元または呼び
出し先処理を格納する(ステップ954)。全てのプログ
ラムをチェックした場合は終了し、未チェックプログラ
ムが存在する場合はステップ951より再度処理を行う。
共通交換形式データの作成は、第1の実施例同様に行う
こともできるが、呼出ししている処理や呼び出されてい
る処理、これらの組み合わせ、などに着目して設定する
ことも可能である。このような処理を用いて、図12に
おいて示した例のプログラムより、共有データとなる
「a」、「ptr」、及び「ptr」の指すデータ実体の構成
要素を抽出することができる。図14は、第3の実施例
におけるメッセージ送受信処理の流れを示す図である。
本実施例におけるデータ送信処理は、処理プログラム実
行環境202から処理の呼出しイベントを受け取り(ステ
ップ1001)、共有データ情報テーブルを検索する(ステ
ップ1002)。ステップ1002においては、呼び出される処
理の引数となっている変数を検出し、さらに該処理に戻
り値があるかどうかを検出する。ここで、戻り値は明示
的に処理の戻り値が存在する場合に加え、本例で示した
ようにポインタ型変数を渡して、呼出し先処理において
データ更新される場合も含む。その後引数となっている
変数の値を取得し(ステップ1003)、共通交換形式デー
タを形成して送信する(ステップ1004)。メッセージ送
信後は、呼び出される処理に戻り値が存在したかを判断
し(ステップ1005)、存在しなかった場合は終了する。
存在した場合は、戻り値を受信するイベントを待つ(ス
テップ1006)。受信処理によって戻り値を受信した場
合、ステップ1006の待ちが解除されて、処理が終了す
る。図15は、本実施例におけるメッセージフォーマッ
ト例である。第1、第2の実施例同様に通信制御のため
の通信ヘッダ511を先頭に、共通交換形式識別子1101を
設ける。(a)図は呼び出しメッセージフォーマットを
示す。呼出しに用いる引数となる共有変数「a」、「pt
r」の情報は、それぞれ共有データ部1102、1103に格納
される。特に、ポインタ型である共有データ「ptr」に
ついては、受け取り側で該ポインタの指すデータ値その
ものが必要となってくるため、「ptr」の指すデータ構
造「struct IOHandle」の値一式を送信するものとし、
データ名1112、データ型1113に続き、データ構造「stru
ct IOHandle」の値一式を1114に格納し、これらのサイ
ズ合計を1111に格納する。(b)図は、応答メッセージ
フォーマットを示す。共通交換形式識別子1121と、応答
データとして戻り値1122、及び呼出し先処理「StateChe
ck」にて更新された可能性のある共有データ「ptr」が1
123に格納されて返送される。このような機構を用いる
ことで、処理プログラムの外部インタフェースが手続き
の呼出しの形式で記述されている場合にも、プログラム
開発情報を用いてプログラム間をバインドすることが可
能である。図16は、本実施例において、オブジェクト
指向に基づいて作成されたプログラム間をバインドする
場合の共有データ情報抽出処理の流れを示す図である。
本実施例における共有データ情報の抽出は、プログラム
を選択し(ステップ1201)、該プログラム内で呼び出さ
れているオブジェクトを抽出する(ステップ1202)。次
に該オブジェクトに対して参照、または書き込みされて
いるオブジェクト属性を抽出し(ステップ1203)、該オ
ブジェクトの呼び出されているメソッドと、メソッド呼
出しにおける引数や、引数がポインタ型である場合は該
ポインタの指すデータ、及び呼出し処理からの戻り値を
抽出する(ステップ1204)。ステップ1205においては、
共有データ情報テーブルに、ステップ1203で抽出された
属性を共有データとして呼び出し元/先処理と共に格納
し、ステップ1204で抽出された引数、戻り値、及び呼び
出し元/先処理を格納する。全てのプログラムをチェッ
クした場合は終了し、未チェックプログラムが存在する
場合はステップ1201より再度処理を行う。このような処
理により、オブジェクト指向プログラム間のバインド
も、プログラム開発情報を用いて、プログラム開発時に
呼び出し相手や呼出し元を意識しなくとも可能となる。
また、既に開発したプログラム間を、プログラムを改造
することなく連携させることが可能となる。また、本実
施例ではバインドするプログラムの送信側と受信側のイ
ンタフェースの対応に手続き名を用いたが、引数や戻り
値名などを用いることで、片方のプログラムがグローバ
ル変数の形式でデータを共有する場合でもプログラム間
をバインドすることが可能である。ここで、送信側がグ
ローバル変数の形式で、受信側が手続きの形式でデータ
共有する場合は、受信側の必要とする手続きの引数が非
同期に発生するが、例えば特願平9−75529号にあるよ
うな方法を用いることでデータを統合して受信側を呼び
出すことが可能である。 (実施例3)本発明の第3の実施例においては、本実施
形態の第1の実施例及び第2の実施例で作成した共有デー
タ情報を用いて、共通交換形式データを変更・設定する
ツールの例を説明する。図17は、本実施例における共
通交換形式データを変更・設定するツールの例である。
画面例1301には、一連の処理を行うプログラムグループ
である「実績管理」1311、該プログラムグループ「実績
管理」に含まれる装置111の送信側プログラム「製造実
績」1312、これらに着目して共有データ情報抽出処理23
1により作成された共通交換形式データ「実績管理・製
造実績」1313、及び構成共有データ項目である「BCD」1
314、「処理結果」1315、「作業者」1316が表示されて
いる。また、プログラム「製造実績」とバインドされる
プログラムとして、処理装置114の「実績監視」、及び
バインドに使用される共有データ項目として「BCD」132
2、「処理結果」1323が示されている。このような画面
より、例えばリンク1331を解除することで、共有データ
情報テーブル242の該当するレコードの送信元処理装置
・プログラムまたは受信側処理装置・プログラムのフィ
ールドを変更し、プログラム間のバインドを解除するこ
とができる。画面例1302は、リンク1371を新規作成する
ことでプログラム間をバインドした例を示している。画
面1302には、一連の処理を行うプログラムグループであ
る「実績管理」1311、該プログラムグループ「実績管
理」に含まれる装置111の送信側プログラム「設備状
態」1341、共通交換形式データ「設備状態」1342、及び
構成共有データ項目である「State」1343が表示されて
いる。また、「設備状態」1342を介してバインドされた
処理装置114のプログラム「状態監視」1351、及び共有
データ項目である「状態」1361が示されている。このよ
うな画面を持つツールを用いることで、個別に作成され
たプログラムで、かつ共有するデータ名やコメントなど
の属性が異なる場合でも、プログラムを改造することな
くバインドすることが可能となる。
【発明の効果】プログラム開発時に入力されるデータや
プログラム実行に関する情報などのプログラム開発情報
を利用することで、プログラム間で交換するデータを設
計し、またプログラム実行時に設計した交換データを送
受信することで、個別に開発されたプログラムをバイン
ドすることが可能となる。このため開発者は内部処理作
成に専念することができると共に、プログラム開発・実
行後に連携させたくなったプログラム間も、プログラム
を改造することなくバインドすることが可能となる。
【図面の簡単な説明】
【図1】実施形態の分散処理システムのハードウェア構
成図である。
【図2】実施形態のプログラム間バインド方法のソフト
ウェア構成図である。
【図3】実施形態の第1の実施例における共有データ情
報テーブル242のデータ構成を示す図である。
【図4】実施形態の第1の実施例におけるプログラム例
と共有データ例を示す図である。
【図5】実施形態の第1の実施例における共通交換形式
データ抽出処理の流れを示す図である。
【図6】実施形態の第1の実施例におけるデータ送信処
理の流れの例を示す図である。
【図7】実施形態の第1の実施例におけるメッセージフ
ォーマット例を示す図である。
【図8】実施形態の第1の実施例におけるデータ送信処
理の流れの例を示す図である。
【図9】実施形態の第1の実施例におけるメッセージフ
ォーマット例を示す図である。
【図10】実施形態の第1の実施例におけるデータ送信
処理の流れの例を示す図である。
【図11】実施形態の第2の実施例における共有データ
情報テーブル242の設定例を示す図である。
【図12】実施形態の第2の実施例におけるプログラム
例と共有データ例を示す図である。
【図13】実施形態の第2の実施例における共有データ
情報抽出処理の流れの例を示す図である。
【図14】実施形態の第2の実施例におけるデータ送信
処理の流れを示す図である。
【図15】実施形態の第2の実施例におけるメッセージ
フォーマット例を示す図である。
【図16】実施形態の第2の実施例における共有データ
情報抽出処理の流れの例を示す図である。
【図17】実施形態の第3の実施例における共通交換形
式データを変更・設定するツールの例を示す図である。
【符号の説明】
111〜114…処理装置、201…メッセージ送受信処理、202
…処理プログラム実行環境、211…処理プログラム、221
…プログラム開発処理、231…共有データ情報抽出処
理、241…処理プログラム開発情報ファイル、242…共有
データ情報テーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西島 英児 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 中村 智明 東京都千代田区神田駿河台四丁目6番地 株式会社日立製作所新事業推進本部内 Fターム(参考) 5B076 AB01 AB05 DD02

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】共通伝送媒体に接続された複数の処理装置
    により一連の処理を分散して行なう分散処理システムで
    あって、かつ、該一連の処理のそれぞれを実行するため
    のプログラムを上記1つまたは複数の処理装置に記憶さ
    せて互いにデータの交換により処理を行なう分散処理シ
    ステムにおいて、 プログラムの開発時に入力された情報より、プログラム
    から更新または送信されるデータとプログラムに受信さ
    れるデータに関する情報を個別に抽出するステップと、 該共有データ情報を用いてプログラム間で交換するデー
    タの構造を作成するステップと、 該作成された構造に従ってプログラム間で交換するデー
    タを送受信するステップと、を有することを特徴とする
    プログラム間バインド方法。
JP17775599A 1999-06-24 1999-06-24 プログラム間バインド方法及び分散処理システム Expired - Fee Related JP4000718B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17775599A JP4000718B2 (ja) 1999-06-24 1999-06-24 プログラム間バインド方法及び分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17775599A JP4000718B2 (ja) 1999-06-24 1999-06-24 プログラム間バインド方法及び分散処理システム

Publications (3)

Publication Number Publication Date
JP2001005652A true JP2001005652A (ja) 2001-01-12
JP2001005652A5 JP2001005652A5 (ja) 2005-03-03
JP4000718B2 JP4000718B2 (ja) 2007-10-31

Family

ID=16036569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17775599A Expired - Fee Related JP4000718B2 (ja) 1999-06-24 1999-06-24 プログラム間バインド方法及び分散処理システム

Country Status (1)

Country Link
JP (1) JP4000718B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150393A (ja) * 2001-11-09 2003-05-23 Nec Corp リモートサービス処理システムおよび方法、プログラム
JP2006260540A (ja) * 2005-03-15 2006-09-28 Microsoft Corp データバインドされたリッチなアプリケーション
JP2009087119A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 操作支援プログラム
JP2011034392A (ja) * 2009-08-03 2011-02-17 Mitsubishi Electric Corp サービス連携装置、サービス連携方法及びサービス連携プログラム
CN102087614A (zh) * 2009-12-03 2011-06-08 深圳市华普电子技术有限公司 一种Flash影片与外部程序的信息传递方法
WO2014188492A1 (ja) * 2013-05-20 2014-11-27 三菱電機株式会社 監視制御装置
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150393A (ja) * 2001-11-09 2003-05-23 Nec Corp リモートサービス処理システムおよび方法、プログラム
JP2006260540A (ja) * 2005-03-15 2006-09-28 Microsoft Corp データバインドされたリッチなアプリケーション
JP2009087119A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 操作支援プログラム
JP2011034392A (ja) * 2009-08-03 2011-02-17 Mitsubishi Electric Corp サービス連携装置、サービス連携方法及びサービス連携プログラム
CN102087614A (zh) * 2009-12-03 2011-06-08 深圳市华普电子技术有限公司 一种Flash影片与外部程序的信息传递方法
WO2014188492A1 (ja) * 2013-05-20 2014-11-27 三菱電機株式会社 監視制御装置
JP5832703B2 (ja) * 2013-05-20 2015-12-16 三菱電機株式会社 監視制御装置
US10317860B2 (en) 2013-05-20 2019-06-11 Mitsubishi Electric Corporation Monitoring control device
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器
JPWO2015019421A1 (ja) * 2013-08-06 2017-03-02 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器

Also Published As

Publication number Publication date
JP4000718B2 (ja) 2007-10-31

Similar Documents

Publication Publication Date Title
US6748583B2 (en) Monitoring execution of an hierarchical visual program such as for debugging a message flow
US6817010B2 (en) Monitoring messages during execution of a message flow
US8473453B2 (en) Capturing data from user selected portions of a business process and transferring captured data to user identified destinations
JP4777634B2 (ja) モバイルアドホックネットワークにおけるコンテキストアウェア自動サービス発見及び実行エンジン
US10048993B2 (en) Input management system and method
US7434167B2 (en) Accessibility system and method
JP5026415B2 (ja) データセントリックワークフロー
US9442822B2 (en) Providing a visual representation of a sub-set of a visual program
JP2002024020A (ja) 画面制御プログラム、動的表示情報取得プログラム、画面表示トランザクションプログラム、画面コンポーネントインタフェースプログラム、画面プログラム作成方法
US20070143393A1 (en) Systems and methods for enhanced message support using a generic client proxy
US8850388B2 (en) Controlling application features
KR20060015705A (ko) 사용자 인터페이스 자동화 프레임워크 클래스 및 인터페이스
US8286194B2 (en) Coupling state aware systems
EP1875331A2 (en) Multithreading with concurrency domains
US20070073702A1 (en) Systems and methods for mapping text
KR20040081790A (ko) 애스펙트 패턴 내의 일반 기능과 개체와의 연결
AU2003201954B2 (en) Accessibility system events mechanism and method
JP2001005652A (ja) プログラム間バインド方法
JP2004118250A (ja) 計算機管理システム、管理プログラム
KR100717242B1 (ko) 디버깅 정보를 제공하는 에러 관리 시스템 및 이를 이용한에러 관리 방법
Goswami et al. Dynamic slicing of concurrent programs
JP3199876B2 (ja) プログラム解析システムおよび方法
RU2316043C2 (ru) Механизм и способ предоставления информации событий в системе доступа
CN100468332C (zh) 程序执行方法
CN115168252B (zh) 一种打印终端的通用调试方法及系统

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040326

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070806

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees