JP5088234B2 - メッセージ紐付け処理装置、方法及びプログラム - Google Patents

メッセージ紐付け処理装置、方法及びプログラム Download PDF

Info

Publication number
JP5088234B2
JP5088234B2 JP2008135002A JP2008135002A JP5088234B2 JP 5088234 B2 JP5088234 B2 JP 5088234B2 JP 2008135002 A JP2008135002 A JP 2008135002A JP 2008135002 A JP2008135002 A JP 2008135002A JP 5088234 B2 JP5088234 B2 JP 5088234B2
Authority
JP
Japan
Prior art keywords
message
processing
distribution
unit
transaction
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
JP2008135002A
Other languages
English (en)
Other versions
JP2009282807A (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.)
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 JP2008135002A priority Critical patent/JP5088234B2/ja
Priority to US12/357,977 priority patent/US8533334B2/en
Publication of JP2009282807A publication Critical patent/JP2009282807A/ja
Application granted granted Critical
Publication of JP5088234B2 publication Critical patent/JP5088234B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Description

本発明は、メッセージの紐付け処理を並列化するための技術に関する。
電子商取引など複数階層のサーバに渡ってメッセージが交換され処理が進行するシステムでは、大量のメッセージを高速に処理するために、複数のサーバを使った並列処理が不可欠である。例えば、図1にシステムの一例を示す。ネットワーク1には、複数のユーザ端末3a及び3bが接続されており、さらに、ユーザ端末3a及び3bからのリクエストをWebサーバのいずれかに負荷分散させるように分配する分配装置51を介してWebサーバ61乃至64も接続されている。Webサーバ61は、さらに1又は複数のアプリケーションサーバ71や同じく1又は複数のDBサーバ81及び83などにもバックグランドで接続されている。このようなシステムでは、Webサーバ61乃至64で受信されたリクエスト毎に、当該リクエストに必要となる処理をアプリケーションサーバ71に要求して処理結果を得たり、リクエストに必要なDB参照・更新などをDBサーバ81及び83に要求して処理結果を得たりして、サーバ間で複数のメッセージを交換して処理が行われてゆく。
なお、1リクエストの応答に必要なメッセージについては、メッセージに含まれるキーワード等によって1つのトランザクションとして認識される。例えば、以下のようなメッセージ群が存在する場合を考える。
msg1a(TagA=10,...)
msg1b(TagA=10,...)
msg1c(TagA=10,TagB=X...)
msg1d(TagB=X,...)
このような例の場合、TagAという共通するタグを有し且つTagAの値が同一のため、msg1a、msg1b及びmsg1cについては同一のトランザクションに係るメッセージとして認識できる。一方、msg1dについてはTagAを有していないので、この点からするとmsg1a等と同一のトランザクションに係るメッセージでないと判断される。しかし、msg1dとmsg1cとはTagBという共通のタグを有しており且つTagBの値「X」が同一であるので、msg1cとmsg1dは同一のトランザクションに係るメッセージであると判断できる。このようにTagAに係るメッセージのグループと、TagBに係るメッセージのグループとでは重複するメッセージが存在するので、上で列挙したmsg1a乃至msg1dは同一のトランザクションに係るメッセージであると特定することができる。本願では、このような同一トランザクションに係るメッセージを特定する技術については既に存在するものとする。そして、各メッセージには、トランザクションID又はそれに相当するデータ(キーワードやタグの値など)が含まれており、このトランザクションID又はそれに相当するデータによって、何れのトランザクションに係るメッセージであるかが特定されるものとする。本願では、トランザクションID又はそれに相当するデータについては、「トランザクションID」として総称するものとする。上で述べた例では、例えばTagAの値「10」をトランザクションIDとして用いるようにしても良い。
このようなシステムの挙動監視やリクエスト遅延問題を解析するために、メッセージ紐付け処理が行われる。例えばトランザクションが2つ存在し、それぞれa乃至fの6つのメッセージが含まれる場合、図2に示すように(例えばmsg2dは、トランザクション2の4番目のメッセージを表す)、メッセージの出現は順番不定である。すなわち、トランザクション毎に分かれて出現するわけではなく混ざっており、またトランザクション内のメッセージも順番が入れ替わることもある。メッセージ紐付け処理は、図2に示すようなメッセージ群を、トランザクション毎に分け、さらにトランザクションに属するメッセージを取り揃える処理である。すなわち、図3(a)に示すように、トランザクション1に属するメッセージmsg1a乃至msg1fを分別して取り揃え、図3(b)に示すように、トランザクション2に属するメッセージmsg2a乃至msg2fを分別して取り揃える。
なお、分散トランザクション処理システムにおいて、処理側システムでリカバリ処理が失敗したときにもデータの整合性が保たれるようにする技術が存在する。具体的には、トランザクション振り分け処理部はトランザクションが自システム内で処理可能かどうかを判断して自システムまたは他システムに振り分け、トランザクション実行制御部は振り分けられたトランザクションの実行を制御する。トランザクション処理制御部は、処理側システムでトランザクションが完了したときに互いの転送情報記憶領域の転送情報のクリア要求を発行するとともに、処理側システムがシステムダウン後に再立ち上げした場合のトランザクション処理を保証するために、通信パスが張り直された後に依頼側システムが処理側システムに対しトランザクションの状況を問い合わせ、必要に応じて転送情報の再転送を行う。しかし、トランザクションを構成するメッセージを相互に関連付ける処理は行われていない。
また、障害に対して適切な処理を自動的に行う技術が存在する。具体的には、バッファメモリに常駐する多重処理実行状況テーブルは、第1次〜第n次処理でのユーザプログラムの実行開始時、正常終了時、異常終了時に対応するフラグが更新される。また、連続実行プログラムは、利用者が自動復旧させたい時刻を設定する機能を有し、システムタイマで常に時間を確認する。設定した時刻になったら連続実行プログラムは、多重処理実行状況テーブルを参照しにいく。テーブル上に異常終了のフラグが検出された場合、異常終了の情報を連続実行プログラムが判断して、リカバリ・プログラムの起動がかかり、自動復旧を行なう。次に、リカバリ・プログラムが終了したときに多重処理実行状況テーブルの異常終了フラグを正常終了に書き換える。この技術では、構成変更に対して即時に対応することができるようにはなっていない。
特開平11−53323号公報 特開平5−61697号公報
上で述べたようなメッセージ紐付け処理は負荷が高いため並列化させる場合があるが、単に並列化を行う場合には以下のような問題がある。
例えば図4に示すように、メッセージ振分け部が、トランザクション1及び4を担当する紐付けサーバ1に、トランザクション1及び4に属するメッセージを割り振り、トランザクション3、6及び7を担当する紐付けサーバ2に、トランザクション3、6及び7に属するメッセージを割り振り、トランザクション2及び5を担当する紐付けサーバ3に、トランザクション2及び5に属するメッセージを割り振ることを想定する。ここで、紐付けサーバ3を動的に停止させなければならない場合には、メッセージ振分け部で振分けルールを変更して、トランザクション2及5に属するメッセージを紐付けサーバ1又は2に割り振るようにする。しかしながら、図4に示すように紐付けサーバ3で保持されていたmsg2b、msg2c及びmsg5aは、紐付けされることなく破棄されるようになる。また、振分けルールを変更した後に出現する、トランザクション2及び5に属するメッセージについては、紐付けサーバ1又は2に振分けられるようになるが、紐付けサーバ1及び2でも、いつまでたっても紐付けサーバ3に割り振られてしまって破棄されてしまったメッセージは届かないので、時間切れになっていずれ破棄されるようになる。従って、トランザクション2及び5のメッセージは揃わないので全て破棄され、システムの解析
には用いられない。
図4では紐付けサーバの停止の例を示したが、動的に増設の場合においても同様である。すなわち、メッセージ振分け部における振分けルールが変更になり、いままで担当してきたトランザクションを担当しなくなる場合が生ずる。そうすると、担当しなくなったトランザクションの一部のメッセージについては当該トランザクションを構成するメッセージが全て揃わないので、いずれ破棄されることになる。
このように、並列に漏れなくメッセージ紐付け処理を行うには、全てのメッセージを1つの紐付けサーバに振分けることが必要であるが、そのためにはシステム全体を停止してから紐付けサーバの追加又は削除を行う必要がある。これは現実的ではない。しかし、システム全体を停止することなく動的に停止又は増設するような場合には、従来技術では、停止又は増設前後の一定期間のメッセージ紐付け処理を漏れなく行うことはできない。
従って、本発明の目的は、メッセージ紐付け処理を行うサーバ等を動的に増設又は停止する場合においてもメッセージ紐付け処理を漏れなく行うことができるようにするための技術を提供することである。
メッセージ紐付け処理装置は、複数のトランザクションに係り且つ該当するトランザクション識別子を各々有する複数のメッセージを順番不定で受信する受信手段と、担当するトランザクションに係るメッセージを格納するキューを有し、当該キュー内のメッセージをトランザクション毎に取り揃えてからメッセージ処理部に出力する複数の紐付け処理手段と、受信したメッセージを、当該メッセージのトランザクション識別子と当該トランザクション識別子について予め定められている振分けルールとから特定されるいずれかの紐付け処理手段に出力するメッセージ振分け手段と、紐付け処理手段の起動及び停止時に振分けルールを変更する構成変更手段とを有する。そして、構成変更手段が振分けルールの変更を行った場合、各紐付け処理手段が、キュー内に格納されているメッセージのうち少なくとも再振分けが必要となるメッセージをメッセージ振分け手段に出力するものである。
メッセージ紐付け処理を行うサーバ等を動的に増設又は停止する場合においても漏れなくメッセージ紐付け処理を行うことができるようになる。
図5に、本発明の一実施の形態に係るメッセージ紐付け処理装置のシステム概要を示す。本実施の形態におけるメッセージ紐付け処理装置は、各トランザクションに係るメッセージを受信するメッセージ受信部101と、ユーザからの指示若しくは追加又は停止のスケジューリングに従って振分ルールの変更を設定する構成変更部107と、構成変更部107によって設定される振分ルールについてのデータを格納する振分ルール格納部105と、メッセージ受信部101が受信したメッセージ等を一時的に格納する振分キュー1031を有し、振分ルール格納部105に格納されている振分ルールに従って振分キュー103に格納されているメッセージを、担当紐付け処理部に振分けるメッセージ振分部103と、メッセージ振分部103から振分けられたメッセージを格納する紐付けキュー1091乃至1151を有し、紐付けキュー1091乃至1151内のメッセージをトランザクション毎に紐付けする処理を実施する紐付け処理部109乃至115と、紐付け処理部109乃至115から受信し且つ紐付けされたメッセージについて統計処理などを実施するデータ処理部117とを有する。
なお、構成変更部107は、紐付け処理部109乃至115に対して起動又は停止の指示を行うようになっている。また、図5では、紐付け処理部115が現在停止していることを表すため、紐付け処理部115は点線で示されている。
また、振分ルール格納部105は、例えば幾つの紐付け処理部が動作しているかを表すデータ及び各紐付け処理部109乃至115にどのトランザクションを割り当てるかを表すデータが格納される。例えば、図5の例のように3つの紐付け処理部が動作している場合には、「3」及び例えばハッシュ関数値(例えば剰余)と紐付け処理部との変更後の対応関係を表すデータが振分ルール格納部105に格納される。メッセージ振分部103は、例えば受信したメッセージのトランザクションIDを「3」で除して、その余りが「0」であれば紐付け処理部109に振分け、余りが「1」であれば紐付け処理部111に振分け、余りが「2」であれば紐付け処理部113に振分けるといったような処理を行う。また、紐付け処理部115を起動する場合には、構成変更部107は、例えば「4」及び例えばハッシュ関数値(例えば剰余)と紐付け処理部との変更後の対応関係を表すデータを振分ルール格納部105に格納する。これによって、メッセージ振分部103は、受信したメッセージのトランザクションIDを「4」で除して、その余りによって振分け先の紐付け処理部を特定するようにする。なお、このような振分けルールは一例であって、他の方法であっても良い。本実施の形態では振分けルールに特徴はなく、一般的な手法を用いることができる。
また、紐付け処理部109乃至115は、例えば別サーバ上に構成されるものとする。さらに、データ処理部117は、1つではなく、紐付け処理部109乃至115に対応して複数個設けるようにして、各データ処理部117の処理結果を集計する処理部を設けるようにしても良い。
次に、図6乃至図12を用いて、本実施の形態に係るメッセージ紐付け処理装置の処理内容について説明する。まず、図6を用いて、紐付け処理部を追加する場合における、構成変更部107の処理について説明する。構成変更部107は、例えばユーザからの、紐付け処理部の追加指示又はスケジューリングによる紐付け処理部の追加時間を認識すると(ステップS1)、今回該当する紐付け処理部(例えば紐付け処理部115)を特定して、当該紐付け処理部115を起動させる(ステップS3)。さらに、構成変更部107は、振分ルール格納部105に格納されている振分ルールについてのデータを、変更後の状態に変更して更新登録する(ステップS5)。すなわち、今回起動した紐付け処理部115にもメッセージが振分けられるように設定する。
次に、図7及び図8を用いてメッセージ振分部103の処理内容について説明する。メッセージ振分部103は、メッセージ受信部101が受信したメッセージをメッセージ受信部101から受け取ると一旦振分キュー1031に格納している。以下でも述べるが、紐付け処理部109乃至113から受信したメッセージについても振分キュー1031に格納する。そして、受信した順番で振分キュー1031から1つメッセージを読み出し(図7:ステップS11)、振分ルール格納部105に格納されている振分ルールについてのデータと当該メッセージに含まれるトランザクションIDとから、処理を行うべき紐付け処理部を特定する(ステップS13)。この処理については、上で述べたような処理を行う。そして、特定された紐付け処理部にメッセージを出力する(ステップS15)。ステップS11乃至S15に係る処理を、処理終了すべきタイミングまで繰り返す(ステップS17)。
図7に示した処理を実施しつつ別スレッドで、メッセージ振分部103は、振分ルール格納部105に格納されている振分ルールについてのデータの変更がなされたか判断する(ステップS21)。変更がなければ図7の処理を実施していればよいので、ステップS21に戻る。一方、変更がある場合には、ルール変更通知を生成して、現在動作している全ての紐付け処理部109乃至113に出力する(ステップS23)。ここで、ルール変更通知には、単に変更を通知するものの場合もあれば、変更後の振分ルールについてのデータを含むルール変更通知である場合もある。どの紐付け処理部がどのトランザクションについて紐付け処理を実施するかを特定するためのデータが変更後の振分けルールとしてルール変更通知に含まれる。このような処理が処理終了まで繰り返される(ステップS25)。
次に、図9及び図10を用いて各紐付け処理部の処理内容について説明する。紐付け処理部109は、紐付けキュー1091を探索してどのようなメッセージが格納されているか特定する(ステップS31)。そして、特定のトランザクションに属する全てのメッセージが揃ったか判断する(ステップS33)。例えば各トランザクションがa乃至fの6つのメッセージで構成される場合には、同一トランザクションについてa乃至fの6つのメッセージが紐付けキュー1091に格納されているか判断する。まだ、紐付けキュー109においてどのトランザクションについてもメッセージが揃っていない場合にはステップS31に戻る。
特定のトランザクションに属する全てのメッセージが揃っている場合には、紐付け処理部109は、特定のトランザクションに属する全てのメッセージをデータ処理部117に出力する(ステップS35)。このようなステップS31乃至S35を紐付け処理部109自身の停止又は処理終了が指示されるまで実施する(ステップS37)。
図9に示した処理を実施しつつ別スレッドで、紐付け処理部109は、ルール変更通知を受信したか判断する(ステップS41)。ルール変更通知を受信していなければそれまで待機する。一方、ルール変更通知を受信し、当該ルール変更通知に変更後の振分ルールについてのデータが含まれていない場合には(ステップS43:Noルート)、紐付けキュー1091を探索して、全てのメッセージが揃っていないトランザクション(未完トランザクションとも呼ぶ)が存在するか判断する(ステップS49)。未完トランザクションが存在しなければステップS53に移行する。一方、未完トランザクションが存在する場合には、未完トランザクションに属するメッセージを紐付けキュー1091から取り出し、メッセージ振分部103に返信する(ステップS51)。メッセージ振分部103は、受信したメッセージを振分キュー1031に格納する。そして処理はステップS53に移行する。
ルール変更通知に変更後の振分ルールについてのデータが含まれている場合には(ステップS43:Yesルート)、紐付けキュー1091内のメッセージのうち、変更後の振分けルールに基づけば他の紐付け処理部に出力すべきメッセージを特定する(ステップS45)。例えば、トランザクションIDが、「3」「6」「9」「12」「15」.....を担当していたが、振分けルールの変更に伴い、「4」「8」「12」「16」....を担当するようになると判断される場合には、トランザクションIDが「12」のメッセージを除き、他の紐付け処理部が担当することになるので、トランザクションIDが「12」以外のメッセージを特定する。そして、特定されたメッセージをメッセージ振分部103に返信する(ステップS47)。このような処理を行うことによって、メッセージ振分部103の処理負荷を下げることができる。処理は、ステップS53に移行する。
ステップS53では処理を終了すべきか否かを判断し、処理終了すべきではない場合にはステップS41に戻る。一方、処理終了すべき場合(例えば処理終了や停止を指示された場合など)には、処理を終了する。
このような処理を実施することによって、紐付け処理部の追加の際にも、未完トランザクションのメッセージは変更後の振分けルールに従って新たに担当する紐付け処理部に振分けされるようになるので、漏れなくメッセージの紐付け処理が行われるようになる。
次に、紐付け処理部の停止時における処理を図11及び図12を用いて説明する。構成変更部107は、紐付け処理部の停止時には図11に示すような処理を実施する。
構成変更部107は、例えばユーザからの、紐付け処理部の停止指示又はスケジューリングによる紐付け処理部の停止時間を認識すると(ステップS61)、今回該当する紐付け処理部(例えば紐付け処理部115)を特定して、振分ルール格納部105に格納されている振分ルールについてのデータを、変更後の状態に変更して更新登録する(ステップS63)。すなわち、紐付け処理部115へのメッセージ振分けが停止されるように設定する。そして所定時間後に、停止すべき紐付け処理部115に対して停止指示を出力する(ステップS65)。所定時間は、メッセージ振分部103に各紐付け処理部からメッセージを返信する処理が完了する時間より長く設定される。但し、各紐付け処理部からメッセージの返信が完了したような通知を受けるようにして、それから該当する紐付け処理部を停止させるようにしても良い。
メッセージ振分部103については、紐付け処理部の停止時でも追加時でも同じ処理が行われる。
次に、紐付け処理部の停止時における各紐付け処理部の処理内容について図12を用いて説明する。紐付け処理部109は、ルール変更通知を受信したか判断する(ステップS71)。ルール変更通知を受信していなければそれまで待機する。一方、ルール変更通知を受信し、当該ルール変更通知に変更後の振分ルールについてのデータが含まれていない場合には(ステップS73:Noルート)、紐付けキュー1091を探索して、未完トランザクションが存在するか判断する(ステップS79)。未完トランザクションが存在しなければステップS83に移行する。一方、未完トランザクションが存在する場合には、未完トランザクションに属するメッセージを紐付けキュー1091から取り出し、メッセージ振分部103に返信する(ステップS81)。メッセージ振分部103は、受信したメッセージを振分キュー1031に格納する。そして処理はステップS83に移行する。

ルール変更通知に変更後の振分ルールについてのデータが含まれている場合には(ステップS73:Yesルート)、紐付けキュー1091内のメッセージのうち、変更後の振分けルールに基づけば他の紐付け処理部に出力すべきメッセージを特定する(ステップS75)。例えば、トランザクションIDが、「3」「6」「9」「12」「15」.....を担当していたとしても、振分けルールの変更に伴い、停止する紐付き処理部の場合には全く担当するトランザクションが無くなる。このような場合には、全てのメッセージを返信すべきメッセージとして特定する。そして、特定されたメッセージをメッセージ振分部103に返信する(ステップS77)。このような処理を行うことによって、メッセージ振分部103の処理負荷を下げることができる。処理は、ステップS83に移行する。
ステップS83では、紐付け処理部109は、ルール変更通知受信後から所定時間内に構成変更部107から停止指示を受信したか判断する(ステップS83)。停止指示を受信していない場合にはステップS71に戻る。一方、構成変更部107から停止指示を受信した場合には、自紐付け処理部109を停止させる(ステップS85)。
このような処理を実施することによって、停止時にも漏れなくメッセージの紐付け処理を実施できるようになる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、処理フローについては処理結果が変わらなければ処理順番を入れ替えても良い。また、図5で示した構成については、複数のコンピュータで実現されることが前提であるが、どの構成要素をどのコンピュータに実装するかは任意である。例えば複数の紐付け処理部を1つのコンピュータで起動させるようにしても良い。
上で述べた実施の形態をまとめると、メッセージ紐付け処理装置は、複数のトランザクションに係り且つ該当するトランザクション識別子(トランザクションIDそのものである場合だけではなく、キーワード、タグ値その他のトランザクションを特定するために用いることができる全てのデータを含む。)を各々有する複数のメッセージを順番不定で受信する受信手段と、担当するトランザクションに係るメッセージを格納するキューを有し、当該キュー内のメッセージをトランザクション毎に取り揃えてからメッセージ処理部に出力する複数の紐付け処理手段と、受信したメッセージを、当該メッセージのトランザクション識別子と当該トランザクション識別子について予め定められている振分けルールとから特定されるいずれかの紐付け処理手段に出力するメッセージ振分け手段と、紐付け処理手段の起動及び停止時に振分けルールを変更する構成変更手段とを有する。そして、構成変更手段が振分けルールの変更を行った場合、各紐付け処理手段が、キュー内に格納されているメッセージのうち少なくとも再振分けが必要となるメッセージをメッセージ振分け手段に出力するものである。
このようにすれば、振分けルールが変更されて振分け先の紐付け処理手段が変更になろうとも、再度メッセージ振分け手段によって振分けが行われるようになるので、漏れなく紐付け処理を行うことができるようになる。
なお、構成変更手段が振分けルールの変更を行った場合、振分けルールの変更を検出したメッセージ振分け手段が、各紐付け処理手段に、変更通知を出力するようにしてもよい。なお、構成変更手段が各紐付け処理手段に変更通知を出力しても良い。そして、各紐付け処理手段は、変更通知を受信した場合に、キューに格納されているメッセージをメッセージ振分け手段に出力するようにする。これによって漏れなく新たな担当紐付け処理手段に振分け直されるようになる。
また、構成変更手段が振分けルールの変更を行った場合、振分けルールの変更を検出したメッセージ振分け手段が、各紐付け処理手段に、変更後の振分けルールについてのデータを含む変更通知を出力するようにしてもよい。そして、各紐付け処理手段は、変更通知を受信した場合に、キューに格納されているメッセージのうち、変更通知に含まれる変更後の振分けルールについてのデータに従って他の紐付け処理手段に振分けられるべきメッセージを特定し、メッセージ振分け手段に出力するようにする。このようにすれば、メッセージ振分け手段に返信されるメッセージの数を減らすことができ、メッセージ振分け手段の負荷を減らすことができるようになる。
さらに、特定の紐付け処理手段の停止の際に、各紐付け処理手段によるメッセージ振分け手段へのメッセージの出力の終了後に、構成変更手段が、特定の紐付け処理手段に停止を指示するようにしてもよい。再度のメッセージ振分け処理を保証するためである。
なお、上記装置を実現するためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
なお、図5で示した構成で用いられるコンピュータは、図13に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
複数のトランザクションに係り且つ該当するトランザクション識別子を各々有する複数のメッセージを順番不定で受信する受信手段と、
担当するトランザクションに係るメッセージを格納するキューを有し、当該キュー内のメッセージを前記トランザクション毎に取り揃えてからメッセージ処理部に出力する複数の紐付け処理手段と、
受信した前記メッセージを、当該メッセージのトランザクション識別子と当該トランザクション識別子について予め定められている振分けルールとから特定されるいずれかの前記紐付け処理手段に出力するメッセージ振分け手段と、
前記紐付け処理手段の起動及び停止時に前記振分けルールを変更する構成変更手段と、
を有し、
前記構成変更手段が前記振分けルールの変更を行った場合、各前記紐付け処理手段が、前記キュー内に格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを前記メッセージ振分け手段に出力する
メッセージ紐付け処理装置。
(付記2)
前記構成変更手段が前記振分けルールの変更を行った場合、前記振分けルールの変更を検出した前記メッセージ振分け手段が、各前記紐付け処理手段に、変更通知を出力し、
各前記紐付け処理手段は、前記変更通知を受信した場合に、前記キューに格納されているメッセージを前記メッセージ振分け手段に出力する
付記1記載のメッセージ紐付け処理装置。
(付記3)
前記構成変更手段が前記振分けルールの変更を行った場合、前記振分けルールの変更を検出した前記メッセージ振分け手段が、各前記紐付け処理手段に、変更後の前記振分けルールについてのデータを含む変更通知を出力し、
各前記紐付け処理手段は、前記変更通知を受信した場合に、前記キューに格納されているメッセージのうち、前記変更通知に含まれる変更後の前記振分けルールについてのデータに従って他の前記紐付け処理手段に振分けられるべきメッセージを特定し、前記メッセージ振分け手段に出力する
付記1記載のメッセージ紐付け処理装置。
(付記4)
特定の前記紐付け処理手段の停止の際に、各前記紐付け処理手段による前記メッセージ振分け手段へのメッセージの出力の終了後に、前記構成変更手段が、特定の前記紐付け処理手段に停止を指示する
付記1記載のメッセージ紐付け処理装置。
(付記5)
複数のトランザクションに係り且つ該当するトランザクション識別子を各々有する複数のメッセージを順番不定で受信するステップと、
前記受信ステップにおいて受信したメッセージのトランザクション識別子と当該トランザクション識別子について予め定められている振分けルールとから、担当するトランザクションに係るメッセージを格納するキュー内のメッセージを前記トランザクション毎に取り揃えてからメッセージ処理部に出力する複数の紐付け処理部のうち担当する紐付け処理部を特定して、当該紐付け処理部に前記受信ステップにおいて受信したメッセージを出力するステップと、
前記紐付け処理部の起動又は停止時に前記振分けルールを変更するステップと、
前記構成変更ステップにおいて前記振分けルールの変更が行われた場合、各前記紐付け処理部の前記キュー内に格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを取り戻し、当該メッセージのトランザクション識別子と変更後の前記振分けルールとから変更後の前記紐付け処理部を特定して、当該紐付け処理部に取り戻した前記メッセージを出力するステップと、
を含む、コンピュータに実行されるメッセージ紐付け処理方法。
(付記6)
コンピュータに、
複数のトランザクションに係り且つ該当するトランザクション識別子を各々有する複数のメッセージを順番不定で受信する受信手段と、
担当するトランザクションに係るメッセージを格納するキュー内のメッセージを各トランザクション毎に取り揃えてからメッセージ処理部に出力する複数の紐付け処理手段と、
受信した前記メッセージを、当該メッセージのトランザクション識別子と当該トランザクション識別子について予め定められている振分けルールとから特定されるいずれかの前記紐付け処理手段に出力するメッセージ振分け手段と、
前記紐付け処理手段の起動及び停止時に前記振分けルールを変更する構成変更手段と、
を実現させ、
前記構成変更手段が前記振分けルールの変更を行った場合、各前記紐付け処理手段が、前記キュー内に格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを前記メッセージ振分け手段に出力させる
メッセージ紐付け処理プログラム。
従来の多階層システムの一例を示す図である。 メッセージの出現態様を説明するための図である。 (a)及び(b)は、メッセージ紐付け処理を説明するための図である。 従来技術の問題点を説明するための図である。 本発明の実施の形態に係るメッセージ紐付け処理装置の機能ブロック図である。 紐付け処理部追加時における構成変更部の処理フローを示す図である。 メッセージ振分部の通常処理の処理フローを示す図である。 メッセージ振分部のルール変更通知についての処理の処理フローを示す図である。 紐付け処理部の通常処理の処理フローを示す図である。 紐付け処理部追加時における紐付け処理部の処理の処理フローを示す図である。 紐付け処理部停止時における構成変更部の処理フローを示す図である。 紐付け処理部停止時における紐付け処理部の処理フローを示す図である。 コンピュータの機能ブロック図である。
符号の説明
101 メッセージ受信部 103 メッセージ振分部
105 振分ルール格納部 107 構成変更部
109,111,113,115 紐付け処理部
117 データ処理部
1031 振分キュー
1091,1111,1131,1151 紐付けキュー

Claims (6)

  1. それぞれトランザクション識別子を有し、トランザクションを構成する複数のメッセージを処理するメッセージ処理装置であって、
    メッセージ振分け手段と、
    複数の処理手段と、
    構成変更手段と、
    データ処理部と、
    前記トランザクション識別子についての振分けルールを格納する振分ルール格納部と、を備え、
    前記メッセージ振分け手段は、受信したメッセージを前記振分けルールに基づいて、前記複数の処理手段のいずれかに出力し、
    前記複数の処理手段は、それぞれ、前記メッセージ振分け手段より受信したメッセージを格納するキューを有し、前記キューに格納された複数のメッセージを前記トランザクション毎に揃えてからデータ処理部に出力
    記処理手段のいずれかが起動または停止したとき、前記構成変更手段は前記振分けルールを変更
    前記複数の処理手段は、それぞれ、前記キューに格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを前記メッセージ振分け手段に出力する
    ことを特徴とするメッセージ処理装置。
  2. 前記構成変更手段が前記振分けルールの変更を行った場合、前記振分けルールの変更を検出した前記メッセージ振分け手段が、各前記処理手段に、変更通知を出力し、
    前記複数の処理手段は、それぞれ、前記変更通知を受信した場合に、前記キューに格納されているメッセージを前記メッセージ振分け手段に出力する
    ことを特徴とする請求項1記載のメッセージ処理装置。
  3. 前記構成変更手段が前記振分けルールの変更を行った場合、前記振分けルールの変更を検出した前記メッセージ振分け手段が、各前記処理手段に、変更後の前記振分けルールについてのデータを含む変更通知を出力し、
    前記複数の処理手段は、それぞれ、前記変更通知を受信した場合に、前記キューに格納されているメッセージのうち、前記変更通知に含まれる変更後の前記振分けルールについてのデータに従って他の前記処理手段に振分けられるべきメッセージを特定し、前記メッセージ振分け手段に出力する
    ことを特徴とする請求項1記載のメッセージ処理装置。
  4. 特定の前記処理手段の停止の際に、各前記処理手段による前記メッセージ振分け手段へのメッセージの出力の終了後に、前記構成変更手段が、特定の前記処理手段に停止を指示する
    ことを特徴とする請求項1記載のメッセージ処理装置。
  5. メッセージ振分け手段と、
    それぞれメッセージを格納するキューを有する複数の処理手段と、
    構成変更手段と、
    データ処理部と、
    トランザクション識別子についての振分けルールを格納する振分ルール格納部と、を備え、
    且つそれぞれ前記トランザクション識別子を有し、トランザクションを構成する複数のメッセージを処理するメッセージ処理装置によるメッセージ処理方法であって、
    前記メッセージ振分け手段が、受信したメッセージを、前記振分けルールに基づいて、前記複数の処理手段のいずれかに出力するステップと、
    前記処理手段が、前記メッセージ振分け手段より受信したメッセージを前記キューに格納し、前記キューに格納された複数のメッセージを前記トランザクション毎に揃えてからデータ処理部に出力するステップと
    記処手段いずれかが起動または停止したとき、前記構成変更手段が前記振分けルールを変更するステップと、
    前記処理手段が、前記キューに格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを前記メッセージ振分け手段に出力するステップと、
    を含むことを特徴とするメッセージ処理方法。
  6. トランザクション識別子についての振分けルールを格納する振分ルール格納部と、
    メッセージを格納する複数のキューと、
    データ処理部と、を備え、
    且つそれぞれ前記トランザクション識別子を有し、トランザクションを構成する複数のメッセージを処理するコンピュータに、
    メッセージ振分け手段と、
    複数の処理手段と、
    構成変更手段と、を実現させ、
    前記メッセージ振分け手段が、受信したメッセージを、前記振分けルールに基づいて、前記複数の処理手段のいずれかに出力する処理と、
    前記処理手段が、前記メッセージ振分け手段より受信したメッセージを当該処理手段に対応するキューに格納し、前記キューに格納された複数のメッセージを前記トランザクション毎に揃えてからデータ処理部に出力する処理と
    記処理手段のいずれかが起動または停止したとき、前記構成変更手段が前記振分けルールを変更する処理と、
    前記処理手段が前記キューに格納されているメッセージのうち少なくとも再振分けが必要となるメッセージを前記メッセージ振分け手段に出力する処理と、
    を実行させるためのプログラム。
JP2008135002A 2008-05-23 2008-05-23 メッセージ紐付け処理装置、方法及びプログラム Expired - Fee Related JP5088234B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008135002A JP5088234B2 (ja) 2008-05-23 2008-05-23 メッセージ紐付け処理装置、方法及びプログラム
US12/357,977 US8533334B2 (en) 2008-05-23 2009-01-22 Message binding processing technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008135002A JP5088234B2 (ja) 2008-05-23 2008-05-23 メッセージ紐付け処理装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009282807A JP2009282807A (ja) 2009-12-03
JP5088234B2 true JP5088234B2 (ja) 2012-12-05

Family

ID=41342890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008135002A Expired - Fee Related JP5088234B2 (ja) 2008-05-23 2008-05-23 メッセージ紐付け処理装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US8533334B2 (ja)
JP (1) JP5088234B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5494354B2 (ja) * 2010-08-25 2014-05-14 富士通株式会社 紐付け処理プログラム、方法及び装置
JPWO2012063301A1 (ja) * 2010-11-08 2014-05-12 株式会社日立製作所 計算機システム、マルチテナント制御方法及びマルチテナント制御プログラム
US20130283293A1 (en) * 2012-04-20 2013-10-24 Tibco Software Inc. System and method for Intelligently distributing a plurality of transactions for parallel processing
KR20150116627A (ko) * 2014-04-08 2015-10-16 에스케이하이닉스 주식회사 컨트롤러 및 그것을 포함하는 데이터 저장 장치
GB2537087A (en) 2014-12-18 2016-10-12 Ipco 2012 Ltd A system, method and computer program product for receiving electronic messages
GB2533562A (en) 2014-12-18 2016-06-29 Ipco 2012 Ltd An interface, method and computer program product for controlling the transfer of electronic messages
GB2533379A (en) 2014-12-18 2016-06-22 Ipco 2012 Ltd A system and server for receiving transaction requests
GB2533380A (en) * 2014-12-18 2016-06-22 Ipco 2012 Ltd An interface, system, method and computer program product for controlling the transfer of electronic messages
GB2533432A (en) * 2014-12-18 2016-06-22 Ipco 2012 Ltd A device system, method and computer program product for processing electronic transaction requests
US11238458B2 (en) * 2016-03-17 2022-02-01 Visa International Service Association Support combination cards for ecommerce
US10606827B2 (en) * 2016-05-17 2020-03-31 Ab Initio Technology Llc Reconfigurable distributed processing
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561697A (ja) 1991-09-03 1993-03-12 Nec Corp 障害復旧処理装置
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
AT1751U1 (de) * 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
JP3085366B2 (ja) 1997-07-31 2000-09-04 日本電気株式会社 トランザクション処理保証方式
US6226377B1 (en) * 1998-03-06 2001-05-01 Avaya Technology Corp. Prioritized transaction server allocation
JP2000029849A (ja) * 1998-07-15 2000-01-28 Hitachi Ltd 分散制御システム、及び分散制御システムにおけるフィルタリング方法
US20030005068A1 (en) 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
JP3738701B2 (ja) * 2001-04-02 2006-01-25 日本電気株式会社 トランザクション処理システムにおけるシステム設定方法
US7269737B2 (en) * 2001-09-21 2007-09-11 Pay By Touch Checking Resources, Inc. System and method for biometric authorization for financial transactions
US7116995B2 (en) * 2002-05-31 2006-10-03 Nokia Corporation System and method for operating intravendor and intervendor messaging systems
JP2005071031A (ja) * 2003-08-22 2005-03-17 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム
JP2005309519A (ja) 2004-04-16 2005-11-04 Fujitsu Ltd 電文中継プログラムおよび電文中継装置
US7711805B1 (en) * 2004-11-19 2010-05-04 Crossroads Systems, Inc. System and method for command tracking
JP4616791B2 (ja) * 2006-05-08 2011-01-19 富士通株式会社 リクエスト種別プログラム、リクエスト種別装置およびリクエスト種別方法

Also Published As

Publication number Publication date
US8533334B2 (en) 2013-09-10
JP2009282807A (ja) 2009-12-03
US20090292810A1 (en) 2009-11-26

Similar Documents

Publication Publication Date Title
JP5088234B2 (ja) メッセージ紐付け処理装置、方法及びプログラム
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
WO2020211579A1 (zh) 一种基于分布式批量处理系统的处理方法、装置及系统
CN109684065B (zh) 一种资源调度方法、装置及系统
US7689996B2 (en) Method to distribute programs using remote Java objects
US8595722B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
CN110096336B (zh) 数据监控方法、装置、设备和介质
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
KR101013073B1 (ko) 태스크 분배 및 병렬 처리 시스템과 그 방법
CN111897638B (zh) 分布式任务调度方法及系统
US20130227127A1 (en) Schedule management method and schedule management server
US20100325473A1 (en) Reducing recovery time for business organizations in case of disasters
KR20140080434A (ko) 맵리듀스 프레임워크에서 데이터 프로세싱의 최적화를 위한 디바이스 및 방법
US11487555B2 (en) Running PBS jobs in kubernetes
JP5672386B2 (ja) 計算機およびリソース検索方法
US11132221B2 (en) Method, apparatus, and computer-readable medium for dynamic binding of tasks in a data exchange
CN113448743A (zh) 用于任务处理的方法、电子设备以及计算机程序产品
CN110287022A (zh) 一种调度节点选择方法、装置、存储介质及服务器
CN114675964A (zh) 基于联邦决策树模型训练的分布式调度方法、系统及介质
CN110673959A (zh) 用于处理任务的系统、方法和装置
CN107977275B (zh) 基于消息队列的任务处理方法及相关设备
JP2009238103A (ja) エージェントを実行する装置及び方法
CN113626173A (zh) 调度方法、装置及存储介质
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
JP2004046372A (ja) 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120827

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees