KR101441270B1 - 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법 - Google Patents

무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법 Download PDF

Info

Publication number
KR101441270B1
KR101441270B1 KR20137028484A KR20137028484A KR101441270B1 KR 101441270 B1 KR101441270 B1 KR 101441270B1 KR 20137028484 A KR20137028484 A KR 20137028484A KR 20137028484 A KR20137028484 A KR 20137028484A KR 101441270 B1 KR101441270 B1 KR 101441270B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
information
node
nodes
network
service
Prior art date
Application number
KR20137028484A
Other languages
English (en)
Other versions
KR20130125844A (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
Grant date

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Routing table update consistency, e.g. epoch number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/08Learning-based routing, e.g. neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL

Abstract

일부 실시예에서, 본 발명은 네트워크에서의 정보 라우팅에 관한 것으로서, 보다 구체적으로는, 무리 지능을 사용하는 프레임워크를 정의하는 것 및 네트워크에서 정보를 라우팅하는 데, 특히 클라우드 컴퓨팅 응용을 위해, 정의된 프레임워크를 이용하는 것에 관한 것이다. 일 실시예에서, 이용가능한 정보/서비스에 관한 정보가 정보 패킷(개미)을 사용하여 네트워크 노드로 푸시된다. 서비스를 필요로 하는 노드는 쿼리 패킷(개미)을 전송하고, 정보가 이용가능할 때, 노드는 쿼리 개미에 대한 응답을 전송할 수 있다. 노드의 인기도, 정보/요청의 신선도, 라우팅 테이블 정보, 및 정보 라우팅 테이블에서 캡처된 소비자 노드에 의한 요청 또는 관심에 기초하여, 개미가 네트워크를 통해 전달될 수 있다. 다른 실시예들이 기술되고 특허 청구되어 있다.

Description

무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법{SYSTEM AND METHOD OF UTILIZING A FRAMEWORK FOR INFORMATION ROUTING IN LARGE-SCALE DISTRIBUTED SYSTEMS USING SWARM INTELLIGENCE}

본 발명의 실시예는 일반적으로 네트워크에서의 정보 라우팅(즉, 노드가 필요한 정보를 신속하게 찾아낼 수 있게 하고 노드가 정보를 관심 있는 당사자에게 분산 방식으로 신속하게 배포할 수 있게 하는 것)에 관한 것으로서, 보다 구체적으로는 무리 지능(swarm intelligence)을 사용하는 프레임워크를 정의하는 것 및 네트워크에서 정보를 라우팅하는 데, 특히 클라우드 컴퓨팅 응용을 위해, 정의된 프레임워크를 이용하는 것에 관한 것이다.

새로운 "인터넷 시대"에서, 네트워크 내의 자원들(예컨대, 이용가능한 서비스 및 정보)은 많은 곳에 존재할 수 있다. 예를 들어, 서버 클라우드 컴퓨팅 응용의 경우, 많은 수의 데이터 센터/서버가 데이터 저장/서비스/계산 능력을 클라이언트에 제공하기 위해 협업한다. 자원 이용가능성은 변하는 네트워크 조건, 네트워크 활동, 및 응용으로 인해 동적이다. 이들 데이터 센터/서버의 자동 관리가 클라이언트의 서비스 요청 작업부하, 신뢰성, 견고성, 및 성능 요구사항에 신속하게 응답하고 그를 충족시킬 수 있게 하는 것이 중요하다. 게다가, 서버/데이터 센터에 의해 제공되는 서비스/정보가 균질하지 않다. 그 대신에, 풍부하고 다양하다. 서버/데이터 센터는 물론 클라이언트가 이러한 다양한 정보를 효과적으로 관리하고 동적 정보 이용가능성 상태를 추적할 수 있게 하는 것이 아주 어려울 수 있다. 피어 노드들이 서비스를 제공하기도 하고 소비하기도 하기 위해 서로 협업하는 클라이언트 클라우드 컴퓨팅 응용에서, 클라이언트 기계가 예측가능하지 않은 방식으로 켜지고 꺼질 수 있는 부가된 복잡성이 있다. 따라서, 자원 관리 시스템은 모든 노드의 동적 상태를 추적하고 나머지 네트워크를 업데이트하기 위해 충분히 빠르게 반응해야만 한다.

무리 기반 기술에서 다양한 연구가 수행되었고, 특히 개미-기반 기술이 네트워크에서의 분산 처리에 대한 문제점을 해결하기 위해 광범위하게 사용되었다. 기존의 네트워크 정보/자원 관리 시스템은 중앙 집중식의 수동 모드로 대규모 네트워크에서의 정보/자원 배포/검색을 지원하는 것을 제안한다. 이러한 시스템은 서버 또는 일련의 서버가 네트워크 자원을 관리할 것을 필요로 하고, 서버는 클라이언트에 대한 그의 이용가능성을 유지하기 위해 지속적인 관리 노력을 필요로 한다. 네트워크의 크기가 점점 증가함에 따라, 네트워크의 동적 특성을 추적하고 그에 반응하는 것이 점점 더 어려워지고 있다.

연구자들은, (1) Gianni Di Caro, Marco Dorigo의 "Antnet: Distributed Stigmergetic Control for Communications Networks", Journal of Artificial Intelligence Research 9 (1998), P317-365, 및 (2) Ruud Schoonderwoerd, Owen Holland, Janet Bruten 및 Leon Rothkrantz의 "Ant-based load balancing in telecommunication networks", Adaptive Behavior, Vol 5, No 2, 1996 둘 다에서, 개미-기반 라우팅 프로토콜이 대규모 네트워크에서의 효율적인 라우팅을 일반적으로 지원하는 것으로 밝혀졌다고 보고하였다.

현재, 하나의 무리-기반 프로토콜이 Tao Jiang 및 John S. Baras의 "Ant-Based Adaptive Trust Evidence Distribution in MANET", Proceedings of the 24th International Conference on Distributed Computing Systems Workshops (ICDCSW'04), 2004에 기술되어 있다. 이 논문(본 명세서에서 "Jiang 등의 논문"이라고 함)은 개미-기반 정보 배포를 제공한다. 이들 저자는 MANET(mobile ad hoc network)로부터 (신뢰의 증거로서) 인증서를 검색하는 데 개미 에이전트(ant agent)를 사용한다. Jiang 등의 논문은, 라우팅 테이블을 통해 라우팅하는 것보다는, 노드가 필요로 하는 정보를 직접 검색하는 시스템을 개시하고 있다. 그 대신에, 라우팅 테이블이 특정의 정보를 찾는 데 키워드를 사용하는 정보 라우팅 테이블로 대체되어 있다. 검색되는 유일한 정보는 대상 엔터티에 의해 인덱싱되어 있는 인증서이다.

본 발명의 특징 및 이점이 본 발명의 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른, 개미-기반 정보 배포 네트워크를 제공하기 위해 네트워크 노드에서 발견되는 기본 구성요소의 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 지정된 능력 파라미터를 갖는 정보 또는 서비스를 제공하는 노드를 식별하는 예시적인 정보 라우팅 테이블을 나타낸 도면이다.
도 3 내지 도 6은 빈(bin)이 확률 정보를 할당하는 데 어떻게 사용될 수 있는지를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른, 네트워크를 통한 쿼리 개미(query ant)와 쿼리 응답 개미(query reply ant)의 통신을 나타낸 네트워크 상의 예시적인 노드의 블록도이다.
도 8은 본 발명의 일 실시예에 따른, 정보/서비스를 네트워크 전체에 걸쳐 노드들로 전파하는 것을 용이하게 하는 부가 정보를 나타낸 예시적인 정보 라우팅 테이블을 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른, 서비스/정보 제공 노드가 어떻게 네트워크 전체에 걸쳐 정보를 전파할 수 있는지를 나타낸 흐름도이다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른, 확률 및 인기도 척도를 나타내는 부가의 요소를 갖는 라우팅 테이블을 나타낸 도면이다.
도 11a 및 도 11b는 본 발명의 일 실시예에 따른, 정보/서비스 제공 노드를 검색하기 위해 쿼리 개미가 어떻게 네트워크 전체에 걸쳐 전파될 수 있는지를 나타낸 흐름도이다.
도 12는 본 발명의 일 실시예에 따른, 라우팅 테이블에서의 각각의 노드에 대한 확률 척도를 사용하는 것은 물론, 인기도 척도를 사용하는 것에 기초하여, 네트워크 내의 노드들로의 쿼리 개미의 전파를 나타낸 그래프이다.

본 발명의 실시예는 데이터 저장 장치/컴퓨팅 자원을 필요로 하는 클라이언트와 필요한 데이터 저장 장치/컴퓨팅 자원을 제공할 수 있는 데이터 센터를 서로 연결시켜 줌으로써 네트워크에서 클라우드 컴퓨팅을 가능하게 하기 위해 무리 지능을 사용하는 것에 관한 시스템 및 방법이다. Jiang 등의 논문의 프로토콜은 본 발명의 실시예에 의해 해결되는 몇가지 문제점을 가진다. Jiang 등의 논문은 단일 유형의 정보, 즉 인증서만을 지원한다. 그의 해결책은 특정의 문제점에 대해서만 효과가 있는 반면, 본 발명의 실시예는 다수의 유형의 정보를 수용하기 위해 유연한 프레임워크를 제공한다. 게다가, 그의 프로토콜은, 본 발명의 실시예에서 제공되는 바와 같이, 정보 테이블의 관리를 용이하게 하기 위해 연결 정보, 라우팅 테이블 업데이트, 및 에이징(aging) 정보와 같은 다른 데이터 소스를 이용하지 않는다.

본 명세서에서 본 발명의 "일 실시예" 또는 "실시예"라고 하는 것은 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 따라서, 본 명세서에 걸쳐 여러 곳에서 나오는 "일 실시예에서"라는 표현이 모두가 반드시 동일한 실시예를 말하는 것은 아니다.

설명의 목적상, 본 발명의 완전한 이해를 제공하기 위해 구체적인 구성 및 상세가 기술되어 있다. 그러나, 본 발명의 실시예가 본 명세서에 제시된 구체적인 상세 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 게다가, 본 발명을 모호하게 하지 않기 위해 공지된 특징은 생략되거나 간략화되어 있을 수 있다. 이 설명 전체에 걸쳐 다양한 예가 주어져 있을 수 있다. 이들은 본 발명의 구체적인 실시예에 대한 설명에 불과하다. 본 발명의 범위가 주어진 예들로 제한되지 않는다.

기존의 중앙 집중식의 수동적인 정보 배포/검색 시스템은 대규모 네트워크에서의 정보/자원 배포/검색을 지원할 수 없고 사용자에 의한 견고성 및 신뢰성 요구사항을 만족시킬 수 없다. 본 발명의 실시예는 정보 배포 및 검색을 지원하는 정보 라우팅 테이블을 작성, 유지 및 사용하기 위해 개미-기반 방식을 사용한다. 이것은 몇 가지 이점, 예를 들어, 본질적인 견고성 및 고장 허용 특성을 제공한다. 개미-기반 라우팅의 성질로 인해, 다수의 목적지가 본 명세서에 기술된 프로토콜에 의해 자연적으로 지원된다. 따라서, 하나의 목적지가 장비 고장 또는 악의적인 공격으로 인해 동작하지 않는 경우, 선택할 다수의 대안의 목적지가 있다. 자동 네트워크 부하 분산 및 트래픽 혼잡 방지가 제공된다. 다수의 목적지 및 목적지를 선택하는 확률적 방식은 상이한 목적지가 선택될 수 있게 하고 트래픽을 네트워크의 상이한 부분으로 배포할 수 있게 한다. 이 방식은 트래픽 혼잡을 방지한다. 정보/서비스의 다양성이 지원된다. 정보 라우팅 테이블은 네트워크 내의 노드들에 의해 제공될 수 있는 풍부한 일련의 정보 유형을 수용하기 위해 유연성이 있다. 대규모 분산 네트워크가 지원될 수 있다. 네트워크 동적 특성의 변화의 효과적인 추적이 제공된다. 실시예는 인공 개미의 활용(exploitation) 및 탐사(exploration) 동작을 결합함으로써 네트워크 변화를 신속하게 추적할 수 있는 정보 라우팅 테이블 업데이트 메커니즘을 기술하고 있다. 개미는 더 많은 정보 및 빠른 서비스를 받기 위해 인기 있는 노드를 활용한다. 인기 있는 노드는 시간 창에 걸쳐 패킷에 의해 최종 목적지 노드로서 선택된 횟수에 의해 평가될 수 있다. 한편, 개미 에이전트는 네트워크의 임의의 변화를 신속하게 발견하기 위해 네트워크를 랜덤하게 탐사한다.

본 발명의 실시예는 대규모 동적 및 분산 시스템에 대한 정보 배포를 지원하는 프레임워크를 제안한다. 여기 제안된 메커니즘은 클라우드 컴퓨팅, 클라이언트 클라우드 컴퓨팅 등과 같은 다수의 영역에 적용가능할 수 있다. 정보/서비스를 교환, 소비 및 제공하는 데 많은 수의 노드를 필요로 하는 임의의 응용이 개시된 프레임워크를 적용할 수 있다.

무리-기반 컴퓨팅의 다양한 지금까지 생각지 못했던 구성요소 및 특징이 본 명세서에 소개되어 있다. 분산 시스템에서의 다양한 정보의 관리를 지원하는 프레임워크가 소개되어 있다. 정보를 구성하고 정보 배포를 용이하게 하는 확률적 정보 라우팅 테이블(probabilistic information routing table)이 소개되어 있다. 네트워크로부터 정보를 검색하는 데 사용되는 정보 라우팅 테이블도 역시 소개되어 있다. 개미 에이전트, 노드 메시지 교환, 라우팅 테이블 업데이트, 및 에이징 메커니즘을 포함하는, 기술된 정보 라우팅 테이블의 고속 업데이트 및 관리를 위한 메커니즘이 소개되어 있다.

실시예는 네트워크 및 서비스가 다음과 같은 특성을 가질 수 있게 한다:

네트워크가 수천 개의 노드를 가질 수 있음;

네트워크가 아주 동적인 토폴로지를 가질 수 있음(예컨대, 노드가 네트워크에 신속하게 참가하고 그로부터 떠날 수 있음);

정보 배포 및 검색을 제어하는 중심점(들)이 필요하지 않음;

네트워크 내의 노드에 의해 제공되는 많은 상이한 유형의 정보가 있을 수 있음;

동일한 유형의 정보 또는 서비스를 제공하는 다수의 노드가 있을 수 있음; 및

정보/서비스 이용가능성이 아주 동적일 수 있음(즉, 시간에 따라 빠르게 변할 수 있음).

또한, 본 발명의 실시예에 의해 제공되는 해결책은 다음과 같은 요구사항을 만족시킬 수 있다:

유효성: 새로운 정보에 관한 업데이트가 신속하게 소비자에게 배포될 수 있음;

견고성: 동적 네트워크 변화에 탄력적임; 및

효율: 정보 라우팅 테이블 및 정보 라우팅 테이블을 관리하는 메커니즘은 각각의 노드에 대해 그리고 네트워크에 대해 비교적 낮은 오버헤드를 유입시킴.

이제 도 1을 참조하면, 본 발명의 일 실시예에 따른, 기술된 정보 라우팅 프레임워크를 지원하는 각각의 노드(100)에서 발견되는 기본 구성요소의 블록도가 도시되어 있다. 일 실시예에서, 라우팅 테이블(101)은 노드 주소를 사용하여 네트워크 내의 다른 노드에 어떻게 도달하는지에 관한 정보를 제공한다. 하위 레벨 라우팅 메커니즘이 라우팅 테이블의 사용을 필요로 하는 네트워크 노드에 존재하는 것으로 가정된다. 정보 라우팅 테이블(103)은 개시된 정보 라우팅 프레임워크의 핵심으로서, 본 발명의 실시예에 따른 무리-기반 지능 정보 라우팅을 가능하게 한다. 정보 라우팅 테이블(103)은 데이터 이용가능성 정보를 제공한다. 서비스 소비 에이전트(service consuming agent)(105)는 네트워크로부터 원하는 서비스 및 데이터를 찾아내 풀링하기 위해 정보 라우팅 테이블을 사용한다. 서비스 제공 에이전트(service providing agent)(107)는 네트워크에 서비스를 제공하고 다른 노드의 정보 라우팅 테이블 내의 항목의 형태로 그의 서비스를 광고한다. 이들 구성요소는 이하에서 더 상세히 기술될 것이다.

일 실시예에서, 서비스 소비 에이전트 및 서비스 제공 에이전트는 "개미" 에이전트("ant" agent)(110)라고 하는 것을 이용할 것이다. 에이전트를 "개미"라고 하는 이유는 개미들이 마당에서 하는 것처럼 네트워크를 탐색하는 경향이 있기 때문이다. 개미는 적응적이고 분산적이며 강력한 문제 해결사일 수 있는 사회적 곤충이다. 마당을 탐사하는 개미는 자신이 어디에 있었는지를 나타내기 위해 페로몬을 남길 것이다. 개미는 스티그머지(stigmergy), 즉, 페로몬과 같은 그의 환경에서 유발되는 변경을 통해 개개의 개미들 간에 행해지는 간접적인 의사 소통을 통해 서로 의사 소통한다. 개미는 스티그머지를 통해 2개의 지점 사이의 최단 경로를 찾을 수 있다.

개미는 페로몬 농도에 비례하는 확률을 갖는 경로를 선택한다; 높은 페로몬의 경로에 있는 개미는 동일한 영역을 조사하고 있을 것이다(예컨대, 활용). 다른 경로를 사용하는 개미는 새로운 영역을 탐사하고 있을 것이다(예컨대, 탐사).

일 실시예에서, 정보 라우팅 테이블(information routing table, IRT)이 네트워크를 탐색하는 개미 에이전트가 남겨두는 정보에 대한 저장소로서 사용될 수 있는 프레임워크가 제공된다. 달리 말하면, IRT는 실세계에서 개미가 남겨두는 페로몬과 유사한 정보를 포함한다. 쿼리 개미(query ant)(113)는 필요한 서비스 또는 정보를 찾기 위해 노드에서 탐사 개미를 네트워크 내로 내보내는 데 사용될 수 있다. 응답은 쿼리-B 개미(115)에 의해 전송될 수 있다. 서비스 또는 정보를 제공하는 노드는 정보 개미(111)를 사용하여 그의 이용가능성을 고지할 수 있다.

대규모 네트워크에서, 각각의 유형의 정보/서비스가 다수의 노드에 의해 제공될 수 있고, 각각의 노드는 다수의 유형의 정보/서비스를 제공할 수 있다. 정보 라우팅 테이블(103)의 일 실시예가 도 2에 보다 상세히 도시되어 있다. 정보 라우팅 테이블의 특성은 다수의 제공 노드에 확률 값을 할당함으로써 다수의 제공 노드의 순위로서 나타내어져 있다. 도 2를 참조하면, 정보 라우팅 테이블(103)은 다음과 같은 항목을 포함한다: 현재 노드의 관심을 끌고 있는 정보/서비스 유형(T)(210). T는 정보 라우팅 테이블에서 정보/서비스 유형을 인덱싱한다. 각각의 정보/서비스 유형 Ti(210)에 대해, 마지막 액세스 타임스탬프(211)는 이 서비스 유형이 마지막으로 액세스된 때를 기록하는 데 사용된다. 타임스탬프는 Ti가 여전히 현재 노드의 관심을 끌고 있는지를 판정하는 데 도움을 준다. 각각의 정보/서비스 유형 Ti에 대해, 정보 라우팅 테이블은 Ti를 제공하는 노드(213) 및 제공 노드에 대한 설명을 다음과 같이 열거하고 있다:

ㆍ xi: 제공 노드의 주소(215);

ㆍ C(xi, Ti): 제공 노드의 능력 파라미터 집합(217). 노드의 능력을 정량화하는 임의의 메트릭, 예를 들어, 컴퓨팅 능력/메모리 크기 및 현재 이용가능한 컴퓨팅 능력/메모리 크기, 지연 시간, 비용, 보안 레벨 등이 여기에 정의될 수 있다;

ㆍ Rep{xi, Ti}: 공급자 평판(223)은 정보/서비스 제공 노드가 과거의 트랜잭션 경험에 기초하여 얼마나 신뢰할 만한지의 척도를 제공한다. 이 파라미터는 이동 시간 창(moving time window)에 걸친 지수(quotient), 예를 들어, 시간 창에 걸친 '성공적인 과거 트랜잭션의 횟수/과거 트랜잭션의 총수'로서 계산될 수 있다. 또한, 이웃 노드는 더 많은 정보를 제공하기 위해 신뢰 노드들 사이에서 이 정보를 공유할 수 있다. 이것은 노드가 이전에 사용해본 적이 없는 공급자 평판을 신속하게 할당하는 데 도움을 줄 수 있다. 새로운 정보/서비스 제공 노드에 대해, 공급자 평판은 0.5 또는 다른 소정의 등급으로 설정될 수 있다.

ㆍ 마지막 업데이트 타임스탬프: 마지막 업데이트 타임스탬프(219)는 이 항목이 마지막으로 업데이트된 때를 기록한다. 마지막 업데이트 타임스탬프는 현재 노드가 쓸모없게 된 정보에 기초하여 이 항목을 업데이트하는 것을 피할 수 있게 한다.

ㆍ Pr{xi, Ti}: 동일한 정보/서비스를 제공하는 모든 노드들 중에서 필요한 정보/서비스를 위해 노드 xi를 선택할 확률(221).

Pr{xi, Ti}는 다음과 같은 요구사항을 만족시킨다:

Figure 112013097721835-pat00001
, 여기서
Figure 112013097721835-pat00002
는 정보 유형 Ti를 제공하는 노드의 집합이다. 이 확률은 노드 능력, 공급자 평판, 마지막 업데이트/항목 액세스 정보 등의 함수로서 계산된다. IRT는 정보/서비스 유형 Ti를 제공하는 모든 노드의 정보를 포함하지 않을 수도 있다. 그 대신에, 통신 지연 시간, 비용, 공급자 평판 및 기타 메트릭에 따라 이러한 노드들의 부분집합이 IRT에 기록되도록 선택될 수 있다. 이 조치는 IRT 및 검색 동작을 단축시키기 위해 그리고 정보/서비스 유형 Ti를 빠르게, 신뢰성 있게, 저렴하게 그리고 안전하게 제공할 수 있는 노드만을 기록하기 위해 취해진다. 높은 능력, 공급자 평판을 갖거나 보다 최근에 업데이트된 노드는 통상적으로 보다 높은 확률 값을 가질 것이다. 확률 항목 계산은 응용에 고유하며, 변할 수 있다. 확률을 계산하는 예시적인 방법이 단지 예시로서 여기에 기술되어 있다.

예시로서, 잠재적인 서비스 공급자 센터가 어떻게 평가되는지를 설명하기 위해 다음과 같은 메트릭이 사용되는 것으로 가정한다: (1) 서버 처리 능력; (2) 메모리/저장 능력; (3) 공급자 평판; (4) 패킷이 서비스 제공 노드로부터 서비스 소비 노드까지 이동하는 이동 기간; 및 (5) 시간 값 T: 항목이 마지막 업데이트된 때. T초 동안 이동 시간 창에 걸쳐 이상에서 언급한 처음 4개의 메트릭에 대응하는 통계가 노드에 의해 수집된다. 실시예에서, 5개 이상의 메트릭이 있을 수 있다. 그러나, 이하에서 논의되는 바와 같이, 동일한 방법이 적용된다.

먼저, 각각의 메트릭이 그것들을 최종 확률 값으로 결합하기 전에 처리된다. 시간 값 T를 제외한 모든 메트릭을 처리하기 위해 다음과 같은 처리가 사용될 수 있다:

첫째, 최소값과 최대값 사이의 구간이 N개의 빈으로 나누어진다. 둘째, 각각의 빈에 그 빈의 선호도를 나타내는 값이 할당된다. 예를 들어, 주안점이 처리 능력인 경우, 보다 높은 처리 능력을 포함하는 빈은 보다 낮은 처리 능력을 포함하는 빈보다 더 높은 값을 가질 것이다.

메트릭 값의 처리를 위해, 다음과 같은 표기법이 사용된다:

Pmax는 정보 개미에 의해 푸시된 정보 또는 이하에서 더 논의되는 기타 수단에 의해 과거 T초 동안 관찰된 최대 서버 처리 능력이고, Pmin은 최소 처리 능력이다.

Pbin = (Pmax- Pmin)/N_P_interval, 여기서 N_P_interval은 처리 능력을 균일한 크기를 갖는 Pmin부터 Pmax까지의 N_P_interval개의 버킷으로 나누는 10 또는 다른 수일 수 있다. Pmin부터 Pmax까지의 구간은 역시 다양한 크기를 갖는 버킷으로 나누어질 수 있다는 것에 유의한다.

Mmax는 과거 T초 동안 관찰된 최대 저장 크기이고 Mmin은 최소 저장 크기이다.

Mbin = (Mmax- Mmin)/N_M_interval, 여기서 N_M_interval은 저장 능력을 균일한 크기(또는 가변 크기)를 갖는 Mmin부터 Mmax까지의 N_M_interval개의 버킷으로 나누는 10 또는 다른 수일 수 있다.

Tmax는 과거 T초에 걸쳐 관찰된 패킷에 의한 최대 이동 기간이고 Tmin은 최소 이동 기간이다.

Tbin = (Tmax- Tmin)/N_T_interval, 여기서 N_T_interval은 이동 기간을 균일한 크기(또는 가변 크기)를 갖는 Tmin부터 Tmax까지의 N_T_interval개의 버킷으로 나누는 10 또는 다른 수일 수 있다.

Repmax는 과거 T초 동안 관찰된 다양한 정보/서비스 공급자에 대한 최대 공급자 평판이고 Repmin은 최소 공급자 평판이다.

Repbin = (Repmax-Repmin)/N_Rep_interval, 여기서 N_Rep_interval은 공급자 평판을 균일한 크기(또는 가변 크기)를 갖는 Repmin부터 Repmax까지의 N_Rep_interval개의 버킷으로 나누는 10 또는 다른 수일 수 있다.

도 3에 나타낸 바와 같이, 빈 번호가 각각의 빈에 할당된다. 각각의 빈에 값이 할당되어 있다. 처리 능력, 저장 크기 및 평판에 대해, 그의 빈 각각에 값을 할당하기 위해 다음과 같은 함수가 사용될 수 있다:

빈 값 = (빈 # x 빈 폭)p / (N_P_interval 또는 N_M_interval 또는 N_Rep_interval x 빈 폭)p이고 p>0이며, 여기서 p = 1 및 2에 대한 빈 값은 도 4에서 찾아볼 수 있다.

기간(또는 보다 작은 수가 선호되는 경우 다른 메트릭)에 대해, 빈 값 할당은 다음과 같을 수 있다:

빈 값 = 1-(bin #)p / (N_T_interval)p이고 p>0이며 여기서 p = 1 및 2에 대한 빈 값은 도 5에서 찾아볼 수 있다.

p > 1일 때, 보다 높은 빈 번호(기간에 대해서는 보다 낮은 빈 번호)가 더 많은 것을 보상받는 경향이 있다는 것에 유의한다.

일 실시예에서, 모든 메트릭을 하나로 결합시키기 위해 다음과 같은 방법이 사용될 수 있다.

값=(α1*처리 능력 빈 값 + α2*저장 크기 빈 값 + α3*공급자 평판 빈 값 + α4*기간 빈 값)*exp(-β*(현재 시간-T)), 여기서 모든 α의 합 = 1이다. α의 정확한 값은 그 특정의 메트릭이 얼마나 중요한지에 따라 다르다. 예를 들어, 시간에 민감한 응용에서의 노드에 대해, α4는 0.5로 설정될 수 있는 반면 α1 = 0.05, α2 = 0.05 및 α3 = 0.4이다. 한편, β는 에이징(항목이 최근에 업데이트되지 않음)으로 인해 확률이 얼마나 떨어질 것인지를 제어한다. 도 6은 exp(-β* (현재 시간 - T)) 값에 대한 β 값의 영향을 포착한 것이다. β 값이 높을수록, exp(-β*(현재 시간 - T))의 강하가 빨라진다는 것에 유의한다.

이제, 최종 확률 값이 결정될 수 있다. 예시를 위해, 서비스 유형 T1에 대해, 5개의 항목이 있고, 따라서 5개의 값이 있을 것으로 가정한다: Value_1, Value_2, Value_3, Value_4 및 Value_5. 제n 항목에 대한 최종 확률은 다음과 같이 계산될 수 있다:

Prob_n = Value_n/(Value_1+Value_2+Value_3+Value_4+Value_5). 다른 확률 계산 방법은 일 실시예에서, 예를 들어, 값을 추가로 가중하는 데 사용될 수 있다.

노드가 특정의 정보/서비스 유형 Ti를 필요로 할 때, 노드는 서비스 Ti를 제공하는 노드의 그의 정보 라우팅 테이블 항목을 검사한다. 항목이 노드의 성능 메트릭 요구사항을 만족하지 않는 경우, 서비스 쿼리는 실패한다. 노드는 네트워크 상의 정보/서비스를 능동적으로 검색하기 위해, 이하에서 더 논의되는 바와 같이, 정보 쿼리 프로세스를 호출할 수 있다. 응용에 대한 노드의 성능 메트릭 요구사항을 만족시키는 적어도 하나의 항목이 정보 라우팅 테이블 내에 있는 경우, 성능 메트릭 요구사항을 만족시키는 노드들에 대한 확률을 정규화하기 위해 이하의 동작이 수행될 수 있다. 이 동작은 정보/서비스 제공 노드가 동일한 서비스를 제공하는 모든 적격 노드들 중에서 선택될 수 있게 하기 위해 수행된다. 정보/서비스 Ti에 대한 쿼리가 발생될 때마다, 정보/서비스 Ti에 대한 정보 라우팅 테이블 내의 L_access_time_Ti가 먼저 업데이트될 것이다. 그 다음에, 성능 메트릭 요구사항을 만족시키는 항목들에 대한 확률이 다음과 같이 정규화되어야 한다.

현재의 서비스 요청의 성능 메트릭 요구사항을 만족시키는 모든 제공 노드가 집합 X'i 내로 수집되고

Figure 112013097721835-pat00003
이며, 여기서
Figure 112013097721835-pat00004
는 정보 유형 Ti를 제공하는 노드들의 집합이다. 따라서, 각각의 노드 x에 대해, x가 현재의 서비스 요청의 성능 메트릭 요구사항을 만족시키는 경우에만
Figure 112013097721835-pat00005
이다.

각각의 노드

Figure 112013097721835-pat00006
에 대한 확률은 다음과 같이 정규화될 수 있다:

Figure 112013097721835-pat00007

서비스 제공 노드(들)가 Pr(x,Ti)normalzed를 직접 사용하여 또는 Pr(x,Ti)normallzed의 함수를 사용하여 랜덤하게 선택될 수 있다. 계산된 정규화된 확률을 사용하여 노드를 랜덤하게 선택하기 위해 난수 발생기 또는 다른 방법이 사용될 수 있다. 예를 들어, 난수 발생기는 0과 1 사이의 숫자를 발생한다. 확률이 각각 0.25 및 0.75인 2개의 노드 a 및 b만이 있는 경우, 계산된 난수가 0.6에서 반환되면, 노드 b가 선택되는데 그 이유는 난수가 0.25와 1.0 사이에 속하기 때문이다. 발생된 난수가 0.15인 경우, 노드 a가 선택된다. 따라서, 노드들에 대한 확률이 0.0 내지 1.0의 범위의 구간들로 분할된다. 서비스 요청이 이어서 선택된 노드(들)로 전송될 수 있다. 실제 선택 기준은 응용에 고유하다는 것에 유의한다. 현재 노드에 서비스하도록 선택된 하나 또는 다수의 노드가 있을 수 있다. 엄격한 순위 번호와 달리, 확률 방식을 사용하는 것은 상위 순위 제공 노드들의 동일한 작은 집합으로부터 서비스를 찾고 있는 모든 노드에 의해 생성되는 트래픽 혼잡을 피할 수 있다.

일 실시예는 노드에 있는 정보 라우팅 테이블을 업데이트하는 몇 가지 업데이트 메커니즘을 제공한다. 나중에 기술하게 될 업데이트 메커니즘은 정보 이용가능성을 네트워크에 걸쳐 효과적으로 전파하고 업데이트하기 위해 무리 지능 패러다임을 사용한다. 이 목표를 달성하기 위해 "인공 개미 에이전트"가 사용될 수 있다. 예를 들어, 네트워크로부터 정보를 풀링하기 위해 쿼리 개미 에이전트가 사용될 수 있다. 정보/서비스를 필요로 하는 노드로 새로운 정보/서비스 또는 정보/서비스 업데이트를 능동적으로 푸시하기 위해 정보 개미 에이전트가 사용될 수 있다.

또한, 정보 라우팅 테이블 업데이트가 다음과 같은 것들에 의해 트리거될 수 있다: (1) 정보/서비스를 제공하는 노드로부터의 서비스 응답 메시지; 및/또는 (2) 하위 계층 라우팅 테이블로부터의 업데이트된 정보; 및/또는 (3) 정보 라우팅 테이블 항목의 에이징.

이제 도 7을 참조하면, 본 발명의 일 실시예에 따른, 네트워크를 통한 쿼리 개미(query ant)와 쿼리-B 응답 개미(query-B reply ant)의 통신을 나타낸 네트워크 상의 예시적인 노드가 도시되어 있다. 서비스 제공 노드(710)는 서비스 요청(701)에 응답하여 응답 메시지(703)를 전송할 수 있다. 이 응답 메시지(703)가 네트워크(730)를 통해 이동할 때, 응답 메시지(703)는 요청 노드(720)로 다시 돌아가는 동안 만나게 되는 각각의 노드 상의 정보 라우팅 테이블(723)의 정보 업데이트를 트리거(703a)할 수 있다. 중간 노드(740)는 서비스 제공 노드에 의한 새로 이용가능한 서비스를 기록하기 위해 기존의 테이블 항목을 업데이트하거나 새로운 항목을 생성할 수 있다. 또한, 동일한 정보/서비스를 제공하는 현재 노드의 정보 라우팅 테이블 내의 모든 항목의 확률 값이 업데이트될 것이고, 새로운 업데이트를 반영하기 위해 확률 값이 재계산될 것이다.

네트워크 연결 또는 토폴로지의 변화가 있을 때, 라우팅 테이블(721)이 업데이트된다. 노드가 도달가능하지 않게 될 때, 그 노드는 노드의 라우팅 테이블로부터 제거될 수 있다. 도달가능하지 않은 노드는 정보/서비스를 제공할 수 없을 것이다. 따라서, 노드가 라우팅 테이블로부터 제거될 때, 그 노드는 정보 라우팅 테이블(723)로부터도 자동으로 제거될 수 있다. 도달가능하지 않은 노드에 관련된 항목은 정보 라우팅 테이블(723)에서 삭제될 것이고, 동일한 정보/서비스를 제공하는 모든 나머지 노드의 확률 값이 재계산될 것이다.

정보 라우팅 테이블(723) 내의 오래된 항목은 쓸모없게 될 수 있고, 현재의 네트워크/장치 조건을 반영하고 있지 않을 수 있다. 또한, 일정 기간 동안 액세스되지 않은 정보/서비스 유형은 그 정보/서비스 유형에 대한 낮은 관심 레벨을 반영한다. 확률 항목 업데이트 함수는 업데이트 타임스탬프를 고려하기 때문에, 이들 오래된 항목이 오래됨에 따라 그의 확률 항목이 떨어진다. 그의 확률 항목이 낮은 임계값에 도달할 때, 그 항목은 정보 라우팅 테이블로부터 제거될 수 있는데, 그 이유는 그 항목이 쓸모없게 되거나 더 이상 중요하지 않고/흥미를 끌지 않기 때문이다. 동일한 정보/서비스 유형의 나머지 항목의 확률 값이 이들 변화를 반영하기 위해 그에 따라 재계산될 것이다. 또한, 정보/서비스 유형이 오랫동안 액세스되지 않아, 액세스 타임스탬프에 의해 반영된 어떤 임계값을 초과하였을 때, 그 전체 정보/서비스 유형이 정보 라우팅 테이블로부터 제거될 수 있다. 이 정보/서비스 유형은 이어서 더 이상 노드의 관심을 끌지 못하는 것으로 가정된다.

정보가 각종의 방식으로 네트워크를 통해 노드로 전파될 수 있다. 노드의 라우팅 테이블에 대한 일부 새로운 항목에 대해 앞서 논의하였다. 대규모 네트워크에서 정보/서비스를 찾는 데 도움을 주는 정보 라우팅 테이블에 대해서도 논의하였다. 본 발명의 실시예는 정보/서비스를 네트워크를 통해 노드로 전파시키는 것을 용이하게 하는 정보 라우팅 테이블에 대한 부가의 항목을 포함한다.

도 8은 각각의 기존의 정보 유형 또는 새로운 정보 유형 Ti에 대한 다음과 같은 4개 이상의 필드의 추가를 갖는 예시적인 정보 라우팅 테이블을 나타낸 것이다: (1) 서비스에 관해 문의하는 소스 노드(801); (2) 쿼리 개미 생성 시간(807); (3) 성능 메트릭 요구사항(803); 및 (4) 쿼리 개미 도착 시간(805). 서비스를 문의하는 소스 노드(801)는 쿼리 개미(나중에 논의함)를 전송한 노드 주소이다. 쿼리 개미 생성 시간은 정보 라우팅 테이블이 가장 최신의 정보를 포함하도록 하기 위해 사용된다. 동일한 쿼리를 갖고 있는 동일한 노드로부터의 새로운 쿼리 개미가 보다 최근의 생성 시간을 갖고 노드에 도착할 때, 기존의 항목이 새로운 쿼리 개미 내의 정보로 업데이트될 것이다. 쿼리 개미는 이어서 그 다음 새로운 노드로 전달될 것이다. 한편, 새로운 도착 쿼리 개미가 오래된 경우, 쿼리 개미가 폐기되고 그 다음 새로운 노드로 전달되지 않을 것이다. 성능 메트릭 요구사항(803)은 소스 노드를 만족시키기 위해 필요한 용량 요구사항 및 공급자 평판을 나타낸다. 쿼리 개미 도착 시간(805)은 쿼리 개미가 수신된 시간을 저장한다. 현재 시간과 쿼리 개미 도착 시간의 차이를 비교함으로써 시간 제한을 넘어서 오래된 항목이 정보 라우팅 테이블로부터 삭제될 수 있다.

새로운 항목(801, 803, 805, 807)은 정보/서비스 이용가능성 업데이트가 어느 노드로 전송되어야 하는지를 결정하기 위해 정보 개미에 의해 사용될 수 있다.

네트워크 내의 다른 노드들에 제공할 수 있는 정보/서비스를 신속하게 전파하기 위해 노드에 의해 정보 개미 에이전트가 사용될 수 있다. 각각의 노드에서, 다음과 같은 것에 대응하는 정보를 전파하기 위해 정보 개미 에이전트가 네트워크로 송출될 수 있다: (1) 새로운 장치가 네트워크에 참가하는 것으로 인해 추가되는 새로운 정보/서비스; (2) 부하 경험이 변할 때 일어나는 능력 파라미터의 상당한 변화(요구가 만족될 때의 용량 증가 또는 보다 많은 새로운 서비스 요청이 수신될 때의 용량 감소); 및 (3) 장치/노드가 적절히 셧다운될 때 삭제되는 정보/서비스. 일부 실시예에서, 네트워크 상에서 정보를 최신의 것으로 유지하기 위해, 정보 개미가 주기적인 간격으로 전송될 수 있다.

일 실시예에서, 정보 개미 에이전트는 다음과 같은 형식으로 이루어져 있고:

Figure 112013097721835-pat00008
, 여기서

D는 정보 개미가 가야 하는 목적지 노드이고,

S는 정보/서비스가 이용가능한 소스 노드 주소이며,

T는 노드에 의해 제공되는 정보 유형이고,

iCTime은 S 및 정보 유형 T와 연관된 정보 개미의 생성 시간을 기록하며, 여기서 S는 노드가 생성하는 각각의 정보 유형에 대해 개별적인 iCTime을 유지한다. 유형 T의 정보를 업데이트하는 정보 개미 배치(batch of information ants)가 동일한 iCTime을 사용하여 발생된다. 새로운 업데이트가 발생될 때마다, 업데이트가 발생되는 때의 현재 시간으로 iCTime 값이 업데이트된다.

PM{S,T}는 능력 파라미터, 소스 노드 S에서 제공되는 정보 유형 T의 공급자 평판을 포함한다.

hop은 정보 개미가 지금까지 이동한 거리를 명시하는 홉의 총수이다. 시작 시에, hop = 0이다.

D_type_flag는 정보 개미의 목적지 D가 어떻게 설정되는지를 지정한다. 일 실시예에서, D_type_flag는 다음과 같이 설정될 수 있다.

목적지 D가 정보 라우팅 테이블을 사용하여 설정되는 경우, D_type_flag = S이다. 이것은 목적지 D가 과거에 정보 유형 T에 관해 능동적으로 쿼리했고 아마도 장래에 이 정보 유형에 관한 업데이트를 수신하는 데 관심이 있을 것임을 암시한다.

목적지 D가 라우팅 테이블을 사용하여 설정되는 경우, D_type_flag = P이다. 이것은 목적지 D가 그의 인기도 척도로 인해 선택되고 정보 유형 T에 관심이 있거나 없을 수 있다는 것을 암시한다. 따라서, 이러한 방식으로 선택된 목적지는 정보 개미를, 정보 업데이트를 실제로 필요로 하는 노드로 리디렉션하기 위해 나중의 홉에서 변경될 수 있다.

일 실시예에서, 네트워크 상에서 정보를 전파하기 위해 도 9에 도시된 프로세스가 사용될 수 있다. 노드가 정보 유형 T를 제공하는 것을 시작하거나 중단할 때, 또는 정보 유형 T를 제공하는 것에 관한 노드의 능력 파라미터가 상당히 변화되었을 때, 블록(901)에서 노드는 정보 개미를 내보냄으로써 이 정보를 전파하기 시작할 것이다.

블록(903)에서, N개의 정보 개미가 앞서 기술한 바와 같은 형식으로 발생된다. information(D1, S, T), information(D2, S, T), ..., information(Dn, S, T), 여기서 D1, D2, ..., Dn은 목적지 노드임. 각각의 노드가 네트워크 혼잡 레벨 추정, 업데이트의 긴급성, 정보 유형에 관한 관심 레벨 등에 기초하여 N에 대해 상이한 값을 사용할 수 있다는 것을 이해하여야 한다. 블록(905)에서, 목적지 노드가 다음과 같이 선택될 수 있다. 임의의 정보 라우팅 테이블이 소스 노드의 요구사항을 만족시키거나 초과하는 성능 메트릭 파라미터를 갖는 정보 유형 T에 관해 문의하는 소스 노드를 포함하는 경우, 이들 소스 노드가 목적지 주소로서 설정되고, D_type_flag = S이다. 정보 라우팅 테이블에 N개 초과의 소스 노드가 있는 경우, 라우팅 테이블 내의 인기도 척도를 사용하여 N개의 가장 인기 있는 소스 노드가 선택될 수 있으며, 이 경우 D_type_flag = S이다. 정보 유형에 관심이 있는 보다 적은 소스 노드가 정보 라우팅 테이블에 있는 경우, 나머지 정보 개미가 라우팅 테이블에서 아직 선택되지 않은 가장 인기 있는 노드로 전송되고 D_type_flag = P로 설정할 수 있으며, 이는 그 노드들이 소스 또는 중간 노드의 정보 라우팅 테이블에서 식별된 정보를 특정하여 요청하지 않았음을 나타낸다. 정보 라우팅 테이블에서 정보가 발견되지 않은 경우, 목적지 노드는 인기도 척도에 따라 라우팅 테이블에서의 N개의 가장 인기 있는 목적지로 설정될 수 있다. 라우팅 테이블에 N개 미만의 목적지가 있는 경우, 정보 개미의 수가 감소될 수 있거나, 정보 개미가 중복된 주소로 전송될 수 있다. 중복된 주소로 전송될 때, 정보 개미가 중간 노드에 의한 라우팅 및 재라우팅에서의 일부 랜덤성으로 인해 네트워크의 상이한 부분을 통해 전파될 수 있다는 것을 이해할 것이며, 이에 대해서는 이하에서 더 논의된다. 따라서, 정보가 궁극적으로 중복이 허용되지 않은 경우보다 더 많은 노드에 도달할 수 있다.

정보 패킷 information(D,S,T)에 대해 목적지 노드가 설정되면, 블록(907)에서 라우팅 테이블을 사용하여 정보 개미가 라우팅될 수 있다. 각각의 홉에서, 정보 개미의 수신기 노드는 다수의 동작 중 하나를 취할 수 있다. 예시를 위해, 노드 l이 통신 경로에 의해 목적지 노드 n에 직접 연결되어 있지 않은 경우, 정보는 적어도 하나의 중간 노드 m을 통과해야만 한다. 중간 노드 m은 노드 l에 대한 라우팅 테이블에서 식별된다.

일 실시예에서, 중간 노드는, 특정의 기준에 기초하여, 정보 개미에 대한 궁극적인 목적지 주소를 변경할 수 있다. D_type_flag = P인 경우, 정보 개미의 목적지 주소가 변경될 수 있다. D_type_flag = P인 상태에서 정보 개미 information(D, S, T)를 수신할 시에, 수신 노드는 그 자신의 정보 라우팅 테이블을 검사할 것이다. C{S,T} 및 Rsp{S,T}에 의해 만족된 성능 메트릭 요구사항을 갖는 정보 유형 T에 관해 문의하는 소스 노드가 존재하는 경우, 목적지 D가 그 새로운 소스 노드로 전환되고 D_type_flag = S로 설정할 수 있다. 다수의 소스 노드가 존재하는 경우, 가장 인기 있는 소스 노드가 목적지로서 선택될 수 있다. 동일한 인기도 척도를 갖는 다수의 소스 노드에 대해, 목적지가 랜덤하게 선택될 수 있다. 정보 개미가 이어서 중간 노드의 라우팅 테이블을 사용하여 목적지 노드로 전달된다.

블록(909)에서, 수신 노드는 각각의 {S, T} 쌍에 대한 저장된 iCTime을 수신된 iCTime 값과 비교함으로써 정보 개미가 신선한지를 판정한다. 블록(909)에서 판정된 바와 같이, 수신된 iCTime 값이 유지된 iCTime 값보다 작거나 같은 경우, 블록(921)에서 정보 개미가 폐기된다. 그렇지 않은 경우, 유지된 iCTime이 수신된 값으로 업데이트되고, 개미(정보)의 정보 처리가 계속된다.

블록(911)에서, 정보 개미에 포함된 정보를 사용하여, 정보 유형 T에 관한, 필요할 경우 새로운 항목 또는 정보 라우팅 테이블 내의 기존의 항목의 업데이트가 수행된다. 이어서, 정보 유형 Ti의 확률 값이 재계산되고 정보 라우팅 테이블 내의 항목에 적용된다. 블록(913)에서 판정된 바와 같이, 수신 노드가 목적지 노드인 경우, 블록(915)에서, 업데이트가 완료되고 정보 개미가 "폐기"되는데, 예컨대, 더 이상 전송되지 않는다. 그렇지 않은 경우, 블록(923)에서, 개미가 인기도 척도로 인해 라우팅되었다는 것을 나타내는지(예컨대, D_type_flag = P) 알아보기 위해 D_type_flag가 검사된다.

블록(923)에서 판정된 바와 같이, D_type_flag = P인 경우, 블록(925)에서, 적절한 경우, 앞서 기술한 바와 같이, 정보 개미 목적지 주소가 변경되고 D_type_flag = S로 설정할 수 있다. 블록(917)에서 홉의 총수가 증가되고, 이어서 블록(919)에서 홉의 총수가 최대 임계값을 초과했는지를 판정하기 위해 검사된다. 홉의 총수가 최대 임계값을 초과한 경우, 블록(921)에서, 개미가 폐기되고 더 이상 전달되지 않는다. 홉의 총수가 초과되지 않은 경우, 블록(907)에서, 라우팅 테이블을 사용하여 정보 개미가 다음 홉으로 라우팅되고, 목적지 노드에 도달되거나 홉의 총수가 최대 임계값을 초과할 때까지 프로세스가 계속된다. 홉의 총수가 초과될 때, 블록(921)에서, 개미가 폐기되고 더 이상 전달되지 않는다.

네트워크 에이전트 내의 다수의 파라미터가 초기값으로 설정된 다음에 네트워크의 성능에 기초하여 수정될 수 있다. 예를 들어, 각각의 정보 업데이트에 대해 발생될 정보 개미의 수(N)는, 전달이 너무 많은 네트워크 트래픽을 생성하는 경우 감소되거나, 노드가 적시에 개미를 수신하지 않는 경우 증가될 수 있다. 타당한 초기값은 Log(n)일 수 있고, 여기서, 일부 네트워크에 대해, n은 네트워크에서 도달될 수 있는 노드의 수이다. N에 대한 최상의 선택은 네트워크 혼잡 레벨 추정, 업데이트의 긴급성, 정보 유형에 관한 관심 레벨 등에 의존할 것이다. 네트워크 자원에 과도한 부담을 주지 않고 정보를 보다 효과적으로 전파하기 위해 정보 개미가 이동한 노드의 수인 HOP_MAX가 수정될 수 있다. 초기값은 라우팅 테이블에 의해 결정되는 가장 멀리 있는 노드에 도달하기 위한 홉의 수, 즉, 네트워크의 직경 또는 그의 분수일 수 있다.

상기한 게시/가입(publish/subscribe) 또는 푸시/풀(push/pull) 분산 프로토콜은 네트워크 상의 노드가 어느 정보를 소비하고자 하는지를 신청할 수 있게 한다. 노드의 가입 정보는 다른 노드들의 정보 라우팅 테이블 내의 항목으로서 네트워크 상에서 이용가능하다. 따라서, 데이터 또는 서비스가 이용가능하게 될 때, 생성자는 데이터를 가입자에게 효과적으로 배포할 수 있다. 개미 에이전트를 사용하여 정보 쿼리 및 발견을 더 신속히 하기 위해 정보의 생성자가 데이터 이용가능성 정보를 네트워크 상에 능동적으로 푸시할 수 있게 하는 기존의 프로토콜이 없다. 본 발명의 실시예는 노드가 네트워크 상으로 제공하는 이용가능한 정보/서비스를 능동적이고 신속하게 푸시하기 위해 개미-기반 메커니즘을 사용한다. 정보 개미는 다른 노드의 정보 라우팅 테이블 항목을 직접 업데이트한다.

이 개미 기반 전파는, 정보 개미를 가장 최근의 쿼리를 제출한 노드로 능동적으로 리디렉션함으로써, 정보 광고가 정보를 가장 필요로 하는 노드에 도달할 수 있게 한다. 정보/서비스를 능동적으로 소비하지만 소스 노드의 이웃에 있지 않은 노드에 대한 정보 발견은, 쿼리 개미가 이동해 간 임의의 노드의 정보 라우팅 테이블에 기록된 가장 최근의 쿼리에 기초하여 정보 개미의 목적지를 계속하여 재조정함으로써, 효율적으로 된다.

정보 라우팅 테이블에서 쿼리 항목이 발견되지 않는 경우 정보 개미의 목적지를 인기도 척도에 기초하여 가장 인기 있는 노드로 선택함으로써 네트워크를 통한 정보 개미 배포의 범위가 증가될 수 있다.

일 실시예에서, 이용가능한 자원을 탐색하기 위해 쿼리 개미가 기회주의적으로 발생되어 전달될 수 있다. 쿼리 개미를 수신한 것에 응답하여 정보 개미가 전송될 수 있다. 하위 레벨 라우팅 테이블에 추가된 인기도 척도는 쿼리 개미가 보다 높은 확률을 갖는 인기 있는 노드로 이동하는 것을 용이하게 할 수 있다. 이 특징은 정보 쿼리의 유효성 및 효율을 향상시키는데, 그 이유는 쿼리가 인기 있는 노드에 보다 빠르게 도달할 수 있게 하기 때문이다. 노드 인기도는 노드가 시간 창에 걸쳐 얼마나 자주 패킷의 목적지 노드로 설정되느냐로 측정된다. 출원인은 더 많은 정보 교환이 인기 있는 노드에서 행해지는 것으로 생각한다. 따라서, 이들 인기 있는 노드는 더 많은 정보를 제공할 수 있고, 정보가 더 빈번히 업데이트된다.

통상의 라우팅 테이블은 목적지 노드에 의해 인덱싱되어 있고, 목적지 노드 각각에 도달하기 위한 그 다음 홉을 지정한다. 개미-기반 라우팅 알고리즘의 경우, 각각의 노드에 있는 라우팅 테이블은 각각의 목적지 노드에 대한 다수의 경로를 나타낼 수 있다.

도 10a는 일반 라우팅 테이블을 나타낸 것이다. 부가의 항목이 부록 테이블과 같은 별도의 테이블에 저장될 수 있고 라우팅 테이블을 사용할 필요가 있는 레거시 코드가 혼란을 겪지 않도록 라우팅 테이블에 적절히 인덱싱되어 있을 수 있다는 것을 이해할 것이다. 각각의 항목에 대해, 목적지 노드에 어떻게 도달하는지에 관한 정보가 있다. 라우팅 테이블 정보는 목적지 노드(1001), 패킷이 주어진 목적지를 향해 전달될 수 있는 다음 홉 노드(1003), 주어진 목적지에 대한 많은 선택 항목들 중에서 다음 홉 노드를 선택할 확률(1005), 항목의 타임스탬프 등을 포함할 수 있다. 동일한 목적지 노드에 이르게 되는 다음 홉 노드들에 대한 모든 확률 항목의 합은 1이 되어야 한다. 특정의 라우팅 프로토콜에 따라, 실제의 라우팅 프로토콜은 도 10a에 나타낸 정보 중 일부 또는 그보다 많은 정보를 포함할 수 있다. 당업자에게는 네트워크 또는 노드 라우팅 프로토콜이 본 명세서에 기술된 라우팅 테이블에 대한 부가의 항목에 대한 변경에 의해 향상될 수 있지만, 원래의 항목이 수정될 필요는 없다는 것이 명백할 것이다.

도 10b는 원래의 라우팅 테이블에 대한 부가의 항목인 인기도 척도를 나타낸 것이다. 일 실시예에서, 라우팅 테이블은 목적지의 인기도 척도에 대한 부가의 항목(1007)을 포함한다. 인기도 척도는 노드가 패킷의 최종 목적지로서 얼마나 자주 선택되느냐의 함수로서 도출될 수 있다. 출원인은 인기 있는 노드가 더 자주 방문되었고 따라서 정보/서비스 T에 관한 더 많은 정보를 정보 라우팅 테이블에 포함한다는 것을 관찰하였다. 정보는 또한 보다 최신의 것인 경향이 있다. 따라서, 쿼리 개미가 보다 높은 확률로 이들 노드를 방문하는 경우, 유용한 정보를 만날 가능성이 더 높다. 이들 인기 있는 목적지 노드를 방문하도록 쿼리 개미에 영향을 주기 위해, 일 실시예에서, 각각의 목적지 노드에 대한 부가의 항목이 라우팅 테이블에 추가될 수 있다. 이 새로운 항목은 목적지 노드의 인기도 척도(1007)이다. 예시적인 인기도 척도는 마지막 시간 창 크기 Q에 걸쳐 노드 k가 패킷의 최종 목적지로서 선택된 횟수를 카운트하는 Counter(k, Q)(1007)이다. 다른 인기도 척도가 사용될 수 있다는 것을 이해할 것이다.

다시 도 10b를 참조하면, 테이블 항목 Pr{A, k}(1011)은 목적지 노드 k에 도달하기 위해 다음 홉 노드 A를 선택할 확률을 나타낸다. 정보/서비스를 필요로 하지만 정보/서비스 요구를 만족시키는 충분한 정보를 정보 라우팅 테이블에서 발견할 수 없는 노드에 의해 쿼리 개미가 내보내질 수 있다. 일 실시예에서, 쿼리 개미는 다음과 같은 형식을 사용할 수 있고:

Figure 112013097721835-pat00009
, 여기서

D는 정보 유형 T를 제공하는 목적지 노드 ID 또는 주소이고;

S는 쿼리를 발생한 소스 노드 ID 또는 주소이며;

CTime은 S와 연관된 쿼리 개미 생성 시간이다. 쿼리 개미 배치(batch of query ants)가 동일한 CTime을 사용하여 발생된다. 새로운 쿼리가 발생될 때마다, 노드에서 CTime이 현재 시간으로 업데이트되고;

T는 요청된 정보/서비스를 기술하는 정보 유형이며;

PM{S,T}는 능력 파라미터, 소스 노드 S에서 필요로 하는 정보 유형 T의 공급자 평판을 포함하고;

hop은 쿼리 개미가 지금까지 방문한 노드의 수를 명시하는 홉의 총수 값이다. 시작 시에, hop = 0이며;

permission은 노드 S가 이 쿼리 개미의 수신 노드에게 S를 대신하여 정보 제공 노드에 직접 연결 요청을 시작하도록 허용하는지를 명시하고;

flag는 노드 S가 이 쿼리 개미의 수신 노드에게 쿼리 개미의 목적지 노드 ID/주소를 변경하도록 허용하는지를 명시한다.

일 실시예에서, 노드가 정보/서비스 유형 T가 네트워크 상의 어디에서 제공되는지를 찾아낼 필요가 있을 때, 노드는 도 11a 및 도 11b에 예시된 프로토콜을 사용할 수 있다. 소스 노드가 네트워크 상의 다른 노드로부터의 정보/서비스에 대한 필요성을 확인할 때, 블록(1101)에서, 소스 노드는 정보/서비스 제공 노드를 찾는 프로세스를 시작한다.

먼저, 블록(1103)에서, 소스 노드의 정보 라우팅 테이블이 성능 메트릭 요구사항을 만족시키는 유형 Ti의 정보/서비스에 대한 항목을 포함하고 있는지가 판정된다. 포함하고 있는 경우, 처리는 이하에서 논의되는 블록(1121)에서 계속된다. 포함하지 않는 경우, 소스 노드는 네트워크 상의 노드들로부터의 정보를 필요로 하고 필요한 정보를 요청하기 위해 쿼리 개미를 전송할 준비를 한다. 블록(1105)에서, N개의 쿼리 개미가 전송될 것이다. query(D1, S, T), query(D2, S, T), ..., query(Dn, S, T)의 쿼리 프로토콜을 사용하여 N개의 개미가 발생될 수 있고, 여기서 D1, D2, ..., Dn은 인기도 척도(1007)에 따른 소스 노드의 라우팅 테이블에서 N개의 가장 인기 있는 목적지이다. 라우팅 테이블에 N개 미만의 목적지가 있는 경우, 정보 개미와 관련하여 앞서 논의된 바와 같이, 쿼리 개미의 수가 감소될 수 있거나, 쿼리 개미가 중복된 주소로 전송될 수 있다. 정보 개미 및 쿼리 개미에 대해 보다 적은 수의 개미를 전송할지 또는 중복된 주소로 전송할지의 결정은 사용자 선호사항에 기초하여 동일하거나 상이할 수 있다.

블록(1107)에서, 소스 노드의 라우팅 테이블이 다음 홉 목적지 노드를 식별하는 데 사용된다. 이어서, 쿼리 개미가 라우팅 테이블에 기초하여 다음 노드로 전송되고, 그의 홉의 총수가 1만큼 증가된다. 쿼리 개미가 도중에 중간 노드를 통해 그의 궁극적인 목적지, 예컨대, 필요한 정보 또는 서비스를 제공하는 노드로 라우팅될 수 있다. 쿼리 개미를 수신할 시에, 중간 노드는, 쿼리 개미를 다음 홉으로 라우팅하는 절차의 일부로서, hop 및 CTime 값을 검사할 것이다.

블록(1109)에서, 다음 홉 또는 중간 노드에서, 중간 노드의 정보 라우팅 테이블이 쿼리 개미에 의해 요청된 성능 메트릭 요구사항을 만족시키는 요청된 정보를 포함하는지가 판정된다. 포함하지 않는다면, 블록(1115)에서 판정되는 바와 같이, hop > HOP_MAX인 경우 또는 CTime이 오래된 경우 또는 중간 노드가 최종 목적지인 경우, 중간 노드는 쿼리 개미를 폐기할 것이다. 이것은 쿼리 개미가 너무 오래되었거나 쓸모없게 된 정보를 전달한다는 것을 암시한다. 따라서, 오래되었거나 쓸모없게 된 쿼리 개미는 네트워크를 통해 무한히 계속 전파되지 않을 것이다. 블록(1117)에서, 쿼리 개미가 폐기되고, 일부 실시예에서, 쿼리 개미가 폐기되었다는 것을 소스 노드에 통지하기 위해 정보가 다시 전송된다.

블록(1115)에서 판정되는 바와 같이, 쿼리 개미가 여전히 신선한 경우, 쿼리 개미는 현재 노드에 의해 추가로 처리될 것이고, 블록(1119)에서, 소스 노드를 대신하여 정보/서비스를 계속 검색하기 위해 계속 전달될 수 있다. 쿼리된 서비스를 중간 노드의 정보 라우팅 테이블에서 찾을 수 없는 경우, 중간 노드는 쿼리 개미 내의 홉의 총수 값을 검사한다. hop < HOP_MAX인 경우, 블록(1107)에서, hop이 1만큼 증가되고 쿼리 개미가 다음 홉으로 전달될 것이다.

일 실시예에서, 목적지 노드 주소가, 예를 들어, 매 k번째 홉에서, 쿼리 개미 내에서 변경될 수 있다. 값 k는 네트워크에서의 관련성의 정도에 대한 연구에 기초하여 처음에 6 또는 7로 설정될 수 있다. 값 k는 또한 네트워크의 직경의 함수로서 설정될 수 있다. 쿼리 개미에 존재하는 flag는 목적지 주소가 중간 노드에 의해 수정되도록 허용되어 있는지를 나타낸다. 수정된 목적지 주소는 중간 노드의 라우팅 테이블에 있는 노드에 대한 인기도 값에 기초하여 변경될 수 있다. 목적지 주소를 보다 인기 있고 보다 빈번히 액세스되는 노드로 변경하는 것은 쿼리가 필요한 정보를 포함할 가능성이 가장 많은 노드로 전파될 수 있게 한다. 쿼리 개미의 목적지는 다음과 같은 절차에 따라 변경될 수 있다. flag = TRUE인 경우, 쿼리 개미의 목적지 주소는 매 k번째 홉에서 변경될 수 있다. 쿼리 개미 query(D, S, T)를 수신할 시에, 수신기 노드는 hop이 k의 배수인지를 판정할 것이다. flag = TRUE이고 hop이 k의 배수인 경우, 수신기는 확률 척도 Pk를 계산하고 확률 Pk를 갖는 쿼리 개미의 목적지 노드를 수신기의 라우팅 테이블에서 가장 인기 있는 목적지 노드로 대체하기로 결정할 수 있다. 동일한 인기도 척도를 갖는 다수의 노드가 발견되는 경우, 일 실시예에서, 하나의 목적지가 랜덤하게 선택될 수 있다. 다양한 랜덤 선택 알고리즘이 사용될 수 있다는 것이 당업자에게는 명백할 것이다. 또한, 동일한 인기도 척도가 발견될 때 목적지를 선택하기 위해 다른 선택 기준이 사용될 수 있다는 것이 명백할 것이다. 예를 들어, 일 실시예에서, 노드들의 목록에서 보다 낮은(또는 높은) 인덱스를 갖는 노드가 선택될 수 있거나, 임의의 다른 판별 방법이 사용될 수 있다.

도 12를 참조하면, 도 10a 및 도 10b에 도시된 바와 같이, 라우팅 테이블에서의 각각의 노드에 대한 확률 척도를 사용하는 것은 물론, 인기도 척도를 사용하는 것에 기초하여, 네트워크 내의 노드들로의 쿼리 개미의 전파를 나타낸 그래프가 나타내어져 있다. 잠재적으로 쿼리 개미의 목적지를 변경함으로써, 쿼리 개미가 네트워크에서 보다 큰 영역을 탐사할 수 있게 하는 것이 가능할 수 있다. 일 실시예에서, 확률 척도에 대한 식은

Figure 112013097721835-pat00010
의 함수로서 구현될 수 있고, 여기서 counter(X,Q)는 선택된 목적지 노드의 인기도 척도이다. 따라서, 확률 척도는
Figure 112013097721835-pat00011
/ 라우팅 테이블 내의 모든 counter(X,Q) 값의 합)으로서 계산될 수 있다.

소스 노드의 근방에 있는 노드에 대해, Pk가 낮은데, 그 이유는

Figure 112013097721835-pat00012
이 작기 때문이다. 소스 노드의 근방에 있는 노드는 아마도 유사한 인기도 척도를 가질 수 있다. 따라서, 이들 중간 노드가 목적지 노드를 근방의 노드로 변경하도록 허용되어 있는 경우, 쿼리 개미는 아마도 유사한 곳으로 라우팅되어 버릴 것이다.

다시 도 11a 및 도 11b를 참조하면, 일 실시예에서, 쿼리에서의 permission 필드에 의해 정의된 바와 같이, 도착한 쿼리 개미에 대한 정보를 포함하는 중간 노드는 때때로 소스 노드를 정보/서비스를 제공하는 노드와 연결하라는 서비스 요청을 시작하도록 허용되어 있을 수 있다. 중간 노드의 정보 라우팅 테이블이 쿼리에서의 성능 메트릭 요구사항에 의해 명시되어 있는 필요한 정보 또는 서비스를 포함하고 있는 경우[블록(1109)에서 판정됨], 블록(1111)에서, 중간 노드가 연결 요청을 시작할 수 있는지가 판정된다. 일부 경우에, 보안 연결이 필요할 수 있고, 따라서 그 경우에는 permission 플래그가 FALSE이어야만 한다. permission이 주어져 있지 않은 경우, 블록(1113)에서, 쿼리-B 개미, 즉, 정보 반환 개미가 발생되고 그 중간 노드로부터 복사된 필요한 정보 라우팅 테이블 정보 항목과 함께 소스 노드로 반환되고, 따라서 소스 노드는 그 자신의 정보 라우팅 테이블을 업데이트하고 그 자신의 연결 요청을 할 수 있다.

일 실시예에서, 쿼리-B 개미의 형식은

Figure 112013097721835-pat00013
이고, 여기서

D는 서비스/정보 유형 T를 제공하는 선택된 노드이고;

S는 정보/서비스를 포함하는 소스 노드 주소이며;

X_content는 현재 노드의 정보 라우팅 테이블 내의 항목의 내용이고;

CTime는 이 메시지가 그에 대한 응답인 대응하는 쿼리의 생성 시간이다.

쿼리-B 개미 메시지에서 반환되는 노드 주소 D는, 확률 척도 Pr(D, Ti)normalized를 사용하여, 정보 라우팅 테이블에 열거되어 있는, 정보 유형 T를 제공하는 다수의 목적지 노드 Di 중에서 랜덤하게 선택될 수 있다. 목적지 노드 D로의 라우팅은 수신기(또는 현재) 노드의 라우팅 테이블을 사용하여 수행된다.

중간 노드가 연결 요청을 시작하도록 허용되어 있을 때, 도 11b에 도시된 바와 같이, 블록(1121)에서 처리가 계속된다. 2개 이상의 노드가 성능 메트릭 요구사항에 적합한 경우, 앞서 논의된 바와 같이, 정보 라우팅 테이블 내의 확률 정보를 사용하여, 가능한 노드들 중 하나의 노드가 서비스 요청에 대한 목적지로서 선택된다. 따라서, 서비스에 대한 각각의 요청의 결과, 확률 인자에 기초하여 상이한 이용가능한 노드로의 연결이 일어날 수 있다. 이것은 동일한 노드가 서비스 요청에 대해 반복하여 선택되어 과부하로 되는 문제점을 방지한다. 블록(1123)에서, 서비스 요청이 선택된 노드로 전송된다.

블록(1125)에서, 서비스 요청을 수신하는 노드(목적지 노드)는 노드의 보통(레거시) 라우팅 테이블을 통해 라우팅되는 응답 메시지를 전송할 수 있다. 일 실시예에서, 응답 메시지가 보통 라우팅 테이블 프로토콜에 의해 네트워크를 통해 라우팅될 때, 블록(1127)에서, 각각의 중간 노드에 있는 정보 라우팅 테이블이 업데이트되거나, 정보/서비스가 로컬 정보 라우팅 테이블에 존재하지 않는 경우, 새로운 항목이 추가된다.

일 실시예에서, 요청 노드가 정보/서비스의 목적지 노드가 도달가능하지 않다는 것을 발견할 때, 예를 들어, 응답이 수신되지 않거나 다른 노드가 요청 노드에게 목적지 노드가 오프라인이라는 것을 알려주고 라우팅 테이블로부터 노드를 삭제할 때, 요청 노드는, 항목을 완전히 제거하지 않고, 도달가능하지 않은 노드에 대한 정보 라우팅 테이블 항목의 확률을 작은 양만큼 또는 임계값 미만으로 떨어뜨릴 수 있다. 따라서, 도달가능하지 않은 노드가 예를 들어 유지 관리로 인해 단지 짧은 시간 동안 오프라인인 경우, 정보 라우팅 테이블에서의 확률이 다시 점차적으로 상승할 것인데, 그 이유는 이전에는 도달가능하지 않았던 노드가 다시 온라인으로 될 때 정보 개미가 수신되기 때문이다. 인기 있거나 근방에 있는 노드의 경우, 많은 정보 개미가 신속하게 수신될 수 있고, 따라서 확률을 이전의 레벨로 상승시킨다. 도달가능하지 않은 노드의 확률을 조정한 후에, 요청 노드는, 정보 라우팅 테이블에서의 업데이트된 확률 값에 기초하여, 정보/서비스에 대한 노드를 선택할 것이다. 도달가능하지 않은 노드가 상당한 기간 동안 오프라인인 채로 있는 경우, 노드가 다시 온라인으로 될 때까지 또는 항목이 아주 오래된 정보를 갖기 때문에 삭제될 때까지, 그 노드와 연관된 확률은 0에 근접할 것이다. 노드가 오프라인으로 될 때, 라우팅 테이블 항목이 삭제되었을지라도, 정보 라우팅 테이블 정보를 유지하는 것이 바람직한데, 그 이유는 다시 온라인으로 될 때 그 노드가 인기 있거나 특히 높은 성능의 노드로 될 수 있기 때문이다.

일 실시예에서, 소스 노드 S가 시간 창 t1 내에서 어떤 노드로부터도 어떤 쿼리-B 개미 또는 어떤 서비스 응답 메시지도 수신하지 않는 경우, S는 다른 쿼리 개미 배치를 발생할 수 있다. 쿼리 개미 생성 시간 CTime이 노드 현재 시간으로 변경될 수 있다. 노드 S가 다수의 쿼리 개미 배치를 내보낸 후 시간 창 t2(단,

Figure 112013097721835-pat00014
) 내에서 어떤 쿼리-B 개미 또는 서비스 응답 메시지도 수신하지 않는 경우, 정보 쿼리 프로토콜이 중단될 수 있다.

일 실시예에서, 쿼리 개미에 대한 2개의 시간 한계, t1 및 t2가 있다. 이들 시간 한계는 처음에 기본값으로 설정될 수 있다. 예를 들어, 다른 쿼리 개미 배치를 전송하기 전에 응답을 기다리기 위한 시간 한계 t1은 처음에 700ms로 설정될 수 있다. 이 값은 TCP RTT 네트워크에 대한 출원인의 경험적 연구에 기초한 것이다. 시간 한계 t2는 노드가 쿼리 절차를 완전히 취소하기 전에 임의의 쿼리 개미 시퀀스로부터 응답을 기다리는 기간이다. 이 시간 값은 이용가능한 서비스를 탐색하기 위해 이 정보 라우팅 시스템을 사용하는 응용에 따라 다르다. 응용이 서비스를 검색하는 데 1분의 지연을 허용할 수 있는 경우, 이 시간 값은 1분으로 설정될 수 있다. 최소한, 응용은 2개 이상의 쿼리 개미 배치가 네트워크의 상당한 부분을 충분히 커버할 수 있게 하여야만 한다. 이 경우에, t2=1500 ms 또는 2200 ms로 설정하는 것은 700ms의 기본값 t1에 기초한 양호한 예시적인 값이다.

실시예에서, 네트워크 또는 노드 관리자는 네트워크 성능 또는 시뮬레이션 연구에 관한 경험적 데이터에 기초하여 몇 개의 변수에 대한 기본값을 변경할 수 있다.

각각의 정보 쿼리에 대해 발생될 쿼리 개미의 수인 값 N은 필요의 긴급성, 네트워크 트래픽 부하 등에 의존할 수 있다. 쿼리 개미가 언제 데이터 큐 대신에 우선순위 큐를 사용하도록 허용되는지에 관한 조건도 역시 달라질 수 있다.

쿼리 개미가 네트워크 자원에 과도한 부담을 주지 않고 정보를 효과적으로 찾기 위해 이동할 수 있는 최대 홉의 수인 HOP_MAX의 값이 변화될 수 있다.

수신 노드가 연결 요청을 시작할 수 있는지를 좌우하는 Permission 플래그도 변화될 수 있다. permission 플래그를 TRUE 또는 FALSE로 선택적으로 설정하는 것에 의해, 정보 전달을 시작하기 위해 핸드쉐이크를 개시할 수 있는 수신기 노드의 양이 변화될 수 있다. 일 실시예에서, 쿼리 개미에 의해 신속하게 발견된 수신기 노드(작은 홉의 총수를 가짐)는 목적지 노드와 핸드쉐이크를 시작하도록 허용될 수 있다. 반면에, 오래된 개미에 의해 발견된 노드(큰 홉의 총수를 가짐)는 핸드쉐이크를 시작하지 못할 수 있는데, 그 이유는 다른 노드가 이미 핸드쉐이크를 시작했을 수도 있는 것이 더욱 가능하기 때문이다.

개미가 리프레시 또는 폐기되기 전에 시스템을 전파할 수 있게 하는 시간 창 t1 및 t2는 검색 범위를 증가시키는 것과 오버헤드를 감소시키는 것 사이의 절충에 기초하여 변화될 수 있다.

일 실시예에서, 본 발명은 무리-기반 지능(swarm-based intelligence)을 사용하는 네트워크 상의 정보 라우팅 시스템으로서, 네트워크 상의 복수의 노드 - 각각의 노드는 메모리에 저장된 라우팅 테이블을 가지며, 메모리는 노드의 적어도 하나의 처리 유닛에 결합되어 있음 -; 정보 및/또는 서비스 중 적어도 하나를 네트워크 상의 제2 노드에 제공하도록 구성된 복수의 노드 중의 적어도 하나의 공급자 노드(provider node); 공급자 노드의 정보 및/또는 서비스를 소비하도록 구성된 복수의 노드 중의 적어도 하나의 소비자 노드(consumer node); 및 복수의 노드 중의 복수의 중간 노드(intermediate node) - 네트워크 상의 노드들 간의 통신은 직접 노드간 통신(direct node to node communication) 또는 적어도 하나의 중간 노드를 통하는 것 중 하나이고, 노드들 간의 실제 통신 경로는 각각의 노드 상에 존재하는 라우팅 테이블에 의해 좌우됨 - 를 포함한다.

네트워크 내의 각각의 공급자 및 소비자 노드는 네트워크 상의 노드에 의해 제공될 서비스 및 정보 유형 T를 식별하는 정보, 네트워크 상의 노드에 의해 제공될 서비스 및 정보에 관심을 갖는 다른 노드들의 목록, 서비스/정보 T를 제공할 특정의 공급자 노드를 선택할 확률을 갖는 정보 라우팅 테이블; 및 공급자 노드 상의 라우팅 테이블에 대응하는 라우팅 테이블 확장 - 라우팅 테이블은 표준 네트워크 프로토콜을 사용하도록 구성되고, 라우팅 테이블 확장은 인기도 척도 또는 라우팅 테이블 내의 노드가 현재 노드와 목적지 노드 사이의 통신 경로에 있을 확률 척도 중 적어도 하나를 포함함 - 을 더 포함할 수 있다.

네트워크 내의 각각의 공급자는 정보 패킷(information packet) - 정보 개미(information ant)라고도 함 - 을 네트워크 상의 수신 노드로 전송하여, 공급자 노드에 의해 제공될 정보/서비스 T의 이용가능성을 고지하도록 구성된 서비스 제공 에이전트(service providing agent) - 네트워크 상의 수신 노드에 의한 정보 개미의 수신은 (1) 정보/서비스 T, 공급자 노드 주소, 정보/서비스 T의 능력에 대응하는 정보를 식별하는 항목을 정보 라우팅 테이블에 추가하는 것; (2) 정보/서비스 T, 공급자 노드 주소, 정보/서비스 T의 능력에 대응하는 정보를 식별하는 정보 라우팅 테이블 내의 기존의 항목을 업데이트하는 것 중 하나를 수행하도록 상기 수신 노드를 트리거함 - 를 더 포함할 수 있고, 정보 개미의 수신은 또한 수신된 정보 개미를 상기 네트워크 상의 다른 수신 노드로 선택적으로 전달하는 것을 트리거하며, 전달은 정보 개미의 신선도 및 수신 노드가 목적지 노드인지에 부분적으로 기초하고, 수신 노드는, 새로운 항목을 추가하고 정보 라우팅 테이블 내의 기존의 항목을 업데이트한 후에, 서비스/정보 T를 제공할 정보 라우팅 테이블 내의 각각의 공급자 노드를 선택할 확률을 업데이트하도록 더 구성된다.

각각의 소비자 노드는 쿼리 개미를 발생하여 수신 노드들로 전송하도록 구성된 제1 서비스 소비 에이전트 - 각각의 쿼리 개미는 선택된 정보/서비스 T에 관한 정보에 대한 요청을 상기 네트워크를 통해 전파하고, 중간 노드는 라우팅 테이블 인기도 또는 확률 척도에 부분적으로 기초하여 수신된 쿼리 개미를 다른 노드들로 선택적으로 전달하도록 구성됨 -; 및 수신 노드가 요청된 정보를 갖고 있을 때, 수신된 쿼리 개미에 대한 응답을 발생하여 전송하도록 구성된 제2 서비스 소비 에이전트를 더 포함할 수 있다.

일부 실시예에서, 노드가 공급자 노드임과 동시에 소비자 노드일 수 있다. 네트워크 내의 임의의 노드는, 노드가 정보/서비스 T를 제공하는지 소비하는지에 상관없이, 정보, 쿼리 또는 쿼리 응답 개미를 전달하는 중간 노드일 수 있다.

일부 실시예에서, 정보 라우팅 테이블이, 정보 라우팅 테이블 내의 각각의 정보/서비스 유형 Ti 항목에 대해, 노드들 xi의 목록을 포함할 수 있고, 각각의 노드 xi는 Ti의 공급자에 대응하며, Ti에 대응하는 항목은 능력 파라미터, 공급자 평판, 마지막 업데이트 타임스탬프, 노드 xi를 선택할 확률, 및 마지막 액세스 타임스탬프를 더 포함한다. 일부 경우에, 정보/서비스 또는 정보 전달을 위해 어느 노드에 액세스해야 할지를 결정하기 위해, 공급자 평판이 사용되지 않고 그 대신에 인기도, 확률 또는 능력 인자만이 사용될 수 있다. 일부 실시예에서, 이들 요소의 임의의 조합이 결정을 위해 사용될 수 있다. 정보 및 쿼리 개미에 대한 목적지를 설정할 때, 라우팅 테이블 및 정보 라우팅 테이블 둘다 내의 정보의 조합이 사용될 수 있다.

일부 실시예에서, 수신된 정보 개미를 선택적으로 전달하는 것이 목적지 노드 주소의 변경의 결과이고, 정보 개미의 D_type_flag가 P인 경우에만 허용될 수 있다. 일부 실시예에서, 목적지 노드 주소를 변경하는 것은 라우팅 동안 매 k번째 홉으로 제한될 수 있다.

일부 실시예에서, 공급자 노드는, 오프라인 또는 셧다운(shutdown) 상태로부터 온라인으로 되는 것에 응답하여 또는 새로 추가되거나 삭제된 정보/서비스를 비롯한 능력 파라미터의 변경 시에, 공급자 노드에 의해 제공된 정보/서비스의 이용가능성을 고지하기 위해 정보 개미를 전송하는 것을 자동으로 시작하도록 구성된다. 공급자 노드는 소정의 간격으로 정보 개미를 전송하도록 구성될 수 있다.

일부 실시예에서, 소비자 노드는 필요한 능력을 제공하는 정보 라우팅 테이블 내의 공급자 노드들의 목록 중에서 공급자 노드를 선택하도록 구성될 수 있다. 2개 이상의 공급자 노드가 필요한 능력을 제공하는 경우에, 가장 인기 있는 노드(들)를 과도하게 이용하는 것을 피하기 위해 확률 인자를 사용하여 하나가 선택될 수 있다. 정보 라우팅 테이블에서 공급자 노드가 발견되지 않는 경우, 소비자 노드는 네트워크를 통해 N개의 쿼리 개미를 전송하여, 필요한 정보/서비스의 실용적인 공급자 노드를 검색할 수 있다. 소정의 타임아웃 기간 내에 응답이 수신되지 않는 경우, 쿼리 개미가 N개 더 전송될 수 있다.

정보 전파를 극대화하고 때때로 덜 인기 있는 노드를 사용함으로써 공급자 노드의 대역폭을 향상시키기 위해, 상기한 바와 같은 특징들의 다양한 조합이 네트워크를 통해 제공되는 정보/서비스에 관한 정보를 전파하는 데 및 원하는 정보/서비스에 대응하는 공급자 노드에 관한 정보는 물론, 네트워크 상의 이용가능한 정보/서비스에 관한 정보를 원하는 다른 소비자 노드에 관한 정보를 저장하는 데 사용될 수 있다는 것이 당업자에게는 명백할 것이다.

본 명세서에 기술된 기법이 임의의 특정의 하드웨어 또는 소프트웨어 구성으로 제한되지 않으며, 임의의 컴퓨팅, 소비자 가전 또는 처리 환경에서 적용될 수 있다. 이 기법은 하드웨어로, 소프트웨어로, 또는 이 둘의 조합으로 구현될 수 있다.

시뮬레이션을 위해, 프로그램 코드는, 본질적으로 설계된 하드웨어가 어떻게 동작할 것으로 예상되는지의 모델을 제공하는 하드웨어 기술 언어 또는 다른 기능 기술 언어를 사용하여 하드웨어를 나타낼 수 있다. 프로그램 코드는 컴파일 및/또는 인터프리트될 수 있는 어셈블리 또는 기계어, 또는 데이터일 수 있다. 게다가, 소프트웨어를, 한 형태 또는 다른 형태로, 동작을 취하거나 결과를 가져오는 것으로 말하는 것이 이 기술분야에서 통상적이다. 이러한 표현은 프로세서로 하여금 동작을 수행하거나 결과를 생성하게 하는 프로그램 코드의 처리 시스템에 의한 실행을 간단히 말하는 것에 불과한다.

각각의 프로그램은 처리 시스템과 통신하기 위해 고수준의 절차적 또는 객체 지향 프로그래밍 언어로 구현될 수 있다. 그러나, 프로그램은, 원하는 경우, 어셈블리어 또는 기계어로 구현될 수 있다. 어느 경우든지, 언어가 컴파일 또는 인터프리트될 수 있다.

프로그램 명령어는 그 명령어로 프로그램되어 있는 범용 또는 특수-목적 처리 시스템으로 하여금 본 명세서에 기술된 단계들을 수행하게 하기 위해 사용될 수 있다. 대안으로서, 동작들은 그 동작들을 수행하는 하드와이어드 논리(hardwired logic)를 포함하는 특정의 하드웨어 구성요소에 의해, 또는 프로그램된 컴퓨터 구성요소 및 커스텀 하드웨어 구성요소의 임의의 조합에 의해 수행될 수 있다. 본 명세서에 기술된 방법은 그 방법을 수행하도록 처리 시스템 또는 기타 전자 장치를 프로그램하는 데 사용될 수 있는 명령어를 저장하고 있는 기계 액세스가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서 제공될 수 있다.

프로그램 코드 또는 명령어가, 예를 들어, 휘발성 및/또는 비휘발성 메모리, 예컨대 고상 메모리, 하드 드라이브, 플로피 디스크, 광 저장 장치, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, DVD(digital versatile disc) 등을 비롯한 저장 장치 및/또는 관련 기계 판독가능 또는 기계 액세스가능 매체는 물론, 기계 액세스가능 생물학적 상태 보존 저장 장치와 같은 보다 신종의 매체에 저장될 수 있다. 기계 판독가능 매체는 기계에 의해 판독가능한 형태로 정보를 저장, 전송 또는 수신하는 임의의 메커니즘을 포함할 수 있고, 매체는 프로그램 코드를 인코딩하는 전기, 광학, 음향 또는 다른 형태의 전파 신호 또는 반송파가 그를 통해 전달될 수 있는 유형의 매체(tangible medium), 예컨대 안테나, 광 섬유, 통신 인터페이스 등을 포함할 수 있다. 프로그램 코드는 패킷, 직렬 데이터, 병렬 데이터, 전파 신호 등의 형태로 전송될 수 있고, 압축된 또는 암호화된 형태로 사용될 수 있다.

프로그램 코드는 이동형 또는 정지형 컴퓨터, PDA(personal digital assistant), 셋톱 박스, 휴대폰 및 페이저, 소비자 가전 장치(DVD 플레이어, 개인 비디오 레코더, 개인 비디오 플레이어, 위성 수신기, 스테레오 수신기, 케이블 TV 수신기를 포함함), 및 다른 전자 장치 - 각각이 프로세서, 프로세서에 의해 판독가능한 휘발성 및/또는 비휘발성 메모리, 적어도 하나의 입력 장치 및/또는 하나 이상의 출력 장치를 포함함 - 와 같은 프로그램가능 기계 상에서 실행되는 프로그램에 구현될 수 있다. 기술된 실시예를 수행하고 출력 정보를 발생하기 위해, 프로그램 코드가 입력 장치를 사용하여 입력된 데이터에 적용될 수 있다. 출력 정보는 하나 이상의 출력 장치에 적용될 수 있다. 당업자라면 개시된 내용의 실시예가 다양한 컴퓨터 시스템 구성 - 멀티프로세서 또는 멀티코어 시스템, 미니컴퓨터, 메인 프레임 컴퓨터는 물론, 거의 모든 장치에 내장될 수 있는 편재형 또는 소형(pervasive or miniature) 컴퓨터 또는 프로세서를 포함함 - 에서 실시될 수 있다는 것을 알 수 있다. 개시된 내용의 실시예들은 또한 작업 또는 그의 일부분이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행될 수 있는 분산 컴퓨팅 환경에서도 실시될 수 있다.

동작들이 순차적 프로세스로서 기술될 수 있지만, 동작들의 일부는 실제로는 병렬로, 동시에 및/또는 분산 환경에서 수행될 수 있고, 프로그램 코드는 단일 또는 멀티-프로세서 기계가 액세스하도록 로컬적으로 및/또는 원격적으로 저장되어 있다. 또한, 일부 실시예에서, 동작들의 순서가 재배열될 수 있거나, 구성요소들 중 일부에 대한 일부 변경이 포함될 수 있다. 프로그램 코드는 내장된 제어기에 의해 또는 그와 관련하여 사용될 수 있다.

본 발명이 예시적인 실시예를 참조하여 기술되어 있지만, 이 설명이 제한적인 의미로 해석되어서는 안 된다. 예시적인 실시예의 다양한 수정은 물론, 본 발명이 속하는 기술 분야의 당업자에게는 명백할 것인 본 발명의 다른 실시예가 본 발명의 범위 내에 속하는 것으로 간주된다.

Claims (14)

  1. 원하는 정보 또는 서비스 유형을 제공하는 네트워크 상의 적어도 하나의 공급자 노드를 찾는 단계 - 상기 찾는 단계는 정보 또는 서비스 및 대응하는 능력 파라미터를 제공하는 노드들의 목록을 갖는 정보 라우팅 테이블을 사용하고, 상기 정보 라우팅 테이블은 상기 네트워크 상에서 이용가능한 정보 또는 서비스에 대응하는 정보를 수신한 것에 응답하여 자동으로 업데이트됨 -;
    상기 정보 라우팅 테이블 내의 노드들의 목록 중에서 상기 원하는 정보 또는 서비스 유형을 제공하는 공급자 노드를 선택하는 단계 - 상기 선택하는 단계는 상기 정보 라우팅 테이블에 저장된 상기 공급자 노드에 대한 확률 척도에 부분적으로 기초하고, 상기 확률 척도는 상기 원하는 정보 또는 서비스 유형을 또한 제공하는 다른 노드들로부터 상기 원하는 정보 또는 서비스 유형을 제공하는 상기 공급자 노드를 선택할 확률의 척도임 -;
    상기 정보 또는 서비스 유형에 액세스하기 위해 상기 선택된 공급자 노드에 연결하는 단계; 및
    상기 네트워크 상의 노드에 대해 상기 네트워크 상에서 이용가능한 정보 또는 서비스에 대응하는 수신된 정보를 선택적으로 전달하는 단계 - 상기 전달하는 단계는 (ⅰ) 라우팅 테이블에 저장된 상기 노드의 노드 확률 척도와 (ⅱ) 상기 라우팅 테이블에 저장된 상기 노드에 대한 노드 인기도 척도에 부분적으로 기초하고, 상기 노드 확률 척도는 상기 노드가 다음 홉 노드로서 선택될 확률의 척도이고, 상기 노드 인기도 척도는 상기 노드가 시간 창에 걸쳐 패킷들의 목적지 노드가 되도록 얼마나 자주 선택되는지에 대한 척도임 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 선택하는 단계는 또한 상기 공급자 노드에 대한 평판 인자에 부분적으로 기초하는 방법.
  3. 제1항에 있어서, 상기 네트워크 상의 정보 또는 서비스에 대응하는 정보는 상기 정보 또는 서비스 유형을 제공하는 노드들에 관한 정보에 대한 요청에 응답하여 수신되고 및/또는 상기 정보 또는 서비스 유형을 제공하는 노드들에 관한 요청되지 않은 수신된 정보인 방법.
  4. 제1항에 있어서, 정보를 선택적으로 전달하는 단계는 상기 라우팅 테이블에 저장된 상기 정보의 신선도에 부분적으로 기초하여 정보를 선택적으로 전달하는 것을 포함하는 방법.
  5. 제공된 정보 또는 서비스 유형에 대응하는 정보를 네트워크 상의 복수의 노드로 전송하는 단계 - 상기 정보는 상기 정보 또는 서비스 유형을 제공하는 노드의 주소, 메시지 생성 시간 코드, 능력 파라미터, 홉의 총수, 및 전달 플래그를 포함하고, 상기 정보를 전송하는 단계는 정보 또는 서비스 유형에 관한 쿼리, 상기 정보 또는 서비스 유형의 이용가능성의 변화, 상기 정보 또는 서비스 유형을 제공하는 노드의 능력의 변화, 및 주기적 간격 푸시 요구사항에 응답함 - 를 포함하고,
    상기 전송된 정보를 수신하는 노드는 정보 또는 서비스 및 대응하는 공급자 노드의 목록을 포함하는 테이블을 자동으로 업데이트하며, 각각의 항목은 상기 대응하는 공급자 노드와 연관된 능력 파라미터 및 평판 인자를 포함하는 방법.
  6. 제5항에 있어서, 상기 네트워크 상의 다른 노드들과 연관된 라우팅 테이블에서의 노드 인기도 척도 또는 확률 척도, 상기 홉의 총수에 기초한 상기 정보의 신선도, 및 상기 전달 플래그 중 적어도 하나에 부분적으로 기초하여 상기 정보를 상기 네트워크 상의 상기 다른 노드들로 선택적으로 전달하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서, 선택적으로 전달하는 단계는 또한 정보 또는 서비스 및 대응하는 공급자 노드의 목록을 포함하는 상기 테이블에서의 정보에 부분적으로 기초하고, 상기 정보 또는 서비스 유형에 관심 있는 노드들의 목록을 더 포함하는 방법.
  8. 명령어를 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어는 기계 상에서 실행될 때, 상기 기계로 하여금,
    원하는 정보 또는 서비스 유형을 제공하는 네트워크 상의 적어도 하나의 공급자 노드를 찾아내고 - 상기 찾아내는 것은 정보 또는 서비스 및 대응하는 능력 파라미터를 제공하는 노드들의 목록을 갖는 정보 라우팅 테이블을 사용하고, 상기 정보 라우팅 테이블은 상기 네트워크 상에서 이용가능한 정보 또는 서비스에 대응하는 정보를 수신한 것에 응답하여 자동으로 업데이트됨 -;
    상기 정보 라우팅 테이블 내의 노드들의 목록 중에서 상기 원하는 정보 또는 서비스 유형을 제공하는 공급자 노드를 선택하고 - 상기 선택하는 것은 상기 정보 라우팅 테이블에 저장된 상기 공급자 노드에 대한 확률 척도에 부분적으로 기초하고, 상기 확률 척도는 상기 원하는 정보 또는 서비스 유형을 또한 제공하는 다른 노드들로부터 상기 원하는 정보 또는 서비스 유형을 제공하는 상기 공급자 노드를 선택할 확률의 척도임 - ;
    상기 정보 또는 서비스 유형에 액세스하기 위해 상기 선택된 공급자 노드에 연결하고;
    상기 네트워크 상의 노드에 대해 상기 네트워크 상에서 이용가능한 정보 또는 서비스에 대응하는 수신된 정보를 선택적으로 전달하게 하고, 상기 전달하는 것은 (ⅰ) 라우팅 테이블에 저장된 상기 노드의 노드 확률 척도와 (ⅱ) 상기 라우팅 테이블에 저장된 상기 노드에 대한 노드 인기도 척도에 부분적으로 기초하고, 상기 노드 확률 척도는 상기 노드가 다음 홉 노드로서 선택될 확률의 척도이고, 상기 노드 인기도 척도는 상기 노드가 시간 창에 걸쳐 패킷들의 목적지 노드가 되도록 얼마나 자주 선택되는지에 대한 척도인 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서, 상기 선택하는 것은 또한 상기 공급자 노드에 대한 평판 인자에 부분적으로 기초하는 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서, 상기 네트워크 상의 정보 또는 서비스에 대응하는 정보는 상기 정보 또는 서비스 유형을 제공하는 노드들에 관한 정보에 대한 요청에 응답하여 수신되고 및/또는 상기 정보 또는 서비스 유형을 제공하는 노드들에 관한 요청되지 않은 수신된 정보인 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서, 정보를 선택적으로 전달하는 것은 상기 라우팅 테이블에 저장된 상기 정보의 신선도에 부분적으로 기초하여 정보를 선택적으로 전달하는 것인 컴퓨터 판독가능 저장 매체.
  12. 명령어를 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어는 기계 상에서 실행될 때, 상기 기계로 하여금,
    제공된 정보 또는 서비스 유형에 대응하는 정보를 네트워크 상의 복수의 노드로 전송하게 하고 - 상기 정보는 상기 정보 또는 서비스 유형을 제공하는 노드의 주소, 메시지 생성 시간 코드, 능력 파라미터, 홉의 총수, 및 전달 플래그를 포함하고, 상기 정보를 전송하는 것은 정보 또는 서비스 유형에 관한 쿼리, 상기 정보 또는 서비스 유형의 이용가능성의 변화, 상기 정보 또는 서비스 유형을 제공하는 노드의 능력의 변화, 및 주기적 간격 푸시 요구사항에 응답함 -,
    상기 전송된 정보를 수신하는 노드는 정보 또는 서비스 및 대응하는 공급자 노드의 목록을 포함하는 테이블을 자동으로 업데이트하며, 각각의 항목은 상기 대응하는 공급자 노드와 연관된 능력 파라미터 및 평판 인자를 포함하는 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서, 상기 네트워크 상의 다른 노드들과 연관된 라우팅 테이블에서의 노드 인기도 척도 또는 확률 척도, 상기 홉의 총수에 기초한 상기 정보의 신선도, 및 상기 전달 플래그 중 적어도 하나에 부분적으로 기초하여 상기 정보를 상기 네트워크 상의 상기 다른 노드들로 선택적으로 전달하는 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서, 선택적으로 전달하는 것은 또한 정보 또는 서비스 및 대응하는 공급자 노드의 목록을 포함하는 상기 테이블에서의 정보에 부분적으로 기초하고, 상기 정보 또는 서비스 유형에 관심 있는 노드들의 목록을 더 포함하는 컴퓨터 판독가능 저장 매체.
KR20137028484A 2009-12-18 2009-12-18 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법 KR101441270B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2009/068845 WO2011075150A1 (en) 2009-12-18 2009-12-18 System and method of utilizing a framework for information routing in large-scale distributed systems using swarm intelligence

Publications (2)

Publication Number Publication Date
KR20130125844A true KR20130125844A (ko) 2013-11-19
KR101441270B1 true KR101441270B1 (ko) 2014-09-17

Family

ID=44167635

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20137028484A KR101441270B1 (ko) 2009-12-18 2009-12-18 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법
KR20127013215A KR101438982B1 (ko) 2009-12-18 2009-12-18 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR20127013215A KR101438982B1 (ko) 2009-12-18 2009-12-18 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법

Country Status (6)

Country Link
US (2) US8817795B2 (ko)
EP (1) EP2491745B1 (ko)
JP (1) JP5438225B2 (ko)
KR (2) KR101441270B1 (ko)
CN (1) CN102656922B (ko)
WO (1) WO2011075150A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177685B (zh) * 2008-07-31 2015-03-25 泰克莱克股份有限公司 用于使用采用域名系统(dns)分配给互联网协议(ip)网络服务器的别名主机名标识符来抑制去往ip网络服务器的业务的方法、系统和计算机可读介质
KR101441270B1 (ko) 2009-12-18 2014-09-17 인텔 코오퍼레이션 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법
US8831658B2 (en) * 2010-11-05 2014-09-09 Qualcomm Incorporated Controlling application access to a network
US9603085B2 (en) 2010-02-16 2017-03-21 Qualcomm Incorporated Methods and apparatus providing intelligent radio selection for legacy and non-legacy applications
CN102986170B (zh) * 2010-06-15 2016-03-16 泰克莱克股份有限公司 用于在diameter网络中提供动态的基于起点的路由关键字登记的方法、系统和设备
US9385938B2 (en) * 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US9264868B2 (en) 2011-01-19 2016-02-16 Qualcomm Incorporated Management of network access requests
WO2012119147A1 (en) 2011-03-03 2012-09-07 Tekelec, Inc. Methods, systems, and computer readable media for enriching a diameter signaling message
US9178965B2 (en) 2011-03-18 2015-11-03 Qualcomm Incorporated Systems and methods for synchronization of application communications
US9571952B2 (en) 2011-04-22 2017-02-14 Qualcomm Incorporatd Offloading of data to wireless local area network
US8838086B2 (en) 2011-08-29 2014-09-16 Qualcomm Incorporated Systems and methods for management of background application events
CN102858019B (zh) * 2012-10-09 2015-04-22 江苏省邮电规划设计院有限责任公司 一种认知蜂窝网的下行链路空时调度方法
EP2747006A1 (en) * 2012-12-18 2014-06-25 Thomson Licensing Incentivizing information propagation in a social network
CN103020801B (zh) * 2012-12-20 2016-03-30 西南科技大学 一种提高物流配送效率的方法
US9485187B2 (en) * 2013-07-08 2016-11-01 Futurewei Technologies, Inc. Intelligent software-defined networking based service paths
WO2015046859A1 (ko) * 2013-09-26 2015-04-02 주식회사 케이티 플로우 테이블을 업데이트하는 방법
CN104378840A (zh) * 2014-12-01 2015-02-25 苏州市欧博锐自动化科技有限公司 一种非直接通信节点间的临时直接通信方法
US20160173386A1 (en) * 2014-12-16 2016-06-16 Palo Alto Research Center Incorporated System and method for distance-based interest forwarding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162723A1 (en) 2003-03-05 2008-07-03 Fuyong Zhao Method and apparatus for updating probabilistic network routing information

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2986784B1 (ja) * 1998-10-07 1999-12-06 株式会社エイ・ティ・アール環境適応通信研究所 ルータ装置の制御方法及び制御装置
JP3575682B2 (ja) * 2000-08-16 2004-10-13 日本電信電話株式会社 パケット伝送ネットワークの経路制御方法およびそのプログラムを記録した記録媒体
US20020152293A1 (en) * 2001-01-31 2002-10-17 Hahn Terry G. Dynamic server directory for distributed computing system
WO2004045166A1 (en) * 2002-11-13 2004-05-27 Telenor Asa A method for routing messages from a source node to a destination node in a dynamic network
WO2004055618A3 (en) 2002-12-14 2004-12-02 Nhn Corp System and method for generating a search result list
KR100455508B1 (ko) * 2002-12-14 2004-11-06 엔에이치엔(주) 검색 결과 목록 생성 시스템 및 방법
US8018953B1 (en) * 2003-08-20 2011-09-13 Cisco Technology, Inc. Adaptive, deterministic ant routing approach for updating network routing information
JP2005286883A (ja) * 2004-03-30 2005-10-13 Canon Inc パケット中継装置及びそのアドレス割り当て方法
CN1710885A (zh) * 2005-06-24 2005-12-21 武汉理工大学 一种基于Ant-Like移动代理的QoS多播路由的方法
US7894408B2 (en) * 2006-05-12 2011-02-22 Motorola Solutions, Inc. System and method for distributing proxying error information in wireless networks
CN101043444A (zh) * 2007-04-26 2007-09-26 浙江大学 基于蚁群优化的分布式服务质量多播路由方法
KR100973695B1 (ko) * 2008-08-14 2010-08-04 숭실대학교산학협력단 노드 장치 및 스패닝 트리를 이용한 최단 경로 결정 방법
US8645456B2 (en) * 2008-12-10 2014-02-04 At&T Intellectual Property I, L.P. Content access policy management for mobile handheld devices
US8351443B2 (en) * 2008-12-31 2013-01-08 Industrial Technology Research Institute Information transmission and service integration system and method thereof
KR101441270B1 (ko) 2009-12-18 2014-09-17 인텔 코오퍼레이션 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법
CN102986170B (zh) 2010-06-15 2016-03-16 泰克莱克股份有限公司 用于在diameter网络中提供动态的基于起点的路由关键字登记的方法、系统和设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162723A1 (en) 2003-03-05 2008-07-03 Fuyong Zhao Method and apparatus for updating probabilistic network routing information

Also Published As

Publication number Publication date Type
JP2013511890A (ja) 2013-04-04 application
WO2011075150A1 (en) 2011-06-23 application
KR20120085836A (ko) 2012-08-01 application
EP2491745B1 (en) 2018-07-04 grant
KR101438982B1 (ko) 2014-09-11 grant
EP2491745A1 (en) 2012-08-29 application
US8817795B2 (en) 2014-08-26 grant
KR20130125844A (ko) 2013-11-19 application
CN102656922A (zh) 2012-09-05 application
EP2491745A4 (en) 2013-10-16 application
US20120134361A1 (en) 2012-05-31 application
JP5438225B2 (ja) 2014-03-12 grant
CN102656922B (zh) 2016-05-18 grant
US9923802B2 (en) 2018-03-20 grant
US20140330985A1 (en) 2014-11-06 application

Similar Documents

Publication Publication Date Title
Heidemann et al. Building efficient wireless sensor networks with low-level naming
US7580971B1 (en) Method and apparatus for efficient SQL processing in an n-tier architecture
US7116643B2 (en) Method and system for data in a collection and route discovery communication network
Heinzelman et al. Adaptive protocols for information dissemination in wireless sensor networks
US7725596B2 (en) System and method for resolving network layer anycast addresses to network layer unicast addresses
US6327622B1 (en) Load balancing in a network environment
US8135863B2 (en) Event notification network
Baldoni et al. Distributed event routing in publish/subscribe communication systems: a survey
US8321568B2 (en) Content management
US7908337B2 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
Babaoglu et al. Design patterns from biology for distributed computing
Barish et al. World wide web caching: Trends and techniques
US20070110063A1 (en) Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
US7174382B2 (en) Interest-based connections in peer-to-peer networks
US20060268742A1 (en) Topology-centric resource management for large scale service clusters
US7054867B2 (en) Systems, methods and programming for routing and indexing globally addressable objects and associated business models
Tang et al. Coordinated en-route web caching
Akhoondi et al. LASTor: A low-latency AS-aware Tor client
US20070143442A1 (en) Scalable Publish/Subscribe Broker Network Using Active Load Balancing
US7577754B2 (en) System and method for controlling access to content carried in a caching architecture
EP2323346A1 (en) Adaptive multi-interface use for content networking
US8149716B2 (en) Systems and methods for adaptive routing in mobile ad-hoc networks and disruption tolerant networks
Zhang et al. A survey of caching mechanisms in information-centric networking
US7519734B1 (en) System and method for routing service requests
Sourlas et al. Distributed cache management in information-centric networks

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right