KR20090106343A - 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템 - Google Patents

통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템 Download PDF

Info

Publication number
KR20090106343A
KR20090106343A KR1020090027078A KR20090027078A KR20090106343A KR 20090106343 A KR20090106343 A KR 20090106343A KR 1020090027078 A KR1020090027078 A KR 1020090027078A KR 20090027078 A KR20090027078 A KR 20090027078A KR 20090106343 A KR20090106343 A KR 20090106343A
Authority
KR
South Korea
Prior art keywords
content
metadata
node
publishing
rlns
Prior art date
Application number
KR1020090027078A
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 KR1020090027078A priority Critical patent/KR20090106343A/ko
Publication of KR20090106343A publication Critical patent/KR20090106343A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일양상에 따라, 통신 네트워크에서 자원을 공개하고, 복제하고, 서치하는 방법 및 시스템이 개시된다. 자원은 콘텐츠, 정보, 데이터 등이 될 수 있다. 통신 네트워크는 다수의 노드들을 포함할 수 있다. 통신 네트워크의 일예로 피어-투-피어 네트워크, 애드혹 네트워크, 센서 기반의 네트워크 및 콘텐츠 분배 네트워크 등이 포함될 수 있으나, 이에 한정되는 것은 아니다. 본 발명의 일양상에 따르면, 통신 네트워크에서 콘텐츠 서치 지연을 최적화 할 수 있으며, 콘텐츠 메타 데이터 복제와 서치 지연간 균형을 유지할 수 있다.
Figure P1020090027078
자원, 복제, 공개, 서치

Description

통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템 {Method and system for publishing, replicating, and searching resource in communication networks}
본 발명의 일양상에 따른 기술분야는 통신 네트워크에 관한 것으로, 보다 상세하게는 통신 네트워크에서 리소스의 복제(replicating), 공개(publishing) 및 탐색(searching)을 위한 방법과 시스템에 관한 것이다.
통신에 대한 수요가 증가함에 따라 통신 네트워크가 점점 보편화되어 가고 있다. 통신 네트워크는 다수의 노드들을 포함할 수 있다. 통신 네트워크는 일예로, 피어-투-피어(peer-to-peer) 네트워크, 애드혹(ad-hoc) 네트워크, 센서 기반 네트워크 및 콘텐츠 분배 네트워크를 포함할 수 있다. 사용자들은 콘텐츠 및 정보를 공유하기 위한 통신 네트워크와 연관될 수 있다.
한편, 사용자들로 하여금 콘텐츠, 그리고 통신 네트워크의 사용자들 사이에서 서로 관련되어 있는 메타 데이터를 공유하도록 하는 다양한 알고리즘이 존재한다. 메타 데이터는 콘텐츠의 추상화된 표현으로써 정의된다. 일실시예에 있어, 메타 데이터는 확장된 마크업 언어 포맷(Extended Markup language format, XML)으 로 표현될 수 있다. 그리고 이들 알고리즘은 어떤 정보가 복제되거나 공개되어야 하는지와, 성능을 향상시키기 위해 이들 정보가 어떤 노드들에게 복제되어야 하는지를 결정한다. 복제 또는 공개를 통한 정보의 공유는 복제 분배(replica distribution) 또는 콘텐츠 복제 및 분배로 알려져 있다.
콘텐츠 복제를 가능하게 하는 기술은 코드(chord), 패스트리(pastry) 등에 기초한 분배 해쉬 테이블을 포함한다. 이 기술에 따르면, 노드들은 로컬 복제 카탈로그(local replica catalogs)들과 콘텐츠 및 정보에 대한 답변 쿼리들(answer queries)에 링크되어 있다. 복제 카탈로그들은 컨텐츠의 물리적 위치에 대한 메타 데이터의 매핑을 가지고 있는 노드들이다. 노드가 이 정보를 가지고 있지 않으면, 노드는 쿼리를, 코드 오버레이(chord overlay)에서의 상속노드(successor node)에게 포워딩한다.
여기서 상속노드들은 통신 네트워크에서 이웃노드들(neighbor nodes)이 될 수 있다. 다른 기술인 분산화된 적응적 복제 위치 메카니즘(decentralized adaptive replica location mechanism)에 따르면, 오버레이로 구성되는 복제 로케이터 노드(replica locator nodes, RLNs)의 개념이 사용된다. 이 복제 로케이터 노드는 논리적 파일 이름을 물리적 파일 이름으로 매핑하는 것을 유지한다. 복제 로케이터 노드(RLN)는 압축된 블룸 필터 다이제스트 메시지(compressed bloom filter digest message)에서의 다른 복제 노드들로의 로컬 매핑을 멀티캐스팅한다.
여기서 블룸 필터(bloom filter)는 컨텐츠 정보의 압축된 비트 마스크(bitmask)가 될 수 있다. 복제 로케이터 노드(RLN)는, 노드가 정보를 구하기 위 해 이 RLN에 쿼리를 할때, 그 매핑 정보가 그 RLN와 함께 존재하는지를 체크한다. RLN는 매핑 정보가 RLN와 함께 존재하면 그에 대한 정보를 리턴한다. 만일 RLN에 매핑 정보가 존재하지 않으면, RLN는 다른 RLN들로부터 수신한 매핑 다이제스트를 사용하여, 쿼리를 하는 노드에게 콘텐츠의 소스를 알려준다.
그러나 전술한 콘텐츠 기반의 복제는 고장방지(fault tolerant)의 시각(perspective)과, 통신 네트워크를 탈퇴(leaving)하거나 조인(joining)하는 노드들이 높은 비율로 존재할 때 컨텐츠의 위치를 알아낼 가능성이 많다는 점에 착안하여 수행된다. 이로 인해 네트워크가 안정화되지 않을 때 더 오랜 서치 지연(latency)을 일으킨다. 피어 노드들(컨텐츠를 쿼리하거나 요청하는)의 지리적 위치와 네트워크 위치는 부트스트랩 프로세스(bootstrap process) 또는 RLN의 발견(discovery) 과정 동안은 고려되지 않는다. 더욱이 컨텐츠 메타 데이터 복제는 빠른 쿼리 서치에는 최적화되지 않는다. 또한, 필요로 하는 컨텐츠에 기초한 RLNs의 자동적인 발견 능력은 존재하지 않는다.
전술한 관점에서, 통신 네트워크에서 자원과, 그 자원과 연관된 메타 데이터를 효과적으로 공개하고 복제하는 방법 및 시스템에 대한 요구가 존재한다. 그리고 쿼리 서치 지연을 최소화하는 방법 및 시스템에 대한 요구도 존재한다.
본 발명의 일 양상에 따르면, 통신 네트워크에서 오브젝트의 형태를 가질 수 있는 자원을 복제하고, 공개하고 서치하는 방법 및 시스템이 제공된다.
자원 또는 오브젝트는 콘텐츠, 정보, 데이터 등이 될 수 있다. 통신 네트워크는 다수의 노드들을 포함할 수 있다. 통신 네트워크의 일예는, 피어-투-피어 네트워크, 애드-혹(ad-hoc) 네트워크, 센서 기반의 네트워크와 콘텐츠 분배 네트워크를 포함하나, 이에 한정되는 것은 아니다. 본 발명은 콘텐츠 서치 지연과, 통신 네트워크에서 콘텐츠 메타 데이터 복제와 서치 지연간의 균형(tradeoff)을 최적화한다. 통신 네트워크에서 자원을 복제하는 방법은, 메타 데이터의 추출(extraction), 피어 오버레이(peer overlay)의 형성(formation), 메타 데이터의 수집(aggregation) 및 복제, 그리고 콘텐츠의 서치를 포함할 수 있다.
본 발명의 다른 양상에 따른 자원 관리 방법은, 콘텐츠를 나타내는 메타 데이터를 추출하고, 노드들의 오버레이를 형성하고, 메타 데이터의 계층적 표현을 형성하기 위해 메타 데이터를 모은 후, 다수 레벨의 계층에서 메타 데이터를 복제하여, 콘텐츠를 서치하는 단계를 포함한다.
일양상에 따른 메타 데이터 추출은, 콘텐츠의 일반 개념 추상화, 콘텐츠 일반 개념의 서브 개념 추상화, 콘텐츠 일반 개념의 구체적 서브 개념의 추상화, 구체적 콘텐츠 타입의 추상화 및 파일 이름 추상화 중 적어도 어느 하나를 포함한다.
본 발명은 통신 네트워크에서 자원을 복제하기 위한 효과적인 메카니즘과 대응 시스템을 제공한다. 그리고, 노드의 지리적 위치와 네트워크 좌표에 기초한 노드들로부터 정보를 쿼리하고 탐색하기 위한 메카니즘과 이에 대응되는 시스템을 제 공한다. 결과적으로, 정보의 서치 및 탐색(retrieval)이 효과적으로 수행된다.
더 나아가 정보는 계층적 순서로 추상화된다. 이에 따라 통신 네트워크에서 노드의 사용자들이 이 계층 정보에 기초하여 정보를 추출하고 탐색하는데 도움을 받을 수 있다. 예를 들어, 노드의 사용자는 노래의 제목에 기초하여 노래를 탐색할 수 있다. 그리고, 노드의 사용자는 노래의 '장르'나 특정 '가수'의 이름에 기초하여 통신 네트워크상에서 노래를 탐색할 수 있다.
본 발명의 일 양상에 따른 구성 및 효과는 수반되는 도면과 관련하여 설명되는 상세한 설명에 의해 보다 명확해질 것이다.
그리고, 이하 도면에서 유사한 참조번호는 동일 또는 기능적으로 유사한 구성요소를 지칭할 수도 있다. 이들 참조번호는 다양한 실시예와 본 발명의 다양한 양상과 장점을 설명하기 위해 사용된다. 도면에서의 구성요소들은 간단하고 명확한 설명을 위한 것이며, 실제 스케일이 아닐 수도 있다는 것을 당업자는 이해할 것이다. 예를 들어, 도면에서의 어떤 구성요소의 치수는 본 발명의 다양한 실시예가 보다 잘 이해될 수 있도록 다른 구성요소에 비해 과장되게 표현될 수도 있다.
본 발명의 방법에서의 각 단계들과 시스템 구성요소들은 도면에서의 일반적인 부호들에 의해 표현되었으며, 본 발명의 이해를 위해 관련된 구체적인 디테일을 보여준다. 더 나아가 당업자들에 있어 명백한 디테일들은 생략될 수 있다. 그리고 제1, 제2 등과 같은 상대적인 용어들은 하나의 엔터티를 다른 엔터티와 구별하기 위해 사용될 수 있으며, 이러한 상대적인 용어들이 이러한 엔터티들간의 실제 관계나 순서를 의미하지는 않는다.
통신 네트워크 구조에 대한 소개
통신 네트워크에서의 자원의 관리를 위한 구체적인 방법 및 시스템에 대해 설명하기 전에, 본 실시예를 통해 통신 네트워크 구조를 간략하게 기술한다. 통신 네트워크를 구성하기 위해, 분산화된 복제 정보 분배(decentralized replica information distribution)를 위한 좌표 기반의 오버레이 통신 네트워크(coordinate based overlay communication network) 기술과, 메타 데이터 수집을 위한 관심 그룹(interest group)의 형성 기술, 그리고 메타 데이터 계층의 형성(formation)을 압축되게 표현하는 블룸 필터(bloom filter)의 사용에 관한 기술이 사용된다.
좌표 기반의 오버레이 기술에서, 본 발명의 일예에 따라 제안된 프레임워크는 오버레이 통신 네트워크의 형성을 위해 지리적 및/또는 네트워크 기반의 좌표를 사용한다. 통신 네트워크에서의 모든 노드들은 이 오버레이의 일부를 형성하며, 노드의 목적지 IP 주소를 알지 못하는 경우에는 정보를 포워딩하기 위해 좌표 기반의 라우팅을 사용한다. 노드들은 노드 조인(join) 프로세스 동안, 그 이웃 노드(neighbor node)가 좌표 공간에서 이들 노드들에게 근접하게 되도록 이 오버레이에 삽입될 수 있다. 이 오버레이는 복제 로케이터 노드(replica locator node)를 확인하기 위해 사용되고, 복제 로케이터 노드에 정보를 공개하기 위해 사용될 수 있다. RLN은 콘텐츠에 연관된 정보의 가용성(availability)을 위한 포인터로 역할을 할 수 있다.
베이스 오버레이(base overlay)의 일부가 되는 것 외에, 노드들은 또한 관심 그룹에 조인한다. 이들 관심 그룹들은 피어(peer)들에 의해 관심의 외부적인 선언에 의해 능동적으로 또는 그룹들의 관심을 알아내기 위해 컨텐츠 메타 데이터를 수집함으로써 수동적으로 형성될 수 있다. 피어들은 하나 이상의 관심 그룹의 멤버가 될 수 있다. 메타 데이터 수집은 또한 콘텐츠 정보 계층을 만들기 위한 방법으로 사용될 수 있다.
메타 데이터 정보는 또한 수집될 수 있으나 블룸 필터에 의해 수집되는 것에 한정되는 것은 아니다. 블룸 필터는 수집 정보(aggregate information)를 위한 간결한 표현을 제공하는데 도움을 준다. 보다 높은 레벨의 수집 계층은 보다 낮은 레벨에서의 블룸 필터의 유니온(union)에 의해 생성될 수 있다. 블룸 필터의 상세한 내용은 1970년 공개된 B. Bloom이 작성한 논문인 Communication of the ACM의 Volume 13, 페이지 422~426의 "Space/time Trade-offs in Hash Coding with Allowable Errors"에 기재되어 있다.
전술한 패러그래프는 통신 네트워크의 빌딩 블록(building block)에 대해 기술하고 있다. 이하에서는 오버레이 형성 방법과 콘텐츠 서치에 대한 알고리즘을 상세하게 설명한다. 'N' 노드들을 포함하는 피어-투-피어 네트워크를 고려해 보자. 예를 들어 노드 A, 노드 B, 노드 C, 노드 D 및 노드 E가 있다고 하자. 통신 네트워크에서 노드들은 각 노드들이 수행하는 역할에 따라, 예를 들어 정규 노드(ordinary node), 그룹 리더(group leader), 복제 로케이션 노드(replica location node)와 같은 세가지 타입으로 구분될 수 있다. 이들 노드들의 역할은 서로 바뀔 수 있으며, 노드는 하나 이상의 역할을 수행할 수도 있다.
정규 노드는 네트워크에 있는 전형적인 모든 노드들인 정규 피어(ordinary peer)로 정의될 수 있다. 정규 노드는 통신 네트워크에서 다른 노드들이 콘텐츠를 공유하고 다운로딩함으로써 통신 네트워크에 참가한다(participate). 그룹 리더는 특정 관심 그룹의 일부인 모든 노드들을 위한 콘텐츠 애그리케이터(aggregator)와 같은 부가적인 역할을 수행하는 노드로 정의될 수 있다. 그룹 리더는 수집을 위한 다양한 메타 데이터 키에 기초한 수집결과를 공개하는데 적극적으로 참여한다. 그룹 리더는 투표에 의해, 또는 노드(그룹 리더)의 지난 신뢰성(past reliability)과 자원의 가용성 그리고 콘텐츠를 고려하여, 그룹을 위한 노드(그룹 리더)의 중요성에 따라 선택될 수 있다.
다른 방법이나 기술이 그룹 리더를 선택하는데 사용될 수 있다는 것은 당업자에게 명백하다. 복제 로케이션 노드는 콘텐츠 복제물(content replicas)을 찾아 내기 위한 통신 네트워크에서 가이딩 노드(guiding node)의 역할과 책임을 갖는 노드로 정의될 수 있다. 그룹 리더는 복제 로케이션 노드에게, 수집된 컨텐츠 정보를 공개한다. 그리고 복제 로케이션 노드는 정보를 더 모을 수 있으며, 다른 복제 로케이션 노드에게 그 정보를 공개할 수 있다. 결과적으로, 콘텐츠 정보의 계층이 생성된다. 그리고, 다양한 레벨의 메타 데이터 계층과 관련된 다양한 RLNs에게 콘텐츠 정보를 공개함으로써, 그리고 이 콘텐츠 정보를 다른 섹터의 RLNs에게 복제함으로써, 그룹 리더에게 메타 데이터 계층을 생성하도록 할 수 있다. 복제 로케이션 노드들은 메타 데이터 키에 따라 랜덤하게 선택될 수 있으며, 이 메타 데이터 키에 대한 좌표 공간의 모든 영역과 관련된 정보를 담고 있다.
(P) = [P1, ... Pn]을 피어-투-피어 통신 네트워크에서의 노드들의 셋으로 정의하자. 각각의 노드 Pi는 콘텐츠 셋 Ci j ∈ C를 가지고 있고, 각각의 콘텐츠 셋은 다수의 파일들 fj1 ... fjm(여기서 m은 개별 파일들을 인덱스하고, j는 콘텐츠의 타입을 인덱스 한다)을 포함하고 있다. 예를 들어, 콘텐츠 타입이 음악, 비디오, 미술이라고 하면, 파일들은 song1.mp3, video1.avi 등과 같은 형태가 될 수 있다. 각각의 콘텐츠 타입 Ci j는 그 특징에 따라 더 분류될 수 있다. 이 특징은 콘텐츠 서치 지연을 감소시키고 정확성을 향상시키기 위해 중요하다. H1 ... Hq 가 모든 피어 Pi에서의 콘텐츠 Ci j의 분류 레벨을 나타낸다고 하자. 그러면, 노드 Pi 에서 콘텐츠 Ci j에 대한 콘텐츠 계층값(Content Hierarchy Value, CHV) H1 ... Hq 는 다음 수학식 1에 따라 주어진다.
CHVj = [H1 ... Hq]
예를 들어, 만일 Ci j가 노드 Pi 에서의 음악이라고 하면, CHV[H1 ... H5]는 음악의 타입, 가수 이름, 앨범 이름, 앨범 연도, 저작권 보유 회사에 대응될 수 있 다. 콘텐츠 계층내의 CHV 구성요소의 수는 콘텐츠 Ci j의 타입에 따라 달라질 수 있다. 모든 레벨 Hj ∈ CHVj에 대해, 키 KI Hj(여기서 1<= I <= p, p는 레벨 Hj에서의 키의 최대 수를 나타낸다).
예를 들어, Hj가 음악의 타입을 나타내면, KI Hj는 재즈(jazz), 웨스턴 클래식(western classic), 팝(pop) 등과 같은 값을 가질 수 있다. 이렇게 하여 원칙적으로, 모든 파일 fij를 갖는 메타 데이터는 튜플 M[fij]=[Ci, Hq, KI Hq]에 의해 표현될 수 있다. MDj를 콘텐츠 Cj와 관련된 메타 데이터 셋, 예를 들어 콘텐츠 타입 Cj의 타입과 관련된 파일에 대한 튜플 Tij q 와 관련된 다양한 콘텐츠 계층 레벨들에 대한 모든 해쉬값들의 집합이라고 하자. 그러면, MDj는 다음 수학식 2에 따라 주어진다.
Figure 112009019154991-PAT00001
블룸 필터는 메타 데이터를 수집하기 위해 사용될 수 있다. 블룸 필터는 CHV에 기초하여 파일 이름을 수집하기 위해 해쉬 함수 'F'를 사용한다. 해쉬 함수는 콘텐츠가 모아지는 레벨인 H1 ... Hq 레벨에 따라 선택된다. 키 KI HQ를 사용하 는, 레벨 Hq 콘텐츠 타입 Ci j CHV 에 대한 피어 노드 Pi에서의 블룸 필터의 출력 Ai j,Hq는, 메타 데이터 수집값(metadata aggregated value, MAV)라고 불리우며 다음 수학식 3에 따라 주어진다.
Figure 112009019154991-PAT00002
만일 Tj를 콘텐츠 타입 j에 대한 콘텐츠 임계값(threshold)이라고 하면, 관심 그룹 Gj는 다음 수학식 4에 따라 정의한다.
Figure 112009019154991-PAT00003
G = G1 ... Gx을 모든 관심 그룹의 셋으로 정의하자(여기서 Gx는 수학식 4에 의해 주어지고, Gx ∈ P이다). 그리고, R = R1 ... Ry를 RLNs로 정의하자(여기서 Ry ∈ P이다). 컨텐츠 공개를 위한 슈도 코드(pseudo code), 그룹 리더 및 RLN에 컨텐츠를 공개하는 것, 그리고 컨텐츠 서치는 후술한다.
도 1은 본 발명의 일실시예에 따라, 통신 네트워크에서 자원을 관리하는 방법을 도시한 플로우차트이다.
자원은 그 자원에 대한 정보를 공개하거나, 자원 정보를 복제하거나, 통신 네트워크에서 자원을 서치하는 것에 의해 관리될 수 있다. 몇몇 실시예에서 자원 은 콘텐츠, 정보, 데이터 등으로 지칭될 수 있다. 통신 네트워크는 다수의 노드들을 포함할 수 있다. 통신 네트워크의 일예로 피어-투-피어 네트워크, 애드혹 네트워크, 센서 기반의 네트워크, 콘텐츠 분배 네트워크 등이 포함되나 이에 한정되는 것은 아니다.
본 발명의 일실시예에 따른 방법(100)은 도 1에 도시된 단계들을 더 포함하거나 덜 포함할 수 있다. 단계 102에서 본 발명의 일실시예에 따른 방법이 시작된다. 단계 104에서 콘텐츠를 추상화된 형태로 나타내기 위해 메타 데이터가 추출된다. 추상화된 형태는 일예로 확장 마크업 언어(Extended Markup Language)로 나타내질 수 있다. 메타 데이터 추출은 콘텐츠를 메타 데이터 값으로 매핑하기 위해 노드에서 콘텐츠를 분석하는 것을 포함한다. 예를 들어, 어느 노드가 미리 정해진 수의 음악 다운로드와 연관되어 있거나, 미리 정해진 수의 MP3 파일을 저장한다면, 추상화된 레벨에서의 관련된 메타 데이터 값은 '음악'이라고 생각할 수 있다.
일반적으로는, 노드와 연관된 사용자의 관심은 도출된 메타 데이터와 관련되어 있다고 생각할 수 있다. 메타 데이터는 다수의 계층(hierarchy) 레벨로 나누어 질 수 있다. 본 발명의 일실시예에서는, 메타 데이터는 예를 들어 레벨 1, 레벨 2, 레벨 3, 레벨 4 및 레벨 5와 같이,다섯 레벨의 계층으로 나누어진다.
메타 데이터의 추출은 이러한 다수의 레벨의 메타 데이터를 추상화하는 것을 포함한다. 레벨 1은 노드와 연관된 콘텐츠의 일반적인 개념에 기초하여 정의된다. 예를 들어, 노드에 저장된 콘텐츠가 MP3 오디오라고 하면, 추상화된 레벨 1은 '음악'이 될 것이다. 레벨 2는 일반 개념의 서브 개념에 기초하여 정의된다. 예를 들어, 콘텐츠가 MP3 오디오이고 이 음악의 장르가 '재즈'라고 하면, 추상화된 레벨 2는 '재즈'가 될 것이다.
레벨 3은 일반 개념의 구체적인 서브 개념에 기초하여 정의된다. 예를 들어, 콘텐츠가 MP3 오디오이고, 가수의 이름이 'ABC'이며 그 노래의 언어가 '힌두어(HINDI)'라고 하면, 레벨 3는 가수 이름('ABC') 및/또는 노래의 언어 ('힌두어')에 기초하여 정해질 수 있다. 다른 구체적인 컨텐츠의 일예로, 미술, 비디오, 게임, 언어, 스포츠 등이 포함되나 이에 한정되는 것은 아니다.
레벨 4는 구체적인 콘텐츠 타입에 기초하여 정의된다. 예를 들어, 만일 콘텐츠가 MP3 오디오이면, 레벨 4는 '앨범 이름'이 될 수 있다. 레벨 5는 파일 이름에 기초하여 정의될 수 있다. 예를 들어, 콘텐츠가 MP3 오디오이면, 레벨 5는 xyz.mp3와 같이 추상화될 수 있다. 전술한 계층 구조는 일예이며 본 발명의 범위를 한정하도록 설명된 것이 아니라는 것은 당업자에게 자명할 것이다. 전술한 예가 콘텐츠로써 음악을 가지고 설명되었으나 콘텐츠의 다른 예를 커버하도록 하는 계층이, 본 발명의 범위내에 커버될 수 있다는 것은 당업자에게 자명할 것이다.
단계 106에서 오버레이(overlay)가 형성된다. 오버레이를 형성하기 위해 모든 노드들은 동일한 좌표기반의 오버레이의 일부라고 가정한다. 본 실시예에서는 분배 해쉬 테이블(Distributed Hash Table, DHT) 오버레이를 사용하고, 통신 네트워크는 오버레이 좌표인 (네트워크 및/또는 지리적 좌표)에 기초하여 형성된다. 오버레이를 형성하기 위하여, 좌표는 예를 들어 사분면(quadrant)과 같은 섹터(sector)로 나누어진다.
각각의 섹터내의 노드는 메타 데이터의 각각의 (레벨) 추상화를 위해 그룹 리더(Group Leader, GL)로 선출된다. 예를 들어, 섹터는 '음악'과 관련된 GL, '재즈'와 관련된 GL 및/또는 'ABC'와 관련된 GL을 포함할 수 있다. '음악'과 관련된 GL은 또한 GL이 위치한 섹터내에서 음악을 저장하고 있는 노드들과 관련된 모든 정보를 포함할 수 있다. 유사하게, '재즈'에 관련된 GL은 GL이 위치한 섹터내에서 재즈 음악을 저장하고 있는 노드들과 관련된 모든 정보를 포함할 수 있다. 일반적으로 GL은, GL의 기능들을 수행하기 위한 메타 데이터의 특정 레벨과 관련된 최대 개수의 컨텐츠를 포함한다. 예를 들어, 음악으로 될 수 있는 레벨 1에서의 노드들의 셋을 표현하도록 선출될 수 있다. 게다가, 섹터내에서의 각각의 노드는 컨텐츠 메타 데이터를 GL에 공개한다. 컨텐츠는 해쉬값 또는 필터값에 기초하여 공개된다. 결과적으로 노드에서 GL로의 데이터 전송량을 감소시킨다. 오직 해쉬값만 공개되었기 때문에, 일반적으로 수백 바이트 범위의 해쉬 크기는 낮은 대역폭(bandwidth) 요구조건에 이르게 한다.
메타 데이터는 다수 레벨의 계층에 공개될 수 있다. 예를 들어, 메타 데이터는 다섯 레벨의 계층에서 공개될 수 있다. 공개될 수 있는 메타 데이터의 다수 레벨은, 콘텐츠의 개념과 관련된 메타 데이터, 일반 개념의 서브 개념과 관련된 메타 데이터, 구체적인 콘텐츠 타입과 관련된 메타 데이터, 파일 이름과 관련된 메타 데이터를 포함하지만, 이에 한정되는 것은 아니다.
콘텐츠의 일예로 'MP3'를 고려해 보면, '음악'은 콘텐츠의 개념과 관련된 메타 데이터가 될 수 있고, '장르'는 콘텐츠의 서브 개념과 관련된 메타 데이터가 될 수 있으며, '음악가의 이름'은 컨텐츠의 일반개념의 구체적인 서브 개념과 관련된 메타 데이터가 될 수 있고, '앨범의 이름'은 구체적인 콘텐츠와 관련된 메타 데이터가 될 수 있으며, '파일 이름'은 파일 이름과 관련된 메타 데이터가 될 수 있다.
단계 108에서, 메타 데이터는 수집되고 복제된다. 메타 데이터의 수집(aggregation)과 복제는, GL에 의한 (제1)복제 로케이터 노드(Replica Locator Node, RLN)의 선택을 포함한다. 일반적으로, RLN은 콘텐츠와 관련된 정보의 가용성을 나타내는 포인터로써 행동한다. 더 나아가 GL은, 제1 RLN의 좌표에 기초한 각각의 섹터내에서 추가적인 RLN 들을 구별하여, 각각의 섹터가 적어도 하나의 RLN을 포함하도록 한다.
추가적인 RLN들은 제1 RLN에 대한 백업으로써 행동할 수 있다. 게다가 추가적인 RLN들은 노드들로부터의 콘텐츠 정보에 대한 서빙 요청에 의해 서치 지연을 향상시킬 수 있다. 일실시예에 있어 GL은, GL과 관련된 섹터내에서의 대응 RLN들과, 좌표값에 기초한 다른 섹터에서의 RLN들과 관련된 섹터 내에서의 대응 RLN들에게, 다수 계층 레벨에서의 콘텐츠 메타 데이터를 공개한다. 예를 들어, 웨스턴 클래식과 관련된 GL은, 웨스턴 클래식, 클래식 및 음악에 관련된 RLN들에게 메타 데이터 정보를 각각 공개할 수 있다. 다른 실시예에서, GL은 콘텐츠 메타 데이터를 GL과 관련된 섹터내에서의 RLN에게 공개한다. 이후, RLN은 모든 GL들로부터 수신된 콘텐츠를 수집하고, 이 데이터를 통신 네트워크에서의 다른 RLN들에게 공개한다. RLN들은 콘텐츠 메타 데이터가 모아지는 레벨을 다룰 수 있고, 콘텐츠 메타 데이터에 기초하여, 이 레벨정보를 다른 RLN들에게 침투시킬 수 있다.
다시 말하면, RLN들은 동일한 레벨의 계층 및/또는 다른 레벨의 계층에서의 다른 RLN들에게 공개될 수 있다. 예를 들어, 웨스턴 클래식과 관련된 RLN은, 모아진 컨텐츠 정보를, 통신 네트워크의 다른 섹터내에서의 웨스턴 클래식과 관련된 다른 RLN들에게 공개할 수 있다. RLN은 또한, 클래식 메타 데이터 레벨과 음악 메타 데이터 레벨과 관련된 RLN들에게 메타 데이터 정보를 각각 공개할 수 있다. 여기서 이 레벨은, RLN의 섹터 및 다른 섹터들에서의 콘텐츠 메타 데이터 계층의 레벨보다 더 높은 레벨이다.
좌표가 다른 콘텐츠와 연관된 메타 데이터 키의 해쉬로부터 생성된 좌표에 가장 근접한(closet) 좌표를 갖는 섹터에서의 노드를 구별함으로써 RLN가 선택될 수 있다. 이후, 생성된 좌표는 통신 네트워크의 다른 섹터에서의 추가적인 RLN들의 좌표를 생성하기 위해, 함수에 의해 미리 정의된 각도만큼 회전된다. 예를 들면, 제2 RLN의 좌표는 제1 RLN의 좌표를 θ만큼 회전시킴으로써 얻어질 수 있다. 그리고, 제3 RLN 좌표는 제1 RLN의 좌표를 2θ만큼 회전시킴으로써 얻어질 수 있다. 또한, n번째 RLN 좌표는 제1 RLN 좌표를 (n-1)*θ만큼 회전시킴으로써 얻어질 수 있다. 미치 설정된 각도는 통신 네트워크에서 섹터의 수에 기초하여 계산될 수 있다. 예를 들어, 만일 통신 네트워크가 4개의 섹터로 나누어졌다면, 미리 설정된 각도는 90도 계산될 수 있다. 유사한 방법으로 통신 네트워크가 6개의 섹터로 나누어졌다면, 미리 설정된 각도는 60도로 계산될 수 있다.
단계 110에서, 콘텐츠는 통신 네트워크에서 콘텐츠를 요청하는 노드에 의해 서치된다. 콘텐츠는 콘텐츠의 일반 개념을 사용하거나, 일반 개념의 서브 개념, 일반 개념의 구체적인 서브 개념, 구체적인 콘텐츠 타입 및/또는 파일 이름을 사용하여 서치될 수 있다. 쿼리를 원하는 노드는, 구체적인 키 레벨의 메타 데이터 키의 컨텐츠 해쉬에 기초한 RLN을 발견한다(discover). 컨텐츠 해쉬는 메타 데이터 키의 고유하고(unique) 압축된 표현이다. 예를 들어, 쿼리 스트링(query string)이 'xyz.mp3'이면, '음악' 및/또는 '웨스턴 클래식'과 같은 서브 그룹에 대응되는 RLN이 노드에 의해 접근된다. 이 일예에서, '음악'과 '웨스턴 클래식'은 키가 된다. 노드는 콘텐츠와 연관된 레벨들과 매칭되는 가장 가까운 RLN을 식별한다. 통신 네트워크에서 두개의 노드간의 거리 메트릭(distance metric)이 어떤 다른 노드들보다 가까운 경우에, 네트워크 내에서 다른 노드와 가장 가까운 노드라고 한다.
일실시예에 있어, 거리 메트릭은 노드의 좌표들간의 카티션 디퍼런더(cartesian difference)라고 할 수 있다. 예를 들어, 노드가 MP3 파일 xyz.mp3 을 찾는다면, 노드는 음악, 가수 이름, 앨범 등과 연관된 어떤 또는 모든 RLN 들을 찾아낸다. 노드는 RLN 및/또는 MP3 파일에 대한 모든 RLN들을 검색한다. 만일 RLN이 콘텐츠(MP3 파일)와 관련된 필요한 정보를 가지고 있다면, 이 RLN은 필요한 상세정보를 가지고 노드에게 응답한다.
만일 RLN이 콘텐츠와 관련된 콘텐츠 정보를 가지고 있지 않으면, 이 RLN은 GL에게 쿼리를 포워딩한다. 콘텐츠 필터(예를 들어, 블룸 필터)가 사용되기 때문에, RLN은 이 쿼리를 가장 관련된 GL에게 포워딩한다. 이 GL은 필요한 상세정보를 가지고 RLN에게 응답한다. 이후 RLN은 이 상세정보를 노드에게 포워딩한다. 그러면 노드는 콘텐츠를 탐색하기(retrieve) 위해 콘텐츠 노드와 직접 접촉(contact)한 다.
만일 노드가 콘텐츠와 관련된 정보를 찾아낼 수 없으면, 노드는 다음으로 가까운 RLN과 접촉할 수 있다. 일실시예에서, 노드는 하나 또는 그 이상의 노드를 동시에 쿼리할 수 있다. 이후, 방법 100은 단계 112에서 종료된다. 명료하게 하기 위해, 방법 100은 도 2에서 설명된 사용예(use case)의 도움을 받아 설명된다. 그러나, 도 2에서 설명된 사용예에만 본 발명의 범위가 한정되지 않는다는 것은 당업자에게 자명할 것이다. 도 1에 개시된 정보에 기초한 방법 100을 수행하도록 시스템이 설계될 수 있다는 것은 당업자에게 자명할 것이다.
도 2는 본 발명의 일실시예에 따라, 통신시에 자원을 복제하는 사용예를 설명하기 위한 통신 네트워크이다.
도 2에 도시된 바와 같이, 노드 A와 B는 '웨스턴 클래식' 음악 그룹의 일부이고, 노드 D는 '인도 클래식' 음악 그룹의 일부이며, 노드 C는 '웨스턴 클래식'과 '인도 클래식' 양쪽에 속하는 음악 그룹의 일부이다. 노드 GL1과 노드 GL2는 각각 '웨스턴 클래식' 음악 그룹 및 '인도 클래식' 음악 그룹의 그룹 리더로 선출된다. 노드 A, B, C 및 D는 저장되어 있는 음악 파일에 대한 메타 데이터 추출기(metadata extractor)를 실행한다. 이후, 노드 A, B, C 및 D는 메타 데이터(도 1에서 설명된 바 있음)에 기초한 콘텐츠를 격리하고(segregate) 그룹핑한다. 이 경우에 작곡가의 이름에 따라 그룹핑될 수 있다.
이제 다양한 파일 그룹들에서 파일이름에 대해 블룸 필터가 적용된다. 노드 A는 '베어토벤'(202)과 '바하'(204)에 대한 블룸 필터들을 생성하고, 노드 B는 '바 하'(206)에 대한 블룸 필터를 생성하며, 노드 C는 '바하'(208) 및 'Thyagaraja'(210)(인도 작곡가)에 대한 블룸 필터를 생성한다. 그리고 노드 D는 'Thyagaraja'(210)에 대한 블룸 필터를 생성한다. 이들 노드들은 추출되는 메타 데이터와 함께 자신의 정보를 각각의 GL(GL1, GL2)에게 공개한다. 노드 A 및 B는 그들과 연관된 콘텐츠와 관련된 정보를, GL1에게 공개한다. 이는 통신 링크 214 및 216을 각각 사용하여 수행될 수 있다. 노드 C는 그와 연관된 콘텐츠와 관련된 정보를 GL1 및 GL2에게 공개한다. 이는 통신 링크 218 및 220을 각각 사용하여 수행될 수 있다. 그리고 노드 D는 그와 연관된 콘텐츠와 관련된 정보를 GL2에게 공개한다. 이는 통신 링크 222를 사용하여 수행될 수 있다.
이제 GL1은 구성 노드(constituent node)인 노드 A, B 및 C로부터 수신된 정보를 저장하고, '웨스턴 클래식'을 키로 하여 이들 정보를 모은다. GL1은 노드 A, B, C로부터 수신한 정보로부터 복합 블룸 필터(224)를 형성한다. 유사하게, GL2는 노드 C 및 D로부터 수신한 정보로부터 블룸 필터를 형성한다. 이후 GL1은, '웨스턴 클래식'을 해쉬키로 한 것에 기초한 RLN1 좌표를 생성하고, DHT의 라우팅에 기초한 좌표를 사용하여 생성된 좌표에 가장 가까운 노드에게 복합 블룸 필터(224)(각각의 블룸 필터의 집합)를 포워딩한다. 여기서 가장 가까운 노드는 통신 링크 226을 사용한 RLN1이 될 수 있다.
또한 GL1은, 도 2에 도시된 바와 같이, 생성된 좌표를 90도 회전시킴으로써, RLN1의 세개의 다른 복제인 RLN2, RLN3, RLN4를 생성한다. 그리고, 복합 블룸 필터 228, 230, 232를 링크 234, 236 및 238을 사용하여 RLN2, RLN3, RLN4에게 포워 딩한다. 유사하게, GL1은 모든 '베어토벤'과 '바하' 음악들을 그와 연관된 모든 노드들로부터 모으고, 이를 각각의 작곡가의 RLN들에게 공개할 수 있다.
쿼리 노드 E가 '웨스턴 클래식'이라는 장르를 가진 '월광 소나타.mp3'라는 타이틀의 노래를 서치하고자 하는 일예를 생각해 보자. 노드 E는 '웨스턴 클래식'을 해쉬 키로 사용하여, 그리고 좌표 회전을 통해 자동적으로 모든 4개의 RLN들에 대한 RLN 좌표를 생성한다. 노드 E는 그 좌표를 RLN2, RLN3 및 RLN4 좌표와 비교하여, RLN3을 가장 가까운 것으로 식별한다. 노드 E는 DHT를 사용하여 쿼리(240)를 RLN3에게 보낸다. RLN3은 파일 이름 '월광 소나타.mp3'를 그 블룸 필터 리스트와 비교하여 GL1을 찾아낸다.
이후 RLN3은 노드 E를 대표한 정보를 위해 쿼리(242)를 GL1에게 보낸다. GL1은 필요한 정보를 가지고 RLN3에게 응답한다(244). RLN3은 이 정보를 노드 E에게 포워딩한다(246). 결과적으로, 노드 E는 노드 A와 직접적으로 통신하여(248), '월광 소나타.mp3' 라는 타이틀의 콘텐츠를 탐색하여 얻어낸다. 유사하게, 전술한 방법은, 통신 네트워크에서 '베어토벤'에 의한 음악 또는 모든 '웨스턴 클래식' 음악과 관련된 서치 쿼리를 수행하는데 사용될 수 있다.
도 3은 통신 네트워크에서 콘텐츠 정보 공개와 복제를 위한 방법과 콘텐츠 서치를 도시한 메시지 플로우 다이어그램이다.
도 3을 설명하기 위해, 도 2도 함께 참조될 수 있다. 그러나, 다른 적절한 실시예의 도움으로 본 실시예가 설명될 수 있음은 당업자에게 자명하다. 단순화를 위해, 메시지 플로우 다이어그램은 콘텐츠 공개 단계(302)와 콘텐츠 서치 단 계(304)로 나누어진다. 도 2와 유사하게 노드 A 및 B는 웨스턴 클래식 음악 그룹의 일부이며, 노드 D는 인도 클래식 음악 그룹의 일부이고, 노드 C는 양 그룹의 일부이다. 노드 GL1과 GL2는 각각 웨스턴 클래식 및 인도 클래식 음악 그룹의 그룹 리더로 선출된다.
콘텐츠 공개 단계(302)에서 노드 A와 B는 음악 파일에 대해 메타 데이터 추출기를 동작시켜 콘텐츠에 대한 메타 데이터 셋을 추출한다(306, 308). 유사하게, 노드 C와 D도 음악 파일에 대해 메타 데이터 추출기를 동작시켜 콘텐츠에 대한 메타 데이터 셋을 추출한다(도 3에 도시하지 않음). 이후 노드 (A, B, C, D)는 제1 메타 데이터 키 레벨(310, 312)에 기초한 파일들을 격리하고 그룹핑한다. 제1 메타 데이터 키 레벨은 일예로 작곡가의 이름이 될 수 있다. 그리고 다양한 파일 그룹들에서의 파일 이름들에 대해 블룸 필터가 적용된다(314, 316). 노드 A는 '베어토벤'과 '바하'에 대해 블룸 필터를 생성한다. 노드 B는 '바하'에 대한 블룸 필터를 생성하고, 노드 C는 '바하' 그리고 인도 작곡가 'Thyagaraja'에 대한 블룸 필터를 생성한다. 그리고, 노드 D는 'Thyagaraja'에 대한 블룸 필터를 생성한다.
이들 노드들 (A, B, C, D)은 추출된 추가적인 메타 데이터오 함께, 메타 데이터 정보를 각각의 그룹 리더들에게 공개한다. 예를 들어, 노드 A와 B는 모아진 메타 데이터 셋 (318, 320)을 GL1에게 공개한다. 유사하게, 노드 C는 GL1 및 GL2에게 공개하고, 노드 D는 GL2에게 공개한다(도 3에는 도시되지 않음). 그룹 리더 GL1은 그 구성노드들로부터 수신한 정보를 저장하고, 웨스턴 클래식을 키로 하여 얻어지는 이 정보를 수집한다(322).
GL1은 노드 A, B 및 C로부터 수신된 정보로부터 복합 블룸 필터를 형성한다. 이후 GL1은 '웨스터 클래식'을 레벨 2에서의 해쉬키로 한 것에 기초한 RLN 좌표를 생성한다(324). 그리고 분산 해쉬 테이블의 라우팅에 기초한 좌표를 사용하여 생성된 좌표에 가장 가까운 노드에게 블룸 필터를 포워딩한다(326). GL1은 생성된 좌표를 360/n 도(여기서 n은 RLN의 개수이다)만큼 회전함으로써(328), RLN의 추가적인 복제를 생성할 수 있다. GL1은 블룸 필터를 추가적인 RLN들에게 포워딩/공개한다(330). 예를 들면, 3개의 추가적인 RLN을 생성하기 위해, GL1은 생성된 좌표를 90도 회전시키고, 블룸 필터를 이들 3개의 추가적인 RLN들에게 포워딩한다.
콘텐츠 서치 단계(304)에서, (도 1을 참조하여) 노드 E는 웨스턴 클래식을 카테고리로 하여 '월광 소나타.mp3'를 서치한다(332). 노드 E는 '웨스턴 클래식'을 해쉬 키로 하고 좌표 회전에 의하여 모든 4개의 RLN들을 위한 RLN1 좌표를 자동적으로 생성한다. 노드 E는 가장 가까운 RLN1의 좌표를 노드 E의 좌표와 비교함으로써, 가장 가까운 좌표를 갖는 RLN1을 식별한다. 노드 E는 분산 해쉬 테이블을 사용하여 쿼리를 이 RLN1에게 포워딩한다. RLN1은 '월광 소나타.mp3' 파일 이름을 블룸 필터 리스트와 매칭시키고, GL1을 찾는다(334). 이후 RLN1은 노드 E를 대표하여 GL1에게 정보를 쿼리한다(336). GL1은 파일 이름을 갖는, 수집된(aggregate) 정보를 서치하고(338), 이 정보를 RLN1에게 리턴한다(340). RLN1은 GL1으로부터 수신한 정보를 노드 E에게 포워딩한다(342). 노드 E는 콘텐츠를 탐색(retrieve)하기 위해 노드 A를 직접 컨택할 수 있다(344). 전술한 실시예는, 통신 네트워크에서 '베어토벤'과 관련된 모든 파일들을 찾는 것과 같는 그룹 쿼리들을 실행하도록 사용될 수 있다.
도 4a 내지 도 4d는 다양한 시나리오하에서 통신 네트워크에 대한 시뮬레이션 결과를 도시한 챠트이다.
시뮬레이션은 본 발명에서 제안된 위치 기반의 콘텐츠 분배와 피어-투-피어 통신 네트워크에서의 서치 알고리즘의 효과를 연구하기 위해 수행되었다. MASIE와 이벤트 구동의 시뮬레이션 툴이 피어-투-피어 네트워크를 모델링하기 위해 사용된다. 시뮬레이션을 위해 각각의 피어 노드는 MASIE 엔터티로 추상화된다. 엔터티들의 값(property)은 콘텐츠 타입, 허용가능한(permissible) 콘텐츠의 수, 콘텐츠의 계층(hierarchy), 피어 노드의 역할을 포함한다.
두개의 피어들간의 링크는 대역(bandwidth)과 네트워크 큐와 관련된 값들을 갖는 MASIE 엔터티로써 추상화된다. 성능 평가(performance evalution)를 위해, 1000개의 노드들을 포함하는 P2P 통신 네트워크가 고려된다. 셋 'C'의 크기는 8에서 128까지 2의 거듭제곱으로 변화한다고 가정한다. 콘텐츠의 각각의 타입과 연관된 파일들의 수는, 40961이라고 가정한다. 시뮬레이션을 위해 'Hq' 계층은 콘텐츠 'C'의 타입과 무관하다고 가정한다. 그러나, 시뮬레이션을 수행함에 따라 2에서 5까지 변동될 수 있다. 메트릭은 쿼리 지연 'T'와 네트워크 쿼리 오버헤드 Nt이다. 시뮬레이션은 피어들간의 임의 연결 그래프(random connectivity graph)를 가정하고, 피어 통신 네트워크에서 노드 동요(churn)는 없다고 가정한다. 시뮬레이션은 또한, 메타 데이터 키들에 대한 유니언(union)을 취함으로써 간단한 수집을 사용하 고, 블룸 필터를 사용하지 않는다. 이하에서 보다 상세하게 설명한다.
도 4a와 도 4b는 Hq를 상수 4로 유지한 채로, 그리고, C 값을 8에서 128까지 2의 거듭제곱으로 변화시키고 RLN들의 수를 4에서 64까지 2의 거듭제곱으로 변화시켜 가면서, 쿼리 지연과 네트워크 쿼리 오버헤드 각각을 그래프로 그린 것이다(plot). 도 4a를 참조하면, 콘텐츠의 타입의 수가 증가함에 따라, 쿼리 지연 또한 다소(marginally) 증가한다는 것을 알 수 있다. 보다 상세히 관찰하면, 쿼리 지연의 증가는 콘텐츠와 관련된 모든 메타 데이터가 모든 RLN들에게 공개되는 것은 아니라는 사실에 기인한다. 그리고 RLN들은 GL을 쿼리하거나 대체(alternate) RLN을 쿼리하는데 필요한 피어 노드를 필요로 한다.
도 4b는 네트워크 쿼리 오버헤드에서의 증가를 도시한 것이다. 이는 콘텐츠와 연관된 더 많은 메타 데이터가 RLN들에게 공개될 필요가 있다는 사실에서 기인한다. 이 결과들을 Gnutella에서 사용되는 임의 쿼리 서치(random query search)와 비교하면, 쿼리 지연에 있어 11.8%의 평균 성능 향상이 있음을 알 수 있다. 네트워크 오버헤드도 블룸 필터의 사용에 의해 상당히 감소될 수 있다.
도 4a로부터, RLN들의 수가 4에서 64까지 증가함에 따라 평균 쿼리 지연을 감소한다는 것을 알 수 있다. 이는 콘텐츠가 다수의 RLN들에게 공개되기 때문이다. 또한 RLN들의 수가 증가함에 따라, 쿼리를 시작시키기 위하여, 피어 노드를 위한 RLN들의 선택은 커지고, 따라서 쿼리를 위한 히트율(hit rate)의 확률은 증가하며, 이에 따라 쿼리 지연을 감소시킨다. 그러나, 도 4a 내지 도 4d를 참조하면, RLN들의 수 증가에 따라 네트워크 오버헤드도 증가한다는 것을 알 수 있다. 이는 더 많은 메타 데이터가 RLN들에게 공개될 필요가 있기 때문이다.
도 4c 및 도 4d는 C 값을 상수 128로 유지한 채로, Hq를 한 단계별로 2에서 5까지 변화시켜 가면서 쿼리 지연 및 네트워크 쿼리 오버헤드를 그래프로 그린 것이다(plot). 이는 4에서 64까지 2의 거듭제곱으로 변화해 가는 RLN들에 대해 그린 것이다. 키 계층의 레벨이 증가함에 따라 쿼리 지연은 감소함을 알 수 있다. 이는 키 계층의 레벨에서의 증가는 RLNs에서 공개되는 보다 정확한 메타 데이터가 얻어진다는 것 때문이다. 키 계층 레벨이 감소함에 따라, 쿼리 히트의 정확성은 감소하고, 따라서 추가적인 RLN들은 쿼리될 필요가 있고, 이는 낮은 계층 레벨을 위한 증가된 네트워크 오버헤드에 기여한다. 시뮬레이션으로부터, 낮은 키 레벨에서 네트워크 오버헤드는 메타 데이터 공개와 비교하여 주로 쿼리 포워딩에 기인하여 발생된다는 것을 알 수 있다. 네트워크 오버헤드는 블룸 필터를 사용하여 상당히 감소시킬 수 있다.
이하에서는 컨텐츠 공개를 위한 슈도 코드(pseudo code), 그룹 리더 및 RLN에 컨텐츠를 공개하는 것, 그리고 컨텐츠 서치에 대해 상세히 설명한다.
테이블 1
다음의 테이블 1은 각각의 피어 노드에 대해 콘텐츠 공개를 위한 슈도 코드이다.
Figure 112009019154991-PAT00004
테이블 1
테이블 1에서 번호 1-5 단계는 수집된 메타 데이터를 계산한다. 예를 들어, 도 2에 도시된 바와 같은 피어 통신 네트워크와, 도 2에 도시된 바와 같은 대응 메시지 시퀀스 다이어그램을 고려해 보면, 1-5 단계는 작곡가 이름에 속한 키들을 도출해 낸다. 이 경우 작곡가 이름은 '바하'와 '베어토벤'이 될 수 있다. 슈도 코드는 또한 '음악 타입'에 관련된 키들을 생성한다. 이 경우 '음악 타입'은 '웨스턴 클래식'이 될 수 있다. 단계 6-9는 '작곡가 이름'에 대한 키들과 연관된 파일 이름을 위해, 대응 블룸 필터 모음을 계산한다. 도 2 및 도 3을 참조하면, 단계 6-9에서 '바하'와 '베어토벤'에 대한 블룸 필터 모음값이 생성됨을 알 수 있다. 단계 10에서 메타 데이터 셋과 함게, 블룸 필터 리스트가 그룹 리더로 포워딩된다.
테이블 2
다음의 테이블 2는 각각의 GL들에 대해 콘텐츠를 공개하기 위한 슈도 코드이다.
Figure 112009019154991-PAT00005
테이블 2
테이블 2에서 번호 1-9의 단계는 키에 대한 복합 블룸 필터를 만드는 것이다. 예를 들어, 도 2 및 도 3을 참조하면, '웨스턴 클래식' 음악에 대한 복합 필터가 만들어진다. 단계 7에서, 이 키에 키초하여 적절한 RLN 좌표가 선택된다. 이 경우 '웨스턴 클래식' 음악이 될 수 있다. 단계 8에서 선택된 RLN 상에 이 값을 공개한다. 단계 10-15는 정보를 공개하는 추가적인 RLN들을 선택한다.
콘텐츠 서치를 위한 알고리즘
파일 이름 fij에 대한 Pi 노드에서의 서치를 예로 들어 보자. 서치를 수행하 는 동안 노드는, 예를 들어 레벨 Hq에서의 키 값인, 키 KI Hq를 제공한다. 첫번째 단계에서 RLN의 좌표가 계산된다. 모든 RLN들의 좌표는 RLN의 좌표에 θ를 더함으로써 얻어질 수 있다. 그리고, Pi에 가장 가까운 좌표로 RLN Rc를 식별한다. 이제 Pi가 Rc를 쿼리한다. 만일 Rc가 정보를 가지고 있다면, Rc는 그 정보를 가지고 응답한다. 만일 Rc가 정보를 가지고 있지 않다면, Rc는 이 정보를 가지고 있는 GL을 식별하여, 콘텐츠와 관련된 정보를 탐색해 내기 위해 이 GL을 접촉한다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일실시예에 따라, 통신 네트워크에서 자원을 관리하는 방법을 도시한 플로우차트,
도 2는 본 발명의 일실시예에 따라, 통신시에 자원을 복제하는 사용예를 설명하기 위한 통신 네트워크,
도 3은 통신 네트워크에서 콘텐츠 정보 공개와 복제를 위한 방법과 콘텐츠 서치를 도시한 메시지 플로우 다이어그램,
도 4a 내지 도 4d는 다양한 시나리오하에서 통신 네트워크에 대한 시뮬레이션 결과를 도시한 챠트이다.

Claims (18)

  1. 적어도 하나의 노드들을 포함하는 통신 네트워크에서의 자원 관리 방법에 있어서,
    콘텐츠를 나타내는 메타 데이터를 추출하는 단계;
    상기 노드들의 오버레이를 형성하여, 좌표 기반의 라우팅과 상기 노드들을 식별하는 단계;
    상기 메타 데이터를 수집하여 상기 메타 데이터의 계층적 표현을 형성하는 단계;
    다수 레벨의 계층에서 상기 메타 데이터를 복제하는 단계; 및
    상기 콘텐츠를 요청하는 노드에 의해 상기 콘텐츠를 서치하는 단계를 포함하는 자원 관리 방법.
  2. 제1항에 있어서, 상기 메타 데이터를 추출하는 단계는
    상기 콘텐츠의 일반 개념 추상화, 상기 일반 개념의 서브 개념 추상화, 상기 일반 개념의 구체적 서브 개념의 추상화, 구체적 콘텐츠 타입의 추상화 및 파일 이름 추상화 중 적어도 어느 하나를 포함하는 자원 관리 방법.
  3. 제1항에 있어서, 상기 노드의 오버레이를 형성하는 단계는
    상기 통신 네트워크를 섹터들로 나누는 단계;
    상기 각각의 섹터에서 각각의 메타 데이터에 대해 그룹 리더를 선출하는 단계; 및
    상기 메타 데이터를 그룹 리더에게 공개하는 단계를 포함하는 자원 관리 방법.
  4. 제3항에 있어서, 상기 메타 데이터를 공개하는 단계는
    상기 콘텐츠의 일반 개념과 관련된 메타 데이터를 공개하는 자원 관리 방법.
  5. 제3항에 있어서, 상기 메타 데이터를 공개하는 단계는
    상기 콘텐츠의 일반 개념의 서브 개념과 관련된 메타 데이터를 공개하는 자원 관리 방법.
  6. 제3항에 있어서, 상기 메타 데이터를 공개하는 단계는
    상기 콘텐츠의 일반 개념의 구체적 서브 개념과 관련된 메타 데이터를 공개하는 자원 관리 방법.
  7. 제3항에 있어서, 상기 메타 데이터를 공개하는 단계는
    상기 콘텐츠의 구체적인 콘텐츠 타입과 관련된 메타 데이터를 공개하는 자원 관리 방법.
  8. 제3항에 있어서, 상기 메타 데이터를 공개하는 단계는
    상기 콘텐츠의 파일 이름과 관련된 메타 데이터를 공개하는 자원 관리 방법.
  9. 제1항에 있어서, 상기 메타 데이터를 수집하는 단계는,
    상기 콘텐츠와 관련된 정보의 가용성에 대한 포인터로 행동하는 제1 RLN을, 메타 데이터를 사용하는 그룹 리더에 의해 선택하는 단계; 및
    상기 제1 RLN의 좌표에 기초하여, 각 섹터에서의 추가적인 RLN들을 식별하는 단계를 포함하는 자원 관리 방법.
  10. 제9항에 있어서, 상기 식별하는 단계는
    제1 RLN의 좌표를 소정 각도 회전시키되, 상기 각도는 통신 네트워크에서 RLN들의 수에 기초하여 계산하는 단계; 및
    상기 회전된 좌표에 기초하여 각 섹터에서의 추가적인 RLN들의 좌표를 생성하는 단계를 포함하는 자원 관리 방법.
  11. 제9항에 있어서,
    상기 추가적인 RLN들의 좌표값에 기초하여, 상기 통신 네트워크에서의 추가적인 RLN들에 대해 상기 메타 데이터를 공개하는 단계를 더 포함하는 자원 관리 방법.
  12. 제9항에 있어서,
    그룹 리더에 의해, 상기 메타 데이터를 상기 그룹 리더의 섹터에서의 RLN에게 공개하는 단계;
    상기 RLN에 의해, 상기 그룹 리더들로부터 수신한 메타 데이터에 기초한 메타 데이터 키를 수집하는 단계; 및
    상기 통신 네트워크상의 다른 섹터들의 RLN들에게, 상기 수집된 메타 데이터를 공개하는 단계를 더 포함하는 자원 관리 방법.
  13. 제9항에 있어서,
    그룹 리더에 의해, 다수 메타 데이터 계층 레벨에서의 콘텐츠 정보를, 상기 그룹 리더의 섹터에서의 RLN들에게 공개하는 단계; 및
    다른 섹터내의 RLN들에게 상기 콘텐츠 정보를 복제하는 단계를 더 포함하는 자원 관리 방법.
  14. 제1항에 있어서, 상기 콘텐츠를 서치하는 단계는
    상기 콘텐츠의 일반 개념에 기초한 콘텐츠 서치, 상기 일반 개념의 서브 개념에 기초한 콘텐츠 서치, 상기 일반 개념의 구체적 서브 개념에 기초한 콘텐츠 서치, 구체적 콘텐츠 타입에 기초한 콘텐츠 서치 및 파일 이름에 기초한 콘텐츠 서치 중 적어도 어느 하나를 포함하는 자원 관리 방법.
  15. 제1항에 있어서, 상기 콘텐츠를 서치하는 단계는
    메타 데이터 키에 기초하여 RLN들을 발견하는 단계;
    상기 메타 데이터 키와 연관된 하나 또는 그 이상의 RLN들을 식별하는 단계;
    쿼리를 상기 하나 또는 그 이상의 RLN들에게 전송하는 단계; 및
    만일 RLN이 상기 콘텐츠를 포함하고 있으면, 상기 콘텐츠와 관련된 정보를 담고 있는 응답을 수신하는 단계를 포함하는 자원 관리 방법.
  16. 제15항에 있어서,
    상기 콘텐츠를 요청하는 노드로부터 수신한 쿼리에 기초하여, 상기 쿼리를 그룹 리더에게 포워딩하는 단계를 더 포함하는 자원 관리 방법.
  17. 제16항에 있어서,
    상기 콘텐츠를 담고 있는 노드의 적어도 하나의 좌표와 인터넷 프로토콜 주소를 그룹 리더로부터, RLN에 의해 탐색하는 단계;
    상기 적어도 하나의 좌표와 인터넷 프로토콜 주소를, 상기 콘텐츠를 요청한 노드에게 제공하는 단계; 및
    상기 콘텐츠를 요청한 노드와 상기 콘텐츠를 갖고 있는 노드와의 통신을 설정하는 단계를 더 포함하는 자원 관리 방법.
  18. 제16항에 있어서,
    상기 RLN에 의해, 그룹 리더의 적어도 하나의 좌표와 인터넷 프로토콜 주소를 상기 콘텐츠를 요청하는 노드에게 직접 제공하는 단계;
    상기 콘텐츠를 요청한 노드에 의해, 상기 콘텐츠를 갖고 있는 상기 노드의 좌표와 인터넷 프로토콜 주소를 탐색하는 단계; 및
    상기 콘텐츠를 요청한 노드와 상기 콘텐츠를 갖고 있는 노드와의 통신을 설정하는 단계를 더 포함하는 자원 관리 방법.
KR1020090027078A 2008-04-04 2009-03-30 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템 KR20090106343A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090027078A KR20090106343A (ko) 2008-04-04 2009-03-30 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN863/CHE/2008(???) 2008-04-04
IN863/CHE/2008(????) 2009-03-18
KR1020090027078A KR20090106343A (ko) 2008-04-04 2009-03-30 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템

Publications (1)

Publication Number Publication Date
KR20090106343A true KR20090106343A (ko) 2009-10-08

Family

ID=41535964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090027078A KR20090106343A (ko) 2008-04-04 2009-03-30 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템

Country Status (1)

Country Link
KR (1) KR20090106343A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041247A (ja) * 2015-08-18 2017-02-23 Line株式会社 ビットを利用して文書に対するアクセス権限とタイプによって文書を検索するシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041247A (ja) * 2015-08-18 2017-02-23 Line株式会社 ビットを利用して文書に対するアクセス権限とタイプによって文書を検索するシステムおよび方法

Similar Documents

Publication Publication Date Title
Gnawali A keyword-set search system for peer-to-peer networks
Trunfio et al. Peer-to-Peer resource discovery in Grids: Models and systems
Tang et al. Hybrid Global-Local Indexing for Efficient Peer-to-Peer Information Retrieval.
Bender et al. Minerva: Collaborative p2p search
US20150039629A1 (en) Method for storing and searching tagged content items in a distributed system
Lin et al. SocioNet: A social-based multimedia access system for unstructured P2P networks
Tigelaar et al. Peer-to-peer information retrieval: An overview
Bender et al. The MINERVA project: Database selection in the context of P2P search
Sahin et al. Content-based similarity search over peer-to-peer systems
Liu et al. Keyword fusion to support efficient keyword-based search in peer-to-peer file sharing
Yang et al. An efficient interest-group based search mechanism in unstructured peer-to-peer networks
Trunfio et al. Peer-to-peer models for resource discovery on grids
Lu et al. Full-text federated search of text-based digital libraries in peer-to-peer networks
Liu et al. Supporting efficient keyword-based file search in peer-to-peer file sharing systems
Ulusoy Research issues in peer-to-peer data management
KR20090106343A (ko) 통신 네트워크에서 리소스의 공개, 복제 및 서치를 위한 방법과 시스템
Sioutas et al. Balanced distributed web service lookup system
Klampanos et al. Searching in peer-to-peer networks
Ferreira et al. Plethora: An efficient wide-area storage system
Asiki et al. A grid middleware for data management exploiting peer-to-peer techniques
Zhou et al. Adaptive indexing for content-based search in P2P systems
Lee et al. Efficient content search in ishare, a p2p based internet-sharing system
Omprakash et al. A Keyword-set Search System for Peer-to-Peer Networks
Zhu et al. Ndynamo: An ndnDHT-based distributed storage system over named data networking
Ahmed et al. Collaborative Web Hosting: Challenges and Research Directions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application