WO2011070716A1 - 情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体 - Google Patents

情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
WO2011070716A1
WO2011070716A1 PCT/JP2010/006557 JP2010006557W WO2011070716A1 WO 2011070716 A1 WO2011070716 A1 WO 2011070716A1 JP 2010006557 W JP2010006557 W JP 2010006557W WO 2011070716 A1 WO2011070716 A1 WO 2011070716A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
event
key
attribute
node
Prior art date
Application number
PCT/JP2010/006557
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 JP2011545052A priority Critical patent/JP5724880B2/ja
Priority to US13/514,444 priority patent/US8978048B2/en
Priority to CN2010800557922A priority patent/CN102656563A/zh
Publication of WO2011070716A1 publication Critical patent/WO2011070716A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Definitions

  • the present invention relates to an information processing system, a control method, and a non-transitory computer-readable medium storing a program.
  • An event distribution system that can distribute data (hereinafter referred to as “event”) composed of a plurality of attributes such as ID, position, and time to an application.
  • An event is composed of one or more attributes.
  • An attribute is composed of an attribute name and an attribute value. For example, when generating an event based on the temperature of 20 ° C. and the humidity of 60% observed by the temperature / humidity sensor, the event has an attribute whose attribute name is “temperature” and the attribute value for the event is 20 ° C. The attribute name is “humidity”, and the attribute value corresponding to the attribute name is 60%.
  • the event distribution system receives (subscribes) a subscription ID, request type, and subscription from an external program (subscriber).
  • the subscription ID is information for identifying a subscription.
  • the request type is information for identifying a registration request or a deletion request.
  • the subscription is composed of an event condition (event condition) and a notification destination application ID (application ID). In the case of a registration request, the subscription ID and subscription are stored in pairs in the event distribution system.
  • an event generated from an external program is input (published) to the event distribution system.
  • the event distribution system matches the event condition of the subscription in which the event is registered, the event distribution system transmits the event to the application specified by the application ID specified as a pair with the event condition.
  • Event conditions can be described as event conditions.
  • an attribute condition an attribute name and a range of attribute values corresponding to the attribute name can be specified.
  • the event includes the attribute name specified by the attribute condition, and the attribute value range specified by the attribute condition is an attribute for the attribute name described in the event.
  • An event is said to meet the event condition if it contains a value. For example, it is assumed that an event condition in which the attribute name is “temperature” and the attribute value range for the attribute name is “10 ° C. or higher and 30 ° C. or lower” is registered in the event distribution system.
  • the attribute name is “temperature”, the attribute value for the attribute name is “20 ° C.”, and the attribute name is “humidity” and the attribute value for the attribute name is “60%”.
  • an event containing As for the attribute name “temperature” specified by the event condition “20 ° C.” is included in “10 ° C. to 30 ° C.”. Therefore, it can be said that the event matches the event condition. Since the attribute name “humidity” is not specified in the event condition, it does not affect whether the event condition is met.
  • FIG. 19 is a diagram illustrating a technique described in Non-Patent Document 1.
  • the event shown in FIG. 19 publication in FIG. 19
  • the event condition (subscription in FIG. 19) are composed of attribute name x and attribute name y.
  • the event describes that the attribute value for the attribute name x is 100 and the attribute value for the attribute name y is 200.
  • the event condition describes that an attribute value range for attribute name x is 50 to 150 and an attribute value range for attribute name y is 150 to 250.
  • the event meets the event condition.
  • the system shown in FIG. 19 is composed of subsystems (hubs) that correspond one-to-one with each attribute name.
  • a hub constitutes one or more nodes in a ring shape. When viewed from a certain node, the next node on the ring is called a successor.
  • a node belonging to a hub manages an attribute value range (attribute value range) for an attribute name corresponding to the hub.
  • Non-Patent Document 2 discloses a method for determining a cross hub adjacent node.
  • the cross hub adjacent node of the successor of the node is set as the cross hub adjacent node link of the node.
  • the maintenance process is started.
  • a random walk is performed at each of the other hubs to determine a new cross hub adjacent node. Random walk refers to accessing (hopping) any node recorded in the routing table from the node that starts the random walk, and further hopping from the accessed node by the same means as described above. Repeat until the specified number of hops is reached. Then, the node reached when the predetermined number of hops is reached is determined as the cross hub adjacent node.
  • a resource assigned to a certain node from a hub other than the hub to which the node belongs may be a resource on another information processing apparatus at that time. In that case, since a node cannot operate across a plurality of information processing apparatuses, a new node must be constructed.
  • each node needs to perform a random walk at each hub in order to determine a cross hub adjacent node. Therefore, there is a problem that processing costs for performing a random walk are required. This also increases the load on the nodes included in each hub.
  • An object of the present invention is to provide an information processing system, a control method, and a program that can easily adjust a load applied to each node in order to solve the above-described problems.
  • the information processing system receives event information including an attribute name indicating arbitrary information and an attribute value indicating a value of the arbitrary information, and includes the received event information.
  • An information processing system comprising a plurality of first nodes for processing event information including a predetermined attribute name and an attribute value within a predetermined range, wherein the first node receives the event information
  • a key information generating unit that generates first key information obtained by converting the attribute name and the attribute value into a format that can be compared in magnitude from the attribute name and the attribute value included in the event information, and the predetermined attribute
  • a processing target information storage unit that holds in advance processing target information indicating name and second key information of an attribute value within a predetermined range, and a first information generated from the event information when the event information is received Key Information and the processing target information are compared to determine whether or not the event information is to be processed, and the processing target determination unit determines that the event information is not to be processed.
  • an information transfer unit that transmits the event information or the event information and the
  • the control method receives event information including an attribute name indicating arbitrary information and an attribute value indicating a value of the arbitrary information, and among the received event information, A node control method for processing event information including a predetermined attribute name and an attribute value within a predetermined range.
  • event information including an attribute name indicating arbitrary information and an attribute value indicating a value of the arbitrary information
  • a node control method for processing event information including a predetermined attribute name and an attribute value within a predetermined range.
  • the program according to the third aspect of the present invention receives event information including an attribute name indicating arbitrary information and an attribute value indicating the value of the arbitrary information.
  • a program that controls a node that processes event information including an attribute name and an attribute value within a predetermined range, and when the event information is received, the attribute name and attribute value included in the event information Generating first key information converted into a size-comparable format, and when receiving the event information, the first key information generated from the event information, the predetermined attribute name, and the predetermined
  • the range of the minimum value to the maximum value that can be taken by the attribute value according to the embodiment of the present invention, the range of the attribute value specified by the event condition, and the ratio of the range of the attribute value to the minimum value to the maximum value It is a figure which shows an example of the relationship. It is a flowchart which shows the operation
  • FIG. 1 is a configuration diagram of an information processing system that is a schematic configuration of an event distribution system according to an embodiment of the present invention.
  • the information processing system 5 includes a plurality of nodes 50 and 60.
  • the node 50 includes a key information generation unit 51, a processing target determination unit 52, a processing target information storage unit 53, and an information transfer unit 54.
  • the configuration of the node 60 is the same as the configuration of the node 50, and thus description thereof is omitted.
  • Each of the nodes 50 and 60 receives event information including an attribute name and an attribute value.
  • the attribute name indicates arbitrary information.
  • the attribute value indicates the value of this arbitrary information.
  • Each of the nodes 50 and 60 sets event information including a predetermined attribute name and an attribute value within a predetermined range in the received event information as a processing target.
  • the key information generating unit 51 When receiving the event information, the key information generating unit 51 generates first key information obtained by converting the attribute name and the attribute value into a format that can be compared in size from the attribute name and the attribute value included in the event information. To do.
  • the processing target determination unit 52 compares the first key information generated from the event information with the processing target information stored in the processing target information storage unit 53. Thus, the processing target determination unit 52 determines whether or not this event information is a processing target.
  • the processing target information storage unit 53 holds processing target information in advance.
  • the processing target information indicates second key information of a predetermined attribute name and an attribute value within a predetermined range.
  • the information transfer unit 54 transmits the event information and the first key information generated from the event information to another node. .
  • the key information generation unit 51 converts the attribute name and the attribute value included in the event information into a format in which the attribute name and the attribute value can be compared in size. Is generated. Then, the key information generation unit 51 outputs the event information and the first key information generated from the event information to the processing target determination unit 52.
  • the processing target determination unit 52 acquires the event information and the first key information output from the key information generation unit 51
  • the processing target determination unit 52 acquires the processing target information stored in the processing target information storage unit 53.
  • the process target determination part 52 determines whether the acquired event information is made into a process target by comparing the acquired 1st key information and process target information.
  • the information transfer unit 54 transmits the first key information generated from the event information to the other nodes together with the event information.
  • FIG. 2 is a configuration diagram of the event distribution system.
  • the event distribution system 1 is composed of one or more nodes.
  • the event delivery system manages a finite value (key) space. An order is defined between the different keys.
  • Each node manages a range of consecutive keys.
  • a key generation function for generating a key obtained by converting an attribute name and an attribute value included in an event and a subscription into a format that can be compared in size is prepared. That is, the key generation function is a function having a key as a return value.
  • a key generation function for generating a key is represented by f (n, v). Note that n is a character string and v is an arbitrary real number. Assume that the order is defined for each attribute name and attribute value. That is, a size relationship is defined for the attribute name.
  • f (n, v) is a function satisfying f (n1, v1)> f (n2, v2) if n1> n2.
  • v1 and v2 are arbitrary values.
  • f1 (n, v) An example of a key generation function is shown.
  • the key generation function exemplified here is described as f1 (n, v).
  • an attribute name is represented by a character string. It is assumed that the attribute value is represented by a decimal integer of up to 3 digits (0 to 999).
  • f1 (n, v) first converts an attribute value into a character string. When the attribute value is from 0 to 99, f1 (n, v) adds 0 to the upper digit and becomes 3 characters. For example, the attribute value 20 becomes a character string “020” after conversion.
  • the function f1 (n, v) then combines the attribute name character string and the attribute value character string with a delimiter in between.
  • a character string obtained by f1 (n, v) is expressed as a bit string by a character code in an information processing apparatus such as a PC (Personal computer) or a server.
  • f2 (n, v) has a predetermined number of bits as a return value from the top of the bit string expressing the character string obtained by f1 (n, v) by a character code. For example, the upper 160 bits of the bit string are used as the return value of f2.
  • the character code is 4 bytes
  • “x: 020” is 160 bits (4 bytes ⁇ 5 characters ⁇ 8). Therefore, the entire bit string expressing “x: 020” by the character code is the return value.
  • the event distribution system 1 exemplifies a case where there are seven nodes from node a to node g.
  • the attribute name “x” whose range of possible attribute values is an integer of 0 or more and less than 320 and the attribute name “y” whose range of possible attribute values is 0 or more and less than 320 are 2 Assume that one attribute is supported. That is, each attribute value has a minimum value and a maximum value.
  • An example in which the order relation of character strings is ":" ⁇ "0" ⁇ "1" ⁇ ... ⁇ "9" ⁇ "a" ⁇ "b" ⁇ ... ⁇ "z" will be described.
  • the node a manages a character string of “x: 160” or more and smaller than “x: 240”.
  • the key “x: 200” is managed by the node a.
  • the nodes a to g are constituted by an information processing apparatus or a part thereof. That is, one node may be composed of one information processing apparatus. One node may be configured by allocating an arbitrary amount of resources such as a memory, a CPU (Central Processing Unit), and a hard disk included in the information processing apparatus. That is, a plurality of nodes may be configured from one information processing apparatus.
  • FIG. 3 is a configuration diagram of the node.
  • the node 10 includes a subscription transfer information generation unit 11, an event transfer information generation unit 12, a message determination unit 13, a subscription arrangement control unit 14, a subscription management unit 15, an event condition match determination unit 16, And a message transfer unit 17.
  • the configuration of the node 20 is the same as the configuration of the node 10, and thus the description thereof is omitted. That is, each of the nodes a to g included in the event distribution system 1 has the same configuration as that of the node 10.
  • the subscription transfer information generation unit 11 generates information necessary for transferring the subscription from the subscription input from the subscriber 31.
  • the event transfer information generation unit 12 generates information necessary for transferring the event from the event input from the publisher 32.
  • the information generated by the subscription transfer information generation unit 11 and the event transfer information generation unit 12 includes a key.
  • the subscription transfer information generation unit 11 and the event transfer information generation unit 12 function as a key information generation unit 51.
  • the message determination unit 13 determines whether the message sent to the node 10 is a subscription or an event.
  • the subscription placement control unit 14 controls to which node the subscription is placed.
  • the subscription management unit 15 stores the subscription in the node.
  • the subscription management unit 15 corresponds to an event condition information storage unit.
  • the event condition match determination unit 16 determines whether the received event matches the event condition.
  • the message transfer unit 17 transfers a message including an event and a message including a subscription ID, a subscription, and a request type to a node determined by an input key.
  • the message transfer unit 17 functions as a processing target determination unit 52 and an information transfer unit 54.
  • FIG. 4 is a flowchart showing the operation in the subscription transfer information generation unit 11.
  • the input subscription is first processed by the subscription transfer information generation unit 11 (S101).
  • the subscription transfer information generation unit 11 selects one attribute from the attribute name group that configures the event condition that is a component of the received subscription (S102).
  • the subscription transfer information generation unit 11 generates a key from the selected attribute name and the minimum value of the attribute value range for the selected attribute name (S103).
  • the subscription transfer information generation unit 11 inputs the generated key and subscription as a pair to the message transfer unit 17. As a result, the message including the subscription is transferred to the node that manages the key.
  • FIG. 5 shows an example of the relationship between the minimum value to the maximum value range that the attribute value can take, the attribute value range specified in the event condition, and the ratio of the attribute value range to the minimum value to the maximum value. Show. If the number of possible attribute values for the attribute name “x” is 100 and the size of the attribute value range specified by the event condition is 10, the ratio is 1/10.
  • the ratio is 1/6. Therefore, in this example, the attribute name “x” having a smaller ratio is selected. Then, a key is generated from the attribute name “x” and the attribute value “11” that is the minimum value of the attribute value range corresponding to the attribute name “x”.
  • the key generation function described above is used to generate a key from the attribute name and attribute value.
  • the subscription is registered to that node. Therefore, when the attribute name with the smallest ratio is selected, the number of nodes to which subscriptions are registered can be reduced.
  • FIG. 6 is a flowchart showing the operation of the event transfer information generation unit 12.
  • the event input from the publisher 32 is first processed by the event transfer information generation unit 12 (S111).
  • the event transfer information generation unit 12 performs the following processing for each attribute name constituting the received event.
  • the event transfer information generation unit 12 inputs an attribute name n and an attribute value v for the attribute name n to a key generation function to generate a key (S112).
  • the event transfer information generation unit 12 transfers the message to the node that manages the key by inputting the generated key and event as a pair to the message transfer unit 17 (S113).
  • FIG. 7 is a flowchart showing the operation of the message determination unit 13.
  • the message determination unit 13 receives a key and a message from the message transfer unit 17 (S121). The message determination unit 13 determines the content of the received message (S122). If the message is a subscription, the message determination unit 13 inputs the key and the message to the subscription arrangement control unit 14 and ends the process (S123). On the other hand, if the message is an event, the message determination unit 13 inputs the message to the event condition match determination unit 16 using the key and the message, and ends the process (S124).
  • FIG. 8 is a flowchart showing the operation of the subscription arrangement control unit 14.
  • the subscription arrangement control unit 14 receives a key and a message from the message determination unit 13 (S131). Thereafter, the subscription placement control unit 14 performs a subscription registration / deletion process (S132) and a subscription transfer process (S133). Hereinafter, the two processes will be described.
  • FIG. 9 is a flowchart showing the subscription registration / deletion process.
  • the subscription placement control unit 14 first determines the request type of the message (S141). When the message is a registration request, the subscription placement control unit 14 registers the type and generates a subscription operation request from the subscription ID and the subscription included in the message (S142). The subscription arrangement control unit 14 inputs the generated subscription operation request to the subscription management unit 15 (S144). On the other hand, if the message is a deletion request, the subscription placement control unit 14 deletes the type and generates a subscription operation request from the subscription ID included in the message (S143). The subscription arrangement control unit 14 inputs the generated subscription operation request to the subscription management unit 15 (S144).
  • FIG. 10 is a flowchart showing the subscription transfer process.
  • the subscription arrangement control unit 14 generates a key (target key) from the attribute name included in the message and the maximum value of the attribute value range for the attribute name (S151).
  • the subscription arrangement control unit 14 determines whether or not the target key is included in the key range managed by the node executing this process (S152). If the target key is not included in the key range, the subscription placement control unit 14 generates a minimum key value (new key) managed by the successor (S153). Thereafter, the subscription placement control unit 14 designates the successor as the next hop, and inputs a new key and message to the message transfer unit 17 (S154).
  • FIG. 11 is a flowchart showing the operation of the subscription management unit 15.
  • the subscription management unit 15 has a subscription management table for managing subscription IDs and subscriptions.
  • An example of the subscription management table is shown in FIG.
  • the subscription management table stores a record in which a subscription ID is associated with a subscription.
  • the subscription management unit 15 receives a subscription operation request from the subscription placement control unit 14 or the event condition match determination unit 16 (S161).
  • the subscription operation request includes a type as one of its constituent elements. Types include registration, deletion, and reference. The components of the subscription operation request are different for each type.
  • FIG. 13 shows a subscription operation request when the type is registration. When the type is registration, the subscription operation request includes a subscription ID and a subscription in addition to the type.
  • FIG. 14 shows a subscription operation request when the type is deletion. When the type is deletion, the subscription operation request includes a subscription ID in addition to the type.
  • FIG. 15 shows a subscription operation request when the type is “reference”. When the type is a reference, the subscription operation request is composed of only the type.
  • the subscription management unit 15 When receiving the subscription operation request, the subscription management unit 15 first refers to the type of the received subscription operation request (S162). If the type is registration, the subscription management unit 15 adds a subscription and subscription ID pair as a record to the subscription management table (S163). When the type is deletion, the subscription management unit 15 deletes the record with the same subscription ID from the subscription management table (S164). If the type is reference, the subscription management unit 15 returns the subscription management table to the caller (S165).
  • FIG. 16 is a flowchart showing the operation of the event condition match determination unit 16.
  • the event condition match determination unit 16 When the event condition match determination unit 16 receives an event from the message transfer unit 17 (S 171), the event condition match determination unit 16 inputs a subscription operation request with reference to the type to the subscription management unit 15, thereby subscribing from the subscription management unit 15. A management table is acquired (S172). The event condition match determination unit 16 executes the following processing for each record r in the acquired subscription management table. First, the event condition match determination unit 16 determines whether an event matches an event condition that is one of the components of the subscription of the record r (S173). If the event matches the event condition, then the event condition match determination unit 16 sets the subscription ID and event pair of the record r with the application ID that is one of the components of the subscription of the record r. It transmits to the identified application 40 (S174).
  • FIG. 17 is a flowchart showing the operation of the message transfer unit 17.
  • the message transfer unit 17 receives a key and a message from the subscription transfer information generation unit 11, the event transfer information generation unit 12, the subscription arrangement control unit 14, or a node other than the node on which this process operates (S181). ).
  • the message transfer unit 17 determines whether or not the received key is included in the key range managed by the node in which the process is performed (S182).
  • the node 10 including the message transfer unit 17 has an arbitrary storage device such as a memory or a hard disk.
  • key range information indicating a key range managed by the node 10 is stored in the storage device. Then, the message transfer unit 17 makes the determination here by comparing the received key with the key range information. This storage device corresponds to the processing target information storage unit 53.
  • the message transfer unit 17 When the key is included in the key range managed, the message transfer unit 17 inputs the key and the message to the message determination unit 13 (S183). If the key is not included in the managed key range, the message transfer unit 17 determines whether a successor is designated as the next hop node (S184). When the successor is not designated as the next hop node, the message transfer unit 17 refers to the routing table and determines a transfer destination node (S185). Then, the message transfer unit 17 transfers the key and the message to the next hop node (S186).
  • the message transfer unit 17 has a routing table.
  • the routing table is stored in, for example, an arbitrary storage device included in the message transfer unit 17.
  • a method for generating a routing table, a maintenance method, and a method for determining a message transfer destination node with reference to the routing table depend on the routing protocol.
  • the routing protocol the method described in Section 3.3 of Non-Patent Document 2 can be used.
  • the routing protocol may be arbitrarily determined. For example, among the nodes having “key to send> minimum value of key range managed by the node”, “(key to send) ⁇ (key range managed by the node) The key and the message are transmitted so as to reach the node having the minimum value.
  • FIG. 18 is a diagram illustrating an operation example of the event distribution system 1.
  • the node g which is a component of the event distribution system 1 receives the subscription s (50 ⁇ x ⁇ 150 & 150 ⁇ y ⁇ 250, app1) from the subscriber 31 (S80).
  • the node g selects the attribute x from the attribute x and the attribute y constituting the subscription s in the subscription transfer information generation unit 11 (S81).
  • the subscription transfer information generation unit 11 generates a key “x: 050” from the attribute x and 50 which is the minimum value of the attribute value range of the attribute x.
  • the subscription transfer information generation unit 11 receives a subscription ID and a request type from the subscriber 31 together with the subscription.
  • the subscription transfer information generation unit 11 generates a message by adding the selected attribute name “x” to the subscription ID, the subscription, and the request type.
  • the subscription transfer information generation unit 11 inputs the key and message to the message transfer unit 17.
  • the message transfer unit 17 transmits the input key and message to the node that manages the key according to the routing protocol.
  • the key and the message transmitted from the message transfer unit 17 of the node g are finally passed through the message transfer unit 17 of zero or more nodes, and finally to the message transfer unit of the node c managing the key “x: 050”.
  • Reach (S82) the key and message transmitted from the node g may reach the node c via the nodes e and f, or may directly reach the node c from the node g.
  • the node c in which “(the key to be transmitted) ⁇ (the minimum value of the key range managed by the node)” is the minimum is set. Key and message arrive.
  • the message transfer unit 17 of the node c sends the key and message to the message determination unit 13. input.
  • the message determination unit 13 inputs a key and a message to the subscription arrangement control unit 14 because the message is composed of a subscription.
  • the subscription placement control unit 14 registers a subscription ID and subscription pair in the subscription management unit 15. That is, here, the case where the request type is a registration request is illustrated.
  • the key “x: 150” generated from the attribute name “x” included in the message and the maximum value 150 of the attribute value range for the attribute name “x” is the key range [“x: 000 ",” x: 080 "). Therefore, the subscription arrangement control unit 14 inputs the input key and the minimum key value “x: 080” managed by the successor to the message transfer unit 17.
  • a node that manages a key range [“x: 080”, “x: 160”) following the key range [“x: 000”, “x: 080”] managed by the node c b is set. That is, when the key “x: 150” generated from the maximum value 150 of the message attribute value range is not included in the node c, the key range that follows the key range managed by the node c is managed. Node b to be included. Therefore, the node c transmits the message to the node b and the key “x: 080” generated from the minimum value of the key range managed by the node b so that the message subscription is also registered in the node b. . Therefore, the message transfer unit 17 is designated by the node b, which is the successor, as the next hop from the subscription placement control unit 14. Then, the message transfer unit 17 transmits the input key and message to the node b.
  • the key and message transmitted from the message transfer unit 17 of the node c reach the node b (S83). Since the received key “x: 080” is included in the managed key range [“x: 080”, “x: 160”), the message transfer unit 17 of the node b sends the key and message to the message determination unit 13. input. Then, similarly to the processing in the node c, the subscription ID and subscription constituting the message are registered in the subscription management unit 15 of the node.
  • the key “x: 150” generated from the attribute name “x” included in the message and the maximum value 150 of the attribute value range for the attribute name “x” is the key range [“x: 080 "," x: 160 "). Therefore, the subscription placement control unit 14 does not input a key and a message to the message transfer unit 17. Therefore, no message is transferred. As a result of these processes, the subscription s is held in the node c and the node b.
  • the event transfer information generation unit 12 inputs the key and message to the message transfer unit 17 for each key, using the event as a message. Then, the message transfer unit 17 transmits the input key and message to the node that manages the key according to the routing protocol.
  • the message is transferred to the node that manages each key.
  • the key “x: 100” and the message transmitted with the key reach the node b (S85).
  • the key “y: 200” and the message transmitted together with the key reach the node e (S86).
  • the message transfer unit 17 of the node b manages the key range [“x: 080”, “x: 160” that the received key “x: 100” manages. “)”, A key and a message are input to the message determination unit 13.
  • the message determination unit 13 inputs a key and a message to the event condition match determination unit 16 because the message is composed of an event.
  • the event condition match determination unit 16 acquires a subscription management table from the subscription management unit 15.
  • the message transfer unit 17 of the node e manages the key range [“y: 200”, “y” that the received key “y: 200” manages. : 320 "), a key and a message are input to the message determination unit 13.
  • the message determination unit 13 inputs a key and a message to the event condition match determination unit 16 because the message is composed of an event.
  • a node is managed by a key generated by converting an attribute name and attribute value included in an event into a format in which the attribute name and attribute value can be compared in size. It is possible to determine whether or not the event is included in the key range to be performed. In other words, it is possible to determine whether or not an event is a processing target of a node. Therefore, even when two or more nodes having different attribute names are included in the same hub, it can be determined by simply comparing whether or not the event or the subscription is a processing target of the node. That is, nodes that manage two or more different attribute names can be included in the same hub. Therefore, it is not necessary to have a hub corresponding to each attribute name. Thereby, when adjusting the load in each node, the load can be adjusted only by adjusting the range of attribute values managed by each node. Therefore, it is possible to easily adjust the load applied to each node.
  • a node always transmits a subscription or event received from a subscriber or publisher and a key generated from the subscription or event to other nodes. Then, the determination is made based on the key received by another node.
  • a node may send only subscriptions or events to other nodes.
  • the subscription transfer information generation unit or the event transfer information generation unit generates a key from the received subscription or event, and performs determination based on the generated key.
  • the node according to the present invention described above supplies a computer with a program that realizes the functions of the above-described embodiments, and the CPU or a CPU or MPU (Micro Processing Unit) included in the computer executes the program. It is possible to configure.
  • Non-transitory computer readable media include various types of tangible storage media (tangible storage medium). Examples of non-transitory computer-readable media include magnetic recording media (eg flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable ROM), flash ROM, RAM (random access memory)) are included.
  • the program may also be supplied to the computer by various types of temporary computer-readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • the present invention may be implemented. It is included in the form.
  • Event distribution system Information processing system 10, 20, 50, 60 Node 11 Subscription transfer information generation unit 12 Event transfer information generation unit 13 Message determination unit 14 Subscription placement control unit 15 Subscription management unit 16 Event condition match Determination unit 17 Message transfer unit 51 Key information generation unit 52 Processing target determination unit 53 Processing target information storage unit 54 Information transfer unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 各ノードにかかる負荷の調整を容易にすることができる情報処理システム、制御方法およびプログラムを提供すること。本発明にかかる情報処理システム5は、イベント情報を受信した場合に、イベント情報に含まれる属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するキー情報生成部51と、所定の属性名及び所定の範囲内の属性値の第2のキー情報を示す処理対象情報を予め保持する処理対象情報格納部53と、イベント情報から生成された第1のキー情報と、処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定する処理対象判定部52と、処理対象判定部52がイベント情報を処理対象としないと判定した場合に、当該イベント情報と、当該イベント情報から生成された第1のキー情報とを他の第1のノードに送信する情報転送部54を有する第1のノードを複数備える。

Description

情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体
 本発明は、情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体に関する。
 ID、位置、時刻などの複数の属性から構成されるデータ(以下、「イベント」とする)をアプリケーションに対して配信できるイベント配信システムがある。イベントは、1つ以上の属性から構成される。属性は、属性名と属性値から構成される。例えば、温度・湿度センサが観測した20℃の温度、60%の湿度を基にイベントを生成する場合、イベントは、属性名が"温度"で、それに対する属性値が20℃である属性と、属性名が"湿度"で、それに対する属性値が60%である属性から構成されるように表現できる。
 イベント配信システムには、外部プログラム(サブスクライバ)からサブスクリプションIDと、要求種別と、サブスクリプションとが入力(サブスクライブ)される。サブスクリプションIDは、サブスクリプションを識別するための情報である。要求種別は、登録要求か削除要求かを識別するための情報である。サブスクリプションは、イベントの条件(イベント条件)と、通知先のアプリケーションのID(アプリケーションID)とから構成される。登録要求の場合、サブスクリプションIDとサブスクリプションがペアでイベント配信システムに記憶される。
 イベントが発生すると、外部プログラム(パブリッシャ)から発生したイベントが、イベント配信システムに入力(パブリッシュ)される。イベント配信システムは、イベントが登録されているサブスクリプションのイベント条件に合致すると、該イベント条件とペアで指定されているアプリケーションIDで特定されるアプリケーションに対して該イベントを送信する。
 イベント条件として、複数の属性条件を記述できる。属性条件として、属性名と、それに対する属性値の範囲を指定できる。イベント条件を構成する全ての属性条件について、属性条件で指定される属性名をイベントが含んでおり、かつ、属性条件で指定される属性値の範囲が、イベントに記述される該属性名に対する属性値を包含している場合、該イベントは該イベント条件に合致するという。例えば、属性名が"温度"で、その属性名に対する属性値の範囲が"10℃以上30℃以下"であるイベント条件がイベント配信システムに登録されているとする。その状態で、属性名が"温度"で、その属性名に対する属性値が"20℃"である属性と、属性名が"湿度"で、その属性名に対する属性値が"60%"である属性を含むイベントが発生したとする。イベント条件で指定される属性名"温度"については、"20℃"が"10℃以上30℃以下"に含まれる。そのため、該イベントは該イベント条件に合致すると言える。属性名"湿度"については、該イベント条件で指定されていないので、該イベント条件に合致するかどうかに影響を与えない。
 このようにイベントを処理する技術の一例が、非特許文献1に記載されている。図19は、非特許文献1に記載される技術を説明する図である。図19に示すイベント(図19中のpublication)とイベント条件(図19中のsubscription)は、属性名xと属性名yから構成される。該イベントには、属性名xに対する属性値が100であり、属性名yに対する属性値が200であることが記述されている。該イベント条件には、属性名xに対する属性値の範囲が50以上150以下であり、属性名yに対する属性値の範囲が150以上250以下であることが記述されている。該イベントは該イベント条件に合致する。
 図19に示すシステムは、各属性名と1対1に対応するサブシステム(ハブ)から構成される。ハブは1つ以上のノードをリング状に構成するものである。あるノードから見て、リング上の次のノードをサクセッサと呼ぶ。ハブに属するノードは、該ハブに対応する属性名に対する属性値の範囲(属性値範囲)を管理する。
 ノードがサブスクライバからのサブスクリプション、又は、パブリッシャからのイベントを受信した場合、ノードは、該ノードが属するハブとは別のハブに属するノードに、イベントやサブスクリプションを転送する。そのため、ノードは、該ノードが属するハブとは別のハブに属するノードのネットワークアドレスを保持する(以下、そのようなノードを「クロスハブ隣接ノード」と呼ぶ)。クロスハブ隣接ノードを決定する方法が非特許文献2に開示されている。
 新しくノードがハブに参加した直後では、該ノードのサクセッサのクロスハブ隣接ノードを該ノードのクロスハブ隣接ノードリンクとする。その後、メンテナンスプロセスを開始する。メンテナンスプロセスでは、他の各ハブでランダムウォークを行い、新規のクロスハブ隣接ノードを決定する。ランダムウォークとは、ランダムウォークを開始するノードから、ルーティングテーブルに記録されている任意のノードへアクセス(ホップ)し、アクセスされたノードから、さらに上記と同じ手段でホップしていくことを、あらかじめ定めされているホップ数に至るまで繰り返すことである。そして、あらかじめ定められたホップ数に至ったときに到達しているノードをクロスハブ隣接ノードとして決定する。
Ashwin R. Bharambe, Sanjay Rao and Srinivasan Seshan: "Mercury: A Scalable Publish-Subscribe System for Internet Games", Proc. of 1st Workshop on Network and System Support for Games (NetGames2002), April 2002. Ashwin R. Bharambe , Mukesh Agrawal , Srinivasan Seshan, "Mercury: Supporting Scalable Multi-attribute Range Queries," ACM SIGCOMM Computer Communication Review, Vol.34 No.4, October 2004.
 ところで、非特許文献1、2に開示されているようなシステムを構築する場合、各ノードに情報処理装置のリソース(計算リソースやメモリリソース)の全部又は一部を割り当てて構成することが考えられる。そして、非特許文献1、2に開示されているような各属性名のそれぞれに対応するハブを有するシステムでは、特定のハブに含まれる特定のノードに負荷が集中している場合、まず、そのハブに含まれる各ノードが管理する属性値の範囲を調整することが考えられる。これによって、ノードにかかる負荷を均等にして負荷を調整する。次に、それでもノードの負荷が十分に軽減できない場合は、他のハブに割り当てられているリソースを、その特定のハブに移動して負荷を調整することが考えられる。このように各ノードにかかる負荷を均等にすることで、特定のノードに負荷が集中して、そのノードがボトルネックとなってシステム全体としてのイベント処理性能が低下してしまうという事態を回避することができる。
 しかし、異なるハブに属するノード間でリソースの移動がある場合、そのリソースによって新規にノードを構築しなければならない場合がある。その場合、各ノードが管理する属性値の範囲の調整の他に、サクセッサやクロスハブ隣接ノード等を割り当てる必要があるため、非常に手間がかかってしまうというという問題がある。
 あるノードに、該ノードが属するハブとは別のハブから割り当てられるリソースが、その時点で、該ノードが動作する情報処理装置とは、別の情報処理装置上のリソースである場合がある。その場合には、ノードは複数の情報処理装置上にまたがって動作することはできないため、新規にノードを構築しなければならない。
 また、非特許文献2に開示の技術では、各ノードが、クロスハブ隣接ノードを決定するために、各ハブでランダムウォークを行う必要がある。そのため、ランダムウォークを行うための処理コストがかかってしまうという問題がある。これは各ハブに含まれるノードにかかる負荷を増大することにもつながる。
 以上に説明したように、各属性名のそれぞれに対応するハブを有するシステムでは、各ノードにかかる負荷の調整に非常に手間がかかってしまうという問題がある。
 本発明の目的は、上述した課題を解決するために、各ノードにかかる負荷の調整を容易にすることができる情報処理システム、制御方法およびプログラムを提供することにある。
 本発明の第1の態様にかかる情報処理システムは、任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とする第1のノードを複数備えた情報処理システムであって、前記第1のノードは、前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するキー情報生成部と、前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示す処理対象情報を予め保持する処理対象情報格納部と、前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定する処理対象判定部と、前記処理対象判定部が前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他の第1のノードに送信する情報転送部と、を有するものである。
 本発明の第2の態様にかかる制御方法は、任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とするノードの制御方法であって、前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するステップと、前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示し、予め保持された処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定するステップと、前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他のノードに送信するステップと、を備えたものである。
 本発明の第3の態様にかかるプログラムは、任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とするノードを制御するプログラムであって、前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するステップと、前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示し、予め保持されている処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定するステップと、前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他のノードに送信するステップと、をコンピュータに実行させるものである。
 上述した本発明によれば、各ノードにかかる負荷の調整を容易にすることができる情報処理システム、制御方法およびプログラムを提供することができる。
本発明の実施の形態にかかる情報処理システムの構成図である。 本発明の実施の形態にかかるイベント配信システムの構成図である。 本発明の実施の形態にかかるノードの構成図である。 本発明の実施の形態にかかるサブスクリプション転送情報生成部における動作を示すフローチャートである。 本発明の実施の形態にかかる属性値が取り得る最小値乃至最大値の範囲と、イベント条件で指定されている属性値の範囲と、最小値乃至最大値に占める当該属性値の範囲の割合との関係の一例を示す図である。 本発明の実施の形態にかかるイベント転送情報生成部における動作を示すフローチャートである。 本発明の実施の形態にかかるメッセージ判定部における動作を示すフローチャートである。 本発明の実施の形態にかかるサブスクリプション配置制御部における動作を示すフローチャートである。 本発明の実施の形態にかかるサブスクリプション登録・削除処理のフローチャートである。 本発明の実施の形態にかかるサブスクリプション転送処理のフローチャートである。 本発明の実施の形態にかかるサブスクリプション管理部における動作を示すフローチャートである。 本発明の実施の形態にかかるサブスクリプション管理テーブルの一例を示す図である。 種別が登録の場合のサブスクリプション操作要求を示す図である。 種別が削除の場合のサブスクリプション操作要求を示す図である。 種別が参照の場合のサブスクリプション操作要求を示す図である。 本発明の実施の形態にかかるイベント条件合致判定部における動作を示すフローチャートである。 本発明の実施の形態にかかるメッセージ転送部における動作を示すフローチャートである。 本発明の実施の形態にかかるイベント配信システムの動作例を示す図である。 背景技術を説明するための図である。
本発明の実施の形態.
 まず、図1を参照して、本発明の実施の形態にかかるイベント配信システムの概要について説明する。図1は、本発明の実施の形態にかかるイベント配信システムの概要構成となる情報処理システムの構成図である。
 情報処理システム5は、複数のノード50、60を含む。ノード50は、キー情報生成部51、処理対象判定部52、処理対象情報格納部53及び情報転送部54を備える。なお、ノード60の構成については、ノード50の構成と同様であるため、説明を省略する。
 ノード50、60のそれぞれは、属性名と、属性値とを含むイベント情報を受信する。属性名は、任意の情報を示す。属性値は、この任意の情報の値を示す。ノード50、60のそれぞれは、受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とする。
 キー情報生成部51は、イベント情報を受信した場合に、このイベント情報に含まれる属性名と属性値から、この属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成する。
 処理対象判定部52は、イベント情報を受信した場合に、このイベント情報から生成された第1のキー情報と、処理対象情報格納部53に格納される処理対象情報とを比較する。ことによって、処理対象判定部52は、このイベント情報を処理対象とするか否かを判定する。
 処理対象情報格納部53は、処理対象情報を予め保持する。処理対象情報は、所定の属性名及び所定の範囲内の属性値の第2のキー情報を示す。
 情報転送部54は、処理対象判定部52がイベント情報を処理対象としないと判定した場合に、このイベント情報と、このイベント情報から生成された第1のキー情報とを他のノードに送信する。
 続いて、本発明の実施の形態にかかる情報処理システムの処理について説明する。
 まず、キー情報生成部51は、イベント情報を受信した場合に、このイベント情報に含まれる属性名と属性値から、この属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成する。そして、キー情報生成部51は、イベント情報と、そのイベント情報から生成された第1のキー情報を処理対象判定部52に出力する。
 処理対象判定部52は、キー情報生成部51から出力されたイベント情報及び第1のキー情報を取得すると、処理対象情報格納部53に格納されている処理対象情報を取得する。そして、処理対象判定部52は、取得した第1のキー情報と処理対象情報とを比較することによって、取得したイベント情報を処理対象とするか否かを判定する。
 情報転送部54は、処理対象判定部52がイベント情報を処理対象としないと判定した場合に、このイベント情報と共に、このイベント情報から生成された第1のキー情報を他のノードに送信する。
 続いて、本発明の実施の形態にかかるイベント配信システムについて詳細に説明する。図2を参照して、本実施の形態にかかるイベント配信システムの構成について説明する。図2は、イベント配信システムの構成図である。
 イベント配信システム1は、1つ以上のノードから構成される。イベント配信システムでは、有限の値(キー)空間を管理する。異なるキーの間には順序が定義される。各ノードは、連続するキーの範囲を管理する。
 本実施の形態では、イベント及びサブスクリプションに含まれる属性名及び属性値を大小比較可能な形式に変換したキーを生成するキー生成関数を用意する。つまり、キー生成関数は、キーを戻り値とする関数である。属性名をn、属性値をvとすると、キーを生成するキー生成関数はf(n,v)で表される。なお、nは文字列であり、vは、任意の実数である。属性名、属性値にはそれぞれ順序が定義されているとする。つまり、属性名には、大小関係が定義されている。例えば、属性名が文字列で表され、順序関係が辞書式順序に従う場合、属性名"温度"は、属性名"時刻"より小さい値となる。f(n,v)は、n1>n2ならば、f(n1,v1)>f(n2,v2)を満たす関数である。ここで、v1とv2は任意の値である。さらにf(n,v)は、n1=n2かつv1>v2ならば、f(n1,v1)>f(n2,v2)を満たす関数である。
 キー生成関数の例を示す。ここで例示するキー生成関数をf1(n,v)と記述する。属性名が文字列で表されるとする。属性値は3桁までの10進整数(0から999まで)で表されるとする。f1(n,v)は、まず、属性値を文字列に変換する。f1(n,v)は、属性値が0から99までの場合には、上位桁に0を追加し、3文字にする。例えば、属性値20は変換後、文字列"020"となる。関数f1(n,v)は、その後、属性名の文字列と属性値の文字列をデリミタを間に挟んで結合する。関数f1(n,v)は、結合後の文字列をf1(n,v)の戻り値とする。デリミタとして、属性名と属性値のいずれにも使用されない記号を使用する。例えば、デリミタを":"とすると、f1("x",20)="x:020"となる。
 キー生成関数の他の例を示す。ここで例示するキー生成関数をf2(n,v)と記述する。f1(n,v)で求められる文字列は、PC(Personal computer)やサーバ等の情報処理装置内では、文字コードによって、ビット列で表現される。f2(n,v)は、f1(n,v)で求められる文字列を文字コードによって表現したビット列のうち、上位から所定のビット数を戻り値とする。例えば、そのビット列の上位160ビットをf2の戻り値とする。文字コードが4バイトの場合、"x:020"は160ビット(4バイト×5文字×8)となる。そのため、"x:020"を文字コードによって表現したビット列の全てが戻り値となる。
 本実施の形態では、イベント配信システム1は、ノードaからノードgまでの7つのノードが存在している場合について例示する。該イベント配信システム1では、取り得る属性値の範囲が0以上320未満の整数である属性名"x"と、取り得る属性値の範囲が0以上320未満である属性名"y"との2つの属性をサポートしているものとする。つまり、属性値のそれぞれは最小値及び最大値を有する。文字列の順序関係が、":"<"0"<"1"<・・・<"9"<"a"<"b"<・・・<"z"である場合について例示する。例えば、ノードaは、"x:160"以上の文字列で、"x:240"より小さい文字列を管理する。例えば、キー"x:200"はノードaが管理する。
 ここで、ノードa~gは、情報処理装置又はその一部から構成される。つまり、1つのノードは、1つの情報処理装置から構成されていてもよい。また、1つのノードは、情報処理装置に含まれるメモリ、CPU(Central Processing Unit)及びハードディスク等のリソースが任意の量割り当てられて構成されるようにしてもよい。つまり、複数のノードが1つの情報処理装置から構成される場合がある。
 続いて、本実施の形態にかかるノードの構成について説明する。図3は、ノードの構成図である。
 ノード10は、サブスクリプション転送情報生成部11と、イベント転送情報生成部12と、メッセージ判定部13と、サブスクリプション配置制御部14と、サブスクリプション管理部15と、イベント条件合致判定部16と、メッセージ転送部17と、を有する。なお、ノード20の構成については、ノード10の構成と同様であるため、説明を省略する。つまり、イベント配信システム1に含まれるノードa~gのそれぞれは、ノード10の構成と同様である。
 サブスクリプション転送情報生成部11は、サブスクライバ31から入力されたサブスクリプションから、そのサブスクリプションを転送するために必要な情報を生成する。
 イベント転送情報生成部12は、パブリッシャ32から入力されたイベントから、そのイベントを転送するために必要な情報を生成する。サブスクリプション転送情報生成部11及びイベント転送情報生成部12が生成する情報には、キーが含まれる。サブスクリプション転送情報生成部11及びイベント転送情報生成部12は、キー情報生成部51として機能する。
 メッセージ判定部13は、ノード10宛に送られてきたメッセージがサブスクリプションかイベントかを判定する。
 サブスクリプション配置制御部14は、サブスクリプションをどのノードに配置するかを制御する。
 サブスクリプション管理部15は、サブスクリプションをノード内に記憶する。サブスクリプション管理部15は、イベント条件情報格納部に相当する。
 イベント条件合致判定部16は、受信したイベントがイベント条件に合致するかどうかを判定する。
 メッセージ転送部17は、入力されるキーで決まるノードに対して、イベントを含んだメッセージや、サブスクリプションID、サブスクリプション及び要求種別を含んだメッセージを転送する。メッセージ転送部17は、処理対象判定部52及び情報転送部54として機能する。
 続いて、図4を参照して、本実施の形態にかかるサブスクリプション転送情報生成部11における動作について説明する。図4は、サブスクリプション転送情報生成部11における動作を示すフローチャートである。
 サブスクライバ31からノード10へサブスクリプションが入力されると、入力されたサブスクリプションは、まず、サブスクリプション転送情報生成部11で処理される(S101)。サブスクリプション転送情報生成部11は、受信したサブスクリプションの構成要素であるイベント条件を構成する属性名群から1つの属性を選択する(S102)。次に、サブスクリプション転送情報生成部11は、選択した属性名とそれに対する属性値範囲の最小値からキーを生成する(S103)。最後に、サブスクリプション転送情報生成部11は、生成したキーとサブスクリプションをペアとして、メッセージ転送部17へ入力する。これにより、そのキーを管理するノードへサブスクリプションが含まれるメッセージが転送される。
 イベント条件を構成する属性名群から1つの属性を選択する方法として、例えば、イベント条件を構成する各属性名について、属性値が取り得る値の範囲に対する、イベント条件として指定されている属性値範囲の割合を求め、最も割合が小さい属性名を選択する方法がある。図5に、属性値が取り得る最小値乃至最大値の範囲と、イベント条件で指定されている属性値の範囲と、最小値乃至最大値に占める属性値の範囲の割合との関係の一例を示す。属性名"x"に対する属性値が取り得る値の数が100で、イベント条件で指定された属性値範囲のサイズが10であるとすると、割合は、1/10となる。属性名"y"に対する属性値が取り得る値の数が300で、イベント条件で指定された属性値範囲のサイズが50であるとすると、割合は1/6となる。よって、この例の場合、より割合の小さい属性名"x"が選択される。そして、属性名"x"と、その属性名"x"に対応する属性値範囲の最小値である属性値"11"からキーが生成される。属性名と属性値からのキーの生成には、前述しているキー生成関数を用いる。
 ここで、サブスクリプションのイベント条件に含まれる属性名群から選択した属性の属性値の範囲と、ノードが管理する属性値の範囲が重複する場合に、そのノードにサブスクリプションが登録される。したがって、最も割合が小さい属性名を選択した場合は、サブスクリプションが登録されるノード数を低減することができる。
 続いて、図6を参照して、本実施の形態にかかるイベント転送情報生成部12における動作について説明する。図6は、イベント転送情報生成部12の動作を示すフローチャートである。
 パブリッシャ32から入力されたイベントは、まず、イベント転送情報生成部12で処理される(S111)。イベント転送情報生成部12は、受信したイベントを構成する各属性名について、以下の処理を行う。まず、イベント転送情報生成部12は、属性名nとその属性名nに対する属性値vをキー生成関数へ入力してキーを生成する(S112)。次に、イベント転送情報生成部12は、生成したキーとイベントをペアとして、メッセージ転送部17へ入力することによって、そのキーを管理するノードへメッセージを転送する(S113)。
 続いて、図7を参照して、本実施の形態にかかるメッセージ判定部13における動作について説明する。図7は、メッセージ判定部13の動作を示すフローチャートである。
 メッセージ判定部13は、メッセージ転送部17からキーとメッセージを受信する(S121)。メッセージ判定部13は、受信したメッセージの内容を判定する(S122)。メッセージ判定部13は、メッセージがサブスクリプションであれば、該キーと該メッセージをサブスクリプション配置制御部14へ入力して処理を終了する(S123)。一方、メッセージ判定部13は、メッセージがイベントであれば、該キーと該メッセージをイベント条件合致判定部16にメッセージを入力して処理を終了する(S124)。
 続いて、図8~10を参照して、本実施の形態にかかるサブスクリプション配置制御部14における動作について説明する。図8は、サブスクリプション配置制御部14の動作を示すフローチャートである。
 サブスクリプション配置制御部14は、メッセージ判定部13からキーとメッセージを受信する(S131)。その後、サブスクリプション配置制御部14は、サブスクリプション登録・削除処理(S132)と、サブスクリプション転送処理(S133)を行う。以降、前記2つの処理を説明する。
 図9は、サブスクリプション登録・削除処理を示すフローチャートである。サブスクリプション登録・削除処理では、まず、サブスクリプション配置制御部14は、メッセージの要求種別を判定する(S141)。メッセージが登録要求である場合、サブスクリプション配置制御部14は、種別を登録として、メッセージに含まれるサブスクリプションIDとサブスクリプションからサブスクリプション操作要求を生成する(S142)。サブスクリプション配置制御部14は、生成したサブスクリプション操作要求をサブスクリプション管理部15に入力する(S144)。一方、メッセージが削除要求である場合、サブスクリプション配置制御部14は、種別を削除として、メッセージに含まれるサブスクリプションIDからサブスクリプション操作要求を生成する(S143)。サブスクリプション配置制御部14は、生成したサブスクリプション操作要求をサブスクリプション管理部15に入力する(S144)。
 図10は、サブスクリプション転送処理を示すフローチャートである。サブスクリプション転送処理では、まず、サブスクリプション配置制御部14は、メッセージに含まれる属性名と、その属性名に対する属性値範囲の最大値からキー(ターゲットキー)を生成する(S151)。次に、サブスクリプション配置制御部14は、ターゲットキーが、本処理を実行しているノードが管理するキー範囲に含まれるかどうかを判定する(S152)。ターゲットキーがキー範囲に含まれていない場合、サブスクリプション配置制御部14は、サクセッサが管理するキーの最小値(新規キー)を生成する(S153)。その後、サブスクリプション配置制御部14は、ネクストホップとしてサクセッサを指定して、メッセージ転送部17へ新規キーとメッセージを入力する(S154)。
 続いて、図11を参照して、本実施の形態にかかるサブスクリプション管理部15における動作について説明する。図11は、サブスクリプション管理部15の動作を示すフローチャートである。
 サブスクリプション管理部15は、サブスクリプションIDとサブスクリプションを管理するサブスクリプション管理テーブルを有する。サブスクリプション管理テーブルの例を図12に示す。サブスクリプション管理テーブルには、サブスクリプションIDと、サブスクリプションとが対応付けられたレコードが格納される。
 サブスクリプション管理部15は、サブスクリプション配置制御部14、あるいは、イベント条件合致判定部16から、サブスクリプション操作要求を受信する(S161)。
 サブスクリプション操作要求は、その構成要素の1つとして種別を含む。種別には、登録、削除、参照がある。種別ごとにサブスクリプション操作要求の構成要素は異なる。種別が登録の場合のサブスクリプション操作要求を図13に示す。種別が登録の場合、サブスクリプション操作要求は、種別に加えて、サブスクリプションIDとサブスクリプションとから構成される。種別が削除の場合のサブスクリプション操作要求を図14に示す。種別が削除の場合、サブスクリプション操作要求は、種別に加えて、サブスクリプションIDから構成される。種別が参照の場合のサブスクリプション操作要求を図15に示す。種別が参照の場合、サブスクリプション操作要求は、種別のみから構成される。
 サブスクリプション管理部15は、サブスクリプション操作要求を受信すると、まず、受信したサブスクリプション操作要求の種別を参照する(S162)。種別が登録の場合、サブスクリプション管理部15は、サブスクリプションとサブスクリプションIDのペアをレコードとしてサブスクリプション管理テーブルに追加する(S163)。種別が削除の場合、サブスクリプション管理部15は、サブスクリプションIDが一致するレコードをサブスクリプション管理テーブルから削除する(S164)。種別が参照の場合、サブスクリプション管理部15は、サブスクリプション管理テーブルを呼び出し元に返す(S165)。
 続いて、図16を参照して、本実施の形態にかかるイベント条件合致判定部16における動作について説明する。図16は、イベント条件合致判定部16の動作を示すフローチャートである。
 イベント条件合致判定部16は、メッセージ転送部17からイベントを受信すると(S171)、サブスクリプション管理部15へ種別を参照としたサブスクリプション操作要求を入力することによって、サブスクリプション管理部15からサブスクリプション管理テーブルを取得する(S172)。イベント条件合致判定部16は、取得したサブスクリプション管理テーブルの各レコードrについて、以下の処理を実行する。まず、イベント条件合致判定部16は、イベントが、レコードrのサブスクリプションの構成要素の1つであるイベント条件に合致するかどうかを判定する(S173)。イベントがイベント条件に合致した場合には、次に、イベント条件合致判定部16は、レコードrのサブスクリプションIDとイベントのペアを、レコードrのサブスクリプションの構成要素の1つであるアプリケーションIDで識別されるアプリケーション40に送信する(S174)。
 続いて、図17を参照して、本実施の形態にかかるメッセージ転送部17における動作について説明する。図17は、メッセージ転送部17の動作を示すフローチャートである。
 メッセージ転送部17は、サブスクリプション転送情報生成部11、イベント転送情報生成部12、サブスクリプション配置制御部14、あるいは、本処理が動作するノードとは別のノードからキーとメッセージを受信する(S181)。メッセージ転送部17は、キーとメッセージを受信すると、受信したキーが本処理が動作するノードが管理するキー範囲に含まれるかどうかを判定する(S182)。例えば、メッセージ転送部17を含むノード10に、メモリやハードディスク等の任意の記憶装置を有するようにする。また、この記憶装置にノード10が管理するキー範囲を示すキー範囲情報を格納するようにする。そして、メッセージ転送部17が、受信したキーと、キー範囲情報とを比較することによってここでの判定を可能とする。この記憶装置は、処理対象情報格納部53に相当する。
 キーが管理するキー範囲に含まれる場合、メッセージ転送部17は、メッセージ判定部13へキーとメッセージを入力する(S183)。キーが管理するキー範囲に含まれない場合、メッセージ転送部17は、ネクストホップノードとしてサクセッサが指定されているか否かを判定する(S184)。ネクストホップノードにサクセッサが指定されていない場合、メッセージ転送部17は、ルーティングテーブルを参照し、転送先のノードを決定する(S185)。そして、メッセージ転送部17は、ネクストホップノードにキーとメッセージを転送する(S186)。
 ルーティングテーブルでは、キーとノードのネットワークアドレスとのペアが管理されている。メッセージ転送部17は、ルーティングテーブルを有する。ルーティングテーブルは、例えば、メッセージ転送部17が有する任意の記憶装置に格納される。ルーティングテーブルの生成方法と、メンテナンス方法と、ルーティングテーブルを参照して、メッセージの転送先のノードを決定する方法はルーティングプロトコルに依存する。ルーティングプロトコルの例として、非特許文献2の3.3節に記述される方法を利用できる。ルーティングプロトコルは、任意に決定してもよく、例えば、「送信するキー>ノードが管理するキー範囲の最小値」となるノードのうち、「(送信するキー)-(ノードが管理するキー範囲の最小値)」が最小となるノードに、キー及びメッセージが到達するように送信する。
 続いて、図18を参照して、本実施の形態にかかるイベント配信システム1における動作について説明する。図18は、イベント配信システム1の動作例を示す図である。
 イベント配信システム1の構成要素であるノードgが、サブスクライバ31からサブスクリプションs(50≦x≦150&150≦y≦250,app1)を受信したとする(S80)。
 ノードgは、サブスクリプション転送情報生成部11でサブスクリプションsを構成する属性xと属性yから、属性xを選択する(S81)。次に、サブスクリプション転送情報生成部11は、属性xと、その属性xの属性値範囲の最小値である50とからキー"x:050"を生成する。なお、サブスクリプション転送情報生成部11は、サブスクリプションとともに、サブスクリプションID及び要求種別が、サブスクライバ31から入力される。サブスクリプション転送情報生成部11は、サブスクリプションID、サブスクリプション及び要求種別に、選択した属性名"x"を合わせてメッセージを生成する。サブスクリプション転送情報生成部11は、キーとメッセージをメッセージ転送部17へ入力する。そして、メッセージ転送部17は、入力されたキー及びメッセージをルーティングプロトコルにしたがって、そのキーを管理するノードに対して送信する。
 ノードgのメッセージ転送部17から送信されたキー及びメッセージは、0以上のノードのメッセージ転送部17を経由して、最終的に、キー"x:050"を管理するノードcのメッセージ転送部に到達する(S82)。つまり、ノードgから送信されたキー及びメッセージは、ノードe、fを経由してノードcに到達するようにしてもよく、ノードgから直接ノードcに到達するようにしてもよい。ここでは、「送信するキー>ノードが管理するキー範囲の最小値」となるノードのうち、「(送信するキー)-(ノードが管理するキー範囲の最小値)」が最小となるノードcに、キー及びメッセージが到達する。
 ノードcのメッセージ転送部17は、受信したキー"x:050"が、管理するキー範囲["x:000","x:080")に含まれるため、メッセージ判定部13にキーとメッセージを入力する。メッセージ判定部13は、メッセージがサブスクリプションから構成されているため、キーとメッセージをサブスクリプション配置制御部14へ入力する。サブスクリプション配置制御部14は、サブスクリプションIDとサブスクリプションのペアをサブスクリプション管理部15に登録する。つまり、ここでは要求種別が登録要求の場合について例示している。
 また、メッセージに含まれる属性名"x"と、その属性名"x"に対する属性値範囲の最大値150から生成されるキー"x:150"が、ノードcが管理するキー範囲["x:000","x:080")に含まれない。そのため、サブスクリプション配置制御部14は、サクセッサが管理するキーの最小値"x:080"と、入力されたメッセージを、メッセージ転送部17に入力する。
 ここで、ノードcのサクセッサとして、ノードcが管理するキー範囲["x:000","x:080")に続くキー範囲["x:080","x:160")を管理するノードbが設定されている。つまり、メッセージの属性値範囲の最大値150から生成されるキー"x:150"が、ノードcに含まれない場合、メッセージの属性値範囲がノードcの管理するキー範囲に続くキー範囲を管理するノードbに含まれることになる。したがって、ノードcは、メッセージのサブスクリプションがノードbでも登録されるようにするため、ノードbが管理するキー範囲の最小値から生成したキー"x:080"と、メッセージをノードbに送信する。よって、メッセージ転送部17は、サブスクリプション配置制御部14からネクストホップとしてサクセッサであるノードbが指定する。そして、メッセージ転送部17は、入力されたキー及びメッセージをノードbに送信する。
 ノードcのメッセージ転送部17から送信されたキーとメッセージは、ノードbに到達する(S83)。ノードbのメッセージ転送部17は、受信したキー"x:080"が、管理するキー範囲["x:080","x:160")に含まれるため、メッセージ判定部13にキーとメッセージを入力する。そして、ノードcにおける処理と同様に、メッセージを構成するサブスクリプションIDとサブスクリプションは、該ノードのサブスクリプション管理部15に登録される。また、メッセージに含まれる属性名"x"と、その属性名"x"に対する属性値範囲の最大値150から生成されるキー"x:150"は、ノードbが管理するキー範囲["x:080","x:160")に含まれる。そのため、サブスクリプション配置制御部14は、メッセージ転送部17にキー及びメッセージの入力は行わない。よって、メッセージの転送は行われない。これらの処理の結果、サブスクリプションsはノードcとノードbに保持されることとなる。
 次に、イベント配信システム1の構成要素であるノードaが、パブリッシャ32からイベントe(x=100,y=200)を受信したとする(S84)。イベントは属性名xと属性名yから構成されるので、ノードaのイベント転送情報生成部12は、属性名xに対するキー"x:100"と、属性名yに対するキー"y:200"を生成する。イベント転送情報生成部12は、イベントをメッセージとして、それぞれのキーごとに、キー及びメッセージをメッセージ転送部17に入力する。そして、メッセージ転送部17は、入力されたキー及びメッセージをルーティングプロトコルにしたがって、そのキーを管理するノードに対して送信する。
 メッセージは、それぞれのキーを管理するノードへ転送される。キー"x:100"と、そのキーと共に送信されたメッセージは、ノードbに到達する(S85)。キー"y:200"と、そのキーと共に送信されたメッセージは、ノードeに到達する(S86)。
 キー"x:100"とそのイベントがノードbに到達すると、ノードbのメッセージ転送部17は、受信したキー"x:100"が、管理するキー範囲["x:080","x:160")に含まれるため、メッセージ判定部13にキーとメッセージを入力する。メッセージ判定部13は、メッセージがイベントから構成されているため、キーとメッセージをイベント条件合致判定部16に入力する。イベント条件合致判定部16は、サブスクリプション管理部15からサブスクリプション管理テーブルを取得する。そして、イベント条件合致判定部16は、サブスクリプション管理テーブルに登録されているサブスクリプションsのイベント条件が「(50≦x≦150)かつ(150≦y≦250)」であり、イベントの属性値が「x=100,y=200」であるため、イベント条件に合致すると判定する。そのため、イベント条件合致判定部16は、アプリケーションapp1にイベントが通知する。
 また、キー"y:200"とそのイベントがノードeに到達すると、ノードeのメッセージ転送部17は、受信したキー"y:200"が、管理するキー範囲["y:200","y:320")に含まれるため、メッセージ判定部13にキーとメッセージを入力する。メッセージ判定部13は、メッセージがイベントから構成されているため、キーとメッセージをイベント条件合致判定部16に入力する。イベント条件合致判定部16は、サブスクリプション管理部15からサブスクリプション管理テーブルを取得する。そして、イベント条件合致判定部16は、イベントの属性値が「x=100,y=200」であるが、サブスクリプションsがサブスクリプション管理テーブルに登録されていないため、イベント条件に合致しないと判定する。そのため、イベント条件合致判定部16は、アプリケーションへのイベントの通知は行わない。
 以上に説明したように、本実施の形態によれば、イベントに含まれる属性名と属性値から、この属性名及び属性値を大小比較可能な形式に変換して生成したキーによって、ノードが管理するキー範囲に含まれるイベントか否かを判定することができるようにしている。言い換えると、ノードが処理対象とするイベントか否かを判定することができるようにしている。したがって、同一のハブ内に2以上の属性名が異なるノードが含まれるような場合であっても、イベント又はサブスクリプションがノードの処理対象か否かを単純比較することで判定可能である。つまり、同一のハブ内に2以上の異なる属性名を管理するノードを含めることができる。そのため、各属性名のそれぞれに対応するハブを有する必要がなくなる。これによって、各ノードのそれぞれにおける負荷を調整する場合、各ノードが管理する属性値の範囲を調整するのみで負荷を調整することができる。そのため、各ノードにかかる負荷の調整を容易にすることができる。
 また、本実施の形態によれば、上述したように、各属性名のそれぞれに対応するハブを有する必要がなくなるため、ランダムウォークを行う等して、クロスハブ隣接ノードを決定する必要がなくなる。したがって、処理コストを低減することができる。
 なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
 本実施の形態では、ノードが、サブスクライバ又はパブリッシャから受信したサブスクリプション又はイベントと、そのサブスクリプション又はイベントから生成したキーと、を常に他のノードに送信するようにしている。そして、他のノードで受信したキーに基づいて、判定を行うようにしている。しかし、これに限られない。例えば、ノードが、他のノードにサブスクリプション又はイベントのみを送信するようにしてもよい。この場合、例えば、他のノードでは、サブスクリプション転送情報生成部又はイベント転送情報生成部によって、受信したサブスクリプション又はイベントからキーを生成して、生成したキーに基づいて判定を行うようにする。
 以上に説明した本発明にかかるノードは、上述の実施の形態の機能を実現するプログラムをコンピュータに供給し、コンピュータ又はコンピュータの有するCPU又はMPU(Micro Processing Unit)等がこのプログラムを実行することによって、構成することが可能である。
 また、このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているOS(Operating System)もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
 さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
 この出願は、2009年12月9日に出願された日本出願特願2009-279210を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、2  イベント配信システム
5  情報処理システム
10、20、50、60  ノード
11  サブスクリプション転送情報生成部
12  イベント転送情報生成部
13  メッセージ判定部
14  サブスクリプション配置制御部
15  サブスクリプション管理部
16  イベント条件合致判定部
17  メッセージ転送部
51  キー情報生成部
52  処理対象判定部
53  処理対象情報格納部
54  情報転送部

Claims (10)

  1.  任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とする第1のノードと、
     前記第1のノードは、前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するキー情報生成手段と、
     前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示す処理対象情報を予め保持する処理対象情報格納手段と、
     前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定する処理対象判定手段と、
     前記処理対象判定手段が前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他の第1のノードに送信する情報転送手段と、を有する情報処理システム。
  2.  前記第1のノードは、前記第1のノードが前記イベント情報に応じた処理を実行するためのイベント情報の属性名及び属性値の範囲を示すイベント条件情報を予め保持するイベント条件情報格納手段と、
     前記処理対象判定部が前記イベント情報を処理対象とすると判定した場合に、当該イベント情報の属性名及び属性値と、前記イベント条件情報とに基づいて、当該イベント情報に応じた処理を実行するか否かを判定するイベント条件合致判定手段と、を更に有する請求項1に記載の情報処理システム。
  3.  前記キー情報生成手段は、外部から前記イベント条件情報を受信した場合に、当該イベント条件情報が示す属性名及び属性値の範囲のうち、いずれかの属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第3のキー情報を生成し、
     前記処理対象判定手段は、前記イベント条件情報から生成した第3のキー情報と、前記処理対象情報とを比較することによって、当該イベント条件情報を処理対象とするか否かを判定し、
     前記情報転送手段は、前記処理対象判定手段が前記イベント条件情報を処理対象としないと判定した場合に、当該イベント条件情報、又は、当該イベント条件情報及び当該イベント条件情報から生成された第3のキー情報を他の第1のノードに送信する請求項2に記載の情報処理システム。
  4.  前記第1のノードは、前記イベント条件情報と、当該イベント条件情報を一意に識別する識別情報と、当該イベント条件情報の登録を要求する要求種別情報を受信したときに、前記処理対象判定手段が当該イベント条件情報を処理対象とすると判定した場合は、当該イベント条件情報を当該識別情報と対応付けて前記イベント条件情報格納手段に格納するとともに、前記イベント条件情報の識別情報と、当該イベント条件情報の削除を要求する要求種別情報を受信した場合に、前記イベント条件情報格納手段に格納されているイベント条件情報のうち、当該識別情報に対応付けられたイベント条件情報を削除するイベント条件情報制御手段を更に有する請求項3に記載の情報処理システム。
  5.  前記属性値は、最小値及び最大値を有し、
     前記キー情報生成手段は、前記イベント条件情報が示す属性名及び属性値の範囲のうち、前記最小値乃至最大値に占める当該属性値の範囲の割合が最小となる属性名及び属性値の範囲から第3のキー情報を生成する請求項3又は4に記載の情報処理システム。
  6.  前記キー情報生成手段は、前記イベント情報又はイベント条件情報の生成元から夫々送信されたイベント情報又はイベント条件情報を受信した場合、前記第1又は第3のキー情報を生成し、
     前記情報転送手段は、前記キー情報生成手段が前記第1のキー情報を生成した場合に、前記イベント情報と前記第1のキー情報を送信するとともに、前記キー情報生成手段が前記第3のキー情報を生成した場合に、前記イベント条件情報と前記第3のキー情報を送信する請求項3乃至5のいずれか1項に記載の情報処理システム。
  7.   前記属性名は、大小関係が定義された文字列であり、
      前記キー情報生成手段は、前記属性名をn1、n2とし、前記属性値をv1、v2(v1及びv2は、任意の実数)とし、前記属性名n1及び属性値v1によって生成したキー情報をk1とし、前記属性名n2及び属性値v2によって生成したキー情報をk2としたときに、n1>n2を満たす場合、又は、n1=n2かつv1>v2を満たす場合には、k1>k2となるようにキー情報を生成する請求項1乃至6のいずれか1項に記載の情報処理システム。
  8.   前記複数の第1のノードは、異なる2以上の前記属性名を有する請求項1乃至7のいずれか1項に記載の情報処理システム。
  9.   任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とするノードの制御方法であって、
      前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成し、
      前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示し、予め保持されている処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定し、
      前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他のノードに送信する制御方法。
  10.   任意の情報を示す属性名と、当該任意の情報の値を示す属性値とを含むイベント情報を受信して、当該受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とするノードを制御するプログラムであって、
      前記イベント情報を受信した場合に、当該イベント情報に含まれる属性名と属性値から、当該属性名及び属性値を大小比較可能な形式に変換した第1のキー情報を生成するステップと、
      前記イベント情報を受信した場合に、当該イベント情報から生成された第1のキー情報と、前記所定の属性名及び所定の範囲内の属性値の第2のキー情報を示し、予め保持されている処理対象情報とを比較することによって、当該イベント情報を処理対象とするか否かを判定するステップと、
      前記イベント情報を処理対象としないと判定した場合に、当該イベント情報、又は、当該イベント情報及び当該イベント情報から生成された第1のキー情報を他のノードに送信するステップと、をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
PCT/JP2010/006557 2009-12-09 2010-11-09 情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体 WO2011070716A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011545052A JP5724880B2 (ja) 2009-12-09 2010-11-09 情報処理システム、制御方法およびプログラム
US13/514,444 US8978048B2 (en) 2009-12-09 2010-11-09 Information processing system, control method, and non-transitory computer readable medium storing program
CN2010800557922A CN102656563A (zh) 2009-12-09 2010-11-09 信息处理系统、控制方法及存储程序的非临时性计算机可读介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-279210 2009-12-09
JP2009279210 2009-12-09

Publications (1)

Publication Number Publication Date
WO2011070716A1 true WO2011070716A1 (ja) 2011-06-16

Family

ID=44145283

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/006557 WO2011070716A1 (ja) 2009-12-09 2010-11-09 情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体

Country Status (4)

Country Link
US (1) US8978048B2 (ja)
JP (1) JP5724880B2 (ja)
CN (1) CN102656563A (ja)
WO (1) WO2011070716A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047922A (ja) * 2011-08-29 2013-03-07 Fujitsu Ltd イベント収集方法及び情報処理装置
JP2015153250A (ja) * 2014-02-17 2015-08-24 日本電信電話株式会社 負荷分散処理装置及び負荷分散処理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2895955A1 (en) * 2012-09-13 2015-07-22 Thomson Licensing Method of random access message retrieval from first-in-first-out transport mechanism
CN103744737B (zh) * 2014-01-13 2017-07-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN106004836A (zh) * 2016-05-30 2016-10-12 北京小米移动软件有限公司 车辆防抱死的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160616A (ja) * 1993-12-06 1995-06-23 Fuji Xerox Co Ltd イベント処理装置
JPH10275125A (ja) * 1997-03-31 1998-10-13 Nri & Ncc Co Ltd 多数のコンピュータが参加する情報分配応答システム
JP2003167808A (ja) * 2001-11-29 2003-06-13 Nippon Telegr & Teleph Corp <Ntt> 処理方法、処理システム、委託装置、プログラム及び記録媒体
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム
JP2008097111A (ja) * 2006-10-06 2008-04-24 Nec Corp リソース分配方法、プログラム、及びリソース分配装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477585B1 (en) * 1995-08-18 2002-11-05 International Business Machines Corporation Filter mechanism for an event management service
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
WO2005101215A1 (ja) * 2004-04-14 2005-10-27 Matsushita Electric Industrial Co., Ltd. 端末装置及び著作権保護システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160616A (ja) * 1993-12-06 1995-06-23 Fuji Xerox Co Ltd イベント処理装置
JPH10275125A (ja) * 1997-03-31 1998-10-13 Nri & Ncc Co Ltd 多数のコンピュータが参加する情報分配応答システム
JP2003167808A (ja) * 2001-11-29 2003-06-13 Nippon Telegr & Teleph Corp <Ntt> 処理方法、処理システム、委託装置、プログラム及び記録媒体
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム
JP2008097111A (ja) * 2006-10-06 2008-04-24 Nec Corp リソース分配方法、プログラム、及びリソース分配装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047922A (ja) * 2011-08-29 2013-03-07 Fujitsu Ltd イベント収集方法及び情報処理装置
JP2015153250A (ja) * 2014-02-17 2015-08-24 日本電信電話株式会社 負荷分散処理装置及び負荷分散処理方法

Also Published As

Publication number Publication date
US8978048B2 (en) 2015-03-10
JP5724880B2 (ja) 2015-05-27
US20120254895A1 (en) 2012-10-04
JPWO2011070716A1 (ja) 2013-04-22
CN102656563A (zh) 2012-09-05

Similar Documents

Publication Publication Date Title
JP5625998B2 (ja) 情報処理システム
US8655985B2 (en) Content delivery using multiple sources over heterogeneous interfaces
JP6534402B2 (ja) データ品質例外を処理するための方法、コンピュータ・プログラム、および例外エンジン
JP5724880B2 (ja) 情報処理システム、制御方法およびプログラム
US10055266B1 (en) Dynamic optimization of application workflows
US9026704B2 (en) Priority based connection arbitration in a SAS topology to facilitate quality of service (QoS) in SAS transport
WO2022267175A1 (zh) 信息处理方法、装置、计算机设备及存储介质
US10673713B2 (en) Communication control device, communication device, and computer program product for dynamic group management
US8904379B2 (en) Centrally controlled proximity based software installation
JP5867407B2 (ja) 情報処理装置、システム、制御方法およびプログラム
JP6728744B2 (ja) データ提供システム、データ提供方法、データ提供装置、更新対象装置及びコンピュータ・プログラム
WO2012102103A1 (ja) 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
CN113923258A (zh) 数据处理方法及数据处理系统
WO2020220272A1 (zh) 更改资源状态的方法、系统、终端及存储介质
JP2006268588A (ja) クライアントサーバシステムおよびクライアントサーバシステムのデータ処理方法
JP6036302B2 (ja) 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
WO2013027784A1 (ja) データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体
JP6007753B2 (ja) 管理サーバ、ハードウェア管理装置、情報処理装置、ハードウェア管理システム、ハードウェア管理方法、および、コンピュータ・プログラム
JP2019056973A (ja) 学習装置、生成装置、学習方法、生成方法、学習プログラム、生成プログラム、及びモデル
KR102391506B1 (ko) 단말기 제어 관리 시스템 및 그 제어방법
WO2014020795A1 (ja) 分散システム制御装置、プログラム、及び制御方法
JP2014134988A (ja) データ共有システム及びデータ共有方法
CN116827940A (zh) 一种数据处理方法、装置、设备及存储介质
CN113239038A (zh) 数据处理方法和装置
CN117573926A (zh) 基于企业服务总线的消息格式动态转换方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080055792.2

Country of ref document: CN

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

Ref document number: 10835647

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13514444

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011545052

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10835647

Country of ref document: EP

Kind code of ref document: A1