(57)【特許請求の範囲】
【請求項１】
複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、
前記複数のノードの各々は、
タイマを有するとともに割り当てられた固有の値を保持し、
応答を送信するときのステップとして、前記タイマを起動するステップと、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで当該応答を所定フレームで送信するステップとを有し、
あるノードの応答の収集中に他のノードが送信した要求に対して応答を送信するときのステップとして、前記あるノードの応答に対応する要求送信時に起動された前記タイマの終了後に、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで前記他のノードが送信した要求に対して当該応答を所定フレームで送信するステップとを有する
ことを特徴とする応答分散式通信方法。
【請求項２】
複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、
前記複数のノードの各々は、
タイマを有するとともに割り当てられた固有の値および応答の返送を期待するノードのリストをそれぞれ保持および予め記憶し、
要求を送信するときのステップとして、前記タイマを起動するステップと、前記リストを利用して当該要求を送信すべき少なくとも１つの送信先ノードの指定情報をヘッダ情報に含めるステップと、前記ヘッダ情報とともに前記要求を所定フレームで送信するステップとを有し、
応答を送信するときのステップとして、要求を所定フレームで受信したとき、その所定フレーム内のヘッダ情報が自宛であるか否かの判断をするステップと、その判断結果が自宛であれば、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで当該応答を所定フレームで送信するステップとを有し、
要求の再送を行うときのステップとして、前記タイマの計時によりタイムアウトが発生する前に、前記要求のヘッダ情報に含めた応答の返送を期待するノードの全てから応答を受信した場合には、前記タイマを停止するステップと、前記応答の返送を期待するノードの全てから応答を受信する前に、前記タイマの計時によりタイムアウトが発生した場合には、前記応答の返送を期待するノードのうち応答を返送してこなかったノードに対してのみ当該要求の再送を行うステップとを有し、
障害ノード対策のステップとして、前記要求の再送を行うときのステップで要求の再送を所定回数行ってもその再送の相手先から応答が返送されてこない場合には、その相手先のノードを障害ノードとして取り扱うステップと、前記要求の再送を行うときのステップにおいて、前記障害ノードに対する再送の回数を、前記障害ノードとして取り扱わないノードに対する再送の回数よりも少なくするステップとを有する
ことを特徴とする応答分散式通信方法。
【請求項３】
複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、
前記複数のノードの各々は、割り当てられた固有の値を保持するとともに、送信機能として、応答を所定フレームで送信するとき、その応答の送信タイミングを前記固有の値に応じて遅延させる応答送信機能と、要求を所定フレームで送信するとき、その要求を、この送信タイミングを遅延させることなく送信する要求送信機能とを個別に有し、
前記複数のノードのうち、データの送信に関する要求が他のノードに比べて多い少なくとも１つのノードを高優先度ノードとし、前記高優先度ノードからの応答が前記他のノードからの応答よりも先に送信されるように前記通信システムを設定し、前記他のノードに対して、前記高優先度ノードから応答が返送されてこない場合、応答の収集を中断させて前記高優先度ノードへの要求の再送を行わせることを特徴とする応答分散式通信方法。
【請求項４】
複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、
前記複数のノードの各々は、
通信イベント周期タイマおよび応答受信完了待ちタイマを有するとともに割り当てられた固有の値としてのノード番号、および当該ノードのノード番号および他のノードのノード番号の一覧となる接続リストを有し、
設定をするときのステップとして、自ノードのノード番号と前記接続リスト中のノード番号とを比較し、自ノードの応答の送信順序を算出するとともに、前記通信システムに接続されるノード数に応じて、前記通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間を設定するステップとを有し、
応答を送信するときのステップとして、伝送媒体の伝送速度と当該応答のデータ長とからその応答の前記伝送媒体における滞在時間を算出するステップと、その滞在時間から通信システムの輻輳を回避するために必要な応答の送信時間間隔を算出するステップと、前記送信順序および前記送信時間間隔に応じて当該応答を所定フレームで送信するステップとを有する
ことを特徴とする応答分散式通信方法。
【請求項５】
前記複数のノードの各々は、障害ノードの数が増えれば、その障害ノードの数が増える前よりも前記通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さを短くすることを特徴とする請求項４記載の応答分散式通信方法。
【請求項６】
所定フレームの受信時刻から前記通信システムの負荷を算出し、この負荷から前記通信システムの負荷が増大しているか否かを判断し、前記通信システムの負荷が増大していれば前記応答の送信時間間隔を長くすることを特徴とする請求項１から４のいずれかに記載の応答分散式通信方法。
【請求項７】
請求項１から６のいずれかに記載の応答分散式通信方法で、複数のノードが相互にデータの送受信を行うことを特徴とする通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のノードが相互にデータの送受信を行う通信システム用であって、防災システムなどに適用可能な応答分散式通信方法およびその通信システムに関するものである。
【０００２】
【従来の技術】
従来、様々な通信方法が提案されまた採用されているが、例えば、特開平５−２１１５０３号公報には、ネットワークに接続された複数の局を有し、発呼局から送信された同報要求情報を受信した複数の着呼局は発呼局に同報応答情報を送信する同報通信方式において、各着呼局は、他の着呼局と異なる遅延時間が経過した後、同報応答情報を送信し、これにより、ネットワーク上の局所的なトラヒックの増加を抑制する同報通信方式が記載されている。
【０００３】
また、特開平１０−７９７５３号公報には、一斉同報伝文送信局は一斉同報伝文受信局が応答伝文を送信するまでの待ち時間を指定するディレイ種別情報を一斉同報伝文中に挿入または付加して送信し、一斉同報伝文受信局は、その一斉同報伝文を受信して伝文中のディレイ種別情報を読み取って自局のディレイタイムを設定し、設定されたディレイタイム経過後に応答伝文を送信し、これにより、短い一斉同報伝文で応答伝文が返信されるタイミングを制御することができる一斉同報通信制御方法が開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記公報に記載の方法では、いずれも単独のノードが同報を行った場合の動作が規定されているに止まり、それら方法を複数のノードが相互にデータの送受信を行う通信システムに適用することができない。
【０００５】
ところで、このような通信システムには、複数のノードが送信を行った場合にデータが消失するなどの問題点が存在する。
【０００６】
図１０はこの問題点の説明図で、この図の例では、一のノードが時点ｔ１で要求を送信した後、時点ｔ２で別のノードが要求を送信すると、その時点ｔ２以降の区間ＴＭ１では、単独のノードが要求を送信した場合の２倍のトラヒックが発生することになるので、データの衝突や受信バッファ漏れなどに起因してデータが消失する恐れがある。要求を送信するノード数がさらに増加すると、トラヒック量がさらに増加することから、データ消失の危険性が一層高くなる。特に、各ノードが自律的に動作し、非同期にデータの送信を行う分散システムでは、他のノードの送信タイミングを予測することが困難であり、このため、全ノードが一斉に要求を送信する場合を想定して通信システムの設計を行う必要がある。ただし、図１０において、時点ｔ１，ｔ２以外の送信信号は応答の送信信号である。
【０００７】
なお、複数のノードが相互にデータの送受信を行う通信システムでは、要求の遅延を最小限に抑える通信方法も望まれる。また、応答の遅延を最小限に抑える通信方法も望まれる。後者は、各ノードに並列処理機能を具備させれば、ある要求に対する応答の収集が終了する前に次の要求の送信が可能になるので、必ずしも必要とは言えないが、並列処理機能を具備するにはより複雑なトランザクション管理機能が必要になり、各ノード、引いては通信システムの設計が勢い複雑になる。このため、並列処理機能を具備しない方が設計が極めて容易になり、この場合、応答の遅延を最小限に抑えることが要求される。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、複数のノードによる要求の送信に起因して、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避し得る応答分散式通信方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するための請求項１記載の発明の応答分散式通信方法は、複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、前記複数のノードの各々は、タイマを有するとともに割り当てられた固有の値を保持し、応答を送信するときのステップとして、前記タイマを起動するステップと、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで当該応答を所定フレームで送信するステップとを有し、あるノードの応答の収集中に他のノードが送信した要求に対して応答を送信するときのステップとして、前記あるノードの応答に対応する要求送信時に起動された前記タイマの終了後に、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで前記他のノードが送信した要求に対して当該応答を所定フレームで送信するステップとを有することを特徴とする。
この方法によれば、各ノードの応答の送信タイミングが固有の値に応じて遅延するようになるので、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。
【００１０】
請求項２記載の発明の応答分散式通信方法は、複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、前記複数のノードの各々は、タイマを有するとともに割り当てられた固有の値および応答の返送を期待するノードのリストをそれぞれ保持および予め記憶し、要求を送信するときのステップとして、前記タイマを起動するステップと、前記リストを利用して当該要求を送信すべき少なくとも１つの送信先ノードの指定情報をヘッダ情報に含めるステップと、前記ヘッダ情報とともに前記要求を所定フレームで送信するステップとを有し、応答を送信するときのステップとして、要求を所定フレームで受信したとき、その所定フレーム内のヘッダ情報が自宛であるか否かの判断をするステップと、その判断結果が自宛であれば、前記固有の値に応じて送信タイミングを遅延させるステップと、その送信タイミングで当該応答を所定フレームで送信するステップとを有し、要求の再送を行うときのステップとして、前記タイマの計時によりタイムアウトが発生する前に、前記要求のヘッダ情報に含めた応答の返送を期待するノードの全てから応答を受信した場合には、前記タイマを停止するステップと、前記応答の返送を期待するノードの全てから応答を受信する前に、前記タイマの計時によりタイムアウトが発生した場合には、前記応答の返送を期待するノードのうち応答を返送してこなかったノードに対してのみ当該要求の再送を行うステップとを有し、障害ノード対策のステップとして、前記要求の再送を行うときのステップで要求の再送を所定回数行ってもその再送の相手先から応答が返送されてこない場合には、その相手先のノードを障害ノードとして取り扱うステップと、前記要求の再送を行うときのステップにおいて、前記障害ノードに対する再送の回数を、前記障害ノードとして取り扱わないノードに対する再送の回数よりも少なくするステップとを有することを特徴とする。
この方法によれば、各ノードの応答の送信タイミングが固有の値に応じて遅延するようになるので、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、自宛のデータであれば応答が送信されるほか、応答の返送を期待するノードのうち応答を返送してこなかったノードに対してのみ要求の再送が行われるので、冗長なトラヒックを抑制し、信号の衝突や受信バッファ溢れなどによる要求のデータ消失の確率を低く抑えることができる。さらに、障害ノードに対する再送の回数が少なくされるので、直ちに次の要求の送信が可能になる。つまり、応答の期待できないノードへの再送の繰り返しによる冗長な待ち時間を縮小することで、次の要求の迅速な送信が可能になる。
【００１１】
請求項３記載の発明の応答分散式通信方法は、複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、前記複数のノードの各々は、割り当てられた固有の値を保持するとともに、送信機能として、応答を所定フレームで送信するとき、その応答の送信タイミングを前記固有の値に応じて遅延させる応答送信機能と、要求を所定フレームで送信するとき、その要求を、この送信タイミングを遅延させることなく送信する要求送信機能とを個別に有し、前記複数のノードのうち、データの送信に関する要求が他のノードに比べて多い少なくとも１つのノードを高優先度ノードとし、前記高優先度ノードからの応答が前記他のノードからの応答よりも先に送信されるように前記通信システムを設定し、前記他のノードに対して、前記高優先度ノードから応答が返送されてこない場合、応答の収集を中断させて前記高優先度ノードへの要求の再送を行わせることを特徴とする。
この方法によれば、各ノードの応答の送信タイミングが固有の値に応じて遅延するようになるので、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、要求の送信タイミングは遅延されないので、要求の迅速な送信が可能になる。さらに、高優先度ノードに対する要求が優先的に行われるので、高優先度ノードに対する要求の遅延を最小限に抑えることができる。
【００１２】
請求項４記載の発明の応答分散式通信方法は、複数のノードが相互にデータの送受信を行う通信システムにおいて前記複数のノードの各々の応答を分散させる通信方法であって、前記複数のノードの各々は、通信イベント周期タイマおよび応答受信完了待ちタイマを有するとともに割り当てられた固有の値としてのノード番号、および当該ノードのノード番号および他のノードのノード番号の一覧となる接続リストを有し、設定をするときのステップとして、自ノードのノード番号と前記接続リスト中のノード番号とを比較し、自ノードの応答の送信順序を算出するとともに、前記通信システムに接続されるノード数に応じて、前記通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間を設定するステップとを有し、応答を送信するときのステップとして、伝送媒体の伝送速度と当該応答のデータ長とからその応答の前記伝送媒体における滞在時間を算出するステップと、その滞在時間から通信システムの輻輳を回避するために必要な応答の送信時間間隔を算出するステップと、前記送信順序および前記送信時間間隔に応じて当該応答を所定フレームで送信するステップとを有することを特徴とする。
この方法によれば、各ノードの応答の送信タイミングが固有の値に応じて遅延するようになるので、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、伝送媒体の伝送速度および応答のデータ長をもとに応答の送信時間間隔が算出されるので、遅延を最小限に抑えて応答を返送することが可能となる。さらに、通信システムに接続されるノード数が変化しても通信システムの輻輳を回避することができるほか、通信システムに接続されるノード数に応じて応答の遅延を最小限に抑えることができる。
【００１３】
請求項５記載の発明は、請求項４記載の応答分散式通信方法において、前記複数のノードの各々は、障害ノードの数が増えれば、その障害ノードの数が増える前よりも前記通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さを短くすることを特徴とする。
この方法によれば、障害ノードからの応答待ちによる冗長な遅延を抑制し、応答の遅延を最小限に抑えることができる。
【００１４】
請求項６記載の発明は、請求項１から４のいずれかに記載の応答分散式通信方法において、所定フレームの受信時刻から前記通信システムの負荷を算出し、この負荷から前記通信システムの負荷が増大しているか否かを判断し、前記通信システムの負荷が増大していれば前記応答の送信時間間隔を長くすることを特徴とする。
この方法によれば、通信システムの負荷が増大していれば応答の送信時間間隔が長くなるので、信号の衝突や受信バッファ溢れなどによる要求のデータ消失の確率を低く抑えることができる。
【００１５】
請求項７記載の発明の通信システムは、請求項１から６のいずれかに記載の応答分散式通信方法で、複数のノードが相互にデータの送受信を行うことを特徴とする。
このシステムによれば、各ノードの応答の送信タイミングが固有の値に応じて遅延するようになるので、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。
【００２２】
【発明の実施の形態】
図１は本発明の第１実施形態に係る応答分散式通信方法の説明図で、この図を用いて以下に第１実施形態の説明を行う。
【００２３】
まず、第１実施形態に係る応答分散式通信方法が適用される通信システムの説明を本発明の通信システムに係る一実施形態とともに行う。
【００２４】
図２はその通信システムの構成例を示す図、図３はその通信システムで送受信されるデータのフレームフォーマット例を示す図で、図２に示す通信システム１は、リング型で媒体共有のネットワーク２と、このネットワーク２に接続される複数台（図２の例では８台）のノード３とにより構成されている。ただし、図２に示す括弧“［］”内の数字はノード番号を示す（図１も同様）。
【００２５】
この通信システム１で送受信されるデータのフレームＦは、ヘッダ部Ｆ１およびデータ部Ｆ２により成り、ヘッダ部Ｆ１には、送信元ノード番号Ｆ１１、送信先ノード／グループ番号Ｆ１２、送信先相手指定Ｆ１３、要求／応答のメッセージ種別Ｆ１４、およびトランザクション番号Ｆ１５が含まれる。
【００２６】
図４は図２に示す各ノードのハードウェア構成図、図５は図４に示すハードウェア、特に制御部上に具備される機能ブロック図で、各ノード３は、図４に示すように、ネットワーク２に接続され、このネットワーク２にデータを送信するための送信部３０と、受信バッファメモリ（受信バッファ）３１ａを有し、ネットワーク２に接続され、このネットワーク２からデータを受信するための受信部３１と、計時用のタイマ３２と、種々のデータ記憶用のメモリ３３と、これら送信部３０、受信部３１、タイマ３２およびメモリ３３などが接続され、当該ノード３用の種々の制御などの処理を行う制御部（ＣＰＵ）３４とにより構成されている。
【００２７】
このように構成されるハードウェア上には、所定のソフトプラグラムに従って動作する制御部３４の処理機能により、図５に示すように、送信部３０および受信部３１用のドライバ３００と、データ部Ｆ２用の情報処理などを行うアプリケーションタスク部３０１と、ヘッダ部Ｆ１の情報をもとに、送受信されるフレームＦの処理を行う通信プロトコル層部３０２とが具備される。
【００２８】
この通信プロトコル層部３０２には、種々の管理を行う機能として、後述するヘッダ解析部３１６からの通知に応じてフレームの受信履歴を管理してアプリケーションタスク部３０１に通知するフレーム受信履歴管理部３０３と、システム状態管理部３０４と、フレームの送信に対する応答を管理する応答管理部３０５と、ヘッダ部Ｆ１のトランザクション番号を指定するトランザクション管理部３０６とが具備されている。そして、応答管理部３０５およびトランザクション管理部３０６からの情報をアプリケーションタスク部３０１に通知するためのキュー３０７が具備されているほか、イベントフラグ用のキュー３０８が具備されている。
【００２９】
また、通信プロトコル層部３０２には、要求送信機能として、アプリケーションタスク部３０１からの送信すべき要求入力用のキュー３０９と、図３に示すフォーマットに従って、トランザクション管理部３０６により指定されるトランザクション番号などをヘッダ部Ｆ１に含めるとともにキュー３０９から得られる要求の情報をデータ部Ｆ２に含めてフレームＦを組み立てるほか、送信先に指定した少なくとも１つのノードのノード番号を応答管理部３０５に通知し、キュー３０８に要求イベントを登録する要求フレーム作成部３１０と、この要求フレーム作成部３１０から得られるフレームを送信のために取り込むキュー３１１とが具備されている。また、通信プロトコル層部３０２には、応答送信機能として、応答のフレームＦを組み立てる応答フレーム作成部３１２と、この応答フレーム作成部３１２から得られるフレームを送信のために取り込むキュー３１３とが具備されている。そして、キュー３１１，３１３の後段には、送信遅延部３１４ａを有し、キュー３１１からのフレームを直ぐにドライバ３００に渡す一方、キュー３１３からのフレームを送信遅延部３１４ａに通してその送信タイミングを遅延させた上でドライバ３００に渡すフレーム送信部３１４が作成されている。
【００３０】
さらに、通信プロトコル層部３０２には、ドライバ３００からの受信されたフレーム入力用のキュー３１５と、このキュー３１５から得られるフレームにおけるヘッダ部Ｆ１の解析を行うヘッダ解析部３１６とが具備されている。
【００３１】
このヘッダ解析部３１６の処理機能をさらに詳述すると、例えばヘッダ部Ｆ１における送信先ノード／グループ番号Ｆ１２を参照してそれが自宛のものでなければ、そのヘッダ部Ｆ１を持つフレームを破棄する処理が行われる。
【００３２】
また、ヘッダ部Ｆ１におけるメッセージ種別Ｆ１４を参照してそれが要求であれば、さらに送信先相手指定Ｆ１３を参照して、それが自宛のものでない場合にはフレームを破棄する処理が行われる。これに対して、自宛のものである場合にはフレームまたはそのヘッダ部Ｆ１を応答フレーム作成部３１２に渡す処理が行われる。これにより、応答用のフレームが応答フレーム作成部３１２で作成されてキュー３１３にキューイングされ、この後、フレーム送信部３１４を通じてドライバ３００に渡されることになる。また、キュー３０８に応答イベントの登録を行うとともに、トランザクション管理部３０６に受信フレームを通知する処理が行われる。このとき、トランザクション管理部３０６が２重受信でないと判断した場合、キュー３０７を介してアプリケーションタスク部３０１に要求メッセージが通知される。
【００３３】
一方、上記メッセージ種別Ｆ１４を参照してそれが応答であれば、応答管理部３０５にヘッダ部Ｆ１の情報を通知する処理が行われる。この場合、応答管理部３０５において、応答を得るべき全ノードから全ての応答が返送されてきた時点で応答受信完了待ちタイマを停止し、アプリケーションタスク３０１に対して正常終了を通知する処理が行われる。
【００３４】
ここで、図４に示したタイマ３２は、通信イベント周期タイマ、上記応答受信完了待ちタイマ、および応答送信待ちタイマとして使用される。
【００３５】
通信イベント周期タイマは、イベントフラグ用のキュー３０８にイベントが存在しない場合に要求の送信、または自宛か否かに関わらず要求の受信があれば、あるいは当該通信イベント周期タイマの計時終了時にキュー３０８に少なくとも１つのイベントがキューイングされていれば、起動し、停止条件を有さない。また、タイムアウト時にはキュー３０８を参照する処理が実行される。
【００３６】
応答受信完了待ちタイマは、キュー３０８にイベントが存在しない場合に要求の送信があれば、あるいは通信イベント周期タイマの計時終了後にキュー３０８から得られるイベントが要求であれば、起動し、この後、返送されるべき全ノードから応答が全て受信されると、応答管理部３０５によって停止される。また、タイムアウト時には、再送回数に満たない場合、応答を返送してこなかったノードをヘッダ部Ｆ１の送信先相手指定Ｆ１３に設定して再送する処理が行われる。再送回数分再送を行った場合、応答を返送してこなかったノードのノード番号をシステム状態管理部３０４に通知するとともに、異常終了としてアプリケーションタスク部３０１に通知する処理が応答管理部３０５により行われる。
【００３７】
応答送信待ちタイマは、キュー３０８にイベントが存在しない場合に要求の送信があれば、あるいは通信イベント周期タイマの計時終了後にキュー３０８から得られるイベントが応答であれば、起動し、停止条件を有さない。また、タイムアウト時には、応答を送信する処理が行われる。
【００３８】
次に、上記構成の通信システム１に適用される第１実施形態に係る応答分散式通信方法を説明すると、第１実施形態では、複数のノード３の各々に対して、固有の値として例えばノード番号を割り当ててそれを保持させ、フレーム送信部３１４から応答を送信するとき、この応答の送信タイミングを送信遅延部３１４ａでその固有の値に応じて遅延させる方法が採られる。その遅延時間は、ノード番号×１０ｍｓにより得られる値に設定される。なお、この遅延処理は図５に示す送信遅延部３１４ａで行われる。
【００３９】
図１を用いて上記方法による動作例を説明する。ただし、伝送媒体における伝送遅延時間およびドライバ３００でのデータ処理時間は、十分短く無視できるものとする。
【００４０】
ノード３［２］が要求を例えばグループ通信またはマルチキャストで他のノード３［１］，３［３］〜３［８］に送信すると（ｔ１０）、他のノードの各々から、ノード番号×１０ｍｓにより得られる値の遅延時間後に順次応答が返送されてくる。すなわち、ノード３［１］からの応答はほぼ１０ｍｓ遅延後の時点ｔ１１に受信され、続いてノード３［３］からの応答はほぼ３０ｍｓ遅延後の時点ｔ１３に受信され、最後にノード３［８］からの応答はほぼ８０ｍｓ遅延後の時点ｔ１８に受信される。このように、通信イベント周期で各ノードの応答送信時刻が一意に決定されるので、複数のノードによる要求の送信に起因して、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することが可能になる。ただし、ノード３［１］〜３［８］は同一のグループに属しているものとする。
【００４１】
また、図１に示すように、ノード３［３］が時点ｔ１２と時点ｔ１３との間の時点ｔ１２３に要求を例えば他のノード全てに送信したとすると、その時点ｔ１２３を基準に、他のノードの各々から順次応答が返送されてくるので、衝突による信号の消失を防止することができるほか、上記同様に通信システムの輻輳を回避することが可能になる。
【００４２】
図６は本発明の第２実施形態に係る応答分散式通信方法の説明図で、この図を用いて以下に第２実施形態の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第２実施形態では、複数のノード３の各々に対して、要求を送信するとき、その要求を送信すべき少なくとも１つの送信先ノードの指定情報をヘッダ部Ｆ１の送信先相手指定Ｆ１３に含めさせ、ヘッダ部Ｆ１とともに要求（データ部Ｆ２）をデータとして送信させ、データを受信したとき、このデータから得られるヘッダ部Ｆ１の情報をもとに、受信したデータが自宛のデータであるか否かを判断させ、自宛のデータであれば応答を送信させる方法が採られる。
【００４３】
図６を用いて上記方法による動作例を説明する。ノード３［２］が要求を例えばノード３［１］，３［８］に送信したとすると（ｔ２０）、ノード３［１］，３［８］では、ノード３［２］から受信したデータが自宛のデータであるので、ほぼ１０ｍｓ遅延後の時点ｔ２１およびほぼ８０ｍｓ遅延後の時点ｔ２８にそれぞれ応答を送信する処理が実行され、また、ノード３［３］〜３［７］の各々では、ノード３［２］から受信したデータが自宛のデータではないので、応答を送信する処理は実行されない。これにより、ノード３［２］は、時点ｔ２１でノード３［１］から応答を受信し、時点ｔ２８でノード３［８］から応答を受信することになる。このように、要求を送信する必要のないノードからの応答を排除することにより、冗長なトラヒックの抑制が可能になり、信号の衝突や受信バッファ溢れなどによる要求データの消失の確率を低く抑えることができる。
【００４４】
また、図６に示すように、ノード３［３］が時点ｔ２２と時点ｔ２３との間の時点ｔ２２３に要求を例えばノード３［１］，３［２］に送信したとすると、その時点ｔ２２３を基準に、ノード３［１］，３［２］のみから順次応答が返送されてくるので、衝突による信号の消失を防止することができる。
【００４５】
上記第１および第２実施形態では、動作例として、ノード３［２］の応答の収集中にノード３［３］が要求を送信すると、そのノード３［３］に対する応答の収集がノード３［２］の応答の収集と平行して行われるが、これに限らず、ノード３［２］の応答の収集が終了した後に、ノード３［３］に対する応答の収集が開始されるようにしてもよい。この場合、ノード３［２］の要求送信時に起動された通信イベント周期タイマが終了したら、ノード３［３］に対する応答が開始し、この後、ノード番号×１０ｍｓに従って順次応答が返送されるようにすればよい。この場合の動作例を図７に示す。図７において、ノード３［２］が要求を例えば他のノード全てに送信すると（ｔ３００）、他のノード３［１］，３［３］〜３［８］の各々から順次応答が返送されてくる（ｔ３０１，ｔ３０３，…，ｔ３０８）。この後、ノード３［２］の要求送信時に起動された通信イベント周期タイマが終了すると（ｔ３０９）、ノード３［３］に対して他のノード３［１］，３［２］，３［４］〜３［８］の各々から順次応答が返送されてくる（ｔ３１０，ｔ３１１，…，ｔ３１７）。これにより、通信システムの輻輳を回避することが可能になる。
【００４６】
次に、本発明の第３実施形態に係る応答分散式通信方法の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第１および第２実施形態では、応答の送信時間間隔は一定値の１０ｍｓになっているが、第３実施形態では、応答の送信時間間隔を通信システム１に適応した値に設定する方法が採られる。すなわち、複数のノード３の各々に対して、応答を送信するとき、伝送媒体の伝送速度と応答のフレームのデータ長とからその応答の伝送媒体における滞在時間を算出させ、この滞在時間から通信システム１の輻輳を回避するために必要な応答の送信時間間隔を算出させ、当該ノード３が保持する固有の値から応答の送信順序を決定させ、この送信順序および上記送信時間間隔に応じて応答を送信させる方法が採られるのである。
【００４７】
この方法による応答の送信時間間隔の算出例を説明すると、例えば、伝送媒体の伝送速度を８０ｋボーとし、各ノード３が送信する要求および応答のフレームの平均データ長を２００バイトとすれば、応答の伝送媒体における滞在時間として２．５ｍｓ（＝２００ｂｙｔｅ／８０ｋｂｐｓ）が算出される。続いて、この滞在時間に所定値（≧０）を加えたり所定倍（≧１）するなどして送信時間間隔が算出される。例えば所定値をゼロとすれば、応答の送信時間間隔は２．５ｍｓになる。これにより、通信システムの輻輳を回避することが可能になるとともに、遅延を最小限に抑えて応答を返送することが可能となる。
【００４８】
次に、本発明の第４実施形態に係る応答分散式通信方法の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第４実施形態では、データの受信時刻から通信システム１の負荷を算出し、この負荷から通信システム１の負荷が増大しているか否かを判断し、通信システム１の負荷が増大していれば応答の送信時間を長くする方法が採られる。
【００４９】
具体例としては、通信システム１における複数のノード３のうち、応答の送信時間を決定するマスタとなるノード３を選定する。図２において、例えばノード３［１］をマスタとすると、このノード３［１］に対して、ドライバ３００からデータを受信した場合、自宛か否かに関係なくヘッダ解析部３１６からフレーム受信履歴管理部３０３に受信イベントを通知させ（図５参照）、第３実施形態と同様にして応答の送信時間間隔（例えば２．５ｍｓ）を算出させる。
【００５０】
ここで、例えば１秒毎に通信システム１の負荷状態のモニタ結果を検証させるとすると、４００フレーム（＝１ｓ／２．５ｍｓ）を、通信システム１の負荷が増大しているか否かを判断するための基準値として得ることができる。４００に所定値を加えるなどして得た値を使用するようにしてもよいが、ここでは簡単のため４００をそのまま基準値として使用するものとする。
【００５１】
この場合、ノード３［１］に対して、１秒毎にその１秒間におけるデータの受信時刻から受信したフレーム数を通信システム１の負荷として算出させ、この算出したフレーム数が上記基準値４００以上であると通信システム１の負荷が増大していると判断させる一方、４００未満であると通信システム１の負荷は増大していないと判断させる。さらに、ノード３［１］に対して、通信システム１の負荷が増大していると判断したとき、一時的に応答の送信時間間隔を５ｍｓに長くするように他のノードの全てに通知させ、この後、通信システム１の負荷は増大していないと判断すれば、応答の送信時間間隔を２．５ｍｓに戻すように他のノードの全てに通知させる。一方、これらの通知を受ける他のノードの全てに対して、ノード３［１］からの上記通知に応じて、送信時間間隔を５ｍｓまたは２．５ｍｓに変更させる。
【００５２】
この具体例によれば、通信システム１の負荷が増大すれば、応答の送信時間が長くなるので、信号の衝突や受信バッファ溢れなどによる要求データの消失の確率を低く抑えることができる。
【００５３】
図８は本発明の第５実施形態に係る応答分散式通信方法の説明図で、この図を用いて以下に第５実施形態の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第５実施形態では、複数のノード３の各々に対して、応答の返送を期待するノード３のリストを予め記憶させ、要求を送信するとき、応答受信完了待ちタイマを起動させ、上記リストを利用して要求を送信すべき少なくとも１つの送信先ノードの指定情報をヘッダ部Ｆ１に含めさせ、このヘッダ部Ｆ１とともに要求を送信させ、この後、応答受信完了待ちタイマの計時によりタイムアウトが発生する前に、ヘッダ部Ｆ１に含めた応答の返送を期待するノードの全てから応答を受信した場合には、応答受信完了待ちタイマを停止させる一方、応答の返送を期待するノードの全てから応答を受信する前に、応答受信完了待ちタイマの計時によりタイムアウトが発生した場合には、応答の返送を期待するノードのうち応答を返送してこなかったノードに対してのみ上記要求の再送を行わせる方法が採られる。
【００５４】
次に、上記方法による動作例を説明する。ノード３［２］が要求を例えば他のノード全てに送信すると（ｔ４００）、他のノードの各々から順次応答が返送されてくるが、図８の例では、何等かの原因によってノード３［３］からは応答が返送されてこず、ノード３［３］を除く他のノード３［１］，３［４］〜３［８］の各々から順次応答が返送されてくる（ｔ４０１，…，ｔ４０８）。
【００５５】
この場合、応答の返送を期待するノードの全てから応答を受信する前に、応答受信完了待ちタイマの計時によりタイムアウトが発生し（ｔ４０９）、この時点で、ノード３［２］は送信先相手指定Ｆ１３をノード３［３］のみにして上記要求を再送する。このとき、送信先ノード／グループ番号Ｆ１２およびトランザクション番号Ｆ１５は変更しない。この後、３０ｍｓの経過後の時点ｔ４１２にノード３［３］からノード３［２］に応答が返送される。
【００５６】
このように、応答を送信してこなかったノードに対してのみに再送を行うことで、再送する必要のないノードからの応答が排除されるので、冗長なトラヒックの抑制が可能になり、信号の衝突や受信バッファ溢れなどによる要求データの消失の確率を低く抑えることができる。また、要求の受信は正常に行われ、その要求に対する応答が信号の衝突によって消失した場合に、異なる送信先ノード／グループ番号Ｆ１２およびトランザクション番号Ｆ１５で再送すると、二重受信となってアプリケーションが暴走する危険性があるが、送信先ノード／グループ番号Ｆ１２およびトランザクション番号Ｆ１５を変更せずに再送を行うことで、そのような危険性を伴わない通信が可能になる。
【００５７】
なお、上記第５実施形態において、複数のノード３の各々が、要求の再送を所定回数行ってもその再送の相手先から応答が返送されてこない場合には、その相手先のノードを障害ノードとして取り扱い、この後、障害ノードに対する再送の回数を、障害ノードとして取り扱わないノードに対する再送の回数よりも少なくするようにしてもよい。例えば、所定回数を３回に設定し、障害ノードに対する再送の回数を１回に設定すれば、図８の動作と同様に、ノード３［２］がノード３［３］に対して３回再送を行ってもノード３［３］から応答が返送されてこないと、ノード３［２］において、応答管理部３０５がシステム状態管理部３０４に対してノード３［３］が障害ノードであると通知して、これ以降のノード３［３］に対する再送回数を１回にする処理が行われる。続いて、異常終了したことをアプリケーションタスク部３０１に通知する処理が行われ、これにより、通信処理が完了する。この後、ノード３［２］がノード３［３］に要求を送信して、その要求に対する応答が返送されてこなければ、ノード３［３］に対する再送が１回だけ行われる。この後、その再送に対して応答がないと、通信処理が完了する。これにより、応答が期待できないノードへの再送の繰り返しによる冗長な待ち時間を短縮でき、この短縮した時間だけ次の送信を迅速に行うことができる。
【００５８】
図９は本発明の第６実施形態に係る応答分散式通信方法の説明図で、この図を用いて以下に第６実施形態の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第６実施形態では、複数のノード３のうち、データの送信に関する要求が他のノードに比べて多い少なくとも１つのノードを高優先度ノードとし、この高優先度ノードからの応答が上記他のノードからの応答よりも先に送信されるように通信システム１を設定し、上記他のノードに対して、高優先度ノードから応答が返送されてこない場合、応答の収集を中断させて高優先度ノードへの要求の再送を行わせる方法が採られる。
【００５９】
次に、上記方法による動作例を説明する。ただし、図９では、ノード３［１］がデータの送信に関する要求が他のノードに比べて多く、高優先度ノードに設定されているものとする。
【００６０】
ノード３［２］が要求を例えば他のノード全てに送信すると（ｔ５０）、高優先度ノードに設定されたノード３［１］からの応答が他のノード３［３］〜３［８］からの応答よりも先に返送されるように順次応答が返送されてくるのであるが、図９の例では、何等かの原因で高優先度ノードに設定されたノード３［１］から応答が受信されるべき時点ｔ５１に返送されてこない。この場合、ノード３［２］は、応答の収集を中断して、例えば次のノード３［３］から応答が返送されるべき時点までに、ノード３［１］への要求の再送を行うとともに他のノード３［３］〜３［８］へも同一の要求を再送する（時点ｔ５２）。このとき、送信先ノード／グループ番号Ｆ１２およびトランザクション番号Ｆ１５は変更しない。これにより、二重受信によるアプリケーションの暴走の防止が可能になる。
【００６１】
この後、図９の例では、高優先度ノードに設定されたノード３［１］からの応答が他のノード３［３］〜３［８］からの応答よりも先に返送されるように順次応答が返送されてくる（ｔ５３，ｔ５５〜ｔ６０）。これにより、高優先度ノードからの応答の遅延を最小限に抑えることができる。
【００６２】
次に、本発明の第７実施形態に係る応答分散式通信方法の説明を行う。本応答分散式通信方法も第１実施形態と同様に通信システム１に適用される。第７実施形態では、複数のノード３の各々に対して、通信システム１に接続されるノード数に応じて、通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さを通信システム１の輻輳を回避し得る値に設定させる方法が採られる。
【００６３】
具体的には、初期設定時に、自ノードのノード番号と通信システム１のノード数およびノード番号の一覧（接続リスト）とをアプリケーションタスク部３０１が通信プロトコル層部３０２に通知するように各ノード３を設定する。また、自ノードのノード番号と接続リスト中のノード番号とを比較し、自ノードの応答送信順序を算出するように各ノード３を設定する。
【００６４】
例えば、自ノードのノード番号が９であり、接続リスト中のノード番号が１，３，４，６，９，１０，１３，１６，１９であるとすれば、自ノードの応答送信順序は１，３，４，６の次であることから５番目になる。このように、ノード番号と応答送信順序は必ずしも一致しない。そして、第７実施形態では、通信システム１に接続されるノード数に応じて、通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さを適応的に設定する。この場合、ノード数が１０で、図２のノード数８に対してノード数が２個増えるから、通信システムの輻輳を回避すべく、通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さはノード数が８の場合の１．２５（＝１０／８）倍に変更される。以上により、通信システムに接続されたノード数に応じて応答の遅延時間を最小に設定することができる。
【００６５】
なお、第７実施形態において、既述の障害モードを検出した場合、検出した障害ノードの数を上記各計時時間の長さの設定に加味するようにしてもよい。すなわち、通信システム１に接続されるノード数および障害ノードの数に応じて、通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さを通信システム１の輻輳を回避し得る値に設定するようにしてもよい。例えば、通信システム１に接続されるノード数が１０で障害ノードの数が１の場合には、通信イベント周期タイマおよび応答受信完了待ちタイマによる各計時時間の長さをノード数が１０の場合の０．９倍に変更すればよい。なお、自ノードのノード番号が９であり、接続リスト中のノード番号が１，３，４，６，９，１０，１３，１６，１９であるとき、障害ノードのノード番号が１３であれば自ノードの応答送信順序は５番目のままで、障害ノードのノード番号が４であれば自ノードの応答送信順序が４番目に変わるから、ノード番号×１０ｍｓにより得られる遅延時間が変わるのは言うまでもない。
【００６６】
【発明の効果】
以上のことから明らかなように、請求項１記載の発明によれば、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。
【００６７】
請求項２記載の発明によれば、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、冗長なトラヒックを抑制し、信号の衝突や受信バッファ溢れなどによる要求のデータ消失の確率を低く抑えることができる。さらに、直ちに次の要求の送信が可能になる。
【００６８】
請求項３記載の発明によれば、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、要求の迅速な送信が可能になる。さらに、高優先度ノードに対する要求の遅延を最小限に抑えることができる。
【００６９】
請求項４記載の発明によれば、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。また、遅延を最小限に抑えて応答を返送することが可能となる。さらに、通信システムに接続されるノード数が変化しても通信システムの輻輳を回避することができるほか、通信システムに接続されるノード数に応じて応答の遅延を最小限に抑えることができる。
【００７０】
請求項５記載の発明によれば、障害ノードからの応答待ちによる冗長な遅延を抑制し、応答の遅延を最小限に抑えることができる。
【００７１】
請求項６記載の発明によれば、信号の衝突や受信バッファ溢れなどによる要求のデータ消失の確率を低く抑えることができる。
【００７６】
請求項７記載の発明によれば、伝送媒体の通信容量またはデータ受信能力を超えるトラヒックが発生する場合などの通信システムの輻輳を回避することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る応答分散式通信方法の説明図である。
【図２】通信システムの構成例を示す図である。
【図３】通信システムで送受信されるデータのフレームフォーマット例を示す図である。
【図４】図２に示す各ノードのハードウェア構成図である。
【図５】図４に示すハードウェア、特に制御部上に具備される機能ブロック図である。
【図６】本発明の第２実施形態に係る応答分散式通信方法の説明図である。
【図７】応答の収集の別例を示す図である。
【図８】本発明の第５実施形態に係る応答分散式通信方法の説明図である。
【図９】第６実施形態に係る応答分散式通信方法の説明図である。
【図１０】複数のノードが送信を行った場合にデータが消失するなどの問題点の説明図である。
【符号の説明】
１  通信システム
２  ネットワーク
３  ノード
３０  送信部
３１  受信部
３２  タイマ
３３  メモリ
３４  制御部
【図１】
0003587092.tif 000002
【図２】
0003587092.tif 000003
【図３】
0003587092.tif 000004
【図４】
0003587092.tif 000005
【図５】
0003587092.tif 000006
【図６】
0003587092.tif 000007
【図７】
0003587092.tif 000008
【図８】
0003587092.tif 000009
【図９】
0003587092.tif 000010
【図１０】
0003587092.tif 000011