JP4647511B2 - 非同期メッセージ処理システム及び非同期メッセージ処理プログラム - Google Patents

非同期メッセージ処理システム及び非同期メッセージ処理プログラム Download PDF

Info

Publication number
JP4647511B2
JP4647511B2 JP2006033467A JP2006033467A JP4647511B2 JP 4647511 B2 JP4647511 B2 JP 4647511B2 JP 2006033467 A JP2006033467 A JP 2006033467A JP 2006033467 A JP2006033467 A JP 2006033467A JP 4647511 B2 JP4647511 B2 JP 4647511B2
Authority
JP
Japan
Prior art keywords
information acquisition
information
event
message processing
asynchronous message
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.)
Active
Application number
JP2006033467A
Other languages
English (en)
Other versions
JP2007213372A (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.)
NTT Data Corp
Original Assignee
NTT Data Corp
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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2006033467A priority Critical patent/JP4647511B2/ja
Publication of JP2007213372A publication Critical patent/JP2007213372A/ja
Application granted granted Critical
Publication of JP4647511B2 publication Critical patent/JP4647511B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、情報発信者から発生するイベントをサービス提供者に仲介するメッセージ流通機構において、非同期のメッセージ通信を行う非同期メッセージ処理システム及び非同期メッセージ処理プログラムに関する。
ユビキタスコンピューティングのアプリケーションを構成する場合、無数の情報発信者とその情報を使用するサービス提供者が、メッセージを介して分散して存在することになる。情報発信者から発生するイベントをサービス提供者に仲介するメッセージ流通機構としては、Java Messaging Service(JMS;Javaは登録商標)APIに代表されるPublish/Subscribe形式の非同期メッセージングミドルウェアが代表的である。非同期メッセージングのPublish/Subscribeモデルの場合、RPC(Remote Procedure Call)などの同期型の通信とは異なり、処理の待ち合わせや、頻繁なポーリング、コネクションの長期使用などによるリソース消費が生じないという特徴を有している。
しかし、インターネット規模の非同期メッセージ流通機構を想定した場合は、Publish/Subscribeのメッセージング形式でも不十分になる可能性がある(非特許文献1)。すなわち、サービス提供者が、幾多の情報発信者から生じる多種多様なイベントをすべて監視しなければならない場合、システム全体のスケーラビリティ、ロバスト性を確保できないだけでなく、複数のプリミティブなイベントから得られるパターンなどのサービス提供者が本当に要求するものを取得するのがますます難しくなってしまう。
例えば、「部屋にブライアンがいるのにピーターがいなければピーターにメールで呼び出しを通知する」といったことを実現するために、ドアセンサや床の圧力センサ、個人識別システムなどから生じるイベントを、そのサービスを提供しようとするものが全て監視しなければならない場合、ネットワーク上のイベントの流通量は単純にイベント発信者数×イベント発信数×イベント利用者数となり、流通規模の増大に耐えられない可能性がある。また、サービスオーサリングの観点からするとサービス提供者の負担が大きくなりすぎるという問題がある。
そこで非特許文献1では、非同期メッセージ流通機構を流れるイベントに対して、サービス提供者が求めるイベントパターン(composite event;CE)を定義すれば、その定義に基づいて有限状態オートマトン(Finite State Automaton;FSA)が流れるイベントの監視と処理を代行し、FSAがサービス提供者の求めるパターンが生じたことを検出したときに、その旨をサービス提供者に通知する機構を提案している。ここで用いられているFSAは、いくつかの状態が設定されており、適切なイベント検出や時間経過によって状態間を遷移するという一般的なものである。
このようなFSAを用いた非同期メッセージ流通機構の構成を図7に示す。図7は、非特許文献1から引用した図である。図7において、Srcはイベントを発生する情報提供者、Sinkはイベントを利用するサービス提供者であり、CED(composite event detector)はCEの定義にしたがってイベントを監視し、FSAによってパターン検出を行うモジュールである。CEDは分散配置が可能であり、パターン検出を多段化してネットワーク帯域の広い部分にイベントを多めに流すといった工夫が可能な設計となっている。
図8に、CEの定義がC1とCに多段化されている様子を示す。図8は、非特許文献1から引用した図である。図8に示すように記述段階でC1というCEのsub expressionを切り出すことで、例えば、C1を検出するためのCEDとCを検出するためのCEDを分散できるようにしている。C1は、「会議室のホワイトボードの電源が入る」−「f3で定義される人が入ってくる」−「ホワイトボードの電源が切れる」という複合イベントを表しており、Cは「C1イベントが発生して5分以内にf2で定義されるログイン処理が発生した」という複合イベントを表している。状態遷移を定義する際は、到着イベントの順番について、ネットワークの伝送遅延などを考慮した「確実な前後関係」と「不確実な前後関係」を使い分けられる。
Peter R. Pietzuch, Brian Shand, and Jean Bacon: Composite Event Detection as a Generic Middleware Extension, IEEE Network, January/February 2004, pp.44-55.
非特許文献1は、Publish/Subscribe形式の通信モデルの非同期メッセージ流通機構において、流通するイベントをパターン定義に基づいて状態遷移モデルによってフィルタリングできるようにすることで、イベント消費者であるサービス提供者が、必要とする実行契機をシンプルに取得できるようにするものである。パターン検出の作業は、パターン検出器(CED)の分散配置によってネットワーク上に負荷分散される。
しかしながら、非特許文献1の場合、処理の多段化が亢進して、CED間でイベントの連鎖がより多く発生するようになれば、連鎖系全体で発生する遅延の幅が大きくなる、あるいは検出すべきパターンが検出できなくなるといった事態の発生が避けられなくなる。例えば、『CEaの「あとに」Event3が生じる』というパターンCEbをCEDαで検出する場合、CEaは『Event1の「あとに」Event2が生じる』ことを表すもので、CEDβによって検出するものとする。ここで、分散配置されているCEDβとCEDαの間に伝送遅延が生じたりCEDβで処理遅延が生じたりすると、3つのイベントEvent1、Event2、Event3がこの順に発生したにもかかわらず、CEDαでは本来の順番(CEaのあとにEvent3)ではなく、Event3のあとにCEaが到着してしまうという事態が生じうる。これは、非同期メッセージ流通機構においては、CEDを多段化すると、本来検出されるべきCEが検出されないことが生じうることを示している。
非特許文献1では状態遷移を定義する際に、到着イベントの順番について、ネットワークの伝送遅延などを考慮した「確実な前後関係」と「不確実な前後関係」を使い分けられるようにする工夫を施しているが、それでも上記の課題の根本的な解決には至っていない。また、非特許文献1などに示す各種イベント交換による非同期メッセージ流通機構では、イベントをほぼ発生しない静的なシステムに格納されている静的なデータの参照利用、すなわち同期通信の待ち合わせによって、非同期メッセージングであるイベント処理が影響を受けることについては考慮されていない。
例えば、ドアセンサで検出されたイベントに「識別番号」があり、その「識別番号」の持ち主の性別を使って何らかの判断をするような場合に、通常は、「ユーザ管理システム」から「識別番号と持ち主の性別」を示すイベントが発生するのを待つのではなく(このような「イベント」は通常発生しないため)、「ユーザ管理システム」に同期通信で問い合わせすることになる。このような同期通信が増えると、前述のように、本来検出されるべきCEが検出されないことが生じうる。
分散ノード間では完全な時間合わせは根本的に困難であるし、未到着のイベントを予想して待つことも不可能なため、イベント到着の時系列が狂ったような場合、複合イベントの検出結果には回復不可能な影響が発生することになる。例えば、『「ドアを開けて入ってきた人が女」のイベント発生直後に「部屋のライトが点く」イベントが発生したら』というCEの場合、性別の問い合わせで発生した待ち合わせが長引いている間に「部屋のライトが点く」イベントが到着してしまうと、FSAは「部屋のライトが点く」イベントを待つ状態でとどまってしまう。
多くのイベント交換による非同期メッセージ流通機構では、このような事態を避けるために、明示的あるいは暗示的に、前述の「ユーザ管理システム」に相当する静的なシステムが、性別の変更がなくとも「識別番号と持ち主の性別」を示すイベントを高頻度で一定時間おきに発行するというように、定期的に静的データの情報を含むイベントを出すことを要請している。もちろん、そのためには静的なデータ保持者側に本来不要なイベントの発生を強いることになるし、このメッセージ流通の規模が大規模になればなるほど、参加ノードの数が増えれば増えるほど、ネットワーク帯域の消費は指数的に増加してしまうという問題がある。
本発明は、サービス提供者が本当に要求するもの、すなわち複数のプリミティブなイベントから得られるCEを得るために、幾多の情報発信者から生じる多種多様なイベントをすべて監視しなくていいようにするという課題設定は非特許文献1に示す技術と共有するが、その課題に対して異なるアプローチをとることで、上述の問題を解決することができる非同期メッセージ処理システム及び非同期メッセージ処理プログラム提供することを目的とする。
本発明は、情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムであって、取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割手段と、前記分割した情報取得要請について、前記情報取得装置に対して問い合わせを実施し、該問い合わせの結果に基づいて、前記情報取得要請を行う前記情報取得装置を決定する情報取得装置決定手段とを備えたことを特徴とする。
本発明は、前記情報取得要請は、同期通信による情報取得を含むことを特徴とする。
本発明は、前記情報取得要請分割手段は、前記取得するべき情報について同一の連鎖系列を検出する連鎖系列検出手段を含み、該連鎖系列検出手段による同一の連鎖系列検出結果に基づいて、前記情報取得要請を分割することを特徴とする。
本発明は、前記情報取得装置決定手段は、前記問い合わせの結果得られる情報取得時間に基づいて、前記情報取得要請を行う前記情報取得装置を決定することを特徴とする。
本発明は、情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムにおいて動作する非同期メッセージ処理プログラムであって、取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割処理と、前記分割した情報取得要請について、前記情報取得装置に対して問い合わせを実施し、該問い合わせの結果に基づいて、前記情報取得要請を行う前記情報取得装置を決定する情報取得装置決定処理とをコンピュータに行わせることを特徴とする。
本発明によれば、メッセージの到着に際して、別の静的な情報を取得するなど処理遅延が発生しうるメッセージ処理を分散システムで行う際にも、先発のイベントの処理中に後発のイベントをロストしないようにすることができるとともに、処理系をネットワークのパフォーマンスを考慮して配置することで大規模化に耐えられるパフォーマンスを確保することができるという効果が得られる。
以下、本発明の一実施形態による非同期メッセージ処理システムを図面を参照して説明する。
本発明では、メッセージ処理指示命令の基本記述PRを以下の4つ組(s,r,c,p)とし、これを不可分とする。
・Subscribe(s): 監視対象、モニタするイベントの定義
・Retrieve(r) : 取得対象、取得する情報の定義
・Condition(c): 状況判断ロジックの定義
・Publish(p) : 動作定義、新たに発行するイベントの定義など
あるPRは、非同期メッセージ流通機構からもたらされる監視対象イベントの到着によって活性化し、処理を開始する。そして、取得対象の情報を取得してから、監視対象と取得対象で得られた要素を使用して状況判断し、その結果が「true」であった場合に生成対象で定義されるイベントを非同期メッセージ流通機構に放出する。FSAで扱うような状態遷移は複数のPRの組み合わせによって表現する。いわば一つのPRがFSAにおける一状態であり、CE=P(PR)である。PRの組み合わせによって表現するCEでは、非特許文献1において定義されたFSAによって処理するCEとは異なり、Retrieve表現によって静的なデータを取得できる。FSA処理のためのCEの特徴であるタイムラインを勘案した状態遷移は、イベントのタイムスタンプ要素をCondition式で評価することで実現する。
状態遷移は、Publish定義において発行するイベントをステートの出力と読み替えることで実現する。例えば、e1(s1、r1、c1、p1)とe2(s2、r2、c2、p2)においてp1=s2であった場合e1とe2はp1(=s2)で定義されるイベントを介して遷移する。ただし、PR自体はステートレスであるため、複雑な状態遷移を表現するためには、記述の複雑化が避けられない。しかし、この点については、コンパイラなどを用意することで、PRを直接記述するのではなく、非特許文献1に示されるCE記述をはじめとする高級言語での記述が可能になればよい。
いま、e1(A,B,a1=b1,C),e2(C,{A,B},{tc<ta+ε1,c1=b1},D),e3(D,{A,C},{td<ta+ε2,d1=c2},E)と定義されていたとする。ただし、イベント/情報はそれぞれA(ta,a1,a2,a3,…),B(tb,b1,b2,b3,…),C(tc,c1,c2,c3,…),D(td,d1,d2,d3,…),E(te,e1,e2,e3,…)であり、要素txは各データのタイムスタンプである。
e1,e2,e3の検出器が分散配置されていた場合は、Condition式tc<ta+ε1やtd<ta+ε2が「false」となる可能性がある。これはel,e2の評価の間の伝送遅延がε1を越えてしまう場合や、e2やe3での情報取得のための待ち合わせ時間の合計がε2を越えてしまう場合などである。
一見すれば分かるように、取得対象となっているAやB、Cはこの連鎖系においてすでに取得されていたり、連鎖系の中で生成されていたりするものであり、検出器が局所化されていて、取得結果がキャッシュされていれば2回目以降の取得に待ち時間は生じない。また、検出器が局所化されていれば、e1→e2→e3の連鎖もネットワーク遅延なしに処理することができる。すなわち、この例のように与えられたPRに対して適切な局所化を施せば、先に指摘したような問題を回避することができる。また、このようにPRを局所化すれば、待ち合わせ時間が大きな情報取得などの処理が終わらないうちに、処理すべき後発のイベントが発生してしまった場合でも、検出器が検出器のキューに到着したイベントを入れておき、処理が終わってから検出器がそのキューからデキューすることで、処理中に到着していた後発のイベントを得ることができ、非特許文献1に示す方式など既存の方式で発生する検出されるべき複合イベントの検出に失敗する問題は起こらない。
本発明は、与えられた基本記述集合CEから局所化すべき部分集合群を形成し、得られたPRの集合をCEDに分散配置し、各CEDにおいてはPRの連鎖や情報取得の最適化を図るために、部分集合群の形成にあたっては、ネットワークトポロジなどのCEDの分散特性を考慮して、系全体のパフォーマンスを確保する。
次に、図1を参照して、本実施形態の構成を説明する。図1は、同実施形態の構成を示すブロック図である。この図において、符号1は、非同期のメッセージ通信を行う非同期メッセージング機構である。符号2は、CEを検出するCE検出器(以下、CEDと称する)である。符号3は、情報発信を行う情報発信ノード(以下、srcと称する)、符号4は、発信された情報を受信する情報受信ノード(以下、sinkと称する)である。符号5は、情報を保持している情報保持ノード(以下、hidと称する)である。符号6は、部分集合算出器(以下、PSDと称する)であり、制御部61、記憶部62、入力部63、出力部64及び送受信部65から構成する。CED2、src3、sink4及びhld5は、非同期メッセージング機構1上にそれぞれ複数存在する。
非同期メッセージング機構1は、JMSなどのように発行者や「TOPIC」に対して受信登録をかける通信モデルと若干異なり、イベントの種別に対して受信登録をかける形式である。この通信モデルはcontent-based publish/subscribeとして知られている。このような非同期メッセージング機構1は、既存のJMSなどの非同期メッセージング機構にラッパー実装することで得ることができる。また、hld5は、非同期メッセージを能動的に発信しないノードであり、問い合わせに対してのみ保持している情報を提供するものである。PSD6は、いくつかのCED2を管理しており、与えられた基本記述集合CEに対して、管理下のCED2それぞれのスループットやネットワークなどのパフォーマンスを考慮して、CEをそれぞれのCEDに分配すべき基本記述集合の部分集合群に分割する。
次に、図2を参照して、基本記述集合CEが与えられた際のPSD6の動作を説明する。まず、PSD6は、入力部63や送受信部65を通じたCEの投入を受けて(ステップS1)、制御部61にてCEの構成要素PRを調べ、連鎖関係を検出する。連鎖関係の検出には、監視対象と取得対象のマッチングを用いる。次に、検出した連鎖関係を構成する取得要素を抽出する(一次処理;ステップS2)。
CEの構成要素として、例えば、e1(A,B,,C),e2(C,B,,E),e3(E,F,,C),e4(C,H,,I),e5(S,T,,U),e6(U,V,,W),e7(X,Y,,Z)がPSD6に入力されたとき、PSD6にて連鎖系列情報c1(e1,e2,e3,e4),c2(e5,e6),c3(e7)を取得し、それら連鎖系列の取得要素系列はそれぞれr1(B,F,H),r2(T,V),r3(Y)とし、これら連鎖系列情報・取得要素系列を記憶部62に格納する。図6(a)に記憶部62内に記憶されるCEデータのテーブル構造を示す。CEデータテーブルは、CE毎に、CE投入データ、割当フラグが関連付けられた連鎖系列データ及び取得要素系列データの記憶領域を有している。なお、同一連鎖系列内での取得対象の重複は取り除かれる(r1の「B」)。また枝のある連鎖系列も形成される(「c1のe2とe4」)。さらに、1要素だけの連鎖系列も形成される(「c3」)。ここで取得要素は、hld5に対して同期通信によって問い合わせることで情報が得られるものである。
取得要素系列の算出の後、制御部61は記憶部62に格納されたCEDデータに基づいて、管理下のCED2に当該取得要素についての取得時間を問い合わせる(ステップS3)。問い合わせの際は各CED2に対して、先に算出した取得要素系列(r1,r2,…)すべてがそれぞれ受け渡される。各CED2では各取得要素系列について実際に同期問い合わせで取得を試み、それぞれに必要な時間を計測する(ステップS4)。CED2毎に得られた計測時間の集合np(t_rl,t_r2,…)はノードプロファイルとしてPSD6に送信され、PSD6の記憶部62のCEDデータテーブルに格納する。図6(b)に記憶部62内に記憶されるCEDデータのテーブル構造を示す。CEDデータテーブルは、CED毎に、割当可能PR数、連鎖系列毎の取得情報計測時間(ノードプロファイル)及び割当連鎖系列の記憶領域を有している。
PSD6は、制御部61が記憶部62における得られたノードプロファイルを参照し、連鎖系の単位でPRのCED2に対する割り当てを決定し、記憶部62に格納する。この割り当てアルゴリズムは、刻々と変化するネットワーク環境に対して最適解を得ることが不可能であることを考慮したヒューリスティックである。
全ての連鎖系列をCED2に対して割り当てたということは、与えられたCEについて、各CEDに割り当てるべきCEの部分集合が得られたということである(ステップS5)。PSD6は得られたCEの部分集合をCED2−1、CED2−2、CED2−3、…にそれぞれ送信する(ステップS6)。
次に、図3を参照して、CEの部分集合として連鎖系の単位でPRをCED2に対して割り当てる割り当てアルゴリズムの動作を説明する。まず、PSD6は、記憶部62に格納された全ての連鎖系列を未割り当てとし、全てのCED2に対して、予めPSD6にて取得している各CED2の処理能力情報に応じた割り当て可能PR数を設定して記憶部62に格納する(ステップS11)。そして、未割り当て連鎖系列のうち、制御部61にて最も連鎖数の大きな系列を一つ選択する(ステップS12)。
次に、「割り当て可能PR数>選んだ連鎖系列の連鎖数」を満たすCED2を制御部61にて全て選択し(ステップS13)、選択できなかった場合は、全てのCED2の割り当て可能PR数を一定数増加させて(ステップS14、S15)、「割り当て可能PR数>選んだ連鎖系列の連鎖数」を満たすCED2を選択できるまで繰り返す。
「割り当て可能PR数>選んだ連鎖系列の連鎖数」を満たすCED2が選択できた場合、選んだCED2のうち、各CED2からPSD6への評価対象連鎖の取得対象系列の計測時間の報告に基づき、計測時間が最小となるCED2を制御部61が選択する(ステップS16)。そして、この選択したCED2の割り当て可能PR数を、選択した連鎖系列の連鎖数として記憶部62に格納するとともに、この連鎖系列を選択したCED2に対して割り当て済みとして、記憶部62の割当フラグデータ(図6(a)参照)を更新する(ステップS17)。この処理を全ての未割り当て連鎖系列に対して実行することにより、連鎖系の単位でPRを各CED2に対して割り当てる(ステップS18)。
次に、図4を参照して、図1に示すCED2の構成を説明する。PSD6からCEの部分集合を割り当てられたCED2は、CEマネージャ21に格納されたCED2に対して割り当てされたCE内の監視対象をすべて抽出する。メッセージリスナ22は、CEマネージャ21が抽出した監視対象を非同期メッセージング機構1を経由して各ノードに取得依頼をする。非同期メッセージング機構1は、取得依頼に応じてイベントを適宜CED1のメッセージリスナ22に送信する。CED2はキュー23を備えており、到着イベントをキューイングする。
ここで、CED2の処理機構25がキューからイベントをデキューすることで始まるCED2の処理動作を図5を参照して説明する。まず、処理機構25は、到着イベントを監視対象としているPRをCEマネージャ21の格納情報に基づいて選択する(ステップS21)ことにより、選択するべきPRがあるか否かを判定する(ステップS22)。この判定の結果、選択するべきPRがあれば、CED2の取得情報保持領域26に、同期通信により取得すべき取得対象のデータが格納されているか否かを判定する(ステップS23、S24)。この判定の結果、取得対象のデータが格納されていなければ、外部から必要情報を取得し、CED2の取得情報保持領域26に取得した必要情報を格納する(ステップS25)。
次に、処理機構25は、キュー23から取得した情報及び取得情報保持領域26から取得した情報に基づき条件判断を行い(ステップS26)、出力が得られたか否かを判定する(ステップS27)。出力が得られた場合、出力があったことを示す情報を到着イベントとして発行し、非同期メッセージング機構1に対しても送信して(ステップS28)、ステップS21へ戻って処理を繰り返す。一方、到着イベントを監視対象としているPRがない場合、または条件判断の結果において出力が得られなかった場合は、CED2の取得情報保持領域26に格納されている情報を全て消去する(ステップS29)。
このように、PRを処理する際に同期通信により取得した情報は、連鎖系列が止まるまでCED2の取得情報保持領域26で保持しておき、同一の連鎖系列内で使いまわすことにより、同期通信による情報取得回数を減らして同期問い合わせの待ち合わせ時間を減らす。また、情報取得にかかる時間については、PSD6でのPR割り当て処理によって、ネットワークの遅延などを考慮したできるだけ問い合わせ時間が短くなるCED2がPRを担当できる配置としたため、全体として短くすみ、効率化することができる。
また、処理の結果得られた出力は改めて入力イベントとして扱いキューに格納され、キューイングされているその他のイベントとは無関係に処理を進めることにより、出力はキューの「先頭」に置かれ、それが直ちにデキューされるようなるため、同一CED2内で発生する連鎖は遅延なく処理することができる。処理の結果得られた出力はメッセージパブリッシャ24を通して非同期メッセージング機構1に対しても送信される。この際、CED2が非同期メッセージング機構1に対して送信したイベントをそのCED2自身が取得申込みしていた場合、同一のイベントが、連鎖対象として直ちにキューからデキューされるイベントと、非同期メッセージング機構1から改めて到着するイベントと、2つ到着してしまうことを防ぐために、CED2は送信者が自分自身であるようなイベントが非同期メッセージング機構1からもたらされた場合、それをフィルタしてキューイングしないようにする。そして、上記の処理が終了したら、処理機構はキュー23にデキューをかけ、新たに到着しているイベントの処理を開始する。
このように、従来技術においては、同一の連鎖系の情報群を複数に分断して複数のCED2に取得要求を行い、複数のCED2から管理センタに報告を受けるようにした場合に、あるCED2において遅延などが発生すると、同一連鎖系の情報群における真の順序を反映した情報取得ができない場合があるという問題が発生するが、同一連鎖系は分けないように配慮して各CED2に情報取得要請を配分するようにしたため、従来技術における問題点を解決することができる。この解決策が有効になるのは、特に同期通信による取得必要情報があるや処理に時間がかかるなどで処理に遅延が発生しうるメッセージ処理からなる連鎖処理系がある場合である。ただし、同一CED2に情報取得割り当てを配分した情報群については、同一CED2内で情報の順序の狂いは発生しないように各CED2では非同期メッセージングをキューイングすることを想定しており、例えば、「Aが来て、Bを取得するなどの時間のかかる処理をして、その後にCが来たらOK」という処理ロジックがCED2にあって、「Aが来て、処理が終わらないうちにCが来て、処理が終わる」というケースの場合にも、処理が終わってからCED2が自前のキュー23からデキューすれば、処理中にCED2に到着していたCを得ることができる。
また、実行時の情報取得速度を向上させるために、同―連鎖系は分けずに連鎖系単位で各CED2に情報取得の割り当てを実施する前段階の準備として、同一の連鎖系単位で対象情報を分けて、事前にそれぞれの連鎖系中の取得必要情報についての取得時間などの事前問い合わせを全CED2に対して実施して、全てのCED2からの情報収集時間の回答を管理側が得て、その得た結果に基づいて最終的に各連鎖系についての問い合わせ先(配分先)のCED2を決定するようにしたため、同一連鎖系単位の情報問い合わせ先の最適化により、同期情報取得に費やされる総時間を減らすことができる。
また、実行時の情報取得速度を向上させるために、同―連鎖系の中の同一取得情報の重複は避けるようにキャッシュ情報を活用するようにしたため、同期情報取得の回数を減らし、同期情報取得に費やされる総時間を減らすことができる。
このように、情報取得装置の分散化環境により構成される非同期メッセージング機構において、取得情報について同期通信により取得する情報が加わり処理速度にばらつきが発生しやすい状況、さらに情報取得順序の正確性が加味される状況においても、順序性を加味した情報取得の適正化実現と共に、処理速度の最適化を図ることが可能となる。またメッセージ処理において、同期通信による情報取得(待ち合わせに時間を消費する)だけでなく、処理に時間のかかるもの全般が入り込んだ場合も適用可能である。
以上説明したように、非同期メッセージング機構において、サービス提供者は、CEを定義することで幾多の情報発信者から生じる多種多様なイベントをすべて監視しなくて済むようになる。CEの定義には、イベントとして発信されないような情報に対する問い合わせを組み込むことができる。また、非同期メッセージング機構を流通するイベントから、CE定義に基づいてCEを分散して検出するにあたって、PSDが処理ノード毎に異なる処理時間や処理ノード間で発生する遅延による影響を最大限排除できるような分散配置をヒューリスティックによって算出することによって、検出されないイベントパターンの発生を最小化できる。また、従来の非同期メッセージング機構における流通イベントのパターン検出とは異なり、パターン検出に際しての同期通信による問い合わせを考慮しており、イベントとして発信されないような情報を扱うにあたっても、従来の非同期メッセージング機構とは異なり、同期問い合わせを効率化することで、ネットワークトラフィックの増大を抑えることが可能となる。
なお、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより非同期メッセージ処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の一実施形態の構成を示すブロック図である。 基本記述集合CEが与えられた際のPSD8の動作を示すシーケンス図である。 PRをCEDに割り当てる処理動作を示すフローチャートである。 図1に示すCED2の詳細な構成を示すブロック図である。 図4に示すCED2の処理動作を示すフローチャートである。 図1に示す記憶部62のテーブル構造を示す説明図である。 非同期メッセージ流通機構の構成を示す説明図である。 CEの定義が多段化された状態を示す説明図である。
符号の説明
1・・・非同期メッセージング機構、2・・・CE検出器(CED)、21・・・CEマネージャ、22・・・メッセージリスナ、23・・・キュー、24・・・メッセージパブリッシャ、25・・・処理機構、26・・・取得情報保持領域、3・・・情報発信ノード(src)、4・・・情報受信ノード(sink)、5・・・情報保持ノード(hid)、6・・・部分集合算出器(PSD)、61・・・制御部、62・・・記憶部、63・・・入力部、64・・・出力部、65・・・送受信部

Claims (4)

  1. 情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムであって、
    取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割手段と、
    前記分割した情報取得要請について、前記情報取得装置に対して情報取得時間の問い合わせを実施し、該問い合わせの結果得られる情報取得時間が最小となる前記情報取得装置を、前記情報取得要請を行う前記情報取得装置決定する情報取得装置決定手段と
    を備えたことを特徴とする非同期メッセージ処理システム。
  2. 前記情報取得要請は、同期通信による情報取得を含むことを特徴とする請求項1に記載の非同期メッセージ処理システム。
  3. 前記情報取得要請分割手段は、前記取得するべき情報について同一の連鎖系列を検出する連鎖系列検出手段を含み、該連鎖系列検出手段による同一の連鎖系列検出結果に基づいて、前記情報取得要請を分割することを特徴とする請求項1に記載の非同期メッセージ処理システム。
  4. 情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムにおいて動作する非同期メッセージ処理プログラムであって、
    取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割処理と、
    前記分割した情報取得要請について、前記情報取得装置に対して情報取得時間の問い合わせを実施し、該問い合わせの結果得られる情報取得時間が最小となる前記情報取得装置を、前記情報取得要請を行う前記情報取得装置決定する情報取得装置決定処理と
    をコンピュータに行わせることを特徴とする非同期メッセージ処理プログラム。
JP2006033467A 2006-02-10 2006-02-10 非同期メッセージ処理システム及び非同期メッセージ処理プログラム Active JP4647511B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006033467A JP4647511B2 (ja) 2006-02-10 2006-02-10 非同期メッセージ処理システム及び非同期メッセージ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006033467A JP4647511B2 (ja) 2006-02-10 2006-02-10 非同期メッセージ処理システム及び非同期メッセージ処理プログラム

Publications (2)

Publication Number Publication Date
JP2007213372A JP2007213372A (ja) 2007-08-23
JP4647511B2 true JP4647511B2 (ja) 2011-03-09

Family

ID=38491742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006033467A Active JP4647511B2 (ja) 2006-02-10 2006-02-10 非同期メッセージ処理システム及び非同期メッセージ処理プログラム

Country Status (1)

Country Link
JP (1) JP4647511B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6418004B2 (ja) 2015-02-26 2018-11-07 富士通株式会社 イベント通知プログラム、イベント通知方法及びイベント通知装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150572A (ja) * 2001-11-19 2003-05-23 Mitsubishi Electric Corp 連携サービス保証システム
JP2004348680A (ja) * 2003-05-26 2004-12-09 Fujitsu Ltd 複合イベント通知システムおよび複合イベント通知プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150572A (ja) * 2001-11-19 2003-05-23 Mitsubishi Electric Corp 連携サービス保証システム
JP2004348680A (ja) * 2003-05-26 2004-12-09 Fujitsu Ltd 複合イベント通知システムおよび複合イベント通知プログラム

Also Published As

Publication number Publication date
JP2007213372A (ja) 2007-08-23

Similar Documents

Publication Publication Date Title
KR102004160B1 (ko) 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
CN112527525B (zh) 基于消息队列的分布式事件总线处理方法、终端及介质
Lu et al. Join-idle-queue: A novel load balancing algorithm for dynamically scalable web services
US9838375B2 (en) RESTlike API that supports a resilient and scalable distributed application
CN106713226B (zh) 一种用于分布式系统的远程过程调用处理方法和系统
EP3117590B1 (en) Computer system to support failover in an event stream processing system
US9208476B2 (en) Counting and resetting broadcast system badge counters
US8595322B2 (en) Target subscription for a notification distribution system
JP2018525761A (ja) スケーラブルなリアルタイムメッセージングシステム
CN105450618A (zh) 一种api服务器处理大数据的运算方法及其系统
US8984530B2 (en) Queued message dispatch
JP2018525760A (ja) スケーラブルなリアルタイムメッセージングシステム
US20130066980A1 (en) Mapping raw event data to customized notifications
WO2019014114A1 (en) SCALING OF HOSTS IN DISTRIBUTED EVENT MANAGEMENT SYSTEMS
US20120198477A1 (en) Event overflow handling by coalescing and updating previously-queued event notification
JP2018531472A6 (ja) スケーラブルなリアルタイムメッセージングシステム
JP2018531472A (ja) スケーラブルなリアルタイムメッセージングシステム
Bhimani et al. Message delivery guarantee and status update of clients based on IOT-AMQP
US20110131288A1 (en) Load-Balancing In Replication Engine of Directory Server
KR100671635B1 (ko) 스트리밍 미디어 서비스 관리 방법
JP6067714B2 (ja) イベントデータを取得するスケールアウトシステム
US20190370353A1 (en) Change notifications for object storage
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
KR101663412B1 (ko) 사물 인터넷에서 dds 기반 사물 품질의 설정 방법
JP4647511B2 (ja) 非同期メッセージ処理システム及び非同期メッセージ処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101018

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

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

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4647511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250