JP6717208B2 - Data processing system, data processing method and computer program - Google Patents

Data processing system, data processing method and computer program Download PDF

Info

Publication number
JP6717208B2
JP6717208B2 JP2016573230A JP2016573230A JP6717208B2 JP 6717208 B2 JP6717208 B2 JP 6717208B2 JP 2016573230 A JP2016573230 A JP 2016573230A JP 2016573230 A JP2016573230 A JP 2016573230A JP 6717208 B2 JP6717208 B2 JP 6717208B2
Authority
JP
Japan
Prior art keywords
data
data set
communication path
message
rule
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
JP2016573230A
Other languages
Japanese (ja)
Other versions
JPWO2016125499A1 (en
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016125499A1 publication Critical patent/JPWO2016125499A1/en
Application granted granted Critical
Publication of JP6717208B2 publication Critical patent/JP6717208B2/en
Active 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

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

Description

本発明は通信ネットワークを介して受信したデータを適切な単位で並列に処理する技術に関する。 The present invention relates to a technique for processing data received via a communication network in parallel in appropriate units.

近年、通信ネットワークの高速化及び広域化、あるいは、モバイルデバイスや各種センサの普及等、各種情報通信技術が普及している。これに伴い、処理(あるいは蓄積)すべきデータ(1以上のデータセット)の多様化、大規模化が急速に進んでいる。なお、以下において1以上のデータセットをまとめて「データ」と称する。 In recent years, various information communication technologies have become widespread, such as speeding up and widening of communication networks, and spread of mobile devices and various sensors. Along with this, the diversification and large scale of data (one or more data sets) to be processed (or accumulated) are rapidly advancing. In the following, one or more data sets are collectively referred to as “data”.

このような状況において、様々なサービスの連携基盤となるサービスバスにおいても、扱うデータの量が増大することが想定される。この場合、このようなサービスバスは、時々刻々と発生するデータ(イベント)を高速に(例えば、リアルタイムに)処理するニーズ(要求)に応えることを求められる場合がある。 In such a situation, it is expected that the amount of data to be handled will increase even in the service bus, which is a base for linking various services. In this case, such a service bus may be required to meet the needs (requests) of processing data (events) that occur momentarily at high speed (for example, in real time).

また、多数のデータ(イベント)を処理可能な技術として、複合イベント処理(CEP:Complex Event Processing)システムが知られている。CEPシステムは、様々な情報処理端末あるいはセンサ等から送信されるデータを扱うとともに、受信したデータを高速に処理することが求められる。これより、CEPシステムに関して、データの処理に関する負荷を分散又は低減可能な技術が求められる。このようなCEPシステムに関連する技術が、例えば、下記のような特許文献に開示されている。 In addition, a complex event processing (CEP) system is known as a technology capable of processing a large number of data (events). The CEP system is required to handle data transmitted from various information processing terminals or sensors, and to process received data at high speed. Therefore, a technology capable of distributing or reducing the load related to data processing is required for the CEP system. Technologies related to such a CEP system are disclosed in, for example, the following patent documents.

特許文献1(国際公開第2011/010711号)は、イベント処理システムにおいて、イベントを処理サーバに分配するディスパッチャに設定されるルールの数を低減することにより、ディスパッチャの負荷を分散する技術を開示する。 Patent Literature 1 (International Publication No. 2011/010711) discloses a technique of distributing the load of the dispatcher by reducing the number of rules set in the dispatcher that distributes the event to the processing servers in the event processing system. ..

特許文献2(特開2013−114626号公報)は、イベント処理システムを構成する処理装置間の通信を低減する技術を開示する。特許文献2に開示された技術は、設定された条件に合致したデータを処理するクエリが複数の処理装置に配置され得る状況において、当該クエリ間の通信回数が低減されるように、特定のクエリの組を同一の装置に配置する。 Japanese Patent Laid-Open No. 2013-114626 discloses a technique for reducing communication between processing devices that form an event processing system. The technique disclosed in Patent Document 2 is a specific query so that the number of communications between the queries is reduced in a situation where a query that processes data that matches a set condition can be arranged in a plurality of processing devices. Are placed in the same device.

特許文献3(特開2012−079242号公報)は、イベント処理システムを構成する各処理装置に配置されたルール間の関連度と、各処理装置の負荷状況とに基づいて、各処理装置の負荷が一定水準以下になるようにルールを再配置する技術を開示する。 Japanese Patent Laid-Open No. 2012-079242 discloses a load of each processing device based on the degree of association between rules arranged in each processing device that configures the event processing system and the load status of each processing device. We will disclose the technology to rearrange the rules so that is below a certain level.

特許文献4(特開2006−309701号公報)は、イベント処理システムにおいて、各処理サーバに対するイベントの分配を制御することにより、それぞれの処理サーバに対する負荷を分散する技術を開示する。特許文献4に開示された技術は、処理サーバ毎に設定されたルールの数又はルールに含まれるイベント条件等に基づいて、各処理サーバに対する処理ルールの振り分けを制御する。 Patent Document 4 (Japanese Patent Laid-Open No. 2006-309701) discloses a technique in an event processing system that controls the distribution of events to each processing server to distribute the load to each processing server. The technique disclosed in Patent Document 4 controls distribution of processing rules to each processing server based on the number of rules set for each processing server, event conditions included in the rules, and the like.

なお、複合イベント処理を適用したシステムの一例として、複数の情報源からイベントを受信することにより、監視対象のシステムにおいて実行される悪意のある活動を検知する技術が、特許文献5(特表2013−533531号公報)に開示されている。 As an example of a system to which the complex event processing is applied, a technique for detecting malicious activity executed in a monitored system by receiving events from a plurality of information sources is disclosed in Patent Document 5 (Japanese Patent Publication No. 2013-2013). No. 533531).

また、上記したサービスバスに関連する技術として、例えば、下記特許文献6(特開2014−153858号公報)が開示されている。 Further, as a technique related to the above-described service bus, for example, the following Patent Document 6 (Japanese Patent Laid-Open No. 2014-153858) is disclosed.

国際公開第2011/010711号International Publication No. 2011/010711 特開2013−114626号公報JP, 2013-114626, A 特開2012−079242号公報JP, 2012-079242, A 特開2006−309701号公報JP, 2006-309701, A 特表2013−533531号公報Special table 2013-533531 gazette 特開2014−153858号公報JP, 2014-153858, A

上記したようなCEPシステムにおいては、例えば、当該システムに送信されるデータの形式が定まっていない場合、データに対して画一的に処理を実行することが困難である。この場合、CEPシステムは、当該データを高速に処理できない可能性がある。 In the CEP system as described above, for example, when the format of data to be transmitted to the system is not fixed, it is difficult to uniformly perform processing on the data. In this case, the CEP system may not be able to process the data at high speed.

また、データを高速に処理するべく、CEPシステムがデータに関する処理を並列化(分散)することが考えられる。しかしながら、並列処理を実行する処理要素(例えば、演算装置や、演算プロセス)の間でデータに関する情報を共有することが難しい場合がある。この場合、同一の処理要素により一括して処理されるべきデータが異なる処理要素に割り振られてしまうと、検知されるはずであったデータ(イベント)が見落とされる可能性がある。これにより、当該データに関する処理が、適切に実行されない可能性がある。また、データの共有に付随する処理負荷(オーバーヘッド)が大きい場合には、データに関する処理が十分に高速化されない場合がある。 Further, in order to process data at high speed, it is conceivable that the CEP system parallelizes (distributes) processing related to data. However, it may be difficult to share information about data among processing elements that execute parallel processing (for example, an arithmetic device or an arithmetic process). In this case, if data to be collectively processed by the same processing element is allocated to different processing elements, the data (event) that should have been detected may be overlooked. As a result, the processing related to the data may not be executed properly. Further, when the processing load (overhead) accompanying the sharing of data is large, the processing related to the data may not be sufficiently speeded up.

特許文献1に開示された技術を採用した場合、各ディスパッチャに設定されるディスパッチルールの数が低減されても、係るルールに適合するイベントの発生頻度によっては、特定のディスパッチャに対する負荷が分散されない可能性がある。 When the technique disclosed in Patent Document 1 is adopted, even if the number of dispatch rules set for each dispatcher is reduced, the load on a specific dispatcher may not be dispersed depending on the frequency of occurrence of events that conform to such rules. There is a nature.

また、特許文献2に開示された技術は、クエリ間の通信回数等に着目して各処理装置に対するクエリの配置を制御する技術である。また、特許文献3に開示された技術は、ルール間の関連度(要素の関連度)に着目して、各処理装置に対するルールの配置を制御する技術である。また、特許文献4に開示された技術は、処理サーバ毎に設定されたルールの数等に着目して、処理サーバに対するルールの配置を制御する技術である。即ち、特許文献2乃至特許文献4に開示された技術は、いずれも処理されるデータに直接的に着目する技術ではない。よって、これらの技術を採用した場合、同一の処理装置において処理されることが望ましいデータが、異なる処理装置において処理される可能性がある。 Further, the technique disclosed in Patent Document 2 is a technique for controlling the arrangement of queries for each processing device by paying attention to the number of communications between queries and the like. Further, the technique disclosed in Patent Document 3 is a technique for controlling the arrangement of rules for each processing device, focusing on the degree of association between rules (the degree of element association). Further, the technique disclosed in Patent Document 4 is a technique for controlling the arrangement of rules on the processing server by paying attention to the number of rules set for each processing server. That is, none of the techniques disclosed in Patent Documents 2 to 4 directly pay attention to the data to be processed. Therefore, when these techniques are adopted, there is a possibility that data that should be processed by the same processing device will be processed by different processing devices.

本発明は上記のような事情を鑑みてなされたものである。即ち、本発明は、通信ネットワークを介して受信した通信データを、適切な単位で並列に処理可能なデータ処理システム等を提供することを主たる目的の一つとする。 The present invention has been made in view of the above circumstances. That is, one of the main objects of the present invention is to provide a data processing system or the like capable of processing communication data received via a communication network in parallel in appropriate units.

上記の目的を達成すべく、本発明の一態様に係るデータ処理システムは、以下の構成を備える。即ち、本発明の一態様に係るデータ処理システムは、データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信手段と、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される1以上のルールについて、上記受信手段により受信した上記データセットが上記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、上記受信手段により受信した1以上の上記データセットを、それぞれの上記データセットの通信経路に応じて、上記判定処理に並列に割当てる割当て手段とを備える。 In order to achieve the above object, a data processing system according to one aspect of the present invention has the following configuration. That is, a data processing system according to one aspect of the present invention includes a receiving unit that receives one or more data sets from a data generation source via a communication network, information indicating conditions regarding the data sets, and the conditions being met. If one or more rules composed of information indicating the processing to be executed for the data set, the judgment processing for judging whether or not the data set received by the receiving means satisfies the above condition is performed in parallel. An executable parallel execution unit and an allocation unit that allocates one or more data sets received by the reception unit in parallel to the determination process according to the communication path of each data set are provided.

また、本発明の一態様に係るデータ処理方法は、以下の構成を備える。即ち、本発明の一態様に係るデータ処理方法は、情報処理装置が、データの発生源から通信ネットワークを介して1以上のデータセットを受信し、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される1以上のルールについて、上記データセットが上記条件に合致するか否かを判定する判定処理を、当該受信したデータセットの通信経路に応じて並列に実行する構成を有する。 A data processing method according to one aspect of the present invention has the following configuration. That is, in the data processing method according to one aspect of the present invention, an information processing device receives one or more data sets from a data generation source via a communication network, and information indicating a condition regarding the data set and the condition. If one or more rules composed of information indicating the process to be executed on the data set when the above condition is satisfied, the received data is subjected to a determination process for determining whether or not the data set meets the above conditions. It has a configuration to execute in parallel according to a communication path of a set.

また、同目的は、上記構成を有するデータ処理システム、並びに対応するデータ処理方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記録媒体等によっても達成される。 Further, the same object is achieved by a computer program that realizes a data processing system having the above configuration and a corresponding data processing method by a computer, and a computer-readable recording medium in which the computer program is stored. Is also achieved.

本発明によれば、通信ネットワークを介して受信したデータを、適切な単位で並列に処理可能である。 According to the present invention, data received via a communication network can be processed in parallel in appropriate units.

図1は、本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。FIG. 1 is a block diagram illustrating a functional configuration of a CEP system and a service bus system according to the first embodiment of the present invention. 図2は、本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of the CEP system and the service bus system according to the first embodiment of the present invention. 図3は、本発明の第1の実施形態に係るサービスバスシステムにおいて送受信されるデータの具体例を示す説明図である。FIG. 3 is an explanatory diagram showing a specific example of data transmitted and received in the service bus system according to the first embodiment of the present invention. 図4は、本発明の第1の実施形態に係るサービスバスシステムの動作を例示するフローチャートである。FIG. 4 is a flowchart illustrating the operation of the service bus system according to the first embodiment of the present invention. 図5は、本発明の第1の実施形態に係るCEPシステムの動作を例示するフローチャートである。FIG. 5 is a flowchart illustrating the operation of the CEP system according to the first embodiment of the present invention. 図6は、本発明の第1の実施形態に係るCEPシステムが保持するルールの形式を例示する図である。FIG. 6 is a diagram exemplifying the format of rules held by the CEP system according to the first embodiment of the present invention. 図7は、本発明の第1の実施形態に係るCEPシステムが保持するルールの具体例を例示する図である。FIG. 7 is a diagram illustrating a specific example of rules held by the CEP system according to the first embodiment of the present invention. 図8は、本発明の第1の実施形態に係るCEPシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。FIG. 8 is an explanatory diagram showing rules processed by each rule matching process and a communication path of data regarding the rules in the CEP system according to the first embodiment of the present invention. 図9は、本発明の第1の実施形態の変形例1に係るCEPシステムが保持するルールの具体例を例示する説明図である。FIG. 9 is an explanatory diagram illustrating a specific example of rules held by the CEP system according to the first modification of the first embodiment of the present invention. 図10は、本発明の第1の実施形態の変形例1に係るCEPシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。FIG. 10 is an explanatory diagram showing rules processed by each rule matching process and a communication path of data relating to the rules in the CEP system according to the modified example 1 of the first exemplary embodiment of the present invention. 図11は、本発明の第2の実施形態に係るデータ処理システムの機能的な構成を例示するブロック図である。FIG. 11 is a block diagram illustrating a functional configuration of the data processing system according to the second embodiment of the present invention. 図12は、本発明の各実施形態に係るCEPシステム(及びデータ処理システム)、あるいは、その構成要素を実現可能なハードウェアの構成を例示する図である。FIG. 12 is a diagram exemplifying a CEP system (and a data processing system) according to each embodiment of the present invention, or a hardware configuration capable of realizing the constituent elements thereof.

以下、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The configurations described in the following embodiments are merely examples, and the technical scope of the present invention is not limited thereto.

まず、本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景等について説明する。 First, prior to the description of each embodiment of the present invention, the technical background and the like of the present invention will be described in order to facilitate understanding of the present invention.

上記したように、通信ネットワークを介して提供される多様なサービスを相互に接続可能な技術として、例えば、サービスバスが用いられる場合がある。サービスバスは、例えば、複数のサービスの間でメッセージの送受信を仲介し、サービスの間の連携を実現する。係るサービスバスにおいて扱うメッセージの数やデータ(即ち、1以上のデータセット)の量が増大した場合を想定すると、それらのデータやメッセージを高速に(例えば、リアルタイムに)処理可能な技術が求められる。そこで、本発明の各実施形態においては、係るサービスバスに対してCEPシステムを導入(適用)することにより、増大するメッセージやデータに対処する技術を実現する。 As described above, for example, a service bus may be used as a technique capable of mutually connecting various services provided via a communication network. The service bus mediates the transmission and reception of messages between a plurality of services and realizes cooperation between the services. Assuming that the number of messages and the amount of data (that is, one or more data sets) handled in the service bus are increased, a technology capable of processing these data and messages at high speed (for example, in real time) is required. .. Therefore, in each of the embodiments of the present invention, a technique for coping with an increasing number of messages and data is realized by introducing (applying) the CEP system to the service bus.

次に、各実施形態に係るCEPシステム(あるいはCEP装置)について概要を説明する。以下の各実施形態において説明するCEPシステムは、本発明の各実施形態におけるデータ処理システム(あるいはデータ処理装置)に包含される。CEPシステムは、データ(イベント)に対する処理条件(イベント条件)と、当該処理条件が満たされた場合に実行されるアクションと、により構成されるルールを保持する。係るルールは、例えば、CEPシステムの管理者等によって、CEPシステムに予め設定されていてもよい。 Next, the outline of the CEP system (or CEP device) according to each embodiment will be described. The CEP system described in each of the following embodiments is included in the data processing system (or the data processing device) in each of the embodiments of the present invention. The CEP system holds a rule composed of a processing condition (event condition) for data (event) and an action executed when the processing condition is satisfied. Such a rule may be preset in the CEP system by, for example, the administrator of the CEP system.

CEPシステムは、データを受信した際に、当該受信したデータにより、あるルールを構成するイベント条件が満たされるか否かを判定する。そして、CEPシステムは、あるルールを構成するイベント条件が満たされたと判定した場合には、当該ルールに設定されたアクションを実行する。以下、受信したデータがあるルールを構成するイベント条件を満たすか否かについてCEPシステムが判断(判定)する処理を、ルール照合処理と称する。CEPシステムは、受信したデータ(イベント)を高速に処理すべく、ルール照合処理を並列に(分散して)実行する。係る並列処理は、例えば、複数の演算装置(あるいは演算装置を構成する演算処理コア)等を用いて、並行して処理(ルール照合処理等)が実行されることにより実現されてもよい。また、係る並列処理は、例えば、1以上の演算装置において、複数の処理要素(例えば、プロセスやスレッド等)が並行して処理されることにより実現されてもよい。この場合、係る並列処理は、疑似的な並列処理(例えば、複数の処理要素を時分割で処理する方法や、処理を細分化して演算器に割り当てる方法等)を含んでもよい。以下の各実施形態においては、係るルール照合処理の並列化について具体的に説明する。 When receiving the data, the CEP system determines whether the received data satisfies an event condition that constitutes a certain rule. Then, when the CEP system determines that the event condition forming a certain rule is satisfied, the CEP system executes the action set in the rule. Hereinafter, a process in which the CEP system determines (determines) whether or not the received data satisfies an event condition that constitutes a rule is referred to as a rule matching process. The CEP system executes rule matching processing in parallel (distributed) in order to process the received data (event) at high speed. Such parallel processing may be realized, for example, by executing processing (rule matching processing or the like) in parallel using a plurality of arithmetic devices (or arithmetic processing cores forming the arithmetic devices). Further, such parallel processing may be realized, for example, by processing a plurality of processing elements (for example, processes and threads) in parallel in one or more arithmetic devices. In this case, the parallel processing may include pseudo parallel processing (for example, a method of time-divisionally processing a plurality of processing elements, a method of subdividing the processing and assigning the processing elements to arithmetic units, etc.). In each of the following embodiments, parallelization of the rule matching process will be specifically described.

なお、以下の各実施形態におけるCEPシステム、及び、サービスバスシステムは1以上の専用のハードウェア装置、又は、汎用の情報処理装置等を用いて実現可能である。以下の各実施形態におけるCEPシステムは単体装置としてのCEP装置を含み、サービスバスシステムは、単体装置としてのサービスバス装置を含む。CEPシステム及びサービスバスシステムを実現可能なハードウェア構成(例えば図12)については後述する。 The CEP system and the service bus system in each of the following embodiments can be realized by using one or more dedicated hardware devices or a general-purpose information processing device. The CEP system in each of the following embodiments includes a CEP device as a single device, and the service bus system includes a service bus device as a single device. A hardware configuration (for example, FIG. 12) capable of realizing the CEP system and the service bus system will be described later.

<第1の実施形態>
本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの構成について図面を参照して詳細に説明する。図1は、本実施形態におけるCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。
<First Embodiment>
The configurations of the CEP system and the service bus system according to the first embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram illustrating a functional configuration of a CEP system and a service bus system according to this embodiment.

図1を参照すると、本発明の第1の実施形態におけるサービスバスシステム100は、データ発生源A(120A)及びサービスA(160A)と通信可能に接続されている。 Referring to FIG. 1, the service bus system 100 according to the first embodiment of the present invention is communicatively connected to a data source A (120A) and a service A (160A).

データ発生源A(120A)は、サービスバスシステム100に対して、各種データ(イベント)を送信するデバイス又はシステム等である。データ発生源A(120A)は、例えば、各種情報処理端末や、各種センサ等であってもよい。データ発生源A(120A)は、例えば、何らかの事象が発生した際に、当該事象に関するデータ(イベント)を含むメッセージをサービスバスシステム100に送信する。 The data source A (120A) is a device or system that transmits various data (events) to the service bus system 100. The data source A (120A) may be, for example, various information processing terminals or various sensors. The data source A (120A), for example, when some event occurs, transmits a message including data (event) regarding the event to the service bus system 100.

サービスA(160A)は、サービスバスシステム100から送信されたメッセージに基づいて、各種サービスを提供可能な装置やシステム等である。サービスA(160A)には、例えば、データ発生源A(120A)において生成されたデータ、あるいは、当該データに基づいて加工されたデータが、サービスバスシステム100を介して送信されてもよい。 The service A (160A) is a device or system capable of providing various services based on the message transmitted from the service bus system 100. Data generated in the data source A (120A) or data processed based on the data may be transmitted to the service A (160A) via the service bus system 100.

サービスバスシステム100は、データの送信元から受信したデータに基づいて、当該データの送信先にメッセージを送信する。係るメッセージは、データの送信元から受信したデータを含んでもよく、受信したデータに基づいて加工されたデータを含んでもよい。以下、係るサービスバスシステム100について説明する。 The service bus system 100 transmits a message to the destination of the data based on the data received from the source of the data. The message may include the data received from the transmission source of the data, or may include the data processed based on the received data. The service bus system 100 will be described below.

サービスバスシステム100は、大別して、データ受信部A(130A)と、データ交換部140と、データ送信部A(150A)と、CEPシステム110と、を含む。 The service bus system 100 roughly includes a data reception unit A (130A), a data exchange unit 140, a data transmission unit A (150A), and a CEP system 110.

データ受信部A(130A)は、データ発生源A(120A)から送信されたデータを含むメッセージを受信する。データ受信部A(130A)は、例えば、データ発生源A(120A)から送信されたデータを、共通形式のデータに変換して、データ交換部140に渡してもよい。この場合、係る共通形式は、例えばXML(Extensible Markup Language)等を用いて定められた形式であってもよい。なお、係る共通形式はXMLに限定されず、適切なデータ形式を採用してよい。 The data receiving unit A (130A) receives the message including the data transmitted from the data source A (120A). The data receiving unit A (130A) may, for example, convert the data transmitted from the data generating source A (120A) into data in a common format and pass the data to the data exchanging unit 140. In this case, the common format may be a format defined by using, for example, XML (Extensible Markup Language). The common format is not limited to XML, and an appropriate data format may be adopted.

データ送信部A(150A)は、サービスA(160A)にメッセージを送信する。データ送信部A160は、例えば、データ交換部140から渡された共通形式のデータを、サービスA(160A)に関する固有のデータ形式に変換し、当該変換したデータを含むメッセージをサービスA(160A)に送信してもよい。 The data transmission unit A (150A) transmits a message to the service A (160A). The data transmission unit A160, for example, converts the data in the common format passed from the data exchange unit 140 into a unique data format related to the service A (160A), and sends a message including the converted data to the service A (160A). You may send it.

データ交換部140は、データ受信部A(130A)と、データ送信部A(150A)との間でデータの受け渡しを行う。データ交換部140を介して受け渡されるデータは、例えば、後述するCEPシステム110によるイベント処理に用いられる。データ交換部140は、後述するCEPシステム110に対して、データ交換部140を介して受け渡されるデータを提供(通知)してもよい。あるいは、データ交換部140は、後述するCEPシステム110から参照可能なように、データ交換部140を介して受け渡されるデータを一時的に保持してもよい。 The data exchange unit 140 transfers data between the data receiving unit A (130A) and the data transmitting unit A (150A). The data transferred via the data exchange unit 140 is used for event processing by the CEP system 110 described later, for example. The data exchange unit 140 may provide (notify) the data transferred via the data exchange unit 140 to the CEP system 110 described later. Alternatively, the data exchange unit 140 may temporarily hold the data transferred via the data exchange unit 140 so that the CEP system 110 described later can refer to the data.

CEPシステム110は、データ発生源A(120A)から送信されたメッセージに含まれるデータ(イベント)に基づいて、各種イベント処理を実行するイベント処理システムである。上記したように、CEPシステム110は、単体の装置により構成されてもよく、複数の装置を組み合わせたシステムとして構成されてもよい。以下、係るCEPシステム110について説明する。 The CEP system 110 is an event processing system that executes various event processes based on the data (event) included in the message transmitted from the data source A (120A). As described above, the CEP system 110 may be configured by a single device, or may be configured as a system in which a plurality of devices are combined. Hereinafter, the CEP system 110 will be described.

CEPシステム110は、データ取得部111と、制御部112と、割当て部113と、ルール照合部114と、ルール保持部115と、処理実行部116とを有する。CEPシステムを構成するこれらの構成要素の間は、適切な通信方法(通信回線等)により通信可能に接続されている。以下、本実施形態における主要な構成要素であるCEPシステム110を構成するこれらの構成要素について説明する。 The CEP system 110 includes a data acquisition unit 111, a control unit 112, an assignment unit 113, a rule matching unit 114, a rule holding unit 115, and a process execution unit 116. These constituent elements of the CEP system are communicably connected by an appropriate communication method (communication line or the like). Hereinafter, these constituent elements constituting the CEP system 110, which are the main constituent elements in the present embodiment, will be described.

データ取得部111は、データ交換部140を介して受け渡されるデータを読み取り、制御部112にデータを渡す。上記したように、データ交換部140が、データ取得部111に対して係るデータを渡してもよい。 The data acquisition unit 111 reads the data transferred via the data exchange unit 140 and transfers the data to the control unit 112. As described above, the data exchange unit 140 may pass the relevant data to the data acquisition unit 111.

制御部112は、データ取得部111から受け取ったデータを保持するとともに、ルール照合部114、及び、処理実行部116の動作を制御する。制御部112は、割当て部113を備える。割当て部113は、データ取得部111において読み取られたデータを、ルール照合部114(特には、ルール照合部114において実行されるルール照合プロセス(後述))に割当てる処理を実行する。 The control unit 112 holds the data received from the data acquisition unit 111 and controls the operations of the rule matching unit 114 and the process execution unit 116. The control unit 112 includes an allocation unit 113. The allocating unit 113 executes the process of allocating the data read by the data acquisition unit 111 to the rule matching unit 114 (in particular, the rule matching process (described later) executed in the rule matching unit 114).

ルール照合部114は、割当て部113からデータを受け取り、当該データの内容と、ルール保持部115が保持するルール(特には、イベント条件)とに基づいて、ルール照合処理を実行する。より具体的には、ルール照合部114は、ルール照合処理を並列に実行可能な処理要素(照合処理実行手段)を1以上有する。当該処理要素は、割当て部113から受け取ったデータに対して、ルール照合処理を並列に実行可能である。以下、係る処理要素をルール照合プロセスと称する。 The rule matching unit 114 receives the data from the assigning unit 113, and executes the rule matching process based on the content of the data and the rule (in particular, the event condition) held by the rule holding unit 115. More specifically, the rule matching unit 114 has one or more processing elements (matching processing executing means) capable of executing rule matching processing in parallel. The processing element can execute rule matching processing in parallel on the data received from the allocation unit 113. Hereinafter, such a processing element is referred to as a rule matching process.

ルール照合プロセスは、例えば、CEPシステム110(例えば、ルール照合部114)において実行される、ソフトウェア・プログラム(コンピュータ・プログラム)として実現されてもよい。また、係るルール照合プロセスは、例えば、適切な処理方法が組み込まれた演算装置を用いて実現されてもよい。本実施形態においては、例えば、サービスバスシステム100の起動時、あるいは、CEPシステム110の起動時に、制御部112により必要な数のルール照合プロセスが起動されてもよい。 The rule matching process may be realized, for example, as a software program (computer program) executed in the CEP system 110 (eg, the rule matching unit 114). Further, the rule matching process may be realized by using, for example, an arithmetic device in which an appropriate processing method is incorporated. In the present embodiment, for example, when the service bus system 100 is activated or when the CEP system 110 is activated, the control unit 112 may activate the required number of rule matching processes.

ルール保持部115は、予め作成されたルールを保持する。ルール保持部115は、係るルールの一覧を保持してもよい。ルール保持部115は、ルール照合部114からの要求に応じて、保持しているルールを提供可能である。 The rule holding unit 115 holds a rule created in advance. The rule holding unit 115 may hold a list of such rules. The rule holding unit 115 can provide the held rule in response to a request from the rule matching unit 114.

処理実行部116は、制御部112から呼び出され、ルール照合部114の照合結果に基づいて、ルールに設定されている処理(アクション)を実行する。 The process execution unit 116 is called by the control unit 112 and executes the process (action) set in the rule based on the matching result of the rule matching unit 114.

上記説明した図1に例示する構成においては、説明の便宜上、データ発生源(図1のデータ発生源A(120A))と、サービス(図1のサービスA(160A))とが、1つだけ存在する場合が具体例として示されている。これに対して、本実施形態は、図2に例示するように、データ発生源とサービスとがそれぞれ複数存在し、これらに対応するデータ受信部、データ送信部も複数存在する場合も含む。なお、データ発生源、サービスの数は適宜定められてよい。サービスバスシステム100は、データ発生源及びサービスの数にそれぞれ対応するデータ受信部及びデータ送信部を提供可能である。 In the configuration illustrated in FIG. 1 described above, for convenience of explanation, only one data generation source (data generation source A (120A) in FIG. 1) and service (service A (160A) in FIG. 1) are provided. The case where it exists is shown as a specific example. On the other hand, in the present embodiment, as illustrated in FIG. 2, a plurality of data generation sources and a plurality of services exist, and a plurality of data reception units and data transmission units corresponding thereto also exist. The data source and the number of services may be appropriately determined. The service bus system 100 can provide a data receiving unit and a data transmitting unit corresponding to the number of data sources and the number of services, respectively.

次に、サービスバスシステム100及びCEPシステム110において扱われるデータについて説明する。 Next, the data handled by the service bus system 100 and the CEP system 110 will be described.

各データ発生源(例えば、図2における120A乃至120C)から、データ受信部(例えば、図2における130A乃至130C)へと送信されるデータの形式(フォーマット)は、様々である。各データ受信部は、データ発生源から受信したデータを共通の形式(例えばXML等)に変換する。これにより、データ交換部140を介して受け渡されるデータは、共通形式のデータとなる。これにより、サービスバスシステム100及びCEPシステム110においては、各データ(あるいは、当該データを含むメッセージ)の形式が共通化される。このことから、サービスバスシステム100及びCEPシステム110においては、各データに対して画一的に処理を実行することが容易になる。 The format of data transmitted from each data generation source (for example, 120A to 120C in FIG. 2) to the data receiving unit (for example, 130A to 130C in FIG. 2) is various. Each data receiving unit converts the data received from the data generation source into a common format (for example, XML or the like). As a result, the data transferred via the data exchange unit 140 becomes the data in the common format. As a result, in the service bus system 100 and the CEP system 110, the format of each data (or the message including the data) is standardized. Therefore, in the service bus system 100 and the CEP system 110, it becomes easy to uniformly perform processing on each data.

各データには、サービスバスシステム100内における伝送(通信)に用いられる、付加情報が追加される。係る付加情報は、データ受信部130において付加されてもよい。これにより、データ交換部140においては、図3に例示するような各種の要素が関連付けされた情報により構成されるメッセージが伝送される(受け渡される)。より具体的には、図3に例示するように、サービスバスシステム100において伝送されるメッセージは、受信日時301と、送信元302と、送信先303と、データ本体304とを含む。受信日時301は、当該メッセージに含まれるデータを受信した日時を特定可能な情報である。送信元302は、当該メッセージの送信元を特定可能な情報である。送信先303は、当該メッセージの送信先を特定可能な情報である。データ本体304は、データ発生源から受信したデータ自体を表す情報である。図3に例示する具体例においては、送信元302、及び、送信先303には、それぞれ、サービスバスシステム100におけるデータ受信部と、データ送信部とを特定する情報が登録されている。例えば、送信元302には、データ発生源を特定可能な情報が設定されてもよく、送信先303には、サービスを特定可能な情報が設定されてもよい。 Additional information used for transmission (communication) in the service bus system 100 is added to each data. The additional information may be added by the data receiving unit 130. As a result, the data exchange unit 140 transmits (passes) a message including information associated with various elements as illustrated in FIG. More specifically, as illustrated in FIG. 3, the message transmitted in the service bus system 100 includes a reception date/time 301, a transmission source 302, a transmission destination 303, and a data body 304. The reception date and time 301 is information that can specify the date and time when the data included in the message was received. The sender 302 is information that can identify the sender of the message. The destination 303 is information that can identify the destination of the message. The data body 304 is information representing the data itself received from the data source. In the specific example illustrated in FIG. 3, the transmission source 302 and the transmission destination 303 respectively have information for identifying the data receiving unit and the data transmitting unit in the service bus system 100 registered therein. For example, the transmission source 302 may be set with information capable of specifying the data generation source, and the transmission destination 303 may be set with information capable of specifying the service.

次に、本実施形態におけるルールについて、図6及び図7を参照して説明する。ルール保持部115が保持するルールは、例えば、図6に例示するように、イベント条件とアクションとのセット(組合せ)により構成される。あるルールに対して、イベント条件及びアクションは、ともに複数設定されてもよい。 Next, the rules in this embodiment will be described with reference to FIGS. 6 and 7. The rule held by the rule holding unit 115 is composed of a set (combination) of event conditions and actions, as illustrated in FIG. 6, for example. A plurality of event conditions and actions may be set for a certain rule.

あるルールを構成するイベント条件に設定された全ての条件が満たされた場合、当該イベント条件に対応するアクションが実行される。具体的には、ルール照合部114(特にはルール照合プロセス)が、あるルールを構成するイベント条件が全て成立したと判断した場合、当該イベント条件に対応するアクションが処理実行部116により実行される。 When all the conditions set in the event condition that configure a certain rule are satisfied, the action corresponding to the event condition is executed. Specifically, when the rule matching unit 114 (particularly, the rule matching process) determines that all the event conditions forming a certain rule are satisfied, the process executing unit 116 executes an action corresponding to the event condition. ..

例えば、図6に例示する「ルールA」には、イベント条件として3つの条件(「イベントA1」乃至「イベントA3」)が設定され、アクションとして「アクションA1」が設定されている。この場合、ルール照合部114におけるルール照合プロセスが「イベントA1」乃至「イベントA3」が成立したと判定した場合に、処理実行部116により「アクションA1」が実行される。 For example, in the “rule A” illustrated in FIG. 6, three conditions (“event A1” to “event A3”) are set as event conditions, and “action A1” is set as an action. In this case, when the rule matching process in the rule matching unit 114 determines that “event A1” to “event A3” have been established, the process execution unit 116 executes “action A1”.

図7は、本実施形態におけるルールの具体例を示す図である。図7に示す具体例は、図3に例示したようなデータがデータ交換部140において伝送される場合に、当該データに関する照合処理が実行されるルール(ルールA及びルールB)を表す。図7に示す具体例のように、イベント条件には、データ交換部140から得られるデータの内容、送信元、送信先、日時などに関する条件が設定される。アクションには、データ送信処理やサービスバスに対する運用操作などの処理が設定される。なお、ルールを構成するイベント条件及びアクションは、機械処理可能な適切な形式により記述されてよい。 FIG. 7 is a diagram showing a specific example of the rule in this embodiment. The specific example shown in FIG. 7 represents rules (rule A and rule B) in which, when the data illustrated in FIG. 3 is transmitted in the data exchange unit 140, the collation process for the data is executed. As in the specific example shown in FIG. 7, conditions relating to the content of data obtained from the data exchange unit 140, the transmission source, the transmission destination, the date and time, etc. are set in the event condition. In the action, processing such as data transmission processing and operation operation for the service bus is set. The event conditions and actions that make up the rule may be described in an appropriate format that allows machine processing.

次に、上記のように構成された本実施形態におけるサービスバスシステム100、及び、CEPシステム110の動作について説明する。 Next, operations of the service bus system 100 and the CEP system 110 according to the present embodiment configured as described above will be described.

先ず、サービスバスシステム100に関するデータ(メッセージ)の流れについて、図4に例示するフローチャートを参照して説明する。図4は、データ発生源A(120A)とサービスA(160A)との間のデータの流れに関する処理を表すフローチャートである。 First, the flow of data (message) regarding the service bus system 100 will be described with reference to the flowchart illustrated in FIG. FIG. 4 is a flowchart showing a process regarding the flow of data between the data source A (120A) and the service A (160A).

データ発生源A(120A)は、当該データ発生源A(120A)において何らかの事象が発生するたび、当該事象に関するデータ(イベント)を、データ受信部A(130A)へ送信する(ステップS401)。 Whenever an event occurs in the data source A (120A), the data source A (120A) transmits data (event) related to the event to the data receiving unit A (130A) (step S401).

データ受信部A(130A)は、係るデータを受信する(ステップS402)。 The data receiving unit A (130A) receives the data (step S402).

データ受信部A(130A)は、受信データをXML等の共通形式に変換し、当該変換したデータをデータ交換部140へと渡す(ステップS403)。 The data receiving unit A (130A) converts the received data into a common format such as XML and passes the converted data to the data exchange unit 140 (step S403).

データ交換部140は、データ受信部A(130A)から渡されたデータを、データ送信部A(150A)に渡す(ステップS404)。この際、データ交換部140は、後述するように、データ取得部111に対して当該データを通知してもよく、あるいは、データ取得部111から読み取れるように、当該データを一時的に保持してもよい。なお、データ交換部140は、データ受信部A(130A)から受け取ったデータに対して、何らかの加工処理を実行してもよい。 The data exchange section 140 passes the data passed from the data receiving section A (130A) to the data transmitting section A (150A) (step S404). At this time, the data exchange unit 140 may notify the data acquisition unit 111 of the data, as described later, or temporarily retain the data so that the data acquisition unit 111 can read the data. Good. It should be noted that the data exchange section 140 may perform some kind of processing on the data received from the data receiving section A (130A).

データ送信部A(150A)がデータ交換部140からデータを受け取ると、XML等の共通なデータ形式から、各サービス(例えばサービスA(160A))毎の固有のデータ形式へとデータを変換する。そして、データ送信部A(150A)は、サービスA(160A)へデータを送信する(ステップS405)。 When the data transmission unit A (150A) receives the data from the data exchange unit 140, it converts the data from a common data format such as XML into a unique data format for each service (for example, the service A (160A)). Then, the data transmission unit A (150A) transmits the data to the service A (160A) (step S405).

次に、CEPシステム110におけるデータ処理について、図5に例示するフローチャートを用いて説明する。 Next, data processing in the CEP system 110 will be described using the flowchart illustrated in FIG.

まず、データ取得部111がデータ交換部140を介して受け渡されるデータを読み取る(ステップS501)。 First, the data acquisition unit 111 reads the data transferred via the data exchange unit 140 (step S501).

データ取得部111は、当該読み取ったデータを制御部112に渡す(ステップS502)。この際、制御部112は、データ取得部111から渡されたデータを、割当て部113に渡してもよい。 The data acquisition unit 111 passes the read data to the control unit 112 (step S502). At this time, the control unit 112 may pass the data passed from the data acquisition unit 111 to the assignment unit 113.

制御部112における割当て部113は、受け取ったデータの内容に基づいて、当該データの割当て先を決定する(ステップS503)。この際、割当て部113は、ルール照合部114において並列に実行されるルール照合プロセスの中から、当該データに関するルールの照合処理を実行するプロセスを決定する。割当て部113は、該当するルール照合プロセスに対してデータを渡す(割当てる)。 The allocation unit 113 in the control unit 112 determines the allocation destination of the data based on the content of the received data (step S503). At this time, the assigning unit 113 determines a process for executing the matching process of the rule regarding the data from the rule matching processes executed in parallel by the rule matching unit 114. The allocation unit 113 passes (allocates) data to the corresponding rule matching process.

より具体的には、割当て部113は、データ取得部111から渡されたデータの通信経路を確認する。係るデータが、例えば図3に例示するような共通形式により表される場合、割当て部113は、例えば、当該データの通信経路として、送信元302及び送信先303の情報を確認する。そして、割当て部113は、当該データの通信経路に基づいて特定したルール照合部プロセスに、当該データを割当てる。 More specifically, the allocation unit 113 confirms the communication path of the data passed from the data acquisition unit 111. When the data is represented in a common format as illustrated in FIG. 3, for example, the allocation unit 113 confirms the information of the transmission source 302 and the transmission destination 303 as the communication path of the data. Then, the allocation unit 113 allocates the data to the rule matching unit process specified based on the communication path of the data.

ルール照合部114におけるルール照合プロセスは、制御部112(特には割当て部113)から受け取ったデータに対して、ルール照合処理を実行する(ステップS504)。ルール照合プロセスは、ルール保持部115に保管されているいずれかのルールに対して、割当て部113から受け取ったデータの内容が該当するか否かを確認する。より具体的には、ルール照合プロセスは、例えば、制御部112から受け取ったデータの内容を確認し、当該データがそれぞれのルールに設定されたイベント条件を満たすか否かを確認してもよい。 In the rule matching process in the rule matching unit 114, the rule matching process is performed on the data received from the control unit 112 (specifically, the assigning unit 113) (step S504). The rule matching process confirms whether or not the content of the data received from the assigning unit 113 corresponds to any of the rules stored in the rule holding unit 115. More specifically, the rule matching process may, for example, check the content of the data received from the control unit 112 and check whether the data satisfies the event condition set in each rule.

制御部112から受け取ったデータに対して適用されるルールが存在しない場合(ステップS505においてNO)、ルール照合プロセスは更なる処理を実行しない。この場合、ステップS501に戻って、データ取得部111が次のデータを処理する。 If there is no rule applied to the data received from the control unit 112 (NO in step S505), the rule matching process does not perform further processing. In this case, the process returns to step S501, and the data acquisition unit 111 processes the next data.

制御部112から受け取ったデータに対して適用されるルールが存在する場合(ステップS505においてYES)、ルール照合部114(ルール照合プロセス)が、制御部112に対して、ルール照合処理の結果を通知する(ステップS506)。より具体的には、ルール照合プロセスが、あるデータが特定のルールに対するイベント条件を満たすと判定した場合、ルール照合部114は、当該判定結果を制御部112に通知してもよい。あるルールに対して複数のイベント条件が設定されている場合、ルール照合部114は、全てのイベント条件が満たされた際に、判定結果を制御部112に通知してもよい。また、ルール照合部114は、一部のイベント条件が満たされた際に、判定結果を制御部112に通知してもよい。なお、ルール照合部114は、ルール毎に、当該ルールに設定されたイベント条件が満たされた否かを表す情報を、中間状態として保持してもよい。 When there is a rule applied to the data received from the control unit 112 (YES in step S505), the rule matching unit 114 (rule matching process) notifies the control unit 112 of the result of the rule matching process. Yes (step S506). More specifically, when the rule matching process determines that a certain data satisfies the event condition for a specific rule, the rule matching unit 114 may notify the control unit 112 of the determination result. When a plurality of event conditions are set for a certain rule, the rule matching unit 114 may notify the control unit 112 of the determination result when all the event conditions are satisfied. In addition, the rule matching unit 114 may notify the determination result to the control unit 112 when some event conditions are satisfied. The rule matching unit 114 may hold, for each rule, information indicating whether or not the event condition set in the rule is satisfied, as an intermediate state.

次に、制御部112が、ルールに設定された処理(アクション)を実行するように、処理実行部116を呼び出す(ステップS507)。 Next, the control unit 112 calls the process execution unit 116 so as to execute the process (action) set in the rule (step S507).

処理実行部116は、制御部112からの指示に従ってルールに設定された処理(アクション)を実行する(ステップS508)。 The process execution unit 116 executes the process (action) set in the rule according to the instruction from the control unit 112 (step S508).

上記説明したフローチャートにおけるステップS504乃至ステップS506に例示された処理は、ルール照合部114において、1以上のルール照合プロセスにより並列に処理される。即ち、CEPシステム110(特には制御部112)は、ルール照合部114におけるルール照合処理を並列化することにより、処理を高速化(分散化)する。以下、ルール照合部114における並列処理について説明する。 The processes illustrated in steps S504 to S506 in the above-described flowchart are processed in parallel by the rule matching unit 114 by one or more rule matching processes. That is, the CEP system 110 (particularly the control unit 112) speeds up (distributes) the process by parallelizing the rule matching process in the rule matching unit 114. Hereinafter, parallel processing in the rule matching unit 114 will be described.

上記したように、ルール照合プロセスが、ルール照合処理を実行する場合、それぞれのルールを構成するイベント条件が成立したか否かが判定される。この場合、割当て部113が、ルール照合プロセスに対して、当該イベント条件が成立したか否かを判定する際に用いられるデータ(以下、「イベント条件の成否に関するデータ」と称する)を割当てる。割当て部113が、あるルールを構成するイベント条件の成否を判定する際に一括して処理されるデータを、各ルール照合プロセスにまとめて割当てることを想定する。この場合、各ルール照合プロセスは、当該ルールに対するルール照合処理を効率的に実行可能である。なぜならば、これにより、複数のルール照合プロセスが、割当てられたデータを用いてルール照合処理を個別に実行することができるからである。即ち、複数のルール照合プロセスにより、ルール照合処理が並列に実行されるからである。 As described above, when the rule matching process executes the rule matching process, it is determined whether or not the event condition forming each rule is satisfied. In this case, the assigning unit 113 assigns to the rule matching process data (hereinafter, referred to as “data regarding success or failure of event condition”) used when determining whether or not the event condition is satisfied. It is assumed that the assigning unit 113 assigns data to be collectively processed when determining the success or failure of an event condition forming a rule to each rule matching process. In this case, each rule matching process can efficiently execute the rule matching process for the rule. This is because this allows a plurality of rule matching processes to individually execute the rule matching process using the assigned data. That is, the rule matching process is executed in parallel by the plurality of rule matching processes.

割当て部113は、ルール保持部115に保持されたルールを読み込み、その内容(特には、各ルールのイベント条件)を解析する。このルールの解析処理は、制御部112の起動時に行われてもよい。イベント条件には、ルール照合処理の対象となるデータに関する条件が設定されている。係るイベント条件には、当該データが流れる(伝送される)通信経路を判定可能な情報も含まれる。割当て部113は、係るイベント条件を解析することにより、当該イベント条件が成立したか否かを判定する際に用いられる、データの通信経路を確認する。これにより、割当て部113は、ルール照合処理プロセスがルール照合処理を実行する際、データの通信経路に応じて、一括して処理することが望ましいデータを判断することができる。 The assigning unit 113 reads the rule held in the rule holding unit 115 and analyzes the content (in particular, the event condition of each rule). This rule analysis process may be performed when the control unit 112 is activated. In the event condition, a condition regarding data that is the target of the rule matching process is set. The event condition includes information that can determine the communication path through which the data flows (is transmitted). The allocating unit 113 analyzes the event condition to confirm the data communication path used when determining whether or not the event condition is satisfied. With this, when the rule matching process executes the rule matching process, the assigning unit 113 can determine the data that should be collectively processed according to the communication path of the data.

図7に示す具体例を用いて、ルール照合処理について説明する。例えば、ルールA(図7の701)のイベント条件を参照すると、イベントA1及びイベントA2は、ともにデータ受信部A(130A)からデータ送信部A(150A)に送信されるデータに関する条件である。これより、ルール照合プロセスは、データ受信部A(130A)からデータ送信部A(150A)に至る経路を流れる(伝送される)データを取得できれば、ルールAに関するルール照合処理を実行可能である。 The rule matching process will be described using the specific example shown in FIG. 7. For example, referring to the event condition of rule A (701 in FIG. 7), both the event A1 and the event A2 are conditions related to the data transmitted from the data receiving unit A (130A) to the data transmitting unit A (150A). From this, the rule matching process can execute the rule matching process related to the rule A if the data flowing (transmitted) through the path from the data receiving unit A (130A) to the data transmitting unit A (150A) can be acquired.

同様に、ルールB(図7の702)は、データ受信部Bからデータ送信部Bの経路を流れるデータに関する条件である。これより、ルール照合プロセスは、データ受信部Bからデータ送信部Bに至る経路を流れるデータを取得できれば、ルールBに関するルール照合処理を実行可能である。 Similarly, rule B (702 in FIG. 7) is a condition regarding data flowing through the path from the data receiving unit B to the data transmitting unit B. As a result, the rule matching process can execute the rule matching process for the rule B if the data flowing through the path from the data receiving unit B to the data transmitting unit B can be acquired.

図7に例示する具体例においては、ルールA、ルールB以外の他のルールは設定されていない。これより、制御部112(割当て部113)は、その他の通信経路を流れるデータに対しては、ルール照合処理を実行しないと判断できる。 In the specific example illustrated in FIG. 7, rules other than the rule A and the rule B are not set. From this, the control unit 112 (allocation unit 113) can determine that the rule matching process is not performed on the data flowing through the other communication paths.

そこで、制御部112は、図8に例示するように、ルールAに関するルール照合処理を行うルール照合プロセス1と、ルールBに関するルール照合処理を行うルール照合プロセス2とを用意する。即ち、制御部112(特には割当て部113)は、それぞれのルールを構成するイベント条件の解析結果に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、制御部112(割当て部113)が、2つのルール照合プロセスを用意(生成)してもよく、ルール照合部114が2つのルール照合プロセスを用意(生成)してもよい。 Therefore, as illustrated in FIG. 8, the control unit 112 prepares a rule matching process 1 that performs a rule matching process regarding rule A and a rule matching process 2 that performs a rule matching process regarding rule B. That is, the control unit 112 (specifically, the assignment unit 113) prepares a rule matching process that processes each rule based on the analysis result of the event condition that configures each rule. In this case, the control unit 112 (assignment unit 113) may prepare (generate) two rule matching processes, or the rule matching unit 114 may prepare (generate) two rule matching processes.

より具体的には、割当て部113は、それぞれのルールを構成するイベント条件の成否に関するデータの通信経路に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、それぞれのルール照合プロセスが、ルール保持部115に保持された各ルールに関する照合処理を実行可能であってもよい。また、一つのルール照合プロセスが、複数のルールに関するルール照合処理を実行可能であってもよい。なお、所定の数のルール照合プロセスが、例えばCEPシステム110の起動時等に、予め用意されてもよい。 More specifically, the allocating unit 113 prepares a rule matching process for processing each rule based on the communication path of the data regarding the success or failure of the event condition that constitutes each rule. In this case, each rule matching process may be able to execute the matching process for each rule held in the rule holding unit 115. Further, one rule matching process may be able to execute the rule matching process regarding a plurality of rules. Note that a predetermined number of rule matching processes may be prepared in advance, for example, when the CEP system 110 is activated.

上記のような処理により、1つのルール照合プロセスが処理すべきルールの数が実質的に低減されることから、それぞれのルール照合プロセスは高速に照合処理を行うことが可能である。例えば、図7、図8に例示する具体例においては、ルール照合プロセス1及びルール照合プロセス2は、それぞれ1つのルールに関する照合処理を実行すればよい。この場合、それぞれのルール照合プロセスが、ルールA、ルールBの両方を処理する場合に比べて、処理対象のルールが半分になる。 Since the number of rules to be processed by one rule matching process is substantially reduced by the above processing, each rule matching process can perform matching processing at high speed. For example, in the specific examples illustrated in FIGS. 7 and 8, the rule matching process 1 and the rule matching process 2 may each execute the matching process for one rule. In this case, each rule matching process halves the number of rules to be processed as compared with the case of processing both rule A and rule B.

割当て部113は、例えば、用意されたルール照合プロセスに対して、それぞれのルール照合プロセスが照合処理を実行すべきルールを明示的に指定してもよい。また、割当て部113は、例えば、それぞれのルール照合プロセスに渡す(割当てる)データを制御することにより、当該ルール照合プロセスが照合処理を実行すべきルールを実質的に指定してもよい。 For example, the assigning unit 113 may explicitly specify a rule for which each rule matching process should perform matching processing for the prepared rule matching process. Further, the allocation unit 113 may substantially specify the rule to be executed by the rule matching process by controlling the data to be passed (allocated) to each rule matching process.

図7及び図8に示す具体例において、割当て部113は、例えば、データ受信部A(130A)からデータ送信部A(150A)に送信されるデータを、ある特定のルール照合プロセス(例えばルール照合プロセス1)に渡してもよい。これにより、割当て部113は、ルールAに関するルール照合処理を実行するよう、当該ルール照合プロセスを実質的に制御することが可能である。同様に、割当て部113は、データ受信部Bからデータ送信部Bに送信されるデータを他のルール照合プロセス(例えばルール照合プロセス2)に渡してもよい。これにより、割当て部113は、ルールBに関するルール照合処理を実行するよう、当該他のルール照合プロセスを実質的に制御することが可能である。 In the specific example shown in FIG. 7 and FIG. 8, the assigning unit 113, for example, processes the data transmitted from the data receiving unit A (130A) to the data transmitting unit A (150A) with a specific rule matching process (for example, rule matching). It may be passed to process 1). Accordingly, the assigning unit 113 can substantially control the rule matching process so that the rule matching process regarding the rule A is executed. Similarly, the allocating unit 113 may pass the data transmitted from the data receiving unit B to the data transmitting unit B to another rule matching process (for example, the rule matching process 2). As a result, the assigning unit 113 can substantially control the other rule matching process so as to execute the rule matching process regarding the rule B.

次に、割当て部113が、データ取得部111から渡されたデータを割当てる処理について、詳細に説明する。割当て部113は、データ取得部111から渡されたデータの通信経路に基づいて、当該データをルール照合プロセスに割当てる(ステップS503)。換言すると、割当て部113は、イベント条件の成否に関するデータを、当該データの通信経路に応じてルール照合プロセスに割当てる。 Next, the process in which the allocation unit 113 allocates the data passed from the data acquisition unit 111 will be described in detail. The allocation unit 113 allocates the data to the rule matching process based on the communication path of the data passed from the data acquisition unit 111 (step S503). In other words, the allocation unit 113 allocates the data regarding the success or failure of the event condition to the rule matching process according to the communication path of the data.

より具体的には、割当て部113は、上記ルールを解析することにより、当該ルールを構成するイベント条件の成否を判断する際に用いられる、データの通信経路を確認する。そして、割当て部113は、データ取得部111からデータを渡された際に、当該渡されたデータの通信経路と、上記イベント条件に設定されたデータの通信経路とを比較する。割当て部113は、係る比較の結果が等しい場合、当該イベント条件により構成されるルールに関連付けされたルール照合プロセスに、データ取得部111から渡されたデータを渡す(割当てる)。なお、割当て部113は、上記比較の結果、あるルールを構成するイベント条件に設定されたデータの通信経路に、データ取得部111から渡されたデータの通信経路が含まれる場合も、上記と同様としてよい。 More specifically, the allocating unit 113 analyzes the above-mentioned rule to confirm the data communication path used when determining the success or failure of the event condition forming the rule. Then, when the data is passed from the data acquisition unit 111, the allocation unit 113 compares the communication route of the passed data with the communication route of the data set in the event condition. If the comparison results are equal, the allocating unit 113 passes (allocates) the data passed from the data acquisition unit 111 to the rule matching process associated with the rule configured by the event condition. It should be noted that, as a result of the comparison, the allocating unit 113 also performs the same processing as above even when the data communication path set in the event condition forming a certain rule includes the data communication path passed from the data acquisition unit 111. Good as

以上説明した処理により、割当て部113は、あるルール照合プロセスに対して、特定のルールに関するルール照合処理を実行させることが可能である。また、そのルール照合プロセスにおいて、データ照合処理が過不足なく実行される。 Through the processing described above, the assigning unit 113 can cause a certain rule matching process to execute the rule matching process for a specific rule. Further, in the rule matching process, the data matching process is executed just enough.

ここで、仮に、一つのルールが複数のルール照合プロセスに割当てられている状況を想定する。係る状況においては、複数のルール照合プロセスが、同時(略同時な場合も含む)に、同じルールに関するイベント条件の成否を判定する可能性がある。この場合、アクションが重複して実行されてしまう可能性がある。このような状況を回避するため、制御部112(割当て部113)は、同じルールが複数のルール照合プロセスに重複して割当てられないように、ルール照合プロセスを用意してもよい。また、制御部112(割当て部113)は、同一のルールに関するルール照合処理を、異なるルール照合プロセスに割当てないように制御してもよい。 Here, it is assumed that one rule is assigned to a plurality of rule matching processes. In such a situation, multiple rule matching processes may simultaneously (or almost simultaneously) determine the success or failure of event conditions for the same rule. In this case, actions may be duplicated and executed. In order to avoid such a situation, the control unit 112 (assignment unit 113) may prepare a rule matching process so that the same rule is not assigned to a plurality of rule matching processes in duplicate. Further, the control unit 112 (assignment unit 113) may perform control so that rule matching processing regarding the same rule is not allocated to different rule matching processes.

次に、本実施形態におけるCEPシステム110が奏する効果について説明する。 Next, the effect of the CEP system 110 according to this embodiment will be described.

上記のように構成された本実施形態におけるCEPシステム110は、ルール照合処理を並列化可能である。さらに、CEPシステム110は、ルール照合処理を実行する処理要素(例えばルール照合部114におけるルール照合プロセス)に、割当てるデータを適切に判断し、ルール照合処理の精度を保ったまま処理を高速化可能である。その理由は、CEPシステム110が、設定されたルールの内容(例えば、イベント条件)と、サービスバスシステム100におけるデータの通信経路とを分析することにより、ルール照合処理を実行する各処理要素において一括して処理すべきデータを判断可能だからである。これにより、一括して処理されるべきデータが複数の処理要素に分散して割当てられる状況が回避される。このことから、各処理要素は、他の処理要素とは独立してルール照合処理を実行可能である。即ち、各処理要素間においてデータを共有するためのオーバーヘッドがないことから、各処理要素はルール照合処理を効率的に実行可能である。また、上記したように、各処理要素が処理すべきルールの数(各処理要素に割り当てられるルールの数)が低減されることから、各処理要素がルール照合処理を高速に実行可能である。また、本実施形態によれば、あるルール照合処理に用いられるデータが異なる処理要素に分散して割当てられることがない。即ち、同一のルールに関するルール照合処理が異なる処理要素において重複して実行されることがない。よって、CEPシステム110は、ルール照合処理の精度を保ったままで処理を高速化可能である。 The CEP system 110 according to the present embodiment configured as described above can parallelize the rule matching processing. Further, the CEP system 110 can appropriately determine the data to be allocated to the processing element that executes the rule matching process (for example, the rule matching process in the rule matching unit 114), and can speed up the process while maintaining the accuracy of the rule matching process. Is. The reason is that the CEP system 110 analyzes the content of the set rule (for example, an event condition) and the data communication path in the service bus system 100, so that the processing elements that execute the rule matching process collectively. This is because the data to be processed can be determined. This avoids a situation in which data to be collectively processed is distributed and allocated to a plurality of processing elements. From this, each processing element can execute the rule matching processing independently of the other processing elements. That is, since there is no overhead for sharing data between the processing elements, each processing element can efficiently execute the rule matching process. Further, as described above, since the number of rules to be processed by each processing element (the number of rules assigned to each processing element) is reduced, each processing element can execute rule matching processing at high speed. Further, according to this embodiment, data used for a certain rule matching process is not distributed and assigned to different processing elements. That is, the rule matching process regarding the same rule is not duplicated in different processing elements. Therefore, the CEP system 110 can speed up the processing while maintaining the accuracy of the rule matching processing.

上記のように構成されたCEPシステム110は、更に、入力されるデータの形式が共通化されることから、画一的なデータの処理が可能となる。その理由は、CEPシステム110がサービスバスシステム100に導入(適用)されることで、サービスバス上を流れる、共通化されたデータ形式のデータが、CEPシステム110に入力されるからである。 In the CEP system 110 configured as described above, since the format of input data is made common, uniform data processing is possible. The reason is that when the CEP system 110 is introduced (applied) to the service bus system 100, data in a common data format flowing on the service bus is input to the CEP system 110.

以上より、本実施形態におけるCEPシステム110によれば、通信ネットワークを介して受信したデータに関する情報(例えば、当該データの通信経路に関する情報)に基づいて、当該通信データを適切な単位で並列に処理可能である。 As described above, according to the CEP system 110 in this embodiment, the communication data is processed in parallel in appropriate units based on the information about the data received via the communication network (for example, the information about the communication path of the data). It is possible.

<第1の実施形態の変形例1>
次に、上記説明した本発明の第1の実施形態に関する、第1の変形例(以下、変形例1と称する)について説明する。なお、本変形例1のシステム構成自体は、上記第1の実施形態と同様としてよく、以下に説明する通り動作が異なる。よって、本変形例1のシステム構成に関する詳細な説明を省略する。
<Modification 1 of the first embodiment>
Next, a first modified example (hereinafter referred to as a modified example 1) of the above-described first embodiment of the present invention will be described. The system configuration itself of the first modification may be the same as that of the first embodiment, and the operation is different as described below. Therefore, detailed description of the system configuration of the first modification is omitted.

本変形例1における割当て部113は、必要に応じて複数のルール照合プロセスで同じデータを重複して処理するよう、各ルール照合プロセスにデータを割当てる処理構成において、上記第1の実施形態と相違する。以下、図9及び図10に例示する具体例を用いて、係る相違を中心に説明する。 The allocation unit 113 in the first modification differs from the first embodiment in the processing configuration for allocating data to each rule matching process so that the same data is redundantly processed in a plurality of rule matching processes as necessary. To do. Hereinafter, the difference will be mainly described with reference to specific examples illustrated in FIGS. 9 and 10.

図9は、図7とは異なるルールの具体例を示す図である。図9に示す具体例においては、ルールA乃至ルールDの4つのルールがルール保持部115に設定されている。ルールA、ルールB、及び、ルールDを構成するイベント条件は、データ受信部Aからデータ送信部Aへの通信経路を流れるデータに関する条件を含む。また、ルールCを構成するイベント条件は、データ受信部Aから全てのデータ送信部への経路を流れるデータに関する条件を含む。これより、ルールA乃至ルールDのいずれのルールに関するルール照合処理においても、データ受信部Aからデータ送信部Aへの通信経路を流れるデータを取得する必要がある。換言すると、この場合、データ受信部Aからデータ送信部Aへの通信経路を流れるデータは、すべてのルールと照合される。 FIG. 9 is a diagram showing a specific example of a rule different from that in FIG. In the specific example shown in FIG. 9, four rules A to D are set in the rule holding unit 115. The event conditions forming the rules A, B, and D include conditions regarding data flowing through the communication path from the data receiving unit A to the data transmitting unit A. In addition, the event condition forming the rule C includes a condition regarding data flowing through the path from the data receiving unit A to all the data transmitting units. As a result, in the rule matching process relating to any of the rules A to D, it is necessary to acquire the data flowing through the communication path from the data receiving unit A to the data transmitting unit A. In other words, in this case, the data flowing through the communication path from the data receiving unit A to the data transmitting unit A is matched with all the rules.

係る状況において、割当て部113が、例えば上記第1の実施形態における図7に例示するルールと同様の処理を実行した場合、一つのルール照合プロセスにおいて、すべてのルールに対するルール照合処理が実行されてしまう可能性が有る。この場合、ルール照合処理の並列化が有効に機能しないという問題がある。具体的に説明すると、図7に例示する具体例においては、ルールAと、ルールBとにおいて、イベント条件の成否に関するデータの通信経路が異なっている。このことから、割当て部113が、それぞれの通信経路において伝送されるデータを別々のルール照合プロセスに渡すことができる。これにより、それぞれのルール照合プロセスが、ルールAあるいはルールBに関するルール照合処理を別々に(並列して)実行可能である。 In such a situation, when the assigning unit 113 executes, for example, the same process as the rule illustrated in FIG. 7 in the first embodiment, the rule matching process for all rules is executed in one rule matching process. There is a possibility that it will end up. In this case, there is a problem that parallelization of rule matching processing does not function effectively. More specifically, in the specific example illustrated in FIG. 7, the rule A and the rule B have different communication paths for data regarding the success or failure of the event condition. Therefore, the assigning unit 113 can pass the data transmitted on each communication path to different rule matching processes. As a result, each rule matching process can separately (in parallel) execute the rule matching process concerning the rule A or the rule B.

これに対して、図9に例示する具体例においては、データ受信部Aからデータ送信部Aへの通信経路を流れるデータは、全てのルールに関するルール照合処理に共通に用いられる。これより、割当て部113は、当該データを、全てのルール照合プロセスに渡す必要がある。割当て部113から、データ受信部Aからデータ送信部Aへの通信経路を流れるデータを渡された場合、各ルール照合プロセスは、ルールA乃至ルールDを構成するイベント条件の成否をそれぞれ判定する処理を実行してしまう可能性がある。この場合、結果として、各ルール照合プロセスにおける処理が重複してしまうことから、ルール照合処理の並列化が有効に機能しない可能性がある。 On the other hand, in the specific example illustrated in FIG. 9, the data flowing through the communication path from the data receiving unit A to the data transmitting unit A is commonly used for the rule matching process regarding all the rules. Therefore, the allocation unit 113 needs to pass the data to all rule matching processes. When the data flowing through the communication path from the data receiving unit A to the data transmitting unit A is passed from the allocating unit 113, each rule matching process determines whether or not the event conditions forming the rules A to D are satisfied. May be executed. In this case, as a result, the processing in each rule matching process is duplicated, and thus the parallelization of the rule matching process may not function effectively.

これに対して、本変形例1に係る割当て部113は、あるデータが複数のルール照合処理に共通して用いられるような状況(他えば図9)においても、ルール照合処理の並列化が有効に機能するよう、各ルール照合プロセスに対するデータの割当てを調整する。より具体的には、本変形例1における割当て部113は、複数のルール照合プロセスが、特定のデータを重複して処理することを許容する。以下、本変形例1における割当て部113の動作について図9に示す具体例を用いて説明する。 On the other hand, in the allocating unit 113 according to the first modification, parallelization of rule matching processing is effective even in a situation in which certain data is commonly used in a plurality of rule matching processing (eg, FIG. 9). Adjust the allocation of data for each rule matching process to work. More specifically, the assigning unit 113 in the first modification allows a plurality of rule matching processes to duplicately process specific data. Hereinafter, the operation of the allocation unit 113 in the first modification will be described using a specific example shown in FIG.

図9に示す具体例においては、データ受信部Aからデータ送信部Aへの通信経路を流れるデータの扱いが問題となる。そこで、本変形例1における割当て部113は、この通信経路を流れるデータを複数のルール照合プロセスが重複して処理することを許容する。係る重複処理を許容すると、図10に例示するように、ルール照合プロセス毎にルール照合処理が実行されるルールと、そのルール照合処理において用いられるデータの通信経路とが整理される。 In the specific example shown in FIG. 9, handling of data flowing through the communication path from the data receiving unit A to the data transmitting unit A becomes a problem. Therefore, the assigning unit 113 according to the first modification allows a plurality of rule matching processes to process the data flowing through the communication path in an overlapping manner. When such duplication processing is allowed, as illustrated in FIG. 10, rules for which rule matching processing is executed for each rule matching process and communication paths of data used in the rule matching processing are arranged.

より具体的には、ルールAに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」と、「データ受信部Bから全てのデータ送信部に伝送されるデータ」が用いられる。 More specifically, in the rule matching process regarding the rule A, "data transmitted from the data receiving unit A to the data transmitting unit A" and "data transmitted from the data receiving unit B to all data transmitting units". Is used.

ルールBに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」が用いられる。 In the rule matching process regarding the rule B, “data transmitted from the data receiving unit A to the data transmitting unit A” is used.

ルールCに関するルール照合処理においては、「データ受信部Bからデータ送信部Bに伝送されるデータ」と、「データ受信部Aから全てのデータ送信部に伝送されるデータ」が用いられる。 In the rule matching process regarding rule C, "data transmitted from data receiving unit B to data transmitting unit B" and "data transmitted from data receiving unit A to all data transmitting units" are used.

ルールDに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」が用いられる。 In the rule matching process regarding the rule D, “data transmitted from the data receiving unit A to the data transmitting unit A” is used.

これより、ルールAと、ルールBとに関するルール照合処理は、「データ受信部Aからデータ送信部Aに伝送されるデータ」と、「データ受信部Bから全てのデータ送信部に伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール(ルールA、ルールB)に対するルール照合処理に必要とされるデータの論理和である。 From this, the rule collating process regarding the rule A and the rule B is performed by "data transmitted from the data receiving unit A to the data transmitting unit A" and "data transmitted from the data receiving unit B to all data transmitting units". It is feasible if there is ". These data are the logical sum of the data required for the rule matching process for each rule (rule A, rule B).

更に、ルールCと、ルールDとに関するルール照合処理は、「データ受信部Aから全てのデータ送信部に伝送されるデータ」と、「データ受信部Bからデータ送信部Bに伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール(ルールC、ルールD)に対するルール照合処理に必要とされるデータの論理和である。 Furthermore, the rule matching process regarding the rule C and the rule D is performed by "data transmitted from the data receiving unit A to all data transmitting units" and "data transmitted from the data receiving unit B to the data transmitting unit B". If there is, it is feasible. These data are the logical sum of the data required for the rule matching process for each rule (rule C, rule D).

本変形例1における割当て部113は、例えば、図9に例示するルール(特にはイベント条件)を解析することにより、上記のような解析結果を得る。割当て部113は、係る解析結果に基づいて、図10に例示するような、2つのルール照合プロセスを用意する。この場合、割当て部113は、ルール照合プロセス1(図10の1001)に、ルールA及びルールBに関するルール照合処理に必要なデータを渡す。また、割当て部113は、ルール照合プロセス2(図10の1002)に、ルールC及びルールDに関するルール照合処理に必要なデータを渡す。即ち、「データ受信部Aからデータ送信部Aに伝送されるデータ」は、上記2つのルール照合プロセスに渡され、それぞれにおいて重複して処理される。 The assigning unit 113 in Modification 1 obtains the analysis result as described above, for example, by analyzing the rule (in particular, the event condition) illustrated in FIG. 9. The assigning unit 113 prepares two rule matching processes as illustrated in FIG. 10 based on the analysis result. In this case, the allocation unit 113 passes the data necessary for the rule matching process regarding the rule A and the rule B to the rule matching process 1 (1001 in FIG. 10). Further, the allocation unit 113 passes the data necessary for the rule matching process regarding the rules C and D to the rule matching process 2 (1002 in FIG. 10). That is, the "data transmitted from the data receiving unit A to the data transmitting unit A" is passed to the above two rule matching processes and processed in duplicate in each of them.

このような処理により、割当て部113は、ルールAとルールBを処理するルール照合プロセス1(図10の1001)と、ルールCとルールDを処理するルール照合プロセス2(図10の1002)とに処理を並列化可能である。これにより、総ルール数4に対して1プロセスあたりのルール数が2に減らされることから、各ルール照合プロセスは高速に処理を行うことができる。 By such processing, the assigning unit 113 performs the rule matching process 1 (1001 in FIG. 10) that processes the rules A and B, and the rule matching process 2 (1002 in FIG. 10) that processes the rules C and D. It is possible to parallelize processing. As a result, the number of rules per process is reduced to 2 with respect to the total number of rules of 4, so that each rule matching process can be processed at high speed.

上記したように、本変形例1における割当て部113は、複数のルールに関するルール照合処理において共通して用いられるデータ(以下、第1のデータと称する場合がある)を、それらのルールに関する照合処理を実行する全てのルール照合処理プロセスに重複して渡す。また、本変形例1における割当て部113は、ある特定のルールに関するルール照合処理にのみ用いられるデータ(以下、第2のデータと称する場合がある)を、特定のルール照合処理プロセスにのみ渡す。 As described above, the assigning unit 113 according to the first modification converts the data commonly used in the rule matching process regarding a plurality of rules (hereinafter sometimes referred to as first data) to the matching process regarding those rules. It is passed to all rule matching processing processes that execute. In addition, the assigning unit 113 in the first modification passes the data used only for the rule matching processing regarding a certain specific rule (hereinafter, may be referred to as second data) only to the specific rule matching processing process.

本変形例1における割当て部113は、各ルール照合プロセスに対する第1のデータ及び第2のデータの割当てを制御することにより、各ルール照合プロセスが照合処理を実行すべきルールを実質的に指定することが可能である。これにより、各ルール照合プロセスは、それぞれが異なるルールに関するルール照合処理を並列に実行可能である。 The allocation unit 113 in the first modification controls the allocation of the first data and the second data to each rule matching process, thereby substantially designating the rule to be executed by each rule matching process. It is possible. As a result, the rule matching processes can execute the rule matching processes for different rules in parallel.

ここで、割当て部113が重複して処理されるデータを際限なく許容すると、ルール数と同数のルール照合プロセスを用意することになり、リソースの使用効率が低下することが想定される。そこで、割当て部113が用意可能なルール照合プロセスの最大プロセス数を事前に定めておき、その数を超えてプロセスを作成(用意)できないよう制限してもよい。図10に例示する具体例は、係る最大プロセス数が「2」の場合の具体例に相当する。 Here, if the allocating unit 113 allows endlessly duplicated data to be processed, it is assumed that the same number of rule matching processes as the number of rules will be prepared, and resource usage efficiency will decrease. Therefore, the maximum number of rule matching processes that can be prepared by the allocating unit 113 may be determined in advance, and the number of processes may not be created (prepared) beyond that number. The specific example illustrated in FIG. 10 corresponds to a specific example in which the maximum number of processes is “2”.

上記のように構成された本変形例1におけるCEPシステム110は、あるデータが複数のルール照合処理に用いられる場合に、当該データを複数のルール照合プロセスに重複して渡す(割当てる)。これにより、本変形例1におけるCEPシステム110は、各ルール照合プロセスに割当てられるルールを実質的に制御可能であり、各ルール照合プロセスは、それぞれ並列に、割当てられたルールに関するルール照合処理を実行可能である。また、本変形例1におけるCEPシステム110は、上記第1の実施形態と同様の構成を備えることから、上記第1の実施形態と同様の効果を奏する。 The CEP system 110 according to the first modified example configured as described above, when a certain data is used for a plurality of rule matching processes, passes (assigns) the data to a plurality of rule matching processes in an overlapping manner. As a result, the CEP system 110 according to the first modification can substantially control the rules assigned to the rule matching processes, and the rule matching processes execute the rule matching processing regarding the assigned rules in parallel. It is possible. Further, the CEP system 110 according to the present modification 1 has the same configuration as that of the first embodiment described above, and therefore has the same effect as that of the first embodiment described above.

<第1の実施形態に関するその他の変形例>
上記第1の実施形態の変形例として、以下のような構成も本発明の実施形態に含まれる。
<Other Modifications of First Embodiment>
As a modified example of the first embodiment, the following configurations are also included in the embodiment of the present invention.

まず、上記第1の実施形態においては、ルール照合プロセスが、CEPシステム110を構成するルール照合部114において実行されている。即ち、上記第1の実施形態においては、係るルール照合プロセスは、例えば、ルール照合部114を構成する装置(あるいは、CEPシステム110、サービスバスシステム100を構成する装置)において実行される。上記に限定されず、係るルール照合プロセスは、複数の装置を用いた分散処理により実行されてもよい。この場合、ルール照合プロセスを実行する複数の装置は、サービスバスシステム100の外部に配置されてもよい。 First, in the first embodiment, the rule matching process is executed in the rule matching unit 114 that constitutes the CEP system 110. That is, in the first embodiment, the rule matching process is executed in, for example, the device configuring the rule matching unit 114 (or the device configuring the CEP system 110 or the service bus system 100). Without being limited to the above, the rule matching process may be executed by distributed processing using a plurality of devices. In this case, the multiple devices that perform the rule matching process may be located outside of the service bus system 100.

また、上記第1の実施形態においては、具体例として、データ発生源(例えば、データ発生源A(120A))からサービス(例えば、サービスA(160A))へ送信される一方向のデータが例示されている。上記に限定されず、上記各実施形態及び変形例は、データ受信部及びデータ送信部を、それぞれデータ送受信部として構成することにより、双方向のデータを処理する場合にも適用可能である。 Further, in the first embodiment, as a specific example, one-way data transmitted from a data generation source (for example, data generation source A (120A)) to a service (for example, service A (160A)) is illustrated. Has been done. Without being limited to the above, each of the above-described embodiments and modifications can be applied to the case where bidirectional data is processed by configuring the data receiving unit and the data transmitting unit as data transmitting/receiving units.

<第2の実施形態>
次に、本発明の第2の実施形態に係るデータ処理システムについて説明する。本実施形態におけるデータ処理システムは、例えば、上記各実施形態及びその変形例における、CEPシステム110に相当する。
<Second Embodiment>
Next, a data processing system according to the second embodiment of the present invention will be described. The data processing system in the present embodiment corresponds to, for example, the CEP system 110 in each of the above-described embodiments and its modifications.

本実施形態におけるデータ処理システムは、上記各実施形態と同様、1台のハードウェア装置を用いたデータ処理装置として構成されてもよく、複数台のハードウェア装置を用いたシステムとして構成されてもよい。なお、係るハードウェア装置は、物理的な装置であってもよく、周知の仮想化基盤を用いて実現される仮想的な装置であってもよい。 The data processing system according to the present embodiment may be configured as a data processing device using one hardware device or may be configured as a system using a plurality of hardware devices, as in the above embodiments. Good. The hardware device may be a physical device or a virtual device realized by using a well-known virtualization platform.

次に、本実施形態におけるデータ処理システムの構成について図11を参照して説明する。図11は、本発明の第2の実施形態に係るデータ処理システム1100の機能的な構成を例示するブロック図である。 Next, the configuration of the data processing system in this embodiment will be described with reference to FIG. FIG. 11 is a block diagram illustrating a functional configuration of the data processing system 1100 according to the second embodiment of the present invention.

図11に例示するように、本実施形態におけるデータ処理システム1100は、受信部1101と、並列実行部1102と、割当て部1103とを備える。データ処理システム1100を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されている。以下、それぞれの構成要素について説明する。 As illustrated in FIG. 11, the data processing system 1100 according to this embodiment includes a reception unit 1101, a parallel execution unit 1102, and an allocation unit 1103. These constituent elements of the data processing system 1100 are communicatively connected to each other using an appropriate communication method. Hereinafter, each component will be described.

受信部1101(受信手段)は、データの発生源(不図示)から通信ネットワークを介してデータを受信する。係るデータの発生源は、例えば、各種情報処理端末やセンサ等であってもよい。また、係るデータは、当該データの発生源において発生した各種事象を表すイベントとして通知されてもよい。なお、係る受信部1101は、例えば、上記各実施形態におけるデータ受信部(例えば、データ受信部A(130A))と同様としてもよい。また、係る通信ネットワークを用いて、上記各実施形態において説明したサービスバスシステム100により、サービスバスが提供されてもよい。 The reception unit 1101 (reception means) receives data from a data generation source (not shown) via a communication network. The source of such data may be, for example, various information processing terminals, sensors, or the like. Further, such data may be notified as an event representing various events that have occurred in the source of the data. The receiving unit 1101 may be the same as the data receiving unit (for example, the data receiving unit A (130A)) in each of the above-described embodiments. In addition, a service bus may be provided by the service bus system 100 described in each of the above embodiments using the communication network.

並列実行部1102(並列実行手段)は、受信部1101において受信したデータに関して、ルール(特には、後述するルールを構成する条件)に満たす否かを判定する判定処理を並列に実行する。係るルールは、例えば、受信したデータに関する条件を表す情報と、当該条件が成立した場合に当該データに関して実行される処理を表す情報とにより構成される。なお、係る並列実行部1102は、例えば、上記各実施形態におけるルール照合部114と同様としてもよい。また、並列実行部1102において並列に実行される判定処理は、例えば、上記各実施形態において複数のルール照合プロセスが並列に実行するルール照合処理と同様としてもよい。 The parallel execution unit 1102 (parallel execution unit) executes in parallel a determination process for determining whether or not the data received by the reception unit 1101 satisfies a rule (particularly, a condition forming a rule described later). The rule is composed of, for example, information indicating a condition regarding the received data and information indicating a process executed on the data when the condition is satisfied. The parallel execution unit 1102 may be the same as the rule matching unit 114 in each of the above embodiments. Further, the determination process executed in parallel in the parallel execution unit 1102 may be the same as the rule verification process executed in parallel by a plurality of rule verification processes in each of the above embodiments.

割当て部1103(割当て手段)は、上記受信部1101において受信した1以上のデータを、それぞれのデータの通信経路に応じて、上記並列実行部1102において実行される判定処理に並列に割当てる(設定する)。なお、係る割当て部1103は、例えば、上記各実施形態における割当て部113と同様としてもよい。 The allocating unit 1103 (allocating unit) allocates (sets) one or more data received by the receiving unit 1101 in parallel to the determination process executed by the parallel executing unit 1102 according to the communication path of each data. ). The assigning unit 1103 may be the same as the assigning unit 113 in each of the above embodiments.

上記のように構成されたデータ処理システム1100は、受信したデータがルール(特にはルールを構成する条件)を満たすか否かを判定する処理を並列に実行可能である。これより、データ処理システム1100は、係る判定処理を高速化可能である。また、データ処理システム1100においては、並列に実行される判定処理に対して、当該判定処理に用いられるデータが適切に割当てられる。なぜならば、データ処理システムは、受信したデータの通信経路に基づいて、それぞれの判定処理において一括して処理されるべきデータを、それぞれの判定処理に対して割当てることが可能だからである。 The data processing system 1100 configured as described above is capable of executing in parallel a process of determining whether or not the received data satisfies a rule (particularly, a condition forming the rule). As a result, the data processing system 1100 can speed up the determination process. Further, in the data processing system 1100, the data used in the determination processing is appropriately assigned to the determination processing executed in parallel. This is because the data processing system can allocate the data to be collectively processed in each determination process to each determination process based on the communication path of the received data.

以上より、本実施形態におけるデータ処理システム1100によれば、通信ネットワークを介して受信したデータに関する情報(例えば、当該データの通信経路に関する情報)に基づいて、当該通信データを適切な単位で並列に処理可能である。 As described above, according to the data processing system 1100 of the present embodiment, based on the information regarding the data received via the communication network (for example, the information regarding the communication route of the data), the communication data are parallelized in appropriate units. It can be processed.

<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
<Structure of hardware and software program (computer program)>
Hereinafter, a hardware configuration capable of realizing each of the above-described embodiments will be described.

以下の説明において、上記各実施形態において説明したCEPシステム(あるいはデータ処理システム)(110、1100)をまとめて、単に「データ処理システム」と称する。またデータ処理システムの各構成要素を、単に「データ処理システムの構成要素」と称する。 In the following description, the CEP system (or data processing system) (110, 1100) described in each of the above embodiments will be simply referred to as "data processing system". Also, each component of the data processing system is simply referred to as "component of the data processing system".

上記各実施形態において説明したデータ処理システムは、1つ又は複数の専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。 The data processing system described in each of the above embodiments may be configured by one or a plurality of dedicated hardware devices. In that case, each component shown in each of the above drawings may be realized as hardware in which a part or all is integrated (an integrated circuit in which a processing logic is mounted).

例えば、データ処理システムをハードウェアにより実現する場合、データ処理システムの構成要素は、それぞれの機能を提供可能な集積回路をSoC(System on a Chip)等により実装されてもよい。この場合、例えば、データ処理システムの構成要素が保持するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。 For example, when the data processing system is realized by hardware, the constituent elements of the data processing system may be implemented by an SoC (System on a Chip) or the like, which is an integrated circuit capable of providing each function. In this case, for example, the data held by the components of the data processing system may be stored in a RAM (Random Access Memory) area or a flash memory area integrated as the SoC.

また、この場合、データ処理システムの各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。データ処理システムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。 Further, in this case, a well-known communication bus may be adopted as a communication line connecting each component of the data processing system. Further, the communication line connecting each component is not limited to the bus connection, and each component may be connected peer-to-peer. When the data processing system is configured by a plurality of hardware devices, the respective hardware devices may be communicably connected by an appropriate communication method (wired, wireless, or a combination thereof).

また、上述したデータ処理システムは、図12に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、データ処理システムは、適切な数のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。 The data processing system described above may be configured by general-purpose hardware as illustrated in FIG. 12 and various software programs (computer programs) executed by the hardware. In this case, the data processing system may be configured with a suitable number of hardware devices and software programs.

図12における演算装置1201は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置1201は、例えば後述する不揮発性記憶装置1203に記憶された各種ソフトウェア・プログラムを記憶装置1202に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるデータ処理システムの構成要素は、演算装置1201により実行されるソフトウェア・プログラムとして実現可能である。 The arithmetic device 1201 in FIG. 12 is an arithmetic processing device such as a general-purpose CPU (Central Processing Unit) or a microprocessor. The arithmetic device 1201 may read various software programs stored in a nonvolatile storage device 1203, which will be described later, into the storage device 1202, and execute processing in accordance with the software programs. For example, the components of the data processing system in each of the above embodiments can be realized as a software program executed by the arithmetic device 1201.

記憶装置1202は、演算装置1201から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置1202は、揮発性のメモリ装置であってもよい。 The storage device 1202 is a memory device such as a RAM that can be referred to by the arithmetic device 1201 and stores software programs and various data. The storage device 1202 may be a volatile memory device.

不揮発性記憶装置1203は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置1203は、各種ソフトウェア・プログラムやデータ等を記憶可能である。 The non-volatile storage device 1203 is a non-volatile storage device such as a magnetic disk drive or a semiconductor storage device using a flash memory. The non-volatile storage device 1203 can store various software programs, data, and the like.

ネットワークインタフェース1206は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。 The network interface 1206 is an interface device that connects to a communication network, and may be, for example, a wired or wireless LAN (Local Area Network) connection interface device.

ドライブ装置1204は、例えば、後述する記録媒体1205に対するデータの読み込みや書き込みを処理する装置である。 The drive device 1204 is, for example, a device that processes reading and writing of data on a recording medium 1205 described later.

記録媒体1205は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な各種記録媒体である。 The recording medium 1205 is various recording media capable of recording data, such as an optical disc, a magneto-optical disc, and a semiconductor flash memory.

入出力インタフェース1207は、外部装置との間の入出力を制御する装置である。 The input/output interface 1207 is a device that controls input/output with an external device.

上述した各実施形態を例に説明した本発明におけるデータ処理システムは、例えば、図12に例示するハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、係る装置に対して供給したソフトウェア・プログラムを、演算装置1201が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。 The data processing system according to the present invention described in each of the above-described embodiments as an example supplies a software program capable of realizing the functions described in the above-described embodiments to the hardware device illustrated in FIG. 12, for example. It may be realized by More specifically, the present invention may be realized by, for example, the arithmetic device 1201 executing a software program supplied to such a device. In this case, an operating system running on the hardware device, middleware such as database management software, network software, or the like may execute a part of each processing.

なお、この場合、ルール照合部114において実行されるルール照合プロセスは、演算装置1201により並列に処理可能なプロセス、スレッド、タスク等のソフトウェア・プログラムとして実現可能である。 In this case, the rule matching process executed by the rule matching unit 114 can be realized as a software program such as a process, thread, task, etc. that can be processed in parallel by the computing device 1201.

上述した各実施形態において、上記各図(例えば、図1、図2、及び図11)に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。 In each of the above-described embodiments, each unit illustrated in each of the drawings (for example, FIGS. 1, 2, and 11) is a software (function) unit of a software program executed by the hardware described above. It can be implemented as a module. However, the division of each software module illustrated in these drawings is a configuration for convenience of description, and various configurations can be assumed when mounting.

例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置1203に記憶されてもよい。そして、演算装置1201が、それぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置1202に読み出してもよい。 For example, when the above units are implemented as software modules, these software modules may be stored in the non-volatile storage device 1203. Then, the arithmetic device 1201 may read these software modules into the storage device 1202 when executing the respective processes.

また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。 Further, between these software modules, various data may be mutually transmitted by an appropriate method such as shared memory or interprocess communication. With such a configuration, these software modules can be communicably connected to each other.

更に、上記各ソフトウェア・プログラムは記録媒体1205に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置1204を通じて不揮発性記憶装置1203に格納されるよう構成されてもよい。 Further, each of the above software programs may be recorded in the recording medium 1205. In this case, the respective software programs may be configured to be stored in the nonvolatile storage device 1203 through the drive device 1204 at the shipping stage or the operating stage of the communication device or the like.

なお、上記の場合において、上記データ処理システムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。 In the above case, the method of supplying various software programs to the data processing system is to install the software in the device by using an appropriate jig at the manufacturing stage before shipment or the maintenance stage after shipment. The method of doing may be adopted. In addition, as a method of supplying various software programs, a general procedure may be adopted at present, such as a method of downloading from the outside through a communication line such as the Internet.

そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。 Then, in such a case, the present invention can be considered to be configured by a code that constitutes the software program or a computer-readable recording medium in which the code is recorded. In this case, the recording medium is not limited to a medium independent of the hardware device, but includes a storage medium in which a software program transmitted via a LAN, the Internet, etc. is downloaded and stored or temporarily stored.

また、上述したデータ処理システム、あるいは、当データ処理システムの構成要素は、図12に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図12に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図12に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。 Further, the data processing system described above, or the constituent elements of the data processing system, includes a virtualized environment in which the hardware device illustrated in FIG. 12 is virtualized, and various software programs (computers executed in the virtualized environment.・Program) and In this case, the components of the hardware device illustrated in FIG. 12 are provided as virtual devices in the virtualization environment. In this case as well, the present invention can be implemented with the same configuration as that when the hardware device illustrated in FIG. 12 is configured as a physical device.

以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。 The present invention has been described above as an example applied to the exemplary embodiment described above. However, the technical scope of the present invention is not limited to the scope described in each of the above-described embodiments. It is obvious to those skilled in the art that various modifications and improvements can be added to the embodiment. In such a case, new embodiments with such changes or improvements may be included in the technical scope of the present invention. Furthermore, each of the above-described embodiments or an embodiment in which a new embodiment with such changes or improvements is combined is also included in the technical scope of the present invention. And this is clear from the matters described in the claims. That is, the present invention can apply various aspects that can be understood by those skilled in the art within the scope of the present invention.

この出願は、2015年2月6日に出願された日本出願特願2015−021862を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2015-021862 for which it applied on February 6, 2015, and takes in those the indications of all here.

100 サービスバスシステム
110 CEPシステム
111 データ取得部
112 制御部
113 割当て部
114 ルール照合部
115 ルール保持部
116 処理実行部
120A データ発生源A
130A データ受信部A
140 データ交換部
150A データ送信部A
160A サービスA
1100 データ処理装置
1101 受信部
1102 並列実行部
1103 割当て部
1201 演算装置
1202 記憶装置
1203 不揮発性記憶装置
1204 ドライブ装置
1205 記録媒体
1206 ネットワークインタフェース
1207 入出力インタフェース
100 Service Bus System 110 CEP System 111 Data Acquisition Unit 112 Control Unit 113 Assignment Unit 114 Rule Matching Unit 115 Rule Holding Unit 116 Process Execution Unit 120A Data Source A
130A Data receiving section A
140 data exchange unit 150A data transmission unit A
160A Service A
1100 Data Processing Device 1101 Reception Unit 1102 Parallel Execution Unit 1103 Allocation Unit 1201 Arithmetic Device 1202 Storage Device 1203 Nonvolatile Storage Device 1204 Drive Device 1205 Recording Medium 1206 Network Interface 1207 Input/Output Interface

Claims (5)

データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信手段と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とを含む1以上のルールについて、前記受信手段により受信した前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、
前記受信手段により受信した1以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当てる割当て手段と、を備え
前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
前記割当て手段は、1以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とを比較した結果に基づいて、前記受信手段において受信された前記データセットが割当てられる前記判定処理を決定し、
前記割当て手段は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とが等しい場合か、又は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、前記受信手段において受信された前記データセットが流れる通信経路が含まれる場合に、
前記受信手段において受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当て、
前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
前記サービスバスを介してメッセージ送信先にメッセージを送信する1以上の送信手段を更に備え、
前記受信手段は、前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
前記送信手段は、前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
前記割当て手段は、
前記通信経路を表す情報に含まれる、前記受信手段を表す情報と、前記送信手段を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定し、
前記並列実行手段は、少なくとも1以上の前記ルールに関する前記判定処理を実行可能な照合処理実行手段を1以上含むと共に、当該照合処理実行手段を並列に実行し、
前記割当て手段は、前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記照合処理実行手段に並列に割当て、
前記受信手段は、前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
前記送信手段は、前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する
データ処理システム。
Receiving means for receiving one or more data sets from a data source via a communication network;
For one or more rules including information indicating a condition regarding the data set and information indicating a process executed for the data set when the condition is satisfied, the data set received by the receiving unit satisfies the condition. Parallel execution means capable of executing the determination process in parallel to determine whether or not to satisfy,
Allocation means for allocating one or more of the data sets received by the reception means in parallel to the determination processing according to a communication path of each of the data sets ,
The information indicating the condition includes information indicating a communication path regarding the data set used when determining whether or not the condition is satisfied,
The assigning means, for each of the one or more rules, a communication path represented by the information representing the communication path included in the information representing the condition forming the rule, and the data set received by the receiving means. Is determined based on the result of comparison with the communication path through which the data set received by the receiving means is assigned,
The assigning means is
As a result of the comparison, a communication path represented by information representing the communication path included in the information representing the condition forming the specific rule, and a communication path through which the data set received by the receiving unit flows If they are equal, or
As a result of the comparison, the communication path represented by the information representing the communication path included in the information representing the condition forming the specific rule includes a communication path through which the data set received by the receiving unit flows. If
Assigning the data set received by the receiving means to the determination process relating to the specific rule,
A service bus capable of transmitting and receiving messages is formed using the communication network,
Further comprising one or more transmitting means for transmitting a message to a message destination via the service bus,
The receiving unit receives a message including the data set from a message transmission source that is a generation source of the data via the service bus,
The transmitting means transmits a message according to the processing executed on the data set based on the rule to the message destination,
The assigning means is
The communication path of the data set is specified based on the information indicating the receiving means and the information indicating the transmitting means, which is included in the information indicating the communication path, or
Included in the information indicating the communication path, the communication path of the data set is specified based on the information indicating the message transmission source and the information indicating the message transmission destination,
The parallel execution unit includes at least one collation process execution unit capable of executing the determination process relating to at least one of the rules, and executes the collation process execution units in parallel,
The allocating means allocates the data sets included in the message in parallel to the collation processing executing means according to a communication path of each of the data sets identified based on the message,
The receiving means converts the message received from the message transmission source into a common format including at least information capable of specifying a communication path of a data set included in the message,
The transmission means converts a message to be transmitted to the message destination from the common format to a unique format according to the destination of each message, and transmits the converted message to each of the messages. Data processing system to send first .
前記割当て手段は、複数の前記ルールに関する前記判定処理において共通に用いられる前記データセットである第1のデータセットを、当該複数の前記ルールに関する判定処理をそれぞれ実行する前記照合処理実行手段に重複して割当てる請求項1に記載のデータ処理システム。 The assigning unit duplicates the first data set, which is the data set commonly used in the determination process regarding the plurality of rules, with the matching process execution unit that executes the determination process regarding the plurality of rules, respectively. The data processing system according to claim 1 , wherein 前記割当て手段は、複数の前記ルールの中の個別の前記ルールに関する前記判定処理にのみ用いられる前記データセットである第2のデータセットを、当該個別の前記ルールに関する判定処理を実行する前記照合処理実行手段にのみ割当て、
前記照合処理実行手段は、前記第1のデータセットを用いる前記ルールと、前記第2のデータセットを用いる前記ルールと、を少なくとも含む複数の前記ルールに関する前記判定処理を実行する
請求項に記載のデータ処理システム。
The assigning unit performs the matching process for executing the determination process regarding the individual rule, with respect to the second data set that is the data set used only for the determination process regarding the individual rule among the plurality of rules. Assigned only to execution means,
The matching process executing means, said rule using said first data set, according to claim 2 for performing the determination processing for a plurality of said rules including at least said rule, the use of the second data set Data processing system.
情報処理装置が、
受信手段によって、データの発生源から通信ネットワークを介して1以上のデータセットを受信し、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む1以上のルールについて、前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行し、
受信した1以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当て、
前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
前記情報処理装置は、
1以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、受信された前記データセットが流れる通信経路とを比較した結果に基づいて、受信された前記データセットが割当てられる前記判定処理を決定し、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、受信された前記データセットが流れる通信経路とが等しい場合か、又は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、受信された前記データセットが流れる通信経路が含まれる場合に、
受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当て、
前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
前記情報処理装置は、
1以上の送信手段によって、前記サービスバスを介してメッセージ送信先にメッセージを送信し、
前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
前記通信経路を表す情報に含まれる、前記受信手段を表す情報と、前記送信手段を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定し、
少なくとも1以上の前記ルールに関する1以上の前記判定処理を並列に実行し、
前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当て、
前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する
データ処理方法。
The information processing device
The receiving means receives one or more data sets from the source of the data via the communication network,
Determining information representative of the condition relating to the data set for one or more rules including information indicating a process in which the conditions are performed on the data set when a condition is satisfied, whether the data set satisfies the condition run the determination process in parallel,
Assigning the received one or more data sets in parallel to the determination process according to the communication path of each data set,
The information indicating the condition includes information indicating a communication path regarding the data set used when determining whether or not the condition is satisfied,
The information processing device,
The result of comparing, for each of the one or more rules, the communication path represented by the information representing the communication path included in the information representing the condition forming the rule with the communication path through which the received data set flows. Determining the decision process to which the received data set is assigned,
As a result of the comparison, if the communication path represented by the information representing the communication path included in the information representing the condition configuring the specific rule and the communication path through which the received data set flows are the same, or Or
As a result of the comparison, when the communication path represented by the information representing the communication path included in the information representing the condition configuring the specific rule includes a communication path through which the received data set flows,
Assigning the received data set to the decision process for the particular rule.
A service bus capable of transmitting and receiving messages is formed using the communication network,
The information processing device,
Sending a message to a message destination via the service bus by one or more sending means,
Receiving a message including the data set from a message source that is a source of the data via the service bus;
Sending a message according to the processing performed on the data set based on the rule to the message destination,
The communication path of the data set is specified based on the information indicating the receiving means and the information indicating the transmitting means, which is included in the information indicating the communication path, or
Included in the information indicating the communication path, the communication path of the data set is specified based on the information indicating the message transmission source and the information indicating the message transmission destination,
Performing one or more of the determination processes relating to at least one or more of the rules in parallel,
The data set included in the message is allocated in parallel to the determination processing according to the communication path of each of the data sets identified based on the message,
Converting a message received from the message source into a common format including at least information capable of specifying a communication path of a data set included in the message,
Data for converting a message to be transmitted to the message destination from the common format to a unique format according to the destination of each of the messages, and transmitting the converted message to the destination of each of the messages Processing method.
データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信処理と、
前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む1以上のルールについて、前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行する並列実行処理と、
前記受信処理により受信した1以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当てる割当て処理と、
をコンピュータに実行させ 前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
前記割当て処理は、1以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信処理において受信された前記データセットが流れる通信経路とを比較した結果に基づいて、前記受信処理において受信された前記データセットが割当てられる前記判定処理を決定し、
前記割当て処理は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信処理において受信された前記データセットが流れる通信経路とが等しい場合か、又は、
前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、前記受信処理において受信された前記データセットが流れる通信経路が含まれる場合に、
前記受信処理において受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当て、
前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
前記サービスバスを介してメッセージ送信先にメッセージを送信する1以上の送信処理を更にコンピュータに実行させ、
前記受信処理は、前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
前記送信処理は、前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
前記割当て処理は、
前記通信経路を表す情報に含まれる、前記受信処理を表す情報と、前記送信処理を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定し、
前記並列実行処理は、少なくとも1以上の前記ルールに関する前記判定処理を実行可能な照合処理実行処理を1以上含むと共に、当該照合処理実行処理を並列に実行し、
前記割当て処理は、前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記照合処理実行処理に並列に割当て、
前記受信処理は、前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
前記送信処理、前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する
コンピュータ・プログラム。
A receiving process for receiving one or more data sets from a data source via a communication network,
Determining information representative of the condition relating to the data set for one or more rules including information indicating a process in which the conditions are performed on the data set when a condition is satisfied, whether the data set satisfies the condition a parallel execution process that executes the determination processing in parallel,
An allocation process that allocates one or more data sets received by the reception process in parallel to the determination process according to a communication path of each data set;
And causing the computer to execute , the information representing the condition includes information representing a communication path relating to the data set used in determining whether or not the condition is satisfied,
The assigning process includes, for each of the one or more rules, a communication route represented by information indicating the communication route included in the information indicating the condition forming the rule, and the data set received in the receiving process. Based on the result of comparison with the communication path through which the determination process to which the data set received in the reception process is assigned is determined,
The allocation process is
As a result of the comparison, a communication path represented by information representing the communication path included in the information representing the condition forming the specific rule, and a communication path through which the data set received in the reception process flows. If they are equal, or
As a result of the comparison, the communication path represented by the information representing the communication path included in the information representing the condition forming the specific rule includes a communication path through which the data set received in the reception process flows. If
Assigning the data set received in the reception process to the determination process relating to the specific rule,
A service bus capable of transmitting and receiving messages is formed using the communication network,
Causing the computer to further execute one or more transmission processes for transmitting a message to a message destination via the service bus,
The reception processing receives a message including the data set from a message transmission source that is a generation source of the data via the service bus,
The transmission process transmits a message according to the process executed on the data set based on the rule to the message destination,
The allocation process is
The communication path of the data set is specified based on information indicating the reception processing and information indicating the transmission processing, which is included in the information indicating the communication path, or
Included in the information indicating the communication path, the communication path of the data set is specified based on the information indicating the message transmission source and the information indicating the message transmission destination,
The parallel execution process includes one or more collation process execution processes capable of executing the determination process relating to at least one of the rules, and executes the collation process execution processes in parallel,
The allocation process allocates the data set included in the message in parallel to the collation process execution process according to a communication path of each data set identified based on the message,
The reception processing converts a message received from the message transmission source into a common format including at least information capable of specifying a communication path of a data set included in the message,
The transmission process, the message to be transmitted to the message destination is converted from the common format to a unique format corresponding to the destination of each message, and the converted message is transmitted to each of the message destinations. Computer program to send to .
JP2016573230A 2015-02-06 2016-02-05 Data processing system, data processing method and computer program Active JP6717208B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015021862 2015-02-06
JP2015021862 2015-02-06
PCT/JP2016/000591 WO2016125499A1 (en) 2015-02-06 2016-02-05 Data-processing system, data-processing method, and recording medium

Publications (2)

Publication Number Publication Date
JPWO2016125499A1 JPWO2016125499A1 (en) 2017-12-07
JP6717208B2 true JP6717208B2 (en) 2020-07-01

Family

ID=56563851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016573230A Active JP6717208B2 (en) 2015-02-06 2016-02-05 Data processing system, data processing method and computer program

Country Status (2)

Country Link
JP (1) JP6717208B2 (en)
WO (1) WO2016125499A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3907981B2 (en) * 2001-07-30 2007-04-18 富士通株式会社 Data processing program and data processing apparatus
JP4161998B2 (en) * 2005-03-28 2008-10-08 日本電気株式会社 LOAD DISTRIBUTION DISTRIBUTION SYSTEM, EVENT PROCESSING DISTRIBUTION CONTROL DEVICE, AND EVENT PROCESSING DISTRIBUTION CONTROL PROGRAM
US8374986B2 (en) * 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
WO2014034060A1 (en) * 2012-08-30 2014-03-06 日本電気株式会社 Event processing control device, node device, event processing system, and event processing control method

Also Published As

Publication number Publication date
JPWO2016125499A1 (en) 2017-12-07
WO2016125499A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
US20190377604A1 (en) Scalable function as a service platform
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
WO2016078008A1 (en) Method and apparatus for scheduling data flow task
US8788672B2 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
US20110078297A1 (en) Job processing system, method and program
KR20160087706A (en) Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
JP2008510259A (en) Modular event-driven processing
US11467874B2 (en) System and method for resource management
GB2528066A (en) A method for processing data quality exceptions in a data processing system
JP6519111B2 (en) Data processing control method, data processing control program and data processing control device
CN107479984B (en) Distributed spatial data processing system based on message
US9104486B2 (en) Apparatuses, systems, and methods for distributed workload serialization
US10936377B2 (en) Distributed database system and resource management method for distributed database system
CN110546612B (en) Method and system for resource management
US11544113B2 (en) Task scheduling for machine-learning workloads
WO2016092856A1 (en) Information processing device, information processing system, task processing method, and storage medium for storing program
KR20150117258A (en) Distributed computing architecture
JP2017037492A (en) Distributed processing program, distributed processing method and distributed processor
CN114168302A (en) Task scheduling method, device, equipment and storage medium
WO2018079162A1 (en) Information processing system
JPWO2015001596A1 (en) Parallel analysis platform for serial data and parallel distributed processing method
JP6717208B2 (en) Data processing system, data processing method and computer program
KR20140066616A (en) Method, apparatus and system for providing cloud based distributed-parallel application workflow execution service
US20140237480A1 (en) Method, processing modules and system for executing an executable code

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170801

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200421

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200525

R150 Certificate of patent or registration of utility model

Ref document number: 6717208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150