WO2014034037A1 - ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム - Google Patents

ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム Download PDF

Info

Publication number
WO2014034037A1
WO2014034037A1 PCT/JP2013/004852 JP2013004852W WO2014034037A1 WO 2014034037 A1 WO2014034037 A1 WO 2014034037A1 JP 2013004852 W JP2013004852 W JP 2013004852W WO 2014034037 A1 WO2014034037 A1 WO 2014034037A1
Authority
WO
WIPO (PCT)
Prior art keywords
rule
processing
event
attribute
distribution
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.)
Ceased
Application number
PCT/JP2013/004852
Other languages
English (en)
French (fr)
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
Priority to JP2014532763A priority Critical patent/JPWO2014034037A1/ja
Publication of WO2014034037A1 publication Critical patent/WO2014034037A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Definitions

  • the present invention relates to a rule distribution device, an event processing system, a rule distribution method, and a rule distribution program that process a large number of events in real time.
  • An event processing system that processes events transmitted from multiple devices (terminals) such as sensors in real time.
  • a plurality of processing servers in the system execute event processing requested by an application provided in the server or the like by complex event processing (Complex Event Processing (CEP)).
  • CEP Complex Event Processing
  • a rule (hereinafter referred to as a CEP rule or a processing rule) that defines event processing required by the event processing and an event condition for executing the event processing is registered in each processing server, and each processing server performs processing in parallel according to the processing rule. Execute, which enables real-time processing of large numbers of events.
  • An event is data sensed by a terminal and includes one or more attributes.
  • the attribute is composed of an attribute name representing the type of data and an attribute value representing the data value.
  • an event including two attributes “user ID” and “area ID” can be expressed as follows.
  • Patent Document 1 There is a system described in Patent Document 1 as a system for distributing the processing load of each processing server.
  • the system described in Patent Document 1 is configured so that, when a new processing rule is received from an application, an event necessary for executing the processing rule set by each processing server is appropriately distributed. Control to determine the distribution destination.
  • processing rules are arranged in each processing server so that event multicast does not occur, that is, a plurality of processing servers do not require the same event. Thereby, each processing server performs different event processing, and load distribution of the processing servers can be realized.
  • FIG. 26 is an explanatory diagram showing a state of rule arrangement in the system described in Patent Document 1.
  • the system described in Patent Literature 1 performs rule distribution based on the value of a specific attribute (hereinafter referred to as a key attribute) designated in advance.
  • FIG. 26 shows a rule arrangement when Rule 1 to Rule 3 are registered from the application. The configurations of Rules 1 to 3 are shown below.
  • Rule 1 and Rule 2 include an event whose attribute value of the key attribute “user ID” is “2” in the event condition. Therefore, in the system described in Patent Document 1, Rule 1 and Rule 2 are arranged in the same server (processing server 900-1). By assigning rules having high relevance to the same server as much as possible, for example, multicast of Event (2, B) can be avoided.
  • a processing server on which a processing rule is arranged is determined based only on the value of the key attribute. Further, the system described in Patent Document 1 distributes rules based on only one key attribute even if the event includes a plurality of attributes. Therefore, when a processing rule that does not limit the value of the key attribute is registered from the application, multicast may occur. For example, when a processing rule in which “*” is set as an attribute value of a key attribute is registered from an application, there is a possibility that event multicasting occurs. Similarly, when a rule that specifies a large amount of attribute values of key attributes is registered from an application, multicast may occur in the same manner.
  • FIG. 27 is an explanatory diagram showing a state of rule arrangement when the system described in Patent Document 1 receives a rule that does not limit the value of a key attribute.
  • FIG. 27 shows a rule arrangement when Rule 4 and Rule 5 are newly registered from the application. The configurations of Rule 4 and Rule 5 are shown below.
  • Rule 4 When the rule arrangement is in the state shown in FIG. 26, a processing rule (Rule 4) whose key attribute value is “*” and a processing rule (Rule 5) in which a large number of key attribute values are specified are registered from the application.
  • Rule 4 and Rule 5 are arranged as shown in FIG. 27, for example.
  • Event (1, A) is multicast to the three processing servers 900-1, 900-2, and 900-n.
  • the present invention provides a rule distribution device, an event processing system, a rule distribution method, and a rule distribution program capable of processing a large number of events in real time while reducing the load on the network and the processing server. Objective.
  • the rule distribution device includes a rule receiving unit that inputs a processing rule that defines an event process requested by an application and an event condition for executing the event process, and an attribute included in the event condition of the processing rule.
  • a key attribute determination unit that determines a key attribute
  • a rule distribution destination calculation unit that arranges a processing rule in a processing device selected from the processing devices associated with the key attribute, and an event generated by the device as a processing target
  • a distribution rule generation unit that generates an event distribution rule for distributing the event to a processing apparatus in which the processing rule is arranged, and that arranges the event distribution rule in an event distribution apparatus installed between the device and the processing apparatus; It is provided with.
  • An event processing system includes a processing device that executes event processing according to a processing rule, a rule distribution device that arranges the processing rule in the processing device, and an event distribution device that distributes an event generated by the device to the processing device,
  • the rule distribution device includes a rule receiving unit that inputs a processing rule that defines an event process requested by an application and an event condition for executing the event process, and a key attribute among attributes included in the event condition of the processing rule.
  • a key attribute determining unit to be determined a rule distribution destination calculating unit for arranging a processing rule in a processing device selected from the processing devices associated with the key attribute, and a processing rule for processing an event generated by the device Event distribution rule to distribute the event to the processing device where Generates Le, characterized in that a sorting rule generation unit to arrange the event distributor.
  • the rule distribution method inputs a processing rule that defines an event process requested by an application and an event condition for executing the event process, and determines a key attribute from the attributes included in the event condition of the processing rule.
  • the processing rule is arranged in the processing device selected from the processing devices associated with the key attribute, and the event is distributed to the processing device in which the processing rule for processing the event generated by the device is arranged.
  • the event distribution rule is generated, and the event distribution rule is arranged in an event distribution apparatus installed between the device and the processing apparatus.
  • a rule distribution program includes a process for inputting a process rule that defines an event process requested by an application and an event condition for executing the event process to a computer, and an attribute included in the event condition of the process rule.
  • Embodiment 1 FIG. A first embodiment of the present invention will be described below with reference to the drawings.
  • FIG. 1 is a block diagram showing an example of the configuration of an event processing system including a rule distribution device according to the present invention.
  • the event processing system shown in FIG. 1 includes a rule distribution device 100, processing servers 200-1 to 200-n, and dispatchers 300-1 to 300-n.
  • the rule distribution device 100 and each processing server are communicably connected to applications 400-1 to 400-n provided in the server or the like.
  • event distribution devices (hereinafter referred to as dispatchers) 300-1 to 300-n are communicably connected to devices 500-1 to 500-n.
  • the rule distribution device 100 places the processing rules received from the applications 400-1 to 400-n in each processing server.
  • the rule distribution apparatus 100 registers an event distribution rule for distributing an event received from the devices 500-1 to 500-n to each processing server in each dispatcher.
  • the processing servers 200-1 to 200-n execute event processing based on the event received from each dispatcher and the processing rule registered by the rule distribution device 100.
  • Processing servers 200-1 to 200-n are classified for each key attribute. That is, a processing server is assigned to each key attribute. Each processing server has a processing rule corresponding to the key attribute.
  • the processing servers 200-1 to 200-m shown in FIG. 1 are assigned to the key attribute “user ID”. Accordingly, the processing rules corresponding to the key attribute “user ID” are arranged in the processing servers 200-1 to 200-m.
  • the processing servers 200- (m + 1) to 200-n are assigned to the key attribute “area ID”. However, 1 ⁇ m ⁇ n.
  • key attributes are not limited to “user ID” and “area ID”, and other attributes may be used as key attributes. There may be any number of key attributes.
  • the assignment of the processing server to the key attribute may be set in advance by the user or the like by predicting the load of the processing server or the like. Further, the assignment of processing servers to key attributes may be dynamically changed by communication from an external personal computer (personal computer) or the like.
  • the dispatchers 300-1 to 300-n distribute the events received from the devices 500-1 to 500-n to each processing server according to the dispatcher rules.
  • the devices 500-1 to 500-n are sensors, for example.
  • the devices 500-1 to 500-n transmit the sensed data as events.
  • FIG. 2 is a block diagram showing a configuration of the first embodiment of the rule distribution apparatus.
  • the rule distribution device 100 shown in FIG. 2 includes a rule reception unit 110, a server allocation unit 120, a rule distribution destination calculation unit 130, a key attribute determination unit 140, and a distribution rule generation unit 150.
  • the rule receiving unit 110 receives processing rules from the applications 400-1 to 400-n.
  • the server allocation unit 120 holds information indicating the correspondence between the key attribute and the processing server corresponding to the key attribute for each key attribute.
  • the rule distribution destination calculation unit 130 determines to which processing server the processing rule is arranged based on the allocation result by the server allocation unit 120 and the key attribute determined by the key attribute determination unit 140. That is, the distribution destination of the processing rule is determined.
  • the key attribute determination unit 140 calculates which attribute is the key attribute among the attributes included in the event of the event condition of the processing rule when the processing rule is registered from the application.
  • the distribution rule generation unit 150 generates an event distribution rule for distributing the event to each processing server, and transmits (registers) the generated event distribution rule to the dispatchers 300-1 to 300-n.
  • the rule receiving unit 110, the server allocation unit 120, the rule distribution destination calculation unit 130, the key attribute determination unit 140, and the distribution rule generation unit 150 are realized by a CPU or the like provided in the rule distribution device 100.
  • the CPU reads a rule distribution program stored in a computer-readable recording medium, and the CPU follows the rule distribution program according to the rule distribution program, the rule reception unit 110, the server allocation unit 120, the rule distribution destination calculation unit 130, the key attribute determination Unit 140 and distribution rule generation unit 150 may operate.
  • FIG. 3 is a sequence diagram showing the operation of the first embodiment of the event processing system.
  • the rule distribution apparatus 100 calculates a processing rule distribution destination (step S301).
  • the processing server 200-2 is calculated as the processing rule distribution destination.
  • the rule distribution apparatus 100 transmits the new processing rule to the processing rule distribution destination (processing server 200-2) calculated in step S302 (step S303).
  • the processing server 200-2 registers the received processing rule. That is, the processing server 200-2 stores the processing rule in a storage unit (not shown) provided in the processing server 200-2.
  • Rule distribution device 100 generates an event distribution rule (step S304).
  • the rule distribution device 100 transmits an event distribution rule to each dispatcher (step S305).
  • Each dispatcher registers the received event distribution rule. That is, each dispatcher stores an event distribution rule in a storage unit (not shown) or the like provided in its own device.
  • FIG. 4 is a sequence diagram showing the operation of the rule distribution device 100 according to the first embodiment.
  • the key attribute determining unit 140 determines a key attribute of the new processing rule (step S401).
  • the key attribute determination unit 140 transmits information indicating the determined key attribute (hereinafter simply referred to as key attribute) (step S403).
  • the rule distribution destination calculation unit 130 requests a server ID (step S404). Specifically, the key attribute received from the key attribute determination unit 140 is transmitted to the server allocation unit 120. The server assignment unit 120 returns the server ID of the processing server assigned to the key attribute to the rule distribution destination calculation unit 130. For example, if the received key attribute is “user ID”, the server ID corresponding to the processing server 200 (200-1 to 200-m) assigned to the key attribute “user ID” is returned.
  • the rule distribution destination calculation unit 130 calculates a processing rule distribution destination from among the processing servers corresponding to the received server ID (step S405).
  • the rule distribution destination calculation unit 130 arranges processing rules at the calculated distribution destination (step S406).
  • the rule distribution destination calculation unit 130 requests the distribution rule generation unit 150 to generate and place a distribution rule (step S407).
  • the distribution rule generation unit 150 generates an event distribution rule (step S408).
  • the distribution rule generation unit 150 places an event distribution rule on each dispatcher (step S409).
  • step S402 the processing of the key attribute determination unit 120 in step S402 will be described with reference to FIG.
  • FIG. 5 is a flowchart showing a process in which the key attribute determination unit 120 determines the key attribute.
  • the key attributes of the three processing rules (Rule11, Rule12, and Rule13) received by the rule receiving unit 110 are determined is taken as an example. It is assumed that the event condition of each processing rule includes an event including attributes “user ID” and “area ID”. The configurations of Rule 11, Rule 12, and Rule 13 are shown below.
  • the key attribute determination unit 120 calculates the union of each attribute included in the event of the event condition of the processing rule (step S502).
  • the union of attributes is a set of attribute values specified for the attribute. For example, in the case of Rule 11 (Event (10, *) & Event (11, *)), the union of the attribute “user ID” is ⁇ 10, 11 ⁇ . The union of the attribute “area ID” is ⁇ A, B,.
  • the key attribute determination unit 120 selects an attribute having the smallest union size (hereinafter referred to as the number of attribute values) as a key attribute for each processing rule (step S503).
  • the key attribute determination unit 120 selects “user ID” as the key attribute of Rule 11.
  • the size of the union ⁇ 12, 13 ⁇ of the attribute “user ID” is 2.
  • the size of the union ⁇ A ⁇ of the attribute “area ID” is 1. Therefore, the key attribute determination unit 120 selects “area ID” as the key attribute of Rule 12.
  • the key attribute determination unit 120 selects “area ID” as the key attribute of Rule 13.
  • Rules 1 to 5 In the case of Rules 1 to 5 shown in FIG. 27, “User ID” is selected as the key attribute of Rules 1 to 3, and “Area ID” is selected as the key attribute of Rules 4 and 5.
  • the distribution destinations of Rules 1 to 3 are calculated from the processing servers assigned to the “user ID”.
  • the distribution destinations of Rules 4 and 5 are calculated from the processing servers assigned to the “area ID”.
  • FIG. 6 is an explanatory diagram showing a rule arrangement when the event processing system receives a processing rule that does not limit the value of the key attribute.
  • Event (1, A) is multicast to the two processing servers 900-1 and 900-n. That is, Event (1, A) is not transmitted to the processing server 900-2. Therefore, the processing server 900-2 does not need to process Event (1, A). That is, it is possible to reduce one processing server that multicasts Event (1, A).
  • the key attribute of the new processing rule is determined, and the new processing rule is registered in the processing server assigned to the determined key attribute.
  • the processing load on the dispatcher and the processing server for example, the CPU load due to event processing and communication processing can be reduced, and the network load can be reduced.
  • each dispatcher may generate the event distribution rule.
  • each dispatcher may acquire an event condition of the processing rule from the rule distribution device 100.
  • each dispatcher should just produce
  • the server assignment unit 120 assigns the processing servers 200-1 to 200-n to each key attribute.
  • the server assignment unit 120 assigns the processing servers 200-1 to 200-n to the virtual processing servers operating on the processing servers. May be. According to such a form, it is possible to avoid a load from being concentrated on a specific processing server. For example, when the occurrence of events is not uniform, that is, when the occurrence of specific events increases, the load may be concentrated on a specific processing server. In such a case, the rule distribution destination calculation unit 130 moves the virtual processing server to another processing server, so that the load concentrated on the specific processing server can be distributed and load balancing becomes possible. .
  • the rule distribution destination calculating unit 130 calculates the union of the key attribute values of all the registered processing rules for each processing server.
  • FIG. 7 is a flowchart showing a process in which the rule distribution device 100 according to the second embodiment determines a key attribute.
  • the distribution destination of the processing rule (Rule 15) received by the rule receiving unit 110 is calculated.
  • four processing servers 200-1 to 200-4 are connected to the rule distribution apparatus 100.
  • Rule 11 is registered in the processing server 200-1
  • Rule 14 is registered in the processing server 200-2
  • Rule 12 is registered in the processing server 200-3
  • Rule 13 is registered in the processing server 200-4.
  • the processing servers 200-1 and 200-2 are assigned to the key attribute “user ID”.
  • the processing servers 200-3 and 200-4 are assigned to the key attribute “area ID”.
  • the configurations of Rule 14 and Rule 15 are shown below.
  • the rule distribution destination calculation unit 130 calculates the union of the key attribute values of all the registered processing rules for each processing server (step S701). S702).
  • the union of the values of the key attributes of the processing rules in the processing server 200-1, the processing server 200-2, the processing server 200-3, and the processing server 200-4 are ⁇ 10, 11 ⁇ , ⁇ 12, 13 ⁇ , ⁇ A ⁇ , ⁇ B, C ⁇ .
  • the rule distribution destination calculation unit 130 calculates rule distribution destination candidates for each key attribute. That is, the rule distribution destination calculation unit 130 calculates the distribution destination of Rule 15 from among the processing servers 200-1 and 200-2 assigned to the “user ID”. Also, the distribution destination of Rule 15 is calculated from the processing servers 200-3 and 200-4 assigned to the “area ID” (step S703). Here, it is assumed that the processing servers 200-1 and 200-4 are calculated as candidates for the distribution destination of the Rule 15.
  • the rule distribution destination calculation unit 130 calculates the union of the key attribute values of all the processing rules for the processing servers 200-1 and 200-4 when the Rule 15 is arranged (step S704).
  • the key attribute determination unit 120 compares the sum of the key attribute values calculated in step S702 with the sum of the key attribute values calculated in step S704 for the processing servers 200-1 and 200-4, and calculates the sum.
  • the key attribute assigned to the processing server with the smaller increase in the number of elements in the set is selected (step S705). In this case, the number of elements in the union of key attribute values of the processing rules in the processing server 200-1 is increased by 1 from 2 to 3. Further, in the union of the values of the key attributes of the processing rules in the processing server 200-4, the number of elements remains 2, and the increase number is 0. Therefore, the key attribute determination unit 120 selects the key attribute “area ID” for Rule 15.
  • processing servers that are distribution destination candidates are determined from the processing server group classified for each key attribute. Then, for each processing server that is a candidate for the distribution destination determined for each processing server group, the union of the key attribute values of all the registered processing rules is calculated. The processing server with the smallest number is selected as the distribution destination. Thereby, a processing server that requires less event multicast can be selected as a distribution destination.
  • the key attribute may not be correctly selected by the key attribute determination method of the first embodiment.
  • the key attribute of the newly registered processing rule is selected so that the number of multicasts is reduced. Can do. Thereby, the load on the network can be further reduced.
  • FIG. 8 is a block diagram showing a configuration of the rule distribution device according to the third embodiment.
  • the rule distribution apparatus 600 shown in FIG. 1 The rule distribution apparatus 600 shown in FIG.
  • the rule rearrangement unit 160 holds processing rules registered from the applications 400-1 to 400-n. For example, the rule rearrangement unit 160 rearranges the processing rules that have already been registered periodically or intermittently at a predetermined timing (hereinafter, referred to as rule rearrangement timing).
  • rule rearrangement unit 160 is realized by a CPU or the like provided in the rule distribution device 600.
  • the CPU may operate as the rule rearrangement unit 160 according to the rule distribution program.
  • rule distribution device 600 Other configurations of the rule distribution device 600 are the same as those of the rule distribution device 100 according to the first embodiment, and a description thereof will be omitted.
  • FIG. 9 is a flowchart showing processing rule rearrangement processing by the rule rearrangement unit 160.
  • the rule rearrangement unit 160 determines whether it is the rule rearrangement timing (step S901). For example, the rule rearrangement unit 160 determines that it is the rule rearrangement timing when the number of processing rules to be held exceeds a predetermined threshold.
  • the rule rearrangement unit 160 obtains the union of the values of the respective attributes of the processing rules already registered in the rule distribution device 600 (hereinafter referred to as processing rule group) (Ste S902).
  • processing rule group the processing rules already registered in the rule distribution device 600
  • Rule 11, Rule 12, and Rule 13 have already been registered.
  • the rule rearrangement unit 160 obtains the number of attribute values of each attribute for each processing rule, and calculates the minimum value of the number of attribute values (step S903). That is, the rule rearrangement unit 160 obtains the number of attribute values of the key attribute for each processing rule.
  • the rule rearrangement unit 160 rearranges the processing rules for each key attribute (step S904). That is, rearrangement is performed for Rule 11 whose key attribute is “user ID”. Further, rearrangement is performed for Rule 12 and Rule 13 whose key attribute is “area ID”.
  • the processing rules are rearranged in descending order of the number of key attribute values.
  • the number of attribute values of the key attribute of Rule 12 and Rule 13 is 1 and 2, respectively. Therefore, they are rearranged in the order of Rule 13 and Rule 12. Since the processing rule whose key attribute is “user ID” is only Rule 11, no sorting is performed.
  • the rule rearrangement unit 160 transmits the processing rules to the key attribute determination unit 140 in the rearranged order. Since the subsequent processing of the rule distribution device 600 is the same as the processing of steps S402 to S407 of the rule distribution device 100 of the first embodiment, description thereof will be omitted.
  • rule distribution is re-executed in accordance with the rule rearrangement timing.
  • event multicasting can be reduced.
  • Rule 21, Rule 22, Rule 23, Rule 24, and Rule 25 having the key attribute “user ID” are registered in order, and Rule 21, Rule 23, and Rule 25 are arranged in the processing server 200-1, and Rule 22 and Rule 24 are arranged in the processing server 200-2. .
  • the configurations of Rule 21, Rule 22, Rule 23, Rule 24, and Rule 25 are shown below.
  • the union of the key attribute values of all the processing rules arranged in the processing server 200-1 is ⁇ 9, 10, 11 ⁇ .
  • the union of the key attribute values of all the processing rules arranged in the processing server 200-2 is ⁇ 11, 12 ⁇ . Therefore, when an event including the attribute “user ID” having the attribute value “11” occurs, the event is multicast to the processing server 200-1 and the processing server 200-2.
  • rule distribution is re-executed.
  • the number of attribute values of the key attribute of Rule 25 is 2, and the number of attribute values of the key attribute of other rules is 1. Therefore, the rules are rearranged by the rule rearrangement unit 160 in the order of Rule 25, Rule 21, Rule 22, Rule 23, and Rule 24.
  • Rule 22, Rule 23, and Rule 25 are relocated to the processing server 200-1
  • Rule 21 and Rule 24 are relocated to the processing server 200-2.
  • the union of the key attribute values of all the processing rules arranged in the processing server 200-1 is ⁇ 10, 11 ⁇ .
  • the union of the key attribute values of all the processing rules arranged in the processing server 200-2 is ⁇ 9, 12 ⁇ . Therefore, multicasting of an event including the attribute “user ID” having the attribute value “11” can be avoided.
  • the rule rearrangement unit rearranges the processing rules already registered in the rule distribution device in descending order of the attribute value number of the key attribute, and executes the rule rearrangement. .
  • event multicasting can be reduced. Therefore, according to this embodiment, the load on the network can be further reduced.
  • FIG. 10 is a block diagram showing a configuration of the rule distribution device according to the fourth embodiment.
  • the rule distribution device 700 shown in FIG. 10 includes an attribute value handling server resolution unit 170 and a candidate key attribute set holding unit 180 in addition to the configuration of the rule distribution device 100 of the first embodiment.
  • the attribute value server resolution unit 170 determines a processing server to which a processing rule is distributed based on the attribute value of the attribute included in the event of the event condition of the processing rule (hereinafter referred to as attribute value server resolution). ).
  • the attribute value responsible server resolution unit 170 holds attribute value responsible server information indicating the correspondence between the attribute value of each attribute and the processing server responsible for the attribute value (hereinafter referred to as the attribute value responsible server).
  • FIG. 11 is an explanatory diagram showing an example of attribute value server information.
  • the candidate key attribute set holding unit 180 holds information indicating a list of candidate key attributes.
  • Candidate key attributes are attributes that are candidates for key attributes.
  • the candidate key attribute is an attribute that is a processing target of attribute value handling server resolution.
  • the candidate key attribute is designated in advance by the user. Note that the candidate key attribute set holding unit 180 acquires operation data from a base station or the like installed between the processing server and the device, and determines the candidate key attribute based on the acquired operation data. Good.
  • the attribute value server resolution unit 170 is realized by a CPU or the like included in the rule distribution device 600.
  • the CPU may operate as the attribute value server resolution unit 170 according to the rule distribution program.
  • the candidate key attribute set holding unit 180 is realized by a storage device such as a memory provided in the rule distribution device 600.
  • rule distribution device 700 Other configurations of the rule distribution device 700 are the same as those of the rule distribution device 100 according to the first embodiment, and a description thereof will be omitted.
  • the key attribute determination unit 140 determines whether each attribute included in the new processing rule corresponds to a candidate key attribute.
  • the key attribute determination unit 140 inputs the candidate key attribute to the attribute value responsible server resolution unit 170 and the attribute value responsible server resolution unit 170 resolves the attribute value responsible server. Request.
  • FIG. 12 is a flowchart showing the operation of the key attribute determination unit 140 in the fourth embodiment.
  • step S1201 When the new processing rule is input from the rule receiving unit 110 (step S1201), the key attribute determining unit 140 performs the processing of steps S1203 and S1204 for each attribute included in the new processing rule (step S1202).
  • step S1202 it is assumed that the following Rule 31 is input as a new processing rule.
  • step S1203 the key attribute determination unit 140 acquires information indicating a list of candidate key attributes from the candidate key attribute set holding unit 180, and checks whether each attribute included in the new processing rule is a candidate key attribute. To do. Here, it is assumed that the attributes “UserID” and “AreaID” are candidate key attributes.
  • step S1204 the key attribute determination unit 140 inputs the candidate key attribute and a set or range of attribute values corresponding to the attribute value server resolution unit 170 to the attribute value server resolution unit 170, and resolves the attribute value server resolution to the attribute value server resolution unit 170.
  • the key attribute determination unit 140 acquires a set of server IDs (hereinafter referred to as a server ID set) from the attribute value responsible server resolution unit 170.
  • the attribute value server resolution unit 170 outputs the server ID set to the key attribute determination unit 140 based on the attribute value server information shown in FIG.
  • the attribute values of the attribute “UserID” of Rule 31 are “User1” and “User2”. Accordingly, the key attribute determination unit 140 inputs the attribute value set ⁇ User1, User2 ⁇ to the attribute value server resolution unit 170. Then, the key attribute determination unit 140 acquires the server ID set ⁇ Server1, Server2 ⁇ from the attribute value server resolution unit 170.
  • the attribute values of the attribute “AreaID” are “AreaA” and “AreaB”. Accordingly, the key attribute determination unit 140 inputs the attribute value set ⁇ AreaA, AreaB ⁇ to the attribute value server resolution unit 170. Then, the key attribute determination unit 140 acquires the server ID set ⁇ Server1 ⁇ from the attribute value responsible server resolution unit 170.
  • the key attribute determination unit 140 After executing the processing of steps S1203 and S1204 for all the attributes, the key attribute determination unit 140 sets the attribute of the server ID set having the smallest size among the server ID sets acquired in step S1204 as the key attribute (step S1205). ).
  • the size of the server ID set ⁇ Server1, Server2 ⁇ of the attribute “UserID” is 2.
  • the size of the server ID set ⁇ Server1 ⁇ of the attribute “AreaID” is 1. Therefore, the key attribute determination unit 140 sets the attribute “AreaID” having a small server ID set size as the key attribute of the new processing rule.
  • the rule distribution destination calculation unit 130 selects “Server1” from the server ID set ⁇ Server1 ⁇ of the key attribute “AreaID”, and places a processing rule on the server (step S1206).
  • step S1205 for example, if the size of the server ID set of the attribute “AreaID” is 2, the key attribute cannot be determined.
  • the rule distribution destination calculation unit 130 calculates a distribution destination from among the processing servers included in the server ID set for each attribute. Specifically, the rule distribution destination calculation unit 130, for each attribute, for each processing server included in the server ID set, for each processing server registered in the processing server before and after the placement of Rule 31, Calculate the union of attribute values. Then, the rule distribution destination calculation unit 130 calculates the processing server having the smallest increase in the calculated union element as the distribution destination of the attribute.
  • the key attribute determination unit 140 determines the attribute having the smallest increase in the number of elements of the union set at the distribution destination as the key attribute from among the attributes.
  • step S1206 when there are a plurality of server IDs for the key attribute, the rule distribution destination calculation unit 130 selects a distribution destination from among the processing servers corresponding to each server ID. For example, when a new processing rule is arranged in each processing server, a processing server that requires less multicast of events after the arrangement is selected as a distribution destination. Note that the processing rule distribution destination may be calculated by the processing in step S405 of the first embodiment.
  • a server ID set corresponding to each candidate key attribute is acquired, and the attribute of the server ID set having the smallest size among the acquired server ID sets is set as a key attribute. Therefore, for example, when processing servers and dispatchers are distributed in each region, the event ID can be transferred to processing servers in other regions by using the attribute of the smallest server ID set as a key attribute. Can be minimized. Therefore, it is possible to reduce the load on the dispatcher and the network.
  • step S1205 if the size of the server ID set with the attribute “UserID” and the size of the server ID set with the attribute “AreaID” are the same in step S1205, the key attribute cannot be determined. In this case, since the processing rule distribution destination cannot be calculated, the server allocation unit 120 is used to execute the processing of steps S401 to S405 of the first embodiment to determine the processing rule distribution destination. May be.
  • the rule distribution device may include the candidate key attribute set holding unit 180.
  • the rule distribution device 100 according to the first embodiment determines a key attribute from candidate key attributes acquired from the candidate key attribute set holding unit 180.
  • the key attribute determination unit 140 in the rule distribution device 100 corresponds to the candidate key attribute among the attributes included in the event of the event condition of the processing rule when the processing rule is registered from the application. It is only necessary to perform key attribute calculation processing for the attribute to be processed. Therefore, the processing load of the rule distribution device 100 can be further reduced.
  • FIG. 13 is a block diagram showing the configuration of the fifth embodiment of the rule distribution apparatus.
  • the rule distribution device 800 shown in FIG. 13 includes a rule division unit 190 in addition to the configuration of the rule distribution device 700 of the fourth embodiment.
  • the rule dividing unit 190 divides the processing rule received by the rule receiving unit 110.
  • Rule 41 shown below is a rule in which matching is established when two persons who transmit events a and b are within 100 m.
  • the candidate key attributes are “user ID” and “area ID”
  • the value for each candidate key attribute cannot be limited. Therefore, any user ID and area ID event may be transmitted to the processing server in which the Rule 41 is arranged. Therefore, the rule dividing unit 190 divides the processing rule based on the candidate key attribute.
  • the server allocation unit 120, the rule distribution destination calculation unit 130, the key attribute determination unit 140, the distribution rule generation unit 150, the attribute value responsible server resolution unit 170, and the candidate key attribute set holding unit 180 are processed by the rule division unit 190. On the other hand, the same processing as that for the normal processing rule is performed.
  • the rule division unit 190 is realized by a CPU or the like provided in the rule distribution device 800.
  • the CPU may operate as the rule dividing unit 190 according to the rule distribution program.
  • FIG. 14 is a flowchart showing rule division processing based on the area ID.
  • Rule 42 a case where the processing rule (Rule 42) received by the rule receiving unit 110 is divided is taken as an example.
  • the configuration of Rule 42 is shown below.
  • Rule 42 is a rule that matches when a user who transmits an event a whose user ID is “user1” and a user who transmits an event b whose user ID is “user2” are within 100 m (meters). It is.
  • the rule dividing unit 190 calculates a condition indicating the relationship between the two events a and b.
  • a condition indicating the distance D (a, b) between the events a and b is calculated (step S1401).
  • the rule dividing unit 190 divides an area where a user who transmits an event a whose user ID is “user1” and an area where a user who transmits an event b whose user ID is “user2” is present into a plurality of meshes.
  • FIG. 15 is an explanatory diagram illustrating an example of an area divided into a plurality of meshes.
  • the rule division unit 190 divides a plurality of squares each having a side of 300 m.
  • the area is divided into nine meshes.
  • the numbers in each square shown in FIG. 15 represent the mesh No.
  • the mesh is not limited to a square, and the area may be divided in other forms.
  • FIG. 16 is an explanatory diagram showing a list of mesh combinations that satisfy the distance condition. Here, 49 combinations of meshes are calculated.
  • the rule division unit 190 divides the Rule 42 by the area ID based on the list shown in FIG. 16, and generates new processing rules (Rule 42-1 to Rule 42-49) (Step S1403). Specifically, the rule division unit 190 generates attribute values (mesh1 to mesh9) corresponding to the mesh, and generates event conditions based on the generated attribute values. Here, an event condition indicating which mesh the user transmitting the events a and b is in is generated. The event condition is generated for each mesh combination that satisfies the distance condition. The rule division unit 190 adds the generated event condition to each Rule 42 to generate new processing rules Rule 42-1 to Rule 42-49.
  • Rule 42-1 (Event () as a & Event () as b where In (a. Coord, mesh 1) & In (b. Coord, mesh 1) & Distance (a. Coord, b. Coord) ⁇ 100m)
  • Rule 42-2 (Event () as a & Event () as b where In (a. Coord, mesh 1) & In (b. Coord, mesh 2) & Distance (a. Coord, b. Coord) ⁇ 100m)
  • Rule 42-3 (Event () as a & Event () as b where In (a. Coord, mesh 1) & In (b. Coord, mesh 4) & Distance (a. Coord, b.
  • In (a.Coord, mesh1) & In (b.Coord, mesh1) indicates that the user (user1) who transmits the event a is in mesh1 and the user who transmits the event b (user2) is mesh2. This is an event condition for determining whether or not.
  • the distance condition can be expressed by the absolute positions of the users by dividing the area where the users are present into a plurality of meshes.
  • the value for the attribute “area ID” can be limited.
  • the process shown in FIG. 14 is based on the assumption that the number of events is two. However, even when the number of events is two or more, rule division can be performed in the same manner.
  • FIG. 17 is a flowchart showing rule division processing based on the area ID for a processing rule having three events.
  • Rule 43 a case where the processing rule (Rule 43) received by the rule receiving unit 110 is divided is taken as an example.
  • the configuration of Rule 43 is shown below.
  • Rule 43 the user who transmits the event a whose user ID is “user1” and the user who transmits the event b whose user ID is “user2” are within 100 m, and the user ID is “user2”. It is a rule that matches when a user who transmits event b and a user who transmits event c whose user ID is “user3” are within 150 m (meters).
  • the rule dividing unit 190 calculates the distance conditions for the three events a, b, and c (steps S1701 and S1702).
  • the rule division unit 190 divides the area where each user is present into nine meshes, as in the case where the number of events is two.
  • the rule division unit 190 displays a list of mesh combinations that satisfy the distance condition for each distance D (a, b), D (b, c), and D (a, c), as in the case of two events. Generate (step S1703).
  • step S1703 the rule dividing unit 190 combines mesh combinations corresponding to the distance conditions (step S1704).
  • FIG. 18 is an explanatory diagram showing a result of combining a list of mesh combinations corresponding to each distance condition.
  • the rule division unit 190 divides the Rule 43 by the area ID based on the result shown in FIG. 18, and generates a new processing rule (Rule 43-1 ⁇ ) (Step S1705).
  • the processing rule is divided by dividing the area where each user is present, but rule division may be performed based on other attributes.
  • the distance condition is used as a condition indicating the relationship between events, other conditions indicating the relationship may be used.
  • Rule 44 a case where the processing rule (Rule 44) received by the rule receiving unit 110 is divided based on the attribute “user ID” is taken as an example.
  • the configuration of Rule 44 is shown below.
  • Rule 44 is a rule that matches when a certain user is in “mesh1” and then the user is in “mesh2”.
  • the rule division unit 190 calculates a combination of users who transmit events for the event group specified by Rule 44, that is, events a and b. In this case, since there is no target to be combined, the processing shown in step S1704 is not executed.
  • FIG. 19 is an explanatory diagram showing a list of combinations of users corresponding to events a and b.
  • the rule dividing unit 190 divides the Rule 44 by the user ID based on the list shown in FIG. 19, and generates new processing rules (Rule 44-1 to Rule 44-5). Specifically, the rule dividing unit 190 generates attribute values (user1 to user5) corresponding to five users who transmit the events a and b, and generates event conditions based on the generated attribute values. . The rule division unit 190 adds the generated event conditions to the Rule 44, and generates new processing rules Rule 44-1 to Rule 44-5.
  • the rule dividing unit 190 determines which candidate key attribute is to be divided from the candidate key attribute set before dividing the processing rule received by the rule receiving unit 110.
  • the rule division unit 190 executes rule division based on the division target key attribute.
  • FIG. 20 is a flowchart showing a process of determining the division target key attribute based on the number of values for the candidate key attribute.
  • the rule division unit 190 selects one candidate key attribute from the candidate key attribute set.
  • the rule dividing unit 190 divides the processing rule based on the candidate key attribute
  • the rule dividing unit 190 calculates the number of values for the candidate key attribute for the divided processing rule (step S2001).
  • the rule dividing unit 190 executes step S2001 for all candidate key attributes in the candidate key attribute set.
  • the rule division unit 190 determines a candidate key attribute having the smallest number of values calculated in step S2001 from among the candidate key attribute set as a division target key attribute (step S2002).
  • Rule 45 is a rule that matches when a certain user has not advanced 100 meters within 10 minutes.
  • Rule 45-1 is an example when Rule 45 is divided by user ID.
  • the value for the attribute “user ID” in Rule 45-1 is only “user1”. Therefore, when the processing rule is divided based on the candidate key attribute “user ID”, the number of values for the candidate key attribute is 1.
  • Rule 45-2 is an example when Rule 45 is divided by area ID.
  • Event () as a
  • Event () as b
  • a. ID ⁇ b. ID & Distance (a. Coord, b. Coord) ⁇ 100m & In (a. Coord, mesh1) & In (b. Coord, mesh2)
  • Values for the attribute “area ID” in Rule 45-2 are “mesh1” and “mesh2”. Therefore, when the processing rule is divided based on the candidate key attribute “area ID”, the number of values for the candidate key attribute is two.
  • the rule division unit 190 determines the candidate key attribute “user ID” having a small number of values as the division target key attribute.
  • FIG. 21 is a flowchart showing a process for determining a split target key attribute based on the number of rules.
  • the rule dividing unit 190 selects one candidate key attribute from the candidate key attribute set, and calculates the number of divided rules when the processing rule is divided based on the candidate key attribute (step S2101).
  • the rule dividing unit 190 executes step S2101 for all candidate key attributes in the candidate key attribute set.
  • the rule division unit 190 determines a candidate key attribute having the smallest number of rules calculated in step S2101 as a division target key attribute from the candidate key attribute set (step S2102).
  • steps S2101 to S2102 when the processing rule (Rule 46) is input to the rule receiving unit 110 will be described. It is assumed that the candidate key attribute set includes two candidate key attributes of “user ID” and “area ID”. The configuration of Rule 46 is shown below.
  • Rule 46 is a rule in which matching is established when a user who transmits event a and another user who transmits event b are within 100 m.
  • the rule division unit 190 determines a candidate key attribute “user ID” that reduces the number of rules after division as a division target key attribute.
  • the rule division unit performs any of the processing rules that cannot limit the value for each candidate key attribute.
  • the processing rule is divided based on the candidate key attribute.
  • a processing rule is generated so that the value for the candidate key attribute is small.
  • the rule distribution device distributes the processing rules divided by the rule dividing unit to a plurality of servers.
  • the rule distribution device can distribute the rules so that the events generated from the devices are distributed to a plurality of servers even if the processing rules cannot limit the values for the candidate key attributes.
  • the rule distribution in the fourth embodiment can be more efficiently executed by combining the present embodiment with the fourth embodiment.
  • the rule distribution device 800 including the rule dividing unit 190 is taken as an example.
  • the rule distribution device 800 is the same as that of the other embodiments. You may have the structure of a rule distribution apparatus. That is, this embodiment may be combined with other embodiments.
  • FIG. 22 is a block diagram showing the minimum configuration of the rule distribution device according to the present invention.
  • FIG. 23 is a block diagram showing another minimum configuration of the rule distribution device according to the present invention.
  • FIG. 24 is a block diagram showing another minimum configuration of the rule distribution device according to the present invention.
  • FIG. 25 is a block diagram showing the minimum configuration of the event processing system according to the present invention.
  • the rule distribution device (corresponding to the rule distribution device 100 shown in FIG. 1 or FIG. 2) is a processing rule that defines an event process requested by an application and an event condition for executing the event process.
  • a key attribute determination unit 14 (which corresponds to the rule reception unit 110 in the rule distribution device 100 shown in FIG. 2) and a key attribute determination unit 14 that determines a key attribute from attributes included in the event condition of the processing rule ( 2), and a rule distribution destination calculation unit 13 (see FIG. 2) that arranges a processing rule in a processing device selected from the processing devices associated with the key attribute. 2 corresponds to the rule distribution destination calculation unit 130 in the rule distribution apparatus 100 shown in FIG.
  • a distribution rule generation unit 15 generates an event distribution rule for distributing the event to a processing apparatus in which the processing rule is arranged, and arranges the event distribution rule in an event distribution apparatus installed between the device and the processing apparatus (Corresponding to the distribution rule generation unit 150 in the rule distribution device 100 shown in FIG. 2).
  • the occurrence of event multicast can be reduced. Accordingly, the processing load on the dispatcher and the processing server can be reduced, and the network load can be reduced.
  • the key attribute determination unit 14 calculates, for an event included in the event condition of the processing rule, a union of attribute values of each attribute included in the event, and selects an attribute having a small union size as a key of the processing rule Rule distribution device as an attribute.
  • Such a configuration can further reduce the occurrence of event multicast.
  • the rule distribution destination calculation unit 13 calculates, for each event attribute included in the event condition of the processing rule, a distribution destination of the processing rule when the attribute is used as a key attribute, and before the processing rule is arranged
  • the key attribute determination unit 14 calculates the smallest increase in the number of elements in the attribute value union based on the calculation result.
  • a rule distribution device that identifies an attribute and uses the identified attribute as a key attribute of the processing rule.
  • a rule rearrangement unit 16 that retains input processing rules and executes rearrangement of the retained processing rules (corresponding to the rule rearrangement unit 160 in the rule distribution device 600 shown in FIG. 8)
  • the rule rearrangement unit 16 obtains a union of attribute values of key attributes for each processing rule to be held, rearranges the processing rules in descending order of the size of the union, and the rule distribution destination calculation unit 13
  • a rule distribution device that arranges processing rules in each processing device based on the order in which the rule rearrangement unit 16 rearranges.
  • the processing rules arranged in each processing apparatus can be rearranged so that event multicasting is reduced.
  • the attribute value handling server resolution unit 17 that holds attribute value handling server information in which attribute values are associated with processing devices that process events including the attribute values (rules shown in FIG. 10).
  • the key attribute determination unit 14 designates each attribute of the event included in the event condition of the processing rule input by the rule reception unit 11 as the attribute.
  • a rule distribution device that acquires a server ID set indicating a list of processing devices associated with the attribute values that are assigned from the attribute value server resolution unit 17 and determines key attributes based on the acquired server ID sets.
  • the rule distribution destination calculation unit 13 sets the attribute value specified in the attribute for each event attribute included in the event condition of the processing rule input by the rule reception unit 11. For each associated processing device, the union of attribute values of the attribute is calculated for all the processing rules of the processing device before and after the processing rule is arranged, and the calculated number of elements of the union is the smallest A rule distribution device that selects a processing device as a distribution destination of the attribute, and the key attribute determination unit 14 determines an attribute having the smallest increase in the number of elements of the union at the distribution destination as a key attribute from among the attributes.
  • the key attribute can be determined even when the size of the server ID set of each attribute of the event included in the event condition of the new processing rule is 2 or more. Therefore, for example, even when a large number of processing servers and dispatchers are distributed in each region, the transfer of events to processing servers in other regions can be minimized.
  • a rule dividing unit 19 (see FIG. 13) generates a plurality of event conditions based on the generated attribute values, adds each of the plurality of event conditions to the processing rule, and divides the plurality of event conditions into a plurality of new processing rules. (Corresponding to the rule division unit 190 in the rule distribution apparatus 800 shown).
  • the rule can be distributed so that events generated from the device are distributed to a plurality of servers.
  • the rule dividing unit 19 has an attribute having the smallest number of attribute values for the attribute after the division or a new one after the division.
  • a rule distribution device that selects an attribute with the smallest number of processing rules generated as a division target attribute.
  • a candidate key attribute with a smaller number of values after division or a candidate key attribute with a smaller number of rules after division can be selected as a division target attribute. Therefore, since the number of rules is not increased more than necessary, the load on the dispatcher and the processing server is not increased more than necessary.
  • the key attribute determination unit 14 determines whether or not the attribute is a candidate key attribute for each event attribute included in the event condition of the processing rule input by the rule reception unit 11.
  • a rule distribution device that determines a key attribute from attributes determined to be present.
  • the key attribute determination unit in the rule distribution device is an attribute corresponding to the candidate key attribute among the attributes included in the event of the event condition of the processing rule.
  • the key attribute calculation process may be performed on the. Therefore, the processing load of the rule distribution device can be further reduced.
  • an event processing system as shown in FIG. 25 is also disclosed.
  • the processing devices 20-1 to 20-n (corresponding to the processing servers 200-1 to 200-n shown in FIG. 1) that execute event processing according to the processing rules and the processing devices 20-1 to 20-n
  • a rule distribution apparatus 10 (corresponding to the rule distribution apparatus 100 shown in FIG. 1) that arranges processing rules, and event distribution apparatuses 30-1 to 30- that distribute events generated by the devices to the processing apparatuses 20-1 to 20-n.
  • n (corresponding to dispatchers 300-1 to 300-n shown in FIG. 1), and the rule distribution device 10 defines a processing rule that defines event processing requested by an application and event conditions for executing the event processing.
  • the event distribution is distributed to the rule distribution destination calculation unit 13 that arranges the processing rule in the processing device selected from the attached processing devices, and the processing device in which the processing rule for processing the event generated by the device is arranged.
  • An event processing system comprising: a distribution rule generation unit 15 that generates an event distribution rule for distribution to event distribution devices 30-1 to 30-n.
  • the occurrence of event multicast can be reduced. Accordingly, the processing load on the dispatcher and the processing server can be reduced, and the network load can be reduced. Therefore, the processing load of the entire system can be reduced.
  • Processing devices 20-1 to 20-n that execute event processing according to processing rules
  • rule distribution device 10 that arranges processing rules in the processing devices 20-1 to 20-n
  • events generated by devices Event distribution devices 30-1 to 30-n that distribute to the processing devices 20-1 to 20-n.
  • the rule distribution device 10 defines event processing required by the application and event conditions for executing the event processing.
  • a rule receiving unit 11 for inputting a processed rule
  • a key attribute determining unit 14 for determining a key attribute from attributes included in an event condition of the processing rule
  • a processing device associated with the key attribute
  • the rule distribution destination calculation unit 13 that arranges the processing rule in the processing device that has been processed, and the processing rule that processes the event generated by the device are arranged Event processing system characterized by comprising a processing unit to generate an event distribution rule for distributing the event, and a sorting rule generating unit 15 to place the event distributor 30-1 ⁇ 30-n.
  • the key attribute determination part 14 calculates the union of the attribute value of each attribute included in the event for the event included in the event condition of the processing rule, and sets the attribute having the smallest union size as the processing rule.
  • Such a configuration can further reduce the occurrence of event multicast.
  • the rule distribution destination calculation part 13 calculates the distribution destination of the said process rule when the said attribute is made into a key attribute for every attribute of the event contained in the event condition of a process rule, and arrangement
  • the union of attribute values of the attribute is calculated for all processing rules of the distribution destination before and after placement, and the key attribute determination unit 14 has the largest increase in the number of elements in the union of attribute values based on the calculation result.
  • the event processing system according to supplementary note 1 or supplementary note 2, wherein a small attribute is identified and the identified attribute is a key attribute of the processing rule.
  • the rule distribution apparatus 10 is provided with the rule rearrangement part 16 which hold
  • the union of the attribute values of the key attributes is obtained, and the processing rules are rearranged in descending order of the size of the union, and the rule distribution destination calculation unit 13 sets the processing rules according to the order in which the rule rearrangement unit 16 rearranges each rule.
  • the event processing system according to any one of supplementary notes 1 to 3, which is arranged in the processing device.
  • the processing rules arranged in each processing apparatus can be rearranged so that event multicasting is reduced.
  • the rule distribution apparatus 10 is provided with the attribute value charge server resolution part 17 which hold
  • the unit 14 sets a server ID set indicating a list of processing devices associated with the attribute value specified in the attribute.
  • the event processing system according to any one of Supplementary Note 1 to Supplementary Note 4, which is acquired from the value handling server resolution unit 17 and determines a key attribute based on the acquired server ID set.
  • the rule distribution destination calculation part 13 is the attribute value designated by the said attribute for every attribute of the event included in the event condition of the processing rule which the rule reception part 11 input based on the server ID set. For each processing device associated with, the union of attribute values of the attribute is calculated for all the processing rules of the processing device before and after the processing rule is arranged, and the calculated number of elements of the union is the largest. The small processing device is selected as a distribution destination of the attribute, and the key attribute determination unit 14 determines, from the attributes, an attribute having the smallest increase in the number of elements of the union at the distribution destination as a key attribute. Event processing system.
  • the key attribute can be determined even when the size of the server ID set of each attribute of the event included in the event condition of the new processing rule is 2 or more. Therefore, for example, even when a large number of processing servers and dispatchers are distributed in each region, the transfer of events to processing servers in other regions can be minimized.
  • any attribute is set as the division target attribute, and the division target attribute
  • a rule that generates an attribute value for limiting the number of events, generates multiple event conditions based on the generated attribute value, and adds each of the multiple event conditions to a processing rule to divide it into a plurality of new processing rules The event processing system according to any one of supplementary notes 1 to 6, comprising a dividing unit 19.
  • the rule can be distributed so that events generated from the device are distributed to a plurality of servers.
  • the rule dividing unit 19 has an attribute having the smallest number of attribute values for the attribute after the division, or after the division.
  • a candidate key attribute with a smaller number of values after division or a candidate key attribute with a smaller number of rules after division can be selected as a division target attribute. Therefore, since the number of rules is not increased more than necessary, the load on the dispatcher and the processing server is not increased more than necessary.
  • the key attribute determination part 14 determines whether the said attribute is a candidate key attribute for every attribute of the event included in the event condition of the processing rule which the rule receiving part 11 input, and candidate key attribute
  • the event processing system according to any one of supplementary notes 1 to 8, wherein a key attribute is determined from the attributes determined to be.
  • the key attribute determination unit in the rule distribution device is an attribute corresponding to the candidate key attribute among the attributes included in the event of the event condition of the processing rule.
  • the key attribute calculation process may be performed on the. Therefore, the processing load of the rule distribution device can be further reduced.

Landscapes

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

Description

ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム
 本発明は、大量のイベントをリアルタイムに処理するルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラムに関する。
 センサ等の複数のデバイス(端末)から送信されるイベントをリアルタイムに処理するイベント処理システムがある。イベント処理システムでは、システム内の複数の処理サーバが、複合イベント処理(Complex Event Processing(CEP)により、サーバ等に具備されたアプリケーションから要求されたイベント処理を実行する。具体的には、各アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定したルール(以下、CEPルールまたは処理ルールという。)が各処理サーバに登録され、各処理サーバが処理ルールに従って並列に処理を実行する。それにより、大量イベントのリアルタイム処理が可能になる。
 イベントは、端末がセンシングしたデータであって、1つ以上の属性を含む。属性とは、データの種類を表す属性名と、データの値を表す属性値とから構成される。例えば、2つの属性「ユーザID」、「エリアID」を含むイベントは、次のように表すことができる。
EVENT(1,*)
 “1”は、属性「ユーザID」に対する属性値である。“*”は、属性「エリアID」に対する属性値である。なお、“*”は、任意の値を示す。
 端末の数が増大した場合、各端末から発生するイベントの量は膨大になる。このように、端末から大量のイベントが発せられると、端末と処理サーバとの間で頻繁に通信が行われる。それにより、処理サーバやネットワークの負荷が増大し、処理サーバやネットワークがイベント処理のボトルネックとなる場合がある。そのような場合、アプリケーションは、サービス品質を維持することができない。従って、イベント処理システムにおいては、処理ルールを細粒度化して、端末が発する時系列データ(イベント)の負荷増減に対応して、サーバ間で動的かつ高速にイベント処理を分散等することが必要とされる。
 各処理サーバの処理負荷を分散させるシステムとして、特許文献1に記載されたシステムがある。特許文献1に記載されたシステムは、アプリケーションから新しく処理ルールを受信した際に、それぞれの処理サーバが設定された処理ルールを実行するために必要なイベントが適切に分配されるように、処理ルールの分配先を決める制御をする。具体的には、イベントのマルチキャストが発生しないように、つまり、複数の処理サーバが同じイベントを必要とすることがないように、各処理サーバに処理ルールを配置する。それにより、それぞれの処理サーバが異なったイベント処理を行い、処理サーバの負荷分散を実現することができる。
 図26は、特許文献1に記載されたシステムにおけるルール配置の様子を示す説明図である。特許文献1に記載されたシステムは、予め指定された特定の属性(以下、キー属性という。)の値をもとにルール分配を行う。図26は、アプリケーションからRule1~Rule3が登録されたときのルール配置を示す。Rule1~Rule3の構成を以下に示す。
Rule1(Event(1,*)&Event(2,*),action-x)
Rule2(Event(2,*)&Event(3,*),action-y)
Rule3(Event(4,*)&Event(5,*),action-z)
 Rule1,Rule2はともに、キー属性「ユーザID」の属性値が“2”であるイベントをイベント条件に含む。従って、特許文献1に記載されたシステムは、Rule1,Rule2を、同一のサーバ(処理サーバ900-1)に配置する。このように関連性が高いルールを極力同一サーバ上に割り当てることにより、例えば、Event(2,B)のマルチキャストを回避することができる。
特許第4161998号
 しかし、特許文献1に記載されたシステムでは、キー属性の値のみを元に、処理ルールを配置する処理サーバを決定する。また、特許文献1に記載されたシステムは、イベントが複数の属性を含む場合であっても、1つのキー属性のみにもとづいてルール分配を行う。従って、キー属性の値を限定しない処理ルールがアプリケーションから登録された場合、マルチキャストが発生する可能性がある。例えば、キー属性の属性値に“*”が設定された処理ルールがアプリケーションから登録された場合、イベントのマルチキャストが発生する可能性がある。また、キー属性の属性値が大量に指定されるルールがアプリケーションから登録された場合、同様に、マルチキャストが発生する可能性がある。
 図27は、特許文献1に記載されたシステムがキー属性の値を限定しないルールを受信したときのルール配置の様子を示す説明図である。図27は、アプリケーションからRule4、Rule5が新たに登録されたときのルール配置を示す。Rule4、Rule5の構成を以下に示す。
Rule4(Event(*,A)&Event(*,B),action-a)
Rule5(Event(1,A)&Event(2,A)&Event(3,A)&Event(4,A)&Event(5,A),action-b)
 ルール配置が図26に示す状態であるときに、キー属性の値が“*”である処理ルール(Rule4)と、キー属性値が大量に指定される処理ルール(Rule5)とがアプリケーションから登録された場合、Rule4、Rule5は、例えば、図27に示すように配置される。この場合、例えばEvent(1,A)は、処理サーバ900-1、900-2、900-nの3つの処理サーバに対してマルチキャストされる。
 従って、特許文献1に記載されたシステムでは、キー属性の値を限定しない処理ルールがアプリケーションから登録された場合、イベントのマルチキャストが発生し、ネットワークの負荷が増大する可能性がある。また、イベントのマルチキャストが発生することによりイベントの増加に対してスケールアウトすることができず、処理サーバの負荷が増大する可能性がある。
 そこで、本発明は、ネットワークの負荷および処理サーバの負荷を低減しつつ、大量のイベントをリアルタイムに処理することができるルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラムを提供することを目的とする。
 本発明によるルール分配装置は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置するルール分配先算出部と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する振り分けルール生成部とを備えたことを特徴とする。
 本発明によるイベント処理システムは、処理ルールに従ってイベント処理を実行する処理装置と、処理装置に処理ルールを配置するルール分配装置と、デバイスが発したイベントを処理装置に振り分けるイベント振り分け装置とを備え、ルール分配装置は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置するルール分配先算出部と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、イベント振り分け装置に配置する振り分けルール生成部とを備えたことを特徴とする。
 本発明によるルール分配方法は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力し、処理ルールのイベント条件に含まれる属性の中からキー属性を決定し、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置し、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置することを特徴とする。
 本発明によるルール分配プログラムは、コンピュータに、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力する処理と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定する処理と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置する処理と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する処理とを実行させることを特徴とする。
 本発明によれば、ネットワークの負荷および処理サーバの負荷を低減しつつ、大量のイベントをリアルタイムに処理することができる。
本発明によるルール分配装置を含むイベント処理システムの構成の一例を示すブロック図である。 ルール分配装置の第1の実施形態の構成を示すブロック図である。 イベント処理システムの第1の実施形態の動作を示すシーケンス図である。 ルール分配装置の第1の実施形態の動作を示すシーケンス図である。 キー属性決定部がキー属性を決定する処理を示すフローチャートである。 イベント処理システムがキー属性の値を限定しない処理ルールを受信したときのルール配置の様子を示す説明図である。 第2の実施形態におけるルール分配装置がキー属性を決定する処理を示すフローチャートである。 ルール分配装置の第3の実施形態における構成を示すブロック図である。 ルール並び替え部による処理ルールの並び替え処理を示すフローチャートである。 ルール分配装置の第4の実施形態の構成を示すブロック図である。 属性値担当サーバ情報の一例を示す説明図である。 第4の実施形態におけるキー属性決定部の動作を示すフローチャートである。 ルール分配装置の第5の実施形態の構成を示すブロック図である。 エリアIDにもとづくルール分割処理を示すフローチャートである。 複数のメッシュに分割されたエリアの一例を示す説明図である。 距離条件を満たすメッシュの組み合わせの一覧を示す説明図である。 イベント数が3つである処理ルールに対するエリアIDにもとづくルール分割処理を示すフローチャートである。 各距離条件に対応するメッシュの組み合わせの一覧を結合した結果を示す説明図である。 イベントa、bに対応するユーザの組み合わせの一覧を示す説明図である。 候補キー属性に対する値の数をもとに分割対象キー属性を決定する処理を示すフローチャートである。 ルール数をもとに分割対象キー属性を決定する処理を示すフローチャートである。 本発明によるルール分配装置の最小構成を示すブロック図である。 本発明によるルール分配装置の他の最小構成を示すブロック図である。 本発明によるルール分配装置の他の最小構成を示すブロック図である。 本発明によるイベント処理システムの最小構成を示すブロック図である。 特許文献1に記載されたシステムにおけるルール配置の様子を示す説明図である。 特許文献1に記載されたシステムがキー属性の値を限定しないルールを受信したときのルール配置の様子を示す説明図である。
実施形態1.
 以下、本発明の第1の実施形態を図面を参照して説明する。
 図1は、本発明によるルール分配装置を含むイベント処理システムの構成の一例を示すブロック図である。
 図1に示すイベント処理システムは、ルール分配装置100と、処理サーバ200-1~200-nと、ディスパッチャ300-1~300-nとを備える。また、ルール分配装置100および各処理サーバは、サーバ等に具備されたアプリケーション400-1~400-nと通信可能に接続されている。また、イベント振り分け装置(以下、ディスパッチャという。)300-1~300-nは、デバイス500-1~500-nと通信可能に接続されている。
 ルール分配装置100は、アプリケーション400-1~400-nから受信した処理ルールを各処理サーバに配置する。
 ルール分配装置100は、デバイス500-1~500-nから受信したイベントを各処理サーバに分配するためのイベント振り分けルールを、各ディスパッチャに登録する。
 処理サーバ200-1~200-nは、各ディスパッチャから受信したイベントと、ルール分配装置100が登録した処理ルールとをもとに、イベント処理を実行する。
 処理サーバ200-1~200-nは、キー属性ごとに分類される。つまり、各キー属性に対して処理サーバが割り当てられる。各処理サーバには、キー属性に対応する処理ルールが配置される。図1に示す処理サーバ200-1~200-mは、キー属性「ユーザID」に割り当てられている。従って、処理サーバ200-1~200-mには、キー属性「ユーザID」に対応する処理ルールが配置される。処理サーバ200-(m+1)~200-nは、キー属性「エリアID」に割り当てられている。ただし、1<m<nである。
 なお、キー属性「ユーザID」、「エリアID」に限られず、その他の属性をキー属性としてもよい。また、キー属性は、いくつあってもよい。
 また、キー属性に対する処理サーバの割り当ては、ユーザ等が処理サーバ等の負荷を予測して予め設定してもよい。また、キー属性に対する処理サーバの割り当ては、外部のパソコン(パーソナルコンピュータ)等から通信により動的に変更できるようにしてもよい。
 ディスパッチャ300-1~300-nは、デバイス500-1~500-nから受信したイベントを、ディスパッチャルールに従って、各処理サーバに振り分ける。
 デバイス500-1~500-nは、例えば、センサである。デバイス500-1~500-nは、センシングしたデータをイベントとして送信する。
 図2は、ルール分配装置の第1の実施形態の構成を示すブロック図である。
 図2に示すルール分配装置100は、ルール受信部110と、サーバ割り当て部120と、ルール分配先算出部130と、キー属性決定部140と、振り分けルール生成部150とを備える。
 ルール受信部110は、アプリケーション400-1~400-nから処理ルールを受信する。
 サーバ割り当て部120は、キー属性ごとに、キー属性とキー属性に対応する処理サーバとの対応を示す情報を保持する。
 ルール分配先算出部130は、サーバ割り当て部120による割り当て結果と、キー属性決定部140が決定したキー属性とをもとに、どの処理サーバに処理ルールを配置するかを決定する。つまり、処理ルールの分配先を決定する。
 キー属性決定部140は、アプリケーションから処理ルールが登録されたときに、処理ルールのイベント条件のイベントに含まれる属性のうち、どの属性をキー属性とするかを算出する。
 振り分けルール生成部150は、イベントを各処理サーバに振り分けるためのイベント振り分けルールを生成し、生成したイベント振り分けルールをディスパッチャ300-1~300-nに送信(登録)する。
 なお、ルール受信部110、サーバ割り当て部120、ルール分配先算出部130、キー属性決定部140および振り分けルール生成部150は、ルール分配装置100が備えるCPU等によって実現される。例えば、コンピュータ読み取り可能な記録媒体に記憶されたルール分配プログラムを、CPUが読み込み、CPUが、そのルール分配プログラムに従って、ルール受信部110、サーバ割り当て部120、ルール分配先算出部130、キー属性決定部140および振り分けルール生成部150として動作してもよい。
 次に、本実施形態の動作を説明する。
 図3は、イベント処理システムの第1の実施形態の動作を示すシーケンス図である。
 ルール分配装置100は、新規処理ルールが登録されると、つまり、アプリケーション400(400-1~400-n)から新規に処理ルールを受信すると(ステップS301)、処理ルール分配先を算出する(ステップS302)。ここでは、処理ルール分配先として処理サーバ200-2が算出されたとする。
 ルール分配装置100は、ステップS302で算出した処理ルール分配先(処理サーバ200-2)に、新規処理ルールを送信する(ステップS303)。
 処理サーバ200-2は、受信した処理ルールを登録する。つまり、処理サーバ200-2は、処理サーバ200-2が備える記憶部(図示せず)等に処理ルールを格納する。
 ルール分配装置100は、イベント振り分けルールを生成する(ステップS304)。
 ルール分配装置100は、各ディスパッチャにイベント振り分けルールを送信する(ステップS305)。
 各ディスパッチャは、受信したイベント振り分けルールを登録する。つまり、各ディスパッチャは、自装置が備える記憶部(図示せず)等にイベント振り分けルールを格納する。
 ここで、ルール分配装置100の動作の詳細を説明する。
 図4は、ルール分配装置100の第1の実施形態の動作を示すシーケンス図である。
 キー属性決定部140は、ルール受信部110を介してアプリケーション400(400-1~400-n)から新規処理ルールが登録されると(ステップS401)、新規処理ルールのキー属性を決定する(ステップS402)。
 キー属性決定部140は、決定したキー属性を示す情報(以下、単にキー属性という。)を送信する(ステップS403)。
 ルール分配先算出部130は、サーバIDを要求する(ステップS404)。具体的には、キー属性決定部140から受信したキー属性を、サーバ割り当て部120に送信する。サーバ割り当て部120は、当該キー属性に割り当てられた処理サーバのサーバIDをルール分配先算出部130に返す。例えば、受信したキー属性が「ユーザID」である場合には、キー属性「ユーザID」に割り当てられている処理サーバ200(200-1~200-m)に対応するサーバIDを返す。
 ルール分配先算出部130は、受信したサーバIDに対応する処理サーバの中から、処理ルールの分配先を算出する(ステップS405)。
 ルール分配先算出部130は、算出した分配先に処理ルールを配置する(ステップS406)。
 ステップS406の処理が実行された後、ルール分配先算出部130は、振り分けルール生成部150に振り分けルールの生成および配置を依頼する(ステップS407)。振り分けルール生成部150は、イベント振り分けルールを生成する(ステップS408)。振り分けルール生成部150は、イベント振り分けルールを各ディスパッチャに配置する(ステップS409)。
 なお、ステップS405、S408の処理については、既知の手法を用いる。例えば、特許文献1に記載されている手法を用いる。
 ここで、図5を参照して、ステップS402におけるキー属性決定部120の処理を説明する。
 図5は、キー属性決定部120がキー属性を決定する処理を示すフローチャートである。ここでは、ルール受信部110が受信した3つの処理ルール(Rule11、Rule12、Rule13)のキー属性が決定される場合を例にする。各処理ルールのイベント条件は、属性「ユーザID」、「エリアID」を含むイベントで構成されているとする。Rule11、Rule12、Rule13の構成を以下に示す。
Rule11(Event(10,*)&Event(11,*))
Rule12(Event(12,A)&Event(13,A))
Rule13(Event(*,B)&Event(*,C))
 キー属性決定部120は、新規処理ルールが登録されると(ステップS501)、処理ルールのイベント条件のイベントに含まれる各属性の和集合を算出する(ステップS502)。
 属性の和集合は、属性に指定されている属性値の集合である。例えば、Rule11(Event(10,*)&Event(11,*))の場合、属性「ユーザID」の和集合は{10,11}となる。また、属性「エリアID」の和集合は{A,B,…}となる。
 キー属性決定部120は、各処理ルールについて、和集合のサイズ(以下、属性値数という。)が最も小さい属性をキー属性として選択する(ステップS503)。
 例えば、Rule11の場合は、属性「ユーザID」の和集合{10,11}のサイズは2である。また、属性「エリアID」の和集合{A,B,…}のサイズは総エリア数である。従って、キー属性決定部120は、Rule11のキー属性として「ユーザID」を選択する。Rule12の場合は、属性「ユーザID」の和集合{12,13}のサイズは2である。また、属性「エリアID」の和集合{A}のサイズは1である。従って、キー属性決定部120は、Rule12のキー属性として「エリアID」を選択する。キー属性決定部120は、同様に、Rule13のキー属性として「エリアID」を選択する。
 図27に示すRule1~5の場合は、Rule1~3のキー属性として「ユーザID」が選択され、Rule4、5のキー属性として「エリアID」が選択される。この場合、Rule1~3の分配先は、「ユーザID」に割り当てられた処理サーバの中から算出される。Rule4、5の分配先は、「エリアID」に割り当てられた処理サーバの中から算出される。
 図27に示す処理サーバ900-1、900-2が「ユーザID」に割り当てられ、900-nが「エリアID」に割り当てられているとする。すると、アプリケーションからRule1~5が登録された場合には、図6に示すように各ルールが配置される。図6は、イベント処理システムがキー属性の値を限定しない処理ルールを受信したときのルール配置の様子を示す説明図である。
 図6に示すように、Event(1,A)は、処理サーバ900-1、900-nの2つの処理サーバに対してマルキャストされる。つまり、Event(1,A)は処理サーバ900-2には送信されない。従って、処理サーバ900-2は、Event(1,A)を処理する必要がない。つまり、Event(1,A)をマルチキャストする処理サーバを1つ少なくすることができる。
 以上に説明したように、本実施形態では、新規処理ルールのキー属性を決定し、決定したキー属性に割り当てられた処理サーバに、当該新規処理ルールを登録する。それにより、イベントのマルチキャストの発生を低減することができる。従って、本実施形態によれば、ディスパッチャおよび処理サーバの処理負荷、例えば、イベント処理や通信処理によるCPU負荷を低減することができるとともに、ネットワークの負荷を低減することができる。
 なお、本実施形態では、イベント振り分けルールの生成をルール分配装置100が行う場合について説明したが、各ディスパッチャがイベント振り分けルールを生成するようにしてもよい。そのような形態を実現するには、例えば、ルール分配装置100に新規に処理ルールが登録されたときに、各ディスパッチャが、その処理ルールのイベント条件をルール分配装置100から取得すればよい。そして、各ディスパッチャが、イベント条件と既に保持しているイベント条件とのOR(論理和)を取ることにより、イベント振り分けルールを生成すればよい。
 また、本実施形態では、サーバ割り当て部120が、各キー属性に対して、処理サーバ200-1~200-nを割り当てる場合について説明したが、処理サーバ上で動作する仮想処理サーバに割り当てるようにしてもよい。そのような形態によれば、特定の処理サーバに負荷が集中することを回避することができる。例えば、イベントの発生が均一でないとき、つまり、特定のイベントの発生が増大したときなど、特定の処理サーバに負荷が集中する場合がある。そのような場合に、ルール分配先算出部130が仮想処理サーバを他の処理サーバに移動させることにより、特定の処理サーバに集中している負荷を分散させることができ、ロードバランスが可能となる。
実施形態2.
 以下、本発明の第2の実施形態を図面を参照して説明する。
 イベント処理システムおよびルール分配装置の第2の実施形態の構成は、第1の実施形態と同様であるため説明を省略する。
 ただし、ルール分配先算出部130は、ルール受信部110が新規処理ルールを受信すると、処理サーバごとに、既に登録されている全処理ルールのキー属性の値の和集合を算出する。
 次に、本実施形態の動作を説明する。
 図7は、第2の実施形態におけるルール分配装置100がキー属性を決定する処理を示すフローチャートである。ここで、ルール受信部110が受信した処理ルール(Rule15)の分配先が算出される場合を例にする。本実施形態では、ルール分配装置100に4つの処理サーバ200-1~200-4が接続されているとする。そして、処理サーバ200-1にRule11、処理サーバ200-2にRule14、処理サーバ200-3にRule12、処理サーバ200-4にRule13が、それぞれ登録されているとする。また、処理サーバ200-1、200-2は、キー属性「ユーザID」に割り当てられているとする。処理サーバ200-3、200-4は、キー属性「エリアID」に割り当てられているとする。Rule14、Rule15の構成を以下に示す。
Rule14(Event(12,D)&Event(13,E))
Rule15(Event(11,B)&Event(12,C))
 ルール分配先算出部130は、新規処理ルール(Rule15)が登録されると(ステップS701)、処理サーバごとに、既に登録されている全処理ルールのキー属性の値の和集合を算出する(ステップS702)。
 このとき、処理サーバ200-1、処理サーバ200-2、処理サーバ200-3、処理サーバ200-4における処理ルールのキー属性の値の和集合は、それぞれ、{10,11}、{12,13}、{A}、{B,C}となる。
 ルール分配先算出部130は、キー属性ごとに、ルール分配先の候補を算出する。つまり、ルール分配先算出部130は、「ユーザID」に割り当てられた処理サーバ200-1、200-2の中からRule15の分配先を算出する。また、「エリアID」に割り当てられた処理サーバ200-3、200-4の中からRule15の分配先を算出する(ステップS703)。ここでは、Rule15の分配先の候補として、処理サーバ200-1、200-4が算出されたとする。
 ルール分配先算出部130は、Rule15を配置した場合の処理サーバ200-1、200-4について、全処理ルールのキー属性の値の和集合を算出する(ステップS704)。
 Rule15を処理サーバ200-1に配置したと仮定した場合、処理サーバ200-1に配置されている全処理ルール(Rule11、Rule15)のキー属性の値の和集合は、{10,11,12}となる。また、Rule15を処理サーバ200-4に配置したと仮定した場合、処理サーバ200-4に配置されている全処理ルール(Rule13、Rule15)のキー属性の値の和集合は、{B,C}となる。
 キー属性決定部120は、処理サーバ200-1、200-4について、ステップS702で算出したキー属性の値の和集合とステップS704で算出したキー属性の値の和集合とを比較して、和集合の要素の増加数が小さい方の処理サーバに割り当てられているキー属性を選択する(ステップS705)。この場合、処理サーバ200-1における処理ルールのキー属性の値の和集合は、要素数が2から3へ1増加している。また、処理サーバ200-4における処理ルールのキー属性の値の和集合は、要素数が2のままであり、増加数は0である。従って、キー属性決定部120は、Rule15についてキー属性「エリアID」を選択する。
 以上に説明したように、本実施形態では、キー属性ごとに分類された処理サーバ群の中から分配先候補となる処理サーバをそれぞれ決定する。そして、処理サーバ群ごとに決定した分配先候補の各処理サーバについて、既に登録されている全処理ルールのキー属性の値の和集合を算出し、各処理サーバのうち、和集合の要素の増加数が最も小さい処理サーバを分配先として選択する。それにより、イベントのマルチキャストが少なくて済む処理サーバを分配先として選択することができる。
 従って、本実施形態によれば、イベントのマルチキャストをより少なくすることができる。例えば、Rule15のように、各属性の和集合の数が等しい場合、第1の実施形態のキー属性決定方法では、キー属性を正しく選択することができない場合がある。しかし、本実施形態では、各属性の和集合の数が等しい処理ルールが新規登録された場合であっても、マルチキャストがより少なくなるように、新規登録された処理ルールのキー属性を選択することができる。それにより、ネットワークの負荷をさらに低減することができる。
実施形態3.
 以下、本発明の第3の実施形態を図面を参照して説明する。
 イベント処理システムの第3の実施形態の構成は、第1の実施形態と同様であるため説明を省略する。
 図8は、ルール分配装置の第3の実施形態における構成を示すブロック図である。
 図8に示すルール分配装置600は、ルール並び替え部160を備える。
 ルール並び替え部160は、アプリケーション400-1~400-nから登録された処理ルールを保持する。ルール並び替え部160は、例えば、予め定められたタイミング(以下、ルール並び替えタイミングという。)で定期的にまたは間欠的に、既に登録されている処理ルールの並び替えを行う。
 なお、ルール並び替え部160は、ルール分配装置600が備えるCPU等によって実現される。例えば、CPUが、ルール分配プログラムに従って、ルール並び替え部160として動作してもよい。
 ルール分配装置600のその他の構成は、第1の実施形態のルール分配装置100と同様であるため説明を省略する。
 図9は、ルール並び替え部160による処理ルールの並び替え処理を示すフローチャートである。
 ルール並び替え部160は、ルール並び替えタイミングか否かを判定する(ステップS901)。ルール並び替え部160は、例えば、保持する処理ルールの数が予め定められた閾値を超えた場合にルール並び替えタイミングであると判断する。
 ルール並び替え部160は、ルール並び替えタイミングであった場合には、ルール分配装置600に既に登録されている処理ルール(以下、処理ルール群という。)の各属性の値の和集合を求める(ステップS902)。ここでは、Rule11、Rule12、Rule13が既に登録されているとする。
 ルール並び替え部160は、処理ルールごとに、各属性の属性値数を求め、属性値数の最小値を算出する(ステップS903)。すなわち、ルール並び替え部160は、処理ルールごとに、キー属性の属性値数を求める。
 ルール並び替え部160は、キー属性ごとに、処理ルールの並び替えを行う(ステップS904)。つまり、キー属性が「ユーザID」であるRule11について並び替えを行う。また、キー属性が「エリアID」であるRule12、Rule13について並び替えを行う。
 このとき、キー属性の属性値数が大きい順に処理ルールを並び替える。Rule12、Rule13のキー属性の属性値数は、それぞれ、1、2である。従って、Rule13、Rule12の順に並び替えられる。キー属性が「ユーザID」である処理ルールはRule11のみのため、並び替えは行われない。
 ルール並び替え部160は、各処理ルールを並び変えた順番にキー属性決定部140に送信する。以降のルール分配装置600の処理は、第1の実施形態のルール分配装置100のステップS402~S407の処理と同様であるため、説明を省略する。
 次のように、本実施形態では、ルール並び替えタイミングに応じて、ルール分配の再実行を行う。ルール分配の再実行を行うことにより、イベントのマルチキャストを低減することができる。
 キー属性が「ユーザID」であるRule21、Rule22、Rule23、Rule24、Rule25が順に登録され、処理サーバ200-1にRule21、Rule23、Rule25が、処理サーバ200-2にRule22、Rule24が配置されたとする。Rule21、Rule22、Rule23、Rule24、Rule25の構成を以下に示す。
Rule21(Event(9,*))
Rule22(Event(11,*))
Rule23(Event(10,*))
Rule24(Event(12,*))
Rule25(Event(10,*)&Event(11,*))
 そのとき、処理サーバ200-1に配置されている全処理ルールのキー属性の値の和集合は、{9,10,11}となる。また、処理サーバ200-2に配置されている全処理ルールのキー属性の値の和集合は、{11,12}となる。従って、属性値が“11”である属性「ユーザID」を含むイベントが発生した場合には、処理サーバ200-1と処理サーバ200-2にマルチキャストされる。
 そこで、ルール分配の再実行を行う。Rule25のキー属性の属性値数は2であり、その他のルールのキー属性の属性値数は1である。従って、各ルールは、ルール並び替え部160により、Rule25、Rule21、Rule22、Rule23、Rule24の順に並び替えられる。その結果、Rule22、Rule23、Rule25は処理サーバ200-1に、Rule21、Rule24は処理サーバ200-2に再配置される。それにより、処理サーバ200-1に配置されている全処理ルールのキー属性の値の和集合は{10,11}となる。また、処理サーバ200-2に配置されている全処理ルールのキー属性の値の和集合は{9,12}となる。従って、属性値が“11”である属性「ユーザID」を含むイベントのマルチキャストを回避することができる。
 以上に説明したように、本実施形態では、ルール並び替え部が、ルール分配装置に既に登録されている処理ルールをキー属性の属性値数が大きい順に並び替えて、ルールの再配置を実行する。それにより、イベントのマルチキャストを少なくすることができる。従って、本実施形態によれば、ネットワークの負荷をさらに低減することができる。
実施形態4.
 以下、本発明の第4の実施形態を図面を参照して説明する。
 図10は、ルール分配装置の第4の実施形態の構成を示すブロック図である。
 図10に示すルール分配装置700は、第1の実施形態のルール分配装置100の構成に加えて、属性値担当サーバ解決部170と、候補キー属性集合保持部180とを備える。
 属性値担当サーバ解決部170は、処理ルールのイベント条件のイベントに含まれる属性の属性値をもとに、処理ルールの分配先の処理サーバを決定する処理(以下、属性値担当サーバ解決という。)を実行する。
 属性値担当サーバ解決部170は、各属性の属性値と、その属性値を担当する処理サーバ(以下、属性値担当サーバという。)との対応を示す属性値担当サーバ情報を保持する。図11は、属性値担当サーバ情報の一例を示す説明図である。
 候補キー属性集合保持部180は、候補キー属性の一覧を示す情報を保持する。候補キー属性は、キー属性の候補となる属性である。本実施形態では、候補キー属性は、属性値担当サーバ解決の処理対象となる属性である。候補キー属性は、予めユーザによって指定される。なお、候補キー属性集合保持部180が、処理サーバとデバイスとの間に設置された基地局等から運用データを取得し、取得した運用データをもとに候補キー属性を決定するようにしてもよい。
 なお、属性値担当サーバ解決部170は、ルール分配装置600が備えるCPU等によって実現される。例えば、CPUが、ルール分配プログラムに従って、属性値担当サーバ解決部170として動作してもよい。また、候補キー属性集合保持部180は、ルール分配装置600が備えるメモリ等の記憶装置によって実現される。
 ルール分配装置700のその他の構成は、第1の実施形態のルール分配装置100と同様であるため説明を省略する。
 ただし、キー属性決定部140は、新規処理ルールに含まれる各属性が、候補キー属性に該当するか否かを判定する。キー属性決定部140は、新規処理ルールに候補キー属性が含まれる場合には、属性値担当サーバ解決部170に候補キー属性を入力するとともに、属性値担当サーバ解決部170に属性値担当サーバ解決を依頼する。
 次に、本実施形態の動作を説明する。
 図12は、第4の実施形態におけるキー属性決定部140の動作を示すフローチャートである。
 キー属性決定部140は、ルール受信部110から新規処理ルールが入力されると(ステップS1201)、新規処理ルールに含まれる各属性について、ステップS1203、S1204の処理を行う(ステップS1202)。ここでは、新規処理ルールとして、以下に示すRule31が入力されたとする。
Rule31(Event(UserID=User1,AreaID=AreaA,Mode=Walking)&Event(UserID=User2,AreaID=AreaB,Mode=Walking))
 ステップS1203において、キー属性決定部140は、候補キー属性集合保持部180から候補キー属性の一覧を示す情報を取得し、新規処理ルールに含まれる各属性が候補キー属性であるか否かを確認する。ここでは、属性「UserID」、「AreaID」が候補キー属性であるとする。
 ステップS1204において、キー属性決定部140は、属性値担当サーバ解決部170に、候補キー属性とそれに対応する属性値の集合または範囲を入力し、属性値担当サーバ解決部170に属性値担当サーバ解決を依頼する。キー属性決定部140は、属性値担当サーバ解決部170からサーバIDの集合(以下、サーバID集合という。)を取得する。このとき、属性値担当サーバ解決部170は、図11に示す属性値担当サーバ情報をもとに、サーバID集合をキー属性決定部140に出力する。
 Rule31の属性「UserID」の属性値は、“User1”、“User2”である。従って、キー属性決定部140は、属性値の集合{User1,User2}を属性値担当サーバ解決部170に入力する。そして、キー属性決定部140は、属性値担当サーバ解決部170からサーバID集合{Server1,Server2}を取得する。
 また、属性「AreaID」の属性値は、“AreaA”、“AreaB”である。従って、キー属性決定部140は、属性値の集合{AreaA,AreaB}を属性値担当サーバ解決部170に入力する。そして、キー属性決定部140は、属性値担当サーバ解決部170からサーバID集合{Server1}を取得する。
 なお、属性「Mode」については、図11に示す属性値担当サーバ情報に含まれていないので、キー属性決定部140は、サーバID集合は取得しない。
 全ての属性についてステップS1203、S1204の処理を実行した後、キー属性決定部140は、ステップS1204で取得したサーバID集合のうち、サイズが最も小さいサーバID集合の属性をキー属性とする(ステップS1205)。属性「UserID」のサーバID集合{Server1,Server2}のサイズは2である。属性「AreaID」のサーバID集合{Server1}のサイズは1である。従って、キー属性決定部140は、サーバID集合のサイズが小さい属性「AreaID」を、新規処理ルールのキー属性とする。
 ルール分配先算出部130は、キー属性「AreaID」のサーバID集合{Server1}から“Server1”を選択し、そのサーバに処理ルールを配置する(ステップS1206)。
 ステップS1205において、例えば、属性「AreaID」のサーバID集合のサイズが2であった場合には、キー属性を決定することができない。その場合には、まず、ルール分配先算出部130は、属性ごとに、サーバID集合に含まれる処理サーバの中から分配先を算出する。具体的には、ルール分配先算出部130は、属性ごとに、サーバID集合に含まれる各処理サーバについて、Rule31の配置前と配置後における当該処理サーバに登録された全処理ルールについて当該属性の属性値の和集合を算出する。そして、ルール分配先算出部130は、算出した和集合の要素の増加数が最も小さい処理サーバを当該属性の分配先として算出する。次に、キー属性決定部140は、各属性の中から、分配先における和集合の要素の増加数が最も小さい属性をキー属性に決定する。
 また、ステップS1206において、キー属性に対するサーバIDが複数ある場合には、ルール分配先算出部130は、各サーバIDに対応する処理サーバの中から分配先を選択する。例えば、各処理サーバに新規処理ルールを配置した場合に、配置後のイベントのマルチキャストが少なくて済む処理サーバを分配先として選択する。なお、第1の実施形態のステップS405の処理により、処理ルールの分配先を算出してもよい。
 ルール分配装置700における以降の処理は、第1の実施形態のステップS407~S408の処理と同様であるため、説明を省略する。
 以上に説明したように、本実施形態では、各候補キー属性に対応するサーバID集合を取得し、取得したサーバID集合のうち、サイズが最も小さいサーバID集合の属性をキー属性とする。従って、例えば、処理サーバおよびディスパッチャが地域ごとに分散して配置されている場合に、サイズが最も小さいサーバID集合の属性をキー属性とすることにより、他地域の処理サーバへのイベントの転送を最小限に抑えることができる。よって、ディスパッチャやネットワークの負荷を低減させることができる。
 なお、本実施形態と他の実施形態とを組み合わせるようにしてもよい。例えば、ステップS1205において、属性「UserID」のサーバID集合のサイズと、属性「AreaID」のサーバID集合のサイズとが同じであった場合には、キー属性を決定することができない。その場合、処理ルールの分配先を算出することができないので、サーバ割り当て部120を用いて第1の実施形態のステップS401~S405の処理を実行して、処理ルールの分配先を決定するようにしてもよい。
 また、他の実施形態におけるルール分配装置が候補キー属性集合保持部180を備えていてもよい。その場合には、例えば、第1の実施形態におけるルール分配装置100は、候補キー属性集合保持部180から取得した候補キー属性の中からキー属性を決定する。そのような構成によれば、ルール分配装置100おけるキー属性決定部140は、アプリケーションから処理ルールが登録されたときに、処理ルールのイベント条件のイベントに含まれる属性のうち、候補キー属性に該当する属性に対してキー属性の算出処理を行うだけでよい。従って、ルール分配装置100の処理負荷をより低減することができる。
実施形態5.
 以下、本発明の第5の実施形態を図面を参照して説明する。
 図13は、ルール分配装置の第5の実施形態の構成を示すブロック図である。
 図13に示すルール分配装置800は、第4の実施形態のルール分配装置700の構成に加えて、ルール分割部190を備える。
 ルール分割部190は、ルール受信部110が受信した処理ルールを分割する。
 以下に示すRule41は、イベントa、bを送信するある二人が100m以内にいる場合にマッチングが成立するルールである。この場合、候補キー属性を「ユーザID」、「エリアID」としても、各候補キー属性に対する値を限定することができない。従って、Rule41が配置された処理サーバに対して、あらゆるユーザID、エリアIDのイベントが送信される可能性がある。そこで、ルール分割部190は、候補キー属性にもとづいて処理ルールを分割する。
 Rule41(Event() as a & Event() as b where Distance(a.Coord, b.Coord)<100m )
 サーバ割り当て部120、ルール分配先算出部130、キー属性決定部140、振り分けルール生成部150、属性値担当サーバ解決部170および候補キー属性集合保持部180は、ルール分割部190が分割した処理ルールに対して、通常の処理ルールに対する処理と同様の処理を行う。
 なお、ルール分割部190は、ルール分配装置800が備えるCPU等によって実現される。例えば、CPUが、ルール分配プログラムに従って、ルール分割部190として動作してもよい。
 次に、本実施形態の動作を説明する。
 まず、どの候補キー属性でルール分割するかが予め指定されている場合の動作を説明する。
 図14は、エリアIDにもとづくルール分割処理を示すフローチャートである。
 ここで、ルール受信部110が受信した処理ルール(Rule42)を分割する場合を例にする。Rule42の構成を以下に示す。
 Rule42(Event(ID=user1) as a & Event(ID=user2) as b where Distance(a.Coord,b.Coord)<100m)
 Rule42は、ユーザIDが“user1”であるイベントaを送信するユーザと、ユーザIDが“user2”であるイベントbを送信するユーザとが、100m(メートル)以内にいる場合にマッチングが成立するルールである。
 ルール分割部190は、2つのイベントa、bの関係を示す条件を算出する。ここでは、イベントa、bの距離D(a、b)を示す条件を算出する(ステップS1401)。ここで、距離条件として「D(a、b)=<100m」が算出される。
 ルール分割部190は、ユーザIDが“user1”であるイベントaを送信するユーザと、ユーザIDが“user2”であるイベントbを送信するユーザがいるエリアを、複数のメッシュに分割する。図15は、複数のメッシュに分割されたエリアの一例を示す説明図である。ルール分割部190は、例えば、図15に示すように1辺が300mである複数の正方形に分割する。ここでは、エリアを9つのメッシュに分割する。図15に示す各正方形の中の数字はメッシュのNoを表す。なお、メッシュは正方形に限定されず、エリアをその他の形で分割してもよい。
 次に、ルール分割部190は、2つのイベントa、bが距離条件「D(a、b)=<100m」を満たす2つのメッシュを算出する(ステップS1402)。図16は、距離条件を満たすメッシュの組み合わせの一覧を示す説明図である。ここでは、49組のメッシュの組み合わせが算出される。
 ルール分割部190は、図16に示す一覧をもとにRule42をエリアIDで分割して、新たな処理ルール(Rule42-1~Rule42-49)を生成する(ステップS1403)。具体的には、ルール分割部190は、メッシュに対応する属性値(mesh1~mesh9)を生成し、生成した各属性値をもとにイベント条件を生成する。ここでは、イベントa、bを送信するユーザがどのメッシュにいるかを示すイベント条件を生成する。イベント条件は、距離条件を満たすメッシュの組み合わせごとに生成される。ルール分割部190は、生成したイベント条件をそれぞれRule42に付加して、新たな処理ルールRule42-1~Rule42-49を生成する。
Rule42-1(Event() as a & Event() as b where In(a.Coord, mesh1) & In(b.Coord,mesh1) & Distance(a.Coord,b.Coord)<100m)
Rule42-2(Event() as a & Event() as b where In(a.Coord, mesh1) & In(b.Coord,mesh2) & Distance(a.Coord,b.Coord)<100m)
Rule42-3(Event() as a & Event() as b where In(a.Coord, mesh1) & In(b.Coord,mesh4) & Distance(a.Coord,b.Coord)<100m)
・・・
Rule42-49(Event() as a & Event() as b where In(a.Coord, mesh9) & In(b.Coord,mesh9) & Distance(a.Coord,b.Coord)<100m)
 ここで、「In(a.Coord, mesh1) & In(b.Coord,mesh1)」は、イベントaを送信するユーザ(user1)がmesh1にいて、且つイベントbを送信するユーザ(user2)がmesh2にいるか否かを判定するためのイベント条件である。
 このように、ユーザ同士の相対的な位置しか認識できない場合であっても、ユーザがいるエリアを複数のメッシュに分割することにより、ユーザの絶対的な位置で距離条件を表現することができる。絶対的な距離条件を処理ルールに付加することにより、属性「エリアID」に対する値を限定することができる。
 図14に示す処理は、イベント数が2つである場合を前提としたが、イベント数が2つ以上である場合も、同様にルール分割をすることができる。
 図17は、イベント数が3つである処理ルールに対するエリアIDにもとづくルール分割処理を示すフローチャートである。
 ここで、ルール受信部110が受信した処理ルール(Rule43)を分割する場合を例にする。Rule43の構成を以下に示す。
 Rule43(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where Distance(a.Coord,b.Coord)<100m && Distance(b.Coord,c.Coord)<150m)
 Rule43は、ユーザIDが“user1”であるイベントaを送信するユーザと、ユーザIDが“user2”であるイベントbを送信するユーザとが100m以内にいて、かつ、ユーザIDが“user2”であるイベントbを送信するユーザと、ユーザIDが“user3”であるイベントcを送信するユーザとが150m(メートル)以内にいる場合にマッチングが成立するルールである。
 ルール分割部190は、3つのイベントa、b、cの距離条件を算出する(ステップS1701、S1702)。ルール分割部190は、イベントa、b、cの中から選択した2つのイベントの組み合わせに対して、距離条件を算出する。従って、ここでは、距離条件として「D(a、b)=<100m」、「D(b、c)=<150m」、「D(a、c)=<250m」が算出される。
 ルール分割部190は、イベント数が2つの場合と同様に、各ユーザがいるエリアを9つのメッシュに分割する。
 ルール分割部190は、距離D(a、b)、D(b、c)、D(a、c)ごとに、イベント数が2つの場合と同様に、距離条件を満たすメッシュの組み合わせの一覧を生成する(ステップS1703)。
 ステップS1703の後、ルール分割部190は、各距離条件に対応するメッシュの組み合わせを結合する(ステップS1704)。図18は、各距離条件に対応するメッシュの組み合わせの一覧を結合した結果を示す説明図である。
ルール分割部190は、図18に示す結果をもとにRule43をエリアIDで分割して、新たな処理ルール(Rule43-1~)を生成する(ステップS1705)。
Rule43-1(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where In(a.Coord,mesh1) & In(b.Coord,mesh1) & In(c.Coord,mesh1) & Distance(a.Coord,b.Coord)<100m & Distance(b.Coord,c.Coord)<150m)
Rule43-2(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where In(a.Coord,mesh1) & In(b.Coord,mesh1) & In(c.Coord,mesh2) & Distance(a.Coord,b.Coord)<100m & Distance(b.Coord,c.Coord)<150m)
Rule43-3(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where In(a.Coord,mesh1) & In(b.Coord,mesh1) & In(c.Coord,mesh4) & Distance(a.Coord,b.Coord)<100m & Distance(b.Coord,c.Coord)<150m)
Rule43-4(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where In(a.Coord,mesh1) & In(b.Coord,mesh1) & In(c.Coord,mesh5) & Distance(a.Coord,b.Coord)<100m & Distance(b.Coord,c.Coord)<150m)
Rule43-5(Event(ID=user1) as a & Event(ID=user2) as b & Event(ID=user3) as c where In(a.Coord,mesh1) & In(b.Coord,mesh2) & In(c.Coord,mesh1) & Distance(a.Coord,b.Coord)<100m & Distance(b.Coord,c.Coord)<150m)
・・・
 図14および図17に示す処理は、各ユーザがいるエリアを分割することにより、処理ルールを分割したが、他の属性にもとづいてルール分割を行ってもよい。また、イベント間の関係を示す条件として距離条件を用いているが、その他の関係を示す条件を用いてもよい。
 ここでは、ルール受信部110が受信した処理ルール(Rule44)を、属性「ユーザID」にもとづいて分割する場合を例にする。Rule44の構成を以下に示す。
 Rule44(Event() as a, Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time
 Rule44は、あるユーザが“mesh1”にいて、その後当該ユーザが“mesh2”にいる場合にマッチングが成立するルールである。
 ここで、イベントa、bを送信するユーザとして、“user1”、“user2”、“user3”、“user4”、“user5”の5人がいるとする。
 ルール分割部190は、Rule44で指定されるイベント群、つまり、イベントa、bについて、イベントを送信するユーザの組み合わせを算出する。なお、この場合、結合する対象がないため、ステップS1704に示す処理は実行されない。図19は、イベントa、bに対応するユーザの組み合わせの一覧を示す説明図である。
 ルール分割部190は、図19に示す一覧をもとにRule44をユーザIDで分割して、新たな処理ルール(Rule44-1~Rule44-5)を生成する。具体的には、ルール分割部190は、イベントa、bを送信する5人のユーザに対応する属性値(user1~user5)を生成し、生成した各属性値をもとにイベント条件を生成する。ルール分割部190は、生成したイベント条件をそれぞれRule44に付加して、新たな処理ルールRule44-1~Rule44-5を生成する。
Rule44-1(Event() as a,Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time & a.ID=user1 & b.ID=user1
Rule44-2(Event() as a,Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time & a.ID=user2 & b.ID=user2
Rule44-3(Event() as a,Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time & a.ID=user3 & b.ID=user3
Rule44-4(Event() as a,Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time & a.ID=user4 & b.ID=user4
Rule44-5(Event() as a,Event() as b where a.ID=b.ID & In(a.Coord,mesh1) & In(b.Coord,mesh2) & a.time<b.time & a.ID=user5 & b.ID=user5
 なお、この場合、Rule44-1~Rule44-5中のwhere句「where a.ID=b.ID」は不要であるため、削除してもよい。
 次に、ルール分割部190がどの候補キー属性でルール分割するかを決定する場合の動作を説明する。
 ルール分割部190は、ルール受信部110が受信した処理ルールを分割する前に、候補キー属性集合からどの候補キー属性を分割対象キー属性とするかを決定する。ルール分割部190は、分割対象キー属性にもとづいてルール分割を実行する。
 図20は、候補キー属性に対する値の数をもとに分割対象キー属性を決定する処理を示すフローチャートである。
 ルール分割部190は、候補キー属性集合から候補キー属性を一つ選択する。ルール分割部190は、その候補キー属性を基に処理ルールを分割した場合に、分割後の処理ルールについてその候補キー属性に対する値の数を算出する(ステップS2001)。
 ルール分割部190は、ステップS2001を候補キー属性集合のすべての候補キー属性に対して実行する。
 ルール分割部190は、候補キー属性集合の中から、ステップS2001で算出した値の数が最も少ない候補キー属性を分割対象キー属性に決定する(ステップS2002)。
 ここで、ルール受信部110に処理ルール(Rule45)が入力されたときの、ステップS2001~S2002の処理を説明する。なお、候補キー属性集合には、「ユーザID」、「エリアID」の2つの候補キー属性が含まれているとする。Rule45の構成を以下に示す。
Rule45(Event() as a, Event() as b where a.ID=b.ID & Distance(a.Coord,b.Coord)<100m & b.time-a.time<10min
 Rule45は、あるユーザが10分の間に100m進んでいない場合にマッチングが成立するルールである。
 Rule45-1は、Rule45をユーザIDで分割した場合の一例ある。
Rule45-1(Event() as a, Event() as b where a.ID≠b.ID & Distance(a.Coord,b.Coord)<100m & a.ID=user1 & b.ID=user1
Rule45-1における属性「ユーザID」に対する値は、“user1”のみである。従って、候補キー属性「ユーザID」を基に処理ルールを分割した場合、その候補キー属性に対する値の数は1となる。
 Rule45-2は、Rule45をエリアIDで分割した場合の一例ある。
Rule45-2(Event() as a, Event() as b where a.ID≠b.ID & Distance(a.Coord,b.Coord)<100m & In(a.Coord,mesh1) & In(b.Coord,mesh2)
Rule45-2における属性「エリアID」に対する値は、“mesh1”、“mesh2”である。従って、候補キー属性「エリアID」を基に処理ルールを分割した場合、その候補キー属性に対する値の数は2となる。
 従って、この場合、ルール分割部190は、値の数が少ない候補キー属性「ユーザID」を分割対象キー属性に決定する。
 図21は、ルール数をもとに分割対象キー属性を決定する処理を示すフローチャートである。
 ルール分割部190は、候補キー属性集合から候補キー属性を一つ選択し、その候補キー属性を基に処理ルールを分割した場合に、分割後のルール数を算出する(ステップS2101)。
 ルール分割部190は、ステップS2101を候補キー属性集合のすべての候補キー属性に対して実行する。
 ルール分割部190は、候補キー属性集合の中から、ステップS2101で算出したルール数が最も少ない候補キー属性を分割対象キー属性に決定する(ステップS2102)。
 ここで、ルール受信部110に処理ルール(Rule46)が入力されたときの、ステップS2101~S2102の処理を説明する。なお、候補キー属性集合には、「ユーザID」、「エリアID」の2つの候補キー属性が含まれているとする。Rule46の構成を以下に示す。
Rule46(Event() as a,Event() as b where a.ID≠b.ID & Distance(a.Coord,b.Coord)<100m
 Rule46は、イベントaを送信するユーザと、イベントbを送信する他のユーザとが100m以内にいる場合にマッチングが成立するルールである。
 ここで、ユーザが5人いるとする。すると、イベントaを送信するユーザとイベントbを送信する他のユーザとの組み合わせは、(=10)通りである。また、ユーザがいるエリアが、図15に示すように9つのメッシュに分割されているとする。すると、上述のとおり、距離条件を満たすメッシュの組み合わせは49通りになる。
 従って、この場合、ルール分割部190は、分割後のルール数が少なくなる候補キー属性「ユーザID」を分割対象キー属性に決定する。
 以上に説明したように、本実施形態では、候補キー属性のいずれかをキー属性としても、各候補キー属性に対する値を限定することができない処理ルールに対して、ルール分割部が、いずれかの候補キー属性をもとに当該処理ルールを分割する。これにより、当該候補キー属性に対する値が少数になるような処理ルールが生成される。そして、ルール分配装置は、ルール分割部が分割した処理ルールを複数のサーバに分配する。これにより、ルール分配装置は、各候補キー属性に対する値を限定することができない処理ルールであっても、デバイスから発生するイベントが複数のサーバに分散されるように、ルール分配することができる。
 また、分割後に値の数がより少なくなる候補キー属性、または、分割後にルール数がより少なくなる候補キー属性を分割対象属性として選択することにより、分割後のルール数を必要以上に増加させることがない。従って、ディスパッチャおよび処理サーバの負荷を必要以上に増大させることがない。
 従って、本実施形態を第4の実施形態と組み合わせることにより、第4の実施形態におけるルール分配をより効率的に実行することが可能となる。なお、本実施形態では、第4の実施形態のルール分配装置700の構成に加えて、ルール分割部190を備えるルール分配装置800を例にしたが、ルール分配装置800は、他の実施形態のルール分配装置の構成を備えていてもよい。つまり、本実施形態を他の実施形態と組み合わせてもよい。
 図22は、本発明によるルール分配装置の最小構成を示すブロック図である。図23は、本発明によるルール分配装置の他の最小構成を示すブロック図である。図24は、本発明によるルール分配装置の他の最小構成を示すブロック図である。図25は、本発明によるイベント処理システムの最小構成を示すブロック図である。
 図22に示すように、ルール分配装置(図1または図2に示すルール分配装置100に相当。)は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部11(図2に示すルール分配装置100におけるルール受信部110に相当。)と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部14(図2に示すルール分配装置100におけるキー属性決定部140に相当。)と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置するルール分配先算出部13(図2に示すルール分配装置100におけるルール分配先算出部130に相当。)と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する振り分けルール生成部15(図2に示すルール分配装置100における振り分けルール生成部150に相当。)とを備える。
 そのような構成によれば、イベントのマルチキャストの発生を低減することができる。従って、ディスパッチャおよび処理サーバの処理負荷を低減することができるとともに、ネットワークの負荷を低減することができる。
 上記の実施形態には、以下のようなルール分配装置も開示されている。
(1)キー属性決定部14は、処理ルールのイベント条件に含まれるイベントについて、イベントに含まれる各属性の属性値の和集合を算出し、和集合のサイズが小さい属性を当該処理ルールのキー属性とするルール分配装置。
 そのような構成によれば、イベントのマルチキャストの発生をより低減することができる。
(2)ルール分配先算出部13は、処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性をキー属性としたときの当該処理ルールの分配先を算出し、当該処理ルールの配置前と配置後の分配先の全処理ルールについて当該属性の属性値の和集合を算出し、キー属性決定部14は、算出結果をもとに、属性値の和集合の要素の増加数が最も小さい属性を特定し、特定した属性を当該処理ルールのキー属性とするルール分配装置。
 そのような構成によれば、処理サーバ群ごとに決定した分配先候補の処理サーバのうち、イベントのマルチキャストが少なくて済む処理サーバを分配先として選択することができる。従って、イベントのマルチキャストをより少なくすることができる。
(3)図23に示すように、入力した処理ルールを保持し、保持する処理ルールの並び替えを実行するルール並び替え部16(図8に示すルール分配装置600におけるルール並び替え部160に相当。)を備え、ルール並び替え部16は、保持する処理ルールごとに、キー属性の属性値の和集合を求め、和集合のサイズが大きい順に処理ルールを並び替え、ルール分配先算出部13は、ルール並び替え部16が並び替えた順番にもとづいて、処理ルールを各処理装置に配置するルール分配装置。
 そのような構成によれば、各処理装置に配置されている処理ルールを、イベントのマルチキャストが少なくなるように再配置することができる。
(4)図24に示すように、属性値と当該属性値を含むイベントを処理する処理装置とを対応付けた属性値担当サーバ情報を保持する属性値担当サーバ解決部17(図10に示すルール分配装置700における属性値担当サーバ解決部170に相当。)を備え、キー属性決定部14は、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた処理装置の一覧を示すサーバID集合を属性値担当サーバ解決部17から取得し、取得したサーバID集合をもとにキー属性を決定するルール分配装置。
 そのような構成によれば、例えば、処理サーバおよびディスパッチャが地域ごとに分散して配置されている場合に、他地域の処理サーバへのイベントの転送を最小限に抑えることができる。よって、ディスパッチャやネットワークの負荷を低減させることができる。
(5)ルール分配先算出部13は、サーバID集合をもとに、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた各処理装置について、処理ルールの配置前と配置後の当該処理装置の全処理ルールについて当該属性の属性値の和集合を算出し、算出した和集合の要素の増加数が最も小さい処理装置を当該属性の分配先として選択し、キー属性決定部14は、各属性の中から、分配先における和集合の要素の増加数が最も小さい属性をキー属性に決定するルール分配装置。
 そのような構成によれば、新規処理ルールのイベント条件に含まれるイベントの各属性のサーバID集合のサイズが2以上である場合でも、キー属性を決定することができる。従って、例えば、多数の処理サーバおよびディスパッチャが地域ごとに分散して配置されている場合であっても、他地域の処理サーバへのイベントの転送を最小限に抑えることができる。
(6)ルール受信部11が受信した処理ルールのイベント条件に含まれるイベントの各属性の属性値が限定できない場合、いずれかの属性を分割対象属性とし、分割対象属性を限定するための属性値を生成し、生成した属性値をもとに複数のイベント条件を生成し、複数のイベント条件の各々を処理ルールに付加して新たな複数の処理ルールに分割するルール分割部19(図13に示すルール分配装置800におけるルール分割部190に相当。)を備えるルール分配装置。
 そのような構成によれば、各候補キー属性に対する値を限定することができない処理ルールであっても、デバイスから発生するイベントが複数のサーバに分散されるように、ルール分配することができる。
(7)ルール分割部19は、処理ルールのイベント条件に含まれるイベントの各属性を分割対象属性とした場合に、当該属性に対する属性値の数が分割後に最も小さくなる属性、または、分割後に新たに生成される処理ルールの数が最も小さくなる属性を分割対象属性として選択するルール分配装置。
 そのような構成によれば、分割後に値の数がより少なくなる候補キー属性、または、分割後にルール数がより少なくなる候補キー属性を分割対象属性として選択することができる。従って、ルール数を必要以上に増加させることがないので、ディスパッチャおよび処理サーバの負荷を必要以上に増大させることがない。
(8)キー属性決定部14は、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性が候補キー属性であるか否かを判定し、候補キー属性であると判断した属性の中からキー属性を決定するルール分配装置。
 そのような構成によれば、ルール分配装置におけるキー属性決定部は、アプリケーションから処理ルールが登録されたときに、処理ルールのイベント条件のイベントに含まれる属性のうち、候補キー属性に該当する属性に対してキー属性の算出処理を行えばよい。よって、ルール分配装置の処理負荷をより低減することができる。
 上記の実施形態には、図25に示すようなイベント処理システムも開示されている。
(9)処理ルールに従ってイベント処理を実行する処理装置20-1~20-n(図1に示す処理サーバ200-1~200-nに相当。)と、処理装置20-1~20-nに処理ルールを配置するルール分配装置10(図1に示すルール分配装置100に相当。)と、デバイスが発したイベントを処理装置20-1~20-nに振り分けるイベント振り分け装置30-1~30-n(図1に示すディスパッチャ300-1~300-nに相当。)とを備え、ルール分配装置10は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部11と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部14と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置するルール分配先算出部13と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、イベント振り分け装置30-1~30-nに配置する振り分けルール生成部15とを備えたことを特徴とするイベント処理システム。
 そのような構成によれば、イベントのマルチキャストの発生を低減することができる。従って、ディスパッチャおよび処理サーバの処理負荷を低減することができるとともに、ネットワークの負荷を低減することができる。従って、システム全体の処理負荷を低減することができる。
 また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下
に限られない。
(付記1)処理ルールに従ってイベント処理を実行する処理装置20-1~20-nと、処理装置20-1~20-nに処理ルールを配置するルール分配装置10と、デバイスが発したイベントを処理装置20-1~20-nに振り分けるイベント振り分け装置30-1~30-nとを備え、ルール分配装置10は、アプリケーションが要求するイベント処理とイベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部11と、処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部14と、当該キー属性に対応付けられた処理装置の中から選択した処理装置に処理ルールを配置するルール分配先算出部13と、デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、イベント振り分け装置30-1~30-nに配置する振り分けルール生成部15とを備えたことを特徴とするイベント処理システム。
(付記2)キー属性決定部14は、処理ルールのイベント条件に含まれるイベントについて、イベントに含まれる各属性の属性値の和集合を算出し、和集合のサイズが最も小さい属性を当該処理ルールのキー属性とする付記1に記載のイベント処理システム。
 そのような構成によれば、イベントのマルチキャストの発生をより低減することができる。
(付記3)ルール分配先算出部13は、処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性をキー属性としたときの当該処理ルールの分配先を算出し、当該処理ルールの配置前と配置後の分配先の全処理ルールについて当該属性の属性値の和集合を算出し、キー属性決定部14は、算出結果をもとに、属性値の和集合の要素の増加数が最も小さい属性を特定し、特定した属性を当該処理ルールのキー属性とする付記1または付記2に記載のイベント処理システム。
 そのような構成によれば、処理サーバ群ごとに決定した分配先候補の処理サーバのうち、イベントのマルチキャストが少なくて済む処理サーバを分配先として選択することができる。従って、イベントのマルチキャストをより少なくすることができる。
(付記4)ルール分配装置10が、入力した処理ルールを保持し、保持する処理ルールの並び替えを実行するルール並び替え部16を備え、ルール並び替え部16は、保持する処理ルールごとに、キー属性の属性値の和集合を求め、和集合のサイズが大きい順に処理ルールを並び替え、ルール分配先算出部13は、ルール並び替え部16が並び替えた順番にもとづいて、処理ルールを各処理装置に配置する付記1から付記3のうちのいずれか1つに記載のイベント処理システム。
 そのような構成によれば、各処理装置に配置されている処理ルールを、イベントのマルチキャストが少なくなるように再配置することができる。
(付記5)ルール分配装置10が、属性値と当該属性値を含むイベントを処理する処理装置とを対応付けた属性値担当サーバ情報を保持する属性値担当サーバ解決部17を備え、キー属性決定部14は、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた処理装置の一覧を示すサーバID集合を属性値担当サーバ解決部17から取得し、取得したサーバID集合をもとにキー属性を決定する付記1から付記4のうちのいずれか1つに記載のイベント処理システム。
 そのような構成によれば、例えば、処理サーバおよびディスパッチャが地域ごとに分散して配置されている場合に、他地域の処理サーバへのイベントの転送を最小限に抑えることができる。よって、ディスパッチャやネットワークの負荷を低減させることができる。
(付記6)ルール分配先算出部13は、サーバID集合をもとに、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた各処理装置について、処理ルールの配置前と配置後の当該処理装置の全処理ルールについて当該属性の属性値の和集合を算出し、算出した和集合の要素の増加数が最も小さい処理装置を当該属性の分配先として選択し、キー属性決定部14は、各属性の中から、分配先における和集合の要素の増加数が最も小さい属性をキー属性に決定する付記5に記載のイベント処理システム。
 そのような構成によれば、新規処理ルールのイベント条件に含まれるイベントの各属性のサーバID集合のサイズが2以上である場合でも、キー属性を決定することができる。従って、例えば、多数の処理サーバおよびディスパッチャが地域ごとに分散して配置されている場合であっても、他地域の処理サーバへのイベントの転送を最小限に抑えることができる。
(付記7)ルール分配装置10が、ルール受信部11が受信した処理ルールのイベント条件に含まれるイベントの各属性の属性値が限定できない場合、いずれかの属性を分割対象属性とし、分割対象属性を限定するための属性値を生成し、生成した属性値をもとに複数のイベント条件を生成し、複数のイベント条件の各々を処理ルールに付加して新たな複数の処理ルールに分割するルール分割部19を備える付記1から付記6のうちのいずれか1つに記載のイベント処理システム。
 そのような構成によれば、各候補キー属性に対する値を限定することができない処理ルールであっても、デバイスから発生するイベントが複数のサーバに分散されるように、ルール分配することができる。
(付記8)ルール分割部19は、処理ルールのイベント条件に含まれるイベントの各属性を分割対象属性とした場合に、当該属性に対する属性値の数が分割後に最も小さくなる属性、または、分割後に新たに生成される処理ルールの数が最も小さくなる属性を分割対象属性として選択する付記7に記載のイベント処理システム。
 そのような構成によれば、分割後に値の数がより少なくなる候補キー属性、または、分割後にルール数がより少なくなる候補キー属性を分割対象属性として選択することができる。従って、ルール数を必要以上に増加させることがないので、ディスパッチャおよび処理サーバの負荷を必要以上に増大させることがない。
(付記9)キー属性決定部14は、ルール受信部11が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性が候補キー属性であるか否かを判定し、候補キー属性であると判断した属性の中からキー属性を決定する付記1から付記8のうちのいずれか1つに記載のイベント処理システム。
 そのような構成によれば、ルール分配装置におけるキー属性決定部は、アプリケーションから処理ルールが登録されたときに、処理ルールのイベント条件のイベントに含まれる属性のうち、候補キー属性に該当する属性に対してキー属性の算出処理を行えばよい。よって、ルール分配装置の処理負荷をより低減することができる。
 この出願は、2012年8月31日に出願された日本特許出願2012-191261を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 10、100、600、700、800 ルール分配装置
 11、110 ルール受信部
 13、130 ルール分配先算出部
 14、140 キー属性決定部
 15、150 振り分けルール生成部
 16、160 ルール並び替え部
 17、170 属性値担当サーバ解決部
 19、190 ルール分割部
 20-1~20-n 処理装置
 30-1~30-n イベント振り分け装置
 120 サーバ割り当て部
 180 候補キー属性集合保持部
 200、200-1~200-n、900-1~900-n 処理サーバ
 300-1~300-n ディスパッチャ
 400、400-1~400-n アプリケーション
 500-1~500-n デバイス

Claims (12)

  1.  アプリケーションが要求するイベント処理と前記イベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部と、
     前記処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部と、
     当該キー属性に対応付けられた処理装置の中から選択した処理装置に前記処理ルールを配置するルール分配先算出部と、
     デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、前記デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する振り分けルール生成部とを備えた
     ことを特徴とするルール分配装置。
  2.  キー属性決定部は、処理ルールのイベント条件に含まれるイベントについて、前記イベントに含まれる各属性の属性値の和集合を算出し、和集合のサイズが最も小さい属性を当該処理ルールのキー属性とする
     請求項1に記載のルール分配装置。
  3.  ルール分配先算出部は、処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性をキー属性としたときの当該処理ルールの分配先を算出し、当該処理ルールの配置前と配置後の分配先の全処理ルールについて当該属性の属性値の和集合を算出し、
     キー属性決定部は、算出結果をもとに、属性値の和集合の要素の増加数が最も小さい属性を特定し、特定した属性を当該処理ルールのキー属性とする
     請求項1または請求項2に記載のルール分配装置。
  4.  入力した処理ルールを保持し、保持する処理ルールの並び替えを実行するルール並び替え部を備え、
     ルール並び替え部は、保持する処理ルールごとに、キー属性の属性値の和集合を求め、前記和集合のサイズが大きい順に処理ルールを並び替え、
     ルール分配先算出部は、前記ルール並び替え部が並び替えた順番にもとづいて、処理ルールを各処理装置に配置する
     請求項1から請求項3のうちのいずれか1項に記載のルール分配装置。
  5.  属性値と当該属性値を含むイベントを処理する処理装置とを対応付けた属性値担当サーバ情報を保持する属性値担当サーバ解決部を備え、
     キー属性決定部は、ルール受信部が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた処理装置の一覧を示すサーバID集合を前記属性値担当サーバ解決部から取得し、取得したサーバID集合をもとにキー属性を決定する
     請求項1から請求項4のうちのいずれか1項に記載のルール分配装置。
  6.  ルール分配先算出部は、サーバID集合をもとに、ルール受信部が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性に指定されている属性値に対応づけられた各処理装置について、前記処理ルールの配置前と配置後の当該処理装置の全処理ルールについて当該属性の属性値の和集合を算出し、算出した和集合の要素の増加数が最も小さい処理装置を当該属性の分配先として選択し、
     キー属性決定部は、各属性の中から、分配先における前記和集合の要素の増加数が最も小さい属性をキー属性に決定する
     請求項5に記載のルール分配装置。
  7.  ルール受信部が受信した処理ルールのイベント条件に含まれるイベントの各属性の属性値が限定できない場合、いずれかの属性を分割対象属性とし、前記分割対象属性を限定するための属性値を生成し、生成した属性値をもとに複数のイベント条件を生成し、前記複数のイベント条件の各々を前記処理ルールに付加して新たな複数の処理ルールに分割するルール分割部を備える
     請求項1から請求項6のうちのいずれか1項に記載のルール分配装置。
  8.  ルール分割部は、処理ルールのイベント条件に含まれるイベントの各属性を分割対象属性とした場合に、当該属性に対する属性値の数が分割後に最も小さくなる属性、または、分割後に新たに生成される処理ルールの数が最も小さくなる属性を分割対象属性として選択する
     請求項7に記載のルール分配装置。
  9.  キー属性決定部は、ルール受信部が入力した処理ルールのイベント条件に含まれるイベントの属性ごとに、当該属性が候補キー属性であるか否かを判定し、候補キー属性であると判断した属性の中からキー属性を決定する
     請求項1から請求項8のうちのいずれか1項に記載のルール分配装置。
  10.  処理ルールに従ってイベント処理を実行する処理装置と、
     前記処理装置に処理ルールを配置するルール分配装置と、
     デバイスが発したイベントを前記処理装置に振り分けるイベント振り分け装置とを備え、
     前記ルール分配装置は、
     アプリケーションが要求するイベント処理と前記イベント処理を実行するためのイベント条件とを規定した処理ルールを入力するルール受信部と、
     前記処理ルールのイベント条件に含まれる属性の中からキー属性を決定するキー属性決定部と、
     当該キー属性に対応付けられた処理装置の中から選択した処理装置に前記処理ルールを配置するルール分配先算出部と、
     デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、前記イベント振り分け装置に配置する振り分けルール生成部とを備えた
     ことを特徴とするイベント処理システム。
  11.  アプリケーションが要求するイベント処理と前記イベント処理を実行するためのイベント条件とを規定した処理ルールを入力し、
     前記処理ルールのイベント条件に含まれる属性の中からキー属性を決定し、
     当該キー属性に対応付けられた処理装置の中から選択した処理装置に前記処理ルールを配置し、
     デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、前記デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する
     ことを特徴とするルール分配方法。
  12.  コンピュータに、
     アプリケーションが要求するイベント処理と前記イベント処理を実行するためのイベント条件とを規定した処理ルールを入力する処理と、
     前記処理ルールのイベント条件に含まれる属性の中からキー属性を決定する処理と、
     当該キー属性に対応付けられた処理装置の中から選択した処理装置に前記処理ルールを配置する処理と、
     デバイスが発したイベントを処理対象とする処理ルールが配置された処理装置に当該イベントを振り分けるためのイベント振り分けルールを生成し、前記デバイスと処理装置との間に設置されたイベント振り分け装置に当該イベント振り分けルールを配置する処理とを実行させる
     ためのルール分配プログラム。
PCT/JP2013/004852 2012-08-31 2013-08-13 ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム Ceased WO2014034037A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014532763A JPWO2014034037A1 (ja) 2012-08-31 2013-08-13 ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012191261 2012-08-31
JP2012-191261 2012-08-31

Publications (1)

Publication Number Publication Date
WO2014034037A1 true WO2014034037A1 (ja) 2014-03-06

Family

ID=50182878

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/004852 Ceased WO2014034037A1 (ja) 2012-08-31 2013-08-13 ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム

Country Status (2)

Country Link
JP (1) JPWO2014034037A1 (ja)
WO (1) WO2014034037A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019240034A1 (ja) * 2018-06-15 2020-12-17 日本電信電話株式会社 ネットワーク管理システム、管理装置、中継装置、方法およびプログラム
CN115328622A (zh) * 2021-05-11 2022-11-11 中国科学院自动化研究所 海量语义规则并行处理系统、方法及设备
CN119402429A (zh) * 2024-10-30 2025-02-07 杭州云深科技有限公司 一种基于规则匹配的网络流量分发系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019240034A1 (ja) * 2018-06-15 2020-12-17 日本電信電話株式会社 ネットワーク管理システム、管理装置、中継装置、方法およびプログラム
CN112292839A (zh) * 2018-06-15 2021-01-29 日本电信电话株式会社 网络管理系统、管理装置、中继装置、方法以及程序
JP2022000999A (ja) * 2018-06-15 2022-01-04 日本電信電話株式会社 ネットワーク管理システム、管理装置、中継装置、方法およびプログラム
EP3809647A4 (en) * 2018-06-15 2022-03-09 Nippon Telegraph And Telephone Corporation NETWORK MANAGEMENT SYSTEM, MANAGEMENT DEVICE, RELAY DEVICE, METHOD AND PROGRAM
US11477124B2 (en) 2018-06-15 2022-10-18 Nippon Telegraph And Telephone Corporation Network management system, management device, relay device, method, and program
EP4089979A1 (en) * 2018-06-15 2022-11-16 Nippon Telegraph and Telephone Corporation Network management system, management device, relay device, method, and program
JP7205599B2 (ja) 2018-06-15 2023-01-17 日本電信電話株式会社 ネットワーク管理システム、管理装置、中継装置、方法およびプログラム
CN115328622A (zh) * 2021-05-11 2022-11-11 中国科学院自动化研究所 海量语义规则并行处理系统、方法及设备
CN119402429A (zh) * 2024-10-30 2025-02-07 杭州云深科技有限公司 一种基于规则匹配的网络流量分发系统

Also Published As

Publication number Publication date
JPWO2014034037A1 (ja) 2016-08-08

Similar Documents

Publication Publication Date Title
CN109032801B (zh) 一种请求调度方法、系统及电子设备和存储介质
Cardellini et al. Distributed QoS-aware scheduling in Storm
KR20220011063A (ko) 서버 리소스 할당 방법, 장치, 전자 기기 및 저장 매체
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
Shubha et al. {USHER}: Holistic interference avoidance for resource optimized {ML} inference
CN108776934A (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
JP2014191594A (ja) 分散処理システム
JP6915532B2 (ja) 情報処理装置、情報共有システムおよび同期制御方法
Rawat et al. Geolocation-aware resource management in cloud computing-based cognitive radio networks
JP7367257B1 (ja) 通信管理装置および通信管理方法
Wang et al. Solving coupling security problem for sustainable sensor-cloud systems based on fog computing
Wah et al. Resource scheduling for local computer systems with a multiaccess network
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN108958933A (zh) 任务执行器的配置参数更新方法、装置及设备
WO2014034037A1 (ja) ルール分配装置、イベント処理システム、ルール分配方法およびルール分配プログラム
Xu et al. Online learning algorithms for offloading augmented reality requests with uncertain demands in MECs
KR20170109185A (ko) 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치
EP3704600B1 (en) Reducing errors introduced by model updates
US9736860B2 (en) Systems and methods for scheduling of a shared resource
Tanveer et al. Toward spectrum efficiency and reliability for heterogeneous users in CR-enabled social Internet of Things
US10691700B1 (en) Table replica allocation in a replicated storage system
KR101600743B1 (ko) 데이터 처리 장치 및 방법
CN119697135A (zh) 资源分配方法、装置、计算机设备、可读存储介质和程序产品
Tairin et al. Embracing uncertainty for equity in resource allocation in ml training
Anta et al. Scheduling dynamic parallel workload of mobile devices with access guarantees

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014532763

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

Country of ref document: EP

Kind code of ref document: A1