WO2012060465A1 - 情報処理装置、システム、制御方法およびプログラム - Google Patents

情報処理装置、システム、制御方法およびプログラム Download PDF

Info

Publication number
WO2012060465A1
WO2012060465A1 PCT/JP2011/075646 JP2011075646W WO2012060465A1 WO 2012060465 A1 WO2012060465 A1 WO 2012060465A1 JP 2011075646 W JP2011075646 W JP 2011075646W WO 2012060465 A1 WO2012060465 A1 WO 2012060465A1
Authority
WO
WIPO (PCT)
Prior art keywords
section
key
information
attribute
event
Prior art date
Application number
PCT/JP2011/075646
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/882,375 priority Critical patent/US8973015B2/en
Priority to JP2012541919A priority patent/JP5867407B2/ja
Publication of WO2012060465A1 publication Critical patent/WO2012060465A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Definitions

  • the present invention relates to an information processing apparatus, system, control method, and program.
  • Event distribution system capable of distributing data (hereinafter referred to as “event”) including one or more data items such as ID, position, and time to an application.
  • Each data item is composed of an attribute name and an attribute value.
  • the event distribution system receives (subscribes) a subscription, a subscription ID for identifying a subscription, and a request type for identifying a registration request or a deletion request from an external program (subscriber).
  • the The subscription is composed of an event condition (event condition) and a notification destination application ID (application ID).
  • event condition event condition
  • application ID application ID
  • the event distribution system can describe a plurality of attribute conditions as event conditions. For example, the event distribution system can specify an attribute name and a range of attribute values corresponding to the attribute condition.
  • the event includes the attribute name specified by the attribute condition, and the attribute value range specified by the attribute condition is the attribute described in the event.
  • An event is said to match the event condition if it contains an attribute value for the name. For example, it is assumed that an event condition having an attribute name “temperature” and an attribute value range “10 ° C. to 30 ° C.” is registered in the event distribution system. In that state, there is an event including an attribute whose attribute name is “temperature” and the attribute value corresponding to it is “20 ° C.”, and an attribute whose attribute name is “humidity” and whose attribute value is “60%”. Suppose that it occurred.
  • 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. In addition, when viewed from a certain node, the previous node on the ring is called a predecessor.
  • a node belonging to a hub manages an attribute value range (attribute value range) for an attribute name corresponding to the hub.
  • a node that receives a subscription from a subscriber or receives an event from a publisher transfers the event or subscription to a node that belongs to a hub different from the hub to which the node belongs. Therefore, a node holds a network address of a node belonging to a hub different from the hub to which the node belongs (such a node is referred to as a “cross hub adjacent node”).
  • Non-Patent Document 2 discloses a method for determining a cross hub adjacent node.
  • the system Immediately after a new node joins the hub, the system sets the node's successor's cross hub adjacent node link as the node's cross hub adjacent node link. The system then starts the maintenance process. In the maintenance process, the system performs a random walk at each of the other hubs to determine a new cross-hub neighbor. Random walk means that a node that starts a random walk accesses (hops) an arbitrary node recorded in the routing table, and the accessed node further hops by the same means as described above. Such hops are repeated until a predetermined number of hops are reached. Then, the system determines a node that is reached when the predetermined number of hops is reached as a cross hub adjacent node.
  • Random walk means that a node that starts a random walk accesses (hops) an arbitrary node recorded in the routing table, and the accessed node further hops by the same means as described above. Such hops are repeated until a predetermined number of hops are reached. Then, the
  • Ashwin R. Bharambe, Sanjay Rao and Srinivasan Seshan “Mercury: A Scalable Public-Subscribe System for Internet Games", Proc. of 1st Worksshop on Network and System Support for Games (NetGames 2002), April 2002. Ashwin R. Bharambe, Mukes Agrawal, Srinivasan Seshan, “Mercury: Supporting Scalable Multi-attribute Range Queries," ACM SIGCOMM ComputerRecommunication. 34 No. 4, October 2004.
  • Non-Patent Documents 1 and 2 are effective for data items with predetermined attribute names, but are effective in situations where attribute names that are not predetermined are newly added. is not. In other words, in the methods disclosed in Non-Patent Documents 1 and 2, if a hub for any unknown attribute name is to be created in advance, an infinite number of hubs are required, but this is not possible.
  • the system may generate a node corresponding to the attribute name at a timing when a new attribute name is added, and set the node as a hub for the attribute name. However, the system must establish a link between the newly created node and all the nodes that make up the other existing hub.
  • an object of the present invention is to provide an information processing apparatus, system, control method, and program for reducing the processing time for adding an attribute name performed at each node in order to solve the above-described problems. .
  • One aspect of the present invention is an information processing apparatus, which uses an attribute name and an attribute value, and is a size-comparable format generated based on a predetermined order relationship for at least two or more attribute names.
  • a self-section storage means for storing a self-section that is at least one of the sections divided into a plurality of sections so that a key range is adjacent to each other, and a key generated from the attribute name and the attribute value Determining means for determining whether or not it is included in the own section.
  • key ranges that are in a size-comparable format generated based on a predetermined order relationship for at least two or more attribute names using attribute names and attribute values are adjacent to each other.
  • a key generated from an attribute name and an attribute value is stored in an information processing apparatus having own section storage means for storing the own section, which is at least one of the sections divided into a plurality of sections.
  • an information processing program for executing a determination step of determining whether or not a section is included.
  • key ranges that are in a size-comparable format generated based on a predetermined order relationship for at least two or more attribute names using attribute names and attribute values are adjacent to each other.
  • An information processing apparatus comprising a self section storage means for storing a self section that is at least one section among a plurality of sections divided into a plurality of sections, wherein a key generated from an attribute name and an attribute value is An information processing method for determining whether or not a section is included is provided.
  • the range of the lower limit value to the upper limit value that can be taken by the attribute value according to the first embodiment of the present invention, the range of the attribute value specified by the event condition, and the range of the attribute value that occupies the lower limit value to the upper limit value
  • Each unit constituting the disk device of each embodiment includes a control unit, a memory, a program loaded in the memory, a storage unit such as a hard disk for storing the program, a network connection interface, and the like. Realized by any combination. And unless there is particular notice, the realization method and apparatus are not limited.
  • the control unit is composed of a CPU (Central Processing Unit) and the like, and operates the operating system to control the entire disk device and the like. For example, the program and data are read from the recording medium mounted on the drive device to the memory. Various processes are executed according to this.
  • the recording medium is, for example, an optical disk, a flexible disk, a magnetic optical disk, an external hard disk, a semiconductor memory, or the like, and records a computer program so that the computer can read it.
  • the computer program may be downloaded from an external computer (not shown) connected to the communication network.
  • the communication network may be the Internet, a LAN (Local Area Network), a public line network, a wireless communication network, or a network configured by a combination thereof.
  • the block diagram used in the description of each embodiment shows not a hardware unit configuration but a functional unit configuration. These functional blocks are realized by any combination of hardware and software.
  • each embodiment may be described as being realized by one physically coupled device, but the means for realizing the same is not limited thereto. That is, the components, devices, systems, and the like described in each embodiment may be realized by a plurality of devices by connecting two or more physically separated devices in a wired or wireless manner.
  • the means for realizing it is not limited to this. That is, each component, device, system, and the like of each embodiment may be realized by arbitrarily combining hardware and software so as to be realized by one physically coupled device.
  • FIG. 1 is an outline of a configuration diagram of an information processing apparatus 5 constituting the event distribution system 1 according to the present embodiment.
  • the information processing apparatus 5 may include a plurality of nodes 50 and 60.
  • the nodes 50 and 60 may be configured by the information processing apparatus 5 or a part thereof. That is, one node may be composed of one information processing device 5, and one node is assigned an arbitrary amount of resources such as a memory, a CPU (Central Processing Unit), and a hard disk included in the information processing device 5. You may make it comprise.
  • the plurality of nodes may be configured by one information processing apparatus 5.
  • 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 nodes 50 and 60 receive event information including an attribute name indicating the type of information and an attribute value indicating the value of this information.
  • event information (also referred to as an event) is data composed of one or more data items such as ID, position, and time, as described above.
  • a data item is composed of an attribute name and an attribute value. For example, when an event is generated based on a temperature and a temperature of 20 ° C.
  • the event has a data item whose attribute name is “temperature” and the attribute value is 20 ° C.
  • the attribute name is “humidity”, and the attribute value for the attribute name is 60%.
  • An attribute name is a name given to a data item.
  • An attribute name is a property or characteristic that is commonly provided for a certain thing. For example, in addition to the temperature and humidity described above, an object color, shape, position, time, etc. It represents properties and characteristics and is not particularly limited.
  • the attribute value represents a value that can be taken by the attribute represented by the attribute name. For example, in the above example, the attribute value for the attribute name “temperature” is “60%”.
  • the nodes 50 and 60 process event information including a predetermined attribute name and an attribute value within a predetermined range in the received event information.
  • the key information generation unit 51 When the event information is received, the key information generation unit 51 generates 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. Then, the key information generation unit 51 outputs the event information and the key information generated from the event information to the processing target determination unit 52.
  • the processing target determination unit 52 acquires the processing target information stored in the processing target information storage unit 53. And the process target determination part 52 determines whether the acquired event information is made into a process target by comparing the acquired key information and process target information.
  • the processing target information storage unit 53 holds in advance processing target information indicating key information of predetermined attribute names and attribute values within a predetermined range.
  • the processing target determination unit 52 determines that the event information is not to be processed
  • the information transfer unit 54 transmits the event information and key information generated from the event information to another node.
  • FIG. 2 is a configuration diagram of the event distribution system 1.
  • the event distribution system 1 is composed of one or more nodes.
  • the event distribution system 1 manages a space (set) of values (keys) uniquely determined from data items. An order is defined between the different keys. Each node manages a range of consecutive keys.
  • the information processing apparatus 5 prepares a key generation function that generates a key obtained by converting attribute names and attribute values included in events and subscriptions into a format that can be compared in size. That is, the key generation function is a function having a key as a return value.
  • the attribute name is n (n is a character string, etc.)
  • the attribute value is v (v is a character string, a real number, etc.)
  • the key generation function for generating a key is represented by f (n, v).
  • f n, v
  • an order is defined for each attribute name and attribute value. For example, a magnitude 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.
  • An example of a key generation function (described as f1 (n, v)) is shown. Assume that attribute names are represented as strings.
  • f1 (n, v) first converts an attribute value into a character string. For example, when the attribute value is 0 to 99, f1 (n, v) is added with 0 in the upper digit to be 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 between them, and uses it as the return value of f1 (n, v).
  • f1 (n, v) uses a symbol that is not used for either the attribute name or the attribute value as a delimiter.
  • the event distribution system 1 assigns many nodes to hash values generated from the attribute names “x” and “y”.
  • the attribute name specified by the event condition is either “x”, “y”, or both, such a hash value arrangement is appropriate.
  • the condition of the attribute name “z” is designated as the event condition, the event condition is arranged at the node e as will be described later.
  • the event distribution system 1 assigns more nodes to the hash value generated from the attribute name “z”, thereby The processing load can be balanced.
  • 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, for f2 (n, v), the upper 160 bits of the bit string are used as the return value of f2.
  • the event distribution system 1 exemplifies a case where there are seven nodes from node a to node g.
  • each attribute value may have a lower limit value (or a minimum value, the same applies hereinafter) and an upper limit value (or the maximum value, the same applies hereinafter).
  • the event distribution system 1 has an attribute name “x” whose range of attribute values can be an integer from 0 to less than 320 and an attribute name “y” whose range of attribute values can be an integer from 0 to less than 320, for example. It can be assumed that two attribute names "" are supported. Further, the order relation of the character strings may be determined in any way. For example, the order relation of character strings may be “:” ⁇ “0” ⁇ “1” ⁇ ... ⁇ “9” ⁇ “a” ⁇ “b” ⁇ . Hereinafter, in this embodiment, it is assumed that the order of attribute names circulates as follows.
  • the node a shown in FIG. 2 manages a range of keys smaller than “x: 240” with keys of “x: 160” or more (this is [“x: 160”, “x: 240”). To express. ).
  • the key “x: 200” is managed by the node a.
  • the node e is a key range of “y: 200” or more and smaller than “x: 000”, that is, attribute names “z”, “a”, “b”,.
  • FIG. 3 is a specific configuration diagram of the node described in FIG.
  • 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.
  • the subscription transfer information generation unit 11 generates information necessary for transferring the subscription from the subscription input from the subscriber 31.
  • a subscription is composed of an event condition and an ID (application ID) of a notification destination application (see FIG. 12).
  • the event condition is an event condition composed of a plurality of attribute conditions (attribute name and attribute value range corresponding thereto).
  • the event transfer information generation unit 12 generates information necessary for transferring an 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 the key information generation unit 51 illustrated in FIG.
  • the message determination unit 13 determines whether the message sent to the node 10 is a subscription or an event. To the node 10, a subscription input from the subscriber 31, an event input from the publisher 32, a subscription ID, a request type, an attribute name, and the like are transmitted from another node 20. Therefore, information such as subscriptions and events transmitted from other nodes 20 (or transmitted to other nodes 10) is collectively called a message.
  • the subscription placement control unit 14 determines 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 the processing target information storage unit 53 shown in FIG.
  • the event condition match determination unit 16 determines whether the received event matches the event condition included in the subscription stored in the subscription management unit 15.
  • the message transfer unit 17 identifies a message including an event, a subscription ID, a subscription, and a request type (registration request or deletion request) for a node whose transfer destination is determined by an input key. Forwards the message containing the type.
  • the message transfer unit 17 functions as the processing target determination unit 52 and the information transfer unit 54 illustrated in FIG.
  • FIG. 4 is a flowchart showing the operation in the subscription transfer information generation unit 11.
  • the subscription transfer information generation unit 11 selects one attribute name from the attribute name group constituting the event condition which is a constituent element of the received subscription (S102). Next, the subscription transfer information generation unit 11 generates a key from the selected attribute name and the lower limit value of the attribute value range for the selected attribute name (S103). Finally, 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.
  • a method for the subscription transfer information generation unit 11 to select one attribute name from the attribute name group constituting the event condition for example, there is the following method.
  • the subscription transfer information generation unit 11 obtains the ratio of the attribute value range specified as the event condition to the value range that can be taken as the attribute value, and the ratio is the highest.
  • Small attribute names may be selected.
  • FIG. 5 shows an example of the relationship between the lower limit value to the upper limit value that can be taken by the attribute value, the attribute value range specified by the event condition, and the ratio of the attribute value range to the lower limit value to the upper limit value. Show. For example, if the number of values that can be taken by the attribute value for the attribute name “x” is 100 and the size of the attribute value range specified by the event condition is 10, the ratio thereof is 1/10.
  • the subscription transfer information generation unit 11 selects an attribute name “x” having a smaller ratio. Then, the subscription transfer information generating unit 11 generates a key from the attribute name “x” and the attribute value “11” that is the lower limit value of the attribute value range corresponding to the attribute name “x”. The subscription transfer information generation unit 11 may generate a key using a value other than the lower limit value of the attribute value range. The subscription transfer information generation unit 11 uses the key generation function described above to generate a key from the attribute name and attribute value.
  • 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. First, the event transfer information generation unit 12 inputs an attribute name n and an attribute value v corresponding thereto to a key generation function to generate a key (S112). Next, the event transfer information generation unit 12 inputs the generated key and event as a pair to the message transfer unit 17, and transfers the message to the node that manages the key (S113). Next, with reference to FIG. 7, an operation in the message determination unit 13 according to this exemplary embodiment will be described.
  • FIG. 7 is a flowchart showing the operation of the message determination unit 13. The message determination unit 13 receives the key and the message from the message transfer unit 17 (S121). The message determination unit 13 determines the content of the received message (S122).
  • 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).
  • FIG. 9 is a flowchart showing the subscription registration / deletion process performed by the subscription placement control unit 14.
  • the subscription placement control unit 14 determines the message request type (S141). When the message is a registration request, the subscription placement control unit 14 registers the type, generates a subscription operation request from the subscription ID and the subscription included in the message (S142), and generates the generated subscription operation request. The data is input 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, generates a subscription operation request from the subscription ID included in the message (S143), and subscribes the generated subscription operation request. To the application management unit 15 (S144).
  • 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.
  • FIG. 10 is a flowchart showing the subscription transfer process.
  • the subscription arrangement control unit 14 In the subscription transfer process, first, the subscription arrangement control unit 14 generates a key (target key) from the attribute name included in the message and the upper limit value of the attribute value range for the attribute name (S151). Next, 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 not included, the subscription placement control unit 14 generates a lower limit value (new key) of a key managed by the successor (the next node when viewed from a certain node on the ring formed by the node) (S153). Thereafter, a successor is designated as the next hop, and a new key and a message are input to the message transfer unit 17 (S154).
  • a key target key
  • the subscription placement 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 not included, the subscription placement control unit 14 generates a lower limit value (new key) of a key managed by the successor (the
  • 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. In the record in the first row of the subscription management table of FIG.
  • 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 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).
  • the subscription management unit 15 deletes the record with the same subscription ID from the subscription management table (S164).
  • FIG. 16 is a flowchart showing the operation of the event condition match determination unit 16.
  • the event condition match determination unit 16 receives an event from the message transfer unit 17 (S171)
  • the event condition match determination unit 16 inputs a subscription operation request with reference to the type to the subscription management unit 15 and acquires a subscription management table (S172).
  • the event condition match determination unit 16 executes the following processing for each record r in the acquired subscription management table.
  • 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 they match, the event condition match determination unit 16 next identifies the application 40 identified by the application ID that is one of the components of the subscription of the record r and the pair of the subscription ID and the event of the record r. (S174). The event condition match determination unit 16 does not notify the application of an event when the event does not match the event condition that is one of the components of the subscription of the record r.
  • 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 the received key is included in the key range managed by the node (S182). In this determination, a key range indicating a key range managed by the node 10 is stored in any storage device such as a memory or a hard disk in any of the nodes 10 including the message transfer unit 17. Information may be stored and determination may be made by comparing the received key with key range information. This storage device corresponds to the processing target information storage unit 53 shown in FIG.
  • the node determines whether or not the received key is included in a range in which “(upper limit value of key range managed by itself) ⁇ (lower limit value of key range managed by itself)” is minimum. For example, assume that the received key is “x: 050”. Referring to FIG. 2, since the upper limit value is “x: 240” and the lower limit value is “x: 160” at node a, “x: 050” is not included in the minimum range. Therefore, in node a, the message transfer unit 17 determines that the received key is not included.
  • the message transfer unit 17 determines that the received key is included.
  • the received key is “z: 050”. Referring to FIG. 2, since the upper limit value is “x: 240” and the lower limit value is “x: 160” at node a, “z: 050” is not included in the minimum range. Therefore, in node a, the message transfer unit 17 determines that the received key is not included.
  • the upper limit value is “x: 000” and the lower limit value is “y: 200”. Since “x ⁇ y ⁇ z... ⁇ X” in the cyclic order relationship of the attribute names determined in advance, “z: 050” is included in a range in which the interval is minimum. Therefore, in the node c, the message transfer unit 17 determines that the received key is included. At this time, the message transfer unit 17 received the attribute name y used for generation of the lower limit value and the attribute name x used for generation of the upper limit value when the order relationship does not match the order relationship in a non-circular range.
  • the above determination may be realized by determining that the received key is included in the key range when the key is smaller than the lower limit value or larger than the upper limit value.
  • the message transfer unit 17 inputs the key and message to the message determination unit 13 (S183). If the received key is not included in the key range managed by the node, the message transfer unit 17 determines whether or not the successor is designated as the next hop node (S184). When the successor is designated as the next hop node, the message transfer unit 17 transfers the key and the message to the next hop node (S186). On the other hand, when the successor is not specified for the next hop node, the message transfer unit 17 refers to the routing table and determines a transfer destination node (S185).
  • 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 manages pairs of keys and node network addresses.
  • 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 node to which a message is transferred by referring to the routing table depend on a routing protocol.
  • the routing protocol the method described in Section 3.3 of Non-Patent Document 2 may be used.
  • the routing protocol may be arbitrarily determined.
  • the message transfer unit 17 may select “(transmit key) from among the nodes that satisfy“ (transmit key)> (lower limit of key range managed by the node) ”. )-(The lower limit value of the key range managed by the node) "may be transmitted so that the key and the message reach the node having the smallest value. Then, with reference to FIG. 18, the operation
  • FIG. 18 is a diagram illustrating an operation example of the event distribution system 1. As shown in FIG.
  • the node c is ["x: 000", “x: 080")
  • the node b is ["x: 080", “x: 160”
  • the node a is ["x: 160 ",” x: 240 ")
  • node d [" x: 240 "," y: 000 "
  • node g [[y: 000", “y: 100”
  • node f [[y] : 100 ",” y: 200 ")
  • node e manages up to [" y: 200 ",” x: 000 ").
  • the node g which is a component of the event distribution system 1 has received a subscription s (50 ⁇ x ⁇ 150 & 150 ⁇ y ⁇ 250, app1) from the subscriber 31 (S80).
  • the node g selects the attribute name x from the attribute name x and the attribute name y constituting the subscription s in the subscription transfer information generation unit 11 by, for example, the method described above (S81).
  • the subscription transfer information generating unit 11 generates a key “x: 050” from the attribute name x and 50 which is the lower limit value of the attribute value range.
  • the subscription transfer information generation unit 11 receives the subscription ID, the subscription, the request type (in this example, the request type is a registration request) input from the subscriber 31 and the selected attribute name “x”. Together with a message.
  • 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 managed by the node that manages the key “x: 050” via the message transfer unit 17 of zero or more nodes.
  • the message transfer unit of c is reached (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.
  • “(transmit key)> (lower limit value of key range managed by node)” “(transmit key) ⁇ (lower limit value of key range managed by node)” is the smallest.
  • the key and message arrive at node c. Since the received key “x: 050” is included in the key range [“x: 000”, “x: 080”) managed by the node c, the message transfer unit 17 of the node c sends the key to the message determination unit 13. Enter the message.
  • 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 / subscription pair in the subscription management unit 15 (see the flow of FIG. 9).
  • the key “x: 150” generated from the attribute name “x” included in the message and the attribute value range upper limit value 150 corresponding thereto is the key range [“x: 000”, “x” managed by the node c. : 080 ′′). Therefore, the subscription placement control unit 14 inputs the input lower limit value (new key) “x: 080” managed by the successor and the input message to the message transfer unit 17 (see the flow of FIG. 10).
  • 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 upper limit value 150 of the message attribute value range is not included in the node c, the key range in which the message attribute value range follows the key range managed by the node c is managed. Node b to be included.
  • the node c transmits to the node b the key “x: 080” generated from the lower limit value of the key range managed by the node b and the message so that the message subscription is also registered in the node b. . Therefore, the message transfer unit 17 designates the successor node b as the next hop from the subscription arrangement 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.
  • 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 upper limit value 150 of the attribute value range corresponding thereto is the key range [“x: 080”, “x” managed by the node b. : 160 ′′). Therefore, the subscription arrangement 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 event as a message to the message transfer unit 17 for each key. 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 forwarded to the node that manages each key.
  • the key “x: 100” and the message transmitted together with the key reach the node b (S85).
  • the key “y: 200” and the message transmitted with the key reach the node e (S86).
  • the message transfer unit 17 of the node b receives the key “x: 100” received by the key “x: 080”, “x: 160”. ′′)
  • 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 indicates that the received key “y: 200” is the key range [′′ y: 200 ”managed by the node e. , “X: 000”), 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 distribution system 1 shown in FIGS. 2 and 18 divides a key generated from the attribute name x or the attribute name y and assigns it to many nodes.
  • the event distribution system 1 determines that when a subscription that specifies the attribute name x or attribute name y condition is registered and an event including the attribute name x or attribute name y occurs. It is necessary to match the event with the subscription.
  • the event distribution system 1 divides the key generated from the attribute name x and the attribute name y and assigns them to a plurality of nodes, thereby distributing the matching process and leveling the event processing load of the event distribution system 1 Can do.
  • the operation in the event distribution system 1 according to the present embodiment when a subscription with an attribute name z that has not been specified before is subscribed will be described. To do. It is assumed that the node g which is a component of the event distribution system 1 receives the subscription s (50 ⁇ z ⁇ 150, app1) from the subscriber 31 (S90). The subscription transfer information generation unit 11 of the node g generates the key “z: 050” from the attribute name z and 50 which is the lower limit value of the attribute value range. The subscription transfer information generation unit 11 inputs the key and message to the message transfer unit 17 of the node g.
  • the message is data including a subscription ID, a subscription, a request type, and an attribute name “z” input from the subscriber 31 (S91).
  • the message transfer unit 17 of the node g transmits the input key and message to the node that manages the key according to the routing protocol (S92).
  • the key “z: 050” is “(transmit key) ⁇ (lower limit value of key range managed by the node)” among the nodes having “(transmit key)> (lower limit value of key range managed by node)”. Will reach the node with the smallest "".
  • the lower limit value of the key range managed by each node is confirmed, the lower limit value of the key range managed by the node a is “x: 160”.
  • the lower limit value of the key range managed by the node b is “x: 080”.
  • the lower limit value of the key range managed by the node c is “x: 000”.
  • the lower limit value of the key range managed by the node d is “x: 240”.
  • the lower limit value of the key range managed by the node e is “y: 200”.
  • the lower limit value of the key range managed by the node f is “y: 100”.
  • the lower limit value of the key range managed by the node g is “y: 000”.
  • the order relationship of attribute names is “x ⁇ y ⁇ z” within a range that does not make a round.
  • the event transfer information generation unit 12 of the node a generates a key “z: 100” for the attribute name z. After that, as in the case of the subscription transfer, the transferred event reaches the node e (S94). Next, when the event distribution system 1 increases the number of events and subscriptions for which the attribute name z is specified, the event distribution system 1 allocates more resources to the key generated from the attribute name z. The operation when changing the key range to be managed will be described with reference to FIGS. First, as shown in FIG. 20, the node e manages the key range ["y: 200", "x: 000"), and the node f manages the key range ["y: 100", "y: 200"). Assume that you are managing.
  • the processing target determination unit 52 refers to the attribute name included in the subscription or event information, and sets at least one of the subscription or event information received at regular intervals. Count the number of attribute names included. Then, for example, when the number of attribute names is equal to or greater than a threshold value stored in advance in the processing target information storage unit 53, or when the increase rate exceeds a certain value, the node e
  • the key information generation unit 51 generates a key of “y: 200” that is the lower limit value of the key range managed by the key, and also generates information on the changed key range. How to determine the changed key range is given by, for example, a system parameter.
  • the node e sets the changed key range as ["y: 200", “z: 000"), and changes the key range managed by itself from ["y: 200", “x: 000") to ["z. : 000 ",” x: 000 ").
  • the change key range may be determined in advance by the administrator, or may be determined by the processing target information storage unit 53 with reference to a table.
  • the processing target information storage unit 53 may have a change range management table (not shown) that associates the increase rate of the attribute name specified by the subscription received by the node with the change key range. .
  • the processing target information storage unit 53 may have a change range management table (not shown) in which an increase rate of the attribute name included in the event and the change key range are associated with each other.
  • the processing target information storage unit 53 may include a change range management table (not shown) in which attribute value ranges corresponding to attribute names included in subscription or event information are associated with change key ranges. .
  • the change range management table is changed so that the increase rate of the attribute name specified by the subscription, the increase rate of the attribute name included in the event information, or the range of the attribute value corresponding to the attribute name increases. Minute key ranges may be managed.
  • the key information generation unit 51 generates a key range [“y: 200”, “z: 000”).
  • the information transfer unit 54 transmits the generated key and the key range to the successor.
  • the processing target determination unit 52 indicates whether or not the received key is the upper limit value of the key range managed by the processing target information storage unit 53. Judgment is made with reference to the stored key range managed by itself.
  • the process target determination unit 52 determines that the received key is not the upper limit value of the key range managed by itself, the process target determination unit 52 transmits the key to the next successor.
  • the processing target information storage unit 53 creates a new key range obtained by adding the received key range to the key range managed by itself. Stored as a new key range managed by. For example, when the node f in FIG. 20 receives the key “y: 200”, the node f matches the upper limit value of the key range [′′ y: 100 ′′, ′′ y: 200 ′′) managed by the node f.
  • the processing target information storage unit 53 stores the range [“y: 100”, “z: 000”) as a key range that is newly managed by itself. Then, the node transmits to the next successor that the key range has been changed, together with the received key information “y: 200” and the changed key range [“y: 200”, “z: 000”). The next successor node receives the information indicating that the key range has been changed, the key information “y: 200”, and the changed key range [“y: 200”, “z: 000”).
  • the key information “y: 200” is the lower limit value of the key range managed by itself. If it is not the lower limit value of the key range managed by itself, the information indicating that the received key range has been changed, the key information, and the changed key range are further transmitted to the next successor. On the other hand, when the received key is the lower limit value of the key range managed by the user, the range obtained by subtracting the changed key range received from the key range managed by the user as a new key range managed by the user. Stored in the processing target information storage unit 53.
  • the processing target information storage unit 53 The key range is reduced from ["y: 200", “x: 000”) to ["y: 200", “z: 000") ["z: 000", "x: 000") change.
  • the event delivery system 1 can change the key range which a node manages, for example like FIG. 20 to FIG. That is, the key range managed by the node e is changed from ["y: 200", “x: 000") to ["z: 000", "x: 000"), and the node f manages the key.
  • the range can be changed from ["y: 100", “y: 200") to ["y: 100", “z: 000").
  • the node e may transmit the upper limit value to the successor instead of the lower limit value when changing the key range. In that case, the lower limit value and the upper limit value are appropriately replaced in the above sentence.
  • the key range managed by the node c instead of the node f is changed. This is because the node c manages the upper limit value of the key range of the node e as the lower limit value of the key range. More generally, the node e may transmit both the lower limit value and the upper limit value of the key range managed by the node e to the successor.
  • the node e can divide its own section into a plurality of sections and assign a section including the lower limit value of the node e to the node f and a section including the upper limit value of the node e to the node c by the above-described method.
  • the node e changes the key range managed by itself after confirming that the node f has changed the key range, but the node e transmits the changed key range to the successor. You may change the key range that you manage at each stage. Further, the information transmitted by the node may be transmitted to a node other than the successor.
  • the above-described node e may generate only the changed key range by the key information generation unit 51 and transmit it to the node f that is a predecessor.
  • the node f which is the predecessor, may newly set a section obtained by merging the key range managed by itself and the received changed key range as a key range managed by itself.
  • the overall image of the key range change will be described with reference to FIGS.
  • the inner circle in FIG. 22 shows that there are only three attribute names x, y, and z managed by each node, and they have a cyclic order relationship. Also, the range of attribute values for each attribute name is assumed to be between 0 and 320.
  • the outer circle in FIG. 22 indicates the key range managed by each node.
  • the node c is ["x: 000", “x: 080")
  • the node b is ["x: 080", “x: 160”
  • the node a is ["x: 160", "x: 240”.
  • Node d is [" x: 240 "," y: 000 ")
  • node g is [" y: 000 ",” x: 100 ")
  • node f is [" y: 100 ",” y: 200 ") and node e manages up to [" y: 200 ",” x: 000 ").
  • FIG. 23 shows a state in which the event distribution system 1 changes the key range managed by the node. For example, in FIG.
  • the range managed by the node f is ["y: 100", “z: 000"), and the range managed by the node e is ["z: 000", "x: 000").
  • the key range change as shown in FIG.
  • the ratio of the key range including the attribute name z is larger than the ratio of the key range including the attribute name z to the key range originally managed by the node e. This means that the event distribution system 1 increases the ratio of the key range generated from the attribute name z in the key range managed by the node when the number of events and subscriptions for which the attribute name z is specified increases.
  • the event distribution system 1 may change the key range assignment so that not only the node e but also more nodes manage the key range including the attribute z.
  • FIG. 24 shows a state where the key range [“y: 200”, “x: 000”) originally managed by the node e is newly changed to the key range [“z: 000”, “z: 200”). Is shown. Further, in FIG. 24, the node f changes the key range from ["y: 100", “y: 200”) to ["y: 100", “z: 000”). The key range is changed from ["x: 000", “x: 080") to ["z: 200", "x: 080").
  • the node e transmits a predetermined range [′′ y: 200 ′′, ′′ z: 000 ′′) including the lower limit value of the key range managed by itself to the other node and receives the node f
  • the key range is changed from ["y: 100", “y: 200”) to ["y: 100", “z: 000") by adding the range to the key range managed by itself. Can do.
  • the node e transmits a predetermined range [′′ z: 200 ′′, ′′ x: 000 ′′) including the upper limit value of the key range managed by itself to the other node and receives the node c
  • the key range is changed from ["x: 000", “x: 080") to ["z: 200", "x: 080") by adding the range to the key range managed by itself.
  • the event distribution system 1 has a key that allocates more resources to the key generated from the attribute name z when the number of events or subscriptions for which the attribute name z is specified increases. By changing to allocation, it is possible to balance the load.
  • the information processing apparatus 5 in the present embodiment includes a processing target determination unit 52 and a processing target information storage unit 53. Since these configurations and operations are as described above, description thereof will be omitted.
  • the range of keys in a size-comparable format generated based on a predetermined order relationship for at least two or more attribute names using the attribute name and the attribute value are mutually connected.
  • the self section includes a self section storage means for storing a self section that is at least one of the sections divided into a plurality of adjacent sections, and a key generated from the attribute name and the attribute value.
  • An information processing apparatus is provided that includes determination means for determining whether or not. According to the present embodiment, it is possible to provide an information processing apparatus, system, control method, and program that reduce the processing time for adding an attribute name performed in each node. Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.
  • the node according to the present invention described above supplies a storage medium storing a program for realizing the functions of the above-described embodiments to the device, and includes a CPU (Central Processing Unit) or MPU (Micro Processing Unit) included in the device. Can be configured by executing this program.
  • this program can be stored in various types of storage media and can be transmitted via a communication medium.
  • the storage medium is, for example, a flexible disk, a hard disk, a magnetic disk, a magneto-optical disk, a CD-ROM (Compact Disc Read Only Memory), a DVD (Digital Versatile Disc), or a BD (Blu-ray (registered trademark) Disc).
  • the communication medium includes a wired communication medium such as a telephone line and a wireless communication medium such as a microwave line.
  • the above-mentioned program can also be transmitted via the Internet.
  • the CPU or MPU executes the program that realizes the functions of the above-described embodiment, not only the functions of the above-described embodiment are realized, but also the system operates on the apparatus based on the instructions of the program. A case where the functions of the above-described embodiment are realized in cooperation with an operating system (OS) or application software that is included in the embodiment is also included in the embodiment of the invention.
  • OS operating system
  • An information processing apparatus comprising: Receiving means for receiving event information, which is information including an attribute name and an attribute value, and when there is an attribute name whose frequency included in the received event information is greater than or equal to a predetermined value among the attribute names, the own section Section information transfer means for transmitting an end section that is a section of the section including a lower limit or an upper limit to another information processing apparatus that stores a section adjacent to the end section, and another information processing apparatus Section information receiving means for receiving a section adjacent to the own section, processing target information storage means for updating the own section storage means using one or both of the transmitted end section and the section received by the section information receiving means,
  • Information transfer means and when the information transfer means receives the end section from another information processing apparatus, if the upper limit or the lower limit does not match the upper limit or the lower limit of the own section
  • the end section is transmitted to another information processing apparatus, and the processing target information storage means sets the received section to the own section when the upper limit or the lower limit of the received section matches the upper limit or the lower limit of the own section.
  • the section plus the serial end section information processing apparatus according to note 2 to be stored in the own segment storage means. (Appendix 4)
  • the key information generating unit receives subscription information that is information including the attribute name and a range of values that the attribute value can take, the attribute name is one of the attribute name and the attribute value.
  • a registration key is generated from the corresponding attribute value
  • the processing object information storage means takes the attribute name and the attribute value included in the subscription information when the registration key is included in the own section.
  • a key range generated from a range of values to be obtained is held as an event condition, and the processing target determination unit executes the first process of searching for the event condition when the key is included in the own section,
  • the information processing apparatus according to any one of appendix 3, wherein the event information is a second processing target when the event condition includes the key. (Appendix 5)
  • the information transfer means divides the own section into three sections when there is an attribute name whose frequency included in the received event information or the subscription information is a predetermined value or more among the attribute names.
  • the first section including the lower limit and the second section including the upper limit are transmitted to the other information processing apparatuses, and the processing target information storage unit transmits the section not transmitted by the information transfer unit.
  • the information processing apparatus according to any one of supplementary notes 3 to 4, which is assigned to the own apparatus. (Appendix 6)
  • the information transfer unit divides the own section into two sections when there is an attribute name whose frequency included in the received event information or the subscription information is a predetermined value or more, among the attribute names.
  • a section including a lower limit or an upper limit among the received sections is transmitted to another information processing apparatus, and the processing target information storage means allocates the other section not transmitted by the information transfer means to the own apparatus.
  • the information processing apparatus according to any one of 3 to 4.
  • the processing target determination unit that sets the event information as a first processing target, and the frequency included in the received event information among the attribute names is a predetermined value or more
  • the own section is divided into two or more sections, and a section (end section) including a lower limit or an upper limit among the divided sections is assigned a section adjacent to the end section.
  • An information processing apparatus comprising: target information storage means. (Appendix 10) Using the attribute name and attribute value, the range of keys that are generated in a size-comparable format based on a predetermined order relationship for at least two or more attribute names is divided into a plurality of ranges so as to be adjacent to each other Whether or not a key generated from an attribute name and an attribute value is included in the information processing apparatus having own section storage means for storing the own section that is at least one of the sections.
  • the information processing program which performs the determination step which determines.
  • (Appendix 11) A reception step of receiving event information that is information including an attribute name and an attribute value; and when the attribute name includes a frequency that is greater than or equal to a predetermined value among the attribute names, the own section A section information transfer step of transmitting an end section that is a section of the section including a lower limit or an upper limit to another information processing apparatus that stores a section adjacent to the end section; and from another information processing apparatus A section information receiving step for receiving a section adjacent to the own section, and a processing target information storing step for updating the own section storage means using one or both of the transmitted end section and the section received in the section information receiving step.
  • the information processing program according to appendix 10 further causing the information processing apparatus to execute the above.
  • a key information generating step for generating a key having a format that can be compared in size based on an attribute name and an attribute value included in the event information; and
  • the event information is set as the first processing target, and when not included, the event information and the key generated from the event information are transmitted to another information processing apparatus.
  • An information transfer step and in the information transfer step, when the end section is received from another information processing apparatus, the upper limit or the lower limit does not match the upper limit or the lower limit of the own section.
  • the end section is transmitted to another information processing apparatus, and in the processing object information storing step, the upper limit or lower limit of the received section is the upper limit or lower limit of the own section.
  • the information processing program to execute a storage step of storing the interval plus said end section in the own section to the self-interval storage means to the information processing apparatus when matches.
  • subscription information which is information including the attribute name and a range of values that the attribute value can take
  • one of the attribute name and the attribute value A registration key is generated from the corresponding attribute value, and when the registration key is included in the own section in the processing object information storing step, the attribute name and the attribute value included in the subscription information are collected.
  • the first section including the lower limit and the second section including the upper limit are transmitted to other information processing apparatuses, and the section not transmitted in the information transfer step in the processing target information storage step
  • the information processing program according to any one of appendices 12 to 13 assigned to the own device.
  • Appendix 15 In the information transfer step, when there is an attribute name whose frequency included in the received event information or the subscription information is equal to or higher than a predetermined value among the attribute names, the own section is divided into two sections.
  • Supplementary Note 12 One section including the lower limit or the upper limit is transmitted to another information processing apparatus, and the other section not transmitted in the information transfer step is allocated to the own apparatus in the processing target information storage step.
  • the information processing program in any one of thru
  • the own section storage means stores an upper limit and a lower limit of the own section, and in the determination step, there is an order relationship between the attribute name used for generating the upper limit of the own section and the attribute name used for generating the lower limit. If the predetermined order relationship does not match, it is determined that the generated key is included in its own section when the generated key is small compared to the lower limit or larger than the upper limit.
  • the information processing program according to any one of appendices 10 to 15.
  • event information which is information including the attribute name and the attribute value
  • event information which is information including the attribute name and the attribute value
  • a processing target determination step in which the event information is a first processing target, and a frequency included in the received event information among the attribute names is predetermined.
  • the own section is divided into two or more sections, and a section (end section) including a lower limit or an upper limit among the divided sections is assigned to a section adjacent to the end section.
  • An information processing program for executing a processing target information storage step of assigning at least one section other than the end section transmitted in the information transfer step to the own device.
  • Appendix 18 Using the attribute name and attribute value, the range of keys that are generated in a size-comparable format based on a predetermined order relationship for at least two or more attribute names is divided into a plurality of ranges so as to be adjacent to each other Whether or not the information processing apparatus having own section storage means for storing the own section that is at least one of the sections includes a key generated from the attribute name and the attribute value.
  • Information processing method for determining (Appendix 19) When event information, which is information including an attribute name and an attribute value, is received, and among the attribute names, if there is an attribute name whose frequency included in the received event information is a predetermined value or more, the own section is divided.
  • the end section that is a section including the lower limit or the upper limit is transmitted to another information processing apparatus that stores the section adjacent to the end section, and the section adjacent to the own section is received from the other information processing apparatus.
  • the information processing method according to appendix 18, wherein one or both of the received sections are used to update the own section storage means.
  • the end section When the end section is received from a processing device, if the upper limit or the lower limit does not match the upper limit or the lower limit of the own section, the end section is transmitted to another information processing apparatus, and the upper limit of the received section or The information processing method according to appendix 19, wherein a section obtained by adding the end section to the own section is stored in the own section storage means when the lower limit coincides with the upper limit or the lower limit of the own section.
  • the own section storage means stores an upper limit and a lower limit of the own section, and an order relationship between the attribute name used for generating the upper limit of the own section and the attribute name used for generating the lower limit is predetermined.
  • an information processing apparatus connected to another information processing apparatus to which a section is assigned receives event information that is information including the attribute name and the attribute value, the attribute name included in the event information and the attribute information
  • event information is the first processing target, and among the attribute names, the frequency included in the received event information is an attribute having a predetermined value or more. If the name exists, the own section is divided into two or more sections, and a section (end section) including a lower limit or an upper limit among the divided sections is assigned to a section adjacent to the end section.

Landscapes

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

Abstract

 情報処理装置は、各ノードにおいて行われる属性名を追加するための処理の時間を短縮する。 情報処理装置は、属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段と、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定手段と、を備える。

Description

情報処理装置、システム、制御方法およびプログラム
 本発明は、情報処理装置、システム、制御方法およびプログラムに関する。
 ID、位置、時刻などの1つ以上のデータ項目から構成されるデータ(以下、「イベント」とする)をアプリケーションに対して配信できるイベント配信システムがある。各データ項目は、属性名と属性値から構成される。例えば、温度、湿度センサが観測した20℃の温度、60%の湿度を基にイベントを生成する場合、イベントは、属性名が″温度″で、それに対する属性値が20℃であるデータ項目と、属性名が″湿度″で、それに対する属性値が60%であるデータ項目から構成されるように表現できる。
 イベント配信システムには、外部プログラム(サブスクライバ)から、サブスクリプションと、サブスクリプションを識別するためのサブスクリプション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以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段と、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定手段と、を備える。
 また、本発明によれば、属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段を備える情報処理装置に、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定ステップを実行させる情報処理プログラムが提供される。
 また、本発明によれば、属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段を備える情報処理装置が、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する情報処理方法が提供される。
 上述した本発明によれば、各ノードにおいて行われる属性名を追加するための処理の時間を短縮する情報処理装置、システム、制御方法およびプログラムを提供することができる。
本発明の第1の実施の形態にかかる情報処理装置5の構成図である。 本発明の第1の実施の形態にかかるイベント配信システム1の構成図である。 本発明の第1の実施の形態にかかるノードの構成図である。 本発明の第1の実施の形態にかかるサブスクリプション転送情報生成部11における動作を示すフローチャートである。 本発明の第1の実施の形態にかかる属性値が取り得る下限値乃至上限値の範囲と、イベント条件で指定されている属性値の範囲と、下限値乃至上限値に占める当該属性値の範囲の割合との関係の一例を示す図である。 本発明の第1の実施の形態にかかるイベント転送情報生成部12における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるメッセージ判定部13における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるサブスクリプション配置制御部14における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるサブスクリプション登録、削除処理のフローチャートである。 本発明の第1の実施の形態にかかるサブスクリプション転送処理のフローチャートである。 本発明の第1の実施の形態にかかるサブスクリプション管理部15における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるサブスクリプション管理テーブルの一例を示す図である。 種別が登録の場合のサブスクリプション操作要求を示す図である。 種別が削除の場合のサブスクリプション操作要求を示す図である。 種別が参照の場合のサブスクリプション操作要求を示す図である。 本発明の実施の形態にかかるイベント条件合致判定部16における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるメッセージ転送部17における動作を示すフローチャートである。 本発明の第1の実施の形態にかかるイベント配信システム1の動作例を示す図である。 背景技術を説明するための図である。 本発明の第1の実施の形態におけるイベント配信システム1の動作例を示す図である。 本発明の第1の実施の形態におけるイベント配信システム1の動作例を示す図である。 本発明の第1の実施の形態におけるキー範囲管理の変更を説明するための図である。 本発明の第1の実施の形態におけるキー範囲管理の変更を説明するための図である。 本発明の第1の実施の形態におけるキー範囲管理の変更を説明するための図である。 本発明の第2の実施形態における情報処理装置5の構成例を示す図である。
以下、本発明の実施の形態について、図面を用いて説明する。すべての図面において、同じ構成要素には同じ符号を付し、適宜説明を省略する。
 なお、各実施形態のディスク装置等を構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェースなどからなり、ハードウェアとソフトウェアの任意の組合せによって実現される。そして特に断りのない限り、その実現方法、装置は限定されない。
 また、制御部はCPU(Central Processing Unit)などからなり、オペレーティングシステムを動作させてディスク装置等の全体を制御するとともに、例えばドライブ装置などに装着された記録媒体からメモリにプログラムやデータを読み出し、これに従って各種の処理を実行する。
 記録媒体は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリ等であって、コンピュータプログラムをコンピュータが読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされても良い。ここで、特に断りの無い限り、通信網は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網、または、これらの組み合わせ等によって構成されるネットワーク等であって良い。
 また、各実施形態の説明において利用するブロック図は、ハードウェア単位の構成ではなく、機能単位の構成を示している。これらの機能ブロックはハードウェア、ソフトウェアの任意の組み合わせによって実現される。また、これらの図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されている場合もあるが、その実現手段はこれに限定されない。すなわち、各実施形態で説明される構成部、装置、システム等は、二つ以上の物理的に分離した装置を有線または無線で接続することにより複数の装置により実現されてもよい。また、各構成部が物理的に分離した2つ以上装置として記載されている場合もあるが、その実現手段はこれに限定されない。すなわち、物理的に結合した一つの装置により実現されるようにハードウェア、ソフトウェアを任意に組み合わせることにより各実施形態の各構成部、装置、システム等が実現されてもよい。
 <実施形態1>
 まず、図1を参照して、本発明の第1の実施の形態にかかるイベント配信システム1の概要について説明する。図1は、本実施の形態にかかるイベント配信システム1を構成する情報処理装置5の構成図の概要である。
 情報処理装置5は、複数のノード50、60を含んでもよい。あるいは、ノード50、60は、情報処理装置5又はその一部から構成されてもよい。つまり、1つのノードは1つの情報処理装置5から構成されていてもよく、1つのノードは情報処理装置5に含まれるメモリ、CPU(Central Processing Unit)及びハードディスク等のリソースが任意の量割り当てられて構成されるようにしてもよい。また、複数のノードは1つの情報処理装置5から構成されてもよい。
 ノード50は、キー情報生成部51、処理対象判定部52、処理対象情報格納部53及び情報転送部54を備える。なお、ノード60の構成については、ノード50の構成と同様であるため、説明を省略する。
 ノード50、60は、情報の種別を示す属性名と、この情報の値を示す属性値とを含むイベント情報を受信する。ここで、イベント情報(イベントともいう。)とは、上述のとおり、ID、位置、時刻などの1つ以上のデータ項目から構成されるデータである。データ項目は、属性名と属性値から構成される。例えば、温度、湿度センサが観測した20℃の温度、60%の湿度を基にイベントを生成する場合、イベントは、属性名が″温度″で、それに対する属性値が20℃であるデータ項目と、属性名が″湿度″で、それに対する属性値が60%であるデータ項目から構成されるように表現できる。属性名とは、データ項目に対して付された名称である。属性名とは、一般にあるものに共通して備わっているとされる性質や特徴のことであり、例えば、上述した温度、湿度、の他に物体の色、形、位置、時間等の任意の性質や特徴を表すものであって、特段制限されない。また、属性値とは、属性名で表される属性が取り得る値を表す。例えば、上述の例では、属性名”温度”に対する属性値は”60%”などである。
 ノード50、60は、受信したイベント情報のうち、所定の属性名及び所定の範囲内の属性値を含んだイベント情報を処理対象とする。
 キー情報生成部51は、イベント情報を受信した場合に、このイベント情報に含まれる属性名と属性値から、この属性名及び属性値を大小比較可能な形式に変換したキー情報を生成する。そして、キー情報生成部51は、イベント情報と、そのイベント情報から生成されたキー情報を処理対象判定部52に出力する。
 処理対象判定部52は、キー情報生成部51から出力されたイベント情報及びキー情報を取得すると、処理対象情報格納部53に格納されている処理対象情報を取得する。そして、処理対象判定部52は、取得したキー情報と処理対象情報とを比較することによって、取得したイベント情報を処理対象とするか否かを判定する。
 処理対象情報格納部53は、所定の属性名及び所定の範囲内の属性値のキー情報を示す処理対象情報を予め保持する。
 情報転送部54は、処理対象判定部52がイベント情報を処理対象としないと判定した場合に、このイベント情報と、このイベント情報から生成されたキー情報とを他のノードに送信する。
 続いて、本実施の形態にかかるイベント配信システム1について詳細に説明する。図2を参照して、本実施の形態にかかるイベント配信システム1の構成について説明する。図2は、イベント配信システム1の構成図である。
 イベント配信システム1は、1つ以上のノードから構成される。イベント配信システム1は、データ項目から一意に決まる値(キー)の空間(集合)を管理する。異なるキーの間には順序が定義される。各ノードは、連続するキーの範囲を管理する。
 本実施の形態では、情報処理装置5は、イベント及びサブスクリプションに含まれる属性名及び属性値を大小比較可能な形式に変換したキーを生成するキー生成関数を用意する。つまり、キー生成関数は、キーを戻り値とする関数である。属性名はn(nは、文字列など)、属性値はv(vは、文字列や実数など)とし、キーを生成するキー生成関数はf(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(n,v)は、デリミタを″:″とすると、f1(″x″,20)=″x:020″となる。
 イベント配信システム1は、図2の例では、属性名“x”、“y”から生成されるハッシュ値に多くのノードを割り当てている。イベント条件で指定される属性名が“x”と“y”のいずれか、あるいは、両方である場合には、このようなハッシュ値の配置が適切である。イベント条件に属性名“z”の条件が指定される場合、後述するように、そのイベント条件は、ノードeに配置される。属性名“z”の条件が指定されたイベント条件が多く登録される場合、イベント配信システム1は、属性名“z”から生成されるハッシュ値に対してより多くのノードを割り当てることにより、イベント処理負荷のバランスをとることができる。
 キー生成関数の他の例(f2(n,v)と記述する)を示す。f1(n,v)で求められる文字列は、PC(Personal computer)やサーバ等の情報処理装置内では、文字コードによって、ビット列で表現される。f2(n,v)は、f1(n,v)で求められる文字列を文字コードによって表現したビット列のうち、上位から所定のビット数を戻り値とする。例えば、f2(n,v)は、そのビット列の上位160ビットをf2の戻り値とする。この場合に、文字コードが4バイトであれば、″x:020″は160ビット(4バイト×5文字×8)となるため、″x:020″を文字コードによって表現したビット列の全てが戻り値となる。
 本実施の形態では、イベント配信システム1は、ノードaからノードgまでの7つのノードが存在している場合について例示する。イベント配信システム1は、属性値のそれぞれが下限値(あるいは最小値、以下同じ。)及び上限値(あるいは最大値、以下同じ。)を有するとしても良い。イベント配信システム1は、属性値の取り得る範囲が、例えば、0以上320未満の整数である属性名″x″と、取り得る属性値の範囲が0以上320未満の整数である属性名″y″との2つの属性名をサポートしているものとすることができる。また、文字列の順序関係はどのように定められても良い。例えば、文字列の順序関係は、″:″<″0″<″1″<…<″9″<″a″<″b″<…<″z″としても良い。以下、本実施の形態では、属性名の順序は以下のように循環すると仮定する。すなわち、属性名がアルファベットの例では、″a″<″b″<…”x”<”y”<″z″<″a″<″b″<…、のように文字の順序が循環する(この関係を、循環的順序関係という)。例えば、図2に示すノードaは、″x:160″以上のキーで、″x:240″より小さいキーの範囲を管理する(これを[“x:160”,“x:240”)と表す。)。例えば、キー″x:200″はノードaが管理する。また、ノードeは、″y:200″以上のキーで、″x:000″より小さいキーの範囲、すなわち、xより前の属性名”z”、”a”、”b”、…、”w”と、属性名に対応する属性値を管理する。したがって、ノードeは、例えば、キー″z:050″を管理する。換言すれば、本実施の形態におけるノードは、属性名の有する循環的順序関係において一巡未満の範囲を管理している。
 続いて、本実施の形態にかかるノードの具体的な構成について説明する。図3は、図1で説明したノードの具体的な構成図である。
 ノード10は、サブスクリプション転送情報生成部11と、イベント転送情報生成部12と、メッセージ判定部13と、サブスクリプション配置制御部14と、サブスクリプション管理部15と、イベント条件合致判定部16と、メッセージ転送部17と、を有する。なお、ノード20の構成については、ノード10の構成と同様であるため、説明を省略する。つまり、イベント配信システム1に含まれるノードa~gは、ノード10の構成と同様である。
 サブスクリプション転送情報生成部11は、サブスクライバ31から入力されたサブスクリプションからそれを転送するために必要な情報を生成する。サブスクリプションは、イベント条件と、通知先のアプリケーションのID(アプリケーションID)とから構成される(図12参照)。また、イベント条件は、複数の属性条件(属性名と、それに対する属性値の範囲)からなるイベントの条件である。
 イベント転送情報生成部12は、パブリッシャ32から入力されたイベントからそれを転送するために必要な情報を生成する。サブスクリプション転送情報生成部11及びイベント転送情報生成部12が生成する情報には、キーが含まれる。
 サブスクリプション転送情報生成部11及びイベント転送情報生成部12は、図1で示したキー情報生成部51として機能する。
 メッセージ判定部13は、ノード10宛に送られてきたメッセージがサブスクリプションかイベントかを判定する。ノード10には、サブスクライバ31から入力されたサブスクリプションやパブリッシャ32から入力されたイベント、あるいは、サブスクリプションID、要求種別、属性名などが、他のノード20から送信される。そこで、他のノード20から送信される(あるいは、他のノード10へ送信する)これらサブスクリプションやイベントなどの情報をまとめてメッセージと呼ぶ。
 サブスクリプション配置制御部14は、サブスクリプションをどのノードに配置するかを決定する。
 サブスクリプション管理部15は、サブスクリプションをノード内に記憶する。サブスクリプション管理部15は、図1で示した処理対象情報格納部53に相当する。
 イベント条件合致判定部16は、受信したイベントがサブスクリプション管理部15に格納されたサブスクリプションに含まれるイベント条件に合致するかどうかを判定する。
 メッセージ転送部17は、入力されるキーによって転送先が決定されるノードに対して、イベントを含んだメッセージや、サブスクリプションID、サブスクリプション及び要求種別(登録要求か削除要求かを識別するための種別)を含んだメッセージを転送する。メッセージ転送部17は、図1で示した処理対象判定部52及び情報転送部54として機能する。
 続いて、図4を参照して、本実施の形態にかかるサブスクリプション転送情報生成部11における動作について説明する。図4は、サブスクリプション転送情報生成部11における動作を示すフローチャートである。
 サブスクライバ31からノード10へサブスクリプションが入力されると、入力されたサブスクリプションは、まず、サブスクリプション転送情報生成部11で処理される(S101)。サブスクリプション転送情報生成部11は、受信したサブスクリプションの構成要素であるイベント条件について、それを構成する属性名群から1つの属性名を選択する(S102)。次に、サブスクリプション転送情報生成部11は、選択した属性名とそれに対する属性値範囲の下限値とからキーを生成する(S103)。最後に、サブスクリプション転送情報生成部11は、生成したキーとサブスクリプションをペアとして、メッセージ転送部17へ入力する。これにより、そのキーを管理するノードへサブスクリプションが含まれるメッセージが転送される。
 サブスクリプション転送情報生成部11が、イベント条件を構成する属性名群から1つの属性名を選択する方法としては、例えば以下の方法がある。サブスクリプション転送情報生成部11は、例えば、イベント条件を構成する各属性名について、属性値として取り得る値の範囲に対する、イベント条件として指定されている属性値範囲の割合を求め、その割合が最も小さい属性名を選択してもよい。図5は、属性値が取り得る下限値乃至上限値の範囲と、イベント条件で指定されている属性値の範囲と、下限値乃至上限値に占める属性値の範囲の割合との関係の一例を示す。例えば、属性名″x″に対する属性値が取り得る値の数が100で、イベント条件で指定された属性値範囲のサイズが10であるとすると、それらの割合は、1/10となる。また、例えば、属性名″y″に対する属性値が取り得る値の数が300で、イベント条件で指定された属性値範囲のサイズが50であるとすると、その割合は1/6となる。よって、この例の場合、サブスクリプション転送情報生成部11は、より割合の小さい属性名″x″を選択する。そして、サブスクリプション転送情報生成部11は、属性名″x″と、それに対応する属性値範囲の下限値である属性値″11″からキーを生成する。サブスクリプション転送情報生成部11は、属性値範囲の下限値以外の値を用いてキーを生成しても良い。サブスクリプション転送情報生成部11は、属性名と属性値からのキーの生成には、前述しているキー生成関数を用いる。
 ここで、サブスクリプションのイベント条件に含まれる属性名及びその属性値の範囲と、ノードが管理する属性名及びその属性値の範囲に重複がある場合に、そのノードにサブスクリプションが登録される。したがって、上述のように、属性値として取り得る値の範囲に対してイベント条件として指定されている属性値範囲の割合が最も小さい属性名をサブスクリプション転送情報生成部11が選択した場合は、サブスクリプションが登録されるノード数を低減することができる。
 続いて、図6を参照して、本実施の形態にかかるイベント転送情報生成部12における動作について説明する。図6は、イベント転送情報生成部12の動作を示すフローチャートである。
 パブリッシャ32から入力されたイベントは、まず、イベント転送情報生成部12で処理される(S111)。イベント転送情報生成部12は、受信したイベントを構成する各属性名について、以下の処理を行う。まず、イベント転送情報生成部12は、属性名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が行なうサブスクリプション登録、削除処理を示すフローチャートである。サブスクリプション登録、削除処理では、まず、サブスクリプション配置制御部14は、メッセージの要求種別を判定する(S141)。メッセージが登録要求である場合、サブスクリプション配置制御部14は、種別を登録として、メッセージに含まれるサブスクリプションIDとサブスクリプションからサブスクリプション操作要求を生成し(S142)、生成したサブスクリプション操作要求をサブスクリプション管理部15に入力する(S144)。
 一方、メッセージが削除要求である場合、サブスクリプション配置制御部14は、種別を削除として、メッセージに含まれるサブスクリプションIDからサブスクリプション操作要求を生成し(S143)、生成したサブスクリプション操作要求をサブスクリプション管理部15に入力する(S144)。
 なお、サブスクリプション操作要求は、その構成要素の1つとして種別を含む。種別には、登録、削除、参照がある。サブスクリプション操作要求の構成要素は、種別ごとに異なる。種別が登録の場合のサブスクリプション操作要求を図13に示す。種別が登録の場合、サブスクリプション操作要求は、種別に加えて、サブスクリプションIDとサブスクリプションとから構成される。種別が削除の場合のサブスクリプション操作要求を図14に示す。種別が削除の場合、サブスクリプション操作要求は、種別に加えて、サブスクリプションIDから構成される。種別が参照の場合のサブスクリプション操作要求を図15に示す。種別が参照の場合、サブスクリプション操作要求は、種別のみから構成される。
 図10は、サブスクリプション転送処理を示すフローチャートである。サブスクリプション転送処理では、まず、サブスクリプション配置制御部14は、メッセージに含まれる属性名と、それに対する属性値範囲の上限値とからキー(ターゲットキー)を生成する(S151)。次に、サブスクリプション配置制御部14は、本処理を実行しているノードが管理するキー範囲にターゲットキーが含まれるかどうかを判定する(S152)。含まれていない場合、サブスクリプション配置制御部14は、サクセッサ(ノードが構成するリング上で、あるノードから見て次のノード)が管理するキーの下限値(新規キー)を生成し(S153)、その後、ネクストホップとしてサクセッサを指定して、メッセージ転送部17へ新規キーとメッセージを入力する(S154)。ノードが管理するキー範囲にターゲットキーが含まれる場合には、サブスクリプション配置制御部14は、メッセージ転送部17にキー及びメッセージの入力は行なわない。
 続いて、図11を参照して、本実施の形態にかかるサブスクリプション管理部15における動作について説明する。図11は、サブスクリプション管理部15の動作を示すフローチャートである。
 サブスクリプション管理部15は、サブスクリプションIDとサブスクリプションを管理するサブスクリプション管理テーブルを有する。サブスクリプション管理テーブルの例を図12に示す。サブスクリプション管理テーブルには、サブスクリプションIDと、サブスクリプションとが対応付けられたレコードが格納される。図12のサブスクリプション管理テーブルの一行目のレコードは、サブスクリプションIDが”sub1”であり、サブスクリプションのイベント条件が“50≦x≦150&150≦y≦250”であり、通知先のアプリケーションIDが“app1”である例を示している。
 サブスクリプション管理部15は、サブスクリプション配置制御部14、あるいは、イベント条件合致判定部16から、サブスクリプション操作要求を受信する(S161)。
 サブスクリプション管理部15は、サブスクリプション操作要求を受信すると、まず、受信したサブスクリプション操作要求の種別を参照する(S162)。種別が登録の場合、サブスクリプション管理部15は、サブスクリプションとサブスクリプションIDのペアをレコードとしてサブスクリプション管理テーブルに追加する(S163)。種別が削除の場合、サブスクリプション管理部15は、サブスクリプションIDが一致するレコードをサブスクリプション管理テーブルから削除する(S164)。種別が参照の場合、サブスクリプション管理部15は、サブスクリプション管理テーブルを呼び出し、テーブルを参照後元に返す(S165)。
 続いて、図16を参照して、本実施の形態にかかるイベント条件合致判定部16における動作について説明する。図16は、イベント条件合致判定部16の動作を示すフローチャートである。
 イベント条件合致判定部16は、メッセージ転送部17からイベントを受信すると(S171)、サブスクリプション管理部15へ種別を参照としたサブスクリプション操作要求を入力し、サブスクリプション管理テーブルを取得する(S172)。イベント条件合致判定部16は、取得したサブスクリプション管理テーブルの各レコードrについて、以下の処理を実行する。まず、イベント条件合致判定部16は、イベントが、レコードrのサブスクリプションの構成要素の1つであるイベント条件に合致するかどうかを判定する(S173)。合致した場合には、次に、イベント条件合致判定部16は、レコードrのサブスクリプションIDとイベントのペアを、レコードrのサブスクリプションの構成要素の1つであるアプリケーションIDで識別されるアプリケーション40に送信する(S174)。なお、イベント条件合致判定部16は、イベントがレコードrのサブスクリプションの構成要素の1つであるイベント条件に合致しない場合には、アプリケーションへのイベント通知は行わない。
 続いて、図17を参照して、本実施の形態にかかるメッセージ転送部17における動作について説明する。図17は、メッセージ転送部17の動作を示すフローチャートである。
 メッセージ転送部17は、サブスクリプション転送情報生成部11、イベント転送情報生成部12、サブスクリプション配置制御部14、あるいは、本処理が動作するノードとは別のノードからキーとメッセージを受信する(S181)。メッセージ転送部17は、キーとメッセージを受信すると、受信したキーが、ノードが管理するキー範囲に含まれるかどうかを判定する(S182)。ここでの判定は、メッセージ転送部17を含むノード10内のいずれかに、メモリやハードディスク等の任意の記憶装置を有するようにして、この記憶装置にノード10が管理するキー範囲を示すキー範囲情報を格納して、受信したキーと、キー範囲情報とを比較することによって判定可能としてもよい。この記憶装置は、図1で示した処理対象情報格納部53に相当する。
 メッセージ転送部17が、受信したキーがノードの管理するキー範囲に含まれるかどうかを判定する処理の一例について説明する。ノードでは、「(自身の管理するキー範囲の上限値)−(自身の管理するキー範囲の下限値)」が最小となる範囲に、受信したキーが含まれているか否かを判定する。
 たとえば、受信したキーが“x:050”であるとする。図2を参照すると、ノードaでは上限値が“x:240”であり下限値が“x:160”であるので、その間が最小となる範囲に“x:050”は含まれない。したがって、ノードaではメッセージ転送部17は、受信したキーを含まない、と判定する。一方、ノードcでは上限値が“x:080”であり下限値が“x:000”であるので、その間が最小となる範囲に“x:050”が含まれる。したがって、ノードcではメッセージ転送部17は、受信したキーを含む、と判定する。
 別の例として、受信したキーが“z:050”であるとする。図2を参照すると、ノードaでは上限値が“x:240”であり下限値が“x:160”であるので、その間が最小となる範囲に“z:050”は含まれない。したがって、ノードaではメッセージ転送部17は、受信したキーを含まない、と判定する。一方、ノードeでは上限値が“x:000”であり下限値が“y:200”である。あらかじめ定められた属性名の循環的順序関係において、「x<y<z…<x」であるので、その間が最小となる範囲に“z:050”が含まれる。したがって、ノードcではメッセージ転送部17は、受信したキーを含む、と判定する。この際、メッセージ転送部17は、下限値の生成に用いられた属性名yと上限値の生成に用いられた属性名xの順序関係が、一巡しない範囲における順序関係と一致しない場合、受信したキーが下限値と比較して小さい又は上限値と比較して大きい場合に受信したキーがキー範囲に含まれる判定することにより、上記の判定を実現してもよい。
 受信したキーが、ノードが管理するキー範囲に含まれる場合、メッセージ転送部17は、メッセージ判定部13へキーとメッセージを入力する(S183)。受信したキーが、ノードが管理するキー範囲に含まれない場合、メッセージ転送部17は、ネクストホップノードとしてサクセッサが指定されているか否かを判定する(S184)。メッセージ転送部17は、ネクストホップノードとしてサクセッサが指定されている場合には、ネクストホップノードにキーとメッセージを転送する(S186)。一方、ネクストホップノードにサクセッサが指定されていない場合、メッセージ転送部17は、ルーティングテーブルを参照し、転送先のノードを決定する(S185)。そして、メッセージ転送部17は、ネクストホップノードにキーとメッセージを転送する(S186)。
 メッセージ転送部17は、ルーティングテーブルを有する。ルーティングテーブルは、キーと、ノードのネットワークアドレスとのペアを管理している。ルーティングテーブルは、例えば、メッセージ転送部17が有する任意の記憶装置に格納される。ルーティングテーブルの生成、メンテナンス方法、ルーティングテーブルを参照してメッセージの転送先のノードを決定する方法は、ルーティングプロトコルに依存する。ルーティングプロトコルの例として、非特許文献2の3.3節に記述される方法が利用されてもよい。ルーティングプロトコルは、任意に決定されてもよく、メッセージ転送部17は、例えば、「(送信するキー)>(ノードが管理するキー範囲の下限値)」となるノードのうち、「(送信するキー)−(ノードが管理するキー範囲の下限値)」が最小となるノードに、キー及びメッセージが到達するように送信してもよい。
 続いて、図18を参照して、本実施の形態にかかるイベント配信システム1における動作について説明する。図18は、イベント配信システム1の動作例を示す図である。図18に示すように、例えば、ノードcが[″x:000″,″x:080″)、ノードbが[″x:080″,″x:160″)、ノードaが[″x:160″,″x:240″)、ノードdが[″x:240″,″y:000″)、ノードgが[″y:000″,″y:100″)、ノードfが[″y:100″,″y:200″)、ノードeが[″y:200″,″x:000″)までを管理している。
 イベント配信システム1の構成要素であるノードgが、サブスクライバ31からサブスクリプションs(50≦x≦150&150≦y≦250,app1)を受信したと仮定する(S80)。
 ノードgは、サブスクリプション転送情報生成部11でサブスクリプションsを構成する属性名xと属性名yから、例えば上述した方法によって属性名xを選択する(S81)。次に、サブスクリプション転送情報生成部11は、属性名xと、その属性値範囲の下限値である50とからキー″x:050″を生成する。サブスクリプション転送情報生成部11は、サブスクライバ31から入力された、サブスクリプションID、サブスクリプション、要求種別(ここでは要求種別が登録要求である場合を例とする)と、選択した属性名″x″とを合わせてメッセージとする。サブスクリプション転送情報生成部11は、キーとメッセージをメッセージ転送部17へ入力する。そして、メッセージ転送部17は、入力されたキー及びメッセージをルーティングプロトコルにしたがって、そのキーを管理するノードに対して送信する。
 本実施の形態では、ノードgのメッセージ転送部17から送信されたキー及びメッセージは、0以上のノードのメッセージ転送部17を経由して、最終的に、キー″x:050″を管理するノードcのメッセージ転送部に到達する(S82)。ノードgから送信されたキー及びメッセージは、ノードe、fを経由してノードcに到達するようにしてもよいし、ノードgから直接ノードcに到達するようにしてもよい。ここでは、「(送信するキー)>(ノードが管理するキー範囲の下限値)」となるノードのうち、「(送信するキー)−(ノードが管理するキー範囲の下限値)」が最小となるノードcに、キー及びメッセージが到達する。
 ノードcのメッセージ転送部17は、受信したキー″x:050″が、ノードcが管理するキー範囲[″x:000″,″x:080″)に含まれるため、メッセージ判定部13にキーとメッセージを入力する。メッセージ判定部13は、メッセージがサブスクリプションから構成されているため、キーとメッセージをサブスクリプション配置制御部14へ入力する。ここでは要求種別が登録要求である場合を例としているので、サブスクリプション配置制御部14は、サブスクリプションIDとサブスクリプションのペアをサブスクリプション管理部15に登録する(図9のフロー参照)。
 また、メッセージに含まれる属性名″x″と、それに対する属性値範囲の上限値150から生成されるキー″x:150″が、ノードcが管理するキー範囲[″x:000″,″x:080″)に含まれない。そのため、サブスクリプション配置制御部14は、サクセッサが管理するキーの下限値(新規キー)″x:080″と、入力されたメッセージを、メッセージ転送部17に入力する(図10のフロー参照)。
 ここで、ノード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″と、それに対する属性値範囲の上限値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にイベントを通知する(図16のフロー参照)。
 また、キー″y:200″とそのイベントがノードeに到達すると、ノードeのメッセージ転送部17は、受信したキー″y:200″が、ノードeが管理するキー範囲[″y:200″,″x:000″)に含まれるため、メッセージ判定部13にキーとメッセージを入力する。メッセージ判定部13は、メッセージがイベントから構成されているため、キーとメッセージをイベント条件合致判定部16に入力する。イベント条件合致判定部16は、サブスクリプション管理部15からサブスクリプション管理テーブルを取得する。そして、イベント条件合致判定部16は、イベントの属性値が「x=100,y=200」であるが、サブスクリプションsがサブスクリプション管理テーブルに登録されていないため、イベント条件に合致しないと判定する。そのため、イベント条件合致判定部16は、アプリケーションへのイベントの通知は行わない。
 図2、図18で示したイベント配信システム1は、属性名xあるいは属性名yから生成されるキーを分割して、多くのノードに割り当てている。これは、イベント配信システム1に登録されているサブスクリプションで指定されている属性が、属性名x、あるいは、属性名y(両方も含む)のみであることをイベント配信システム1の管理者等が想定しているためである。そして、イベント配信システム1は、属性名xあるいは属性名yの条件を指定しているサブスクリプションが登録されている場合であって属性名xあるいは属性名yを含むイベントが発生した場合に、そのイベントとサブスクリプションとのマッチング処理をする必要がある。イベント配信システム1は、属性名xと属性名yから生成されるキーを分割して、複数のノードに割り当てることで、マッチング処理を分散させ、イベント配信システム1のイベント処理負荷を平準化することができる。
 続いて、図20を参照して、それまで指定されたことのなかった属性名zが指定されたサブスクリプションがサブスクライブされたときの、本実施の形態にかかるイベント配信システム1における動作について説明する。
 イベント配信システム1の構成要素であるノードgが、サブスクライバ31からサブスクリプションs(50≦z≦150,app1)を受信したとする(S90)。ノードgのサブスクリプション転送情報生成部11は、属性名zと、その属性値範囲の下限値である50とからキー″z:050″を生成する。サブスクリプション転送情報生成部11は、該キーとメッセージをノードgのメッセージ転送部17へ入力する。ここで、該メッセージは、サブスクライバ31から入力された、サブスクリプションID、サブスクリプション、要求種別、属性名″z″を含むデータである(S91)。
 次に、ノードgのメッセージ転送部17は、入力されたキー及びメッセージをルーティングプロトコルにしたがって、そのキーを管理するノードに対して送信する(S92)。
 キー“z:050”は、「(送信するキー)>(ノードが管理するキー範囲の下限値)」となるノードのうち「(送信するキー)−(ノードが管理するキー範囲の下限値)」が最小となるノードに到達することになる。ここで図2を参照して各ノードが管理するキー範囲の下限値を確認すると、ノードaが管理するキー範囲の下限値は“x:160”である。ノードbが管理するキー範囲の下限値は“x:080”である。ノードcが管理するキー範囲の下限値は“x:000”である。ノードdが管理するキー範囲の下限値は“x:240”である。ノードeが管理するキー範囲の下限値は“y:200”である。ノードfが管理するキー範囲の下限値は“y:100”である。ノードgが管理するキー範囲の下限値は“y:000”である。他方、属性名の順序関係は一巡しない範囲において「x<y<z」である。よって、「(送信するキー)>(ノードが管理するキー範囲の下限値)」となるノードのうち「(送信するキー)−(ノードが管理するキー範囲の下限値)」が最小となるノードはeとなる。
 したがって、ノードgのメッセージ転送部17から送信されたキー及びメッセージは、0以上のノードのメッセージ転送部17を経由して、最終的に、キー″z:050″を管理するノードeのメッセージ転送部17に到達し、ノードeで保持される。
 次に、イベント配信システム1の構成要素であるノードaが、パブリッシャ32からイベントe(z=100)を受信したとする(S93)。ノードaのイベント転送情報生成部12は、属性名zに対するキー″z:100″を生成する。後は、サブスクリプションの転送の場合と同様に、転送されたイベントは、ノードeに到達する(S94)。
 次に、イベント配信システム1が、属性名zが指定されるイベントやサブスクリプションが多くなってくる場合に、属性名zから生成されるキーに対してより多くのリソースを割り当てるように各ノードの管理するキー範囲を変更する場合の動作について図1、図20、図21を用いて説明する。
 まず、図20に示すように、ノードeはキー範囲[″y:200″,″x:000″)を管理し、ノードfはキー範囲[″y:100″,″y:200″)を管理しているものと仮定する。
 ノードeがサブスクリプションあるいはイベント情報を受信した場合、処理対象判定部52は、該サブスクリプションあるいはイベント情報に含まれる属性名を参照し、一定時間ごとに受信したサブスクリプションあるいはイベント情報の少なくとも一方に含まれる属性名の数をカウントする。そして、該属性名の数が、例えば、予め処理対象情報格納部53に格納されている閾値以上になった場合に、あるいは、増加率が一定の値を超えた場合に、ノードeは、自己が管理するキー範囲の下限値である“y:200”のキーをキー情報生成部51で生成するとともに、変更分キー範囲の情報を生成する。変更分キー範囲をどのように決定するかは、例えば、システムパラメータで与えられる。当該システムパラメータが、例えば、一定時間の受信イベント情報数が閾値以上となった属性名に対する属性値の下限値未満を変更分キー範囲とすることを指定する場合、例えば、図20から図21のようにノードeは、変更分キー範囲を[″y:200″,″z:000″)とし、自己の管理するキー範囲を[″y:200″,″x:000″)から[″z:000″,″x:000″)のように変更すると決定する。なお、該変更分キー範囲は予め管理者が定めても良いし、処理対象情報格納部53がテーブルを参照して決定しても良い。この場合、例えば、処理対象情報格納部53は、ノードが受信したサブスクリプションが指定する属性名の増加率と変更分キー範囲とを対応付けた図示しない変更範囲管理テーブルを有していても良い。あるいは、処理対象情報格納部53は、イベントに含まれる属性名の増加率等と変更分キー範囲とを対応付けた図示しない変更範囲管理テーブルを有していても良い。あるいは、処理対象情報格納部53は、サブスクリプションやイベント情報に含まれる属性名に対応する属性値の範囲と変更分キー範囲とを対応付けた図示しない変更範囲管理テーブルを有していても良い。この場合、変更範囲管理テーブルは、例えば、サブスクリプションが指定する属性名の増加率やイベント情報に含まれる属性名の増加率、あるいは、属性名に対応する属性値の範囲が大きいほど大きくなる変更分キー範囲を管理しても良い。キー情報生成部51は、キー範囲[″y:200″,″z:000″)を生成する。情報転送部54は、該生成したキーと該キー範囲とをサクセッサへ送信する。
 サクセッサであるノードが該キーと該キー範囲とを受信すると、処理対象判定部52は、受信したキーが自己の管理するキー範囲の上限値であるか否かを、処理対象情報格納部53に格納されている自己の管理するキー範囲を参照して判定する。処理対象判定部52は、受信したキーが自己の管理するキー範囲の上限値ではないと判定した場合には、そのキーを次のサクセッサへ送信する。一方、受信したキーが自己の管理するキー範囲の上限値である場合には、処理対象情報格納部53は、自己の管理するキー範囲に、受信したキー範囲を加えた新たなキー範囲を自己の管理する新たなキー範囲として格納する。例えば、図20のノードfがキー“y:200”を受信すると、ノードfは、該キーと自己の管理するキー範囲[″y:100″,″y:200″)の上限値とが一致することから、自己の管理するキー範囲[″y:100″,″y:200″)に、受信した変更分キー範囲[″y:200″,″z:000″)を加えた新たなキー範囲[″y:100″,″z:000″)を自己が新たに管理するキー範囲として処理対象情報格納部53が格納する。そして、該ノードは、キー範囲を変更した旨を、受信したキー情報″y:200”および変更分キー範囲[″y:200″,″z:000″)とともに次のサクセッサに送信する。
 次のサクセッサであるノードは、該キー範囲を変更した旨の情報と、該キー情報″y:200”と、該変更分キー範囲[″y:200″,″z:000″)とを受信すると、該キー情報″y:200”が自己の管理するキー範囲の下限値であるか否かを判定する。そして、自己の管理するキー範囲の下限値でない場合には、受信したキー範囲を変更した旨の情報、キー情報、変更分キー範囲をさらに次のサクセッサに送信する。一方、受信したキーが自己の管理するキー範囲の下限値である場合には、自己の管理するキー範囲から、受信した変更分キー範囲を減じた範囲を、自己が管理する新たなキー範囲として処理対象情報格納部53が格納する。本実施の形態では、ノードeの管理するキー範囲[″y:200″,″x:000″)の下限値とキー″y:200”とが一致するため、処理対象情報格納部53は、キー範囲を、[″y:200″,″x:000″)から[″y:200″,″z:000″)の範囲を減じた[″z:000″,″x:000″)に変更する。
 これにより、イベント配信システム1は、例えば、図20から図21のようにノードが管理するキー範囲を変更することができる。すなわち、ノードeは管理するキー範囲を、[″y:200″,″x:000″)から[″z:000″,″x:000″)のように変更し、ノードfは管理するキー範囲を[″y:100″,″y:200″)から[″y:100″,″z:000″)のように変更することができる。なお、ノードeは、キー範囲を変更する際に、下限値の代わりに上限値をサクセッサに送信することにしても良い。その場合、上記文章中で下限値と上限値とを適宜読み替える。また、この場合、ノードfの代わりにノードcの管理するキー範囲が変更される。なぜなら、ノードcはノードeのキー範囲の上限値を、キー範囲の下限値として管理するノードだからである。また、より一般的には、ノードeは、自己の管理するキー範囲の下限値と上限値の両方をサクセッサに送信しても良い。この場合、ノードeは自己の区間を複数区間に分割し、上述の方法によってノードeの下限値を含む区間をノードfに、ノードeの上限値を含む区間をノードcに割り当てることができる。また、上記例では、ノードeはノードfがキー範囲を変更したことを確認してから、自己の管理するキー範囲を変更しているが、ノードeは、変更分キー範囲をサクセッサに送信する段階で自己の管理するキー範囲を変更しても良い。また、ノードが送信する情報は、サクセッサ以外の他のノードに送信しても良い。例えば、上述のノードeは、変更分キー範囲のみをキー情報生成部51で生成して、プレディセッサであるノードfに送信しても良い。この場合、プレディセッサであるノードfは、自己の管理するキー範囲と受け取った変更分キー範囲とをマージした区間を新たに自己が管理するキー範囲としてもよい。
 図22、図23を用いて、このキー範囲の変更の全体像を説明する。図22の内側円は、各ノードの管理する属性名がx、y、zの3つのみであり、それらが循環的順序関係をもっている様子を表している。また、各属性名に対する属性値の範囲はいずれも0から320の間であるとする。図22の外側円は、各ノードが管理するキー範囲を示している。例えば、ノードcが[″x:000″,″x:080″)、ノードbが[″x:080″,″x:160″)、ノードaが[″x:160″,″x:240″)、ノードdが[″x:240″,″y:000″)、ノードgが[″y:000″,″x:100″)、ノードfが[″y:100″,″y:200″)、ノードeが[″y:200″,″x:000″)までを管理している。
 図23は、イベント配信システム1が、ノードが管理するキー範囲を変更した様子を表している。例えば、図23は、ノードfの管理する範囲が[″y:100″,″z:000″)、ノードeの管理する範囲が[″z:000″,″x:000″)である様子を表している。
 このとき、もともとノードeが管理していたキー範囲は、図22に示すように、属性名yからなるキー範囲200≦y≦320の120(=320−200)の範囲分と、属性名zからなるキー範囲0≦z≦320の320(=320−0)の範囲分であるから、キー範囲全体に対する属性名zからなるキー範囲の割合は、320/(120+320)=8/11である。一方、キー範囲変更後は、図23に示すように、ノードeの管理するキー範囲は属性名zからなるキー範囲0≦z≦320の320(=320−0)の範囲分だけであるから、キー範囲全体に対する属性名zからなるキー範囲の割合は320/320=1となる。このように、属性名zからなるキー範囲の割合が、もともとノードeが管理していたキー範囲に対する属性名zからなるキー範囲の割合よりも大きくなる。このことは、属性名zが指定されるイベントやサブスクリプションが多くなってくる場合に、イベント配信システム1が、ノードが管理するキー範囲のうち属性名zから生成されるキー範囲の割合を増加させたことに相当する。また、イベント配信システム1は、同様にして、ノードeのみならず、より多くのノードが属性zからなるキー範囲を管理するようにキー範囲の割当を変更しても良い。
 図24は、ノードeが、もともと管理していたキー範囲[″y:200″,″x:000″)を新たにキー範囲[″z:000″,″z:200″)に変更した様子を示している。また、図24は、これに伴い、ノードfがキー範囲を[″y:100″,″y:200″)から[″y:100″,″z:000″)に変更させ、ノードcがキー範囲を[″x:000″,″x:080″)から[″z:200″,″x:080″)に変更させた様子を示している。ノードeは、上述のとおり、自己の管理していたキー範囲の下限値を含む所定範囲[″y:200″,″z:000″)を他のノードに送信し、それを受信したノードfが、当該範囲を自己の管理するキー範囲に加えることで、キー範囲を[″y:100″,″y:200″)から[″y:100″,″z:000″)に変更させることができる。同様にして、ノードeは、自己の管理していたキー範囲の上限値を含む所定範囲[″z:200″,″x:000″)を他のノードに送信し、それを受信したノードcが、当該範囲を自己の管理するキー範囲に加えることで、キー範囲を[″x:000″,″x:080″)から[″z:200″,″x:080″)に変更させることができる。
 このように、イベント配信システム1は、属性名zが指定されるイベントやサブスクリプションが多くなってくる場合に、属性名zから生成されるキーに対してより多くのリソースを割り当てるようなキーの割り当てに変更することで、負荷のバランスをとることができる。
 以上に説明したように、本実施の形態は、サブスクリプションやイベントに、それまで指定されたことのなかった属性の条件が指定された場合にも、それまで指定されてきた属性が指定された場合と同じオーダの処理時間で、サブスクリプション及びイベントを転送することができる。つまり、イベント配信システム1は、新たな属性名追加時に、各ノードにおいて行われる属性名を追加するための処理の時間を短縮することができる。
 <実施形態2>
 次に、本発明の第2の実施の形態について図25を用いて説明する。本実施の形態における情報処理装置5は、処理対象判定部52、処理対象情報格納部53を備える。これらの構成、動作については上述したとおりであるから説明を省略する。
 この情報処理装置5によれば、属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段と、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定手段と、を備える情報処理装置が提供される。
 本実施の形態によれば、各ノードにおいて行われる属性名を追加するための処理の時間を短縮する情報処理装置、システム、制御方法およびプログラムを提供することができる。
 なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
 以上に説明した本発明にかかるノードは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体を装置に供給し、装置の有するCPU(Central Processing Unit)又はMPU(Micro Processing Unit)等がこのプログラムを実行することによって、構成することが可能である。
 また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体は、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu−ray(登録商標)Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)、メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体は、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体を含む。また、上述のプログラムは、インターネットを介して伝達することも可能である。
 また、CPU又はMPUが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、装置上で稼動しているOS(Operating System)もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
 さらに、このプログラムの処理の全てもしくは一部が装置に挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
 (実施の形態の他の表現)
 上述の実施の形態、実施例の一部又は全部は下記のようにも表現できるが、下記のように限定されない。
 (付記1)
 属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段と、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定手段と、を備える情報処理装置。
 属性名と属性値とを含む情報であるイベント情報を受信する受信手段と、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間の分割された区間であって下限または上限を含む区間である端区間を、前記端区間に隣接する区間を記憶する他の情報処理装置へ送信する区間情報転送手段と、他の情報処理装置から自区間に隣接する区間を受信する区間情報受信手段と、前記送信した端区間と前記区間情報受信手段で受信した区間の一方もしくは両方を用いて自区間記憶手段を更新する処理対象情報格納手段と、をさらに備える付記1に記載の情報処理装置。
 (付記3)
 前記イベント情報を受信した場合に、前記イベント情報に含まれる属性名と属性値とに基づいて、大小比較可能な形式であるキーを生成するキー情報生成手段と、生成された前記キーが前記自区間に含まれる場合には、前記イベント情報を前記第一の処理対象とし、含まれない場合には、前記イベント情報と前記イベント情報から生成された前記キーとを、他の情報処理装置に送信する情報転送手段と、をさらに備え、前記情報転送手段は、他の情報処理装置から前記端区間を受信した場合に、前記上限または下限が前記自区間の上限または下限と一致しない場合には前記端区間を他の情報処理装置に送信し、前記処理対象情報格納手段は、前記受信した区間の上限または下限が前記自区間の上限または下限と一致する場合には前記自区間に前記端区間を加えた区間を前記自区間記憶手段に記憶させる付記2に記載の情報処理装置。
 (付記4)
 前記キー情報生成手段は、前記属性名と前記属性値の取り得る値の範囲とを含む情報であるサブスクリプション情報を受信した場合に、前記属性名及び前記属性値のいずれか1つの属性名とそれに対応する属性値とから登録キーを生成し、前記処理対象情報格納手段は、前記登録キーが前記自区間に含まれる場合に、前記サブスクリプション情報に含まれる前記属性名及び前記属性値の取り得る値の範囲から生成されるキー範囲をイベント条件として保持し、前記処理対象判定手段は、前記キーが前記自区間に含まれる場合に前記イベント条件を検索する前記第一の処理を実行し、前記イベント条件に前記キーが含まれる場合に前記イベント情報を第二の処理対象とする付記3のいずれかに記載の情報処理装置。
 (付記5)
 前記情報転送手段は、前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を3つの区間に分割し、分割された区間のうち下限を含む第1の区間と、上限を含む第2の区間を他の情報処理装置に送信し、前記処理対象情報格納手段は、前記情報転送手段が送信していない区間を自装置に割り当てる付記3乃至4のいずれかに記載の情報処理装置。
 (付記6)
 前記情報転送手段は、前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2つの区間に分割し、分割された区間のうち下限または上限を含む一方の区間を他の情報処理装置に送信し、前記処理対象情報格納手段は、前記情報転送手段が送信していない他方の区間を自装置に割り当てる請求項3乃至4のいずれかに記載の情報処理装置。
 (付記7)
 前記属性名が任意の長さの文字列で表される請求項1乃至6のいずれかに記載の情報処理装置。
 (付記8)
 前記自区間記憶手段は、自区間の上限及び下限を記憶し、前記判定手段は、前記自区間の上限の生成に用いられた属性名と下限の生成に用いられた属性名との順序関係が前記予め定められた順序関係と一致しない場合、前記生成されるキーが前記下限と比較して小さい又は前記上限と比較して大きい場合に前記生成されるキーが自区間に含まれると判定する、請求項1乃至7のいずれかに記載の情報処理装置。
 (付記9)
 属性名と属性値とに基づいて生成される大小比較可能な形式であるキーの値の範囲が複数区間に分割された各区間のうち、自装置に割り当てられた区間(自区間)以外の各区間を割り当てられた他の情報処理装置と接続され、前記属性名と前記属性値とを含む情報であるイベント情報を受信した場合、該イベント情報に含まれる前記属性名と前記属性値とから生成される前記キーが前記自区間に含まれる場合に前記イベント情報を第一の処理対象とする処理対象判定手段と、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2以上の区間に分割し、分割された区間のうち下限または上限を含む区間(端区間)を、前記端区間に隣接する区間を割り当てられ前記端区間を受信すると前記区間に前記端区間を加えた区間を自装置に割り当てる他の情報処理装置に送信する情報転送手段と、前記情報転送手段が送信した端区間以外の少なくとも1つの区間を自装置に割り当てる処理対象情報格納手段と、を備える情報処理装置。
 (付記10)
 属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記億手段を備える情報処理装置に、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定ステップを実行させる情報処理プログラム。
 (付記11)
 属性名と属性値とを含む情報であるイベント情報を受信する受信ステップと、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間の分割された区間であって下限または上限を含む区間である端区間を、前記端区間に隣接する区間を記憶する他の情報処理装置へ送信する区間情報転送ステップと、他の情報処理装置から自区間に隣接する区間を受信する区間情報受信ステップと、前記送信した端区間と前記区間情報受信ステップにおいて受信した区間の一方もしくは両方を用いて前記自区間記憶手段を更新する処理対象情報格納ステップと、をさらに情報処理装置に実行させる付記10に記載の情報処理プログラム。
 (付記12)
 前記イベント情報を受信した場合に、前記イベント情報に含まれる属性名と属性値とに基づいて、大小比較可能な形式であるキーを生成するキー情報生成ステップと、生成された前記キーが前記自区間に含まれる場合には、前記イベント情報を前記第一の処理対象とし、含まれない場合には、前記イベント情報と前記イベント情報から生成された前記キーとを、他の情報処理装置に送信する情報転送ステップと、をさらに備え、前記情報転送ステップにおいて、他の情報処理装置から前記端区間を受信した場合に、前記上限または下限が前記自区間の上限または下限と一致しない場合には前記端区間を他の情報処理装置に送信し、前記処理対象情報格納ステップにおいて、前記受信した区間の上限または下限が前記自区間の上限または下限と一致する場合には前記自区間に前記端区間を加えた区間を前記自区間記憶手段に記憶する記憶ステップを情報処理装置に実行させる付記11に記載の情報処理プログラム。
 (付記13)
 前記キー情報生成ステップにおいて、前記属性名と前記属性値の取り得る値の範囲とを含む情報であるサブスクリプション情報を受信した場合に、前記属性名及び前記属性値のいずれか1つの属性名とそれに対応する属性値とから登録キーを生成し、前記処理対象情報格納ステップにおいて、前記登録キーが前記自区間に含まれる場合に、前記サブスクリプション情報に含まれる前記属性名及び前記属性値の取り得る値の範囲から生成されるキー範囲をイベント条件として保持し、前記処理対象判定ステップにおいて、前記キーが前記自区間に含まれる場合に前記イベント条件を検索する前記第一の処理を実行し、前記イベント条件に前記キーが含まれる場合に前記イベント情報を第二の処理対象とする付記12に記載の情報処理プログラム。
 (付記14)
 前記情報転送ステップにおいて、前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を3つの区間に分割し、分割された区間のうち下限を含む第1の区間と、上限を含む第2の区間を他の情報処理装置に送信し、前記処理対象情報格納ステップにおいて、前記情報転送ステップにおいて送信していない区間を自装置に割り当てる付記12乃至13のいずれかに記載の情報処理プログラム。
 (付記15)
 前記情報転送ステップにおいて、前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2つの区間に分割し、分割された区間のうち下限または上限を含む一方の区間を他の情報処理装置に送信し、前記処理対象情報格納ステップにおいて、前記情報転送ステップにおいて送信していない他方の区間を自装置に割り当てる付記12乃至13のいずれかに記載の情報処理プログラム。
 (付記16)
 前記自区間記憶手段は、自区間の上限及び下限を記憶し、前記判定ステップにおいて、前記自区間の上限の生成に用いられた属性名と下限の生成に用いられた属性名との順序関係が前記予め定められた順序関係と一致しない場合、前記生成されるキーが前記下限と比較して小さい又は前記上限と比較して大きい場合に前記生成されるキーが自区間に含まれると判定する、付記10乃至15のいずれかに記載の情報処理プログラム。
 (付記17)
 属性名と属性値とに基づいて生成される大小比較可能な形式であるキーの値の範囲が複数区間に分割された各区間のうち、自装置に割り当てられた区間(自区間)以外の各区間を割り当てられた他の情報処理装置と接続されたコンピュータに、前記属性名と前記属性値とを含む情報であるイベント情報を受信した場合、該イベント情報に含まれる前記属性名と前記属性値とから生成される前記キーが前記自区間に含まれる場合に前記イベント情報を第一の処理対象とする処理対象判定ステップと、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2以上の区間に分割し、分割された区間のうち下限または上限を含む区間(端区間)を、前記端区間に隣接する区間を割り当てられ前記端区間を受信すると前記区間に前記端区間を加えた区間を自装置に割り当てる他の情報処理装置に送信する情報転送ステップと、
 前記情報転送ステップにおいて送信した端区間以外の少なくとも1つの区間を自装置に割り当てる処理対象情報格納ステップと、を実行させる情報処理プログラム。
 (付記18)
 属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記億手段を備える情報処理装置が、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する情報処理方法。
 (付記19)
 属性名と属性値とを含む情報であるイベント情報を受信し、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間の分割された区間であって下限または上限を含む区間である端区間を、前記端区間に隣接する区間を記憶する他の情報処理装置へ送信し、他の情報処理装置から自区間に隣接する区間を受信し、受信した区間の一方もしくは両方を用いて前記自区間記憶手段を更新する付記18に記載の情報処理方法。
 (付記20)
 前記イベント情報を受信した場合に、前記イベント情報に含まれる属性名と属性値とに基づいて、大小比較可能な形式であるキーを生成し、生成された前記キーが前記自区間に含まれる場合には、前記イベント情報を前記第一の処理対象とし、含まれない場合には、前記イベント情報と前記イベント情報から生成された前記キーとを、他の情報処理装置に送信し、他の情報処理装置から前記端区間を受信した場合に、前記上限または下限が前記自区間の上限または下限と一致しない場合には前記端区間を他の情報処理装置に送信し、前記受信した区間の上限または下限が前記自区間の上限または下限と一致する場合には前記自区間に前記端区間を加えた区間を前記自区間記憶手段に記憶する付記19に記載の情報処理方法。
 (付記21)
 前記属性名と前記属性値の取り得る値の範囲とを含む情報であるサブスクリプション情報を受信した場合に、前記属性名及び前記属性値のいずれか1つの属性名とそれに対応する属性値とから登録キーを生成し、前記登録キーが前記自区間に含まれる場合に、前記サブスクリプション情報に含まれる前記属性名及び前記属性値の取り得る値の範囲から生成されるキー範囲をイベント条件として保持し、前記キーが前記自区間に含まれる場合に前記イベント条件を検索する前記第一の処理を実行し、前記イベント条件に前記キーが含まれる場合に前記イベント情報を第二の処理対象とする付記20に記載の情報処理プログラム。
 (付記22)
 前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を3つの区間に分割し、分割された区間のうち下限を含む第1の区間と、上限を含む第2の区間を他の情報処理装置に送信し、送信していない区間を自装置に割り当てる付記20乃至21のいずれかに記載の情報処理方法。
 (付記23)
 前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2つの区間に分割し、分割された区間のうち下限または上限を含む一方の区間を他の情報処理装置に送信し、送信していない他方の区間を自装置に割り当てる付記20乃至21のいずれかに記載の情報処理方法。
 (付記24)
 前記自区間記憶手段は、自区間の上限及び下限を記憶し、前記自区間の上限の生成に用いられた属性名と下限の生成に用いられた属性名との順序関係が前記予め定められた順序関係と一致しない場合、前記生成されるキーが前記下限と比較して小さい又は前記上限と比較して大きい場合に前記生成されるキーが自区間に含まれると判定する、付記18乃至23のいずれかに記載の情報処理方法。
 (付記25)
 属性名と属性値とに基づいて生成される大小比較可能な形式であるキーの値の範囲が複数区間に分割された各区間のうち、自装置に割り当てられた区間(自区間)以外の各区間を割り当てられた他の情報処理装置と接続された情報処理装置が、前記属性名と前記属性値とを含む情報であるイベント情報を受信した場合、該イベント情報に含まれる前記属性名と前記属性値とから生成される前記キーが前記自区間に含まれる場合に前記イベント情報を第一の処理対象とし、前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を2以上の区間に分割し、分割された区間のうち下限または上限を含む区間(端区間)を、前記端区間に隣接する区間を割り当てられ前記端区間を受信すると前記区間に前記端区間を加えた区間を自装置に割り当てる他の情報処理装置に送信し、前記情報転送手段が送信した端区間以外の少なくとも1つの区間を自装置に割り当てる情報処理装置の制御方法。
 (付記26)
 付記1から9のいずれかに記載の情報処理装置と、
 前記自装置に割り当てられた区間以外の各区間を割り当てられた他の情報処理装置と、
を接続してなる情報処理システム。
 実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
 この出願は、2010年11月2日に出願された日本出願特願2010−245766を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 5  情報処理装置
 11 サブスクリプション転送情報生成部
 12 イベント転送情報生成部
 13 メッセージ判定部
 14 サブスクリプション配置制御部
 15 サブスクリプション管理部
 16 イベント条件合致判定部
 17 メッセージ転送部
 51 キー情報生成部
 52 処理対象判定部
 53 処理対象情報格納部
 54 情報転送部

Claims (10)

  1.  属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段と、
     属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定手段と、を備える情報処理装置。
  2.  属性名と属性値とを含む情報であるイベント情報を受信する受信手段と、
     前記属性名のうち、受信した前記イベント情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間の分割された区間であって下限または上限を含む区間である端区間を、前記端区間に隣接する区間を記憶する他の情報処理装置へ送信する区間情報転送手段と、
     他の情報処理装置から自区間に隣接する区間を受信する区間情報受信手段と、
     前記送信した端区間と前記区間情報受信手段で受信した区間の一方もしくは両方を用いて自区間記憶手段を更新する処理対象情報格納手段と、をさらに備える請求項1に記載の情報処理装置。
  3.  前記イベント情報を受信した場合に、前記イベント情報に含まれる属性名と属性値とに基づいて、大小比較可能な形式であるキーを生成するキー情報生成手段と、
     生成された前記キーが前記自区間に含まれる場合には、前記イベント情報を前記第一の処理対象とし、含まれない場合には、前記イベント情報と前記イベント情報から生成された前記キーとを、他の情報処理装置に送信する情報転送手段と、
    をさらに備え、
    前記情報転送手段は、
     他の情報処理装置から前記端区間を受信した場合に、前記上限または下限が前記自区間の上限または下限と一致しない場合には前記端区間を他の情報処理装置に送信し、
    前記処理対象情報格納手段は、
     前記受信した区間の上限または下限が前記自区間の上限または下限と一致する場合には前記自区間に前記端区間を加えた区間を前記自区間記憶手段に記憶させる請求項2に記載の情報処理装置。
  4.  前記キー情報生成手段は、前記属性名と前記属性値の取り得る値の範囲とを含む情報であるサブスクリプション情報を受信した場合に、前記属性名及び前記属性値のいずれか1つの属性名とそれに対応する属性値とから登録キーを生成し、
     前記処理対象情報格納手段は、前記登録キーが前記自区間に含まれる場合に、前記サブスクリプション情報に含まれる前記属性名及び前記属性値の取り得る値の範囲から生成されるキー範囲をイベント条件として保持し、
     前記処理対象判定手段は、前記キーが前記自区間に含まれる場合に前記イベント条件を検索する前記第一の処理を実行し、前記イベント条件に前記キーが含まれる場合に前記イベント情報を第二の処理対象とする
     請求項3に記載の情報処理装置。
  5.  前記情報転送手段は、前記属性名のうち、受信した前記イベント情報または前記サブスクリプション情報に含まれる頻度が所定値以上の属性名が存在する場合、前記自区間を3つの区間に分割し、分割された区間のうち下限を含む第1の区間と、上限を含む第2の区間を他の情報処理装置に送信し、
     前記処理対象情報格納手段は、前記情報転送手段が送信していない区間を自装置に割り当てる請求項4に記載の情報処理装置。
  6.  前記属性名が任意の長さの文字列で表される請求項1乃至5のいずれかに記載の情報処理装置。
  7.  前記自区間記憶手段は、自区間の上限及び下限を記憶し、前記判定手段は、前記自区間の上限の生成に用いられた属性名と下限の生成に用いられた属性名との順序関係が前記予め定められた順序関係と一致しない場合、前記生成されるキーが前記下限と比較して小さい又は前記上限と比較して大きい場合に前記生成されるキーが自区間に含まれると判定する、請求項1乃至6のいずれかに記載の情報処理装置。
  8.  請求項1から7のいずれかに記載の情報処理装置と、
     前記自装置に割り当てられた区間以外の各区間を割り当てられた他の情報処理装置と、を接続してなる情報処理システム。
  9.  属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段を備える情報処理装置に、
     属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する判定ステップを実行させる情報処理プログラム。
  10.  属性名と属性値とを用いて、少なくとも2以上の属性名について予め定められた順序関係に基づいて生成される大小比較可能な形式であるキーの範囲が互いに隣接するように複数に分割された各区間のうちの少なくともひとつ以上の区間である自区間を記憶する自区間記憶手段を備える情報処理装置が、属性名と属性値とから生成されるキーが前記自区間に含まれるか否かを判定する情報処理方法。
PCT/JP2011/075646 2010-11-02 2011-11-01 情報処理装置、システム、制御方法およびプログラム WO2012060465A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/882,375 US8973015B2 (en) 2010-11-02 2011-11-01 Information processing device, system, control method, and program
JP2012541919A JP5867407B2 (ja) 2010-11-02 2011-11-01 情報処理装置、システム、制御方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010245766 2010-11-02
JP2010-245766 2010-11-02

Publications (1)

Publication Number Publication Date
WO2012060465A1 true WO2012060465A1 (ja) 2012-05-10

Family

ID=46024577

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/075646 WO2012060465A1 (ja) 2010-11-02 2011-11-01 情報処理装置、システム、制御方法およびプログラム

Country Status (3)

Country Link
US (1) US8973015B2 (ja)
JP (1) JP5867407B2 (ja)
WO (1) WO2012060465A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110095A1 (ja) * 2016-12-15 2018-06-21 オムロン株式会社 制御装置、センサ管理装置、制御方法、センサ管理方法およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156700A (ja) * 2005-12-02 2007-06-21 Mitsubishi Electric Corp 情報検索方法、情報登録方法およびネットワークサービス情報検索システム
JP2009020757A (ja) * 2007-07-12 2009-01-29 Toshiba Corp データ登録装置、データ登録方法及びプログラム
JP2009295127A (ja) * 2008-06-09 2009-12-17 Nippon Telegr & Teleph Corp <Ntt> アクセス方法、アクセス装置及び分散データ管理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4554564B2 (ja) * 2006-06-26 2010-09-29 日本電信電話株式会社 分散データの管理方法および管理システム
US9037554B2 (en) * 2009-06-30 2015-05-19 Oracle America, Inc. Bloom bounders for improved computer system performance
US20110153953A1 (en) * 2009-12-23 2011-06-23 Prakash Khemani Systems and methods for managing large cache services in a multi-core system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156700A (ja) * 2005-12-02 2007-06-21 Mitsubishi Electric Corp 情報検索方法、情報登録方法およびネットワークサービス情報検索システム
JP2009020757A (ja) * 2007-07-12 2009-01-29 Toshiba Corp データ登録装置、データ登録方法及びプログラム
JP2009295127A (ja) * 2008-06-09 2009-12-17 Nippon Telegr & Teleph Corp <Ntt> アクセス方法、アクセス装置及び分散データ管理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110095A1 (ja) * 2016-12-15 2018-06-21 オムロン株式会社 制御装置、センサ管理装置、制御方法、センサ管理方法およびプログラム
JP2018097746A (ja) * 2016-12-15 2018-06-21 オムロン株式会社 制御装置、センサ管理装置、制御方法、センサ管理方法およびプログラム
US11113125B2 (en) 2016-12-15 2021-09-07 Omron Corporation Control device, sensor management device, control method, sensor management method and program

Also Published As

Publication number Publication date
US8973015B2 (en) 2015-03-03
US20130219414A1 (en) 2013-08-22
JPWO2012060465A1 (ja) 2014-05-12
JP5867407B2 (ja) 2016-02-24

Similar Documents

Publication Publication Date Title
US10545914B2 (en) Distributed object storage
RU2400806C2 (ru) Организация стыковки запросов на ресурс с соответствующими ресурсами
JP5625998B2 (ja) 情報処理システム
JP6534402B2 (ja) データ品質例外を処理するための方法、コンピュータ・プログラム、および例外エンジン
WO2013018916A1 (ja) 分散処理管理サーバ、分散システム、及び分散処理管理方法
US7773609B2 (en) Overlay network system which constructs and maintains an overlay network
JP5724880B2 (ja) 情報処理システム、制御方法およびプログラム
WO2022267175A1 (zh) 信息处理方法、装置、计算机设备及存储介质
US10673713B2 (en) Communication control device, communication device, and computer program product for dynamic group management
JP2019070967A (ja) 情報収集システム、情報収集方法、及び情報収集プログラム
US10701027B2 (en) Self-organizing distributed computation grid
JP5765441B2 (ja) 情報処理装置、データ管理方法およびプログラム
JP5867407B2 (ja) 情報処理装置、システム、制御方法およびプログラム
JP2005202851A (ja) 仮想私設組織に対するポリシの実施システム及びその方法
JP5949561B2 (ja) 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
JP6127900B2 (ja) パケット処理装置、パケット処理方法、パケット処理プログラム
CN114415971B (zh) 数据处理方法以及装置
US20100275059A1 (en) Preserving references to deleted directory entries
US11362937B2 (en) Location-aware routing for east-west data traffic
JP2021027389A (ja) 通信プログラム、通信方法および通信装置
WO2013027784A1 (ja) データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体
JP2006268588A (ja) クライアントサーバシステムおよびクライアントサーバシステムのデータ処理方法
EP3582457B1 (en) Communication device and communication method
US20220342964A1 (en) Element addition method and information processing apparatus
CN116827940A (zh) 一种数据处理方法、装置、设备及存储介质

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012541919

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13882375

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11838115

Country of ref document: EP

Kind code of ref document: A1