JP3120963B2 - メッセージを転送する方法およびメッセージを転送するシステム - Google Patents

メッセージを転送する方法およびメッセージを転送するシステム

Info

Publication number
JP3120963B2
JP3120963B2 JP32555095A JP32555095A JP3120963B2 JP 3120963 B2 JP3120963 B2 JP 3120963B2 JP 32555095 A JP32555095 A JP 32555095A JP 32555095 A JP32555095 A JP 32555095A JP 3120963 B2 JP3120963 B2 JP 3120963B2
Authority
JP
Japan
Prior art keywords
message
queue
file
messages
distributed processing
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
Application number
JP32555095A
Other languages
English (en)
Other versions
JPH09167145A (ja
Inventor
弥平 村方
尚文 新谷
裕也 都築
守 宮館
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP32555095A priority Critical patent/JP3120963B2/ja
Priority to US08/766,851 priority patent/US5999964A/en
Publication of JPH09167145A publication Critical patent/JPH09167145A/ja
Application granted granted Critical
Publication of JP3120963B2 publication Critical patent/JP3120963B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の分散処理ノ
ードを連携した分散処理システムであって、それぞれの
分散処理ノードの記録媒体上にメッセージ・キュー(Me
ssage Queue)を設け、該メッセージ・キューを介して
メッセージ送信元分散処理ノードとメッセージ受信元分
散処理ノード間で転送すべきデータ(以下、メッセージ
という)転送を行う方式に属する。また、本発明は、複
数の分散処理システム上のアプリケーションプログラム
(AP)間でメッセージ・キューを介して、非同期にメッ
セージを転送する通信方式に属する。すなわち、本発明
の方式は、メッセージベースの連携、メッセージキュー
イング、非同期蓄積型通信とも呼ばれる。
【0002】
【従来の技術】従来の複数の分散処理ノードが連携した
分散処理システムにおけるプログラム間通信方式には、
会話型通信方式、X/Openの分散トランザクシ
ョン処理モデルに基づくRPC(Remote Procedure Cal
l)方式、ファイル転送方式がある。会話型通信方式
は、複数のアプリケーションプログラム(処理プログラ
ム)間を連携し、送信側のノードから受信側のノードに
メッセージの送信を通知し、これに対して応答があった
ときにメッセージを送出する方式である。RPC方式
は、一方のアプリケーションプログラムから他のアプリ
ケーションプログラムに処理を依頼し、他のアプリケー
ションプログラムで処理した結果を依頼元とのアプリケ
ーションプログラムに返送する方式である。これらの通
信方式は、いずれも送信側と受信側の双方が同時に起動
されている場合のみ通信が可能な同期型通信である。す
なわち、このような同期型通信方式は、送信側と受信側
の双方が同時に稼働していなくてはならず、自システム
が稼働していても、相手側の状態に依存して送信処理ま
たは受信処理しなければならない。
【0003】情報処理の形態は、かっては専らメインフ
レームと端末による集中型処理であったが、現在はクラ
イアントサーバ方式が主流となりつつあり、その基盤は
分散処理方式である。この分散処理方式における通信方
式として、柔軟で拡張性に富んだシステムを構築するた
め、メッセージ・キューを介して非同期に通信を行うメ
ッセージキューイング方式を活用する事例が急速に広ま
っている。この場合、分散処理の特長としてアプリケー
ション・プログラム・インタフェース(API)は標準化が
進んでおり、当該APIを使うことによって分散処理ノ
ードにおけるAP開発が同じAPIで実現でき、分散処
理のメリットを享受できる。このため独自のAPIを規
定することはオープンな分散処理システムの妨げとなる
ため避けなければならない。
【0004】非同期蓄積型通信は、上記の特徴があり、
BPR(ビジネス・プロセス・リエンジニアリング)、ワー
クフロー、移動通信分野など非同期処理が前提である分
野に対しての適用は勿論、その他既存の通信分野におい
ても通信に関する記述が容易なためプログラムの生産性
が高い、APIが標準化されつつあるなどの理由で最近
大いに注目を集めている通信方式であり、欧米を中心に
この方式を採用した分散処理システムが増加している。
この方式は、日本においてもやや遅れて普及が始まろう
としている。すなわち、一部のユーザはこのようなシス
テムを建設中であり、このようなシステムの採用を検討
中のユーザは多数に上っている。このような分散処理シ
ステムの例として、公表特許公報平5−502525号
に示されるように、並列入出力ネットワーク・ファイル・
サーバ・アーキテクチャの例がある。この例では、マイ
クロプロセッサの命令取出しと、メッセージとファイル
データの伝送との間の競合の防止を狙ったものである。
【0005】これまでの分散処理システムの実現手段は
以下の通りである。 先ず、メッセージを一旦1つの物理的なファイルで構
成されているキューと呼ぶ論理的な待ち行列に格納す
る。 転送機能が、キューにつながれたメッセージを先入れ
先出し方式(FIFO)で取出し、所定の宛先のキュー
へ送信して宛先のキューに格納する。送信方法として
は、FIFO以外にも例えば、優先度付や特定のメッセ
ージを指定して送信することも可能である。 宛先のキューに格納されたキューはキュー(待ち行
列)に最も長くつながれたメッセージから順番に取り出
される。なお、この取出しは、特定のメッセージを優先
的に取り出すことも可能とされている。 このようなシステムにおけるキューは、メッセージを保
存できる論理的な器であり、通常は磁気ディスク上のフ
ァイルで実現されている。
【0006】このような従来のキュー・アクセス方法で
は以下の2つの問題点がある。 (1)1ファイルとして扱える大きさには限界(通常は4
GB:232バイト)がある。したがって、扱える1メッ
セージの大きさの上限を大きくする(100MB程度)と
必然的に1キュー・ファイルに登録可能なメッセージの
数は少なくなる。すなわち、上記の例では40メッセー
ジとなる。 (2)メッセージを登録しまたは取り出すときには、キュ
ー・ファイルにアクセスするが、この間キュー・ファイ
ルをメッセージが占有(ロック)する。長大データを扱え
るようにするためにキュー・ファイルを物理的に同一の
大きな器で構成すると、メッセージの登録または取出し
時の占有期間が長くなり、この間にメッセージを取り出
したりまたは登録しようとするとI/Oが競合してアク
セスできなくなり、アプリケーションプログラム(A
P)が待たされる。
【0007】上述のように1ファイルとして扱える物理
ファイルの大きさには限界があり、例えば、それは大き
さを4バイトで保持する場合は4GB(232バイト)であ
。従来の方式では、物理的な1ファイルでメッセージ
・キューを構成していたが、扱う1メッセージの大きさ
が増大すると、「1メッセージの大きさ×メッセージ数」
が1ファイルに入りきらない場合が生じる。これに対処
するために、これまでは、メッセージ・キューを複数定
義し、複数のメッセージ・キューを複数のキュー・ファ
イルで実現するようにしていた。
【0008】キュー・ファイルが一つの場合、メッセー
ジを格納しまたは取り出す間はこのキュー・ファイルを
アクセスするAPが占有(ロック)しているので、このキ
ュー・ファイルからメッセージを取り出しまたは格納し
ようとしてもアクセスが競合しI/Oネックとなる問題
がある。また、長大データを扱うことができるようにす
るために物理的に器(記録媒体)を大きくしても記録媒体
が同一であるときには同様にアクセスが競合しI/Oネ
ックとなる問題がある。
【0009】
【発明が解決しようとする課題】本発明は、非同期蓄積
型の通信を新しい適用分野である長大メッセージを扱う
分野に適用させた場合の上記問題点を解消することを目
的とする。
【0010】さらに、本発明は、送信側と受信側の双方
が同時に稼働していなくても、自システムが稼働してい
ればキューを介することによって、相手側の状態に依存
せず送信処理または受信処理が可能である非同期蓄積型
通信方式にいて、長大メッセージを扱うことができる方
式を提供することを目的とする。
【0011】本発明の非同期蓄積型通信方式は、メッセ
ージ送信元は、通信内容であるメッセージをメッセージ
・キューに格納することによって処理を終了し、次に、
通信元とは独立した転送機能が、このメッセージ・キュ
ーに入れられたメッセージを取り出し送信元で予め指定
された宛先に転送して宛先のキューに格納することによ
って処理を終了し、さらに、受信元は、キューにメッセ
ージが入ったことを契機にキューからメッセージを取り
出すという3つのプロセスからなる非同期蓄積型の通信
を行う通信方式において、メッセージを格納するキュー
・ファイルの物理的な大きさによる制限(例えば、ある
キュー・ファイルが満杯になれば、別のキュー・ファイ
ルに切り替えることが必要)をなくし、且つメッセージ
をキューに格納または取り出す場合のI/Oにおける処
理の競合の低減を実現し、その場合に利用者(AP)のイ
ンタフェースを変えずに実現する方法を提供することを
目的とする。
【0012】
【課題を解決するための手段】物理的に同一の器(記録
媒体)を用いると長大データを扱う場合アクセスが競合
する問題に対して本発明では、キュー・ファイルを複数
設け、メッセージをメッセージ・キューに格納するとき
には、どのキュー・ファイルがカレントなファイルであ
るかを記憶しておくポインタであるメッセージ格納用ポ
インタを設け、該ポインタが示すキュー・ファイルにメ
ッセージを格納し、メッセージ格納後はメッセージ格納
用ポインタに次のキュー・ファイルを順番に登録するこ
とによって、順番に格納するようにした。また、メッセ
ージをキュー・ファイルから取り出す場合はどのキュー
・ファイルがカレントなファイルであるかを記憶してお
くポインタであるメッセージ取出用ポインタを設け、該
ポインタが示すキュー・ファイルからメッセージを取り
出し、取出し後は該メッセージ取出用ポインタに次のキ
ュー・ファイルを順番に登録することによって、順番に
取り出すようにした。このように構成することによっ
て、同一のキュー・ファイルに対するアクセスの競合を
減らすことができる。
【0013】上記課題を解決するために本発明は、複数
の分散処理ノードを連携した分散処理システムであっ
て、それぞれの分散処理ノードの記録媒体上にメッセー
ジ・キューを設け、該メッセージ・キューを介してメッ
セージ送信元分散処理ノードとメッセージ受信元分散処
理ノード間で転送すべきデータであるメッセージの転送
を行うメッセージ・キューのアクセス方法において、前
分散処理ノードに、メッセージを格納するメッセージ・
キューを構成する物理的な器であるキュー・ファイルを
記録媒体上に複数設けるとともに、これら複数のキュー
・ファイルをグループ化して論理的に一つのキュー・フ
ァイルであるキュー・ファイル・グループと見做して扱
い、該キュー・ファイル・グループに含まれる前記複数
のキュー・ファイルを順序付けし、メッセージを格納す
るキュー・ファイルを指すメッセージ格納用ポインタ
と、メッセージを取り出すキュー・ファイルを指すメッ
セージ取出用ポインタとを備え、メッセージをキュー・
ファイルに格納するときに、メッセージ格納用ポインタ
を参照してメッセージ格納用ポインタの指すキュー・フ
ァイルに格納するとともに、該メッセージ格納用ポイン
タの内容を次のキュー・ファイルに更新するように制御
し、メッセージをキュー・ファイルから取り出すとき
に、メッセージ取出用ポインタを参照してメッセージ取
出用ポインタの指すキュー・ファイルから取り出して受
信元に送信するとともに、該メッセージ取出用ポインタ
の内容を次のキュー・ファイルに更新するように制御す
るようにした。
【0014】また、本発明は、上記メッセージ・キュー
のアクセス方法において、キュー・ファイル・グループ
に含まれる複数のキュー・ファイルの順序付けを、1か
らnまでの番号付けによって行う。
【0015】さらに、上記メッセージ・キューのアクセ
ス方法において、メッセージのキュー・ファイルへの格
納順序は、先ず1番のキューファイルにメッセージを格
納し、次にメッセージを格納する場合はキューファイル
2に格納し、n番目のキューファイルに格納後は1番目
のキューファイルにメッセージを格納するようになされ
る。
【0016】上記メッセージ・キューのアクセス方法に
おいて、ファイル・キューの大きさを超えるメッセージ
を格納する場合は、メッセージ格納用ポインタの指すフ
ァイル・キューが満ちた時点で次のファイル・キューに
連続してメッセージを格納するとともに、メッセージ格
納用ポインタを更新するようにした。
【0017】上記メッセージ・キューのアクセス方法に
おいて、メッセージの転送を、非同期蓄積型の処理によ
って行うようにした。
【0018】本発明では、複数のキュー・ファイルをグ
ループ化して一つのキュー・ファイルと見做して扱うこ
とによって、利用者(AP)から見た場合に一つのキュー
として扱うことができるので、メッセージの大きさおよ
び数の制限をなくすことができる。
【0019】上記方式を実現する場合のAPIは従来と
同じインタフェースで実現する必要がある。以下にメッ
セージの格納、取り出し時のAPIを示す。キューにメ
ッセージを格納し、取出すためのインタフェースは、例
えばPUTおよびGETで提供する。このPUTは(キ
ュー名、メッセージ格納域、……)で構成され、GET
は(キュー名、メッセージ取出し域、……)で構成され
る。従来の方式では、キュー名とキュー・ファイル名は
1:1に対応しており、格納時は一般的にPUTで行
い、取出時はGETの形で行う。グループ定義の場合に
おいても、本発明は、従来と同じインタフェースで実現
することができる。
【0020】本発明は、先ずメッセージ格納時の関数
(PUT)において、キュー名とキュー・ファイル名が
1:n(n>1)(キュー・ファイルグループ)の場合は、
メッセージ格納用ポインタが指すキュー・ファイル名に
メッセージを格納する。なお、キュー名とキュー・ファ
イル名が1:1の場合は、従来と変わらない。また、メ
ッセージ取出し時の関数(GET)においても、キユー
名とキュー・ファイル名が1:n(n>1)(キュー・フ
ァイルグループ)の場合は、メッセージ取り出し用ポイ
ンタが指すキュー・ファイル名からメッセージを取り出
す。なお、キュー名とキュー・ファイル名が1:1の場
合は、従来と変わらない。次に、メッセージの格納によ
ってメッセージ格納用ポインタを次に進め、メッセージ
を格納するキュー・ファイル名は、該メッセージ格納用
ポインタが示すキュー・ファイルに格納する。メッセー
ジ格納用ポインタは以降も同様にサイクリックに変えて
使用する。メッセージの取出しも格納の場合と同様にメ
ッセージ取出用ポインタを順に進めることによって行わ
れる。
【0021】このようにすることによって、本発明は、
分散処理システムにおいて、非同期蓄積型の処理を可能
にする手段とし、メッセージを格納する物理的な器であ
るキュー・ファイルを記録媒体上に複数設け、それらを
グループ化し一つの論理的なキュー・ファイルであるキ
ュー・ファイル・グループと見做して扱うことにより、
一つのキュー・ファイルでは物理的な大きさの限界から
扱えなかった長大メッセージを多数扱えるようにし、更
に、メッセージをキュー・ファイルに格納する場合の格
納処理(I/O)の競合する確率を低減し、同様にキュー
・ファイルからメッセージを取り出す場合の取り出し処
理(I/O)の競合する確率を低減させ、キューの利用者
(アプリケーションプログラム)がメッセージをキューに
格納する場合、キューファイルを複数設けたことを意識
させずに一つのキューファイルへのアクセスと同様なイ
ンタフェースでアクセスできる。
【0022】
【発明の実施の形態】以下、本発明にかかるメッセージ
・キューのアクセス方法を図1〜図3を用いて説明す
る。図1は、本発明が適用される分散処理システムの構
成の一例を示している。この分散処理システムは、メッ
セージ送信元となる分散処理ノード1とメッセージ受信
元となる分散処理ノード2とがLAN,WANを介して
連繋されている。
【0023】メッセージ送信元1は、メッセージ・キュ
ー・マネージャ11と、アプリケーションプログラム
(AP)12と、送信用キュー・ファイル13とを有して
おり、メッセージ・キュー・マネージャ11は、メッセ
ージ格納機能111と、メッセージ取出機能112と、
送信機能113とを有している。送信用キュー・ファイ
ル13は、キュー名Tの所定の大きさ(例えば4GB)
の送信用キュー13Qを有している。
【0024】メッセージ受信元2は、メッセージ・キュ
ー・マネージャ21と、アプリケーションプログラム
(AP)22と、受信用キュー・ファイル24とを有して
おり、メッセージ・キュー・マネージャ21は、受信機
能214と、メッセージ格納機能215と、メッセージ
取出機能216とを有している。さらに、メッセージ受
信元2が転送機能を有するときには、上記の構成に加え
て送信用キュー23を有しており、メッセージ・キュー
・マネージャ21は、上記の機能に加えてメッセージ取
出機能211と、メッセージ格納機能212と、送信機
能213とを有している。
【0025】メッセージ送信元1のアプリケーションプ
ログラム(AP)12は、メッセージを宛先に送信する
ため制御機能であるメッセージ・キュー・マネージャ1
1が提供する関数(PUT)によって、宛先キュー名
を指定してキュー名Tの送信用キュー13Qに格納す
る。メッセージ・キュー・マネージャ11は、格納され
たメッセージを送信用キュー13Qに保存する。送信用
キュー13Qに格納されたメッセージは、メッセージ・
キュー・マネージャ11が提供する関数(GET)によ
って取り出され、送信機能113がメッセージ受信元2
の宛先キュー(受信用キュー)24Qに対してメッセー
ジを送信する。もし、宛先が動作していない場合には、
メッセージ・キュー・マネージャ11は、相手先が動作
状態になった時点でメッセージを送信する。
【0026】一方、メッセージ受信元2のメッセージ・
キュー・マネージャ21は、メッセージ送信元1からメ
ッセージが送られてくるとメッセージに付された受信用
キュー名Q1を解読して、PUTによってメッセージを
受信用キュー・ファイル24内の受信用キュー名Q1の
受信用キュー24Qに格納する。メッセージ受信元2の
アプリケーションプログラム(AP)22は、メッセー
ジを受け取るために、メッセージ・キュー・マネージャ2
1が提供する関数(GET)を発行して受信用キュー・フ
ァイル24からメッセージを取り出すため待機してい
る。メッセージ受信元2の受信機能214は、メッセー
ジ送信元1の送信機能113が送信するメッセージを受
取り、受信用キュー24Qに格納する。メッセージ受信
元2のメッセージ・キュー・マネージャ21は、受信用キ
ュー24Qにメッセージが格納されると、これを検知し
て該メッセージを受け取るために待機しているAP22
を起動する。起動されたAP22は、受信用キュー・フ
ァイル24のキュー名Q1の受信用キュー24Qからメ
ッセージを取り出し、処理を行う。
【0027】メッセージ受信元2が、さらに別の宛先へ
転送する場合は、受けたメッセージをメッセージ送信元
1と同様に処理して別の宛先へ送信する。この方式によ
れば、複数数の分散システム間でキューを介してメッセ
ージを転送することができる。このとき、各分散システ
ム上のAPは、メッセージ受信元の動作状態や、通信路
の状態が正常状態か、障害状態かなどを意識する必要が
なく、通信を行うためのプロトコルや通信のためのプロ
クラムロジックを記述する必要がなくなる。
【0028】以上のように、本発明は、複数の分散処理
ノードを連携した分散処理システムであって、それぞれ
の分散処理ノードの記録媒体上にメッセージ・キューを
設け、該メッセージ・キューを介してメッセージ送信元
分散処理ノードとメッセージ受信元分散処理ノード間で
転送すべきデータであるメッセージの転送を行うメッセ
ージ・キューのアクセス方法において、前分散処理ノー
ドに、メッセージを格納するメッセージ・キューを構成
する物理的な器であるキュー・ファイルを記録媒体上に
複数設けるとともに、これら複数のキュー・ファイルを
グループ化して論理的に一つのキュー・ファイルである
キュー・ファイル・グループと見做して扱い、該キュー
・ファイル・グループに含まれる前記複数のキュー・フ
ァイルを順序付けし、メッセージを格納するキュー・フ
ァイルを指すメッセージ格納用ポインタと、メッセージ
を取り出すキュー・ファイルを指すメッセージ取出用ポ
インタとを備え、メッセージをキュー・ファイルに格納
するときに、メッセージ格納用ポインタを参照してメッ
セージ格納用ポインタの指すキュー・ファイルに格納す
るとともに、該メッセージ格納用ポインタの内容を次の
キュー・ファイルに更新するように制御し、メッセージ
をキュー・ファイルから取り出すときに、メッセージ取
出用ポインタを参照してメッセージ取出用ポインタの指
すキュー・ファイルから取り出して受信元に送信すると
ともに、該メッセージ取出用ポインタの内容を次のキュ
ー・ファイルに更新するように制御する様にした。
【0029】また、本発明は、上記メッセージ・キュー
のアクセス方法において、キュー・ファイル・グループ
に含まれる複数のキュー・ファイルの順序付けを、1か
らnまでの番号付けによって行う。
【0030】さらに、本発明は、上記メッセージ・キュ
ーのアクセス方法において、メッセージのキュー・ファ
イルへの格納順序を、先ず1番のキューファイルにメッ
セージを格納し、次にメッセージを格納する場合はキュ
ーファイル2に格納し、n番目のキューファイルに格納
後は1番目のキューファイルにメッセージを格納するよ
うに行う。
【0031】本発明は、上記メッセージ・キューのアク
セス方法において、ファイル・キューの大きさを超える
メッセージを格納する場合は、メッセージ格納用ポイン
タの指すファイル・キューが満ちた時点で次のファイル
・キューに連続してメッセージを格納するとともに、メ
ッセージ格納用ポインタを更新するようにした。
【0032】さらに、本発明は、上記メッセージ・キュ
ーのアクセス方法において、メッセージの転送を、非同
期蓄積型の処理によって行う。
【0033】図2は、複数個のキュー・ファイルを有
し、それぞれのキュー・ファイルの送信用キュー全体を
一つのキューと見做して、キューの容量を超える大きさ
の長大メッセージを送信できるようにしたメッセージ送
元1の構成例を示し、アプリケーションプログラム
(AP)12がメッセージを複数のキューへ格納し、メ
ッセージ・キュー・マネージャ11がメッセージ受信元2
の受信用キュー24Qへ送信するためにメッセージを取
り出す方法を示している。
【0034】メッセージ・キュー・マネージャ11は、前
述のメッセージ格納機能111と、メッセージ取出機能
112と、送信機能113と、メッセージ格納用ポイン
タ117と、メッセージ取出用ポインタ118からなる
制御機能を有している。送信用キュー・ファイル13
は、キュー・ファイル名F1,F2,…,Fnが付され
た複数個のキューファイル131,132,…,13n
から構成される。各送信用キュー・ファイル131,1
32,…,13nには送信用キュー名Tが付された送信
用キュー131Q,132Q,…,13nQを備えてい
る。n個の送信用キュー131Q,132Q,…,13
nQはグループ化され、アプリケーション12には一つ
の送信用キューに見える。このグループ化されたキュー
をキュー・ファイル・グループという。キュー・ファイ
ル13は通常2次記憶媒体(DK)上に存在する。
【0035】メッセージ・キュー・マネージャ11は、メ
ッセージ41を格納する送信用キュー・ファイル名を指
すメッセージ格納用ポインタ117と、メッセージを取
り出す送信用キュー・ファイル名を指すメッセージ取出
用ポインタ118を有している。各々のポインタは、メ
ッセージの格納または取出しが終了すると、それぞれ次
の送信用キュー・ファイル名を指すように制御される。
すなわち、メッセージ・キュー・マネージャ11は、キ
ュー・ファイル・グループ13の各送信用キュー・ファ
イルをキュー・ファイル1、キュー・ファイル2、…、キ
ュー・ファイルnの様に順序付けし、1→2→…→n→
1→2→…の順にメッセージをサイクリックにキュー・
ファイルに格納したり、取り出すように制御する。
【0036】AP(利用者)12は、メッセージ受信元2
の受信用キュー名Q1を指定してPUTによって送信用
キュー・ファイル13へメッセージ41を格納する処理
をメッセージ・キュー・マネージャ11に依頼する。メッ
セージ・キュー・マネージャ11は、メッセージ格納用ポ
インタ117を参照して該ポインタが指し示す送信用キ
ュー・ファイル131Q,132Q,…,13nQのい
ずれかへメッセージを格納する。メッセージ・キュー・
マネジャ11は、メッセージ41を格納した後、次の送
信用キュー・ファイル名を指すようメッセージ格納用ポ
インタ117の内容を変更する。格納した送信用キュー
・ファイルが、順序付けした最後の送信用キュー・ファ
イル13nQであるときには、格納ポインタ117の内
容を先頭の送信用キュー・ファイル131Qに変更す
る。このようにしてサイクリックにメッセージを送信用
キュー・ファイルに格納するために本発明では、メッセ
ージ格納用ポインタ117を新たに設けた。複数個のキ
ュー・ファイルをグループとして定義する場合は、各キ
ュー・ファイルを独立にアクセス可能な別の記録媒体上
に定義することによって、格納と取出しのアクセス時の
競合を回避することができ、より効果的である。
【0037】従来、メッセージ・キュー・マネジャ11
は、論理的な送信用キュー名が一つの物理的な送信用キ
ュー・ファイル名で構成される場合は、送信用キュー名
を指定してメッセージを格納し、また、取り出していた
が、本発明では、複数個のキュー・ファイルをグループ
として定義した場合には、利用者はキュー名を指定して
メッセージを格納しまた取り出す処理を行う。この処理
によって、メッセージ・キュー・マネージャ11は、格
納用ポインタ117または取出用ポインタ118の内容
によって、所定の送信用キューへ格納または取出しを行
う。
【0038】次に、メッセージ・キュー・マネージャ1
1は、メッセージ送信元2からのメッセージ取出要求が
あったときには、取出函数(GET)をメッセージ取出
機能112へ提供する。GETを受けたメッセージ取出
機能112は、メッセージは、キュー・ファイル名F
1,F2,…,Fnのうちメッセージ取出用ポインタ1
18の指す送信用キューからメッセージを取り出す。送
信用キューから取り出したメッセージ42は、指定され
たメッセージ受信元2の受信用キューQ1へ送信機能1
13によって送信される。
【0039】メッセージ取出用ポインタ118は、次に
メッセージを取り出すキュー・ファイル名を指してお
り、メッセージを取り出すとメッセージ・キュー・マネ
ジャ11がその内容を更新して次のキュー・ファイルを
指す。メッセージを送信した送信用キュー・ファイル
が、順序付けした最後の送信用キュー・ファイル13n
Qであるときには、取出用ポインタ118の内容を先頭
の送信用キュー・ファイル131Qに変更する。また、
メッセージの取出しの順序は、メッセージ取出用ポイン
タ118によりメッセージが格納された順番に取り出す
ように制御される。
【0040】このように処理することによって、それぞ
れのキューの大きさを超えるメッセージを送信すること
ができるとともに、メッセージ・キューの大きさを適切
な大きさにできるので、I/Oが占有される時間が短く
なり、長大なメッセージのキューへの格納が全て終了し
た時点で直ちに取り出すことができ、待機時間を短くす
ることができる。
【0041】また、メッセージ・キューの大きさよりも
小さいメッセージが複数ある場合でも、一つのメッセー
ジの格納が終了すると、次のメッセージを次のメッセー
ジ・キューに格納する処理を行えるので、次のメッセー
ジの格納処理中に前のメッセージを取り出すことがで
き、待ち時間を短くすることができる。
【0042】図3は、複数個の受信用キュー・ファイル
を有し、それぞれの受信用キュー・ファイルの受信用キ
ュー全体を一つのキューと見做して、キューの容量を超
えるメッセージを受信できるようにしたメッセージ受信
元2の構成の一例を示し、メッセージ・キュー・マネージ
ャ21が長大なメッセージを複数の受信用キュー241
Q,242Q,…,24nQへ順次格納し、アプリケー
ションプログラム(AP)22がメッセージ受信元2の
受信用キュー24からメッセージを取り出す方法を示し
ている。この場合も、図2に示したメッセージ送信元1
での処理と同様に格納および取出しの処理を行う。
【0043】これによって、従来方式での「1ファイル
として扱える大きさに限界がある」の問題点は、受信用
キュー・ファイルを複数個のキュー・ファイルから構成
してグループ化してキュー・ファイル・グループとして
用いることによって、解決することができる。また、メ
ッセージを格納または取り出す場合、一つのキュー・フ
ァイルにアクセスするのでファイル、メッセージを占有
(ロック)し、長大データを扱うためメッセージが物理的
に同一の器で構成されているとアクセスが競合しI/O
ネックとなり、メッセージの格納、取出し時に処理/ア
プリケーションプログラムが待たされるという問題は、
メッセージを複数のキューにサイクリックに分散して格
納し、取り出すことにより回避される。
【0044】
【発明の効果】本願発明は、利用者が意識する送信用キ
ューまたは受信用キューを複数個のキュー・ファイルか
らなるキュー・ファイル・グループとして使用する方法
を採用することによって、メッセージ・キューが扱える
メッセージの大きさと数に事実上制限をなくすことがで
きる。
【0045】また、本発明は、メッセージへのアクセス
(GET、PUT)が各メッセージ毎に別媒体上のキュー
・ファイルへ自動的にサイクリックに切り替わる方式を
採用したので、次のメッセージをアクセスするときのI
/O待ち、ロック制御による待ちの可能性が減少し、ア
クセス時の性能が大幅に向上する。
【0046】複数個のキュー・ファイルをそれぞれ独立
にアクセス可能な別媒体上に割当てることによって、1
メッセージの量が大きくなるほど従来に比べてアクセス
性能を向上させることができる。
【0047】さらに、本発明は、利用者(アプリケーシ
ョン)にとってはこれまでの方式と同じインタフェース
(API)で統一的にアクセスすることができ、プログラ
ム作成時の負担の増加がなくなる。また、運用途中でキ
ュー・ファイルの構成を複数にした場合にも、見かけ上
のキュー・ファイルの構成を変えずにすむので、プログ
ラムの変更が不要であることから使い易いという利点を
持つ。
【図面の簡単な説明】
【図1】本発明が適用される分散処理システムの構成例
を示すシステム構成図。
【図2】本発明が適用されるメッセージ送信元のファイ
ル構成および送信するメッセージをキューへ格納し取り
出す処理を説明する構成図。
【図3】本発明が適用されるメッセージ受信元のファイ
ル構成および受信したメッセージをキューへ格納し取り
出す処理を説明する構成図。
【符号の説明】
1 メッセージの送信元 2 メッセージの受信元 11 送信用メッセージ・キュー・マネージャ 12 送信用アプリケーションプログラム(AP) 13 送信用キュー・ファイル・グループ 13Q、23Q 送信用キュー 21 受信用メッセージ・キュー・マネージャ 22 受信用アプリケーションプログラム(AP) 23 送信用キュー・ファイル・グループ 23Q 受信用キュー 24 受信用キュー・ファイル・グループ 41、42 メッセージ 111,211,215 メッセージ格納機能 112,212,216 メッセージ取出機能 113,213 送信機能 117,217 メッセージ格納用ポインタ 118,218 メッセージ取出用ポインタ 214 受信機能
フロントページの続き (72)発明者 都築 裕也 神奈川県横浜市戸塚区戸塚町5030番地 株式会社日立製作所 ソフトウェア開発 本部内 (72)発明者 宮館 守 神奈川県横浜市戸塚区戸塚町5030番地 株式会社日立製作所 ソフトウェア開発 本部内 (56)参考文献 特開 平4−149762(JP,A) 特開 平6−95844(JP,A) 特開 平2−113356(JP,A) 特開 平4−130929(JP,A) 特開 平5−265777(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 672 G06F 13/00 353

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 ネットワークを介して相互に連携した分
    散処理ノード間でメッセージを転送する方法において、アプリケーションプログラムからメッセージを受信し、 複数の記録媒体複数の送信用キューを一つのキューグ
    ループに割当て、前記受信したメッセージを前記キューグループに順序に
    従って格納することを特徴とするネットワークを介して
    相互に連携した分散処理ノード間でメッセージを転送す
    る方法。
  2. 【請求項2】 ネットワークを介して相互に連携した分
    散処理ノード間でメッセージを転送する方法において、メッセージ・キュー・マネージャからメッセージを受信
    し、 複数の記録媒体複数の受信用キューを一つのキューグ
    ループに割当て、前記受信したメッセージを前記キューグループに順序に
    従って格納することを特徴とするネットワークを介して
    相互に連携した分散処理ノード間でメッセージを転送す
    る方法。
  3. 【請求項3】 ネットワークを介して相互に連携した分
    散処理ノード間でメッセージを転送するシステムにおい
    て、 分散処理ノードに、 アプリケーションプログラムからメッセージを受信する
    手段と、 複数の記録媒体の複数の送信用キューを一つのキューグ
    ループに割当てる手段と、 前記受信したメッセージを前記キューグループに順序に
    従って格納する手段とを備えることを特徴とするネット
    ワークを介して相互に連携した分散処理ノード間でメッ
    セージを転送するシステム。
  4. 【請求項4】 ネットワークを介して相互に連携した分
    散処理ノード間でのメッセージを転送するシステムにお
    いて、 分散処理ノードに、 メッセージ・キュー・マネージャからメッセージを受信
    する手段と、 複数の記録媒体の複数の受信用キューを一つのキューグ
    ループに割当てる手段 と、 前記受信したメッセージを前記キューグループに順序に
    従って格納する手段とを備えることを特徴とするネット
    ワークを介して相互に連携した分散処理ノード間でメッ
    セージを転送するシステム。
JP32555095A 1995-12-14 1995-12-14 メッセージを転送する方法およびメッセージを転送するシステム Expired - Fee Related JP3120963B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32555095A JP3120963B2 (ja) 1995-12-14 1995-12-14 メッセージを転送する方法およびメッセージを転送するシステム
US08/766,851 US5999964A (en) 1995-12-14 1996-12-13 Method of accessing message queue and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32555095A JP3120963B2 (ja) 1995-12-14 1995-12-14 メッセージを転送する方法およびメッセージを転送するシステム

Publications (2)

Publication Number Publication Date
JPH09167145A JPH09167145A (ja) 1997-06-24
JP3120963B2 true JP3120963B2 (ja) 2000-12-25

Family

ID=18178151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32555095A Expired - Fee Related JP3120963B2 (ja) 1995-12-14 1995-12-14 メッセージを転送する方法およびメッセージを転送するシステム

Country Status (2)

Country Link
US (1) US5999964A (ja)
JP (1) JP3120963B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443377B2 (en) 2004-03-17 2013-05-14 Nec Corporation Parallel processing system running an OS for single processors and method thereof

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US6490630B1 (en) * 1998-05-08 2002-12-03 Fujitsu Limited System and method for avoiding deadlock in multi-node network
US6449646B1 (en) * 1998-10-13 2002-09-10 Aspect Communications Corporation Method and apparatus for allocating mixed transaction type messages to resources via an integrated queuing mechanism
US6658485B1 (en) * 1998-10-19 2003-12-02 International Business Machines Corporation Dynamic priority-based scheduling in a message queuing system
US6978297B1 (en) * 1998-11-12 2005-12-20 Ricoh, Co., Ltd. System and method of managing queues by maintaining metadata files having attributes corresponding to capture of electronic document and using the metadata files to selectively lock the electronic document
US6275847B1 (en) * 1999-01-07 2001-08-14 Iq Net Solutions, Inc. Distributed processing systems incorporating processing zones which communicate according to both streaming and event-reaction protocols
US6272525B1 (en) * 1999-01-07 2001-08-07 Iq Net Solutions, Inc. Distributed processing systems including processing zones which subscribe and unsubscribe to mailing lists
WO2000041053A2 (en) * 1999-01-07 2000-07-13 Iq Netsolutions, Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events
US6272524B1 (en) * 1999-01-07 2001-08-07 Iq Netsolutions Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events
US6272527B1 (en) * 1999-01-07 2001-08-07 Iq Net Solutions, Inc. Distributed processing systems incorporating nodes having processing cells which execute scripts causing a message to be sent internodally
US6272526B1 (en) * 1999-01-07 2001-08-07 Iq Netsolutions, Inc. Distributed processing systems having self-advertising cells
US6424990B1 (en) 1999-01-07 2002-07-23 Jeffrey I. Robinson Distributed processing systems incorporating a plurality of cells which process information in response to single events
US7552166B2 (en) * 1999-02-22 2009-06-23 Chack Michael A Method of queuing requests to access a communications network
JP2003500962A (ja) * 1999-05-24 2003-01-07 ヒューレット・パッカード・カンパニー 信頼性のあるマルチキャスト
US7318102B1 (en) * 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
US7150000B1 (en) * 1999-08-17 2006-12-12 Nash Controlware, Inc. Component development with autonomous and compiled components to implement and consume services with components operate in edit and run mode
AU7608300A (en) * 1999-09-24 2001-04-24 Iq Systems, Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events
US7239406B1 (en) 1999-09-30 2007-07-03 Ricoh Co., Ltd System for capturing facsimile data in an electronic document management system
US6377984B1 (en) * 1999-11-02 2002-04-23 Alta Vista Company Web crawler system using parallel queues for queing data sets having common address and concurrently downloading data associated with data set in each queue
DE60000909T2 (de) * 1999-11-12 2003-09-11 Ricoh Kk Erfassung von Facsimiledaten in einen elektronischen Dokumentverwaltungssystem
JP4375869B2 (ja) * 2000-02-03 2009-12-02 富士通株式会社 サーバ
US7103626B1 (en) 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
US7171484B1 (en) * 2000-05-24 2007-01-30 Krause Michael R Reliable datagram transport service
US7035852B2 (en) * 2000-07-21 2006-04-25 International Business Machines Corporation Implementing a message queuing interface (MQI) indexed queue support that adds a key to the index on put commit
US6718392B1 (en) 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US6883018B1 (en) * 2001-01-24 2005-04-19 Emc Corporation Scanning a message-list
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
US6977994B2 (en) * 2002-03-27 2005-12-20 Toshiba Tec Kabushiki Kaisha Portable, high performance messaging system
GB0225733D0 (en) * 2002-11-05 2002-12-11 Ibm Persistent messaging in a transaction processing environment
US20040088361A1 (en) * 2002-11-06 2004-05-06 Stuart Statman Method and system for distributing information to services via a node hierarchy
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US20050071848A1 (en) * 2003-09-29 2005-03-31 Ellen Kempin Automatic registration and deregistration of message queues
WO2005048086A2 (en) 2003-11-17 2005-05-26 Roy-G-Biv Corporation Command processing systems and methods
JP4684605B2 (ja) * 2004-09-17 2011-05-18 株式会社日立製作所 情報伝達方法及びホスト装置
US7613830B2 (en) * 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
US20060190524A1 (en) * 2005-02-22 2006-08-24 Erik Bethke Method and system for an electronic agent traveling based on a profile
US7716359B2 (en) * 2005-05-09 2010-05-11 Microsoft Corporation Method and system for providing an interface through which an application can access a media stack
US7844759B1 (en) * 2006-07-28 2010-11-30 Cowin Gregory L System, method, and computer readable medium for processing a message queue
CN100531147C (zh) * 2007-03-07 2009-08-19 华为技术有限公司 多链路捆绑协议报文分片接收方法
US9727445B2 (en) * 2013-11-09 2017-08-08 Microsoft Technology Licensing, Llc. Debugging a web application locally during development
US10609155B2 (en) 2015-02-20 2020-03-31 International Business Machines Corporation Scalable self-healing architecture for client-server operations in transient connectivity conditions
US9634962B2 (en) * 2015-04-14 2017-04-25 International Business Machines Corporation Pre-staging messages at a remote location
JP6793498B2 (ja) * 2016-08-23 2020-12-02 株式会社日立製作所 データストア装置およびデータ管理方法
CN113742035A (zh) * 2020-05-27 2021-12-03 北京沃东天骏信息技术有限公司 一种边缘任务执行方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE876025A (nl) * 1979-05-04 1979-11-05 Bell Telephone Mfg Signaleringsstelsel
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4543626A (en) * 1982-12-06 1985-09-24 Digital Equipment Corporation Apparatus and method for controlling digital data processing system employing multiple processors
JPH06187302A (ja) * 1992-12-18 1994-07-08 Fujitsu Ltd 転送要求キュー制御方式
US5440687A (en) * 1993-01-29 1995-08-08 International Business Machines Corporation Communication protocol for handling arbitrarily varying data strides in a distributed processing environment
US5581705A (en) * 1993-12-13 1996-12-03 Cray Research, Inc. Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
US5598535A (en) * 1994-08-01 1997-01-28 International Business Machines Corporation System for selectively and cumulatively grouping packets from different sessions upon the absence of exception condition and sending the packets after preselected time conditions
US5555396A (en) * 1994-12-22 1996-09-10 Unisys Corporation Hierarchical queuing in a system architecture for improved message passing and process synchronization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443377B2 (en) 2004-03-17 2013-05-14 Nec Corporation Parallel processing system running an OS for single processors and method thereof

Also Published As

Publication number Publication date
JPH09167145A (ja) 1997-06-24
US5999964A (en) 1999-12-07

Similar Documents

Publication Publication Date Title
JP3120963B2 (ja) メッセージを転送する方法およびメッセージを転送するシステム
US5613155A (en) Bundling client write requests in a server
JP3762846B2 (ja) サーバのグループに関する作業負荷管理を行うデータ処理装置および方法
US6263360B1 (en) System uses filter tree and feed handler for updating objects in a client from a server object list
US5590334A (en) Object oriented message passing system and method
KR100350141B1 (ko) 매체관리자,애플리케이션프로그램인터페이스와이를구현하는방법
US5224212A (en) Asynchronous operation in a database management system
US5734903A (en) System and method for object oriented message filtering
CA2200929C (en) Periodic process scheduling method
US5452430A (en) System and method for storing persistent and non-persistent queued data and for recovering the persistent data responsive to a system restart
CN110113420A (zh) 基于nvm的分布式消息队列管理系统
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
US20020087507A1 (en) Implementing MQI indexed queue support using coupling facility list structures
CN107888657A (zh) 低延迟分布式存储系统
JPH03126158A (ja) スケジユーリング方法及び装置
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPH0287259A (ja) 分散型ディジタルデータ処理システム
JPH11506552A (ja) pipes及びfifosを用いてマルチプロセッサ・コンピュータ・システムのファイルをアクセスする方法
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
US6330625B1 (en) System for initiating multiple read operation requests to multiple copies of a data item and identifying a first one of the requests as having the fastest response time
WO2006131440A1 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
JP3713977B2 (ja) リアルタイム分散システム
JP2697588B2 (ja) 通信タスク管理方式
JPH096695A (ja) 情報処理システムの通信方法およびプログラム間通信方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees