KR20030097821A - 분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성 - Google Patents

분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성 Download PDF

Info

Publication number
KR20030097821A
KR20030097821A KR10-2003-7013118A KR20037013118A KR20030097821A KR 20030097821 A KR20030097821 A KR 20030097821A KR 20037013118 A KR20037013118 A KR 20037013118A KR 20030097821 A KR20030097821 A KR 20030097821A
Authority
KR
South Korea
Prior art keywords
node
resource request
user
user node
network
Prior art date
Application number
KR10-2003-7013118A
Other languages
English (en)
Other versions
KR100613053B1 (ko
Inventor
크리스토퍼 리처드 빈센트
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20030097821A publication Critical patent/KR20030097821A/ko
Application granted granted Critical
Publication of KR100613053B1 publication Critical patent/KR100613053B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

사용자 노드들의 네트워크에서 자원을 찾아내는 방법이 제공된다. 본 방법에 따르면, 공개될 자원 요청이 네트워크의 제1 사용자 노드에서 수신되고, 상기 자원 요청을 서버 노드에 전송할지 여부에 대한 판단이(예를 들어, 무작위하게) 이루어진다. 자원 요청을 서버 노드에 전송하지 않는 것으로 판단되면, 상기 자원 요청은 직접 접속을 통해 상기 네트워크의 제2 사용자 노드에 전달된다. 상기 자원 요청을 서버 노드에 전송하는 것으로 판단되면, 상기 자원 요청은 공개를 위해 서버 노드에 전송된다. 또한, 다수의 사용자 노드들과 적어도 하나의 서버 노드를 포함하는 유형의 컴퓨터 네트워크에서 사용하기 위한 사용자 노드가 제공되는데, 상기 사용자 노드 각각은 직접 접속을 통해 적어도 하나의 다른 사용자 노드와 연결된다.

Description

분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성{Scalable resource discovery reconfiguration for distributed computer networks}
인터넷과 같은 컴퓨터망은 사용자들이 파일 또는 하드웨어 같은 자원들을 공유하는 것을 가능케 한다. 인터넷의 확장 및 월드 와이드 웹 표준의 채택은 사용자가 별다른 노력을 들이지 않고서도 파일을 보고 다운로드할 수 있도록 해주었다. 사용자는 임의의 프로그래밍 언어에 대해서는 알 필요가 없다. 단순히 인터넷 브라우저를 실행시킴으로써, 사용자는 원하는 파일을 보기위해 지정하여 클릭하기만 하면 된다. 이러한 프로그램의 가용성으로 인하여, 먼거리에 떨어진 같은 취미의 개인들이, 사실상 전세계에 퍼져있는 분산 컴퓨터망을 통해, 손쉽게 협조하고 파일을 공유할 수 있다.
전형적으로, 분산 컴퓨터망은 클라이언트/서버 프레임워크를 갖도록 구성된다. 구체적으로, 각 사용자는 네트워크를 통해 서버 노드를 액세스할 수 있는 클라이언트이며, 적합한 권한으로써, 서버 노드에 파일을 공개할(publish) 수 있다. 파일이 서버 노드에 공개되면, 네트워크상의 다른 클라이언트들은 해당 파일을 보거나 다운로드하기 위해 서버에 액세스할 수 있다. 또한, 서버 노드는 한 클라이언트가 네트워크를 통해 도달가능한 또다른 클라이언트에게 파일을 자동 전송할 수 있도록 해준다. 클라이언트는 단순하게 원하는 수령자를 식별해주는 정보와 함께 서버 노드에 파일을 전송하고, 서버는 해당 파일을 해당 클라이언트에게 전송해준다. 또한, 서버 노드는 클라이언트들이 프린터와 같은 하드웨어 자원을 공유하는 것도 가능하게 한다.
이러한 클라이언트/서버 프레임워크에서, 서버 노드는 보안을 제공할 책임이 있다. 예를 들어, 서버 노드는 오직 인가받은 클라이언트만이 네트워크 자원을 이용(예, 파일을 다운로드함)할 수 있도록 해주고, 오직 적합한 파일만이 공개될 수 있도록 해준다. 또한, 서버 노드는 단일 장애 지점(single point of failure)을 나타낸다. 따라서, 신뢰가 요구되는 클라이언트/서버 환경에서, 서버 노드는 시스템 중단 및 데이터 손실을 방지할 수 있도록 강하여야 하며 여분의 시스템을 구비하여야 한다. 또한, 모든 클라이언트간 자원 전송이 서버 노드를 통과하기 때문에, 네트워크에 또다른 클라이언트를 추가시키는 것은 서버 노드에 추가적인 부담을 주게 되며 네트워크 성능을 저하시킨다.
이러한 클라이언트/서버 프레임워크에서, 클라이언트의 프라이버시는 거의 없다. 전형적으로, 서버 노드는 클라이언트가 네트워크 자원에 액세스할 수 있게 허용하기 이전에 인증을 요구한다. 클라이언트가 인증 증명서를 제공하면, 서버 노드는 클라이언트의 모든 네트워크 활동을 쉽게 기록할(log) 수 있다. 예를 들어, 서버 노드가 클라이언트에 의해 업로드되고 다운로드되는 모든 파일들에 대한기록을 갖고 있을 수 있다. 인증되지 않은 클라이언트에 의한 액세스가 허용되더라도, 서버 노드는 다양한 유일 식별 기술들중 하나를 이용하여, 시간에 걸친 클라이언트의 활동을 추적할 수 있다. 예를 들어, 서버 노드는 클라이언트상에 유일의 쿠키(cookies)를 둘 수 있으며, 이후에 클라이언트가 서버 노드에 액세스할 때마다 쿠키를 이용하여 해당 클라이언트를 식별할 수 있다.
종래의 클라이언트/서버 프레임워크의 일부 단점들은 "가상" 네트워크에 의해 해결될 수 있다. 이러한 네트워크에서, 사용자 노드는 고도로 상호연결된 가상 네트워크에 참가중인 하나 이상의 공지된 호스트에 접속한다. 그러면, 사용자 노드는 그 자신이 자원 및 가용 호스트 요청에 응답할 수 있는 호스트 노드가 된다. 네트워크의 각 사용자는 가능하면 각 자원 요청을 전체 네트워크를 통해 전파시키기 위해, 요청을 모든 공지된 인접 노드들에 포워딩한다. 예를 들어, 그누텔라(Gnutella) 시스템이 이러한 가상 네트워크 프레임을 채택한다. 그누텔라는 공개 네트워크 프로토콜을 구비하고 있으며, 각 사용자들이 파일 공유 네트워크의 호스트 노드로서 역할하도록 허용하는 클라이언트/서버 어플리케이션( 에서 이용가능함)을 사용자들에게 제공한다. 그누텔라 시스템은 암호화 및 라이센싱(licensing)에 의해 보호되는 상업적 콘텐트를 안전하게 배포하는데 이용될 수 있다.
가상 네트워크는 동등계층(peer-to-peer) 통신에 기초한다. 동등계층은 각 당사자가 유사한 능력을 가지고 있으며 어느쪽에서도 통신 세션을 개시할 수 있는 통신 모델이다. 예를 들어, 그누텔라 어플리케이션은 동등계층 통신을 채용한 사용자들이 인터넷을 통해 서로간에 파일을 교환할 수 있도록 해준다. 가상 네트워크에서 사용되는 동등계층 모델은 네트워크내에서 각각의 사용자(즉, 사용자 노드)가 다른 사용자 노드들중 적어도 하나에 대해 알고 있는 것에 의존한다. 파일과 같은 자원을 검색하는 경우에, 사용자 노드는 알고있는 다른 노드들에 자원 요청을 하면, 이들은 자신이 아는 노드들에게 그 요청을 전달하는 등의 방식으로 네트워크 전체에 걸쳐서 요청을 전파한다. 자원을 가진 노드는 해당 요청을 수신하고 요청한 노드에 그 자원(또는 그의 가용성을 나타내는 메시지)을 전송해줄 수 있다. 이러한 프레임워크는 중앙 네트워크 당국(예, 서버 노드)으로부터의 독립성을 제공하기 때문에, 가상 네트워크의 사용자들은 프라이버시?? 향상시켰으며 단일 장애 지점이 제거된다.
도 1은 예시적인 가상 네트워크를 도시한다. 네트워크내의 각각의 노드는 클라이언트 및 서버 모두로서 동작하는 사용자를 나타내고, 이는 하나 이상의 다른 노드들과 연결되어 있다. 제1 노드(210)가 특정 자원(예, 파일)을 원할 때, 제1 노드(201)는 알고 있는 모든 노드들(202, 204, 206 및 208)에 요청을 송출하고, 이들도 동일한 동작을 수행하게 된다. 예를 들어, 요청은 노드(208, 216 및 218)을 연속적으로 통과함으로써 제2 노드(212)에 도달한다. 제2 노드(212)가 요청된 자원을 가지고 있다면, 적절한 메시지를 (예, 요청이 거쳐온 동일한 경로를 거슬러서) 제1 노드(210)에 전송함으로써 응답한다. 요청된 자원을 가진 노드가 식별되었기 때문에, 제1 노드(210)는 자원을 다운로드받기 위해 제2 노드(212)와 직접 동등계층 통신을 개시할 수 있다. 가상 네트워크 전체에 걸쳐서, 임의 개수의 이러한 자원 요청, 승인 및 전송이 동시에 발생할 수 있다.
가상 네트워크가 향상된 프라이버시를 제공하고 단일 장애 지점을 제거하였지만, 이러한 프레임워크는 확장성(scalability)에 관련된 단점을 갖는다. 크고, 분산된 가상 네트워크에서, 효율적인 자원 탐색은 참가하는 노드 개수가 증가함에 따라 저하된다. 더 구체적으로, 자원은 노드에서 노드로만 전파될 수 있기 때문에, 각각의 노드는 비교적 적은 개수의 다른 노드들에게만 요청을 전파할 수 있다. 네크워크 트래픽을 제어하고 불합리적인 응답 시간을 방지하기 위해, 현실적인 시스템은 "생존시간(time-to-live)" 또는 요청이 전달될 수 있는 회수에 대한 제한(예, 동등계층 홉(hop)의 최대 개수)을 채택하여야 한다. 결과적으로, 이는 요청이 비합리적으로 많은 수의 중개 노드들을 거쳐서 전파되기를 요구하는 경로에 의해 분리되어 있는 임의의 두개 노드간 또는 노드군들을 단절시키게 된다. 또는, 요청 전파에 대한 이러한 임의의 제한은, 자원에 대한 소모적인 검색이 네트워크내의 모든 노드들에 요청이 전파될 것을 요구하기 때문에, 이러한 검색의 수행을 불가능하게 한다.
부가적으로, 최근에 정보 흐름 그래프를 활용하는 내용-기반 공개-가입(publish-subscribe) 메시징 인프라구조가 제안되었다. 예를 들어, 본 발명의 양수인에 의해 ()에 기재되어 있는) 그리폰(Gryphon) 시스템이 개발되었다. 이러한 시스템은 내용-기반 가입 서비스를 제공하고 분산식 공개/가입 통신의 특징들과 데이터베이스 기술을 병합함으로써 메시지 중개(brokering)를 수행한다. 그리폰 시스템의 핵심은 이벤트의 선택적 전송, 이벤트 변환 및 새로운 이벤트 생성을 상술하는(specify) 정보 흐름 그래프에 있다.
도 2는 정보 흐름 그래프를 이용하는 내용-기반 공개-가입 메시징 인프라구조를 도시한다. 이 시스템에서, 2개의 정보 소스 NYSE 및 NASDAQ으로부터 도출되는 주식거래 정보가 결합되고, 변환되고, 필터링되어, 가입 클라이언트들에게 전달된다. 예를 들어, 하나의 사용자(312)는 메시지-중개 서버(302)에 가입할 수 있으며 수백만 달러의 가치를 갖는 NYSE 및 NASDAQ 양쪽의 모든 주식거래 정보에 대한 수신을 요청할 수 있다. 메시지 중개자(302)는 NYSE (324) 및 NASDAQ(326)으로부터 가격 및 거래량과 같은 가공되지 않은 주식 거래 정보를 수신한다.
사용자(312)의 정보 요청에 근거하여, 서버(302)는 2개 소스로부터의 주식거래 정보를 병합하고, 비가공의 가격 및 거래량 정보를 각 거래에 관한 가치 정보로 변환한 후에, 도출된 가치들을 필터링하여 수백만 달러 이사의 가치를 갖는 거래 부집합을 산출한다. 유사한 방식으로, 각각의 가입 사용자들(예, 노드(304, 306 및 308))은 그 자신의 기준을 지정하고, 메시지-중개 서버(302)는, 각각의 사용자에게 요청 정보를 제공하기 위해, 정보 선택, 변환, 필터링 및 전송을 수행한다.
도 2의 공개-가입 메시징 인프라구조가 다수의 사용자들을 갖는 메시징 시스템에 양호한 확장성을 제공하기는 하지만, 종래의 클라이언트/서버 프레임워크에서와 같이 사용자의 프라이버시가 거의 없다. 모든 사용자들은 시스템에 가입할 때 그들 스스로를 확인시켜야 하며 모든 정보는 중앙 서버를 통해 사용자에게 전달된다. 따라서, 중앙 서버는 용이하게 시스템의 모든 사용자들과 각각이 소망하고 수신하는 정보에 대한 정확한 기록을 유지할 수 있다. 중앙 메시징-중개 서버는 시스템에 대한 단일 장애 지점을 또한 나타낸다.
본원발명은 컴퓨터망에 관한 것으로서,더 구체적으로는 분산 컴퓨터망에서 확장성있는(scalable) 자원 발견 및 동적인 재구성을 위한 구조에 관한 것이다.
본 발명은 이하의 첨부된 도면을 참조하여 예시적으로 설명될 것이다.
도 1은 예시적인 바이러스형(viral) 네트워크의 블록도이다.
도 2는 예시적인 콘텐트-기반 공개-가입 메시징 기반구조의 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 확장성있는 네트워크 구조의 블록도이다.
도 4는 본 발명의 제1 실시예에 따른 확장성있는 네트워크 구조내에서 자원을 획득하는 프로세스를 흐름도로 나타낸 것이다.
도 5는 본 발명의 제2 실시예에 따른 확장성있는 네트워크 구조내에 자원을 획득하는 프로세스를 흐름도로 나타낸 것이다.
도 6은 본 발명의 제3 실시예에 따른 확장성있는 네트워크 구조내에 자원을 획득하는 프로세스를 흐름도로 나타낸 것이다.
도 7은 도 6의 프로세스 일부에 대한 예시적인 구현을 도시한 확장성있는 네트워크 구조의 블록도이다.
도 8은 도 6의 프로세스의 또다른 부분에 대한 예시적인 구현을 도시한 확장성있는 네트워크 구조의 블록도이다.
분산망의 대부분 특징들은 유지하면서 확장성 및 성능 문제들을 다룰 수 있는 확장성있는 메시징 기반구조를 제공한다. 분산망내에 중앙 권한기관이 아니라 메시징 기반구조층으로서 적어도 하나의 공개-가입 서버 노드가 제공된다. 따라서, 분산망에서 확장성이 달성될 수 있다.
본 발명의 한가지 실시예는 사용자 노드 네트워크에서 자원을 찾아내기 위한 방법을 제공한다. 방법에 따르면, 공개될 자원 요청이 네트워크의 제1 노드에서 수신되고 상기 자원 요청을 서버 노드에 보낼지 여부가 판단된다. 상기 자원 요청을 서버노드에 보내지 않는 것으로 판단되면, 상기 자원 요청은 직접 접속을 통해 네트워크의 제2 사용자 노드에 전달된다. 상기 자원 요청을 서버 노드에 전송하는 것으로 판단되면, 상기 자원 요청은 공개를 위해 서버 노드에 전송된다. 바람직한 실시예에서, 서버 노드에 자원 요청을 전송할지 여부에 대한 판단은 제1 사용자 노드에 의한 임의의 결정이다.
본 발명의 또다른 실시예는 사용자 노드들과 적어도 하나의 서버 노드들을 포함하고, 사용자 노드 각각이 직접 접속을 통해 적어도 하나의 다른 사용자 노드에 연결되는 유형의 컴퓨터 네트워크에서 사용되는 사용자 노드를 제공한다. 사용자 노드는 공개된 자원 요청을 수신하기 위한 수신 인터페이스와, 서버 노드에 자원 요청을 전송할지 여부를 판단하기 위한 제어 수단과, 선택적으로 상기 자원 요청을 직접 접속을 통해 네트워크의 제2 사용자 노드에 전달하거나 공개를 위해서버 노드에 전송하는 적어도 하나의 전송 인터페이스를 포함한다. 전송 인터페이스는 제어 수단이 상기 자원 요청을 서버 노드에 전송하지 않는 것으로 판단하면 상기 자원 요청을 제2 사용자 노드에 전달하고, 제어 수단이 서버노드에 상기 자원 요청을 전송할 것을 판단하면 상기 자원 요청을 공개를 위해 서버 노드에 전송한다. 바람직한 실시예의 일예에서, 제어 수단은 네트워크의 다른 사용자 노드들중에서 자원 요청이 전달될 제2 사용자노드가 될 노드를 임의로 선택한다.
도 3은 본 발명의 바람직한 실시예에 따른 확장성있는 네트워크 구조를 도시한다. 도시된 바와 같이, 프레임워크는 공개-가입 서버 노드(402)와 다수의 사용자 노드들(예, 404, 406, 410)을 포함한다. 본 발명의 실시예에서, 서버 노드(402)는 단일 서버 또는 임의 개수의 서버들로 구성되는 "서버 그룹(server cloud)"에 의해 구현될 수 있다. 이러한 서버 그룹의 개별 서버들은 데이터 및 경로 중복과 같은 유용한 장점들 및 적절한 수준의 서비스를 제공하기 위하여 서로 연결되고 다양한 방식으로 인터넷에 연결될 수 있으며 원거리 분리되어 있을 수도 있다.
이러한 구조내에서, 사용자 노드(416)는 공개-가입 서버 노드(402)에 접촉하여 메시지의 일정 "채널"에 가입함으로써 네트워크에 합류한다(join). 또한, 합류한 사용자 노드(416)는 (예를 들어, 지리적 위치, 접속 속도, 또는 공통의 목적등과 같은 임의의 기준에 따라서) 적어도 하나의 사용자 노드(410, 418, 420)에 접속을 요청한 후에 직접 접속한다. 이러한 방식에 따라, 네트워크내의 모든 사용자 노드들은 메시지 전송을 위해 중앙 공개-가입 서버 노드에 연결되고 (단순함을 위해 도시되지는 않음), 분산된 바이러스형 자원 공유 네트워크를 형성하는 동등계층형 접속을 통해 서로 연결된다.
도 4는 본 발명의 제1 실시예에 따라 이러한 확장성있는 네트워크 구조 내에서 자원을 획득하기 위한 프로세스를 나타낸 흐름도이다. 네트워크내의 제1 사용자 노드(416)가 자원(예, 파일)을 소망할 때마다, 자원 요청(또는 질의)이 서버 노드(402)에 전송되고 (단계 S10), 서버 노드(402)는 그것을 요청 유형에 대응하는 채널에 가입한 모든 사용자 노드들에게 전송함으로써 공개한다 (단계 S12). 상기 요청을 수신하고 상기 자원을 제공하고자 하는 제2 사용자 노드(422)는 제1 사용자 노드(416)에 접촉하고(S14), 제1 및 제2 사용자 노드들(416, 422)은 동등계층 접속을 설정하여 요청된 자원을 제1 사용자 노드(416)에 전송한다(단계 S16). 이러한 방식에 의하면, 공개-가입 메시지 전송 기반 구조층은 매우 많은 수의 중개 노드들을 포함하는 직접-접속 경로에 의해 요청 노드로부터 떨어져 있는 노드에 자원 요청이 도달할 수 있도록 해준다.
따라서, 본 발명에 의해 제공되는 확장성있는 네트워크 구조에 의하면, 네트워크내의 사용자 노드수가 증가하더라도 효율적인 자원 발견이 유된다. 이와 동시에, 자원 그 자체는 서버에 공개되지 않으며 실제 자원 공유는 서버를 포함시키지 않으므로, 서버에 대한 요구가 종래의 클라이언트/서버 구조에 비해 적어진다. 더욱이, 각각의 서버 요청은 관련 채널에 가입한 모든 사용자 노드들에게 공개되므로, 매우 많은 수의 사용자 노드들을 포함하는 네트워크에서 허용가능한 시간 내에 요청된 자원에 대한 총마라한 (또는 최소한 매우 광범위한) 검색이 가능하다.
바람직한 실시예에서, 공개-가입 메시지 전달 기반 구조는 2가지 유형의 "채널"또는 공유 데이터 스트림을 지원한다. 제1 유형의 채널은 분산 네트워크에서 다른 사용자 노드들을 찾는 것을 지원하는데 이용되는 "노드 발견 채널"이다. 네트워크에 합류하기 위해, 사용자 노드는 서버 노드의 공개-가입 메시지 전달 기반구조를 이용하여 그자신을 알린다. 구체적으로, 신규 사용자 노드로부터의 합류 통지는 서버 노드를 통해 하나 이상의 노드 발견 채널들에 라우팅되어 다른 사용자 노드들로부터의 접속을 청한다. 따라서, 공개-가입 기반구조는 다른 사용자 노드들에 접속을 개설하는 (IP 위에 있는 층과 같은) 범용 전송층으로서 기능하여 합류 통지를 브로드캐스트한다.
이러한 합류 통지는, 지리학적 위치, 네트워크 접속 속도, 가용자원의 유형, 및/또는 공통의 목적과 같은 카테고리에 근거하여 각각의 노드 발견 채널들로 분할될 수 있다. 따라서, 신규 사용자 노드는 (지리적으로 및 네트워크 홉(hop)에 대하여) 원격 사용자 노드들을 발견할 수 있으며, 접속시에, 원하는 유형의 자원 또는 허용가능한 접속 속성을 갖는 노드들을 선호할 수 있다. 또한, 각각의 합류 통지는 특정 채널들에 가입한 사용자 노드들에만 전송되기 때문에, 매우 큰 네트워크의 사용자 노드들이 합류 통지로써 항상 넘치게 되는 것은 아니다.
제2 유형의 채널은 자원 요청의 공개를 최적화하기 위해 이용되는 "자원 요청 채널"이다. 전술한 바와 같이, 서버 노드는 각각의 자원 요청을 특정 채널(또는 채널들)에 가입한 모든 사용자 노드들에게 전송함으로써 그것을 공개한다. 이러한 자원 요청 채널은 사용자 노드들이 원하지 않은 요청들을 효과적으로 걸러낼 수 있도록 하기 위해 풍부한 자원 유형 분류로 나뉘어질 수 있다. 또한, 자원 요청 채널을 이용함으로써, 자원요청이 네트워크내의 모든 사용자 노드들에 도달하도록 하는 대신에, 관련된 사용자 노드 부집합 (즉, 관련 채널 (또는 채널들)에 가입한 사용자 노드들)에만 도달할 수 있도록 해준다.
따라서, 기술 문서의 공유만을 소망하는 사용자 노드는 멀티미디어 콘텐트 요청 공세를 받지 않는다. 어플리케이션에 따라, 사용자 노드 및/또는 서버 노드는 개별 통지 또는 자원 요청이 공개될 채널 또는 채널들을 선택할 수 있다. 또한, 바람직한 실시예에서, 채널은 단지 사용자 노드에 의해 공개되는 것에 의해 존재한다. 따라서, 임의의 사용자 노드가 새로운 자원 채널을 생성할 수 있으며 그런 후에 임의의 종래 방식으로(예를 들어,웹 사이트, 뉴스그룹, 텔레비전 또는 직접 메일 광고를 통해) 가입을 위한 그의 가용성을 선전할 수 있다.
도 5는 본 발명의 제2 실시예에 따라 확장성있는 네트워크 구조 내에서 자원을 획득하기 위한 프로세스를 나타낸 흐름도이다. 네트워크내의 제1 사용자 노드(416)가 자원(예, 파일)을 소망할 때마다, 자원 요청이 서버 노드(402)에 전송되고(단계 S10), 서버 노드(402)는 그것을 해당 요청 유형에 대응하는 채널에 가입한 사용자 노드들 전부에 전송함으로써 공개한다(단계 S12). 또한, 제2 실시예에서, 제1 노드(416)는 분산 네트워크내에서 연결된 사용자 노드들(410, 418, 420) 모두에 자원 요청을 또한 전송한다.
이러한 프로세스는 분산 네트워크내의 사용자 노드들을 통해 요청을 전파하기 위해, 요청을 수신한 각각의 사용자 노드들이 그 요청을 자신에 연결된 다른 사용자 노드들에게 전달하는 것으로 반복된다(단계 S11). 예를 들어, 요청은 노드(410, 414)를 통해 연속하여 전달됨으로써 제2 사용자 노드(404)에 도달한다. 더욱이, 일부 실시예에서, 서버 노드로부터 자원요청을 수신한 각각의 사용자노드(예, 422)도 분산망에서 자신에 연결된 모든 사용자 노드에 해당 자원 요청을 또한 전송한다. 제2 사용자 노드(404)가 (사용자 노드 전파를 통해 또는 서버 노드로부터) 상기 요청을 수신하고 자원을 제공하려고 한다면, 제2 사용자 노드(404)는 제1 사용자 노드(416)에 접촉하고(단계 S14), 요청된 자원의 공유를 위해 동등계층 접속이 개설된다(단계 S16).
따라서, 제2 실시예에서, 자원 요청들은 (제1 실시예에서와 같이) 메시지 전송 기반구조층을 통해 공개되고 분산 네트워크의 사용자 노드들들 통해 전파된다. 이러한 이중 경로 프로세스가 중앙 서버 노드를 통해 전달되는 요청 전파 경로에 대한 대안을 제공하기 때문에, 단일 장애 지점의 문제가 제거된다. 즉, 서버 노드가 고장나더라도 자원 요청은 다른 사용자 노드들에게 전파된다. 더욱이, 제2 실시예에서, 모든 사용자 노드들이 공개-가입 기반구조에 연결될 필요는 없으며, 그 존재에 대해서도 반드시 알 필요는 없다. 이러한 사용자 노드는 자신에 연결되어 있는 모든 사용자 노드들에게만 자원 요청을 전달하면 된다. 이러한 특징으로 인하여 제2 실시예는 모든 사용자 노드를 변경할 필요없이 기존 네트워크내에서 구현될 수 있다.
도 6은 본 발명의 제3 실시예에 따라 확장성있는 네트워크 구조 내에서 자원을 획득하기 위한 프로세스를 나타낸 흐름도이다. 이 실시예에서, 요청한 사용자 노드에 대한 프라이버시를 강화하기 위해, 자원 요청은 서버 노드에 직접적으로 전송되지 않는다. 제3 실시예에서 자원(예, 파일)이 소망될 때마다, 요청하는 제1 사용자 노드(410)는 분산 네트워크에서 자신에 연결된 제2 사용자 노드(414)에 자원 요청을 전송한다(단계 S20, 도 7에서 점선 화살표로 표시됨). 그리고 나서, 제2 사용자 노드(414)는 상기 요청을 공개-가입 서버 노드(402)에 전송할지 또는 분산 네트워크내에서 자신에 연결되어 있는 또다른 사용자 노드에 전송할지를 판단한다(단계 S22). 바람직하게는, 모든 사용자 노드들이 메시지 전송을 위한 중앙의 공개-가입 서버 노드에 연결되어 있다(도면에는 도시되어 있지 않음).
서버 노드(402)에 전송하지 않는 것으로 판단된 경우에, 제2 사용자 노드(414)는 자원 요청을 그에 연결된 또다른 사용자 노드(420)에 전달한다(단계 S20, 도 7 참조). 이러한 전달 프로세스는 자원 요청을 수신하고 동일한 판단을 수행하는 각각의 노드에서 반복된다(단계 S22). 제3 사용자 노드(416)가 서버 노드(402)에 전송하는 것으로 판단하면, 자원 요청은 서버 노드(412)로 전송되고(단계 S24), 서버 노드(402)는 해당 요청의 유형에 대응하는 채널에 가입된 모든 사용자 노드들에 자원 요청을 전송함으로써 그것을 공개한다(단계 S26).
바람직한 실시예에서, 요청을 공개-가입 서버 노드에 전송할지 여부에 대한 각각의 판단은 요청이 서버 노드에 전송될 확률을 부여하는 0과 1사이의 가중 인자에 근거하여 사용자 노드에 의해 이루어지는 "무작위(random)" 결정이다. 예를 들어, 가중 인자가 0.25라면, 사용자 노드가 요청을 서버 노드에 전송할 확률이 25%이고 요청이 또다른 사용자 노드에 전달될 확률은 75%라는 것이다. 따라서, 평균적으로 0.25의 가중 인자는 자원 요청들이 공개-가입 서버 노드로 전송되기 이전에 세 번 정도 다른 사용자 노드에 전달되도록 야기한다. 가중 인자값은 소망하는 프라이버시 수준과 같은 요소에 따라서 설정된다. 나아가서, 가중 인자값은 네트워크 전체에 걸쳐서 사용되는 고정값이거나 메시지 단위로 사용자 노드에 의해 설정될 수 있다. 최대 전달 회수 또는 최대 경과 시간과 같은 다른 기준들도 요청을 수신하는 각 사용자 노드에 의해 이루어지는 판단에 포함될 수 있다.
또다른 실시예에서, 공개-가입 서버 노드에 요청을 전송할지 여부에 대한 판단은 정해진(fixed) 전달 회수와 같은 다른 기준에 의해 근거하여 이루어질 수 있다. 예를 들어, 일실시예에서 각각의 사용자 요청은 항상 3개의 사용자 노드들을 통해 전달되고 나서 공개-가입 서버 노드에 전송된다. 바람직하게는, 자원 요청이 또다른 사용자 노드에 전달될 때마다, 어떠한 다른 사용자 노드가 상기 전달된 요청을 수신할지에 대한 선택은 전달한 사용자 노드에 연결된 사용자 노드들중에서 하나를 무작위로 선택함으로써 이루어진다.
자원 요청이 서버 노드(402)에 의해 공개된 후에, 요청을 수신하고 자원을 제공하고자 하는 제4 사용자 노드(422)는 제1 사용자 노드(410)에 접촉한다. 구체적으로, 도 8에 도시된 바와 같이, 제4 사용자 노드(422)는상기 자원 요청을 공개를 위해 서버 노드(402)에 전송했던 제3 사용자 노드(416)에 응답을 전송한다(단계 S28). 제3 사용자 노드(416)는 이러한 응답을 그가 자원요청을 수신한 사용자 노드(420)에 전달하고, 이러한 전달 프로세스는 응답이 제1 사용자 노드(410)에 도달할 때까지 반복된다(단계 S30). 이 시점에서, 제1 사용자 노드(416)는 제 4 사용자 노드(422)와 접촉하여 직접적인 동등계층 접속을 개설함으로써 요청된 자원을 공유할 수 있다(단계 S32).
바람직한 실시예에서, 자원을 가진 사용자 노드로부터의 응답은 자원매치(match)에 관한 메타데이터를 포함한다. 응답이 수신되면, 요청한 사용자 노드는 메타데이터를 평가하여 자원 자체의 공유를 위해 (즉, 요청된 파일을 다운로드하기 위해) 응답 노드와 직접 접속할지 여부를 판단한다. 다수의 응답이 수신되는 경우에, 요청한 사용자 노드는 각 응답내의 메타데이터를 평가하여 임의의 기준(예, 과거 경험, 수신 순서, 접속 속도, 또는 물리적 위치)에 근거하여 응답 사용자 노드들중에서 하나 또는 그 이상을 선택할 수 있다.
부가적으로, 바람직한 실시예에서, 자원을 가진 사용자 노드로부터의 응답들은 (상기 요청이 서버 노드를 통해 거쳐온 경로와 같은) 기존 접속을 통해 라우팅되고, 새로운 동등계층 접속은 실제적으로 자원을 전송하기 위해서만 개설된다. 그렇지 않고, 각각의 응답 사용자 노드들이 새로운 동등계층 접속을 개시한다면, 상기 응답들을 수신하는 사용자 노드는 많은 수의 응답들이 수신될 때마다 압도될 것이다. 대안적으로, 서버 노드가 자원 요청에 응답하는 사용자 노드들에 의해 사용될 "1회성" 매칭 또는 영구적인 응답 채널을 설정할 수 있다. 영구 응답 채널을 통한 응답의 공개는 미래 사용을 위해 잠재적으로 흥미있는 응답들을 보관해두는 "수동적인(passive)" 사용자 노드들을 도울 것이다.
자원 요청들이 서버 노드에 직접 전송되는 대신에 하나 이상의 다른 사용자 노드들을 통해 전달되기 때문에, 제3 실시예는 요청 사용자 노드에 프라이버시를 제공한다. 자원을 요청한 실제 사용자 노드는 서버 노드에 익명으로 남게 되므로, 서버 노드는 어느 사용자가 어떠한 자원을 공유하는지 (심지어는 요청하는지)를 추적할 수 없다. 종래 바이러스형 네트워크에서와 같이, 제3 실시예에 의하면, 자원을 실제로 제공하는 사용자 노드만이 자원 공유 및 요청 노드의 신원에 대해 알고 있다. 한편, 종래의 바이러스형 네트워크와는 달리, 제3 실시예에 의하면, 공개-가입 메시지 전송 기반구조층을 이용함으로써 엄청나게 많은 수의 사용자 노드들을 갖는 네트워크내에서 효율적으로 자원 발견할 수 있게 된다. 따라서, 본 발명을 통해 분산 네트워크에서의 확장성이 달성됨과 동시에 사용자 프라이버시의 유지는 개선된다.
전술한 본 발명의 실시예들은 개별 메시지들을 식별하기 위한 임의의 메커니즘을 필요로 한다. 바람직한 실시예에서, 모든 메시지(즉, 자원 요청 또는 응답)는 유일한 식별 번호를 할당받는다. 예를 들어, 일시예에서는 각각의 사용자 노드가 전역적으로 유일할 가능성이 큰 메시지 식별자(globally-unique message identification: GUID)를 개별적으로 생성할 수 있도록 해주는 알고리즘(마이크로소프트사에 의해 개발됨)을 채용한다. 또한, 각각의 사용자 노드는 응답(자원 자체를 포함할 수도 있음)이 메시지를 전송한 사용자 노드에 동일한 경로를 통해 도달할 수 있도록, 전달될 메시지들에 대하여 적어도 제한된 이력 정보를 (예를 들어, 테이블 내에) 저장하여야 한다. 또한, 일부 실시예는 자원 요청의 루핑(looping)을 방지하기 위한 메커니즘을 포함한다. 예를 들어, 전역적으로 유일한 메시지 식별자(GUID)와 노드 이력 테이블은 루핑-방지 메커니즘을 생성하는데 쉽게 이용될 수 있다.
전술한 본 발명의 실시예는 단일 서버 노드에 관한 것이지만, "장애지점(point of failure)" 문제를 더욱 최소화시키기 위해, 다수의 공개-가입서버 노드들이 네트워크 내에 제공될 수 있다. 또한, 경쟁 제공자들이 상이한 서버 노드들을 운영하고 사용자 노드 가입을 위해 경쟁함으로써 네트워크 내에 공존할 수 있다. 또한, 전술한 상이한 실시예들은 특징들은 미래 응용시에 결합될 수 있다. 예를 들어, 본 발명의 한 실시예가 제3 실시예에 따른 무작위 요청 전달 및 제2 실시예의 이중 전파/공개를 모두 포함할 수 있다. 네트워크 프로토콜, 전달 기준 및 가입 기준과 같은 기타 설계상의 선택사항들이 용이하게 적용될 수 있다.
본 발명은 하드웨어, 소프트웨어 또는 이들의 조합으로 실현될 수 있다. 임의의 종류의 컴퓨터 시스템 (또는 본명세서에 기재된 방법들을 수행하기 위해 개조된 장치)이 적합하다. 하드웨어 및 소프트웨어의 전형적인 조합은 컴퓨터 프로그램을 포함하는 범용 컴퓨터가 될 수 있으며, 상기 컴퓨터 프로그램이 컴퓨터에 로딩되어 실행되면 전술한 본원 발명의 방법들을 수행하기 위해 컴퓨터 시스템을 제어한다.
또한, 본 발명은 본 명세서에 기재된 방법들이 구형을 가능케 하는 모든 특징들을 포함하고, 컴퓨터 시스템에 로드될 때 이들 방법을 수행할 수 있는 컴퓨터 프로그램 제품으로 구현될 수 있다. 본 명세서에서, "컴퓨터 프로그램"은 정보 처리 능력을 갖는 시스템으로 하여금 직접적으로 또는 a) 또다른 언어, 코드 또는 표기로의 변환 및/또는 b)상이한 물질 형태로의 재생 이후에 특정 기능을 수행하도록 만드는 명령어 집합을 임의의 언어, 코드 또는 표기로 표현한 것을 포함한다.
각각의 컴퓨터 시스템은 하나 이상의 컴퓨터들과 컴퓨터로 하여금 컴퓨터 판독가능 매체로부터 데이터, 명령어, 메시지, 또는 매시지 패킷 및 기타 컴퓨터 판독가능 정보를 판독할 수 있도록 해주는 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체에는 ROM과 같은 비휘발성 메모리, 하드 디스크 또는 플로피 디스크, CD-ROM, 또는 기타 영구적인 저장장치가 포함될 수 있다. 또한, 컴퓨터 판독가능 매체에는 컴퓨터로 하여금 컴퓨터 판독가능 정보를 판독할 수 있도록 해주는 네트워크 링크 및/또는 (유선 또는 무선) 네트워크 인터페이스와 같은 일시적인 저장매체내의 컴퓨터 판독가능 정보도 포함될 수 있다.

Claims (20)

  1. 사용자 노드들의 네트워크에서 자원을 찾아내는 방법에 있어서, 상기 방법은
    상기 네트워크의 제1 사용자 노드에서 공개될 자원 요청을 수신하는 단계와,
    상기 자원 요청을 서버 노드에 전송할지 여부를 판단하는 단계와,
    상기 자원 요청을 서버 노드에 전송하지 않는 것으로 판단된 때에, 상기 자원 요청을 직접 접속을 통해 상기 네트워크의 제2 사용자 노드에 전달하는 단계와,
    상기 자원 요청을 서버 노드에 전송하는 것으로 판단된 때에, 상기 자원 요청을 공개를 위해 서버 노드에 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 판단 단계에서, 상기 자원 요청을 서버 노드에 전송할지 여부에 대한 판단은 상기 제1 사용자 노드에 의해 이루어지는 무작위(random) 판단인 방법.
  3. 제2항에 있어서, 상기 판단 단계에서, 상기 무작위 판단은 상기 제1 사용자 노드가 상기 자원 요청을 서버 노드에 전송하는 것으로 판단할 확률에 해당하는 가중 인자에 근거하여 이루어지는 방법.
  4. 제1항에 있어서, 상기 전달 단계는
    상기 제1 사용자 노드에 연결되어 있는 사용자 노드들중에서 하나의 노드를 제2 사용자 노드로서 무작위로 선택하는 단계와,
    상기 자원 요청을 상기 제1 사용자 노드로부터 직접 접속을 통해 상기 제2 사용자 노드에 전달하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서, 상기 자원 요청을 상기 서버 노드를 통해 상기 네트워크의 사용자 노드들중 적어도 일부에 공개하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 공개 단계에서, 상기 서버 노드는 하나 이상의 선택된 자원 요청 채널에 가입된 네트워크 내의 사용자 노드들 모두에게 상기 자원 요청을 공개하는 방법.
  7. 제1항에 있어서, 상기 판단 단계에서 상기 자원 요청을 수신한 사용자 노드가 상기 자원 요청을 서버 노드에 전송하는 것으로 판단할 때까지 상기 판단 및 전달 단계를 반복하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    요청 자원을 소망하는 요청 사용자 노드로부터 상기 공개될 자원 요청을 상기 제1 사용자 노드에 전송하는 단계와,
    동일한 자원 요청을 상기 요청 사용자 노드로부터 상기 요청 사용자 노드에 직접 접속을 통해 연결되어 있는 모든 사용자 노드들에게 전송하는 단계
    를 더 포함하는 방법.
  9. 사용자 노드들의 네트워크에서 자원을 찾아내기 위한 프로그램이 인코딩된(encoded) 머신-판독가능 매체에 있어서, 상기 프로그램은
    상기 네트워크의 제1 사용자 노드에서 공개될 자원 요청을 수신하는 단계와,
    상기 자원 요청을 서버 노드에 전송할지 여부를 판단하는 단계와,
    상기 자원 요청을 서버 노드에 전송하지 않는 것으로 판단된 때에, 상기 자원 요청을 직접 접속을 통해 상기 네트워크의 제2 사용자 노드에 전달하는 단계와,
    상기 자원 요청을 서버 노드에 전송하는 것으로 판단된 때에, 상기 자원 요청을 공개를 위해 서버 노드에 전송하는 단계
    를 수행하기 위한 명령어들을 포함하는 머신-판독가능 매체.
  10. 제9항에 있어서, 상기 판단 단계에서, 상기 자원 요청을 서버 노드에 전송할지 여부에 대한 판단은 상기 제1 사용자 노드에 의해 이루어지는 무작위(random) 판단인 머신-판독가능 매체.방법.
  11. 제10항에 있어서, 상기 판단 단계에서, 상기 무작위 판단은 상기 제1 사용자 노드가 상기 자원 요청을 서버 노드에 전송하는 것으로 판단할 확률에 해당하는 가중 인자에 근거하여 이루어지는 머신-판독가능 매체.
  12. 제9항에 있어서, 상기 전달 단계는
    상기 제1 사용자 노드에 연결되어 있는 사용자 노드들중에서 하나의 노드를 제2 사용자 노드로서 무작위로 선택하는 단계와,
    상기 자원 요청을 상기 제1 사용자 노드로부터 직접 접속을 통해 상기 제2 사용자 노드에 전달하는 단계
    를 포함하는 머신-판독가능 매체.
  13. 제9항에 있어서, 상기 프로그램은 상기 자원 요청을 상기 서버 노드를 통해 상기 네트워크의 사용자 노드들중 적어도 일부에 공개하는 단계를 를 수행하기 위한 명령어들을 더 포함하는 머신-판독가능 매체.
  14. 제13항에 있어서, 상기 공개 단계에서, 상기 서버 노드는 하나 이상의 선택된 자원 요청 채널에 가입된 네트워크 내의 사용자 노드들 모두에게 상기 자원 요청을 공개하는 머신- 판독가능 매체.
  15. 제9항에 있어서, 상기 프로그램은 상기 판단 단계에서 상기 자원 요청을 수신한 사용자 노드가 상기 자원 요청을 서버 노드에 전송하는 것으로 판단할 때까지 상기 판단 및 전달 단계를 반복하는 단계를 수행하기 위한 명령어들을 더 포함하는머신-판독가능 매체.
  16. 제9항에 있어서, 상기 프로그램은
    요청 자원을 소망하는 요청 사용자 노드로부터 상기 공개될 자원 요청을 상기 제1 사용자 노드에 전송하는 단계와,
    동일한 자원 요청을 상기 요청 사용자 노드로부터 상기 요청 사용자 노드에 직접 접속을 통해 연결되어 있는 모든 사용자 노드들에게 전송하는 단계
    를 수행하기 위한 명령어들을 더 포함하는 머신-판독가능 매체.
  17. 다수의 사용자 노드들과 적어도 하나의 서버 노드를 포함하는 유형의 컴퓨터 네트워크에서 사용하기 위한 사용자 노드에 있어서, 상기 사용자 노드 각각은 직접 접속을 통해 적어도 하나의 다른 사용자 노드와 연결되어 있으며, 상기 사용자 노드는,
    공개될 자원 요청을 수신하기 위한 수신 인터페이스와,
    상기 자원 요청을 상기 서버 노드에 전송할지 여부를 판단하기 위한 제어 수단과,
    상기 자원 요청을 직접 접속을 통해 상기 네트워크의 제2 사용자 노드에 선택적으로 전달하거나 상기 자원 요청을 공개를 위해 상기 서버 노드에 전송하기 위한 적어도 하나의 전송 인터페이스를 포함하고,
    상기 전송 인터페이스는 상기 제어 수단이 상기 자원 요청을 상기 서버 노드에 전송하지 않는 것으로 판단하면 상기 자원 요청을 상기 제2 사용자 노드에 전달하고, 상기 제어 수단이 상기 자원 요청을 상기 서버 노드에 전송하는 것으로 판단하면 상기 자원 요청을 상기 서버 노드에 공개를 위해 전송하는 사용자 노드.
  18. 제17항에 있어서, 상기 제어 수단은 상기 자원 요청을 상기 서버 노드에 전송할지 여부를 무작위로 판단하는 사용자 노드.
  19. 제18항에 있어서, 상기 제어 수단은 가중 인자에 따라 무작위로 판단하는 사용자 노드.
  20. 제17항에 있어서, 상기 제어 수단은 상기 네트워크의 다른 사용자 노드들중에서 상기 자원 요청이 전달될 제2 사용자 노드가 될 노드를 무작위로 선택하는 사용자 노드.
KR1020037013118A 2001-05-07 2002-03-18 분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성 KR100613053B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/850,343 US20020165948A1 (en) 2001-05-07 2001-05-07 Scalable resource discovery and reconfiguration for distributed computer networks
US09/850,343 2001-05-07
PCT/GB2002/001281 WO2002091712A1 (en) 2001-05-07 2002-03-18 Scalable resource discovery and reconfiguration for distributed computer networks

Publications (2)

Publication Number Publication Date
KR20030097821A true KR20030097821A (ko) 2003-12-31
KR100613053B1 KR100613053B1 (ko) 2006-08-16

Family

ID=25307875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037013118A KR100613053B1 (ko) 2001-05-07 2002-03-18 분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성

Country Status (9)

Country Link
US (2) US20020165948A1 (ko)
EP (1) EP1386471B1 (ko)
JP (1) JP3851275B2 (ko)
KR (1) KR100613053B1 (ko)
CN (1) CN100417158C (ko)
AT (1) ATE315871T1 (ko)
DE (1) DE60208659T2 (ko)
TW (1) TWI222287B (ko)
WO (1) WO2002091712A1 (ko)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797375B2 (en) * 2001-05-07 2010-09-14 International Business Machines Corporat System and method for responding to resource requests in distributed computer networks
US7545805B2 (en) * 2001-08-15 2009-06-09 Precache, Inc. Method and apparatus for content-based routing and filtering at routers using channels
US20030165139A1 (en) * 2001-08-15 2003-09-04 Tsu-Wei Chen Packet routing via payload inspection
US7551629B2 (en) * 2002-03-28 2009-06-23 Precache, Inc. Method and apparatus for propagating content filters for a publish-subscribe network
US20040083305A1 (en) * 2002-07-08 2004-04-29 Chung-Yih Wang Packet routing via payload inspection for alert services
EP1429513A1 (en) * 2002-12-09 2004-06-16 Koninklijke Philips Electronics N.V. Method and apparatus for searching data in a peer to peer network
US7606916B1 (en) * 2003-11-10 2009-10-20 Cisco Technology, Inc. Method and apparatus for load balancing within a computer system
US7761569B2 (en) * 2004-01-23 2010-07-20 Tiversa, Inc. Method for monitoring and providing information over a peer to peer network
US7827603B1 (en) 2004-02-13 2010-11-02 Citicorp Development Center, Inc. System and method for secure message reply
US7640329B2 (en) * 2005-02-15 2009-12-29 Microsoft Corporation Scaling and extending UPnP v1.0 device discovery using peer groups
US7647394B2 (en) * 2005-02-15 2010-01-12 Microsoft Corporation Scaling UPnP v1.0 device eventing using peer groups
US8200563B2 (en) * 2005-09-23 2012-06-12 Chicago Mercantile Exchange Inc. Publish and subscribe system including buffer
US20070165519A1 (en) * 2006-01-13 2007-07-19 George David A Method and apparatus for re-establishing anonymous data transfers
US20070199077A1 (en) * 2006-02-22 2007-08-23 Czuchry Andrew J Secure communication system
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
EP1881676B1 (en) * 2006-07-20 2008-12-17 Alcatel Lucent Distributed presence management in peer-to-peer networks
JP5086347B2 (ja) * 2006-08-10 2012-11-28 トムソン ライセンシング 分散型ネットワークにおける情報拡散のための方法
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
KR101030095B1 (ko) * 2009-02-03 2011-04-20 주식회사 웰게이트 무선 피어투피어 네트워크에서의 멀티미디어 데이터 전송을위한 분산형 피어 발견 방법
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
EP2434832A2 (en) 2009-04-15 2012-03-28 Itec Tokyo Corporation Communication method in an ieee 802.11 wireless lan environment
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US20120005274A1 (en) * 2010-07-02 2012-01-05 Electronics And Telecommunications Research Institute System and method for offering cloud computing service
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9137189B2 (en) * 2011-03-24 2015-09-15 Red Hat, Inc. Providing distributed dynamic routing using a logical broker
US9021131B2 (en) 2011-03-24 2015-04-28 Red Hat, Inc. Identifying linked message brokers in a dynamic routing network
US9313159B2 (en) 2011-03-24 2016-04-12 Red Hat, Inc. Routing messages exclusively to eligible consumers in a dynamic routing network
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9432218B2 (en) 2011-07-28 2016-08-30 Red Hat, Inc. Secure message delivery to a transient recipient in a routed network
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
CN103294555A (zh) * 2012-03-05 2013-09-11 联想(北京)有限公司 一种获得硬件资源的方法及电子设备
US8811950B2 (en) * 2012-03-30 2014-08-19 Qualcomm Incorporated Methods and apparatus for controlling devices with no or limited WWAN capability in peer to peer communication
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
KR20140098606A (ko) * 2013-01-31 2014-08-08 한국전자통신연구원 발행-구독형 통신 미들웨어를 이용한 노드 탐색 시스템 및 노드 탐색 방법
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US8769610B1 (en) * 2013-10-31 2014-07-01 Eventure Interactive, Inc. Distance-modified security and content sharing
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945471A (en) * 1981-04-01 1990-07-31 Teradata Corporation Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
JPS6056799A (ja) * 1983-09-08 1985-04-02 本田技研工業株式会社 重量物積載治具
CA1260151A (en) 1985-06-11 1989-09-26 Frank D. Bartocci Propagation of network queries through superior- subordinate and peer-peer data distribution relationships
GB2345157B (en) * 1998-12-23 2003-06-18 Ibm Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
US5826269A (en) * 1995-06-21 1998-10-20 Microsoft Corporation Electronic mail interface for a network server
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US5873084A (en) 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5819032A (en) * 1996-05-15 1998-10-06 Microsoft Corporation Electronic magazine which is distributed electronically from a publisher to multiple subscribers
US5970231A (en) * 1996-11-27 1999-10-19 Pen Industries, Inc. Electronic newspaper and electronic publishing medium
US6446116B1 (en) * 1997-06-30 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic loading of a transport mechanism in a multipoint data delivery system
US6216132B1 (en) * 1997-11-20 2001-04-10 International Business Machines Corporation Method and system for matching consumers to events
US6324587B1 (en) * 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6636886B1 (en) * 1998-05-15 2003-10-21 E.Piphany, Inc. Publish-subscribe architecture using information objects in a computer network
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6228022B1 (en) 1998-10-28 2001-05-08 Sdgi Holdings, Inc. Methods and instruments for spinal surgery
US6829770B1 (en) * 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
GB2354847A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscription points for customised message processing
US6470189B1 (en) * 1999-09-29 2002-10-22 Motorola, Inc. Method and apparatus in a wireless transceiver for seeking and transferring information available from a network server
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US7114003B2 (en) * 2000-10-18 2006-09-26 Nortel Networks Limited Content networks

Also Published As

Publication number Publication date
ATE315871T1 (de) 2006-02-15
DE60208659T2 (de) 2006-08-24
CN1489857A (zh) 2004-04-14
US7783762B2 (en) 2010-08-24
US20070014302A1 (en) 2007-01-18
EP1386471B1 (en) 2006-01-11
JP3851275B2 (ja) 2006-11-29
CN100417158C (zh) 2008-09-03
TWI222287B (en) 2004-10-11
WO2002091712A1 (en) 2002-11-14
KR100613053B1 (ko) 2006-08-16
EP1386471A1 (en) 2004-02-04
DE60208659D1 (de) 2006-04-06
JP2004532471A (ja) 2004-10-21
US20020165948A1 (en) 2002-11-07

Similar Documents

Publication Publication Date Title
KR100613053B1 (ko) 분산컴퓨터망을 위한 확장성있는 자원 발견 및 재구성
JP3956365B2 (ja) 分散コンピュータ・ネットワーク内の資源要求に応答するシステムおよび方法
US7941488B2 (en) Authorizing message publication to a group of subscribing clients via a publish/subscribe service
US6182224B1 (en) Enhanced network services using a subnetwork of communicating processors
US20030174648A1 (en) Content delivery network by-pass system
US7373394B1 (en) Method and apparatus for multicast cloud with integrated multicast and unicast channel routing in a content distribution network
US20020165815A1 (en) Online marketplace with anonymous communication
US7149807B1 (en) Control and communication infrastructure (CCI) for selecting a transport mechanism to transport data to one or more servers in a content delivery network based on the size of the data, together with frequency and loss tolerance with respect to transport of the data
JP2006523905A (ja) パブリッシュ/サブスクライブ・メッセージングのためのシステム及び方法
KR20010045237A (ko) 인터넷 멀티캐스트 응용에서의 그룹 멤버쉽 관리방법
Ding et al. Peer-to-peer networks for content sharing
EP2223501B1 (en) Publish/subscribe networks
US7246148B1 (en) Enhanced network services using a subnetwork of communicating processors
JP2010505196A (ja) 効率的に拡張可能なコンピューティングのための複数のピアグループ
EP1719326B1 (en) Method for improving peer to peer network communication
Camarillo Peer-to-peer (p2p) architecture: definition, taxonomies, examples, and applicability
US6917966B1 (en) Enhanced network services using a subnetwork of communicating processors
Chen et al. Java mobile agents on project JXTA peer-to-peer platform
KR101984007B1 (ko) P2p 네트워크 기반 콘텐트 전달 서비스에서 사용자에게 다른 사용자가 수신하고 있는 콘텐트 정보를 제공하는 방법
Junginger A high-performance messaging system for peer-to-peer networks
Junginger et al. Peer‐To‐Peer Middleware
US20050030892A1 (en) System for providing network load distribution
x Thoth UPSYCLE: Ubiquitous Publish-Subscribe Infrastructure for Collaboration on Edge Networks
Chen et al. Analyzers for the Identification of Instant Messaging and Peer-to-Peer Traffic
Sit et al. The Future of the Decentralized Model of P2P File-Sharing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100429

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee