WO2010090027A1 - 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法 - Google Patents

分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法 Download PDF

Info

Publication number
WO2010090027A1
WO2010090027A1 PCT/JP2010/000684 JP2010000684W WO2010090027A1 WO 2010090027 A1 WO2010090027 A1 WO 2010090027A1 JP 2010000684 W JP2010000684 W JP 2010000684W WO 2010090027 A1 WO2010090027 A1 WO 2010090027A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
topic
node
event topic
control message
Prior art date
Application number
PCT/JP2010/000684
Other languages
English (en)
French (fr)
Inventor
石川雄一
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US13/147,675 priority Critical patent/US20110307603A1/en
Priority to JP2010549406A priority patent/JPWO2010090027A1/ja
Publication of WO2010090027A1 publication Critical patent/WO2010090027A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Definitions

  • the present invention relates to a distributed event distribution system, and more particularly to a broker node and an event topic control method in the distributed event distribution system.
  • Event distribution systems are widely used.
  • the event distribution system pushes a change in a state (ie, an event) such as a baseball game score change, a stock price change, and a weather change in real time from an event server (publisher) to an event client (subscriber).
  • a state ie, an event
  • This is a distribution system.
  • the event distribution procedure from the Publisher to the Subscriber is as follows. 1) Sending an advertise message 2) Sending a subscribe message 3) Creating a routing table 4) Sending a publish message; and 5) Forwarding a publish message
  • the event distribution system is divided into a centralized event distribution system that operates the event distribution system by a single server node and a distributed event distribution system that operates the event distribution system by a plurality of broker nodes.
  • a distributed event distribution system will be briefly described with reference to FIGS.
  • FIG. 1 is a diagram showing an example of a network configuration for generally explaining an event distribution system.
  • events are distributed from a plurality of publishers (hereinafter referred to as “Publishers”) PUB to a plurality of subscribers (hereinafter referred to as “Subscribers”) SUB through a network of a plurality of broker nodes EB.
  • Subscribers a plurality of publishers
  • Subscribers subscribers
  • a network having two publishers (PUB X , PUB Y ), two subscribers (SUB Z , SUB W ), and six broker nodes EB A -EB E Is illustrated.
  • FIG. 2 is a network configuration diagram for explaining the transmission of the Advertise message.
  • the Publisher notifies the event distribution system of what kind of event is to be distributed by an Advertise message.
  • the PublisherPUB decides an event topic (hereinafter referred to as “event Topic”, here “Kanto weather”) distributed by itself, and transmits it in an Advertise message (Adv).
  • the event Topic represents a topic of information transmitted using the event Topic. Publishers and Subscribers can use the same event Topic to send and receive events on the same topic.
  • the event Topic may have a hierarchical relationship with other event Topic.
  • the hierarchical relationship that there is is illustrated.
  • a filtering rule can be described in the Advertise message.
  • the Filtering rule can describe an arbitrary condition regarding the content of the event. Examples include keywords included in the event and the time zone when the event was sent.
  • the content of the event is described in XML, it can be described using Xpath. In the example shown in FIG. 2, PUB X designates “Kanagawa weather” and PUB Y designates “Tokyo weather” as filtering rules.
  • the Advertise message is first transmitted to the broker node to which the publisher is directly connected, and then the forwarding process is repeated by the broker node and delivered to the broker node called the rendezvous node.
  • the rendezvous node is selected from a plurality of broker nodes for each event Topic. If there is no broker node corresponding to the event Topic when the Advertise message is transmitted, it is newly selected.
  • PUB X sends an Advertise message Adv1 to broker node EB A , which is forwarded from EB A to rendezvous node EB F.
  • PUB Y sends an Advertise message Adv2 to broker node EB B , which is forwarded from EB B to rendezvous node EB F.
  • the broker node that transfers the Advertise message creates the Advertisement table AT when transferring the Advertise message.
  • the event Topic and Filtering rules described in the received Advertise message Adv are registered, and information for identifying the node of the immediately preceding hop is registered.
  • an advertisement table AT A including information such as the event Topic “Kanto weather”, Filtering rule “Kanagawa”, “PUB X ” identifying the immediately preceding hop node is generated in the broker node EB A.
  • the advertisement tables AT B and AT F are respectively created in the same manner.
  • FIG. 3 is a network configuration diagram for explaining the transmission of a Subscribe message.
  • the Subscriber notifies the event distribution system of what event is desired to be received by a Subscribe message.
  • the Subscriber determines an event Topic to be received, and transmits the event Topic in a Subscribe message. If the event to be received is limited to a narrower range of contents in the event Topic, a Filtering rule can be described in the Subscribe message in addition to the event Topic.
  • SUB Z designates “Yokohama weather” as the filtering rule in the Subscribe message Sub1
  • SUB W designates “Kawasaki weather” as the filtering rule in the Subscribe message Sub2.
  • the Subscribe messages Sub1 and Sub2 are repeatedly transferred by the broker node toward the rendezvous node EB F corresponding to the event Topic, similarly to the Advertise message.
  • a routing table is generated at the broker node as described below.
  • the event delivery system creates an event routing table for event delivery based on the Advertise message and the Subscribe message.
  • a broker node that transfers an Advertise message creates an Advertisement table AT when transferring the Advertise message.
  • the broker node creates a subscription table ST when transferring a subscription message.
  • the event Topic and Filtering rules described in the received Subscribe message Sub are registered, and information for identifying the node of the immediately preceding hop is registered.
  • the broker node merges the Filtering rules to reduce the table size or reduce the number of times the Subscribe message is transferred.
  • the broker node EB C has these Filtering rules “Yokohama” and “Kawasaki”. Is merged with “Kanagawa”.
  • the rendezvous node EB F that has received the Subscribe message Sub3 can transfer the Subscribe message Sub3 to the further broker node EB A by referring to the already created Advertisement table AT F.
  • the Subscribe message Sub3 is transferred on the reverse path of the Advertise message, and the Filtering rule specified by the Subscriber is registered in the broker node on the route. As described below, this makes it possible to filter the Publish message in the vicinity of the Publisher, thereby preventing unnecessary event distribution.
  • FIG. 4 is a network configuration diagram for explaining the transfer of the Publish message.
  • the Publish message is sequentially transferred by each of the broker nodes EB A , EB F , and EB C referring to the Subscription table. All Publish messages are basically delivered to the subscriber via the rendezvous node.
  • the broker node performs transfer only when the contents of the event of the Publish message are included in the range of the Filtering rule described in the Subscription table. For example, in FIG. 4, the broker node EB C, in order to Filtering rule notified from the broker node EB E "Kanagawa / Kawasaki" does not include the contents of the Publish message event, the Publish for broker node EB E Does not forward messages.
  • the event Topic is determined by estimating the occurrence frequency of events in advance. In other words, when the occurrence frequency is estimated to be high, the event Topic is narrowed to realize load balancing of the rendezvous node. When the occurrence frequency is estimated to be low, the event Topic is widened and the number of Subscribe messages and the routing table size are increased. Was achieved.
  • the method of estimating the event occurrence frequency in advance and determining the event Topic cannot flexibly cope with a change in load status.
  • an object of the present invention is to provide a broker node and an event topic control method that can flexibly cope with a change in an event transfer load in a distributed event distribution system.
  • the broker node dynamically changes the event topic for transferring the event according to the fluctuation of the transfer load and the monitoring means for monitoring the fluctuation of the transfer load of the event applied to the own node for each event rule. And a control means for notifying another node of an instruction accompanying the change by a control message.
  • the event topic control method monitors the change in the transfer load of the event applied to the own node for each event rule, and dynamically changes the event topic for transferring the event according to the change in the transfer load, An instruction associated with the change is notified to another node by a control message.
  • a publisher node is a publisher node in a distributed event distribution system having a plurality of broker nodes, and is an advertisement transmission means for transmitting an advertise message and a publish message for transmitting a publish message.
  • the control message is instructed by the control message for the new event topic or the merge destination event topic indicated by the control message.
  • the rendezvous node is sent as the final destination, and the new event topic or the merge destination event topic is displayed in the control message.
  • a control means for controlling so that a specific event topics that are instructed to use the cement transfer transmits the publish message to the rewritten to new events topic or the merge destination event topic.
  • the subscriber node is a subscriber node in a distributed event distribution system having a plurality of broker nodes, and receives a publish message and a subscribe transmission means for transmitting a subscribe message.
  • a control message instructing change of an event topic is received from a publish receiving means and a broker node
  • a Subscribe message describing a new event topic or merge destination event topic instructed in the control message is instructed in the control message.
  • a distributed event distribution system includes a publisher node that transmits an advertise message and a publish message, a subscriber node that transmits a subscribe message and receives the publish message.
  • a plurality of broker nodes that perform event transfer processing from the publisher node to the subscriber node, each broker node monitoring a change in event transfer load on the own node for each event rule, and the transfer
  • FIG. 1 It is a figure which shows the network structural example for demonstrating generally an event delivery system. It is a network block diagram for demonstrating transmission of an Advertise message. It is a network block diagram for demonstrating transmission of a Subscribe message. It is a network block diagram for demonstrating the transfer of a Publish message. It is a block diagram which shows the functional structure of the broker node containing the event Topic control apparatus by 1st Embodiment of this invention.
  • (A) is a figure which shows an example of a Subscription table
  • (B) is a figure which shows an example of Advertisement table. It is a figure which shows an example of the notification policy set to the transfer load fluctuation notification policy management table. It is a figure which shows an example of the control policy set to the event Topic control policy management table.
  • the broker node EB In a network as shown in FIG. 1, the broker node EB according to the present embodiment is provided with an event monitoring unit and an event Topic control unit which will be described later.
  • the event Topic represents a topic of information transmitted using the event Topic. Publishers and Subscribers can use the same event Topic to send and receive events on the same topic.
  • the event Topic may have a hierarchical relationship with other event Topic.
  • the event monitoring unit When transferring an event that matches a specific rule (hereinafter referred to as an event rule), the event monitoring unit measures the load applied to the node, and the transfer load fluctuation for the event rule is a specific pattern (hereinafter referred to as a transfer load fluctuation). If the pattern matches, the event rule and the transfer load fluctuation pattern are notified to the event Topic control unit.
  • the event monitoring unit estimates that a transfer load of an event that matches a specific event rule matches a specific transfer load fluctuation pattern based on a specific policy (transfer load fluctuation estimation policy), and the event rule and the transfer load The variation pattern may be notified to the event Topic control unit.
  • the event topic control unit receives a notification from the event monitoring unit, creates a new event topic or deletes the event topic, and transmits an event topic control message to the broker node, the publisher, and the subscriber related to the event topic. Notify new creation or deletion.
  • an event Topic control message is received from another broker node, the message is transferred to another broker node, the Publisher, or the Subscriber.
  • the broker node EB dynamically changes the event topic in accordance with a change in the load of event transfer, and notifies the other node by an instruction accompanying this change by the control message. Can respond flexibly to fluctuations in the load.
  • the configuration and operation of the broker node will be described in more detail.
  • FIG. 5 is a block diagram showing a functional configuration of a broker node including the event Topic control device according to the first embodiment of the present invention
  • FIG. 6A is a diagram showing an example of a Subscription table
  • FIG. 6B is a diagram illustrating an example of the Advertisement table.
  • the broker node EB functionally includes a subscription table 101, an advertisement table 102, a routing table management unit 103, and an event transfer unit 104, and further includes an event monitoring unit 105 and a transfer load change notification policy management table 106. And an event topic control unit 107 and an event topic control policy management table 108.
  • the Subscription table 101 and the Advertisement table 102 information on the event Topic, the filtering rule, and the next hop is registered for each entry ID as illustrated in FIG.
  • the routing table management unit 103 transfers the Advertisement message and the Subscribe message received from the adjacent broker node EB, Subscriber, or Publisher, and updates the Subscription table 101 or the Advertisement table 102 based on the information included in the received message. .
  • the routing table management unit 103 registers the adjacent node that has transferred the message to the own node in the Advertisement table 102 together with the event Topic and Filtering rules included in the Advertise message as the next hop.
  • the routing table management unit 103 When receiving the Subscribe message, the routing table management unit 103 registers the adjacent node that has transferred the message to the own node in the Subscription table 101 as a Next hop together with the event Topic and Filtering rules included in the Subscribe message.
  • the Filtering rule of the entry and the Filtering rule included in the received Subscribe message are merged. can do. For example, it is assumed that an entry having the event Topic “Kanto weather” and the filtering rule “/ Kanagawa / Yokohama” has already been registered in the Subscription table 101. Then, when a Subscribe message having the event Topic “Kanto weather” and the filtering rule “/ Kanagawa / Kawasaki” is received, an entry in which the Filtering rule is merged with “/ Kanagawa /” can be created and the existing entry can be deleted. it can. As a result, an increase in the size of the subscription table 101 is suppressed, and the time required for table search can be saved.
  • the received Subscribe message is transferred to the adjacent broker node on the route from the local node to the rendezvous node.
  • the event Topic of the Subscribe message is the same as the entry already registered in the Subscription table, and the relationship between the filtering rule F_sx of the entry and the filtering rule F_sy of the Subscribe message is “F_sy is included in F_sx”.
  • F_sx) the Subscribe message is not transferred. For example, if F_sy is / Yokohama / and F_sx is / Kanagawa /, the Subscribe message is not transferred.
  • the event transfer unit 104 When the event transfer unit 104 receives a publish message from the adjacent broker node EB or publisher, the event transfer unit 104 refers to the subscription table 101 and searches for an entry in which the received publish message is the same as the event topic and the event content matches the filtering rule. Then, the Publish message is transferred to the next hop registered in the searched entry.
  • the transfer load fluctuation estimation policy is registered in the transfer load fluctuation notification policy management table 106, and the event monitoring unit 105 determines that the transfer load fluctuation related to the specific event rule is based on the transfer load fluctuation estimation policy. It may be estimated that matches. In this case, the event rule and the estimated transfer load fluctuation pattern are notified to the event Topic control unit 107.
  • Event rules First, the event rule will be described. Examples of event rules are as follows.
  • Filtering rules (A) Filtering rule registered in Subscription table or Advertisement table; Arbitrary condition to be satisfied by event notified by Publish message; Keyword included in event and time zone of transmission. If the event content is described in XML, a rule described using Xpath can be considered; (B) Filtering rule set in advance: Same as (2.a) above.
  • the event rule can be expressed by a combination of the event Topic (1) and other rules. That is, the event Topic is always described in each event rule. A plurality of event topics may be specified in a single event rule.
  • the event Topic specified in the event rule is referred to as “target event Topic”.
  • Examples of the load measured by the event monitoring unit 105 include the following parameters.
  • Network bandwidth A network bandwidth that is occupied to transfer an event that matches the event rule.
  • CPU time CPU time required to transfer an event that matches the event rule. For example, the required CPU time increases as the filtering rules applied to the event become more complex.
  • various parameters can be considered as the load to be measured. These parameters may be used alone or in combination with a plurality of parameters.
  • transfer load fluctuation patterns include the following.
  • the transfer load exceeds or falls below a preset threshold value.
  • various patterns can be considered as transfer load fluctuation patterns. These patterns can be used alone, or a plurality of patterns can be combined and used as one transfer load fluctuation pattern.
  • the transfer load fluctuation notification policy management table 106 registers as a notification policy what kind of transfer load fluctuation pattern is detected for each event rule and notified to the event Topic control unit 107.
  • FIG. 7 is a diagram showing an example of a notification policy set in the transfer load fluctuation notification policy management table.
  • the event load that matches the event Topic “Kanto weather” and the filtering rule “/ Kanagawa / Yokohama” matches any pattern of A, B, (C ⁇ E), or (D ⁇ F).
  • a notification to the event Topic control unit 107 is generated.
  • (C ⁇ E) is a logical product of C and E, and means the following pattern. That is, the event monitoring unit 105 measures the network bandwidth and CPU usage rate used for event transfer, and refers to the transfer load fluctuation notification policy management table 106, so that the network bandwidth in the event rule exceeds 1 Mbps. (Pattern C), whether the CPU usage rate exceeds 50% (Pattern E) is determined. When both patterns C and E are satisfied (C ⁇ E), the event monitoring unit 105 notifies the event Topic control unit 107 of the event rule and the transfer load variation pattern of the (C ⁇ E).
  • the estimated policy consists of observed events and estimated events.
  • the event monitoring unit 105 estimates that an event described as an estimated event has occurred or will occur in the future.
  • Transfer events that match the event rules ⁇ Transfer load of events that match the event rules matches the transfer load fluctuation pattern
  • various events can be considered as observed events. These events can be used alone, or a plurality of events can be combined and used as one observation event.
  • the estimated event is a change in the transfer load for a specific event rule.
  • a single estimated event may be estimated from a plurality of observed events, or a plurality of estimated events may be estimated from a single observed event.
  • a single estimated event may be estimated from a logical expression obtained by combining a plurality of observed events with logical symbols such as AND and OR. For example, IF (observed event A AND observed event B), THEN (estimated event C); that is, if observed event A and observed event B are observed, the occurrence of estimated event C is estimated.
  • An estimated event may be estimated from time series conditions of a plurality of observed events. For example, when event B is observed within 10 minutes after observation of event A, the occurrence of estimated event C after 1 hour is estimated.
  • Event Topic Control Unit of Broker Node When receiving the load fluctuation notification from the event monitoring unit 105, the event Topic control unit 107 refers to the event Topic control policy management table 108, as will be described later. A new creation or deletion is performed, and an event Topic control message is transmitted. The event Topic control message notifies the broker node EB or the publisher or subscriber related to the event Topic of new creation or deletion of the event Topic.
  • the event Topic control policy management table 108 a control policy in which the notification content from the event monitoring unit 105 and the operation content of the event Topic control unit 107 are described is set.
  • the event Topic control unit 107 includes the control policy.
  • Event Topic is created / deleted according to the above.
  • FIG. 8 is a diagram showing an example of a control policy set in the event Topic control policy management table.
  • Event Topic to be created or deleted (2) A transfer load fluctuation pattern notified from the event monitoring unit 105.
  • an event Topic corresponding to the event rule whose transfer load variation pattern is measured or estimated is newly created. For example, when it is notified that the transfer load exceeds a threshold for an event that matches the event rule of event Topic: “Kanto weather” and Filtering rule: “Kanagawa / Yokohama /”, the event Topic, “ Yokohama weather "is newly created.
  • the event Topic corresponding to the event rule whose transfer load variation pattern is measured or estimated is deleted. For example, when it is notified that the transfer load has fallen below the threshold for an event that matches the event rule of event Topic: “Yokohama weather”, the event Topic “Yokohama weather” is deleted.
  • the event Topic control unit 107 immediately creates or deletes the event Topic. If it is estimated that the notification content will occur in the future, the event Topic is created or deleted at the timing described in the notification content. For example, when it is notified that the estimated event A occurs after 10 minutes, the event Topic is created or deleted after 10 minutes.
  • a rendezvous node responsible for the new event Topic is selected from other broker nodes EB. Then, in the event Topic control message, the created new event Topic, the new rendezvous node, and the event rule (including the target event Topic) notified from the event monitoring unit 105 are described and transmitted to create the new event Topic. Notify other nodes.
  • an event Topic (hereinafter referred to as a merge destination event Topic) that matches the event Topic to be deleted is determined from the existing event Topic. For example, when the event Topic “Yokohama weather” is deleted, “Kanto weather” is selected from the existing event Topic as the merge destination event Topic. Therefore, an event that has been transferred using the event Topic “Yokohama weather” is deleted and then transferred using “Kanto weather”. Subsequently, the event topic control unit 107 describes the merge destination event topic and the event rule notified from the event monitoring unit 105 (if the target event topic is included, the target event topic becomes the deletion target event topic). The event Topic control message is transmitted, and the deletion of the existing event Topic is notified to other nodes.
  • the creation and deletion of the event Topic may be performed simultaneously. For example, if a single event Topic control message is used to notify both the deletion of the event Topic and the creation of the event Topic, and the newly created event Topic is notified as the merge destination event Topic of the deletion target event Topic, the event Topic is moved. Can be realized.
  • creation and deletion of multiple event topics may be notified at the same time, an existing event topic is deleted, a plurality of event topics are newly created, and a plurality of newly created event topics are set as merge destination event topics. If notified, division of an existing event Topic into a plurality of event Topics can also be realized.
  • the operation content of the event topic control unit 107 is described for each event rule and transfer load variation pattern.
  • ID 1
  • a new event Topic is created.
  • a policy is described.
  • the event topic control unit 107 transfers an event topic control message with reference to the subscription table 101 and the advertisement table 102.
  • an entry that matches the target event Topic described in the event Topic control message is searched from the Subscription table 101 and / or the Advertisement table 102, and the event Topic is moved to the next hop described in the entry. Forward control messages.
  • the event Topic control message may not be forwarded to the described next hop.
  • the reason is that the next hop does not transfer an event using the new event Topic (more specifically, transfer of an event that matches the rule described in the event Topic control message). By doing so, the number of event Topic control message transfers can be suppressed.
  • an existing event Topic is to be deleted, an entry matching the target event Topic described in the event Topic control message is searched from the Subscription table 101 and / or the Advertisement table 102, and the next hop described in the entry is searched. And event Topic control message.
  • An entry that matches the deletion target event Topic may be deleted from the Subscription table 101 and the Advertisement table 102 immediately after the transfer of the event Topic control message or after a certain time has passed. In this way, unnecessary entries can be deleted quickly, and publishers and subscribers can delete Advertise messages and Subscribe messages (that is, Advertises indicating that events of the deletion target event Topic will not be sent and received in the future). Messages and Subscribe messages) are not required to be transmitted, and traffic generated by the transfer of the messages can be suppressed. If the event Topic control message is not deleted, it is only necessary to delete the Advertise message and Subscribe message stating that the event of the deletion target event Topic will not be transmitted / received in the future.
  • routing table management unit 103 The functions of the routing table management unit 103, the event transfer unit 104, the event monitoring unit 105, and the event topic control unit 107 described above can be realized by executing a program on a program control processor such as a CPU.
  • FIG. 9 is a block diagram schematically showing a functional configuration of a publisher in the present embodiment.
  • the Publisher PUB includes an Advertise transmission unit 201, an event generation unit 202, a Publish transmission unit 203, and an event Topic control message reception unit 204.
  • the Advertise transmission unit 201 describes the event Topic in the Advertise message, and transmits it to the broker node that is directly connected to the local node with the rendezvous node in charge of the event Topic as the final destination.
  • the event generation unit 202 detects some state change, that is, an event, and notifies the Publish transmission unit 203 of the change.
  • Examples of the event generation unit 202 include a sensor device that detects a change in weather and an application that detects the presence of a user.
  • the Publish transmission unit 203 describes the event Topic corresponding to the event together with the event notified from the event generation unit 202 in the Publish message, and transmits it to the broker node directly connected to the own node.
  • a single value may be set in advance for the event Topic, or a rule for determining the event Topic may be set based on the event content.
  • the event topic control message reception unit 204 receives an event topic control message from the broker node, rewrites and transfers the event topic of the publish message transmitted by the publish transmission unit 203, and sends an advertise message to the advertise transmission unit 201. Execute.
  • the final destination of the Publish message is rewritten to the rendezvous node responsible for the new event Topic and transferred to the broker node directly connected to the own node. Further, it instructs the Advertise transmission unit 201 to transmit the Advertise message in which the new event Topic is described with the rendezvous node in charge of the new event Topic as the final destination.
  • the event to be deleted Topic is an event Topic that has been added by an event Topic control message in the past, that is, if an event Topic control message notifying the creation of a new event to be deleted has been received, the event Topic to the event to be deleted Topic Cancel rewriting.
  • the event Topic of the merge destination is specified in the received event Topic control message
  • the event rewritten to the deletion target event Topic is rewritten to the merge destination event Topic.
  • the merge destination event Topic is not designated, the event is transmitted with the event Topic originally set in the own node. If the event to be deleted Topic is not an event Topic that was added in the past by an event Topic control message (that is, an event Topic that was originally set in the local node), an event that matches the event Topic to be deleted is set as a merge destination event Topic. Try to rewrite.
  • the publisher function described above can be realized by executing a program on a program control processor such as a CPU.
  • FIG. 10 is a block diagram schematically showing a functional configuration of a subscriber according to the present embodiment.
  • the Subscriber SUB includes a Subscribe transmission unit 301, an event Topic control message reception unit 302, and a Publish reception unit 303.
  • the Subscribe sending unit 301 describes the event Topic in the Subscribe message, and sends the rendezvous node in charge of the event Topic to the broker node directly connected to the own node as the final destination.
  • the event Topic control message receiving unit 302 receives the event Topic control message from the broker node, rewrites and transfers the event Topic of the Publish message received by the Publish receiving unit 303, and instructs the Subscribe sending unit 301 to send the Subscribe message.
  • the Publish receiving unit 303 receives the Publish message, extracts an event from the received message, and passes it to an application (not shown).
  • the event Topic control message receiving unit 302 intercepts a Publish message including an event that matches the event rule described in the message after receiving the message.
  • the event Topic of the event is rewritten to a new event Topic. Further, it instructs the Subscribe transmitting unit 301 to transmit a Subscribe message in which the new event Topic is described, with the rendezvous node in charge of the new event Topic as the final destination.
  • the event to be deleted Topic is an event Topic that has been added by an event Topic control message in the past, that is, if an event Topic control message notifying the creation of a new event to be deleted has been received, the event Topic to the event to be deleted Topic Cancel rewriting.
  • the event Topic of the merge destination is specified in the received event Topic control message
  • the event rewritten to the deletion target event Topic is rewritten to the merge destination event Topic.
  • the merge destination event Topic is not designated, the event is transmitted with the event Topic originally set in the own node. If the event to be deleted Topic is not an event Topic that was added in the past by an event Topic control message (that is, an event Topic that was originally set in the local node), an event that matches the event Topic to be deleted is set as a merge destination event Topic. Try to rewrite.
  • Subscriber function can be realized by executing a program on a program control processor such as a CPU.
  • Event Topic Control Operation Next, the operation of the distributed event distribution system according to the present embodiment will be described. First, the operation when creating a new event Topic will be described with reference to the examples shown in FIGS.
  • the transfer load fluctuation notification policy management table 106 is provided in the broker node EB, and an event rule and a transfer load fluctuation pattern (that is, a notification policy) are set in advance.
  • an event rule and a transfer load fluctuation pattern that is, a notification policy
  • the event monitoring unit 105 detects that the event transfer load of a specific event rule matches the transfer load variation pattern by referring to the transfer load variation notification policy management table 106 (or estimates that it matches)
  • the event rule and the transfer load fluctuation pattern are notified to the event Topic control unit 107.
  • the event topic control unit 107 When receiving a load change notification from the event monitoring unit 105, the event topic control unit 107 creates a new event topic corresponding to the notified event rule and selects a rendezvous node from among broker nodes.
  • the distributed event distribution system shown in FIG. 11 will be described as an example.
  • FIG. 11 is a network diagram for explaining a procedure for creating a new event Topic in the distributed event distribution system according to the present embodiment.
  • the broker node EB F is selected as the rendezvous node responsible for the event Topic “Kanto weather”.
  • the contents shown in FIG. 7 are set as the notification policy in the transfer load fluctuation notification policy management table 106 of the broker node EB F.
  • the event Topic control unit 107 of the broker node EB F creates an event Topic control message, and refers to the Advertisement table and the Subscription table to the next hop that matches the event rule notified from the event monitoring unit 105. Send a control message.
  • FIG. 12 is a network diagram for explaining an event Topic control message transmission procedure in the distributed event distribution system according to the present embodiment. However, FIG. 12 shows an operation after the operation of the distributed event distribution system shown in FIG. 11 is completed.
  • the broker node EB F creates an event Topic control message shown in FIG. 12 as "ETC", with reference to the Advertisement table AT F and Subscription table ST F itself and transmits the event Topic control message ETC.
  • ETC event Topic control message
  • the Subscription table ST F event Topic control message ETC is transferred to the broker node EB C.
  • the broker nodes EB A and EB C transfer the received event Topic control message ETC with reference to the Advertisement table and the Subscription table.
  • Next Hop no transfer event Topic control message, for example from the broker node EB C and EB A to EB F
  • the transfer of the event Topic control message ETC referring to the advertisement table and the subscription table of each broker node is repeated, and finally the event Topic control message ETC transmits an event using the newly created event Topic.
  • All Publishers and Subscribers here, PUB X and SUB Z ) that receive data.
  • FIG. 13 is a network diagram for explaining an event delivery path construction procedure in the distributed event delivery system according to the present embodiment. However, FIG. 13 shows an operation after the operation of the distributed event distribution system shown in FIG. 12 is completed.
  • the PublisherPUB X and the SubscriberSUB Z that have received the event Topic control message ETC directly connect the Advertise message and the Subscriber node in which the new event Topic is described with the rendezvous node EB 3 notified by the event Topic control message ETC as the final destination. Send to. As a result, an event delivery path corresponding to the new event Topic is constructed.
  • the PublisherPUB X When receiving the event Topic control message ETC, the PublisherPUB X transmits an Advertise message describing the new event Topic “Weather in Yokohama” with the new rendezvous node EB 3 described in the event Topic control message ETC as the final destination. This message is transferred at the broker nodes EB 1 and EB 2 (an entry in the Advertisement table is created as in the case of normal Advertise message transfer), and reaches the new rendezvous node EB 3 .
  • the Subscriber SUB Z receives the event Topic control message ETC, the Subscriber SUB 3 describes the new event Topic “Weather in Yokohama” with the new rendezvous node EB 3 described in the event Topic control message ETC as the final destination.
  • a new entry is created on the subscription table of the broker nodes EB 4 , EB 3 , EB 2 , and EB 1 .
  • FIG. 14 is a network diagram for explaining an event transfer procedure in the distributed event distribution system according to the present embodiment. However, FIG. 14 shows an operation after the operation of the distributed event distribution system shown in FIG. 13 is completed.
  • the event can be transferred using the newly created event Topic.
  • the event topic control message reception unit 204 of the publisher PUB X intercepts the event, and the event of the event Rewrite Topic to new event Topic. Accordingly, the Publish message is transferred to the Subscriber SUB Z using the new event Topic. That is, the event is transferred using the event distribution path corresponding to the new event Topic created in the above-described steps. Since the event transfer using the new event Topic is transferred via the rendezvous node EB 3 in charge of the new event Topic, the load is distributed among the rendezvous nodes.
  • the event topic control message reception unit 302 of the subscriber SUB Z rewrites the event topic pic of the event received using the new event topic and passes it to the publish reception unit 303.
  • PublisherPUB X rewrites the event Topic of the event matching / Kanagawa / Yokohama with “weather in Yokohama” and transmits it.
  • the event is transferred to the Subscriber SUB Z via the new rendezvous node EB 3 by the event delivery path constructed by the operation shown in FIG.
  • FIG. 15 is a network diagram for explaining a procedure for deleting an event Topic in the distributed event distribution system according to the present embodiment. However, FIG. 15 shows an operation after the operation of the distributed event distribution system shown in FIG. 14 is completed.
  • the event monitoring unit 105 detects or matches that the event transfer load of a specific event rule matches the transfer load fluctuation pattern, The event rule and the transfer load fluctuation pattern are notified to the event Topic control unit 107.
  • the event topic control unit 107 selects the target event Topic of the notified event rule as the deletion target event Topic, and selects the merge destination event Topic and the rendezvous node.
  • the event Topic control unit 107 creates an event Topic control message ETC, refers to the Advertisement table and the Subscription table, and sends the event Topic control message ETC to the next hop that matches the event rule notified from the event monitoring unit 105. Send.
  • the broker node that transfers the event Topic control message ETC deletes an entry that matches the deletion target event Topic described in the event Topic control message. As a result, the event delivery path used for event transfer of the deletion target event Topic is deleted.
  • the broker node EB 3 detects or estimates that the change in the transfer load of the event Topic “Yokohama weather” matches the transfer load change pattern associated with the deletion of the event Topic.
  • the event Topic control message ETC shown in FIG. 5 is created, and the message is transmitted to the next hop of the entry having the event Topic “Yokohama weather” registered in the Advertisement table and the Subscription table.
  • the event Topic control message ETC is sequentially transferred to the next hop of the entry having the event Topic “Yokohama weather” registered in the Advertisement table and the Subscription table by the broker node that has received the event Topic control message ETC, and finally the event Topic “Yokohama It is delivered to Publisher PUB X and Subscriber SUB Z that send and receive events using “weather”.
  • each broker node EB 1 to EB 4 that has transferred the event Topic control message ETC deletes the entry having the event Topic “Weather in Yokohama” from the Advertisement table and the Subscription table. As a result, the event delivery path used for transferring the event Topic “Yokohama weather” is deleted.
  • the broker node When the event transfer load increases or is expected to increase, the broker node according to the present embodiment creates a new event Topic and newly selects a rendezvous node that is responsible for the new event Topic, and then sends it to the Publisher or Subscriber. Instructs to create a new event delivery path.
  • the event delivery path is newly created by transmitting the Advertise message and the Subscribe message to the rendezvous node in which the Publisher or Subscriber receiving the instruction is newly selected.
  • Publisher and Subscriber send and receive events using a new event distribution path for some or all events.
  • the load of event transfer has increased or is expected to increase
  • the load of the existing event distribution path can be distributed to the newly created event distribution path.
  • the broker node when the event event transfer load is reduced or expected to decrease, deletes the existing event Topic and the merge destination event Topic that should be used for transmission / reception of the event after the deletion.
  • the event delivery path corresponding to the deleted event Topic is instructed to the Publisher or Subscriber.
  • the Publisher or Subscriber Upon receiving the instruction, deletes the event delivery path by transmitting an Advertise message or Subscribe message.
  • the existing event delivery path when the event transfer load is reduced or expected to decrease, the existing event delivery path can be deleted to reduce the overhead associated with maintaining the event delivery path. .
  • the Publisher and the Subscriber transmit / receive an event transmitted / received using the deleted event Topic using the merge destination event Topic.
  • the event can be transmitted and received even after the event delivery path is deleted.
  • the broker node has an event rule that can be added as a condition in addition to an event Topic, such as a filtering rule and an attribute of a publish message, and the event monitoring unit in the broker node sets each event rule. This is to monitor the transfer load.
  • the broker node creates a new event Topic corresponding to an event rule whose transfer load is increased or is expected to increase, selects a new rendezvous node, and transfers the event rule to the Publisher and Subscriber together with the new event Topic and the new rendezvous node. Notify and instruct to create a new event delivery path.
  • the Publisher and Subscriber Upon receiving the instruction, the Publisher and Subscriber transmit and receive an event that matches the notified event rule using the new event distribution path after creating the new event distribution path.
  • the method according to the present embodiment that is, a method in which a plurality of event distribution paths used for event transmission / reception of the same event Topic are prepared and the load distribution is performed by using the event distribution path by a method such as round robin Efficient.
  • the broker node can newly create or delete an event distribution path without grasping individual publishers and subscribers.
  • the reason is that the event Topic control message is transmitted and transferred in the broker node with reference to the Advertisement table and the Subscription table.
  • the Advertisement table and the Subscription table the next hop of the route to the Publisher and Subscriber that transmits and receives an event that matches the event Topic and Filtering rule is registered for each event Topic and Filtering rule.
  • the broker node forwards the event Topic control message to the Next hop of the Advertisement table and Subscription table that match the event rule of the event Topic control message, so that each broker node does not have to know the individual publishers and subscribers.
  • the event Topic control message can be delivered to the Publisher and Subscriber.
  • the broker node When there are a very large number (for example, 10 million) of Publishers and Subscribers, and when connection and disconnection to the event delivery path of Publishers and Subscribers are frequently performed, the broker node has an IP address of each Publisher or Subscriber. Although it is unrealistic to always grasp the participation state in the event distribution path, the broker node according to the present embodiment can cope with such a case.
  • Second Embodiment The second embodiment of the present invention has the same basic configuration as the first embodiment, but the reach of the event Topic control message is set near the broker node that created the new event Topic. The point which can restrict
  • FIG. 16 is a network diagram showing an event distribution path of the event Topic “Kanto weather”. As described above, the event distribution path 401 is set from the rendezvous node in charge of “weather in Kanto” to a plurality of publishers and subscribers.
  • FIG. 17 is a network diagram showing an event distribution path of the event Topic “Yokohama Weather” in the first embodiment of the present invention.
  • the event Topic control message reachable range 403 is the end of the event delivery path. That is, all the publishers and subscribers are reached. In other words, an event delivery path for a new event Topic “Yokohama Weather” is newly constructed from the end.
  • FIG. 18 is a network diagram showing an event distribution path of the event Topic “Yokohama Weather” in the second embodiment of the present invention.
  • the reach 501 of the event Topic control message is limited to the vicinity of the rendezvous node responsible for the event Topic “Kanto weather”.
  • the event delivery path of the new event Topic “Yokohama Weather” uses the same route as the event Topic “Kanto Weather” near the end of the Publisher and Subscriber, and the different route is used for the event Topic “Kanto” Only in the vicinity of the rendezvous node in charge of
  • the reach of the event Topic control message is limited to the vicinity of the broker node that has created the new event Topic.
  • FIG. 19 is a block diagram showing a functional configuration of a broker node including an event Topic control device according to the second embodiment of the present invention, and FIG. 20 is set in the event Topic control policy management table. It is a figure which shows an example of the control policy which is set. It should be noted that blocks having the same functions as those of the broker node in the first embodiment shown in FIG.
  • the broker node EB functionally includes a subscription table 101, an advertisement table 102, a routing table management unit 103, and an event transfer unit 104, and further includes an event monitoring unit 105 and a transfer load change notification policy management table 106.
  • the event topic control unit 601 functionally includes a TTL control unit 601a for setting / changing the reach of the event topic control message, as will be described later.
  • the broker node EB in the present embodiment and the broker node EB in the first embodiment shown in FIG. 5 are different in the functions of the event Topic control unit 601 and the event Topic control policy management table 602, and further the event Topic control message receiving unit. 603, Subscribe transmission unit 604 and Advertise transmission unit 605 are different. Hereinafter, this different point will be described in detail.
  • the event Topic control unit 601 in FIG. 19 has a TTL control unit 601a as a reach control function for arbitrarily controlling the reach for an event Topic control message.
  • the reach of the event Topic control message can be arbitrarily controlled as follows. For example, a TTL (Time To Live) value is set at a node that creates an event Topic control message, and when transferring an event Topic control message received from another broker node, the TTL value is reduced by 1 and the TTL value is zero. Otherwise, the sequence is executed, and if the TTL value becomes zero, the event Topic control message is received and not transferred.
  • TTL Time To Live
  • the control policy set in the event Topic control unit 601 is an extension of the control policy of the first embodiment shown in FIG. That is, the TTL value set in the event Topic control message is set as a part of the operation content corresponding to the event rule and the transfer load fluctuation pattern.
  • the calculation of the TTL when transferring the event Topic control message received from another broker node can be flexibly changed according to its own load. Basically, a process of subtracting 1 is performed at the time of transfer. For example, when the load is extremely low, the event Topic control message transfer range (that is, a range for constructing a new event delivery path) is reduced by 5 at the time of transfer. ) Can be limited to the vicinity of itself. On the other hand, when the load is large, the transfer range can be expanded by increasing the TTL by one.
  • the event Topic control unit 601 in this embodiment decrements TTL by 1 when transferring an event Topic control message received from another broker node.
  • TTL value becomes zero
  • the event Topic control message reception unit 603 To receive the event Topic control message.
  • the event Topic control message reception unit 603 is the same as the event Topic control message reception unit (204, 302) of the Publisher or Subscriber in the first embodiment shown in FIGS. Receive processing. Specifically, it is as follows.
  • the event Topic control message receiving unit 603 When an adjacent broker node transfers an event Topic control message to its own node by referring to the Advertisement table, the event Topic control message receiving unit 603 is connected to the event Topic control message receiving unit 204 of the Publisher in the first embodiment. Similar processing is performed. In other words, the event Topic control message receiving unit 603 sends an Advertise message describing the new event Topic notified by the event Topic control message to the Advertise transmission unit 605, and a new rendezvous node notified by the event Topic control message. Instruct to send as final destination.
  • the event rule described in the event Topic control message is referred to, and the Publish message including an event that matches the event rule is intercepted. Then, the event Topic of the Publish message is rewritten to the new event Topic notified by the event Topic control message.
  • the event is distributed using the new event Topic. That is, the event is distributed using the new event distribution path created when the new event Topic is created.
  • the event Topic control message receiving unit 603 is connected to the event Topic control message receiving unit 302 of the Subscriber in the first embodiment. Similar processing is performed. That is, the event Topic control message receiving unit 603 sends a Subscribe message describing the new event Topic notified by the event Topic control message to the Subscribe sending unit 604, and a new rendezvous node notified by the event Topic control message. Instruct to send as final destination.
  • the publish message including the event of the new event Topic is intercepted by referring to the new event Topic described in the received event Topic control message. Then, the event Topic of the Publish message is rewritten to the target event Topic described in the event rule. After rewriting, the event is distributed using the target event Topic. That is, the event is distributed using the event distribution path for distributing the event of the target event Topic that has existed before the creation of the new event Topic.
  • the Subscribe transmission unit 604 receives a command from the event Topic control message reception unit 603, receives a Subscribe message describing the new event Topic notified by the event Topic control message, and a new rendezvous node notified by the event Topic control message. Send as final destination.
  • the Advertise sending unit 605 receives the instruction from the event Topic control message receiving unit 603 and sends the Advertise message describing the new event Topic notified by the event Topic control message to the new rendezvous node also notified by the event Topic control message. Send as final destination.
  • routing table management unit 103 event transfer unit 104, event monitoring unit 105, event Topic control unit 601, event Topic control message reception unit 603, Subscribe transmission unit 604, and Advertise transmission unit 605 are the same as those described above. It can also be realized by executing a program on a program control processor.
  • a) Overhead associated with new creation and deletion of an event delivery path can be suppressed. Specifically, it is as follows.
  • the broker node that transmits the event Topic control message can arbitrarily control the reach by setting the TTL of the event Topic control message. Further, the broker node whose TTL of the event Topic control message becomes 0 at the time of transfer can transmit the Advertise message and the Subscribe message instead of the Publisher and the Subscriber. This eliminates the need to transfer the event Topic control message to the end of the event delivery path (that is, Publisher, Subscriber), and it is possible to suppress the overhead associated with newly creating and deleting the event delivery path.
  • the range in which a new event distribution path is created can be controlled in accordance with fluctuations in the event transfer load. This is because the broker node that transmits or forwards the event Topic control message can change the TTL value of the event Topic control message in accordance with the fluctuation of the event transfer load. For example, the larger the detected increase in the load, the larger the TTL value can be set, so that the event Topic control message reaches a wide range, and a new event distribution path can be created in a wider range. become.
  • the present invention is applicable to broker node-based distributed event delivery systems in general.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 ブローカノードは、分散型イベント配信システムにおいてイベントの転送処理を行うブローカノードであって、イベント転送負荷の変動に柔軟に対応するために、イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視する監視手段と、転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージ(イベントTopic制御メッセージ)により他のノードへ通知する制御手段とを備えている。

Description

分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法
 本発明は分散型イベント配信システムに係り、特に分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法に関する。
 イベント配信システムが広く利用されている。イベント配信システムは、野球の試合のスコア変化、株価の変化、天候の変化など、何らかの状態の変化(すなわちイベント)をリアルタイムかつプッシュでイベントサーバ(パブリッシャ:Publisher)からイベントクライアント(サブスクライバ:Subscriber)へ配信するシステムである。イベント配信システムにおいて、PublisherからSubscriberへのイベントの配信手順は次の通りである。
1)アドバタイズ(Advertise)メッセージの送信
2)サブスクライブ(Subscribe)メッセージの送信
3)ルーティングテーブルの作成
4)Publishメッセージの送信;および5)Publishメッセージの転送
 イベント配信システムは単一のサーバノードによりイベント配信システムを運用する集中型イベント配信システムと複数のブローカノードによりイベント配信システムを運用する分散型イベント配信システムに分けられる。以下、非特許文献1に基づき、分散型イベント配信システムについて図1~図4を参照しながら簡単に説明する。
 図1はイベント配信システムを一般的に説明するためのネットワーク構成例を示す図である。ここでは、複数のパブリッシャ(以下、Publisherと記す。)PUBから複数のサブスクライバ(以下、Subscriberと記す。)SUBへ複数のブローカノードEBのネットワークを通してイベントが配信される。ただし、以下の説明では、簡略化するために、2つのPublisher(PUB、PUB)と、2つのSubscriber(SUB、SUB)と、6つのブローカノードEB-EBとを有するネットワークを例示する。
1)Advertiseメッセージの送信
 図2はAdvertiseメッセージの送信を説明するためのネットワーク構成図である。Publisherは、どのようなイベントを配信するかをAdvertiseメッセージによりイベント配信システムへ通知する。まず、PublisherPUBは自身が配信するイベントトピック(以下、イベントTopicと記す。ここでは「関東の天気」)を決め、Advertiseメッセージ(Adv)に記載して送信する。なお、イベントTopicは、当該イベントTopicを用いて発信される情報のトピックを表す。PublisherやSubscriberが同一のイベントTopicを用いることで同一トピックのイベントの発信、受信を行うことが可能になる。イベントTopicは他のイベントTopicとの階層関係を持っていてもよい。ここでは、「日本の天気」の下位に「関東の天気」、「東海の天気」・・・があり、「関東の天気」の下位に「東京の天気」、「横浜の天気」・・・がある、という階層関係を例示する。
 Publisherは自身が配信するイベントがイベントTopic内のさらに狭い範囲の内容に限定される場合、イベントTopicに加えて、フィルタリング(Filtering)ルールをAdvertiseメッセージに記載することができる。Filteringルールはイベントの内容に関する任意の条件を記述することができる。イベントに含まれるキーワードや発信された時間帯などが例として挙げられる。また、イベントの内容がXMLで記述される場合はXpathを用いて記述することが考えられる。図2に示す例では、PUBが「神奈川の天気」、PUBが「東京の天気」をFilteringルールとして指定している。
 Advertiseメッセージは最初にPublisherが直接接続しているブローカノードに対して送信され、その後ブローカノードにより転送処理が繰り返されてランデブーノードと呼ばれるブローカノードへ届けられる。ランデブーノードは、後述するように、イベントTopic毎に複数のブローカノードから選択される。Advertiseメッセージ送信時にイベントTopicに対応するブローカノードが存在しない場合には新規に選択される。図2によれば、PUBがAdvertiseメッセージAdv1をブローカノードEBへ送信し、EBからランデブーノードEBへ転送される。同様に、PUBがAdvertiseメッセージAdv2をブローカノードEBへ送信し、EBからランデブーノードEBへ転送される。
 Advertiseメッセージを転送するブローカノードは、転送する際にAdvertisementテーブルATを作成する。AdvertisementテーブルATには、受信したAdvertiseメッセージAdvに記載されたイベントTopic、Filteringルールが登録されるほか、直前ホップのノードを識別する情報が登録される。ここでは、ブローカノードEBに、イベントTopic「関東の天気」、Filteringルール「神奈川」、直前ホップのノードを識別する「PUB」などの情報を含むアドバタイズメント(Advertisement)テーブルATが生成される。ブローカノードEBおよびランデブーノードEBでも、同様にしてAdvertisementテーブルATおよびATがそれぞれ作成される。
2)Subscribeメッセージの送信
 図3はSubscribeメッセージの送信を説明するためのネットワーク構成図である。Subscriberは、どのようなイベントを受信したいかをSubscribeメッセージによりイベント配信システムへ通知する。Subscriberは、受信したいイベントTopicを決め、Subscribeメッセージに記載して送信する。受信したいイベントがイベントTopic内のさらに狭い範囲の内容に限定される場合には、イベントTopicに加えて、FilteringルールをSubscribeメッセージに記載することができる。ここでは、SUBがSubscribeメッセージSub1にFilteringルールとして「横浜の天気」を、SUBがSubscribeメッセージSub2にFilteringルールとして「川崎の天気」を、それぞれ指定している。
 SubscribeメッセージSub1およびSub2は、Advertiseメッセージと同様に、イベントTopicに対応したランデブーノードEBへ向けてブローカノードにより転送処理が繰り返し行われる。この転送処理を行う際に、次に述べるようにブローカノードでルーティングテーブルが生成される。
3)ルーティングテーブルの作成
 イベント配信システムは、AdvertiseメッセージおよびSubscribeメッセージに基づいて、イベント配信のためのイベントルーティングテーブルを作成する。図2に示すように、Advertiseメッセージを転送するブローカノードは、転送する際にAdvertisementテーブルATを作成する。図3に示すように、ブローカノードはSubscribeメッセージを転送する際、サブスクリプション(Subscription)テーブルSTを作成する。
 SubscriptionテーブルSTには、受信したSubscribeメッセージSubに記載されたイベントTopic、Filteringルールが登録されるほか、直前ホップのノードを識別する情報が登録される。ただし、複数のSubscribeメッセージSubにおいてFilteringルールの地域範囲が重複する場合には、当該ブローカノードはFilteringルールをマージして、テーブルサイズの抑制を図ったり、Subscribeメッセージの転送回数を減らしたりする。
 たとえば、ブローカノードEBは、SubscribeメッセージSub1のFilteringルールが「神奈川/横浜」であり、SubscribeメッセージSub2のFilteringルールが「神奈川/川崎」であるから、これらのFilteringルール「横浜」および「川崎」を「神奈川」にマージする。これによって、ランデブーノードEBへ転送するSubscribeメッセージ数を1つ(Sub3)に減らし、ランデブーノードEBで作成されるテーブルエントリの数も1つに抑制することができる(SubscriptionテーブルST)。
 また、SubscribeメッセージSub3を受信したランデブーノードEBは、既に作成されたAdvertisementテーブルATを参照することで、更に先のブローカノードEBへSubscribeメッセージSub3を転送することができる。これにより、SubscribeメッセージSub3がAdvertiseメッセージのリバースパスを転送されることになり、経路上のブローカノードにSubscriberの指定したFilteringルールが登録されていく。これによって、以下で述べるように、Publisherの近くでPublishメッセージのフィルタリングを行うことが可能になり、不要なイベントの配信が防止される。
 以上の動作によりPublisherからランデブーノードを経由し、Subscriberへ至るイベント配信ツリーが作成されることになる。
4)Publishメッセージの送信
 イベントが発生すると、Publisherは、イベントTopicおよびイベントを記載したPublishメッセージをイベント配信システムへ送信する。
5)Publishメッセージの転送
 図4はPublishメッセージの転送を説明するためのネットワーク構成図である。Publishメッセージは、ブローカノードEB、EB、EBの各々がSubscriptionテーブルを参照することで順次転送される。Publishメッセージは基本的に全てランデブーノードを経由してSubscriberへ配信されることになる。
 ブローカノードは、Subscriptionテーブルに記載されたFilteringルールの範囲内にPublishメッセージのイベントの内容が含まれる場合にのみ転送を行う。例えば、図4において、ブローカノードEBは、ブローカノードEBから通知されたFilteringルール「神奈川/川崎」にPublishメッセージのイベントの内容が含まれないため、ブローカノードEBに対しては当該Publishメッセージの転送は行わない。
Peter Pietzuch and Jean Bacon Hermes: A Distributed Event-Based Middleware Architecture 1st International Workshop on Distributed Event-Based Systems (DEBS'02), http://www.doc.ic.ac.uk/~peter/manager/doc/prp-debs 2002-hermes.pdf
 上述した非特許文献1に記載されたような分散型イベント配信システムでは、イベントTopicの決め方が重要となる。例えば、日本の天気に関するイベントを配信する場合、イベントTopicを「日本の天気」といったように広い範囲でとるとランデブーノードには「日本の天気」に含まれるイベントが全て配信されることとなる。このために、台風が接近した場合などイベントの発生頻度が高くなった場合、ランデブーノードのPublishメッセージ転送負荷は非常に高くなってしまう。
 一方でイベントTopicを「横浜の天気」といったように狭い範囲でとった場合、地域毎にランデブーノードが選択されることでランデブーノードの負荷は分散されるが、多数のイベントTopicが並立することになる。このために、上述したようなFilteringルールのマージが行われず、Subscribeメッセージ数やルーティングテーブル数が増加してしまう。
 このように上述した分散型イベント配信システムでは、事前にイベントの発生頻度を推定してイベントTopicを決めていた。すなわち、発生頻度が高いと見積もられる場合にはイベントTopicを狭くとることでランデブーノードの負荷分散を実現し、発生頻度が低いと見積もられる場合にはイベントTopicを広くとりSubscribeメッセージ数やルーティングテーブルサイズの抑制を実現していた。
 しかしながら、当初の見積もりと比較してイベントの発生頻度が高くなれば、ランデブーノードへ負荷が集中することになり、低くなれば負荷分散の効果に比べSubscribeメッセージ数やルーティングテーブルサイズ等のコストの方が大きくなる。このように事前にイベントの発生頻度を推定してイベントTopicを決めておく方式では、負荷の状況変化に柔軟に対応することができない。
 そこで、本発明の目的は、分散型イベント配信システムにおいてイベント転送負荷の変動に柔軟に対応することができるブローカノードおよびイベントトピック制御方法を提供することにある。
 本発明によるブローカノードは、イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視する監視手段と、転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージにより他のノードへ通知する制御手段とを備えたことを特徴とする。
 本発明によるイベントトピック制御方法は、イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視し、転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、変更に伴う指示を制御メッセージにより他のノードへ通知することを特徴とする。
 本発明によるパブリッシャ(Publisher)ノードは、複数のブローカノードを有する分散型イベント配信システムにおけるパブリッシャノードであって、アドバタイズ(Advertise)メッセージを送信するアドバタイズ送信手段と、パブリッシュ(Publish)メッセージを送信するパブリッシュ送信手段と、ブローカノードからイベントトピックの変更を指示する制御メッセージを受信すると、前記制御メッセージで指示された新規イベントトピックまたはマージ先イベントトピックを記載したアドバタイズ(Advertise)メッセージを前記制御メッセージで指示されたランデブーノードを最終宛先として送信し、前記制御メッセージで前記新規イベントトピックまたは前記マージ先イベントトピックをイベントの転送に用いるよう指示された特定のイベントトピックを前記新規イベントトピックまたは前記マージ先イベントトピックに書き換えたパブリッシュメッセージを送信するように制御する制御手段とを備えたことを特徴とする。
 本発明によるサブスクライバ(Subscriber)ノードは、複数のブローカノードを有する分散型イベント配信システムにおけるサブスクライバノードであって、サブスクライブ(Subscribe)メッセージを送信するサブスクライブ送信手段と、パブリッシュ(Publish)メッセージを受信するパブリッシュ受信手段と、ブローカノードからイベントトピックの変更を指示する制御メッセージを受信すると、前記制御メッセージで指示された新規イベントトピックまたはマージ先イベントトピックを記載したSubscribeメッセージを前記制御メッセージで指示されたランデブーノードを最終宛先として送信するように指示する制御手段とを備えたことを特徴とする。
 本発明による分散型イベント配信システムは、アドバタイズ(Advertise)メッセージおよびパブリッシュ(Publish)メッセージを送信するパブリッシャ(Publisher)ノードと、サブスクライブ(Subscribe)メッセージを送信し、前記パブリッシュメッセージを受信するサブスクライバノードと、パブリッシャノードからサブスクライバノードへのイベントの転送処理を行う複数のブローカノードとを備え、各ブローカノードは、イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視する監視手段と、前記転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージにより他のノードへ通知する制御手段とを有すること特徴とする。
 本発明によれば、分散型イベント配信システムにおいてイベント転送負荷の変動に柔軟に対応することができる。
イベント配信システムを一般的に説明するためのネットワーク構成例を示す図である。 Advertiseメッセージの送信を説明するためのネットワーク構成図である。 Subscribeメッセージの送信を説明するためのネットワーク構成図である。 Publishメッセージの転送を説明するためのネットワーク構成図である。 本発明の第1実施形態によるイベントTopic制御装置を含むブローカノードの機能的構成を示すブロック図である。 (A)はSubscriptionテーブルの一例を示す図、(B)はAdvertisementテーブルの一例を示す図である。 転送負荷変動通知ポリシ管理テーブルに設定されている通知ポリシの一例を示す図である。 イベントTopic制御ポリシ管理テーブルに設定されている制御ポリシの一例を示す図である。 本実施形態におけるPublisherの機能的構成を概略的に示すブロック図である。 本実施形態におけるSubscriberの機能的構成を概略的に示すブロック図である。 本実施形態による分散型イベント配信システムにおける新規イベントTopicの作成手順を説明するためのネットワーク図である。 本実施形態による分散型イベント配信システムにおけるイベントTopic制御メッセージの送信手順を説明するためのネットワーク図である。 本実施形態による分散型イベント配信システムにおけるイベント配信パスの構築手順を説明するためのネットワーク図である。 本実施形態による分散型イベント配信システムにおけるイベント転送手順を説明するためのネットワーク図である。 本実施形態による分散型イベント配信システムにおけるイベントTopicの削除手順を説明するためのネットワーク図である。 イベントTopic「関東の天気」のイベント配信パスを示すネットワーク図である。 本発明の第1実施形態におけるイベントTopic「横浜の天気」のイベント配信パスを示すネットワーク図である。 本発明の第2実施形態におけるイベントTopic「横浜の天気」のイベント配信パスを示すネットワーク図である。 本発明の第2実施形態によるイベントTopic制御装置を含むブローカノードの機能的構成を示すブロック図である。 イベントTopic制御ポリシ管理テーブルに設定されている制御ポリシの一例を示す図である。
1.第1実施形態
 図1に示すようなネットワークにおいて、本実施形態によるブローカノードEBには、後述するイベント監視部とイベントTopic制御部とが設けられている。なお、既に述べたように、イベントTopicは、当該イベントTopicを用いて発信される情報のトピックを表す。PublisherやSubscriberが同一のイベントTopicを用いることで同一トピックのイベントの発信、受信を行うことが可能になる。イベントTopicは他のイベントTopicとの階層関係を持っていてもよい。
 イベント監視部は、特定のルール(以下、イベントルール)に合致するイベントを転送する際、自ノードにかかる負荷を測定し、当該イベントルールについて転送負荷の変動が特定のパターン(以下、転送負荷変動パターン)にマッチする場合に、当該イベントルールと転送負荷変動パターンとをイベントTopic制御部へ通知する。イベント監視部は、特定のポリシ(転送負荷変動推定ポリシ)に基づいて特定のイベントルールに合致するイベントの転送負荷が特定の転送負荷変動パターンにマッチすることを推定し、当該イベントルールと転送負荷変動パターンをイベントTopic制御部へ通知してもよい。
 イベントTopic制御部はイベント監視部からの通知を受け、イベントTopicの新規作成または削除を行うと共に、イベントTopic制御メッセージを送信することで当該イベントTopicに関係するブローカノードおよびPublisher、SubscriberへイベントTopicの新規作成または削除を通知する。また、他のブローカノードからイベントTopic制御メッセージを受信した場合には、当該メッセージを他のブローカノードまたはPublisher、Subscriberへ転送する。
 このように、本実施形態によるブローカノードEBは、イベント転送の負荷の変動に応じてイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージにより他のノードへ通知するので、イベント転送の負荷の変動に柔軟に対応できる。以下、ブローカノードの構成および動作をより詳細に説明する。
1.1)ブローカノードの構成
 図5は本発明の第1実施形態によるイベントTopic制御装置を含むブローカノードの機能的構成を示すブロック図、図6(A)はSubscriptionテーブルの一例を示す図、図6(B)はAdvertisementテーブルの一例を示す図である。
 図5において、ブローカノードEBは、機能的に、Subscriptionテーブル101、Advertisementテーブル102、ルーティングテーブル管理部103およびイベント転送部104を有し、さらに、イベント監視部105および転送負荷変動通知ポリシ管理テーブル106と、イベントTopic制御部107およびイベントTopic制御ポリシ管理テーブル108とを有する。Subscriptionテーブル101およびAdvertisementテーブル102には、図6に例示するように、エントリID毎に、イベントTopic、Filteringルールおよびネクストホップに関する情報がそれぞれ登録される。
 ルーティングテーブル管理部103は、隣接するブローカノードEB、SubscriberまたはPublisherから受信したAdvertisementメッセージおよびSubscribeメッセージを転送するとともに、受信したメッセージに含まれる情報を元にしてSubscriptionテーブル101またはAdvertisementテーブル102を更新する。
 Advertiseメッセージを受信した場合、ルーティングテーブル管理部103は、Advertiseメッセージに含まれるイベントTopic、Filteringルールと共に、当該メッセージを自ノードへ転送した隣接ノードをNextホップとしてAdvertisementテーブル102に登録する。
 Subscribeメッセージを受信した場合、ルーティングテーブル管理部103は、Subscribeメッセージに含まれるイベントTopic、Filteringルールと共に、当該メッセージを自ノードへ転送した隣接ノードをNextホップとしてSubscriptionテーブル101に登録する。
 なお、すでにSubscriptionテーブル101に登録されているエントリのイベントTopicおよびNextホップと、受信したSubscribeメッセージのそれらとが同一の場合、当該エントリのFilteringルールと受信したSubscribeメッセージに含まれるFilteringルールとをマージすることができる。例えば、Subscriptionテーブル101に既にイベントTopic「関東の天気」、Filteringルール「/神奈川/横浜」を持つエントリが登録されているとする。そして、イベントTopic「関東の天気」、Filteringルール「/神奈川/川崎」を持つSubscribeメッセージを受信した場合、Filteringルールを「/神奈川/」にマージしたエントリを作成し、既存エントリを削除することができる。これによりSubscriptionテーブル101のサイズ増加が抑制され、テーブル検索にかかる時間を節約できる。
 受信したSubscribeメッセージは自ノードからランデブーノードへの経路上にある隣接ブローカノードへ転送する。なお、SubscribeメッセージのイベントTopicが既にSubscriptionテーブルに登録されているエントリと同一であり、かつ当該エントリのFilteringルールF_sxとSubscribeメッセージのFilteringルールF_syとの関係が「F_syがF_sxに含まれる(F_sy⊆F_sx)」場合、Subscribeメッセージの転送を行わない。例えばF_syが/横浜/、F_sxが/神奈川/であれば、Subscribeメッセージの転送を行わない。
 一度ランデブーノードへ到達した後のSubscribeメッセージを受信した場合には、Advertisementテーブル102を参照し、同一イベントTopicのエントリに登録されたNextホップへ転送することができる。ただし、SubscribeメッセージのFilteringルールF_syと当該エントリのFilteringルールF_szとの重なりが空集合の場合(F_sy∩F_sz=φ)、Subscribeメッセージの転送を行わない。
 イベント転送部104は、隣接ブローカノードEBまたはPublisherからPublishメッセージを受信すると、Subscriptionテーブル101を参照し、受信したPublishメッセージとイベントTopicが同じでイベント内容がFilteringルールに合致するエントリを検索する。そして、検索されたエントリに登録されているNextホップへ当該Publishメッセージを転送する。
 次に、本実施形態によるイベントTopic制御装置におけるイベント監視部105および負荷変動通知ポリシ管理テーブル106と、イベントTopic制御部107およびイベントTopic制御ポリシ管理テーブル108と、について詳細に説明する。
1.2)ブローカノードのイベント監視部
 イベント監視部105は、特定のルール(以下、イベントルール)に合致するイベントを転送する際、自ノードにかかる負荷を測定する。そして、当該イベントルールに関する転送負荷の変動が転送負荷変動通知ポリシ管理テーブル106に登録されている特定のパターン(以下、転送負荷変動パターン)とマッチするかどうかを判定する。この転送負荷変動パターンにマッチする場合には、当該イベントルールと当該転送負荷変動パターンとをイベントTopic制御部107へ通知する。
 また、転送負荷変動通知ポリシ管理テーブル106に転送負荷変動推定ポリシを登録しておき、イベント監視部105は特定イベントルールに関する転送負荷の変動が転送負荷変動推定ポリシに基づいて特定の転送負荷変動パターンにマッチすることを推定してもよい。この場合には、当該イベントルールと推定された転送負荷変動パターンとをイベントTopic制御部107へ通知する。
<イベントルール>
 まずイベントルールについて説明する。イベントルールの例としては以下のようなものが考えられる。
(1)イベントTopic
 イベントTopicそのもの。必ず設定される。
(2)Filteringルール:
 (a)SubscriptionテーブルやAdvertisementテーブルに登録されているFilteringルール;Publishメッセージにより通知されるイベントが満たすべき任意の条件;イベントに含まれるキーワードや発信された時間帯など。また、イベントの内容がXMLで記述される場合はXpathを用いて記述されたルールが考えられる;
 (b)事前に設定したFilteringルール:上記(2.a)と同じ。
(3)Publishメッセージの属性に基づくルール
 イベントの内容そのものではなく、イベントを伝送するPublishメッセージの属性情報、たとえばHTTPやSIPの他TCP、UDP、IPのヘッダー情報に関するルール:
 (a)Publishメッセージのサイズ;
 (b)Publishメッセージの送信元Subscriber;
 (c)Publishメッセージに添付されたファイルの種類(静止画、動画、音声)。
 この他にも様々なルールが考えられる。イベントルールは、上記(1)のイベントTopicとその他のルールとの組み合わせによって表現されうる。すなわち、各イベントルールには必ずイベントTopicが記載される。単一のイベントルールに複数のイベントTopicが指定されていてもよい。以下、イベントルールに指定されたイベントTopicを「ターゲットイベントTopic」と呼ぶ。
<転送負荷変動パターン>
 イベント監視部105が測定する負荷としては以下のようなパラメータが挙げられる。
・頻度:上記イベントルールに合致するイベントを単位時間当たりに転送する回数。
・ネットワーク帯域:上記イベントルールに合致するイベントを転送するために占有されるネットワーク帯域。
・CPU時間:上記イベントルールに合致するイベントの転送に必要なCPU時間。例えば当該イベントに適用するFilteringルールが複雑なほど必要なCPU時間は増加する。
 この他にも測定する負荷として様々なパラメータが考えられる。これらパラメータは単独で用いられてもよいし、複数のパラメータを組み合わせて測定してもよい。
 転送負荷変動パターンとしては、つぎのようなものが挙げられる。
(1)転送負荷が事前に設定した閾値を上回る、または下回る。
(2)一定時間内の転送負荷の最小値と最大値の差、すなわち転送負荷の変動幅が事前に設定した閾値を上回る、または下回る。
 この他にも転送負荷変動パターンとして様々なパターンが考えられる。これらのパターンは単独で用いることもできるし、複数のパターンを組み合わせて一つの転送負荷変動パターンとして用いることもできる。
 転送負荷変動通知ポリシ管理テーブル106には、各イベントルールについてどのような転送負荷変動パターンを検出した場合にイベントTopic制御部107へ通知するかが通知ポリシとして登録されている。
 図7は転送負荷変動通知ポリシ管理テーブルに設定されている通知ポリシの一例を示す図である。例えばID=1のエントリでは、イベントTopic「関東の天気」、Filteringルール「/神奈川/横浜」にマッチするイベントの転送負荷がA、B、(CΛE)、(DΛF)のいずれかのパターンにマッチした場合に、イベントTopic制御部107への通知が発生する。また、ID=4やID=5のエントリでは、イベントルールとしてイベントTopicのみが記載されている。
 一例として(CΛE)は、CとEとの論理積であり、次のようなパターンを意味する。すなわち、イベント監視部105は、イベント転送に利用するネットワーク帯域およびCPU使用率を測定し、転送負荷変動通知ポリシ管理テーブル106を参照することで、当該イベントルールでのネットワーク帯域が1Mbpsを超えているか(パターンC)、CPU使用率が50%を超えているか(パターンE)を判定する。パターンCおよびEの両方を満たしたとき(CΛE)に、イベント監視部105は、当該イベントルールと当該(CΛE)の転送負荷変動パターンとをイベントTopic制御部107へ通知する。
<推定ポリシ>
 推定ポリシは観測事象と推定事象で構成される。イベント監視部105は観測事象として記述された事象が観測された場合、推定事象として記述された事象が起きたこと、または将来起きることを推定する。
 観測事象としては以下の事象が挙げられる。
・イベントルールに合致するイベントを転送
・イベントルールに合致するイベントの転送負荷が転送負荷変動パターンにマッチ
 この他にも観測事象として様々な事象が考えられる。これらの事象は単独で用いることもできるし、複数の事象を組み合わせて一つの観測事象として用いることもできる。
 推定事象は、特定のイベントルールについての転送負荷の変動である。
 観測事象と推定事象の組み合わせは様々な組み合わせを用いることができる。例えば、複数の観測事象から単一の推定事象を推定したり、単一の観測事象から複数の推定事象を推定したりしてもよい。また、複数の観測事象をANDやOR等の論理記号で組み合わせた論理式から単一の推定事象を推定してもよい。たとえば、IF(観測事象A AND 観測事象B)、THEN(推定事象C);すなわち観測事象Aおよび観測事象Bを観測したならば推定事象Cの発生を推定する。複数の観測事象の時系列的条件から推定事象を推定してもよい。たとえば、事象Aを観測後10分以内に事象Bを観測した場合には推定事象Cの1時間後の発生を推定する。
1.3)ブローカノードのイベントTopic制御部
 イベントTopic制御部107は、イベント監視部105からの負荷変動通知を受けると、後述するように、イベントTopic制御ポリシ管理テーブル108を参照してイベントTopicの新規作成または削除を行うと共に、イベントTopic制御メッセージを送信する。イベントTopic制御メッセージにより、当該イベントTopicに関係するブローカノードEBまたはPublisherやSubscriberへイベントTopicの新規作成または削除を通知する。
 また、他のブローカノードEBからイベントTopic制御メッセージを受信した場合には、当該メッセージを他のブローカノードEBまたはPublisher、Subscriberへ転送する。
 イベントTopic制御ポリシ管理テーブル108には、イベント監視部105からの通知内容とイベントTopic制御部107の動作内容とが記述された制御ポリシが設定されており、イベントTopic制御部107は、この制御ポリシに従ってイベントTopicの作成・削除を行う。
<制御ポリシ>
 図8はイベントTopic制御ポリシ管理テーブルに設定されている制御ポリシの一例を示す図である。
 制御ポリシでは、以下2つの動作内容とイベント監視部105からの通知内容との関係が記述される。
(1)作成または削除するイベントTopic
(2)イベント監視部105から通知される転送負荷変動パターン。
 転送負荷変動パターンとして、転送負荷が閾値を上回った(または将来上回ると推定される)と通知された場合、または、転送負荷が閾値として設定された変動幅以上に増加した(または将来増加すると推定される)と通知された場合は、当該転送負荷変動パターンが測定または推定されたイベントルールに対応するイベントTopicを新規に作成する。例えば、イベントTopic:「関東の天気」、Filteringルール:「神奈川/横浜/」のイベントルールにマッチするイベントについて転送負荷が閾値を上回ったと通知された場合は、当該イベントに対応するイベントTopic、「横浜の天気」を新規に作成する。
 また、転送負荷変動パターンとして転送負荷が閾値を下回った(または将来下回ると推定される)と通知された場合、または転送負荷が閾値として設定された変動幅以上に低下した(または将来低下すると推定される)と通知された場合は、当該転送負荷変動パターンが測定または推定されたイベントルールに対応するイベントTopicを削除する。例えば、イベントTopic:「横浜の天気」のイベントルールにマッチするイベントについて転送負荷が閾値を下回ったと通知された場合は、イベントTopic「横浜の天気」を削除する。
<イベントTopicの作成または削除>
 イベント監視部105からの通知内容が実際に測定したもの(または、現時点で起きている事象として推定したもの)であれば、イベントTopic制御部107は即時にイベントTopicの作成または削除を行う。通知内容が将来起きると推定したものであれば、通知内容に記載されたタイミングでイベントTopicの作成または削除を行う。例えば10分後に推定事象Aが起きると通知された場合は、10分後にイベントTopicの作成または削除を行う。
<イベントTopic制御メッセージの作成・削除>
 新規にイベントTopicを作成する場合、新規イベントTopicを担当するランデブーノード(新規ランデブーノード)を他のブローカノードEBから選択する。そして、イベントTopic制御メッセージに、作成した新規イベントTopicと新規ランデブーノード、さらにイベント監視部105から通知されたイベントルール(ターゲットイベントTopicが含まれる)を記載して送信し、新規イベントTopicの作成を他のノードへ通知する。
 イベントTopicの削除を行う場合、削除対象のイベントTopicにマッチするイベントTopic(以下、マージ先イベントTopic)を既存のイベントTopicの中から決める。例えば「横浜の天気」というイベントTopicを削除する場合、マージ先イベントTopicとして「関東の天気」を既存のイベントTopicの中から選択する。したがって、イベントTopic「横浜の天気」を利用して転送していたイベントは削除された後、「関東の天気」を利用して転送される。続いて、イベントTopic制御部107は、マージ先イベントTopicと、イベント監視部105から通知されたイベントルール(ターゲットイベントTopicが含まれる場合はターゲットイベントTopicが削除対象イベントTopicとなる。)とを記載したイベントTopic制御メッセージを送信し、既存イベントTopicの削除を他のノードへ通知する。
 なお、イベントTopicの作成と削除は同時に行ってもよい。たとえば、一つのイベントTopic制御メッセージによって、イベントTopicの削除およびイベントTopicの作成の両方を通知し、削除対象イベントTopicのマージ先イベントTopicとして新規に作成したイベントTopicを通知すれば、イベントTopicの移動を実現することができる。
 また、複数のイベントTopicについて作成と削除を同時に通知してもよく、既存のイベントTopicを削除し、複数のイベントTopicを新規作成するとともに、新規に作成した複数のイベントTopicをマージ先イベントTopicとして通知すれば、既存のイベントTopicの複数のイベントTopicへの分割を実現することもできる。
 図8に例示するように、イベントルールおよび転送負荷変動パターン毎にイベントTopic制御部107の動作内容が記述されている。たとえばID=1のエントリでは、図7に示したイベントルールID=1-3に合致するイベントの転送負荷の変動パターンが転送負荷変動パターンAにマッチした場合に、イベントTopicを新規作成する、というポリシが記載されている。また、ID=2、ID=7のエントリのようにワイルドカード(*印)などを用い、任意のイベントルールについて特定の転送負荷変動パターンに転送負荷の変動がマッチした場合の動作内容を記載することもできる。
<イベントTopic制御メッセージの転送>
 イベントTopic制御部107は、Subscriptionテーブル101およびAdvertisementテーブル102を参照してイベントTopic制御メッセージを転送する。新規イベントTopic作成時であれば、イベントTopic制御メッセージに記載されたターゲットイベントTopicと合致するエントリをSubscriptionテーブル101および/またはAdvertisementテーブル102から検索し、当該エントリに記載されたNextホップへとイベントTopic制御メッセージを転送する。
 検索したエントリに記載されたFilteringルール(F_p)とイベントTopic制御メッセージに記載されたルール(F_q)とに重複範囲がない場合、すなわちF_p∩F_q=φ(空集合)の場合は、当該エントリに記載されたNextホップへとイベントTopic制御メッセージを転送しなくてもよい。その理由はNextホップが新規イベントTopicを利用したイベントの転送(より詳しく言えばイベントTopic制御メッセージに記載されたルールに合致するイベントの転送)を行うことがないためである。こうすることで、イベントTopic制御メッセージの転送回数を抑制するこができる。
 既存のイベントTopicを削除する場合であれば、イベントTopic制御メッセージに記載されたターゲットイベントTopicと合致するエントリをSubscriptionテーブル101および/またはAdvertisementテーブル102から検索し、当該エントリに記載されたNextホップへとイベントTopic制御メッセージを転送する。イベントTopic制御メッセージの転送を契機としてイベントTopic制御メッセージの転送直後または一定時間経過後に削除対象イベントTopicと合致するエントリをSubscriptionテーブル101、Advertisementテーブル102から削除してもよい。こうすることで、不要なエントリの削除を迅速に行える他、不要エントリ削除のためにPublisherおよびSubscriberがAdvertiseメッセージおよびSubscribeメッセージ(すなわち削除対象イベントTopicのイベントの送受信を今後行わない旨記載されたAdvertiseメッセージおよびSubscribeメッセージ)を送信する必要がなくなるため、当該メッセージの転送により発生するトラヒックを抑制することができる。なお、イベントTopic制御メッセージの転送を契機に削除しない場合は、削除対象イベントTopicのイベントの送受信を今後行わない旨記載されたAdvertiseメッセージおよびSubscribeメッセージを転送したタイミングで削除すればよい。
 なお、上述したルーティングテーブル管理部103、イベント転送部104、イベント監視部105およびイベントTopic制御部107の機能は、それぞれプログラムをCPU等のプログラム制御プロセッサ上で実行することにより実現されうる。
2.Publisherの構成
 図9は本実施形態におけるPublisherの機能的構成を概略的に示すブロック図である。PublisherPUBは、Advertise送信部201、イベント発生部202、Publish送信部203、および、イベントTopic制御メッセージ受信部204からなる。
 Advertise送信部201は、イベントTopicをAdvertiseメッセージに記載し、当該イベントTopicを担当するランデブーノードを最終宛先として自ノードと直接接続するブローカノードへ送信する。
 イベント発生部202は何らかの状態の変化、すなわちイベントを検出しPublish送信部203に通知する。イベント発生部202の例としては天候の変化を検出するセンサデバイスや、ユーザのプレゼンスを検出するアプリケーションなどが挙げられる。
 Publish送信部203はイベント発生部202から通知されたイベントとともにイベントに対応するイベントTopicをPublishメッセージに記載し、自ノードと直接接続するブローカノードへ送信する。イベントTopicは事前に単一の値を設定しておいてもよいし、イベント内容に基づいてイベントTopicを決めるためのルールを設定しておいてもよい。
 イベントTopic制御メッセージ受信部204は、ブローカノードからのイベントTopic制御メッセージの受信、Publish送信部203が送信したPublishメッセージのイベントTopicの書き換えおよび転送、Advertise送信部201へのAdvertiseメッセージ送信の指示などを実行する。
<イベントTopicの書き換え>
 イベントTopic制御メッセージを受信した場合、新規イベントTopicの作成の通知であれば当該メッセージ受信以降、メッセージに記載されたイベントTopicおよびルールに合致するイベントを含むPublishメッセージをインターセプトし、当該イベントのイベントTopicを新規イベントTopicに書き換える。
 また、Publishメッセージの最終宛先は新規イベントTopicを担当するランデブーノードに書き換え、自ノードと直接接続するブローカノードへ転送する。また、Advertise送信部201に対して、新規イベントTopicが記載されたAdvertiseメッセージを、新規イベントTopicを担当するランデブーノードを最終宛先として送信するよう指示する。
 また、既存イベントTopicの削除の通知であれば、以下のように処理する。削除対象イベントTopicが過去にイベントTopic制御メッセージによって追加されたイベントTopicの場合、すなわち削除対象イベントの新規作成を通知するイベントTopic制御メッセージを受信済みの場合は、削除対象イベントTopicへのイベントTopicの書き換えを中止する。
 また、受信したイベントTopic制御メッセージにマージ先のイベントTopicが指定されている場合は、削除対象イベントTopicへ書き換えられていたイベントをマージ先イベントTopicに書き換えるようにする。なお、マージ先イベントTopicが指定されていない場合、イベントはもともと自ノードに設定されていたイベントTopicで送信される。削除対象イベントTopicが過去にイベントTopic制御メッセージによって追加されたイベントTopicでない場合(すなわち元々自ノードに設定されていたイベントTopicの場合)は、削除対象イベントTopicに合致するイベントをマージ先イベントTopicに書き換えるようにする。
 なお、上述したPublisherの機能は、プログラムをCPU等のプログラム制御プロセッサ上で実行することにより実現されうる。
3.Subscriberの構成
 図10は本実施形態におけるSubscriberの機能的構成を概略的に示すブロック図である。SubscriberSUBはSubscribe送信部301、イベントTopic制御メッセージ受信部302およびPublish受信部303からなる。
 Subscribe送信部301はイベントTopicをSubscribeメッセージに記載し、当該イベントTopicを担当するランデブーノードを最終宛先として自ノードと直接接続するブローカノードへ送信する。
 イベントTopic制御メッセージ受信部302はブローカノードからのイベントTopic制御メッセージの受信、Publish受信部303が受信するPublishメッセージのイベントTopicの書き換えおよび転送、Subscribe送信部301へのSubscribeメッセージ送信の指示を行う。
 Publish受信部303はPublishメッセージを受信し、受信メッセージからイベントを取り出してアプリケーション(図示せず)に渡す。
<イベントTopicの書き換え>
 イベントTopic制御メッセージ受信部302は、受信したイベントTopic制御メッセージが新規イベントTopicの作成の通知であれば、当該メッセージ受信以降、メッセージに記載されたイベントルールに合致するイベントを含むPublishメッセージをインターセプトし、当該イベントのイベントTopicを新規イベントTopicに書き換える。また、Subscribe送信部301に対して、新規イベントTopicが記載されたSubscribeメッセージを、新規イベントTopicを担当するランデブーノードを最終宛先として送信するよう指示する。
 また、既存イベントTopicの削除の通知であれば、以下のように処理する。削除対象イベントTopicが過去にイベントTopic制御メッセージによって追加されたイベントTopicの場合、すなわち削除対象イベントの新規作成を通知するイベントTopic制御メッセージを受信済みの場合は、削除対象イベントTopicへのイベントTopicの書き換えを中止する。
 また、受信したイベントTopic制御メッセージにマージ先のイベントTopicが指定されている場合は、削除対象イベントTopicへ書き換えられていたイベントをマージ先イベントTopicに書き換えるようにする。なお、マージ先イベントTopicが指定されていない場合、イベントはもともと自ノードに設定されていたイベントTopicで送信される。削除対象イベントTopicが過去にイベントTopic制御メッセージによって追加されたイベントTopicでない場合(すなわち元々自ノードに設定されていたイベントTopicの場合)は、削除対象イベントTopicに合致するイベントをマージ先イベントTopicに書き換えるようにする。
 なお、上述したSubscriberの機能は、プログラムをCPU等のプログラム制御プロセッサ上で実行することにより実現されうる。
4.イベントTopic制御動作
 次に、本実施形態による分散型イベント配信システムの動作について説明する。まず新規にイベントTopicを作成する際の動作について図11~図14に示した例を参照しながら説明する。
4.1)新規イベントTopicの作成
<転送負荷変動パターンの検出>
 上述したように、ブローカノードEBには転送負荷変動通知ポリシ管理テーブル106が設けられ、予めイベントルールと転送負荷変動パターン(すなわち通知ポリシ)が設定されている。イベント監視部105は、転送負荷変動通知ポリシ管理テーブル106を参照することで特定のイベントルールのイベントの転送負荷が転送負荷変動パターンにマッチしたことを検出すると(または、マッチすると推定すると)、当該イベントルールと転送負荷変動パターンとをイベントTopic制御部107へ通知する。
<ランデブーノードの選択>
 イベントTopic制御部107は、イベント監視部105から負荷変動通知を受けると、通知されたイベントルールに対応するイベントTopicを新規に作成するとともにブローカノードの中からランデブーノードを選択する。以下、図11に示した分散型イベント配信システムを例にとって説明する。
 図11は本実施形態による分散型イベント配信システムにおける新規イベントTopicの作成手順を説明するためのネットワーク図である。ここでは、イベントTopic「関東の天気」を担当するランデブーノードとしてブローカノードEBが選択されているものとする。さらに、ブローカノードEBの転送負荷変動通知ポリシ管理テーブル106には通知ポリシとして図7に示す内容が設定されているものとする。
 例えばブローカノードEBは、イベントTopic「関東の天気」、Filteringルール「/神奈川/横浜」にマッチするイベントの転送頻度が6000イベント/secであると測定すると、図7におけるID=1のエントリにヒットし、ID=1に記載された内容がイベントTopic制御部107に通知される。イベントTopic制御部107は、通知された内容を用いてイベントTopic制御ポリシ管理テーブル108を検索する。図8に示す制御ポリシがイベントTopic制御ポリシ管理テーブル108に登録されている場合、今回の例における通知内容はID=1のエントリとマッチするので、イベントTopic制御部107はイベントTopicを新規に作成し、ランデブーノードを選択する。図11に示した例では、新規イベントTopicとして「横浜の天気」が作成され、当該イベントTopicを担当するランデブーノードとしてブローカノードEBが選択されている。
<イベントTopic制御メッセージの送信>
 次に、ブローカノードEBのイベントTopic制御部107はイベントTopic制御メッセージを作成し、AdvertisementテーブルおよびSubscriptionテーブルを参照してイベント監視部105から通知されたイベントルールに合致するNextホップへ当該イベントTopic制御メッセージを送信する。
 図12は、本実施形態による分散型イベント配信システムにおけるイベントTopic制御メッセージの送信手順を説明するためのネットワーク図である。ただし、図12は、図11に示した分散型イベント配信システムの動作が完了した後の動作を示している。
 まず、ブローカノードEBは、図12に「ETC」として示されるイベントTopic制御メッセージを作成し、自身のAdvertisementテーブルATおよびSubscriptionテーブルSTを参照して当該イベントTopic制御メッセージETCを送信する。ここでは、AdvertisementテーブルATのID=1のエントリをヒットするので、そのNextホップのブローカノードEBへ転送される。ID=2のエントリについては、イベントTopic制御メッセージに記載されたFilteringルールと当該エントリに登録されているFilteringルールとの間に重複範囲がないため、ブローカノードEBへの転送は行われない。SubscriptionテーブルSTについては、ブローカノードEBへイベントTopic制御メッセージETCが転送される。
 ブローカノードEBおよびEBは、受信したイベントTopic制御メッセージETCをAdvertisementテーブルおよびSubscriptionテーブルを参照して転送する。なお、NextホップがイベントTopic制御メッセージの直前の転送元と同じ場合は転送を行わない(たとえばブローカノードEBやEBからEBへのイベントTopic制御メッセージの転送は行わない)。以下同様にして、各ブローカノードのAdvertisementテーブルおよびSubscriptionテーブルを参照したイベントTopic制御メッセージETCの転送が繰り返され、最終的にイベントTopic制御メッセージETCは、新規に作成したイベントTopicを利用したイベントの送信および受信を行う全てのPublisherおよびSubscriber(ここでは、PUBとSUB)へ届けられる。
<イベント配信パスの構築>
 図13は、本実施形態による分散型イベント配信システムにおけるイベント配信パスの構築手順を説明するためのネットワーク図である。ただし、図13は図12に示した分散型イベント配信システムの動作が完了した後の動作を示している。
 イベントTopic制御メッセージETCを受信したPublisherPUB、SubscriberSUBは、イベントTopic制御メッセージETCで通知されたランデブーノードEBを最終宛先として、新規イベントTopicを記載したAdvertiseメッセージおよびSubscribeメッセージを直接接続するブローカノードへ送信する。これにより新規イベントTopicに対応するイベント配信パスが構築される。
 PublisherPUBは、イベントTopic制御メッセージETCを受信すると、イベントTopic制御メッセージETCに記載された新規ランデブーノードEBを最終宛先として、新規イベントTopic「横浜の天気」を記載したAdvertiseメッセージを送信する。本メッセージはブローカノードEB、EBにおいて転送処理が行われ(通常のAdvertiseメッセージの転送時と同様、Advertisementテーブルのエントリが作成される)、新規ランデブーノードEBへと到達する。 また、SubscriberSUBも同様に、イベントTopic制御メッセージETCを受信すると、イベントTopic制御メッセージETCに記載された新規ランデブーノードEBを最終宛先として、新規イベントTopic「横浜の天気」を記載したSubscribeメッセージを送信する。既に説明した通常のSubscribeメッセージの転送処理と同様に、ブローカノードEB、EB、EB、EBのSubscriptionテーブル上に新規にエントリが作成される。
 こうして、新規イベントTopicを利用したイベントの送受信を行うPublisherPUBとSubscriberSUBとを結ぶイベント配信パスが構築される。
<新規イベントTopicを利用したイベントの転送>
 図14は、本実施形態による分散型イベント配信システムにおけるイベント転送手順を説明するためのネットワーク図である。ただし、図14は、図13に示した分散型イベント配信システムの動作が完了した後の動作を示している。
 イベント配信パスの構築完了後、新規に作成したイベントTopicを利用したイベントの転送が可能になる。PublisherPUBのイベントTopic制御メッセージ受信部204は、イベントTopic制御メッセージにより通知されたイベントルールに合致したイベントを含むPublishメッセージがPublish送信部203から送信されると、それをインターセプトし、当該イベントのイベントTopicを新規イベントTopicへ書き換える。これによって、Publishメッセージは新規イベントTopicを利用してSubscriberSUBへと転送される。つまり、上述したステップにより作成された新規イベントTopicに対応するイベント配信パスを利用して転送される。新規イベントTopicを利用したイベントの転送は新規イベントTopicを担当するランデブーノードEBを経由して転送されるため、ランデブーノード間で負荷が分散されることになる。SubscriberSUBのイベントTopic制御メッセージ受信部302は、新規イベントTopicを利用して受信したイベントのイベントTopicを書き換え、Publish受信部303に渡す。
 PublisherPUBは/神奈川/横浜にマッチするイベントのイベントTopicを「横浜の天気」に書き換えて送信する。当該イベントは図13に示した動作で構築されたイベント配信パスにより新規のランデブーノードEBを経由してSubscriberSUBへと転送される。
4.2)イベントTopicの削除
 図15は、本実施形態による分散型イベント配信システムにおけるイベントTopicの削除手順を説明するためのネットワーク図である。ただし、図15は図14に示した分散型イベント配信システムの動作が完了した後の動作を示している。
 イベントTopicの削除時には、イベントTopic作成時と同様に、イベント監視部105は、特定のイベントルールのイベントの転送負荷が転送負荷変動パターンにマッチしたことを検出した場合またはマッチすると推定した場合に、当該イベントルールと転送負荷変動パターンをイベントTopic制御部107へ通知する。イベントTopic制御部107は、イベント監視部105から通知を受けると、通知されたイベントルールのターゲットイベントTopicを削除対象イベントTopicとして選択し、マージ先イベントTopicおよびランデブーノードを選択する。
 次に、イベントTopic制御部107は、イベントTopic制御メッセージETCを作成し、AdvertisementテーブルおよびSubscriptionテーブルを参照してイベント監視部105から通知されたイベントルールに合致するNextホップへイベントTopic制御メッセージETCを送信する。イベントTopic制御メッセージETCの転送を行うブローカノードは、イベントTopic制御メッセージに記載された削除対象イベントTopicに合致するエントリを削除する。これにより削除対象イベントTopicのイベント転送に用いられていたイベント配信パスが削除されることになる。
 図15において、ブローカノードEBは、イベントTopic「横浜の天気」のイベントの転送負荷の変動がイベントTopicの削除と対応付けられた転送負荷変動パターンと一致したことを検出または推定すると、図15に示したイベントTopic制御メッセージETCを作成し、Advertisementテーブル、Subscriptionテーブルに登録されたイベントTopic「横浜の天気」を持つエントリのNextホップへ当該メッセージを送信する。
 イベントTopic制御メッセージETCは、それを受信したブローカノードによってAdvertisementテーブル、Subscriptionテーブルに登録されたイベントTopic「横浜の天気」を持つエントリのNextホップへと順次転送され、最終的にイベントTopic「横浜の天気」を用いたイベントの送受信を行うPublisherPUB、SubscriberSUBへと届けられる。イベントTopic制御メッセージETCの転送を行った各ブローカノードEB~EBは転送後、イベントTopic「横浜の天気」を持つエントリをAdvertisementテーブル、Subscriptionテーブルから削除する。これにより、イベントTopic「横浜の天気」のイベントの転送に利用されていたイベント配信パスが削除される。
4.3)効果
 本発明の第1実施形態によれば、次のような効果を得ることができる。
a)イベント転送の負荷の変動に柔軟に対応できる。その理由は、本実施形態による分散型イベントシステムでは、イベント転送の負荷の変動に応じてイベント配信パスの新規作成や削除が動的に行われるためである。
 イベント転送の負荷が増加した、または増加すると見込まれる場合、本実施形態によるブローカノードは新規にイベントTopicを作成するとともに当該新規イベントTopicを担当するランデブーノードを新規に選択して、PublisherやSubscriberへ新規にイベント配信パスを作成するよう指示する。指示を受けたPublisherやSubscriberが新規に選択されたランデブーノードへAdvertiseメッセージやSubscribeメッセージを送信することで新規にイベント配信パスが作成される。
 さらにPublisherやSubscriberは、一部またはすべてのイベントを新規イベント配信パスを利用してイベントの送受信を行う。以上の動作により本発明の分散型イベント配信システムではイベント転送の負荷が増加した、また増加すると見込まれる場合、既存のイベント配信パスの負荷を新規に作成されたイベント配信パスへ分散することができる。
 また、イベントイベント転送の負荷が減少した、または減少すると見込まれる場合、本実施形態によるブローカノードは、既存のイベントTopicを削除するとともに、削除後にイベントの送受信に利用すべきマージ先イベントTopicを既存のイベントTopicから選択して、PublisherやSubscriberへ削除したイベントTopicに対応するイベント配信パスを削除するよう指示する。指示を受けたPublisherやSubscriberは、AdvertiseメッセージやSubscribeメッセージを送信することでイベント配信パスが削除される。これにより本実施形態による分散型イベント配信システムでは、イベント転送の負荷が減少した、または減少すると見込まれる場合、既存のイベント配信パスを削除してイベント配信パス維持に伴うオーバヘッドを削減することができる。
 また、PublisherやSubscriberはイベント配信パス削除後、削除したイベントTopicを利用して送受信していたイベントをマージ先イベントTopicを利用して送受信する。これによりイベント配信パス削除後もイベントの送受信を行うことができる。
b)同一のイベントTopicにより送受信されているイベントの中から転送負荷が増加した、または増加すると見込まれるイベントのみを別のイベント配信パスを利用して送受信できる。その理由は、本実施形態によるブローカノードにはイベントTopicに加えFilteringルールやPublishメッセージの属性なども条件として追加可能なイベントルールが設定されており、ブローカノード内のイベント監視部がイベントルール毎に転送負荷の監視を行うためである。
 ブローカノードは転送負荷が増加した、または増加すると見込まれるイベントルールに対応する新規イベントTopicを作成すると共に新規ランデブーノードを選択して、これら新規イベントTopicと新規ランデブーノードと共にイベントルールをPublisher、Subscriberへ通知して新規イベント配信パスを作成するよう指示する。指示を受けたPublisher、Subscriberは新規イベント配信パス作成後、通知されたイベントルールにマッチするイベントを新規イベント配信パスを利用して送受信する。これにより同一のイベントTopicにより送受信されているイベントの中から転送負荷が増加した、または増加すると見込まれるイベントのみを別のイベント配信パスを利用して送受信できる。
 本実施形態による方式は、単純負荷分散方式、すなわち同一イベントTopicのイベント送受信に利用するイベント配信パスを複数用意し、ラウンドロビン等の方法でイベント配信パスを使い分けて負荷分散を行う方式と比べて、効率がよい。
 例えば、イベントTopic「A」のイベントの送受信に利用するイベント配信パスを考える。単純負荷分散方式では「A」のイベントの送受信を行う全てのSubscriber、Publisherが複数のイベント配信パス全てに接続する必要がある。つまり、「A」の送受信を行う全てのSubscriber、Publisherが複数のランデブーノードに対してSubscribeメッセージ、Advertiseメッセージを送信する必要がある。
 これに対して、本実施形態によれば、「A」のイベントの送受信を行うSubscriber、Publisherのうち、特に転送負荷が増加した、または増加すると見込まれるイベントルールに対応するイベントを送受信するSubscriber、Publisherのみが新規に作成されたイベント配信パスに接続する。このため、イベント配信パスを複数用意して負荷分散を行う場合、本実施形態では単純負荷分散方式と比較してSubscribe、Advertiseメッセージの転送に伴うオーバヘッドを低くすることができる。
c)ブローカノードが個々のPublisherやSubscriberを把握することなくイベント配信パスの新規作成や削除を行うことができる。その理由は、ブローカノードにおいてイベントTopic制御メッセージの送信、転送がAdvertisementテーブル、Subscriptionテーブルを参照して行われるためである。Advertisementテーブル、Subscriptionテーブルには、イベントTopic、Filteringルール毎に当該イベントTopicおよびFilteringルールにマッチするイベントの送受信を行うPublisher、Subscriberへの経路のNextホップが登録されている。このため、ブローカノードがイベントTopic制御メッセージを、イベントTopic制御メッセージのイベントルールにマッチするAdvertisementテーブル、SubscriptionテーブルのNextホップへ転送することにより、各ブローカノードが個々のPublisherやSubscriberを把握することなく、イベントTopic制御メッセージをPublisher、Subscriberへ届けることが可能になる。
 極めて多数の(例えば1000万台の)PublisherやSubscriberが存在する場合やPublisherやSubscriberのイベント配信パスへの接続や切断が頻繁に行われる場合において、ブローカノードが個々のPublisherやSubscriberのIPアドレスやイベント配信パスへの参加状態を常時把握することは非現実的であるが、本実施形態によるブローカノードはこうしたケースにも対応できる。
d)イベント配信パス削除時のAdvertisement、Subscriptionテーブルのエントリ削除を迅速に行うことができる。その理由はブローカノードが削除対象イベントTopicのイベントの送受信を今後行わない旨記載されたAdvertiseメッセージおよびSubscribeメッセージがPublisherやSubscriberから送信されることを待つことなく、イベントTopicの削除を通知するイベントTopic制御メッセージの受信をトリガとして、削除対象イベントTopicを含むエントリをAdvertisementテーブル、Subscriptionテーブルから削除することができるためである。
5.第2実施形態
 本発明の第2実施形態は、その基本的構成は上記第1実施形態と同様であるが、イベントTopic制御メッセージの到達範囲を、新規イベントTopic作成を行ったブローカノードの近傍に制限できる点が第1実施形態と異なっている。まず、この点について、図16~図18を用いて説明する。
 図16はイベントTopic「関東の天気」のイベント配信パスを示すネットワーク図である。上述したように、「関東の天気」を担当するランデブーノードから複数のPublisherおよびSubscriberへのイベント配信パス401が設定されている。
 図17は、本発明の第1実施形態におけるイベントTopic「横浜の天気」のイベント配信パスを示すネットワーク図である。第1実施形態によれば、イベントTopic「関東の天気」を担当するランデブーノードがイベントTopic「横浜の天気」の新規作成を行った場合、イベントTopic制御メッセージ到達範囲403は、イベント配信パスの末端、すなわち全てのPublisherやSubscriberまで至る。言い換えれば、末端から新たに新規イベントTopic「横浜の天気」のイベント配信パスが構築される。
 図18は、本発明の第2実施形態におけるイベントTopic「横浜の天気」のイベント配信パスを示すネットワーク図である。上述した第1実施形態の場合とは異なり、第2実施形態では、イベントTopic制御メッセージの到達範囲501がイベントTopic「関東の天気」を担当するランデブーノードの近傍に限定される。すなわち、新規イベントTopic「横浜の天気」のイベント配信パスは、PublisherやSubscriberの末端付近ではイベントTopic「関東の天気」と共通の経路が利用され、異なる経路が利用されるのはイベントTopic「関東の天気」を担当するランデブーノードの近傍のみである。
 このように第2実施形態では、イベントTopic制御メッセージの到達範囲を、新規イベントTopic作成を行ったブローカノードの近傍に制限する。これにより以下の効果を期待できる。
(1)末端までイベントTopic制御メッセージが届くのを待つ必要がないため、新規イベントTopic作成時に迅速にイベント配信パスを構築することが可能になる。
(2)イベントTopic制御メッセージ転送に伴うオーバヘッドを抑制することができる。末端付近ではイベントTopic制御メッセージの転送が行われないため、末端付近でのイベントTopic制御メッセージの転送に伴うネットワーク帯域の消費やブローカノードの計算資源消費が抑制される。
(3)ブローカノードにおけるAdvertisementテーブルおよびSubscriptionテーブルのサイズを抑制できる。末端付近でのブローカノードでは新規イベントTopic作成に伴うAdvertisementテーブルおよびSubscriptionテーブルへのエントリ追加が行われないため、テーブルサイズを抑制することができ、これによりテーブル検索時間の短縮が期待できる。
 以下、本発明の第2実施形態によるイベントTopic制御システムについて詳細に説明する。
5.1)ブローカノードの構成および動作
 図19は本発明の第2実施形態によるイベントTopic制御装置を含むブローカノードの機能的構成を示すブロック図、図20はイベントTopic制御ポリシ管理テーブルに設定されている制御ポリシの一例を示す図である。なお、図5に示す第1実施形態におけるブローカノードと同じ機能を有するブロックには同一の参照番号を付して説明は省略する。
 図19において、ブローカノードEBは、機能的に、Subscriptionテーブル101、Advertisementテーブル102、ルーティングテーブル管理部103およびイベント転送部104を有し、さらに、イベント監視部105および転送負荷変動通知ポリシ管理テーブル106と、イベントTopic制御部601およびイベントTopic制御ポリシ管理テーブル602と、イベントTopic制御メッセージ受信部603、Subscribe送信部604およびAdvertise送信部605とを有する。イベントTopic制御部601は、後述するように、イベントTopic制御メッセージの到達範囲を設定/変更するためのTTL制御部601aを機能的に含む。
 本実施形態におけるブローカノードEBと図5に示す第1実施形態におけるブローカノードEBとは、イベントTopic制御部601およびイベントTopic制御ポリシ管理テーブル602の機能が異なっており、さらにイベントTopic制御メッセージ受信部603、Subscribe送信部604およびAdvertise送信部605を有する点が異なっている。以下、この異なる点について詳細に説明する。
<イベントTopic制御部>
 図19におけるイベントTopic制御部601は、イベントTopic制御メッセージに対して、その到達範囲を任意に制御する到達範囲制御機能としてTTL制御部601aを有する。イベントTopic制御メッセージの到達範囲は次のようにして任意に制御されうる。たとえば、イベントTopic制御メッセージを作成するノードでTTL(Time To Live)値を設定し、他のブローカノードから受信したイベントTopic制御メッセージを転送する際にそのTTL値を1だけ減じ、TTL値がゼロでなければ転送し、TTL値がゼロになれば当該イベントTopic制御メッセージを受信して転送しない、というシーケンスを実行する。
 図20に示すように、イベントTopic制御部601に設定される制御ポリシは、図8に示す第1実施形態の制御ポリシを拡張したものである。すなわち、イベントルールと転送負荷変動パターンに対応する動作内容の一部として、イベントTopic制御メッセージへ設定するTTL値が設定される。自ノードの負荷が大きい場合にはより広い範囲で新規イベント配信パスの構築を実施する、といったポリシで到達範囲を制御する。例えば、同一のイベントルールについて、転送頻度が5000イベント/sec以上の場合はTTL=5に設定し、10000イベント/sec以上の場合はTTL=7に設定するなどである。
 また、他のブローカノードから受信したイベントTopic制御メッセージを転送する際のTTLの計算も自身の負荷に応じて柔軟に変更することができる。基本的には、転送の際に1減じる処理を行うが、たとえば自身の負荷がきわめて低い場合には転送の際に5減じるなどしてイベントTopic制御メッセージ転送範囲(すなわち新規イベント配信パスの構築範囲)を自身の近傍に制限することができる。逆に、自身の負荷が大きい場合には、TTLを逆に1増やすなどして転送範囲を拡大することも可能である。このようにイベントTopic制御メッセージ転送時のTTL計算方法を転送するブローカノードの負荷に応じて変更することにより、新規イベントTopicの作成を行ったブローカノードから離れた場所の負荷状況をも反映してイベント配信パスの構築の範囲を制御することできる。
 本実施形態におけるイベントTopic制御部601は、他のブローカノードから受信したイベントTopic制御メッセージを転送する際にTTLを1だけデクリメントするが、そのTTL値がゼロになると、イベントTopic制御メッセージ受信部603へイベントTopic制御メッセージの受信処理を行うよう指示する。
<イベントTopic制御メッセージ受信部>
 イベントTopic制御メッセージ受信部603は、イベントTopic制御部601からの指示を受けて、図9および図10に示す第1実施形態におけるPublisherやSubscriberのイベントTopic制御メッセージ受信部(204、302)と同様の受信処理を行う。具体的には、次の通りである。
1)隣接するブローカノードがAdvertisementテーブルを参照して自ノードへイベントTopic制御メッセージを転送した場合には、イベントTopic制御メッセージ受信部603は第1実施形態におけるPublisherのイベントTopic制御メッセージ受信部204と同様の処理を行う。すなわち、イベントTopic制御メッセージ受信部603は、Advertise送信部605に対して、イベントTopic制御メッセージで通知された新規イベントTopicを記載したAdvertiseメッセージを、同じくイベントTopic制御メッセージで通知された新規ランデブーノードを最終宛先として送信するよう指示する。
 また、自ノードがPublishメッセージを転送する際に、イベントTopic制御メッセージに記載されたイベントルールを参照し、当該イベントルールに合致するイベントを含んだPublishメッセージをインターセプトする。そして、当該PublishメッセージのイベントTopicをイベントTopic制御メッセージで通知された新規イベントTopicに書き換える。こうして、当該イベントは新規イベントTopicを利用して配信される。すなわち新規イベントTopic作成時に作成された新規のイベント配信パスを利用して配信される。
2)隣接するブローカノードがSubscriptionテーブルを参照して自ノードへイベントTopic制御メッセージを転送した場合には、イベントTopic制御メッセージ受信部603は第1実施形態におけるSubscriberのイベントTopic制御メッセージ受信部302と同様の処理を行う。すなわち、イベントTopic制御メッセージ受信部603は、Subscribe送信部604に対して、イベントTopic制御メッセージで通知された新規イベントTopicを記載したSubscribeメッセージを、同じくイベントTopic制御メッセージで通知された新規ランデブーノードを最終宛先として送信するよう指示する。
 また、受信したイベントTopic制御メッセージに記載された新規イベントTopicを参照し、新規イベントTopicのイベントを含むPublishメッセージをインターセプトする。そして、当該PublishメッセージのイベントTopicをイベントルールに記載されたターゲットイベントTopicに書き換える。書き換え後、当該イベントはターゲットイベントTopicを利用して配信される。すなわち、新規イベントTopic作成以前から存在したターゲットイベントTopicのイベントを配信するためのイベント配信パスを利用して配信される。
<Subscribe送信部>
 Subscribe送信部604は、イベントTopic制御メッセージ受信部603からの指示を受けてイベントTopic制御メッセージで通知された新規イベントTopicを記載したSubscribeメッセージを、同じくイベントTopic制御メッセージで通知された新規ランデブーノードを最終宛先として送信する。
<Advertise送信部>
 Advertise送信部605は、イベントTopic制御メッセージ受信部603からの指示を受けてイベントTopic制御メッセージで通知された新規イベントTopicを記載したAdvertiseメッセージを、同じくイベントTopic制御メッセージで通知された新規ランデブーノードを最終宛先として送信する。
 なお、ルーティングテーブル管理部103、イベント転送部104、イベント監視部105、イベントTopic制御部601、イベントTopic制御メッセージ受信部603、Subscribe送信部604およびAdvertise送信部605の上述した機能は、CPU等のプログラム制御プロセッサ上でプログラムを実行することにより実現することもできる。
5.2)効果
 本発明の第2実施形態によれば、既に述べた第1実施形態による効果に加えて、次のような効果を得ることができる。
a)イベント配信パスの新規作成、削除に伴うオーバヘッドを抑制できる。具体的には次の通りである。イベントTopic制御メッセージを送信するブローカノードは、イベントTopic制御メッセージのTTLを設定することにより、その到達範囲を任意に制御することができる。さらに、転送時にイベントTopic制御メッセージのTTLが0となったブローカノードは、Publisher、Subscriberの代わりにAdvertiseメッセージ、Subscribeメッセージの送信を行うことができる。これにより、イベントTopic制御メッセージをイベント配信パスの末端(すなわちPublisher、Subscriebr)まで転送する必要がなくなり、イベント配信パスの新規作成、削除に伴うオーバヘッドを抑制することが可能になる。
b)イベント転送の負荷の変動に応じてイベント配信パスを新規作成する範囲を制御できる。なぜならば、イベントTopic制御メッセージを送信または転送するブローカノードがイベントTopic制御メッセージのTTLの値をイベントの転送負荷の変動に応じて変更することができるからである。例えば検出した負荷の増加幅が大きいほど、TTLに大きな値を設定することでイベントTopic制御メッセージを広範囲に到達させ、より広い範囲でイベント配信パスが新規に作成されるようにするといったことが可能になる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2009年2月5日に出願された日本特許出願2009-24590を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明はブローカノード・ベースの分散型イベント配信システム一般に適用可能である。
 101 Subscriptionテーブル
 102 Advertisementテーブル
 103 ルーティングテーブル管理部
 104 イベント転送部
 105 イベント監視部
 106 転送負荷変動通知ポリシ管理テーブル
 107 イベントTopic制御部
 108 イベントTopic制御ポリシ管理テーブル
 201 Advertise送信部
 202 イベント発生部
 203 Publish送信部
 204 イベントTopic制御メッセージ受信部
 301 Subscribe送信部
 302 イベントTopic制御メッセージ受信部
 303 Publish受信部
 401 イベント配信パス
 402 イベントTopic制御メッセージ
 403 イベントTopic制御メッセージ到達範囲
 501 イベントTopic制御メッセージ到達範囲
 601 イベントTopic制御部
 602 イベントTopic制御ポリシ管理テーブル
 603 イベントTopic制御メッセージ受信部
 604 Subscribe送信部
 605 Advertise送信部
 PUB パブリッシャ(Publisher)
 SUB サブスクライバ(Subscriber)
 EB ブローカノード(Event Broker)

Claims (37)

  1.  分散型イベント配信システムにおいてイベントの転送処理を行うブローカノードであって、
     イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視する監視手段と、
     前記転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージにより他のノードへ通知する制御手段とを備えた
     ことを特徴とするブローカノード。
  2.  前記制御手段は、イベントトピックの新規作成、削除または移動を行う請求項1に記載のブローカノード。
  3.  前記制御手段は、前記制御メッセージの到達範囲を制御するための到達範囲制御手段を有する請求項1または請求項2に記載のブローカノード。
  4.  前記到達範囲制御手段は、前記転送負荷の変動に応じて前記制御メッセージのTTL(Time To Live)値を設定する請求項3に記載のブローカノード。
  5.  前記到達範囲制御手段は、他のブローカノードから到達した制御メッセージを転送する際に、TTL値を前記転送負荷の変動に応じて変更する請求項4に記載のブローカノード。
  6.  前記制御手段は、他のブローカノードから到達した制御メッセージのTTL値が0になると、当該制御メッセージを転送せずに受信する請求項5に記載のブローカノード。
  7.  前記制御手段は、イベントトピックを新規に作成する場合、当該新規イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、前記イベントの転送のための前記新規イベントトピックと前記ランデブーノードとを前記制御メッセージにより他のノードへ通知する請求項1から請求項6のうちのいずれか1項に記載のブローカノード。
  8.  前記制御手段は、特定イベントルールにマッチするイベントの転送負荷が所定の増加パターンにマッチする場合、当該特定イベントルールに対応するイベントトピックを新規に作成し、当該新規イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、前記特定のイベントルールにマッチするイベントの転送に前記新規イベントトピックと前記ランデブーノードを通るイベント配信パスとを用いるように前記制御メッセージにより他のノードへ指示する請求項7に記載のブローカノード。
  9.  前記制御手段は、イベントトピックを削除する場合、当該イベントトピックを削除した後に前記イベントの転送に利用するマージ先イベントトピックを既存のイベントトピックから選択し、前記イベントの転送のための前記マージ先イベントトピックを前記制御メッセージにより他のノードへ通知する請求項1から請求項6のうちのいずれか1項に記載のブローカノード。
  10.  前記制御手段は、特定イベントルールにマッチするイベントの転送負荷が所定の減少パターンにマッチする場合、当該特定イベントルールに対応するイベントトピックを削除し、当該イベントトピックを削除した後に前記特定イベントルールにマッチするイベントの転送に利用するマージ先イベントトピックを既存のイベントトピックから選択し、前記特定のイベントルールにマッチするイベントの転送に前記マージ先イベントトピックを用いるように前記制御メッセージにより他のノードへ指示する請求項9に記載のブローカノード。
  11.  前記制御手段は、イベントトピックを移動する場合、当該イベントトピックを削除した後に前記イベントの転送に利用するマージ先イベントトピックを新規に作成し、当該マージ先イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、前記イベントの転送のための前記マージ先イベントトピックおよび前記ランデブーノードを前記制御メッセージにより他のノードへ通知する請求項1から請求項6のうちのいずれか1項に記載のブローカノード。
  12.  前記制御手段は、特定イベントルールにマッチするイベントの転送負荷が所定の変動パターンにマッチする場合、当該特定イベントルールに対応するイベントトピックを削除し、当該イベントトピックを削除した後に前記特定イベントルールにマッチするイベントの転送に利用するマージ先イベントトピックを新規に作成し、当該マージ先イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、前記特定のイベントルールにマッチするイベントの転送に前記マージ先イベントトピックと前記ランデブーノードを通るイベント配信パスとを用いるように前記制御メッセージにより他のノードへ指示する請求項11に記載のブローカノード。
  13.  アドバタイズメント(Advertisement)テーブルおよびサブスクリプション(Subscription)テーブルを更に有し、
     前記制御手段は、前記制御メッセージを送信する際、前記Advertisementテーブルまたは前記Subscriptionテーブルのエントリから前記特定イベントルールにマッチするエントリを検索し、当該エントリに登録されているネクストホップへ前記制御メッセージを送信し、
     他のブローカノードから受信した制御メッセージを転送する際、当該受信した制御メッセージで指示された前記特定イベントルールにマッチするエントリを前記Advertisementテーブルまたは前記Subscriptionテーブルのエントリから検索し、当該エントリに登録されているネクストホップへ前記受信した制御メッセージを転送する
     請求項1から請求項12のうちのいずれか1項に記載のブローカノード。
  14.  前記制御手段は、自ノードからの前記制御メッセージの送信または前記他のブローカノードから受信した制御メッセージの転送をトリガとして、前記Advertisementテーブルまたは前記Subscriptionテーブルから、前記制御メッセージで指示された前記特定イベントルールにマッチするエントリを削除する請求項13記載のブローカノード。
  15.  分散型イベント配信システムにおいてイベントの転送処理を行うブローカノードにおけるイベントトピック制御方法であって、
     イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視し、
     前記転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、
     前記変更に伴う指示を制御メッセージにより他のノードへ通知する
     ことを特徴とするイベントトピック制御方法。
  16.  前記変更は、イベントトピックの新規作成、削除または移動である請求項15に記載のイベントトピック制御方法。
  17.  さらに、前記制御メッセージの到達範囲を制御する請求項15または請求項16に記載のイベントトピック制御方法。
  18.  前記転送負荷の変動に応じて前記制御メッセージのTTL(Time To Live)値を設定することにより前記到達簡易を制御する請求項17に記載のイベントトピック制御方法。
  19.  他のブローカノードから到達した制御メッセージを転送する際に、TTL値を前記転送負荷の変動に応じて変更することにより前記到達範囲を制御する請求項18に記載のイベントトピック制御方法。
  20.  他のブローカノードから到達した制御メッセージのTTL値が0になると、当該制御メッセージを転送せずに受信する請求項19に記載のイベントトピック制御方法。
  21.  イベントトピックを新規に作成する場合、当該新規イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、
     前記イベントの転送のための前記新規イベントトピックと前記ランデブーノードとを前記制御メッセージにより他のノードへ通知する
     請求項15から請求項20のうちのいずれか1項に記載のイベントトピック制御方法。
  22.  イベントトピックを削除する場合、当該イベントトピックを削除した後に前記イベントの転送に利用するマージ先イベントトピックを既存のイベントトピックから選択し、
     前記イベントの転送のための前記マージ先イベントトピックを前記制御メッセージにより他のノードへ通知する
     請求項15から請求項20のうちのいずれか1項に記載のイベントトピック制御方法。
  23.  イベントトピックを移動する場合、当該イベントトピックを削除した後に前記イベントの転送に利用するマージ先イベントトピックを新規に作成し、
     当該マージ先イベントトピックを担当するランデブーノードを他のブローカノードから新規に選択し、
     前記イベントの転送のための前記マージ先イベントトピックおよび前記ランデブーノードを前記制御メッセージにより他のノードへ通知する
     請求項15から請求項20のうちのいずれか1項に記載のイベントトピック制御方法。
  24.  複数のブローカノードを有する分散型イベント配信システムにおけるパブリッシャ(Publisher)ノードであって、
     アドバタイズ(Advertise)メッセージを送信するアドバタイズ送信手段と、
     パブリッシュ(Publish)メッセージを送信するパブリッシュ送信手段と、
     ブローカノードからイベントトピックの変更を指示する制御メッセージを受信すると、前記制御メッセージで指示された新規イベントトピックまたはマージ先イベントトピックを記載したアドバタイズ(Advertise)メッセージを前記制御メッセージで指示されたランデブーノードを最終宛先として送信し、前記制御メッセージで前記新規イベントトピックまたは前記マージ先イベントトピックをイベントの転送に用いるよう指示された特定のイベントトピックを前記新規イベントトピックまたは前記マージ先イベントトピックに書き換えたパブリッシュメッセージを送信するように制御する制御手段と
     を備えたことを特徴とするパブリッシャノード。
  25.  複数のブローカノードを有する分散型イベント配信システムにおけるサブスクライバ(Subscriber)ノードであって、
     サブスクライブ(Subscribe)メッセージを送信するサブスクライブ送信手段と、
     パブリッシュ(Publish)メッセージを受信するパブリッシュ受信手段と、
     ブローカノードからイベントトピックの変更を指示する制御メッセージを受信すると、前記制御メッセージで指示された新規イベントトピックまたはマージ先イベントトピックを記載したSubscribeメッセージを前記制御メッセージで指示されたランデブーノードを最終宛先として送信するように指示する制御手段と
     を備えたことを特徴とするサブスクライバノード。
  26.  分散型イベント配信システムにおいて、
     アドバタイズ(Advertise)メッセージおよびパブリッシュ(Publish)メッセージを送信するパブリッシャ(Publisher)ノードと、
     サブスクライブ(Subscribe)メッセージを送信し、前記パブリッシュメッセージを受信するサブスクライバノードと、
     パブリッシャノードからサブスクライバノードへのイベントの転送処理を行う複数のブローカノードとを備え、
     各ブローカノードは、
     イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視する監視手段と、
     前記転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、この変更に伴う指示を制御メッセージにより他のノードへ通知する制御手段とを有する
     こと特徴とする分散型イベント配信システム。
  27.  前記ブローカノードの前記制御手段は、イベントトピックの新規作成、削除または移動を行う請求項26に記載の分散型イベント配信システム。
  28.  前記ブローカノードの前記制御手段は、前記制御メッセージの到達範囲を制御するための到達範囲制御手段を有する請求項26または請求項27に記載の分散型イベント配信システム。
  29.  前記到達範囲制御手段は、前記転送負荷の変動に応じて前記制御メッセージのTTL(Time To Live)値を設定する請求項28に記載の分散型イベント配信システム。
  30.  前記到達範囲制御手段は、他のブローカノードから到達した制御メッセージを転送する際に、TTL値を前記転送負荷の変動に応じて変更する請求項29に記載の分散型イベント配信システム。
  31.  前記到達範囲制御手段は、他のブローカノードから到達した制御メッセージのTTL値が0になると、当該制御メッセージを転送せずに受信する請求項30に記載の分散型イベント配信システム。
  32.  分散型イベント配信システムにおいてイベントの転送処理を行うブローカノードにおけるプログラム制御プロセッサをイベントトピック制御装置として機能させるプログラムであって、
     イベントルール毎に自ノードにかかるイベントの転送負荷の変動を監視し、
     前記転送負荷の変動に応じて当該イベントを転送するためのイベントトピックを動的に変更し、
     前記変更に伴う指示を制御メッセージにより他のノードへ通知する
     ように前記プログラム制御プロセッサを機能させることを特徴とするプログラム。
  33.  前記変更は、イベントトピックの新規作成、削除または移動である請求項32に記載のプログラム。
  34.  さらに、前記制御メッセージの到達範囲を制御する請求項32または請求項33に記載のプログラム。
  35.  前記転送負荷の変動に応じて前記制御メッセージのTTL(Time To Live)値を設定することにより前記到達簡易を制御する請求項34に記載のプログラム。
  36.  他のブローカノードから到達した制御メッセージを転送する際に、TTL値を前記転送負荷の変動に応じて変更することにより前記到達範囲を制御する請求項35に記載のプログラム。
  37.  他のブローカノードから到達した制御メッセージのTTL値が0になると、当該制御メッセージを転送せずに受信する請求項36に記載のプログラム。
PCT/JP2010/000684 2009-02-05 2010-02-04 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法 WO2010090027A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/147,675 US20110307603A1 (en) 2009-02-05 2010-02-04 Broker node and event topic control method in distributed event distribution system
JP2010549406A JPWO2010090027A1 (ja) 2009-02-05 2010-02-04 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-024590 2009-02-05
JP2009024590 2009-02-05

Publications (1)

Publication Number Publication Date
WO2010090027A1 true WO2010090027A1 (ja) 2010-08-12

Family

ID=42541936

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/000684 WO2010090027A1 (ja) 2009-02-05 2010-02-04 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法

Country Status (3)

Country Link
US (1) US20110307603A1 (ja)
JP (1) JPWO2010090027A1 (ja)
WO (1) WO2010090027A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013031068A1 (ja) * 2011-09-02 2013-03-07 日本電気株式会社 イベント通知サービス方法およびシステム
WO2013145467A1 (ja) * 2012-03-26 2013-10-03 日本電気株式会社 メッセージングシステム、トピック管理装置、メッセージング方法及びプログラム
WO2014203728A1 (ja) * 2013-06-19 2014-12-24 日本電気株式会社 メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
WO2016200595A1 (en) * 2015-06-09 2016-12-15 Intel Corporation System, apparatus and method for managing lifecycle of secure publish-subscribe system
US10412033B2 (en) 2015-02-26 2019-09-10 Fujitsu Limited Event notification method, event notification device, and storage medium

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014194452A1 (zh) * 2013-06-03 2014-12-11 华为技术有限公司 消息发布与订阅的方法及装置
TW201545510A (zh) 2014-05-30 2015-12-01 Ibm 在分散式計算系統中進行訊息路由的方法
US9871754B2 (en) * 2014-07-17 2018-01-16 Sohrab F. Modi Communicating messages between publishers and subscribers in a mesh routing network
GB2532490B (en) * 2014-11-21 2017-02-22 Ibm Publish/subscribe messaging using message structure
US9785490B2 (en) 2014-12-23 2017-10-10 Document Storage Systems, Inc. Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
US10225219B2 (en) * 2016-02-22 2019-03-05 International Business Machines Corporation Message delivery in a message system
CN107145489B (zh) * 2016-03-01 2020-12-01 阿里巴巴集团控股有限公司 一种基于云平台的客户端应用的信息统计方法和装置
US11567910B2 (en) 2016-11-15 2023-01-31 Hyland Uk Operations Limited Reducing reliance on content management system resources in a content management system
US10754901B2 (en) * 2017-01-09 2020-08-25 Alfresco Software, Inc. Analytics of electronic content management systems using a staging area database
US11281731B2 (en) 2017-01-13 2022-03-22 Hyland Uk Operations Limited. Providing access with separate authentication to secure content in repositories
US11032383B2 (en) * 2017-08-15 2021-06-08 Microsoft Technology Licensing, Llc Event delivery
US10681164B2 (en) * 2018-05-03 2020-06-09 Microsoft Technology Licensing, Llc Input and output schema mappings
US11863626B2 (en) * 2021-08-31 2024-01-02 Accenture Global Solutions Limited Complex system for message downlink channel control

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083703A1 (en) * 2002-03-28 2003-10-09 Precache, Inc. Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network
JP2007234014A (ja) * 2006-02-21 2007-09-13 Nec Lab America Inc スケーラブルなコンテンツベースのイベントマルチキャストプラットフォーム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913040A (en) * 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US6975876B1 (en) * 2000-11-17 2005-12-13 Thomas Cast System and method for performing throttle control in a SMPP gateway
JP2007257357A (ja) * 2006-03-23 2007-10-04 Fujitsu Ltd サーバおよび接続先サーバ切替制御方法
US7924730B1 (en) * 2006-10-30 2011-04-12 Solace Systems, Inc. Method and apparatus for operations, administration and maintenance of a network messaging layer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083703A1 (en) * 2002-03-28 2003-10-09 Precache, Inc. Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network
JP2007234014A (ja) * 2006-02-21 2007-09-13 Nec Lab America Inc スケーラブルなコンテンツベースのイベントマルチキャストプラットフォーム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013031068A1 (ja) * 2011-09-02 2013-03-07 日本電気株式会社 イベント通知サービス方法およびシステム
JPWO2013031068A1 (ja) * 2011-09-02 2015-03-23 日本電気株式会社 イベント通知サービス方法およびシステム
WO2013145467A1 (ja) * 2012-03-26 2013-10-03 日本電気株式会社 メッセージングシステム、トピック管理装置、メッセージング方法及びプログラム
WO2014203728A1 (ja) * 2013-06-19 2014-12-24 日本電気株式会社 メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
US10412033B2 (en) 2015-02-26 2019-09-10 Fujitsu Limited Event notification method, event notification device, and storage medium
WO2016200595A1 (en) * 2015-06-09 2016-12-15 Intel Corporation System, apparatus and method for managing lifecycle of secure publish-subscribe system
US10230696B2 (en) 2015-06-09 2019-03-12 Intel Corporation System, apparatus and method for managing lifecycle of secure publish-subscribe system

Also Published As

Publication number Publication date
US20110307603A1 (en) 2011-12-15
JPWO2010090027A1 (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
WO2010090027A1 (ja) 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
EP2030414B1 (en) Self-managed distributed mediation networks
US7457257B2 (en) Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
JP4915848B2 (ja) オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム
CN103795805A (zh) 基于sdn的分布式服务器负载均衡方法
Xie et al. Cutting long-tail latency of routing response in software defined networks
Kim et al. Efficacy of techniques for responsiveness in a wide-area publish/subscribe system
US20180302490A1 (en) Dynamic content delivery network (cdn) cache selection without request routing engineering
CN114978978A (zh) 一种算力资源调度方法、装置、电子设备及介质
Ascigil et al. A native content discovery mechanism for the information-centric networks
CN104917825A (zh) 一种面向实时流计算平台的负载均衡方法
CN105656786B (zh) 一种基于快、慢表的路由器查表方法
CN105745905A (zh) 在网络之内传输和存储内容
CN109922161B (zh) 动态云内容分发网络的内容分发方法、系统、设备及介质
JP6662195B2 (ja) 情報セントリックネットワーキングにおけるインテリジェント・ルーティング
JP2017073688A (ja) 通信ネットワークシステム
EP2940967B1 (en) Content-centric networking
CN105335362B (zh) 实时数据的处理方法及系统、即时处理系统
CN107404438A (zh) 网络路由方法和网络路由系统
EP2785017B1 (en) Content-centric networking
JP5598474B2 (ja) ネットワーク設計システム、ネットワーク設計方法、データ転送経路決定方法、ネットワーク設計プログラム
JP2007233700A (ja) キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。
CN105592124A (zh) 一种分布式虚拟现实系统网络构建方法
US20170251045A1 (en) Efficient file routing system

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010549406

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13147675

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 10738368

Country of ref document: EP

Kind code of ref document: A1