KR20110070447A - 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법 - Google Patents

데이터 분배 서비스에서 통신 참여자의 분산 발견 방법 Download PDF

Info

Publication number
KR20110070447A
KR20110070447A KR1020090127275A KR20090127275A KR20110070447A KR 20110070447 A KR20110070447 A KR 20110070447A KR 1020090127275 A KR1020090127275 A KR 1020090127275A KR 20090127275 A KR20090127275 A KR 20090127275A KR 20110070447 A KR20110070447 A KR 20110070447A
Authority
KR
South Korea
Prior art keywords
topic
distributed
endpoint
hash table
address
Prior art date
Application number
KR1020090127275A
Other languages
English (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 주식회사 케이티
Priority to KR1020090127275A priority Critical patent/KR20110070447A/ko
Publication of KR20110070447A publication Critical patent/KR20110070447A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 데이터 분배 서비스(DDS : Data Distribution Service)에서 통신 참여자의 분산 발견 방법에 관한 것으로, 로컬 네트워크 내에서는 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장하고, 원격 네트워크 범위에서는 통신 주소를 발견하면 분산 해시 테이블(DHT : Distributed Hash Table)을 이용하여 여러 노드에 분산하여 저장한 후에, 로컬 네트워크 내에서는 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고, 원격 네트워크 범위에서는 분산 해시 테이블을 이용하여 토픽을 검색하는, 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법을 제공하고자 한다.
이를 위하여, 본 발명은 네트워크에서의 분산 발견 방법에 있어서, 도메인을 로컬 네트워크 범위와 원격 네트워크 범위로 구분하는 단계; 상기 구분된 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장하고, 상기 구분된 원격 네트워크 범위에서 통신 주소를 발견하면 분산 해시 테이블(DHT)을 이용하여 여러 노드에 분산하여 저장하는 단계; 검색하고자 하는 토픽의 위치를 확인하는 단계; 및 상기 확인 결과, 상기 로컬 네트워크에 있으면 상기 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고, 상기 원격 네트워크에 있으면 상기 원격 네트워크 범위에서 분산 해시 테이블을 이용하여 토픽을 검색하는 단계를 포함한다.
데이터 분배 서비스, 분산 발견, 로컬 네트워크, 기본 발견 방법, 원격 네트워크, 분산 해시 테이블, 대표 노드

Description

데이터 분배 서비스에서 통신 참여자의 분산 발견 방법{Method of distributed discovery of communication participant in data distribution service}
본 발명은 데이터 분배 서비스(DDS : Data Distribution Service)에서 통신 참여자의 분산 발견 방법에 관한 것으로, 더욱 상세하게는 원격 네트워크에서 데이터 분배 서비스를 할 수 있는 확장성을 부여하기 위해서, 모든 참여자마다 모든 상대방의 통신 주소를 저장하는 방식 대신에, 통신 주소를 발견하면 여러 참여자가 분산하여 저장하는, 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 관한 것이다.
또한, 본 발명은 로컬 네트워크에서는 데이터 분배 서비스의 기본 발견 프로토콜을 이용하여 통신 주소를 발견하여 저장하고, 원격 네트워크에서는 모든 참여자들이 모든 통신 주소를 저장하는 방식 대신에 통신 주소를 발견하면 여러 참여자에게 분산하여 저장하는, 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 관한 것이다.
먼저, 데이터 분배 서비스의 기본 발견 프로토콜(기본 발견 방법)에 대하여 살펴보면 다음과 같다.
데이터 분배 서비스(DDS : Data Distribution Service)는 통신에 참여하는 참여자들이 서로 자동으로 발견하는 기본적인 발견(discovery) 방법을 가지고 있다. 이러한 기본 발견 방법은 데이터 분배 서비스의 같은 도메인 내에 새로운 참여자가 들어오거나 데이터를 정의할 때마다 응용의 도움 없이 자동으로 도메인 내의 모든 참여자들에게 새로운 통신 주소를 전달하고 그 참여자들의 통신 주소 목록이 변경된다는 장점이 있다. 로컬 네트워크에서는 자동적인 기본 발견 발견이 장점이 되지만, 원격 네트워크의 범위에서는 참여자와 통신 데이터의 수가 많아짐에 따라서 네트워크 트래픽이 과도하게 발생하고 각 참여자 노드가 관리해야 할 통신 주소 정보가 많아짐에 따라 메모리 사용량도 많아져서 성능에 문제가 발생한다.
이러한 데이터 분배 서비스의 기본 발견 프로토콜(기본 발견 방법)에 대하여 좀 더 상세히 살펴보면 다음과 같다.
데이터 분배 서비스(DDS)는 데이터 중심의 발행(Publish)과 구독(Subscribe)을 지원하는 OMG(Object Management Group) 표준으로서, 군사용 시스템과 같은 실시간 시스템을 위한 데이터 분배 서비스를 규정하고 있다. 기존의 클라이언트-서버 구조에서는 메시지를 전달할 송신자와 메시지를 전달받을 수신자가 서로 상대방 주소를 알아야 하므로 주소를 설정하는 과정이 필요하다. 그러나 데이터 분배 서비스는 특정 토픽(데이터의 주제)에 관심 있는 응용들이 토픽에 대해 참여하는 구 독(Subscribe)과 발행(Publish)을 통해 통신 상대에 대한 주소 설정을 대신한다.
데이터 분배 서비스는 논리적인 도메인을 설정하고, 해당 도메인 내의 참여자들만 통신이 가능하다. 참여자는 토픽에 데이터를 발행(게시)하는 발행자, 토픽의 데이터를 구독하는 구독자 중에서 필요한 개체를 설정할 수 있다. 또한, 각 발행자는 상대에게 실제로 데이터를 전송하는 여러 DW(DataWriter)를 가질 수가 있고, 각 구독자는 상대로부터 실제로 데이터를 전달받는 DR(DataReader)을 가질 수 있다. 토픽을 통해 서로 연결된 DW와 DR이 실제로 메시지(데이터)를 주고받는다.
이러한 데이터 분배 서비스는 참여자들이 토픽을 통하여 데이터 통신을 할 수 있도록 하기 위해서 초기에 서로의 통신 주소를 자동으로 발견하는 기본 발견 프로토콜을 제공한다. 각 참여자는 자신과 같은 토픽에 대해 발행 또는 구독하고자 하는 타 참여자와 그 타 참여자의 엔드포인트(DW, DR)를 발견한다. 이처럼 타 참여자의 엔드포인트들을 발견하면, 각 참여자는 타 참여자와 데이터 통신을 하기 위해서 자신의 엔드포인트에 통신에 필요한 정보(타 참여자의 통신 주소 등)를 저장한다. 이러한 기본 발견 방법은 미리 정해진 토픽과 기본 발견 프로토콜을 이용하므로 응용이 명시적으로 정의하지 않는다. 이러한 과정을 도 1을 참조하여 상세히 살펴보면 다음과 같다.
도 1은 데이터 분배 서비스의 기본 발견 방법에 대한 일실시예 흐름도이다.
먼저, 제 1 과정은 하나의 도메인 내의 참여자들을 서로 발견하는 과정으로서, 동일 도메인 내에 참여자가 생성되거나 종료할 때 참여자 데이터를 통해서 미 리 알려진 피어(Peer)의 캐쉬에 로컬 참여자의 정보를 저장한다.
이러한 제 1 과정을 좀 더 상세히 살펴보면, DDS 노드 A의 새로운 로컬 참여자는 자신의 정보(ID, 참여자의 주소 정보(위치 정보), QoS 정보 등)를 네트워크에 광고한다(11).
이후, DDS 노드 A의 참여자는 네트워크로부터 다른 새로운 참여자를 발견하면 해당 타 참여자의 정보(ID, 참여자의 주소 정보(위치 정보), QoS 정보 등)를 전달받아 자신의 로컬 캐쉬에 저장한다(12).
다음으로, 제 2 과정은 엔드포인트 정보를 서로 주고받는 과정으로, 다른 새로운 참여자를 발견하자마자 참여자 간의 엔드포인트들을 찾아서 매칭(로컬 엔드포인트 광고, 원격 엔드포인트의 발견)한다.
이러한 제 2 과정을 좀 더 상세히 살펴보면, 로컬 참여자는 자신의 DW 엔드포인트에 대한 데이터(ID, DW의 주소 정보(위치 정보), 토픽 정보, QoS 정보)를 네트워크에 광고한다(13).
그리고 로컬 참여자는 자신의 DR 엔드포인트에 대한 데이터(ID, DR의 주소 정보(위치 정보), 토픽 정보, QoS 정보)를 네트워크에 광고한다(14).
그리고 로컬 참여자는 원격 참여자의 DW 엔드포인트에 대한 데이터(ID, DW의 주소 정보(위치 정보), 토픽 정보, QoS 정보)를 발견하여 자신의 로컬 캐쉬에 저장한다(15).
그리고 로컬 참여자는 원격 참여자의 DR 엔드포인트에 대한 데이터(ID, DR의 주소 정보(위치 정보), 토픽 정보, QoS 정보)를 발견하여 자신의 로컬 캐쉬에 저장 한다(16).
상기와 같은 기본 발견 프로토콜은 각 참여자들이 모든 참여자들과 그 엔드포인트들의 정보를 독립적으로 저장해야 한다. 또한, 이러한 기본 발견 프로토콜은 참여자들이 새로 생성되거나 삭제될 때마다 업데이트된 정보가 네트워크에서 교환되어야 하고, 평상시에도 참여자 노드가 살아있는지를 네트워크를 통해서 확인해야 한다.
그러므로 이러한 기본 발견 프로토콜은 소규모 네트워크에는 적합할 수 있지만, 참여자 노드의 수가 증가할수록 네트워크 트래픽의 복잡도가 증가하고 각 참여자의 메모리 사용량도 많아지므로 확장성이 낮다는 단점이 있다.
따라서 상기와 같은 종래의 기본 발견 방법은 한 도메인 내에서 참여자가 참여하거나 탈퇴함에 따라 동적으로 통신 주소를 변경한다는 장점이 있지만, 동일 도메인 내에 새로운 참여자가 들어오거나 데이터가 정의될 때마다 도메인 내의 모든 참여자들에게 새로운 통신 주소를 전달하고 그 참여자들의 통신 주소 목록이 변경되어야 하기 때문에, 참여자와 데이터의 수가 많아짐에 따라 네트워크 트래픽이 과도하게 발생하고 참여자 노드가 관리해야 할 통신 주소 정보가 많아져서 메모리 사용량이 증대되어 확장성이 떨어지는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서 본 발명은 데이터 분배 서비스에서 여러 참여자의 통신 주소를 발견하면 분산 해시 기술(분산 해시 테이블)을 이용하여 여러 노드에 분산하여 저장하는, 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 로컬 네트워크 내에서는 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장하고, 원격 네트워크 범위에서는 통신 주소를 발견하면 분산 해시 테이블(DHT : Distributed Hash Table)을 이용하여 여러 노드에 분산하여 저장한 후에, 로컬 네트워크 내에서는 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고, 원격 네트워크 범위에서는 분산 해시 테이블을 이용하여 토픽을 검색하는, 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법을 제공하는 데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 방법은, 네트워크에서의 분산 발견 방법에 있어서, 도메인을 로컬 네트워크 범위와 원격 네트워크 범위로 구분하는 단계; 상기 구분된 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장하고, 상기 구분된 원격 네트워크 범위에서 통신 주소를 발견하면 분산 해시 테이블(DHT)을 이용하여 여러 노드에 분산하여 저장하는 단계; 검색하고자 하는 토픽의 위치를 확인하는 단계; 및 상기 확인 결과, 상기 로컬 네트워크에 있으면 상기 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고, 상기 원격 네트워크에 있으면 상기 원격 네트워크 범위에서 분산 해시 테이블을 이용하여 토픽을 검색하는 단계를 포함한다.
한편, 본 발명의 다른 방법은, 원격 네트워크에서의 분산 발견 방법에 있어서, 대표 노드가 토픽에 대한 로컬주소 캐쉬의 내용을 분산 해쉬 테이블(DHT)에 풋(PUT)하는 단계; 상기 대표 노드가 상기 분산 해쉬 테이블에 상기 로컬주소 캐쉬 의 내용을 저장하는 저장 단계; 새로운 참여 노드가 상기 분산 해쉬 테이블(DHT)에 겟(GET) 함수를 호출하여 토픽에 대한 원격 엔드포인트의 발견을 요청하는 단계; 및 상기 대표 노드가 상기 분산 해쉬 테이블에서 해당 토픽의 원격 포인트의 값을 발견하여 상기 새로운 참여 노드에게 반환하는 발견 단계를 포함한다.
상기와 같은 본 발명은, 데이터 분배 서비스에서 통신 대상들을 저장하는 영역을 분산함으로써, 통신 대상 노드 수에 대한 확장성을 제공할 수 있는 효과가 있다.
또한, 본 발명은, 네트워크 트래픽 감소에 따른 성능 향상 효과가 있다.
또한, 본 발명은, 노드별 메모리 사용량 감소에 따른 성능 향상 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
그리고 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때 이는 "직접적으로 연결"되어 있는 경우뿐만 아니라 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함" 또는 "구비"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함하거나 구비할 수 있는 것을 의미한다.
먼저, 본 발명에 대한 이해를 돕기 위하여 분산 해시 테이블(DHT : Distributed Hash Table) 기술에 대하여 살펴보기로 한다.
본 발명은 데이터 분배 서비스의 기본 발견 프로토콜의 확장성에 대한 단점을 보완하기 위하여 분산 해시 기술(분산 해시 테이블)을 이용한 분산 발견 프로토콜을 제시한다. 여기서, 분산 해시 테이블(DHT : Distributed Hash Table)은 참여하는 노드들의 통신 주소를 여러 노드에 분산하여 저장하고, 노드의 참여와 탈퇴를 자동으로 관리하므로 확장성이 높은 구조이다. 이때, 분산 해시 테이블(DHT)은 통신 주소를 저장하고 검색하기 위한 부하(load)를 분산하고, 각 노드가 거의 같은 수의 키를 가지도록 한다.
분산 해쉬 테이블 프로토콜 중의 하나인 코드(Chord)는 데이터의 식별자를 노드의 식별자로 매핑할 수 있는 피어-투-피어 라우팅 및 위치 인프라이다. 데이터의 위치 서비스는 데이터 아이템을 키(key)로 식별하고, (키, 데이터 아이템) 쌍을 그 키가 매핑된 노드에 저장함으로써, 코드(Chord) 상에 구현될 수 있다. 코드(Chord)에서 노드들도 또한 키로 식별되는데, 키(key)는 노드와 데이터에 같은 주소 공간으로 할당된다. 코드(Chord)에는 PUT(키, 데이터 아이템)과 GET(키) API(Application Programming Interface)가 있으며, PUT(키, 데이터 아이템)은 키와 값의 쌍을 분산 해시 테이블에 저장하고, GET(키)는 분산 해시 테이블에서 키에 해당하는 값을 찾아온다.
한편, 전술한 바와 같이, 본 발명은 로컬 네트워크 및 원격 네트워크 범위에 따라 데이터 분배 서비스에 참여하는 참여자와 엔드포인트(DW, DR)의 주소들을 발견하여 모든 노드에 중복하여 저장하거나 또는 여러 노드에 분산하여 저장하며, 로컬 네트워크 내에서는 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고 원격 네트워크 범위에서는 분산 해시 테이블을 이용하여 토픽을 검색하는 분산 발견 방법에 관한 것이다. 이때, 본 발명에서는 통신 주소의 분산 저장과 토픽 검색을 위해서 피어-투-피어 프로토콜의 분산 해쉬 테이블(DHT : Distributed Hash Table)을 이용한다.
그리고 분산 해쉬 테이블의 (키, 값)은 (토픽 ID, 엔드포인트 주소들)로 정의한다. 토픽 ID와 엔드포인트 주소들의 구체적인 형식은 다음의 [표 1]과 같이 정의한다.

토픽 ID
엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트; 엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트;...; 엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트;
- 엔드포인트 : 참여자에 속하는 DR 또는 DW.
- 엔드포인트의 ID : 참여자에 속하는 DR 또는 DW의 ID(전체 엔드포인트간에 유일함).
- 엔드포인트의 주소 : 참여자가 속한 노드 주소(전체 노드들간에 유일함).
- 엔드포인트의 포트 : 참여자의 DR 또는 DW를 찾을 수 있는 포트 번호(노드 내에서 유일함).
상기 [표 1]과 같이, 값에서는 토픽을 통해서 서로 데이트를 교환하는 여러 엔드포인트들의 주소를 ";"로 구분한다. 그리고 하나의 엔드포인트 주소 내에서는 ","를 이용하여 주소 속성들을 구분한다.
도 2는 본 발명에 따른 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 대한 일실시예 설명도로서, 동일 도메인 내의 참여자들끼리만 통신이 가능하므로 범위는 하나의 도메인이며, 세 개의 로컬 네트워크가 원격 네트워크(WAN)를 통해서 통신이 가능한 예를 나타내고 있다.
먼저, 로컬 네트워크_1을 살펴보면 로컬 네트워크_1 내의 참여자1_A, 참여자1_B, 참여자1_C는 데이터 분배 서비스의 기본 발견 프로토콜을 이용하여 로컬 네트워크_1 내의 상대방 참여자와 그 엔드포인트들을 발견하고 각 참여자들의 로컬주소 캐쉬에 상대방 참여자들의 주소들을 저장한다. 이때, 로컬주소 캐쉬에 저장되는 로컬주소는 [토픽, DW 주소, DR 주소, QoS]의 형태를 가진다. 그리고 로컬 네트워크_2, 및 로컬_네트워크_3 또한 같은 방식으로 기본 발견 프로토콜을 이용한다.
하지만, 특정 토픽이 여러 로컬 네트워크를 걸쳐서 송/수신되어야 하는 경우에는, 앞에서 언급한 확장성의 문제가 발생하므로 분산 해시 테이블 기법을 이용한 분산 발견 프로토콜을 적용한다. 즉, 각 로컬_네트워크 내의 대표 참여자들(대표 노드들)은 원격 네트워크를 통해서 통신하는 토픽과 해당 토픽에 연관된 참여자, 및 해당 참여자의 엔드포인트 주소들만 저장하는 원격주소 캐쉬를 가진다. 이때, 하나의 로컬 네트워크 내에서 하나의 대표 참여자(대표 노드)만이 이러한 원격주소 캐쉬를 가지고 해당 로컬 네트워크의 대표적인 역할을 수행한다. 도 2에서는 참여자1_C, 참여자 2_C, 참여자3_C가 각 로컬 네트워크의 대표 참여자(대표 노드)로서 원격주소 캐쉬를 보유하여 분산 발견 디렉토리의 역할을 수행한다. 이때, 각 원격주소 캐쉬에는 분산 해쉬 테이블(DHT : Distributed Hash Table)이 저장된다. 그리고 원격주소 캐쉬에 저장되는 원격주소는 [토픽, DW 또는 DR의 주소리스트]의 형태를 가진다.
도 3은 본 발명에 따른 분산 발견 방법을 이용한 통신 대상 위치의 저장 및 발견 과정에 대한 일실시예 설명도로서, 원격 네트워크에서 원격주소 캐쉬들을 생성하는 방식과 다수의 참여자들이 특정 토픽에 대해 데이터를 발행하고 해당 토픽의 데이터를 구독하기 위해서 원격주소 캐쉬를 이용하여 다른 참여자 및 엔드포인트의 주소를 발견(검색)하는 방식을 나타내고 있다. 이러한 분산 발견 방법은 분산 해쉬 테이블의 코드(Chord) 프로토콜을 따르고 있다.
예를 들어, 도 3에 도시된 바와 같이, 노드 A의 참여자1_C가 토픽 T1, T2, T3를 원격 네트워크상의 다른 참여자들과 통신할 수 있도록 원격주소 캐쉬에 저장해야 할 경우에 PUT 함수, 즉 PUT API(Application Programming Interface)를 이용하여 자신의 엔드포인트의 주소(DW11, DW12, DR13)를 분산 해쉬 테이블에 저장한다(301, 302, 303). 이때, 분산 해쉬 테이블의 각 레코드는 토픽의 이름과 토픽을 통해서 상호 통신하고자 하는 DW 및 DR의 주소를 저장한다. 즉, 분산 해쉬 테이블은 (토픽명, 엔드포인트 주소)의 형식을 갖는다. 도 3에서 각 토픽에 대한 참여자와 엔드포인트가 가운데의 분산 해쉬 테이블에 명시되어 있다.
또한, 상기와 같은 방식으로, 노드 B의 참여자2_C가 PUT 함수를 이용하여 각 토픽(토픽 T1, T2, T3)에 대한 자신의 엔드포인트의 주소(DR21, DR22, DW23)를 분산 해쉬 테이블에 저장한다(304, 305, 306).
또한, 상기와 같은 방식으로, 노드 C의 참여자 3_C가 PUT 함수를 이용하여 각 토픽(토픽 T1, T2, T3)에 대한 자신의 엔드포인트의 주소(DR31, DR32, DR33)를 분산 해쉬 테이블에 저장한다(307, 308, 309).
상기와 같이 일련의 PUT 함수를 수행하게 되면, 분산 해쉬 테이블은 각 토픽별로 참여 엔드포인트 주소를 가지게 된다(316, 317, 318).
이때, 원격주소 캐쉬인 분산 해쉬 테이블의 필드는 다음의 값을 가진다.
- 키(T1), 값(DW11_id, DW11_addr, DW11_port; DR21_id, DR21_addr, DR21_port; DR31_id, DR31_addr, DR31_port)
- 키(T2), 값(DW12_id, DW12_addr, DW12_port; DR22_id, DR22_addr, DR22_port; DR32_id, DR32_addr, DR32_port)
- 키(T3), 값(DR13_id, DR13_addr, DR13_port; DW23_id, DW23_addr, DW23_port; DR33_id, DR33_addr, DR33_port)
한편, 참여자1_C가 T1 토픽을 통해서 참여자2_C, 및 참여자3_C에게 데이터를 분배(발행)하기 위해서, GET API(Application Programming Interface)를 호출하여 두 참여자에 속한 DR의 주소를 발견하고(310), PUB(T1)을 수행하여 두 참여자에게 데이터를 분배(발행)한다(313). 그리고 T2 토픽과 T3 토픽에 대해서도 유사한 과정을 수행한다(311, 312, 314, 315).
도 4는 본 발명에 따른 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 대한 일실시예 전체 흐름도이다.
먼저, 도메인을 로컬 네트워크 범위와 원격 네트워크 범위로 구분한다(401).
그리고 상기 구분된 로컬 네트워크 내에서는 데이터 분배 서비스의 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장한다(402).
그리고 상기 구분된 원격 네트워크 범위에서는 통신 주소를 발견하면 분산 해시 테이블(DHT : Distributed Hash Table)을 이용하여 원격 네트워크상의 여러 노드에 분산하여 저장한다(403).
이후, 검색하고자 하는 토픽이 자신의 로컬 네트워크에 있는지를 확인한다(404).
상기 확인 결과(404), 로컬 네트워크에 있으면 로컬 네트워크 내에서는 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색한다(405).
한편, 상기 확인 결과(404), 로컬 네트워크에 없으면 원격 네트워크 범위에서는 분산 해시 테이블을 이용하여 토픽을 검색한다(406).
도 5는 본 발명에 따른 로컬주소 캐쉬와 원격주소 캐쉬를 이용한 분산 발견 방법에 대한 일실시예 상세 흐름도이다.
먼저, 참여자(참여자 노드)가 토픽을 검색하고자 하는지, 아니면 토픽을 생성한 후에 저장하고자 하는지를 확인한다(501).
상기 확인 결과(501), 토픽을 생성한 후에 저장하고자 하는 경우 참여자는 로컬 엔드포인트(DW, DR)를 생성하고 토픽을 연결한다(502).
이후, 참여자는 로컬주소 캐쉬에 (토필 정보, 로컬 엔드포인트 주소)를 저장한다(503).
이후, 참여자는 로컬 네트워크 내에서 기본 발견 방법을 이용하여 해당 토픽의 타 엔드포인트(DW, DR)와 주소를 상호 교환하여 로컬주소 캐쉬에 저장한다(504).
이후, 해당 로컬 네트워크의 대표 노드는 로컬주소 캐쉬의 내용을 분산 해쉬 테이블(DHT : Distributed Hash Table)에 (토픽, 엔드포인트_주소)로 풋(PUT)한다(505).
그리고 대표 노드는 분산 해쉬 테이블에 해당 토픽의 필드가 이미 존재하는지를 확인하여(506) 존재하지 않으면 분산 해쉬 테이블에 해당 토픽을 키로 하는 새로운 필드를 생성하여 로컬주소 캐쉬의 내용을 (토픽, 엔드포인트_주소) 형태로 저장하고(507), 이미 존재하면 분산 해쉬 테이블에서 해당 토픽이 키인 필드의 값에 엔드포인트_주소를 추가한다(508).
한편, 상기 확인 결과(501), 참여자가 토픽을 검색(발견)하고자 하는 경우 통신하고자 하는 토픽을 알고 있는 새로운 참여자가 네트워크에 참여하여(509) 로컬 네트워크 내에서 기본 발견 방법을 이용하여 해당 토픽의 타 엔드포인트(DW, DR)와 주소를 상호 교환하여 로컬주소 캐쉬에 저장한다(510).
이후, 새로운 참여자는 토픽에 대한 원격 엔드포인트의 발견을 요청하기 위해 분산 해쉬 테이블(DHT : Distributed Hash Table)에 겟(GET) 함수인 겟(토픽_키)을 호출한다(511).
이후, 대표 노드는 분산 해쉬 테이블에 해당 토픽_키에 매핑되는 필드가 있는지를 확인하여(512) 있으면 토픽_키에 해당하는 원격 포인트의 값을 해당 참여자에게 반환하고(513), 없으면 "502" 과정으로 진행하여 새로운 참여자가 해당 토픽을 생성하는 과정을 수행한다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 발명은 데이터 분배 서비스에 적합한 형태인 영상 협업 서비스, 인터넷 컨퍼런스 서비스, 및 네트워크 기반 피씨(PC) 서비스 등에 이용될 수 있다.
도 1은 데이터 분배 서비스의 기본 발견 방법에 대한 일실시예 흐름도,
도 2는 본 발명에 따른 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 대한 일실시예 설명도,
도 3은 본 발명에 따른 분산 발견 방법을 이용한 통신 대상 위치의 저장 및 발견 과정에 대한 일실시예 설명도,
도 4는 본 발명에 따른 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법에 대한 일실시예 전체 흐름도,
도 5는 본 발명에 따른 로컬주소 캐쉬와 원격주소 캐쉬를 이용한 분산 발견 방법에 대한 일실시예 상세 흐름도이다.

Claims (6)

  1. 네트워크에서의 분산 발견 방법에 있어서,
    도메인을 로컬 네트워크 범위와 원격 네트워크 범위로 구분하는 단계;
    상기 구분된 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 통신 주소를 발견하여 저장하고, 상기 구분된 원격 네트워크 범위에서 통신 주소를 발견하면 분산 해시 테이블(DHT)을 이용하여 여러 노드에 분산하여 저장하는 단계;
    검색하고자 하는 토픽의 위치를 확인하는 단계; 및
    상기 확인 결과, 상기 로컬 네트워크에 있으면 상기 로컬 네트워크 내에서 데이터 분배 서비스의 기본 발견 방법을 이용하여 토픽을 검색하고, 상기 원격 네트워크에 있으면 상기 원격 네트워크 범위에서 분산 해시 테이블을 이용하여 토픽을 검색하는 단계
    를 포함하는 분산 발견 방법.
  2. 원격 네트워크에서의 분산 발견 방법에 있어서,
    대표 노드가 토픽에 대한 로컬주소 캐쉬의 내용을 분산 해쉬 테이블(DHT)에 풋(PUT)하는 단계;
    상기 대표 노드가 상기 분산 해쉬 테이블에 상기 로컬주소 캐쉬의 내용을 저 장하는 저장 단계;
    새로운 참여 노드가 상기 분산 해쉬 테이블(DHT)에 겟(GET) 함수를 호출하여 토픽에 대한 원격 엔드포인트의 발견을 요청하는 단계; 및
    상기 대표 노드가 상기 분산 해쉬 테이블에서 해당 토픽의 원격 포인트의 값을 발견하여 상기 새로운 참여 노드에게 반환하는 발견 단계
    를 포함하는 분산 발견 방법.
  3. 제 2 항에 있어서,
    상기 저장 단계는,
    상기 대표 노드가 상기 분산 해쉬 테이블에 해당 토픽의 필드가 이미 존재하는지를 확인하는 단계;
    상기 확인 결과, 존재하지 않으면 상기 분산 해쉬 테이블에 상기 해당 토픽을 키로 하는 새로운 필드를 생성하여 상기 로컬주소 캐쉬의 내용을 저장하는 단계 및
    상기 확인 결과, 이미 존재하면 상기 분산 해쉬 테이블에서 상기 해당 토픽이 키인 필드의 값에 엔드포인트_주소를 추가하는 단계
    를 포함하는 분산 발견 방법.
  4. 제 3 항에 있어서,
    상기 발견 단계는,
    상기 대표 노드가 상기 분산 해쉬 테이블에 해당 토픽의 키에 매핑되는 필드가 있는지를 확인하여 있으면 상기 토픽의 키에 해당하는 원격 포인트의 값을 상기 새로운 참여 노드에게 반환하는 분산 발견 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 분산 해쉬 테이블은,
    (키, 값) 필드가 (토픽 ID, 엔드포인트 주소들)로 이루어진 분산 발견 방법.
  6. 제 5 항에 있어서,
    상기 엔드포인트 주소들은,
    {엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트; 엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트;...; 엔드포인트의 ID, 엔드포인트의 주소, 엔드포인트의 포트;} 형식을 가지는 분산 발견 방법.
KR1020090127275A 2009-12-18 2009-12-18 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법 KR20110070447A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090127275A KR20110070447A (ko) 2009-12-18 2009-12-18 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090127275A KR20110070447A (ko) 2009-12-18 2009-12-18 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법

Publications (1)

Publication Number Publication Date
KR20110070447A true KR20110070447A (ko) 2011-06-24

Family

ID=44401959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090127275A KR20110070447A (ko) 2009-12-18 2009-12-18 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법

Country Status (1)

Country Link
KR (1) KR20110070447A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140142828A (ko) * 2013-06-05 2014-12-15 한국전자통신연구원 통신 개체 탐색 방법 및 장치
KR20160000158A (ko) 2014-06-24 2016-01-04 엠디에스테크놀로지 주식회사 데이터 분산 서비스 기반의 토픽 관리 시스템
KR20160000157A (ko) 2014-06-24 2016-01-04 엠디에스테크놀로지 주식회사 데이터 분산 서비스 기반의 응용프로그램이 사용하는 토픽 및 QoS 정책 관리 시스템
KR20190012079A (ko) * 2017-07-26 2019-02-08 한전케이디엔주식회사 데이터 분산 서비스를 이용한 전기차 충전 인프라 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140142828A (ko) * 2013-06-05 2014-12-15 한국전자통신연구원 통신 개체 탐색 방법 및 장치
KR20160000158A (ko) 2014-06-24 2016-01-04 엠디에스테크놀로지 주식회사 데이터 분산 서비스 기반의 토픽 관리 시스템
KR20160000157A (ko) 2014-06-24 2016-01-04 엠디에스테크놀로지 주식회사 데이터 분산 서비스 기반의 응용프로그램이 사용하는 토픽 및 QoS 정책 관리 시스템
KR20190012079A (ko) * 2017-07-26 2019-02-08 한전케이디엔주식회사 데이터 분산 서비스를 이용한 전기차 충전 인프라 시스템

Similar Documents

Publication Publication Date Title
RU2433461C2 (ru) Взаимодействие между соседствами в рамках объединения по механизму рандеву
US8250230B2 (en) Optimizing communication using scalable peer groups
US7496602B2 (en) Optimizing communication using scalable peer groups
RU2431184C2 (ru) Межблизостная связь в федерации рандеву
RU2400806C2 (ru) Организация стыковки запросов на ресурс с соответствующими ресурсами
US7675874B2 (en) Peer-to-peer instant messaging and chat system
KR100953594B1 (ko) 피어 투 피어 기반의 소셜 네트워킹 서비스 방법 및 시스템
CN1764171B (zh) 将资源请求与对应的资源会合
US7694167B2 (en) Maintaining routing consistency within a rendezvous federation
JP5551270B2 (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
US7643458B1 (en) Communicating between wireless communities
US20120185487A1 (en) Method, device and system for publication and acquisition of content
US9871754B2 (en) Communicating messages between publishers and subscribers in a mesh routing network
KR20110070447A (ko) 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법
CN101543017A (zh) 加入对等网络的设备和方法
US8514742B2 (en) Node device, information process method, and recording medium recording node device program
CN101790222A (zh) 移动网络实现服务的方法及设备
CN115776493A (zh) 资源请求方法、系统、装置、设备及存储介质
Fayçal et al. CAP: a context-aware peer-to-peer system
Sawant et al. A Peer-to-Peer Architecture to Enable Versatile Lookup System Design

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid