JP2000155693A - メッセージ制御装置 - Google Patents

メッセージ制御装置

Info

Publication number
JP2000155693A
JP2000155693A JP10328360A JP32836098A JP2000155693A JP 2000155693 A JP2000155693 A JP 2000155693A JP 10328360 A JP10328360 A JP 10328360A JP 32836098 A JP32836098 A JP 32836098A JP 2000155693 A JP2000155693 A JP 2000155693A
Authority
JP
Japan
Prior art keywords
message
thread
target object
control unit
queue buffer
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.)
Granted
Application number
JP10328360A
Other languages
English (en)
Other versions
JP3788697B2 (ja
Inventor
Hiroaki Komine
浩昭 小峰
Noriyuki Yogoshi
紀之 余越
Kazumasa Karaki
一賢 唐木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32836098A priority Critical patent/JP3788697B2/ja
Priority to US09/328,369 priority patent/US6848107B1/en
Publication of JP2000155693A publication Critical patent/JP2000155693A/ja
Application granted granted Critical
Publication of JP3788697B2 publication Critical patent/JP3788697B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】異なるプロセスに属するオブジェクト間でメッ
セージを授受するメッセージ制御装置100に関し、シス
テム全体の処理速度を早める。 【解決手段】メッセージ分配部300がメッセージ700をタ
ーゲットオブジェクトTO_i,TO_2毎に設けられたキュ
ーバッファ431及び432に分配し、スレッド制御部(図示
せず)がプロセス又はターゲットオブジェクト毎に予め
設定された最大スレッド割当数以下の複数のスレッド50
0を同時に作成して該メッセージを取り出して対応する
該ターゲットオブジェクトTO_1及びTO_2に与える。ま
た、プロセスのCPU稼働率に対応して該最大スレッド割
当数を指定可能とする。さらに、使用スレッド数が少な
いターゲットオブジェクトのスレッド割当数の一部を使
用スレッド数の多いターゲットオブジェクトの最大スレ
ッド割当数に割り振る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメッセージ制御装置
に関し、特に異なるプロセスに属するオブジェクト間で
メッセージを授受するメッセージ制御装置に関するもの
である。
【0002】オブジェクト指向技術を用いたシステムに
おいては、異なるプロセスに属するオブジェクト間の通
信はプロセス間のメッセージ(例えばリクエストメッセ
ージ)転送で行われる。各プロセスは、メッセージを転
送する順序の変更及び転送するための負荷の調整等を行
うことが要求されている。
【0003】
【従来の技術】図20は、従来のメッセージ制御装置100
の構成例(1)を示しており、このメッセージ制御装置100
は、リクエストメッセージ(以後、リクエストと略称す
ることがある)700を受信するメッセージ受信部200、リ
クエスト700の宛先であるターゲットオブジェクトTO_1
〜TO_3と共にプロセスを構成している。
【0004】メッセージ制御装置100は、メッセージ受
信部200に接続されたメッセージ分配部300及びターゲッ
トオブジェクトTO_1〜TO_3にそれぞれ対応したキューバ
ッファ431〜433で構成され、キューバッファ431〜433か
らターゲットオブジェクトTO_1〜TO_3へそれぞれスレッ
ド500_1〜500_3(符号500で総称することがある)が与
えられるようになっている。
【0005】動作において、メッセージ受信部200は
受信したリクエスト700をメッセージ分配分部300に送
る。メッセージ分配部300は、順次受信したリクエス
ト700を、リクエストR1,R2,R3,R9、リクエストR4,R
5、及びリクエストR6,R7,R8として、その宛先のター
ゲットオブジェクトTO_1〜TO_3に対応したキューバッフ
ァ431〜433に分配する。ターゲットオブジェクトTO_1
〜TO_3は、一定時間毎にキューバッファ431〜433をそれ
ぞれポーリングして、バッファリングされているリクエ
ストがあれば1つのスレッドを作成して一つずつ取り出
し実行する。
【0006】すなわち、各ターゲットオブジェクトTO_1
〜TO_3は、リクエスト700の重要性、優先度に関わらず
常にキューバッファ431〜433で先入れ先出しされたリク
エスト700を取り出し処理する。
【0007】従って、リクエストR1,R2,R3が第1の送
信元のプロセスから受信したリクエストであり、リクエ
ストR9が第2の送信元のプロセスからのリクエストであ
る場合で、第2のプロセスの優先度が第1のプロセスよ
り高い場合においても、ターゲットオブジェクトTO_1は
リクエストR1,R2,R3を処理した後でなければリクエス
トR9を処理することができない。
【0008】また、リクエストR3がリクエストR1,R2
り即応性が求められる重要なリクエストである場合で
も、リクエストR1,R2が順次処理された後でなければ処
理されず、待ち時間が多くなる。
【0009】図21は、上記の問題を解決する従来のメッ
セージ制御装置100の構成例(2)を示しており、この構成
例ではキューバッファ431〜433が無く、メッセージ分配
部300がターゲットオブジェクトTO_1,TO_2に対して複
数のスレッド500_1〜500_3及びスレッド500_4〜500_6を
与えるようになっている点が上記の構成例と異なってい
る。
【0010】動作において、メッセージ受信部200は
受信したリクエスト700をメッセージ分配部300に送る。
メッセージ分配部300は、リクエスト700であるリクエ
ストGet1,Set1,Get2毎にスレッド500_1〜500_3をその
宛先のターゲットオブジェク600_1との間に作成する。
ターゲットオブジェクトTO_1においては、Get処理部610
がリクエストGet1,Get2を同時に処理し、Set処理部620
がリクエストSet1を処理する。
【0011】同様に、メッセージ分配部300は、ターゲ
ットオブジェクトTO_2向けのリクエスト701〜703毎にス
レッド500_4〜500_6を作成し、ターゲットオブジェクト
TO_2はリクエスト701〜703を同時に処理する。
【0012】従って、このようなメッセージ制御装置10
0においては、図20の従来例におけるキューバッファに
よる待ち時間は無くなる。
【0013】
【発明が解決しようとする課題】しかしながら、全ての
リクエスト700に対してスレッド500を作成するため、同
時に作成されるスレッドの数が多くなり、プロセスにお
けるオーバヘッドを増加させて、システム全体の処理速
度が遅くなるという課題があった。
【0014】従って本発明は、異なるプロセスに属する
オブジェクト間でメッセージを授受するメッセージ制御
装置おいて、システム全体の処理速度を早めることを課
題とする。
【0015】
【課題を解決するための手段】上記の課題を解決するた
め、請求項1に係る本発明のメッセージ制御装置は、タ
ーゲットオブジェクト毎に設けられたキューバッファ
と、メッセージを該ターゲットオブジェクトに応じて該
キューバッファに分配するメッセージ分配部と、該キュ
ーバッファから該メッセージを取り出して対応する該タ
ーゲットオブジェクトに与えるべき複数のスレッドを同
時に作成するスレッド制御部とを備え、該スレッド制御
部は、プロセス内の全スレッドが処理できる該メッセー
ジの最大スレッド割当数及び現在の処理メッセージ数を
管理するスレッド管理テーブルを有し、該処理メッセー
ジ数が該最大スレッド割当数を越えたとき、該メッセー
ジの取り出しを待機することを特徴としている。
【0016】図1は、本発明のメッセージ制御装置100
の原理(1)を示しており、このメッセージ制御装置100
は、一つのプロセス内のターゲットオブジェクトTO_1,
TO_2に対応したキューバッファ431,432と、他のプロセ
スからのメッセージ700を受信するメッセージ受信部200
からメッセージ700が与えられ、このメッセージ700を宛
先の例えば該ターゲットオブジェクトTO_1に対応した該
キューバッファ431に分配するメッセージ分配部300と、
キューバッファ431からメッセージ700を取り出し作成し
たスレッド500_1を介してターゲットオブジェクトTO_1
に送るスレッド制御部(図示せず)とで構成されてい
る。このスレッド制御部はターゲットオブジェクトTO_
1,TO_2に対応して設けられている。
【0017】さらに、メッセージ制御装置100はスレッ
ド管理テーブル460を含み、このスレッド管理テーブル4
60は最大スレッド割当数部461と処理メッセージ数部462
から成っている。最大スレッド割当数部461にはメッセ
ージ制御装置100のスレッド制御部が作成することがで
きる最大のスレッド数、すなわち、1つのプロセス内で
同時に処理することができるメッセージ数が予め設定さ
れ、処理メッセージ数部462には現在処理されているメ
ッセージ数、すなわち、現在作成されているスレッド数
が設定される。
【0018】動作において、メッセージ分配部300は、
例えばターゲットオブジェクトTO_1宛のメッセージ700
をメッセージ受信部200から受け、このメッセージ700を
キューバファ431に分配する。キューバッファ431はメッ
セージ700を保持する。スレッド制御部は、キューバ
ッファ431に保持されたメッセージ700を到着順に取り出
してスレッド500_1を作成し、ターゲットオブジェクトT
O_1に与える。
【0019】このとき、スレッド制御部は、処理メッセ
ージ数部462を“1”だけインクリメントし、メッセー
ジ700がターゲットオブジェクトTO_1に受信されたとき
処理メッセージ数を“1”だけデクリメントする。同様
に、ターゲットオブジェクトTO_2に対応したスレッド制
御部も処理メッセージ数部462をインクリメント又はデ
クリメントする。
【0020】現在の処理メッセージ数部462の値≧最
大スレッド割当数部461の値であるとき、全スレッド制
御部はメッセージを取り出さずスレッドを作成しない待
機状態になる。
【0021】この結果、メッセージ制御装置100内で処
理されるメッセージ数を制限することができ、プロセス
のCPUが過大スレッドを負荷としたことによるオーバヘ
ッドになることを減らしてシステム処理効率を上げるこ
とが可能になる。
【0022】また、請求項2に係る本発明においては、
ターゲットオブジェクト毎に設けられたキューバッファ
と、メッセージを該ターゲットオブジェクトに応じて該
キューバッファに分配するメッセージ分配部と、該キュ
ーバッファから該メッセージを取り出して対応する該タ
ーゲットオブジェクトに与えるべき複数のスレッドを同
時に作成するスレッド制御部とを備え、該スレッド制御
部は、該ターゲットオブジェクトに該メッセージを与え
ることができる最大スレッド割当数及び現在の処理メッ
セージ数を各ターゲットオブジェクト毎に管理するスレ
ッド管理テーブルを有し、該処理メッセージ数が該最大
スレッド割当数を越えたとき、対応するターゲットオブ
ジェクトの該メッセージの取り出しを待機することを特
徴としている。
【0023】図2は、本発明のメッセージ制御装置100
の原理(2)を示しており、この装置150の基本的な構成は
原理(1)と同じであるが、スレッド管理テーブル460の代
わりにスレッド管理テーブル460_1及び460_2がスレッド
制御部毎に設けられている点が異なっている。また、ス
レッド管理テーブル460_1及び460_2には、各スレッド制
御部が作成可能な最大のスレッド割当数部461_1,461_2
(符号461で総称することがある)と処理している現在
のメッセージ数部462_1,462_2(符号462で総称するこ
とがある)とが設定されるようになっている。
【0024】動作においては、各スレッド制御部は、メ
ッセージ700を取り出してスレッド500を作成する毎に対
応する処理メッセージ数を“1”だけインクリメント
し、メッセージがターゲットオブジェクトに与えられる
毎に“1”だけデクリメントする。そして、処理メッセ
ージ数部462の値≧最大スレッド割当数部461の値のと
き、待機状態になる。
【0025】この結果、請求項1の場合と同様に、プロ
セスのCPUが過大スレッドを負荷としたことによるオー
バヘッドを減らして処理効率を上げることが可能にな
る。
【0026】また、請求項3に係る本発明においては、
さらに、該プロセスにおけるCPUの稼働率に対応する該
最大スレッド割当数を保持するスレッド割当管理テーブ
ルを含むスレッド割当制御部を有し、該スレッド割当制
御部が、一定時間毎に該CPU稼働率を監視し、該スレッ
ド割当管理テーブル中の該CPU稼働率に対応した該最大
スレッド割当数を該スレッド管理テーブルの該最大スレ
ッド割当数として指定することができる。
【0027】図3は本発明のメッセージ制御装置100の
原理(3)を示しており、この装置150の基本的な構成は、
図1又は図2で示した構成と同じであるが、さらに、ス
レッド割当制御部470が付加されていることが異なって
いる。
【0028】スレッド割当制御部470はスレッド割当管
理テーブル471を有し、このテーブル471にはプロセスに
おけるCPUの稼働率480に対応した該最大スレッド割当数
部461が予め設定されている。
【0029】動作においては、スレッド割当制御部470
は、一定時間毎に該CPU稼働率480を監視し、スレッド割
当管理テーブル471中の該CPU稼働率480に対応した該最
大スレッド割当数を上述した該スレッド管理テーブル46
0中の該最大スレッド割当数部461の値として指定する。
各スレッド制御部は、処理メッセージ数部462の値≧最
大スレッド割当数部461の値のとき待機状態になる。
【0030】すなわち、スレッド割当制御部470が、ス
レッド割当管理テーブル471を参照して該CPU稼働率から
最大スレッド割当数を求めて、これを該スレッド管理テ
ーブル460中の該最大スレッド割当数部461に割り当てる
ことにより、システムの負荷状態に合わせてメッセージ
制御装置100の負荷を調整することが可能となる。この
結果、プロセスのCPUが過大スレッドを負荷としたこと
によるオーバヘッドを減らして処理効率を上げることが
できる。
【0031】また、請求項4に係る本発明においては、
該キューバッファ及びスレッド制御部を管理するメッセ
ージ管理部を備え、該メッセージ管理部が、一定時間毎
に該処理メッセージ数をチェックし、該処理メッセージ
数の少ない該スレッド管理テーブルの該最大スレッド割
当数が一部を、該処理メッセージ数が多い別のターゲッ
トオブジェクトの該スレッド管理テーブルの該最大スレ
ッド割当数に割り振ることが可能である。
【0032】すなわち、該メッセージ管理部が、各スレ
ッド管理テーブルの処理メッセージ数/最大スレッド割
当数を求め、これを各スレッド制御部の稼働率とする。
そして、この稼働率の低いスレッド制御部の最大スレッ
ド割当数の一部を稼働率の高いスレッド制御部の最大ス
レッド割当数に割り振る。
【0033】この結果、スレッド制御部の最大スレッド
割当数は、稼働率が高いほど大きくなり、メッセージ制
御装置100の処理効率を上げることができる。
【0034】また、請求項5に係る本発明においては、
送信元プロセス毎に優先レベルが設定されており、該キ
ューバッファが該優先レベル毎に設けられており、該ス
レッド制御部が、該優先レベルの高いメッセージのみに
割り当てた第1のスレッド部とそれ以外の第2のスレッ
ド部とを有し、該第2のスレッド部に空きがないとき、
該優先レベルの高いメッセージのみを該第1のスレッド
部に与えることが可能である。
【0035】図4は、本発明のメッセージ制御装置100
の原理(4)を示しており、同図には、上述した例えばタ
ーゲットオブジェクトTO_1に対応したスレッド制御部が
作成できる最大スレッド割当数部461に予め設定された
割当数11個のスレッドから成るスレッド部500が示され
ている。この例ではスレッド部500は、優先レベルが高
いメッセージに対して4個の確保されたスレッドが第1
のスレッド部510として設定されおり、残りの7個の通
常のスレッドが第2のスレッド部520として設定されて
いる。
【0036】動作において、スレッド制御部は、処理メ
ッセージ数がスレッド部520のスレッド数に達していな
いとき、メッセージ700をその優先レベルに関わりな
く、通常スレッドを作成してターゲットオブジェクトTO
に与える。そして、処理メッセージ数がスレッド部520
のスレッド数に達したとき、優先レベルの高いメッセー
ジのみを取り出しスレッドをスレッド部510で作成して
ターゲットオブジェクトに与える。
【0037】この結果、優先レベルの高い送信元プロセ
スからのメッセージ700を、優先してターゲットオブジ
ェクトに与えることになる。
【0038】また、請求項6に係る本発明においては、
送信元プロセス毎に優先レベルが設定されており、また
該キューバッファが該優先レベル毎に設けられており、
該スレッド制御部が、該優先レベルの高い方のキューバ
ッファから優先して該メッセージを取り出すことができ
る。
【0039】まず、該送信元プロセス毎に優先レベルが
設定する。すなわち、各プロセスからのメッセージに
は、対応した優先レベルが設定される。さらに、この優
先レベルに対応してキューバッファが設けられている。
【0040】スレッド制御部は、優先レベルの高いキュ
ーバッファから優先してメッセージを取り出しスレッド
を作成しターゲットオブジェクトに与える。
【0041】この結果、優先レベルの高い送信元プロセ
スからのメッセージを優先して処理することがことが可
能となる。
【0042】また、請求項7に係る本発明においては、
さらに、該キューバッファを送信元プロセス毎に設ける
ことができる。
【0043】図5は、本発明のメッセージ制御装置100
の原理(5)を示しており、同図には図1に示したキュー
バッファ431及びターゲットオブジェクトTO_1のみが示
されている。キューバッファ431は、例えば送信元プロ
セス1〜nにそれぞれ対応したキューバッファ431_1〜431
_nが設定されている。
【0044】動作において、メッセージ分配部300が
(図1参照)、受信したメッセージを送信元のプロセス
1〜n毎に対応したキューバッファ431_1〜431_nに分配す
る。スレッド制御部(図示せず)は、キューバッファ43
1_1〜431_nから順次メッセージ700を取り出しスレッド5
00を作成してターゲットオブジェクトTOに与える。
【0045】この結果、各プロセスからのメッセージ70
0を均等にターゲットオブジェクトTOに送ることが可能
となる。
【0046】また、請求項8に係る本発明においては、
該メッセージに含まれるオペレーション毎に優先レベル
が設定されており、該優先レベル順に該メッセージを並
び換えるメッセージソート制御部をさらに設けることが
できる。
【0047】図6は、本発明のメッセージ制御装置100
の原理(6)を示している。同図(1)は、メッセージ700が
含む情報を示しており、この情報はメッセージ名R、キ
ューバッファ431に到着した順序x、オペレーション名
O及びその優先レベルpから成っている。
【0048】同図(2)は、キューバッファ431に保持され
ている並び換え前の到着順のメッセージ(R1〜R6)700を
示しており、各メッセージR1〜R6のオペレーションO
は、“G”,“A”,“S”,“P”,“B”,“S”であ
り、その優先レベルは、“3”,“1”,“3”,“2”,
“2”,“3”である。
【0049】動作において、メッセージソート制御部
(図示せず)は、優先レベルに従って同図(2)に示した
メッセージR1,R2,R3,R4,R5,R6の順序をオペレーシ
ョンの優先レベルPに従ってソートし、同図(3)に示すよ
うにオペレ−ション/優先レベルA1,P2,B2,G3,S3,S
3の順に並び換える。すなわち、メッセージは、メッセ
ージR2,R4,R5,R1,R3,R6の順になる。
【0050】この結果、優先レベルの高いオペレーショ
ンを含むメッセージを優先してターゲットオブジェクト
TOに与えることになる。
【0051】また、請求項9に係る本発明においては、
該メッセージにタイムスタンプを付与し、該スレッド制
御部が、該タイムスタンプが一定時間以上経過した該メ
ッセージを優先して引き出すことができる。
【0052】図7は、本発明のメッセージ制御装置100
の原理(7)を示している。同図(1)はメッセージ700が含
む情報を示しており、この情報はメッセージ名R、到着
順x及びタイムスタンプTcから成っている。同図(2)
は、キューバッファ431が保持するメッセージR20
R12,R13,R8,R15,R2を示している。これらのメッセ
ージR20,R12,R13、R8,R15,R2のタイムスタンプTcの
値“4”,“10”,“9”,“13”,“7”,“21”は、
メッセージ700がスレッド500を介してキューバッファ43
1からターゲットオブジェクトTOに与えられた後、
“1”だけカウントアップされた値を示している。
【0053】動作において、メッセージソート制御部
(図示せず)は、メッセージR2のタイムスタンプTc=21
が予め設定された値“20”を越えていることを検出し
て、同図(3)で示すようにメッセージR2をキューバッフ
ァ431の先頭に割り込ませ、メッセージR2を最優先でタ
ーゲットオブジェクトTOに送るようにする。この結果、
メッセージが少なくとも一定時間内に取り出されること
になる。
【0054】また、請求項10に係る本発明においては、
各プロセスに排他制御フラグが割り当てられており、ま
た該メッセージが排他制御情報を有しており、該スレッ
ド制御部は、取り出した該メッセージの該制御情報が設
定されているとき、該排他制御フラグを設定し、該排他
制御フラグが設定されているとき、全てのスレッド制御
部は該排他制御情報が設定された該メッセージのみ取り
出すことが可能である。
【0055】すなわち、プロセス内に排他制御フラグが
設けられ、またメッセージが排他制御情報を有してい
る。スレッド制御部は、排他制御情報が設定されている
メッセージを取り出したとき、スレッドを作成してメッ
セージをターゲットオブジェクトに与えると共に、排他
制御フラグを設定する。
【0056】この排他制御フラグが設定されている間、
全てのスレッド制御部は排他制御情報が設定されている
メッセージのみを取り出し他のメッセージは取り出さな
い。排他制御フラグは、排他制御情報が設定されており
現在、スレッドが作成されている全てのメッセージが対
応するターゲットオブジェクトで処理されたとき、その
設定が解除される。
【0057】この結果、該排他制御フラグが設定された
特定のメッセージを優先して取り出しターゲットオブジ
ェクトに与えることが可能となる。
【0058】また、請求項11に係る本発明においては、
該メッセージとしてリクエストメッセージでを用いるこ
とができる。
【0059】さらに、請求項12に係る本発明において
は、該送信元プロセスが送信元オブジェクトであっても
よい。
【0060】
【発明の実施の形態】図8は、本発明に係るメッセージ
制御装置100の実施例(1)を示しており、この実施例で
は、メッセージ制御装置100は、ターゲットオブジェク
ト別メッセージ分配部(以後、TO別メッセージ分配部と
略称する)310と、このTO別メッセージ分配部310に接続
されターゲットオブジェクトTO_1〜TO_3にリクエストメ
ッセージ700を与えるメッセージ管理部400とで構成され
ている。なお、以下の説明ではメッセージとしてリクエ
ストメッセージを一例として取り挙げるが、これに限定
されず他の種々のメッセージも適用可能である。
【0061】メッセージ管理部400は、ターゲットオブ
ジェクトTO_1〜TO_3に対応したユーザ別メッセージ分配
部410_1〜410_3(符号410で総称することがある)、こ
れらの分配部410_1〜410_3に接続されたメッセージソー
ト制御部420_1〜420_3(符号420で総称することがあ
る)、これらの制御部410_1〜410_3に接続されたキュー
バッファ431〜433、及びこれらのバッファ431〜433に接
続されたスレッド制御部440_1〜440_3(符号440で総称
することがある)で構成されている。
【0062】そして、ユーザ別メッセージ分配部410_1
〜410_3はTO別メッセージ分配部310に共通接続され、ス
レッド制御部440_1〜440_3はそれぞれターゲットオブジ
ェクトTO_1〜TO_3に接続されている。また、キューバッ
ファ431〜433はそれぞれユーザ別キューバッファ431_1
〜431_4、432_1〜432_4、及び433_1〜433_4で構成され
ている。スレッド制御部440_1〜440_3には、最大スレッ
ド割当数部461及び処理メッセージ数部462からなるスレ
ッド管理テーブル460(図2参照)が含まれており、図
8には処理メッセージ数462のみが処理メッセージ数カ
ウンタ462として例示されている。
【0063】動作において、TO別メッセージ分配部310
は、受信したリクエスト700をその宛先のターゲットオ
ブジェクトTO_1〜TO_3に対応したユーザ別メッセージ分
配部410に分配する。ユーザ別メッセージ分配部410は、
メッセージソート制御部420を介してリクエスト700を送
信元のユーザ(プロセス、オブジェクト等)毎に分配し
て例えばキューバッファ431ではユーザ別キューバッフ
ァ431_1〜431_4に与える。
【0064】そして、例えばスレッド制御部440_1は、
キューバッファ431_1〜431_4にバッファリングされてい
るリクエスト700を順次取り出しスレッド500を作成して
ターゲットオブジェクトTO_1に送ると共に、リクエスト
700を取り出す毎に処理メッセージ数カウンタ462を
“1”だけインクリメントする。処理メッセージ数カウ
ンタ462の値≧最大スレッド割当数のとき、スレッド制
御部440_1は待機状態となりリクエスト700の取り出しを
停止する。
【0065】ターゲットオブジェクトTO_1は受信した複
数のリクエスト700を同時に処理し、1つのリクエスト7
00の処理が終了したとき、これをスレッド制御部440_1
に通知する。スレッド制御部440_1は、処理メッセージ
数カウンタ462を“1”だけデクリメントし、処理メッ
セージ数カウンタ462の値<最大スレッド割当数部461の
値のとき、リクエスト700の取り出しを再開する。
【0066】この結果、過大なスレッドを作成してCPU
をオーバヘッド状態にせずにシステム全体の処理速度を
遅くすることなくメッセージの授受を行うことが可能と
なると共に、各プロセス(ユーザ)からのメッセージ70
0を均等にターゲットオブジェクトTOに送ることが可能
となる。
【0067】なお、この実施例においては、各スレッド
制御部440が、それぞれ最大スレッド割当数及び処理メ
ッセージ数から成るスレッド管理テーブル460を備え、
最大スレッド割当数と処理メッセージ数カウンタ462の
値とを比較してリクエスト700の取り出しを待機するか
否かを判定したが、これとは異なり、プロセス全体に対
して1つのスレッド管理テーブル460を設け、スレッド
制御部440が1つのリクエスト700を取り出す毎に処理メ
ッセージ数カウンタ462を“1”だけインクリメント
し、処理メッセージ数カウンタ462の値≧最大スレッド
割当数部461の値のとき全てのスレッド制御部440がリク
エスト700の取り出しを停止して待機状態にしても同様
の効果が得られる。
【0068】図9は、図8の実施例(1)におけるキュー
バッファ431_1〜431_3、スレッド制御部440及びターゲ
ットオブジェクトTO_1の動作をより詳細に示したもので
ある。ターゲットオブジェクトTO_1を宛先とするリクエ
ストR1(Get),R2(Set),R3(Act)、リクエストR4(Del),
R5(Trm),R7(Set),R9(Del)、及びリクエストR6(Get),
R8(Get)が、ユーザ別メッセージ分配部410_1(同図参
照)で送信元であるユーザ1〜3別に分配され、ユーザ
1用キューバッファ431_1〜ユーザ3用キューバッファ4
31_3にバッファリングされている。なお、リクエストR1
〜R9の添数字はリクエストの入力順番を示している(以
下同様)。
【0069】図10は、図8及び図9に示したスレッド制
御部440の動作手順例(1)を示しており、図9を参照して
以下にスレッド制御部440の動作を説明する。まず、ス
レッド制御部440は、リクエストを取り出すキューバッ
ファのユーザ番号をi=1に設定し(ステップS10)、
リクエストがあるか否かを判定する(同S11)。リクエ
ストが無い場合、ステップS13に進むが、リクエストR1
があるので、キューバッファ431_1からリクエストR1
を取り出し(同S12)、スレッドを作成してターゲット
オブジェクトTO_1に与えた後、ステップS13に進む。
【0070】ステップS13において、スレッド制御部440
は、iを1だけインクリメントし、このi(=2)>n
(n:ユーザ数“3”)であるか否かを判定する。i≦
3であるので、ステップS10に戻り、キューバッファの
ユーザ番号をi=2に設定し、リクエストR4が有るので
(同S11)、キューバッファ430_2からリクエストR4
取り出し、スレッドを作成してターゲットオブジェクト
TO_1に与える(同S12)。
【0071】以下同様にして、ステップS13,S10,S11
を経由して、キューバッファ431_3からリクエストR6
を取り出し、スレッドを作成してターゲットオブジェク
トTO_1に与え(同S12)、ステップS13に進む。ステップ
S13において、iを“1”だけインクリメントするとi
=“4”となり、i>3となる。そこで、i=1に戻し
てステップS10に戻る。
【0072】以後同様の動作を繰り返して、スレッド制
御部440は、キューバッファ431_1〜431_3から順次、リ
クエストR2,R5,R8,R3,R7,R9を取り出してターゲッ
トオブジェクトTO_1に与える。
【0073】この手順によれば、リクエストは送信元の
ユーザに関して均等に処理される。従って、キューバッ
ファをユーザ別に分けない場合と比較して、ユーザ当た
りのリクエストの待ち時間が短縮されることになる。
【0074】図11は、本発明のメッセージ制御装置100
の実施例(2)を示している。この実施例では複数のネッ
トワーク制御システムをネットワーク管理システムが管
理するネットワーク監視制御システムにおける情報管理
例を示しており、特にネットワーク管理システムにおけ
るメッセージ制御装置が、短時間に多数のリクエストを
複数のネットワーク制御システムから送信元プロセスを
構成する上位制御オブジェクトSO_1〜SO_3を介して受信
した場合を示している。
【0075】メッセージ制御装置100は、図8に示した
実施例(1)の構成要素にさらにCPUの稼働率480を入力し
スレッド割当管理テーブル471(図3参照)を有するス
レッド割当制御部470を備えている。
【0076】動作において、上位制御オブジェクトSO_1
〜SO_3からのリクエストR10,R12、リクエストR11
R19、及びリクエストR1,R3,R4,R8,R15は、メッセー
ジ分配部300(図3参照)で分配され、それぞれキュー
バッファ431〜433にバッファリングされる。スレッド割
当制御部470は、現在のCPUの稼働率、例えば80%を入
力し、スレッド割当管理テーブル471を参照して機能オ
ブジェクトであるターゲットオブジェクトTO_1〜TO_3の
最大スレッド割当数“2”,“2”,“2”を得る(図
3参照)。この割当数“2”,“2”,“2”をスレ
ッド割当制御部470は、スレッド制御部440(図8参照)
のスレッド管理テーブル460の最大スレッド割当数(図
2参照)とする。
【0077】スレッド制御部440_1〜440_3は、それぞれ
最大スレッド割当数“2”,“2”,“2”のスレッド
500を作成して、リクエストR10,R12、リクエストR11
R19、及びリクエストR1,R3をターゲットオブジェクトT
O_1,TO_2,及びTO_3に与える。そして、例えばスレッ
ド制御部440_3は、キューバッファ433がリクエストR4
R8,R15をバッファリングしているにも関わらず最大ス
レッド割当数“2”以上のスレッドを作成してリクエス
トR4,R8,R15を取り出さない。
【0078】一定時間後、スレッド割当制御部470は、
例えばCPU稼働率“20%”を入力すると、スレッド割
当管理テーブル471からターゲットオブジェクトTO_1〜T
O_3の最大スレッド割当数“12”,“9”,“8”を得て
(図3参照)、スレッド制御部440_1〜440_3(図8参
照)の最大スレッド割当数とする。
【0079】最大スレッド割当数が“8”となったスレ
ッド制御部440_3は、さらにリクエストR4,R8,R15を取
り出し、スレッド500を作成してターゲットオブジェク
トTO_3に与えることが可能となる。
【0080】すなわち、CPUの稼働率に対応した数のス
レッドを作成することにより、CPUが過大なスレッド処
理の負荷によりオーバヘッドすることなしに全体の処理
を早め、リクエストの転送速度を上げることが可能とな
る。
【0081】図12は、本発明のメッセージ制御装置にお
けるメッセージ管理部400の動作手順例を示している。
以下に、図8を参照してメッセージ管理部400の動作を
説明する。但し、ユーザはn、すなわちターゲットオブ
ジェクトTO_1〜TO_n、スレッド制御部440_1〜440_n等と
して説明する。
【0082】メッセージ管理部400は、iを初期値
“0”に設定した後、各ターゲットオブジェクトTOに対
応したスレッド管理テーブル460_1〜460_n(図2参照)
の最大スレッド割当数及び処理メッセージ数(図12の処
理メッセージ数カウンタ462の値)を読み出し、各ター
ゲットオブジェクトTO_1〜TO_nの稼働率OR=処理メッセ
ージ数/最大スレッド割当数を演算で昇順(小→大)に
ソートをする(ステップS20)。稼働率ORは、ソートさ
れた昇順にOR_1〜OR_nとする。
【0083】そして、メッセージ管理部400は、ステッ
プS21でiを“1”だけインクリメントした後、ステッ
プS22に進み、i<n(n:ターゲットオブジェクト数
+1)であるか否かを判定し、i≧nであるとき動作を
終了する。初回は、i(=1)<nであるので、ステッ
プS23に進み、最も小さい稼働率OR_1/最も大きい稼働
率OR_n-1を演算し、演算結果が一定の値“α”以上でな
いとき、ステップS24に進む。
【0084】ステップS24において、稼働率OR_1及びOR_
n-1に対応するターゲットオブジェクトが例えばそれぞ
れターゲットオブジェクトTO_1及びTO_3であるとしたと
き、ターゲットオブジェクトTO_1の未だ使われていない
未使用スレッド数の2分の1をターゲットオブジェクト
TO_3の最大スレッド割当数に割り振り、ステップS21に
戻る。
【0085】以下同様にして、OR_i/OR_(n-i)>αのと
き、稼働率の少ないターゲットオブジェクトの未使用ス
レッド数の2分の1を稼働率の大きいターゲットオブジ
ェクトの最大スレッド割当数に割り振る処理を実行す
る。
【0086】この結果、ターゲットオブジェクトに割り
当てられた、すなわちスレッド作成部に割り当てられた
最大スレッド割当数を動的に稼働率の高いターゲットオ
ブジェクトに割り振ることになり、メッセージ制御装置
内で限られた数のスレッドを効率的に使うことが可能と
なる。
【0087】図13は、本発明のメッセージ制御装置100
の実施例(3)を示しており、この実施例は図11に示した
実施例(2)と同様に複数のネットワーク制御システムか
らリクエストを受信するメッセージ制御装置100を示し
ている。
【0088】メッセージ制御装置100は、各ネットワー
ク制御システムに含まれる上位制御オブジェクトSO_1〜
SO_5からのリクエストをバッファリングして、機能オブ
ジェクトであるターゲットオブジェクトTO_1に与えるキ
ューバッファ430を含んでいる。上位制御オブジェクトS
O_1〜SO_5の中の特にオブジェクトSO_1及びSO_2には、
ユーザレベル1が設定され、他のオブジェクトSO_3〜SO
_5にはユーザレベル2が設定されている。
【0089】キューバッファ430は、オブジェクトSO_1
〜SO_5からのリクエストをバッファリングするキューバ
ッファ431_1〜431_5から成り、各オブジェクトSO_1〜SO
_5のユーザレベルに対応してキューバッファ431_1及び4
31_2がユーザレベル1用キューバッファ部430_1を構成
し、キューバッファ431_3〜431_5がユーザレベル2用キ
ューバッファ部430_2を構成している。
【0090】また、ターゲットオブジェクトTO_1には、
処理可能なリクエスト数としてユーザレベル1用に3つ
及びユーザレベル2用に7つが設定されているものとす
る。そして、キューバッファ431_1〜431_5は、それぞれ
リクエストR10,R12、リクエストR11,R19、リクエスト
R1,R3,R4,R8,R15、リクエストR2,R6,R7,R9
R 16、リクエストR5,R13,R14,R17,R18をバッファリ
ングしている。
【0091】図14は、起動時にメッセージ管理部400が
読み込む定義ファイル例を示している。同図(1)のファ
イルには、ユーザとそのユーザレベルが示されており、
ユーザである“Administrator”、“amelio”、“atar
i”、“okonomy”、“sussy”、“sundo”、…にそれぞ
れユーザレベル“1”、“2”、“2”、“2”、“2”、
“2”、…が設定されている。
【0092】同図(2)のファイルには、リクエスト名と
その優先レベル及び排他制御情報が示されており、例え
ば、リクエスト名が“Create”及び“Back_Up”の優先
レベル及び排他制御情報は、それぞれ“2”、“1”及
び“OFF”、“ON”である。
【0093】図15は、スレッド制御部440の動作例(1)を
示しており、この動作例ではメッセージ管理部400(図
8参照)が図14に示したファイルのデータを読み込んで
いる状態であり、このデータをスレッド制御部440は参
照する。また、スレッド制御部440は、ターゲットオブ
ジェクトTO_1が同時に処理可能なリクエスト数(同時リ
クエスト数)として上述したようにユーザレベル1用に
3つ及びユーザレベル2用に7つが設定されていること
を、後述する同時リクエスト数D1=3、D2=7として知
っているものとする。
【0094】図16は、図15に示したスレッド制御部440
の動作手順例(2)を示している。この手順例を概念的に
述べると、まずスレッド制御部440はユーザレベルの高
いキューバッファから順次リクエストを取り出しスレッ
ドを作成してターゲットオブジェクトTO_1に送り、作成
したスレッド数がターゲットオブジェクトTO_1が同時に
処理できるユーザレベルの高いリクエストの最大数=
“3”に達したとき、リクエストの取り出しを停止状態
にする。そして、次にユーザレベルの高いキューバッフ
ァ430_1からのリクエストの取り出し動作に移行する。
【0095】これを更に詳しく図15を参照して説明す
る。スレッド制御部440は、ステップS30でiを“0”に
初期設定してステップS31に進み、iを“1”だけイン
クリメントし、リクエスト数Pi=P1を“0”に初期設定
する。なお、リクエスト数Piはユーザレベルiのキュー
バッファから取り出したリクエスト数である。
【0096】ステップS32でスレッド制御部440は、同時
リクエスト数D1=3とリクエスト数P1を比較し、D1>P1
であるのでステップS33に進む。ユーザレベル1のキュ
ーバッファ431_1にリクエストR10(図13参照)が存在す
るので(ステップS33,S34)、このリクエストR10を取
り出しスレッドを作成してターゲットオブジェクトTO_1
に送信し(同S35)、リクエスト数P1を“1”だけイン
クリメントしたP1=1としてステップS32に戻る。
【0097】以後同様にして、スレッド制御部440は、
順次キューバッファ431_2及び431_1からリクエストR11
及びR12を取り出しスレッドを作成してターゲットオブ
ジェクトTO_1に送信する。ステップS35からS32に戻った
とき、D1(=3)≦P1(=3)であるので、ユーザレベ
ル1のリクエストの送信を待機状態にする。そして、ス
テップS31に戻り、iを“1”だけインクリメントしてi
=2とし、P2を“0”に初期設定して、ユーザレベル2
のキューバッファ431_3〜431_5からのリクエストの取り
出しを開始する。
【0098】以下同様にして、スレッド制御部440は、
順次、キューバッファ431_3〜431_5から同時リクエスト
数D2が指定する7つのリクエストR1,R2,R5,R3,R6
R13,R4(図13参照)取り出しスレッドを作成してター
ゲットオブジェクトTO_1に送信して、待機状態になる。
なお、図16に示した手順には、スレッド制御部440が同
一ユーザレベルの複数のキューバッファから、順次リク
エストを取り出す手順は省略されている。
【0099】この結果、ユーザレベル1及び2用のスレ
ッドがそれぞれ3及び7つ作成され、ターゲットオブジ
ェクトTO_1は合計10のリクエストを同時に処理する形と
なる。そして、例えば、オブジェクトTO_1が、ユーザレ
ベル1の2つのリクエストの処理を完了すると、図15に
示すように、ユーザレベル1用の2つのスレッド500_
1が待機状態になり、ユーザレベル2用のスレッド500
_2は全て実行中の状態のままである。
【0100】そこで、スレッド制御部440は、,ユ
ーザレベル1用のキューバッファ430_1からリクエスト
を取り出しユーザレベル1用のスレッド500_1の空いた
スレッドを用いてオブジェクトTO_1に送信することを開
始する。このとき、キューバッファ430_1にバッファリ
ングされているリクエストが無い場合、スレッド制御部
440は、ユーザレベル2用のキューバッファ430_2から
リクエストを取り出しユーザレベル1用のスレッド500_
1を用いて送信することはない。ただし、キューバッフ
ァ430_1にバッファリングされているリクエストがあっ
て、スレッド500_2に待機状態を含む場合には、スレッ
ド制御部440は、キューバッファ430_1のリクエストをス
レッド500_2に与えスレッドの作成を行うことができ
る。
【0101】この結果、スレッド制御部440は、ユーザ
レベルの高い順にリクエストをターゲットオブジェクト
に与えるともに、同じユーザレベルのリクエストはユー
ザの別なく均等に処理することが可能となる。
【0102】図17は、メッセージソート制御部420(図
8参照)の動作例を示しており、この動作例において
も、起動時にメッセージ管理部400(図8参照)は、図1
4に示したユーザレベル及び優先レベル定義データを読
み込んでいるものとする。
【0103】同図(1)のキューバッファ431_1には、リク
エストR1,R2,…,R4がこの順で待ち状態になってい
る。リクエストR1〜R4のオペレーション名は、それぞれ
“Create”、“Set”、“Get”及び“Terminate”であ
り、これらのオペレーションの優先レベルは、メッセー
ジ管理部400が読み込んだ図15(2)の優先レベルデータを
参照すると“2”、“3”、“3”及び“3”であることを
知ることができる。このことを同図中では符号“C2”、
“S3”、“G3”及び“T3”でそれぞれ示している。
【0104】この状態で、メッセージソート制御部420
はリクエストR5(Create)を受信すると、“Create”の優
先レベルが“2”であることを知り、リクエストR2〜R4
より優先レベルが高いのでソートを開始し、同図(2)に
示すように、リクエストR5をリクエストR1とリクエスト
R2の間に挿入するように並び換える。この結果、優先レ
ベルの高いオペレーションを含むリクエストが優先して
ターゲットオブジェクトに与えられることになる。
【0105】図18は、メッセージソート制御部420及び
スレッド制御部440(図8参照)の動作例を示してい
る。図17に示したメッセージソート制御部420のソート
動作だけでは、優先レベルの高いオペレーションのリク
エストが連続して送られてきた場合、これより優先レベ
ルの低いオペレーションを含むリクエストはさらに遅れ
て送信されることになる。
【0106】そこで、この動作例(2)では、キューバッ
ファにバッファリングされた各リクエストにタイムスタ
ンプ情報を持たせることとする。キューバッファ431_1
にバッファリングされたリクエストR20,R12,R13及びR
2の現在のタイムスタンプ情報はそれぞれ“4”、“1
0”、“9”、“20”である。
【0107】スレッド制御部440は、キューバッファ431
_1〜431_3の中からリクエストを取り出す毎に各リクエ
ストR20〜R2のタイムスタンプ情報を“1”だけカウン
トアップし、このタイムスタンプ情報が一定の値、例え
ば“21”以上になったリクエストを探索する。そして、
この例ではスレッド制御部440は、リクエストR2を検
出し、その優先レベルを強制的に“1”とする。そし
て、メッセージソート制御部420に対してソートを要
求する。
【0108】メッセージソート制御部420は、優先レ
ベル順にリクエストR20〜R2をソートする。この結果、
優先レベルの高いリクエストR2がリクエストR20の前に
挿入されることになり、一定時間以上待たされたリクエ
ストR2が優先的にターゲットオブジェクトTO_1に送出さ
れることになる。
【0109】図19は、スレッド制御部440(図8参照)
の動作例(2)を示しており、この動作例ではメッセージ
管理部400が排他制御フラグ490を有し、各リクエストは
排他制御情報を有している。すなわち、スレッド制御部
440は、メッセージ管理部400が読み込んだ優先レベル定
義情報(図14(2)参照)を参照することにより各リクエ
ストのオペレーヨンに対応した排他制御情報のオン/オ
フ状態を知ることができる。また、この動作例では、図
17で示したようにメッセージソート制御部420は、入力
したリクエストをそのオペレージョンの優先レベルに従
ってソートするものとする。
【0110】同図において、TO別キューバッファ431に
は、図17のキューバッファ431_1と同様にリクエストR
1(C2),R2(S3),R3(G3),R4(T3)がバッファリングされ
ているものとする。これらのリクエストの優先レベル
は、上述したように“2”、“3”、“3”及び“3”であ
り、排他制御情報は全て“オフ”(図14(2)参照)あ
る。
【0111】例えば、メッセージソート制御部420にリ
クエストR5(Back_Up)入力されと、メッセージソート制
御部420は、リクエストR5の優先レベルが“1”である
ことを知り(図14(2)参照)、リクエストR5をリクエス
トR1の前に挿入するようにソートする。
【0112】スレッド制御部440_1はリクエストR5を取
り出しスレッドを作成して送出する。このとき、リクエ
ストR5のオペレーション“Back_Up”の排他制御情報が
“オン”であることを知り(図14(2)参照)、排他制御
フラグ490を設定する。この排他制御フラグ490が設定さ
れているとき、全てのスレッド制御部440_1〜440_3は、
排他制御情報が設定されているリクエストのみを取り出
し送出する。
【0113】この結果、優先レベルの高い特定のリクエ
ストのみを最優先でターゲットオブジェクトに送出する
ことが可能となる。
【0114】
【発明の効果】以上説明したように、本発明に係るメッ
セージ制御装置によれば、メッセージ分配部がメッセー
ジをターゲットオブジェクト毎に設けられたキューバッ
ファに分配し、スレッド制御部が、プロセス又はターゲ
ットオブジェクト毎に予め設定された最大スレッド割当
数以下の複数のスレッドを同時に作成して該メッセージ
を取り出し対応する該ターゲットオブジェクトに与える
ように構成したので、システム全体の処理速度を早める
ことが可能となる。
【0115】また、プロセスのCPU稼働率に対応して該
最大スレッド割当数を指定するようにしたこと及び使用
スレッド数が少ないターゲットオブジェクトのスレッド
割当数の一部を使用スレッド数の多いターゲットオブジ
ェクトの最大スレッド割当数割り振るようにしたことに
よりCPUが過大スレッドを負荷としたことによるオーバ
ヘッドを減らして処理効率を上げることができる。
【0116】さらに、プロセル毎にレベルを設定するこ
と、メッセージのオペレーション毎に優先レベルを設定
すること、又は排他制御フラグを設定することで特定の
メッセージを優先してターゲットオブジェクトに与える
ことが可能となる。
【図面の簡単な説明】
【図1】本発明に係るメッセージ制御装置の原理(1)を
示したブロック図である。
【図2】本発明に係るメッセージ制御装置の原理(2)を
示したブロック図である。
【図3】本発明に係るメッセージ制御装置の原理(3)を
示したブロック図である。
【図4】本発明に係るメッセージ制御装置の原理(4)を
示したブロック図である。
【図5】本発明に係るメッセージ制御装置の原理(5)を
示したブロック図である。
【図6】本発明に係るメッセージ制御装置の原理(6)を
示したブロック図である。
【図7】本発明に係るメッセージ制御装置の原理(7)を
示したブロック図である。
【図8】本発明に係るメッセージ制御装置の実施例(1)
を示したブロック図である。
【図9】本発明に係るメッセージ制御装置におけるユー
ザ別リクエストの処理手順を示した図である。
【図10】本発明に係るメッセージ制御装置におけるスレ
ッド制御部の動作手順例(1)を示したフローチャート図
である。
【図11】本発明に係るメッセージ制御装置の実施例(2)
を示したブロック図である。
【図12】本発明に係るメッセージ制御装置におけるメッ
セージ管理部の動作手順例を示したフローチャート図で
ある。
【図13】本発明に係るメッセージ制御装置の実施例(3)
を示したブロック図である。
【図14】本発明に係るメッセージ制御装置で用いられる
ユーザレベル及び優先レベル定義テーブル例を示した図
である。
【図15】本発明に係るメッセージ制御装置におけるスレ
ッド制御部の動作例(1)を示したブロック図である。
【図16】本発明に係るメッセージ制御装置におけるスレ
ッド制御部の動作手順例(2)を示したフローチャート図
である。
【図17】本発明に係るメッセージ制御装置におけるメッ
セージソート制御部の動作例を示したブロック図であ
る。
【図18】本発明に係るメッセージ制御装置におけるメッ
セージソート制御部及びスレッド制御部の動作例を示し
たブロック図である。
【図19】本発明に係るメッセージ制御装置におけるスレ
ッド制御部の動作例(2)を示したブロック図である。
【図20】従来のメッセージ制御装置の構成例(1)を示し
たブロック図である。
【図21】従来のメッセージ制御装置の構成例(2)を示し
たブロック図である。
【符号の説明】
100 メッセージ制御装置 200 メッセージ受信部 300 メッセージ分配部 310 TO別メッセージ
分配部 400 メッセージ管理部 410,410_i ユーザ別
メッセージ分配部 420,420_i メッセージソート制御部 430〜433,430_i〜433_i キューバッファ 440,440_i スレッド制御部 460,460_i スレッド
管理テーブル 461,461_i 最大スレッド割当数部 462,462_i 処理メッセージ数部、処理メッセージ数カ
ウンタ 470 スレッド割当制御部 471 スレッド割当管理
テーブル 480 CPU稼働率 490 排他制御フラグ 500,500_i,510,520 スレッド TO,TO_i ターゲットオブジェクト SO_i 制御オ
ブジェクト 610 Get処理部 620 Set処理部 700〜703,R1〜R20 メッセージ,リクエストメッセー
ジ iは正の整数 図中、同一符号は同一又は相当部分を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 唐木 一賢 石川県金沢市広岡3丁目1番1号 富士通 北陸通信システム株式会社内 Fターム(参考) 5B098 GA04 GA05 GB01 GC08 GC16 GD02 GD14 GD15

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】異なるプロセスに属するオブジェクト間で
    メッセージ授受するメッセージ制御装置おいて、 ターゲットオブジェクト毎に設けられたキューバッファ
    と、 該メッセージを該ターゲットオブジェクトに応じて該キ
    ューバッファに分配するメッセージ分配部と、 該キューバッファから該メッセージを取り出して対応す
    る該ターゲットオブジェクトに与えるべき複数のスレッ
    ドを同時に作成するスレッド制御部と、 を備え、 該スレッド制御部は、該プロセス内の全スレッドが処理
    できる該メッセージの最大スレッド割当数及び現在の処
    理メッセージ数を管理するスレッド管理テーブルを有
    し、該処理メッセージ数が該最大スレッド割当数を越え
    たとき、該メッセージの取り出しを待機することを特徴
    としたメッセージ制御装置。
  2. 【請求項2】異なるプロセスに属するオブジェクト間で
    メッセージを授受するメッセージ制御装置おいて、 ターゲットオブジェクト毎に設けられたキューバッファ
    と、 該メッセージを該ターゲットオブジェクトに応じて該キ
    ューバッファに分配するメッセージ分配部と、 該キューバッファから該メッセージを取り出して対応す
    る該ターゲットオブジェクトに与えるべき複数のスレッ
    ドを同時に作成するスレッド制御部と、 を備え、 該スレッド制御部は、該ターゲットオブジェクトに該メ
    ッセージを与えることができる最大スレッド割当数及び
    現在の処理メッセージ数を各ターゲットオブジェクト毎
    に管理するスレッド管理テーブルを有し、該処理メッセ
    ージ数が該最大スレッド割当数を越えたとき、対応する
    ターゲットオブジェクトの該メッセージの取り出しを待
    機することを特徴としたメッセージ制御装置。
  3. 【請求項3】請求項1又は2において、 さらに、該プロセスにおけるCPUの稼働率に対応する該
    最大スレッド割当数を保持するスレッド割当管理テーブ
    ルを含むスレッド割当制御部を有し、 該スレッド割当制御部が、一定時間毎に該CPU稼働率を
    監視し、該スレッド割当管理テーブル中の該CPU稼働率
    に対応した該最大スレッド割当数を該スレッド管理テー
    ブルの該最大スレッド割当数として指定することを特徴
    としたメッセージ制御装置。
  4. 【請求項4】請求項2において、 該キューバッファ及びスレッド制御部を管理するメッセ
    ージ管理部を備え、該メッセージ管理部が、一定時間毎
    に該処理メッセージ数をチェックし、該処理メッセージ
    数の少ない該スレッド管理テーブルの該最大スレッド割
    当数が一部を、該処理メッセージ数が多い別のターゲッ
    トオブジェクトの該スレッド管理テーブルの該最大スレ
    ッド割当数に割り振ることを特徴とするメッセージ制御
    装置。
  5. 【請求項5】請求項1又は2において、 送信元プロセス毎に優先レベルが設定されており、該キ
    ューバッファが該優先レベル毎に設けられており、該ス
    レッド制御部が、該優先レベルの高いメッセージのみに
    割り当てた第1のスレッド部とそれ以外の第2のスレッ
    ド部とを有し、該第2のスレッド部に空きがないとき、
    該優先レベルの高いメッセージのみを該第1のスレッド
    部に与えることを特徴としたメッセージ制御装置。
  6. 【請求項6】請求項1又は2において、 送信元プロセス毎に優先レベルが設定されており、また
    該キューバッファが該優先レベル毎に設けられており、
    該スレッド制御部が、該優先レベルの高い方のキューバ
    ッファから優先して該メッセージを取り出すことを特徴
    としたメッセージ制御装置。
  7. 【請求項7】請求項1又は2において、 該キューバッファが、さらに、送信元プロセス毎に設け
    られていることを特徴としたメッセージ制御装置。
  8. 【請求項8】請求項1又は2において、 該メッセージに含まれるオペレーション毎に優先レベル
    が設定されており、該優先レベル順に該メッセージを並
    び換えるメッセージソート制御部をさらに設けたことを
    特徴とするメッセージ制御装置。
  9. 【請求項9】請求項1又は2において、 該メッセージにタイムスタンプを付与し、該スレッド制
    御部が、該タイムスタンプが一定時間以上経過した該メ
    ッセージを優先して引き出すことを特徴としたメッセー
    ジ制御装置。
  10. 【請求項10】請求項1又は2において、 各プロセスに排他制御フラグが割り当てられており、ま
    た該メッセージが排他制御情報を有しており、該スレッ
    ド制御部は、取り出した該メッセージに該制御情報が設
    定されているとき、該排他制御フラグを設定し、該排他
    制御フラグが設定されているとき、全てのスレッド制御
    部は該排他制御情報が設定された該メッセージのみ取り
    出すことを特徴としたメッセージ制御装置。
  11. 【請求項11】請求項1又は2において、 該メッセージがリクエストメッセージであることを特徴
    としたメッセージ制御装置。
  12. 【請求項12】請求項5乃至7のいずれかにおいて、 該送信元プロセスが送信元オブジェクトであることを特
    徴としたメッセージ制御装置。
JP32836098A 1998-11-18 1998-11-18 メッセージ制御装置 Expired - Fee Related JP3788697B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32836098A JP3788697B2 (ja) 1998-11-18 1998-11-18 メッセージ制御装置
US09/328,369 US6848107B1 (en) 1998-11-18 1999-06-09 Message control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32836098A JP3788697B2 (ja) 1998-11-18 1998-11-18 メッセージ制御装置

Publications (2)

Publication Number Publication Date
JP2000155693A true JP2000155693A (ja) 2000-06-06
JP3788697B2 JP3788697B2 (ja) 2006-06-21

Family

ID=18209385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32836098A Expired - Fee Related JP3788697B2 (ja) 1998-11-18 1998-11-18 メッセージ制御装置

Country Status (2)

Country Link
US (1) US6848107B1 (ja)
JP (1) JP3788697B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048086A2 (en) 2003-11-17 2005-05-26 Roy-G-Biv Corporation Command processing systems and methods
JP2006285514A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd 情報処理装置
JP2008027344A (ja) * 2006-07-25 2008-02-07 Nec Access Technica Ltd オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法
JP2008234024A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd バッチ処理プログラム,バッチ処理方法及びバッチ処理装置
US7853645B2 (en) 1997-10-07 2010-12-14 Roy-G-Biv Corporation Remote generation and distribution of command programs for programmable devices
JP2011070636A (ja) * 2009-08-27 2011-04-07 Nippon Telegr & Teleph Corp <Ntt> データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US8102869B2 (en) 2003-09-25 2012-01-24 Roy-G-Biv Corporation Data routing systems and methods
WO2013171854A1 (ja) * 2012-05-16 2013-11-21 株式会社日立製作所 計算機、スレッド割当管理方法及びプログラム
WO2022172365A1 (ja) * 2021-02-10 2022-08-18 日本電信電話株式会社 リソース制御装置、リソース制御システム、および、リソース制御方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131078A1 (en) * 1999-10-27 2010-05-27 Brown David W Event driven motion systems
US8032605B2 (en) * 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US7904194B2 (en) * 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
JP3975703B2 (ja) * 2001-08-16 2007-09-12 日本電気株式会社 情報処理システムにおける優先実行制御方法及びその装置並びにプログラム
US20070022194A1 (en) * 2003-09-25 2007-01-25 Brown David W Database event driven motion systems
US20050262055A1 (en) * 2004-05-20 2005-11-24 International Business Machines Corporation Enforcing message ordering
US8187883B2 (en) * 2005-10-21 2012-05-29 Wisconsin Alumni Research Foundation Method and system for delivering nucleic acid into a target cell
US7613281B2 (en) * 2005-12-13 2009-11-03 Sap Ag Monitoring a response time for a user request
JP5509564B2 (ja) * 2008-09-30 2014-06-04 富士通株式会社 メッセージ送信方法及びプログラム
CN103618586B (zh) * 2013-11-07 2017-07-28 华为技术有限公司 一种发送响应帧的方法及装置
US11055280B2 (en) * 2017-11-27 2021-07-06 Snowflake Inc. Batch data ingestion in database systems
CN110515749B (zh) * 2019-08-30 2022-06-24 深圳乐信软件技术有限公司 信息发送的队列调度的方法、装置、服务器和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0397354A (ja) * 1989-09-11 1991-04-23 Nec Corp メッセージ送信制御装置
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法
JPH076043A (ja) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp マルチスレッド・サーバ
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
JPH08166929A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd 共用資源排他制御システム
JPH08511120A (ja) * 1993-12-30 1996-11-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理システム及び待ち行列管理方法
JPH0969053A (ja) * 1995-08-31 1997-03-11 Toshiba Corp メッセージ受信機構に於けるマルチスレッド制御方式及びキューイング方式
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH051163A (ja) 1991-06-26 1993-01-08 Nok Corp 透明アクリルゴム成形品の表面処理方法
US5430850A (en) 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
US5752031A (en) * 1995-04-24 1998-05-12 Microsoft Corporation Queue object for controlling concurrency in a computer system
US5828881A (en) * 1995-11-09 1998-10-27 Chromatic Research, Inc. System and method for stack-based processing of multiple real-time audio tasks
US5826081A (en) 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
JPH1049381A (ja) * 1996-07-04 1998-02-20 Internatl Business Mach Corp <Ibm> 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0397354A (ja) * 1989-09-11 1991-04-23 Nec Corp メッセージ送信制御装置
JPH076043A (ja) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp マルチスレッド・サーバ
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法
JPH08511120A (ja) * 1993-12-30 1996-11-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理システム及び待ち行列管理方法
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
JPH08166929A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd 共用資源排他制御システム
JPH0969053A (ja) * 1995-08-31 1997-03-11 Toshiba Corp メッセージ受信機構に於けるマルチスレッド制御方式及びキューイング方式
JPH09244984A (ja) * 1996-03-08 1997-09-19 Nippon Telegr & Teleph Corp <Ntt> イベント順序補正方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853645B2 (en) 1997-10-07 2010-12-14 Roy-G-Biv Corporation Remote generation and distribution of command programs for programmable devices
US8102869B2 (en) 2003-09-25 2012-01-24 Roy-G-Biv Corporation Data routing systems and methods
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
WO2005048086A2 (en) 2003-11-17 2005-05-26 Roy-G-Biv Corporation Command processing systems and methods
EP1690173A2 (en) * 2003-11-17 2006-08-16 Roy-G-Biv Corporation Command processing systems and methods
EP1690173A4 (en) * 2003-11-17 2010-04-21 Roy G Biv Corp COMMAND PROCESSING SYSTEMS AND METHODS
JP4564390B2 (ja) * 2005-03-31 2010-10-20 東芝ストレージデバイス株式会社 情報処理装置
JP2006285514A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd 情報処理装置
JP2008027344A (ja) * 2006-07-25 2008-02-07 Nec Access Technica Ltd オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法
JP2008234024A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd バッチ処理プログラム,バッチ処理方法及びバッチ処理装置
JP2011070636A (ja) * 2009-08-27 2011-04-07 Nippon Telegr & Teleph Corp <Ntt> データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム
WO2013171854A1 (ja) * 2012-05-16 2013-11-21 株式会社日立製作所 計算機、スレッド割当管理方法及びプログラム
WO2022172365A1 (ja) * 2021-02-10 2022-08-18 日本電信電話株式会社 リソース制御装置、リソース制御システム、および、リソース制御方法

Also Published As

Publication number Publication date
JP3788697B2 (ja) 2006-06-21
US6848107B1 (en) 2005-01-25

Similar Documents

Publication Publication Date Title
JP2000155693A (ja) メッセージ制御装置
US6922408B2 (en) Packet communication buffering with dynamic flow control
US5944778A (en) Periodic process scheduling method
US6434631B1 (en) Method and system for providing computer storage access with quality of service guarantees
KR101006260B1 (ko) 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법
US6185221B1 (en) Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
JP3691515B2 (ja) オペレーティングシステムにおけるイベント分配装置及び方法
JP2504377B2 (ja) デ―タ・パケットを貯蔵する方法及び装置
USRE38134E1 (en) System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally
US5577035A (en) Apparatus and method of processing bandwidth requirements in an ATM switch
KR19990087752A (ko) 효율적인 출력 요구 패킷 스위치와 방법
US20090043742A1 (en) Method and system for off-loading user queries to a task manager
AU2003218229B2 (en) Packet scheduling mechanism
JPH05216842A (ja) 資源管理装置
US11310164B1 (en) Method and apparatus for resource allocation
CA2399186C (en) Data transfer apparatus and data transfer method
CN113626221B (zh) 一种消息入队方法及装置
JP4072315B2 (ja) パケットスイッチ
JP2904483B2 (ja) 周期的プロセスのスケジューリング方法
US7086059B2 (en) Throttling queue
CN111756586A (zh) 一种数据中心网络中基于优先级队列的公平带宽分配方法、交换机及可读存储介质
JP2004178031A (ja) 資源配信方法及びシステム
CN113553361A (zh) 资源管理方法及装置
JPH0744505A (ja) 並列計算機における負荷分散方法
US20030185227A1 (en) Secondary queue for sequential processing of related queue elements

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060123

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: 20060322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060323

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120407

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130407

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140407

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees