KR101598577B1 - 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법 - Google Patents

해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법 Download PDF

Info

Publication number
KR101598577B1
KR101598577B1 KR1020090120024A KR20090120024A KR101598577B1 KR 101598577 B1 KR101598577 B1 KR 101598577B1 KR 1020090120024 A KR1020090120024 A KR 1020090120024A KR 20090120024 A KR20090120024 A KR 20090120024A KR 101598577 B1 KR101598577 B1 KR 101598577B1
Authority
KR
South Korea
Prior art keywords
server
subscription
information
publication
event message
Prior art date
Application number
KR1020090120024A
Other languages
English (en)
Other versions
KR20110063083A (ko
Inventor
이병준
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020090120024A priority Critical patent/KR101598577B1/ko
Publication of KR20110063083A publication Critical patent/KR20110063083A/ko
Application granted granted Critical
Publication of KR101598577B1 publication Critical patent/KR101598577B1/ko

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/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] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop 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

네트워크에 포함되는 단말 장치 간 패킷 전송 기술에 관한 것으로, 구독 프로세스가 실행되는 구독 서버로부터 구독 서버의 위치 정보 및 게시 프로세스 정보 등록 요청을 수신하고, 수신되는 등록 요청에 따라 구독 서버의 위치 정보 및 게시 프로세스 정보를 저장하여, 게시 프로세스가 실행되는 게시 서버로부터 이벤트 메시지가 수신되면 상기 저장된 정보에 기초하여 상기 수신된 이벤트 메시지를 수신할 구독 프로세스가 실행되는 구독 서버의 위치를 파악하고, 파악된 구독 서버로 상기 이벤트 메시지를 전달하는 이벤트 메시지 중개 방법에 의해 네트워크상에서 구독 프로세스 위치 등록 정보를 다수의 서버들에 분산시킬 수 있는 효과가 있다.
Figure R1020090120024
게시, 구독, 프로세서, 해시

Description

해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법{Method for constructing publish-subscribe network and supporting communication using hash function}
본 발명은 네트워크에 관한 것으로, 특히 네트워크에 포함되는 단말 장치 간 패킷 전송 기술에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다.[국가관리번호 : 2008-S-010-02, 과제명 : 다계층 광 네트워크 제어 플랫폼 기술 개발]
네트워크를 형성하는 다수의 서버 시스템에서는 여러 가지 소프트웨어들이 운용된다. 소프트웨어들 가운데에는 중요한 이벤트(event)를 발생시키는 것이 있는데, 이를 게시 프로세스(publisher process)라 한다.
게시 프로세스에 의해 발생된 이벤트를 네트워크 상의 분산된 다른 프로세스가 수신하여야 할 경우, 해당 이벤트를 네트워크 패킷 형태로 변환하여 전송해야 한다. 이때 이벤트를 수신하는 프로세스가 구독 프로세스(subscriber process)이다.
구독 프로세스가 게시 프로세스에 의해 발생된 이벤트를 수신하기 위해 구독 프로세스는 자신의 아이디(ID) 정보 및 아이피(IP) 정보를 게시 프로세스에 등록한다. 그리고 게시 프로세스에게 새로운 이벤트가 발생할 경우 자신에게 전송하도록 요청한다. 그런데 이 경우에 이벤트를 발생시키는 게시 프로세스가 다중화되면, 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담이 있다.
또한, 하나의 서버에 여러 개의 게시 프로세스가 존재하는 경우, 해당 서버에 등록되는 구독 프로세스의 양이 많아지면 해당 서버가 처리해야 하는 메시지와 세션(session)의 양이 늘어나기 때문에, 서버의 부하가 급증하게 된다는 문제가 있다.
본 발명은 이 같은 배경에서 도출된 것으로, 게시 프로세스와 구독 프로세스 간 이벤트 메시지 전송에 필요한 정보들을 네트워크상의 서버들에 분산하여 관리하는 것을 목적으로 한다.
상기 기술적 과제는 구독 프로세스가 실행되는 구독 서버로부터 구독 서버의 위치 정보 및 게시 프로세스 정보 등록 요청을 수신하고, 수신되는 등록 요청에 따라 구독 서버의 위치 정보 및 게시 프로세스 정보를 저장하여, 게시 프로세스가 실행되는 게시 서버로부터 이벤트 메시지가 수신되면 상기 저장된 정보에 기초하여 상기 수신된 이벤트 메시지를 수신할 구독 프로세스가 실행되는 구독 서버의 위치를 파악하고, 파악된 구독 서버로 상기 이벤트 메시지를 전달하는 이벤트 메시지 중개 방법에 의해 달성된다.
또한, 구독 프로세스와 대응되는 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하고, 결정된 메시지 중개 서버로 구독 서버의 위치 정보 및 게시 프로세스 정보 등록을 요청하는 것을 특징으로 하는 구독 프로세스가 실행되는 구독 서버에서의 구독 프로세스 위치 등록 방법에 의해서도 달성된다.
이때, 중개 서버를 결정함에 있어, 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로 한다.
그리고, 중개 서버를 결정하기 이전에, 구독 서버의 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 링 형 토폴로지 형성을 위한 위치값을 결정하는 것을 특징으로 한다.
또한, 게시 프로세스로부터 이벤트 메시지가 전달되면, 상기 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하고, 결정된 메시지 중개 서버로 이벤트 메시지를 전송하는 것을 특징으로 하는 게시 프로세스가 실행되는 게시 서버에서 수행되는 구독 프로세스로의 이벤트 메시지 전송 방법에 의해서도 달성된다.
이때 중개 서버를 결정함에 있어, 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로한다.
그리고, 중개 서버를 결정하기 이전에, 구독 서버의 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 링 형 토폴로지 형성을 위한 위치값을 결정하는 것을 특징으로 한다.
본 발명에 따르면, 네트워크 상에서 다중화된 게시 프로세스들이 구독 프로세스의 위치 정보를 상호 공유할 필요가 없다. 따라서 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담을 줄일 수 있다. 즉, 네트워크상에서 구독 프로세스 등록 정보를 다수의 서버들에 분산시킬 수 있는 효과가 있다.
또한 본 발명에 따르면, 구독 프로세스의 위치 정보가 게시 프로세스의 아이디에 해시를 적용한 결과에 따라 서로 다른 서버에 분산 배치되기 때문에, 게시 프로세스는 하나의 서버에만 이벤트 메시지를 보내면 된다.
뿐만 아니라 프로세스들이 상호 아이피(IP) 주소를 모르더라도 이벤트 전송 및 수신이 가능하기 때문에 프로세스에서의 부담을 경감시킬 수 있다.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면들을 참조하여 설명되는 바람직한 실시예들을 통해 더욱 명확해질 것이다. 이하에서는 본 발명을 이러한 실시예들을 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 프로세스가 설치된 서버의 구성도이다.
일 실시예에 있어서 서버는 네트워크상의 단말 장치이며, 생성되고 동작하는 프로세스에 의해 게시 서버, 중개 서버, 구독 서버로 동작할 수 있다.
서버는 프로세스 관리부(10) 및 통신 처리부(20)를 포함한다. 일 실시예에 있어서 프로세스 관리부(10) 및 통신 처리부(20)는 서버의 마이크로프로세서에서 실행되는 소프트웨어 및 그에 탑재되는 논리 회로의 조합으로 구현될 수 있다.
프로세스 관리부(10)는 서버 내에서 프로세스의 시작 및 종료 처리 등을 수행한다. 본 실시예에 있어서, 프로세스 관리부(10)는 메시지 중개부(12), 중개 서버 결정부(14), 위치 등록부(16) 및 정보 저장부(18)를 포함한다.
메시지 중개부(12)는 서버가 게시 서버로 동작할 때, 게시 프로세스에서 발 생된 이벤트 메시지를 통신 처리부(20)로 전달하는 송신 중개부(122)와 서버가 구독 서버로 동작할 때, 통신 처리부(20)를 통해 수신되는 이벤트 메시지를 구독 프로세스로 전달하는 수신 중개부(124)를 포함한다.
중개 서버 결정부(14)는 서버가 구독 서버로 동작할 때에 자신의 위치와, 구독 프로세스가 수신해야하는 이벤트 메시지를 발생시키는 게시 프로세스 정보를 전송하여 등록 요청할 중개 서버를 결정한다. 또한 서버가 게시 서버로 동작할 때에는 게시 프로세스에 의해 발생되는 이벤트 메시지를 구독 프로세스로 전달하기 위한 중개 서버를 결정한다. 일 실시예에 있어서 중개 서버 결정부(14)는 게시 프로세스의 아이디 정보에 기초하여 중개 서버의 위치를 결정한다. 구체적으로 게시 프로세스 아이디를 해시 함수에 적용하여 산출되는 해시값에 기초하여 링 토폴로지 상에서 그 위치를 파악한다. 그리고, 그 위치에서부터 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버를 중개 서버로 결정한다. 그러나 이에 한정되는 것은 아니고, 시계 방향으로 순회하였을 때 최초로 만나는 서버로 설정할 수도 있다.
위치 등록부(16)는 등록 요청부(162)와 정보 관리부(164)를 포함한다.
등록 요청부(162)는 서버가 구독 서버로 동작할 때에 중개 서버로 게시 프로세스 정보와, 구독 프로세스 정보와 그 구독 프로세스의 위치 정보 즉 자신의 아이피 주소를 함께 전송하여 등록을 요청한다.
정보 저장부(18)는 메모리와 같은 저장장치로 구현되며, 본 실시예에 있어서 구독 프로세스의 위치와, 구독 프로세스 식별정보, 그 구독 프로세스가 이벤트 메시지를 수신해야하는 게시 프로세스 정보를 저장한다. 정보 저장부(18)에 저장되 는 정보들은 서버가 중개 서버로 동작할 때 필요한 정보들이다.
정보 관리부(164)는 서버가 중개 서버로 동작할 때, 구독 서버로부터 수신되는 등록 요청에 따라 구독 프로세스 위치정보와, 구독 프로세스 정보, 게시 프로세스 정보를 함께 매칭하여 정보 저장부(18)에 저장한다.
통신 처리부(20)는 네트워크 상의 다른 서버들과 데이터 통신을 수행하기 위해 필요한 처리를 담당한다. 본 실시예에 있어서, 서버가 구독 서버로 동작할 때에는 구독 프로세스 위치를 네트워크 상의 서버에 등록하기 위한 등록 요청을 전송한다. 또한, 중개 서버로 동작할 때에는 구독 서버로부터의 등록 요청을 수신하고, 이벤트 메시지를 구독 서버로 전송한다. 또한, 게시 서버로 동작할 경우에는 이벤트 메시지를 중개 서버로 전송한다.
도 2 는 본 발명의 일 실시예에 따라 네트워크 통신 방법을 도시한 흐름도이다.
네트워크상에는 다수의 서버들이 포함되며, 서버에 설치되고 동작하는 프로세스의 기능에 따라 구독 서버(22), 중개 서버(24), 게시 서버(26)로 분류하여 그 동작을 설명한다.
먼저, 서버들은 링 토폴로지 형성을 위해 각각의 위치 값을 결정한다(200). 일 실시예에 있어서, 참여하는 모든 서버의 아이피 주소에 해시 함수를 적용하여 산출되는 해시 값에 따라 그 위치 값을 결정할 수 있다. 일 실시예에 있어서, 링형 토폴로지에 참여하는 모든 서버들은 OSPF등 인접 서버 탐색 및 토폴로지 구성 프로토콜을 이용하여, 링 형 토폴로지에 참여하는 다른 모든 서버들의 아이피(IP)주소 정보를 파악할 수 있다. 이때, 링 형 토폴로지에 참여하는 서버의 주소나 개수에 변동이 생기면, 링 형 토폴로지를 재구축해야하고, 재구축한 뒤에는 후술할 구독 프로세스 등록 절차를 재수행해야 한다.
구독 프로세스가 실행되는 구독 서버(22)는 구독 프로세스 정보를 등록하기 위한 중개 서버를 결정한다(210). 일 실시예에 있어서 구독 프로세스가 이벤트 메시지를 수신해야 하는 게시 프로세스 식별 정보를 해시 함수에 적용하여 산출되는 해시 값에 기초하여 중개 서버(24) 위치를 결정할 수 있다.
그리고 구독 서버(22)는 결정된 중개 서버(24)로 자신의 위치 정보 즉 아이피 정보와, 구독 프로세스 정보, 이벤트 메시지를 수신해야 하는 게시 프로세스 식별 정보를 전송한다(220). 그러면 중개 서버(24)는 구독 서버(22)로부터 수신되는 등록 요청에 따라 저장된 정보들을 갱신한다(230).
한편, 게시 프로세스가 실행되는 게시 서버(26)는 게시 프로세스에서 생성된 이벤트 메시지를 전송하기 위한 중개 서버(24)를 결정한다(240). 일 실시예에 있어서, 게시 서버(26)는 게시 프로세스 식별 정보를 해시 함수에 적용하여 산출되는 값에 기초하여 중개 서버(24) 위치를 결정할 수 있다.
게시 서버(26)는 결정된 중개 서버(24)로 이벤트 메시지를 전송한다(250). 중개 서버(24)는 저장된 정보들에 기초하여 이벤트 메시지를 수신해야 하는 구독 서버의 위치를 파악한다(260).
그리고 이벤트 메시지에 수신자 프로세스 정보를 기록하여(270), 구독 서 버(22)로 전송한다(280). 구독 서버(22)는 중개 서버(24)로부터 수신되는 이벤트 메시지의 수신자 프로세스 정보에 기초하여 해당 구독 프로세스로 전달한다(290).
이하, 도 3 내지 5를 참조하여 네트워크 통신 중 구독 서버가 중개 서버에 등록하는 과정, 구독 서버 및 게시 서버에서 중개 서버를 결정하는 과정, 게시 서버가 이벤트 메시지를 전송하는 과정을 보다 상세히 설명한다.
먼저, 네트워크 내에서 프로세스가 실행되는 서버들은 링 형태로 구성되어야 한다. 본 실시예에 있어서, 네트워크 내의 서버들이 링 형태로 구성되기 위해서 해시(hash) 함수를 이용한다. 해시 함수는 f:I1->I2의 함수 f로, 특정한 정수 집합에서 나온 값을 다른 정수 집합의 값으로 대응시키는 역할을 한다. 이때, I1, I2는 정수 집합이고, |I1|>|I2|의 관계를 만족시키는 것이 바람직하다. 예를 들어 해시 함수는 네트워크에 포함되는 각각의 서버들에 링 형태의 구조를 형성하기 위해 서버들의 아이피(IP) 주소를 정수 값으로 변환하는 것일 수 있다.
도 3 은 일 실시예에 따른 링형 토폴로지 네트워크 구조도이다.
도 3 에 도시된 바와 같이 네트워크에 포함되는 서버들은 해시함수 f에 의해 변환된 정수값을 가지고, 링 형태의 구조를 형성할 수 있다.
이하, 링 구성 절차에 대해 보다 상세히 설명한다. 이때 정수 집합 I2는 그 값의 범위가 1~n이라 가정한다. 1은 링의 시작 지점이고, n은 링의 종료 지점이 된다. 예를 들어 임의의 하나의 서버의 IP 주소가 IPk이고, DHT(IPk)=p(이때,1≤p≤n)로 계산되었다고 하면, p가 링 상에서 서버 IPk의 위치이다. 모든 서버의 IP 주소 값에 이 같은 절차를 적용하여 링을 구축할 수 있다. 이와 같이 링에 참여하게 되는 모든 서버가 동일한 해시 함수 f를 적용하여 그 위치를 결정하기 때문에 링의 위상(topology)은 모든 서버에서 동일하게 유지된다. 여기서 해시 함수로 분산 해시 테이블(Distriuted Hash Tale, DHT)을 사용하여 설명하였으나, 이에 한정되는 것은 아니고 다른 형태의 해시 함수로도 사용이 가능하다.
이 같은 절차가 올바르게 수행되기 위해서는 각각의 서버가 다른 모든 서버의 위치 정보를 파악하여야 한다. 일 실시예에 있어서 OSPF와 같은 인접 서버 탐색 및 토폴로지 구성 프로토콜을 사용하여 모든 서버의 위치 정보 즉, IP 주소 정보를 획득할 수 있다.
도 4 는 일 실시예에 따라 각 서버에 프로세스 배치 과정 설명을 위한 예시도이다.
네트워크상에서 소프트웨어에 의해 생성되는 프로세스들은 각각 그 식별 정보(ID:identifier)를 갖는다. 같은 아이디를 갖는 프로세스는 같은 소프트웨어의 프로세스로, 예를 들어 하나의 프로세스가 정상적으로 구동되지 못할 경우를 대비하여 다중화된 것일 수 있다. 도 4에는 프로세스 ②가 두 개의 서버 즉 IP1과 IP2의 서버들에 다중화되어 있다.
도 5 는 일 실시예에 따라 구독 프로세스의 위치 등록 과정 및 게시 프로세 스가 구독 프로세스로 이벤트 메시지를 전달하는 과정을 설명하기 위한 예시도이다.
도 5에서 프로세스 ②가 게시 프로세스이고, 프로세스⑤와 프로세스⑥이 구독 프로세스라 가정한다.
먼저, 구독 프로세스는 서버에 설치되면 네트워크상에서 자신의 위치 등록 절차를 수행한다. 예를 들어 IP3주소를 갖는 서버는 소프트웨어 실행에 의해 프로세스 ⑥이 등록되면, 프로세스 ⑥이 어떤 게시 프로세스의 이벤트를 수신하도록 설정되었는지를 조회한다.
IP3 서버는 프로세스 ⑥이 프로세스 ②로부터 이벤트 메시지를 수신하도록 설정된 사실을 파악하고, 프로세스 ②의 아이디를 해시함수에 적용한다. 이에 따라 네트워크 상에서 게시 프로세스인 프로세스 ②로부터 이벤트 메시지를 수신해야하는 구독 프로세스 ⑥의 위치를 등록할 위치를 결정할 수 있다.
일 실시예에 있어서는 도 5에서도 알 수 있듯이, 게시 프로세스 아이디를 적용한 함수값 즉 DHT(2) 값을 찾아 링에서 그 위치를 파악하고, 시계 반대방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 그 등록 위치를 설정한다. 그러나 이에 한정되는 것은 아니고, 시계 방향으로 순회하였을 때 최초로 만나는 서버로 설정할 수도 있다. 구독 프로세스⑥가 등록된 서버 IP3은 결정된 위치 즉 IP4에 구독 프로세스⑥의 위치가 IP3이라는 사실과, 게시 프로세스가 프로세스 ②라는 정보를 등록한다.
또한, 다른 구독 프로세스 ⑤가 등록된 서버 IP4 역시, 전술한 프로세스⑥의 등록 절차와 동일하게 그 게시 프로세스 ②의 아이디를 이용하여 등록 위치를 결정한다. 그리고 구독 프로세스⑤가 등록된 서버 IP4는 결정된 위치 즉 IP4에 구독 프로세스⑤의 위치가 IP4라는 사실과, 게시 프로세스가 프로세스 ②라는 정보를 등록한다. 즉, 게시 프로세스 ②로부터 이벤트 메시지를 수신하는 적어도 하나의 구독 메시지에 대한 정보는, 프로세스 ②의 아이디를 해시 함수에 적용하여 결정되는 위치 서버에 기록된다. 도 5와 같이 해당 위치 서버(IP4)에 테이블 형태로 저장될 수 있다.
이에 따라 다수의 구독 프로세스들의 위치 정보를 링에 참여하는 서버들에 분산 등록할 수 있다. 이는 기존의 게시 프로세스를 수행하는 서버가 구독 프로세스의 위치 정보를 모두 파악하고 관리하는 방식과 차이가 있으며, 이에 따라 게시 프로세스가 수행되는 서버에의 데이터 처리량에 대한 부담을 줄일 수 있다.
한편, 이벤트 메시지를 전송하는 게시 프로세스 ②가 수행되는 서버 IP1은 프로세스 ②로부터 이벤트 메시지가 수신되면, 먼저 해시 함수에 프로세스② 아이디를 적용하여 대응되는 값을 산출한다. 일 실시예에 있어서 DHT(2) 값을 찾아 네트워크에서 서버의 링 구조에서 그 위치를 파악하고, 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 이벤트 메시지를 전송한다. 이때 이벤트 메시 지의 수신자 프로세스 필드에는 수신자 정보가 기록되지 않은 상태이다.
이벤트 메시지를 수신한 서버 IP4는 이벤트 메시지의 수신자 프로세스 필드에 기록된 내용이 없으므로, 수신자 프로세스의 파악이 필요하다고 인지한다. 그리고, 자신이 보유하고 있는 구독 프로세스 위치 정보들 중 프로세스 ② 가 전송한 이벤트 메시지를 수신할 구독 프로세스 위치를 파악한다. 이때 구독 프로세스는 적어도 하나 이상일 수 있다. 도 5에서 서버 IP4는 저장된 테이블에 기초하여, 프로세스 ②로부터 전송되는 이벤트 메시지를 수신할 구독 프로세스는 프로세스 ⑤와 프로세스⑥이고, 그 위치는 각각 IP4와 IP3 이라는 사실을 파악할 수 있다.
그리고 서버 IP4는 이벤트 메시지의 수신자 프로세스 필드에 프로세스 ⑤와 프로세스⑥의 아이디 정보를 기록한다. 수신자 프로세스 필드에 프로세스 ⑤의 아이디를 기록한 이벤트 메시지를 서버 IP4로 전달하고, 수신자 프로세스 필드에 프로세스⑥의 아이디 정보를 기록한 이벤트 메시지는 서버 IP3로 전달한다. 그리고 이벤트 메시지를 수신한 서버 IP2와 서버 IP3는 수신자 프로세스 필드에 기록된 프로세스로 이벤트 메시지를 전달할 수 있다.
이 같이 이벤트 메시지를 전송하는 방법은 게시프로세스가 어떻게 어느 위치에 다중화되었는지 여부에 관계없이 하나의 서버에서 그 개시 프로세스로부터 이벤트 메시지를 수신하는 구독 프로세스에 대한 위치 정보를 관리하면 된다는 이점이 있다.
예를 들어 다중화된 프로세스 ②의 경우에, 서버 IP1에 설치된 프로세스 ②가 비정상적으로 종료되어 IP2에 설치된 프로세스 ②가 절체 동작을 시작하더라도 서버 IP2역시 DHT(2) 값을 찾아 네트워크에서 서버의 링 구조에서 그 위치를 파악하고, 시계 반대 방향으로 순회하였을 때 최초로 만나는 서버 즉 IP4로 이벤트 메시지를 전송한다. 따라서 다중화된 게시 프로세스가 어느 위치의 서버에서 동작하더라도, 그 게시 프로세스로부터 이벤트 메시지를 수신할 구독 프로세스에 대한 위치 정보는 링 구조상에서 하나의 서버에서만 관리되면 된다. 이에 따라 기존의 다중화된 프로세스끼리 구독 프로세스의 위치 정보를 동기화(synchronization)하는 과정을 없앨 수 있다.
또한, 구독 프로세스의 위치 정보가 게시 프로세스의 아이디에 해시를 적용한 결과에 따라 서로 다른 서버에 분산 배치되기 때문에 개시 프로세스는 구독 프로세스가 여러 개일 경우에도 한곳의 서버로만 이벤트 메시지를 전송하면 된다. 결국 네트워크상에서 구독 프로세스에 이벤트 메시지를 분배하는 절차를 네트워크상의 서로 다른 서버에서 분산 수행할 수 있다는 효과가 도출된다.
뿐만 아니라, 프로세스가 설치된 서버가 프로세스의 위치 정보를 관리하기 때문에, 프로세스들이 서로 수행되는 서버의 아이피 주소를 모르더라도, 이벤트 메시지를 송수신할 수 있다.
즉, 네트워크상에서 다중화된 게시 프로세스들이 구독 프로세스의 위치 정보를 상호 공유할 필요가 없다. 이에 따라 구독 프로세스의 등록 정보를 다중화된 게시 프로세스 전부가 동일한 상태로 유지해야 한다는 부담을 줄이고, 효율을 높일 수 있다.
한편, 전술한 이벤트 메시지 중개 방법, 구독 프로세스의 위치 등록 방법 및 이벤트 메시지 전송 방법은 컴퓨터 프로그램으로 작성 가능하다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의해 읽혀지고 실행됨으로써 구현될 수 있다. 상기 저장매체는 자기 기록매체, 광 기록 매체 등을 포함한다.
이제까지 본 발명에 대해 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1 은 본 발명의 일 실시예에 따른 프로세스가 설치된 서버의 구성도,
도 2 는 본 발명의 일 실시예에 따라 네트워크 통신 방법을 도시한 흐름도,
도 3 은 일 실시예에 따른 링형 토폴로지 네트워크 구조도,
도 4 는 일 실시예에 따라 각 서버에 프로세스 배치 과정 설명을 위한 예시도,
도 5 는 일 실시예에 따라 구독 프로세스의 위치 등록 과정 및 게시 프로세스가 구독 프로세스로 이벤트 메시지 전달 과정 설명을 위한 예시도이다.

Claims (10)

  1. 참여하는 모든 서버의 아이피 주소에 해시 함수를 적용하여 산출되는 해시 값에 따라 위치 값을 결정하여 링 형태 네트워크를 구축하는 단계;
    구독 프로세스가 실행되는 구독 서버로부터 구독 서버의 위치 정보 및 게시 프로세스 정보 등록 요청을 수신하는 단계;
    상기 수신되는 등록 요청에 따라 구독 서버의 위치 정보 및 게시 프로세스 정보를 저장하는 단계;
    게시 프로세스가 실행되는 게시 서버로부터 이벤트 메시지가 수신되면 상기 저장된 정보에 기초하여 상기 수신된 이벤트 메시지를 수신할 구독 프로세스가 실행되는 구독 서버의 위치를 파악하는 단계; 및
    상기 파악된 구독 서버로 상기 이벤트 메시지를 전달하는 단계;를 포함하는 것을 특징으로 하는 이벤트 메시지 중개 방법.
  2. 삭제
  3. 삭제
  4. 구독 프로세스가 실행되는 구독 서버에서의 구독 프로세스 위치 등록 방법에 있어서,
    상기 구독 프로세스와 대응되는 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하는 단계; 및
    상기 결정된 메시지 중개 서버로 상기 구독 서버의 위치 정보 및 게시 프로세스 정보 등록을 요청하는 단계;를 포함하며,
    상기 결정하는 단계는 상기 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로 하는 구독 프로세스 위치 등록 방법.
  5. 삭제
  6. 삭제
  7. 게시 프로세스가 실행되는 게시 서버에서 수행되는 구독 프로세스로의 이벤트 메시지 전송 방법에 있어서,
    상기 게시 프로세스로부터 이벤트 메시지가 전달되면, 상기 게시 프로세스 식별 정보를 이용하여 메시지 중개 서버를 결정하는 단계; 및
    상기 결정된 메시지 중개 서버로 상기 이벤트 메시지를 전송하는 단계;를 포함하며,
    상기 결정하는 단계는 상기 게시 프로세스 식별 정보를 해시 함수에 적용하여 생성되는 해시값에 기초하여 상기 메시지 중개 서버를 결정하는 것을 특징으로 하는 이벤트 메시지 전송 방법.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020090120024A 2009-12-04 2009-12-04 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법 KR101598577B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090120024A KR101598577B1 (ko) 2009-12-04 2009-12-04 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090120024A KR101598577B1 (ko) 2009-12-04 2009-12-04 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법

Publications (2)

Publication Number Publication Date
KR20110063083A KR20110063083A (ko) 2011-06-10
KR101598577B1 true KR101598577B1 (ko) 2016-02-29

Family

ID=44397140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090120024A KR101598577B1 (ko) 2009-12-04 2009-12-04 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법

Country Status (1)

Country Link
KR (1) KR101598577B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012498A (ko) * 2019-07-25 2021-02-03 한국전자기술연구원 G/n 필드가 부가된 프레임 통신 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101920630B1 (ko) * 2012-05-22 2018-11-21 삼성에스디에스 주식회사 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
CN111949418B (zh) * 2020-07-10 2023-10-24 北京思特奇信息技术股份有限公司 一种订阅消息处理方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100566238B1 (ko) * 1999-12-16 2006-03-29 주식회사 케이티 복수개의 클라이언트 프로세스와 복수개의 서버프로세스간 tcp/ip 소켓 통신처리 방법
KR20050072002A (ko) * 2004-01-05 2005-07-08 주식회사 비즈모델라인 위치정보에 기반하는 선택적 메시지 전송 또는 호연결방법 및 시스템과 기록매체
KR20050082498A (ko) * 2004-02-19 2005-08-24 엘지전자 주식회사 메시지 전송형 홈 네트워크 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012498A (ko) * 2019-07-25 2021-02-03 한국전자기술연구원 G/n 필드가 부가된 프레임 통신 방법
KR102220636B1 (ko) * 2019-07-25 2021-02-26 한국전자기술연구원 G/n 필드가 부가된 프레임 통신 방법

Also Published As

Publication number Publication date
KR20110063083A (ko) 2011-06-10

Similar Documents

Publication Publication Date Title
US6714966B1 (en) Information delivery service
US20150215400A1 (en) File Upload Method And System
US7640339B1 (en) Method and apparatus for monitoring a node in a distributed system
JP5741150B2 (ja) 中継装置、中継プログラム、及び中継方法
CN106230896A (zh) 一种消息推送方法、装置及系统
US10637794B2 (en) Resource subscription method, resource subscription apparatus, and resource subscription system
TW200803303A (en) Inter-proximity communication within a rendezvous federation
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
KR20140009931A (ko) 컨텐츠 이름 기반의 컨텐츠 중심 네트워크에서 컨텐츠 및 실시간 스트리밍 컨텐츠 제공을 위한 컨텐츠 요청자 및 컨텐츠 제공자의 통신 방법
KR20090034829A (ko) 랑데뷰 연합 내에서의 근접지간 통신을 위한 방법, 컴퓨터 판독가능 매체 및 컴퓨터 프로그램 제품
US9276850B2 (en) Packet processing device for IP-based information-centric network
US20120084359A1 (en) Information processing device, information processing method, and computer readable recording medium
JP5001880B2 (ja) ストリーミングサービスのシステムと方法
US20140310375A1 (en) Network node apparatus for information-centric networking and operating method of the network node apparatus
JP2006277569A (ja) 負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法
US20140108609A1 (en) Technique for communication between networks for distributing digital contents
KR101598577B1 (ko) 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법
US20150074234A1 (en) Content system and method for chunk-based content delivery
EP2533499B1 (en) Method and system for service message transmission based on matching rule
WO2013083085A1 (zh) 数据获取方法及装置
US20200186463A1 (en) Method and system for name-based in-networking processing
KR102437289B1 (ko) 정보 중심 네트워크에서 프로듀서 이동성 지원을 위한 패킷 경로 설정 방법 및 장치
JPWO2008056599A1 (ja) P2pデータ配信システム、p2pデータ配信方法、及びp2pデータ配信プログラム
CN109831313B (zh) 群组通信方法、设备及计算机可读存储介质
JP2009070172A (ja) コンテンツ分散保存システム、提供元サーバ装置登録方法、ノード装置、及びノード処理プログラム

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