(57)【要約】  通信ネットワークを介して受信したデータセットを、適切な単位で並列に処理する。データ処理システム（１１００）は、データの発生源から通信ネットワークを介して１以上のデータセットを受信する受信部（１１０１）と、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される１以上のルールについて、上記受信手段により受信した上記データセットが上記条件を満たすか否かを判定する判定処理を、並列に実行可能な並列実行部（１１０２）と、上記受信手段により受信した１以上の上記データセットを、それぞれの上記データセットの通信経路に応じて、上記判定処理に並列に割当てる割当て部（１１０３）と、を備える。
2016125499.tif 000002
【特許請求の範囲】
【請求項１】
データの発生源から通信ネットワークを介して１以上のデータセットを受信する受信手段と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とを含む１以上のルールについて、前記受信手段により受信した前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、
前記受信手段により受信した１以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当てる割当て手段と、を備える、データ処理システム。
【請求項２】
前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
前記割当て手段は、１以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とを比較した結果に基づいて、前記受信手段において受信された前記データセットが割当てられる前記判定処理を決定する
請求項１に記載のデータ処理システム。
【請求項３】
前記割当て手段は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とが等しい場合か、又は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、前記受信手段において受信された前記データセットが流れる通信経路が含まれる場合に、
前記受信手段において受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当てる
請求項２に記載のデータ処理システム。
【請求項４】
前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
前記サービスバスを介してメッセージ送信先にメッセージを送信する１以上の送信手段を更に備え、
前記受信手段は、前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
前記送信手段は、前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
前記割当て手段は、
前記通信経路を表す情報に含まれる、前記受信手段を表す情報と、前記送信手段を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定する請求項３に記載のデータ処理システム。
【請求項５】
前記並列実行手段は、少なくとも１以上の前記ルールに関する前記判定処理を実行可能な照合処理実行手段を１以上含むと共に、当該照合処理実行手段を並列に実行し、
前記割当て手段は、前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記照合処理実行手段に並列に割当てる請求項４に記載のデータ処理システム。
【請求項６】
前記受信手段は、前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
前記送信手段は、前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する請求項５に記載のデータ処理システム。
【請求項７】
前記割当て手段は、複数の前記ルールに関する前記判定処理において共通に用いられる前記データセットである第１のデータセットを、当該複数の前記ルールに関する判定処理をそれぞれ実行する前記照合処理実行手段に重複して割当てる請求項５又は請求項６に記載のデータ処理システム。
【請求項８】
前記割当て手段は、複数の前記ルールの中の個別の前記ルールに関する前記判定処理にのみ用いられる前記データセットである第２のデータセットを、当該個別の前記ルールに関する判定処理を実行する前記照合処理実行手段にのみ割当て、
前記照合処理実行手段は、前記第１のデータセットを用いる前記ルールと、前記第２のデータセットを用いる前記ルールと、を少なくとも含む複数の前記ルールに関する前記判定処理を実行する
請求項７に記載のデータ処理システム。
【請求項９】
情報処理装置が、
データの発生源から通信ネットワークを介して１以上のデータセットを受信し、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む１以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する
データ処理方法。
【請求項１０】
データの発生源から通信ネットワークを介して１以上のデータセットを受信する処理と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む１以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する処理と、をコンピュータに実行させる
コンピュータ・プログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信ネットワークを介して受信したデータを適切な単位で並列に処理する技術に関する。
【背景技術】
【０００２】
近年、通信ネットワークの高速化及び広域化、あるいは、モバイルデバイスや各種センサの普及等、各種情報通信技術が普及している。これに伴い、処理（あるいは蓄積）すべきデータ（１以上のデータセット）の多様化、大規模化が急速に進んでいる。なお、以下において１以上のデータセットをまとめて「データ」と称する。【０００３】
このような状況において、様々なサービスの連携基盤となるサービスバスにおいても、扱うデータの量が増大することが想定される。この場合、このようなサービスバスは、時々刻々と発生するデータ（イベント）を高速に（例えば、リアルタイムに）処理するニーズ（要求）に応えることを求められる場合がある。【０００４】
また、多数のデータ（イベント）を処理可能な技術として、複合イベント処理（ＣＥＰ：Ｃｏｍｐｌｅｘ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）システムが知られている。ＣＥＰシステムは、様々な情報処理端末あるいはセンサ等から送信されるデータを扱うとともに、受信したデータを高速に処理することが求められる。これより、ＣＥＰシステムに関して、データの処理に関する負荷を分散又は低減可能な技術が求められる。このようなＣＥＰシステムに関連する技術が、例えば、下記のような特許文献に開示されている。【０００５】
特許文献１（国際公開第２０１１／０１０７１１号）は、イベント処理システムにおいて、イベントを処理サーバに分配するディスパッチャに設定されるルールの数を低減することにより、ディスパッチャの負荷を分散する技術を開示する。【０００６】
特許文献２（特開２０１３−１１４６２６号公報）は、イベント処理システムを構成する処理装置間の通信を低減する技術を開示する。特許文献２に開示された技術は、設定された条件に合致したデータを処理するクエリが複数の処理装置に配置され得る状況において、当該クエリ間の通信回数が低減されるように、特定のクエリの組を同一の装置に配置する。【０００７】
特許文献３（特開２０１２−０７９２４２号公報）は、イベント処理システムを構成する各処理装置に配置されたルール間の関連度と、各処理装置の負荷状況とに基づいて、各処理装置の負荷が一定水準以下になるようにルールを再配置する技術を開示する。【０００８】
特許文献４（特開２００６−３０９７０１号公報）は、イベント処理システムにおいて、各処理サーバに対するイベントの分配を制御することにより、それぞれの処理サーバに対する負荷を分散する技術を開示する。特許文献４に開示された技術は、処理サーバ毎に設定されたルールの数又はルールに含まれるイベント条件等に基づいて、各処理サーバに対する処理ルールの振り分けを制御する。【０００９】
なお、複合イベント処理を適用したシステムの一例として、複数の情報源からイベントを受信することにより、監視対象のシステムにおいて実行される悪意のある活動を検知する技術が、特許文献５（特表２０１３−５３３５３１号公報）に開示されている。【００１０】
また、上記したサービスバスに関連する技術として、例えば、下記特許文献６（特開２０１４−１５３８５８号公報）が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２０１１／０１０７１１号
【特許文献２】特開２０１３−１１４６２６号公報
【特許文献３】特開２０１２−０７９２４２号公報
【特許文献４】特開２００６−３０９７０１号公報
【特許文献５】特表２０１３−５３３５３１号公報
【特許文献６】特開２０１４−１５３８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記したようなＣＥＰシステムにおいては、例えば、当該システムに送信されるデータの形式が定まっていない場合、データに対して画一的に処理を実行することが困難である。この場合、ＣＥＰシステムは、当該データを高速に処理できない可能性がある。【００１３】
また、データを高速に処理するべく、ＣＥＰシステムがデータに関する処理を並列化（分散）することが考えられる。しかしながら、並列処理を実行する処理要素（例えば、演算装置や、演算プロセス）の間でデータに関する情報を共有することが難しい場合がある。この場合、同一の処理要素により一括して処理されるべきデータが異なる処理要素に割り振られてしまうと、検知されるはずであったデータ（イベント）が見落とされる可能性がある。これにより、当該データに関する処理が、適切に実行されない可能性がある。また、データの共有に付随する処理負荷（オーバーヘッド）が大きい場合には、データに関する処理が十分に高速化されない場合がある。【００１４】
特許文献１に開示された技術を採用した場合、各ディスパッチャに設定されるディスパッチルールの数が低減されても、係るルールに適合するイベントの発生頻度によっては、特定のディスパッチャに対する負荷が分散されない可能性がある。【００１５】
また、特許文献２に開示された技術は、クエリ間の通信回数等に着目して各処理装置に対するクエリの配置を制御する技術である。また、特許文献３に開示された技術は、ルール間の関連度（要素の関連度）に着目して、各処理装置に対するルールの配置を制御する技術である。また、特許文献４に開示された技術は、処理サーバ毎に設定されたルールの数等に着目して、処理サーバに対するルールの配置を制御する技術である。即ち、特許文献２乃至特許文献４に開示された技術は、いずれも処理されるデータに直接的に着目する技術ではない。よって、これらの技術を採用した場合、同一の処理装置において処理されることが望ましいデータが、異なる処理装置において処理される可能性がある。【００１６】
本発明は上記のような事情を鑑みてなされたものである。即ち、本発明は、通信ネットワークを介して受信した通信データを、適切な単位で並列に処理可能なデータ処理システム等を提供することを主たる目的の一つとする。
【課題を解決するための手段】
【００１７】
上記の目的を達成すべく、本発明の一態様に係るデータ処理システムは、以下の構成を備える。即ち、本発明の一態様に係るデータ処理システムは、データの発生源から通信ネットワークを介して１以上のデータセットを受信する受信手段と、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される１以上のルールについて、上記受信手段により受信した上記データセットが上記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、上記受信手段により受信した１以上の上記データセットを、それぞれの上記データセットの通信経路に応じて、上記判定処理に並列に割当てる割当て手段とを備える。【００１８】
また、本発明の一態様に係るデータ処理方法は、以下の構成を備える。即ち、本発明の一態様に係るデータ処理方法は、情報処理装置が、データの発生源から通信ネットワークを介して１以上のデータセットを受信し、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される１以上のルールについて、上記データセットが上記条件に合致するか否かを判定する判定処理を、当該受信したデータセットの通信経路に応じて並列に実行する構成を有する。【００１９】
また、同目的は、上記構成を有するデータ処理システム、並びに対応するデータ処理方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記録媒体等によっても達成される。
【発明の効果】
【００２０】
本発明によれば、通信ネットワークを介して受信したデータを、適切な単位で並列に処理可能である。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の第１の実施形態に係るＣＥＰシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。
【図２】図２は、本発明の第１の実施形態に係るＣＥＰシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。
【図３】図３は、本発明の第１の実施形態に係るサービスバスシステムにおいて送受信されるデータの具体例を示す説明図である。
【図４】図４は、本発明の第１の実施形態に係るサービスバスシステムの動作を例示するフローチャートである。
【図５】図５は、本発明の第１の実施形態に係るＣＥＰシステムの動作を例示するフローチャートである。
【図６】図６は、本発明の第１の実施形態に係るＣＥＰシステムが保持するルールの形式を例示する図である。
【図７】図７は、本発明の第１の実施形態に係るＣＥＰシステムが保持するルールの具体例を例示する図である。
【図８】図８は、本発明の第１の実施形態に係るＣＥＰシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。
【図９】図９は、本発明の第１の実施形態の変形例１に係るＣＥＰシステムが保持するルールの具体例を例示する説明図である。
【図１０】図１０は、本発明の第１の実施形態の変形例１に係るＣＥＰシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。
【図１１】図１１は、本発明の第２の実施形態に係るデータ処理システムの機能的な構成を例示するブロック図である。
【図１２】図１２は、本発明の各実施形態に係るＣＥＰシステム（及びデータ処理システム）、あるいは、その構成要素を実現可能なハードウェアの構成を例示する図である。
【発明を実施するための形態】
【００２２】
以下、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。
【００２３】
まず、本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景等について説明する。
【００２４】
上記したように、通信ネットワークを介して提供される多様なサービスを相互に接続可能な技術として、例えば、サービスバスが用いられる場合がある。サービスバスは、例えば、複数のサービスの間でメッセージの送受信を仲介し、サービスの間の連携を実現する。係るサービスバスにおいて扱うメッセージの数やデータ（即ち、１以上のデータセット）の量が増大した場合を想定すると、それらのデータやメッセージを高速に（例えば、リアルタイムに）処理可能な技術が求められる。そこで、本発明の各実施形態においては、係るサービスバスに対してＣＥＰシステムを導入（適用）することにより、増大するメッセージやデータに対処する技術を実現する。
【００２５】
次に、各実施形態に係るＣＥＰシステム（あるいはＣＥＰ装置）について概要を説明する。以下の各実施形態において説明するＣＥＰシステムは、本発明の各実施形態におけるデータ処理システム（あるいはデータ処理装置）に包含される。ＣＥＰシステムは、データ（イベント）に対する処理条件（イベント条件）と、当該処理条件が満たされた場合に実行されるアクションと、により構成されるルールを保持する。係るルールは、例えば、ＣＥＰシステムの管理者等によって、ＣＥＰシステムに予め設定されていてもよい。
【００２６】
ＣＥＰシステムは、データを受信した際に、当該受信したデータにより、あるルールを構成するイベント条件が満たされるか否かを判定する。そして、ＣＥＰシステムは、あるルールを構成するイベント条件が満たされたと判定した場合には、当該ルールに設定されたアクションを実行する。以下、受信したデータがあるルールを構成するイベント条件を満たすか否かについてＣＥＰシステムが判断（判定）する処理を、ルール照合処理と称する。ＣＥＰシステムは、受信したデータ（イベント）を高速に処理すべく、ルール照合処理を並列に（分散して）実行する。係る並列処理は、例えば、複数の演算装置（あるいは演算装置を構成する演算処理コア）等を用いて、並行して処理（ルール照合処理等）が実行されることにより実現されてもよい。また、係る並列処理は、例えば、１以上の演算装置において、複数の処理要素（例えば、プロセスやスレッド等）が並行して処理されることにより実現されてもよい。この場合、係る並列処理は、疑似的な並列処理（例えば、複数の処理要素を時分割で処理する方法や、処理を細分化して演算器に割り当てる方法等）を含んでもよい。以下の各実施形態においては、係るルール照合処理の並列化について具体的に説明する。
【００２７】
なお、以下の各実施形態におけるＣＥＰシステム、及び、サービスバスシステムは１以上の専用のハードウェア装置、又は、汎用の情報処理装置等を用いて実現可能である。以下の各実施形態におけるＣＥＰシステムは単体装置としてのＣＥＰ装置を含み、サービスバスシステムは、単体装置としてのサービスバス装置を含む。ＣＥＰシステム及びサービスバスシステムを実現可能なハードウェア構成（例えば図１２）については後述する。
【００２８】
＜第１の実施形態＞
本発明の第１の実施形態に係るＣＥＰシステム及びサービスバスシステムの構成について図面を参照して詳細に説明する。図１は、本実施形態におけるＣＥＰシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。
【００２９】
図１を参照すると、本発明の第１の実施形態におけるサービスバスシステム１００は、データ発生源Ａ（１２０Ａ）及びサービスＡ（１６０Ａ）と通信可能に接続されている。
【００３０】
データ発生源Ａ（１２０Ａ）は、サービスバスシステム１００に対して、各種データ（イベント）を送信するデバイス又はシステム等である。データ発生源Ａ（１２０Ａ）は、例えば、各種情報処理端末や、各種センサ等であってもよい。データ発生源Ａ（１２０Ａ）は、例えば、何らかの事象が発生した際に、当該事象に関するデータ（イベント）を含むメッセージをサービスバスシステム１００に送信する。
【００３１】
サービスＡ（１６０Ａ）は、サービスバスシステム１００から送信されたメッセージに基づいて、各種サービスを提供可能な装置やシステム等である。サービスＡ（１６０Ａ）には、例えば、データ発生源Ａ（１２０Ａ）において生成されたデータ、あるいは、当該データに基づいて加工されたデータが、サービスバスシステム１００を介して送信されてもよい。
【００３２】
サービスバスシステム１００は、データの送信元から受信したデータに基づいて、当該データの送信先にメッセージを送信する。係るメッセージは、データの送信元から受信したデータを含んでもよく、受信したデータに基づいて加工されたデータを含んでもよい。以下、係るサービスバスシステム１００について説明する。
【００３３】
サービスバスシステム１００は、大別して、データ受信部Ａ（１３０Ａ）と、データ交換部１４０と、データ送信部Ａ（１５０Ａ）と、ＣＥＰシステム１１０と、を含む。
【００３４】
データ受信部Ａ（１３０Ａ）は、データ発生源Ａ（１２０Ａ）から送信されたデータを含むメッセージを受信する。データ受信部Ａ（１３０Ａ）は、例えば、データ発生源Ａ（１２０Ａ）から送信されたデータを、共通形式のデータに変換して、データ交換部１４０に渡してもよい。この場合、係る共通形式は、例えばＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等を用いて定められた形式であってもよい。なお、係る共通形式はＸＭＬに限定されず、適切なデータ形式を採用してよい。
【００３５】
データ送信部Ａ（１５０Ａ）は、サービスＡ（１６０Ａ）にメッセージを送信する。データ送信部Ａ１６０は、例えば、データ交換部１４０から渡された共通形式のデータを、サービスＡ（１６０Ａ）に関する固有のデータ形式に変換し、当該変換したデータを含むメッセージをサービスＡ（１６０Ａ）に送信してもよい。
【００３６】
データ交換部１４０は、データ受信部Ａ（１３０Ａ）と、データ送信部Ａ（１５０Ａ）との間でデータの受け渡しを行う。データ交換部１４０を介して受け渡されるデータは、例えば、後述するＣＥＰシステム１１０によるイベント処理に用いられる。データ交換部１４０は、後述するＣＥＰシステム１１０に対して、データ交換部１４０を介して受け渡されるデータを提供（通知）してもよい。あるいは、データ交換部１４０は、後述するＣＥＰシステム１１０から参照可能なように、データ交換部１４０を介して受け渡されるデータを一時的に保持してもよい。
【００３７】
ＣＥＰシステム１１０は、データ発生源Ａ（１２０Ａ）から送信されたメッセージに含まれるデータ（イベント）に基づいて、各種イベント処理を実行するイベント処理システムである。上記したように、ＣＥＰシステム１１０は、単体の装置により構成されてもよく、複数の装置を組み合わせたシステムとして構成されてもよい。以下、係るＣＥＰシステム１１０について説明する。
【００３８】
ＣＥＰシステム１１０は、データ取得部１１１と、制御部１１２と、割当て部１１３と、ルール照合部１１４と、ルール保持部１１５と、処理実行部１１６とを有する。ＣＥＰシステムを構成するこれらの構成要素の間は、適切な通信方法（通信回線等）により通信可能に接続されている。以下、本実施形態における主要な構成要素であるＣＥＰシステム１１０を構成するこれらの構成要素について説明する。
【００３９】
データ取得部１１１は、データ交換部１４０を介して受け渡されるデータを読み取り、制御部１１２にデータを渡す。上記したように、データ交換部１４０が、データ取得部１１１に対して係るデータを渡してもよい。
【００４０】
制御部１１２は、データ取得部１１１から受け取ったデータを保持するとともに、ルール照合部１１４、及び、処理実行部１１６の動作を制御する。制御部１１２は、割当て部１１３を備える。割当て部１１３は、データ取得部１１１において読み取られたデータを、ルール照合部１１４（特には、ルール照合部１１４において実行されるルール照合プロセス（後述））に割当てる処理を実行する。
【００４１】
ルール照合部１１４は、割当て部１１３からデータを受け取り、当該データの内容と、ルール保持部１１５が保持するルール（特には、イベント条件）とに基づいて、ルール照合処理を実行する。より具体的には、ルール照合部１１４は、ルール照合処理を並列に実行可能な処理要素（照合処理実行手段）を１以上有する。当該処理要素は、割当て部１１３から受け取ったデータに対して、ルール照合処理を並列に実行可能である。以下、係る処理要素をルール照合プロセスと称する。
【００４２】
ルール照合プロセスは、例えば、ＣＥＰシステム１１０（例えば、ルール照合部１１４）において実行される、ソフトウェア・プログラム（コンピュータ・プログラム）として実現されてもよい。また、係るルール照合プロセスは、例えば、適切な処理方法が組み込まれた演算装置を用いて実現されてもよい。本実施形態においては、例えば、サービスバスシステム１００の起動時、あるいは、ＣＥＰシステム１１０の起動時に、制御部１１２により必要な数のルール照合プロセスが起動されてもよい。
【００４３】
ルール保持部１１５は、予め作成されたルールを保持する。ルール保持部１１５は、係るルールの一覧を保持してもよい。ルール保持部１１５は、ルール照合部１１４からの要求に応じて、保持しているルールを提供可能である。
【００４４】
処理実行部１１６は、制御部１１２から呼び出され、ルール照合部１１４の照合結果に基づいて、ルールに設定されている処理（アクション）を実行する。
【００４５】
上記説明した図１に例示する構成においては、説明の便宜上、データ発生源（図１のデータ発生源Ａ（１２０Ａ））と、サービス（図１のサービスＡ（１６０Ａ））とが、１つだけ存在する場合が具体例として示されている。これに対して、本実施形態は、図２に例示するように、データ発生源とサービスとがそれぞれ複数存在し、これらに対応するデータ受信部、データ送信部も複数存在する場合も含む。なお、データ発生源、サービスの数は適宜定められてよい。サービスバスシステム１００は、データ発生源及びサービスの数にそれぞれ対応するデータ受信部及びデータ送信部を提供可能である。
【００４６】
次に、サービスバスシステム１００及びＣＥＰシステム１１０において扱われるデータについて説明する。
【００４７】
各データ発生源（例えば、図２における１２０Ａ乃至１２０Ｃ）から、データ受信部（例えば、図２における１３０Ａ乃至１３０Ｃ）へと送信されるデータの形式（フォーマット）は、様々である。各データ受信部は、データ発生源から受信したデータを共通の形式（例えばＸＭＬ等）に変換する。これにより、データ交換部１４０を介して受け渡されるデータは、共通形式のデータとなる。これにより、サービスバスシステム１００及びＣＥＰシステム１１０においては、各データ（あるいは、当該データを含むメッセージ）の形式が共通化される。このことから、サービスバスシステム１００及びＣＥＰシステム１１０においては、各データに対して画一的に処理を実行することが容易になる。
【００４８】
各データには、サービスバスシステム１００内における伝送（通信）に用いられる、付加情報が追加される。係る付加情報は、データ受信部１３０において付加されてもよい。これにより、データ交換部１４０においては、図３に例示するような各種の要素が関連付けされた情報により構成されるメッセージが伝送される（受け渡される）。より具体的には、図３に例示するように、サービスバスシステム１００において伝送されるメッセージは、受信日時３０１と、送信元３０２と、送信先３０３と、データ本体３０４とを含む。受信日時３０１は、当該メッセージに含まれるデータを受信した日時を特定可能な情報である。送信元３０２は、当該メッセージの送信元を特定可能な情報である。送信先３０３は、当該メッセージの送信先を特定可能な情報である。データ本体３０４は、データ発生源から受信したデータ自体を表す情報である。図３に例示する具体例においては、送信元３０２、及び、送信先３０３には、それぞれ、サービスバスシステム１００におけるデータ受信部と、データ送信部とを特定する情報が登録されている。例えば、送信元３０２には、データ発生源を特定可能な情報が設定されてもよく、送信先３０３には、サービスを特定可能な情報が設定されてもよい。
【００４９】
次に、本実施形態におけるルールについて、図６及び図７を参照して説明する。ルール保持部１１５が保持するルールは、例えば、図６に例示するように、イベント条件とアクションとのセット（組合せ）により構成される。あるルールに対して、イベント条件及びアクションは、ともに複数設定されてもよい。
【００５０】
あるルールを構成するイベント条件に設定された全ての条件が満たされた場合、当該イベント条件に対応するアクションが実行される。具体的には、ルール照合部１１４（特にはルール照合プロセス）が、あるルールを構成するイベント条件が全て成立したと判断した場合、当該イベント条件に対応するアクションが処理実行部１１６により実行される。
【００５１】
例えば、図６に例示する「ルールＡ」には、イベント条件として３つの条件（「イベントＡ１」乃至「イベントＡ３」）が設定され、アクションとして「アクションＡ１」が設定されている。この場合、ルール照合部１１４におけるルール照合プロセスが「イベントＡ１」乃至「イベントＡ３」が成立したと判定した場合に、処理実行部１１６により「アクションＡ１」が実行される。
【００５２】
図７は、本実施形態におけるルールの具体例を示す図である。図７に示す具体例は、図３に例示したようなデータがデータ交換部１４０において伝送される場合に、当該データに関する照合処理が実行されるルール（ルールＡ及びルールＢ）を表す。図７に示す具体例のように、イベント条件には、データ交換部１４０から得られるデータの内容、送信元、送信先、日時などに関する条件が設定される。アクションには、データ送信処理やサービスバスに対する運用操作などの処理が設定される。なお、ルールを構成するイベント条件及びアクションは、機械処理可能な適切な形式により記述されてよい。
【００５３】
次に、上記のように構成された本実施形態におけるサービスバスシステム１００、及び、ＣＥＰシステム１１０の動作について説明する。
【００５４】
先ず、サービスバスシステム１００に関するデータ（メッセージ）の流れについて、図４に例示するフローチャートを参照して説明する。図４は、データ発生源Ａ（１２０Ａ）とサービスＡ（１６０Ａ）との間のデータの流れに関する処理を表すフローチャートである。
【００５５】
データ発生源Ａ（１２０Ａ）は、当該データ発生源Ａ（１２０Ａ）において何らかの事象が発生するたび、当該事象に関するデータ（イベント）を、データ受信部Ａ（１３０Ａ）へ送信する（ステップＳ４０１）。
【００５６】
データ受信部Ａ（１３０Ａ）は、係るデータを受信する（ステップＳ４０２）。
【００５７】
データ受信部Ａ（１３０Ａ）は、受信データをＸＭＬ等の共通形式に変換し、当該変換したデータをデータ交換部１４０へと渡す（ステップＳ４０３）。
【００５８】
データ交換部１４０は、データ受信部Ａ（１３０Ａ）から渡されたデータを、データ送信部Ａ（１５０Ａ）に渡す（ステップＳ４０４）。この際、データ交換部１４０は、後述するように、データ取得部１１１に対して当該データを通知してもよく、あるいは、データ取得部１１１から読み取れるように、当該データを一時的に保持してもよい。なお、データ交換部１４０は、データ受信部Ａ（１３０Ａ）から受け取ったデータに対して、何らかの加工処理を実行してもよい。
【００５９】
データ送信部Ａ（１５０Ａ）がデータ交換部１４０からデータを受け取ると、ＸＭＬ等の共通なデータ形式から、各サービス（例えばサービスＡ（１６０Ａ））毎の固有のデータ形式へとデータを変換する。そして、データ送信部Ａ（１５０Ａ）は、サービスＡ（１６０Ａ）へデータを送信する（ステップＳ４０５）。
【００６０】
次に、ＣＥＰシステム１１０におけるデータ処理について、図５に例示するフローチャートを用いて説明する。
【００６１】
まず、データ取得部１１１がデータ交換部１４０を介して受け渡されるデータを読み取る（ステップＳ５０１）。
【００６２】
データ取得部１１１は、当該読み取ったデータを制御部１１２に渡す（ステップＳ５０２）。この際、制御部１１２は、データ取得部１１１から渡されたデータを、割当て部１１３に渡してもよい。
【００６３】
制御部１１２における割当て部１１３は、受け取ったデータの内容に基づいて、当該データの割当て先を決定する（ステップＳ５０３）。この際、割当て部１１３は、ルール照合部１１４において並列に実行されるルール照合プロセスの中から、当該データに関するルールの照合処理を実行するプロセスを決定する。割当て部１１３は、該当するルール照合プロセスに対してデータを渡す（割当てる）。
【００６４】
より具体的には、割当て部１１３は、データ取得部１１１から渡されたデータの通信経路を確認する。係るデータが、例えば図３に例示するような共通形式により表される場合、割当て部１１３は、例えば、当該データの通信経路として、送信元３０２及び送信先３０３の情報を確認する。そして、割当て部１１３は、当該データの通信経路に基づいて特定したルール照合部プロセスに、当該データを割当てる。
【００６５】
ルール照合部１１４におけるルール照合プロセスは、制御部１１２（特には割当て部１１３）から受け取ったデータに対して、ルール照合処理を実行する（ステップＳ５０４）。ルール照合プロセスは、ルール保持部１１５に保管されているいずれかのルールに対して、割当て部１１３から受け取ったデータの内容が該当するか否かを確認する。より具体的には、ルール照合プロセスは、例えば、制御部１１２から受け取ったデータの内容を確認し、当該データがそれぞれのルールに設定されたイベント条件を満たすか否かを確認してもよい。
【００６６】
制御部１１２から受け取ったデータに対して適用されるルールが存在しない場合（ステップＳ５０５においてＮＯ）、ルール照合プロセスは更なる処理を実行しない。この場合、ステップＳ５０１に戻って、データ取得部１１１が次のデータを処理する。
【００６７】
制御部１１２から受け取ったデータに対して適用されるルールが存在する場合（ステップＳ５０５においてＹＥＳ）、ルール照合部１１４（ルール照合プロセス）が、制御部１１２に対して、ルール照合処理の結果を通知する（ステップＳ５０６）。より具体的には、ルール照合プロセスが、あるデータが特定のルールに対するイベント条件を満たすと判定した場合、ルール照合部１１４は、当該判定結果を制御部１１２に通知してもよい。あるルールに対して複数のイベント条件が設定されている場合、ルール照合部１１４は、全てのイベント条件が満たされた際に、判定結果を制御部１１２に通知してもよい。また、ルール照合部１１４は、一部のイベント条件が満たされた際に、判定結果を制御部１１２に通知してもよい。なお、ルール照合部１１４は、ルール毎に、当該ルールに設定されたイベント条件が満たされた否かを表す情報を、中間状態として保持してもよい。
【００６８】
次に、制御部１１２が、ルールに設定された処理（アクション）を実行するように、処理実行部１１６を呼び出す（ステップＳ５０７）。
【００６９】
処理実行部１１６は、制御部１１２からの指示に従ってルールに設定された処理（アクション）を実行する（ステップＳ５０８）。
【００７０】
上記説明したフローチャートにおけるステップＳ５０４乃至ステップＳ５０６に例示された処理は、ルール照合部１１４において、1以上のルール照合プロセスにより並列に処理される。即ち、ＣＥＰシステム１１０（特には制御部１１２）は、ルール照合部１１４におけるルール照合処理を並列化することにより、処理を高速化（分散化）する。以下、ルール照合部１１４における並列処理について説明する。
【００７１】
上記したように、ルール照合プロセスが、ルール照合処理を実行する場合、それぞれのルールを構成するイベント条件が成立したか否かが判定される。この場合、割当て部１１３が、ルール照合プロセスに対して、当該イベント条件が成立したか否かを判定する際に用いられるデータ（以下、「イベント条件の成否に関するデータ」と称する）を割当てる。割当て部１１３が、あるルールを構成するイベント条件の成否を判定する際に一括して処理されるデータを、各ルール照合プロセスにまとめて割当てることを想定する。この場合、各ルール照合プロセスは、当該ルールに対するルール照合処理を効率的に実行可能である。なぜならば、これにより、複数のルール照合プロセスが、割当てられたデータを用いてルール照合処理を個別に実行することができるからである。即ち、複数のルール照合プロセスにより、ルール照合処理が並列に実行されるからである。
【００７２】
割当て部１１３は、ルール保持部１１５に保持されたルールを読み込み、その内容（特には、各ルールのイベント条件）を解析する。このルールの解析処理は、制御部１１２の起動時に行われてもよい。イベント条件には、ルール照合処理の対象となるデータに関する条件が設定されている。係るイベント条件には、当該データが流れる（伝送される）通信経路を判定可能な情報も含まれる。割当て部１１３は、係るイベント条件を解析することにより、当該イベント条件が成立したか否かを判定する際に用いられる、データの通信経路を確認する。これにより、割当て部１１３は、ルール照合処理プロセスがルール照合処理を実行する際、データの通信経路に応じて、一括して処理することが望ましいデータを判断することができる。
【００７３】
図７に示す具体例を用いて、ルール照合処理について説明する。例えば、ルールＡ（図７の７０１）のイベント条件を参照すると、イベントＡ１及びイベントＡ２は、ともにデータ受信部Ａ（１３０Ａ）からデータ送信部Ａ（１５０Ａ）に送信されるデータに関する条件である。これより、ルール照合プロセスは、データ受信部Ａ（１３０Ａ）からデータ送信部Ａ（１５０Ａ）に至る経路を流れる（伝送される）データを取得できれば、ルールＡに関するルール照合処理を実行可能である。
【００７４】
同様に、ルールＢ（図７の７０２）は、データ受信部Ｂからデータ送信部Ｂの経路を流れるデータに関する条件である。これより、ルール照合プロセスは、データ受信部Ｂからデータ送信部Ｂに至る経路を流れるデータを取得できれば、ルールＢに関するルール照合処理を実行可能である。
【００７５】
図７に例示する具体例においては、ルールＡ、ルールＢ以外の他のルールは設定されていない。これより、制御部１１２（割当て部１１３）は、その他の通信経路を流れるデータに対しては、ルール照合処理を実行しないと判断できる。
【００７６】
そこで、制御部１１２は、図８に例示するように、ルールＡに関するルール照合処理を行うルール照合プロセス１と、ルールＢに関するルール照合処理を行うルール照合プロセス２とを用意する。即ち、制御部１１２（特には割当て部１１３）は、それぞれのルールを構成するイベント条件の解析結果に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、制御部１１２（割当て部１１３）が、２つのルール照合プロセスを用意（生成）してもよく、ルール照合部１１４が２つのルール照合プロセスを用意（生成）してもよい。
【００７７】
より具体的には、割当て部１１３は、それぞれのルールを構成するイベント条件の成否に関するデータの通信経路に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、それぞれのルール照合プロセスが、ルール保持部１１５に保持された各ルールに関する照合処理を実行可能であってもよい。また、一つのルール照合プロセスが、複数のルールに関するルール照合処理を実行可能であってもよい。なお、所定の数のルール照合プロセスが、例えばＣＥＰシステム１１０の起動時等に、予め用意されてもよい。
【００７８】
上記のような処理により、１つのルール照合プロセスが処理すべきルールの数が実質的に低減されることから、それぞれのルール照合プロセスは高速に照合処理を行うことが可能である。例えば、図７、図８に例示する具体例においては、ルール照合プロセス１及びルール照合プロセス２は、それぞれ１つのルールに関する照合処理を実行すればよい。この場合、それぞれのルール照合プロセスが、ルールＡ、ルールＢの両方を処理する場合に比べて、処理対象のルールが半分になる。
【００７９】
割当て部１１３は、例えば、用意されたルール照合プロセスに対して、それぞれのルール照合プロセスが照合処理を実行すべきルールを明示的に指定してもよい。また、割当て部１１３は、例えば、それぞれのルール照合プロセスに渡す（割当てる）データを制御することにより、当該ルール照合プロセスが照合処理を実行すべきルールを実質的に指定してもよい。
【００８０】
図７及び図８に示す具体例において、割当て部１１３は、例えば、データ受信部Ａ（１３０Ａ）からデータ送信部Ａ（１５０Ａ）に送信されるデータを、ある特定のルール照合プロセス（例えばルール照合プロセス１）に渡してもよい。これにより、割当て部１１３は、ルールＡに関するルール照合処理を実行するよう、当該ルール照合プロセスを実質的に制御することが可能である。同様に、割当て部１１３は、データ受信部Ｂからデータ送信部Ｂに送信されるデータを他のルール照合プロセス（例えばルール照合プロセス２）に渡してもよい。これにより、割当て部１１３は、ルールＢに関するルール照合処理を実行するよう、当該他のルール照合プロセスを実質的に制御することが可能である。
【００８１】
次に、割当て部１１３が、データ取得部１１１から渡されたデータを割当てる処理について、詳細に説明する。割当て部１１３は、データ取得部１１１から渡されたデータの通信経路に基づいて、当該データをルール照合プロセスに割当てる（ステップＳ５０３）。換言すると、割当て部１１３は、イベント条件の成否に関するデータを、当該データの通信経路に応じてルール照合プロセスに割当てる。
【００８２】
より具体的には、割当て部１１３は、上記ルールを解析することにより、当該ルールを構成するイベント条件の成否を判断する際に用いられる、データの通信経路を確認する。そして、割当て部１１３は、データ取得部１１１からデータを渡された際に、当該渡されたデータの通信経路と、上記イベント条件に設定されたデータの通信経路とを比較する。割当て部１１３は、係る比較の結果が等しい場合、当該イベント条件により構成されるルールに関連付けされたルール照合プロセスに、データ取得部１１１から渡されたデータを渡す（割当てる）。なお、割当て部１１３は、上記比較の結果、あるルールを構成するイベント条件に設定されたデータの通信経路に、データ取得部１１１から渡されたデータの通信経路が含まれる場合も、上記と同様としてよい。
【００８３】
以上説明した処理により、割当て部１１３は、あるルール照合プロセスに対して、特定のルールに関するルール照合処理を実行させることが可能である。また、そのルール照合プロセスにおいて、データ照合処理が過不足なく実行される。
【００８４】
ここで、仮に、一つのルールが複数のルール照合プロセスに割当てられている状況を想定する。係る状況においては、複数のルール照合プロセスが、同時（略同時な場合も含む）に、同じルールに関するイベント条件の成否を判定する可能性がある。この場合、アクションが重複して実行されてしまう可能性がある。このような状況を回避するため、制御部１１２（割当て部１１３）は、同じルールが複数のルール照合プロセスに重複して割当てられないように、ルール照合プロセスを用意してもよい。また、制御部１１２（割当て部１１３）は、同一のルールに関するルール照合処理を、異なるルール照合プロセスに割当てないように制御してもよい。
【００８５】
次に、本実施形態におけるＣＥＰシステム１１０が奏する効果について説明する。
【００８６】
上記のように構成された本実施形態におけるＣＥＰシステム１１０は、ルール照合処理を並列化可能である。さらに、ＣＥＰシステム１１０は、ルール照合処理を実行する処理要素（例えばルール照合部１１４におけるルール照合プロセス）に、割当てるデータを適切に判断し、ルール照合処理の精度を保ったまま処理を高速化可能である。その理由は、ＣＥＰシステム１１０が、設定されたルールの内容（例えば、イベント条件）と、サービスバスシステム１００におけるデータの通信経路とを分析することにより、ルール照合処理を実行する各処理要素において一括して処理すべきデータを判断可能だからである。これにより、一括して処理されるべきデータが複数の処理要素に分散して割当てられる状況が回避される。このことから、各処理要素は、他の処理要素とは独立してルール照合処理を実行可能である。即ち、各処理要素間においてデータを共有するためのオーバーヘッドがないことから、各処理要素はルール照合処理を効率的に実行可能である。また、上記したように、各処理要素が処理すべきルールの数（各処理要素に割り当てられるルールの数）が低減されることから、各処理要素がルール照合処理を高速に実行可能である。また、本実施形態によれば、あるルール照合処理に用いられるデータが異なる処理要素に分散して割当てられることがない。即ち、同一のルールに関するルール照合処理が異なる処理要素において重複して実行されることがない。よって、ＣＥＰシステム１１０は、ルール照合処理の精度を保ったままで処理を高速化可能である。
【００８７】
上記のように構成されたＣＥＰシステム１１０は、更に、入力されるデータの形式が共通化されることから、画一的なデータの処理が可能となる。その理由は、ＣＥＰシステム１１０がサービスバスシステム１００に導入（適用）されることで、サービスバス上を流れる、共通化されたデータ形式のデータが、ＣＥＰシステム１１０に入力されるからである。
【００８８】
以上より、本実施形態におけるＣＥＰシステム１１０によれば、通信ネットワークを介して受信したデータに関する情報（例えば、当該データの通信経路に関する情報）に基づいて、当該通信データを適切な単位で並列に処理可能である。
【００８９】
＜第１の実施形態の変形例１＞
次に、上記説明した本発明の第１の実施形態に関する、第１の変形例（以下、変形例１と称する）について説明する。なお、本変形例１のシステム構成自体は、上記第１の実施形態と同様としてよく、以下に説明する通り動作が異なる。よって、本変形例１のシステム構成に関する詳細な説明を省略する。
【００９０】
本変形例１における割当て部１１３は、必要に応じて複数のルール照合プロセスで同じデータを重複して処理するよう、各ルール照合プロセスにデータを割当てる処理構成において、上記第１の実施形態と相違する。以下、図９及び図１０に例示する具体例を用いて、係る相違を中心に説明する。
【００９１】
図９は、図７とは異なるルールの具体例を示す図である。図９に示す具体例においては、ルールＡ乃至ルールＤの４つのルールがルール保持部１１５に設定されている。ルールＡ、ルールＢ、及び、ルールＤを構成するイベント条件は、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータに関する条件を含む。また、ルールＣを構成するイベント条件は、データ受信部Ａから全てのデータ送信部への経路を流れるデータに関する条件を含む。これより、ルールＡ乃至ルールＤのいずれのルールに関するルール照合処理においても、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータを取得する必要がある。換言すると、この場合、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータは、すべてのルールと照合される。
【００９２】
係る状況において、割当て部１１３が、例えば上記第１の実施形態における図７に例示するルールと同様の処理を実行した場合、一つのルール照合プロセスにおいて、すべてのルールに対するルール照合処理が実行されてしまう可能性が有る。この場合、ルール照合処理の並列化が有効に機能しないという問題がある。具体的に説明すると、図７に例示する具体例においては、ルールＡと、ルールＢとにおいて、イベント条件の成否に関するデータの通信経路が異なっている。このことから、割当て部１１３が、それぞれの通信経路において伝送されるデータを別々のルール照合プロセスに渡すことができる。これにより、それぞれのルール照合プロセスが、ルールＡあるいはルールＢに関するルール照合処理を別々に（並列して）実行可能である。
【００９３】
これに対して、図９に例示する具体例においては、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータは、全てのルールに関するルール照合処理に共通に用いられる。これより、割当て部１１３は、当該データを、全てのルール照合プロセスに渡す必要がある。割当て部１１３から、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータを渡された場合、各ルール照合プロセスは、ルールＡ乃至ルールＤを構成するイベント条件の成否をそれぞれ判定する処理を実行してしまう可能性がある。この場合、結果として、各ルール照合プロセスにおける処理が重複してしまうことから、ルール照合処理の並列化が有効に機能しない可能性がある。
【００９４】
これに対して、本変形例１に係る割当て部１１３は、あるデータが複数のルール照合処理に共通して用いられるような状況（他えば図９）においても、ルール照合処理の並列化が有効に機能するよう、各ルール照合プロセスに対するデータの割当てを調整する。より具体的には、本変形例１における割当て部１１３は、複数のルール照合プロセスが、特定のデータを重複して処理することを許容する。以下、本変形例１における割当て部１１３の動作について図９に示す具体例を用いて説明する。
【００９５】
図９に示す具体例においては、データ受信部Ａからデータ送信部Ａへの通信経路を流れるデータの扱いが問題となる。そこで、本変形例１における割当て部１１３は、この通信経路を流れるデータを複数のルール照合プロセスが重複して処理することを許容する。係る重複処理を許容すると、図１０に例示するように、ルール照合プロセス毎にルール照合処理が実行されるルールと、そのルール照合処理において用いられるデータの通信経路とが整理される。
【００９６】
より具体的には、ルールＡに関するルール照合処理においては、「データ受信部Ａからデータ送信部Ａに伝送されるデータ」と、「データ受信部Ｂから全てのデータ送信部に伝送されるデータ」が用いられる。
【００９７】
ルールＢに関するルール照合処理においては、「データ受信部Ａからデータ送信部Ａに伝送されるデータ」が用いられる。
【００９８】
ルールＣに関するルール照合処理においては、「データ受信部Ｂからデータ送信部Ｂに伝送されるデータ」と、「データ受信部Ａから全てのデータ送信部に伝送されるデータ」が用いられる。
【００９９】
ルールＤに関するルール照合処理においては、「データ受信部Ａからデータ送信部Ａに伝送されるデータ」が用いられる。
【０１００】
これより、ルールＡと、ルールＢとに関するルール照合処理は、「データ受信部Ａからデータ送信部Ａに伝送されるデータ」と、「データ受信部Ｂから全てのデータ送信部に伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール（ルールＡ、ルールＢ）に対するルール照合処理に必要とされるデータの論理和である。
【０１０１】
更に、ルールＣと、ルールＤとに関するルール照合処理は、「データ受信部Ａから全てのデータ送信部に伝送されるデータ」と、「データ受信部Ｂからデータ送信部Ｂに伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール（ルールＣ、ルールＤ）に対するルール照合処理に必要とされるデータの論理和である。
【０１０２】
本変形例１における割当て部１１３は、例えば、図９に例示するルール（特にはイベント条件）を解析することにより、上記のような解析結果を得る。割当て部１１３は、係る解析結果に基づいて、図１０に例示するような、２つのルール照合プロセスを用意する。この場合、割当て部１１３は、ルール照合プロセス１（図１０の１００１）に、ルールＡ及びルールＢに関するルール照合処理に必要なデータを渡す。また、割当て部１１３は、ルール照合プロセス２（図１０の１００２）に、ルールＣ及びルールＤに関するルール照合処理に必要なデータを渡す。即ち、「データ受信部Ａからデータ送信部Ａに伝送されるデータ」は、上記２つのルール照合プロセスに渡され、それぞれにおいて重複して処理される。
【０１０３】
このような処理により、割当て部１１３は、ルールＡとルールＢを処理するルール照合プロセス１（図１０の１００１）と、ルールＣとルールＤを処理するルール照合プロセス２（図１０の１００２）とに処理を並列化可能である。これにより、総ルール数４に対して１プロセスあたりのルール数が２に減らされることから、各ルール照合プロセスは高速に処理を行うことができる。
【０１０４】
上記したように、本変形例１における割当て部１１３は、複数のルールに関するルール照合処理において共通して用いられるデータ（以下、第１のデータと称する場合がある）を、それらのルールに関する照合処理を実行する全てのルール照合処理プロセスに重複して渡す。また、本変形例１における割当て部１１３は、ある特定のルールに関するルール照合処理にのみ用いられるデータ（以下、第２のデータと称する場合がある）を、特定のルール照合処理プロセスにのみ渡す。
【０１０５】
本変形例１における割当て部１１３は、各ルール照合プロセスに対する第１のデータ及び第２のデータの割当てを制御することにより、各ルール照合プロセスが照合処理を実行すべきルールを実質的に指定することが可能である。これにより、各ルール照合プロセスは、それぞれが異なるルールに関するルール照合処理を並列に実行可能である。
【０１０６】
ここで、割当て部１１３が重複して処理されるデータを際限なく許容すると、ルール数と同数のルール照合プロセスを用意することになり、リソースの使用効率が低下することが想定される。そこで、割当て部１１３が用意可能なルール照合プロセスの最大プロセス数を事前に定めておき、その数を超えてプロセスを作成（用意）できないよう制限してもよい。図１０に例示する具体例は、係る最大プロセス数が「２」の場合の具体例に相当する。
【０１０７】
上記のように構成された本変形例１におけるＣＥＰシステム１１０は、あるデータが複数のルール照合処理に用いられる場合に、当該データを複数のルール照合プロセスに重複して渡す（割当てる）。これにより、本変形例１におけるＣＥＰシステム１１０は、各ルール照合プロセスに割当てられるルールを実質的に制御可能であり、各ルール照合プロセスは、それぞれ並列に、割当てられたルールに関するルール照合処理を実行可能である。また、本変形例１におけるＣＥＰシステム１１０は、上記第１の実施形態と同様の構成を備えることから、上記第１の実施形態と同様の効果を奏する。
【０１０８】
＜第１の実施形態に関するその他の変形例＞
上記第１の実施形態の変形例として、以下のような構成も本発明の実施形態に含まれる。
【０１０９】
まず、上記第１の実施形態においては、ルール照合プロセスが、ＣＥＰシステム１１０を構成するルール照合部１１４において実行されている。即ち、上記第１の実施形態においては、係るルール照合プロセスは、例えば、ルール照合部１１４を構成する装置（あるいは、ＣＥＰシステム１１０、サービスバスシステム１００を構成する装置）において実行される。上記に限定されず、係るルール照合プロセスは、複数の装置を用いた分散処理により実行されてもよい。この場合、ルール照合プロセスを実行する複数の装置は、サービスバスシステム１００の外部に配置されてもよい。
【０１１０】
また、上記第１の実施形態においては、具体例として、データ発生源（例えば、データ発生源Ａ（１２０Ａ））からサービス（例えば、サービスＡ（１６０Ａ））へ送信される一方向のデータが例示されている。上記に限定されず、上記各実施形態及び変形例は、データ受信部及びデータ送信部を、それぞれデータ送受信部として構成することにより、双方向のデータを処理する場合にも適用可能である。
【０１１１】
＜第２の実施形態＞
次に、本発明の第２の実施形態に係るデータ処理システムについて説明する。本実施形態におけるデータ処理システムは、例えば、上記各実施形態及びその変形例における、ＣＥＰシステム１１０に相当する。
【０１１２】
本実施形態におけるデータ処理システムは、上記各実施形態と同様、１台のハードウェア装置を用いたデータ処理装置として構成されてもよく、複数台のハードウェア装置を用いたシステムとして構成されてもよい。なお、係るハードウェア装置は、物理的な装置であってもよく、周知の仮想化基盤を用いて実現される仮想的な装置であってもよい。
【０１１３】
次に、本実施形態におけるデータ処理システムの構成について図１１を参照して説明する。図１１は、本発明の第２の実施形態に係るデータ処理システム１１００の機能的な構成を例示するブロック図である。
【０１１４】
図１１に例示するように、本実施形態におけるデータ処理システム１１００は、受信部１１０１と、並列実行部１１０２と、割当て部１１０３とを備える。データ処理システム１１００を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されている。以下、それぞれの構成要素について説明する。
【０１１５】
受信部１１０１（受信手段）は、データの発生源（不図示）から通信ネットワークを介してデータを受信する。係るデータの発生源は、例えば、各種情報処理端末やセンサ等であってもよい。また、係るデータは、当該データの発生源において発生した各種事象を表すイベントとして通知されてもよい。なお、係る受信部１１０１は、例えば、上記各実施形態におけるデータ受信部（例えば、データ受信部Ａ（１３０Ａ））と同様としてもよい。また、係る通信ネットワークを用いて、上記各実施形態において説明したサービスバスシステム１００により、サービスバスが提供されてもよい。
【０１１６】
並列実行部１１０２（並列実行手段）は、受信部１１０１において受信したデータに関して、ルール（特には、後述するルールを構成する条件）に満たす否かを判定する判定処理を並列に実行する。係るルールは、例えば、受信したデータに関する条件を表す情報と、当該条件が成立した場合に当該データに関して実行される処理を表す情報とにより構成される。なお、係る並列実行部１１０２は、例えば、上記各実施形態におけるルール照合部１１４と同様としてもよい。また、並列実行部１１０２において並列に実行される判定処理は、例えば、上記各実施形態において複数のルール照合プロセスが並列に実行するルール照合処理と同様としてもよい。
【０１１７】
割当て部１１０３（割当て手段）は、上記受信部１１０１において受信した１以上のデータを、それぞれのデータの通信経路に応じて、上記並列実行部１１０２において実行される判定処理に並列に割当てる（設定する）。なお、係る割当て部１１０３は、例えば、上記各実施形態における割当て部１１３と同様としてもよい。
【０１１８】
上記のように構成されたデータ処理システム１１００は、受信したデータがルール（特にはルールを構成する条件）を満たすか否かを判定する処理を並列に実行可能である。これより、データ処理システム１１００は、係る判定処理を高速化可能である。また、データ処理システム１１００においては、並列に実行される判定処理に対して、当該判定処理に用いられるデータが適切に割当てられる。なぜならば、データ処理システムは、受信したデータの通信経路に基づいて、それぞれの判定処理において一括して処理されるべきデータを、それぞれの判定処理に対して割当てることが可能だからである。
【０１１９】
以上より、本実施形態におけるデータ処理システム１１００によれば、通信ネットワークを介して受信したデータに関する情報（例えば、当該データの通信経路に関する情報）に基づいて、当該通信データを適切な単位で並列に処理可能である。
【０１２０】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０１２１】
以下の説明において、上記各実施形態において説明したＣＥＰシステム（あるいはデータ処理システム）（１１０、１１００）をまとめて、単に「データ処理システム」と称する。またデータ処理システムの各構成要素を、単に「データ処理システムの構成要素」と称する。
【０１２２】
上記各実施形態において説明したデータ処理システムは、１つ又は複数の専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路等）として実現してもよい。
【０１２３】
例えば、データ処理システムをハードウェアにより実現する場合、データ処理システムの構成要素は、それぞれの機能を提供可能な集積回路をＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等により実装されてもよい。この場合、例えば、データ処理システムの構成要素が保持するデータは、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域に記憶されてもよい。
【０１２４】
また、この場合、データ処理システムの各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。データ処理システムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法（有線、無線、またはそれらの組み合わせ）により通信可能に接続されていてもよい。
【０１２５】
また、上述したデータ処理システムは、図１２に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、データ処理システムは、適切な数のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。
【０１２６】
図１２における演算装置１２０１は、汎用のＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置１２０１は、例えば後述する不揮発性記憶装置１２０３に記憶された各種ソフトウェア・プログラムを記憶装置１２０２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるデータ処理システムの構成要素は、演算装置１２０１により実行されるソフトウェア・プログラムとして実現可能である。
【０１２７】
記憶装置１２０２は、演算装置１２０１から参照可能な、ＲＡＭ等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置１２０２は、揮発性のメモリ装置であってもよい。
【０１２８】
不揮発性記憶装置１２０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置１２０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
【０１２９】
ネットワークインタフェース１２０６は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続用インタフェース装置等を採用してもよい。
【０１３０】
ドライブ装置１２０４は、例えば、後述する記録媒体１２０５に対するデータの読み込みや書き込みを処理する装置である。
【０１３１】
記録媒体１２０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な各種記録媒体である。
【０１３２】
入出力インタフェース１２０７は、外部装置との間の入出力を制御する装置である。
【０１３３】
上述した各実施形態を例に説明した本発明におけるデータ処理システムは、例えば、図１２に例示するハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、係る装置に対して供給したソフトウェア・プログラムを、演算装置１２０１が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
【０１３４】
なお、この場合、ルール照合部１１４において実行されるルール照合プロセスは、演算装置１２０１により並列に処理可能なプロセス、スレッド、タスク等のソフトウェア・プログラムとして実現可能である。
【０１３５】
上述した各実施形態において、上記各図（例えば、図１、図２、及び図１１）に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０１３６】
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置１２０３に記憶されてもよい。そして、演算装置１２０１が、それぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置１２０２に読み出してもよい。
【０１３７】
また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。
【０１３８】
更に、上記各ソフトウェア・プログラムは記録媒体１２０５に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置１２０４を通じて不揮発性記憶装置１２０３に格納されるよう構成されてもよい。
【０１３９】
なお、上記の場合において、上記データ処理システムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０１４０】
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
【０１４１】
また、上述したデータ処理システム、あるいは、当データ処理システムの構成要素は、図１２に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図１２に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図１２に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【０１４２】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１４３】
この出願は、２０１５年２月６日に出願された日本出願特願２０１５−０２１８６２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４４】
１００  サービスバスシステム
１１０  ＣＥＰシステム
１１１  データ取得部
１１２  制御部
１１３  割当て部
１１４  ルール照合部
１１５  ルール保持部
１１６  処理実行部
１２０Ａ  データ発生源Ａ
１３０Ａ  データ受信部Ａ
１４０  データ交換部
１５０Ａ  データ送信部Ａ
１６０Ａ  サービスＡ
１１００  データ処理装置
１１０１  受信部
１１０２  並列実行部
１１０３  割当て部
１２０１  演算装置
１２０２  記憶装置
１２０３  不揮発性記憶装置
１２０４  ドライブ装置
１２０５  記録媒体
１２０６  ネットワークインタフェース
１２０７  入出力インタフェース
【図１】
2016125499.tif 000003
【図２】
2016125499.tif 000004
【図３】
2016125499.tif 000005
【図４】
2016125499.tif 000006
【図５】
2016125499.tif 000007
【図６】
2016125499.tif 000008
【図７】
2016125499.tif 000009
【図８】
2016125499.tif 000010
【図９】
2016125499.tif 000011
【図１０】
2016125499.tif 000012
【図１１】
2016125499.tif 000013
【図１２】
2016125499.tif 000014
【手続補正書】
【提出日】平成29年8月1日(2017.8.1)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データの発生源から通信ネットワークを介して１以上のデータセットを受信する受信手段と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とを含む１以上のルールについて、前記受信手段により受信した前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、
前記受信手段により受信した１以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当てる割当て手段と、を備える、データ処理システム。
【請求項２】
前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
前記割当て手段は、１以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とを比較した結果に基づいて、前記受信手段において受信された前記データセットが割当てられる前記判定処理を決定する
請求項１に記載のデータ処理システム。
【請求項３】
前記割当て手段は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とが等しい場合か、又は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、前記受信手段において受信された前記データセットが流れる通信経路が含まれる場合に、
前記受信手段において受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当てる
請求項２に記載のデータ処理システム。
【請求項４】
前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
前記サービスバスを介してメッセージ送信先にメッセージを送信する１以上の送信手段を更に備え、
前記受信手段は、前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
前記送信手段は、前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
前記割当て手段は、
前記通信経路を表す情報に含まれる、前記受信手段を表す情報と、前記送信手段を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定する請求項３に記載のデータ処理システム。
【請求項５】
前記並列実行手段は、少なくとも１以上の前記ルールに関する前記判定処理を実行可能な照合処理実行手段を１以上含むと共に、当該照合処理実行手段を並列に実行し、
前記割当て手段は、前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記照合処理実行手段に並列に割当てる請求項４に記載のデータ処理システム。
【請求項６】
前記受信手段は、前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
前記送信手段は、前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する請求項５に記載のデータ処理システム。
【請求項７】
前記割当て手段は、複数の前記ルールに関する前記判定処理において共通に用いられる前記データセットである第１のデータセットを、当該複数の前記ルールに関する判定処理をそれぞれ実行する前記照合処理実行手段に重複して割当てる請求項５又は請求項６に記載のデータ処理システム。
【請求項８】
前記割当て手段は、複数の前記ルールの中の個別の前記ルールに関する前記判定処理にのみ用いられる前記データセットである第２のデータセットを、当該個別の前記ルールに関する判定処理を実行する前記照合処理実行手段にのみ割当て、
前記照合処理実行手段は、前記第１のデータセットを用いる前記ルールと、前記第２のデータセットを用いる前記ルールと、を少なくとも含む複数の前記ルールに関する前記判定処理を実行する
請求項７に記載のデータ処理システム。
【請求項９】
情報処理装置が、
データの発生源から通信ネットワークを介して１以上のデータセットを受信し、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む１以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する
データ処理方法。
【請求項１０】
データの発生源から通信ネットワークを介して１以上のデータセットを受信する処理と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む１以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する処理と、をコンピュータに実行させる
コンピュータ・プログラム。
【国際調査報告】
2016125499.tif 000015
2016125499.tif 000016
2016125499.tif 000017
2016125499.tif 000018