WO2016125499A1 - データ処理システム、データ処理方法及び記録媒体 - Google Patents

データ処理システム、データ処理方法及び記録媒体 Download PDF

Info

Publication number
WO2016125499A1
WO2016125499A1 PCT/JP2016/000591 JP2016000591W WO2016125499A1 WO 2016125499 A1 WO2016125499 A1 WO 2016125499A1 JP 2016000591 W JP2016000591 W JP 2016000591W WO 2016125499 A1 WO2016125499 A1 WO 2016125499A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
rule
data set
unit
communication path
Prior art date
Application number
PCT/JP2016/000591
Other languages
English (en)
French (fr)
Inventor
幸希 安本
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2016573230A priority Critical patent/JP6717208B2/ja
Publication of WO2016125499A1 publication Critical patent/WO2016125499A1/ja

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]

Definitions

  • the present invention relates to a technique for processing data received via a communication network in parallel in appropriate units.
  • such a service bus may be required to meet the needs (requests) of processing data (events) that occur every moment at high speed (for example, in real time).
  • CEP Complex Event Processing
  • Patent Document 1 International Publication No. 2011/0107711 discloses a technique for distributing a dispatcher load by reducing the number of rules set in a dispatcher that distributes events to processing servers in an event processing system. .
  • Patent Document 2 Japanese Patent Laid-Open No. 2013-114626 discloses a technique for reducing communication between processing devices constituting an event processing system.
  • the technique disclosed in Patent Literature 2 is based on a specific query so that the number of communication between the queries can be reduced in a situation where queries that process data that matches a set condition can be arranged in a plurality of processing devices. Are placed on the same device.
  • Patent Document 3 Japanese Patent Application Laid-Open No. 2012-079224 describes the load of each processing device based on the degree of association between rules arranged in each processing device constituting the event processing system and the load status of each processing device. Disclose a technique for rearranging rules so that is below a certain level.
  • Patent Document 4 Japanese Patent Laid-Open No. 2006-309701 discloses a technique for distributing the load on each processing server by controlling the distribution of events to each processing server in the event processing system.
  • the technique disclosed in Patent Literature 4 controls the distribution of processing rules to each processing server based on the number of rules set for each processing server or the event conditions included in the rules.
  • Patent Document 6 Japanese Patent Laid-Open No. 2014-153858
  • the CEP system for example, when the format of data transmitted to the system is not fixed, it is difficult to uniformly process the data. In this case, the CEP system may not be able to process the data at high speed.
  • the CEP system parallelizes (distributes) data processing.
  • processing elements for example, arithmetic devices and arithmetic processes
  • the data (event) that should have been detected may be overlooked. Thereby, the process regarding the data may not be appropriately executed.
  • the processing load (overhead) associated with data sharing is large, processing related to data may not be sufficiently accelerated.
  • Patent Document 1 When the technology 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 distributed depending on the frequency of occurrence of events that conform to the rule. There is sex.
  • the technique disclosed in Patent Document 2 is a technique for controlling the arrangement of queries with respect to each processing device by paying attention to the number of communications between queries.
  • the technique disclosed in Patent Document 3 is a technique for controlling the arrangement of rules with respect to each processing device, focusing on the degree of association between rules (element association).
  • the technique disclosed in Patent Document 4 is a technique for controlling the arrangement of rules with respect to a 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 is a technique that directly focuses on the data to be processed. Therefore, when these techniques are employed, data that is desirably processed by the same processing apparatus may be processed by different processing apparatuses.
  • the main object of the present invention is to provide a data processing system or the like that can process communication data received via a communication network in parallel in appropriate units.
  • a data processing system has the following configuration. That is, a data processing system according to an 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 that represents a condition related to the data set, and the condition is satisfied. In parallel, a determination process for determining whether or not the data set received by the receiving unit satisfies the above condition is performed in parallel with respect to one or more rules configured by information representing processing executed on the data set. Executable parallel execution means, and assignment means for assigning one or more data sets received by the receiving means in parallel to the determination processing according to the communication path of each data set.
  • the data processing method has the following configuration. That is, in the data processing method according to one aspect of the present invention, the information processing apparatus 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 For one or more rules composed of information representing processing executed with respect to the data set when is established, a determination process for determining whether or not the data set meets the condition is performed on the received data It has a configuration that executes in parallel according to the communication path of the set.
  • data received via a communication network can be processed in parallel in appropriate units.
  • 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.
  • 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.
  • 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.
  • FIG. 4 is a flowchart illustrating the operation of the service bus system according to the first embodiment of the invention.
  • FIG. 5 is a flowchart illustrating the operation of the CEP system according to the first embodiment of the invention.
  • FIG. 6 is a diagram illustrating a format of rules held by the CEP system according to the first embodiment of the present invention.
  • 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.
  • FIG. 2 is a block diagram illustrating a functional configuration of the
  • 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.
  • FIG. 8 is an explanatory diagram showing rules processed by each rule matching process and communication paths for data related to the rules in the CEP system according to the first embodiment of the present invention.
  • 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.
  • FIG. 10 is an explanatory diagram illustrating rules processed by each rule matching process and data communication paths related to the rules in the CEP system according to the first modification of the first embodiment of the present invention.
  • FIG. 11 is a block diagram illustrating a functional configuration of a data processing system according to the second embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a CEP system (and data processing system) according to each embodiment of the present invention, or a hardware configuration capable of realizing the components.
  • a service bus may be used as a technology capable of mutually connecting various services provided via a communication network.
  • the service bus for example, mediates message transmission / reception among a plurality of services, and realizes cooperation between 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 technique capable of processing these data and messages at high speed (for example, in real time) is required. . Therefore, in each embodiment of the present invention, a technique for dealing with an increasing number of messages and data is realized by introducing (applying) a CEP system to such a service bus.
  • the CEP system described in each of the following embodiments is included in the data processing system (or data processing apparatus) in each embodiment of the present invention.
  • the CEP system holds a rule including processing conditions (event conditions) for data (events) and actions executed when the processing conditions are satisfied.
  • processing conditions event conditions
  • actions executed when the processing conditions are satisfied.
  • rules may be set in advance in the CEP system, for example, by an administrator of the CEP system.
  • the CEP system determines whether or not an event condition constituting a certain rule is satisfied by the received data.
  • the CEP system determines that an event condition constituting a certain rule is satisfied, the CEP system executes an action set in the rule.
  • a rule matching process the process in which the CEP system determines (determines) whether or not the received data satisfies an event condition constituting a certain rule is referred to as a rule matching process.
  • the CEP system executes rule matching processing in parallel (distributed) in order to process received data (event) at high speed.
  • Such parallel processing may be realized by executing processing (rule matching processing or the like) in parallel using, for example, a plurality of arithmetic devices (or arithmetic processing cores constituting the arithmetic device).
  • parallel processing may be realized, for example, by processing a plurality of processing elements (for example, processes, threads, and the like) in parallel in one or more arithmetic devices.
  • the parallel processing may include pseudo parallel processing (for example, a method of processing a plurality of processing elements in a time division manner, a method of subdividing processing and assigning it to an arithmetic unit, or the like).
  • pseudo parallel processing for example, a method of processing a plurality of processing elements in a time division manner, a method of subdividing processing and assigning it to an arithmetic unit, or the like.
  • 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, general-purpose information processing devices, or the like.
  • 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.
  • FIG. 1 is a block diagram illustrating a functional configuration of a CEP system and a service bus system in the present embodiment.
  • the service bus system 100 is communicably connected to a data generation source A (120A) and a service A (160A).
  • the data generation source A (120A) is a device or system that transmits various data (events) to the service bus system 100.
  • the data generation source A (120A) may be, for example, various information processing terminals or various sensors. For example, when an event occurs, the data generation source A (120A) transmits a message including data (event) related to the event to the service bus system 100.
  • Service A is a device, system, or the like that can provide various services based on a message transmitted from service bus system 100. For example, data generated in the data generation source A (120A) or data processed based on the data may be transmitted to the service A (160A) via the service bus system 100.
  • the service bus system 100 transmits a message to the data transmission destination based on the data received from the data transmission source.
  • a message may include data received from a data transmission source, or may include data processed based on the received data.
  • the service bus system 100 will be described.
  • 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.
  • the data receiving unit A (130A) receives a message including data transmitted from the data generation source A (120A).
  • the data receiving unit A (130A) may convert the data transmitted from the data generation source A (120A) into data in a common format and pass it to the data exchange unit 140.
  • the common format may be a format defined using, for example, XML (Extensible Markup Language).
  • the common format is not limited to XML, and an appropriate data format may be adopted.
  • the data transmission unit A (150A) transmits a message to the service A (160A).
  • the data transmission unit A160 converts the data in the common format passed from the data exchange unit 140 into a specific 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.
  • Data exchange unit 140 exchanges data between data receiving unit A (130A) and data transmitting unit A (150A).
  • the data delivered 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) data passed through the data exchange unit 140 to the CEP system 110 described later. Or the data exchange part 140 may hold
  • the CEP system 110 is an event processing system that executes various event processing based on data (event) included in a message transmitted from the data generation source A (120A). As described above, the CEP system 110 may be configured as 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.
  • 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 components constituting the CEP system are communicably connected by an appropriate communication method (communication line or the like). Hereinafter, these components constituting the CEP system 110 which is a main component in the present embodiment will be described.
  • the data acquisition unit 111 reads the data transferred via the data exchange unit 140 and passes the data to the control unit 112. As described above, the data exchange unit 140 may pass the data to the data acquisition unit 111.
  • 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 assignment unit 113.
  • the allocating unit 113 executes processing for allocating the data read by the data acquiring unit 111 to the rule matching unit 114 (particularly, a rule matching process (described later) executed by the rule matching unit 114).
  • the rule matching unit 114 receives data from the assigning unit 113, and executes rule matching processing based on the content of the data and the rules (particularly event conditions) held by the rule holding unit 115. More specifically, the rule matching unit 114 has one or more processing elements (matching processing execution means) that can execute rule matching processing in parallel.
  • the processing element can execute rule matching processing on the data received from the assigning unit 113 in parallel.
  • a processing element is referred to as a rule matching process.
  • the rule matching process may be realized, for example, as a software program (computer program) executed in the CEP system 110 (for example, the rule matching unit 114). Further, such a rule matching process may be realized 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 the CEP system 110 is activated, a necessary number of rule matching processes may be activated by the control unit 112.
  • the rule holding unit 115 holds rules 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.
  • the process execution part 116 is called from the control part 112, and performs the process (action) set to the rule based on the collation result of the rule collation part 114.
  • the present embodiment includes a case where there are a plurality of data generation sources and services, and a plurality of data reception units and data transmission units corresponding thereto. Note that the number of data generation sources and services may be determined as appropriate.
  • the service bus system 100 can provide a data reception unit and a data transmission unit corresponding to the number of data generation sources and the number of services, respectively.
  • the format (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).
  • the data delivered via the data exchange unit 140 is data in a common format.
  • the service bus system 100 and the CEP system 110 the format of each data (or a message including the data) is made common. From this, in the service bus system 100 and the CEP system 110, it becomes easy to perform processing uniformly on each data.
  • 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 is received.
  • the transmission source 302 is information that can specify the transmission source of the message.
  • the transmission destination 303 is information that can specify the transmission destination of the message.
  • the data body 304 is information representing the data itself received from the data generation source.
  • information specifying the data reception unit and the data transmission unit in the service bus system 100 is registered in the transmission source 302 and the transmission destination 303, respectively.
  • information that can specify a data generation source may be set in the transmission source 302
  • information that can specify a service may be set in the transmission destination 303.
  • the rule held by the rule holding unit 115 is configured by a set (combination) of an event condition and an action as exemplified in FIG.
  • a plurality of event conditions and actions may be set for a certain rule.
  • an action corresponding to the event condition is executed. Specifically, when the rule matching unit 114 (in particular, the rule matching process) determines that all event conditions constituting a certain rule are satisfied, an action corresponding to the event condition is executed by the process execution unit 116. .
  • event A1 For example, in “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.
  • event A1 For example, in “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.
  • action A1 is executed by the process execution unit 116.
  • FIG. 7 is a diagram showing a specific example of rules in the present embodiment.
  • the specific example shown in FIG. 7 represents a rule (rule A and rule B) in which a collation process related to data when the data illustrated in FIG. 3 is transmitted in the data exchange unit 140.
  • rules relating to the content of data obtained from the data exchange unit 140, the transmission source, the transmission destination, and the date / time are set in the event condition.
  • processing such as data transmission processing and operation operation for the service bus is set.
  • the event conditions and actions constituting the rule may be described in an appropriate format that can be machine-processed.
  • FIG. 4 is a flowchart showing processing related to the flow of data between the data generation source A (120A) and the service A (160A).
  • Data generation source A (120A) transmits data (event) related to the event to data reception unit A (130A) whenever any event occurs in data generation source A (120A) (step S401).
  • the data receiving unit A receives the data (step S402).
  • 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).
  • the data exchange unit 140 passes the data passed from the data reception unit A (130A) to the data transmission unit 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 holds the data so that the data acquisition unit 111 can read the data. Also good. The data exchange unit 140 may perform some processing on the data received from the data receiving unit A (130A).
  • the data transmission unit A (150A) When the data transmission unit A (150A) receives the data from the data exchange unit 140, the data transmission unit A (150A) converts the data from a common data format such as XML into a unique data format for each service (for example, service A (160A)). Then, the data transmission unit A (150A) transmits data to the service A (160A) (step S405).
  • a common data format such as XML
  • service A (160A) for example, service A (160A)
  • the data transmission unit A (150A) transmits data to the service A (160A) (step S405).
  • the data acquisition unit 111 reads the data transferred via the data exchange unit 140 (step S501).
  • the data acquisition unit 111 passes the read data to the control unit 112 (step S502).
  • the control unit 112 may pass the data passed from the data acquisition unit 111 to the allocation unit 113.
  • the assigning unit 113 in the control unit 112 determines an assignment destination of the data based on the content of the received data (step S503). At this time, the allocating unit 113 determines a process for executing a rule matching process on the data from the rule matching processes executed in parallel by the rule matching unit 114. The assigning unit 113 passes (assigns) data to the corresponding rule matching process.
  • the allocating unit 113 confirms the communication path of the data passed from the data acquiring unit 111.
  • the assigning unit 113 confirms information on the transmission source 302 and the transmission destination 303 as a communication path of the data, for example. Then, the assigning unit 113 assigns the data to the rule matching unit process specified based on the communication path of the data.
  • the rule matching process in the rule matching unit 114 executes a rule matching process on the data received from the control unit 112 (particularly the assigning unit 113) (step S504).
  • the rule matching process checks whether or not the content of the data received from the assigning unit 113 corresponds to any rule stored in the rule holding unit 115. More specifically, for example, the rule matching process may check the content of data received from the control unit 112 and check whether the data satisfies the event condition set in each rule.
  • step S505 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.
  • rule matching unit 114 When there is a rule applied to the data received from control unit 112 (YES in step S505), rule matching unit 114 (rule matching process) notifies control unit 112 of the result of the rule matching process. (Step S506). More specifically, when the rule matching process determines that certain data satisfies an 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 determination result to the control unit 112 when all event conditions are satisfied. Further, the rule matching unit 114 may notify the determination result to the control unit 112 when some event conditions are satisfied. In addition, the rule collation part 114 may hold
  • control unit 112 calls the process execution unit 116 so as to execute the process (action) set in the rule (step S507).
  • the process execution unit 116 executes a process (action) set in the rule in accordance with an instruction from the control unit 112 (step S508).
  • steps S504 to S506 in the flowchart described above 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 (distributs) the processing by parallelizing the rule matching processing in the rule matching unit 114.
  • parallel processing in the rule matching unit 114 will be described.
  • the assigning unit 113 assigns data used when determining whether or not the event condition is satisfied (hereinafter, referred to as “data relating to success or failure of the event condition”) to the rule matching process. It is assumed that the assigning unit 113 collectively assigns data to be collectively processed when determining the success or failure of an event condition constituting a certain rule to each rule matching process. In this case, each rule matching process can efficiently execute rule matching processing for the rule. This is because a plurality of rule matching processes can individually execute rule matching processing using the assigned data. That is, the rule matching process is executed in parallel by a plurality of rule matching processes.
  • 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.
  • the event condition a condition regarding data to be subject to rule matching processing is set.
  • the event condition includes information that can determine a communication path through which the data flows (transmitted).
  • the allocating unit 113 analyzes the event condition to check the data communication path used when determining whether or not the event condition is satisfied. As a result, when the rule matching process executes the rule matching process, the allocating unit 113 can determine data that should be processed in a batch according to the data communication path.
  • both event A1 and event A2 are conditions relating to data transmitted from the data receiving unit A (130A) to the data transmitting unit A (150A).
  • the rule matching process can execute the rule matching process for 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.
  • rule B (702 in FIG. 7) is a condition relating to data flowing from the data receiving unit B to the data transmitting unit B.
  • 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.
  • control unit 112 (assignment unit 113) can determine that the rule matching process is not executed for data flowing through other communication paths.
  • the control unit 112 prepares a rule matching process 1 that performs rule matching processing for the rule A and a rule matching process 2 that performs rule matching processing for the rule B. That is, the control unit 112 (particularly the assigning unit 113) prepares a rule matching process for processing each rule based on the analysis result of the event condition constituting each rule. In this case, the control unit 112 (assignment unit 113) may prepare (generate) two rule matching processes, and the rule matching unit 114 may prepare (generate) two rule matching processes.
  • the allocating unit 113 prepares a rule matching process for processing each rule based on a data communication path regarding the success or failure of the event condition constituting each rule.
  • each rule matching process may be able to execute a matching process related to each rule held in the rule holding unit 115.
  • one rule matching process may be able to execute rule matching processing related to 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.
  • each rule matching process can perform matching processing at high speed.
  • each of the rule matching process 1 and the rule matching process 2 may execute a matching process for one rule.
  • the rule to be processed is halved as compared with the case where each rule matching process processes both rule A and rule B.
  • the allocating unit 113 may explicitly specify a rule with which each rule matching process should execute a matching process with respect to the prepared rule matching process.
  • the assigning unit 113 may substantially specify a rule for which the rule matching process should be executed by controlling data to be passed (assigned) to each rule matching process, for example.
  • the assigning unit 113 converts the data transmitted from the data receiving unit A (130A) to the data transmitting unit A (150A) to a certain rule matching process (for example, rule matching). You may pass to process 1). Thereby, the assigning unit 113 can substantially control the rule matching process so as to execute the rule matching process regarding the rule A. Similarly, the assigning 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, rule matching process 2). Thereby, the assigning unit 113 can substantially control the other rule matching process so as to execute the rule matching process regarding the rule B.
  • a certain rule matching process for example, rule matching
  • the allocating unit 113 allocates the data to the rule matching process based on the data communication path passed from the data acquiring unit 111 (step S503). In other words, the assigning unit 113 assigns data regarding the success or failure of the event condition to the rule matching process according to the communication path of the data.
  • the allocating unit 113 confirms a data communication path used when determining whether or not an event condition constituting the rule is successful by analyzing the rule.
  • the allocating unit 113 compares the communication path of the transferred data with the communication path of the data set in the event condition. When the comparison results are equal, the assigning unit 113 passes (assigns) the data passed from the data obtaining unit 111 to the rule matching process associated with the rule configured by the event condition. As a result of the comparison, the allocating unit 113 is similar to the above even when the data communication path set in the event condition constituting a certain rule includes the data communication path passed from the data acquisition unit 111. As good as
  • the assigning unit 113 can cause a certain rule matching process to execute a rule matching process related to a specific rule.
  • the data matching process is executed without excess or deficiency.
  • a situation where one rule is assigned to multiple rule matching processes may determine success or failure of event conditions related to the same rule at the same time (including a case where they are substantially simultaneous). In this case, there is a possibility that actions will be executed in duplicate.
  • 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. Further, the control unit 112 (allocation unit 113) may perform control so that the rule matching process related to the same rule is not allocated to different rule matching processes.
  • the CEP system 110 in the present embodiment configured as described above can parallelize rule matching processing. Further, the CEP system 110 can appropriately determine the data to be assigned 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 processing while maintaining the accuracy of the rule matching process. It is. The reason is that the CEP system 110 analyzes the contents of the set rule (for example, the event condition) and the data communication path in the service bus system 100 to perform batch processing in each processing element that executes the rule matching process. This is because the data to be processed can be determined. This avoids a situation where data to be processed in a batch is distributed and assigned to a plurality of processing elements. Therefore, each processing element can execute the rule matching process independently of other processing elements.
  • the set rule for example, the event condition
  • 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 the rule matching process at high speed. Further, according to the present embodiment, data used for a certain rule matching process is not distributed and allocated to different processing elements. That is, the rule matching process regarding the same rule is not executed repeatedly in different processing elements. Therefore, the CEP system 110 can speed up the processing while maintaining the accuracy of the rule matching processing.
  • the CEP system 110 configured as described above can further process uniform data because the format of input data is made common. The reason is that, when the CEP system 110 is introduced (applied) to the service bus system 100, data in a common data format that flows on the service bus is input to the CEP system 110.
  • the communication data is processed in parallel in appropriate units based on the information related to the data received via the communication network (for example, information related to the communication path of the data). Is possible.
  • modified example 1 a first modified example (hereinafter referred to as modified example 1) relating to 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, the detailed description regarding the system configuration of the first modification is omitted.
  • the assignment unit 113 in the first modification differs from the first embodiment in the processing configuration in which data is assigned to each rule matching process so that the same data is repeatedly processed in a plurality of rule matching processes as necessary. To do.
  • the differences will be mainly described with reference to specific examples illustrated in FIGS. 9 and 10.
  • FIG. 9 is a diagram showing a specific example of rules different from those in FIG.
  • four rules A to D are set in the rule holding unit 115.
  • the event conditions that make up rule A, rule B, and rule D include conditions relating to data flowing through the communication path from the data receiving unit A to the data transmitting unit A.
  • the event condition constituting the rule C includes a condition related to data flowing through a route from the data receiving unit A to all the data transmitting units.
  • rule matching processing for all rules is executed in one rule matching process.
  • parallelization of rule matching processing does not function effectively.
  • the data communication path regarding the success or failure of the event condition is different between the rule A and the rule B.
  • the allocation part 113 can pass the data transmitted in each communication path to a separate rule matching process.
  • each rule collation process can perform the rule collation process regarding the rule A or the rule B separately (in parallel).
  • each rule matching process determines whether or not the event conditions constituting the rules A to D are successful. May be executed. In this case, as a result, the processing in each rule matching process is duplicated, and thus parallelization of the rule matching processing may not function effectively.
  • the allocation unit 113 according to the first modified example is effective in parallelizing the rule matching process even in a situation where certain data is commonly used for a plurality of rule matching processes (in other words, FIG. 9). Adjust the data allocation for each rule matching process to work. More specifically, the assigning unit 113 in the first modification allows multiple rule matching processes to process specific data in duplicate.
  • the operation of the assigning unit 113 in Modification 1 will be described using a specific example shown in FIG.
  • the allocating unit 113 in the first modification allows data that flows through this communication path to be processed in duplicate by a plurality of rule matching processes. If such duplication processing is allowed, as illustrated in FIG. 10, rules for which rule matching processing is executed for each rule matching process and data communication paths used in the rule matching processing are arranged.
  • the rule collation process regarding the rule A and the rule B includes “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 the data transmitting units. "Is possible. These data are logical sums of data required for the rule matching process for each rule (rule A, rule B).
  • rule collation process regarding the rule C and the rule D includes “data transmitted from the data receiver A to all data transmitters” and “data transmitted from the data receiver B to the data transmitter 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).
  • the allocating unit 113 in the first modification obtains the analysis result as described above by analyzing the rules illustrated in FIG. 9 (particularly, event conditions).
  • the allocating unit 113 prepares two rule matching processes as illustrated in FIG. 10 based on the analysis result.
  • the assigning unit 113 passes data necessary for the rule matching process regarding the rules A and B to the rule matching process 1 (1001 in FIG. 10).
  • the assigning unit 113 passes data necessary for rule matching processing regarding the rules C and D to the rule matching process 2 (1002 in FIG. 10). That is, “data transmitted from the data receiving unit A to the data transmitting unit A” is passed to the above two rule matching processes and is processed in duplicate in each.
  • the allocating unit 113 performs rule matching process 1 (1001 in FIG. 10) for processing rule A and rule B, and rule matching process 2 (1002 in FIG. 10) for processing rule C and rule D. It is possible to parallelize the processing. Thereby, since the number of rules per process is reduced to 2 with respect to the total number of rules 4, each rule matching process can perform processing at high speed.
  • the allocating unit 113 uses data (hereinafter, sometimes referred to as first data) that is commonly used in the rule matching process regarding a plurality of rules to the matching process regarding these rules. Are duplicated and passed to all rule matching processes that execute.
  • the assignment unit 113 in the first modification passes data used only for rule matching processing related to a specific rule (hereinafter, may be referred to as second data) only to the specific rule matching processing process.
  • the assigning unit 113 in the first modification substantially specifies a rule for each rule matching process to execute the matching process by controlling the assignment of the first data and the second data to each rule matching process. It is possible. Thereby, each rule collation process can perform the rule collation process regarding a different rule in parallel.
  • the allocation unit 113 allows unlimited data to be processed indefinitely, the same number of rule matching processes as the number of rules are prepared, and it is assumed that the resource usage efficiency decreases. Therefore, the maximum number of rule matching processes that can be prepared by the assigning unit 113 may be determined in advance, and the number of processes exceeding that number may not be created (prepared).
  • the specific example illustrated in FIG. 10 corresponds to a specific example in the case where the maximum number of processes is “2”.
  • the CEP system 110 according to the first modification configured as described above is used for a plurality of rule matching processes, the data is duplicated (assigned) to a plurality of rule matching processes.
  • the CEP system 110 in the first modification can substantially control the rules assigned to each rule matching process, and each rule matching process executes a rule matching process related to the assigned rules in parallel. Is possible.
  • the CEP system 110 according to the first modification has the same configuration as that of the first embodiment, and thus has the same effect as that of the first embodiment.
  • the rule matching process is executed in the rule matching unit 114 constituting the CEP system 110.
  • the rule matching process is executed in, for example, a device that configures the rule matching unit 114 (or a device that configures the CEP system 110 or the service bus system 100).
  • the rule matching process is not limited to the above, and may be executed by distributed processing using a plurality of devices. In this case, a plurality of devices that execute the rule matching process may be arranged outside the service bus system 100.
  • unidirectional data transmitted from a data generation source (for example, data generation source A (120A)) to a service (for example, service A (160A)) is illustrated.
  • a data generation source for example, data generation source A (120A)
  • a service for example, service A (160A)
  • the present invention is not limited to the above, and each of the above embodiments and modification examples can be applied to a case where bidirectional data is processed by configuring the data receiving unit and the data transmitting unit as data transmitting / receiving units, respectively.
  • the data processing system in the present embodiment corresponds to, for example, the CEP system 110 in each of the above embodiments and modifications thereof.
  • the data processing system in 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.
  • the hardware device may be a physical device or a virtual device realized using a well-known virtualization platform.
  • FIG. 11 is a block diagram illustrating a functional configuration of a data processing system 1100 according to the second embodiment of the invention.
  • the data processing system 1100 includes a reception unit 1101, a parallel execution unit 1102, and an allocation unit 1103. These components constituting the data processing system 1100 are communicably connected using an appropriate communication method. Hereinafter, each component will be described.
  • the receiving unit 1101 receives data from a data generation source (not shown) via a communication network.
  • the data generation source may be, for example, various information processing terminals or sensors. Further, the data may be notified as an event representing various events that have occurred in the data generation source.
  • 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 embodiments.
  • a service bus may be provided by the service bus system 100 described in each of the above embodiments using such a communication network.
  • the parallel execution unit 1102 executes, in parallel, a determination process for determining whether or not the data received by the reception unit 1101 satisfies a rule (in particular, a condition constituting a rule described later).
  • a rule includes, for example, information indicating a condition regarding 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.
  • the determination processing executed in parallel in the parallel execution unit 1102 may be the same as the rule matching processing executed in parallel by a plurality of rule matching processes in each of the above embodiments, for example.
  • the allocation unit 1103 (allocation means) allocates (sets) one or more pieces of data received by the reception unit 1101 in parallel to the determination process executed by the parallel execution unit 1102 according to the communication path of each data. ). Note that the allocating unit 1103 may be the same as the allocating unit 113 in the above embodiments, for example.
  • the data processing system 1100 configured as described above can execute in parallel processing for determining whether or not the received data satisfies a rule (particularly, conditions that constitute the rule). As a result, the data processing system 1100 can speed up the determination process. In the data processing system 1100, data used for the determination process is appropriately assigned to the determination process executed in parallel. This is because the data processing system can assign the data to be collectively processed in each determination process to each determination process based on the communication path of the received data.
  • the communication data is parallelized in appropriate units based on the information about the data received via the communication network (for example, information about the communication path of the data). It can be processed.
  • the CEP system (or data processing system) (110, 1100) described in each of the above embodiments is collectively referred to simply as “data processing system”.
  • Each component of the data processing system is simply referred to as “component of the data processing system”.
  • each of the above embodiments may be configured by one or a plurality of dedicated hardware devices.
  • each component shown in each of the above drawings may be realized as hardware (an integrated circuit or the like on which processing logic is mounted) that is partially or fully integrated.
  • the constituent elements of the data processing system may be implemented by an SoC (System on a Chip) or the like that can provide each function.
  • SoC System on a Chip
  • 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 an SoC.
  • a well-known communication bus may be adopted as a communication line for connecting each component of the data processing system.
  • the communication line connecting each component is not limited to bus connection, and each component may be connected by peer-to-peer.
  • the hardware devices may be communicably connected by an appropriate communication method (wired, wireless, or a combination thereof).
  • the above-described data processing system may be configured by general-purpose hardware exemplified in FIG. 12 and various software programs (computer programs) executed by the hardware.
  • the data processing system may be configured by an appropriate number of hardware devices and software programs.
  • 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 according to the software programs.
  • 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.
  • the storage device 1202 is a memory device such as a RAM that can be referred to from the arithmetic device 1201, and stores software programs, various data, and the like. Note that the storage device 1202 may be a volatile memory device.
  • the nonvolatile storage device 1203 is a nonvolatile storage device such as a magnetic disk drive or a semiconductor storage device using flash memory.
  • the nonvolatile storage device 1203 can store various software programs, data, and the like.
  • the network interface 1206 is an interface device connected to a communication network, and for example, a wired and wireless LAN (Local Area Network) connection interface device or the like may be employed.
  • LAN Local Area Network
  • the drive device 1204 is, for example, a device that processes reading and writing of data with respect to a recording medium 1205 described later.
  • the recording medium 1205 is various recording media capable of recording data, such as an optical disk, a magneto-optical disk, and a semiconductor flash memory.
  • the input / output interface 1207 is a device that controls input / output with an external device.
  • the data processing system according to the present invention described with the above-described embodiments as an example supplies a software program capable of realizing the functions described in the above-described embodiments to, for example, the hardware device illustrated in FIG.
  • This may be realized. More specifically, for example, the present invention may be realized by causing the arithmetic device 1201 to execute a software program supplied to such a device.
  • 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 process.
  • the rule matching process executed by the rule matching unit 114 can be realized as a software program such as a process, a thread, and a task that can be processed in parallel by the arithmetic device 1201.
  • each unit illustrated in each of the above-described drawings is a software (function) unit of software program executed by the above-described hardware. It can be realized as a module.
  • the division of each software module shown in these drawings is a configuration for convenience of explanation, and various configurations can be assumed for implementation.
  • these software modules may be stored in the nonvolatile storage device 1203. Then, the arithmetic device 1201 may read these software modules into the storage device 1202 when executing each process.
  • various data may be transmitted to each other by an appropriate method such as shared memory or inter-process communication.
  • these software modules can be connected so as to communicate with each other.
  • each software program may be recorded on the recording medium 1205.
  • the software programs may be configured to be stored in the nonvolatile storage device 1203 through the drive device 1204 as appropriate at the shipping stage or the operation stage of the communication device or the like.
  • the method of supplying various software programs to the data processing system is installed in the apparatus using an appropriate jig at the manufacturing stage before shipment or the maintenance stage after shipment. You may adopt the method of doing.
  • a method for supplying various software programs a general procedure may be adopted at present, such as a method of downloading from the outside via a communication line such as the Internet.
  • the present invention can be understood to be constituted by a code constituting the software program or a computer-readable recording medium on which the code is recorded.
  • 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 or the Internet is downloaded and stored or temporarily stored.
  • the data processing system described above or the components of the data processing system include a virtual environment in which the hardware device illustrated in FIG. 12 is virtualized and various software programs (computers) executed in the virtual environment. -A program).
  • the components of the hardware device illustrated in FIG. 12 are provided as virtual devices in the virtual environment.
  • the present invention can be realized with the same configuration as the case where the hardware device illustrated in FIG. 12 is configured as a physical device.

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)

Abstract

 通信ネットワークを介して受信したデータセットを、適切な単位で並列に処理する。データ処理システム(1100)は、データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信部(1101)と、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される1以上のルールについて、上記受信手段により受信した上記データセットが上記条件を満たすか否かを判定する判定処理を、並列に実行可能な並列実行部(1102)と、上記受信手段により受信した1以上の上記データセットを、それぞれの上記データセットの通信経路に応じて、上記判定処理に並列に割当てる割当て部(1103)と、を備える。

Description

データ処理システム、データ処理方法及び記録媒体
 本発明は通信ネットワークを介して受信したデータを適切な単位で並列に処理する技術に関する。
 近年、通信ネットワークの高速化及び広域化、あるいは、モバイルデバイスや各種センサの普及等、各種情報通信技術が普及している。これに伴い、処理(あるいは蓄積)すべきデータ(1以上のデータセット)の多様化、大規模化が急速に進んでいる。なお、以下において1以上のデータセットをまとめて「データ」と称する。
 このような状況において、様々なサービスの連携基盤となるサービスバスにおいても、扱うデータの量が増大することが想定される。この場合、このようなサービスバスは、時々刻々と発生するデータ(イベント)を高速に(例えば、リアルタイムに)処理するニーズ(要求)に応えることを求められる場合がある。
 また、多数のデータ(イベント)を処理可能な技術として、複合イベント処理(CEP:Complex Event Processing)システムが知られている。CEPシステムは、様々な情報処理端末あるいはセンサ等から送信されるデータを扱うとともに、受信したデータを高速に処理することが求められる。これより、CEPシステムに関して、データの処理に関する負荷を分散又は低減可能な技術が求められる。このようなCEPシステムに関連する技術が、例えば、下記のような特許文献に開示されている。
 特許文献1(国際公開第2011/010711号)は、イベント処理システムにおいて、イベントを処理サーバに分配するディスパッチャに設定されるルールの数を低減することにより、ディスパッチャの負荷を分散する技術を開示する。
 特許文献2(特開2013-114626号公報)は、イベント処理システムを構成する処理装置間の通信を低減する技術を開示する。特許文献2に開示された技術は、設定された条件に合致したデータを処理するクエリが複数の処理装置に配置され得る状況において、当該クエリ間の通信回数が低減されるように、特定のクエリの組を同一の装置に配置する。
 特許文献3(特開2012-079242号公報)は、イベント処理システムを構成する各処理装置に配置されたルール間の関連度と、各処理装置の負荷状況とに基づいて、各処理装置の負荷が一定水準以下になるようにルールを再配置する技術を開示する。
 特許文献4(特開2006-309701号公報)は、イベント処理システムにおいて、各処理サーバに対するイベントの分配を制御することにより、それぞれの処理サーバに対する負荷を分散する技術を開示する。特許文献4に開示された技術は、処理サーバ毎に設定されたルールの数又はルールに含まれるイベント条件等に基づいて、各処理サーバに対する処理ルールの振り分けを制御する。
 なお、複合イベント処理を適用したシステムの一例として、複数の情報源からイベントを受信することにより、監視対象のシステムにおいて実行される悪意のある活動を検知する技術が、特許文献5(特表2013-533531号公報)に開示されている。
 また、上記したサービスバスに関連する技術として、例えば、下記特許文献6(特開2014-153858号公報)が開示されている。
国際公開第2011/010711号 特開2013-114626号公報 特開2012-079242号公報 特開2006-309701号公報 特表2013-533531号公報 特開2014-153858号公報
 上記したようなCEPシステムにおいては、例えば、当該システムに送信されるデータの形式が定まっていない場合、データに対して画一的に処理を実行することが困難である。この場合、CEPシステムは、当該データを高速に処理できない可能性がある。
 また、データを高速に処理するべく、CEPシステムがデータに関する処理を並列化(分散)することが考えられる。しかしながら、並列処理を実行する処理要素(例えば、演算装置や、演算プロセス)の間でデータに関する情報を共有することが難しい場合がある。この場合、同一の処理要素により一括して処理されるべきデータが異なる処理要素に割り振られてしまうと、検知されるはずであったデータ(イベント)が見落とされる可能性がある。これにより、当該データに関する処理が、適切に実行されない可能性がある。また、データの共有に付随する処理負荷(オーバーヘッド)が大きい場合には、データに関する処理が十分に高速化されない場合がある。
 特許文献1に開示された技術を採用した場合、各ディスパッチャに設定されるディスパッチルールの数が低減されても、係るルールに適合するイベントの発生頻度によっては、特定のディスパッチャに対する負荷が分散されない可能性がある。
 また、特許文献2に開示された技術は、クエリ間の通信回数等に着目して各処理装置に対するクエリの配置を制御する技術である。また、特許文献3に開示された技術は、ルール間の関連度(要素の関連度)に着目して、各処理装置に対するルールの配置を制御する技術である。また、特許文献4に開示された技術は、処理サーバ毎に設定されたルールの数等に着目して、処理サーバに対するルールの配置を制御する技術である。即ち、特許文献2乃至特許文献4に開示された技術は、いずれも処理されるデータに直接的に着目する技術ではない。よって、これらの技術を採用した場合、同一の処理装置において処理されることが望ましいデータが、異なる処理装置において処理される可能性がある。
 本発明は上記のような事情を鑑みてなされたものである。即ち、本発明は、通信ネットワークを介して受信した通信データを、適切な単位で並列に処理可能なデータ処理システム等を提供することを主たる目的の一つとする。
 上記の目的を達成すべく、本発明の一態様に係るデータ処理システムは、以下の構成を備える。即ち、本発明の一態様に係るデータ処理システムは、データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信手段と、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される1以上のルールについて、上記受信手段により受信した上記データセットが上記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、上記受信手段により受信した1以上の上記データセットを、それぞれの上記データセットの通信経路に応じて、上記判定処理に並列に割当てる割当て手段とを備える。
 また、本発明の一態様に係るデータ処理方法は、以下の構成を備える。即ち、本発明の一態様に係るデータ処理方法は、情報処理装置が、データの発生源から通信ネットワークを介して1以上のデータセットを受信し、上記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とにより構成される1以上のルールについて、上記データセットが上記条件に合致するか否かを判定する判定処理を、当該受信したデータセットの通信経路に応じて並列に実行する構成を有する。
 また、同目的は、上記構成を有するデータ処理システム、並びに対応するデータ処理方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記録媒体等によっても達成される。
 本発明によれば、通信ネットワークを介して受信したデータを、適切な単位で並列に処理可能である。
図1は、本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。 図2は、本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。 図3は、本発明の第1の実施形態に係るサービスバスシステムにおいて送受信されるデータの具体例を示す説明図である。 図4は、本発明の第1の実施形態に係るサービスバスシステムの動作を例示するフローチャートである。 図5は、本発明の第1の実施形態に係るCEPシステムの動作を例示するフローチャートである。 図6は、本発明の第1の実施形態に係るCEPシステムが保持するルールの形式を例示する図である。 図7は、本発明の第1の実施形態に係るCEPシステムが保持するルールの具体例を例示する図である。 図8は、本発明の第1の実施形態に係るCEPシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。 図9は、本発明の第1の実施形態の変形例1に係るCEPシステムが保持するルールの具体例を例示する説明図である。 図10は、本発明の第1の実施形態の変形例1に係るCEPシステムにおいて、各ルール照合プロセスが処理するルールと、当該ルールに関するデータの通信経路とを表す説明図である。 図11は、本発明の第2の実施形態に係るデータ処理システムの機能的な構成を例示するブロック図である。 図12は、本発明の各実施形態に係るCEPシステム(及びデータ処理システム)、あるいは、その構成要素を実現可能なハードウェアの構成を例示する図である。
 以下、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。
 まず、本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景等について説明する。
 上記したように、通信ネットワークを介して提供される多様なサービスを相互に接続可能な技術として、例えば、サービスバスが用いられる場合がある。サービスバスは、例えば、複数のサービスの間でメッセージの送受信を仲介し、サービスの間の連携を実現する。係るサービスバスにおいて扱うメッセージの数やデータ(即ち、1以上のデータセット)の量が増大した場合を想定すると、それらのデータやメッセージを高速に(例えば、リアルタイムに)処理可能な技術が求められる。そこで、本発明の各実施形態においては、係るサービスバスに対してCEPシステムを導入(適用)することにより、増大するメッセージやデータに対処する技術を実現する。
 次に、各実施形態に係るCEPシステム(あるいはCEP装置)について概要を説明する。以下の各実施形態において説明するCEPシステムは、本発明の各実施形態におけるデータ処理システム(あるいはデータ処理装置)に包含される。CEPシステムは、データ(イベント)に対する処理条件(イベント条件)と、当該処理条件が満たされた場合に実行されるアクションと、により構成されるルールを保持する。係るルールは、例えば、CEPシステムの管理者等によって、CEPシステムに予め設定されていてもよい。
 CEPシステムは、データを受信した際に、当該受信したデータにより、あるルールを構成するイベント条件が満たされるか否かを判定する。そして、CEPシステムは、あるルールを構成するイベント条件が満たされたと判定した場合には、当該ルールに設定されたアクションを実行する。以下、受信したデータがあるルールを構成するイベント条件を満たすか否かについてCEPシステムが判断(判定)する処理を、ルール照合処理と称する。CEPシステムは、受信したデータ(イベント)を高速に処理すべく、ルール照合処理を並列に(分散して)実行する。係る並列処理は、例えば、複数の演算装置(あるいは演算装置を構成する演算処理コア)等を用いて、並行して処理(ルール照合処理等)が実行されることにより実現されてもよい。また、係る並列処理は、例えば、1以上の演算装置において、複数の処理要素(例えば、プロセスやスレッド等)が並行して処理されることにより実現されてもよい。この場合、係る並列処理は、疑似的な並列処理(例えば、複数の処理要素を時分割で処理する方法や、処理を細分化して演算器に割り当てる方法等)を含んでもよい。以下の各実施形態においては、係るルール照合処理の並列化について具体的に説明する。
 なお、以下の各実施形態におけるCEPシステム、及び、サービスバスシステムは1以上の専用のハードウェア装置、又は、汎用の情報処理装置等を用いて実現可能である。以下の各実施形態におけるCEPシステムは単体装置としてのCEP装置を含み、サービスバスシステムは、単体装置としてのサービスバス装置を含む。CEPシステム及びサービスバスシステムを実現可能なハードウェア構成(例えば図12)については後述する。
 <第1の実施形態>
 本発明の第1の実施形態に係るCEPシステム及びサービスバスシステムの構成について図面を参照して詳細に説明する。図1は、本実施形態におけるCEPシステム及びサービスバスシステムの機能的な構成を例示するブロック図である。
 図1を参照すると、本発明の第1の実施形態におけるサービスバスシステム100は、データ発生源A(120A)及びサービスA(160A)と通信可能に接続されている。
 データ発生源A(120A)は、サービスバスシステム100に対して、各種データ(イベント)を送信するデバイス又はシステム等である。データ発生源A(120A)は、例えば、各種情報処理端末や、各種センサ等であってもよい。データ発生源A(120A)は、例えば、何らかの事象が発生した際に、当該事象に関するデータ(イベント)を含むメッセージをサービスバスシステム100に送信する。
 サービスA(160A)は、サービスバスシステム100から送信されたメッセージに基づいて、各種サービスを提供可能な装置やシステム等である。サービスA(160A)には、例えば、データ発生源A(120A)において生成されたデータ、あるいは、当該データに基づいて加工されたデータが、サービスバスシステム100を介して送信されてもよい。
 サービスバスシステム100は、データの送信元から受信したデータに基づいて、当該データの送信先にメッセージを送信する。係るメッセージは、データの送信元から受信したデータを含んでもよく、受信したデータに基づいて加工されたデータを含んでもよい。以下、係るサービスバスシステム100について説明する。
 サービスバスシステム100は、大別して、データ受信部A(130A)と、データ交換部140と、データ送信部A(150A)と、CEPシステム110と、を含む。
 データ受信部A(130A)は、データ発生源A(120A)から送信されたデータを含むメッセージを受信する。データ受信部A(130A)は、例えば、データ発生源A(120A)から送信されたデータを、共通形式のデータに変換して、データ交換部140に渡してもよい。この場合、係る共通形式は、例えばXML(Extensible Markup Language)等を用いて定められた形式であってもよい。なお、係る共通形式はXMLに限定されず、適切なデータ形式を採用してよい。
 データ送信部A(150A)は、サービスA(160A)にメッセージを送信する。データ送信部A160は、例えば、データ交換部140から渡された共通形式のデータを、サービスA(160A)に関する固有のデータ形式に変換し、当該変換したデータを含むメッセージをサービスA(160A)に送信してもよい。
 データ交換部140は、データ受信部A(130A)と、データ送信部A(150A)との間でデータの受け渡しを行う。データ交換部140を介して受け渡されるデータは、例えば、後述するCEPシステム110によるイベント処理に用いられる。データ交換部140は、後述するCEPシステム110に対して、データ交換部140を介して受け渡されるデータを提供(通知)してもよい。あるいは、データ交換部140は、後述するCEPシステム110から参照可能なように、データ交換部140を介して受け渡されるデータを一時的に保持してもよい。
 CEPシステム110は、データ発生源A(120A)から送信されたメッセージに含まれるデータ(イベント)に基づいて、各種イベント処理を実行するイベント処理システムである。上記したように、CEPシステム110は、単体の装置により構成されてもよく、複数の装置を組み合わせたシステムとして構成されてもよい。以下、係るCEPシステム110について説明する。
 CEPシステム110は、データ取得部111と、制御部112と、割当て部113と、ルール照合部114と、ルール保持部115と、処理実行部116とを有する。CEPシステムを構成するこれらの構成要素の間は、適切な通信方法(通信回線等)により通信可能に接続されている。以下、本実施形態における主要な構成要素であるCEPシステム110を構成するこれらの構成要素について説明する。
 データ取得部111は、データ交換部140を介して受け渡されるデータを読み取り、制御部112にデータを渡す。上記したように、データ交換部140が、データ取得部111に対して係るデータを渡してもよい。
 制御部112は、データ取得部111から受け取ったデータを保持するとともに、ルール照合部114、及び、処理実行部116の動作を制御する。制御部112は、割当て部113を備える。割当て部113は、データ取得部111において読み取られたデータを、ルール照合部114(特には、ルール照合部114において実行されるルール照合プロセス(後述))に割当てる処理を実行する。
 ルール照合部114は、割当て部113からデータを受け取り、当該データの内容と、ルール保持部115が保持するルール(特には、イベント条件)とに基づいて、ルール照合処理を実行する。より具体的には、ルール照合部114は、ルール照合処理を並列に実行可能な処理要素(照合処理実行手段)を1以上有する。当該処理要素は、割当て部113から受け取ったデータに対して、ルール照合処理を並列に実行可能である。以下、係る処理要素をルール照合プロセスと称する。
 ルール照合プロセスは、例えば、CEPシステム110(例えば、ルール照合部114)において実行される、ソフトウェア・プログラム(コンピュータ・プログラム)として実現されてもよい。また、係るルール照合プロセスは、例えば、適切な処理方法が組み込まれた演算装置を用いて実現されてもよい。本実施形態においては、例えば、サービスバスシステム100の起動時、あるいは、CEPシステム110の起動時に、制御部112により必要な数のルール照合プロセスが起動されてもよい。
 ルール保持部115は、予め作成されたルールを保持する。ルール保持部115は、係るルールの一覧を保持してもよい。ルール保持部115は、ルール照合部114からの要求に応じて、保持しているルールを提供可能である。
 処理実行部116は、制御部112から呼び出され、ルール照合部114の照合結果に基づいて、ルールに設定されている処理(アクション)を実行する。
 上記説明した図1に例示する構成においては、説明の便宜上、データ発生源(図1のデータ発生源A(120A))と、サービス(図1のサービスA(160A))とが、1つだけ存在する場合が具体例として示されている。これに対して、本実施形態は、図2に例示するように、データ発生源とサービスとがそれぞれ複数存在し、これらに対応するデータ受信部、データ送信部も複数存在する場合も含む。なお、データ発生源、サービスの数は適宜定められてよい。サービスバスシステム100は、データ発生源及びサービスの数にそれぞれ対応するデータ受信部及びデータ送信部を提供可能である。
 次に、サービスバスシステム100及びCEPシステム110において扱われるデータについて説明する。
 各データ発生源(例えば、図2における120A乃至120C)から、データ受信部(例えば、図2における130A乃至130C)へと送信されるデータの形式(フォーマット)は、様々である。各データ受信部は、データ発生源から受信したデータを共通の形式(例えばXML等)に変換する。これにより、データ交換部140を介して受け渡されるデータは、共通形式のデータとなる。これにより、サービスバスシステム100及びCEPシステム110においては、各データ(あるいは、当該データを含むメッセージ)の形式が共通化される。このことから、サービスバスシステム100及びCEPシステム110においては、各データに対して画一的に処理を実行することが容易になる。
 各データには、サービスバスシステム100内における伝送(通信)に用いられる、付加情報が追加される。係る付加情報は、データ受信部130において付加されてもよい。これにより、データ交換部140においては、図3に例示するような各種の要素が関連付けされた情報により構成されるメッセージが伝送される(受け渡される)。より具体的には、図3に例示するように、サービスバスシステム100において伝送されるメッセージは、受信日時301と、送信元302と、送信先303と、データ本体304とを含む。受信日時301は、当該メッセージに含まれるデータを受信した日時を特定可能な情報である。送信元302は、当該メッセージの送信元を特定可能な情報である。送信先303は、当該メッセージの送信先を特定可能な情報である。データ本体304は、データ発生源から受信したデータ自体を表す情報である。図3に例示する具体例においては、送信元302、及び、送信先303には、それぞれ、サービスバスシステム100におけるデータ受信部と、データ送信部とを特定する情報が登録されている。例えば、送信元302には、データ発生源を特定可能な情報が設定されてもよく、送信先303には、サービスを特定可能な情報が設定されてもよい。
 次に、本実施形態におけるルールについて、図6及び図7を参照して説明する。ルール保持部115が保持するルールは、例えば、図6に例示するように、イベント条件とアクションとのセット(組合せ)により構成される。あるルールに対して、イベント条件及びアクションは、ともに複数設定されてもよい。
 あるルールを構成するイベント条件に設定された全ての条件が満たされた場合、当該イベント条件に対応するアクションが実行される。具体的には、ルール照合部114(特にはルール照合プロセス)が、あるルールを構成するイベント条件が全て成立したと判断した場合、当該イベント条件に対応するアクションが処理実行部116により実行される。
 例えば、図6に例示する「ルールA」には、イベント条件として3つの条件(「イベントA1」乃至「イベントA3」)が設定され、アクションとして「アクションA1」が設定されている。この場合、ルール照合部114におけるルール照合プロセスが「イベントA1」乃至「イベントA3」が成立したと判定した場合に、処理実行部116により「アクションA1」が実行される。
 図7は、本実施形態におけるルールの具体例を示す図である。図7に示す具体例は、図3に例示したようなデータがデータ交換部140において伝送される場合に、当該データに関する照合処理が実行されるルール(ルールA及びルールB)を表す。図7に示す具体例のように、イベント条件には、データ交換部140から得られるデータの内容、送信元、送信先、日時などに関する条件が設定される。アクションには、データ送信処理やサービスバスに対する運用操作などの処理が設定される。なお、ルールを構成するイベント条件及びアクションは、機械処理可能な適切な形式により記述されてよい。
 次に、上記のように構成された本実施形態におけるサービスバスシステム100、及び、CEPシステム110の動作について説明する。
 先ず、サービスバスシステム100に関するデータ(メッセージ)の流れについて、図4に例示するフローチャートを参照して説明する。図4は、データ発生源A(120A)とサービスA(160A)との間のデータの流れに関する処理を表すフローチャートである。
 データ発生源A(120A)は、当該データ発生源A(120A)において何らかの事象が発生するたび、当該事象に関するデータ(イベント)を、データ受信部A(130A)へ送信する(ステップS401)。
 データ受信部A(130A)は、係るデータを受信する(ステップS402)。
 データ受信部A(130A)は、受信データをXML等の共通形式に変換し、当該変換したデータをデータ交換部140へと渡す(ステップS403)。
 データ交換部140は、データ受信部A(130A)から渡されたデータを、データ送信部A(150A)に渡す(ステップS404)。この際、データ交換部140は、後述するように、データ取得部111に対して当該データを通知してもよく、あるいは、データ取得部111から読み取れるように、当該データを一時的に保持してもよい。なお、データ交換部140は、データ受信部A(130A)から受け取ったデータに対して、何らかの加工処理を実行してもよい。
 データ送信部A(150A)がデータ交換部140からデータを受け取ると、XML等の共通なデータ形式から、各サービス(例えばサービスA(160A))毎の固有のデータ形式へとデータを変換する。そして、データ送信部A(150A)は、サービスA(160A)へデータを送信する(ステップS405)。
 次に、CEPシステム110におけるデータ処理について、図5に例示するフローチャートを用いて説明する。
 まず、データ取得部111がデータ交換部140を介して受け渡されるデータを読み取る(ステップS501)。
 データ取得部111は、当該読み取ったデータを制御部112に渡す(ステップS502)。この際、制御部112は、データ取得部111から渡されたデータを、割当て部113に渡してもよい。
 制御部112における割当て部113は、受け取ったデータの内容に基づいて、当該データの割当て先を決定する(ステップS503)。この際、割当て部113は、ルール照合部114において並列に実行されるルール照合プロセスの中から、当該データに関するルールの照合処理を実行するプロセスを決定する。割当て部113は、該当するルール照合プロセスに対してデータを渡す(割当てる)。
 より具体的には、割当て部113は、データ取得部111から渡されたデータの通信経路を確認する。係るデータが、例えば図3に例示するような共通形式により表される場合、割当て部113は、例えば、当該データの通信経路として、送信元302及び送信先303の情報を確認する。そして、割当て部113は、当該データの通信経路に基づいて特定したルール照合部プロセスに、当該データを割当てる。
 ルール照合部114におけるルール照合プロセスは、制御部112(特には割当て部113)から受け取ったデータに対して、ルール照合処理を実行する(ステップS504)。ルール照合プロセスは、ルール保持部115に保管されているいずれかのルールに対して、割当て部113から受け取ったデータの内容が該当するか否かを確認する。より具体的には、ルール照合プロセスは、例えば、制御部112から受け取ったデータの内容を確認し、当該データがそれぞれのルールに設定されたイベント条件を満たすか否かを確認してもよい。
 制御部112から受け取ったデータに対して適用されるルールが存在しない場合(ステップS505においてNO)、ルール照合プロセスは更なる処理を実行しない。この場合、ステップS501に戻って、データ取得部111が次のデータを処理する。
 制御部112から受け取ったデータに対して適用されるルールが存在する場合(ステップS505においてYES)、ルール照合部114(ルール照合プロセス)が、制御部112に対して、ルール照合処理の結果を通知する(ステップS506)。より具体的には、ルール照合プロセスが、あるデータが特定のルールに対するイベント条件を満たすと判定した場合、ルール照合部114は、当該判定結果を制御部112に通知してもよい。あるルールに対して複数のイベント条件が設定されている場合、ルール照合部114は、全てのイベント条件が満たされた際に、判定結果を制御部112に通知してもよい。また、ルール照合部114は、一部のイベント条件が満たされた際に、判定結果を制御部112に通知してもよい。なお、ルール照合部114は、ルール毎に、当該ルールに設定されたイベント条件が満たされた否かを表す情報を、中間状態として保持してもよい。
 次に、制御部112が、ルールに設定された処理(アクション)を実行するように、処理実行部116を呼び出す(ステップS507)。
 処理実行部116は、制御部112からの指示に従ってルールに設定された処理(アクション)を実行する(ステップS508)。
 上記説明したフローチャートにおけるステップS504乃至ステップS506に例示された処理は、ルール照合部114において、1以上のルール照合プロセスにより並列に処理される。即ち、CEPシステム110(特には制御部112)は、ルール照合部114におけるルール照合処理を並列化することにより、処理を高速化(分散化)する。以下、ルール照合部114における並列処理について説明する。
 上記したように、ルール照合プロセスが、ルール照合処理を実行する場合、それぞれのルールを構成するイベント条件が成立したか否かが判定される。この場合、割当て部113が、ルール照合プロセスに対して、当該イベント条件が成立したか否かを判定する際に用いられるデータ(以下、「イベント条件の成否に関するデータ」と称する)を割当てる。割当て部113が、あるルールを構成するイベント条件の成否を判定する際に一括して処理されるデータを、各ルール照合プロセスにまとめて割当てることを想定する。この場合、各ルール照合プロセスは、当該ルールに対するルール照合処理を効率的に実行可能である。なぜならば、これにより、複数のルール照合プロセスが、割当てられたデータを用いてルール照合処理を個別に実行することができるからである。即ち、複数のルール照合プロセスにより、ルール照合処理が並列に実行されるからである。
 割当て部113は、ルール保持部115に保持されたルールを読み込み、その内容(特には、各ルールのイベント条件)を解析する。このルールの解析処理は、制御部112の起動時に行われてもよい。イベント条件には、ルール照合処理の対象となるデータに関する条件が設定されている。係るイベント条件には、当該データが流れる(伝送される)通信経路を判定可能な情報も含まれる。割当て部113は、係るイベント条件を解析することにより、当該イベント条件が成立したか否かを判定する際に用いられる、データの通信経路を確認する。これにより、割当て部113は、ルール照合処理プロセスがルール照合処理を実行する際、データの通信経路に応じて、一括して処理することが望ましいデータを判断することができる。
 図7に示す具体例を用いて、ルール照合処理について説明する。例えば、ルールA(図7の701)のイベント条件を参照すると、イベントA1及びイベントA2は、ともにデータ受信部A(130A)からデータ送信部A(150A)に送信されるデータに関する条件である。これより、ルール照合プロセスは、データ受信部A(130A)からデータ送信部A(150A)に至る経路を流れる(伝送される)データを取得できれば、ルールAに関するルール照合処理を実行可能である。
 同様に、ルールB(図7の702)は、データ受信部Bからデータ送信部Bの経路を流れるデータに関する条件である。これより、ルール照合プロセスは、データ受信部Bからデータ送信部Bに至る経路を流れるデータを取得できれば、ルールBに関するルール照合処理を実行可能である。
 図7に例示する具体例においては、ルールA、ルールB以外の他のルールは設定されていない。これより、制御部112(割当て部113)は、その他の通信経路を流れるデータに対しては、ルール照合処理を実行しないと判断できる。
 そこで、制御部112は、図8に例示するように、ルールAに関するルール照合処理を行うルール照合プロセス1と、ルールBに関するルール照合処理を行うルール照合プロセス2とを用意する。即ち、制御部112(特には割当て部113)は、それぞれのルールを構成するイベント条件の解析結果に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、制御部112(割当て部113)が、2つのルール照合プロセスを用意(生成)してもよく、ルール照合部114が2つのルール照合プロセスを用意(生成)してもよい。
 より具体的には、割当て部113は、それぞれのルールを構成するイベント条件の成否に関するデータの通信経路に基づいて、それぞれのルールを処理するルール照合プロセスを用意する。この場合、それぞれのルール照合プロセスが、ルール保持部115に保持された各ルールに関する照合処理を実行可能であってもよい。また、一つのルール照合プロセスが、複数のルールに関するルール照合処理を実行可能であってもよい。なお、所定の数のルール照合プロセスが、例えばCEPシステム110の起動時等に、予め用意されてもよい。
 上記のような処理により、1つのルール照合プロセスが処理すべきルールの数が実質的に低減されることから、それぞれのルール照合プロセスは高速に照合処理を行うことが可能である。例えば、図7、図8に例示する具体例においては、ルール照合プロセス1及びルール照合プロセス2は、それぞれ1つのルールに関する照合処理を実行すればよい。この場合、それぞれのルール照合プロセスが、ルールA、ルールBの両方を処理する場合に比べて、処理対象のルールが半分になる。
 割当て部113は、例えば、用意されたルール照合プロセスに対して、それぞれのルール照合プロセスが照合処理を実行すべきルールを明示的に指定してもよい。また、割当て部113は、例えば、それぞれのルール照合プロセスに渡す(割当てる)データを制御することにより、当該ルール照合プロセスが照合処理を実行すべきルールを実質的に指定してもよい。
 図7及び図8に示す具体例において、割当て部113は、例えば、データ受信部A(130A)からデータ送信部A(150A)に送信されるデータを、ある特定のルール照合プロセス(例えばルール照合プロセス1)に渡してもよい。これにより、割当て部113は、ルールAに関するルール照合処理を実行するよう、当該ルール照合プロセスを実質的に制御することが可能である。同様に、割当て部113は、データ受信部Bからデータ送信部Bに送信されるデータを他のルール照合プロセス(例えばルール照合プロセス2)に渡してもよい。これにより、割当て部113は、ルールBに関するルール照合処理を実行するよう、当該他のルール照合プロセスを実質的に制御することが可能である。
 次に、割当て部113が、データ取得部111から渡されたデータを割当てる処理について、詳細に説明する。割当て部113は、データ取得部111から渡されたデータの通信経路に基づいて、当該データをルール照合プロセスに割当てる(ステップS503)。換言すると、割当て部113は、イベント条件の成否に関するデータを、当該データの通信経路に応じてルール照合プロセスに割当てる。
 より具体的には、割当て部113は、上記ルールを解析することにより、当該ルールを構成するイベント条件の成否を判断する際に用いられる、データの通信経路を確認する。そして、割当て部113は、データ取得部111からデータを渡された際に、当該渡されたデータの通信経路と、上記イベント条件に設定されたデータの通信経路とを比較する。割当て部113は、係る比較の結果が等しい場合、当該イベント条件により構成されるルールに関連付けされたルール照合プロセスに、データ取得部111から渡されたデータを渡す(割当てる)。なお、割当て部113は、上記比較の結果、あるルールを構成するイベント条件に設定されたデータの通信経路に、データ取得部111から渡されたデータの通信経路が含まれる場合も、上記と同様としてよい。
 以上説明した処理により、割当て部113は、あるルール照合プロセスに対して、特定のルールに関するルール照合処理を実行させることが可能である。また、そのルール照合プロセスにおいて、データ照合処理が過不足なく実行される。
 ここで、仮に、一つのルールが複数のルール照合プロセスに割当てられている状況を想定する。係る状況においては、複数のルール照合プロセスが、同時(略同時な場合も含む)に、同じルールに関するイベント条件の成否を判定する可能性がある。この場合、アクションが重複して実行されてしまう可能性がある。このような状況を回避するため、制御部112(割当て部113)は、同じルールが複数のルール照合プロセスに重複して割当てられないように、ルール照合プロセスを用意してもよい。また、制御部112(割当て部113)は、同一のルールに関するルール照合処理を、異なるルール照合プロセスに割当てないように制御してもよい。
 次に、本実施形態におけるCEPシステム110が奏する効果について説明する。
 上記のように構成された本実施形態におけるCEPシステム110は、ルール照合処理を並列化可能である。さらに、CEPシステム110は、ルール照合処理を実行する処理要素(例えばルール照合部114におけるルール照合プロセス)に、割当てるデータを適切に判断し、ルール照合処理の精度を保ったまま処理を高速化可能である。その理由は、CEPシステム110が、設定されたルールの内容(例えば、イベント条件)と、サービスバスシステム100におけるデータの通信経路とを分析することにより、ルール照合処理を実行する各処理要素において一括して処理すべきデータを判断可能だからである。これにより、一括して処理されるべきデータが複数の処理要素に分散して割当てられる状況が回避される。このことから、各処理要素は、他の処理要素とは独立してルール照合処理を実行可能である。即ち、各処理要素間においてデータを共有するためのオーバーヘッドがないことから、各処理要素はルール照合処理を効率的に実行可能である。また、上記したように、各処理要素が処理すべきルールの数(各処理要素に割り当てられるルールの数)が低減されることから、各処理要素がルール照合処理を高速に実行可能である。また、本実施形態によれば、あるルール照合処理に用いられるデータが異なる処理要素に分散して割当てられることがない。即ち、同一のルールに関するルール照合処理が異なる処理要素において重複して実行されることがない。よって、CEPシステム110は、ルール照合処理の精度を保ったままで処理を高速化可能である。
 上記のように構成されたCEPシステム110は、更に、入力されるデータの形式が共通化されることから、画一的なデータの処理が可能となる。その理由は、CEPシステム110がサービスバスシステム100に導入(適用)されることで、サービスバス上を流れる、共通化されたデータ形式のデータが、CEPシステム110に入力されるからである。
 以上より、本実施形態におけるCEPシステム110によれば、通信ネットワークを介して受信したデータに関する情報(例えば、当該データの通信経路に関する情報)に基づいて、当該通信データを適切な単位で並列に処理可能である。
 <第1の実施形態の変形例1>
 次に、上記説明した本発明の第1の実施形態に関する、第1の変形例(以下、変形例1と称する)について説明する。なお、本変形例1のシステム構成自体は、上記第1の実施形態と同様としてよく、以下に説明する通り動作が異なる。よって、本変形例1のシステム構成に関する詳細な説明を省略する。
 本変形例1における割当て部113は、必要に応じて複数のルール照合プロセスで同じデータを重複して処理するよう、各ルール照合プロセスにデータを割当てる処理構成において、上記第1の実施形態と相違する。以下、図9及び図10に例示する具体例を用いて、係る相違を中心に説明する。
 図9は、図7とは異なるルールの具体例を示す図である。図9に示す具体例においては、ルールA乃至ルールDの4つのルールがルール保持部115に設定されている。ルールA、ルールB、及び、ルールDを構成するイベント条件は、データ受信部Aからデータ送信部Aへの通信経路を流れるデータに関する条件を含む。また、ルールCを構成するイベント条件は、データ受信部Aから全てのデータ送信部への経路を流れるデータに関する条件を含む。これより、ルールA乃至ルールDのいずれのルールに関するルール照合処理においても、データ受信部Aからデータ送信部Aへの通信経路を流れるデータを取得する必要がある。換言すると、この場合、データ受信部Aからデータ送信部Aへの通信経路を流れるデータは、すべてのルールと照合される。
 係る状況において、割当て部113が、例えば上記第1の実施形態における図7に例示するルールと同様の処理を実行した場合、一つのルール照合プロセスにおいて、すべてのルールに対するルール照合処理が実行されてしまう可能性が有る。この場合、ルール照合処理の並列化が有効に機能しないという問題がある。具体的に説明すると、図7に例示する具体例においては、ルールAと、ルールBとにおいて、イベント条件の成否に関するデータの通信経路が異なっている。このことから、割当て部113が、それぞれの通信経路において伝送されるデータを別々のルール照合プロセスに渡すことができる。これにより、それぞれのルール照合プロセスが、ルールAあるいはルールBに関するルール照合処理を別々に(並列して)実行可能である。
 これに対して、図9に例示する具体例においては、データ受信部Aからデータ送信部Aへの通信経路を流れるデータは、全てのルールに関するルール照合処理に共通に用いられる。これより、割当て部113は、当該データを、全てのルール照合プロセスに渡す必要がある。割当て部113から、データ受信部Aからデータ送信部Aへの通信経路を流れるデータを渡された場合、各ルール照合プロセスは、ルールA乃至ルールDを構成するイベント条件の成否をそれぞれ判定する処理を実行してしまう可能性がある。この場合、結果として、各ルール照合プロセスにおける処理が重複してしまうことから、ルール照合処理の並列化が有効に機能しない可能性がある。
 これに対して、本変形例1に係る割当て部113は、あるデータが複数のルール照合処理に共通して用いられるような状況(他えば図9)においても、ルール照合処理の並列化が有効に機能するよう、各ルール照合プロセスに対するデータの割当てを調整する。より具体的には、本変形例1における割当て部113は、複数のルール照合プロセスが、特定のデータを重複して処理することを許容する。以下、本変形例1における割当て部113の動作について図9に示す具体例を用いて説明する。
 図9に示す具体例においては、データ受信部Aからデータ送信部Aへの通信経路を流れるデータの扱いが問題となる。そこで、本変形例1における割当て部113は、この通信経路を流れるデータを複数のルール照合プロセスが重複して処理することを許容する。係る重複処理を許容すると、図10に例示するように、ルール照合プロセス毎にルール照合処理が実行されるルールと、そのルール照合処理において用いられるデータの通信経路とが整理される。
 より具体的には、ルールAに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」と、「データ受信部Bから全てのデータ送信部に伝送されるデータ」が用いられる。
 ルールBに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」が用いられる。
 ルールCに関するルール照合処理においては、「データ受信部Bからデータ送信部Bに伝送されるデータ」と、「データ受信部Aから全てのデータ送信部に伝送されるデータ」が用いられる。
 ルールDに関するルール照合処理においては、「データ受信部Aからデータ送信部Aに伝送されるデータ」が用いられる。
 これより、ルールAと、ルールBとに関するルール照合処理は、「データ受信部Aからデータ送信部Aに伝送されるデータ」と、「データ受信部Bから全てのデータ送信部に伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール(ルールA、ルールB)に対するルール照合処理に必要とされるデータの論理和である。
 更に、ルールCと、ルールDとに関するルール照合処理は、「データ受信部Aから全てのデータ送信部に伝送されるデータ」と、「データ受信部Bからデータ送信部Bに伝送されるデータ」とがあれば実行可能である。これらのデータは、それぞれのルール(ルールC、ルールD)に対するルール照合処理に必要とされるデータの論理和である。
 本変形例1における割当て部113は、例えば、図9に例示するルール(特にはイベント条件)を解析することにより、上記のような解析結果を得る。割当て部113は、係る解析結果に基づいて、図10に例示するような、2つのルール照合プロセスを用意する。この場合、割当て部113は、ルール照合プロセス1(図10の1001)に、ルールA及びルールBに関するルール照合処理に必要なデータを渡す。また、割当て部113は、ルール照合プロセス2(図10の1002)に、ルールC及びルールDに関するルール照合処理に必要なデータを渡す。即ち、「データ受信部Aからデータ送信部Aに伝送されるデータ」は、上記2つのルール照合プロセスに渡され、それぞれにおいて重複して処理される。
 このような処理により、割当て部113は、ルールAとルールBを処理するルール照合プロセス1(図10の1001)と、ルールCとルールDを処理するルール照合プロセス2(図10の1002)とに処理を並列化可能である。これにより、総ルール数4に対して1プロセスあたりのルール数が2に減らされることから、各ルール照合プロセスは高速に処理を行うことができる。
 上記したように、本変形例1における割当て部113は、複数のルールに関するルール照合処理において共通して用いられるデータ(以下、第1のデータと称する場合がある)を、それらのルールに関する照合処理を実行する全てのルール照合処理プロセスに重複して渡す。また、本変形例1における割当て部113は、ある特定のルールに関するルール照合処理にのみ用いられるデータ(以下、第2のデータと称する場合がある)を、特定のルール照合処理プロセスにのみ渡す。
 本変形例1における割当て部113は、各ルール照合プロセスに対する第1のデータ及び第2のデータの割当てを制御することにより、各ルール照合プロセスが照合処理を実行すべきルールを実質的に指定することが可能である。これにより、各ルール照合プロセスは、それぞれが異なるルールに関するルール照合処理を並列に実行可能である。
 ここで、割当て部113が重複して処理されるデータを際限なく許容すると、ルール数と同数のルール照合プロセスを用意することになり、リソースの使用効率が低下することが想定される。そこで、割当て部113が用意可能なルール照合プロセスの最大プロセス数を事前に定めておき、その数を超えてプロセスを作成(用意)できないよう制限してもよい。図10に例示する具体例は、係る最大プロセス数が「2」の場合の具体例に相当する。
 上記のように構成された本変形例1におけるCEPシステム110は、あるデータが複数のルール照合処理に用いられる場合に、当該データを複数のルール照合プロセスに重複して渡す(割当てる)。これにより、本変形例1におけるCEPシステム110は、各ルール照合プロセスに割当てられるルールを実質的に制御可能であり、各ルール照合プロセスは、それぞれ並列に、割当てられたルールに関するルール照合処理を実行可能である。また、本変形例1におけるCEPシステム110は、上記第1の実施形態と同様の構成を備えることから、上記第1の実施形態と同様の効果を奏する。
 <第1の実施形態に関するその他の変形例>
 上記第1の実施形態の変形例として、以下のような構成も本発明の実施形態に含まれる。
 まず、上記第1の実施形態においては、ルール照合プロセスが、CEPシステム110を構成するルール照合部114において実行されている。即ち、上記第1の実施形態においては、係るルール照合プロセスは、例えば、ルール照合部114を構成する装置(あるいは、CEPシステム110、サービスバスシステム100を構成する装置)において実行される。上記に限定されず、係るルール照合プロセスは、複数の装置を用いた分散処理により実行されてもよい。この場合、ルール照合プロセスを実行する複数の装置は、サービスバスシステム100の外部に配置されてもよい。
 また、上記第1の実施形態においては、具体例として、データ発生源(例えば、データ発生源A(120A))からサービス(例えば、サービスA(160A))へ送信される一方向のデータが例示されている。上記に限定されず、上記各実施形態及び変形例は、データ受信部及びデータ送信部を、それぞれデータ送受信部として構成することにより、双方向のデータを処理する場合にも適用可能である。
 <第2の実施形態>
 次に、本発明の第2の実施形態に係るデータ処理システムについて説明する。本実施形態におけるデータ処理システムは、例えば、上記各実施形態及びその変形例における、CEPシステム110に相当する。
 本実施形態におけるデータ処理システムは、上記各実施形態と同様、1台のハードウェア装置を用いたデータ処理装置として構成されてもよく、複数台のハードウェア装置を用いたシステムとして構成されてもよい。なお、係るハードウェア装置は、物理的な装置であってもよく、周知の仮想化基盤を用いて実現される仮想的な装置であってもよい。
 次に、本実施形態におけるデータ処理システムの構成について図11を参照して説明する。図11は、本発明の第2の実施形態に係るデータ処理システム1100の機能的な構成を例示するブロック図である。
 図11に例示するように、本実施形態におけるデータ処理システム1100は、受信部1101と、並列実行部1102と、割当て部1103とを備える。データ処理システム1100を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されている。以下、それぞれの構成要素について説明する。
 受信部1101(受信手段)は、データの発生源(不図示)から通信ネットワークを介してデータを受信する。係るデータの発生源は、例えば、各種情報処理端末やセンサ等であってもよい。また、係るデータは、当該データの発生源において発生した各種事象を表すイベントとして通知されてもよい。なお、係る受信部1101は、例えば、上記各実施形態におけるデータ受信部(例えば、データ受信部A(130A))と同様としてもよい。また、係る通信ネットワークを用いて、上記各実施形態において説明したサービスバスシステム100により、サービスバスが提供されてもよい。
 並列実行部1102(並列実行手段)は、受信部1101において受信したデータに関して、ルール(特には、後述するルールを構成する条件)に満たす否かを判定する判定処理を並列に実行する。係るルールは、例えば、受信したデータに関する条件を表す情報と、当該条件が成立した場合に当該データに関して実行される処理を表す情報とにより構成される。なお、係る並列実行部1102は、例えば、上記各実施形態におけるルール照合部114と同様としてもよい。また、並列実行部1102において並列に実行される判定処理は、例えば、上記各実施形態において複数のルール照合プロセスが並列に実行するルール照合処理と同様としてもよい。
 割当て部1103(割当て手段)は、上記受信部1101において受信した1以上のデータを、それぞれのデータの通信経路に応じて、上記並列実行部1102において実行される判定処理に並列に割当てる(設定する)。なお、係る割当て部1103は、例えば、上記各実施形態における割当て部113と同様としてもよい。
 上記のように構成されたデータ処理システム1100は、受信したデータがルール(特にはルールを構成する条件)を満たすか否かを判定する処理を並列に実行可能である。これより、データ処理システム1100は、係る判定処理を高速化可能である。また、データ処理システム1100においては、並列に実行される判定処理に対して、当該判定処理に用いられるデータが適切に割当てられる。なぜならば、データ処理システムは、受信したデータの通信経路に基づいて、それぞれの判定処理において一括して処理されるべきデータを、それぞれの判定処理に対して割当てることが可能だからである。
 以上より、本実施形態におけるデータ処理システム1100によれば、通信ネットワークを介して受信したデータに関する情報(例えば、当該データの通信経路に関する情報)に基づいて、当該通信データを適切な単位で並列に処理可能である。
 <ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
 以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
 以下の説明において、上記各実施形態において説明したCEPシステム(あるいはデータ処理システム)(110、1100)をまとめて、単に「データ処理システム」と称する。またデータ処理システムの各構成要素を、単に「データ処理システムの構成要素」と称する。
 上記各実施形態において説明したデータ処理システムは、1つ又は複数の専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。
 例えば、データ処理システムをハードウェアにより実現する場合、データ処理システムの構成要素は、それぞれの機能を提供可能な集積回路をSoC(System on a Chip)等により実装されてもよい。この場合、例えば、データ処理システムの構成要素が保持するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
 また、この場合、データ処理システムの各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。データ処理システムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
 また、上述したデータ処理システムは、図12に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、データ処理システムは、適切な数のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。
 図12における演算装置1201は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置1201は、例えば後述する不揮発性記憶装置1203に記憶された各種ソフトウェア・プログラムを記憶装置1202に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるデータ処理システムの構成要素は、演算装置1201により実行されるソフトウェア・プログラムとして実現可能である。
 記憶装置1202は、演算装置1201から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置1202は、揮発性のメモリ装置であってもよい。
 不揮発性記憶装置1203は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置1203は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
 ネットワークインタフェース1206は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。
 ドライブ装置1204は、例えば、後述する記録媒体1205に対するデータの読み込みや書き込みを処理する装置である。
 記録媒体1205は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な各種記録媒体である。
 入出力インタフェース1207は、外部装置との間の入出力を制御する装置である。
 上述した各実施形態を例に説明した本発明におけるデータ処理システムは、例えば、図12に例示するハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、係る装置に対して供給したソフトウェア・プログラムを、演算装置1201が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
 なお、この場合、ルール照合部114において実行されるルール照合プロセスは、演算装置1201により並列に処理可能なプロセス、スレッド、タスク等のソフトウェア・プログラムとして実現可能である。
 上述した各実施形態において、上記各図(例えば、図1、図2、及び図11)に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
 例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置1203に記憶されてもよい。そして、演算装置1201が、それぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置1202に読み出してもよい。
 また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。
 更に、上記各ソフトウェア・プログラムは記録媒体1205に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置1204を通じて不揮発性記憶装置1203に格納されるよう構成されてもよい。
 なお、上記の場合において、上記データ処理システムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
 そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
 また、上述したデータ処理システム、あるいは、当データ処理システムの構成要素は、図12に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図12に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図12に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
 以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2015年2月6日に出願された日本出願特願2015-021862を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 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 入出力インタフェース

Claims (10)

  1.  データの発生源から通信ネットワークを介して1以上のデータセットを受信する受信手段と、
     前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報とを含む1以上のルールについて、前記受信手段により受信した前記データセットが前記条件を満たすか否かを判定する判定処理を並列に実行可能な並列実行手段と、
     前記受信手段により受信した1以上の前記データセットを、それぞれの前記データセットの通信経路に応じて、前記判定処理に並列に割当てる割当て手段と、を備える、データ処理システム。
  2.  前記条件を表す情報には、当該条件を満たすか否かを判定する際に用いられる前記データセットに関する通信経路を表す情報が含まれ、
     前記割当て手段は、1以上の前記ルールごとに、当該ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とを比較した結果に基づいて、前記受信手段において受信された前記データセットが割当てられる前記判定処理を決定する
    請求項1に記載のデータ処理システム。
  3.  前記割当て手段は、
      前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路と、前記受信手段において受信された前記データセットが流れる通信経路とが等しい場合か、又は、
      前記比較の結果、特定の前記ルールを構成する前記条件を表す情報に含まれる前記通信経路を表す情報により表される通信経路に、前記受信手段において受信された前記データセットが流れる通信経路が含まれる場合に、
      前記受信手段において受信された前記データセットを、当該特定の前記ルールに関する前記判定処理に割当てる
    請求項2に記載のデータ処理システム。
  4.  前記通信ネットワークを用いてメッセージの送受信が可能なサービスバスが形成され、
     前記サービスバスを介してメッセージ送信先にメッセージを送信する1以上の送信手段を更に備え、
     前記受信手段は、前記サービスバスを介して、前記データの発生源であるメッセージ送信元から前記データセットを含むメッセージを受信し、
     前記送信手段は、前記ルールに基づいて前記データセットに対して実行された前記処理に応じたメッセージを、前記メッセージ送信先に送信し、
     前記割当て手段は、
      前記通信経路を表す情報に含まれる、前記受信手段を表す情報と、前記送信手段を表す情報とに基づいて前記データセットの通信経路を特定するか、または、
      前記通信経路を表す情報に含まれる、前記メッセージ送信元を表す情報と、前記メッセージ送信先を表す情報とに基づいて前記データセットの通信経路を特定する請求項3に記載のデータ処理システム。
  5.  前記並列実行手段は、少なくとも1以上の前記ルールに関する前記判定処理を実行可能な照合処理実行手段を1以上含むと共に、当該照合処理実行手段を並列に実行し、
     前記割当て手段は、前記メッセージに含まれる前記データセットを、前記メッセージに基づいて特定したそれぞれの前記データセットの通信経路に応じて、前記照合処理実行手段に並列に割当てる請求項4に記載のデータ処理システム。
  6.  前記受信手段は、前記メッセージ送信元から受信したメッセージを、少なくとも当該メッセージに含まれるデータセットの通信経路を特定可能な情報を含む共通の形式に変換し、
     前記送信手段は、前記メッセージ送信先に送信するメッセージを、前記共通の形式から、それぞれの前記メッセージの送信先に応じた固有の形式に変換するとともに、当該変換したメッセージをそれぞれの前記メッセージの送信先に送信する請求項5に記載のデータ処理システム。
  7.  前記割当て手段は、複数の前記ルールに関する前記判定処理において共通に用いられる前記データセットである第1のデータセットを、当該複数の前記ルールに関する判定処理をそれぞれ実行する前記照合処理実行手段に重複して割当てる請求項5又は請求項6に記載のデータ処理システム。
  8.  前記割当て手段は、複数の前記ルールの中の個別の前記ルールに関する前記判定処理にのみ用いられる前記データセットである第2のデータセットを、当該個別の前記ルールに関する判定処理を実行する前記照合処理実行手段にのみ割当て、
     前記照合処理実行手段は、前記第1のデータセットを用いる前記ルールと、前記第2のデータセットを用いる前記ルールと、を少なくとも含む複数の前記ルールに関する前記判定処理を実行する
    請求項7に記載のデータ処理システム。
  9.  情報処理装置が、
      データの発生源から通信ネットワークを介して1以上のデータセットを受信し、
      前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む1以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する
    データ処理方法。
  10.  データの発生源から通信ネットワークを介して1以上のデータセットを受信する処理と、
     前記データセットに関する条件を表す情報と、当該条件が成立した場合に当該データセットに関して実行される処理を表す情報を含む1以上のルールについて、前記データセットが前記条件に合致するか否かを判定する判定処理を、当該受信した前記データセットの通信経路に応じて並列に実行する処理と、をコンピュータに実行させる
    コンピュータ・プログラムが記録されたコンピュータ読み取り可能な記録媒体。
PCT/JP2016/000591 2015-02-06 2016-02-05 データ処理システム、データ処理方法及び記録媒体 WO2016125499A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016573230A JP6717208B2 (ja) 2015-02-06 2016-02-05 データ処理システム、データ処理方法及びコンピュータ・プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015021862 2015-02-06
JP2015-021862 2015-02-06

Publications (1)

Publication Number Publication Date
WO2016125499A1 true WO2016125499A1 (ja) 2016-08-11

Family

ID=56563851

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/000591 WO2016125499A1 (ja) 2015-02-06 2016-02-05 データ処理システム、データ処理方法及び記録媒体

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046552A (ja) * 2001-07-30 2003-02-14 Fujitsu Ltd データ処理プログラム及びデータ処理装置
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム
US20130151458A1 (en) * 2008-05-15 2013-06-13 Exegy Incorporated Method and Apparatus for Accelerated Data Quality Checking
WO2014034060A1 (ja) * 2012-08-30 2014-03-06 日本電気株式会社 イベント処理制御装置、ノード装置、イベント処理システム、及び、イベント処理制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003046552A (ja) * 2001-07-30 2003-02-14 Fujitsu Ltd データ処理プログラム及びデータ処理装置
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム
US20130151458A1 (en) * 2008-05-15 2013-06-13 Exegy Incorporated Method and Apparatus for Accelerated Data Quality Checking
WO2014034060A1 (ja) * 2012-08-30 2014-03-06 日本電気株式会社 イベント処理制御装置、ノード装置、イベント処理システム、及び、イベント処理制御方法

Also Published As

Publication number Publication date
JP6717208B2 (ja) 2020-07-01
JPWO2016125499A1 (ja) 2017-12-07

Similar Documents

Publication Publication Date Title
US20190377604A1 (en) Scalable function as a service platform
US20170195458A1 (en) Middleware abstraction layer (mal)
US20160203024A1 (en) Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform
US20220188170A1 (en) Multi-Tenant Control Plane Management on Computing Platform
JP2008510259A (ja) モジュラー型のイベントドリブン処理
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
US9860192B2 (en) Distributed computing architecture
US11861406B2 (en) Dynamic microservices allocation mechanism
US9104486B2 (en) Apparatuses, systems, and methods for distributed workload serialization
US10554782B2 (en) Agile hostpool allocator
CN107479984B (zh) 基于消息的分布式空间数据处理系统
US8027817B2 (en) Simulation management within a grid infrastructure
EP3274859B1 (en) Cluster computing service assurance apparatus and method
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
JP2017037492A (ja) 分散処理プログラム、分散処理方法および分散処理装置
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN114189525A (zh) 服务请求方法、装置和电子设备
US11201824B2 (en) Method, electronic device and computer program product of load balancing for resource usage management
EP3458956B1 (en) Peer-to-peer distributed computing system for heterogeneous device types
CN111831402B (zh) 用于管理软件功能的方法、设备和计算机程序产品
WO2016125499A1 (ja) データ処理システム、データ処理方法及び記録媒体
US9628401B2 (en) Software product instance placement
US10171570B2 (en) Information processing apparatus
US20220114023A1 (en) Infrastructure as code deployment mechanism
WO2020164731A1 (en) A system for embedding stream processing execution in a database

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16746330

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016573230

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16746330

Country of ref document: EP

Kind code of ref document: A1