上述した従来技術によれば、いずれの通信方法によりデータの伝送を行なうか、あるいは、どの処理装置(マルチキャストの場合には、処理装置のグループ)にデータを送るかといったことは、処理装置上で動作するユーザプログラム(あるいはアプリケーションプログラム)が決定する必要がある。このため、ユニキャスト、あるいはマルチキャストによりデータを伝送しようとした場合、ユーザプログラム上でシステム内の構成を把握しておく必要があり、システム構成の変更、拡張等を容易に行なうことができないという問題がある。このような問題を解決するための方法として、例えば、特開昭55−13725号公報には、内容コードと呼ばれるデータの内容に対応して定められる識別子を用い、送信側からはデータをブロードキャストにより送出し、データの受信の要否の判断を受信側の処理装置に委ねる方法が開示されている。しかし、この方法では、全てのデータがブロードキャストにより伝送されるため、ユニキャスト、マルチキャストのようにデータ伝送の確実性を高めることができない。
一方、上記特開平4−157940号公報によれば、ネットワーク上に既に存在する処理装置についてオンライン時のグループの生成、変更を行なうことが可能である。しかし、ネットワーク内に新規にノード(処理装置)が追加されたような場合、既存在ノードにより追加されたノードに関するアドレス等の情報認知はできない。すなわち、ユニキャスト、あるいは、マルチキャストのように、宛先の指定指定が必要となる通信に対し、オンラインでのノードの追加、削除に対応することができない。
また、従来のマルチキャスト通信では、グループ登録時に送信相手を限定することで、そのデータの送信範囲を規定できるが、受信側のノードからすると、自分が属するグループに宛られたデータは全て受信することになる。しかし、常時マルチキャスト通信の対象となるグループの処理装置が、そのグループに宛て送信されてくるデータを、全て必要とするとは限らない。つまり、従来のマルチキャスト通信は、グループ内でのデータのブロードキャストと考えることができ、グループ内での送信効率がよいとはいえない。
本発明の目的は、データの内容、あるいは性質等に応じた適切な通信方法を利用できるデータ通信方法を提供することにある。
また、ユニキャスト、マルチキャストのように、宛先の指定を必要とする通信の場合でも、ユーザがシステムの構成を意識することなくプログラムを作成することを可能にする。さらには、ネットワーク上のすべての処理装置を止めることなく、オンライン状態での処理装置の追加、削除が可能なデータ通信方法、及び計算機システムを提供することにある。
以上のような目的を達成するために、本発明のデータ通信方法の第1の観点によれば、通信媒体を介して複数の処理装置が接続された情報処理システムのデータ通信方法において、第1の処理装置で、該第1の処理装置上で動作する処理実行部から前記通信媒体上に送出すべき送信情報と、その送信情報の内容に対応して予め定められているデータ識別子とを受け取り、データ識別子に基づいて送信情報の送信先の処理装置を判別し、この判別の結果決定した処理装置に宛て送信情報を通信媒体上に送出する。具体的には、送信先処理装置の判別は、データ識別子と送信先となる処理装置との対応を定義した情報に従って行われる。また、通信媒体上を伝送される送信情報は、共に送出された送信先処理装置のアドレスに基づいて他の第2の処理装置に受信される。こようにして受信されたデータは、データ識別子に従って、処理実行部に分配される。より好ましくは、第1の処理装置はデータ識別子に基づいて、処理実行部から受け取った送信情報を送出するに当たって使用する送信モードの判別、あるいは、送信先処理装置との間で通信路を設定して行われる信頼性の高い通信方法を用いるか否かを判別し、これら判別結果に従って送信情報を送出する。
本発明の第2の観点によれば、通信媒体を介して複数の処理装置が接続された情報処理システムのデータ通信方法において、各処理装置では、その上で動作する処理実行部から、送信すべき情報と共に、その情報の内容に対応して予め定められているデータ識別子、及び、その情報の重要度に代表される情報の性質的な特性を示す情報を受け取る。そして、データ識別子、及び特性を示す情報の少なくとも一方に基づいて、予め保持しておいた、データ識別子と送信先の処理装置との対応を示す情報から受け取った情報の送信先となる処理装置を判別し、この判別の結果決定した処理装置に宛て送信情報を通信媒体上に送出する。送信情報の送出に当たって、より好ましくは、データ識別子、及び特性を示す情報の少なくとも一方に基づき、その送信情報を送信するための送信モード、あるいは、予め手順の定められた信頼性を高めるための通信方法を使用するか否かについて判別し、この判別結果に従って情報の送信を行う。あるいはまた、処理実行部から指定されるデータ識別子ごとに、それに対応する送信情報の発生の頻度を記録しておき、この発生頻度に応じて通信方法の選択を行なう。そして、発生頻度の高い情報については、信頼性の高い通信方法を選択し、情報の漏れ等を防ぐようにする。また、他の態様では、データ識別子により送信情報がテストデータであるか否かを示し、テストデータであれば信頼性の低い通信方法によりネットワークの負荷を低減した通信を行ない、テストデータでなければ信頼性の高い通信方法を用いるようにする。
また、本発明の第3の観点によれば、通信媒体を介して複数の処理装置が接続された情報処理システムのデータ通信方法において、各処理装置は、送信情報と共に、その送信情報の性質的な特徴を表す属性情報を受け取る。この属性情報に基づいて、送信情報の送信に用いる送信モードを選択し、あるいは、送信のために、信頼性の異なる複数の通信方法の中からいずれの通信方法を用いるかを選択する。そして、選択した送信モード、通信方法に従って送信情報を送出する。ここで、属性情報としては、情報の重要度を表すような情報、送信情報がテストデータであるか否かを示すような情報等を用いることができる。
あるいはまた、本発明の第4の観点によれば、上述したようなデータ通信方法を行なうために、通信媒体を介して複数の処理装置が接続され、通信媒体を介して処理装置間でデータ通信を行なう情報処理システムにおいて、処理装置の各々が、所定の処理を実行する少なくとも1つの処理実行部と、処理実行部から他の処理装置に伝送すべき送信情報、該送信情報の内容に対応して予め定められたデータ識別子、及び送信情報の性質的な特徴を表す属性情報を受け取り、データ識別子及び、属性情報の少なくとも一方に基づいて、送信情報の送信先となる処理装置のアドレスを判別する判別手段と、該判別手段での判別結果に従って送信情報をデータ識別子及びアドレスと共に通信媒体上に送出する送信手段と、通信媒体上を伝送される送信情報に付されているアドレスに基づいて当該送信情報を受信する受信手段と、データ識別子に従って受信した送信情報を渡すべき処理実行部を判別し、該判別の結果に基づいて受信した送信情報を処理実行部に転送する転送手段とを有する情報処理システムが提供される。
さらに、本発明の第5の観点によれば、通信媒体を介して複数の処理装置が接続された情報処理システムのデータ通信方法において、予め、処理装置の各々に、各処理装置上で動作する処理実行部から出力される送信情報に対応して予め定められた内容コード、送信情報を送信すべき処理装置のアドレス、送信情報の送信に用いる送信モード、及び送信情報の送信のために、通信路を設定して行われる信頼性の高い通信方法を用いるか否かを示すフラグとを登録した送信情報テーブルを設けておき、第1の処理装置において、処理実行部から通信媒体上に送出すべき送信情報と、該送信情報の内容に対応した内容コードとを受け取り、内容コードに基づいて、前記送信情報テーブルを検索して、送出すべき送信情報の送信先の処理装置、送出すべき送信情報の送信に用いる送信モード、及び送出すべき送信情報の送信のために通信路を設定するか否かを判別し、判別の結果に従って、送出すべき送信情報を内容コード、及び判別した送信先の処理装置のアドレスと共に通信媒体上に送出し、第2の処理装置において通信媒体上の送信情報をアドレスを参照して受信する。さらに、このようなシステムにおいて、新たな処理装置が接続された場合、この新たな処理装置から、その処理装置に関する情報、より具体的には、新たな処理装置が必要とする情報の内容に対応するデータ識別子、新たな処理装置に割り当てられた処理装置識別子を含むメッセージを既存の他の処理装置に送出し、既存の他の処理で、このメッセージに基づいてテーブルの内容を更新する。また、既存の他の処理装置からそれぞれの処理装置に関する情報を送信し、新たな処理装置で既存の処理装置から送られる情報に基づいて上記テーブルを作成する。
本発明によれば、ユーザプログラムなど、処理装置上で動作する処理実行部から出力された情報の送信先、情報の送信に用いる送信モード、あるいは、送信に用いる通信方法は、送信する情報の内容、あるいは、重要度などの性質に応じて処理装置側で判別されるので、処理実行部では、システム内で各処理装置に割り当てられているアドレス等のシステム構成を意識せずに他の処理装置内の処理実行部との間で通信を行なうことができる。また、各処理装置が、データ識別子、あるいは、情報の性質的な特徴を表す情報に基づいて、送信先の処理装置、送信に用いる送信モード、あるいは、より信頼性の高い通信方法を用いるか否かを判別しているので、送信される情報の内容、重要度等に応じて適切な範囲への情報の伝達、あるいは、適切な通信方法による情報の伝達を行うことができる。
また、システム内に新たな処理装置が追加される等により、システムの構成が代わった場合に、新たに追加された処理装置、あるいは、変更が生じた処理装置からシステム内の他の処理装置に、自処理装置に関する情報を送り、各処理装置でこの情報を基に、システムの変更に応じて情報の送信に用いるテーブル等の情報を変更するので、システムを停止することなくシステムの拡張、変更を行なうことができる。さらに、システム変更時にもシステム側でその変更に対応した処理が行われるので、処理実行部では、このようなシステムの変更を意識する必要なく処理を継続することができる。
以上説明したように、本発明によれば、ネットワーク上に接続された処理装置間でのメッセージの伝送をその内容、あるいは、その重要度等の情報の性質的な特性に応じた適切な送信モード、送信方法により実現することができる。また、メッセージが伝達される範囲についても、同様にして、情報の性質的な特性、内容に応じて動的に変更することが可能になる。さらに、システムの拡張等、システム構成に変更が生じた場合でも、各処理装置がオンライン状態でその変更に対応することができる。
図1は、本発明が適用される情報処理システムの一構成例を示す構成図である。図1において、1は通信媒体、2−6は処理装置である。処理装置2−6は、それぞれ通信媒体1に接続されており、他の処理装置との間で通信媒体1を介して通信を行なう。通信媒体1としては、LAN、WAN等の通信回線を用いることができる。
図2は、図1における処理装置2の機能構成を示すブロック図である。以下では、処理装置2を例に処理装置の構成について説明するが、他の処理装置も同様の構成を有している。処理装置2は、通信設定部10、情報受信部20、情報送信部30、登録変更部40、処理実行部50、及びデータ伝送管理部60を含んでいる。通信設定部10はその内部に、他の処理装置との間で通信路を設定した通信によりメッセージを受信する有通信路メッセージ受信部101、通信路を設定せずユニキャストモード、あるいはマルチキャストモードにより伝送されるメッセージを受信する無通信路メッセージ受信部102、ネットワーク内の全ての処理装置を対象としたメッセージを受信するブロードキャスト受信部103、メッセージの送信処理を行なう送信部104、通信媒体1へのメッセージの送出、あるいは通信媒体1からのメッセージの受信を制御する通信制御部120を含んで構成される。また、通信設定部10は、各処有通信路メッセージ受信部101に対応して設けられるバッファ110a、110b、無通信路メッセージ受信部102に対応して設けられるバッファ111、ブロードキャスト通信部103に対応して設けられるバッファ112、送信部104に対応して設けられるバッファ113を備えている。バッファ110a、110b、111、112には、通信制御部120からそれらを識別する可能とするために、バッファ識別子が割り当てられる。バッファ110a、バッファ111、及び112には、システム内で予め定められた他の処理装置と共通のバッファ識別子が割り当てられる。また、有通信路メッセージ受信部101に対応するバッファ110bは、図中では1つしか示していないが、送信元の処理装置との間で通信路の設定を行う段階で設定される通信路ごとに生成され、送信元の処理装置との間で決められるバッファ識別子が割り当てられる。なお、有通信路メッセージ受信部101に対応するバッファ110aは、通信路の設定時に通信路の設定要求を受けるために用いられ、通常のメッセージでは利用されないものとする。
図3には、伝送媒体1を介して伝送されるメッセージのフォーマットを示す。メッセージ300は、通信媒体1を介して各処理装置の処理実行部50間で伝送されるデータを保持するデータ部306の他に、制御情報として、データ305の内容を示す内容コードを保持する内容コード(CC)部301、送信先となる処理装置のアドレスを保持する送信先アドレス(SA)部302、メッセージの送信元と送信先との通信路が設定されているか否かを示す通信判定フラグ(SS)303、ユニキャスト、マルチキャスト、ブロードキャストのうち、いずれのモードにより通信が行われるかを示す通信モードを保持するモード(CO)部304、及び受信先のバッファを指定するバッファ識別子部305を有している。なお、メッセージ300には、他に、通信中に発生するエラーの検出に用いられる情報等が含まれるが、これらについては、本発明と直接関係するものではないので省略してある。
通信媒体1を介して送られてくるメッセージは、通信制御部120によって受信される。通信制御部120は、通信媒体1上を伝送されるメッセージ300の送信先アドレス部302を参照してそのメッセージを受信する。受信したメッセージ300は、メッセージ300中のバッファ識別子に従ってバッファ110b−112の何れかに格納される。有通信路メッセージ受信部101、無通信路メッセージ受信部102、ブロードキャスト受信部103は、それぞれ対応するバッファ110b−112に格納されたメッセージを読みだして情報受信部20に渡す。情報受信部20は、メッセージを通信設定部10から受け取ると、そのメッセージをどの処理実行部50に渡すかを判定する。最終的に、受信したメッセージは、実際にそのメッセージを利用して処理を実行する実行処理部50に渡される。情報受信部20から処理実行部50には、受信したメッセージの中のデータ部306に格納されている情報のみが渡される。
処理実行部50は、情報受信部20から受け取ったデータを用いてそれぞれ与えられた処理を行う。本実施例における処理実行部50は、例えば、ユーザにより作成、あるいは利用されるユーザプログラム、アプリケーションプログラムを含む。処理実行部50は、また、実行した処理の結果、あるいは、処理のために必要な情報の参照要求を、必要に応じて他の処理装置に送信する。この場合、処理実行部50は、送信しようとする情報を、その内容を示す内容コード、及びその情報の重要度を表しているグループ識別子と共に情報送信部30に送る。なお、処理実行部50の中には、通信媒体1を介して送られてくるメッセージ内のデータを必要とせずに処理を行うもの、あるいは、通信媒体1を介した処理結果等の送出を行わないものがあってもよい。
情報送信部30は、データ伝送管理部60が保持する情報を参照して、処理実行部50から受け取った情報に付加された内容コード、及びグループ識別子に基づいて、その情報を伝送するために用いる通信方法と送信重要度を決定し、通信設定部10内の送信部104に送信処理を依頼する。情報送信部30は、送信部104に送信を依頼する際、送信すべき情報を図3に示すフォーマットに整えてデータ送信部104に渡す。データ送信部104は、情報送信部30から送られてきた送信情報を基に、送信先の設定と、必要ならばその情報の通信方法に合わせた通信路の設定を行い、メッセージの送信を行なう。
登録変更部40は、システム内に新たな処理装置が追加され、あるいは一部の処理装置に変更があった場合等、システムの構成に変更が生じた際に、データ管理部60の保持する情報の更新を行なう。
図4に、データ伝送管理部60が保持する受信情報テーブル200の構成を示す。受信情報テーブル200には、処理装置2が取り込むべきメッセージに付されている内容コード(カラム201)と、その内容コードが付されているメッセージを利用する処理実行部50(カラム202)との対応付けが登録されている。受信情報テーブル200は、情報受信部20が、通信設定部10から受け取ったメッセージ内のデータを処理実行部50に渡す際に参照するテーブルである。例えば、図4に示す受信情報テーブル200では、内容コードとして "cc1”が付されているメッセージは、処理実行部 "UP−A”へ伝送し、 "cc2”が付されているメッセージは、処理実行部 "UP−B”へ伝送すべきことを示している。
図5は、データ管理部60が受信情報テーブル200と共に保持する送信情報テーブルの構成図である。送信情報テーブル210は、処理実行部50により発生されたメッセージをどの通信方法を用い、どこへ送信するかを示す情報を格納している。具体的には、メッセージの内容を示す内容コードがセットされる内容コード欄211、送信先となる処理装置のアドレスがセットされる送信先アドレス欄212、メッセージ送信時に通信路を設定するか否か示す情報がセットされる通信路設定欄213、送出する情報の重要度を示すグループ識別子欄214、該当グループの送信時優先レベルを示すグループレベル欄215、送信先の処理装置との間で通信路が設定済みか否かを示すフラグがセットされる設定フラグ欄216、及び送信先の処理装置で使われるバッファの識別子を登録するバッファ識別子欄217を含んで構成されている。送信先アドレス欄212に設定されるアドレスは、ユニキャストの場合には、相手先に唯一与えられている処理装置アドレスが、また、マルチキャストの場合には、送信先となる処理装置に共通に与えられているマルチキャストアドレス(グループアドレス)がセットされる。また、メッセージをブロードキャストにより伝送する場合には、送信先アドレス欄には、予めブロードキャスト用に定められたアドレス(ブロードキャストアドレス)がセットされる。また、本実施例において、送信される情報は、その重要度に対応したグループのいずれかに属するものとし、グループ識別子欄には、このグループを識別するために定められた識別子が設定される。
図5に示す送信情報格納テーブル210は、例えば第1行目で、内容コード "cc5”が付され、グループ識別子として "P”が与えられたメッセージは、送信先アドレスを "4235D”とし、バッファ識別子 "21”が割り当てられたバッファ110bを用いた通信路を設定して送信することを示している。図4において、内容コード "cc5”が付されたメッセージに対する送信情報は、第3行目にも設定されている。本実施例では、グループ識別子の値によって、同一の内容コードが付されたメッセージを伝達する処理装置の範囲を、送信するメッセージの重要度に応じて動的に変更することを可能としている。同一の内容コードが付されるメッセージに対して適用し得るグループ識別子には、重要度の増大に対応してメッセージの伝達範囲を拡大するために、より重要度の低いグループ識別子を重要度の高い識別子で包括することができる。この場合、同一の内容コードのメッセージについて、異なるグループ識別子を設定すると共に、グループレベル(カラム215)でその優先度を設定しておく。例えば、図4に示す場合、グループレベルに設定されている値が大きい方が優先度が高いとすれば、処理実行部50により内容コード "cc5”、グループ識別子 "B”の指定と共に送られてきたメッセージは、優先度がPよりBが高いので、送信先アドレス "4235D”、 "3221F”の両者に対して送信されることになる。もしグループ優先度として "P”が指定されていれば、メッセージは、送信先アドレス "4235D”にのみ送信される。なお、図5において、送信情報テーブル210の3行目のバッファ識別子欄217の値が未定の状態となっているが、これは、対応する設定フラグ欄216により示されるように、通信路が未設定であり、このため、バッファ識別子の割当てが行われていないことを示している。
以下では、以上説明した処理装置により実現されるメッセージの送受信処理について、まず、メッセージの受信時の処理から説明する。
図6は、通信設定部10による通信媒体1からのメッセージの受信処理の流れを示すフローチャートである。通信設定部10では、まず、通信制御部120により、通信媒体1上を流れるメッセージの送信先アドレス部302に設定されている送信先アドレスをチェックする。通信制御部120は、送信先アドレスが、自己に割り当てられたアドレス、自己が属する処理装置のグループに割り当てられたアドレス、及びブロードキャスト用に設定されたアドレスである場合にそのメッセージを受信する(ステップ501)。通信制御部120は、メッセージを受信すると、バッファ識別子部305を参照して、バッファ110b−112の中に、バッファ識別子部305に設定されているバッファ識別子と一致するバッファ識別子が割り当てられているものが存在するか調べる(ステップ502)。もし、一致するバッファ識別子の割り当てられているバッファが存在していなければ、そのメッセージは、当該処理装置では不要のものとして破棄する(ステップ503)。一方、バッファ識別子の一致するバッファが有れば、そのバッファに受信したメッセージを格納する(ステップ504)。この際、通信制御部120は、図3に示すフォーマットのメッセージからバッファ識別子部305を除いたものをバッファに格納する。通信制御部120は、受信したメッセージを格納したバッファが、有通信路メッセージ受信部101に対応するバッファ110bである場合には(ステップ505)、送信元の処理装置に対してメッセージの受信を確認するための確認メッセージを送出する(ステップ506)。通信制御部120によりバッファ110b−112に格納されたメッセージは、有通信路メッセージ受信部101、無通信路メッセージ受信部102、ブロードキャスト受信部103により、情報受信部20に転送される(ステップ507)。
本実施例において、通信路を用いた通信を行うには、実際にメッセージの送受信を行う前に、送信元処理装置と送信先処理装置との間で通信路の設定を行う必要がある。通信路の設定については、後述する。
図7は、情報受信部20での受信メッセージの処理手順を示すフローチャートである。情報受信部20は、通信設定部10よりメッセージを受け取ると(ステップ601)、メッセージ内の内容コード部301を参照し、メッセージに付されている内容コードを認識する(ステップ602)。次に、データ伝送管理部60内の受信情報テーブル200を参照して、受信メッセージをいずれの実行処理部50に伝送するかを判定する。この判定では、まず、受信情報テーブル200の内容コード欄201を検索して、認識した内容コードと一致する内容コードが設定されている欄があるかないか調べる(ステップ603)。一致する内容コードが見つからなければ、その受信メッセージを破棄して処理を終える(ステップ604)。認識した内容コードに一致する内容コードが登録されている内容コード欄201が見つかれば、その内容コード欄201に対応する処理実行部欄202に登録されている処理実行部をその受信メッセージを伝送すべき処理実行部として決定する(ステップ605)。続いて、ステップ605で決定した処理実行部50にメッセージを転送して処理を終了する。(ステップ606)。
次に、メッセージ送信時の処理について説明する。
処理実行部50は、他の処理装置に通知すべき処理結果であるデータ、あるいは、他の処理装置の処理実行部への問合せがあると、そのデータをその内容に対応して予め定められている内容コード、及び、その情報の重要度に対応したグループ識別子の指定とともに送信情報として出力する。本実施例において、処理実行部50が出力した送信情報は、情報送信部30に渡される。図8は、メッセージ送信時の情報送信部30による処理の流れを示すフローチャートである。
情報送信部30は、まず、内容コード、及びグループ識別子の指定を伴った送信データを処理実行部50から受け取る(ステップ701)。このとき、処理実行部は、必要に応じて設定されている通信路の解除を指定する。次に、指定された内容コード、グループ識別子に基づいてデータ伝送管理部60内の送信情報テーブル210を参照し、使用する通信手段、送信先の処理装置を判別する(ステップ702)。具体的には、処理実行部から指定された内容コード、及びグループ識別子に基づいて送信情報テーブルを検索し、指定された内容コード、及びグループ識別子が登録されている内容コード欄211、及びグループ識別子欄214を含む行の送信先アドレス欄212に登録されている送信先アドレスを求める。この時、内容コード欄211に指定された内容コードと同一の内容コードが登録され、グループ識別子欄214に登録されているグループ識別子が異なる行が有れば、グループレベル欄215に設定されている情報を参照して、そのグループ識別子を持つ処理装置のグループが、指定されたグループ識別子を持つグループに包括されるものであるか調べる。もし、このように、指定されたグループ識別子に包括されるグループ識別子が登録されているグループ識別子欄214が有れば、それに対応する送信先アドレス欄212に登録されている送信先アドレスもメッセージの送信先として判別する。次に、指定された内容コード、及びグループ識別子が登録されている内容コード欄211、及びグループ識別子欄214に対応する通信路設定欄213を参照して通信路を使用した通信を行うか否か調べる(ステップ703)。通信路設定欄213により通信路の使用が指示されていなければ、ステップ706に移る。通信路を使用する場合には、続いて、設定フラグ欄216を参照し、処理実行部50から指定された内容コード、グループ識別子による通信のために通信路が設定済みか否か判定する(ステップ704)。設定フラグ欄216にフラグがセットされておらず、通信路が未設定であれば、後述する処理により、通信路の設定を行う(ステップ705)。ステップ706では、処理実行部50から受け取ったデータを送信部104に送り、メッセージの送出を依頼する。このとき、情報送信部30は、データと共に、処理実行部50から指示された内容コード、ステップ702で判別した送信先アドレス、ステップ703での判定結果に応じて、セットされる通信判定フラグ(通信路を使用する場合にセットされる)、通信モードを示す情報、及び、送信情報テーブル210のバッファ識別子欄217に登録されているバッファ識別子を送信部104に送る。送信情報テーブル210送信部104へのメッセージの送信依頼を終えると、処理実行部50から設定した通信路の解除の指示があったか判定する(ステップ707)。通信路の解除の指示がなければ、そのまま処理を終了し、通信路の解除が指示されていれば、通信に用いた通信路の設定を解除して処理を終了する(ステップ708)。
情報送信部30から送出するメッセージとバッファ識別子を受け取った送信部104は、受け取った情報から図3に示す通信媒体1上に送出するフォーマットのメッセージを生成し、バッファ113にそのメッセージを格納する。バッファ113に格納されたメッセージは、通信制御部120により取り出され、通信媒体1上に送出される。通信制御部120は、送出したメッセージが通信路を使うものであれば、そのメッセージに対する応答メッセージを待つ。もし、応答メッセージが返ってこなければ、メッセージの再送等の処理を行う。なお、送信部104から受け取ったメッセージが通信路を使用するものかどうかは、メッセージに付されている通信判定フラグ303を参照することで知ることができる。
次に、メッセージの通信に通信路を使用する場合の通信路の設定処理について説明する。通信路の設定処理の流れを図9に示す。図9(a)は、通信路設定処理時にメッセージ送信側の処理装置で行われる処理のフローチャートであり、図9(b)は、通信路設定処理時にメッセージ受信側の処理装置で行われる処理のフローチャートである。
まず、メッセージの送信側では、メッセージ送信時に通信路の設定が必要となった場合(図8のステップ705)、情報送信部30が通信路設定のために受信側処理装置のバッファ110bに割り当てるバッファ識別子を決定し、そのバッファ識別子を送信テーブル210のバッファ識別子欄217に格納する(ステップ801)。そして、送信先アドレスと決定したバッファ識別子を指定して通信路の設定要求の送出を送信部104に依頼する(ステップ802)。送信部104は、情報送信部30から依頼を受けると、ユニキャストまたはマルチキャストを示す情報、バッファ110aに割り当てられた識別子を、それぞれ送信先アドレス部302、通信モード部304、バッファ識別子部305に有し、データ部306にステップ801で決定したバッファ識別子をセットしたメッセージを構成しバッファ113に格納する。バッファ113に格納された通信路の設定を要求するメッセージは、通信制御部120によって通信媒体1上に送出される(ステップ803)。この後、メッセージ送信側の通信制御装置は、メッセージ受信側の処理装置からの応答を待つ(ステップ804)。メッセージ受信側の処理装置から応答があると、メッセージ送信側の処理装置の通信制御部120は、その応答を情報送信部30に通知する(ステップ805)。情報送信部30は、通信制御部120から応答があった旨の通知を受けると、送信情報テーブル210の対応する設定フラグ欄216にフラグをセットする(ステップ806)。
一方、ステップ803で送信された通信路の設定を要求するメッセージは、メッセージ受信側の処理装置の通信制御部120で受信されると(ステップ811)、バッファ110aを介して有通信路メッセージ受信部101に送られる(ステップ812)。有通信路メッセージ受信部101は、通信路設定要求メッセージを受け取ると、そのメッセージに含まれて送られてきた通信路を設定した通信を行なうためのバッファ識別子を認識し、そのバッファ識別子を割り当てたバッファ110bを設定する(ステップ813)。バッファ110bの設定し、通信路の設定を終えると、有通信路メッセージ受信部101は、通信制御部120に依頼し、通信路の設定を終了したことを通知する応答をメッセージ送信側の処理装置に送信する(ステップ814)。
以上のようにして、メッセージ送信側の処理装置と、メッセージ受信側の処理装置との間での通信路の設定がなされると、以後、この通信路を用いたメッセージの通信が可能となる。メッセージ送信側の処理装置は、メッセージの伝送をユニキャストにより行なう場合は、特定の1つの処理装置との間で上述したような方法により通信路の設定を行なう。また、マルチキャスト通信を行なう場合には、通信相手となる複数の処理装置との間で、上述した方法により個々の処理装置との間の通信路を設定すればよい。
なお、設定された通信路を解除するには、メッセージ送信側の処理装置の情報送信部30により、送信情報テーブル210の対応する設定フラグ欄217にセットされているフラグをリセットして通信路の解除を要求するメッセージをメッセージ受信側の処理装置に送る。通信路の解除を要求するメッセージを受信したメッセージ受信側の処理装置は、有通信路メッセージ受信部101において、その通信路のために設定したバッファを開放する等して通信路の解除を行なう。
以上のようにして設定される通信路を用いた処理装置間での通信として、次のような2通りの方法で通信路を使うことができる。本実施例では、いずれの方法を用いてもよいが、システムの特性等を考慮してより適切な方法を選択することが好ましい。
まず、第1の方法では、メッセージ送信側の処理装置とメッセージ受信側の処理装置との間で唯一の通信路を設定し、この両者の間の通信を全てこの一本の通信路を用いて行なう。この方法では、同一の処理装置間では、通信を行う度に通信路の設定を行う必要がなく、送受信にかかる時間の短縮が図れる。また、後述する第2の方法に比べて、処理装置間に設定される通信路の数が少なくてすみ、ネットワークの負荷を低減することができる。しかし、第1の方法では、例えば、メッセージがマルチキャストにより伝送され、その送信先の一部にそのメッセージを必要としない処理装置がある場合、そのメッセージを必要としない処理装置でもそのメッセージが受信され、情報受信部において、そのメッセージを利用する処理実行部50が存在しないにも関わらず、内容コードに基づく受信したメッセージの転送先処理実行部の検索が行なわれることになる。このことは、即ち、情報受信部における受信処理のオーバヘッドが大きくなることを意味し、効率が低下するという問題を生じる。
一方、第2の方法では、通信を行なう処理装置間に、メッセージに付される内容コードに対応して、即ち、メッセージの内容ごとに通信路706を設定する。このような通信路の設定を実現するには、伝送するメッセージに付加する内容コードに対応したバッファ識別子を通信路の設定に用い、メッセージ受信側の処理装置では、自分が必要とするメッセージの内容コードに対応するバッファ識別子についてのみ通信路を設定する。この第2の方法によれば、これまで通信が行われていなかった内容のメッセージを送信する都度、通信路の設定を行なう必要があり、このための処理時間が増加することになる。しかし、各処理装置は、自分に必要なメッセージの内容コードに対応して設定したバッファ識別子についてのみ、通信路の設定を行うため、一旦、通信路が設定されてしまえば、処理装置内に取り込まれるメッセージは、すべて必要なメッセージであると断定できる。従って、第1の方法のように、受信側処理装置の情報受信部において、不要な処理を行なう必要がなくなり、各処理装置は、処理実行部が必要としているメッセージのみを効率よく受信することができるようになる。
本実施例では、システムがオンライン動作中に処理装置の増設を行うことを可能としている。以下では、例として、図1における処理装置2−5で構成されるシステムに処理装置6が新たに接続されたものとして、処理装置6の接続後に行なわれる処理について説明する。
図10は、新たに処理装置を追加する際に行われる処理の流れを示すフローチャートである。システム内に新たな処理装置6が接続されると、処理装置6は、自己に関する情報を含む追加メッセージをブロードキャストにより通信媒体1上に送出する(ステップ901)。この時、送出する追加メッセージには、図3に示したものと同様のフォーマットのメッセージを用いることができる。内容コード欄301には、処理装置の追加処理時に新たに追加された処理装置に関する情報であることを示すために、予め定められている内容コードをセットする。データ部306には、処理装置6に割り当てられたアドレス、処理装置6内の処理実行部50が利用するデータの内容に対応した内容コード等の既存の処理装置の送信情報テーブル210を更新するのに必要な情報がセットされる。
通信媒体1上に送出された追加メッセージは、ブロードキャストモードで送出されているので、既存の全ての処理装置2−5の通信制御部120により受信される(ステップ902)。処理装置2−5により受信された追加メッセージは、各処理装置内で、通信制御部120からバッファ112、ブロードキャスト受信部103を介して情報受信部20に渡される。さらに、情報受信部20は、追加メッセージの内容コード部を参照し、受け取ったメッセージが追加メッセージであることを認識すると、その追加メッセージのデータ部306を登録変更部40に送る(但し、受信情報テーブル200には、予め追加メッセージに付される内容コードと、登録変更部40の対応付けが登録されているものとする)(ステップ903)。登録変更部40では、受け取った処理装置6に関する情報に基づいて送信情報テーブル210を更新する(ステップ904)。登録変更部40は、送信情報テーブル210を更新すると、今度は、自処理装置に関する情報を作成する(ステップ905)。登録変更部40が作成した情報には、各処理装置2−5のアドレス、各処理装置2−5の実行処理部50の処理に必要なデータに対応する内容コード等が含まれる。ステップ905で作成された情報は、追加された処理装置6のアドレスとともに登録変更部40から情報送信部30に送られ、ユニキャストモードで処理装置6に伝送される(ステップ906)。処理装置6では、各処理装置から送られてくるそれぞれの処理装置に関する情報を含むメッセージを受信すると、ステップ903と同様にして、それを登録変更部60に転送する(ステップ907)。処理装置6の登録変更部40は、各処理装置から送られてきた情報に基づいて自らの送信情報テーブル210を生成する(ステップ908)。
以上のようにして、既存の処理装置2−5の送信テーブルの更新、新たに追加された処理装置6の送信テーブルの生成が行われると、先に説明した方法により新たな処理装置6を含む処理装置間でのメッセージの伝送が可能となる。
次に、システム内のある処理装置において、新たなデータの受信が必要となったとき、または、受信が不要となったデータが発生したときには、上述した新たな処理装置が追加されたときの処理と同様にして他の処理装置内の送信情報テーブル210の内容が更新される。具体的には、変更のあった処理装置から新たに必要になったデータ、あるいは不要になったデータに関する情報(内容コード、グループ識別子等)をデータ部に持つメッセージをブロードキャストモードで他の処理装置に送る。他の処理装置では、このメッセージを受信し、登録変更部40により、送られてきた情報をもとに送信情報テーブル210の内容を更新する。なお、この場合、新たな処理装置を追加した場合と異なり、他の処理装置から変更のあった処理装置へ特に通知すべき情報はなく、処理装置追加の際の処理(図10)におけるステップ905以降の処理に相当する処理は行われない。
以上、本発明の一実施例について説明した。以上の実施例では、情報送信部が処理実行部から出力された情報の送信先(送信先となる処理装置のアドレス)、送信のためのモード(ユニキャスト、マルチキャスト、ブロードキャスト)、送信方法(通信路を設定するか否か)を判定するために、内容コードのほかに、送信するメッセージの重要度に対応するグループ識別子を参照しているが、この判定を内容コードのみに基づいて行なうようにすることもできる。あるいは、送信先の処理装置は内容コードに従って決定し、送信モード、送信方法は処理実行部から指示されたグループ識別子に従って判定するといったことも可能である。また、グループ識別子として、送信する情報の重要度以外にも、情報の発生頻度、量、緊急度、あるいは、テストデータか否か等、送信する情報の性質的な特性に対応させた識別子をいれば、これらに応じて送信モード、送信方法等を判定することができる。例えば、情報の発生頻度に関して、送信するメッセージに付加する内容コードに対応して所定の時間間隔でのメッセージの発生回数をカウンタ等によりカウントし、この値が所定のカウント値を超えた場合に通信路を設定して通信を行ない、所定値以下であれば、通信路を設定せずに通信を行なうといったことができる。通信路の設定を行なうか否かをこのように決定することにより、発生頻度の低い場合には、ネットワークの負荷を高めることなく通信を行ない、発生頻度が高くなった場合に、受信側でのバッファのオーバーフローによるメッセージの喪失を防ぐ、といったことを実現することができる。
本実施例によれば、実行処理部から出力された情報の送信先、情報を伝送するためのモード、情報を伝送するための方法については、各処理装置がそれぞれ処理実行部から指定された内容コード、重要度に基づいて決定している。このため、各処理装置内の処理実行部は、他の処理装置の処理実行部に対して処理結果、あるいは情報の要求を送信しようとする際、情報を送るべき処理実行部が存在する処理装置のアドレス、情報を送信するためのモード、伝送するための方法を考慮する必要がなく、送ろうとする情報の内容に対応して予め定められている内容コード、及び情報の重要度を指定するのみでよい。また、本実施例によれば、処理実行部であるユーザプログラム等の作成者は、システムの構成等を意識する必要がなく、より効率的にプログラムの作成を行なうことが可能となる。さらに、システムの拡張等があった場合でも処理装置側で必要な対応が行われるので、処理装置上で動作するユーザプログラム等に影響を与えることはないといえる。なお、本実施例における通信路の設定/解除を行なうにあたり、例えば、西田竹志著、ソフト・リサーチ・センタ発行の「TCP/IP〜ネットワーク・プロトコルとインプリメント〜」に記載のあるTCP/IPと呼ばれるプロトコルを用いることができる。TCP/IPを用いるに当たっては、TCP/IP上でのソケットファイルを本実施例におけるバッファに、また、ポート番号をバッファ識別子に対応させ、TCP/IPで定められている手順に従って通信路の設定を行なうことにより、本実施例の機能を実現することが可能である。