(57)【特許請求の範囲】
【請求項１】
ネットワークによって接続される複数の受信装置にメッセージをマルチキャスト送信するための送信装置において、
各メッセージを、送信順序を示す情報である通信カウントとともに前記各受信装置に送信するための手段と、
送信した各メッセージごとに、再送用控えとそのメッセージの発信時刻とそのメッセージの保持最小期間とを対応付けて記憶するための記憶手段と、
メッセージの再送要求を前記受信装置から受信するための受信手段と、
前記再送要求に応じて、記憶されている再送用控えに基づいてメッセージを再送するための手段と、
新しいメッセージを送信しようとするときに、現在時刻と前記記憶手段に記憶される最も古い発信時刻とその発信時刻に対応付けて記憶される保持最小期間とに基づいて、その最も古い発信時刻に対応する再送用控えがその保持最小期間を経過しているか否かを判定し、判定された前記再送用控えの前記保持最小期間が経過するまでの間はその新しいメッセージの送信を抑止するための手段と、
記憶されている再送用控えに基づいてメッセージを再送した場合に、再送に係るメッセージの前記保持最小期間を、予め決められた時間だけ延長するための手段とを備えたことを特徴とする送信装置。
【請求項２】
前記再送要求の受信時刻と、その再送要求に係るメッセージの発信時刻とに基づいて、メッセージ及び再送要求の往復時間を計測するための手段と、前記再送要求に係るメッセージの前記保持最小期間を、少なくとも計測された前記往復時間に基づいて延長するための手段を備えたことを特徴とする請求項１に記載の送信装置。
【請求項３】
計測された前記往復時間の履歴を記憶するための手段と、再送に係るメッセージの保持最小期間を、少なくとも、前記履歴として記憶されている各往復時間の平均値だけ延長するための手段と、を備えたことを特徴とする請求項２に記載の送信装置。
【請求項４】
ネットワークによって接続される複数の受信装置にメッセージをマルチキャスト送信するための送信方法において、
各メッセージを、送信順序を示す情報である通信カウントとともに前記各受信装置に送信するためのステップと、
送信した各メッセージごとに、再送用控えとそのメッセージの発信時刻とそのメッセージの保持最小期間とを対応付けて記憶するためのステップと、
メッセージの再送要求を前記受信装置から受信するためのステップと、
前記再送要求に応じて、記憶されている再送用控えに基づいてメッセージを再送するためのステップと、
新しいメッセージを送信しようとするときに、現在時刻と前記記憶手段に記憶される最も古い発信時刻とその発信時刻に対応付けて記憶される保持最小期間とに基づいて、その最も古い発信時刻に対応する再送用控えがその保持最小期間を経過しているか否かを判定し、判定された前記再送用控えの前記保持最小期間が経過するまでの間はその新しいメッセージの送信を抑止するためのステップと、
記憶されている再送用控えに基づいてメッセージを再送した場合に、再送に係るメッセージの前記保持最小期間を、予め決められた時間だけ延長するためのステップと、を含むことを特徴とする送信方法。
【請求項５】
前記再送要求の受信時刻と、その再送要求に係るメッセージの発信時刻とに基づいて、メッセージ及び再送要求の往復時間を計測するためのステップと、前記再送要求に係るメッセージの前記保持最小期間を、計測された前記往復時間に基づいて延長するためのステップと、を含むことを特徴とする請求項４記載の送信方法。
【請求項６】
計測された前記往復時間の履歴を記憶するためのステップと、再送に係るメッセージの保持最小期間を、少なくとも、前記履歴として記憶されている各往復時間の平均値だけ延長するためのステップと、を備えたことを特徴とする請求項５に記載の送信方法。
【請求項７】
コンピュータを制御することによって、ネットワークによって接続される複数の受信装置にメッセージをマルチキャスト送信するための送信用ソフトウェアを記録した記録媒体において、
そのソフトウェアは前記コンピュータに、各メッセージを、送信順序を示す情報である通信カウントとともに前記各受信装置に送信させ、
送信した各メッセージごとに、再送用控えとそのメッセージの発信時刻とそのメッセージの保持最小期間とを対応付けて記憶させ、
メッセージの再送要求を前記受信装置から受信させ、
前記再送要求に応じて、記憶されている再送用控えに基づいてメッセージを再送させ、
新しいメッセージを送信しようとするときに、現在時刻と前記記憶手段に記憶される最も古い発信時刻とその発信時刻に対応付けて記憶される保持最小期間とに基づいて、その最も古い発信時刻に対応する再送用控えがその保持最小期間を経過しているか否かを判定させ、判定された前記再送用控えの前記保持最小期間が経過するまでの間はその新しいメッセージの送信を抑止させ、
記憶されている再送用控えに基づいてメッセージを再送した場合に、再送に係るメッセージの前記保持最小期間を、予め決められた時間だけ延長させることを特徴とする送信用ソフトウェアを記録した記録媒体。
【請求項８】
前記ソフトウェアは前記コンピュータに、前記再送要求の受信時刻と、その再送要求に係るメッセージの発信時刻とに基づいて、メッセージ及び再送要求の往復時間を計測させ、前記再送要求に係るメッセージの前記保持最小期間を、計測された前記往復時間に基づいて延長させることを特徴とする請求項７記載の送信用ソフトウェアを記録した記録媒体。
【請求項９】
前記ソフトウェアは前記コンピュータに、計測された前記往復時間の履歴を記憶させ、再送に係るメッセージの保持最小期間を、少なくとも、前記履歴として記憶されている各往復時間の平均値だけ延長させることを特徴とする請求項８に記載の送信用ソフトウェアを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散システムにおけるマルチキャスト通信に関する技術の改良にかかわるもので、より具体的には、送信メッセージの再送用控えを保持する期間を保証することで、優れた信頼性でメッセージ通信を行うようにしたものである。
【０００２】
【従来の技術】
近年、コンピュータ技術の普及に伴い、複数の計算機をローカルエリアネットワーク（ＬＡＮ）などの通信路で結合した分散システムが普及しつつあり、このような分散システムに接続された各計算機やその通信装置の間で、マルチキャストによってメッセージを交換する例も知られている。
【０００３】
そして、マルチキャストでは、従来のユニキャストと異なり、すべての受信装置が受信した事の確認が困難であり、メッセージの到達を保証するためには、次のような手法が用いられる。すなわち、送信側の送信装置では、通し番号の役割を果たす情報（通信カウントと呼ぶ）を各メッセージに付加して送信するとともに、送信したメッセージの再送用控えを有限のバッファなどの記憶領域に保存する。
【０００４】
そして、受信側の受信装置では、受信したメッセージに付加されている通信カウントに抜けが生じた場合、抜けた番号のメッセージを送信側に再送要求し、送信側では保存している再送用控えに基づいてメッセージを再送する。
【０００５】
この場合、送信側では、記憶領域も有限であるため、新しいメッセージを送信するたびに、最も古い再送用控えから順次消去することで、新しい再送用控えの記憶領域を確保していた。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記のような従来技術では、単位時間あたりに送信されるメッセージの数が多いほど、各メッセージの再送用控えは、新しいメッセージの再送用控えの記憶領域を確保するため、短時間に消去されていた。この場合、通信量や再送の頻度によっては、メッセージが短時間で削除されるため再送要求に応じることができず、通信の信頼性が低下する可能性があった。
【０００７】
特に、再送要求が発生するような場合は、そもそもネットワークや受信装置の負荷が高くなっている場合が多く、再送されたメッセージや、再送要求されたメッセージ以降のメッセージも紛失する可能性も高く、信頼性の向上が潜在的に望まれていた。また、従来技術では、このように負荷が高いときでも新規メッセージの送受信が制限されないため、通信の流量を制御するのが困難という問題点もあった。
【０００８】
なお、これらの問題点を解決するためには、前のメッセージを送信してから少なくとも一定時間以上あけてから次のメッセージを送信することも考えられるが、この場合は応答性が悪くなるという問題点があった。
【０００９】
この発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、送信メッセージの再送用控えを保持する期間を保証することで、優れた信頼性でメッセージ通信を行う送信装置、送信方法及び送信用ソフトウェアを記録した記録媒体を提供することである。
【００１０】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、ネットワークによって接続される複数の受信装置にメッセージをマルチキャスト送信するための送信装置において、各メッセージを、送信順序を示す情報である通信カウントとともに前記各受信装置に送信するための手段と、送信した各メッセージごとに、再送用控えとそのメッセージの発信時刻とそのメッセージの保持最小期間とを対応付けて記憶するための記憶手段と、メッセージの再送要求を前記受信装置から受信するための受信手段と、前記再送要求に応じて、記憶されている再送用控えに基づいてメッセージを再送するための手段と、新しいメッセージを送信しようとするときに、現在時刻と前記記憶手段に記憶される最も古い発信時刻とその発信時刻に対応付けて記憶される保持最小期間とに基づいて、その最も古い発信時刻に対応する再送用控えがその保持最小期間を経過しているか否かを判定し、判定された前記再送用控えの前記保持最小期間が経過するまでの間はその新しいメッセージの送信を抑止するための手段と、記憶されている再送用控えに基づいてメッセージを再送した場合に、再送に係るメッセージの前記保持最小期間を、予め決められた時間だけ延長するための手段とを備えたことを特徴とする。また、請求項４の発明は請求項１の発明を方法という見方から、請求項７は請求項１の発明をソフトウェアを記録した記録媒体の見方からとらえたものである。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態（以下「実施形態」という）について図面を参照しながら説明する。なお、本発明は、周辺機器を持つコンピュータを、ソフトウェアで制御することによって実現されることが一般的と考えられる。この場合、そのソフトウェアは、この明細書の記載にしたがった命令を組み合わせることで作られ、上に述べた従来技術と共通の部分には従来技術で説明した手法も使われる。また、そのソフトウェアは、プログラムコードだけでなく、プログラムコードの実行のときに使うために予め用意されたデータも含む。
【００１５】
そして、そのソフトウェアは、ＣＰＵ、コプロセッサ、各種チップセットといった処理装置、キーボードやマウスといった入力装置、メモリやハードディスク装置といった記憶装置、ディスプレイやプリンタといった出力装置などの物理的な資源を活用することで本発明の作用効果を実現する。
【００１６】
但し、本発明を実現する具体的なソフトウェアやハードウェアの構成はいろいろ変更することができる。例えば、ソフトウェアの形式には、コンパイラ、インタプリタ、アセンブラなどいろいろあり、外部との情報をやり取りするにも、フロッピーディスクなどの着脱可能な記録媒体などいろいろ考えられる。また、本発明を実現するソフトウェアやプログラムを記録したＣＤ−ＲＯＭのような記録媒体は、単独でも本発明の一態様である。さらに、本発明の機能の一部をＬＳＩなどの物理的な電子回路で実現することも可能である。
【００１７】
以上のように、コンピュータを使って本発明を実現する態様はいろいろ考えられるので、以下では、本発明や実施形態に含まれる個々の機能を実現する仮想的回路ブロックを使って、本発明と実施形態とを説明する。
【００１８】
〔１．構成〕
〔１−１．分散システムの構成〕
図１は、本発明の適用対象となる分散システムの一例を示すものである。すなわち、この分散システムは、３つの計算機１ａ，１ｂ，１ｃが、通信路であるローカルエリアネットワーク（ＬＡＮと表す）によって接続されたもので、ある計算機から送信されたメッセージは、３つの計算機すべてに対して放送、ないしマルチキャストされる。
【００１９】
また、図２は、本発明の適用対象となる分散システムの他の例を示すものである。この分散システムは、複数の部分ネットワークＮ１，Ｎ２，Ｎ３が、Ｇａｔｅｗａｙやルータを介して相互に接続され、個々のネットワークＮ１，Ｎ２，Ｎ３に、それぞれ複数の計算機Ｃが接続されている。この例では、ネットワークＮ１，Ｎ２，Ｎ３にまたがって、複数の計算機Ｃ間でマルチキャストによる通信が行われる。
【００２０】
そして、同じネットワークＮ１，Ｎ２又はＮ３に接続された各計算機Ｃには、同一のマルチキャストアドレスが振られており、論理的には図１と同様の環境で通信しあっていると見なすことができる。このため、以下では、図１のような分散システムを前提として説明を行なう。
【００２１】
〔１−２．メッセージ送信のための構成〕
まず、図３は、図１及び図２に例示したようなネットワークに接続された計算機のうち、メッセージを送信する計算機の構成例を示す機能ブロック図である。すなわち、メッセージの送信を行う計算機１は、ネットワークによって接続される複数の受信装置にメッセージをマルチキャスト送信するための送信装置であり、本体処理部１１と送信処理部１２とを備えている。
【００２２】
このうち本体処理部１１は、計算機１上で動作するアプリケーションプログラムなどのプログラムを実行することによって情報処理を行う部分であり、このようなプログラムなど、メッセージ送信を依頼する側の部分をメッセージ処理部３１１と表す。また、送信処理部１２は、本体処理部１１内のプログラムからの送信要求に基づいて、ネットワークや他の計算機に対してメッセージを送信するための部分である。
【００２３】
なお、このようなメッセージ送信のための送信処理部１２を備えた計算機を送信装置又は送信側と呼び、送信されたメッセージを受信するための構成を備えた計算機を受信装置又は受信側と呼ぶ。
【００２４】
また、この送信処理部１２は、受信を行う計算機に設けられた受信装置にメッセージが到達しなかった場合、ネットワークを介してその受信装置から送られるメッセージ再送要求を受信し、送信処理部１２内で当該メッセージの再送処理を行うことによって、メッセージの到達を本体処理部１１に対して保証するように構成されている。
【００２５】
すなわち、送信処理部１２は、メッセージ送信部３０１と、再送要求受信部３０２と、通信カウント管理部３０３と、送信メッセージ記憶部３０４と、再送部３０５と、往復時間計測部３０６と、往復時間記録部３０７と、期間延長部３０８と、現在時刻計測部３０９と、抑止部３１０と、を備えている。
【００２６】
このうち、通信カウント管理部３０３は、送信されるメッセージ（送信メッセージと呼ぶ）ごとに、送信順序を示す情報である通信カウントを提供する部分であり、メッセージ送信部３０１は、メッセージをこの通信カウントととも各受信装置に送信するための手段である。また、送信メッセージ記憶部３０４は、送信した各メッセージごとに、メッセージ本体などの再送用控えとそれに対応する保持最小期間とを記憶するための送信メッセージ記憶手段である。
【００２７】
また、再送要求受信部３０２は、メッセージの再送要求を前記受信装置から受信するための受信手段であり、再送部３０５は、前記再送要求に応じ、送信メッセージ記憶部３０４に記憶されている再送用控えに基づいてメッセージを再送するための手段である。
【００２８】
また、抑止部３１０は、新しいメッセージを送信しようとするときに、送信メッセージ記憶部３０４において、前記保持最小期間未了の再送用控えを消去しないとその新しいメッセージの再送用控えを記憶できない場合に、その新しいメッセージの送信を抑止するための手段である。
【００２９】
また、期間延長部３０８は、再送に係るメッセージの前記保持最小期間を、予め決められた時間だけ延長するための手段である。なお、往復時間計測部３０６及び往復時間記録部３０７は、メッセージ及び再送要求の往復時間に基づいて、メッセージの保持最小期間を延長する場合に、設けるか又は活動状態にする必要がある部分で、予め決められた期間すなわち既定値分の延長のみを行う場合には省く事ができる。
【００３０】
すなわち、往復時間計測部３０６は、再送要求の発信時刻と、その再送要求に係るメッセージの発信時刻とに基づいて、メッセージ及び再送要求の往復時間を計測するための手段であり、この場合、期間延長部３０８は、再送要求に係るメッセージの保持最小期間を、計測された往復時間に基づいて延長するための手段として構成される。
【００３１】
また、往復時間記録部３０７は、計測された往復時間の履歴を記憶するための手段であり、この場合、期間延長部３０８は、例えば、再送に係るメッセージの保持最小期間を、少なくとも、往復時間記録部３０７に履歴として記憶されている各往復時間の平均値だけ延長するように構成される。また、現在時刻計測部３０９は、上記のような往復時間の計測などのために、システム内蔵時計などを使って現在時刻を得るための部分である。
【００３２】
〔１−３．メッセージ受信のための構成〕
次に、図４は、図１及び図２に例示したようなネットワークに接続された計算機のうち、メッセージを受信する計算機の構成例を示す機能ブロック図である。すなわち、計算機２は、本体処理部２１と受信処理部２２とを備え、本体処理部２１には、計算機上で動作するプログラムなどによって、受信したメッセージに基づいて情報処理を行うメッセージ処理部４０７が実現されている。
【００３３】
また、受信処理部２２は、ネットワークからメッセージを受信し、本体処理部２１のメッセージ処理部４０７へメッセージを渡し、メッセージの抜けを検出した場合には、受信処理部２２から当該メッセージの再送要求を送信装置へ送るように構成されている。
【００３４】
具体的には、受信処理部２２は、メッセージ受信部４０１と、メッセージ抜け検出部４０３と、メッセージ順序調整部４０４と、受信履歴記憶部４０５と、受信メッセージ退避記憶部４０６と、再送要求送信部４０２と、を備えている。このうちメッセージ受信部４０１は、送信されたメッセージをネットワークから受信する部分であり、受信履歴記憶部４０５は、受信したメッセージの通信カウントの履歴を記憶するための部分である。
【００３５】
また、メッセージ抜け検出部４０３は、受信したメッセージの通信カウントと、それまでに受信したメッセージについて受信履歴記憶部４０５に記憶されている通信カウントの受信履歴と、に基づいて、送信されたが受信していないメッセージ、すなわちメッセージの抜けを検出するための手段である。
【００３６】
すなわち、このようにメッセージが抜けたことは、直前に受信したメッセージから見て、通信カウントが１つ以上とんだ後のメッセージが受信されたことによって検出されるが、受信メッセージ退避記憶部４０６は、このように通信カウントが１つとんでいる後のメッセージ及びそれに続くメッセージを記憶することによって退避させておく部分である。
【００３７】
また、メッセージ順序調整部４０４は、メッセージの順序を調整するための部分であり、再送要求送信部４０２は、受信していないメッセージについて、送信側の送信装置に再送要求するための手段である。
【００３８】
なお、図３に示した送信装置及び図４に示した受信装置とは、あわせて通信システムを構成しており、また、図１及び図２に示したような分散システムに含まれる各計算機の全部又は一部が、図３に示したメッセージ送信のための構成と、図４に示したメッセージ受信のための構成の両方を備えることも考えられる。
【００３９】
〔２．データ構造〕
次に、上記のような本実施形態において、メッセージや再送要求のやり取りや、その他の情報の記憶に用いられるデータ構造の例を示す。
〔２−１．送信メッセージの構造〕
まず、送信装置から送信されるメッセージである送信メッセージの構造の例を図５に示す。すなわち、通信カウント５００には、メッセージ送信の順序を表す情報として、その送信装置から何度目に送信されたメッセージであるかを表す通信カウントが登録される。また、送信装置ＩＤ５０１には、当該メッセージがどの送信装置から送信されたものであるかを表す送信元情報が登録され、例えば、送信元情報の具体例として、送信元計算機ＩＤなどが考えられる。
【００４０】
また、発信時刻５０２は、メッセージを発信する際に現在時刻が登録される。また、メッセージ本体５０３には、送信装置から受信装置へ送られる情報であるメッセージの本体が登録される。なお、メッセージの再送をする場合には、発信時刻５０２としては、そのメッセージが最初に送信された発信時刻ではなく、再送を行う際の現在時刻が登録される。
【００４１】
〔２−２．再送要求の構造〕
また、図６は、受信装置から送信装置に送られる再送要求の構造の例を示す図である。すなわち、送信装置ＩＤ６００には、受信装置が受信したメッセージを送信した送信装置の送信装置ＩＤ５０１が登録される。また、受信メッセージ発信時刻６０１は、往復時間を測定する場合にのみ必要なもので、受信装置が受信した最新のメッセージの発信時刻５０２が登録され、あるいは、このような発信時刻に対して、受信装置が最後にメッセージを受信した時刻から再送要求を発信する時刻を引いた値を加えて補正した時刻が、登録される。この補正により、送信装置は、再送要求の受信時刻から、再送要求中の受信メッセージ発信時刻を引く事で往復時間を算出することができる。
【００４２】
なお、図５中の発信時刻５０２と図６中の受信メッセージ発信時刻６０１は、メッセージの往復時間を測定する場合にのみ使用されるため、送信メッセージ記憶部３０４のメッセージ保持最小期間を延長する際に、メッセージと再送要求との往復時間を使用する場合のみ必要であり、既定値の延長のみを行う場合には省く事ができる。
【００４３】
〔２−３．送信メッセージを記憶する場合の構造〕
また、図７は、図３中の送信メッセージ記憶部３０４に記憶される情報の構造の例を示す図である。このうち（ａ）は、メッセージの本体を取り出して送信メッセージ記憶部３０４に記憶させる場合の例であり、（ｂ）は、送信メッセージ記憶部３０４に、図５に示した構造のメッセージをそっくりそのまま記憶させる場合の例である。
【００４４】
いずれの場合でも、送信メッセージ記憶部３０４内のデータ構造は、複数のメッセージを登録できる構造を持ち、古いメッセージ領域から順に再利用される構造となっているものとする。なお、メッセージは、メッセージ送信部３０１から送信される際に、この送信メッセージ記憶部３０４に登録される。
【００４５】
まず、図７（ａ）の場合、通信カウント７００ａには、通信カウントとして、送信装置からのメッセージ送信回数が登録される。また、発信時刻７０１ａには当該メッセージを送信した時刻が登録される。なお、メッセージを再送する場合、発信時刻７０１ａには、１回目の送信時刻を登録する場合と、再送時の現在時刻を登録する場合とが考えられる。
【００４６】
また、メッセージ保持最小期間は、そのメッセージをいつまで消去しないで保持するかの最小期間が登録される。また、メッセージ本体７０３ａには、図５のメッセージ構造のうち、送信するメッセージ本体５０３を登録する。
【００４７】
一方、図７（ｂ）は、図７（ａ）のメッセージ保持最小期間７０２ａに対応するメッセージ保持最小期間７００ｂの他に、メッセージ本体５０３など送信メッセージに含まれる個々の要素を記録する代わりに、図５に例示したようなメッセージ構造を、そっくりそのまま記憶する場合の例である。
【００４８】
このメッセージ構造には、図５に示したＩＰアドレスのような送信装置ＩＤ５０１なども含まれる。また、この例では、図７の通信カウント７００ａ及び発信時刻７０１ａに代えて、それぞれ、メッセージ構造７０１ｂ内に、図５に示したような通信カウント５００と発信時刻５０２とが、入れ子になって記憶されることになる。
【００４９】
〔２−４．受信履歴の構造〕
また、図８は、図４に示した受信履歴記憶部４０５に記憶される情報の構造の例を示し、具体的には、図５に示した受信メッセージの通信カウント５００と送信装置ＩＤ５０１とが、それぞれ、通信カウント８０１及び送信装置ＩＤ８００というペアになって記憶されている。
【００５０】
ただし、ある送信装置から受信したメッセージの通信カウント５００が、その送信装置について登録されている最新の通信カウント８０１に１を足したものでない場合には、メッセージ抜け検出部４０３によってメッセージに抜けが生じたと判定されるが、この場合、通信カウント８０１は更新されないものとする。
【００５１】
〔２−５．往復時間を記録する場合の構造〕
また、図９は、図３に示した往復時間記録部３０７に記録される情報の構造の例を示すものである。すなわち、往復時間記録部３０７には、往復時間計測部３０６により計算された往復時間９０１が、受信装置ＩＤ９００ごとに登録される。そして、このうち往復時間９０１としては、最新の計測された往復時間を、あるいは、記憶された時刻と計測値の加重平均を、あるいは、一定個数の最新の計測値の履歴を、記憶するものとする。
【００５２】
〔３．作用〕
以上のように構成された本実施形態は、以下のように作用する。なお、送信メッセージ記憶部３０４は、図７（ａ）に例示したデータ構造を持つものとする。
【００５３】
〔３−１．メッセージ送信に関する手順〕
まず、図１０は、メッセージの送信に関する処理手順の一例を示すフローチャートである。すなわち、メッセージ処理部３１１は、他の計算機にメッセージを送信しようとするときは、メッセージの送信要求をメッセージ送信部３０１に送り、この送信要求を受けたメッセージ送信部３０１は、図１０に示す手順を実行する。
【００５４】
この手順では、まず、メッセージ送信部３０１は、送信メッセージ記憶部３０４（送信メッセージ記憶手段）から、最も古い発信時刻７０１ａをもつ領域を読み出すなどして確保する（ステップ１００１）。
【００５５】
続いて、抑止部３１０が、現在時刻をシステム内蔵時計などから受け取り、当該領域の発信時刻７０１ａからメッセージ保持最小期間７０２ａが既に経過しているかどうかを判定する（ステップ１００２）。この結果、保持最小期間がまだ経過していなければ、抑止部３１０はメッセージ送信部３０１に対して、その保持最小期間が経過するまで送信を行わずに待機させ（ステップ１００３）、この間は、他の送信要求も受け付けられないものとする。
【００５６】
また、この待機が終了した後、及びステップ１００２の判定においてすでに保持最小期間が経過していた場合は、確保していた上記メッセージ領域から最古のメッセージ７０３ａを消去することによって（ステップ１００４）、新しく送信するメッセージを記憶するための領域とする。
【００５７】
そして、このように送信メッセージ記憶部３０４（送信メッセージ記憶手段）に確保された領域に、新しく送信するメッセージとそれに関する他の情報を登録する（ステップ１００５）。より具体的には、メッセージ構造のうち、メッセージ本体７０３ａには送信するメッセージ本体を、また、当該領域の通信カウント７００ａには送信装置の通信カウント管理部３０３によって決定された通信カウントの値を、また、発信時刻７０１ａには上記のシステム内蔵時計などから得られる現在時刻を登録する。さらに、メッセージ保持最小期間７０２ａには、既定の値、例えば１０秒を登録する。
【００５８】
また、メッセージ送信部３０１は、実際に送信対象となるメッセージ構造に、メッセージ本体など必要な情報をセットする（ステップ１００６）。例えば、図５に示したメッセージ構造の場合、通信カウント５００には、送信メッセージ記憶部３０４に記憶した通信カウント７００ａの値、あるいは、通信カウント管理部３０３から再読み出しした通信カウントの値をセットする。
【００５９】
また、送信装置ＩＤ５０１には送信装置のＩＰアドレスのような識別子を、発信時刻５０２には、送信メッセージ記憶部３０４に登録した発信時刻７０１ａ、あるいは、改めてシステム内蔵時計などから受け取った現在時刻を登録する。また、発信しようとするメッセージ本体はメッセージ本体５０３にセットする。
【００６０】
なお、上記のような送信メッセージ記憶部３０４への登録（ステップ１００５）と、送信するメッセージ構造の作成（ステップ１００６）のどちらを先に行うかの順序は自由であり、図７（ｂ）の例では、メッセージ構造の作成（ステップ１００６）を先に行うが、逆の順序で行うことも可能である。
【００６１】
そして、送信装置では、通信カウント管理部３０３の通信カウントは１を加え（ステップ１００７）、通信路へ当該メッセージ構造を送信する（ステップ１００８）。
【００６２】
〔３−２．メッセージの受信と再送要求の手順〕
次に、上記のように送信されたメッセージを受信装置が受信し、メッセージの処理や再送要求を行う手順を図１１のフローチャートに示す。すなわち、この手順では、メッセージ受信部４０１がメッセージを受信すると（ステップ１１０１）、メッセージ抜け検出部４０３が、受信メッセージの通信カウントと、受信メッセージの送信装置ＩＤごとに受信履歴記憶部４０５に記憶されている通信カウントと、を比較することによって、メッセージが抜けたかどうかを判定する（ステップ１１０２）。
【００６３】
ここで、受信メッセージがすでに受信済みであった場合、受信メッセージは破棄され（ステップ１１０３）、手順は終了する。このようにすでに受信済みのメッセージを受信する場合としては、ある受信装置にとって受信済のメッセージが、同じマルチキャストアドレスを持つ他の受信装置からの再送要求にしたがって、再度マルチキャストされた場合などが考えられる。
【００６４】
また、ステップ１１０２の判定において、受信メッセージに抜けがあった場合、再送すべき通信カウントを抽出（ステップ１１０９）して再送要求を送信し（ステップ１１１１）、ステップ１１０１で受信したメッセージを受信メッセージ退避記憶部４０６に記憶し（ステップ１１１２）、手順を終了する。
【００６５】
なお、メッセージ順序調整部４０４の役割としては、メッセージの紛失や再送などにより、送信された順序でメッセージを受け取れなかった場合に、メッセージ処理部４０７に、送信された順序でメッセージを渡すことが考えられる。
【００６６】
また、ステップ１１０２において、受信メッセージに抜けが無いと判定された場合、受信メッセージはメッセージ処理部４０７に渡され、処理される（ステップ１１０４）。また、この場合、受信履歴記憶部４０５に記憶された通信カウント８０１には１が加えられる（ステップ１１０５）。
【００６７】
なお、受信メッセージ退避記憶部４０６に所望の退避メッセージ、すなわちメッセージ処理部４０７が次に処理すべきメッセージがあれば（ステップ１１０６）、そのメッセージについては、メッセージＩＤなどに応じた処理を行い（ステップ１１０７）、そのたびに通信カウント８０１に１を加える（ステップ１１０８）という手順が、所望のメッセージがなくなるまで繰り返される（ステップ１１０６）。
【００６８】
すなわち、再送要求は、あるメッセージとその後に届いた次のメッセージの通信カウントが、１以上とんでいた場合に送信されるので、再送要求の際に、前記次のメッセージは受信メッセージ退避記憶部４０６に記憶すなわち退避される（ステップ１１１２）。
【００６９】
そして、このように退避された次のメッセージが処理可能になるのは、通信カウントのとんでいる部分のメッセージが再送要求にしたがって受信され、ステップ１１０４で処理された後である。このため、ステップ１１０４で受信メッセージを処理した後、ステップ１１０６から１１０８の手順で、退避しておいたメッセージを処理しているものである。
【００７０】
〔３−３．メッセージ再送に関する手順の例〕
次に、上記のように送信される再送要求に応じて、送信装置がメッセージを再送する手順の一例を図１２に示す。なお、ここでは、往復時刻を計測することなく、再送に係るメッセージの保持最小期間を予め決められた既定値だけ延長する例を示すため、ステップ１２０２はないものとし、ステップ１２０２については、後に示す他の例で説明する。
【００７１】
すなわち、この手順では、まず、再送要求受信部３０２が、図６の構造を持つメッセージ再送要求を受信すると（ステップ１２０１）、受信した送信装置の再送部３０５は、その再送要求が当該送信装置宛てかどうかを、再送要求中の送信装置ＩＤ６００に基づいて判定する（ステップ１２０３）。この判定において、再送要求がその送信装置以外の他の送信装置宛ての場合は、再送要求を破棄するのみで（ステップ１２０８）、手順を終了する。
【００７２】
一方、再送要求が自分宛てすなわち当該送信装置宛ての場合（ステップ１２０３）、再送部３０５は、送信メッセージ記憶部３０４（送信メッセージ記憶手段）から、所望のメッセージ、すなわち再送要求で指定されている通信カウント６０２と同じ通信カウント７００ａを持つメッセージを検索する（ステップ１２０４）。このとき、所望のメッセージが保持最小期間経過などで送信メッセージ記憶部３０４内に存在しない場合には（ステップ１２０５）、再送要求を破棄し（ステップ１２０８）、手順を終了する。
【００７３】
また、ステップ１２０５の判断において、所望のメッセージが存在する場合、再送部３０５は、その所望のメッセージを再送する（ステップ１２０６）。その際、通信カウント５００、送信装置ＩＤ５０１、発信時刻５０２には、送信メッセージ記憶部３０４に記憶してあるそれらの値と同一の値を用いる。
【００７４】
この送信が完了すると、期間延長部３０８は、送信メッセージ記憶部３０４に記憶されている当該メッセージの保持最小期間７０２ａに、予め決められた一定の既定値を加算することによって、保持最小期間を延長したうえ（ステップ１２０７）、再送要求を破棄して（ステップ１２０８）、手順を終了する。
【００７５】
〔３−４．メッセージ再送に関する手順の他の例〕
次に、再送要求に応じてメッセージを再送する手順の他の例として、メッセージと再送要求との往復時刻を計測して、この往復時間の分だけメッセージの保持最小期間を延長する例について、ステップ１２０２の処理を含めて説明する。
【００７６】
すなわち、この例では、メッセージの再送要求が届いた場合（ステップ１２０１）、当該送信装置宛ての再送要求かどうかを判定する（ステップ１２０３）前に、往復時間計測部３０６が、送信したメッセージとその後届いた再送要求との往復時刻を計測し、往復時間計測記録部３０７に記録する（ステップ１２０２）。
【００７７】
すなわち、往復時間計測部３０６は、具体的には、メッセージ再送要求に含まれる受信メッセージ発信時刻６０１と、再送要求が届いたときの現在時刻から、メッセージ及び再送要求の往復時間を算出する。なお、算出の具体的な基準や手順は自由である。
【００７８】
例えば、受信装置は、再送要求中の受信メッセージ発信時刻６０２として、受信装置が受信した最新のメッセージの発信時刻を、あるいは、その時刻から、受信装置が最後にメッセージを受信した時刻から再送要求を発信する時刻を引いた値を加えて補正した時刻を登録する。この補正により、送信装置は、再送要求の受信時刻から、再送要求中の受信メッセージ発信時刻を引く事で往復時間を算出することができる。
【００７９】
そして、この例では、メッセージの保持最小期間を延長する（ステップ１２０７）際に、保持最小期間に既定値を加えるのではなく、往復時間記録部３０７に記録された往復時間に基づいて保持最小期間を延長する。なお、往復時間に基づいた保持最小期間の延長として、１つの往復時間そのものの分だけ延長するのみならず、１つ又は複数の往復時間に基づいて計算された時間の分だけ延長してもよい。
【００８０】
例えば、延長する時間として、往復時間を定数倍した時間を使うこともできるし、再送要求を送った受信装置までの往復時間だけでなく、すべての受信装置ごとの往復時間の平均値や、あるいは、再送要求を送った受信装置とその他の受信装置の往復時間を加重平均した値や往復時間の最大値などを用いることもできる。
【００８１】
〔３−５．ネットワーク構成とデータの例〕
上記のような通信システムのネットワーク構成の具体例を図１３に示す。この例は、２台の送信装置１ａ，１ｂと、２台の受信装置２ａ，２ｂが、３台の計算機に配置されているもので、送信装置１ｂと受信装置２ｂとが、ある１つの計算機上に配置され、送信装置１ａと受信装置２ａとは、それぞれ１つずつの計算機上に配置されている。
【００８２】
このような例では、例えば、受信装置２ａ上の受信履歴記憶部４０５では、図１４に例示するように、各送信装置ごとに、送信装置ＩＤと、その送信装置からメッセージ抜けなく最後に受信したメッセージの通信カウントが記憶される。例えば、この例で、送信装置１ｂから最後に届いたメッセージの通信カウントとしては「６」が記録されており、送信装置１ｂから次に届いたメッセージの通信カウントが「７」であれば抜けがないものとして処理されるが、送信装置１ｂから次に届いたメッセージの通信カウントが「８」であれば、通信カウントが「７」のメッセージが抜けたものと判断することができる。
【００８３】
また、図１３の例では、例えば、送信装置１ａや１ｂ上の往復時間記録部３０７では、図１５に例示するように、各受信装置ごとに、受信装置ＩＤと、その受信装置にメッセージを送ってから再送要求が帰ってくるまでの往復時間が記憶される。この例では、例えば、保持最小期間を延長する往復時間として、各受信装置ごとの往復時間の平均を用いる場合、この平均値は２．５ｍ秒となる。
【００８４】
〔４．効果〕
以上のように、本実施形態によれば、メッセージの再送用控えごとに、削除しない保持最小期間を管理し、期間未了の再送用控えを削除しないと新しいメッセージの再送用控えを保存できない場合は、新しいメッセージの送信を待機させる。これにより、送信メッセージが多いときでも、送信後一定時間は再送が保証され、通信の信頼性が改善される。
また、本実施形態では、メッセージ再送の際に保持最小期間を延長することで、ネットワークの通信量が多く再度の再送要求が発生するような場合も、メッセージの再度の再送を容易にし、通信の信頼性を改善することができる。
【００８５】
また、本実施形態では、メッセージ再送の際、再送要求した受信装置との間でメッセージと再送要求が往復するのに必要な往復時間に基づいて保持最小期間を延長する。これによって、例え再送したメッセージが受信装置に受信されなくても、再度の再送要求が来る頃まで再送用控えを確保し、メッセージ通信の信頼性を改善することができる。
【００８６】
また、本実施形態では、メッセージの保持最小期間を、少なくとも各往復時間の平均値だけ延長することによって、各時点ごとや、グループアドレス内の各計算機ごとの往復時間のばらつきを平均化でき、適切な時間幅だけ保持最小期間を延長することで、優れたパフォーマンスを実現することができる。
【００８７】
つまり、本実施形態によれば、複数の計算機をネットワークによって接続した分散システム上に配置された例えばプロセス間で、マルチキャストを用いて情報交換する際、送信済みのメッセージを保持する期間の最小値を保証するとともに、再送発生時はその期間を適切に延長することによってメッセージの保存を保証する時間を動的に制御する。
【００８８】
これによって、再送の失敗を減らして通信の信頼性を向上させ、ネットワークや受信装置の過負荷を抑制し、負荷が低い場合には短い保持最小期間によって、優れた効率で通信することが可能となる。
【００８９】
〔５．他の実施の形態〕
なお、本発明は上記実施形態に限定されるものではなく、次に例示するような他の実施形態も包含するである。例えば、上記実施形態では、送信装置と受信装置の両方を備えた通信システムを示したが、本発明は、送信装置単独で実施し、既存の受信装置と組み合わせて使うことも可能である。
【００９０】
また、メッセージの保持最小期間は、メッセージの再送用控えを削除しない最低限の期間を保証するもので、新しいメッセージが送信されない場合や、再送用控えの記憶領域が十分大きいような場合は、保持最小期間を超えて再送用控えを保存しておくことはもちろん差し支えない。また、この保持最小期間を、延長するための既定値は、ネットワークの負荷状態などに応じて一定の基準で変動するように構成してもよい。
【００９１】
また、往復時間の計測については、どのような数値や時刻をどのように組み合わせて計算するかの具体的な基準や手順は自由であり、また、上記実施形態に示した構成や、データ構造、処理手順などについても、具体的な詳細は自由に変更して実施することが可能である。
【００９２】
【発明の効果】
以上のように、本発明によれば、送信メッセージの再送用控えを保持する期間を保証することで、優れた信頼性でメッセージ通信を行う送信装置、送信方法及び送信用ソフトウェアを記録した記録媒体並びに通信システムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態における分散システムの構成の一例を示す図。
【図２】本発明の実施形態における分散システムの構成について、他の一例を示す図。
【図３】本発明の実施形態における送信装置の構成の一例を示す機能ブロック図。
【図４】本発明の実施形態における受信装置の構成の一例を示す機能ブロック図。
【図５】本発明の実施形態における送信メッセージのデータ構造の一例を示す概念図。
【図６】本発明の実施形態における再送要求のデータ構造の一例を示す概念図。
【図７】本発明の実施形態において、送信装置の送信メッセージ記憶部に記憶される情報のデータ構造の例を示す概念図。
【図８】本発明の実施形態における受信装置の受信履歴記憶部に記憶される情報のデータ構造の一例を示す概念図。
【図９】本発明の実施形態における送信装置の往復時間記録部に記憶される情報のデータ構造の一例を示す概念図。
【図１０】本発明の実施形態において、送信装置がメッセージを送信する処理手順の一例を示すフローチャート。
【図１１】本発明の実施形態において、受信装置が受信したメッセージの処理及び再送要求を行う処理手順の一例を示すフローチャート。
【図１２】本発明の実施形態において、送信装置が再送要求にしたがってメッセージを再送する処理手順の一例を示すフローチャート。
【図１３】本発明の実施形態における送信装置及び受信装置の配置の一例を示す図。
【図１４】図１３の例において、受信装置の受信履歴記憶部に記憶される情報の一例を示す図。
【図１５】図１３の例において、送信装置の往復時間記録部に記憶される情報の一例を示す図。
【符号の説明】
１，２…計算機
１１，２１…本体処理部
１２…送信処理部
２２…受信処理部
３０１…メッセージ送信部
３０２…再送要求受信部
３０３…通信カウント管理部
３０４…送信メッセージ記憶部
３０５…再送部
３０６…往復時間計測部
３０７…往復時間記録部
３０８…期間延長部
３０９…現在時刻計測部
３１０…抑止部
３１１，４０７…メッセージ処理部
４０１…メッセージ受信部
４０２…再送要求送信部
４０３…メッセージ抜け検出部
４０４…メッセージ順序調整部
４０５…受信履歴記憶部
４０６…受信メッセージ退避記憶部
４０７…メッセージ処理部
【図１】
0003732671.tif 000002
【図２】
0003732671.tif 000003
【図３】
0003732671.tif 000004
【図４】
0003732671.tif 000005
【図５】
0003732671.tif 000006
【図６】
0003732671.tif 000007
【図７】
0003732671.tif 000008
【図８】
0003732671.tif 000009
【図９】
0003732671.tif 000010
【図１０】
0003732671.tif 000011
【図１１】
0003732671.tif 000012
【図１２】
0003732671.tif 000013
【図１３】
0003732671.tif 000014
【図１４】
0003732671.tif 000015
【図１５】
0003732671.tif 000016