分散処理におけるメッセージ処理方式
【課題】本発明は、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供することを目的とする。
【解決手段】分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番するメッセージ処理部104は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わず、これにより不必要な重複判定が行われることを回避する。
【解決手段】分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番するメッセージ処理部104は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わず、これにより不必要な重複判定が行われることを回避する。
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、個人用コンピュータあるいはワークステーション等からなる複数のノードがネットワークを介して有機的に結合され、これら複数のノード間において分散処理が行われる分散処理システムに関し、特に同システムの分散処理におけるメッセージ処理方式に関する。
【0002】
【従来の技術】分散処理の基本技術としてプロセス間通信が知られている。メモリ空間を共有しないプロセス間、あるいはネットワークを介して隔てられた個々のノードで実行されるプロセス間においては、種々の情報の受け渡しを行う手段としてのプロセス間通信は必要不可欠である。このようなプロセス間通信においては、情報はメッセージと呼ばれる単位で受け渡される。そしてこのようなメッセージを用いるプロセス間通信は「メッセージ受け渡し」と称されている。メッセージ受け渡しにおける通信方式は、同期式通信と非同期式通信とに分類される。
【0003】同期式通信は、送信側プロセスから送られてきたメッセージに関する受信側の処理結果を送信側プロセスが受信側プロセスから受け取る方式である。一方、非同期式通信は、送信側プロセスから送られてきたメッセージが受信側プロセスで処理され、その処理結果が送信側プロセスに送られない方式である。
【0004】送信側のプロセスが受信側のプロセスに対してメッセージを送信するにあたっては、メッセージの大きさが通信手段の規定の大きさを超える場合、送信側のプロセスは送信メッセージを複数のパケットに分割し、パケット単位で送信するようにしている。また、分割された複数のパケットは、各々にメッセージ識別番号が付与されて送信される。このメッセージ識別番号は、受信側のノードの受信バッファ内において、受信パケットを他のパケットと区別可能にするとともに、当該識別番号に基づき複数の受信パケットを結合してメッセージを復元可能とするために用いられる。なお、同期式通信において受信側の処理結果を送信側に送る場合には、同様のパケットと識別番号に関する処理が行われる。
【0005】以上説明したようなメッセージの受け渡しには解決すべき次のような問題がある。
【0006】まず、メッセージ識別番号を採番するにあたっては、例えば16ビットのカウンタを用い、当該カウンタが表現し得る最大値の範囲内で循環的にカウンタ値を変化させ、このカウンタ値をメッセージ識別番号として採番するようにしている。
【0007】ここで、上記メッセージの受け渡しを行う場合、カウンタが循環することによって送信側のノードが、未だ受信の処理中であるメッセージ識別番号と同一の識別番号を重複して採番し、メッセージをその(同じ)受信ノードに対して送信することが有り得る。そしてこの場合に受信側のノードは、受信バッファ内の複数のパケットの中からメッセージ識別番号に基づいてパケットを特定しメッセージを復元することができなくなる。
【0008】そこで、送信側のノードは、メッセージ識別番号の採番の度に、その識別番号が受信側のノードにおいて使用中であるか否かを判定し、識別番号の重複採番を回避するものとなっている。
【0009】しかしながら、識別番号の採番のたびに重複判定を行うことは、スループット向上の観点から非効率的であるという問題がある。あるいは、このような重複を避けるため、例えば送信側のノードにおける絶対時間をコード化したものをメッセージ識別番号として印加する場合、その番号を表現するための情報量は、マイクロ秒まで表現する場合でおよそ60ビットとなり、メッセージ送信において絶えず冗長な情報を送らなければならなくなり、処理効率の低下を伴う。
【0010】
【発明が解決しようとする課題】したがって本発明の第1の目的は、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供することにある。
【0011】そして本発明の第2の目的は、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供することにある。
【0012】
【課題を解決するための手段】
(1)本発明による分散処理におけるメッセージ処理方式は、分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番する、分散処理におけるメッセージ処理方式において、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わないことを特徴とする。
【0013】この構成のため、不必要な重複判定が行われることを回避できる。
【0014】(2)本発明による分散処理におけるメッセージ処理方式は、上記(1)に記載の方式であって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0015】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0016】(3)本発明による分散処理におけるメッセージ処理方式は、上記(1)に記載の方式であって、且つ前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0017】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0018】(4)本発明による分散処理のためのメッセージ処理装置は、分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを伝送手段を介して送信するためのメッセージ送信手段とを具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は前記重複判定を行わないことを特徴とする。
【0019】この構成のため、不必要な重複判定が行われることを回避できる。
【0020】(5)本発明による分散処理のためのメッセージ処理装置は、上記(4)に記載の装置であって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0021】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0022】(6)本発明による分散処理のためのメッセージ処理装置は、上記(4)に記載の装置であって、且つ前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0023】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0024】(7)本発明による分散処理システムは、伝送手段を介して接続された複数のノード間におけるメッセージ受け渡しによる分散処理を行う分散処理システムにおいて、前記ノードは、前記分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを、前記伝送手段を介して送信するためのメッセージ送信手段と、前記送信手段から送信されたメッセージを受信するメッセージ受信手段と、を具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、前記伝送手段を介してメッセージ送信先のノードに対し問い合わせ処理を行うことにより、処理中のメッセージにおいて使用されている識別番号が採番されることを禁止し、前記特定時間が経過するまでの間は、前記メッセージ送信先のノードに対する問い合わせ処理を行わないことを特徴とする。
【0025】この構成のため、不必要にメッセージ送信先のノードに対して問い合わせ処理が行われることを回避できる。
【0026】(8)本発明による分散処理システムは、上記(7)に記載のシステムであって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0027】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0028】(9)本発明による分散処理システムは、上記(7)に記載のシステムであって、且つ前記特定時間が前記他のノードに対する問い合わせ処理に要する時間よりも短い場合は、当該問い合わせ処理を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0029】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0030】
【発明の実施の形態】以下、図面を参照しながら本発明の実施形態を説明する。
【0031】図1は本発明の実施形態に係る分散処理システムの概略構成を示すブロック図である。本実施形態の分散処理システムは、大別して第1のコンピュータノードとしてのプロセッシングエレメント100と、第2のコンピュータノードとしてのプロセッシングエレメント200とが、伝送手段としてのネットワーク回線/バス300を介して接続されており、第1及び第2のコンピュータノード間において分散処理が行われるものとなっている。なおコンピュータノード数は上記のように2つに限定されず任意である。また、伝送手段がバス300である場合は、単一のコンピュータ内に設けられたプロセッシングエレメント100及び200の間において分散処理が行われることになる。
【0032】プロセッシングエレメント100は、ハードウェア資源としてメモリ107、CPU108、そしてネットワーク/バスインターフェース109を有し、これらのハードウェア資源を制御するための基本ソフトウェア(OS)105を有している。このOS105は、いわゆるマルチプロセス処理が可能であって、図1に示すように同OS105上には複数のプロセス、すなわちプロセス101、102、103が生成されている。プロセスとは、OSがCPU資源を割り当てる単位であるとともに、プロセスに対応するプログラムの実行状態を意味する。
【0033】また、プロセス101は、上述したメッセージ受け渡しによるプロセス間通信を行うためのメッセージ処理部104を有している。このメッセージ処理部104は、OS105及びネットワーク/バスインターフェース109を介して、メッセージを他のノードのプロセスに送信し、あるいは他のノードのプロセスから送られてきたメッセージを受信することができる。
【0034】プロセッシングエレメント200は、プロセッシングエレメント100と同様に構成され、ハードウェア資源としてのメモリ207、CPU208、そしてネットワーク/バスインターフェース209を有し、これらのハードウェア資源を制御するための基本ソフトウェア(OS)205を有している。このOS205は、いわゆるマルチプロセス処理が可能であって、図1に示すように同OS205上には複数のプロセス、すなわちプロセス201、202、203が生成されている。
【0035】また、プロセス201は、上述したメッセージ受け渡しによるプロセス間通信を行うためのメッセージ処理部204を有している。このメッセージ処理部204は、OS205及びネットワーク/バスインターフェース209を介して、メッセージを他のノードのプロセスに送信し、あるいは他のノードのプロセスから送られてきたメッセージを受信することができる。
【0036】例えばプロセス101とプロセス201との間で行われるメッセージ受け渡しにおいて、図2に示すようにプロセス101がメッセージ1及びメッセージ2をプロセス201に対して送信する場合、プロセス101のメッセージ処理部104はメッセージ1及び2を複数のパケットに分割し、パケット単位でプロセス201に送信する(同図では、例えば、メッセージ1を3つのパケットに分割し、メッセージ2を2つのパケットに分割する場合が示されている)。プロセス201のメッセージ処理部204は、受信した複数のパケットを結合してメッセージ1及びメッセージ2を復元する。
【0037】ここで、メッセージ処理部104(同処理部204も同様に構成される)について説明する。図3はメッセージ処理部104の概略構成を示すブロック図である。
【0038】同図に示すようにメッセージ処理部104は、メッセージ送受信要求部40、カウンタ41、タイマ監視部42、メッセージ送信部43、メッセージ受信部44、バッファ管理テーブル45、使用中チェック部46から構成されている。タイマ監視部42は、OS105内部のタイマ106を制御するものであって、プロセス101が生成するスレッドとして構成されている。またメッセージ送信部43及びメッセージ受信部44は、ネットワーク/バスインターフェース109を介して送信メッセージを構成する複数のパケットを送信し、あるいは同インターフェース109を介して送られてきた受信メッセージを構成する複数のパケットを受信するものとなっている。
【0039】図4は、送(受)信メッセージのデータ構造を示す模式図である。
【0040】同図に示すように、メッセージDはデータD1 、D2 、D3 に分割される。そして分割された各々のデータに対しヘッダHd1 、Hd2 、Hd3 が付加されることによりパケットP1、P2、P3が作成される。ヘッダHdには、後述するメッセージ識別番号、メッセージ長、パケット総数、パケットシーケンス番号、データ長、送信側プロセッシングエレメント識別(子)、送信側プロセス識別(子)を表すデータが格納される。
【0041】上記各々データの詳細を以下に記す。
【0042】メッセージ長:データD1 〜D3 の合計サイズに相当する。
【0043】パケット総数:ここでは3つのパケットに分割されているので“3”になる。
【0044】パケットシーケンス番号:当該メッセージ内のパケットの通し番号がセットされる。
【0045】データ長:データDのサイズに相当する。
【0046】送信側プロセッシングエレメント識別:当該分散処理システム内においてプロセッシングエレメントを識別可能とするための識別子がセットされる。
【0047】送信側プロセス識別:当該プロセッシングエレメント内においてプロセスを識別可能とするための識別子がセットされる。
【0048】図5は、メッセージ送信部43が実行するメッセージ送信処理の内容を示すフローチャートである。メッセージ送信部43は、メッセージ送信要求部40から送信要求がなされた複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、この採番手段により識別番号が採番された複数のメッセージを、ネットワーク/バス300及び同インターフェース109からなる伝送手段を介して送信するメッセージ送信手段とを備えている。
【0049】先ずステップS1において、メッセージ識別番号採番処理を行う。これにより送信対象のメッセージに対して識別番号が採番されることになる。メッセージ識別番号採番処置の具体的内容については後述する。
【0050】次にステップS2において、上記ステップS1により識別番号が採番されたメッセージを複数のデータに分割する。
【0051】次にステップS3において、分割によって得られた各々のデータにヘッダ情報をセットしてパケットを作成する。上記メッセージの分割及びパケットの作成は、図4において説明したデータ構造に従って行う。
【0052】次にステップS4において、作成された個々のパケットを送信相手先のノードに対し送信する。かかるパケット送信は非同期通信により行なわれ、送信相手先のノードは受信したパケットをバッファ管理テーブルに格納して直ちに制御を返す。
【0053】そしてステップS5において、送信メッセージに相当する全てのパケットの送信の完了をもってメッセージ送信を終了する。
【0054】ここで、本発明の特徴点に係るメッセージ識別番号採番について説明する。
【0055】図6は、メッセージ識別番号採番処理の内容を示すフローチャートである。また図7(a)及び(b)は、メッセージ識別番号の採番を概念的に示す図である。
【0056】同図において、C1は現在(カレント)のメッセージ識別番号を表し、C2は使用中のメッセージ識別番号を表している。メッセージ識別番号の採番規則は、原則的には次の通りである。すなわち、0〜65535までの番号の組のなかからいずれかの番号を循環的に採番する。すなわち“0〜65535”までの番号を順番に採番した後、再び“0”から採番する。なお、現在のメッセージ識別番号は、新たな識別番号の採番に応じてその値が更新されるカウンタ41によって表現される。
【0057】図6のフローチャートによると、先ずステップS11においてカウンタ41を+1する。ここではカウンタ41の初期値を“0”とし、ステップS11により現在のカウンタ値は“1”に変化する。
【0058】次にステップS2においてモードの判定を行う。このモードとは、後述する使用中チェック処理を行うか否かを示すものであって、同チェック処理を行う場合は“チェック”が設定され、同チェック処理を行わない場合は“ノーチェック”が設定される。ステップS2における初回のモード判定においては、モードは初期値すなわち“設定なし”となっており、したがってステップS16に移行する。
【0059】ステップS16においては、カウンタが一周するまでの時間tを計算する。すなわち図7を用いて説明した採番規則に従い、ある時点において採番されたメッセージ識別番号と同一の識別番号が採番されるまでの時間tを計算する。この時間tは、ある識別番号が採番されてから、次回の使用中チェック処理を開始するまでの特定時間を与えるものであって、上記識別番号が採番された時点から、この特定時間が経過するまでの間は、モードを“ノーチェック”とする。すなわちここでは、ステップS19においてモードを“ノーチェック”とし、続くステップS20において、上記特定時間までの時間の経過をタイマ監視部42が監視するように指示する。なお、上記時間tの計算は、ある識別番号が採番されてから次の識別番号が採番されるまでの時間Δtに基づいて行われる。すなわちここでは、t=Δt×65535を計算する。
【0060】ちなみに上記Δtは、事前に測定した値を用いても良いし、プログラムのダイナミックステップ数に基づいて計算するようにしても良い。
【0061】次に、ステップS21において、カウンタ値を返却して初回の採番を終了する。すなわちカウンタ値(“1”)がメッセージ識別番号として採番される。
【0062】図8はタイマ監視部42によるタイマ監視処理の内容を示すフローチャートである。このタイマ監視部42は、上述したようにスレッドとして構成されており、上記メッセージ識別番号採番処理と並行して動作する。また、メッセージ識別番号採番処理と当該タイマ監視処理は、上記「モード」および「(重複までの)時間t」を共有データとして参照可能となっている。
【0063】先ずステップS201において、タイマ監視処理は、上記ステップS20による監視開始指示があるまで待機しており、同開始指示を受けると、ステップS202において、共有データとして参照可能な「重複までの時間t」の値を指定してインタバルタイマをセットする。このインタバルタイマは上述したOS105内のタイマ106により実現される。そしてタイマ監視処理は、ステップS203に示すようにタイマランアウトが発生するまで待機する。
【0064】上記時間tが経過すると、インタバルタイマはタイマランアウトし、これを受けてタイマ監視処理はステップS204に移行する。ステップS204においては、上記共有データとしての「モード」を“チェック”に変更する。
【0065】ここで、上記タイマランアウトが発生した直後におけるメッセージ識別番号採番処理の内容を説明する。先ずステップS11により現在のカウンタ値が+1される。
【0066】次にステップS12においては、上記初回の採番におけるタイマ監視処理によって「モード」が“チェック”に変更されているため、ステップS13に移行する。
【0067】ステップS13においては、メッセージ識別番号の使用中チェック処理を行う。同処理は、メッセージ送信側のプロセスが受信側のプロセス(ここでは200)内の使用中チェック部(メッセージ処理部204内にあり不図示)に対して問い合わせ処理を行うことによる。
【0068】図9は、受信側の使用中チェック処理部における処理内容を示すフローチャートである。
【0069】送信相手先の使用中チェック部は、送信側のメッセージ処理部から、送信側プロセッシングエレメント識別、送信側プロセス識別、送信側カレントカウンタ値の通知を受け取る。
【0070】そしてステップS131において、上記プロセッシングエレメント識別及びプロセス識別が一致する「バッファ管理テーブルエントリ」のなかで、上記送信側カレントカウンタ値に最も近いメッセージ識別番号をもつエントリを検索する。バッファ管理テーブルの詳細は後述する。
【0071】続くステップS132において上記検索条件を満たすエントリが見つからなかった場合は、ステップS134に移行し、「Not Found 」を送信側プロセスに対して送信する。また、上記検索条件を満たすエントリが見つかった場合は、そのエントリのメッセージ識別番号を送信側プロセスに対して送信する。
【0072】このような問い合わせ処理によれば、受信側のプロセスにおいて使用中の識別番号と同一の識別番号が、送信側のプロセスにおいて重複して採番されることを禁止できる。しかしながらこの問い合わせ処理は、ネットワーク回線/バス300を介した通信処理を含むため、頻繁に行うべきではない。
【0073】図6のフローチャートに説明を戻す。
【0074】ステップS14においては、ステップS13による問い合わせ結果を判定し、「Not Found 」を受信したステップS16に移行する。また、メッセージ識別番号を受信した場合は、ステップS15に移行し、問い合わせ結果のメッセージ識別番号と同一の値にカウンタ値が変化するまでの特定時間、すなわち重複までの時間tを計算する。
【0075】上記時間tの計算は、ある識別番号が採番されてから次の識別番号が採番されるまでの時間Δtに基づいて行われる。すなわちここでは、t=Δt×(“カレントのカウンタ値”が“問い合わせ結果のメッセージ識別番号”に達するまでのカウントアップ回数)を計算する。
【0076】ちなみに上記Δtは、事前に測定した値を用いても良いし、プログラムのダイナミックステップ数に基づいて計算するようにしても良い。
【0077】次にステップS17において、時間tは十分大きいか否かを判定する。時間tが十分大きい場合は、ステップS19に移行する。また、時間tが小さい(短い)、すなわち図7(b)のような状態(問い合わせ結果の識別番号はC2)にある場合は、ステップS18に移行する。ステップS18においては、カレントのカウンタ値を、問い合わせ結果のメッセージ識別番号に変更した後、その値を+1してステップS13に移行する。これにより図7(b)において、C2の次以降の値が調べられ、C2を含めて近く重複が発生するものをスキップした値が新たに採番されるため、重複採番が回避されることになる。
【0078】このようなメッセージ識別番号採番処理によれば、所定の識別番号が採番されてから時間tが経過したとき、ネットワーク回線/バス300を介して受信側のプロセスに対し問い合わせ処理を行うことにより、受信側のプロセス200で使用中の識別番号が採番されることを禁止し、時間tが経過するまでの間は受信側のプロセス200に対する問い合わせ処理を行わないといった制御動作を実現できる。
【0079】このため、例えばノード又はネットワークの障害等により起こり得るメッセージ識別番号の重複採番を効率良く回避できる。これにより送信側のノードから送られたメッセージを受信側のノードにおいて確実に特定でき、メッセージの受け渡しに関する分散処理システムの信頼性を向上できる。
【0080】次に、メッセージ処理部44が実行するメッセージ受信処理について説明する。
【0081】図10は、メッセージ受信部44が実行するメッセージ受信処理の内容を示すフローチャートである。メッセージ受信部44は、メッセージ送受信要求部40からの要求によりメッセージに相当する複数のパケットを受信する。
【0082】受信されたパケットは、メモリ107内に確保されたバッファ内に格納される。このバッファのアドレスは、バッファ管理テーブル45により管理される。
【0083】図11は、バッファ管理テーブル45の構造を示す図である。
【0084】バッファ管理テーブル45は、複数のエントリを要素とするテーブルからなる。同図に示すようにエントリ401は、送信側プロセッシングエレメント識別402、送信側プロセス識別403、メッセージ識別番号404、パケット総数405、受信済パケット数406、そしてバッファへのポインタ407からなる。
【0085】バッファへのポインタ407は、バッファデータが格納されたバッファ領域408へのポインタである。
【0086】先ずステップS30において、当該メッセージに対応するバッファが存在するかを判定し、存在しなければステップS31において新たにバッファを確保する。ここでの判定は、パケットのヘッダ情報Hd及びバッファ管理テーブル45の内容に基づいて行われる。またバッファの確保は、メッセージ長に相当するバッファ領域を確保するとともにバッファ管理テーブル45内に新たなエントリを作成することである。
【0087】次にステップS32において、受信したパケットのデータをバッファに格納する。データの格納に際しては、バッファ管理テーブルエントリ401内の「受信済みパケット数406」を更新する。
【0088】次にステップS33において受信メッセージに相当する全てのパケットを受信したか否かを判定する。ここでは、バッファ管理テーブルエントリ401内の「パケット総数405」と、同エントリ内の「受信済みパケット数406」とを比較することによる。
【0089】全てのパケットの受信を完了すると、パケットシーケンス番号に基づいて個々の受信パケットが結合され、これにより受信メッセージが復元される。
【0090】続くステップS34において、メッセージ送受信要求部40に対し受信メッセージを渡し、ステップS35においてバッファ管理テーブルエントリ401を抹消(クリア)し、メッセージ受信処理を終了する。
【0091】以上説明した本実施形態によれば、所定の識別番号が採番されてから時間tが経過したとき、ネットワーク回線/バス300を介して受信側のプロセスに対し問い合わせ処理を行うことにより、受信側のプロセス200で使用中の識別番号が採番されることを禁止し、時間tが経過するまでの間は受信側のプロセス200に対する問い合わせ処理を行わないといったメッセージ識別番号採番に関する制御動作を実現できる。
【0092】このため、不必要に受信側のプロセスに対して問い合わせ処理が行われることを回避できる。したがって、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供でき、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供できる。
【0093】なお、本発明は上述した実施形態に限定されず、種々変形して実施可能である。
【0094】
【発明の効果】以上説明したように本発明によれば、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供でき、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る分散処理システムの概略構成を示すブロック図。
【図2】メッセージ受け渡しにおけるメッセージ送信を示す概念図。
【図3】メッセージ処理部104の概略構成を示すブロック図。
【図4】送(受)信メッセージのデータ構造を示す模式図。
【図5】メッセージ送信部43が実行するメッセージ送信処理の内容を示すフローチャート。
【図6】メッセージ識別番号採番処理の内容を示すフローチャート。
【図7】メッセージ識別番号の採番を概念的に示す図。
【図8】タイマ監視部42によるタイマ監視処理の内容を示すフローチャート。
【図9】メッセージ受信側の使用中チェック処理部における処理内容を示すフローチャート。
【図10】メッセージ受信部44が実行するメッセージ受信処理の内容を示すフローチャート。
【図11】バッファ管理テーブル45の構造を示す図。
【符号の説明】
100…プロセッシングエレメント
101、102、103…プロセス
104…メッセージ処理部
105…OS
106…タイマ
107…メモリ
108…CPU
109…ネットワーク/バスインターフェース
200…プロセッシングエレメント
201、202、203…プロセス
204…メッセージ処理部
205…OS
206…タイマ
207…メモリ
208…CPU
209…ネットワーク/バスインターフェース
300…ネットワーク回線/バス
【0001】
【発明の属する技術分野】本発明は、例えば、個人用コンピュータあるいはワークステーション等からなる複数のノードがネットワークを介して有機的に結合され、これら複数のノード間において分散処理が行われる分散処理システムに関し、特に同システムの分散処理におけるメッセージ処理方式に関する。
【0002】
【従来の技術】分散処理の基本技術としてプロセス間通信が知られている。メモリ空間を共有しないプロセス間、あるいはネットワークを介して隔てられた個々のノードで実行されるプロセス間においては、種々の情報の受け渡しを行う手段としてのプロセス間通信は必要不可欠である。このようなプロセス間通信においては、情報はメッセージと呼ばれる単位で受け渡される。そしてこのようなメッセージを用いるプロセス間通信は「メッセージ受け渡し」と称されている。メッセージ受け渡しにおける通信方式は、同期式通信と非同期式通信とに分類される。
【0003】同期式通信は、送信側プロセスから送られてきたメッセージに関する受信側の処理結果を送信側プロセスが受信側プロセスから受け取る方式である。一方、非同期式通信は、送信側プロセスから送られてきたメッセージが受信側プロセスで処理され、その処理結果が送信側プロセスに送られない方式である。
【0004】送信側のプロセスが受信側のプロセスに対してメッセージを送信するにあたっては、メッセージの大きさが通信手段の規定の大きさを超える場合、送信側のプロセスは送信メッセージを複数のパケットに分割し、パケット単位で送信するようにしている。また、分割された複数のパケットは、各々にメッセージ識別番号が付与されて送信される。このメッセージ識別番号は、受信側のノードの受信バッファ内において、受信パケットを他のパケットと区別可能にするとともに、当該識別番号に基づき複数の受信パケットを結合してメッセージを復元可能とするために用いられる。なお、同期式通信において受信側の処理結果を送信側に送る場合には、同様のパケットと識別番号に関する処理が行われる。
【0005】以上説明したようなメッセージの受け渡しには解決すべき次のような問題がある。
【0006】まず、メッセージ識別番号を採番するにあたっては、例えば16ビットのカウンタを用い、当該カウンタが表現し得る最大値の範囲内で循環的にカウンタ値を変化させ、このカウンタ値をメッセージ識別番号として採番するようにしている。
【0007】ここで、上記メッセージの受け渡しを行う場合、カウンタが循環することによって送信側のノードが、未だ受信の処理中であるメッセージ識別番号と同一の識別番号を重複して採番し、メッセージをその(同じ)受信ノードに対して送信することが有り得る。そしてこの場合に受信側のノードは、受信バッファ内の複数のパケットの中からメッセージ識別番号に基づいてパケットを特定しメッセージを復元することができなくなる。
【0008】そこで、送信側のノードは、メッセージ識別番号の採番の度に、その識別番号が受信側のノードにおいて使用中であるか否かを判定し、識別番号の重複採番を回避するものとなっている。
【0009】しかしながら、識別番号の採番のたびに重複判定を行うことは、スループット向上の観点から非効率的であるという問題がある。あるいは、このような重複を避けるため、例えば送信側のノードにおける絶対時間をコード化したものをメッセージ識別番号として印加する場合、その番号を表現するための情報量は、マイクロ秒まで表現する場合でおよそ60ビットとなり、メッセージ送信において絶えず冗長な情報を送らなければならなくなり、処理効率の低下を伴う。
【0010】
【発明が解決しようとする課題】したがって本発明の第1の目的は、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供することにある。
【0011】そして本発明の第2の目的は、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供することにある。
【0012】
【課題を解決するための手段】
(1)本発明による分散処理におけるメッセージ処理方式は、分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番する、分散処理におけるメッセージ処理方式において、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わないことを特徴とする。
【0013】この構成のため、不必要な重複判定が行われることを回避できる。
【0014】(2)本発明による分散処理におけるメッセージ処理方式は、上記(1)に記載の方式であって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0015】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0016】(3)本発明による分散処理におけるメッセージ処理方式は、上記(1)に記載の方式であって、且つ前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0017】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0018】(4)本発明による分散処理のためのメッセージ処理装置は、分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを伝送手段を介して送信するためのメッセージ送信手段とを具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は前記重複判定を行わないことを特徴とする。
【0019】この構成のため、不必要な重複判定が行われることを回避できる。
【0020】(5)本発明による分散処理のためのメッセージ処理装置は、上記(4)に記載の装置であって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0021】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0022】(6)本発明による分散処理のためのメッセージ処理装置は、上記(4)に記載の装置であって、且つ前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0023】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0024】(7)本発明による分散処理システムは、伝送手段を介して接続された複数のノード間におけるメッセージ受け渡しによる分散処理を行う分散処理システムにおいて、前記ノードは、前記分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを、前記伝送手段を介して送信するためのメッセージ送信手段と、前記送信手段から送信されたメッセージを受信するメッセージ受信手段と、を具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、前記伝送手段を介してメッセージ送信先のノードに対し問い合わせ処理を行うことにより、処理中のメッセージにおいて使用されている識別番号が採番されることを禁止し、前記特定時間が経過するまでの間は、前記メッセージ送信先のノードに対する問い合わせ処理を行わないことを特徴とする。
【0025】この構成のため、不必要にメッセージ送信先のノードに対して問い合わせ処理が行われることを回避できる。
【0026】(8)本発明による分散処理システムは、上記(7)に記載のシステムであって、且つ前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする。
【0027】上記「所定の規則に従って識別番号を採番する」とは、例えば、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番することを意味する。
【0028】(9)本発明による分散処理システムは、上記(7)に記載のシステムであって、且つ前記特定時間が前記他のノードに対する問い合わせ処理に要する時間よりも短い場合は、当該問い合わせ処理を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする。
【0029】上記「所定の規則とは異なる規則に従って識別番号を採番する」とは、予め定められた番号の組の中から循環的に番号を選択しこれを識別番号として採番する際に、当該番号の組のなかから特定の番号を一時的に除外して採番することを意味する。
【0030】
【発明の実施の形態】以下、図面を参照しながら本発明の実施形態を説明する。
【0031】図1は本発明の実施形態に係る分散処理システムの概略構成を示すブロック図である。本実施形態の分散処理システムは、大別して第1のコンピュータノードとしてのプロセッシングエレメント100と、第2のコンピュータノードとしてのプロセッシングエレメント200とが、伝送手段としてのネットワーク回線/バス300を介して接続されており、第1及び第2のコンピュータノード間において分散処理が行われるものとなっている。なおコンピュータノード数は上記のように2つに限定されず任意である。また、伝送手段がバス300である場合は、単一のコンピュータ内に設けられたプロセッシングエレメント100及び200の間において分散処理が行われることになる。
【0032】プロセッシングエレメント100は、ハードウェア資源としてメモリ107、CPU108、そしてネットワーク/バスインターフェース109を有し、これらのハードウェア資源を制御するための基本ソフトウェア(OS)105を有している。このOS105は、いわゆるマルチプロセス処理が可能であって、図1に示すように同OS105上には複数のプロセス、すなわちプロセス101、102、103が生成されている。プロセスとは、OSがCPU資源を割り当てる単位であるとともに、プロセスに対応するプログラムの実行状態を意味する。
【0033】また、プロセス101は、上述したメッセージ受け渡しによるプロセス間通信を行うためのメッセージ処理部104を有している。このメッセージ処理部104は、OS105及びネットワーク/バスインターフェース109を介して、メッセージを他のノードのプロセスに送信し、あるいは他のノードのプロセスから送られてきたメッセージを受信することができる。
【0034】プロセッシングエレメント200は、プロセッシングエレメント100と同様に構成され、ハードウェア資源としてのメモリ207、CPU208、そしてネットワーク/バスインターフェース209を有し、これらのハードウェア資源を制御するための基本ソフトウェア(OS)205を有している。このOS205は、いわゆるマルチプロセス処理が可能であって、図1に示すように同OS205上には複数のプロセス、すなわちプロセス201、202、203が生成されている。
【0035】また、プロセス201は、上述したメッセージ受け渡しによるプロセス間通信を行うためのメッセージ処理部204を有している。このメッセージ処理部204は、OS205及びネットワーク/バスインターフェース209を介して、メッセージを他のノードのプロセスに送信し、あるいは他のノードのプロセスから送られてきたメッセージを受信することができる。
【0036】例えばプロセス101とプロセス201との間で行われるメッセージ受け渡しにおいて、図2に示すようにプロセス101がメッセージ1及びメッセージ2をプロセス201に対して送信する場合、プロセス101のメッセージ処理部104はメッセージ1及び2を複数のパケットに分割し、パケット単位でプロセス201に送信する(同図では、例えば、メッセージ1を3つのパケットに分割し、メッセージ2を2つのパケットに分割する場合が示されている)。プロセス201のメッセージ処理部204は、受信した複数のパケットを結合してメッセージ1及びメッセージ2を復元する。
【0037】ここで、メッセージ処理部104(同処理部204も同様に構成される)について説明する。図3はメッセージ処理部104の概略構成を示すブロック図である。
【0038】同図に示すようにメッセージ処理部104は、メッセージ送受信要求部40、カウンタ41、タイマ監視部42、メッセージ送信部43、メッセージ受信部44、バッファ管理テーブル45、使用中チェック部46から構成されている。タイマ監視部42は、OS105内部のタイマ106を制御するものであって、プロセス101が生成するスレッドとして構成されている。またメッセージ送信部43及びメッセージ受信部44は、ネットワーク/バスインターフェース109を介して送信メッセージを構成する複数のパケットを送信し、あるいは同インターフェース109を介して送られてきた受信メッセージを構成する複数のパケットを受信するものとなっている。
【0039】図4は、送(受)信メッセージのデータ構造を示す模式図である。
【0040】同図に示すように、メッセージDはデータD1 、D2 、D3 に分割される。そして分割された各々のデータに対しヘッダHd1 、Hd2 、Hd3 が付加されることによりパケットP1、P2、P3が作成される。ヘッダHdには、後述するメッセージ識別番号、メッセージ長、パケット総数、パケットシーケンス番号、データ長、送信側プロセッシングエレメント識別(子)、送信側プロセス識別(子)を表すデータが格納される。
【0041】上記各々データの詳細を以下に記す。
【0042】メッセージ長:データD1 〜D3 の合計サイズに相当する。
【0043】パケット総数:ここでは3つのパケットに分割されているので“3”になる。
【0044】パケットシーケンス番号:当該メッセージ内のパケットの通し番号がセットされる。
【0045】データ長:データDのサイズに相当する。
【0046】送信側プロセッシングエレメント識別:当該分散処理システム内においてプロセッシングエレメントを識別可能とするための識別子がセットされる。
【0047】送信側プロセス識別:当該プロセッシングエレメント内においてプロセスを識別可能とするための識別子がセットされる。
【0048】図5は、メッセージ送信部43が実行するメッセージ送信処理の内容を示すフローチャートである。メッセージ送信部43は、メッセージ送信要求部40から送信要求がなされた複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、この採番手段により識別番号が採番された複数のメッセージを、ネットワーク/バス300及び同インターフェース109からなる伝送手段を介して送信するメッセージ送信手段とを備えている。
【0049】先ずステップS1において、メッセージ識別番号採番処理を行う。これにより送信対象のメッセージに対して識別番号が採番されることになる。メッセージ識別番号採番処置の具体的内容については後述する。
【0050】次にステップS2において、上記ステップS1により識別番号が採番されたメッセージを複数のデータに分割する。
【0051】次にステップS3において、分割によって得られた各々のデータにヘッダ情報をセットしてパケットを作成する。上記メッセージの分割及びパケットの作成は、図4において説明したデータ構造に従って行う。
【0052】次にステップS4において、作成された個々のパケットを送信相手先のノードに対し送信する。かかるパケット送信は非同期通信により行なわれ、送信相手先のノードは受信したパケットをバッファ管理テーブルに格納して直ちに制御を返す。
【0053】そしてステップS5において、送信メッセージに相当する全てのパケットの送信の完了をもってメッセージ送信を終了する。
【0054】ここで、本発明の特徴点に係るメッセージ識別番号採番について説明する。
【0055】図6は、メッセージ識別番号採番処理の内容を示すフローチャートである。また図7(a)及び(b)は、メッセージ識別番号の採番を概念的に示す図である。
【0056】同図において、C1は現在(カレント)のメッセージ識別番号を表し、C2は使用中のメッセージ識別番号を表している。メッセージ識別番号の採番規則は、原則的には次の通りである。すなわち、0〜65535までの番号の組のなかからいずれかの番号を循環的に採番する。すなわち“0〜65535”までの番号を順番に採番した後、再び“0”から採番する。なお、現在のメッセージ識別番号は、新たな識別番号の採番に応じてその値が更新されるカウンタ41によって表現される。
【0057】図6のフローチャートによると、先ずステップS11においてカウンタ41を+1する。ここではカウンタ41の初期値を“0”とし、ステップS11により現在のカウンタ値は“1”に変化する。
【0058】次にステップS2においてモードの判定を行う。このモードとは、後述する使用中チェック処理を行うか否かを示すものであって、同チェック処理を行う場合は“チェック”が設定され、同チェック処理を行わない場合は“ノーチェック”が設定される。ステップS2における初回のモード判定においては、モードは初期値すなわち“設定なし”となっており、したがってステップS16に移行する。
【0059】ステップS16においては、カウンタが一周するまでの時間tを計算する。すなわち図7を用いて説明した採番規則に従い、ある時点において採番されたメッセージ識別番号と同一の識別番号が採番されるまでの時間tを計算する。この時間tは、ある識別番号が採番されてから、次回の使用中チェック処理を開始するまでの特定時間を与えるものであって、上記識別番号が採番された時点から、この特定時間が経過するまでの間は、モードを“ノーチェック”とする。すなわちここでは、ステップS19においてモードを“ノーチェック”とし、続くステップS20において、上記特定時間までの時間の経過をタイマ監視部42が監視するように指示する。なお、上記時間tの計算は、ある識別番号が採番されてから次の識別番号が採番されるまでの時間Δtに基づいて行われる。すなわちここでは、t=Δt×65535を計算する。
【0060】ちなみに上記Δtは、事前に測定した値を用いても良いし、プログラムのダイナミックステップ数に基づいて計算するようにしても良い。
【0061】次に、ステップS21において、カウンタ値を返却して初回の採番を終了する。すなわちカウンタ値(“1”)がメッセージ識別番号として採番される。
【0062】図8はタイマ監視部42によるタイマ監視処理の内容を示すフローチャートである。このタイマ監視部42は、上述したようにスレッドとして構成されており、上記メッセージ識別番号採番処理と並行して動作する。また、メッセージ識別番号採番処理と当該タイマ監視処理は、上記「モード」および「(重複までの)時間t」を共有データとして参照可能となっている。
【0063】先ずステップS201において、タイマ監視処理は、上記ステップS20による監視開始指示があるまで待機しており、同開始指示を受けると、ステップS202において、共有データとして参照可能な「重複までの時間t」の値を指定してインタバルタイマをセットする。このインタバルタイマは上述したOS105内のタイマ106により実現される。そしてタイマ監視処理は、ステップS203に示すようにタイマランアウトが発生するまで待機する。
【0064】上記時間tが経過すると、インタバルタイマはタイマランアウトし、これを受けてタイマ監視処理はステップS204に移行する。ステップS204においては、上記共有データとしての「モード」を“チェック”に変更する。
【0065】ここで、上記タイマランアウトが発生した直後におけるメッセージ識別番号採番処理の内容を説明する。先ずステップS11により現在のカウンタ値が+1される。
【0066】次にステップS12においては、上記初回の採番におけるタイマ監視処理によって「モード」が“チェック”に変更されているため、ステップS13に移行する。
【0067】ステップS13においては、メッセージ識別番号の使用中チェック処理を行う。同処理は、メッセージ送信側のプロセスが受信側のプロセス(ここでは200)内の使用中チェック部(メッセージ処理部204内にあり不図示)に対して問い合わせ処理を行うことによる。
【0068】図9は、受信側の使用中チェック処理部における処理内容を示すフローチャートである。
【0069】送信相手先の使用中チェック部は、送信側のメッセージ処理部から、送信側プロセッシングエレメント識別、送信側プロセス識別、送信側カレントカウンタ値の通知を受け取る。
【0070】そしてステップS131において、上記プロセッシングエレメント識別及びプロセス識別が一致する「バッファ管理テーブルエントリ」のなかで、上記送信側カレントカウンタ値に最も近いメッセージ識別番号をもつエントリを検索する。バッファ管理テーブルの詳細は後述する。
【0071】続くステップS132において上記検索条件を満たすエントリが見つからなかった場合は、ステップS134に移行し、「Not Found 」を送信側プロセスに対して送信する。また、上記検索条件を満たすエントリが見つかった場合は、そのエントリのメッセージ識別番号を送信側プロセスに対して送信する。
【0072】このような問い合わせ処理によれば、受信側のプロセスにおいて使用中の識別番号と同一の識別番号が、送信側のプロセスにおいて重複して採番されることを禁止できる。しかしながらこの問い合わせ処理は、ネットワーク回線/バス300を介した通信処理を含むため、頻繁に行うべきではない。
【0073】図6のフローチャートに説明を戻す。
【0074】ステップS14においては、ステップS13による問い合わせ結果を判定し、「Not Found 」を受信したステップS16に移行する。また、メッセージ識別番号を受信した場合は、ステップS15に移行し、問い合わせ結果のメッセージ識別番号と同一の値にカウンタ値が変化するまでの特定時間、すなわち重複までの時間tを計算する。
【0075】上記時間tの計算は、ある識別番号が採番されてから次の識別番号が採番されるまでの時間Δtに基づいて行われる。すなわちここでは、t=Δt×(“カレントのカウンタ値”が“問い合わせ結果のメッセージ識別番号”に達するまでのカウントアップ回数)を計算する。
【0076】ちなみに上記Δtは、事前に測定した値を用いても良いし、プログラムのダイナミックステップ数に基づいて計算するようにしても良い。
【0077】次にステップS17において、時間tは十分大きいか否かを判定する。時間tが十分大きい場合は、ステップS19に移行する。また、時間tが小さい(短い)、すなわち図7(b)のような状態(問い合わせ結果の識別番号はC2)にある場合は、ステップS18に移行する。ステップS18においては、カレントのカウンタ値を、問い合わせ結果のメッセージ識別番号に変更した後、その値を+1してステップS13に移行する。これにより図7(b)において、C2の次以降の値が調べられ、C2を含めて近く重複が発生するものをスキップした値が新たに採番されるため、重複採番が回避されることになる。
【0078】このようなメッセージ識別番号採番処理によれば、所定の識別番号が採番されてから時間tが経過したとき、ネットワーク回線/バス300を介して受信側のプロセスに対し問い合わせ処理を行うことにより、受信側のプロセス200で使用中の識別番号が採番されることを禁止し、時間tが経過するまでの間は受信側のプロセス200に対する問い合わせ処理を行わないといった制御動作を実現できる。
【0079】このため、例えばノード又はネットワークの障害等により起こり得るメッセージ識別番号の重複採番を効率良く回避できる。これにより送信側のノードから送られたメッセージを受信側のノードにおいて確実に特定でき、メッセージの受け渡しに関する分散処理システムの信頼性を向上できる。
【0080】次に、メッセージ処理部44が実行するメッセージ受信処理について説明する。
【0081】図10は、メッセージ受信部44が実行するメッセージ受信処理の内容を示すフローチャートである。メッセージ受信部44は、メッセージ送受信要求部40からの要求によりメッセージに相当する複数のパケットを受信する。
【0082】受信されたパケットは、メモリ107内に確保されたバッファ内に格納される。このバッファのアドレスは、バッファ管理テーブル45により管理される。
【0083】図11は、バッファ管理テーブル45の構造を示す図である。
【0084】バッファ管理テーブル45は、複数のエントリを要素とするテーブルからなる。同図に示すようにエントリ401は、送信側プロセッシングエレメント識別402、送信側プロセス識別403、メッセージ識別番号404、パケット総数405、受信済パケット数406、そしてバッファへのポインタ407からなる。
【0085】バッファへのポインタ407は、バッファデータが格納されたバッファ領域408へのポインタである。
【0086】先ずステップS30において、当該メッセージに対応するバッファが存在するかを判定し、存在しなければステップS31において新たにバッファを確保する。ここでの判定は、パケットのヘッダ情報Hd及びバッファ管理テーブル45の内容に基づいて行われる。またバッファの確保は、メッセージ長に相当するバッファ領域を確保するとともにバッファ管理テーブル45内に新たなエントリを作成することである。
【0087】次にステップS32において、受信したパケットのデータをバッファに格納する。データの格納に際しては、バッファ管理テーブルエントリ401内の「受信済みパケット数406」を更新する。
【0088】次にステップS33において受信メッセージに相当する全てのパケットを受信したか否かを判定する。ここでは、バッファ管理テーブルエントリ401内の「パケット総数405」と、同エントリ内の「受信済みパケット数406」とを比較することによる。
【0089】全てのパケットの受信を完了すると、パケットシーケンス番号に基づいて個々の受信パケットが結合され、これにより受信メッセージが復元される。
【0090】続くステップS34において、メッセージ送受信要求部40に対し受信メッセージを渡し、ステップS35においてバッファ管理テーブルエントリ401を抹消(クリア)し、メッセージ受信処理を終了する。
【0091】以上説明した本実施形態によれば、所定の識別番号が採番されてから時間tが経過したとき、ネットワーク回線/バス300を介して受信側のプロセスに対し問い合わせ処理を行うことにより、受信側のプロセス200で使用中の識別番号が採番されることを禁止し、時間tが経過するまでの間は受信側のプロセス200に対する問い合わせ処理を行わないといったメッセージ識別番号採番に関する制御動作を実現できる。
【0092】このため、不必要に受信側のプロセスに対して問い合わせ処理が行われることを回避できる。したがって、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供でき、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供できる。
【0093】なお、本発明は上述した実施形態に限定されず、種々変形して実施可能である。
【0094】
【発明の効果】以上説明したように本発明によれば、重複を効率良く回避しながらメッセージ識別番号を採番可能な、分散処理におけるメッセージ処理方式を提供でき、メッセージ受け渡しに関する信頼性向上を図った分散処理システムを提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る分散処理システムの概略構成を示すブロック図。
【図2】メッセージ受け渡しにおけるメッセージ送信を示す概念図。
【図3】メッセージ処理部104の概略構成を示すブロック図。
【図4】送(受)信メッセージのデータ構造を示す模式図。
【図5】メッセージ送信部43が実行するメッセージ送信処理の内容を示すフローチャート。
【図6】メッセージ識別番号採番処理の内容を示すフローチャート。
【図7】メッセージ識別番号の採番を概念的に示す図。
【図8】タイマ監視部42によるタイマ監視処理の内容を示すフローチャート。
【図9】メッセージ受信側の使用中チェック処理部における処理内容を示すフローチャート。
【図10】メッセージ受信部44が実行するメッセージ受信処理の内容を示すフローチャート。
【図11】バッファ管理テーブル45の構造を示す図。
【符号の説明】
100…プロセッシングエレメント
101、102、103…プロセス
104…メッセージ処理部
105…OS
106…タイマ
107…メモリ
108…CPU
109…ネットワーク/バスインターフェース
200…プロセッシングエレメント
201、202、203…プロセス
204…メッセージ処理部
205…OS
206…タイマ
207…メモリ
208…CPU
209…ネットワーク/バスインターフェース
300…ネットワーク回線/バス
【特許請求の範囲】
【請求項1】 分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番する、分散処理におけるメッセージ処理方式において、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わないことを特徴とする分散処理におけるメッセージ処理方式。
【請求項2】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項1に記載の分散処理におけるメッセージ処理方式。
【請求項3】 前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項1に記載の分散処理におけるメッセージ処理方式。
【請求項4】 分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを伝送手段を介して送信するためのメッセージ送信手段とを具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は前記重複判定を行わないことを特徴とする分散処理のためのメッセージ処理装置。
【請求項5】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項4に記載の分散処理のためのメッセージ処理装置。
【請求項6】 前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項4に記載の分散処理のためのメッセージ処理装置。
【請求項7】 伝送手段を介して接続された複数のノード間におけるメッセージ受け渡しによる分散処理を行う分散処理システムにおいて、前記ノードは、前記分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを、前記伝送手段を介して送信するためのメッセージ送信手段と、前記送信手段から送信されたメッセージを受信するメッセージ受信手段と、を具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、前記伝送手段を介してメッセージ送信先のノードに対し問い合わせ処理を行うことにより、処理中のメッセージにおいて使用されている識別番号が採番されることを禁止し、前記特定時間が経過するまでの間は、前記メッセージ送信先のノードに対する問い合わせ処理を行わないことを特徴とする分散処理システム。
【請求項8】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項7に記載の分散処理システム。
【請求項9】 前記特定時間が前記他のノードに対する問い合わせ処理に要する時間よりも短い場合は、当該問い合わせ処理を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項7に記載の分散処理システム。
【請求項1】 分散処理に供される複数のメッセージの各々に付与される識別番号を所定の規則に従って採番する、分散処理におけるメッセージ処理方式において、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は、前記重複判定を行わないことを特徴とする分散処理におけるメッセージ処理方式。
【請求項2】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項1に記載の分散処理におけるメッセージ処理方式。
【請求項3】 前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項1に記載の分散処理におけるメッセージ処理方式。
【請求項4】 分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを伝送手段を介して送信するためのメッセージ送信手段とを具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、その時点において採番しようとする識別番号に関する重複判定を行うことにより当該識別番号が重複して採番されることを禁止し、前記特定時間が経過するまでの間は前記重複判定を行わないことを特徴とする分散処理のためのメッセージ処理装置。
【請求項5】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項4に記載の分散処理のためのメッセージ処理装置。
【請求項6】 前記特定時間が前記重複判定に要する時間よりも短い場合は、当該重複判定を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項4に記載の分散処理のためのメッセージ処理装置。
【請求項7】 伝送手段を介して接続された複数のノード間におけるメッセージ受け渡しによる分散処理を行う分散処理システムにおいて、前記ノードは、前記分散処理に供される複数のメッセージの各々に対し、所定の規則に従って識別番号を採番する採番手段と、前記採番手段により識別番号が採番された複数のメッセージを、前記伝送手段を介して送信するためのメッセージ送信手段と、前記送信手段から送信されたメッセージを受信するメッセージ受信手段と、を具備し、前記採番手段は、所定の識別番号が採番されてから特定時間が経過したとき、前記伝送手段を介してメッセージ送信先のノードに対し問い合わせ処理を行うことにより、処理中のメッセージにおいて使用されている識別番号が採番されることを禁止し、前記特定時間が経過するまでの間は、前記メッセージ送信先のノードに対する問い合わせ処理を行わないことを特徴とする分散処理システム。
【請求項8】 前記特定時間は、前記所定の規則に従ってある識別番号が採番されたのち次の識別番号が採番されるまでの時間に基づいて算出されることを特徴とする請求項7に記載の分散処理システム。
【請求項9】 前記特定時間が前記他のノードに対する問い合わせ処理に要する時間よりも短い場合は、当該問い合わせ処理を行わず、前記所定の規則とは異なる規則に従って識別番号を採番することを特徴とする請求項7に記載の分散処理システム。
【図1】
【図5】
【図2】
【図3】
【図8】
【図9】
【図10】
【図4】
【図7】
【図11】
【図6】
【図5】
【図2】
【図3】
【図8】
【図9】
【図10】
【図4】
【図7】
【図11】
【図6】
【公開番号】特開平10−200578
【公開日】平成10年(1998)7月31日
【国際特許分類】
【出願番号】特願平9−3163
【出願日】平成9年(1997)1月10日
【出願人】(396001360)株式会社ディジタル・ビジョン・ラボラトリーズ (1)
【公開日】平成10年(1998)7月31日
【国際特許分類】
【出願日】平成9年(1997)1月10日
【出願人】(396001360)株式会社ディジタル・ビジョン・ラボラトリーズ (1)
[ Back to top ]