KR20090053532A - 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 - Google Patents
단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 Download PDFInfo
- Publication number
- KR20090053532A KR20090053532A KR1020070120412A KR20070120412A KR20090053532A KR 20090053532 A KR20090053532 A KR 20090053532A KR 1020070120412 A KR1020070120412 A KR 1020070120412A KR 20070120412 A KR20070120412 A KR 20070120412A KR 20090053532 A KR20090053532 A KR 20090053532A
- Authority
- KR
- South Korea
- Prior art keywords
- terminal
- role
- capability
- super
- node
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
-
- 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
-
- 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/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- 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/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
본 발명은 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 각 단말의 능력 변화에 따라 능력 값을 계산하여 계산된 능력 값을 기초로 해당 단말이 능력에 따른 역할로 변경할 수 있도록 하는 장치 및 방법에 관한 것이다.
본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치는, 소정 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 상기 단말의 능력 값을 계산하는 계산부와, 상기 계산된 능력값을 기초로 상기 단말에 설정된 역할이 적합한지를 판단하는 판단부와, 상기 판단 결과를 기초로 상기 단말에 설정되어 있는 역할의 설정 정보를 변경 및 관리하는 설정부를 포함한다.
P2P, 슈퍼노드, 리프노드, 능력값
Description
본 발명은 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 각 단말의 능력 변화에 따라 능력값을 계산하여 계산된 능력값을 기초로 해당 단말이 능력에 따른 역할로 변경할 수 있도록 하는 장치 및 방법에 관한 것이다.
종래에 연구된 알고리즘인 Peer-to-Peer(P2P) 기술은 HTTP와 같이 어플리케이션 레벨의 프로토콜로, 사용자 사이의 실시간 통신이나 자원분배 및 교환 등을 지원하는 기술로 정의되고 있다. P2P는 일반적으로 서버를 이용한 혼합형(hybrid) P2P 방식과 모든 노드가 서버와 클라이언트의 동작을 수행하는 순수(pure) P2P 방식이 존재한다. 순수 P2P 방식은 근본적인 Peer-to-Peer의 개념을 따른 것으로, 대규모의 망에서 각 노드가 공유된 자원의 검색 및 발견이 어렵다는 문제점을 가지고 있다.
혼합형 P2P 방식은 서버를 통해 각 노드들에게 자원의 공유 기능을 제공하는 것으로, 서비스를 제공할 수 있는 중앙 서버와 실질적인 공유 자원을 가지고 있는 P2P 노드들로 구성되어있다. 중앙 서버는 각 노드들로부터 네트워크 연결 세션을 유지하고 공유한 자원들의 메타 데이터들을 관리 유지하여 P2P 노드들의 필요에 의한 자원을 쉽게 검색할 수 있다. 각 P2P 노드는 공유 자원을 검색하기 위해 서버에 접속하여 해당 자원을 보유한 노드를 검색하고 실제 자원의 교환은 두 노드 간의 연결을 통해 이루어진다. 이러한 구조의 대표적인 예로는 세계적으로 잘 알려져 있는 Napster이다. 그러나, 이와 같은 구조는 확장성이 부족하고, 또한 중앙 집중으로 인한 비용의 상승 및 안정성에 취약하다는 문제점을 가지고 있다.
순수 P2P 방식은 널리 알려져 있는 Gnutella와 Freenet등이 대표적으로 사용하고 있다. Gnutella의 경우 각 노드는 응용 차원에서 스스로 연결하여 네트워크를 이루고 있는데, 이 노드는 파일을 검색하기 위해 일정 범위 안으로 검색 메시지를 플루딩(Flooding)하여 파일을 가진 노드의 정보를 얻을 수 있다. 그러나 주기적으로 메시지를 모든 Gnutella 네트워크에 플루딩하기 때문에 확장성에 대한 큰 문제점을 가지고 있다.
반면에, 해쉬 테이블을 이용하여 실제 값과 해쉬 함수를 통해 얻은 키의 조합에 의해 네트워크를 구축하는 P2P 오버레이 네트워크는 확장성 및 안정성을 제공한다. 대표적인 방법으로는 DHT(Distributed Hash Table: 분산 해쉬 테이블)를 사용하는 Chord, Pastry, 및 CAN 등이 있다.
Chord의 경우 원형의 m-bit 가상 식별자 공간을 이용하여 노드와 공유 파일을 각각 해쉬 함수를 통해 얻은 식별값을 배치시킨다. 또한 자원을 검색하기 위해 각 노드는 핑거 테이블(finger table)이라는 라우팅 테이블을 유지하여 검색 수행을 용이하게 한다.
Pastry는 마이크로소프트사(Microsoft)에 의해 제안된 방법으로 IP 주소나 공개키를 암호화 해쉬를 통해 중복되지 않는 랜덤한 128비트 노드 식별자로 만들어 이름 공간상에 분산되도록 한다. 또한 데이터도 128비트 키를 가지며, 데이터로부 유추되는 키에 가장 가까운 키를 가진 노드에 저장되어 검색을 용이하게 한다.
CAN은 해쉬 함수를 통해 d 차원에서 한 점에 대응되는 벡터 P (p = hash(key) )를 얻어 각 노드들은 가상공간을 분할한 존의 범위에 해당하는 데이터를 저장하게 된다.
또한, 구조적 피어투피어 시스템은 대부분 평면적인 구조를 갖고 있으며, 피어투피어 시스템에 참여하는 피어는 모두 동일한 역할을 수행한다.
최근에는 단말간의 능력이 상이하다는 것에 초점을 맞추고 능력별로 다른 역할을 수행하도록 하는 방법들이 제안되고 있으며, 이에, 피어들을 슈퍼노드(SuperNode)와 리프노드(LeafNode) 등의 역할로 구분한다. 그러나, 노드의 능력이 변경될 수 있다는 점이 고려되지 않고 있기 때문에, 처음에 부여한 슈퍼노드의 역할이 얼마 후에는 적합하지 않은 역할이 될 수도 있고, 처음에는 리프노드의 역할을 부여 받았으나 나중에 더 좋은 능력을 갖게 되었음에도 불구하고 리프노드의 역할로 인해 능력을 충분히 활용할 수 없게 되어, 피어투피어 시스템의 전체적인 성능이 떨어지게 된다는 문제점이 있다.
한국공개특허 2004-0101050(식별자를 피어투피어 네트워크 내 피어 그룹에 할당하기 위한 방법)은 새로운 식별자의 배포에 요구되는 데이터 트래픽 양을 최소 화하면서 피어-그룹에 대한 식별자를 자동으로 결정하기 위한 적합한 파라미터 및 알고리즘을 정의하는 것으로, 가장 적합한 기존의 그룹 식별자가 결정되어 재사용되고, OwnerZone의 구조가 피어들을 부가하거나 제거함으로써 변경될 때, 및 새로운 OwnerZone이 OwnerZone들을 분리하거나 합체함으로써 생성될 때 이용되는 기술을 개시하고 있으나, 이는 단말의 능력을 기초로 하여 해당 단말이 수행하는 역할을 변경시키는 기술에 대해서 전혀 언급하고 있지 않다.
본 발명의 기술적 과제는, 각 단말의 능력 변화를 체크하여 변화된 능력에 따른 역할을 수행하도록 하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치는, 소정 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 상기 단말의 능력값을 계산하는 계산부와, 상기 계산된 능력값을 기초로 상기 단말에 설정된 역할이 적합한지를 판단하는 판단부와, 상기 판단 결과를 기초로 상기 단말에 설정되어 있는 역할의 설정 정보를 변경 및 관리하는 설정부를 포함한다.
또한, 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 방법은, 소정 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 상기 단말의 능력값을 계산하는 단계와, 상기 계산된 능력값을 기초로 상기 단말에 설정된 역할이 적합한지를 판단하는 단계와, 상기 판단 결과를 기초로 상기 단말에 설정되어 있는 역할의 설정 정보를 변경하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있 다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
상기한 바와 같은 본 발명의 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
각 단말의 능력 변화를 체크하여 변화된 능력에 따른 역할을 수행하도록 하는 장점이 있다.
또한, 단말이 자신의 능력에 따른 역할을 수행하도록 함으로써, 피어투피어 시스템의 효율을 극대화할 수 있는 장점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
DHT를 기반으로 오버레이 네트워크 시스템에 참여하는 단말들의 능력이 상이하다는 것에 초점을 맞추어 능력별로 다른 역할을 수행하도록 하는 방법들이 제안 되고 있으며, 이에 피어들을 슈퍼노드(SuperNode)와 리프노드(LeafNode) 등의 역할로 구분한다. 여기서, 슈퍼노드는 리프노드 보다 능력(capability)이 좋은 노드를 말하며, 이에, 수퍼노드는 일정 키 공간(key space)에 해당하는 리프노드들을 관리한다.
또한, 슈퍼노드는 자신이 관리하는 리프노드들의 레퍼런스(reference)들을 저장한다. 즉, 각 노드가 레퍼런스를 공개(publish)하면, 레퍼런스에 해당하는 키(key) 값에 가장 가까운 키 값을 가진 슈퍼노드에게 해당 레퍼런스가 저장된다. 여기서, 레퍼런스는 각 노드들이 DHT 상에 공개(publish) 한 데이터 또는 데이터에 대한 메타데이터를 말한다.
또한, 리프노드는 슈퍼노드 보다 능력이 부족한 노드로서, 슈퍼노드에 의존하는 노드를 말한다. 즉, 리프노드는 자신의 키 공간에 해당하는 레퍼런스에 대한 공개 또는 룩업(lookup)요청이 들어 왔을 때 슈퍼노드에게 요청을 전달하여 대신 처리하게 한다.
도 1은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 슈퍼노드의 역할을 수행하는 단말의 블록도를 나타내는 도면이다.
도시된 바와 같이, 슈퍼노드의 역할을 수행하는 단말(이하, '슈퍼 단말' 이라고 한다)(100)은 송수신부(110), 계산부(120), 판단부(130), 설정부(140), 저장부(150) 및 제어부(160)를 포함하여 구성된다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그 렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.
송수신부(110)는 리프노드의 역할을 수행하는 단말로부터 공개 또는 룩업 요청 및 레퍼런스를 수신하며, 단말의 역할이 변경되어 리프노드의 역할을 수행할 경우, 다음 슈퍼 단말에게 기 저장된 레퍼런스를 전송한다.
계산부(120)는 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 능력(capability) 값을 계산한다. 여기서, 능력값은 대역폭, 전송속도, 지연시간 등의 네트워크 성능과, 배터리의 잔량, 및 필요로 하는 리소스(예를 들어, 메모리 또는 CPU)의 사용가능 정도에 따라 계산된다. 또한, 능력값 계산 시 각 파라미터에 가중치를 조정할 수 있다. 능력값을 계산하는 수학식은 하기 [수학식1]과 같다.
[수학식 1]
C = wnN + wbB + wrR
여기서, C는 각 단말들의 능력값을 말하며, N은 네트워크 능력을 나타내며, B는 배터리 잔량을 나타내며, R은 이용 가능한 리소스를 나타낸다. 또한, wn, wb, wr는N, B, R의 가중치를 나타내다. 본원 발명에서는 네트워크 능력(즉, N)에 가장 큰 가중치를 두어서 계산한다.
판단부(130)는 계산부(120)를 통해 얻어진 능력값을 기초로 현재 단말에 설정된 역할이 적합한지를 판단한다. 여기서, 판단부(130)는 계산된 단말의 능력값이 소정의 임계값 보다 클 경우, 해당 단말이 슈퍼노드의 역할을 수행해야 한다고 판단하고, 계산된 단말의 능력값이 소정의 임계값 보다 작을 경우, 해당 단말이 리프노드의 역할을 수행해야 한다고 판단한다.
설정부(140)는 판단부(130)의 판단을 기초로 해당 단말에 설정되어 있는 역할의 설정을 변경 및 관리한다.
예를 들어, 설정부(140)는 현재 슈퍼 단말이지만 판단부(130)가 리프노드의 역할을 수행해야 한다고 판단한 경우, 해당 슈퍼 단말의 역할을 리프노드로 변경하여 해당 단말이 리프노드의 역할을 수행하도록 한다.
반대로, 현재 단말의 역할이 리프노드이지만 판단부(130)가 슈퍼노드의 역할을 수행해야 한다고 판단한 경우, 해당 단말의 역할을 리프노드에서 슈퍼노드로 변경한다.
저장부(150)는 계산부(120)가 계산한 단말의 능력값 및 설정부(140)가 설정한 현재 단말의 역할에 대한 정보를 저장한다.
또한, 저장부(150)는 자신이 관리하는 리프노드의 역할을 수행하는 단말들의 레퍼런스를 저장하며, 능력값 계산에 이용되는 정보들(예를 들어, 네트워크 성능, 배터리의 잔량, 및 필요로 하는 리소스(예를 들어, 메모리 또는 CPU)의 사용가능 정도 등)을 저장한다.
제어부(160)는 설정부(140)의 역할 설정 정보를 기초로하여 슈퍼 단말이 리프노드의 역할을 수행하게 될 경우, 새로운 슈퍼 단말을 검색하고, 저장부(150)에 기 저장되어 있던 리프노드의 역할을 수행하는 단말들의 레퍼런스 정보를 송수신부(110)를 통해 검색된 새로운 슈퍼 단말에게 전송한다.
또한, 제어부(160)는 설정부(140)의 역할 설정 정보를 기초로하여 슈퍼 단말이 리프노드의 역할을 수행하게 될 경우, 자신이 관리하던 리프노드의 역할을 수행하는 단말들에게 자신의 역할이 슈퍼노드에서 리프노드로 변경되었다는 것을 알린다.
또한, 제어부(160)는 슈퍼 단말(100)을 구성하는 각 기능성 블록들(110 내지 150)의 동작을 제어한다.
도 2는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 리프노드의 역할을 수행하는 단말의 블록도를 나타내는 도면이다.
도시된 바와 같이, 리프노드의 역할을 수행하는 단말(이하, '리프 단말'이라고 한다)(200)은 송수신부(210), 계산부(220), 판단부(230), 설정부(240), 저장부(250) 및 제어부(260)를 포함하여 구성된다. 여기서, 계산부(220), 판단부(230) 및 설정부(240)는 상기 도 1에서 설명한 슈퍼 단말(100)의 계산부(120), 판단 부(130) 및 설정부(140)와 동일한 동작 및 기능을 수행한다.
송수신부(210)는 공개 또는 룩업 요청 및 레퍼런스를 슈퍼 단말(100)에게 전송하며, 단말의 역할이 변경되어 슈퍼노드의 역할을 수행할 경우, 키 공간상 다음에 위치한 슈퍼 단말(100)로부터 자신이 관리해야 할 리프 단말들의 레퍼런스를 수신 받는다.
저장부(250)는 계산부(220)가 계산한 단말의 능력값 및 설정부(140)가 설정한 현재 단말의 역할에 대한 정보를 저장한다.
또한, 저장부(250)는 능력값 계산에 이용되는 정보들(예를 들어, 네트워크 성능, 배터리의 잔량, 및 필요로 하는 리소스(예를 들어, 메모리 또는 CPU)의 사용가능 정도 등)을 저장한다.
제어부(260)는 설정부(240)의 역할 설정 정보를 기초로하여 리프 단말(200)이 슈퍼노드의 역할을 수행하게 될 경우, 키 공간상 다음에 위치한 슈퍼 단말(100)을 검색하고, 검색된 슈퍼 단말(100)에게 관리하던 리프 단말들의 레퍼런스를 요청한다. 이에, 제어부(260)는 해당 단말이 슈퍼 단말로 동작하도록 제어한다.
또한, 제어부(260)는 리프 단말(200)을 구성하는 각 기능성 블록들(210 내지 250)의 동작을 제어한다.
도 3은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 단말의 능력 및 능력이 변경되는 예를 나타내는 도면이다.
도시된 바와 같이, 각 단말들은 이더넷(etherent), 무선랜(WLAN) 및 UMTS 등으로 통신할 수 있다. 여기서, 대역폭 및 데이터 전송률 등의 네트워크 성능이 단 말의 주요 능력이라고 판단하는 경우, 이더넷으로 연결된 단말들의 능력이 가장 좋고, 그 다음 무선랜으로 연결된 단말들의 능력이 좋으며, UMTS으로 연결된 단말들의 능력이 가장 나쁘다고 판단할 수 있다.
즉, 이더넷으로 연결된 단말들은 슈퍼노드의 역할을 수행하는 슈퍼 단말(100)이 되고, 무선랜이나 UMTS으로 연결된 단말들은 리프노드의 역할을 수행하는 리프 단말(200)이 된다.
예를 들어, 무선랜으로 연결되어 있어 리프노드의 역할을 수행하던 소정 단말(즉, 리프 단말)(310)이 핸드오버되어 이더넷으로 이동하게 되면, 단말(310)의 네트워크 이동 정보와 이동한 네트워크의 특성 정보를 통해 해당 단말(310)의 새로운 능력값을 계산한다. 계산 결과 단말(310)의 능력값이 소정의 임계값보다 큰 경우, 해당 단말(310)은 리프노드 역할 대신 슈퍼노드 역할을 수행하는 슈퍼 단말로 변경된다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 단말들이 역할을 변경하는 예를 나타내는 도면이다. 여기서는, 계층적 (Hierarchical) 형태의 Chord Ring을 보여주고 있으나, 다른 DHT 프로토콜에도 적용될 수 있다.
도 4a에 도시된 바와 같이, 원래 리프노드의 역할을 수행하는 단말(420)이었으나, 해당 단말(420)의 능력값을 계산한 결과 슈퍼노드의 역할을 수행할 수 있다고 판단되면, 해당 단말(420)이 슈퍼노드의 역할을 수행하도록 해당 단말(420)의 역할 설정을 변경한다.
그 다음, 리프노드의 역할을 수행하던 단말(420)은 슈퍼노드의 역할을 수행하는 단말(420)로 변경되고, 리프 단말에서 슈퍼 단말로 변경되었기 때문에 해당 단말(즉, 새로운 슈퍼 단말)(420)은 DHT 키 공간 상의 일정 부분을 관리해야 한다. 이에, 새로운 슈퍼 단말(420)은 키 공간상 다음에 위치한 슈퍼 단말(410)을 검색한다. 여기서, 새로운 슈퍼 단말(420)은 키 공간상 다음에 위치한 슈퍼 단말(410)이 관리하던 키 값부터 자신의 키 값 부분까지를 관리한다.
그 다음, 검색된 키 공간상 다음에 위치한 슈퍼 단말(410)로부터 자신이 관리해야 하는 리프 단말들(421, 422)의 레퍼런스를 전송 받는다. 새로운 슈퍼 단말(420)은 키 공간상 다음에 위치한 슈퍼 단말(410)이 관리하던 리프 단말들 중 일부의 리프 단말들만을 관리하게 된다. 이하, 도 5에서 리프 단말에서 슈퍼 단말로 역할을 변경하는 과정을 보다 자세히 설명한다.
도 4b에 도시된 바와 같이, 원래 슈퍼노드의 역할을 수행하는 단말(460)이었으나, 해당 단말(460)의 능력값을 계산한 결과 슈퍼노드의 역할을 수행할 수 없다고 판단되면, 해당 단말(460)이 리프노드의 역할을 수행하도록 해당 단말(460)의 역할 설정을 변경한다.
이에, 슈퍼노드의 역할을 수행하던 단말(460)은 리프노드의 역할을 수행하는 단말(460)로 변경되고, 슈퍼 단말에서 리프 단말로 변경되었기 때문에 자신이 관리하던 리프 단말들의 레퍼런스를 전송하기 위해 자신이 키 값 부분을 관리하는 가까운 새로운 슈퍼 단말(470)을 검색한다.
그 다음, 검색된 새로운 슈퍼 단말(470)에게 자신이 관리하던 모든 레퍼런스 를 전송한다. 이 때, 리프노드의 역할을 수행하는 단말로 변경된 단말(460)은 새로운 슈퍼 단말(470)을 자신의 슈퍼 단말로 설정한다.
또한, 리프노드의 역할을 수행하는 단말로 변경된 단말(460)은 자신이 관리하던 리프 단말들(461, 462)에게 자신은 리프노드의 역할을 수행하는 단말로 변경됨을 알린다. 이하, 도 6에서 슈퍼 단말에서 리프 단말로 역할을 변경하는 과정을 보다 자세히 설명한다.
도 5는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 방법에서 리프노드의 역할을 수행하는 단말이 슈퍼노드의 역할을 수행하는 단말로 변경되는 과정을 나타내는 도면이다.
먼저, 리프 단말(200)의 계산부(220)는 현재 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 단말의 능력값을 계산한다(S510). 여기서, 능력값은 대역폭, 전송속도, 지연시간 등의 네트워크 성능과, 배터리의 잔량, 및 필요로 하는 리소스(예를 들어, 메모리 또는 CPU) 의 사용가능 정도를 기초로 계산되며, 상기에서 설명한 [수학식 1]에 따라 계산된다.
그 다음, 판단부(230)는 계산부(220)를 통해 얻어진 능력값을 기초로 현재 리프 단말(200)에 설정된 역할이 적합한지를 판단한다. 여기서, 계산된 능력값이 소정의 임계값 보다 클 경우, 해당 단말이 슈퍼노드의 역할을 수행해야 한다고 판단하고, 계산된 능력값이 소정의 임계값 보다 작을 경우, 해당 단말이 리프노드의 역할을 수행해야 한다고 판단한다.
판단 결과, 계산된 능력값이 임계값보다 크기 때문에 리프 단말(200)의 역할 변경이 필요하다고 판단되면(S520의 예), 설정부(240)는 판단부(230)의 판단을 기초로 리프 단말(200)에 설정되어 있는 역할의 설정을 변경한다(S530).
그 다음, 제어부(260)는 설정부(240)의 역할 설정 정보를 기초로하여 리프 단말(200)이 슈퍼노드의 역할을 수행할 수 있도록 키 공간상 다음에 위치한 슈퍼 단말(100)을 검색한다(S540).
그 다음, 검색된 다음 슈퍼 단말(100)에게 관리하던 리프 단말들의 레퍼런스를 요청하고, 다음 슈퍼 단말(100)로부터 리프 단말들의 레퍼런스를 전송 받는다(S550).
그 다음, 자신이 관리해야 하는 리프 단말들의 레퍼런스를 저장부(250)에 저장하고, 슈퍼노드의 역할을 수행한다(S560).
한편, S520의 판단 결과 리프 단말(200)의 역할 변경이 필요하지 않다고 판단되면(S520의 아니오), 리프 단말(200)의 역할 설정은 변경되지 않는다. 이 후, 계산부(220)는 소정 시간마다 능력값을 계산하며, 판단부(230)는 계산된 능력값을 기초로 현재 리프 단말(200)에 설정된 역할이 적합한지를 판단한다.
도 6은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 방법에서 슈퍼노드의 역할을 수행하는 단말이 리프노드의 역할을 수행하는 단말로 변경되는 과정을 나타내는 도면이다.
먼저, 슈퍼 단말(100)의 계산부(120)는 현재 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 단말의 능력값을 계산한다(S610). 여기서, 능력값은 대역폭, 전송속도, 지연시간 등의 네트워크 성능과, 배터리의 잔량, 및 필요로 하는 리소스(예를 들어, 메모리 또는 CPU) 의 사용가능 정도를 기초로 계산되며, 상기에서 설명한 [수학식 1]에 따라 계산된다.
그 다음, 판단부(130)는 계산부(120)를 통해 얻어진 능력값을 기초로 현재 슈퍼 단말(100)에 설정된 역할이 적합한지를 판단한다. 여기서, 계산된 능력값이 소정의 임계값 보다 클 경우, 해당 단말이 슈퍼노드의 역할을 수행해야 한다고 판단하고, 계산된 능력값이 소정의 임계값 보다 작을 경우, 해당 단말이 리프노드의 역할을 수행해야 한다고 판단한다.
판단 결과, 계산된 능력값이 임계값보다 작기 때문에 슈퍼 단말(100)의 역할 변경이 필요하다고 판단되면(S620의 예), 설정부(140)는 판단부(130)의 판단을 기초로 슈퍼 단말(100)에 설정되어 있는 역할의 설정을 변경한다(S630).
그 다음, 제어부(160)는 설정부(140)의 역할 설정 정보를 기초로하여 슈퍼 단말(100)이 리프노드의 역할을 수행할 수 있도록 다음 슈퍼 단말을 검색한다(S640).
그 다음, 검색된 다음 슈퍼 단말에게 자신이 관리하던 리프 단말들의 레퍼런스를 전송하고(S650), 다음 슈퍼 단말을 자신의 슈퍼 단말로 설정한다.
그 다음, 자신이 관리하던 리프 단말들에게 자신의 역할이 슈퍼노드에서 리프노드로 변경되었다는 것을 알린다(S660).
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 슈퍼노드의 역할을 수행하는 단말의 블록도를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 리프노드의 역할을 수행하는 단말의 블록도를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 단말의 능력 및 능력이 변경되는 예를 나타내는 도면이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 장치에서 단말들이 역할을 변경하는 예를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 방법에서 리프노드의 역할을 수행하는 단말이 슈퍼노드의 역할을 수행하는 단말로 변경되는 과정을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 단말의 능력을 기초로 역할을 설정하는 방법에서 슈퍼노드의 역할을 수행하는 단말이 리프노드의 역할을 수행하는 단말로 변경되는 과정을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 슈퍼 단말 200 : 리프 단말
110, 210 : 송수신부 120,220 : 계산부
130, 230: 판단부 140, 240 : 설정부
150, 250 : 저장부 160, 260 : 제어부
Claims (10)
- 소정 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 상기 단말의 능력값을 계산하는 계산부;상기 계산된 능력값을 기초로 상기 단말에 설정된 역할이 적합한지를 판단하는 판단부; 및상기 판단 결과를 기초로 상기 단말에 설정되어 있는 역할의 설정 정보를 변경 및 관리하는 설정부를 포함하는, 단말의 능력을 기초로 역할을 설정하는 장치.
- 제 1항에 있어서,상기 능력값을 계산하는 이용되는 정보는 네트워크 성능, 배터리 잔량, 및 리소스의 사용가능 정도인, 단말의 능력을 기초로 역할을 설정하는 장치.
- 제 1항에 있어서,상기 설정부의 역할 설정 정보를 기초로하여 슈퍼노드 또는 리프 노드의 역할을 수행하도록 제어하는 제어부를 더 포함하는, 단말의 능력을 기초로 역할을 설정하는 장치.
- 제 3항에 있어서,상기 제어부는 상기 단말의 역할이 슈퍼노드에서 리프노드로 변경된 경우, 다음 슈퍼 단말을 검색하고, 기 저장되어 있던 리프 단말의 레퍼런스 정보를 상기 검색된 다음 슈퍼 단말에게 전송하는, 단말의 능력을 기초로 역할을 설정하는 장치.
- 제 3항에 있어서,상기 제어부는 상기 단말의 역할이 리프노드에서 슈퍼노드로 변경된 경우, 키 공간상 다음에 위치한 슈퍼 단말을 검색하고, 상기 검색된 다음 슈퍼 단말에게 리프 단말의 레퍼런스 정보를 요청하는, 단말의 능력을 기초로 역할을 설정하는 장치.
- 소정 단말에 설정되어 있는 역할이 적합한지를 체크하기 위해 상기 단말의 능력값을 계산하는 단계;상기 계산된 능력값을 기초로 상기 단말에 설정된 역할이 적합한지를 판단하는 단계; 및상기 판단 결과를 기초로 상기 단말에 설정되어 있는 역할의 설정 정보를 변경하는 단계를 포함하는, 단말의 능력을 기초로 역할을 설정하는 방법.
- 제 6항에 있어서,상기 능력값을 계산하는 이용되는 정보는 네트워크 성능, 배터리 잔량, 및 리소스의 사용가능 정도인, 단말의 능력을 기초로 역할을 설정하는 방법.
- 제 6항에 있어서,상기 단말의 변경된 역할 설정 정보를 기초로하여 슈퍼노드 또는 리프 노드의 역할을 수행하는 단계를 더 포함하는, 단말의 능력을 기초로 역할을 설정하는 방법.
- 제 8항에 있어서,상기 단말의 역할이 슈퍼노드에서 리프노드로 변경된 경우, 다음 슈퍼 단말을 검색하는 단계; 및상기 검색된 다음 슈퍼 단말에게 기 저장되어 있던 리프 단말의 레퍼런스 정보를 전송하는 단계를 포함하는, 단말의 능력을 기초로 역할을 설정하는 방법.
- 제 8항에 있어서,상기 단말의 역할이 리프노드에서 슈퍼노드로 변경된 경우, 키 공간상 다음에 위치한 슈퍼 단말을 검색하는 단계; 및상기 검색된 다음 슈퍼 단말에게 리프 단말의 레퍼런스 정보를 요청하는 단계를 포함하는, 단말의 능력을 기초로 역할을 설정하는 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070120412A KR101422213B1 (ko) | 2007-11-23 | 2007-11-23 | 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 |
US12/204,177 US8898266B2 (en) | 2007-11-23 | 2008-09-04 | Apparatus and method for setting role based on capability of terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070120412A KR101422213B1 (ko) | 2007-11-23 | 2007-11-23 | 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090053532A true KR20090053532A (ko) | 2009-05-27 |
KR101422213B1 KR101422213B1 (ko) | 2014-07-22 |
Family
ID=40670692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070120412A KR101422213B1 (ko) | 2007-11-23 | 2007-11-23 | 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8898266B2 (ko) |
KR (1) | KR101422213B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015111787A1 (ko) * | 2014-01-24 | 2015-07-30 | 모다정보통신 주식회사 | 자율적인 소셜 협업 그룹의 형성에 기초한 지능형 사물 서비스를 제공하는 방법 |
KR20160015817A (ko) * | 2014-07-31 | 2016-02-15 | 에스케이플래닛 주식회사 | 단말간 데이터 이동 시 단말 식별 방법 및 이를 위한 장치 |
KR20160015818A (ko) * | 2014-07-31 | 2016-02-15 | 에스케이플래닛 주식회사 | 단말 간 데이터 이동 방법 및 이를 위한 장치 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
EP2234375A1 (en) * | 2009-03-24 | 2010-09-29 | Thomson Licensing | device and method for controlling dissemination of content data between peers in a P2P mode, by using a two-level randomized peer overlay and a dynamic unchoke mechanism |
JP5235777B2 (ja) * | 2009-05-15 | 2013-07-10 | キヤノン株式会社 | 通信装置、通信装置の制御方法、プログラム |
CN103096503B (zh) * | 2011-11-04 | 2016-03-30 | 华为技术有限公司 | 通信匹配方法、用户设备和基站 |
CN108075912B (zh) * | 2016-11-11 | 2022-09-27 | 中兴通讯股份有限公司 | 网络中心节点的确定方法、装置及设备节点 |
WO2018158960A1 (ja) * | 2017-03-03 | 2018-09-07 | A・Tコミュニケーションズ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP7074018B2 (ja) * | 2018-10-22 | 2022-05-24 | 日本電信電話株式会社 | 分散処理システムおよび分散処理方法 |
CN116743761B (zh) * | 2022-10-26 | 2024-04-16 | 荣耀终端有限公司 | 一种协同工作的方法及电子设备 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE428275T1 (de) * | 1998-07-28 | 2009-04-15 | Canon Kk | Verfahren und vorrichtung zur nachrichtenubertragung in einem netzwerk |
GB0028474D0 (en) * | 2000-11-22 | 2001-01-10 | Raekanet Ltd | Improved computer network architecture and associated method and system |
US20030126199A1 (en) * | 2002-01-02 | 2003-07-03 | Kadri Seemab Aslam | Peer-to-peer namespace directory and discovery |
US7194002B2 (en) * | 2002-02-01 | 2007-03-20 | Microsoft Corporation | Peer-to-peer based network performance measurement and analysis system and method for large scale networks |
US6704584B2 (en) * | 2002-04-16 | 2004-03-09 | Thomson Licensing S.A. | Mechanism for a wireless device to relinquish its network master status based on its power reserve |
JP3848235B2 (ja) * | 2002-10-04 | 2006-11-22 | ソニー株式会社 | 通信処理装置、通信処理システム、および方法、並びにコンピュータ・プログラム |
DE602004007064T2 (de) | 2003-05-23 | 2008-02-21 | Thomson Licensing | Verfahren zur Zuteilung von einem Identifikator zu einer Gruppe von gleichrangigen Knoten in einem gleichrangigen Netz |
DE10331305A1 (de) * | 2003-07-10 | 2005-02-17 | Siemens Ag | Kommunikationssystem, Peer-to-Peer-Nachrichten-Filter-Rechner und Verfahren zum Verarbeiten einer Peer-to-Peer-Nachricht |
GB0322045D0 (en) * | 2003-09-20 | 2003-10-22 | Koninkl Philips Electronics Nv | A network-based gaming system |
GB0402739D0 (en) * | 2004-02-09 | 2004-03-10 | Saviso Group Ltd | Methods and apparatus for routing in a network |
US20070198675A1 (en) * | 2004-10-25 | 2007-08-23 | International Business Machines Corporation | Method, system and program product for deploying and allocating an autonomic sensor network ecosystem |
EP1889423A1 (en) * | 2005-05-16 | 2008-02-20 | Mandalogo Ltd | A system and method for transferring email file attachments over a telecommunication network using a peer-to-peer connection |
US8874477B2 (en) * | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US20070104123A1 (en) * | 2005-11-08 | 2007-05-10 | Interdigital Technology Corporation | Method to provide centrally coordinated contention-free channel access within a wireless mesh network |
US8966524B2 (en) * | 2006-05-15 | 2015-02-24 | Baaima N.V. | Method of associating program content data in a digital television network |
US7835364B2 (en) * | 2006-10-05 | 2010-11-16 | Avaya Inc. | Distributed handling of telecommunications features in a hybrid peer-to-peer system of endpoints |
US20090106364A1 (en) * | 2007-10-17 | 2009-04-23 | Nokia Corporation | Method and apparatus for peer-to-peer network traffic analysis |
US20080133727A1 (en) * | 2006-12-04 | 2008-06-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Automatic registry composition when networks compose |
KR101105850B1 (ko) * | 2007-02-28 | 2012-01-13 | 삼성전자주식회사 | P2p 네트워킹을 통한 고품질 콘텐츠 제공 시스템 및 방법 |
US20080256563A1 (en) * | 2007-04-13 | 2008-10-16 | Cheng Han | Systems and methods for using a lodestone in application windows to insert media content |
US8656017B2 (en) * | 2007-05-16 | 2014-02-18 | Microsoft Corporation | Peer-to-peer collaboration system with edge routing |
EP2031816B1 (en) * | 2007-08-29 | 2012-02-22 | NTT DoCoMo, Inc. | Optimal operation of hierarchical peer-to-peer networks |
US8725874B2 (en) * | 2007-09-27 | 2014-05-13 | International Business Machines Corporation | Dynamic determination of an ideal client-server for a collaborative application network |
US8041375B2 (en) * | 2007-10-31 | 2011-10-18 | Qualcomm Incorporated | Methods and apparatus for use in peer to peer communications devices and/or systems relating to rate scheduling, traffic scheduling, rate control, and/or power control |
-
2007
- 2007-11-23 KR KR1020070120412A patent/KR101422213B1/ko active IP Right Grant
-
2008
- 2008-09-04 US US12/204,177 patent/US8898266B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015111787A1 (ko) * | 2014-01-24 | 2015-07-30 | 모다정보통신 주식회사 | 자율적인 소셜 협업 그룹의 형성에 기초한 지능형 사물 서비스를 제공하는 방법 |
KR20160015817A (ko) * | 2014-07-31 | 2016-02-15 | 에스케이플래닛 주식회사 | 단말간 데이터 이동 시 단말 식별 방법 및 이를 위한 장치 |
KR20160015818A (ko) * | 2014-07-31 | 2016-02-15 | 에스케이플래닛 주식회사 | 단말 간 데이터 이동 방법 및 이를 위한 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20090138584A1 (en) | 2009-05-28 |
US8898266B2 (en) | 2014-11-25 |
KR101422213B1 (ko) | 2014-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101422213B1 (ko) | 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법 | |
EP2031816B1 (en) | Optimal operation of hierarchical peer-to-peer networks | |
US20080130516A1 (en) | P2p Overplay Network Construction Method and Apparatus | |
JP2011066934A (ja) | ピアツーピア・ネットワークの最適利用方法 | |
EP2612487B1 (en) | Method and arrangement in a peer-to-peer network | |
JP2005502289A (ja) | ディレクトリサービスを有するスケーラブルピアツーピアネットワーク | |
WO2010028590A1 (zh) | 地址列表的提供方法、对等网络及其调度方法 | |
EP1719325B1 (en) | Method for optimally utilizing a peer to peer network | |
Shah et al. | MANET adaptive structured P2P overlay | |
KR20120086417A (ko) | 피어―투―피어 라이브 스트리밍을 위한 콘텐츠 분산 네트워크 | |
US20110078312A1 (en) | Method and system for monitoring incoming connection requests in a Peer-to-Peer network | |
CN108322487A (zh) | p2p网络中节点选择方法及装置与节点更新方法及装置 | |
WO2014012400A1 (zh) | 生成聚合层网络图和聚合层开销图的方法及装置 | |
Hecht et al. | B-tracker: Improving load balancing and efficiency in distributed p2p trackers | |
Meng et al. | Ma-chord: A new approach for mobile ad hoc network with dht based unicast scheme | |
El Dick et al. | A highly robust P2P-CDN under large-scale and dynamic participation | |
KR100641796B1 (ko) | P2p 오버레이 네트워크 구축 방법 및 장치 | |
CN114095508A (zh) | 一种同交换机下p2p传输的方法 | |
CN101815022B (zh) | 对等网络中源切换的方法、装置和*** | |
Forsström et al. | Location-based ubiquitous context exchange in mobile environments | |
Karwaczynski et al. | Analysis of overlay network impact on dependability | |
Al-Dmour | Comparison of file sharing search algorithms over peer-to-peer networks | |
Warneke et al. | Load balancing in p2p networks: Using statistics to fight data and execution skew | |
Fujii et al. | Security analysis for p2p routing protocols | |
CN106790387B (zh) | 一种基于游子的p2p网络优化方法 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20170619 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180620 Year of fee payment: 5 |