(57)【特許請求の範囲】
【請求項１】
情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムであって、
取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割手段と、
前記分割した情報取得要請について、前記情報取得装置に対して情報取得時間の問い合わせを実施し、該問い合わせの結果得られる情報取得時間が最小となる前記情報取得装置を、前記情報取得要請を行う前記情報取得装置に決定する情報取得装置決定手段と
を備えたことを特徴とする非同期メッセージ処理システム。
【請求項２】
前記情報取得要請は、同期通信による情報取得を含むことを特徴とする請求項１に記載の非同期メッセージ処理システム。
【請求項３】
前記情報取得要請分割手段は、前記取得するべき情報について同一の連鎖系列を検出する連鎖系列検出手段を含み、該連鎖系列検出手段による同一の連鎖系列検出結果に基づいて、前記情報取得要請を分割することを特徴とする請求項１に記載の非同期メッセージ処理システム。
【請求項４】
情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムにおいて動作する非同期メッセージ処理プログラムであって、
取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割処理と、
前記分割した情報取得要請について、前記情報取得装置に対して情報取得時間の問い合わせを実施し、該問い合わせの結果得られる情報取得時間が最小となる前記情報取得装置を、前記情報取得要請を行う前記情報取得装置に決定する情報取得装置決定処理と
をコンピュータに行わせることを特徴とする非同期メッセージ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報発信者から発生するイベントをサービス提供者に仲介するメッセージ流通機構において、非同期のメッセージ通信を行う非同期メッセージ処理システム及び非同期メッセージ処理プログラムに関する。
【背景技術】
【０００２】
ユビキタスコンピューティングのアプリケーションを構成する場合、無数の情報発信者とその情報を使用するサービス提供者が、メッセージを介して分散して存在することになる。情報発信者から発生するイベントをサービス提供者に仲介するメッセージ流通機構としては、Java Messaging Service(JMS；Javaは登録商標)APIに代表されるPublish／Subscribe形式の非同期メッセージングミドルウェアが代表的である。非同期メッセージングのPublish／Subscribeモデルの場合、ＲＰＣ（Remote Procedure Call）などの同期型の通信とは異なり、処理の待ち合わせや、頻繁なポーリング、コネクションの長期使用などによるリソース消費が生じないという特徴を有している。
【０００３】
しかし、インターネット規模の非同期メッセージ流通機構を想定した場合は、Publish／Subscribeのメッセージング形式でも不十分になる可能性がある（非特許文献１）。すなわち、サービス提供者が、幾多の情報発信者から生じる多種多様なイベントをすべて監視しなければならない場合、システム全体のスケーラビリティ、ロバスト性を確保できないだけでなく、複数のプリミティブなイベントから得られるパターンなどのサービス提供者が本当に要求するものを取得するのがますます難しくなってしまう。
【０００４】
例えば、「部屋にブライアンがいるのにピーターがいなければピーターにメールで呼び出しを通知する」といったことを実現するために、ドアセンサや床の圧力センサ、個人識別システムなどから生じるイベントを、そのサービスを提供しようとするものが全て監視しなければならない場合、ネットワーク上のイベントの流通量は単純にイベント発信者数×イベント発信数×イベント利用者数となり、流通規模の増大に耐えられない可能性がある。また、サービスオーサリングの観点からするとサービス提供者の負担が大きくなりすぎるという問題がある。
【０００５】
そこで非特許文献１では、非同期メッセージ流通機構を流れるイベントに対して、サービス提供者が求めるイベントパターン（composite event；ＣＥ）を定義すれば、その定義に基づいて有限状態オートマトン（Finite State Automaton；ＦＳＡ）が流れるイベントの監視と処理を代行し、ＦＳＡがサービス提供者の求めるパターンが生じたことを検出したときに、その旨をサービス提供者に通知する機構を提案している。ここで用いられているＦＳＡは、いくつかの状態が設定されており、適切なイベント検出や時間経過によって状態間を遷移するという一般的なものである。
【０００６】
このようなＦＳＡを用いた非同期メッセージ流通機構の構成を図７に示す。図７は、非特許文献１から引用した図である。図７において、Ｓｒｃはイベントを発生する情報提供者、Ｓｉｎｋはイベントを利用するサービス提供者であり、ＣＥＤ（composite event detector）はＣＥの定義にしたがってイベントを監視し、ＦＳＡによってパターン検出を行うモジュールである。ＣＥＤは分散配置が可能であり、パターン検出を多段化してネットワーク帯域の広い部分にイベントを多めに流すといった工夫が可能な設計となっている。
【０００７】
図８に、ＣＥの定義がＣ1とＣに多段化されている様子を示す。図８は、非特許文献１から引用した図である。図８に示すように記述段階でＣ1というＣＥのsub expressionを切り出すことで、例えば、Ｃ1を検出するためのＣＥＤとＣを検出するためのＣＥＤを分散できるようにしている。Ｃ1は、「会議室のホワイトボードの電源が入る」−「ｆ３で定義される人が入ってくる」−「ホワイトボードの電源が切れる」という複合イベントを表しており、Ｃは「Ｃ1イベントが発生して５分以内にｆ２で定義されるログイン処理が発生した」という複合イベントを表している。状態遷移を定義する際は、到着イベントの順番について、ネットワークの伝送遅延などを考慮した「確実な前後関係」と「不確実な前後関係」を使い分けられる。
【非特許文献１】Peter R. Pietzuch, Brian Shand, and Jean Bacon: Composite Event Detection as a Generic Middleware Extension, IEEE Network, January/February 2004, pp.44-55.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非特許文献１は、Publish／Subscribe形式の通信モデルの非同期メッセージ流通機構において、流通するイベントをパターン定義に基づいて状態遷移モデルによってフィルタリングできるようにすることで、イベント消費者であるサービス提供者が、必要とする実行契機をシンプルに取得できるようにするものである。パターン検出の作業は、パターン検出器（ＣＥＤ）の分散配置によってネットワーク上に負荷分散される。
【０００９】
しかしながら、非特許文献１の場合、処理の多段化が亢進して、ＣＥＤ間でイベントの連鎖がより多く発生するようになれば、連鎖系全体で発生する遅延の幅が大きくなる、あるいは検出すべきパターンが検出できなくなるといった事態の発生が避けられなくなる。例えば、『ＣＥａの「あとに」Event３が生じる』というパターンＣＥｂをＣＥＤαで検出する場合、ＣＥａは『Event１の「あとに」Event２が生じる』ことを表すもので、ＣＥＤβによって検出するものとする。ここで、分散配置されているＣＥＤβとＣＥＤαの間に伝送遅延が生じたりＣＥＤβで処理遅延が生じたりすると、３つのイベントEvent１、Event２、Event３がこの順に発生したにもかかわらず、ＣＥＤαでは本来の順番（ＣＥａのあとにEvent３）ではなく、Event３のあとにＣＥａが到着してしまうという事態が生じうる。これは、非同期メッセージ流通機構においては、ＣＥＤを多段化すると、本来検出されるべきＣＥが検出されないことが生じうることを示している。
【００１０】
非特許文献１では状態遷移を定義する際に、到着イベントの順番について、ネットワークの伝送遅延などを考慮した「確実な前後関係」と「不確実な前後関係」を使い分けられるようにする工夫を施しているが、それでも上記の課題の根本的な解決には至っていない。また、非特許文献１などに示す各種イベント交換による非同期メッセージ流通機構では、イベントをほぼ発生しない静的なシステムに格納されている静的なデータの参照利用、すなわち同期通信の待ち合わせによって、非同期メッセージングであるイベント処理が影響を受けることについては考慮されていない。
【００１１】
例えば、ドアセンサで検出されたイベントに「識別番号」があり、その「識別番号」の持ち主の性別を使って何らかの判断をするような場合に、通常は、「ユーザ管理システム」から「識別番号と持ち主の性別」を示すイベントが発生するのを待つのではなく（このような「イベント」は通常発生しないため）、「ユーザ管理システム」に同期通信で問い合わせすることになる。このような同期通信が増えると、前述のように、本来検出されるべきＣＥが検出されないことが生じうる。
【００１２】
分散ノード間では完全な時間合わせは根本的に困難であるし、未到着のイベントを予想して待つことも不可能なため、イベント到着の時系列が狂ったような場合、複合イベントの検出結果には回復不可能な影響が発生することになる。例えば、『「ドアを開けて入ってきた人が女」のイベント発生直後に「部屋のライトが点く」イベントが発生したら』というＣＥの場合、性別の問い合わせで発生した待ち合わせが長引いている間に「部屋のライトが点く」イベントが到着してしまうと、ＦＳＡは「部屋のライトが点く」イベントを待つ状態でとどまってしまう。
【００１３】
多くのイベント交換による非同期メッセージ流通機構では、このような事態を避けるために、明示的あるいは暗示的に、前述の「ユーザ管理システム」に相当する静的なシステムが、性別の変更がなくとも「識別番号と持ち主の性別」を示すイベントを高頻度で一定時間おきに発行するというように、定期的に静的データの情報を含むイベントを出すことを要請している。もちろん、そのためには静的なデータ保持者側に本来不要なイベントの発生を強いることになるし、このメッセージ流通の規模が大規模になればなるほど、参加ノードの数が増えれば増えるほど、ネットワーク帯域の消費は指数的に増加してしまうという問題がある。
【００１４】
本発明は、サービス提供者が本当に要求するもの、すなわち複数のプリミティブなイベントから得られるＣＥを得るために、幾多の情報発信者から生じる多種多様なイベントをすべて監視しなくていいようにするという課題設定は非特許文献１に示す技術と共有するが、その課題に対して異なるアプローチをとることで、上述の問題を解決することができる非同期メッセージ処理システム及び非同期メッセージ処理プログラム提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムであって、取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割手段と、前記分割した情報取得要請について、前記情報取得装置に対して問い合わせを実施し、該問い合わせの結果に基づいて、前記情報取得要請を行う前記情報取得装置を決定する情報取得装置決定手段とを備えたことを特徴とする。
【００１６】
本発明は、前記情報取得要請は、同期通信による情報取得を含むことを特徴とする。
【００１７】
本発明は、前記情報取得要請分割手段は、前記取得するべき情報について同一の連鎖系列を検出する連鎖系列検出手段を含み、該連鎖系列検出手段による同一の連鎖系列検出結果に基づいて、前記情報取得要請を分割することを特徴とする。
【００１８】
本発明は、前記情報取得装置決定手段は、前記問い合わせの結果得られる情報取得時間に基づいて、前記情報取得要請を行う前記情報取得装置を決定することを特徴とする。
【００１９】
本発明は、情報を取得する情報取得装置を複数配置した非同期メッセージ処理システムにおいて動作する非同期メッセージ処理プログラムであって、取得するべき情報が順序性を有する場合に、該取得するべき情報について同一の連鎖系列単位で情報取得要請を分割する情報取得要請分割処理と、前記分割した情報取得要請について、前記情報取得装置に対して問い合わせを実施し、該問い合わせの結果に基づいて、前記情報取得要請を行う前記情報取得装置を決定する情報取得装置決定処理とをコンピュータに行わせることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、メッセージの到着に際して、別の静的な情報を取得するなど処理遅延が発生しうるメッセージ処理を分散システムで行う際にも、先発のイベントの処理中に後発のイベントをロストしないようにすることができるとともに、処理系をネットワークのパフォーマンスを考慮して配置することで大規模化に耐えられるパフォーマンスを確保することができるという効果が得られる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施形態による非同期メッセージ処理システムを図面を参照して説明する。
本発明では、メッセージ処理指示命令の基本記述ＰＲを以下の４つ組（ｓ，ｒ，ｃ，ｐ）とし、これを不可分とする。
・Ｓｕｂｓｃｒｉｂｅ（ｓ）：  監視対象、モニタするイベントの定義
・Ｒｅｔｒｉｅｖｅ（ｒ）  ：  取得対象、取得する情報の定義
・Ｃｏｎｄｉｔｉｏｎ（ｃ）：  状況判断ロジックの定義
・Ｐｕｂｌｉｓｈ（ｐ）    ：  動作定義、新たに発行するイベントの定義など
【００２２】
あるＰＲは、非同期メッセージ流通機構からもたらされる監視対象イベントの到着によって活性化し、処理を開始する。そして、取得対象の情報を取得してから、監視対象と取得対象で得られた要素を使用して状況判断し、その結果が「ｔｒｕｅ」であった場合に生成対象で定義されるイベントを非同期メッセージ流通機構に放出する。ＦＳＡで扱うような状態遷移は複数のＰＲの組み合わせによって表現する。いわば一つのＰＲがＦＳＡにおける一状態であり、ＣＥ＝Ｐ（ＰＲ）である。ＰＲの組み合わせによって表現するＣＥでは、非特許文献１において定義されたＦＳＡによって処理するＣＥとは異なり、Ｒｅｔｒｉｅｖｅ表現によって静的なデータを取得できる。ＦＳＡ処理のためのＣＥの特徴であるタイムラインを勘案した状態遷移は、イベントのタイムスタンプ要素をCondition式で評価することで実現する。
【００２３】
状態遷移は、Ｐｕｂｌｉｓｈ定義において発行するイベントをステートの出力と読み替えることで実現する。例えば、ｅ１（ｓ１、ｒ１、ｃ１、ｐ１）とｅ２（ｓ２、ｒ２、ｃ２、ｐ２）においてｐ１＝ｓ２であった場合ｅ１とｅ２はｐ１（＝ｓ２）で定義されるイベントを介して遷移する。ただし、ＰＲ自体はステートレスであるため、複雑な状態遷移を表現するためには、記述の複雑化が避けられない。しかし、この点については、コンパイラなどを用意することで、ＰＲを直接記述するのではなく、非特許文献１に示されるＣＥ記述をはじめとする高級言語での記述が可能になればよい。
【００２４】
いま、ｅ１（Ａ，Ｂ，ａ１＝ｂ１，Ｃ），ｅ２（Ｃ，｛Ａ，Ｂ｝，｛ｔｃ＜ｔａ＋ε１，ｃ１＝ｂ１｝，Ｄ），ｅ３（Ｄ，｛Ａ，Ｃ｝，｛ｔｄ＜ｔａ＋ε２，ｄ１＝ｃ２｝，Ｅ）と定義されていたとする。ただし、イベント／情報はそれぞれＡ（ｔａ，ａ１，ａ２，ａ３，…），Ｂ（ｔｂ，ｂ１，ｂ２，ｂ３，…），Ｃ（ｔｃ，ｃ１，ｃ２，ｃ３，…），Ｄ（ｔｄ，ｄ１，ｄ２，ｄ３，…），Ｅ（ｔｅ，ｅ１，ｅ２，ｅ３，…）であり、要素ｔｘは各データのタイムスタンプである。
【００２５】
ｅ１，ｅ２，ｅ３の検出器が分散配置されていた場合は、Condition式ｔｃ＜ｔａ＋ε１やｔｄ＜ｔａ＋ε２が「ｆａｌｓｅ」となる可能性がある。これはｅｌ，ｅ２の評価の間の伝送遅延がε１を越えてしまう場合や、ｅ２やｅ３での情報取得のための待ち合わせ時間の合計がε２を越えてしまう場合などである。
【００２６】
一見すれば分かるように、取得対象となっているＡやＢ、Ｃはこの連鎖系においてすでに取得されていたり、連鎖系の中で生成されていたりするものであり、検出器が局所化されていて、取得結果がキャッシュされていれば２回目以降の取得に待ち時間は生じない。また、検出器が局所化されていれば、ｅ１→ｅ２→ｅ３の連鎖もネットワーク遅延なしに処理することができる。すなわち、この例のように与えられたＰＲに対して適切な局所化を施せば、先に指摘したような問題を回避することができる。また、このようにＰＲを局所化すれば、待ち合わせ時間が大きな情報取得などの処理が終わらないうちに、処理すべき後発のイベントが発生してしまった場合でも、検出器が検出器のキューに到着したイベントを入れておき、処理が終わってから検出器がそのキューからデキューすることで、処理中に到着していた後発のイベントを得ることができ、非特許文献１に示す方式など既存の方式で発生する検出されるべき複合イベントの検出に失敗する問題は起こらない。
【００２７】
本発明は、与えられた基本記述集合ＣＥから局所化すべき部分集合群を形成し、得られたＰＲの集合をＣＥＤに分散配置し、各ＣＥＤにおいてはＰＲの連鎖や情報取得の最適化を図るために、部分集合群の形成にあたっては、ネットワークトポロジなどのＣＥＤの分散特性を考慮して、系全体のパフォーマンスを確保する。
【００２８】
次に、図１を参照して、本実施形態の構成を説明する。図１は、同実施形態の構成を示すブロック図である。この図において、符号１は、非同期のメッセージ通信を行う非同期メッセージング機構である。符号２は、ＣＥを検出するＣＥ検出器（以下、ＣＥＤと称する）である。符号３は、情報発信を行う情報発信ノード（以下、ｓｒｃと称する）、符号４は、発信された情報を受信する情報受信ノード（以下、ｓｉｎｋと称する）である。符号５は、情報を保持している情報保持ノード（以下、ｈｉｄと称する）である。符号６は、部分集合算出器（以下、ＰＳＤと称する）であり、制御部６１、記憶部６２、入力部６３、出力部６４及び送受信部６５から構成する。ＣＥＤ２、ｓｒｃ３、ｓｉｎｋ４及びｈｌｄ５は、非同期メッセージング機構１上にそれぞれ複数存在する。
【００２９】
非同期メッセージング機構１は、ＪＭＳなどのように発行者や「ＴＯＰＩＣ」に対して受信登録をかける通信モデルと若干異なり、イベントの種別に対して受信登録をかける形式である。この通信モデルはcontent-based publish／subscribeとして知られている。このような非同期メッセージング機構１は、既存のＪＭＳなどの非同期メッセージング機構にラッパー実装することで得ることができる。また、ｈｌｄ５は、非同期メッセージを能動的に発信しないノードであり、問い合わせに対してのみ保持している情報を提供するものである。ＰＳＤ６は、いくつかのＣＥＤ２を管理しており、与えられた基本記述集合ＣＥに対して、管理下のＣＥＤ２それぞれのスループットやネットワークなどのパフォーマンスを考慮して、ＣＥをそれぞれのＣＥＤに分配すべき基本記述集合の部分集合群に分割する。
【００３０】
次に、図２を参照して、基本記述集合ＣＥが与えられた際のＰＳＤ６の動作を説明する。まず、ＰＳＤ６は、入力部６３や送受信部６５を通じたＣＥの投入を受けて（ステップＳ１）、制御部６１にてＣＥの構成要素ＰＲを調べ、連鎖関係を検出する。連鎖関係の検出には、監視対象と取得対象のマッチングを用いる。次に、検出した連鎖関係を構成する取得要素を抽出する（一次処理；ステップＳ２）。
【００３１】
ＣＥの構成要素として、例えば、ｅ１（Ａ，Ｂ，，Ｃ），ｅ２（Ｃ，Ｂ，，Ｅ），ｅ３（Ｅ，Ｆ，，Ｃ），ｅ４（Ｃ，Ｈ，，Ｉ），ｅ５（Ｓ，Ｔ，，Ｕ），ｅ６（Ｕ，Ｖ，，Ｗ），ｅ７（Ｘ，Ｙ，，Ｚ）がＰＳＤ６に入力されたとき、ＰＳＤ６にて連鎖系列情報ｃ１（ｅ１，ｅ２，ｅ３，ｅ４），ｃ２（ｅ５，ｅ６），ｃ３（ｅ７）を取得し、それら連鎖系列の取得要素系列はそれぞれｒ１（Ｂ，Ｆ，Ｈ），ｒ２（Ｔ，Ｖ），ｒ３（Ｙ）とし、これら連鎖系列情報・取得要素系列を記憶部６２に格納する。図６（ａ）に記憶部６２内に記憶されるＣＥデータのテーブル構造を示す。ＣＥデータテーブルは、ＣＥ毎に、ＣＥ投入データ、割当フラグが関連付けられた連鎖系列データ及び取得要素系列データの記憶領域を有している。なお、同一連鎖系列内での取得対象の重複は取り除かれる（ｒ１の「Ｂ」）。また枝のある連鎖系列も形成される（「ｃ１のｅ２とｅ４」）。さらに、１要素だけの連鎖系列も形成される（「ｃ３」）。ここで取得要素は、ｈｌｄ５に対して同期通信によって問い合わせることで情報が得られるものである。
【００３２】
取得要素系列の算出の後、制御部６１は記憶部６２に格納されたＣＥＤデータに基づいて、管理下のＣＥＤ２に当該取得要素についての取得時間を問い合わせる（ステップＳ３）。問い合わせの際は各ＣＥＤ２に対して、先に算出した取得要素系列（ｒ１，ｒ２，…）すべてがそれぞれ受け渡される。各ＣＥＤ２では各取得要素系列について実際に同期問い合わせで取得を試み、それぞれに必要な時間を計測する（ステップＳ４）。ＣＥＤ２毎に得られた計測時間の集合ｎｐ（ｔ＿ｒｌ，ｔ＿ｒ２，…）はノードプロファイルとしてＰＳＤ６に送信され、ＰＳＤ６の記憶部６２のＣＥＤデータテーブルに格納する。図６（ｂ）に記憶部６２内に記憶されるＣＥＤデータのテーブル構造を示す。ＣＥＤデータテーブルは、ＣＥＤ毎に、割当可能ＰＲ数、連鎖系列毎の取得情報計測時間（ノードプロファイル）及び割当連鎖系列の記憶領域を有している。
【００３３】
ＰＳＤ６は、制御部６１が記憶部６２における得られたノードプロファイルを参照し、連鎖系の単位でＰＲのＣＥＤ２に対する割り当てを決定し、記憶部６２に格納する。この割り当てアルゴリズムは、刻々と変化するネットワーク環境に対して最適解を得ることが不可能であることを考慮したヒューリスティックである。
【００３４】
全ての連鎖系列をＣＥＤ２に対して割り当てたということは、与えられたＣＥについて、各ＣＥＤに割り当てるべきＣＥの部分集合が得られたということである（ステップＳ５）。ＰＳＤ６は得られたＣＥの部分集合をＣＥＤ２−１、ＣＥＤ２−２、ＣＥＤ２−３、…にそれぞれ送信する（ステップＳ６）。
【００３５】
次に、図３を参照して、ＣＥの部分集合として連鎖系の単位でＰＲをＣＥＤ２に対して割り当てる割り当てアルゴリズムの動作を説明する。まず、ＰＳＤ６は、記憶部６２に格納された全ての連鎖系列を未割り当てとし、全てのＣＥＤ２に対して、予めＰＳＤ６にて取得している各ＣＥＤ２の処理能力情報に応じた割り当て可能ＰＲ数を設定して記憶部６２に格納する（ステップＳ１１）。そして、未割り当て連鎖系列のうち、制御部６１にて最も連鎖数の大きな系列を一つ選択する（ステップＳ１２）。
【００３６】
次に、「割り当て可能ＰＲ数＞選んだ連鎖系列の連鎖数」を満たすＣＥＤ２を制御部６１にて全て選択し（ステップＳ１３）、選択できなかった場合は、全てのＣＥＤ２の割り当て可能ＰＲ数を一定数増加させて（ステップＳ１４、Ｓ１５）、「割り当て可能ＰＲ数＞選んだ連鎖系列の連鎖数」を満たすＣＥＤ２を選択できるまで繰り返す。
【００３７】
「割り当て可能ＰＲ数＞選んだ連鎖系列の連鎖数」を満たすＣＥＤ２が選択できた場合、選んだＣＥＤ２のうち、各ＣＥＤ２からＰＳＤ６への評価対象連鎖の取得対象系列の計測時間の報告に基づき、計測時間が最小となるＣＥＤ２を制御部６１が選択する（ステップＳ１６）。そして、この選択したＣＥＤ２の割り当て可能ＰＲ数を、選択した連鎖系列の連鎖数として記憶部６２に格納するとともに、この連鎖系列を選択したＣＥＤ２に対して割り当て済みとして、記憶部６２の割当フラグデータ（図６（ａ）参照）を更新する（ステップＳ１７）。この処理を全ての未割り当て連鎖系列に対して実行することにより、連鎖系の単位でＰＲを各ＣＥＤ２に対して割り当てる（ステップＳ１８）。
【００３８】
次に、図４を参照して、図１に示すＣＥＤ２の構成を説明する。ＰＳＤ６からＣＥの部分集合を割り当てられたＣＥＤ２は、ＣＥマネージャ２１に格納されたＣＥＤ２に対して割り当てされたＣＥ内の監視対象をすべて抽出する。メッセージリスナ２２は、ＣＥマネージャ２１が抽出した監視対象を非同期メッセージング機構１を経由して各ノードに取得依頼をする。非同期メッセージング機構１は、取得依頼に応じてイベントを適宜ＣＥＤ１のメッセージリスナ２２に送信する。ＣＥＤ２はキュー２３を備えており、到着イベントをキューイングする。
【００３９】
ここで、ＣＥＤ２の処理機構２５がキューからイベントをデキューすることで始まるＣＥＤ２の処理動作を図５を参照して説明する。まず、処理機構２５は、到着イベントを監視対象としているＰＲをＣＥマネージャ２１の格納情報に基づいて選択する（ステップＳ２１）ことにより、選択するべきＰＲがあるか否かを判定する（ステップＳ２２）。この判定の結果、選択するべきＰＲがあれば、ＣＥＤ２の取得情報保持領域２６に、同期通信により取得すべき取得対象のデータが格納されているか否かを判定する（ステップＳ２３、Ｓ２４）。この判定の結果、取得対象のデータが格納されていなければ、外部から必要情報を取得し、ＣＥＤ２の取得情報保持領域２６に取得した必要情報を格納する（ステップＳ２５）。
【００４０】
次に、処理機構２５は、キュー２３から取得した情報及び取得情報保持領域２６から取得した情報に基づき条件判断を行い（ステップＳ２６）、出力が得られたか否かを判定する（ステップＳ２７）。出力が得られた場合、出力があったことを示す情報を到着イベントとして発行し、非同期メッセージング機構１に対しても送信して（ステップＳ２８）、ステップＳ２１へ戻って処理を繰り返す。一方、到着イベントを監視対象としているＰＲがない場合、または条件判断の結果において出力が得られなかった場合は、ＣＥＤ２の取得情報保持領域２６に格納されている情報を全て消去する（ステップＳ２９）。
【００４１】
このように、ＰＲを処理する際に同期通信により取得した情報は、連鎖系列が止まるまでＣＥＤ２の取得情報保持領域２６で保持しておき、同一の連鎖系列内で使いまわすことにより、同期通信による情報取得回数を減らして同期問い合わせの待ち合わせ時間を減らす。また、情報取得にかかる時間については、ＰＳＤ６でのＰＲ割り当て処理によって、ネットワークの遅延などを考慮したできるだけ問い合わせ時間が短くなるＣＥＤ２がＰＲを担当できる配置としたため、全体として短くすみ、効率化することができる。
【００４２】
また、処理の結果得られた出力は改めて入力イベントとして扱いキューに格納され、キューイングされているその他のイベントとは無関係に処理を進めることにより、出力はキューの「先頭」に置かれ、それが直ちにデキューされるようなるため、同一ＣＥＤ２内で発生する連鎖は遅延なく処理することができる。処理の結果得られた出力はメッセージパブリッシャ２４を通して非同期メッセージング機構１に対しても送信される。この際、ＣＥＤ２が非同期メッセージング機構１に対して送信したイベントをそのＣＥＤ２自身が取得申込みしていた場合、同一のイベントが、連鎖対象として直ちにキューからデキューされるイベントと、非同期メッセージング機構１から改めて到着するイベントと、２つ到着してしまうことを防ぐために、ＣＥＤ２は送信者が自分自身であるようなイベントが非同期メッセージング機構１からもたらされた場合、それをフィルタしてキューイングしないようにする。そして、上記の処理が終了したら、処理機構はキュー２３にデキューをかけ、新たに到着しているイベントの処理を開始する。
【００４３】
このように、従来技術においては、同一の連鎖系の情報群を複数に分断して複数のＣＥＤ２に取得要求を行い、複数のＣＥＤ２から管理センタに報告を受けるようにした場合に、あるＣＥＤ２において遅延などが発生すると、同一連鎖系の情報群における真の順序を反映した情報取得ができない場合があるという問題が発生するが、同一連鎖系は分けないように配慮して各ＣＥＤ２に情報取得要請を配分するようにしたため、従来技術における問題点を解決することができる。この解決策が有効になるのは、特に同期通信による取得必要情報があるや処理に時間がかかるなどで処理に遅延が発生しうるメッセージ処理からなる連鎖処理系がある場合である。ただし、同一ＣＥＤ２に情報取得割り当てを配分した情報群については、同一ＣＥＤ２内で情報の順序の狂いは発生しないように各ＣＥＤ２では非同期メッセージングをキューイングすることを想定しており、例えば、「Ａが来て、Ｂを取得するなどの時間のかかる処理をして、その後にＣが来たらＯＫ」という処理ロジックがＣＥＤ２にあって、「Ａが来て、処理が終わらないうちにＣが来て、処理が終わる」というケースの場合にも、処理が終わってからＣＥＤ２が自前のキュー２３からデキューすれば、処理中にＣＥＤ２に到着していたＣを得ることができる。
【００４４】
また、実行時の情報取得速度を向上させるために、同―連鎖系は分けずに連鎖系単位で各ＣＥＤ２に情報取得の割り当てを実施する前段階の準備として、同一の連鎖系単位で対象情報を分けて、事前にそれぞれの連鎖系中の取得必要情報についての取得時間などの事前問い合わせを全ＣＥＤ２に対して実施して、全てのＣＥＤ２からの情報収集時間の回答を管理側が得て、その得た結果に基づいて最終的に各連鎖系についての問い合わせ先（配分先）のＣＥＤ２を決定するようにしたため、同一連鎖系単位の情報問い合わせ先の最適化により、同期情報取得に費やされる総時間を減らすことができる。
【００４５】
また、実行時の情報取得速度を向上させるために、同―連鎖系の中の同一取得情報の重複は避けるようにキャッシュ情報を活用するようにしたため、同期情報取得の回数を減らし、同期情報取得に費やされる総時間を減らすことができる。
【００４６】
このように、情報取得装置の分散化環境により構成される非同期メッセージング機構において、取得情報について同期通信により取得する情報が加わり処理速度にばらつきが発生しやすい状況、さらに情報取得順序の正確性が加味される状況においても、順序性を加味した情報取得の適正化実現と共に、処理速度の最適化を図ることが可能となる。またメッセージ処理において、同期通信による情報取得（待ち合わせに時間を消費する）だけでなく、処理に時間のかかるもの全般が入り込んだ場合も適用可能である。
【００４７】
以上説明したように、非同期メッセージング機構において、サービス提供者は、ＣＥを定義することで幾多の情報発信者から生じる多種多様なイベントをすべて監視しなくて済むようになる。ＣＥの定義には、イベントとして発信されないような情報に対する問い合わせを組み込むことができる。また、非同期メッセージング機構を流通するイベントから、ＣＥ定義に基づいてＣＥを分散して検出するにあたって、ＰＳＤが処理ノード毎に異なる処理時間や処理ノード間で発生する遅延による影響を最大限排除できるような分散配置をヒューリスティックによって算出することによって、検出されないイベントパターンの発生を最小化できる。また、従来の非同期メッセージング機構における流通イベントのパターン検出とは異なり、パターン検出に際しての同期通信による問い合わせを考慮しており、イベントとして発信されないような情報を扱うにあたっても、従来の非同期メッセージング機構とは異なり、同期問い合わせを効率化することで、ネットワークトラフィックの増大を抑えることが可能となる。
【００４８】
なお、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより非同期メッセージ処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４９】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】基本記述集合ＣＥが与えられた際のＰＳＤ８の動作を示すシーケンス図である。
【図３】ＰＲをＣＥＤに割り当てる処理動作を示すフローチャートである。
【図４】図１に示すＣＥＤ２の詳細な構成を示すブロック図である。
【図５】図４に示すＣＥＤ２の処理動作を示すフローチャートである。
【図６】図１に示す記憶部６２のテーブル構造を示す説明図である。
【図７】非同期メッセージ流通機構の構成を示す説明図である。
【図８】ＣＥの定義が多段化された状態を示す説明図である。
【符号の説明】
【００５１】
１・・・非同期メッセージング機構、２・・・ＣＥ検出器（ＣＥＤ）、２１・・・ＣＥマネージャ、２２・・・メッセージリスナ、２３・・・キュー、２４・・・メッセージパブリッシャ、２５・・・処理機構、２６・・・取得情報保持領域、３・・・情報発信ノード（ｓｒｃ）、４・・・情報受信ノード（ｓｉｎｋ）、５・・・情報保持ノード（ｈｉｄ）、６・・・部分集合算出器（ＰＳＤ）、６１・・・制御部、６２・・・記憶部、６３・・・入力部、６４・・・出力部、６５・・・送受信部
【図１】
0004647511.tif 000002
【図２】
0004647511.tif 000003
【図３】
0004647511.tif 000004
【図４】
0004647511.tif 000005
【図５】
0004647511.tif 000006
【図６】
0004647511.tif 000007
【図７】
0004647511.tif 000008
【図８】
0004647511.tif 000009