JP2012146113A - Information notification node, information distribution system, information notification method, and program - Google Patents
Information notification node, information distribution system, information notification method, and program Download PDFInfo
- Publication number
- JP2012146113A JP2012146113A JP2011003756A JP2011003756A JP2012146113A JP 2012146113 A JP2012146113 A JP 2012146113A JP 2011003756 A JP2011003756 A JP 2011003756A JP 2011003756 A JP2011003756 A JP 2011003756A JP 2012146113 A JP2012146113 A JP 2012146113A
- Authority
- JP
- Japan
- Prior art keywords
- node
- information
- notification
- load
- subscription
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、情報の配信又は通知に関し、特に情報の配信又は通知の負荷に関する。 The present invention relates to information distribution or notification, and more particularly to information distribution or notification load.
ネットワークに接続した情報処理装置は、ネットワークを介して、情報を送信又は受信する。このようなネットワークを介して情報を送受信する情報処理装置のシステムの1つに、情報配信システムがある。 An information processing apparatus connected to the network transmits or receives information via the network. One information processing system that transmits and receives information via such a network is an information distribution system.
情報配信システムには、イベントを含む情報を1つ又は複数の通知先に配信(通知)するシステムがある。このような情報配信システムが配信する情報は、例えば、RFID(Radio Frequency IDentification)読み取り機が物品に付されたRFIDを検出するイベント(event、出来事)、又は、近接センサが物品の接近を検出するイベントを含む。 Information distribution systems include systems that distribute (notify) information including events to one or a plurality of notification destinations. Information distributed by such an information distribution system is, for example, an event (event) in which an RFID (Radio Frequency IDentification) reader detects an RFID attached to an article, or a proximity sensor detects the approach of the article. Includes events.
情報配信システムを構成する情報処理装置(以下、ノード(node、節点)と称す)は、いろいろな接続形態のネットワークを構成することができる。そのような情報配信システムを構成するネットワークの接続形態の1つに、pub/sub(publisher/subscriber)ネットワークがある(例えば、非特許文献1を参照)。 Information processing apparatuses (hereinafter referred to as nodes) constituting an information distribution system can constitute networks of various connection forms. A pub / sub (publisher / subscriber) network is one of the network connection forms constituting such an information distribution system (see, for example, Non-Patent Document 1).
一般的なpub/subネットワークを用いた情報配信システムについて図面を参照して説明する。 An information distribution system using a general pub / sub network will be described with reference to the drawings.
図22は、pub/subネットワーク90を含む情報配信システム9の一例を示す図である。
FIG. 22 is a diagram illustrating an example of the
情報配信システム9は、サブスクライバ(subscriber)20と、パブリッシャ(publisher)30と、pub/subネットワーク90とを含んでいる。
The
サブスクライバ(subscriber、以下、subと称すこともある)20は、イベントを受け取りたい者(利用者など)又は装置からの指示を基に、配信(通知)を受けたいイベントの条件を、サブスクリプション(subscription、受信登録)としてpub/subネットワーク90に登録(サブスクライブ:subscribe)する。このようにサブスクリプションは、pub/subネットワーク90が、サブスクライバ20にイベントを通知(notify)するために必要な情報を含んでいる。
A subscriber (subscriber, hereinafter, also referred to as sub) 20 subscribes a condition of an event to receive distribution (notification) based on an instruction from a person who wants to receive the event (such as a user) or a device. subscription (reception registration) to the pub / sub network 90 (subscribe). Thus, the subscription includes information necessary for the pub /
パブリッシャ(publisher、以下、pubと称すこともある)30は、図示しないセンサなどからイベントを受け取り、イベント又はイベントを示すような情報(まとめて、イベントと称す)をpub/subネットワーク90に入力(パブリッシュ、publish、登録とも称す)する。 A publisher (hereinafter also referred to as “pub”) 30 receives an event from a sensor (not shown) or the like, and inputs an event or information indicating the event (collectively referred to as an event) to the pub / sub network 90 ( (Also called publish, publish, registration).
pub/subネットワーク90は、パブリッシャ30から受け取ったイベントと、登録済みのサブスクリプションに含まれるイベントの条件とを比較する。イベントと登録済みサブスクリプションのイベントの条件が一致した場合、pub/subネットワーク90は、一致したサブスクリプションを登録したサブスクライバ20に、イベントを通知(notify、配信)する。
The pub /
このように動作する一般的なpub/subネットワーク90は、サーバのような情報処理装置(ノード)が相互に接続したネットワークであり、所定の方式に基づき情報(サブスクリプション及びイベント)を転送する。この転送において、ノードは、情報の転送先を探索(ルックアップ、lookup)する。そのため、一般的なpub/subネットワークは、ネットワークが大きく又は複雑になると、情報の転送先の探索に時間が掛かるという問題点があった。
The general pub /
そこで、探索を改善したネットワークとして、分散ハッシュテーブル(DHT:Distributed Hash Table)を用いたネットワークがある(例えば、非特許文献2を参照)。 Therefore, there is a network using a distributed hash table (DHT) as a network with improved search (see, for example, Non-Patent Document 2).
分散ハッシュテーブルとは、情報にハッシュ関数を適用して求めたハッシュ値に対応するノードが情報を管理又は処理する管理方式である。ハッシュ値は固定長のため、分散ハッシュテーブルは、ネットワークが大きくなっても探索の負荷が増大しない。 The distributed hash table is a management method in which a node corresponding to a hash value obtained by applying a hash function to information manages or processes the information. Since the hash value has a fixed length, the distributed hash table does not increase the search load even when the network becomes large.
分散ハッシュテーブルを用いたpub/subネットワーク90の情報の転送について図面を参照して説明する。
Information transfer of the pub /
図23は、分散ハッシュテーブルを用いたpub/subネットワーク90のサブスクリプションの登録における転送の一例を示す図である。
FIG. 23 is a diagram showing an example of transfer in registration of a subscription of the pub /
図23において、pub/subネットワーク90を構成するノードは、小円で示している。各ノードは、ネットワークを介して接続している。説明の便宜のため、図23では、模式的に円形の接続として示している。
In FIG. 23, nodes constituting the pub /
分散ハッシュテーブルを用いたネットワークを構成する各ノードは、ノードを管理するためのキー(鍵)を備える。キーは、ノードの識別子(ID、identification)の値としてもよい。そのため、図23において、各ノードのキーは、ノードの識別子の値として、ノードを示す小円の中に2進数を用いて示している。なお、図23において、説明の便宜のため、各ノードのキーの値は、1つとして示しているが、分散ハッシュテーブルを用いたノードは、複数のキーの値を備えても良い。 Each node constituting the network using the distributed hash table has a key (key) for managing the node. The key may be a value of a node identifier (ID). Therefore, in FIG. 23, the key of each node is shown as a value of the identifier of the node using a binary number in a small circle indicating the node. In FIG. 23, for convenience of explanation, the key value of each node is shown as one, but a node using a distributed hash table may include a plurality of key values.
サブスクライバ(sub)20が、サブスクリプションをpub/subネットワーク90に登録すると、サブスクリプションを受け取ったノードは、受け取ったサブスクリプションに含まれ条件にハッシュ関数を適用してキーを求める。そして、サブスクリプションを受け取ったノードは、キーに基づいて、キーに対応するノードにサブスクリプションを転送する。ここで、ハッシュ関数を適用する条件とは、例えば、サブスクリプションで通知を依頼したイベントである。
When the subscriber (sub) 20 registers the subscription in the pub /
図23は、一例として、サブスクライバが登録した5つのサブスクリプションの転送先のキーが、すべてID=1000のノードの場合の転送を示している。サブスクリプションを受け取った各ノードは、サブスクリプションから求めたキーに基づき、ID=1000のノードにサブスクリプションを転送する。ただし、一般的なpub/subネットワークは、複数のネットワークが接続したネットワークである。そのため、pub/subネットワークを構成するノードは、転送先のノードと同じネットワークに接続していない場合もある。そのような場合、ノードは、転送する情報を、pub/subネットワークを構成する複数のノードを経由して、転送先のノードに転送する。ノードは、情報を転送するために経由するノードの情報、つまり経路情報を、ルーティングテーブル(routing table)として備え、ルーティングテーブルを参照して、転送先のノードに届くように、所定のノードに情報を送信する。 FIG. 23 shows, as an example, the transfer when the keys of the transfer destinations of the five subscriptions registered by the subscriber are all ID = 1000. Each node that receives the subscription transfers the subscription to the node with ID = 1000 based on the key obtained from the subscription. However, a general pub / sub network is a network in which a plurality of networks are connected. For this reason, the nodes constituting the pub / sub network may not be connected to the same network as the transfer destination node. In such a case, the node transfers the information to be transferred to the transfer destination node via a plurality of nodes constituting the pub / sub network. A node has information of a node through which information is transferred, that is, route information, as a routing table, and refers to the routing table so that information can be transmitted to a predetermined node so that the node reaches the transfer destination node. Send.
例えば、図23において、ID=0001のノードは、直接ID=1000のノードにサブスクリプションを転送できない。そのため、ID=0001のノードは、ID=0101のノードに、サブスクリプションを転送する。ID=0101のノードも、直接ID=1000のノードに転送できないため、ID=0111のノードにサブスクリプションを転送する。ID=0111のノードは、ID=1000のノードに転送できるため、ID=1000のノードにサブスクリプションを転送する。このように、pub/subネットワークを構成するノードは、ルーティングテーブルを用いて、情報を転送する。 For example, in FIG. 23, the node with ID = 0001 cannot directly transfer the subscription to the node with ID = 1000. Therefore, the node with ID = 0001 transfers the subscription to the node with ID = 0101. Since the node with ID = 0101 cannot be directly transferred to the node with ID = 1000, the subscription is transferred to the node with ID = 0111. Since the node with ID = 0111 can be transferred to the node with ID = 1000, the subscription is transferred to the node with ID = 1000. As described above, the nodes constituting the pub / sub network transfer information using the routing table.
サブスクリプションを受けたID=1000のノードは、受け取ったサブスクリプションを保持する。なお、ID=1000のノードは、サブスクリプションの条件にハッシュ関数を適用し、求めたハッシュ値が自分のキー(ID)となることに基づいて、自ノードで管理するサブスクリプションであることを判定できる。 The node with ID = 1000 that has received the subscription holds the received subscription. Note that the node with ID = 1000 applies a hash function to the subscription condition, and determines that the subscription is managed by the own node based on the obtained hash value being its own key (ID). it can.
図24は、分散ハッシュテーブルを用いたpub/subネットワーク90のイベントの配信(通知)の一例を示す図である。
FIG. 24 is a diagram illustrating an example of event distribution (notification) of the pub /
図24は、イベントから求めたキー(ノードID)が、ID=1000である場合の一例である。パブリッシャ(pub)からイベントを受けたID=0101のノードは、イベントにハッシュ関数を適用して求めたハッシュ値から、イベントの転送先ノードがID=1000のノードであることを判定し、イベントを転送する。なお、ID=0101のノードは、既に説明したとおり、ID=1000のノードに直接情報を転送できないため、ID=0111のノードを介して、ID=1000のノードにイベントを転送する。 FIG. 24 shows an example in which the key (node ID) obtained from the event is ID = 1000. Upon receiving the event from the publisher (pub), the node with ID = 0101 determines from the hash value obtained by applying the hash function to the event that the event transfer destination node is the node with ID = 1000, and Forward. Since the node with ID = 0101 cannot transfer information directly to the node with ID = 1000 as already described, the event is transferred to the node with ID = 1000 via the node with ID = 0111.
イベントを受け取ったID=1000のノードは、図23を用いて説明した登録したサブスクリプションに基づき、サブスクライバ(sub)20にイベントを通知(notify、配信)する。 The node having ID = 1000 that received the event notifies the subscriber (sub) 20 of the event (notify, distribute) based on the registered subscription described with reference to FIG.
なお、図23及び図24に示すID=1000のノードのように、サブスクライバとイベントが出会う(集まる)ノードは、ランデブー(rendezvous)ノードと呼ばれる。 Note that, as in the node with ID = 1000 shown in FIGS. 23 and 24, a node where an event meets (collects) a subscriber is called a rendezvous node.
このように、分散ハッシュテーブルに基づき、ネットワークが増大しても、各ノードは、探索するテーブルを所定の範囲とすることができる。 As described above, even if the network increases based on the distributed hash table, each node can set the table to be searched within a predetermined range.
ただし、特別なイベント、例えば、著名人に関するイベント、株式市場で注目されている株式会社の株価の変動のイベント、災害のイベントは、通知を受けたいサブスクライバが多い。そのため、そのようなイベントのランデブーノードは、イベントの通知の処理が大きな負荷となる。その結果、ランデブーノードは、分散ハッシュテーブルを採用していても、通知先の多いイベント、つまり負荷が大きなイベントの通知に時間が掛かり、通知が遅れるという問題点があった。 However, there are many subscribers who want to be notified of special events such as events related to celebrities, stock price fluctuation events that are attracting attention in the stock market, and disaster events. Therefore, a rendezvous node for such an event is a heavy load for event notification processing. As a result, even if the rendezvous node adopts a distributed hash table, there is a problem that it takes time to notify an event with many notification destinations, that is, an event with a large load, and the notification is delayed.
このような負荷の増大に対し、一般的なネットワークを使用したシステムは、装置の負荷軽減として、負荷分散を用いる。 In response to such an increase in load, a system using a general network uses load distribution as a device load reduction.
例えば、トンネリングを使用するシステムは、装置(ノード)の稼動状態を基に、トンネリングした通信経路の割り振りを変更する(例えば、特許文献1を参照)。しかし、特許文献1に記載のシステムは、通信経路を変更するものであり、負荷が増大したノードにおける通信路以外の負荷を軽減することができない問題点があった。 For example, a system using tunneling changes the allocation of tunneled communication paths based on the operating state of a device (node) (see, for example, Patent Document 1). However, the system described in Patent Document 1 changes the communication path, and there is a problem that it is impossible to reduce loads other than the communication path in the node where the load is increased.
また、複数の送信先に情報を通知するシステムとして、通知先に時間を設定し、時間を分けて情報を通知するシステムがある。(例えば、特許文献2を参照)。しかし、株価の変動又は災害などのイベントは、通知先に時間差を設定できないため、特許文献2に記載のシステムは、このようなイベントには使用できない問題点があった。 Further, as a system for notifying information to a plurality of transmission destinations, there is a system in which time is set for a notification destination and information is notified by dividing the time. (For example, see Patent Document 2). However, since a time difference cannot be set as a notification destination for events such as stock price fluctuations or disasters, the system described in Patent Document 2 has a problem that it cannot be used for such events.
そこで、装置での処理を軽減するため、処理するプログラムを別の装置に移動するシステムがある(例えば、特許文献3を参照)。また、引継ぎの処理の時間を削減するため、処理に必要なデータは、元の装置の残し、処理だけ移動するシステムもある(例えば、特許文献4を参照)。 Thus, there is a system that moves a program to be processed to another device in order to reduce processing in the device (see, for example, Patent Document 3). In addition, there is a system in which data necessary for processing is moved only by the processing while the data necessary for the processing is left in order to reduce the time for the handover processing (see, for example, Patent Document 4).
しかし、特許文献3及び特許文献4に記載のシステムは、処理する装置を変更するものであり、イベントの通知の処理を引き継いだ装置での処理の負荷の量は、引き渡した装置の負荷と同様である。特許文献3及び特許文献4に記載のシステムは、イベントの通知を引き継いだ装置、つまり、イベントを通知する装置におけるイベントを通知する処理の負荷を削減できないという問題点があった。
However, the systems described in
本発明の目的は、上記問題点を解決し、情報(イベントを含む情報)を通知(notify)する装置(ノード)の負荷の軽減を提供することにある。 An object of the present invention is to solve the above problems and provide a reduction in the load on a device (node) that notifies information (information including an event).
本発明の情報通知ノードは、イベントを含む情報の受信登録(サブスクリプション)を受け取り保持するサブスクリプションテーブル保持部と、保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定するイベント制御部と、前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する負荷分散管理テーブル保持部と、前記イベント制御部が委譲すると判定した場合に、前記負荷分散管理テーブル保持部が保持する情報に基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記イベント制御部に前記情報の通知を依頼する負荷分散制御部とを含む。 The information notification node of the present invention is configured to determine a load of notification of the information based on a subscription table holding unit that receives and holds reception registration (subscription) of information including an event, and the reception registration held, An event control unit that determines whether or not to delegate the notification based on a load; a load distribution management table holding unit that holds information on a transmission source of the reception registration and a notification destination that notifies the information; and the event control If it is determined that the information is to be delegated, a range of notification destinations to which the notification of the information is delegated is determined based on information held by the load distribution management table holding unit, and the notification destination of the information is delegated for the notification destination to be delegated A load distribution control unit that sends a request to the first node and requests the event control unit to notify the information about a notification destination that is not delegated.
本発明の情報通知方法は、情報の受信登録を受け取り保持し、保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定し、前記受信登録の送信元の情報と前記情報を通知する通知先とを保持し、委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する。 The information notification method of the present invention receives and holds an information reception registration, determines the information notification load based on the held reception registration, and determines whether to delegate the notification based on the load And holding the information of the transmission source of the reception registration and the notification destination for notifying the information, and when determining to delegate, based on the information of the transmission source of the reception registration and the notification destination for notifying the information The range of notification destinations to which information notification is delegated is determined, a request for proxying the information notification is sent to the first node for the notification destination to be delegated, and the information is notified to the notification destination that is not to be delegated.
本発明のプログラムは、情報の受信登録を受け取り保持する処理と、保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定する処理と、前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する処理と、委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する処理とをコンピュータに実行させる。 The program of the present invention receives and holds information reception registration, determines the information notification load based on the held reception registration, and determines whether to delegate the notification based on the load A process of holding the information of the transmission source of the reception registration and a notification destination of notifying the information, and a notification destination of notifying the information of the transmission source of the reception registration and the information when it is determined to delegate Based on the above, the scope of the notification destination to which the notification of the information is delegated is determined, a request for proxying the notification of the information is sent to the first node for the notification destination to be delegated, and the information for the notification destination not to be delegated Causes the computer to execute notification processing.
本発明の情報配信システムは、本発明の情報通知ノードは、イベントを含む情報の受信登録(サブスクリプション)を受け取り保持するサブスクリプションテーブル保持部と、保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定するイベント制御部と、前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する負荷分散管理テーブル保持部と、前記イベント制御部が委譲すると判定した場合に、前記負荷分散管理テーブル保持部が保持する情報に基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記イベント制御部に前記情報の通知を依頼する負荷分散制御部とを含む情報通知ノードと、情報の受信登録を登録するサブスクライバと、前記情報を発行するパブリッシャとを含む。 In the information distribution system of the present invention, the information notification node of the present invention includes a subscription table holding unit that receives and holds reception registration (subscription) of information including an event, and the information notification node of the information based on the received reception registration. A load distribution management that holds an event control unit that determines a notification load, determines whether to delegate the notification based on the load, and information on a transmission source of the reception registration and a notification destination that notifies the information When the table holding unit and the event control unit determine to delegate, the range of the notification destination to which the information notification is delegated is determined based on the information held by the load distribution management table holding unit, and the notification destination to delegate Sends a proxy request for notification of the information to the first node, and requests notification of the information to the event control unit for notification destinations that are not delegated Including that a load distribution control unit and the information notification node comprising a subscriber to register to receive registration information, and a publisher to issue the information.
本発明によれば、情報(イベントを含む情報)を通知(notify)する装置(ノード)の処理の負荷を低減することができる。 ADVANTAGE OF THE INVENTION According to this invention, the processing load of the apparatus (node) which notifies (notify) information (information including an event) can be reduced.
次に、本発明における実施の形態について図面を参照して説明する。 Next, embodiments of the present invention will be described with reference to the drawings.
まず、本実施の形態の説明における用語について整理する。 First, terms in the description of the present embodiment will be organized.
「イベント(event、出来事)」とは、センサの検出又は人の操作などに基づき発生する情報である。イベントは、センサの検出などイベントの基となる情報を受けた装置が、ネットワークに発信(パブリッシュ、publish、登録又は入力とも称す)する。ネットワークにイベントを発信する装置をパブリッシャ(publisher)、又は、pubと称す。パブリッシャが発信したイベントは、ネットワーク、具体的にはネットワークを構成する装置が受け取る。なお、本実施の形態に係るイベントは、イベント及びイベントに基づき生成又は発生した情報を含めてイベントと称す。 An “event” is information generated based on detection of a sensor or human operation. An event is transmitted (also referred to as “publish”, “publish”, “registered”, or “input”) to a network by a device that has received information that is the basis of the event, such as sensor detection. A device that transmits an event to a network is called a publisher or pub. An event transmitted by a publisher is received by a network, specifically, a device constituting the network. The event according to the present embodiment is referred to as an event including the event and information generated or generated based on the event.
イベントは、いろいろな情報を含んでも良い。本実施の形態に係るイベント(イベントを含む情報とも称す)は、一例としてイベントID(Identification、識別子)と、イベント情報とを含む。 An event may contain a variety of information. An event (also referred to as information including an event) according to the present embodiment includes an event ID (Identification) and event information as an example.
イベントIDは、イベントを一意に識別するための識別子である。例えば、イベントIDは、イベントの基となったセンサが検出したRFID(Radio Frequency IDentification)にハッシュ関数を適用して求めたハッシュ値である。後ほど説明するように、このイベントIDに相当するキー(key、鍵)を識別子として備える情報通知ノードが、イベントを通知(notify、配信とも称す)する。つまり、イベントIDは、イベントを識別すると共に、イベントを通知する情報通知ノードの判別に用いてもよい。 The event ID is an identifier for uniquely identifying the event. For example, the event ID is a hash value obtained by applying a hash function to RFID (Radio Frequency IDentification) detected by the sensor that is the basis of the event. As will be described later, an information notification node including a key corresponding to the event ID as an identifier notifies the event (also referred to as notification or distribution). That is, the event ID may be used for identifying an event and determining an information notification node that notifies the event.
イベント条件は、イベントに関する情報、例えば、イベントが発生した条件(時間、場所、原因など)を含む情報である。 The event condition is information including an event related information, for example, a condition (time, place, cause, etc.) in which the event has occurred.
なお、本実施の形態に係る情報通知ノードは、イベントを用いて説明するが、本実施の形態に係る情報通知ノードが扱う情報は、イベントに限られるわけではない。本実施の形態に係る情報通知ノードが扱う情報は、例えば、データベースの情報でもよく、エキスパートシステム(expert system)の情報でよい。 The information notification node according to the present embodiment is described using an event, but the information handled by the information notification node according to the present embodiment is not limited to the event. Information handled by the information notification node according to the present embodiment may be, for example, database information or expert system information.
「サブスクリプション(subscription)」とは、通知(配信)を受けたい情報(イベントを含む情報)について、ネットワークに登録(サブスクライブ、subscribe)する情報(受信登録)である。サブスクリプション(受信登録)を登録する装置をサブスクライバ(subscriber)、又は、subと称す。サブスクライバがネットワークに登録したサブスクリプションは、後ほど説明するように、イベントを通知する情報通知ノードに転送される。 “Subscription” is information (reception registration) to register (subscribe) information (information including an event) to be notified (distributed) in the network. A device for registering a subscription (reception registration) is referred to as a subscriber or a sub. The subscription registered in the network by the subscriber is transferred to the information notification node that notifies the event, as will be described later.
サブスクリプションは、いくつかの情報を含んでいても良い。本実施の形態に係るサブスクリプションは、一例として、サブスクリプション条件と、サブスクライバIDと、通知先IDと、経由ノードIDとを含む。 A subscription may contain some information. As an example, the subscription according to the present embodiment includes a subscription condition, a subscriber ID, a notification destination ID, and a relay node ID.
サブスクリプション条件は、サブスクリプションを通知するためのイベントに関する条件を含む情報である。なお、サブスクリプション条件が含むイベントに関する条件は、イベントの一部と一致すれば良い場合を含む。例えば、サブスクリプション条件が、イベントに関する条件として「場所=東京」を含む場合、「場所=東京、事件=火事」又は「場所=東京、事件=地震」などのイベントは、サブスクリプション条件と一致するイベントとしてもよい。また、サブスクリプション条件は、イベントを通知する情報通知ノードにサブスクリプションを転送するための情報、例えば、イベントIDに相当する情報を含む。 The subscription condition is information including a condition regarding an event for notifying a subscription. It should be noted that the conditions related to the event included in the subscription condition include a case where it is sufficient to match a part of the event. For example, if the subscription condition includes “location = Tokyo” as a condition regarding the event, an event such as “location = Tokyo, incident = fire” or “location = Tokyo, incident = earthquake” matches the subscription condition. It may be an event. The subscription condition includes information for transferring the subscription to the information notification node that notifies the event, for example, information corresponding to the event ID.
サブスクライバIDは、サブスクリプションをネットワークに登録したサブスクライバを示す情報(識別子)である。 The subscriber ID is information (identifier) indicating the subscriber who registered the subscription in the network.
通知先IDは、登録したサブスクリプションに基づいてイベントを通知する装置を示す情報(識別子)である。通知先IDで示される通知先の装置は、1つ又は複数でも良い。また、通知先の装置は、サブスクライバでもよい。つまり、サブスクリプションを登録したサブスクライバが、イベントを通知(配信)先となってもよい。なお、説明の便宜のため、本実施の形態に係るイベントの通知先の装置は、サブスクリプションを登録したサブスクライバとする。そのため、本実施の形態に係るサブスクリプションは、通知先IDを、サブスクライバIDで代用しても良い。 The notification destination ID is information (identifier) indicating a device that notifies an event based on a registered subscription. One or a plurality of notification destination devices may be indicated by the notification destination ID. The notification destination device may be a subscriber. That is, the subscriber who registered the subscription may be the event notification (distribution) destination. For convenience of explanation, it is assumed that the event notification destination apparatus according to the present embodiment is a subscriber who has registered a subscription. Therefore, in the subscription according to the present embodiment, the notification destination ID may be substituted with the subscriber ID.
経由ノードIDは、サブスクリプションを中継したノードの識別子である。各ノードは、サブスクリプションを受け取った際に、送付元のノードの識別子を経由ノードIDに設定する。ただし、経由ノードIDは、サブスクリプションを送信するときに送信元のノードが設定してもよい。また、本実施の形態に係る経由ノードIDは、経由したノードの識別子をすべて含んでいても良く、所定の範囲又は数のノードの識別子を含んでも良く、直前のノードの識別子を含むようにしても良い。 The transit node ID is an identifier of the node that relayed the subscription. When each node receives the subscription, each node sets the identifier of the sender node as the transit node ID. However, the transit node ID may be set by the transmission source node when transmitting the subscription. Further, the transit node ID according to the present embodiment may include all the identifiers of the transited nodes, may include the identifiers of a predetermined range or number of nodes, or may include the identifier of the immediately preceding node. .
「pub/subネットワーク」とは、サブスクライバがサブスクリプションを登録し、パブリッシャがイベントを発信するネットワークである。また、pub/subネットワークを構成する装置は、イベントの通知を担当する情報通知ノードに、サブスクリプション及びイベントを転送する。さらに、pub/subネットワークは、情報通知ノードが作成するメッセージを転送する。なお、pub/subネットワークは、一般的なネットワークと同様に、情報を転送する装置の経路情報(ルーティングテーブル:routing table、経路表)を含み、ルーティングテーブルを用いて情報を転送する。つまり、pub/subネットワークを構成するノードは、ルーティングテーブルに基づき、所定の装置にサブスクリプション、イベント、及び、メッセージを転送する。 The “pub / sub network” is a network in which a subscriber registers a subscription and a publisher sends an event. In addition, the devices constituting the pub / sub network transfer the subscription and the event to the information notification node in charge of event notification. Further, the pub / sub network transfers a message created by the information notification node. Note that the pub / sub network includes the routing information (routing table) of the device to which information is transferred, and transfers information using the routing table, as in a general network. That is, the nodes constituting the pub / sub network transfer subscriptions, events, and messages to predetermined devices based on the routing table.
「ノード(node、節点)」とは、通信路を介して相互に接続してpub/subネットワークを構成する装置である。ノードは、ルーティングテーブルに基づき情報の転送先を探索する。ノードは、この探索に、いろいろな方式を使用しても良い。ただし、本実施の形態では、説明の便宜のため、分散ハッシュテーブル(DHT:Distributed Hash Table)を用いて説明する。そのため、各ノードは、DHTのために割り振られたキーとして識別子(ノードID)を備える。既に説明しているが、本実施の形態に係るノードIDは、イベントIDに相当するキーである。つまり、本実施の形態に係るノードIDは、イベントIDのハッシュ値として説明する。 A “node” is a device that forms a pub / sub network by connecting to each other via a communication path. The node searches for a transfer destination of information based on the routing table. The node may use various schemes for this search. However, in the present embodiment, for the convenience of explanation, description will be made using a distributed hash table (DHT). Therefore, each node includes an identifier (node ID) as a key allocated for DHT. As already described, the node ID according to the present embodiment is a key corresponding to the event ID. That is, the node ID according to the present embodiment will be described as a hash value of the event ID.
なお、本実施の形態に係るノードは、キーとしてのノードIDを、1つの値に限らず、複数の値を保持しても良い。ただし、本実施の形態では、説明の便宜のため、各ノードは、1つのノードID(キー)の値を持つとする。 Note that the node according to the present embodiment may hold not only one value but also a plurality of values as a node ID as a key. However, in this embodiment, it is assumed that each node has a value of one node ID (key) for convenience of explanation.
また、ノードは、既に説明した、情報の転送経路(例えば、転送先及び/又は転送元)を示す情報を保持するルーティングテーブルを含んでいる。なお、本実施の形態においてルーティングテーブルは、論理接続に基づくルーティンテーブルとして説明する。ただし、本実施の形態に係るノードは、物理的接続に基づくルーティングテーブルを含んでもよい。 Further, the node includes a routing table that holds the information indicating the information transfer path (for example, transfer destination and / or transfer source), which has already been described. In the present embodiment, the routing table will be described as a routine table based on logical connection. However, the node according to the present embodiment may include a routing table based on physical connection.
「情報通知ノード」は、サブスクリプション(受信登録)と情報(イベントを含む情報)とに基づき、情報(イベントを含む情報)を、サブスクリプションで指定された通知先(通知先ID)の装置に通知(notify、配信)するノードである。本発明の実施の形態に係るpub/subネットワークは、少なくとも一部に、情報通知ノードを含む。なお、情報通知ノードのように、サブスクリプション(受信登録)と情報(イベントを含む情報)とを用いて処理するノードをランデブーノード(rendezvous node、出会いノード)と称する。 The “information notification node” is configured to send information (information including an event) to a notification destination (notification destination ID) specified by the subscription based on the subscription (reception registration) and information (information including an event). It is a node to notify (deliver). The pub / sub network according to the embodiment of the present invention includes an information notification node at least partially. Note that a node that uses a subscription (reception registration) and information (information including an event) like an information notification node is referred to as a rendezvous node.
本実施の形態に係る情報通知ノードは、後ほど説明するとおり、負荷の状態に応じて、情報(イベントを含む情報)の通知を他の情報通知ノードに委譲する。また、情報通知ノードは、他の情報通知ノードから依頼を受けて情報の通知を代行する。このような情報の通知の委譲及び代行のため、本実施の形態に係る情報通知ノードは、メッセージを送受信する。 As described later, the information notification node according to the present embodiment delegates notification of information (information including an event) to another information notification node according to the state of the load. Further, the information notification node receives a request from another information notification node and performs notification of information. The information notification node according to the present embodiment transmits and receives messages for delegation and substitution of such information notification.
(第1の実施の形態)
続いて、本発明における第1の実施の形態に係る情報通知ノード10について図面を参照して説明する。
(First embodiment)
Next, the
まず、本実施の形態に係る情報通知ノード10の構成について説明する。
First, the configuration of the
図1は、第1の実施の形態に係る情報通知ノード10の構成の一例を示すブロック図である。
FIG. 1 is a block diagram illustrating an example of the configuration of the
情報通知ノード10は、ネットワークを介し、図示しない情報配信システムを構成する他のノード、サブスクライバ(sub)、及び、パブリッシャ(pub)と情報(例えば、サブスクリプション、又は、イベント)を送受信する。
The
そのため、情報通知ノード10は、情報転送部110と、ルーティング部120と、ルーティングテーブル保持部130と、イベント制御部140と、サブスクリプションテーブル保持部150と、負荷分散制御部160と、負荷分散管理テーブル保持部170とを含む。
Therefore, the
情報転送部110は、ネットワークを介し、情報通知ノード10の各部と、ネットワークに接続した他の装置(他のノード、サブスクライバ、又は、パブリッシャ)との情報の送受信を中継する。
The information transfer unit 110 relays transmission / reception of information between each unit of the
ルーティング部120は、ルーティングテーブル保持部130が保持するルーティングテーブル131に基づき、情報の転送先を探索(ルックアップ、look-up)し、情報転送部110を介して情報を転送する。
The
ルーティングテーブル保持部130は、ルーティング部120が情報の転送先を探索するために用いるルーティングテーブル131を保持している。
The routing
なお、ルーティング部120及びルーティングテーブル保持部130は、一般的なネットワークを構成する装置が用いるルーティングプロトコル(routing protocol)に基づいてルーティングテーブル131を保持及び更新すればよく、ルーティングテーブル131に関する詳細な説明は省略する。また、ルーティングテーブル131において、ノード(装置)の通過の数をホップ(hop)数と称す。
Note that the
イベント制御部140は、受け取ったサブスクリプションに基づき、サブスクリプションテーブル保持部150が保持するサブスクリプションテーブル151を作成及び更新する。また、イベント制御部140は、サブスクリプションテーブル151に基づき、パブリッシャ又は他のノードから受け取ったイベントを、イベントの通知先(本実施の形態ではサブスクライバ)に通知する。イベント制御部140の動作の詳細については、後ほど説明する。なお、自ノードでサブスクリプションテーブル151に保持し、イベントの通知の処理の対象となるサブスクリプションを、「管理対象サブスクリプション」と称す。また、管理対象サブスクリプションの対象となるイベントを「管理対象イベント」と称す。さらに、管理対象イベントを通知する情報通知ノード10を「管理担当」の情報通知ノードと称す。つまり、管理担当の情報通知ノード10が、管理対象サブスクリプションをサブスクリプションテーブル151に保持して、管理対象イベントを通知することとなる。
The
サブスクリプションテーブル保持部150は、イベント制御部140が使用する管理対象サブスクリプションを含むサブスクリプションテーブル151を保持する。なお、本実施の形態に係るサブスクリプションテーブル151に保持される情報の組を、レコード(record)と称す。
The subscription
負荷分散制御部160は、負荷分散管理テーブル保持部170が保持する負荷分散管理テーブル171を作成及び更新する。さらに、負荷分散制御部160は、負荷分散管理テーブル171に基づき、情報通知ノード10の負荷分散処理を制御する。負荷分散制御部160の詳細な動作についても、後ほど説明する。
The load
負荷分散管理テーブル保持部170は、負荷分散制御部160が使用する負荷分散管理テーブル171を保持する。なお、負荷分散管理テーブル171に保持される組となった情報も、レコードと称す。
The load distribution management
次に、本実施の形態に係る情報通知ノード10を含む情報配信システム1の構成について説明する。
Next, the configuration of the information distribution system 1 including the
図2は、情報通知ノード10を含む情報配信システム1の一例を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of the information distribution system 1 including the
情報配信システム1は、情報通知ノード10を含むpub/subネットワーク40と、サブスクライバ20と、パブリッシャ30とを含む。図2では、説明の便宜のため、サブスクライバ20とパブリッシャ30を1つとして示しているが、本実施の形態に係る情報配信システム1が含む、サブスクライバ20及びパブリッシャ30は1つに限らず、それぞれ2つ以上でも良い。
The information distribution system 1 includes a pub /
なお、以下の説明において、各ノードの経路上での位置関係を明確にする場合、ランデブーノードとなる情報通知ノードを「対象ノード」と称す。そして、対象ノードにサブスクリプションを転送するノード、つまり、ルーティングテーブル131において前に登録されている情報通知ノードを「前ノード」と称す。さらに、前ノードにサブスクリプションを転送するノード、つまり、ルーティングテーブル131において前ノードの前に登録されている情報通知ノードを「前々ノード」と称す。なお、本実施の形態に係る、「前」とは、1つ前に限られず、2つ以上前でもよい。ただし、図2では、記載の便宜のため、「前」を1つ前として示す。そのため、図2において、情報通知ノード10が対象ノード、情報通知ノード11が前ノード、情報通知ノード12が前々ノードとなる。
In the following description, in order to clarify the positional relationship of each node on the route, an information notification node serving as a rendezvous node is referred to as a “target node”. A node that forwards the subscription to the target node, that is, an information notification node that has been previously registered in the routing table 131 is referred to as a “previous node”. Further, a node that transfers a subscription to the previous node, that is, an information notification node registered before the previous node in the routing table 131 is referred to as a “previous node”. Note that “previous” according to the present embodiment is not limited to the previous one, and may be two or more previous. However, in FIG. 2, “Previous” is shown as one previous for convenience of description. Therefore, in FIG. 2, the
情報通知ノード10は、ルーティングテーブル131に基づいて前ノードを探索する。ただし、情報通知ノード10は、「前ノード」を、サブスクリプションに含まれる経由ノードIDを用いて探索してもよい。
The
なお、本実施の形態に係る情報通知ノードは、同じ構成に限られないが、説明の便宜のため、以下の説明では、情報通知ノードは、同じ構成とする。そのため、各情報通知ノードの構成に付した番号は、図1の番号を参照する。また、情報通知ノードに共通する説明は、情報通知ノード10を用いて説明する。
Note that the information notification nodes according to the present embodiment are not limited to the same configuration, but for the convenience of description, in the following description, the information notification nodes have the same configuration. Therefore, the numbers given to the configuration of each information notification node refer to the numbers in FIG. The description common to the information notification node will be described using the
図2において、サブスクライバ20が、サブスクリプションをpub/subネットワーク40を登録(subscribe)する。情報通知ノード10乃至情報通知ノード12は、サブスクリプションから求めたキーを、ルーティングテーブル131で探索し、求めたキーを備える情報通知ノード(例えば、図2に示す情報通知ノード10)に転送する。サブスクリプションを管理する情報通知ノード(例えば、図2に示す情報通知ノード10)は、受け取ったサブスクリプションをサブスクリプションテーブル151に保持する。なお、既に説明しているが、サブスクリプションの経由ノードIDは、転送の際に順次追加される。
In FIG. 2, a
次に、パブリッシャ30が、イベントをpub/subネットワーク40に入力(publish)する。イベントも、ルーティングテーブル131に基づき、情報通知ノード10に転送される。
Next, the
イベントを受け取った情報通知ノード10は、サブスクリプションで指定されている通知先(本実施の形態ではサブスクライバ20)に、イベントを通知(notify)する。
The
さらに、情報通知ノード10は、必要に応じ、前ノードである情報通知ノード11にイベントの通知の代行の依頼のメッセージを送信する。
Furthermore, the
通知の代行の依頼のメッセージを受けた情報通知ノード11は、イベントを通知先(サブスクライバ)に通知する。さらに、必要に応じ、情報通知ノード11は、前々ノードである情報通知ノード12にイベントの通知の代行の依頼のメッセージを送信する。
The
次に情報通知ノード10の動作に詳細ついて図面を参照して説明する。
Next, details of the operation of the
まず、情報通知ノード10のサブスクリプションを受け取ったときの動作について説明する。
First, the operation when the subscription of the
図3は、情報通知ノード10がサブスクリプションを受けた場合の動作の一例を示すフロー図である。
FIG. 3 is a flowchart showing an example of an operation when the
サブスクライバ20又は他のノードからサブスクリプションを受け取った情報通知ノード10の情報転送部110は、サブスクリプションをルーティング部120に送る(ステップ1001)。
The information transfer unit 110 of the
サブスクリプションを受け取ったルーティング部120は、サブスクリプションの経由ノードIDに送信元の情報通知ノードの識別子(ID)を設定後、サブスクリプションを負荷分散制御部160に送る。サブスクリプションを受け取った負荷分散制御部160は、サブスクリプションに基づき、負荷分散管理テーブル保持部170が保持する負荷分散管理テーブル171を更新する(ステップ1002)。
The
なお、負荷分散制御部160にサブスクリプションを送るのはルーティング部120に限られず、情報転送部110が、負荷分散管理制御部160に送っても良い。
Note that sending a subscription to the load
サブスクリプションを負荷分散制御部160に送付後、ルーティング部120は、サブスクリプションが含むサブスクリプション条件に基づき、受け取ったサブスクリプションが管理対象サブスクリプションか否かを判定する(ステップ1003)。
After sending the subscription to the load
自ノードの管理対象サブスクリプションでない場合(ステップ1003でno)、ルーティング部120は、ルーティングテーブル131に基づき、情報転送部110を介して、次のノードにサブスクリプションを転送する(ステップ1004)。
When the subscription is not the management target subscription of the own node (No in Step 1003), the
自ノードの管理対象サブスクリプションの場合(ステップ1003でyes)、ルーティング部120は、サブスクリプションをイベント制御部140に送る。サブスクリプションを受け取ったイベント制御部140は、受け取ったサブスクリプションを、サブスクリプションテーブル保持部150が保持するサブスクリプションテーブル151に追加する(ステップ1005)。この追加として、イベント制御部140は、サブスクリプションテーブル151の一部の情報を更新してもよい。なお、情報通知ノード10は、自ノードの管理対象サブスクリプションに対し、ランデブーノードとなる。
In the case of a managed subscription of the own node (yes in step 1003), the
次のノードにサブスクリプションを転送する、又は、サブスクリプションをサブスクリプションテーブル151に登録し、情報通知ノード10は、サブスクリプションを受けた場合の動作を終了する。
The subscription is transferred to the next node or the subscription is registered in the subscription table 151, and the
次に、pub/subネットワーク40におけるサブスクリプションの転送について図面を参照して説明する。
Next, subscription transfer in the pub /
図4は、pub/subネットワーク40におけるサブスクリプションの転送の一例を示す図である。
FIG. 4 is a diagram showing an example of subscription transfer in the pub /
まず、図4の構成について説明する。 First, the configuration of FIG. 4 will be described.
図4において、大円は、ルーティングテーブル131で示す情報の転送経路である。なお、図4に示す経路における転送方向は、時計回りとする。そのため、サブスクリプションは、時計回りに転送されている。 In FIG. 4, a great circle is a transfer route of information indicated by the routing table 131. Note that the transfer direction in the route shown in FIG. 4 is clockwise. Therefore, the subscription is transferred clockwise.
情報通知ノードは、小円で示している。小円の中の数値が、分散ハッシュテーブル(DHT)のキーでもある各情報通知ノードのノードIDである。 The information notification node is indicated by a small circle. The numerical value in the small circle is the node ID of each information notification node that is also a key of the distributed hash table (DHT).
なお、本実施の形態に係る情報通知ノードは、図4のどのノードの位置でもよいが、本実施の形態に係る説明では、ID=1000の情報通知ノード10を用いて説明する。
Note that the information notification node according to the present embodiment may be at any node position in FIG. 4, but in the description according to the present embodiment, the
なお、本実施の形態に係る情報通知ノード10は、前ノードが1つとは限らない。そこで、図4は、一例として、情報通知ノード10の前ノードが2つの場合を示している。ID=0111の情報通知ノード11が、第1の前ノードであり、ID=0110の情報通知ノード13が、第2の前ノードである。また、ID=0101の情報通知ノード12は、情報通知ノード11の前ノードである。情報通知ノード11は情報通知ノード10の前ノードのため、情報通知ノード12は、情報通知ノード10に対する前々ノードである。
Note that the
さらに、図4において、6つのサブスクライバ(sub20a−sub20f)が、サブスクリプションを登録している。図4では、サブスクリプションの登録を、各サブスクライバ(sub)からの矢印で示している。説明の便宜のため、6つのサブスクリプションは、すべて、情報通知ノード10(ID=1000)の管理対象サブスクリプションとする。 Further, in FIG. 4, six subscribers (sub20a-sub20f) have registered subscriptions. In FIG. 4, subscription registration is indicated by arrows from each subscriber (sub). For convenience of explanation, all six subscriptions are managed subscriptions of the information notification node 10 (ID = 1000).
続いて、図4における情報通知ノードのサブスクリプションの転送の動作について説明する。 Next, the subscription transfer operation of the information notification node in FIG. 4 will be described.
サブスクライバ20aからサブスクリプションを受け取った情報通知ノード15(ID=0001)は、自ノードで保持するルーティングテーブル131に基づき、サブスクリプションを転送する。ただし、情報通知ノード15は、サブスクリプションの転送先である情報通知ノード10(ID=1000)に直接サブスクリプションを転送できない。そのため、情報通知ノード15は、まず、情報通知ノード12(ID=0101)にサブスクリプションを転送する。
The information notification node 15 (ID = 0001) that has received the subscription from the
情報通知ノード15及びサブスクライバ20cからサブスクリプションを受け取った情報通知ノード12は、情報通知ノード10にサブスクリプションを直接転送できないため、情報通知ノード11(ID=0111)に2つのサブスクリプションを転送する。
The
情報通知ノード12及びサブスクライバ20eからサブスクリプションを受け取った情報通知ノード11は、情報通知ノード10に3つのサブスクリプションを転送する。
The
同様に、サブスクライバ20bからサブスクリプションを受け取った情報通知ノード14(ID=0010)は、情報通知ノード10にサブスクリプションを直接転送できないため、情報通知ノード13(ID=0110)にサブスクリプションを転送する。
Similarly, the information notification node 14 (ID = 0010) that received the subscription from the
情報通知ノード14及びサブスクライバ20dからサブスクリプションを受け取った情報通知ノード13は、2つのサブスクリプションを情報通知ノード10に転送する。
The
サブスクライバ20f、情報通知ノード13、及び、情報通知ノード11からサブスクリプションを受け取った情報通知ノード10は、受け取ったサブスクリプションが自ノードの管理対象サブスクリプションのため、サブスクリプションを転送しない。
The
管理対象サブスクリプションを受け取った管理担当の情報通知ノード10は、図3を用いて説明した動作に基づき、負荷分散管理テーブル171及びサブスクリプションテーブル151を更新する。
The
このように、本実施の形態に係る情報通知ノード10を含むpub/subネットワーク40は、サブスクリプションの管理担当である情報通知ノード10にサブスクリプションを転送する。
In this way, the pub /
次に、図4を用いて説明したサブスクリプションを登録後の情報通知ノード10が含むテーブルについて説明する。なお、既に説明したとおり、ルーティングテーブル131についての説明は、省略する。
Next, a table included in the
まず、負荷分散管理テーブル171について図面を参照して説明する。 First, the load distribution management table 171 will be described with reference to the drawings.
図5は、図4を用いて説明したサブスクリプションの転送動作に基づいて、情報通知ノード10が作成又は更新した負荷分散管理テーブル171の一例を示す図である。
FIG. 5 is a diagram illustrating an example of the load distribution management table 171 created or updated by the
本実施の形態に係る負荷分散管理テーブル171は、サブスクリプション条件172と、前ノードID173と、通知先ID174と、負荷担当175と、前ノード転送176とを含む。なお、図5では、各行がレコードとなっている。
The load distribution management table 171 according to the present embodiment includes a
サブスクリプション条件172は、サブスクリプションが含むサブスクリプション条件を保持する。つまり、サブスクリプション条件172は、サブスクリプションに基づきイベントの通知を担当する管理担当の情報通知ノード及びイベントの条件に関する情報を含む。例えば、図5の1行目(1つ目)のレコードは、ID=1000の情報通知ノード(図4では情報通知ノード10)が管理担当の情報通知ノードであり、通知するイベントは「事故」であることを示している。
The
前ノードID173は、サブスクリプションを送ってきたノード、つまり、前ノードの情報を保持する。なお、前ノードを示す方式は、いろいろな方式を使用してよいが、本実施の形態では、一例として、ノードIDを用いる。例えば、図5の1行目のレコードは、ID=0111の情報通知ノード(図4では、情報通知ノード11)からサブスクリプションを受け取ったことを示している。ただし、情報通知ノード10がサブスクライバ20からサブスクリプションを受け取った場合、前ノードID173は、空白(図5の3行目のレコードの「−」)となる。また、既に説明したとおり、前ノードID173は、サブスクリプションの経由ノードIDに基づいて設定してもよい。
The
通知先ID174とは、サブスクリプションに基づき指定されたイベントの通知先(本実施の形態ではサブスクライバ20)を示す情報である。なお、図5に示すレコードは、前ノードID173でまとめているため、通知先ID174は、複数の通知先を含む場合もある。例えば、図5の1行目のレコードは、通知先がsub20a、sub20c、及び、sub20eであることを示している。ただし、本実施の形態に係る情報通知ノード10は、これに限られず、通知先ごとのレコードとしてもよい。
The
負荷担当175は、自ノードでイベントを通知するか否かを示している。負荷担当175は、自ノードで通知する場合を「T」、通知しない場合を「F」として示す。
The
前ノード転送176は、後ほど詳細に説明する負荷分散のために前ノードに処理を委譲(通知の代行を依頼)しているか否かを示している。前ノード転送176が「T」の場合、情報通知ノード10は、処理を委譲している。「F」の場合、情報通知ノード10は、処理を委譲していない。
The
図5に示す負荷担当175及び前ノード転送176は、初期状態として、すべてを解除した状態となっている。
The
なお、図5に示す負荷分散管理テーブル171は、図4を用いて説明した動作に基づいて、情報通知ノード10が受け取った6個のサブスクリプションを、前ノードID173に基づいて、3個のレコードにまとめて保持した例を示している。
Note that the load distribution management table 171 illustrated in FIG. 5 includes the six subscriptions received by the
図6は、図4を用いて説明したサブスクリプションの転送動作に基づいて、情報通知ノード11が作成又は更新した負荷分散管理テーブル171の一例を示す図である。
FIG. 6 is a diagram illustrating an example of the load distribution management table 171 created or updated by the
各項目は、図5と同様のため、詳細な説明は、省略する。 Since each item is the same as that in FIG. 5, detailed description thereof is omitted.
情報通知ノード11は、2つのサブスクリプションを受け取ったため、負荷分散管理テーブル171も2つのレコードを保持している。
Since the
なお、図6に示す負荷担当175及び前ノード転送176は、初期状態として、すべてを解除した状態となっている。
It should be noted that the
図7は、本実施の形態に係るサブスクリプションテーブル151の一例を示す図である。 FIG. 7 is a diagram showing an example of the subscription table 151 according to the present embodiment.
本実施の形態に係る情報通知ノード10のサブスクリプションテーブル151は、サブスクリプション条件152と、通知先ID153と、負荷委譲済154とを含む。なお、図7では、各行がレコードとなっている。
The subscription table 151 of the
サブスクリプション条件152は、サブスクリプションが含むサブスクリプション条件を保持する。つまり、サブスクリプション条件152は、サブスクリプションに基づき、イベントを通知する管理担当の情報通知ノードのノードIDとイベントとの条件を含む。なお、本実施の形態の情報通知ノード10は、管理対象サブスクリプションをサブスクリプションテーブル151に保持する。つまり、情報通知ノード10は、自ノードが通知するサブスクリプションをサブスクリプションテーブル151に保持する。そのため、サブスクリプション条件152のイベントを通知するノードIDは、自ノードのIDである。
The
通知先ID153は、イベントの通知先の装置を示す識別子(ID)である。既に説明したとおり、本実施の形態では、サブスクライバ20と通知先は同じとして説明するため、通知先ID153は、サブスクリプションを登録したサブスクライバIDとなる。なお、本実施の形態に係るサブスクリプションテーブル151は、同じサブスクリプション条件152を備えたレコードをまとめている。そのため、図7に示す通知先ID153は、複数の通知先(サブスクライブ)を保持している。ただし、本実施の形態に係る情報通知ノード10は、これに限られず、通知先ごとのレコードとしてもよい。
The
なお、図7の1行目のレコードが、図4を用いて説明したサブスクリプションに相当するレコードであり、通知先とし、sub20a乃至sub20fを保持している。 Note that the record in the first row in FIG. 7 is a record corresponding to the subscription described with reference to FIG. 4 and holds sub20a to sub20f as notification destinations.
負荷委譲済154は、サブスクリプションで指定された管理対象イベントの通知を、別のノードに依頼済か否かを示す情報である。図7において「T」は依頼済、「F」は未依頼つまり自ノードで通知することを示す。
The
(情報通知ノードでの負荷分散の設定)
次に情報通知ノード10における負荷分散の設定動作について図面を参照して説明する。
(Load distribution setting in the information notification node)
Next, the load distribution setting operation in the
まず、イベント制御部140における負荷分散の設定動作について図面を参照して説明する。
First, the load balancing setting operation in the
図8は、イベント制御部140の負荷分散の設定動作の一例を示すフロー図である。
FIG. 8 is a flowchart showing an example of load distribution setting operation of the
イベント制御部140は、所定のタイミングで(例えば、定期的、又は、サブスクリプションを受信後)、サブスクリプションテーブル151の各レコードに基づいて次の示す動作を開始する(ステップ2001)。
The
イベント制御部140は、各レコードのイベントの通知の負荷が自ノードに対して大きいか否かを判定する(ステップ2002)。イベント制御部140は、いろいろな条件に基づいて判定できる。例えば、イベント制御部140は、判定の条件として、サブスクリプションテーブル151のレコードに登録されている通知先の数、サブスクリプション又はサブスクリプションに対するイベントの発生頻度、自ノードのCPU(central process unit)の処理状態又は通信回線の負荷状態、通知先までの距離(ホップ数)、若しくは、自ノードのメモリの使用量、又は、これらの予想値を用いることができる。なお、本実施の形態では、一例として、サブスクリプションテーブル151に登録されている通知先の数を条件とした場合について説明する。そのため、イベント制御部140は、サブスクリプションテーブル151のレコードに登録されている通知先の数(本実施の形態では、サブスクライブの数)を所定の閾値と比較する。例えば、図7の1行目で示すレコードの通知先の数は、「6」である。そのため、閾値が「6」未満の値の場合、通知先の数は、閾値を超え、負荷が大きい(ステップ2002でyes)と判定される。反対に、閾値が「6」以上の値の場合、通知先の数は、閾値を超えず、負荷が大きくない(ステップ2002でno)と判定される。
The
負荷が大きくない場合(ステップ2002でno)、負荷分散は、必要ない。そのため、イベント制御部140は、自ノードでの処理、つまり、サブスクリプションテーブル151の負荷委譲済154を委譲しない(F)に設定する(ステップ2006)。
When the load is not large (No in Step 2002), load distribution is not necessary. Therefore, the
負荷が大きい場合(ステップ2002でyes)、負荷分散は、必要である。 If the load is heavy (yes in step 2002), load balancing is necessary.
そこで、イベント制御部140は、前ノードに、閾値を越えたレコードの負荷の分担を依頼するため、サブスクリプション条件152を含む負荷の分担の依頼を負荷分散制御部160に送付する(ステップ2003)。
Therefore, the
その後、イベント制御部140は、負荷分散制御部160の処理の終了を待つ(ステップ2004)。
Thereafter, the
負荷分散制御部160の処理が終了すると、イベント制御部140は、サブスクリプションテーブル151の負荷委譲済154を委譲済み(T)に設定する。
When the processing of the load
例えば、図7の1行目のレコードは、負荷を委譲済みであり、2行目のレコードは委譲していないことを示す。 For example, the record in the first line in FIG. 7 indicates that the load has been delegated and the record in the second line has not been delegated.
このような動作に基づき、イベント制御部140は、負荷分散を設定する。
Based on such an operation, the
次に、負荷分散制御部160の負荷分散の設定動作について図面を参照して説明する。
Next, the load distribution setting operation of the load
図9は、負荷分散制御部160の負荷分散の設定動作の一例を示すフロー図である。
FIG. 9 is a flowchart showing an example of the load distribution setting operation of the load
負荷分散制御部160は、イベント制御部140から負荷分散の設定の依頼を受け取り、処理を開始する(ステップ2101)。
The load
負荷分散制御部160は、イベント制御部140の依頼に含まれるサブスクリプション条件に一致する負荷分散管理テーブル171の各レコードについて以下の動作を繰り返す(ステップ2102)。
The load
まず、負荷分散制御部160は、所定の条件に基づき、各レコードの処理を前ノードに依頼(委譲)するか否かを判定する(ステップ2103)。この判定に用いる所定の条件とは、負荷分散制御部160が、委譲するイベントの範囲又は委譲しないイベントの範囲を決めるための条件である。例えば、負荷分散制御部160は、予め通知先数の閾値を保持しておき、閾値を越える数の通知を委譲するように判定してもよく、サブスクリプション条件が一致するレコードの通知のすべてを委譲しても良い。ただし、サブスクライバから直接受け取ったサブスクリプションは前ノードがない。そのため、サブスクライバから直接受け取ったサブスクリプションの場合、負荷分散制御部160は、自ノードで通知すると判定する。
First, the load
判定の結果、委譲しない場合(ステップ2103でno)、負荷分散制御部160は、負荷分散管理テーブル171の負荷担当175を自ノードに設定する(ステップ2106)。具体的には、負荷分散制御部160は、負荷分散管理テーブル171の負荷担当175を「T」、前ノード担当を「F」に設定する。
As a result of the determination, when delegation is not performed (No in Step 2103), the load
通知を委譲する場合(ステップ2103でyes)、負荷分散制御部160は、通知の委譲を依頼する代行依頼メッセージ201を作成して、前ノードID173が保持している前ノードに送付する(ステップ2104)。なお、代行依頼メッセージ201は、いろいろな形式を採用することができるが、本実施の形態の代行依頼メッセージ201は、一例として、委譲するレコードのサブスクリプション条件172と、通知先ID174とを含むとする。
When delegating a notification (yes in step 2103), the load
代行依頼メッセージ201を送付後、負荷分散制御部160は、負荷分散管理テーブル171の前ノード転送176に「T」、負荷担当175に「F」を設定する(ステップ2105)。ただし、レコードの一部を委譲する場合、負荷分散制御部160は、対象のレコードを委譲するレコードと委譲しないレコードとに分け、委譲しないレコードはステップ2106と同様に自ノード担当に設定し、委譲するレコードはステップ2105の同様に設定する。
After sending the proxy request message 201, the load
負荷分散制御部160は、依頼されたサブスクリプションの条件に一致する全てのレコードに対して、ここまで説明した動作を繰り返す。
The load
処理の対象となる全てのレコードの処理が終了すると、負荷分散制御部160は、処理の終了をイベント制御部140に通知する(ステップ2107)。
When the processing of all the records to be processed is completed, the load
図10は、図9を用いて説明した動作の終了後の負荷分散管理テーブル171の一例を示す図である。図10に示す負荷分散管理テーブル171は、図5に示す負荷分散管理テーブル171の1行目のレコードを閾値に基づいて一部を委譲し、2行目のレコードをすべて委譲した場合についての一例である。一部を委譲するため、図5の1行目のレコードは、図10において、自ノードで通知する1行目のレコードと委譲する2行目のレコードとに分かれている。そして、図10に示す負荷分散管理テーブル171において1行目のレコードの通知先(sub20a)及び自ノードがサブスクリプションを受け取った4行目の通知先(sub20f)は、自ノードで通知するため、負荷担当175が「T」、前ノード転送176が「F」となっている。また、2行目と3行目のレコードの通知先(sub2b−sub2e)は代行依頼メッセージ201を送付し委譲済みのため、負荷担当175は、「F」、前ノード転送176は、「T」となっている。
FIG. 10 is a diagram illustrating an example of the load distribution management table 171 after the operation described with reference to FIG. The load distribution management table 171 shown in FIG. 10 is an example of a case where a part of the records in the first line of the load distribution management table 171 shown in FIG. 5 is delegated based on a threshold value and all the records in the second line are delegated. It is. In order to delegate a part, the record on the first line in FIG. 5 is divided into a record on the first line notified by the own node and a record on the second line to be delegated in FIG. In the load distribution management table 171 shown in FIG. 10, the notification destination (sub20a) of the record on the first row and the notification destination (sub20f) on the fourth row where the own node has received the subscription are notified by the own node. The
(前ノードでの負荷委譲の設定)
次に、代行依頼メッセージ201を受けた前ノード(例えば、情報通知ノード11)の動作について図面を参照して説明する。なお、この動作は、本実施の形態に係る情報通知ノードで同様に動作するが、ここでは、情報通知ノード11を用いて説明する。
(Load delegation setting on the previous node)
Next, the operation of the previous node (for example, the information notification node 11) that has received the proxy request message 201 will be described with reference to the drawings. This operation is performed in the same manner in the information notification node according to the present embodiment, but will be described using the
図11は、代行依頼メッセージ201を受信した情報通知ノード11の動作の一例を示すフロー図である。
FIG. 11 is a flowchart showing an example of the operation of the
代行依頼メッセージ201を受信した情報通知ノード11の情報転送部110は、代行依頼メッセージ201を負荷分散制御部160に送る(ステップ3001)。
The information transfer unit 110 of the
代行依頼メッセージ201を受け取った負荷分散制御部160は、代行依頼メッセージ201に含まれるサブスクリプション条件と負荷分散管理テーブル171のサブスクリプション条件とを比較し、一致したレコードに関して次に示す動作を繰り返す(ステップ3002)。
Upon receiving the proxy request message 201, the load
負荷分散制御部160は、自ノードで代行依頼メッセージ201の委譲を受けて通知を担当するか、さらに前のノードに委譲するかを判定する(ステップ3003)。この判定として、負荷分散制御部160は、例えば、図9を用いて説明したステップ2103と同様に判定すればよい。
The load
負荷を前のノードに委譲する場合(ステップ3003でyes)、負荷分散制御部160は、さらに前のノード(前々ノード)に代行依頼メッセージ201を送信する(ステップ3004)。
When delegating the load to the previous node (yes in step 3003), the load
さらに、負荷分散制御部160は、負荷分散管理テーブル171の対応するレコードの前ノード転送176を「T」、負荷担当175を「F」に設定する(ステップ3005)。
Further, the load
一方、自ノードで通知を担当する場合(ステップ3003でno)、負荷分散制御部160は、対応するレコードの負荷担当175を「T」、前ノード転送176を「F」に設定する(ステップ3006)。
On the other hand, when the node is in charge of notification (no in step 3003), the load
このような動作に基づき、情報通知ノード11は、受け取った代行依頼メッセージ201に対して、負荷分散管理テーブル171に基づき自ノードでの対応又は委譲を設定する。
Based on such an operation, the
図12は、代行依頼メッセージ201を受けた後の情報通知ノード11の負荷分散管理テーブル171の一例を示す図である。図12の1行目のレコードは、自ノードで担当する場合のレコードである。そのため、負荷担当175は「T」であり、前ノード転送176は「F」となっている。また、2行目のレコードは、委譲した場合の一例である。そのため、負荷担当175は「F」、前ノード転送176は「T」である。つまり、図12に示す負荷分散管理テーブル171は、自ノードがsub20eにイベントを通知し、sub20cの通知を委譲していることを示している。
FIG. 12 is a diagram illustrating an example of the load distribution management table 171 of the
(対象ノードでのイベントの通知動作)
次に、対象ノード(ランデブーノード)である情報通知ノード10が、イベントを受け取った場合の動作、つまり管理対象イベントを受け取った管理担当である情報通知ノード10の動作について図面を参照して説明する。
(Event notification operation at the target node)
Next, the operation when the
図13は、管理対象イベントを受け取った情報通知ノード10の動作の一例を示すフロー図である。
FIG. 13 is a flowchart showing an example of the operation of the
パブリッシャ30からpub/subネットワーク40にイベントがパブリッシュ(発信、入力)されると、pub/subネットワーク40は、管理担当の情報通知ノード10にイベントを転送する。
When an event is published (transmitted or input) from the
イベントを受信した情報通知ノード10の情報転送部110は、イベントをイベント制御部140に送る(ステップ4001)。
The information transfer unit 110 of the
イベントを受け取ったイベント制御部140は、サブスクリプションテーブル151に保持されている各レコードについて次に説明する処理を繰り返す(ステップ4002)。
Upon receiving the event, the
イベント制御部140は、受け取ったイベントが各レコードのサブスクリプション条件152と一致するか否か、つまり対象イベントであるか否かを確認する(ステップ4003)。
The
対象イベントで無い場合(ステップ4003でno)、イベント制御部140は、特に動作せずに次のレコードの処理に移行する。
If the event is not a target event (no in step 4003), the
対象イベントの場合(ステップ4003でyes)、イベント制御部140は、対象イベントに対応するサブスクリプションテーブル151のレコードの負荷委譲済154を確認する(ステップ4004)。
In the case of a target event (yes in step 4003), the
負荷委譲済154が負荷委譲していない(F)の場合(ステップ4004でno)、情報通知ノード10は、通知先ID153にイベントを通知(notify)する(ステップ4005)。
When the
負荷を委譲済み(T)の場合(ステップ4004でyes)、イベント制御部140は、負荷分散制御部160に通知の代行(負荷分散)を依頼する(ステップ4006)。
If the load has been transferred (T) (yes in step 4004), the
そして、イベント制御部140は、負荷分散制御部160からの結果を待つ。負荷分散制御部160からの結果を受け取ったイベント制御部140は、結果の内容を確認する(ステップ4007)。
Then, the
判定の結果に負荷委譲でない、つまり自ノードでの通知が含まれる場合(ステップ4007でno)、イベント制御部140は、通知するとの結果となったイベントを通知する(ステップ4005)。
If the result of the determination is not load delegation, that is, notification in the own node is included (No in step 4007), the
判定の結果がすべて負荷委譲の場合(ステップ4007でyes)、イベント制御部140は、処理を終了し、次のレコードの処理に移行する。
If all the determination results are load delegation (yes in step 4007), the
図14は、図13で示すステップ4006においてイベントの負荷分散を依頼された負荷分散制御部160の動作の一例を示すフロー図である。
FIG. 14 is a flowchart showing an example of the operation of the load
負荷分散の依頼を受けた(ステップ4101)負荷分散制御部160は、負荷分散管理テーブル171のサブスクリプション条件172が負荷分散の依頼のサブスクリプション条件と一致するレコードついて、次に示す動作を繰り返す(ステップ4102)。
Upon receiving the load distribution request (step 4101), the load
負荷分散制御部160は、負荷を委譲済みか否か、つまり、負荷分散管理テーブル171の各レコードの負荷担当175を確認する(ステップ4103)。
The load
自ノードで負荷を担当する場合(ステップ4103でyes)、負荷分散制御部160は、イベント制御部140に、そのレコードに対応するイベントについて自ノードで通知するとの結果を返す(ステップ4104)。この結果を受けたイベント制御部140は、既に説明したとおり、イベントを通知する。負荷分散制御部160は、イベント制御部140に通知後、次のレコードの処理に移行する。
When the load is handled by the own node (yes in step 4103), the load
自ノードで負荷を担当しない場合(ステップ4103でno)、負荷分散制御部160は、レコードの前ノード転送176を確認し、前ノードに委譲済みか否か、つまり、前ノードに負荷の代行を依頼しているか否かを確認する(ステップ4105)。
If the node does not handle the load (no in step 4103), the load
負荷を委譲済みの場合(ステップ4105でyes)、負荷分散制御部160は、情報転送部110を介して、前ノードID173に登録されている前ノードに代行して通知する依頼(以下、通知(notify)依頼メッセージ202と称す)を送信する(ステップ4106)。通知依頼メッセージ202は、いろいろな形式及び含む情報を採用することができる。本実施の形態に係る通知依頼メッセージ202は、一例として、通知の代行を依頼するイベントに関する情報(又は、サブスクリプション条件)を含む。
When the load has been delegated (yes in step 4105), the load
負荷を委譲済みでない場合(ステップ4105でno)は、本来発生しない状態である。そのため、負荷分散制御部160は、特に動作しなくても良い。
If the load has not been delegated (No in step 4105), the load is not generated. Therefore, the load
通知依頼メッセージ202を送信後、又は、負荷を委譲済みで無い場合、負荷分散制御部160は、次のレコードの動作に移行する。
After transmitting the notification request message 202 or when the load has not been transferred, the load
一致するすべてのレコードについて動作が終了すると、負荷分散制御部160は、イベント制御部140に負荷分散の終了を通知し(ステップ4107)、処理を終了する。
When the operation is completed for all the matching records, the load
なお、負荷分散制御部160は、自ノードでのイベントの通知を、まとめて最後にイベント制御部140に連絡しても良い。ただし、本実施の形態の説明のように、負荷分散制御部160がレコードごとに連絡すると、イベント制御部140は、まとめて最後に連絡を受ける場合に比べ、イベントの通知を早く開始することができる。
Note that the load
(前ノードでのイベント通知動作)
次に、通知依頼メッセージ202を受け取った前ノード(この説明では、情報通知ノード11とする)の動作について説明する。
(Event notification operation at the previous node)
Next, the operation of the previous node that has received the notification request message 202 (in this description, the information notification node 11) will be described.
図15は、通知依頼メッセージ202を受信した前ノード(情報通知ノード11)の動作の一例を示すフロー図である。 FIG. 15 is a flowchart showing an example of the operation of the previous node (information notification node 11) that has received the notification request message 202.
前ノードである情報通知ノード11の情報転送部110は、イベントの管理担当である情報通知ノード10から通知依頼メッセージ202を受ける(ステップ5001)。
The information transfer unit 110 of the
通知依頼メッセージ202を受けた情報転送部110は、通知依頼メッセージ202を負荷分散制御部160に送付する。
The information transfer unit 110 that has received the notification request message 202 sends the notification request message 202 to the load
通知依頼メッセージ202を受け取った負荷分散制御部160は、通知依頼メッセージ202に含まれるサブスクリプション条件と一致するサブスクリプション条件172含むレコードを、負荷分散管理テーブル171から検索する。負荷分散制御部160は、一致したレコードに対して次に示す動作を繰り返す(ステップ5002)。
The load
負荷分散制御部160は、各レコードの負荷担当175に基づき、自ノードが負荷の担当か否かを判定する(ステップ5003)。
The load
負荷の担当の場合(ステップ5003でyes)、負荷分散制御部160は、イベント制御部140にイベントの通知を依頼する。依頼を受けたイベント制御部140は、通知依頼メッセージ202で依頼されたイベントを通知する(ステップ5004)。
When the load is in charge (yes in step 5003), the load
負荷の担当でない場合(ステップ5003でno)、負荷分散制御部160は、負荷分散管理テーブル171の前ノード転送176を参照し、負荷を委譲、つまり、通知依頼メッセージ202を送信するか否かを判定する(ステップ5005)。
When not in charge of load (no in step 5003), the load
負荷を委譲する場合(ステップ5005でyes)、負荷分散制御部160は、負荷分散管理テーブル171に基づき、さらに前のノード(前々ノード)に通知依頼メッセージ202を送信する。
When delegating the load (yes in step 5005), the load
負荷を委譲しない場合(ステップ5006でno)、負荷分散制御部160は、特に動作せずに終了する。
When the load is not delegated (No in Step 5006), the load
(ネットワークにおけるイベント通知の一例)
イベントの通知の代行について図面を参照してさらに説明する。
(An example of network event notification)
The event notification proxy will be further described with reference to the drawings.
図16は、pub/subネットワーク40におけるイベントの通知の代行の一例を示す図である。
FIG. 16 is a diagram illustrating an example of an event notification proxy in the pub /
図16に示す小円は、図4と同様に情報通知ノードを示している。また、情報通知ノード10(ID=1000)は、図7に示すサブスクリプションテーブル151及び図10に示す負荷分散管理テーブル171を備える。さらに、情報通知ノード11(ID=0111)は、図12に示す負荷分散管理テーブル171を備えるとする。また、情報通知ノード12及び情報通知ノード13は、自ノードでイベントを通知するとする。
The small circles shown in FIG. 16 indicate information notification nodes as in FIG. The information notification node 10 (ID = 1000) includes a subscription table 151 shown in FIG. 7 and a load distribution management table 171 shown in FIG. Furthermore, it is assumed that the information notification node 11 (ID = 0111) includes a load distribution management table 171 shown in FIG. Further, it is assumed that the
図16に示すように、パブリッシャ30(pub30)が、図7の1行目のレコードのサブスクリプション条件152に一致するイベントが発行したとする。
As shown in FIG. 16, it is assumed that the publisher 30 (pub30) issues an event that matches the
このイベントは、情報通知ノード16が受け、イベントの管理担当である情報通知ノード10に転送する。
This event is received by the
そこで、まず、情報通知ノード10の動作について説明する。
First, the operation of the
イベントを受け取った情報通知ノード10のイベント制御部140は、イベントが図7に示すサブスクリプションテーブル151の1行目のレコードのサブスクリプション条件152と一致すると判定する(図13のステップ4003)。そして、イベント制御部140は、1行目のレコードの負荷委譲済154を確認し(図13のステップ4004)、委譲済みのため、負荷分散制御部160に負荷の分散を依頼する(図13のステップ4006)。
The
依頼を受けた負荷分散制御部160は、図10に示す負荷分散管理テーブル171に基づき、1行目のレコード(通知先がsub20a)と4行目のレコード(通知先がsub20f)については、イベント制御部140にイベントの通知を連絡する(図14のステップ4104)。
Upon receiving the request, the load
この結果に基づき、イベント制御部140は、sub20aとsub20fにイベントを通知する(図13のステップ4005)。
Based on this result, the
また、負荷分散制御部160は、負荷分散管理テーブル171の2行目のレコード(通知先がsub20c、20e)について、前ノードID173に保持されているノード0111(第1の前ノードである情報通知ノード11)に通知依頼メッセージ202を送付する(図14のステップ4106)。
In addition, the load
同様に、負荷分散制御部160は、負荷分散管理テーブル171の3行目のレコード(通知先がsub20b、20d)について、ノード0110(第2の前ノードである情報通知ノード13)に通知依頼メッセージ202を送付する(図14のステップ4106)。
Similarly, the load
このように情報通知ノード10は、自ノードでのイベントを通知し、通知の代行を依頼する。
In this way, the
次に、情報通知ノード11の動作について説明する。
Next, the operation of the
通知依頼メッセージ202を受け取った情報通知ノード11の負荷分散制御部160は、図12に示す負荷分散管理テーブル171に基づき、1行目のレコード(通知先がsub20e)については、イベント制御部140にイベントの通知を連絡する。また、情報通知ノード11の負荷分散制御部160は、2行目のレコード(通知先がsub20c)について、前ノードID173に保持されているノード0101(前々ノードである情報通知ノード12)に通知依頼メッセージ202を送る。
Upon receiving the notification request message 202, the load
情報通知ノード12及び情報通知ノード13は、通知依頼メッセージ202で委譲された通知を自ノードで通知する。つまり、情報通知ノード12は、情報通知ノード11から依頼されたsub20cにイベントを通知する。情報通知ノード13は、情報通知ノード10から依頼されたsub20b及びsab20dにイベントを通知する。
The
各情報通知ノードと通知先のサブスクライバ20(sub20a−sub20f)との対応をまとめると次のようになる。 The correspondence between each information notification node and the notification destination subscriber 20 (sub20a-sub20f) is summarized as follows.
情報通知ノード10:sub20a、sub20f
情報通知ノード11:sub20e
情報通知ノード12:sub20c
情報通知ノード13:sub20b、sub20d
このように、本実施の形態に係る情報通知ノード10は、負荷に基づき設定したサブスクリプションテーブル151及び負荷分散管理テーブル171を用いて、前ノードに情報(イベント)の通知、つまり負荷の代行を依頼する。また、依頼を受けた情報通知ノード11も、自ノードの負荷に基づき、自ノードがイベントを通知するか、通知の代行を依頼するかを判定し、負荷の代行を依頼できる。
Information notification node 10: sub20a, sub20f
Information notification node 11: sub20e
Information notification node 12: sub20c
Information notification node 13: sub20b, sub20d
As described above, the
(サブスクリプションの解除)
次に負荷分散を設定後、さらにサブスクリプションを受けた場合、又は、サブスクリプションの解除(以下、解除通知と称す)を受けた場合の情報通知ノード10に動作について図面を参照して説明する。
(Cancellation of subscription)
Next, the operation of the
図17は、負荷分散を設定後にサブスクリプション又は解除通知を受け取ったイベント制御部140の動作の一例を示すフロー図である。
FIG. 17 is a flowchart illustrating an example of the operation of the
サブスクリプションを受け取ったイベント制御部140は、既にサブスクリプション条件152が登録されている場合に、以下で説明するように動作する。サブスクリプション条件152が登録されていない場合は、イベント制御部140は、既に図8を用いて説明したのと同様に動作すればよい。
The
イベント制御部140は、登録済みのレコードについて以下に説明する動作を繰り返す(ステップ6001)。
The
イベント制御部140は、受け取ったサブスクリプション又は解除通知に基づきサブスクリプションテーブル151に保存しているレコードを更新する。更新後、イベント制御部140は、自ノードの負荷状況を判定する(ステップ6002)。
The
負荷が重くない場合(ステップ6002でno)、イベント制御部140は、負荷の委譲済みか否かを判定する(ステップ6003)。
If the load is not heavy (No in Step 6002), the
負荷を委譲済みでない場合(ステップ6003でno)、イベント制御部140は、特に動作しないで終了する。
If the load has not been transferred (No in step 6003), the
負荷を委譲済みの場合(ステップ6003でyes)、イベント制御部140は、負荷分散制御部160に、負荷分散の解除を依頼する(ステップ6004)。
If the load has been transferred (yes in step 6003), the
その後、イベント制御部140は、負荷分散制御部160の処理の終了を待つ(ステップ6005)。
Thereafter, the
負荷分散制御部160の処理が終了するとイベント制御部140は、サブスクリプションテーブル151のデータを自ノードの負荷に変更(ステップ6006)し、処理を終了する。
When the processing of the load
負荷が大きい場合(ステップ5002でyes)、イベント制御部140は、負荷分散制御部160に、負荷分散の再設定を依頼する(ステップ6007)。負荷分散制御部160の再設定動作は、図9を用いて説明した動作と同様に動作すればよく、詳細な説明は、省略する。
When the load is large (yes in step 5002), the
再設定の依頼後、イベント制御部140は、負荷分散制御部160の処理の終了を待つ(ステップ6008)。
After requesting resetting, the
負荷分散制御部160の処理の終了後、イベント制御部140は、サブスクリプションテーブル151を委譲済みに設定する(ステップ6009)。
After the processing of the load
次に、負荷分散の解除の依頼を受けた、負荷分散制御部160の動作について図面を参照して説明する。
Next, the operation of the load
図18は、負荷分散制御部160の動作の一例を示すフロー図である。
FIG. 18 is a flowchart illustrating an example of the operation of the load
負荷分散の解除の依頼を受けた(ステップ6101)負荷分散制御部160は、依頼の対応する負荷分散管理テーブル171のレコードに関して、次に示す動作を繰り返す(ステップ6102)。
In response to the request for releasing load distribution (step 6101), the load
負荷分散制御部160は、負荷分散管理テーブル171の負荷担当175に基づき、負荷の委譲済みか否かを判定する(ステップ6103)。
The load
負荷を委譲済みの場合(ステップ6103でyes)、負荷分散制御部160は、代行の解除を依頼する代行解除メッセージ203を作成して、委譲先のノード(例えば、情報通知ノード11)に送信する(ステップ6104)。通知後、負荷分散制御部160は、負荷分散管理テーブル171の情報を更新する(ステップ6105)。具体的に説明すると、負荷分散制御部160は、負荷担当を解除、つまり、前ノード転送176を「F」、負荷担当175を「F」と設定する。ここで、負荷分散制御部160は、まとめられるレコードをまとめるようにしてもよい。
When the load has been delegated (yes in step 6103), the load
負荷を委譲済みで無い場合(ステップ6103でno)、負荷分散制御部160は、特に動作の必要は無い。ただし、安全のため、負荷分散制御部160は、ステップ6105と同様に負荷担当の解除を設定してもよい。
When the load has not been transferred (No in step 6103), the load
負荷分散管理テーブル171の更新後、負荷分散制御部160は、解除の終了をイベント制御部140に通知し(ステップ6106)、処理を終了する。
After updating the load distribution management table 171, the load
続いて、代行解除メッセージ203を受けた委譲先(例えば、情報通知ノード11)の動作について図面を参照して説明する。 Next, the operation of the delegation destination (for example, the information notification node 11) that has received the proxy release message 203 will be described with reference to the drawings.
図19は、代行解除メッセージ203を受けた情報通知ノード11の負荷分散制御部160の動作の一例を示すフロー図である。
FIG. 19 is a flowchart illustrating an example of the operation of the load
代行解除メッセージ203を受けた(ステップ7001)情報通知ノード11の負荷分散制御部160は、依頼に対応する負荷分散管理テーブル171のレコードに関して、次に示す動作を繰り返す(ステップ7002)。
Upon receiving the proxy release message 203 (step 7001), the load
負荷分散制御部160は、負荷分散管理テーブル171の負荷担当175に基づき、負荷の委譲済みか否かを判定する(ステップ7003)。
The load
負荷を委譲済みの場合(ステップ7003でyes)、負荷分散制御部160は、委譲先のノード(例えば、情報通知ノード12)に代行解除メッセージ203を送信する(ステップ7004)。通知後、情報通知ノード11は、負荷担当を解除するように各テーブルの情報を更新する(ステップ7005)。
When the load has been delegated (yes in step 7003), the load
負荷を委譲済みで無い場合(ステップ7003でno)、負荷分散制御部160は、特に何もせず終了する。ただし、安全のため、負荷分散制御部160は、ステップ7005と同様に負荷担当の解除を設定してもよい。
If the load has not been transferred (No in Step 7003), the load
ここまで説明した動作に基づき、情報通知ノードは、負荷分担を解除する。 Based on the operations described so far, the information notification node cancels the load sharing.
なお、ここまでの説明において、代行依頼メッセージ201を受けた前ノード(例えば、情報通知ノード11)が負荷を担当できない場合、前ノードは、さらに前々ノードに代行依頼メッセージ201を送って負荷の代行を依頼していた。しかし、本実施の形態に係る情報通知ノードは、これに限られるわけではない。 In the above description, when the previous node (for example, the information notification node 11) that has received the proxy request message 201 cannot take charge of the load, the previous node further sends the proxy request message 201 to the node two days before the load request. I was asking for an agent. However, the information notification node according to the present embodiment is not limited to this.
例えば、負荷を担当できない前ノードは、自ノードで代行依頼メッセージ201を送信するのではなく、依頼元のノードに委譲拒否のメッセージを送り返しても良い。 For example, the previous node that cannot take charge of the load may send a delegation rejection message back to the requesting node instead of sending the proxy request message 201 by itself.
この委譲拒否のメッセージを受け取った情報通知ノードは、新たに別の情報通知ノードに代行依頼メッセージ201を送っても良い。 The information notification node that has received this message of rejection of delegation may newly send a proxy request message 201 to another information notification node.
さらに、本実施の形態に係る情報通知ノード10の構成は、今まで説明した構成に限られるわけではない。本実施の形態に係る情報通知ノード10は、いくつかの構成を1つの構成、例えば、イベント制御部140と負荷分散制御部160を合わせた構成を含んでもよい。
Furthermore, the configuration of the
また、本実施の形態に係る情報通知ノード10の各構成は、さらに複数の構成に分けても良く、構成を別の装置に備え、ネットワークを介して接続したシステムとしてもよい。例えば、各テーブル保持部は、ネットワークを介して接続した外部の記憶装置に含まれてもよい。さらに、本実施の形態に係る情報通知ノード10は、別装置の一部を構成してもよい。
In addition, each configuration of the
(別の構成)
図20は、本実施の形態に係る情報通知ノードの別の構成の一例を示すブロック図である。
(Another configuration)
FIG. 20 is a block diagram showing an example of another configuration of the information notification node according to the present embodiment.
図20において図1と同じ構成は同じ番号を付して、詳細な説明は省略する。 20, the same components as those in FIG. 1 are denoted by the same reference numerals, and detailed description thereof is omitted.
情報通知ノード18は、ブレードサーバ(blade server)のように、所定の装置に組み込まれ、内部バスを用いて他の装置と接続している。情報通知ノード18の情報転送部110は、イベント制御部140及び負荷分散制御部160に含まれるため、図20において省略した。また、各テーブル保持部は、それぞれの保持部の回路が備える半導体記憶部にテーブルを保持するため、図20において各テーブルの表示を省略した。
The
このように構成された情報通知ノード18のイベント制御部140及び負荷分散制御部160は、バスを介して他の装置(サブスクライバ20など)と情報を送受信し、サブスクリプション及びイベントに関して情報通知ノード10と同様に動作できる。そのため、情報通知ノード18は、情報通知ノード10と同様にイベントの通知を委譲できる。
The
なお、情報通知ノード18は、本実施の形態に最小構成である。
The
このように本実施の形態に係る情報通知ノードは、情報(イベントを含む情報)を通知する装置の負荷の軽減を得ることができる。 As described above, the information notification node according to the present embodiment can reduce the load on the device that notifies information (information including an event).
その理由は、本実施の形態に係る情報通知ノードは、保持しているサブスクリプション(受信登録)に基づいて自ノードの負荷を判定し、負荷が大きい場合、他の情報通知ノード(前ノード)に情報の通知の代行を依頼し、自ノードの情報の通知を削減できるためである。また、代行を依頼された情報通知ノードは、依頼された情報の通知を自ノードの負荷に基づき、さらに代行を依頼することができるため、代行を依頼された情報通知ノードも、自ノードに適切な負荷を代行できるためである。 The reason is that the information notification node according to the present embodiment determines the load of the own node based on the held subscription (reception registration), and if the load is large, the other information notification node (previous node) This is because the notification of the information of the own node can be reduced by requesting the agent to perform the information notification. In addition, since the information notifying node requested to act on behalf of the node can further request delegation based on the load of the own node, the information notifying node requested to act is also appropriate for the own node. This is because a large load can be substituted.
(第2の実施の形態)
第1の実施の形態に係る情報通知ノードは、各構成をコンピュータで実行するプログラムとして実現しても良い。
(Second Embodiment)
The information notification node according to the first embodiment may be realized as a program that executes each component on a computer.
さらに、第1の実施の形態に係る情報通知ノードの各構成は、コンピュータで実行するプログラムを記憶する記録媒体を含んでも良い。 Furthermore, each configuration of the information notification node according to the first embodiment may include a recording medium that stores a program executed by the computer.
図21は、第2の実施の形態に係る情報通知ノード19の構成の一例を示す図である。 FIG. 21 is a diagram illustrating an example of the configuration of the information notification node 19 according to the second embodiment.
情報通知ノード19は、情報処理部520と、情報記憶部530と、通信部510とを含んでいる。
The information notification node 19 includes an
情報処理部520は、CPU(Central Process Unit)を含み、情報記憶部530が記憶しているプログラム540を実行する。そして、情報処理部520は、プログラム540に基づき、通信部510を介してサブスクライバ20などと通信し、第1の実施の形態に係る情報通知ノード10と同様に動作する。
The
情報記憶部530は、図示しないハードディスク装置又はメモリ記憶装置など記憶装置を含み、情報処理部520が実行するプログラム540を記憶している。さらに、情報記憶部530は、プログラム540を保持する記憶媒体550を含んでも良い。なお、情報記憶部530は、情報処理部520が動作する場合の情報の一時保存記憶(ワークエリア)として動作しても良い。
The
通信部510は、ネットワークと接続するための回路、例えばNIC(Network Interface Card)を含み、情報処理部520とサブスクライバ20及びパブリッシャ30などとの情報を中継する。
The
このように第2の実施の形態に係る情報通知ノード19は、第1の実施の形態に係る情報通知ノード10と同様の効果を得ることができる。
Thus, the information notification node 19 according to the second embodiment can obtain the same effect as the
その理由は、第2の実施の形態に係る情報通知ノード19の情報処理部520が、プログラム540に基づいて、第1の実施の形態の情報通知ノード10と同様に動作することができるためである。
This is because the
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(付記)
(付記1)
イベントを含む情報の受信登録(サブスクリプション)を受け取り保持するサブスクリプションテーブル保持部と、
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定するイベント制御部と、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する負荷分散管理テーブル保持部と、
前記イベント制御部が委譲すると判定した場合に、前記負荷分散管理テーブル保持部が保持する情報に基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記イベント制御部に前記情報の通知を依頼する負荷分散制御部とを含む情報通知ノード。
(付記2)
前記負荷分散制御部が、
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、第3のノードに前記情報の通知の代行の依頼を送信することを特徴とする付記1に記載の情報通知ノード。
(付記3)
前記負荷分散制御部が、
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードからの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、前記第2のノードに代行の依頼の拒否を送付することを特徴とする付記1に記載の情報通知ノード。
(付記4)
前記負荷分散制御部が、
前記第1のノードに送付した前記情報の通知の代行の依頼に対して代行の依頼の拒否を受けた場合、第1のノードとは異なるノードに情報の通知の代行の依頼を送信することを特徴とする付記1乃至付記3のいずれかに記載の情報通知ノード。
(付記5)
前記負荷分散制御部が、
前記負荷分散管理テーブル保持部が保持する前記送信元に含まれるノードから、前記第1のノードを選択することを特徴とする付記1乃至付記4のいずれかに記載の情報通知ノード。
(付記6)
前記イベント制御部、又は、前記負荷分散制御部の前記自ノードで通知するか否かの判定する条件が、
前記サブスクリプションテーブル保持部が保持する前記受信登録の通知先の数、
前記配信依頼及び前記配信依頼に対するイベントの発生頻度、
自ノードの処理負荷、
通知先までの距離(ホップ数)、
自ノードのリソースの使用量、
又は
上記各条件の予想値
のいずれかを含むことを特徴とする付記1乃至付記5のいずれかに記載の情報通知ノード。
(付記7)
情報の受信登録を受け取り保持し、
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定し、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持し、
委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する情報通知方法。
(付記8)
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、第3のノードに前記情報の通知の代行の依頼を送信することを特徴とする付記7に記載の情報通知方法。
(付記9)
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードからの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、前記第2のノードに代行の依頼の拒否を送付することを特徴とする付記7に記載の情報通知方法。
(付記10)
前記第1のノードに送付した前記情報の通知の代行の依頼に対して代行の依頼の拒否を受けた場合、第1のノードとは異なるノードに情報の通知の代行の依頼を送信することを特徴とする付記7乃至付記9のいずれかに記載の情報通知方法。
(付記11)
保持する前記送信元に含まれるノードから、前記第1のノードを選択することを特徴とする付記7乃至付記10のいずれかに記載の情報通知方法。
(付記12)
前記自ノードで通知するか否かの判定する条件が、
前記サブスクリプションテーブル保持部が保持する前記受信登録の通知先の数、
前記配信依頼及び前記配信依頼に対するイベントの発生頻度、
自ノードの処理負荷、
通知先までの距離(ホップ数)、
自ノードのリソースの使用量、
又は
上記各条件の予想値
のいずれかを含むことを特徴とする付記7乃至付記11のいずれかに記載の情報通知方法。
(付記13)
情報の受信登録を受け取り保持する処理と、
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定する処理と、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する処理と、
委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する処理とをコンピュータに実行させるプログラム。
(付記14)
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、第3のノードに前記情報の通知の代行の依頼を送信すること
を特徴とする付記13に記載のプログラム。
(付記15)
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードからの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、前記第2のノードに代行の依頼の拒否を送付すること
を特徴とする付記13に記載のプログラム。
(付記16)
前記第1のノードに送付した前記情報の通知の代行の依頼に対して代行の依頼の拒否を受けた場合、第1のノードとは異なるノードに情報の通知の代行の依頼を送信することを特徴とする付記13乃至付記15のいずれかに記載のプログラム。
(付記17)
保持する前記送信元に含まれるノードから、前記第1のノードを選択することを特徴とする付記13乃至付記16のいずれかに記載のプログラム。
(付記18)
前記自ノードで通知するか否かの判定する条件が、
前記サブスクリプションテーブル保持部が保持する前記受信登録の通知先の数、
前記配信依頼及び前記配信依頼に対するイベントの発生頻度、
自ノードの処理負荷、
通知先までの距離(ホップ数)、
自ノードのリソースの使用量、
又は
上記各条件の予想値
のいずれかを含むことを特徴とする付記13乃至付記17のいずれかに記載のプログラム。
(付記19)
付記1乃至付記6のいずれかに記載の情報通知ノードと、
情報の受信登録を登録するサブスクライバと、
前記情報を発行するパブリッシャと
を含む情報配信システム。
(Appendix)
(Appendix 1)
A subscription table holding unit that receives and holds registration (subscription) of information including events;
An event control unit that determines a load of notification of the information based on the held reception registration and determines whether to delegate the notification based on the load;
A load distribution management table holding unit that holds information on a transmission source of the reception registration and a notification destination that notifies the information;
When it is determined that the event control unit is to be delegated, the range of the notification destination to which the notification of the information is delegated is determined based on the information held by the load distribution management table holding unit, and the notification of the information is performed for the notification destination to be delegated An information notification node including a load distribution control unit that sends a request for delegation to the first node and requests the event control unit to notify the information about a notification destination that is not delegated.
(Appendix 2)
The load balancing control unit
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request of the second node is notified by the own node, and when not notified by the own node, a request for proxy of the information notification is transmitted to the third node. The information notification node according to supplementary note 1 as a feature.
(Appendix 3)
The load balancing control unit
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request from the second node is notified by the own node, and if not notified by the own node, a rejection of the substitute request is sent to the second node. The information notification node according to appendix 1.
(Appendix 4)
The load balancing control unit
When a request for a proxy request is sent in response to a proxy request for the notification of information sent to the first node, a request for a proxy for notification of information is transmitted to a node different from the first node. 4. The information notification node according to any one of supplementary notes 1 to 3, which is a feature.
(Appendix 5)
The load balancing control unit
The information notification node according to any one of appendix 1 to appendix 4, wherein the first node is selected from nodes included in the transmission source held by the load distribution management table holding unit.
(Appendix 6)
The event control unit or the condition for determining whether or not to notify the own node of the load distribution control unit,
The number of notification destinations of the reception registration held by the subscription table holding unit;
Occurrence frequency of the distribution request and the distribution request,
Processing load of the own node,
Distance (number of hops) to notification destination,
Resource usage of the own node,
The information notification node according to any one of Supplementary Note 1 to Supplementary Note 5, which includes any one of predicted values of the above-described conditions.
(Appendix 7)
Receive and hold information subscriptions,
Determining the load of notification of the information based on the received registration held, determining whether to delegate the notification based on the load;
Holding information of the sender of the reception registration and a notification destination for notifying the information;
When it is determined that the information is to be delegated, the range of the notification destinations to which the notification of the information is delegated is determined based on the information of the transmission source of the reception registration and the notification destination to which the information is notified. An information notification method for sending a request for proxy of notification to the first node and notifying the information about a notification destination that is not delegated.
(Appendix 8)
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request of the second node is notified by the own node, and when not notified by the own node, a request for proxy of the information notification is transmitted to the third node. The information notification method according to appendix 7, which is a feature.
(Appendix 9)
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request from the second node is notified by the own node, and if not notified by the own node, a rejection of the substitute request is sent to the second node. The information notification method according to appendix 7.
(Appendix 10)
When a request for a proxy request is sent in response to a proxy request for the notification of information sent to the first node, a request for a proxy for notification of information is transmitted to a node different from the first node. 10. The information notification method according to any one of appendix 7 to
(Appendix 11)
The information notification method according to any one of appendix 7 to appendix 10, wherein the first node is selected from nodes included in the transmission source to be held.
(Appendix 12)
The condition for determining whether or not to notify the local node is:
The number of notification destinations of the reception registration held by the subscription table holding unit;
Occurrence frequency of the distribution request and the distribution request,
Processing load of the own node,
Distance (number of hops) to notification destination,
Resource usage of the own node,
The information notification method according to any one of Supplementary Note 7 to
(Appendix 13)
Processing to receive and hold information reception registration;
A process for determining a load of the notification of the information based on the received reception registration, and determining whether to delegate the notification based on the load;
A process of holding information on the transmission source of the reception registration and a notification destination for notifying the information;
When it is determined that the information is to be delegated, the range of the notification destinations to which the notification of the information is delegated is determined based on the information of the transmission source of the reception registration and the notification destination to which the information is notified. A program that sends a request for proxy to the first node, and causes the computer to execute a process of notifying the information about a notification destination that is not delegated.
(Appendix 14)
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request of the second node is notified by the own node, and when not notified by the own node, a request for proxy of the information notification is transmitted to the third node. 14. The program according to
(Appendix 15)
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request from the second node is notified by the own node, and if not notified by the own node, a rejection of the substitute request is sent to the second node. The program according to
(Appendix 16)
When a request for a proxy request is sent in response to a proxy request for the notification of information sent to the first node, a request for a proxy for notification of information is transmitted to a node different from the first node. The program according to any one of
(Appendix 17)
The program according to any one of
(Appendix 18)
The condition for determining whether or not to notify the local node is:
The number of notification destinations of the reception registration held by the subscription table holding unit;
Occurrence frequency of the distribution request and the distribution request,
Processing load of the own node,
Distance (number of hops) to notification destination,
Resource usage of the own node,
Or the program according to any one of
(Appendix 19)
The information notification node according to any one of appendix 1 to appendix 6, and
A subscriber to register for subscription of information;
An information distribution system including a publisher that issues the information.
1 情報配信システム
9 情報配信システム
10 情報通知ノード
11 情報通知ノード
12 情報通知ノード
13 情報通知ノード
14 情報通知ノード
15 情報通知ノード
16 情報通知ノード
18 情報通知ノード
19 情報通知ノード
20 サブスクライバ
30 パブリッシャ
40 pub/subネットワーク
90 pub/subネットワーク
110 情報転送部
120 ルーティング部
130 ルーティングテーブル保持部
140 イベント制御部
150 サブスクリプションテーブル保持部
151 サブスクリプションテーブル
152 サブスクリプション条件
153 通知先ID
154 負荷委譲済
160 負荷分散制御部
170 負荷分散管理テーブル保持部
171 負荷分散管理テーブル
172 サブスクリプション条件
173 前ノードID
174 通知先ID
175 負荷担当
176 前ノード転送
201 代行依頼メッセージ
202 通知依頼メッセージ
203 代行解除メッセージ
510 通信部
520 情報処理部
530 記憶部
540 プログラム
550 記憶媒体
DESCRIPTION OF SYMBOLS 1
154
174 Notification ID
175
Claims (10)
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定するイベント制御部と、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する負荷分散管理テーブル保持部と、
前記イベント制御部が委譲すると判定した場合に、前記負荷分散管理テーブル保持部が保持する情報に基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記イベント制御部に前記情報の通知を依頼する負荷分散制御部とを含む情報通知ノード。 A subscription table holding unit that receives and holds registration (subscription) of information including events;
An event control unit that determines a load of notification of the information based on the held reception registration and determines whether to delegate the notification based on the load;
A load distribution management table holding unit that holds information on a transmission source of the reception registration and a notification destination that notifies the information;
When it is determined that the event control unit is to be delegated, the range of the notification destination to which the notification of the information is delegated is determined based on the information held by the load distribution management table holding unit, and the notification of the information is performed for the notification destination to be delegated An information notification node including a load distribution control unit that sends a request for delegation to the first node and requests the event control unit to notify the information about a notification destination that is not delegated.
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、第3のノードに前記情報の通知の代行の依頼を送信することを特徴とする請求項1に記載の情報通知ノード。 The load balancing control unit
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request of the second node is notified by the own node, and when not notified by the own node, a request for proxy of the information notification is transmitted to the third node. The information notification node according to claim 1, wherein:
第2のノードから情報の通知の代行の依頼を受け取ったとき、
前記第2のノードからの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、前記第2のノードに代行の依頼の拒否を送付することを特徴とする請求項1に記載の情報通知ノード。 The load balancing control unit
When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request from the second node is notified by the own node, and if not notified by the own node, a rejection of the substitute request is sent to the second node. The information notification node according to claim 1.
前記第1のノードに送付した前記情報の通知の代行の依頼に対して代行の依頼の拒否を受けた場合、第1のノードとは異なるノードに情報の通知の代行の依頼を送信することを特徴とする請求項1乃至請求項3のいずれかに記載の情報通知ノード。 The load balancing control unit
When a request for a proxy request is sent in response to a proxy request for the notification of information sent to the first node, a request for a proxy for notification of information is transmitted to a node different from the first node. The information notification node according to any one of claims 1 to 3, wherein the information notification node is provided.
前記負荷分散管理テーブル保持部が保持する前記送信元に含まれるノードから、前記第1のノードを選択することを特徴とする請求項1乃至請求項4のいずれかに記載の情報通知ノード。 The load balancing control unit
The information notification node according to any one of claims 1 to 4, wherein the first node is selected from nodes included in the transmission source held by the load distribution management table holding unit.
前記サブスクリプションテーブル保持部が保持する前記受信登録の通知先の数、
前記配信依頼及び前記配信依頼に対するイベントの発生頻度、
自ノードの処理負荷、
通知先までの距離(ホップ数)、
自ノードのリソースの使用量、
又は
上記各条件の予想値
のいずれかを含むことを特徴とする請求項1乃至請求項5のいずれかに記載の情報通知ノード。 The event control unit or the condition for determining whether or not to notify the own node of the load distribution control unit,
The number of notification destinations of the reception registration held by the subscription table holding unit;
Occurrence frequency of the distribution request and the distribution request,
Processing load of the own node,
Distance (number of hops) to notification destination,
Resource usage of the own node,
The information notification node according to claim 1, wherein the information notification node includes any one of predicted values of the respective conditions.
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定し、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持し、
委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する情報通知方法。 Receive and hold information subscriptions,
Determining the load of notification of the information based on the received registration held, determining whether to delegate the notification based on the load;
Holding information of the sender of the reception registration and a notification destination for notifying the information;
When it is determined that the information is to be delegated, the range of the notification destinations to which the notification of the information is delegated is determined based on the information of the transmission source of the reception registration and the notification destination to which the information is notified. An information notification method for sending a request for proxy of notification to the first node and notifying the information about a notification destination that is not delegated.
前記第2のノードの依頼に含まれる前記情報を自ノードで通知するか否かを判定し、自ノードで通知しない場合、第3のノードに前記情報の通知の代行の依頼を送信することを特徴とする請求項7に記載の情報通知方法。 When receiving a request for information notification from the second node,
It is determined whether or not the information contained in the request of the second node is notified by the own node, and when not notified by the own node, a request for proxy of the information notification is transmitted to the third node. The information notification method according to claim 7, wherein
保持している前記受信登録に基づき前記情報の通知の負荷を判定し、前記負荷に基づき前記通知を委譲するか否かを判定する処理と、
前記受信登録の送信元の情報と前記情報を通知する通知先とを保持する処理と、
委譲すると判定した場合に、前記受信登録の送信元の情報と前記情報を通知する通知先とに基づき前記情報の通知を委譲する通知先の範囲を判定し、委譲する通知先については前記情報の通知の代行の依頼を第1のノードに送付し、委譲しない通知先については前記情報を通知する処理とをコンピュータに実行させるプログラム。 Processing to receive and hold information reception registration;
A process for determining a load of the notification of the information based on the received reception registration, and determining whether to delegate the notification based on the load;
A process of holding information on the transmission source of the reception registration and a notification destination for notifying the information;
When it is determined that the information is to be delegated, the range of the notification destinations to which the notification of the information is delegated is determined based on the information of the transmission source of the reception registration and the notification destination to which the information is notified. A program that sends a request for proxy to the first node, and causes the computer to execute a process of notifying the information about a notification destination that is not delegated.
情報の受信登録を登録するサブスクライバと、
前記情報を発行するパブリッシャと
を含む情報配信システム。 An information notification node according to any one of claims 1 to 6,
A subscriber to register for subscription of information;
An information distribution system including a publisher that issues the information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011003756A JP2012146113A (en) | 2011-01-12 | 2011-01-12 | Information notification node, information distribution system, information notification method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011003756A JP2012146113A (en) | 2011-01-12 | 2011-01-12 | Information notification node, information distribution system, information notification method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012146113A true JP2012146113A (en) | 2012-08-02 |
Family
ID=46789617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011003756A Withdrawn JP2012146113A (en) | 2011-01-12 | 2011-01-12 | Information notification node, information distribution system, information notification method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012146113A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014157460A1 (en) * | 2013-03-28 | 2014-10-02 | 日本電気株式会社 | Communication system, control apparatus, information collection method and program |
-
2011
- 2011-01-12 JP JP2011003756A patent/JP2012146113A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014157460A1 (en) * | 2013-03-28 | 2014-10-02 | 日本電気株式会社 | Communication system, control apparatus, information collection method and program |
JPWO2014157460A1 (en) * | 2013-03-28 | 2017-02-16 | 日本電気株式会社 | COMMUNICATION SYSTEM, CONTROL DEVICE, INFORMATION COLLECTION METHOD, AND PROGRAM |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618005B (en) | Method for calling server and proxy server | |
CN100417158C (en) | Scalable resonrce discovery and reconfiguration for distributed computer networks | |
US7984094B2 (en) | Using distributed queues in an overlay network | |
US20090077251A1 (en) | Protocol for enabling dynamic and hierarchical interconnection of autonomous federations of enterprise service buses | |
EP1034641B1 (en) | A routing functionality application in a data communications network with a number of hierarchical nodes | |
JP5847185B2 (en) | Content sharing method and apparatus using group change information in content-centric network environment | |
JPWO2010064644A1 (en) | Cluster control system, cluster control method, and program | |
EP2514173B1 (en) | Localization of peer to peer traffic | |
JP2011014022A (en) | Content distribution control method and device, and content receiving terminal | |
US20050210152A1 (en) | Providing availability information using a distributed cache arrangement and updating the caches using peer-to-peer synchronization strategies | |
US9426115B1 (en) | Message delivery system and method with queue notification | |
JP5526780B2 (en) | Load distribution system, service processing server, load distribution method, and load distribution program | |
US7574525B2 (en) | System and method for managing communication between server nodes contained within a clustered environment | |
JP2012146113A (en) | Information notification node, information distribution system, information notification method, and program | |
WO2014171413A1 (en) | Message system for avoiding processing-performance decline | |
JP2000200245A (en) | System and method for information utilization | |
WO2017141807A1 (en) | Communication system, edge server, first broker, second broker, method and storage medium | |
Deogirikar et al. | An improved publish-subscribe method in application layer protocol for iot | |
JP5810919B2 (en) | Event distribution device, event distribution system, and event distribution method | |
WO2015029321A1 (en) | Communication system, controller, communication method, and storage medium | |
JP2006171917A (en) | Protocol for radio multi-hop ad hoc network | |
WO2012073521A1 (en) | Event distribution system and event distribution method | |
CN114500660B (en) | Request processing method, device, equipment and computer readable storage medium | |
Deogirikar et al. | A comprehensive development and testing of improved publish-subscribe method for IoT | |
CN110958182B (en) | Communication method and related equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140401 |