KR101204317B1 - Peer to peer network system and method for providing publish/subscribe service using the same - Google Patents

Peer to peer network system and method for providing publish/subscribe service using the same Download PDF

Info

Publication number
KR101204317B1
KR101204317B1 KR1020110035026A KR20110035026A KR101204317B1 KR 101204317 B1 KR101204317 B1 KR 101204317B1 KR 1020110035026 A KR1020110035026 A KR 1020110035026A KR 20110035026 A KR20110035026 A KR 20110035026A KR 101204317 B1 KR101204317 B1 KR 101204317B1
Authority
KR
South Korea
Prior art keywords
publisher
subscriber
head
node
event
Prior art date
Application number
KR1020110035026A
Other languages
Korean (ko)
Other versions
KR20120072298A (en
Inventor
김영한
김용혁
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Publication of KR20120072298A publication Critical patent/KR20120072298A/en
Application granted granted Critical
Publication of KR101204317B1 publication Critical patent/KR101204317B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Abstract

P2P 네트워크 시스템 및 이를 이용한 게시/가입 서비스 제공 방법이 개시된다. 개시된 P2P 네트워크 시스템은 복수의 속성(Attribute)이 포함된 서브스크립션(Subscription)을 발생하는 가입자(Subscriber)로서 동작하는 적어도 하나의 노드(가입자 노드); 및 상기 복수의 속성 중 일부의 속성과 대응되는 이벤트(Event)를 발생하는 게시자(Publisher)로서 동작하거나 또는 상기 가입자로서 동작하는 2 이상의 노드(게시자/가입자 노드)를 포함하되, 상기 2 이상의 게시자/가입자 노드는 적어도 하나의 게시자/가입자 노드로 구성되는 복수의 게시자 그룹으로 그룹핑되고, 상기 복수의 게시자 그룹은 상호간의 통신을 통해 상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드 중 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하고, 상기 복수의 게시자 그룹 중 어느 하나의 게시자 그룹은 상기 취합된 이벤트를 상기 임의의 노드로 전송한다. A P2P network system and a method for providing a post / subscribe service using the same are provided. The disclosed P2P network system includes at least one node (subscriber node) operating as a subscriber generating a subscription including a plurality of attributes; And two or more nodes (publisher / subscriber nodes) that act as publishers or act as subscribers that generate events corresponding to some of the plurality of attributes. Subscriber nodes are grouped into a plurality of publisher groups consisting of at least one publisher / subscriber node, wherein the plurality of publisher groups are any one of the at least one subscriber node and the at least two publisher / subscriber nodes through mutual communication. Collect events that satisfy conditions (attribute conditions) for a plurality of attributes included in the subscription generated in the sub-group, and any one publisher group of the plurality of publisher groups transmits the collected events to the arbitrary nodes. .

Figure R1020110035026
Figure R1020110035026

Description

P2P네트워크 시스템 및 이를 이용한 게시/가입 서비스 제공 방법{PEER TO PEER NETWORK SYSTEM AND METHOD FOR PROVIDING PUBLISH/SUBSCRIBE SERVICE USING THE SAME}P2P network system and publishing / subscription service providing method using the same {PEER TO PEER NETWORK SYSTEM AND METHOD FOR PROVIDING PUBLISH / SUBSCRIBE SERVICE USING THE SAME}

본 발명의 실시예들은 복수의 피어 노드(Peer Node)들을 통해 게시/가입(Publish/Subscription) 서비스를 제공하는 방법 및 게시/가입 서비스의 제공이 가능한 P2P(Peer to Peer) 네트워크 시스템에 관한 것이다. Embodiments of the present invention relate to a method for providing a publish / subscription service through a plurality of peer nodes, and a peer to peer network system capable of providing a publish / subscribe service.

종래의 게시/가입 서비스를 제공하기 위한 네트워킹 기술은 가입자(Subscriber) 측에서 발생한 서브스크립션(Subscription)의 저장 방식 및 게시자(Publisher) 측에서 발생한 이벤트(Event)의 전송 방식에 따라 랑데부(Rendezvous) 방식과 필터 방식으로 크게 분류된다. Conventional networking technology for providing a subscription / subscription service Rendezvous according to the method of storing the subscription (Subscription) occurred on the Subscriber side and the transmission method of Events occurred on the Publisher side (Rendezvous) It is largely classified into a method and a filter method.

종래의 랑데부 방식의 게시/가입 서비스의 경우, 가입자의 서브스크립션 등록과 게시자의 이벤트 전송 각각이 하나의 주체(노드)에 의해 수행되었다. 그리고, 종래의 필터 방식의 게시/가입 서비스의 경우, 시스템을 구성하는 노드들이 서브스크립션을 분산하여 저장하고, 서브스크립션 사이의 포함관계를 이용하여 노드들 사이에 트리 토폴로지를 구성한 후 이를 통해 이벤트를 전송하였다. In the conventional rendezvous type publishing / subscribing service, each subscriber's subscription registration and publisher's event transmission are performed by one subject (node). In the case of a conventional filter publishing / subscribing service, nodes constituting the system distribute and store subscriptions, and form a tree topology among the nodes using the inclusion relationship between the subscriptions. The event has been sent.

그러나, 상기한 종래의 필터 방식의 게시/가입 서비스를 제공하기 위한 네트워킹 기술은 모든 게시자들이 서브스크립션에 포함된 복수의 속성을 모두 포함하는 이벤트를 발생하는 환경만을 고려하고 있어서 게시자들이 일부의 속성만을 발생하는 분산형 이벤트 발생 환경에는 적용될 수 없는 문제점이 있었다. However, the above-described networking technology for providing a filter-based publishing / subscribing service considers only an environment in which all the publishers generate an event including all the plurality of properties included in the subscription, so that the publishers have some properties. There was a problem that cannot be applied to a distributed event generation environment that generates bays.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 분산형 이벤트 발생 환경에서 게시/가입 서비스를 제공할 수 있는 P2P 네트워크 시스템 및 이를 이용한 게시/가입 서비스 제공 방법을 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention proposes a P2P network system that can provide a post / subscription service in a distributed event generation environment, and a method for providing a post / subscription service using the same.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 복수의 노드를 포함하는 P2P(Peer-to-Peer) 네트워크 시스템에 있어서, 복수의 속성(Attribute)이 포함된 서브스크립션(Subscription)을 발생하는 가입자(Subscriber)로서 동작하는 적어도 하나의 노드(가입자 노드); 및 상기 복수의 속성 중 일부의 속성과 대응되는 이벤트(Event)를 발생하는 게시자(Publisher)로서 동작하거나 또는 상기 가입자로서 동작하는 2 이상의 노드(게시자/가입자 노드)를 포함하되, 상기 2 이상의 게시자/가입자 노드는 적어도 하나의 게시자/가입자 노드로 구성되는 복수의 게시자 그룹으로 그룹핑되고, 상기 복수의 게시자 그룹은 상호간의 통신을 통해 상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드 중 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하고, 상기 복수의 게시자 그룹 중 어느 하나의 게시자 그룹은 상기 취합된 이벤트를 상기 임의의 노드로 전송하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템이 제공된다. According to a preferred embodiment of the present invention to achieve the above object, in a peer-to-peer (P2P) network system including a plurality of nodes, a subscription including a plurality of attributes (Subscription) At least one node (subscriber node) that acts as a subscriber (subscriber) that generates; And two or more nodes (publisher / subscriber nodes) that act as publishers or act as subscribers that generate events corresponding to some of the plurality of attributes. Subscriber nodes are grouped into a plurality of publisher groups consisting of at least one publisher / subscriber node, wherein the plurality of publisher groups are any one of the at least one subscriber node and the at least two publisher / subscriber nodes through mutual communication. Collect events that satisfy conditions (attribute conditions) for a plurality of attributes included in the subscription, and any one publisher group of the plurality of publisher groups transmits the collected events to the arbitrary nodes. Provided is a P2P network system capable of providing a post / subscribe service.

상기 복수의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑될 수 있다. The plurality of publisher / subscriber nodes may be grouped into the plurality of publisher groups according to whether the generated attributes are the same.

상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드는 소정의 토폴로지(Topology)에 따라 연결되어 가입자 오버레이 네트워크를 형성하고, 상기 어느 하나의 게시자 그룹은 상기 가입자 오버레이 네트워크에 포함된 어느 하나의 노드로 상기 취합된 이벤트를 전송하며, 상기 취합된 이벤트는 상기 소정의 토폴로지에 따른 연결을 통해 상기 어느 하나의 노드에서 상기 임의의 노드로 전송될 수 있다. The at least one subscriber node and the two or more publisher / subscriber nodes are connected according to a topology to form a subscriber overlay network, and the one publisher group is any one node included in the subscriber overlay network. The aggregated event may be transmitted to the random node, and the aggregated event may be transmitted from the one node to the arbitrary node through a connection according to the predetermined topology.

상기 복수의 게시자 그룹 각각은 하나의 헤드 게시자/가입자 노드 및 적어도 하나의 멤버 게시자/가입자 노드를 포함하고, 상기 복수의 게시자 그룹의 상호간의 통신은 상기 복수의 게시자 그룹에 각각 포함된 상기 헤드 게시자/가입자 노드(복수의 헤드 게시자/가입자 노드) 간의 통신과 대응될 수 있다. Each of the plurality of publisher groups includes one head publisher / subscriber node and at least one member publisher / subscriber node, and communication between the plurality of publisher groups is each included in the plurality of publisher groups. Corresponds to communication between subscriber nodes (plural head publisher / subscriber nodes).

상기 복수의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑되고, 상기 복수의 헤드 게시자/가입자 노드 각각은 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 속성 조건을 이용하여 라우팅 테이블을 생성하여 저장하고, 상기 라우팅 테이블을 이용하여 상호간의 통신을 수행할 수 있다. The plurality of publisher / subscriber nodes are grouped into the plurality of publisher groups according to whether the generated attributes are the same, and each of the plurality of head publisher / subscriber nodes is included in a plurality of subscriptions generated at the arbitrary node. A routing table may be generated and stored using attribute conditions for the attribute, and the mutual communication may be performed using the routing table.

상기 라우팅 테이블은 상기 헤드 게시자/가입자 노드가 상기 멤버 게시자/가입자 노드로부터 이벤트(내부 이벤트)를 수신하는 경우, 상기 내부 이벤트를 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제1 라우팅 정보 및 상기 헤드 게시자/가입자 노드가 다른 헤드 게시자/가입자 노드로부터 이벤트(외부 이벤트)를 수신하는 경우, 상기 외부 이벤트와 상기 내부 이벤트를 취합하여 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제2 라우팅 정보를 포함할 수 있다. The routing table includes first routing information and the head for selecting a next head publisher / subscriber node to forward the internal event when the head publisher / subscriber node receives an event (internal event) from the member publisher / subscriber node. When the publisher / subscriber node receives an event (external event) from another head publisher / subscriber node, it may include second routing information for selecting the next head publisher / subscriber node to aggregate and deliver the external event and the internal event. Can be.

상기 제1 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 조건 정보 및 다음 헤드 게시자/가입자 노드 정보가 포함되고, 상기 다음 헤드 게시자/가입자 노드 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 상기 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 이벤트를 발생하는 k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함될 수 있다. The first routing information includes condition information including attribute conditions for some attributes occurring in a publisher group including a corresponding head publisher / subscriber node among a plurality of attributes included in a subscription occurring in the arbitrary node; Head publisher / subscriber node information is included, and the next head publisher / subscriber node information includes some attributes occurring in a publisher group to which the corresponding head publisher group belongs among a plurality of attributes included in the subscription occurring at the arbitrary node. Information on the head publisher / subscriber node included in each of the k publisher groups that generate events for other k (integer or greater) attributes may be included.

상기 내부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 상기 조건 정보를 만족하는 경우, 상기 내부 이벤트를 저장하고, 상기 k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 상기 내부 이벤트를 전송할 수 있다. The head publisher / subscriber node that has received the internal event stores the internal event when the internal event satisfies the condition information, and any one of information of the head publisher / subscriber node included in the k publisher groups, respectively. The internal event may be transmitted to the head publisher / subscriber node corresponding to the any one information by using the information.

상기 제2 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 제1 조건 정보, 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 상기 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 속성 조건을 각각 포함하는 k개의 제2 조건 정보, 및 상기 k개의 제2 조건 정보와 각각 대응되는 k개의 다음 헤드 게시자/가입자 노드 정보가 포함되고, 상기 k개의 다음 헤드 게시자/가입자 노드 정보 중 i(1이상 k이하의 정수임) 번째 다음 헤드 게시자/가입자 노드 정보에는 상기 k개의 속성에 대한 이벤트를 발생하는 게시자 그룹 중 i번째 속성에 대한 이벤트를 발생하는 게시자 그룹을 제외한 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함될 수 있다. The second routing information includes first condition information including attribute conditions for some attributes occurring in a publisher group including a corresponding head publisher / subscriber node among a plurality of attributes included in a subscription generated in the arbitrary node. And attribute conditions for k (an integer of 1 or more) attributes other than some attributes occurring in the publisher group to which the head publisher group belongs, among a plurality of attributes included in the subscription occurring in the arbitrary node. k second condition information and k next head publisher / subscriber node information corresponding to the k second condition information, respectively, and include i (1 or more k or less) The next head publisher / subscriber node information includes the i th attribute of the publisher group that generates the events for the k attributes. It may include information about the head of the publisher / subscriber node included in each group, except for the publisher Publishers Group generated the event.

상기 내부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 상기 조건 정보를 만족하는 경우 상기 내부 이벤트를 저장하되, 상기 외부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 저장되어 있고, 상기 외부 이벤트가 상기 k개의 제2 조건 정보 중 적어도 하나의 제2 조건 정보를 만족하는 경우, 상기 적어도 하나의 제2 조건 정보와 각각 대응되는 적어도 하나의 다음 헤드 게시자 정보에 포함된 헤드 게시자/가입자 노드 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 상기 외부 이벤트와 상기 내부 이벤트를 취합하여 전송할 수 있다. The head publisher / subscriber node receiving the internal event stores the internal event when the internal event satisfies the condition information, and the head publisher / subscriber node receiving the external event stores the internal event, When the external event satisfies at least one second condition information of the k second condition information, the head publisher / subscriber included in at least one next head publisher information respectively corresponding to the at least one second condition information. The external event and the internal event may be collected and transmitted to the head publisher / subscriber node corresponding to the any one information using any one of the node information.

또한, 본 발명의 다른 실시예에 따르면, 복수의 속성이 포함된 서브스크립션을 발생하는 가입자로서 동작하는 적어도 하나의 노드(가입자 노드) 및 상기 복수의 속성 중 일부의 속성과 대응되는 이벤트를 발생하는 게시자로서 동작하거나 상기 가입자로서 동작하고 복수의 게시자 그룹으로 그룹핑되는 2 이상의 노드(게시자/가입자 노드)를 포함하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스 제공 방법에 있어서, 상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드 중 임의의 노드에서 서브스크립션을 발생하는 단계; 상기 복수의 게시자 그룹이 상호간의 통신을 통해 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하는 단계; 및 상기 복수의 게시자 그룹 중 어느 하나의 게시자 그룹은 상기 취합된 이벤트를 상기 임의의 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법이 개시된다. Further, according to another embodiment of the present invention, an event corresponding to at least one node (subscriber node) operating as a subscriber generating a subscription including a plurality of attributes and an attribute of some of the plurality of attributes is generated. A method for providing a publish / subscribe service using a P2P network system including at least one node (publisher / subscriber node) which operates as a publisher or is operated as the subscriber and is grouped into a plurality of publisher groups, the at least one subscriber node and Generating a subscription at any of the two or more publisher / subscriber nodes; Collecting, by the plurality of publisher groups, an event that satisfies a condition (attribute condition) for a plurality of attributes included in a subscription generated at the arbitrary node through communication with each other; And a publisher group of any of the plurality of publisher groups transmits the collected events to the arbitrary nodes. The method of providing a publish / subscribe service using a P2P network system is disclosed.

본 발명에 따르면, 분산형 이벤트 발생 환경에서도 게시/가입 서비스를 용이하게 제공할 수 있게 된다. According to the present invention, it is possible to easily provide a post / subscribe service even in a distributed event generation environment.

도 1은 본 발명의 일 실시예에 따른 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 새로운 게시자/가입자 노드가 게시자 그룹으로 참여하는 경우 수행되는 절차를 설명하기 위한 도면이다.
도 3은 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작을 설명하기 위한 도면이다.
도 4는 복수의 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작을 설명하기 위한 도면이다.
도 5는 도 4에서 생성된 라우팅 테이블을 이용하여 복수의 헤드 게시자/가입자 노드가 이벤트를 취합하는 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법의 전체적인 흐름을 도시한 순서도이다.
1 is a diagram illustrating a schematic configuration of a P2P network system capable of providing a post / subscribe service according to an embodiment of the present invention.
2 is a diagram illustrating a procedure performed when a new publisher / subscriber node joins as a publisher group.
3 is a diagram for describing an operation of generating a routing table by a head publisher / subscriber node.
4 is a diagram for describing an operation of generating a routing table by a plurality of head publisher / subscriber nodes.
FIG. 5 is a diagram for describing an operation of collecting events by a plurality of head publisher / subscriber nodes using the routing table generated in FIG. 4.
6 is a flowchart illustrating the overall flow of a method of providing a post / subscribe service using a P2P network system according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템의 개략적인 구성을 도시한 도면이다. 1 is a diagram illustrating a schematic configuration of a P2P network system capable of providing a post / subscribe service according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템(100)(이하, "P2P 네트워크 시스템"이라고 함)은 복수의 노드(111, 121)를 포함한다. 보다 상세하게, P2P 네트워크 시스템(100)은 적어도 하나의 제1 노드(111) 및 2 이상의 제2 노드(121)를 포함한다. Referring to FIG. 1, a P2P network system 100 (hereinafter, referred to as a “P2P network system”) capable of providing a publish / subscribe service according to an embodiment of the present invention includes a plurality of nodes 111 and 121. do. In more detail, the P2P network system 100 includes at least one first node 111 and two or more second nodes 121.

적어도 하나의 제1 노드(111)는 복수의 속성(Attribute)이 포함된 서브스크립션(Subscription)을 발생하는 가입자(Subscriber)로서 동작한다. 그리고, 2 이상의 제2 노드(121)는 특정 속성에 대한 이벤트(Event)를 발생하는 게시자(Publisher)로서 동작하거나 또는 상기에서 설명한 가입자로 동작한다. 즉, 2 이상의 제2 노드(121) 각각은 상황에 따라서 서브스크립션을 발생(가입자로서 동작)할 수도 있고, 이벤트를 발생(게시자로서 동작)할 수도 있다. 이하에서는 설명의 편의를 위해 제1 노드(111)를 "가입자 노드"라 칭하고, 제2 노드(121)를 "게시자/가입자 노드"라 칭하기로 한다. At least one first node 111 operates as a subscriber that generates a subscription including a plurality of attributes. In addition, the two or more second nodes 121 operate as a publisher that generates an event for a specific property or as a subscriber described above. That is, each of the two or more second nodes 121 may generate a subscription (operate as a subscriber) or generate an event (operate as a publisher) according to a situation. Hereinafter, for convenience of description, the first node 111 will be referred to as a "subscriber node" and the second node 121 will be referred to as a "publisher / subscriber node".

이와 같은 적어도 하나의 가입자 노드(111) 및 2 이상의 게시자/가입자 노드(121)는 도 1에 도시된 바와 같이 소정의 토폴로지(Topology)에 따라 연결되어 가입자 오버레이 네트워크(Overlay Network)(110)를 형성하고, 2 이상의 게시자/가입자 노드(121)는 적어도 하나의 게시자/가입자 노드(121)로 구성되는 복수의 게시자 그룹으로 그룹핑되어 게시자 오버레이 네트워크(120)를 형성할 수 있다. Such at least one subscriber node 111 and two or more publisher / subscriber nodes 121 are connected according to a predetermined topology as shown in FIG. 1 to form a subscriber overlay network 110. In addition, the two or more publisher / subscriber nodes 121 may be grouped into a plurality of publisher groups composed of at least one publisher / subscriber node 121 to form a publisher overlay network 120.

본 발명의 일 실시예에 따르면, 복수의 게시자/가입자 노드(121)는 해당 게시자/가입자 노드(121)에서 발생하는 이벤트의 속성의 동일 여부에 따라서 복수의 게시자 그룹으로 그룹핑될 수 있다. 즉, 게시자/가입자 노드(121)는 서브스크립션에 포함된 복수의 속성 중 일부의 속성(일례로, 하나의 속성)에 대한 이벤트만을 발생하는데, 본 발명의 일 실시예에 따르면, 게시자 그룹은 발생하는 이벤트의 속성이 동일한 게시자/가입자 노드(121)들끼리 그룹핑되어 형성될 수 있다. According to an embodiment of the present invention, the plurality of publisher / subscriber nodes 121 may be grouped into a plurality of publisher groups according to whether the attributes of events occurring in the corresponding publisher / subscriber node 121 are the same. That is, the publisher / subscriber node 121 only generates an event for some of the plurality of attributes included in the subscription (for example, one attribute). According to one embodiment of the present invention, the publisher group Attributes of the generated event may be formed by grouping the same publisher / subscriber nodes 121.

이와 같이 형성되는 복수의 게시자 그룹은 상호간의 통신을 통해 가입자 오버레이 네트워크(110)를 형성하는 노드(즉, 적어도 하나의 가입자 노드 및 2 이상의 게시자/가입자 노드) 중 임의의 노드에서 발생하는 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하고, 취합된 이벤트를 상기 임의의 노드로 전송한다. The plurality of publisher groups thus formed are subscriptions that occur at any of the nodes (i.e., at least one subscriber node and at least two publisher / subscriber nodes) forming subscriber overlay network 110 through mutual communication. An event that satisfies a condition (attribute condition) for a plurality of attributes included in is collected, and the collected event is transmitted to the arbitrary node.

즉, 앞서 언급한 바와 같이 게시자/가입자 노드(121)는 서브스크립션에 포함된 복수의 속성 중 일부의 속성에 대한 이벤트만을 발생하고, 게시자 그룹 별로 게시자/가입자 노드(121)에서 발생하는 이벤트의 속성은 서로 다르므로, 복수의 게시자 그룹은 각각의 게시지 그룹에서 발생한 서로 다른 속성의 이벤트를 취합하여 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성을 각각 만족시키는 이벤트 집합을 생성한 후 이를 상기 임의의 노드로 전송한다. 이 때, 취합된 이벤트는 복수의 게시자 그룹 중 어느 하나의 게시자 그룹에 의해 상기 임의의 노드로 전송된다. That is, as mentioned above, the publisher / subscriber node 121 generates an event only for some of the plurality of attributes included in the subscription, and the event generated by the publisher / subscriber node 121 for each publisher group. Since the attributes are different, a plurality of publisher groups may collect events of different attributes occurring in each publication group to generate an event set that satisfies a plurality of attributes included in the subscription occurring at the arbitrary node. It is then sent to the random node. At this time, the aggregated event is transmitted to the arbitrary node by any one publisher group of a plurality of publisher groups.

본 발명의 일 실시예에 따르면, 상기 어느 하나의 게시자 그룹은 가입자 오버레이 네트워크(110)에 포함된 어느 하나의 노드로 취합된 이벤트를 전송하며, 취합된 이벤트는 상기 소정의 토폴로지에 따른 연결을 통해 상기 어느 하나의 노드에서 상기 임의의 노드로 전송될 수 있다. 즉, 상기 어느 하나의 게시자 그룹은 가입자 오버레이 네트워크(110)를 하나의 가입자로 가정하여 취합된 이벤트를 전송할 수 있다. According to an embodiment of the present invention, the one publisher group transmits an aggregated event to any one node included in the subscriber overlay network 110, and the aggregated event is connected through a connection according to the predetermined topology. It can be transmitted from any one node to any node. That is, any one publisher group may transmit the aggregated events assuming the subscriber overlay network 110 as one subscriber.

이와 같은 P2P 네트워크 시스템(100)의 구조는 이벤트를 취합하고, 취합된 이벤트를 가입자에게 전송하기 전에 그 유효성 여부를 미리 판단하여 필터링하기 위한 계층적 구조이다. 즉 게시자 오버레이 네트워크(120)는 각각의 게시자들로부터 이벤트를 분산 수집하는 동시에 발생된 이벤트들이 서브스크립션과 부합하는지 여부를 판단하고, 부합하는 이벤트에 대해서는 이전에 취합된 이벤트와 조합하여 집중형 이벤트 형태로 가입자 오버레이 네트워크(110)로 전송하게 된다. The structure of the P2P network system 100 is a hierarchical structure for collecting events and determining and filtering their validity before transmitting the collected events to subscribers. That is, the publisher overlay network 120 distributes and collects events from each publisher, and determines whether the generated events are in accordance with the subscription, and the matching events are combined with the previously collected events for the centralized event. It is transmitted to the subscriber overlay network 110 in the form.

한편, 가입자 오버레이 네트워크(110)는 기존의 게시/가입 서비스 네트워크로 적용이 가능하다. 이는 가입자 오버레이 네트워크(110)가 게시자 오버레이 네트워크(120)를 인지할 필요 없이 게시자 오버레이 네트워크(120)를 단순히 하나의 게시자로 인지하여 이벤트(취합된 이벤트)를 수신하기 때문이다. 그리고, 가입자 오버레이 네트워크(110) 및 게시자 오버레이 네트워크(120)는 모두 서브스크립션을 근거로 오버레이 네트워크를 구성하므로, 가입자는 이와 같은 이중 구조의 가입자 오버레이 네트워크(110) 및 게시자 오버레이 네트워크(120)를 인지하여 서브스크립션을 각각의 오버레이 네트워크에 동시에 등록할 필요가 있다. On the other hand, the subscriber overlay network 110 can be applied to the existing publishing / subscription service network. This is because the subscriber overlay network 110 simply recognizes the publisher overlay network 120 as one publisher and receives the event (the aggregated events) without having to know the publisher overlay network 120. Since both the subscriber overlay network 110 and the publisher overlay network 120 configure the overlay network based on the subscription, the subscriber overlay network 110 and the publisher overlay network 120 have such dual structure. You need to be aware and register subscriptions with each overlay network simultaneously.

이하에서는 도 2 및 도 3을 참조하여 복수의 게시자/가입자 노드가 그룹핑되어 게시자 그룹을 형성하는 개념(즉, 동일한 속성에 대한 이벤트를 발생하는 게시자 그룹 내의 네트워크를 형성하는 개념) 및 복수의 게시자 그룹이 상호간의 통신을 위한 네트워크를 형성하는 개념(게시자 그룹 간의 오버레이 네트워크를 형성하는 개념)에 대해 보다 상세히 설명하기로 한다.
Hereinafter, with reference to FIGS. 2 and 3, a concept in which a plurality of publisher / subscriber nodes are grouped to form a publisher group (that is, a concept of forming a network within a publisher group that generates an event for the same property) and a plurality of publisher groups This concept of forming a network for communication between each other (concept of forming an overlay network between groups of publishers) will be described in more detail.

1. 게시자 그룹의 형성
1. Formation of publisher groups

앞서 언급한 바와 같이, 기본적으로 발생 이벤트의 속성이 동일한 게시자/가입자 노드(121)가 하나의 게시자 그룹으로 그룹핑되며, 추가적으로 특정 영역에 동일하게 포함되는 게시자/가입자 노드(121)가 하나의 게시자 그룹으로 그룹핑될 수 있다. 여기서, "영역"은 물리적인 위치 영역에서부터 논리적인 서비스 영역 등과 같이 다양한 기준에 의해 정의될 수 있다. As mentioned above, by default, the publisher / subscriber node 121 having the same attribute of the occurrence event is grouped into one publisher group, and additionally, the publisher / subscriber node 121 that is identically included in a specific area includes one publisher group. Can be grouped as: Here, the "area" may be defined by various criteria such as a physical location area or a logical service area.

일례로, P2P 네트워크 시스템(100)을 구성하는 복수의 노드(111, 121)가 센서 모니터링 서비스에 이용되는 경우, 복수의 노드(111, 121)가 위치한 공간은 소정의 크기를 갖는 복수의 영역으로 분할될 수 있는데, 이 경우 동일한 영역(물리적인 위치 영역)에 포함되고 동일한 속성의 이벤트를 발생하는 적어도 하나의 게시자/가입자 노드(121)가 하나의 게시자 그룹을 형성할 수 있다. For example, when a plurality of nodes 111 and 121 constituting the P2P network system 100 are used for a sensor monitoring service, a space where the plurality of nodes 111 and 121 are located is a plurality of areas having a predetermined size. In this case, at least one publisher / subscriber node 121 included in the same area (physical location area) and generating an event having the same property may form one publisher group.

다른 일례로, 상기의 일례에서, 일부의 노드는 온도를 센싱하고, 다른 일부의 노드는 습도를 센싱하는 경우, 동일한 서비스 영역(온도 센싱 서비스 또는 습도 센싱 서비스)에 포함되고 동일한 속성의 이벤트를 발생하는 적어도 하나의 게시자/가입자 노드(121)가 하나의 게시자 그룹을 형성할 수 있다.  In another example, in the above example, when some nodes sense temperature, and some other nodes sense humidity, they are included in the same service area (temperature sensing service or humidity sensing service) and generate an event of the same attribute. At least one publisher / subscriber node 121 may form one publisher group.

본 발명의 일 실시예에 따르면, 상기와 같이 형성된 복수의 게시자 그룹 각각은 하나의 헤드 게시자/가입자 노드 및 적어도 하나의 멤버 게시자/가입자 노드를 포함할 수 있다. According to an embodiment of the present invention, each of the plurality of publisher groups formed as described above may include one head publisher / subscriber node and at least one member publisher / subscriber node.

헤드 게시자/가입자 노드는 게시자 그룹 내적으로는 그룹 내의 멤버 게시자/가입자 노드들로부터 이벤트를 수신하여 저장하는 역할을 수행하고, 게시자 그룹 외적으로는 다른 게시자 그룹의 헤드 게시자/가입자 노드와 네트워크를 유지하여 이벤트를 취합하기 위한 게시자 그룹 간의 통신을 수행함과 동시에 이벤트의 유효성의 검증이 완료된 경우(즉, 명세에 포함된 속성에 대한 이벤트가 모두 취합된 경우), 취합된 이벤트를 가입자 오버레이 네트워크(110)로 전달하는 역할을 수행한다. 즉, 게시자 그룹 내에 헤드 게시자/가입자 노드가 포함되는 경우, 복수의 게시자 그룹 상호간의 통신은 복수의 게시자 그룹 각각에 포함된 헤드 게시자/가입자 노드 상호간의 통신과 대응될 수 있다. The head publisher / subscriber node receives and stores events from within the publisher group from member publisher / subscriber nodes within the group, and maintains a network with the head publisher / subscriber nodes of other publisher groups outside the publisher group. When the validation of the event is completed (that is, when all events for the attributes included in the specification are collected) while communicating between publisher groups to collect the event, the collected event is sent to the subscriber overlay network 110. It serves to convey. That is, when the head publisher / subscriber node is included in the publisher group, the communication between the plurality of publisher groups may correspond to the communication between the head publisher / subscriber nodes included in each of the plurality of publisher groups.

이와 같은 헤드 게시자/가입자 노드는 다양한 기준에 따라 선정될 수 있다. 일례로, 빈번한 헤드 게시자/가입자 노드의 교체를 방지하기 위해, 잔여 전력량이 가장 많은 게시자/가입자 노드가 헤드 게시자/가입자 노드로 선정될 수 있다. 다른 일례로, 게시자 그룹 내의 이벤트 전송 횟수를 방지하기 위해 이벤트의 발생 빈도가 가장 높은 게시자/가입자 노드가 헤드 게시자/가입자 노드로 선정될 수 있다. Such head publisher / subscriber node may be selected according to various criteria. In one example, to prevent frequent replacement of the head publisher / subscriber node, the publisher / subscriber node with the largest amount of remaining power may be selected as the head publisher / subscriber node. As another example, the publisher / subscriber node having the highest frequency of events may be selected as the head publisher / subscriber node to prevent the number of event transmissions in the publisher group.

이 때, 본 발명의 일 실시예에 따르면, 각각의 게시자 그룹 내의 노드들은 헤드 게시자/가입자 노드를 중심으로 멤버 게시자/가입자 노드가 스타(Star) 형태의 토폴로지에 따라 연결될 수 있다. 즉, 멤버 게시자/가입자 노드는 헤드 게시자/가입자 노드를 제외한 다른 게시자/가입자 노드와는 연결되지 않을 수 있다. 이는 게시자 그룹 내에서 발생하는 모든 이벤트가 헤드 게시자/가입자 노드를 통해 외부로 전송되도록 하기 위함이다. At this time, according to an embodiment of the present invention, nodes in each publisher group may be connected to a member publisher / subscriber node based on a star topology based on a head publisher / subscriber node. That is, the member publisher / subscriber node may not be connected to other publisher / subscriber nodes except for the head publisher / subscriber node. This is to ensure that all events that occur within the publisher group are sent externally through the head publisher / subscriber node.

한편, 게시자 그룹의 형성이 완료된 후 새로운 게시자/가입자 노드가 게시자 그룹으로 참여할 수 있는데, 도 2는 새로운 게시자/가입자 노드가 게시자 그룹으로 참여하는 경우 수행되는 절차를 설명하기 위한 도면이다. Meanwhile, after the formation of the publisher group is completed, a new publisher / subscriber node may participate as a publisher group. FIG. 2 is a view for explaining a procedure performed when a new publisher / subscriber node participates as a publisher group.

도 2에 도시된 바와 같이 본 발명의 일 실시예에 따른 P2P 네트워크 시스템(100)에 포함되는 게시자 오버레이 네트워크(120)에는 종래의 일반적인 P2P 네트워크 시스템과 동일하게 Bootstrap 서버(122)가 존재한다. Bootstrap 서버(122)는 복수의 게시자 그룹에 대한 정보 및 게시자 그룹에 접근하기 위한 진입 지점에 대한 정보(즉, 게시자 그룹 내의 게시자/가입자 노드(121a 내지 121d)에 대한 정보)를 제공한다. 이 때, 상기의 진입 지점은 헤드 게시자/가입자 노드(121a)가 될 필요는 없다. 이는 게시자 그룹 내의 모든 게시자/가입자 노드(121a 내지 121d)는 헤드 게시자/가입자 노드(121a)를 인지하고 있으므로, 새로운 게시자/가입자 노드(123)가 게시자 그룹에 참여하고 싶은 경우, 임의의 게시자/가입자 노드가 진입 지점이 되더라도 헤드 게시자/가입자 노드(121a)에 대한 정보를 전달할 수 있기 때문이다. As shown in FIG. 2, in the publisher overlay network 120 included in the P2P network system 100 according to an embodiment of the present invention, a bootstrap server 122 exists in the same manner as a conventional P2P network system. Bootstrap server 122 provides information about the plurality of publisher groups and information about entry points for accessing the publisher group (ie, information about publisher / subscriber nodes 121a through 121d in the publisher group). At this time, the entry point need not be the head publisher / subscriber node 121a. This is because all publisher / subscriber nodes 121a through 121d in the publisher group are aware of the head publisher / subscriber node 121a, so if a new publisher / subscriber node 123 wants to join a publisher group, any publisher / subscriber This is because the information about the head publisher / subscriber node 121a can be transmitted even if the node becomes the entry point.

새로운 게시자/가입자 노드(123)가 게시자 그룹에 참여하고자 하는 경우의 절차를 보다 상세히 설명하면 다음과 같다. The procedure in the case where the new publisher / subscriber node 123 intends to participate in the publisher group will be described in more detail as follows.

먼저, Bootstrap 서버(122)는 앞서 설명한 게시자 그룹의 진입 지점으로 그룹 가입 메시지를 전송한다. 이를 수신한 진입 지점의 게시자/가입자 노드는 자신이 헤드 게시자/가입자 노드(121a)이 아닐 경우, 헤드 게시자/가입자 노드(121a)의 정보를 응답합으로써, 새로운 게시자/가입자 노드(123)가 헤드 게시자/가입자 노드(121a)를 인지할 수 있도록 한다. First, Bootstrap server 122 transmits the group join message to the entry point of the publisher group described above. When the publisher / subscriber node of the entry point that receives this is not the head publisher / subscriber node 121a, the publisher / subscriber node 123 responds to the information of the head publisher / subscriber node 121a, so that the new publisher / subscriber node 123 receives the head. The publisher / subscriber node 121a can be recognized.

이 후, 새로운 게시자/가입자 노드(123)는 수신한 정보와 대응되는 헤드 게시자/가입자 노드(121a)와 헤드의 선택 기준이 되는 메트릭을 교환하여 헤드의 교체 여부를 결정한다. 만약, 기존의 헤드 게시자/가입자 노드(121a)가 헤드로서 더 적합할 경우, 새로운 게시자/가입자 노드(123)는 헤드 정보를 저장한 후 가입 절차를 완료한다. 반대로, 새로운 게시자/가입자 노드(123)가 헤드로서 더 적합할 경우, 기존의 헤드 게시자/가입자 노드(121a)는 모든 멤버 게시자/가입자 노드(122b 내지 121d)에게 새로운 게시자/가입자 노드(123)에 대한 정보를 전송하여 신규 헤드가 선출되었음을 통지하고 현 시점까지의 이벤트 수신 상황을 새로운 게시자/가입자 노드(123)에게 통지한 후 멤버 게시자/가입자로서 역할을 변경한다.
Thereafter, the new publisher / subscriber node 123 exchanges a metric which is a selection criterion of the head with the head publisher / subscriber node 121a corresponding to the received information to determine whether to replace the head. If the existing head publisher / subscriber node 121a is more suitable as a head, the new publisher / subscriber node 123 stores the head information and then completes the subscription procedure. Conversely, if the new publisher / subscriber node 123 is more suitable as a head, then the existing head publisher / subscriber node 121a is assigned to the new publisher / subscriber node 123 to all member publisher / subscriber nodes 122b through 121d. Information about the new head has been selected and the event reception status up to this point is notified to the new publisher / subscriber node 123, and the role is changed as a member publisher / subscriber.

2. 복수의 게시자 그룹이 상호간의 통신을 위한 네트워크를 형성
2. A group of publishers form a network for mutual communication

본 발명의 일 실시예에 따르면, 헤드 게시자/가입자 노드간의 연결에 의해 구성되는 게시자 그룹간의 오버레이 네트워크는 DHT(Distributed Hash Table) 기반의 P2P 네트워크 구성방식을 따를 수 있다. 즉, 복수의 헤드 게시자/가입자 노드는 가입자 오버레이 네트워크 내의 임의의 노드에서 발생한 서브스크립션 내의 복수의 속성을 이용하여 DHT 기반의 오버레이 네트워크를 구성할 수 있다. According to an embodiment of the present invention, the overlay network between the publisher groups formed by the connection between the head publisher / subscriber nodes may follow a PHT configuration of the DHT (Distributed Hash Table). That is, the plurality of head publisher / subscriber nodes may configure the DHT-based overlay network using a plurality of attributes in subscriptions occurring at any node in the subscriber overlay network.

이 경우, 본 발명의 일 실시예에 따르면, 복수의 헤드 게시자/가입자 노드 각각은 가입자 오버레이 네트워크에 포함된 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 이용하여 라우팅 테이블을 생성하여 저장하고, 저장된 라우팅 테이블을 이용하여 상호간의 통신을 수행할 수 있다. In this case, according to an embodiment of the present invention, each of the plurality of head publisher / subscriber nodes uses conditions (attribute conditions) for the plurality of attributes included in the subscription occurring at any node included in the subscriber overlay network. By creating and storing a routing table, and communicating with each other using the stored routing table.

도 3은 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작을 설명하기 위한 도면이다. 3 is a diagram for describing an operation of generating a routing table by a head publisher / subscriber node.

도 3에 도시된 바와 같이, 상기 임의의 노드에서 복수의 속성이 포함된 서브스크립션이 발생하는 경우, 서브스크립션은 속성의 순서에 따라 복수의 헤드 게시자/가입자 노드(121a)로 순차적으로 전달되고, 복수의 헤드 게시자/가입자 노드 각각은 서브스크립션에 포함된 복수의 속성에 대한 속성 조건을 이용하여 라우팅 테이블을 생성하여 저장한다. As shown in FIG. 3, when a subscription including a plurality of attributes occurs at any of the nodes, the subscription is sequentially delivered to the plurality of head publisher / subscriber nodes 121a in the order of the attributes. Each of the plurality of head publisher / subscriber nodes generates and stores a routing table using attribute conditions for the plurality of attributes included in the subscription.

본 발명의 일 실시예에 따르면, 라우팅 테이블은 i) 헤드 게시자/가입자 노드가 멤버 게시자/가입자 노드로부터 이벤트(내부 이벤트)를 수신하는 경우, 내부 이벤트를 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제1 라우팅 정보 및 ii) 헤드 게시자/가입자 노드가 헤드 게시자/가입자 노드로부터 이벤트(외부 이벤트)를 수신하는 경우, 외부 이벤트와 내부 이벤트를 취합하여 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제2 라우팅 정보를 포함할 수 있다. According to one embodiment of the invention, the routing table is configured to: i) select the next head publisher / subscriber node to forward an internal event when the head publisher / subscriber node receives an event (internal event) from a member publisher / subscriber node. First routing information and ii) a second for selecting the next head publisher / subscriber node to aggregate and forward external and internal events when the head publisher / subscriber node receives an event (external event) from the head publisher / subscriber node; Routing information may be included.

보다 상세하게, 먼저, 내부 이벤트의 전달을 위한 제1 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 조건 정보 및 다음 헤드 게시자/가입자 노드 정보가 포함되고, 제1 라우팅 정보에 포함된 다음 헤드 게시자/가입자 노드 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 이벤트를 발생하는 k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함될 수 있다. More specifically, first, the first routing information for the delivery of internal events includes some attributes that occur in the publisher group including the head publisher / subscriber node among the plurality of attributes included in the subscription occurring in the arbitrary node. Condition information including an attribute condition for and next head publisher / subscriber node information, and the next head publisher / subscriber node information included in the first routing information includes a plurality of subscriptions included in the subscription occurring at the arbitrary node. The properties of the head publisher / subscriber node included in each of the k publisher groups that fire events for k (which is an integer of 1 or more) other than some of the properties that occur in the publisher group to which the head publisher group belongs can be included. have.

즉, 해당 헤드 게시자/가입자 노드는 자신이 속한 게시자 그룹에서 발생하는 이벤트의 속성과 동일한 서브스크립션 내의 속성에 대한 속성 조건을 조건 정보로서 저장하고, 서브스크립션 내의 나머지 속성에 대한 이벤트를 발생하는 다른 게시자 그룹의 헤드 게시자/가입자 노드들을 해당 내부 이벤트를 전송할 후보 다음 헤드 게시자/가입자 노드로서 설정하여 제1 라우팅 정보를 생성할 수 있다. 이는 각 게시자 그룹에서의 이벤트 발생순서가 서브스크립션에 정의된 속성의 순서와 무관하게 발생하는 경우에 있어, 하나의 이벤트가 복수의 서브스크립션에 만족할 경우 공통의 다음 홉을 결정하기 위함이다. That is, the head publisher / subscriber node stores the attribute conditions for the attributes in the same subscription as the attribute information of the events occurring in the publisher group to which the corresponding head publisher / subscriber node belongs, and generates the event for the remaining attributes in the subscription. The first routing information may be generated by setting the head publisher / subscriber nodes of another publisher group as candidate next head publisher / subscriber nodes to transmit the corresponding internal event. This is to determine a common next hop when an event satisfies a plurality of subscriptions in a case where the order of event occurrence in each publisher group occurs regardless of the order of attributes defined in the subscription.

이 경우, 내부 이벤트를 수신한 헤드 게시자/가입자 노드는 내부 이벤트가 제1 라우팅 정보 내의 조건 정보를 만족하는 경우, 내부 이벤트를 저장하고, k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 내부 이벤트를 전송할 수 있다. In this case, the head publisher / subscriber node receiving the internal event stores the internal event when the internal event satisfies the condition information in the first routing information, and the information of the head publisher / subscriber node included in each of the k publisher groups. The internal event may be transmitted to the head publisher / subscriber node corresponding to the any one information by using any one of the information.

다음으로, 외부 이벤트의 전달을 위한 제2 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 제1 조건 정보, 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 속성 조건을 각각 포함하는 k개의 제2 조건 정보, 및 k개의 제2 조건 정보와 각각 대응되는 k개의 다음 헤드 게시자/가입자 노드 정보가 포함되고, 제2 라우팅 정보에 포함되는 k개의 다음 헤드 게시자/가입자 노드 정보 중 i(1이상 k이하의 정수임) 번째 다음 헤드 게시자/가입자 노드 정보에는 k개의 속성에 대한 이벤트를 발생하는 게시자 그룹 중 i번째 속성에 대한 이벤트를 발생하는 게시자 그룹을 제외한 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함될 수 있다. Next, the second routing information for the delivery of the external event includes attributes of some attributes occurring in the publisher group including the corresponding head publisher / subscriber node among a plurality of attributes included in the subscription occurring in the arbitrary node. K (at least one integer) attributes other than some attributes occurring in the publisher group to which the head publisher group belongs, among the plurality of attributes included in the subscription generated by the arbitrary node. K second condition information each including an attribute condition for an attribute, and k next head publisher / subscriber node information respectively corresponding to k second condition information, and k next head publishers included in the second routing information. The i next (integer of 1 or greater k) of the subscriber node information, the event for k attributes is included in the next head publisher / subscriber node information. The information on the head publisher / subscriber node included in each publisher group except for the publisher group that generates an event for the i-th property among the publisher groups that generate a may be included.

즉, 헤드 게시자/가입자 노드는 자신이 속한 게시자 그룹에서 발생하는 이벤트의 속성과 동일한 서브스크립션 내의 속성에 대한 속성 조건을 제1 조건 정보로서 저장하고, 서브스크립션 내의 나머지 속성(k개)에 대한 속성 조건을 k개의 제2 조건 정보로서 저장하며, 자신이 속한 게시자 그룹에서 발생하는 이벤트의 속성 및 k개의 속성 중 i번째 속성을 제외한 서브스크립션 내의 나머지 속성(k-1개)에 대한 이벤트를 발생하는 게시자 그룹에 포함된 헤드 게시자/가입자 노드를 i번째 다음 헤드 게시자/가입자로 설정하여 제2 라우팅 정보를 생성할 수 있다. That is, the head publisher / subscriber node stores the attribute conditions for the attributes in the same subscription as the first attribute information as attributes of the event occurring in the publisher group to which the head publisher / subscriber node belongs, and the remaining attributes (k) in the subscription. Store the attribute condition for the second attribute as k second condition information, and the event for the remaining attributes (k-1) in the subscription except for the i-th attribute among the k attributes and the attributes of the event occurring in the publisher group to which they belong. The second routing information may be generated by setting the head publisher / subscriber node included in the publisher group that generates a to the i th next head publisher / subscriber.

이 때, 외부 이벤트를 수신한 헤드 게시자/가입자 노드는 내부 이벤트가 저장되어 있고, 외부 이벤트가 k개의 제2 조건 정보 중 적어도 하나의 제2 조건 정보를 만족하는 경우, 적어도 하나의 제2 조건 정보와 각각 대응되는 적어도 하나의 다음 헤드 게시자 정보에 포함된 헤드 게시자/가입자 노드 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 외부 이벤트와 내부 이벤트를 취합하여 전송할 수 있다. In this case, the head publisher / subscriber node that receives the external event stores the internal event, and when the external event satisfies at least one second condition information among k second condition information, at least one second condition information. And aggregate external and internal events into the head publisher / subscriber node corresponding to any one of the information by using any one of the head publisher / subscriber node information included in at least one next head publisher information corresponding to Can transmit

이하, 도 4 및 도 5를 참조하여 상기에서 설명한 내용에 기초하여 복수의 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작 및 라우팅 테이블에 기초하여 이벤트를 취합하는 동작을 보다 상세히 설명하기로 한다.
Hereinafter, an operation of generating a routing table by a plurality of head publisher / subscriber nodes and an operation of collecting events based on the routing table will be described in detail with reference to FIGS. 4 and 5.

도 4는 복수의 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작을 설명하기 위한 도면이다. 도 4를 참조하여 각 헤드 게시자/가입자 노드가 라우팅 테이블을 생성하는 동작을 설명하면 다음과 같다. 4 is a diagram for describing an operation of generating a routing table by a plurality of head publisher / subscriber nodes. Referring to FIG. 4, an operation of generating a routing table by each head publisher / subscriber node is as follows.

먼저, 속성 A(속성 조건: 1<A<4), 속성 B(속성 조건: 1<B<4) 및 속성 C(속성 조건: 2<C<5)를 포함하는 서브스크립션(S1)을 속성 A에 대한 이벤트를 발생하는 게시자 그룹 A의 헤드 게시자/가입자 노드 A가 수신하는 경우, 헤드 게시자/가입자 노드 A는 속성 A에 대한 속성 조건(1<A<4)를 조건 정보(Rx Event from local)로 저장하고, 속성 A를 제외한 나머지 속성인 속성 B 및 속성 C를 각각 발생하는 게시자 그룹 B 및 게시자 그룹 C에 속하는 헤드 게시자/가입자 노드 B 및 헤드 게시자/가입자 노드 C를 각각 다음 헤드 게시자/가입자 노드(Next)로 설정하여 제1 라우팅 정보(411)를 생성한다. First, a subscription (S1) containing attribute A (attribute condition: 1 <A <4), attribute B (attribute condition: 1 <B <4), and attribute C (attribute condition: 2 <C <5) When the head publisher / subscriber node A of publisher group A, which raises an event for attribute A, receives, the head publisher / subscriber node A receives the attribute condition (1 <A <4) for the attribute A (Rx Event from local), and then add head publisher / subscriber node B and head publisher / subscriber node C belonging to publisher group B and publisher group C, each of which causes property B and property C, except for property A, respectively, to the next head publisher / Set as a subscriber node (Next) to generate the first routing information (411).

그리고, 헤드 게시자/가입자 노드 A는 속성 A에 대한 속성 조건(1<A<4)을 제1 조건 정보(Local Received event state)로 저장하고, 속성 A를 제외한 나머지 속성인 속성 B 및 속성 C의 조건(1<B<4, 2<C<5)을 각각 제2 조건 정보(Rx Event from HP)로 저장한다. 이후, 헤드 게시자/가입자 노드는 속성 A와 속성 B를 제외한 나머지 속성인 속성 C를 발생하는 헤드 게시자/가입자 노드 C를 속성 A에 대한 조건(1<A<4) 및 속성 B에 대한 조건(1<B<4)을 만족시키는 경우의 다음 헤드 게시자/가입자 노드(Next)로 설정하고, 속성 A와 속성 C를 제외한 나머지 속성인 속성 B를 발생하는 헤드 게시자/가입자 노드 B를 속성 A에 대한 조건(1<A<4) 및 속성 C에 대한 조건(2<C<5)을 만족시키는 경우의 다음 헤드 게시자/가입자 노드로 설정한다. 이에 따라 제2 라우팅 정보(412)가 생성된다. The head publisher / subscriber node A stores the attribute condition (1 <A <4) for the attribute A as the first condition information (Local Received event state), and the attributes of the attributes B and C, which are the remaining attributes except for the attribute A, are stored. Conditions 1 <B <4 and 2 <C <5 are stored as second condition information Rx Event from HP, respectively. Thereafter, the head publisher / subscriber node replaces the head publisher / subscriber node C, which generates attribute C other than attributes A and B, with a condition for attribute A (1 <A <4) and a condition for attribute B (1 Set to the next head publisher / subscriber node (Next) when <B <4) is satisfied, and the condition for attribute A is the head publisher / subscriber node B, which generates attribute B, except attributes A and C. Set to the next head publisher / subscriber node when (1 <A <4) and the condition (2 <C <5) for attribute C are satisfied. Accordingly, the second routing information 412 is generated.

제1 라우팅 정보(411) 및 제2 라우팅 정보(412)를 포함하는 라우팅 테이블(410)을 생성한 헤드 게시자/가입자 노드 A는 속성 A의 다음 속성인 속성 B에 대한 이벤트를 발생하는 게시자 그룹 B의 헤드 게시자/가입자 노드 B로 서브스크립션(S1)을 전송한다. The head publisher / subscriber node A, which has generated a routing table 410 containing the first routing information 411 and the second routing information 412, is the publisher group B that generates an event for attribute B, which is the next attribute of attribute A. The subscription S1 is sent to the head publisher / subscriber node B of the.

다음으로, 서브스크립션(S1)을 수신한 헤드 게시자/가입자 노드 B는 헤드 게시자/가입자 노드 A와 동일한 방식으로 제1 라우팅 정보(421) 및 제2 라우팅 정보(422)를 포함하는 라우팅 테이블(420)을 생성하고, 서브스크립션(S1)을 다음 속성인 속성 C에 대한 이벤트를 발생하는 게시자 그룹 C의 헤드 게시자/가입자 노드 C로 전송한다.Next, the head publisher / subscriber node B receiving the subscription S1 has a routing table including the first routing information 421 and the second routing information 422 in the same manner as the head publisher / subscriber node A. 420, and transmits the subscription S1 to the head publisher / subscriber node C of the publisher group C that generates an event for the next attribute, attribute C.

계속하여, 서브스크립션(S1)을 수신한 헤드 게시자/가입자 노드 C는 헤드 게시자/가입자 노드 A 및 헤드 게시자/가입자 노드 B와 동일한 방식으로 제1 라우팅 정보(431) 및 제2 라우팅 정보(432)를 포함하는 라우팅 테이블(430)을 생성한다. 이에 따라 서브스크립션(S1)에 대한 제1 라우팅 정보(411, 421, 431) 및 제2 라우팅 정보(412, 422, 432)의 생성이 완료된다. Subsequently, the head publisher / subscriber node C receiving the subscription S1 receives the first routing information 431 and the second routing information 432 in the same manner as the head publisher / subscriber node A and the head publisher / subscriber node B. Generate a routing table 430 including the &lt; RTI ID = 0.0 &gt; Accordingly, generation of the first routing information 411, 421, and 431 and the second routing information 412, 422, and 432 for the subscription S1 is completed.

이 후, 속성 A(속성 조건: 3<A<8), 속성 C(속성 조건: 1<C<4) 및 속성 D(속성 조건: 1<D<3)를 포함하는 서브스크립션(S2)을 헤드 게시자/가입자 노드 A가 수신하는 경우, 헤드 게시자/가입자 노드 A, 헤드 게시자/가입자 노드C 및 헤드 게시자/가입자 노드 D는 앞서 설명한 것과 동일한 동작을 수행하여 제1 라우팅 정보(411, 431, 441) 및 제2 라우팅 정보(412, 432, 442)를 생성/갱신하여 라우팅 테이블(410, 430, 440)을 갱신/생성한다. Subsequently, subscription S2 including attribute A (attribute condition: 3 <A <8), attribute C (attribute condition: 1 <C <4), and attribute D (attribute condition: 1 <D <3). Is received by the head publisher / subscriber node A, the head publisher / subscriber node A, the head publisher / subscriber node C, and the head publisher / subscriber node D perform the same operations as described above, so that the first routing information 411, 431, 441) and second routing information 412, 432, 442 are generated / updated to update / create the routing table 410, 430, 440.

이에 따라, 헤드 게시자/가입자 노드 A 내지 헤드 게시자/가입자 노드 D에서의 라우팅 테이블(410, 420, 430, 440)의 생성이 완료된다.
Accordingly, the generation of the routing tables 410, 420, 430, 440 at the head publisher / subscriber node A to the head publisher / subscriber node D is completed.

도 5는 도 4에서 생성된 라우팅 테이블을 이용하여 복수의 헤드 게시자/가입자 노드가 이벤트를 취합하는 동작을 설명하기 위한 도면이다. FIG. 5 is a diagram for describing an operation of collecting events by a plurality of head publisher / subscriber nodes using the routing table generated in FIG. 4.

이하, 속성 C에 대한 이벤트, 속성 B에 대한 이벤트 및 속성 A에 대한 이벤트가 순차적으로 발생하는 것으로 가정하여 복수의 헤드 게시자/가입자 노드가 이벤트를 취합하는 동작을 상세히 설명하기로 한다. Hereinafter, assuming that an event for attribute C, an event for attribute B, and an event for attribute A occur sequentially, an operation of collecting events by a plurality of head publisher / subscriber nodes will be described in detail.

먼저, 게시자 그룹 C에 포함된 임의의 멤버 게시자/가입자 노드에서 속성 C에 관한 이벤트(C=3)(즉, 내부 이벤트)가 발생하는 경우, 헤드 게시자/가입자 노드 C는 이벤트(C=3)를 수신하고, 이벤트(C=3)가 라우팅 테이블(430)의 제1 라우팅 정보(431)에 포함된 조건 정보(Rx Event form local)를 만족시키는지를 판단한다. First, if any member publisher / subscriber node included in publisher group C has an event (C = 3) (i.e., an internal event) on attribute C, then head publisher / subscriber node C will receive an event (C = 3). Is received, and it is determined whether the event (C = 3) satisfies the condition information (Rx Event form local) included in the first routing information 431 of the routing table 430.

도 5를 참조하면, 이벤트(C=3)는 2개의 조건 정보(2<C<5, 1<C<4)를 모두 만족시키므로, 헤드 게시자/가입자 노드 C는 이벤트(C=3)를 저장한 후 헤드 게시자/가입자 노드 A, 헤드 게시자/가입자 노드 B 및 헤드 게시자/가입자 노드 C 중 어느 하나의 헤드 게시자/가입자 노드를 다음 헤드 게시자/가입자 노드로 선정하여 이벤트(C=3)를 전송한다. Referring to FIG. 5, since the event (C = 3) satisfies both condition information (2 <C <5, 1 <C <4), the head publisher / subscriber node C stores the event (C = 3). After that, one of the head publisher / subscriber node A, the head publisher / subscriber node B, and the head publisher / subscriber node C is selected as the next head publisher / subscriber node to transmit an event (C = 3). .

일례로서, 헤드 게시자/가입자 노드 C는 전체적인 이벤트의 전송 횟수를 감소시키기 위해 2개의 조건 정보에 대한 공통의 다음 헤드 게시자/가입자 노드인 헤드 게시자/가입자 노드 A를 다음 헤드 게시자/가입자 노드로 선정하여 이벤트(C=3)를 전송할 수 있다(이하, 헤드 게시자/가입자 노드 A로 이벤트(C=3)가 전송되는 것으로 가정함). As an example, the head publisher / subscriber node C selects the head next publisher / subscriber node A, which is the common next head publisher / subscriber node for the two condition information, as the next head publisher / subscriber node, to reduce the number of transmissions of the entire event. It is possible to send an event (C = 3) (hereinafter, assume that event (C = 3) is sent to head publisher / subscriber node A).

이 경우, 이벤트가 무한히 반복 전송되는 경우를 방지하기 위해, 내부 이벤트를 전송하는 헤드 게시자/가입자 노드 C는 자신의 아이디(ID)를 이벤트(C=3)와 함께 전송할 수 있다. In this case, in order to prevent the event from being repeatedly transmitted indefinitely, the head publisher / subscriber node C transmitting the internal event may transmit its ID (ID) together with the event (C = 3).

계속하여, 헤드 게시자/가입자 노드 C로부터 이벤트(C=3)를 수신한(즉, 외부 이벤트를 수신한) 헤드 게시자/가입자 노드 A는 속성 A에 대한 이벤트(내부 이벤트)가 저장되어 있는지를 판단한다. 이 경우, 속성 A에 대한 이벤트가 저장되어 있지 않으므로, 헤드 게시자/가입자 노드 A는 수신한 이벤트(C=3)를 폐기한다.
Subsequently, the head publisher / subscriber node A, which received an event (C = 3) from the head publisher / subscriber node C (ie, received an external event), determines whether an event (internal event) for attribute A is stored. do. In this case, since no event for attribute A is stored, the head publisher / subscriber node A discards the received event (C = 3).

이 후, 게시자 그룹 B에 포함된 임의의 멤버 게시자/가입자 노드에서 속성 B에 관한 이벤트(B=2)(즉, 내부 이벤트)가 발생하는 경우, 헤드 게시자/가입자 노드 B는 이벤트(B=2)를 수신하고, 이벤트(B=2)가 라우팅 테이블(420)의 제1 라우팅 정보(421)에 포함된 조건 정보를 만족시키는지를 판단한다. Thereafter, if an event (B = 2) (i.e., an internal event) on attribute B occurs at any member publisher / subscriber node included in publisher group B, the head publisher / subscriber node B will receive an event (B = 2 ), And determines whether the event (B = 2) satisfies the condition information included in the first routing information 421 of the routing table 420.

도 5를 참조하면, 이벤트(B=2)는 조건 정보(1<B<4)를 만족시키므로, 헤드 게시자/가입자 노드 B는 이벤트(B=2)를 저장한 후 헤드 게시자/가입자 노드 A 및 헤드 게시자/가입자 노드 C 중 어느 하나의 헤드 게시자/가입자 노드를 다음 헤드 게시자/가입자 노드로 선정하여 이벤트(B=2)를 전송한다(이하, 헤드 게시자/가입자 노드 C로 이벤트(B=2)가 전송되는 것으로 가정함). 이 경우에도 헤드 게시자/가입자 노드 B는 자신의 아이디를 이벤트(B=2)와 함께 전송할 수 있다. Referring to Fig. 5, since event B = 2 satisfies condition information 1 <B <4, head publisher / subscriber node B stores head event B / subscriber node A and after storing event B = 2. The head publisher / subscriber node of one of the head publisher / subscriber nodes C is selected as the next head publisher / subscriber node, and an event (B = 2) is transmitted (hereinafter, the event (B = 2) to the head publisher / subscriber node C). Is assumed to be sent). In this case, the head publisher / subscriber node B may transmit its ID together with the event (B = 2).

계속하여, 헤드 게시자/가입자 노드 B로부터 이벤트(B=2)를 수신한(즉, 외부 이벤트를 수신한) 헤드 게시자/가입자 노드 C는 속성 C에 대한 이벤트(내부 이벤트)가 저장되어 있는지를 판단한다. Subsequently, the head publisher / subscriber node C, which received an event (B = 2) from the head publisher / subscriber node B (ie, received an external event), determines whether an event (internal event) for attribute C is stored. do.

이 때, 앞서 설명한 바와 같이 속성 C에 대한 이벤트(C=3)가 저장되어 있으므로, 헤드 게시자/가입자 노드 C는 이벤트(B=2)에 의해 만족되는 제2 조건 정보(Rx Event from HP)가 존재하는지를 판단한다. At this time, as described above, since the event (C = 3) for the attribute C is stored, the head publisher / subscriber node C has the second condition information (Rx Event from HP) satisfied by the event (B = 2). Determine if it exists.

도 5를 참조하면, 이벤트(B=2)에 의해 만족되는 제2 조건 정보(1<B<4)가 존재하고, 저장된 이벤트(C=3)는 제2 조건 정보(1<B<4)와 대응되는 속성 C에 대한 제1 조건 정보(Local received event state)(2<C<5)를 만족시키므로, 헤드 게시자/가입자 노드 C는 외부 이벤트(B=2)와 내부 이벤트(C=3)를 취합하여 이를 제2 조건 정보(1<B<4)와 대응되는 다음 헤드 게시자/가입자 노드인 헤드 게시자/가입자 노드 A로 전송한다(이 경우에도 헤드 게시자/가입자 노드 B의 아이디가 함께 전송될 수 있다). Referring to FIG. 5, there is second condition information 1 <B <4 satisfied by the event B = 2, and the stored event C = 3 has second condition information 1 <B <4. Satisfies the first condition information (Local received event state) 2 <C <5 for attribute C corresponding to < RTI ID = 0.0 &gt; C, &lt; / RTI &gt; Is collected and transmitted to the head publisher / subscriber node A, which is the next head publisher / subscriber node corresponding to the second condition information (1 <B <4) (in this case, the ID of the head publisher / subscriber node B is also transmitted together). Can be).

다음으로, 헤드 게시자/가입자 노드 B로부터 취합된 이벤트(B=2, C=3)를 수신한(즉, 외부 이벤트를 수신한) 헤드 게시자/가입자 노드 A는 속성 A에 대한 이벤트(내부 이벤트)가 저장되어 있는지를 판단한다. Next, the head publisher / subscriber node A, having received the aggregated events (B = 2, C = 3) from the head publisher / subscriber node B (that is, the external event), receives the event (internal event) for attribute A. Determine if is stored.

이 경우, 속성 A에 대한 이벤트가 여전히 저장되어 있지 않으므로, 헤드 게시자/가입자 노드 A는 수신한 이벤트(B=2, C=3)를 폐기한다.
In this case, since the event for attribute A is still not stored, the head publisher / subscriber node A discards the received events (B = 2, C = 3).

이 후, 게시자 그룹 A에 포함된 임의의 멤버 게시자/가입자 노드에서 속성 A에 관한 이벤트(A=4)(즉, 내부 이벤트)가 발생하는 경우, 헤드 게시자/가입자 노드 A는 이벤트(A=4)를 수신하고, 이벤트(A=4)가 라우팅 테이블(410)의 제1 라우팅 정보(411)에 포함된 조건 정보를 만족시키는지를 판단한다. Subsequently, if any member publisher / subscriber node included in publisher group A has an event (A = 4) (i.e., an internal event) on attribute A, then head publisher / subscriber node A generates an event (A = 4). ), And determines whether the event A = 4 satisfies the condition information included in the first routing information 411 of the routing table 410.

도 5를 참조하면, 이벤트(A=4)는 2개의 조건 정보(1<A<5, 3<A<8)를 모두 만족시키므로, 헤드 게시자/가입자 노드 A는 이벤트(A=4)를 저장한 후 헤드 게시자/가입자 노드 B, 헤드 게시자/가입자 노드 C 및 헤드 게시자/가입자 노드 D 중 어느 하나의 헤드 게시자/가입자 노드를 다음 헤드 게시자/가입자 노드로 선정(바람직하게는 공통의 노드인 헤드 게시자/가입자 노드 C를 선정)하여 이벤트(A=4)를 전송한다(이하, 헤드 게시자/가입자 노드 C로 이벤트(A=4)를 전송하는 것으로 가정함). 이 경우에도 헤드 게시자/가입자 노드 A의 아이디가 함께 전송될 수 있다. Referring to Fig. 5, since event A = 4 satisfies both condition information 1 <A <5, 3 <A <8, the head publisher / subscriber node A stores the event A = 4. And then selects the head publisher / subscriber node of any one of head publisher / subscriber node B, head publisher / subscriber node C, and head publisher / subscriber node D as the next head publisher / subscriber node (preferably the common head node Selects subscriber node C) and transmits an event (A = 4) (assuming that event (A = 4) is transmitted to head publisher / subscriber node C). In this case, the ID of the head publisher / subscriber node A may be transmitted together.

계속하여, 헤드 게시자/가입자 노드 A로부터 이벤트(A=4)를 수신한(즉, 외부 이벤트를 수신한) 헤드 게시자/가입자 노드 C는 속성 C에 대한 이벤트(내부 이벤트)가 저장되어 있는지 여부 및 이벤트(A=4)(외부 이벤트)에 의해 만족되는 제2 조건 정보가 존재하는지를 판단한다. Subsequently, head publisher / subscriber node C, which has received an event (A = 4) from head publisher / subscriber node A (that is, receives an external event), checks whether an event (internal event) for attribute C is stored and It is determined whether there is the second condition information satisfied by the event A = 4 (external event).

이 때, 앞서 설명한 바와 같이 속성 C에 대한 이벤트(C=3)가 저장되어 있고, 이벤트(A=4)에 의해 만족되는 제2 조건 정보(1<A<5, 3<A<8)가 존재하며, 저장된 이벤트(C=3)는 제2 조건 정보(1<A<5, 3<A<8)와 대응되는 속성 C에 대한 제1 조건 정보(2<C<5, 1<C<4)를 만족시키므로, 헤드 게시자/가입자 노드 C는 외부 이벤트(A=4)와 내부 이벤트(C=3)를 취합하여 (헤드 게시자/가입자 노드 A의 아이디와 함께) 제2 조건 정보(1<A<5, 3<A<8)와 대응되는 다음 헤드 게시자/가입자 노드인 헤드 게시자/가입자 노드 B 또는 헤드 게시자/가입자 노드 D로 전송한다(이하, 헤드 게시자/가입자 노드 B로 취합된 이벤트(A=4, C=3)가 전송되는 것으로 가정함). At this time, as described above, the event (C = 3) for the attribute C is stored, and the second condition information (1 <A <5, 3 <A <8) satisfied by the event (A = 4) is stored. Exists and the stored event (C = 3) is the first condition information (2 <C <5, 1 <C <) for the attribute C corresponding to the second condition information (1 <A <5, 3 <A <8). 4), the head publisher / subscriber node C collects the external event (A = 4) and the internal event (C = 3) to collect the second condition information (1 <) with the ID of the head publisher / subscriber node A). To Head Publisher / Subscriber Node B or Head Publisher / Subscriber Node D, which is the next Head Publisher / Subscriber Node corresponding to A <5, 3 <A <8). A = 4, C = 3) is assumed to be sent).

다음으로, 헤드 게시자/가입자 노드 C로부터 취합된 이벤트(A=4, C=3)를 수신한(즉, 외부 이벤트를 수신한) 헤드 게시자/가입자 노드 B는 속성 B에 대한 이벤트(내부 이벤트)가 저장되어 있는지 여부 및 이벤트(A=4, C=3)(외부 이벤트)에 의해 만족되는 제2 조건 정보(Rx Event from HP)가 존재하는지를 판단한다. Next, the head publisher / subscriber node B that received the aggregated events (A = 4, C = 3) from the head publisher / subscriber node C (that is, the external event) receives an event (internal event) for attribute B. Is stored, and whether the second condition information (Rx Event from HP) satisfied by the events A = 4 and C = 3 (external event) exists.

이 때, 앞서 설명한 바와 같이 속성 B에 대한 이벤트(B=2)가 저장되어 있고, 이벤트(A=4, C=3)에 의해 만족되는 제2 조건 정보(1<A<5, 2<C<5)가 존재하며, 저장된 이벤트(B=2)는 제2 조건 정보(1<A<5, 2<C<5)와 대응되는 속성 B에 대한 제1 조건 정보(1<B<4)를 만족시키므로, 헤드 게시자/가입자 노드 B는 외부 이벤트(A=4, C=3)와 내부 이벤트(B=2)를 취합하여 (헤드 게시자/가입자 노드 A의 아이디와 함께) 이벤트(A=4, B=2, C=3)를 제2 조건 정보(1<A<5, 2<C<5)와 대응되는 다음 헤드 게시자/가입자 노드인 헤드 게시자/가입자 노드 A 또는 헤드 게시자/가입자 노드 C로 전송한다. 이 경우, 헤드 게시자/가입자 노드 B는 수신된 외부 이벤트(A=4, C=3)에 포함된 속성을 통해 수신된 이벤트(A=4, C=3)가 헤드 게시자/가입자 노드 A 및 헤드 게시자/가입자 노드 C를 경유하여 왔음을 알 수 있으므로, 헤드 게시자/가입자 노드 B는 최초로 이벤트를 전송한 헤드 게시자/가입자 노드 A로 취합된 이벤트(A=4, B=2, C=3)를 전송한다.
At this time, as described above, the event (B = 2) for the attribute B is stored, and the second condition information (1 <A <5, 2 <C) satisfied by the events A = 4 and C = 3. <5) exists, and the stored event (B = 2) includes first condition information (1 <B <4) for attribute B corresponding to second condition information (1 <A <5, 2 <C <5). Therefore, the head publisher / subscriber node B aggregates the external events (A = 4, C = 3) and the internal events (B = 2) and together with the IDs of the head publisher / subscriber node A events (A = 4). , B = 2, C = 3), head publisher / subscriber node A or head publisher / subscriber node C, which is the next head publisher / subscriber node corresponding to the second condition information (1 <A <5, 2 <C <5) To send. In this case, the head publisher / subscriber node B has received the event (A = 4, C = 3) via the attributes contained in the received external event (A = 4, C = 3) and the head publisher / subscriber node A and the head. As you can see that it has been via publisher / subscriber node C, head publisher / subscriber node B is responsible for the event (A = 4, B = 2, C = 3) aggregated to head publisher / subscriber node A that originally sent the event. send.

마지막으로, 취합된 이벤트(A=4, B=2, C=3)를 수신한 헤드 게시자/가입자 노드 A를 함께 전송된 자신의 아이디를 통해 서브스크립션(S1)에 포함된 모든 속성(A, B, C)과 관련된 이벤트가 취합되었음을 확인하고, 취합된 이벤트(A=4, B=2, C=3)를 서브스크립션(S1)을 발생한 상기 임의의 노드로 전송한다. Finally, the head publisher / subscriber node A, who received the aggregated events (A = 4, B = 2, C = 3), receives all attributes (A) included in the subscription (S1) through its ID sent together. It is confirmed that the events related to B, C) have been collected, and the collected events (A = 4, B = 2, C = 3) are transmitted to the arbitrary node that generated the subscription S1.

이에 따라 서브스크립션(S1)에 포함된 복수의 속성 모두에 대한 이벤트가 게시자 오버레이 네트워크를 통해 취합되어 서브스크립션(S1)을 발생한 노드로 전달된다.
Accordingly, events for all of the plurality of attributes included in the subscription S1 are collected through the publisher overlay network and delivered to the node that generated the subscription S1.

도 6은 본 발명의 일 실시예에 따른 P2P 네트워크 시스템(100)을 이용한 게시/가입 서비스의 제공 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 설명하기로 한다. 6 is a flowchart illustrating the overall flow of a method of providing a publish / subscribe service using a P2P network system 100 according to an embodiment of the present invention. Hereinafter, a process performed for each step will be described.

먼저, 단계(S610)에서는 적어도 하나의 가입자 노드 및 2 이상의 게시자/가입자 노드 중 임의의 노드에서 서브스크립션을 발생한다. 발생된 서브스크립션에는 복수의 속성이 포함된다. First, in step S610, a subscription is generated at any node of at least one subscriber node and at least two publisher / subscriber nodes. The generated subscription includes a plurality of attributes.

다음으로, 단계(S620)에서는 복수의 게시자 그룹이 상호간의 통신을 통해 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합한다. Next, in step S620, a plurality of publisher groups collect events that satisfy conditions (attribute conditions) for a plurality of attributes included in subscriptions generated at the arbitrary nodes through communication with each other.

본 발명의 일 실시예에 따르면, 복수의 게시자 그룹 상호간의 통신은 게시자 그룹 각각에 포함된 헤드 게시자/가입자 노드 간의 통신과 대응될 수 있다. According to an embodiment of the present invention, the communication between the plurality of publisher groups may correspond to the communication between the head publisher / subscriber nodes included in each of the publisher groups.

마지막으로, 단계(S630)에서는 복수의 게시자 그룹 중 어느 하나의 게시자 그룹이 취합된 이벤트를 상기 임의의 노드로 전송한다. Finally, in step S630, an event in which any one publisher group of a plurality of publisher groups is collected is transmitted to the arbitrary node.

본 발명의 일 실시예에 따르면, 단계(S630)는 복수의 헤드 게시자/가입자 노드 각각이 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 속성 조건을 이용하여 라우팅 테이블을 생성하여 저장하는 단계를 포함할 수 있다. 이 경우, 단계(S630)에서 복수의 헤드 게시자/가입자 노드는 생성된 라우팅 테이블을 이용하여 상호간의 통신을 수행할 수 있다. According to an embodiment of the present invention, step S630 may be performed by generating a routing table by using a plurality of head publisher / subscriber nodes using attribute conditions for a plurality of attributes included in a subscription occurring at the arbitrary node. And storing. In this case, in step S630, the plurality of head publisher / subscriber nodes may communicate with each other using the generated routing table.

이 경우, 본 발명의 일 실시예에 따르면, 라우팅 테이블은 헤드 게시자/가입자 노드가 멤버 게시자/가입자 노드로부터 내부 이벤트를 수신하는 경우, 수신된 내부 이벤트를 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제1 라우팅 정보 및 헤드 게시자/가입자 노드가 다른 헤드 게시자/가입자 노드로부터 외부 이벤트를 수신하는 경우, 수신된 외부 이벤트와 내부 이벤트를 취합하여 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제2 라우팅 정보를 포함할 수 있다. In this case, according to one embodiment of the present invention, the routing table is for selecting the next head publisher / subscriber node to forward the received internal event to when the head publisher / subscriber node receives an internal event from the member publisher / subscriber node. First routing information and second routing information for selecting the next head publisher / subscriber node to aggregate and forward received external and internal events when the head publisher / subscriber node receives an external event from another head publisher / subscriber node; It may include.

지금까지 본 발명에 따른 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법의 실시예들에 대하여 설명하였고, 앞서 도 1에서 설명한 P2P 네트워크 시스템(100)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.So far, embodiments of the method for providing a post / subscribe service using the P2P network system according to the present invention have been described, and the configuration of the P2P network system 100 described with reference to FIG. 1 may be applied to the present embodiment as it is. Do. Hereinafter, a detailed description will be omitted.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Examples of program instructions, such as magneto-optical and ROM, RAM, flash memory and the like, can be executed by a computer using an interpreter or the like, as well as machine code, Includes a high-level language code. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and limited embodiments and drawings. However, it should be understood that the present invention is not limited to the above- Various modifications and variations may be made thereto by those skilled in the art to which the present invention pertains. Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

100: P2P 네트워크 시스템 110: 가입자 오버레이 네트워크
111: 가입자 노드 120: 게시자 오버레이 네트워크
121: 게시자/가입자 노드 121a: 헤드 게시자/가입자 노드
121b, 121c, 121d: 멤버 게시자/가입자 노드
122: Bootstrap 서버 123: 새로운 게시자/가입자 노드
410, 420, 430, 440: 라우팅 테이블
411, 421, 431, 441: 제1 라우팅 정보
412, 422, 432, 442: 제2 라우팅 정보
100: P2P network system 110: subscriber overlay network
111: subscriber node 120: publisher overlay network
121: Publisher / subscriber node 121a: Head publisher / subscriber node
121b, 121c, 121d: Member publisher / subscriber nodes
122: Bootstrap Server 123: New Publisher / Subscriber Node
410, 420, 430, 440: routing table
411, 421, 431, and 441: first routing information
412, 422, 432, 442: second routing information

Claims (15)

복수의 노드를 포함하는 P2P(Peer-to-Peer) 네트워크 시스템에 있어서,
복수의 속성(Attribute)이 포함된 서브스크립션(Subscription)을 발생하는 가입자(Subscriber)로서 동작하는 적어도 하나의 노드(가입자 노드); 및
상기 복수의 속성 중 일부의 속성과 대응되는 이벤트(Event)를 발생하는 게시자(Publisher)로서 동작하거나 또는 상기 가입자로서 동작하는 2 이상의 노드(게시자/가입자 노드)를 포함하되,
상기 2 이상의 게시자/가입자 노드는 적어도 하나의 게시자/가입자 노드로 구성되는 복수의 게시자 그룹으로 그룹핑되고,
상기 복수의 게시자 그룹은 상호간의 통신을 통해 상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드 중 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하고, 상기 복수의 게시자 그룹 중 어느 하나의 게시자 그룹은 상기 취합된 이벤트를 상기 임의의 노드로 전송하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
In a peer-to-peer network system including a plurality of nodes,
At least one node (subscriber node) that acts as a subscriber to generate a subscription including a plurality of attributes; And
At least two nodes (publisher / subscriber nodes) acting as publishers or acting as subscribers to generate an event corresponding to some of the plurality of attributes,
The two or more publisher / subscriber nodes are grouped into a plurality of publisher groups consisting of at least one publisher / subscriber node,
The plurality of publisher groups may satisfy conditions (attribute conditions) for a plurality of attributes included in a subscription occurring at any one of the at least one subscriber node and the at least two publisher / subscriber nodes through mutual communication. And a publisher group of any one of the plurality of publisher groups transmits the collected events to the arbitrary nodes.
제1항에 있어서,
상기 2 이상의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑되는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method of claim 1,
And the at least two publisher / subscriber nodes are grouped into the plurality of publisher groups according to whether the generated attributes are the same.
제1항에 있어서,
상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드는 소정의 토폴로지(Topology)에 따라 연결되어 가입자 오버레이 네트워크를 형성하고, 상기 어느 하나의 게시자 그룹은 상기 가입자 오버레이 네트워크에 포함된 어느 하나의 노드로 상기 취합된 이벤트를 전송하며,
상기 취합된 이벤트는 상기 소정의 토폴로지에 따른 연결을 통해 상기 어느 하나의 노드에서 상기 임의의 노드로 전송되는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method of claim 1,
The at least one subscriber node and the two or more publisher / subscriber nodes are connected according to a topology to form a subscriber overlay network, and the one publisher group is any one node included in the subscriber overlay network. Send the aggregated event to
The aggregated event is a P2P network system capable of providing a publish / subscribe service, characterized in that transmitted from any one node to the arbitrary node through a connection according to the predetermined topology.
제1항에 있어서,
상기 복수의 게시자 그룹 각각은 하나의 헤드 게시자/가입자 노드 및 적어도 하나의 멤버 게시자/가입자 노드를 포함하고, 상기 복수의 게시자 그룹의 상호간의 통신은 상기 복수의 게시자 그룹에 각각 포함된 상기 헤드 게시자/가입자 노드(복수의 헤드 게시자/가입자 노드) 간의 통신과 대응되는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method of claim 1,
Each of the plurality of publisher groups includes one head publisher / subscriber node and at least one member publisher / subscriber node, and communication between the plurality of publisher groups is each included in the plurality of publisher groups. A P2P network system capable of providing a publish / subscribe service, which corresponds to communication between subscriber nodes (a plurality of head publisher / subscriber nodes).
청구항 5은(는) 설정등록료 납부시 포기되었습니다.Claim 5 was abandoned upon payment of a set-up fee. 제4항에 있어서,
상기 2 이상의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑되고,
상기 복수의 헤드 게시자/가입자 노드 각각은 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 속성 조건을 이용하여 라우팅 테이블을 생성하여 저장하고, 상기 라우팅 테이블을 이용하여 상호간의 통신을 수행하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
5. The method of claim 4,
The two or more publisher / subscriber nodes are grouped into the plurality of publisher groups according to whether the occurring attributes are the same,
Each of the plurality of head publisher / subscriber nodes generates and stores a routing table using attribute conditions for a plurality of attributes included in a subscription generated by the arbitrary node, and communicates with each other using the routing table. P2P network system capable of providing a publish / subscribe service, characterized in that performed.
청구항 6은(는) 설정등록료 납부시 포기되었습니다.Claim 6 has been abandoned due to the setting registration fee. 제5항에 있어서,
상기 라우팅 테이블은
상기 헤드 게시자/가입자 노드가 상기 멤버 게시자/가입자 노드로부터 이벤트(내부 이벤트)를 수신하는 경우, 상기 내부 이벤트를 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제1 라우팅 정보 및
상기 헤드 게시자/가입자 노드가 다른 헤드 게시자/가입자 노드로부터 이벤트(외부 이벤트)를 수신하는 경우, 상기 외부 이벤트와 상기 내부 이벤트를 취합하여 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제2 라우팅 정보
를 포함하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method of claim 5,
The routing table is
First routing information for selecting a next head publisher / subscriber node to forward the internal event to when the head publisher / subscriber node receives an event (internal event) from the member publisher / subscriber node;
If the head publisher / subscriber node receives an event (external event) from another head publisher / subscriber node, second routing information for selecting the next head publisher / subscriber node to aggregate and deliver the external event and the internal event;
P2P network system capable of providing a post / subscription service comprising a.
청구항 7은(는) 설정등록료 납부시 포기되었습니다.Claim 7 was abandoned upon payment of a set-up fee. 제6항에 있어서,
상기 제1 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 조건 정보 및 다음 헤드 게시자/가입자 노드 정보가 포함되고,
상기 다음 헤드 게시자/가입자 노드 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 상기 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 이벤트를 발생하는 k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함되는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method according to claim 6,
The first routing information includes condition information including attribute conditions for some attributes occurring in a publisher group including a corresponding head publisher / subscriber node among a plurality of attributes included in a subscription occurring in the arbitrary node; Head publisher / subscriber node information,
The next head publisher / subscriber node information includes k (an integer of 1 or more) attributes other than some attributes occurring in the publisher group to which the head publisher group belongs among the plurality of attributes included in the subscription generated at the arbitrary node. A P2P network system capable of providing a publish / subscribe service, characterized in that information of a head publisher / subscriber node included in k publisher groups generating an event for each is included.
청구항 8은(는) 설정등록료 납부시 포기되었습니다.Claim 8 was abandoned when the registration fee was paid. 제7항에 있어서,
상기 내부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 상기 조건 정보를 만족하는 경우, 상기 내부 이벤트를 저장하고, 상기 k개의 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 상기 내부 이벤트를 전송하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method of claim 7, wherein
The head publisher / subscriber node that has received the internal event stores the internal event when the internal event satisfies the condition information, and any one of information of the head publisher / subscriber node included in the k publisher groups, respectively. The P2P network system capable of providing a publish / subscribe service, characterized in that for transmitting the internal event to the head publisher / subscriber node corresponding to any one of the information using the information.
청구항 9은(는) 설정등록료 납부시 포기되었습니다.Claim 9 has been abandoned due to the setting registration fee. 제6항에 있어서,
상기 제2 라우팅 정보에는 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 해당 헤드 게시자/가입자 노드가 포함된 게시자 그룹에서 발생하는 일부의 속성에 대한 속성 조건을 포함하는 제1 조건 정보, 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성 중 상기 해당 헤드 게시자 그룹이 속한 게시자 그룹에서 발생하는 일부의 속성 이외의 k(1이상의 정수임)개의 속성에 대한 속성 조건을 각각 포함하는 k개의 제2 조건 정보, 및 상기 k개의 제2 조건 정보와 각각 대응되는 k개의 다음 헤드 게시자/가입자 노드 정보가 포함되고,
상기 k개의 다음 헤드 게시자/가입자 노드 정보 중 i(1이상 k이하의 정수임) 번째 다음 헤드 게시자/가입자 노드 정보에는 상기 k개의 속성에 대한 이벤트를 발생하는 게시자 그룹 중 i번째 속성에 대한 이벤트를 발생하는 게시자 그룹을 제외한 게시자 그룹에 각각 포함된 헤드 게시자/가입자 노드의 정보가 포함되는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
The method according to claim 6,
The second routing information includes first condition information including attribute conditions for some attributes occurring in a publisher group including a corresponding head publisher / subscriber node among a plurality of attributes included in a subscription generated in the arbitrary node. And attribute conditions for k (an integer of 1 or more) attributes other than some attributes occurring in the publisher group to which the head publisher group belongs, among a plurality of attributes included in the subscription occurring in the arbitrary node. k second condition information, and k next head publisher / subscriber node information corresponding to the k second condition information, respectively;
In the k next head publisher / subscriber node information, i (an integer of 1 or more and less than k) generates an event for the i-th attribute among the publisher groups that generate an event for the k attributes. A P2P network system capable of providing a publish / subscribe service, characterized in that the information includes the head publisher / subscriber node included in each publisher group except the publisher group.
청구항 10은(는) 설정등록료 납부시 포기되었습니다.Claim 10 has been abandoned due to the setting registration fee. 제9항에 있어서,
상기 내부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 상기 조건 정보를 만족하는 경우 상기 내부 이벤트를 저장하되,
상기 외부 이벤트를 수신한 헤드 게시자/가입자 노드는 상기 내부 이벤트가 저장되어 있고, 상기 외부 이벤트가 상기 k개의 제2 조건 정보 중 적어도 하나의 제2 조건 정보를 만족하는 경우, 상기 적어도 하나의 제2 조건 정보와 각각 대응되는 적어도 하나의 다음 헤드 게시자 정보에 포함된 헤드 게시자/가입자 노드 정보 중 어느 하나의 정보를 이용하여 상기 어느 하나의 정보와 대응되는 헤드 게시자/가입자 노드로 상기 외부 이벤트와 상기 내부 이벤트를 취합하여 전송하는 것을 특징으로 하는 게시/가입 서비스의 제공이 가능한 P2P 네트워크 시스템.
10. The method of claim 9,
The head publisher / subscriber node receiving the internal event stores the internal event when the internal event satisfies the condition information.
The head publisher / subscriber node receiving the external event has the internal event stored therein, and the external event satisfies at least one second condition information of the k second condition information. The external event and the internal event to the head publisher / subscriber node corresponding to the one information by using any one of the head publisher / subscriber node information included in at least one next head publisher information corresponding to the condition information. P2P network system capable of providing a post / subscription service, characterized in that the aggregated event.
복수의 속성이 포함된 서브스크립션을 발생하는 가입자로서 동작하는 적어도 하나의 노드(가입자 노드) 및 상기 복수의 속성 중 일부의 속성과 대응되는 이벤트를 발생하는 게시자로서 동작하거나 상기 가입자로서 동작하고 복수의 게시자 그룹으로 그룹핑되는 2 이상의 노드(게시자/가입자 노드)를 포함하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스 제공 방법에 있어서,
상기 적어도 하나의 가입자 노드 및 상기 2 이상의 게시자/가입자 노드 중 임의의 노드에서 서브스크립션을 발생하는 단계;
상기 복수의 게시자 그룹이 상호간의 통신을 통해 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 조건(속성 조건)을 만족시키는 이벤트를 취합하는 단계; 및
상기 복수의 게시자 그룹 중 어느 하나의 게시자 그룹은 상기 취합된 이벤트를 상기 임의의 노드로 전송하는 단계
를 포함하는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법.
At least one node (subscriber node) that acts as a subscriber generating a subscription that includes a plurality of attributes and a publisher that generates an event corresponding to an attribute of some of the plurality of attributes or as a subscriber and operates as a subscriber A method of providing a publish / subscribe service using a P2P network system including at least two nodes (publisher / subscriber nodes) grouped into a publisher group of,
Generating a subscription at any of the at least one subscriber node and the at least two publisher / subscriber nodes;
Collecting, by the plurality of publisher groups, an event that satisfies a condition (attribute condition) for a plurality of attributes included in a subscription generated at the arbitrary node through communication with each other; And
Any one publisher group of the plurality of publisher groups sends the aggregated event to the arbitrary node;
Method of providing a post / subscription service using a P2P network system comprising a.
제11항에 있어서,
상기 2 이상의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑되는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법.
The method of claim 11,
The at least two publisher / subscriber nodes are grouped into the plurality of publisher groups according to whether the generated attributes are the same.
제11항에 있어서,
상기 복수의 게시자 그룹 각각은 하나의 헤드 게시자/가입자 노드 및 적어도 하나의 멤버 게시자/가입자 노드를 포함하고, 상기 복수의 게시자 그룹의 상호간의 통신은 상기 복수의 게시자 그룹에 각각 포함된 상기 헤드 게시자/가입자 노드(복수의 헤드 게시자/가입자 노드) 간의 통신과 대응되는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법.
The method of claim 11,
Each of the plurality of publisher groups includes one head publisher / subscriber node and at least one member publisher / subscriber node, and communication between the plurality of publisher groups is each included in the plurality of publisher groups. A method of providing a publish / subscribe service using a P2P network system, which corresponds to communication between subscriber nodes (a plurality of head publisher / subscriber nodes).
제13항에 있어서,
상기 2 이상의 게시자/가입자 노드는 상기 발생하는 속성의 동일 여부에 따라서 상기 복수의 게시자 그룹으로 그룹핑되고,
상기 이벤트를 취합하는 단계는
상기 복수의 헤드 게시자/가입자 노드 각각은 상기 임의의 노드에서 발생한 서브스크립션에 포함된 복수의 속성에 대한 속성 조건을 이용하여 라우팅 테이블을 생성하여 저장하는 단계를 포함하고, 상기 라우팅 테이블을 이용하여 상호간의 통신을 수행하는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법.
The method of claim 13,
The two or more publisher / subscriber nodes are grouped into the plurality of publisher groups according to whether the occurring attributes are the same,
Aggregating the event
Wherein each of the plurality of head publisher / subscriber nodes generates and stores a routing table using attribute conditions for a plurality of attributes included in a subscription occurring at the arbitrary node, and using the routing table. Method of providing a publish / subscribe service using a P2P network system, characterized in that to perform communication with each other.
청구항 15은(는) 설정등록료 납부시 포기되었습니다.Claim 15 is abandoned in the setting registration fee payment. 제14항에 있어서,
상기 라우팅 테이블은
상기 헤드 게시자/가입자 노드가 상기 멤버 게시자/가입자 노드로부터 이벤트(내부 이벤트)를 수신하는 경우, 상기 내부 이벤트를 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제1 라우팅 정보 및
상기 헤드 게시자/가입자 노드가 다른 헤드 게시자/가입자 노드로부터 이벤트(외부 이벤트)를 수신하는 경우, 상기 외부 이벤트와 상기 내부 이벤트를 취합하여 전달할 다음 헤드 게시자/가입자 노드를 선택하기 위한 제2 라우팅 정보
를 포함하는 것을 특징으로 하는 P2P 네트워크 시스템을 이용한 게시/가입 서비스의 제공 방법.
15. The method of claim 14,
The routing table is
First routing information for selecting a next head publisher / subscriber node to forward the internal event to when the head publisher / subscriber node receives an event (internal event) from the member publisher / subscriber node;
If the head publisher / subscriber node receives an event (external event) from another head publisher / subscriber node, second routing information for selecting the next head publisher / subscriber node to aggregate and deliver the external event and the internal event;
Method of providing a post / subscription service using a P2P network system comprising a.
KR1020110035026A 2010-12-23 2011-04-15 Peer to peer network system and method for providing publish/subscribe service using the same KR101204317B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100133675 2010-12-23
KR20100133675 2010-12-23

Publications (2)

Publication Number Publication Date
KR20120072298A KR20120072298A (en) 2012-07-03
KR101204317B1 true KR101204317B1 (en) 2012-11-26

Family

ID=46707037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110035026A KR101204317B1 (en) 2010-12-23 2011-04-15 Peer to peer network system and method for providing publish/subscribe service using the same

Country Status (1)

Country Link
KR (1) KR101204317B1 (en)

Also Published As

Publication number Publication date
KR20120072298A (en) 2012-07-03

Similar Documents

Publication Publication Date Title
CN101399746B (en) Packet routing method, system, device and method, system for selecting backup resource
Banno et al. Designing overlay networks for handling exhaust data in a distributed topic-based pub/sub architecture
CN101645925B (en) Selection method of neighbor nodes related to physical topology in P2P system
Cugola et al. Content-Based Publish–Subscribe in a Mobile Environment
CN105103518A (en) Content distribution system and method
CN101072160B (en) Distributed virtual environment management method, system and node
KR101035903B1 (en) P2P overlay network architecture and method of managing P2P overlay network
Baldoni et al. Content‐based routing in highly dynamic mobile ad hoc networks
CN101989995A (en) Topology information acquiring method for distributed network
Zhu et al. Ripple: A publish/subscribe service for multidata item updates propagation in the cloud
EP1776643A2 (en) Object schemas and packet chain protocols for managing digital content routing and distribution in peer-to-peer dynamic connection structures
KR101204317B1 (en) Peer to peer network system and method for providing publish/subscribe service using the same
JP5078034B2 (en) Communication device, P2P network construction method, program, and recording medium
KR102156331B1 (en) Bitcoin network scanning system and method
Tariq et al. Providing probabilistic latency bounds for dynamic publish/subscribe systems
JP5522801B2 (en) Receiving terminal and control program thereof
Salta et al. Improving P2P video streaming in wireless mesh networks
Kündig et al. A distributed algorithm using path dissemination for publish-subscribe communication patterns
Zhao et al. Ris: A reciprocal incentive scheme in selfish opportunistic networks
CN102986196A (en) Access to a network of nodes distributed over a communication architecture, using a topology server with multi-criteria selection
CN106034106A (en) Networking method, networking management method, networking device, networking management device and networking system
Mykoniati et al. Scalable peer-to-peer streaming for live entertainment content
Ma et al. A cloud‐assisted publish/subscribe service for time‐critical dissemination of bulk content
Li et al. An efficient event delivery scheme in mobile ad hoc communities
JP5810919B2 (en) Event distribution device, event distribution system, and event distribution method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190516

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 8