JP3679935B2 - 通信方法および通信装置および記録媒体 - Google Patents
通信方法および通信装置および記録媒体 Download PDFInfo
- Publication number
- JP3679935B2 JP3679935B2 JP31915398A JP31915398A JP3679935B2 JP 3679935 B2 JP3679935 B2 JP 3679935B2 JP 31915398 A JP31915398 A JP 31915398A JP 31915398 A JP31915398 A JP 31915398A JP 3679935 B2 JP3679935 B2 JP 3679935B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- communication
- received
- computer
- transmitted
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
複数の計算機(コンピュータ)を通信可能なように接続してなる分散システムにおけるメッセージの通信方法(特に、メッセージの再送制御方法)およびそれを用いた通信装置に関する。
【0002】
【従来の技術】
ネットワークに接続した複数の計算機(コンピュータ)間で、放送通信(ブロードキャストまたはマルチキャスト)を用いてメッセージ交換するシステムでは、メッセージには識別情報としてのメッセージID(例えば、宛先情報)が送信元にて付加され、受信側ではそのメッセージIDを元に、当該メッセージを必要とするか否か判断する。
【0003】
従来の放送通信を用いた全計算機で同一順序でメッセージを受信することを保証した全順序放送通信機構や、送信元からの送信順序の同一性を保証する送信元順序保証通信機構では、計算機単位でのメッセージ順序の同一性のみに着目していた。即ち、計算機単位に通信カウントをメッセージに付加して送受信し、通信カウントの抜けが生じたときに抜けた番号のメッセージを再送処理している。このとき、再送要求するメッセージが自計算機に必要か否かは、抜けたメッセージに関する情報(メッセージID)が不明なため知るすべがなく、抜けメッセージを全て再送してもらう必要があった。
【0004】
よって、自計算機に不要なメッセージまでも再送処理する事となり、ネットワークと計算機の負荷を増大させていた。
【0005】
また、自計算機が過去に受信したメッセージ履歴情報を送信メッセージに付加して送信する方法も存在するが、これはメッセージの抜けを検出することを目的とした方法であり、再送処理の無駄を省くためのものではない。
【0006】
【発明が解決しようとする課題】
そこで、本発明は上記問題点に鑑みてなされたもので、放送通信において、必要なメッセージの順序関係を保証したまま、受信できなかったメッセージの再送処理の負荷を軽減できる通信方法を提供することを目的とする。
【0007】
また、本発明は、放送通信において、必要なメッセージの順序関係を保証したまま、受信できなかったメッセージの再送処理(ネットワーク上、装置内)の負荷を軽減できる通信装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
(1)本発明の通信方法は、複数の通信装置間で放送通信にてメッセージを送受信するための通信方法であって、
前記複数の通信装置のそれぞれは、少なくとも他の通信装置との間で送受信したメッセージ数の累積値である通信カウントと送信済みのメッセージの識別情報と受信すべきメッセージの識別情報とを記憶手段に記憶し、
メッセージを送信する際には、該メッセージに少なくとも前記記憶された通信カウントと送信済みのメッセージの識別情報とを書き込み、
メッセージを受信した際には、該受信メッセージに書き込まれた通信カウントと前記記憶された通信カウントとに基づき未受信のメッセージの有無を検出し、該未受信のメッセージの存在が検出されたとき、その再送の必要性を、前記受信メッセージに書き込まれた送信済みのメッセージの識別情報と前記記憶された受信すべきメッセージの識別情報とに基づき判断し、再送が必要と判断された該未受信のメッセージについてのみ再送要求を行うことを特徴とする。
【0009】
本発明によれば、通信カウントと過去に送ったメッセージの識別情報(メッセージID)をメッセージ中に付加して送受信し、メッセージ欠損を検出したときに、再送対象メッセージが自装置(自プロセス)に必要か否かを判定した後、自装置(自プロセス)に必要な場合のみ再送処理を行なうことにより、受信すべき必要なメッセージの順序関係を保証したまま、通信路や通信装置内の再送処理にかかる負荷を軽減できる。
【0010】
また、好ましくは、前記メッセージに書き込む送信済みのメッセージの識別情報の個数が予め定められていることにより、通信路や通信装置内の再送処理にかかる負荷をより軽減できる。
【0011】
また、好ましくは、前記メッセージに書き込む送信済みのメッセージの識別情報のデータ長を短縮することにより、通信路や通信装置内の再送処理にかかる負荷をより軽減できる。
【0012】
(2)本発明の通信装置は、放送通信にてメッセージを送受信する通信装置において、
少なくとも、他の通信装置との間で送受信したメッセージ数の累積値である通信カウントと送信済みのメッセージの識別情報と受信すべきメッセージの識別情報とを記憶する記憶手段と、
少なくとも前記記憶手段で記憶された通信カウントと送信済みのメッセージの識別情報とが書き込まされたメッセージを送信するメッセージ送信手段と、
メッセージを受信した際、該受信メッセージに書き込まれた通信カウントと前記記憶手段で記憶された通信カウントとに基づき未受信のメッセージの有無を検出する検出手段と、
この検出手段で未受信のメッセージの存在を検出したとき、前記受信メッセージに書き込まれた送信済みのメッセージの識別情報と前記記憶手段で記憶された受信すべきメッセージの識別情報とに基づき、該未受信のメッセージの再送の必要性を判定する再送必要性判定手段と、
この再送必要性判定手段で再送が必要と判定された前記未受信のメッセージの再送要求のためのメッセージを送信する再送要求手段と、
を具備したことを特徴とする。
【0013】
本発明によれば、通信カウントと過去に送ったメッセージの識別情報(メッセージID)をメッセージ中に付加して送受信し、メッセージ欠損を検出したときに、再送対象メッセージが自装置(自プロセス)に必要か否かを判定した後、自装置(自プロセス)に必要な場合のみ再送処理を行なうことにより、受信すべき必要なメッセージの順序関係を保証したまま、通信路や通信装置内の再送処理にかかる負荷を軽減できる。
【0014】
また、好ましくは、前記メッセージに書き込む送信済みのメッセージの識別情報の個数が予め定められていることにより、通信路や通信装置内の再送処理にかかる負荷をより軽減できる。
【0015】
また、好ましくは、前記メッセージに書き込む送信済みのメッセージの識別情報のデータ長を短縮することにより、通信路や通信装置内の再送処理にかかる負荷をより軽減できる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【0017】
図1は、本発明の通信方法を適用した通信装置(例えば、計算機にて実現されていて、以下、計算機と呼ぶ)を用いて構成された分散システムの全体構成を概略的に示したものである。複数の(例えば3つの)計算機(計算機1aと計算機1bと計算機1c)がネットワーク(LAN)に通信可能なように接続されていて、この複数の計算機のうちの1つから送信されたメッセージは、3つの全計算機に対して放送ないしマルチキャストされる。
【0018】
図2は、本発明の通信方法を適用した通信装置としての計算機を用いて構成された他の分散システムの全体構成を概略的に示したものである。異なる複数の(例えば3つの)ネットワーク11、12、13のそれぞれには複数の計算機が接続され、それら計算機がゲートウエイやルータを介して複数のネットワーク11、12、13にまたがってマルチキャストを用いて互いに通信可能なように接続されて構成されている。
【0019】
図2において、マルチキャストで通信しあう複数の計算機には、同一のマルチキャストアドレスが振られており、論理的には図1と同様の環境で通信しあっていると見なされる。よって、以下の説明では、説明の簡単のため、図1の分散システムを例にとり説明を行なう。
【0020】
図3は、図1および図2に示した各計算機(以下、まとめて計算機1と呼ぶ)の本発明の通信方法に係る要部の構成を示したものである。計算機1は、大きく分けて本体処理部330と通信処理部320とから構成され、本体処理部330には計算機1上で動作する1または複数のプロセス群が存在する。図3では、これら複数のプロセスのメッセージ送信処理を実行するための情報やプログラム、サブルーチンなどの集まりであるライブラリをまとめてメッセージ処理部311とし、また、複数のプロセスのメッセージ受信処理を実行するための情報やプログラム、サブルーチンなどの集まりであるライブラリをまとめてメッセージ処理部310と表している。
【0021】
通信処理部320は、本体処理部330に登録された各プロセスからの送信要求を受け、ネットワーク上に送信するとともに、ネットワークからメッセージを受信して該当するプロセスに対して受信メッセージを配送する。そのメッセージ送受信の間に、メッセージ受信に失敗した場合には、通信処理部320内で当該メッセージの再送処理を行い、本体処理部330に対してメッセージ受信順序を保証して提供する。
【0022】
送信メッセージバッファ309には、メッセージ処理部311から送信されるメッセージが格納される。
【0023】
通信履歴記憶部303には、図5(a)に示すようなメッセージ抜け検出用テーブル303aと図5(b)に示すような送信記録用テーブル303bとを保持し、メッセージを送信、受信する度に、それぞれ送信記録用テーブル303b、メッセージ抜け検出用テーブル303aを更新するようになっている。
【0024】
メッセージ送信部302は、送信メッセージバッファ309に記憶された送信メッセージに、通信履歴記憶部303を参照して、通信カウント、過去に送信したメッセージID情報をセットして、当該メッセージをネットワークへ送出するようになっている。
【0025】
メッセージ受信部301は、ネットワークから受信したメッセージを受信し、受信メッセージバッファ304へ格納する。
【0026】
メッセージ抜け検出部305は、メッセージ受信部301で受信されたメッセージに書き込まれている通信カウントと、通信履歴記憶部303のメッセージ抜け検出用テーブル303aに記憶されている通信カウントとを比較して、受信すべきメッセージであったにもかかわらず受信できなかったメッセージ(抜けメッセージの通信カウント)を検出する。
【0027】
必要メッセージID記憶部307には、受信すべきメッセージの識別情報(ID)が予め登録されている。
【0028】
再送必要性判定部306は、受信メッセージ中の過去に送信したメッセージID情報のうち、未受信であった通信カウントのメッセージIDが必要メッセージID記憶部307に記憶されているときは、当該抜けメッセージの再送要求を行う必要があると判定する。抜けメッセージの再送要求を行う場合には、送信メッセージバッファ309、メッセージ送信部302を介して再送要求を行う。
【0029】
受信メッセージディスパッチ部308は、受信メッセージ中のメッセージIDが必要メッセージID記憶部307に登録されているときに、当該メッセージIDに対応したメッセージ処理部310を起動する。
【0030】
図3の送信メッセージバッファ309および受信メッセージバッファ304は、図4に示す構造のメッセージが複数登録できる構造となっており、古いメッセージエリアから順に再利用される構造となっているとする。
【0031】
図4は、ネットワークを介して、他の計算機との間で送受信されるメッセージの構造を示したもので、エリア400には通信モード、エリア401には通信カウント、エリア402にはメッセージID、エリア403には送信元ID、エリア404には過去の(既に送信済みの)メッセージID情報、エリア405にはメッセージ本体が、それぞれ書き込まれるようになっている。
【0032】
通信モードは、通常にメッセージを送信するため「通常モード」と、メッセージ抜けを検出して再送を要求するための「再送要求モード」とがある。通信カウントは、当該計算機からのメッセージ送信回数である。メッセージIDは、当該メッセージをネットワーク内で一義的に識別するための識別情報で、ここでは、例えば、受信先を特定するための情報(例えば宛先プロセス名)である。送信元IDは、当該メッセージの送信元の計算機を識別するための情報で、例えば送信元の計算機IDである。
【0033】
エリア404には、当該送信元から送信したメッセージIDの一覧が書き込まれ、例えば過去に送信した宛先プロセス名の一覧が書き込まれる。
【0034】
エリア405に書き込まれるメッセージ本体は、プロセス間で交換する情報本体である。
【0035】
計算機1の通信履歴記憶部303は、図5に示すように2つのテーブル(メッセージ抜け検出用テーブル303a、送信記録用テーブル303b)が記憶されている。各テーブルは初期状態では、次のように初期化されている。
【0036】
メッセージ抜け検出用テーブル303aは、図5(a)に示すように、少なくともネットワークに接続された通信対象の計算機数分の通信カウント記憶領域を持ち、各計算機毎のメッセージ送受信カウントを記憶する。すなわち、計算機ID記憶領域501には、通信対象となる計算機のID(例えば、a、b、c、…、N)が予め登録され、通信カウント記憶領域502には、計算機ID記憶領域501に登録されたIDのそれぞれに対応する計算機との間で送受信された通信回数が書き込まれる。よって、図1に示した分散システムの場合、初期状態では、各計算機とも、計算機ID記憶領域501には、通信対象となる計算機1a、計算機1b、計算機1cの3つID(a、b、c)が登録され、それぞれに該当する通信カウント記憶領域502には初期値「0」がセットされている。
【0037】
送信記録用テーブル303bは、図5(b)に示すように、自計算機から送信したメッセージ情報を記憶するものであり、送信した各メッセージ毎の通信カウント記憶領域503、メッセージID記憶領域504、当該メッセージが記憶されている送信メッセージバッファ309上のアドレス情報の記憶領域(TxBuf−Index)505を持つ。
【0038】
通信カウント記憶領域503には、当該メッセージを送信したときの通信カウントの値が記憶され、メッセージID記憶領域504には、当該メッセージのメッセージID(例えば、宛先プロセス名)が記憶される。
【0039】
よって、図1に示した分散システムの場合、初期状態では、全計算機ともまだメッセージを送信していないので、何も登録されていない状態である。
【0040】
なお、本実施形態にかかる通信装置は、例えば、タッチパネル、マイクロフォン、マウス、キーボード等の入力手段、スピーカ、ディスプレイ(表示装置)、等の出力手段、フロッピーディスク装置、CPU、主メモリ、必要に応じてハードディスク装置等の大容量記憶装置等を備えたパーソナルコンピュータ(計算機)を用いて実現される。
【0041】
特に、図3の通信装置の中心をなす通信処理部320の持つ機能は、その機能を上記のパーソナルコンピュータにより実行させるためのプログラムを記録した記憶媒体、例えばフロッピーディスクを用い、当該記録媒体を上記パーソナルコンピュータ中のフロッピーディスク装置に装着して、当該フロッピーディスクに記録されているプログラムを上記パーソナルコンピュータ(中のCPU)で読み取り実行させることにより実現される。
【0042】
また、図3の通信装置の中心をなす通信処理部320の持つ機能は、その機能を上記のパーソナルコンピュータにより実行させるためのプログラムを記録したROM等の半導体メモリを上記パーソナルコンピュータに実装して、当該半導体メモリに記録されているプログラムを上記パーソナルコンピュータ(中のCPU)で読み取り実行させることにより実現される。
【0043】
以下、図9に示すように3台の計算機1a、1b、1cにプロセスが配置されている場合を例にとり、計算機1のメッセージ送信/受信処理動作について説明する。すなわち、計算機1aにはプロセスA、プロセスB、プロセスCが存在し、計算機1bにはプロセスB、プロセスD、プロセスEが存在し、計算機1cにはプロセスA、プロセスB、プロセスE、プロセスFが配置されている。
【0044】
このとき、各計算機1a〜1cの必要メッセージID記憶部307には、図9に示すような情報が記憶されている。すなわち、計算機1aの必要メッセージID記憶部307には、計算機1aに配置されている{プロセスA、プロセスB、プロセスC}が記憶されており、同様に計算機1bの必要メッセージID記憶部307には{プロセスB、プロセスD、プロセスE}が、計算機1cの必要メッセージID記憶部307には{プロセスA、プロセスB、プロセスE、プロセスF}が記憶されている。
【0045】
次に、図10〜図11を参照して、計算機1a〜1cの間でメッセージの送受信を行う際のメッセージ抜け検出用テーブル303aと送信記録用テーブル303bの更新処理と、メッセージ抜け検出処理と、抜けメッセージの再送要求処理とについて説明する。
【0046】
まず、計算機1aからメッセージを送信する場合を例にとり、計算機1aでのメッセージ抜け検出用テーブル303aと送信記録用テーブル303bの更新処理と、計算機1b〜1cでのメッセージ抜け検出用テーブル303aの更新処理について説明する。
【0047】
ステップS1:初期状態では、前述のように各計算機1a〜1c上の通信履歴記憶部303は初期化されており、各計算機1a〜1cとも、メッセージ抜け検出用テーブル303aは初期状態として、通信対象となる計算機1a、計算機1b、計算機1cの3つのエリアが初期値「0」である。初期状態では、まだメッセージが送信されていないので、計算機1aの送信記録用テーブル303bには、何も登録されていない。
【0048】
ステップS2:この状況にて、計算機1a上のプロセスBがプロセスA宛てにメッセージを送信する。なお、プロセスBは、図3のメッセージ処理部311に相当する。
【0049】
ここで、図6に示すフローチャートを参照して、ステップS2における計算機1aのメッセージ送信処理動作について詳細に説明する。
【0050】
まず、メッセージ処理部311は、送信メッセージバッファ309に当該メッセージを送信するためのバッファエリアを確保し(このときの当該バッファエリアのインデックスを「α」とする)、その確保したバッファ内のメッセージ本体を格納するエリアに、プロセスA宛てに送ろうとするメッセージ本体をコピーする(ステップS601)。続いて、確保した当該バッファ内のメッセージIDを格納するエリアに宛先プロセス名である「プロセスA」をセットし、送信元IDを格納するエリアに自計算機IDである「a」をセットする(ステップS602)。
【0051】
これらメッセージ情報をセット完了したならば、メッセージ送信部302に対して送信メッセージバッファ309上のインデックス「α」を引数に送信要求を送る(ステップS603)。
【0052】
メッセージ送信部302は、送信要求を受けると、通信履歴記憶部303内のメッセージ抜け検出用テーブル303aの自計算機ID(すなわち「a」)に対応するところの通信カウントの値(ここでは、「0」)を読み出し、その値を送信メッセージバッファ309内のインデックス「α」に対応するバッファエリア内の送信メッセージの通信カウントを格納するエリアにセットする(ステップS604)。さらに、メッセージ送信部302は、通信履歴記憶部303内の送信記録用テーブル303bから、該読み出した通信カウント以前の過去に既に送信したメッセージIDを取りだし、それらを送信メッセージバッファ309内のインデックス「α」内の送信メッセージの過去のメッセージID情報を格納するエリア404にセットする(ステップS605)。ここでは、まだ初期化状態であるため、通信カウントの値は「0」であり、過去のメッセージID情報は何もないことを意味する「NULL」となる。なお、過去のメッセージID情報が複数あるときは、例えば、予め定められた順番で(例えば、通信カウントの値が小さいものから順に、あるいは、通信カウントの値が大きいものから順に)送信メッセージの過去のメッセージID情報を格納するエリア404に書き込んでいけばよい。
【0053】
送信メッセージバッファ309内のインデックス「α」内の通信モードを格納するエリアには、通常のメッセージ送信処理なので「通常モード」をセットする。このようにして、メッセージ構造内の全ての情報がセットされると、メッセージ送信部302は当該メッセージを通信路に対して送信する(ステップS606)。
【0054】
その後、通信履歴記憶手部303内のメッセージ抜け検出用テーブル303aには、自計算機ID(すなわち、「a」)に対応する通信カウントの値に「1」を加算し(ステップS607)、送信記録用テーブル303bの通信カウント記憶領域503に当該送信したメッセージに付加した通信カウントの値「0」、メッセージID記憶領域504に当該送信したメッセージのメッセージID、すなわち「プロセスA」、TxBuf−Index505に送信メッセージバッファ309内のインデックス、すなわち、「α」を登録する(ステップS608)。
【0055】
次に、上述のように送信されたメッセージを計算機1a、1b、1cにて正常に受信する場合について説明する。すなわち、図7に示すフローチャートを参照して、計算機1aのプロセスBからプロセスA宛てに送信されたメッセージの受信処理について説明する。
【0056】
ネットワーク上に送信されたメッセージは、全ての計算機のメッセージ受信部301にて受信され、受信メッセージバッファ304に保存される(ステップS700)。メッセージ受信部301は、受信メッセージ中のエリア400にある通信モードをチェックする。ここでは、「通常モード」であるため再送要求でないと判断し、メッセージ抜け検出部305を起動する(ステップS701)。
【0057】
メッセージ抜け検出部305は、受信メッセージ中のエリア401と403にある通信カウントと送信元IDとを取りだし、それらと通信履歴記憶部303中のメッセージ抜け検出用テーブル303aとを照合する。ここでは、受信メッセージ中の送信元IDが「a」、通信カウントの値が「0」であり、メッセージ抜け検出用テーブル303a内の計算機IDが「a」に対応する通信カウントの値が「0」である。よって、受信メッセージ中の通信カウントと自計算機上の通信履歴記憶部303内の通信カウントの値が一致するので、メッセージ抜けが生じていないと判断し、受信メッセージディスパッチ部308を起動する(ステップS702)。
【0058】
受信メッセージディスパッチ部308は、受信メッセージ中のエリア402にあるメッセージIDを参照して、ここでは、宛先プロセスが「プロセスA」であることを知り、「プロセスA」が必要メッセージID記憶部307に存在するか確認する。存在する場合は、プロセスAを起動し、存在しない場合は当該メッセージを受信メッセージバッファ304から削除する(ステップS707)。
【0059】
ここでは、図9に示したように、計算機1aと1cには「プロセスA」が登録されているためプロセスA(メッセージ処理部310に相当)を起動するが、計算機1bには「プロセスA」が登録されていないため、受信メッセージバッファ304から当該メッセージ中の送信元IDを取り出した後、当該受信メッセージを削除する。
【0060】
受信メッセージディスパッチ部308は、さらに、受信メッセージ中の送信元IDが自計算機のIDと異なる場合、通信履歴記憶部303内のメッセージ抜け検出用テーブル303aの当該送信元IDに対応する通信カウントに「1」を加える(ステップS708)。すなわち、ここでは、送信元IDが「a」であるので、計算機1aでは自計算機IDと一致するため通信カウントを更新しないがが、計算機1bと1cは当該送信元IDと自計算機IDが異なるため、通信履歴記憶部303内のメッセージ抜け検出用テーブル303aの当該送信元ID「a」に対応する通信カウントに「1」を加算する。
【0061】
このようにして、図10に示すように、ステップS2の段階では、全計算機とも、メッセージ抜け検出用テーブル303a上では、計算機1aに対応する通信カウントの値が「1」になり、その他の計算機に対応する通信カウントは「0」のままである。
【0062】
続いて、受信メッセージディスパッチ部308は、受信メッセージバッファ304内に退避メッセージが存在するか調べる(ステップS709)が、この場合、(現在までメッセージは正常受信されているので)存在しないため処理を終了する。
【0063】
次に、メッセージの受信側で抜けメッセージが検出されて、当該抜けメッセージが再送されるまでの処理について説明する。例えば、図10のステップS1、ステップS2に示したように、計算機1aからのメッセージが正常に全計算機で受信され、その後、ステップS3で、計算機1a上のプロセスCからプロセスE宛てにメッセージが送信されたが、計算機1bのみ受信に失敗している場合を前提とする。
【0064】
すなわち、図10のステップS3に示すように、計算機1a上のプロセスCからプロセスE宛てのメッセージを計算機1bが受信ミスした段階では、計算機1a上の通信履歴記憶部303には、ステップS2の説明と同様にして送信記録用テーブル303bには、通信カウントが「1」、メッセージIDが「プロセスE」、TxBuf−Indexが「β」なる列が追加され、メッセージ抜け検出用テーブル303aの計算機1aに対応する通信カウントは「2」になる。
【0065】
計算機1c上の通信履歴記憶部303には、図10のステップS3に示すように、
ステップS2と同様にしてメッセージ抜け検出用テーブル303aの計算機1aに対応する通信カウントが「2」になる。当然のごとく計算機1bはメッセージを受信していないので、計算機1bの通信履歴記憶部303上のテーブル303aは更新されない。
【0066】
このような状況において、図11のステップS4にて、計算機1a上のプロセスCからプロセスD宛てにメッセージが放送されたとき、計算機1bにてプロセスE宛てのメッセージ受信ミスを検出し、プロセスE宛てメッセージの再送処理が実行され、一方、計算機1cは、このプロセスD宛てのメッセージを受信ミスしたとする。
【0067】
図11のステップS4に示すように、計算機1a上の通信履歴記憶部303は、図10のステップS2と同様にして、プロセスCからプロセスD宛てのメッセージ送信する。この際、図6のステップS605において、送信メッセージバッファ309内のインデックス「γ」内の送信メッセージの過去のメッセージID情報を格納するエリアには、通信履歴記憶部303内の送信記録用テーブル303bに記録されているメッセージID一覧、即ち{プロセスA、プロセスE}がセットされる。
【0068】
計算機1aから、通信カウントが「2」で、メッセージIDが「プロセスD」のメッセージを送信完了した段階では、図11のステップS4に示すように、計算機1aの送信記録用テーブル303bには、通信カウントが「2」、メッセージIDが「プロセスD」、TxBuf−Indexが「γ」なる列が追加され、メッセージ抜け検出用テーブル303aの計算機1aに対応する通信カウントの値は「3」になる。当然のごとく計算機1cはメッセージを受信していないので、計算機1cの通信履歴記憶部303上のテーブル303aは更新されない。
【0069】
さて、このときの計算機1bのメッセージ受信処理動作について、再び図7に示すフローチャートを参照して説明する。
【0070】
計算機1bのメッセージ受信部301は、通信モードが「通常モード」、通信カウントが「2」、メッセージIDが「プロセスD」、送信元IDが「a」、過去のメッセージID情報が{プロセスA、プロセスE}なるメッセージを受信し、受信メッセージバッファ304に保存する(ステップS700)。メッセージ受信部301は、受信メッセージ中の通信モードをチェックする。ここでは、「通常モード」であるため再送要求でないと判断し、メッセージ抜け検出部305を起動する(ステップS701)。
【0071】
メッセージ抜け検出部305は、受信メッセージ中の通信カウントと送信元IDとを取りだし、それらと通信履歴記憶部303中のメッセージ抜け検出用テーブル303aとを照合する。ここでは、受信メッセージ中の送信元IDが「a」、通信カウントの値が「2」であり、メッセージ抜け検出用テーブル303a内の計算機IDが「a」に対応する通信カウントの値が「1」である。よって、受信メッセージ中の通信カウントが自計算機上の通信履歴記憶部303内の通信カウントより大きいので、メッセージ抜けが生じていると判断し、再送必要性判断部306を起動する(ステップS702)。
【0072】
再送必要性判定部306は、通信カウントの差が「1」であることから1つ前のメッセージを受信ミスしていると判断し、受信メッセージ中の過去のメッセージID情報より1つ前のメッセージのメッセージIDを求める。即ち、計算機1aからの現在受信したメッセージよりも1つ前のメッセージを受信ミスしており、過去のメッセージID情報が{プロセスA、プロセスE}であるので、その受信ミスしたメッセージのメッセージIDが「プロセスE」であることを求める(ステップS712)。そして、必要メッセージID記憶部307を参照すると、図9に示すように計算機1bには「プロセスE」が存在するため、当該受信ミスしているメッセージは再送処理する必要があると判断する(ステップS713)。
【0073】
よって、再送必要性判定部306は、通信カウントが「2」、メッセージIDが「プロセスD」なる今回の受信メッセージを、受信メッセージバッファ304内の退避エリアに退避しておく(ステップS715)。
【0074】
さらに、再送必要性判定部306は、送信メッセージバッファ309内に送信用のバッファを確保し、当該バッファに対して、通信モードが「再送要求モード」、通信カウントが「1」、メッセージIDが「プロセスE」、送信元IDが「b」なるメッセージをセットし、メッセージ送信部302に対して送信要求を行なう。メッセージ送信部302は、再送要求メッセージの送信を要求されるとそのメッセージをそのままネットワークに対して送信する(図8のステップS730〜ステップS731)。
【0075】
なお、ここでは、抜けメッセージが1つのみの場合を示したが、複数の抜けメッセージが検出される場合(すなわち、通信カウントの差が「2」以上の場合)もある。例えば、受信メッセージ中の送信元IDが「a」、通信カウントの値が「4」であり、メッセージ抜け検出用テーブル303a内の計算機IDが「a」に対応する通信カウントの値が「1」であるとき、通信カウントの差が「3」であることから3つのメッセージを受信ミスしていると判断できる。このとき、受信メッセージ中の過去のメッセージID情報が{プロセスA、プロセスE、プロセスA、プロセスE}であれば、現在から3つ前に受信ミスした通信カウントが「2」でメッセージIDが「プロセスE」のメッセージから順に、図8のステップS730〜ステップS733の処理を実行して、全ての抜けメッセージのそれぞれについて再送要求(ステップS731)、あるいは、再送不要の場合には通信カウントの更新(ステップS732)を行う。すなわち、通信カウントが「2」でメッセージIDが「プロセスE」のメッセージ、通信カウントが「4」でメッセージIDが「プロセスE」のメッセージについては、計算機1bには「プロセスE」が存在するため、ステップS731に進み、再送要求を送信する。一方、通信カウントが「3」でメッセージIDが「A」のメッセージについては、計算機1bには「プロセスA」が存在しないため、ステップS732に進み、通信カウントの更新(「1」を加算)を行う。
【0076】
また、複数の抜けメッセージが検出された場合、その抜けメッセージの全てが再送不要のとき、すなわち、当該受信メッセージ中の過去のメッセージID情報に、自装置の必要メッセージID記憶部307に登録されているプロセス宛のものが存在しないとき(ステップS712〜ステップS713)は、まず、ステップS714へ進み、検出された抜けメッセージの数(N)を通信カウントに加算し、その後、図8のステップS718へ進む。
【0077】
次に、図11のステップS5における再送要求メッセージを受信した計算機1a〜1cの処理動作について、再び図7に示すフローチャートを参照して説明する。
【0078】
再送要求メッセージは、全ての計算機1a〜1cのメッセージ受信部301にて受信され(ステップS700)、当該メッセージ中の通信モードから再送要求メッセージであることが判定され、受信メッセージディスパッチ部308が起動される(ステップS701)。
【0079】
受信メッセージディスパッチ部308は、通信履歴記憶部303内の送信記録用テーブル303bを参照して、再送要求されたメッセージ(通信カウントが「1」、メッセージIDが「プロセスE」)が存在するか調べる(ステップS704)。
【0080】
計算機1aの通信履歴記憶部303内の送信記録用テーブル303bには、図11に示すように該当するメッセージが存在するため、当該メッセージの送信メッセージバッファ309上のインデックスをTxBuf−Indexより「β」と求め、それを送信するようにβを引数にメッセージ送信部302に対して送信要求する。メッセージ送信部302は、再送指令を受けると、指定されたメッセージをそのまま(すなわち、送信メッセージバッファ309に存在するメッセージをそのまま、通信モードが「通常モード」、通信カウントが「1」、メッセージIDが「プロセスE」、送信元IDが「a」、過去のメッセージID情報が{プロセスA}なるメッセージ)ネットワークに対して送信する(ステップS705)。さらに、受信メッセージディスパッチ部308は、当該再送要求メッセージを受信メッセージバッファ304から削除する(ステップS706)。
【0081】
一方、計算機1bと計算機1cの通信履歴記憶部303内の送信記録用テーブル303bには、該当するメッセージが存在しないため、再送処理を行なうことなく、当該再送要求メッセージを受信メッセージバッファ304から削除する(ステップS706)。
【0082】
再送されたメッセージは、全ての計算機1a〜1cのメッセージ受信部301にて受信され(ステップS700)、再送要求メッセージであるか否かが判定され(ステップS701)、通常モードの通信のためメッセージ抜けが生じているか調べられる(ステップS702)。すなわち、受信メッセージ中の送信元IDが「a」であるため、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの計算機IDが「a」に該当するところの通信カウントと受信メッセージ中の通信カウントを比較する。
【0083】
計算機1aでは、通信履歴記憶部303中の対応する通信カウントが既に「3」で、受信メッセージ中の通信カウント「1」より大きいため、当該受信メッセージは既に受信済みと判断して、受信メッセージを破棄する(ステップS703)。同様に計算機1cでは、通信履歴記憶部303中の対応する通信カウントが既に「2」で、受信メッセージ中の通信カウント「1」より大きいため、当該受信メッセージは既に受信済みと判断して、受信メッセージを破棄する(ステップS703)。
【0084】
一方、計算機1bは、通信履歴記憶部303中の対応する通信カウントが「1」で、受信メッセージ中の通信カウント「1」と一致するため、抜けなしと判断し、受信メッセージディスパッチ部308を起動する。
【0085】
受信メッセージディスパッチ部308は、当該受信メッセージのメッセージIDを参照し、宛先プロセスが「プロセスE」であることを知り、プロセスEが必要メッセージID記憶部307に存在するか確認する。この場合、図9に示すように、計算機1bには、プロセスEが存在しているので、プロセスE(メッセージ処理部310に相当)を起動する(ステップS707)。
【0086】
さらに、受信メッセージディスパッチ部308は、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの送信元IDが「a」に対応する通信カウントの値に「1」を加算し(ステップS708)、受信メッセージバッファ304内に所望の退避メッセージが存在するか調べる(ステップS709)。すなわち、自計算機上の通信履歴記憶部303内のメッセージ抜け検出用テーブル303aの通信カウントと一致するメッセージが退避されているか調べる。
【0087】
受信メッセージバッファ304中には、退避メッセージとして、送信元IDが「a」、通信カウントが「2」のメッセージが存在し、自計算機上のメッセージ抜け検出用テーブル303aの通信カウントと一致するので、この退避メッセージを取りだす。退避メッセージのメッセージIDを参照し、宛先プロセスが「プロセスD」であることを知り、プロセスDが必要メッセージID記憶部307に存在するか確認する。図9に示すように、計算機1bにはプロセスDが存在しているので、プロセスD(メッセージ処理部310に相当)を起動する(ステップS710)。さらに、受信メッセージディスパッチ部308は、通信履歴記憶部303内のメッセージ抜け検出用テーブル303aの送信元IDが「a」に対応する通信カウントの値に「1」を加算する(ステップS711)。
【0088】
所望の退避メッセージが存在しなくなるまでこの処理を繰り返すが、ここでは、次の退避メッセージが存在しないため(ステップS709)、処理を終了する。
【0089】
これによって、計算機1bは、図11のステップS5に示すように、計算機1aからのプロセスE宛てメッセージに続き、プロセスD宛てメッセージを、送信元計算機1aと同一順序で受信できたことが確認できる。さらに、計算機1aと計算機1bの通信履歴記憶部303のメッセージ抜け検出用テーブル303aの送信元IDが「a」に対応する通信カウントの値が「3」となり、一致したことが確認できる。
【0090】
次に、図11のステップS6の、抜けメッセージを検出したときに当該抜けメッセージの再送要求を行わない場合の計算機1の処理動作について、再び図7に示すフローチャートを参照して説明する。
【0091】
ここでは、図11のステップS4で計算機1a上のプロセスCからプロセスD宛てに送信されたメッセージ(通信カウントが「2」)が、計算機1cでのみ受信失敗している場合を前提とする。このような状況において、図11のステップS6において、計算機1a上のプロセスCからプロセスB宛てにメッセージが放送されたとき、計算機1cにてプロセスD宛てのメッセージ受信ミスが検出されるが、計算機1cにはプロセスDが存在しないため再送不要と判断することとなる。
【0092】
図11のステップS6では、まず、計算機1a上の通信履歴記憶部303は、図10のステップS2と同様にして、プロセスCからプロセスB宛てのメッセージを送信する。このとき、図6のステップ605では、送信メッセージ中の過去のメッセージID情報として、通信履歴記憶部303の送信記録用テーブル303bに記録されているメッセージID一覧、すなわち{プロセスA、プロセスE、プロセスD}をセットして送信する。
【0093】
計算機1aから通信カウント「3」(メッセージIDが「プロセスB」)のメッセージを送信完了した段階で、図11に示すように、送信記録用テーブル303bには、通信カウントが「3」、メッセージIDが「プロセスB」、TxBuf−Indexが「ε」なる列が追加され、メッセージ抜け検出用テーブル303aの計算機1aに対応する通信カウントの値が「4」に更新される。
【0094】
計算機1aと計算機1bでは、図10のステップS2と同様に、通信モードが「通常モード」で、通信カウントが一致し、しかもメッセージID(宛先プロセスが「B」)が存在するため、それぞれの計算機上のプロセスBが起動され、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの計算機1aに対応する通信カウントの値は「4」に更新される。
【0095】
一方、計算機1c上のメッセージ受信部301は、通信モードが「通常モード」、通信カウントが「3」、メッセージIDが「プロセスB」、送信元IDが「a」、過去のメッセージID情報が{プロセスA、プロセスE、プロセスD}なるメッセージを受信し、受信メッセージバッファ304に保存する(ステップS700)。メッセージ受信部301は、受信メッセージ中の通信モードを参照して、「通常モード」であるため再送要求でないと判断し、メッセージ抜け検出部305を起動する(ステップS701)。
【0096】
メッセージ抜け検出部305は、受信メッセージ中の通信カウントと送信元IDとを取りだし、それらと通信履歴記憶部303のメッセージ抜け検出用テーブル303aとを参照する。ここでは、受信メッセージ中の送信元IDが「a」、通信カウントの値が「3」で、メッセージ抜け検出用テーブル303a中の計算機IDが「a」に対応する通信カウントを参照すると「2」である。よって、受信メッセージ中の通信カウントの値が自計算機上の通信履歴記憶部303内の通信カウントの値より大きいので、メッセージ抜けが生じていると判断し、再送必要性判定部306を起動する(ステップS702)。
【0097】
再送必要性判定部306は、通信カウントの差が「1」であることから1つ前のメッセージを受信ミスしていると判断し、受信メッセージ中の過去のメッセージID情報から、現在受信したメッセージの1つ前のメッセージのメッセージIDを求める。すなわち、計算機1aからの1つ前のメッセージを受信ミスしており、現在受信したメッセージ中の過去のメッセージID情報が{プロセスA、プロセスE、プロセスD}であるので、その受信ミスしたメッセージのメッセージIDが「プロセスD」であることを求める(ステップS712)。そして、必要メッセージID記憶部307を参照すると、図9に示すように計算機1cには「プロセスD」が存在しないため、再送不要と判断する(ステップS713)。よって、再送必要性判定部306は、通信カウントが「2」、メッセージIDが「プロセスD」のメッセージを受信したものと見なして、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの計算機1aに相当するところの通信カウントの値に検出された抜けメッセージの個数N、すなわち、ここでは、「1」を加算し、その結果「3」と更新される(ステップS714)。その後、図8のステップS718に進み、受信メッセージディスパッチ部308を起動する。
【0098】
なお、図8のステップS718〜ステップS722は、図7のステップS707〜ステップS711と同様である。
【0099】
受信メッセージディスパッチ部308は、受信メッセージのメッセージIDを参照し、宛先プロセスが「プロセスB」であることを知り、プロセスBが必要メッセージID記憶部307に存在するか確認する。図9に示すように、計算機1cには、プロセスBが存在しているので、プロセスB(メッセージ処理部310に相当)を起動する(ステップS718)。
【0100】
さらに、受信メッセージディスパッチ部308は、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの送信元IDが「a」に対応する通信カウントの値に「1」を加算し、その結果、「4」と更新される(ステップS719)。そして、受信メッセージバッファ304内に所望の退避メッセージが存在するか調べる(ステップS720)。すなわち、自計算機上の通信履歴記憶部303のメッセージ抜け検出用テーブル303aの通信カウントと一致するメッセージが退避されているか調べるが、ここでは存在しないので処理を終了する。
【0101】
なお、退避メッセージが存在する場合には、前述のステップS710〜ステップS711と同様に処理を行い、その後、ステップS717へ進む。
【0102】
これにより、計算機1cがメッセージ受信ミスを犯したが、そのメッセージを再送する必要がないと判断でき、無駄な再送処理をすることなく、全計算機間の通信カウントを合わせることができた。
【0103】
上記実施形態において、図3に示すように計算機1内を通信処理部320と本体処理部330とに分け、本体処理部330内にメッセージ処理部311であるプロセス群が存在し、それを起動するとして説明した。このため、メッセージ中に付加するメッセージIDは、プロセス名として説明した。しかし、本体処理部330内の全プロセスが既に起動済みで、必要なメッセージをメッセージID(例えばデータ名)で待っている場合は、必要メッセージID記憶部307に各プロセスが必要とするデータ名のようなメッセージ識別情報を登録しておくことにより対応する事ができる。この場合は、メッセージ中のメッセージIDにもデータ名のようなメッセージの識別情報を付加することとなる。
【0104】
また、図3の計算機1を1つのプロセスとして見なすことも可能である。即ち、各プロセス内で通信処理部320に相当するスレッド群、本体処理部330に相当するか、あるいは、メッセージ処理部310、311に相当するスレッド群を動作させることによって実現可能である。この場合、ネットワークに流れるメッセージは全てのプロセスに対して配送され、各プロセスにて受信メッセージの必要性を判定することになる。また、必要メッセージID記憶部307には、当該プロセス内のスレッド群が必要とするメッセージの識別情報(例えばデータ名)を登録しておくことになり、メッセージ中のメッセージIDにもデータ名のようなメッセージの識別情報を付加することとなる。
【0105】
また、上記実施形態では、メッセージ送信時に、自計算機から送信した全メッセージのID一覧を過去のメッセージID情報として送信メッセージに付加する例を示したが、その一部、ないしは予め付加するメッセージIDの個数を決めておき最新のものから順に決められた個数だけのメッセージIDを付加するようにすることもできる。
【0106】
メッセージIDが宛先プロセス名のような長い場合は、ハッシュ関数等を用いて短い長さのID(短縮型ID)に変換した後、メッセージに付加して送信することも可能である。例えば、元のメッセージIDが整数値の場合、適当な大きさの整数(素数が望ましい)で割った余りを短縮型IDとする。メッセージIDがバイト列(文字列)の場合、各バイトごとに重みをかけて加え、この値を適当な大きさの整数(素数が望ましい)で割った値を短縮型IDとするなどがある。これにより、メッセージに付加する情報量を減らし、通信路及び計算機の負荷を更に軽減する事が可能となる。
【0107】
また、過去のメッセージID情報のエリア404に書き込むメッセージIDの数が多い、あるいは、1つのメッセージIDのビット長が長くしかも数多くのメッセージIDを書き込む必要がある等の理由で、メッセージ中の過去のメッセージID情報のエリア404に書き込むデータ長が所定値以上となった場合には、これら複数のメッセージIDを一括してハッシュ関数等を用いて圧縮するようにしてもよい。
【0108】
さらに、上記実施形態では、受信ミスしたメッセージと同一の送信元計算機から正しくメッセージを受信できたとき、メッセージの抜けを検出できる例を示した。しかし、受信ミスしたメッセージと同一の送信元計算機からでなくても、他の計算機からのメッセージ受信によっても、メッセージ欠落を検出することができる。その場合は、メッセージ中の通信カウントの格納エリア401に、通信履歴記憶部303のメッセージ抜け検出用テーブル303aの内容を書込み、過去のメッセージID情報のエリア404には、過去に送信したメッセージのメッセージIDのみでなく、{送信元計算機ID、送信元計算機IDに対応する通信カウント、メッセージID}に拡張してメッセージに添付することによって解決することができる。
【0109】
以上説明したように、上記実施形態によれば、複数の計算機をネットワークによって接続した分散システム上に配置されたプロセス間で、放送通信を用いて情報交換する際、メッセージの順序性を保証しながら、自計算機や自プロセスに必要なメッセージだけの再送処理だけを行ない、不要なメッセージの再送処理を排除することによって、計算機と通信路上の再送処理にかかる負荷を軽減し処理効率を向上させることが可能となる。
【0110】
【発明の効果】
以上説明したように、本発明によれば、放送通信において、必要なメッセージの順序関係を保証しながら、受信できなかったメッセージの再送処理にかかる負荷を軽減できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る通信装置(例えば、計算機)を用いて構成された分散システムの全体構成を概略的に示した図。
【図2】本発明の実施形態に係る通信装置(例えば、計算機)を用いて構成された他の分散システムの全体構成を概略的に示した図。
【図3】通信装置(例えば、計算機)の要部の構成例を示した図。
【図4】メッセージ構造の一例を示した図。
【図5】通信履歴記憶部に保持されるメッセージ抜け検出用テーブルと送信記録用テーブルの一例を示した図。
【図6】メッセージ送信処理動作を説明するためのフローチャート。
【図7】メッセージ受信処理動作を説明するためのフローチャート。
【図8】メッセージ受信処理動作を説明するためのフローチャート。
【図9】各計算機におけるプロセスの配置と、必要メッセージID記憶部の記憶内容との対応関係を概念的に示した図。
【図10】計算機1a〜1cの間でメッセージの送受信を行う際のメッセージ抜け検出用テーブルと送信記録用テーブルの更新処理と、メッセージ抜け検出処理と、抜けメッセージの再送要求処理とについて説明するための図。
【図11】計算機1a〜1cの間でメッセージの送受信を行う際のメッセージ抜け検出用テーブルと送信記録用テーブルの更新処理と、メッセージ抜け検出処理と、抜けメッセージの再送要求処理とについて説明するための図。
【符号の説明】
1a、1b、1c…計算機(通信装置)
301…メッセージ受信部
302…メッセージ送信部
303…通信履歴記憶部
303a…メッセージ抜け検出用テーブル
303b…送信記録用テーブル
304…受信メッセージバッファ
305…メッセージ抜け検出部
306…再送必要性判定部
307…必要メッセージID記憶部
308…受信メッセージディスパッチ部
309…送信メッセージバッファ
310、311…メッセージ処理部
320…通信処理部
330…本体処理部
Claims (7)
- 複数の通信装置間で放送通信にてメッセージを送受信するための通信方法であって、
前記複数の通信装置のそれぞれは、少なくとも他の通信装置との間で送受信したメッセージ数の累積値である通信カウントと送信済みのメッセージの宛先のプロセスを識別するための宛先メッセージIDとメッセージを受信すべきプロセスを識別するための必要メッセージIDとを記憶手段に記憶し、
メッセージを送信する際には、該メッセージに少なくとも前記記憶された通信カウントと送信済みのメッセージの宛先メッセージIDとを書き込み、
メッセージを受信した際には、該受信メッセージに書き込まれた通信カウントと前記記憶された通信カウントとに基づき未受信のメッセージの有無を検出し、該未受信のメッセージの存在が検出されたとき、その再送の必要性を、前記受信メッセージに書き込まれた送信済みのメッセージの宛先メッセージIDと前記記憶された必要メッセージIDとに基づき判断し、再送が必要と判断された該未受信のメッセージについてのみ再送要求を行うことを特徴とする通信方法。 - 前記メッセージに書き込む送信済みのメッセージの宛先メッセージIDの個数が予め定められていることを特徴とする請求項1記載の通信方法。
- 前記メッセージに書き込む送信済みのメッセージの宛先メッセージIDのデータ長を短縮することを特徴とする請求項1または2記載の通信方法。
- 放送通信にてメッセージを送受信する通信装置において、
少なくとも、他の通信装置との間で送受信したメッセージ数の累積値である通信カウントと送信済みのメッセージの宛先のプロセスを識別するための宛先メッセージIDとメッセージを受信すべきプロセスを識別するための必要メッセージIDとを記憶する記憶手段と、
少なくとも前記記憶手段で記憶された通信カウントと送信済みのメッセージの宛先メッセージIDとが書き込まされたメッセージを送信するメッセージ送信手段と、
メッセージを受信した際、該受信メッセージに書き込まれた通信カウントと前記記憶手段で記憶された通信カウントとに基づき未受信のメッセージの有無を検出する検出手段と、
この検出手段で未受信のメッセージの存在を検出したとき、前記受信メッセージに書き込まれた送信済みのメッセージの宛先メッセージIDと前記記憶手段で記憶された必要メッセージIDとに基づき、該未受信のメッセージの再送の必要性を判定する再送必要性判定手段と、
この再送必要性判定手段で再送が必要と判定された前記未受信のメッセージの再送要求のためのメッセージを送信する再送要求手段と、
を具備したことを特徴とする通信装置。 - 前記メッセージに書き込む送信済みのメッセージの宛先メッセージIDの個数が予め定められていることを特徴とする請求項4記載の通信装置。
- 前記メッセージに書き込む送信済みのメッセージの宛先メッセージIDのデータ長を短縮することを特徴とする請求項4または5記載の通信装置。
- 放送通信にてメッセージを送受信するためのプログラムを記録した機械読み取り可能な記録媒体であって、
少なくとも、他の通信装置との間で送受信したメッセージ数の累積値である通信カウントと送信済みのメッセージの宛先のプロセスを識別するための宛先メッセージIDとメッセージを受信すべきプロセスを識別するための必要メッセージIDとを記憶させる記憶手段と、
少なくとも前記記憶手段で記憶された通信カウントと送信済みのメッセージの宛先メッセージIDとが書き込まされたメッセージを送信させるメッセージ送信手段と、
メッセージを受信した際、該受信メッセージに書き込まれた通信カウントと前記記憶手段で記憶された通信カウントとに基づき未受信のメッセージの有無を検出させる検出手段と、
この検出手段で未受信のメッセージの存在を検出したとき、前記受信メッセージに書き込まれた送信済みのメッセージの宛先メッセージIDと前記記憶手段で記憶された必要メッセージIDとに基づき、該未受信のメッセージの再送の必要性を判定させる再送必要性判定手段と、
この再送必要性判定手段で再送が必要と判定された前記未受信のメッセージの再送要求のためのメッセージを送信させる再送要求手段と、
を実行するプログラムを記録した記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31915398A JP3679935B2 (ja) | 1998-11-10 | 1998-11-10 | 通信方法および通信装置および記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31915398A JP3679935B2 (ja) | 1998-11-10 | 1998-11-10 | 通信方法および通信装置および記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000148648A JP2000148648A (ja) | 2000-05-30 |
| JP3679935B2 true JP3679935B2 (ja) | 2005-08-03 |
Family
ID=18107035
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31915398A Expired - Fee Related JP3679935B2 (ja) | 1998-11-10 | 1998-11-10 | 通信方法および通信装置および記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3679935B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4664469B2 (ja) * | 2000-06-13 | 2011-04-06 | 株式会社東芝 | プラント監視装置および記憶媒体 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04242459A (ja) * | 1991-01-17 | 1992-08-31 | Toshiba Corp | メッセージ送受方法 |
| JPH08202665A (ja) * | 1995-01-30 | 1996-08-09 | Hitachi Ltd | 疎結合計算機における計算機間結合装置 |
| JPH10262093A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | 伝送制御方法 |
-
1998
- 1998-11-10 JP JP31915398A patent/JP3679935B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000148648A (ja) | 2000-05-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3866196B2 (ja) | パケット再送システムおよびパケット再送方法 | |
| US20030163580A1 (en) | Data transmission protocol using short message service | |
| WO1991014230A1 (fr) | Systeme de traitement de transmission de messages | |
| TW200401533A (en) | System and method for prioritization of retransmission of protocol data units to assist radio-link-control retransmission | |
| EP0726663B1 (en) | Information processing system and communication method | |
| JPS63279633A (ja) | 同報通信システム | |
| JP2009517930A (ja) | データ再送信方法、データ送信装置、およびデータ送信システム | |
| WO2026067538A1 (zh) | 一种基于rdma的请求装置、响应装置和系统 | |
| TWI768120B (zh) | 無線lan通訊裝置、無線lan通訊方法及電腦可讀取之記錄媒體 | |
| CN109120385B (zh) | 一种基于数据传输系统的数据传输方法、装置及系统 | |
| CN112104531B (zh) | 一种备份实现方法及装置 | |
| CN111010441B (zh) | 一种区块链跨链方法、系统及电子设备 | |
| JP3679935B2 (ja) | 通信方法および通信装置および記録媒体 | |
| JP5029685B2 (ja) | バックアップ装置 | |
| JP4112717B2 (ja) | データ処理装置 | |
| JP2009212796A (ja) | 送信装置、データ転送システム、データ転送方法およびデータ転送プログラム | |
| JPH0591108A (ja) | メツセージ通信制御方法および通信システム | |
| JP2005286832A (ja) | Atm通信システムおよびatm通信方法 | |
| JP3839967B2 (ja) | 同報通信方法および通信装置 | |
| JP2008129628A (ja) | 複数のコンピュータシステムでメッセージをやり取りすることによって所定の業務を処理するシステムでの通信方式、及び、メッセージ中継プログラム | |
| JP6182779B1 (ja) | 転送装置、転送方法およびプログラム | |
| JP2004349783A (ja) | 移動体通信方法及びシステム | |
| JP3526073B2 (ja) | 電子メールの配信方法及び配信システム | |
| JP2002077165A (ja) | 多重化ネットワーク通信装置 | |
| JP4301230B2 (ja) | 情報処理システム及びそのデータ通信方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050224 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
| 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: 20050510 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050516 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |