KR20110063083A - Method for constructing publish-subscribe network and supporting communication using hash function - Google Patents
Method for constructing publish-subscribe network and supporting communication using hash function Download PDFInfo
- Publication number
- KR20110063083A KR20110063083A KR1020090120024A KR20090120024A KR20110063083A KR 20110063083 A KR20110063083 A KR 20110063083A KR 1020090120024 A KR1020090120024 A KR 1020090120024A KR 20090120024 A KR20090120024 A KR 20090120024A KR 20110063083 A KR20110063083 A KR 20110063083A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- subscription
- information
- event message
- location
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
본 발명은 네트워크에 관한 것으로, 특히 네트워크에 포함되는 단말 장치 간 패킷 전송 기술에 관한 것이다. The present invention relates to a network, and more particularly, to a packet transmission technology between terminal devices included in a network.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다.[국가관리번호 : 2008-S-010-02, 과제명 : 다계층 광 네트워크 제어 플랫폼 기술 개발]The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy. [National Management No. 2008-S-010-02, Title: Development of Multi-layer Optical Network Control Platform Technology]
네트워크를 형성하는 다수의 서버 시스템에서는 여러 가지 소프트웨어들이 운용된다. 소프트웨어들 가운데에는 중요한 이벤트(event)를 발생시키는 것이 있는데, 이를 게시 프로세스(publisher process)라 한다.Many software systems run on a number of server systems that form a network. Some of the software generates important events, which are called publisher processes.
게시 프로세스에 의해 발생된 이벤트를 네트워크 상의 분산된 다른 프로세스가 수신하여야 할 경우, 해당 이벤트를 네트워크 패킷 형태로 변환하여 전송해야 한다. 이때 이벤트를 수신하는 프로세스가 구독 프로세스(subscriber process)이다. When other distributed processes on the network need to receive an event generated by the posting process, the event must be converted into a network packet and transmitted. At this time, the process of receiving an event is a subscriber process.
구독 프로세스가 게시 프로세스에 의해 발생된 이벤트를 수신하기 위해 구독 프로세스는 자신의 아이디(ID) 정보 및 아이피(IP) 정보를 게시 프로세스에 등록한다. 그리고 게시 프로세스에게 새로운 이벤트가 발생할 경우 자신에게 전송하도록 요청한다. 그런데 이 경우에 이벤트를 발생시키는 게시 프로세스가 다중화되면, 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담이 있다.In order for the subscription process to receive events generated by the publishing process, the subscription process registers its ID information and IP information with the publishing process. It also asks the publishing process to send it to itself when a new event occurs. However, in this case, if the publishing process that generates the event is multiplexed, there is a burden that the registration information of the subscription process should be kept in the same state.
또한, 하나의 서버에 여러 개의 게시 프로세스가 존재하는 경우, 해당 서버에 등록되는 구독 프로세스의 양이 많아지면 해당 서버가 처리해야 하는 메시지와 세션(session)의 양이 늘어나기 때문에, 서버의 부하가 급증하게 된다는 문제가 있다. In addition, if there are multiple publishing processes on one server, the more the number of subscription processes registered on that server increases the amount of messages and sessions that the server has to handle, There is a problem of sudden increase.
본 발명은 이 같은 배경에서 도출된 것으로, 게시 프로세스와 구독 프로세스 간 이벤트 메시지 전송에 필요한 정보들을 네트워크상의 서버들에 분산하여 관리하는 것을 목적으로 한다. The present invention is derived from this background, and aims to distribute and manage the information necessary for the transmission of event messages between the publishing process and the subscription process to servers on the network.
상기 기술적 과제는 구독 프로세스가 실행되는 구독 서버로부터 구독 서버의 위치 정보 및 게시 프로세스 정보 등록 요청을 수신하고, 수신되는 등록 요청에 따라 구독 서버의 위치 정보 및 게시 프로세스 정보를 저장하여, 게시 프로세스가 실행되는 게시 서버로부터 이벤트 메시지가 수신되면 상기 저장된 정보에 기초하여 상기 수신된 이벤트 메시지를 수신할 구독 프로세스가 실행되는 구독 서버의 위치를 파악하고, 파악된 구독 서버로 상기 이벤트 메시지를 전달하는 이벤트 메시지 중개 방법에 의해 달성된다. The technical task is to receive the registration information of the registration server location information and publishing process information from the subscription server running the subscription process, and stores the location information and publishing process information of the subscription server according to the registration request received, the publishing process is executed When an event message is received from a publishing server, the event message mediation is configured to determine the location of a subscription server on which a subscription process to receive the received event message is executed based on the stored information, and deliver the event message to the identified subscription server. Is achieved by the method.
또한, 구독 프로세스와 대응되는 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하고, 결정된 메시지 중개 서버로 구독 서버의 위치 정보 및 게시 프로세스 정보 등록을 요청하는 것을 특징으로 하는 구독 프로세스가 실행되는 구독 서버에서의 구독 프로세스 위치 등록 방법에 의해서도 달성된다. In addition, the subscription server running the subscription process, characterized in that the message mediation server is determined using the publication process identification information corresponding to the subscription process, and requesting registration of the location information and the publication process information of the subscription server to the determined message mediation server It is also achieved by the subscription process location registration method in.
이때, 중개 서버를 결정함에 있어, 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로 한다. At this time, in determining the intermediate server, the message intermediate server is determined based on a hash value generated by applying the posting process identification information to the hash function.
그리고, 중개 서버를 결정하기 이전에, 구독 서버의 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 링 형 토폴로지 형성을 위한 위치값을 결정하는 것을 특징으로 한다. And, before determining the intermediate server, the location value for forming the ring topology is determined based on the hash value generated by applying the identification information of the subscription server to the hash function.
또한, 게시 프로세스로부터 이벤트 메시지가 전달되면, 상기 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하고, 결정된 메시지 중개 서버로 이벤트 메시지를 전송하는 것을 특징으로 하는 게시 프로세스가 실행되는 게시 서버에서 수행되는 구독 프로세스로의 이벤트 메시지 전송 방법에 의해서도 달성된다. In addition, when an event message is delivered from a posting process, the message mediation server is determined using the posting process identification information, and the event message is transmitted to the determined message mediation server. It is also achieved by the method of sending event messages to the subscription process.
이때 중개 서버를 결정함에 있어, 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로한다. At this time, in determining the intermediate server, the message intermediate server is determined based on a hash value generated by applying the posting process identification information to the hash function.
그리고, 중개 서버를 결정하기 이전에, 구독 서버의 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 링 형 토폴로지 형성을 위한 위치값을 결정하는 것을 특징으로 한다. And, before determining the intermediate server, the location value for forming the ring topology is determined based on the hash value generated by applying the identification information of the subscription server to the hash function.
본 발명에 따르면, 네트워크 상에서 다중화된 게시 프로세스들이 구독 프로세스의 위치 정보를 상호 공유할 필요가 없다. 따라서 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담을 줄일 수 있다. 즉, 네트워크상에서 구독 프로세스 등록 정보를 다수의 서버들에 분산시킬 수 있는 효과가 있다.According to the present invention, multiplexed publishing processes on a network do not need to share location information of a subscription process with each other. This reduces the burden of keeping the subscription process's registration information the same for all multiplexed publishing processes. In other words, the subscription process registration information can be distributed over a plurality of servers in the network.
또한 본 발명에 따르면, 구독 프로세스의 위치 정보가 게시 프로세스의 아이디에 해시를 적용한 결과에 따라 서로 다른 서버에 분산 배치되기 때문에, 게시 프로세스는 하나의 서버에만 이벤트 메시지를 보내면 된다. According to the present invention, since the location information of the subscription process is distributed to different servers according to the result of applying the hash to the ID of the publishing process, the publishing process only needs to send an event message to one server.
뿐만 아니라 프로세스들이 상호 아이피(IP) 주소를 모르더라도 이벤트 전송 및 수신이 가능하기 때문에 프로세스에서의 부담을 경감시킬 수 있다. In addition, the process can be sent and received even if the processes do not know the mutual IP (IP) address, reducing the burden on the process.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면들을 참조하여 설명되는 바람직한 실시예들을 통해 더욱 명확해질 것이다. 이하에서는 본 발명을 이러한 실시예들을 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.The foregoing and further aspects of the present invention will become more apparent through the preferred embodiments described with reference to the accompanying drawings. Hereinafter, the present invention will be described in detail so that those skilled in the art can easily understand and reproduce the present invention through these embodiments.
도 1 은 본 발명의 일 실시예에 따른 프로세스가 설치된 서버의 구성도이다. 1 is a configuration diagram of a server in which a process is installed according to an embodiment of the present invention.
일 실시예에 있어서 서버는 네트워크상의 단말 장치이며, 생성되고 동작하는 프로세스에 의해 게시 서버, 중개 서버, 구독 서버로 동작할 수 있다. In one embodiment, the server is a terminal device on the network and may operate as a publishing server, an intermediate server, or a subscription server by a process of being created and operated.
서버는 프로세스 관리부(10) 및 통신 처리부(20)를 포함한다. 일 실시예에 있어서 프로세스 관리부(10) 및 통신 처리부(20)는 서버의 마이크로프로세서에서 실행되는 소프트웨어 및 그에 탑재되는 논리 회로의 조합으로 구현될 수 있다. The server includes a process manager 10 and a communication processor 20. In one embodiment, the process manager 10 and the communication processor 20 may be implemented by a combination of software running on a microprocessor of the server and logic circuits mounted thereon.
프로세스 관리부(10)는 서버 내에서 프로세스의 시작 및 종료 처리 등을 수행한다. 본 실시예에 있어서, 프로세스 관리부(10)는 메시지 중개부(12), 중개 서버 결정부(14), 위치 등록부(16) 및 정보 저장부(18)를 포함한다. The process manager 10 performs a process of starting and terminating a process in the server. In the present embodiment, the process manager 10 includes a message broker 12, an intermediary server determiner 14, a location register 16 and an
메시지 중개부(12)는 서버가 게시 서버로 동작할 때, 게시 프로세스에서 발 생된 이벤트 메시지를 통신 처리부(20)로 전달하는 송신 중개부(122)와 서버가 구독 서버로 동작할 때, 통신 처리부(20)를 통해 수신되는 이벤트 메시지를 구독 프로세스로 전달하는 수신 중개부(124)를 포함한다. The message broker 12 is a communication processor when the server acts as a subscription server when the server acts as a subscription server, and when the server acts as a subscription server. And a
중개 서버 결정부(14)는 서버가 구독 서버로 동작할 때에 자신의 위치와, 구독 프로세스가 수신해야하는 이벤트 메시지를 발생시키는 게시 프로세스 정보를 전송하여 등록 요청할 중개 서버를 결정한다. 또한 서버가 게시 서버로 동작할 때에는 게시 프로세스에 의해 발생되는 이벤트 메시지를 구독 프로세스로 전달하기 위한 중개 서버를 결정한다. 일 실시예에 있어서 중개 서버 결정부(14)는 게시 프로세스의 아이디 정보에 기초하여 중개 서버의 위치를 결정한다. 구체적으로 게시 프로세스 아이디를 해시 함수에 적용하여 산출되는 해시값에 기초하여 링 토폴로지 상에서 그 위치를 파악한다. 그리고, 그 위치에서부터 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버를 중개 서버로 결정한다. 그러나 이에 한정되는 것은 아니고, 시계 방향으로 순회하였을 때 최초로 만나는 서버로 설정할 수도 있다. When the server operates as a subscription server, the mediation
위치 등록부(16)는 등록 요청부(162)와 정보 관리부(164)를 포함한다. The location register 16 includes a registration requester 162 and an
등록 요청부(162)는 서버가 구독 서버로 동작할 때에 중개 서버로 게시 프로세스 정보와, 구독 프로세스 정보와 그 구독 프로세스의 위치 정보 즉 자신의 아이피 주소를 함께 전송하여 등록을 요청한다. When the server operates as a subscription server, the registration request unit 162 transmits the publication process information, the subscription process information, the location information of the subscription process, that is, its IP address, and requests registration to the intermediate server.
정보 저장부(18)는 메모리와 같은 저장장치로 구현되며, 본 실시예에 있어서 구독 프로세스의 위치와, 구독 프로세스 식별정보, 그 구독 프로세스가 이벤트 메시지를 수신해야하는 게시 프로세스 정보를 저장한다. 정보 저장부(18)에 저장되 는 정보들은 서버가 중개 서버로 동작할 때 필요한 정보들이다. The
정보 관리부(164)는 서버가 중개 서버로 동작할 때, 구독 서버로부터 수신되는 등록 요청에 따라 구독 프로세스 위치정보와, 구독 프로세스 정보, 게시 프로세스 정보를 함께 매칭하여 정보 저장부(18)에 저장한다. When the server operates as an intermediary server, the
통신 처리부(20)는 네트워크 상의 다른 서버들과 데이터 통신을 수행하기 위해 필요한 처리를 담당한다. 본 실시예에 있어서, 서버가 구독 서버로 동작할 때에는 구독 프로세스 위치를 네트워크 상의 서버에 등록하기 위한 등록 요청을 전송한다. 또한, 중개 서버로 동작할 때에는 구독 서버로부터의 등록 요청을 수신하고, 이벤트 메시지를 구독 서버로 전송한다. 또한, 게시 서버로 동작할 경우에는 이벤트 메시지를 중개 서버로 전송한다. The communication processing unit 20 is in charge of processing necessary for performing data communication with other servers on the network. In this embodiment, when the server acts as a subscription server, it sends a registration request to register the subscription process location with a server on the network. In addition, when operating as a mediation server, it receives a registration request from a subscription server and transmits an event message to the subscription server. In addition, when acting as a publishing server, it transmits an event message to an intermediate server.
도 2 는 본 발명의 일 실시예에 따라 네트워크 통신 방법을 도시한 흐름도이다. 2 is a flowchart illustrating a network communication method according to an embodiment of the present invention.
네트워크상에는 다수의 서버들이 포함되며, 서버에 설치되고 동작하는 프로세스의 기능에 따라 구독 서버(22), 중개 서버(24), 게시 서버(26)로 분류하여 그 동작을 설명한다. A plurality of servers are included in the network, and the operation is classified into a subscribing
먼저, 서버들은 링 토폴로지 형성을 위해 각각의 위치 값을 결정한다(200). 일 실시예에 있어서, 참여하는 모든 서버의 아이피 주소에 해시 함수를 적용하여 산출되는 해시 값에 따라 그 위치 값을 결정할 수 있다. 일 실시예에 있어서, 링형 토폴로지에 참여하는 모든 서버들은 OSPF등 인접 서버 탐색 및 토폴로지 구성 프로토콜을 이용하여, 링 형 토폴로지에 참여하는 다른 모든 서버들의 아이피(IP)주소 정보를 파악할 수 있다. 이때, 링 형 토폴로지에 참여하는 서버의 주소나 개수에 변동이 생기면, 링 형 토폴로지를 재구축해야하고, 재구축한 뒤에는 후술할 구독 프로세스 등록 절차를 재수행해야 한다. First, the servers determine each location value for forming a ring topology (200). In one embodiment, the location value may be determined according to a hash value calculated by applying a hash function to IP addresses of all participating servers. In one embodiment, all servers participating in the ring topology can obtain IP address information of all other servers participating in the ring topology by using a neighbor server search and topology configuration protocol such as OSPF. At this time, if there is a change in the address or number of servers participating in the ring topology, the ring topology must be reconstructed, and after the reconstruction, the subscription process registration procedure to be described later must be performed again.
구독 프로세스가 실행되는 구독 서버(22)는 구독 프로세스 정보를 등록하기 위한 중개 서버를 결정한다(210). 일 실시예에 있어서 구독 프로세스가 이벤트 메시지를 수신해야 하는 게시 프로세스 식별 정보를 해시 함수에 적용하여 산출되는 해시 값에 기초하여 중개 서버(24) 위치를 결정할 수 있다. The
그리고 구독 서버(22)는 결정된 중개 서버(24)로 자신의 위치 정보 즉 아이피 정보와, 구독 프로세스 정보, 이벤트 메시지를 수신해야 하는 게시 프로세스 식별 정보를 전송한다(220). 그러면 중개 서버(24)는 구독 서버(22)로부터 수신되는 등록 요청에 따라 저장된 정보들을 갱신한다(230). The
한편, 게시 프로세스가 실행되는 게시 서버(26)는 게시 프로세스에서 생성된 이벤트 메시지를 전송하기 위한 중개 서버(24)를 결정한다(240). 일 실시예에 있어서, 게시 서버(26)는 게시 프로세스 식별 정보를 해시 함수에 적용하여 산출되는 값에 기초하여 중개 서버(24) 위치를 결정할 수 있다. Meanwhile, the
게시 서버(26)는 결정된 중개 서버(24)로 이벤트 메시지를 전송한다(250). 중개 서버(24)는 저장된 정보들에 기초하여 이벤트 메시지를 수신해야 하는 구독 서버의 위치를 파악한다(260). The
그리고 이벤트 메시지에 수신자 프로세스 정보를 기록하여(270), 구독 서 버(22)로 전송한다(280). 구독 서버(22)는 중개 서버(24)로부터 수신되는 이벤트 메시지의 수신자 프로세스 정보에 기초하여 해당 구독 프로세스로 전달한다(290). The receiver process information is recorded in the event message (270) and transmitted to the subscription server 22 (280). The
이하, 도 3 내지 5를 참조하여 네트워크 통신 중 구독 서버가 중개 서버에 등록하는 과정, 구독 서버 및 게시 서버에서 중개 서버를 결정하는 과정, 게시 서버가 이벤트 메시지를 전송하는 과정을 보다 상세히 설명한다. Hereinafter, a process in which a subscription server registers with a mediation server during a network communication, a process of determining a mediation server at a subscription server and a publishing server, and a process of transmitting an event message by the publishing server will be described in detail with reference to FIGS. 3 to 5.
먼저, 네트워크 내에서 프로세스가 실행되는 서버들은 링 형태로 구성되어야 한다. 본 실시예에 있어서, 네트워크 내의 서버들이 링 형태로 구성되기 위해서 해시(hash) 함수를 이용한다. 해시 함수는 f:I1->I2의 함수 f로, 특정한 정수 집합에서 나온 값을 다른 정수 집합의 값으로 대응시키는 역할을 한다. 이때, I1, I2는 정수 집합이고, |I1|>|I2|의 관계를 만족시키는 것이 바람직하다. 예를 들어 해시 함수는 네트워크에 포함되는 각각의 서버들에 링 형태의 구조를 형성하기 위해 서버들의 아이피(IP) 주소를 정수 값으로 변환하는 것일 수 있다. First, servers running processes within the network must be configured in a ring. In the present embodiment, a hash function is used to configure servers in a network in a ring form. The hash function is a function f of f: I 1- > I 2 that maps a value from one set of integers to another. At this time, I 1 and I 2 are integer sets, and it is preferable to satisfy the relation of | I 1 |> | I 2 |. For example, the hash function may be to convert the IP addresses of the servers to integer values to form a ring-shaped structure for each server included in the network.
도 3 은 일 실시예에 따른 링형 토폴로지 네트워크 구조도이다. 3 is a ring topology network structure diagram according to an embodiment.
도 3 에 도시된 바와 같이 네트워크에 포함되는 서버들은 해시함수 f에 의해 변환된 정수값을 가지고, 링 형태의 구조를 형성할 수 있다. As illustrated in FIG. 3, servers included in the network may have an integer value converted by the hash function f, and form a ring-shaped structure.
이하, 링 구성 절차에 대해 보다 상세히 설명한다. 이때 정수 집합 I2는 그 값의 범위가 1~n이라 가정한다. 1은 링의 시작 지점이고, n은 링의 종료 지점이 된다. 예를 들어 임의의 하나의 서버의 IP 주소가 IPk이고, DHT(IPk)=p(이때,1≤p≤n)로 계산되었다고 하면, p가 링 상에서 서버 IPk의 위치이다. 모든 서버의 IP 주소 값에 이 같은 절차를 적용하여 링을 구축할 수 있다. 이와 같이 링에 참여하게 되는 모든 서버가 동일한 해시 함수 f를 적용하여 그 위치를 결정하기 때문에 링의 위상(topology)은 모든 서버에서 동일하게 유지된다. 여기서 해시 함수로 분산 해시 테이블(Distriuted Hash Tale, DHT)을 사용하여 설명하였으나, 이에 한정되는 것은 아니고 다른 형태의 해시 함수로도 사용이 가능하다. Hereinafter, the ring construction procedure will be described in more detail. In this case, the integer set I 2 is assumed to be in the range of 1 to n. 1 is the start of the ring and n is the end of the ring. For example, if the IP address of any one server is IP k and DHT (IP k ) = p (where 1 ≦ p ≦ n), then p is the location of server IP k on the ring. This procedure can be applied to the IP address values of all servers to establish a ring. In this way, the topology of the ring remains the same on all servers because all servers participating in the ring apply the same hash function f to determine their location. Herein, a distributed hash table (Distriuted Hash Tale (DHT)) has been described as a hash function. However, the present invention is not limited thereto and may be used as another hash function.
이 같은 절차가 올바르게 수행되기 위해서는 각각의 서버가 다른 모든 서버의 위치 정보를 파악하여야 한다. 일 실시예에 있어서 OSPF와 같은 인접 서버 탐색 및 토폴로지 구성 프로토콜을 사용하여 모든 서버의 위치 정보 즉, IP 주소 정보를 획득할 수 있다. In order for this procedure to work correctly, each server must know the location of all other servers. In one embodiment, location information, that is, IP address information, of all servers may be obtained using a neighbor server discovery and topology configuration protocol such as OSPF.
도 4 는 일 실시예에 따라 각 서버에 프로세스 배치 과정 설명을 위한 예시도이다. 4 is an exemplary diagram for describing a process of arranging processes in each server according to an exemplary embodiment.
네트워크상에서 소프트웨어에 의해 생성되는 프로세스들은 각각 그 식별 정보(ID:identifier)를 갖는다. 같은 아이디를 갖는 프로세스는 같은 소프트웨어의 프로세스로, 예를 들어 하나의 프로세스가 정상적으로 구동되지 못할 경우를 대비하여 다중화된 것일 수 있다. 도 4에는 프로세스 ②가 두 개의 서버 즉 IP1과 IP2의 서버들에 다중화되어 있다. The processes created by the software on the network each have their ID (identifier). Processes having the same ID are processes of the same software, for example, they may be multiplexed in case one process fails to run normally. In Fig. 4, the
도 5 는 일 실시예에 따라 구독 프로세스의 위치 등록 과정 및 게시 프로세 스가 구독 프로세스로 이벤트 메시지를 전달하는 과정을 설명하기 위한 예시도이다. 5 is an exemplary diagram for describing a process of registering a location of a subscription process and a process of delivering an event message to a subscription process according to an exemplary embodiment.
도 5에서 프로세스 ②가 게시 프로세스이고, 프로세스⑤와 프로세스⑥이 구독 프로세스라 가정한다. In FIG. 5, it is assumed that
먼저, 구독 프로세스는 서버에 설치되면 네트워크상에서 자신의 위치 등록 절차를 수행한다. 예를 들어 IP3주소를 갖는 서버는 소프트웨어 실행에 의해 프로세스 ⑥이 등록되면, 프로세스 ⑥이 어떤 게시 프로세스의 이벤트를 수신하도록 설정되었는지를 조회한다. First, the subscription process, when installed on a server, performs its location registration procedure on the network. For example, a server with an IP 3 address inquires about which posting process the process is set to receive when the process is registered by software execution.
IP3 서버는 프로세스 ⑥이 프로세스 ②로부터 이벤트 메시지를 수신하도록 설정된 사실을 파악하고, 프로세스 ②의 아이디를 해시함수에 적용한다. 이에 따라 네트워크 상에서 게시 프로세스인 프로세스 ②로부터 이벤트 메시지를 수신해야하는 구독 프로세스 ⑥의 위치를 등록할 위치를 결정할 수 있다. The IP 3 server finds out that
일 실시예에 있어서는 도 5에서도 알 수 있듯이, 게시 프로세스 아이디를 적용한 함수값 즉 DHT(2) 값을 찾아 링에서 그 위치를 파악하고, 시계 반대방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 그 등록 위치를 설정한다. 그러나 이에 한정되는 것은 아니고, 시계 방향으로 순회하였을 때 최초로 만나는 서버로 설정할 수도 있다. 구독 프로세스⑥가 등록된 서버 IP3은 결정된 위치 즉 IP4에 구독 프로세스⑥의 위치가 IP3이라는 사실과, 게시 프로세스가 프로세스 ②라는 정보를 등록한다. In one embodiment, as can be seen in Figure 5, find the function value to apply the posting process ID, DHT (2) value to find the location in the ring, when it is anticlockwise it is the first server that meets the IP 4 log Set the registration position. However, the present invention is not limited thereto, and the server may be set to meet the first server when the server rotates clockwise. ⑥ subscription process, the registered server IP 3 registers the determined location information, namely the location of the
또한, 다른 구독 프로세스 ⑤가 등록된 서버 IP4 역시, 전술한 프로세스⑥의 등록 절차와 동일하게 그 게시 프로세스 ②의 아이디를 이용하여 등록 위치를 결정한다. 그리고 구독 프로세스⑤가 등록된 서버 IP4는 결정된 위치 즉 IP4에 구독 프로세스⑤의 위치가 IP4라는 사실과, 게시 프로세스가 프로세스 ②라는 정보를 등록한다. 즉, 게시 프로세스 ②로부터 이벤트 메시지를 수신하는 적어도 하나의 구독 메시지에 대한 정보는, 프로세스 ②의 아이디를 해시 함수에 적용하여 결정되는 위치 서버에 기록된다. 도 5와 같이 해당 위치 서버(IP4)에 테이블 형태로 저장될 수 있다. In addition, the server IP 4 in which the
이에 따라 다수의 구독 프로세스들의 위치 정보를 링에 참여하는 서버들에 분산 등록할 수 있다. 이는 기존의 게시 프로세스를 수행하는 서버가 구독 프로세스의 위치 정보를 모두 파악하고 관리하는 방식과 차이가 있으며, 이에 따라 게시 프로세스가 수행되는 서버에의 데이터 처리량에 대한 부담을 줄일 수 있다. Accordingly, the location information of a plurality of subscription processes can be distributedly registered to the servers participating in the ring. This is different from the way that the server performing the existing publishing process understands and manages all the location information of the subscription process, thereby reducing the burden on data throughput to the server where the publishing process is performed.
한편, 이벤트 메시지를 전송하는 게시 프로세스 ②가 수행되는 서버 IP1은 프로세스 ②로부터 이벤트 메시지가 수신되면, 먼저 해시 함수에 프로세스② 아이디를 적용하여 대응되는 값을 산출한다. 일 실시예에 있어서 DHT(2) 값을 찾아 네트워크에서 서버의 링 구조에서 그 위치를 파악하고, 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 이벤트 메시지를 전송한다. 이때 이벤트 메시 지의 수신자 프로세스 필드에는 수신자 정보가 기록되지 않은 상태이다. On the other hand, the server IP 1, which performs the
이벤트 메시지를 수신한 서버 IP4는 이벤트 메시지의 수신자 프로세스 필드에 기록된 내용이 없으므로, 수신자 프로세스의 파악이 필요하다고 인지한다. 그리고, 자신이 보유하고 있는 구독 프로세스 위치 정보들 중 프로세스 ② 가 전송한 이벤트 메시지를 수신할 구독 프로세스 위치를 파악한다. 이때 구독 프로세스는 적어도 하나 이상일 수 있다. 도 5에서 서버 IP4는 저장된 테이블에 기초하여, 프로세스 ②로부터 전송되는 이벤트 메시지를 수신할 구독 프로세스는 프로세스 ⑤와 프로세스⑥이고, 그 위치는 각각 IP4와 IP3 이라는 사실을 파악할 수 있다. The server IP 4 receiving the event message recognizes that the receiver process needs to be identified because there is no recorded content in the receiver process field of the event message. Also, the subscribing process receives the event message transmitted by the
그리고 서버 IP4는 이벤트 메시지의 수신자 프로세스 필드에 프로세스 ⑤와 프로세스⑥의 아이디 정보를 기록한다. 수신자 프로세스 필드에 프로세스 ⑤의 아이디를 기록한 이벤트 메시지를 서버 IP4로 전달하고, 수신자 프로세스 필드에 프로세스⑥의 아이디 정보를 기록한 이벤트 메시지는 서버 IP3로 전달한다. 그리고 이벤트 메시지를 수신한 서버 IP2와 서버 IP3는 수신자 프로세스 필드에 기록된 프로세스로 이벤트 메시지를 전달할 수 있다. The server IP 4 records the ID information of the
이 같이 이벤트 메시지를 전송하는 방법은 게시프로세스가 어떻게 어느 위치에 다중화되었는지 여부에 관계없이 하나의 서버에서 그 개시 프로세스로부터 이벤트 메시지를 수신하는 구독 프로세스에 대한 위치 정보를 관리하면 된다는 이점이 있다. This method of transmitting an event message has an advantage of managing location information on a subscription process that receives an event message from the initiation process at one server regardless of how and where the publishing process is multiplexed.
예를 들어 다중화된 프로세스 ②의 경우에, 서버 IP1에 설치된 프로세스 ②가 비정상적으로 종료되어 IP2에 설치된 프로세스 ②가 절체 동작을 시작하더라도 서버 IP2역시 DHT(2) 값을 찾아 네트워크에서 서버의 링 구조에서 그 위치를 파악하고, 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 이벤트 메시지를 전송한다. 따라서 다중화된 게시 프로세스가 어느 위치의 서버에서 동작하더라도, 그 게시 프로세스로부터 이벤트 메시지를 수신할 구독 프로세스에 대한 위치 정보는 링 구조상에서 하나의 서버에서만 관리되면 된다. 이에 따라 기존의 다중화된 프로세스끼리 구독 프로세스의 위치 정보를 동기화(synchronization)하는 과정을 없앨 수 있다.For example, in the case of
또한, 구독 프로세스의 위치 정보가 게시 프로세스의 아이디에 해시를 적용한 결과에 따라 서로 다른 서버에 분산 배치되기 때문에 개시 프로세스는 구독 프로세스가 여러 개일 경우에도 한곳의 서버로만 이벤트 메시지를 전송하면 된다. 결국 네트워크상에서 구독 프로세스에 이벤트 메시지를 분배하는 절차를 네트워크상의 서로 다른 서버에서 분산 수행할 수 있다는 효과가 도출된다. In addition, since the location information of the subscription process is distributed to different servers according to the result of applying the hash to the ID of the publishing process, the initiation process only needs to send an event message to one server even when there are several subscription processes. As a result, the effect of distributing the event message to the subscription process on the network can be distributed among different servers on the network.
뿐만 아니라, 프로세스가 설치된 서버가 프로세스의 위치 정보를 관리하기 때문에, 프로세스들이 서로 수행되는 서버의 아이피 주소를 모르더라도, 이벤트 메시지를 송수신할 수 있다. In addition, since the server where the process is installed manages the location information of the process, even if the processes do not know the IP address of the server running with each other, it is possible to send and receive event messages.
즉, 네트워크상에서 다중화된 게시 프로세스들이 구독 프로세스의 위치 정보를 상호 공유할 필요가 없다. 이에 따라 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담을 줄이고, 효율을 높일 수 있다.In other words, multiplexed publishing processes on the network do not need to share the location information of the subscription process with each other. This reduces the burden of maintaining the registration information of the subscription process in the same multiplexed publishing process and increases efficiency.
한편, 전술한 이벤트 메시지 중개 방법, 구독 프로세스의 위치 등록 방법 및 이벤트 메시지 전송 방법은 컴퓨터 프로그램으로 작성 가능하다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의해 읽혀지고 실행됨으로써 구현될 수 있다. 상기 저장매체는 자기 기록매체, 광 기록 매체 등을 포함한다. Meanwhile, the above-described event message mediation method, location registration method of a subscription process, and event message transmission method may be created by a computer program. The program may also be embodied by being stored in a computer readable media and being read and executed by a computer. The storage medium includes a magnetic recording medium, an optical recording medium and the like.
이제까지 본 발명에 대해 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the preferred embodiments of the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the claims, and all differences within the scope equivalent thereto should be construed as being included in the present invention.
도 1 은 본 발명의 일 실시예에 따른 프로세스가 설치된 서버의 구성도,1 is a configuration diagram of a server in which a process is installed according to an embodiment of the present invention;
도 2 는 본 발명의 일 실시예에 따라 네트워크 통신 방법을 도시한 흐름도,2 is a flowchart illustrating a network communication method according to an embodiment of the present invention;
도 3 은 일 실시예에 따른 링형 토폴로지 네트워크 구조도,3 is a ring topology network structure diagram according to an embodiment;
도 4 는 일 실시예에 따라 각 서버에 프로세스 배치 과정 설명을 위한 예시도,4 is an exemplary view for explaining a process of deploying a process to each server according to an embodiment;
도 5 는 일 실시예에 따라 구독 프로세스의 위치 등록 과정 및 게시 프로세스가 구독 프로세스로 이벤트 메시지 전달 과정 설명을 위한 예시도이다. 5 is an exemplary diagram for explaining a process of delivering an event message to a subscription process and a location registration process of a subscription process according to an embodiment.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090120024A KR101598577B1 (en) | 2009-12-04 | 2009-12-04 | - Method for constructing publish-subscribe network and supporting communication using hash function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090120024A KR101598577B1 (en) | 2009-12-04 | 2009-12-04 | - Method for constructing publish-subscribe network and supporting communication using hash function |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110063083A true KR20110063083A (en) | 2011-06-10 |
KR101598577B1 KR101598577B1 (en) | 2016-02-29 |
Family
ID=44397140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090120024A KR101598577B1 (en) | 2009-12-04 | 2009-12-04 | - Method for constructing publish-subscribe network and supporting communication using hash function |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101598577B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013176431A1 (en) * | 2012-05-22 | 2013-11-28 | 삼성에스디에스 주식회사 | System and method for allocating server to server and for efficient messaging |
CN111949418A (en) * | 2020-07-10 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | Subscription message processing method and device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102220636B1 (en) * | 2019-07-25 | 2021-02-26 | 한국전자기술연구원 | Method for frame communication with gate and node field added |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010056756A (en) * | 1999-12-16 | 2001-07-04 | 이계철 | Method for communication processing of TCP/IP socket connection between client processes and server processes |
KR20050072002A (en) * | 2004-01-05 | 2005-07-08 | 주식회사 비즈모델라인 | System and method for sending message or connecting call selectively based on location information, recording medium |
KR20050082498A (en) * | 2004-02-19 | 2005-08-24 | 엘지전자 주식회사 | Home-network system transmitting messages |
-
2009
- 2009-12-04 KR KR1020090120024A patent/KR101598577B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010056756A (en) * | 1999-12-16 | 2001-07-04 | 이계철 | Method for communication processing of TCP/IP socket connection between client processes and server processes |
KR20050072002A (en) * | 2004-01-05 | 2005-07-08 | 주식회사 비즈모델라인 | System and method for sending message or connecting call selectively based on location information, recording medium |
KR20050082498A (en) * | 2004-02-19 | 2005-08-24 | 엘지전자 주식회사 | Home-network system transmitting messages |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013176431A1 (en) * | 2012-05-22 | 2013-11-28 | 삼성에스디에스 주식회사 | System and method for allocating server to server and for efficient messaging |
CN111949418A (en) * | 2020-07-10 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | Subscription message processing method and device |
CN111949418B (en) * | 2020-07-10 | 2023-10-24 | 北京思特奇信息技术股份有限公司 | Subscription message processing method and device |
Also Published As
Publication number | Publication date |
---|---|
KR101598577B1 (en) | 2016-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5557840B2 (en) | Distributed database monitoring mechanism | |
US7103651B2 (en) | Method and apparatus for discovering client proximity network sites | |
US7640339B1 (en) | Method and apparatus for monitoring a node in a distributed system | |
KR101980129B1 (en) | Peer-to-peer network system with manageability | |
US10691820B1 (en) | Real-time distribution of messages via a network with multi-region replication in a hosted service environment | |
US20130007253A1 (en) | Method, system and corresponding device for load balancing | |
US10637794B2 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
KR20090034829A (en) | Inter-proximity communication within a rendezvous federation | |
KR20090034322A (en) | Inter-proximity communication within a rendezvous federation | |
US20120084359A1 (en) | Information processing device, information processing method, and computer readable recording medium | |
WO2009021374A1 (en) | An integrating video service peer to peer networks system | |
CN111327668B (en) | Network management method, device, equipment and storage medium | |
CN112055048B (en) | P2P network communication method and system for high-throughput distributed account book | |
KR100912370B1 (en) | System and method for distributing multimedia streaming service request based on wide area network | |
CN112035422B (en) | Distributed real-time data synchronization method, node equipment and system based on IPFS | |
JP5001880B2 (en) | Streaming service system and method | |
CN112671554A (en) | Node fault processing method and related device | |
US9560135B2 (en) | Technique for communication between networks for distributing digital contents | |
CN111756780B (en) | Method for synchronizing connection information and load balancing system | |
KR20110063083A (en) | Method for constructing publish-subscribe network and supporting communication using hash function | |
JP3930516B2 (en) | Server apparatus, server system, and server system load balancing method | |
JPWO2008056599A1 (en) | P2P data distribution system, P2P data distribution method, and P2P data distribution program | |
JP4223045B2 (en) | DNS server device, request message processing method, and request message processing program | |
JP2023547880A (en) | Network nodes and methods in network nodes for providing backup network functionality | |
JP5017391B2 (en) | Subscriber accommodation changing method, migration destination session control server device and management server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200107 Year of fee payment: 5 |