KR20060044311A - 분산 컴퓨팅 환경 - Google Patents

분산 컴퓨팅 환경 Download PDF

Info

Publication number
KR20060044311A
KR20060044311A KR1020050020598A KR20050020598A KR20060044311A KR 20060044311 A KR20060044311 A KR 20060044311A KR 1020050020598 A KR1020050020598 A KR 1020050020598A KR 20050020598 A KR20050020598 A KR 20050020598A KR 20060044311 A KR20060044311 A KR 20060044311A
Authority
KR
South Korea
Prior art keywords
node
nodes
message
match
computing environment
Prior art date
Application number
KR1020050020598A
Other languages
English (en)
Other versions
KR100999278B1 (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 KR20060044311A publication Critical patent/KR20060044311A/ko
Application granted granted Critical
Publication of KR100999278B1 publication Critical patent/KR100999278B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • AHUMAN NECESSITIES
    • A45HAND OR TRAVELLING ARTICLES
    • A45DHAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
    • A45D2/00Hair-curling or hair-waving appliances ; Appliances for hair dressing treatment not otherwise provided for
    • A45D2/48Eyelash curlers; Eyebrow curlers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • AHUMAN NECESSITIES
    • A45HAND OR TRAVELLING ARTICLES
    • A45DHAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
    • A45D2/00Hair-curling or hair-waving appliances ; Appliances for hair dressing treatment not otherwise provided for
    • A45D2/02Hair winders or hair curlers for use substantially perpendicular to the scalp, i.e. steep-curlers
    • A45D2002/025Hair winders or hair curlers for use substantially perpendicular to the scalp, i.e. steep-curlers lengthwise expandable, collapsible or adjustable, e.g. telescopic
    • AHUMAN NECESSITIES
    • A45HAND OR TRAVELLING ARTICLES
    • A45DHAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
    • A45D2200/00Details not otherwise provided for in A45D
    • A45D2200/15Temperature
    • A45D2200/155Heating or cooling means, i.e. for storing or applying cosmetic products at a predetermined temperature
    • A45D2200/157Heating means for mascara applicators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

동적 분산 컴퓨팅 환경 내의 컴퓨팅 엔티티는 더 이상의 매치가 불가능할 때까지 매치되도록 에지에 의해 링크되는 그래프 내의 노드처럼 취급된다. 새로운 노드는 분산 컴퓨팅 환경에 동적으로 도입될 수 있으며, 본 발명의 다양한 실시예는 분산 컴퓨팅 환경 내의 데드락을 억제하면서 노드들을 계속 매치시킨다.
동적 분산 컴퓨팅 환경, 컴퓨팅 엔티티, 데드락, 노드, 메인프레임

Description

분산 컴퓨팅 환경{NODE MATCHING IN A DYNAMIC, DECENTRALIZED ENVIRONMENT}
도 1은 메인프레임 컴퓨터(104) 및 복수의 노드를 포함하는 종래 네트워크를 도시하는 블럭도.
도 2는 본 발명의 일 실시예를 따라, 통신을 위해 다른 노드들과의 매치를 시도하는 복수의 노드를 도시하는 블럭도.
도 3a는 본 발명의 일 실시예에 따른, 매치 프로세스 내의 통신가능 노드들을 도시하는 블럭도.
도 3b는 본 발명의 일 실시예에 따라, 매치를 결정하기 위해 서로 통신하는 3개의 노드 및 초청자를 도시하는 프로토콜 다이어그램.
도 4a-4m은 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 방법을 나타내는 순서도.
<도면의 주오 부분에 대한 부호의 설명>
104: 메인프레임 컴퓨터
102A: 노드
308: 초청자
302: 노드A
304B: 불확실 긍정
본 발명은 일반적으로 다른 것과 결합되게 되는 활동에 관한 것이며, 특히, 프로틴 바인딩(protein bindings), 사회 네트워크, 또는 동적 분산 컴퓨팅 환경 내의 통신가능 노드를 매치시키기 위한 방법에 관한 것이다.
집중화된 컴퓨팅 아키텍처는, 1950년대에 메인프레임 컴퓨터에 의해 시작되는 바와 같이 모든 컴퓨터가 단일 컴퓨터 시스템에 의해 완전하게 행해질 수 있다는 가정을 유지하고 있다. 이 아키텍처는 모든 리소스가 컴퓨터 시스템에 국부적이라고 가정한다. 모든 리소스는 단일 컴퓨터 시스템 내에서 어드레싱되고, 발견되고, 로드되고, 사용되고, 자유로워진다(또한 모든 리소스가 단일 컴퓨터 시스템 내에 존재한다고 가정됨). 그러나, 현재 및 예측가능한 미래에, 리소스 -그리고, 인터넷의 대중화에 따른, 사용자 데이터- 는, 주로 상이한 트러스트 도메인들에 있으며 각자의 보안 정책을 갖는 다수의 컴퓨터 시스템에 산재된다. 과거의 집중화된 컴퓨팅 아키텍처는 오늘날에 계속되기에는 많은 문제점이 있다. 도 1은 이러한 문제점의 일부를 보다 상세하게 도시한다.
메인프레임 컴퓨터(104)는 계산 집약적인 태스크를 다루도록 설계된다. 도 1을 보자. 메인프레임 컴퓨터(104)와 같은 메인프레임 컴퓨터는 터미널에 의해 이 컴퓨터에 접속된 많은 사용자를 동시에 지원할 수 있는 능력에 의해 특성화된다. 이 명칭은 본래 이러한 컴퓨터들의 프로세싱 유닛을 하우징하는 데에 사용되었던 케비넷인 "메인 프레임(main frame)에서 유래했다. 다수의 노드(102A-102D)가 메인프레임 컴퓨터(104)에 연결된다. 노드는 클라이언트 컴퓨터(102A-C), 공유 프린터(102D), 또는 네트워크(100)에 접속된 다른 디바이스 등의 디바이스이며, 다른 네트워크 디바이스와 통신할 수 있다. 노드(102A)가 노드(102D)와 통신하길 원하고, 노드(102B)가 노드(102C)와 통신하길 원한다고 가정하자. 노드(102A-102D)가 모두 메인프레임 컴퓨터(104)에게 국부적이므로, 메인프레임 컴퓨터(104)는 이 노드(102A-102D)들에 대한 글로벌 뷰(global view)를 가지며, 이 노드들 중 어느 것이 통신할 수 있는지를 알 수 있다. 예를 들어, 노드(102A)와 노드(102D) 모두가 통신할 수 있으면, 메인프레임 컴퓨터(104)는 노드(102A)와 노드(102D) 간에 통신이 일어나도록 한다. 유사하게, 노드(102B)와 노드(102C)가 통신할 수 있으면, 메인프레임 컴퓨터(104)는 노드(102B)와 노드(102C)가 서로 통신하도록 한다. 메인프레임 컴퓨터(104)의 집중화된 컴퓨팅 아키텍처는 다른 노드와 통신할 수 있는 노드를 매치시키는 것에 대한 전체 문제점이 한번에 보이도록 하며, 통신가능 노드 간의 매치가 즉시 발견될 수 있다.
메인프레임 컴퓨터(104)가 네트워크(100)에서 없어지는 시나리오를 고려해보자. 이 경우에, 통신을 위해 한 노드를 또다른 노드에 매치시키는 문제점은 극복하기 힘들어 보인다. 노드(102A-102D)와 같은 노드는 자신의 직접적인 이웃만 볼 것이다. 예를 들어, 노드(102A)는 노드(102C)를 제외한 노드(102B) 또는 노드(102A)만을 볼 것이다. 노드(102B)가 조기에 통신을 위해 노드(102D)에 커미트(commit)하고, 대응적으로 노드(102C)가 조기에 통신을 위해 노드(102D)에 커미트 했다고 가정하자. 이러한 조기의 커미트(commit) 때문에, 노드(102B, 102C)는 서로를 통신에 대한 가능성 있는 매치로 보지 않는다. 노드(102A)가 노드(102B)에 커미트하고 노드(102D)가 노드(102C)에 커미트하는 대신, 노드(102A)가 통신을 위해 노드(102D)와 접속하도록 진행되는 것을 가정하자. 2개의 프로그램, 디바이스, 또는 노드[노드(102B, 102C) 등]가 진행 전에 각각 노드(102A, 102D)로부터의 응답을 기다릴 때 발생하는 상황인 교착 상태(deadly embrace) 또는 데드락(deadlock)이 일어난다. 노드(102A, 102D)가 통신을 위해 이미 서로 접속됐기 때문에, 노드(102B, 102C)에 불리하게도 노드(102A, 102D)로부터는 당연히 아무 응답도 수신되지 않을 것이다.
집중화된 컴퓨팅 아키텍처는, 상술한 바와 같이 사용자 데이터가 다수의 컴퓨터 시스템에 산재되 있는 인터넷의 분산 아키텍처가 성장하는 것을 방해한다. 또다른 문제점은 인터넷의 분산 아키텍처의 동적 성질과 관련있다. 추가의 노드들이 존재하여 네트워크(100)를 동적으로 성장시킬 수 있다. 이는, 노드의 동적 도입이 있을 때, 네트워크(100)가 이용가능한 노드를 다른 노드에 매치시켜 2개의 노드 간에 통신이 발생할 수 있게 하는 능력을 복잡하게 한다. 데드락을 방지하기 위해서는, 매치될 수 있는 어떠한 노드라도 매치되어야 한다.
즉, 집중화된 컴퓨팅 아키텍처는 분산화된 인터넷과 같은 대규모 컴퓨터 시스템에 대해서 잘 동작하지 못한다. 노드들이 통신을 할 수 있고 또한 통신하길 원하지만, 통신할 다른 노드를 찾지 못하면 데드락이 발생할 수 있다. 동적 분산 컴퓨팅 환경에서 적절히 동작할 수 있고, 통신이 행해질 수 있도록 동적 분산 노드 들을 매칭하는 것을 돕는 프로토콜 없으면, 결국 사용자는 네트워크(100)가 원하는 컴퓨팅 환경을 제공할 것임을 더이상 신뢰할 수 없으며, 따라서 시장에서 네트워크(100)에 대한 수요가 시간이 지날수록 감소할 것이다. 따라서, 상술된 문제점을 방지하거나 감소시키면서, 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 위한 매치 방법 및 시스템이 필요하다.
이하에서, "노드"란 용어는 한 엔티티가 또다른 엔티티와 영구적으로 또는 임시적으로 결합되게 하는 컴퓨터 장비, 웹 서비스, 프로틴 바인딩, 사회 네트워크 상의 포인트들을 포함하는 것을 의미한다. 본 발명에 따르면, 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 시스템, 프로토콜 및 컴퓨터-판독가능 매체가 제공된다. 본 발명의 시스템 형태는 다수의 노드를 포함하는 분산 컴퓨팅 환경을 포함한다. 다수의 노드 내의 각각의 노드는 상기 다수의 노드 내의 다른 노드들의 이웃 노드이다. 각각의 노드는 이웃 노드의 매치 가능성을 쿼리할 수 있다. 제1 노드가 제2 노드의 매치 가능성을 쿼리하고 제2 노드가 응답으로 제1 노드의 가능성을 쿼리할 때 매치가 형성된다.
본 발명의 다른 양상에 따르면, 본 발명의 프로토콜 형태는 동적 분산 컴퓨팅 환경 내의 통신가능 노드를 매치시키기 위한 컴퓨터-구현 프로토콜을 포함한다. 이 프로토콜은 매치를 찾기 위해 노드들을 통신에 초대하는 것을 포함한다. 이 프로토콜은 이용가능성 메시지를 송신함으로써 노드의 매칭 가능성을 밝히는 것을 더 포함한다. 프로토콜은, 또다른 이용가능성 메시지를 제1 노드로부터 제2 노드에 송신할 때, 제2 노드가 이용가능성 메시지 및 긍정 메시지(yes message)로 이루어진 그룹으로부터 선택된 답으로 응답하는 경우, 매치를 형성하는 것을 더 포함한다.
본 발명의 다른 양상에 따르면, 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 방법을 수행하는 컴퓨터-실행가능 명령을 갖는 컴퓨터-판독가능 매체 및 프로토콜은 매치를 찾기 위해 노드들을 통신에 초청하는 것을 포함한다. 프로토콜은 이용가능성 메시지를 송신함으로써 노드의 매치 가능성을 밝히는 것을 더 포함한다. 프로토콜은, 또한 또다른 이용가능성 메시지를 제1 노드로부터 제2 노드에 송신할 때, 제2 노드가 이용가능성 메시지 및 긍정 메시지로 이루어진 그룹으로부터 선택된 답으로 응답하는 경우, 매치를 형성하는 것을 더 포함한다.
상술한 것과 같은 본 발명의 양상들과 많은 의도된 이점은 첨부된 도면과 관련하여, 다음의 상세한 설명을 참조함으로써 보다 잘 이해될 수 있을 것이다.
본 발명의 다양한 실시예는 동적 분산 컴퓨팅 환경 내의 컴퓨팅 엔티티를 다루며, 이러한 컴퓨팅 엔티티는 더이상의 매치가 불가능할 때까지 노드를 매치시키기 위해 에지에 의해 링크되는 그래프 내의 노드들이었다. 새로운 노드는 분산 컴퓨팅 환경에 동적으로 도입될 수 있으며, 본 발명의 다양한 실시예는 분산 컴퓨팅 환경에서 데드락을 억제하면서 노드들을 계속 매치시킨다. 본 발명의 다양한 실시예는 이웃 노드를 조사하기 위해 각각의 노드에 의해 사용되는 프로토콜을 제공하여 잠재적 매치가 가능한지의 여부를 판정한다. 본 발명의 다양한 실시예에서는, 각각의 노드가 자신이 매치할 수 있는 노드를 찾아내는 잠재능력을 자체적으로 갖고 있기 때문에, 종래의 집중화된 컴퓨팅 아키텍처가 사용될 필요가 없으며, 따라서 대표적으로 인터넷을 예로 들수있는 분산 컴퓨팅 아키텍처의 발전을 촉진한다.
도 2에 동적 분산 컴퓨팅 환경(200)이 도시된다. 동적 분산 컴퓨팅 환경(200)은 다수의 노드(200A-200I)를 포함한다. 각각의 노드는 클라이언트 컴퓨터, 서버, 공유 프린터, 또는 다른 노드들과 통신할 수 있는 기타 컴퓨팅 디바이스 등의 디바이스이다. 노드(200A)는 양 말단에 화살표 머리를 가진 선으로 도시된 에지에 의해 노드(200D)에 링크된다. 노드(200A)는 노드(200A)를 가리키는 선의 한쪽 말단의 화살표 머리와 노드(200B)를 가리키는 다른쪽 말단의 또다른 화살표 머리로 도시된 또다른 에지에 의해 노드(200B)에 링크된다. 다른 에지는 노드(200B)와 노드(200C)를 링크시키고, 여기서 선 말단의 화살표 머리는 양 노드(200B, 200C)를 가리킨다. 노드(200C)가 동적 분산 컴퓨팅 환경(200)에 도입된 새로운 노드임을 강조하기 위하여, 노드(200C)는 점선을 사용해 시각적으로 표시되었다. "동적"이란 용어는, 하나의 노드를, 아주 가까운 시점의 과거에는 그 노드를 포함하지 않았던 동적 분산 컴퓨팅 환경에 도입하는 것을 의미한다. 노드(200D)는 선 상의 화살표 머리가 노드(200D, 200E)를 가리키는 에지에 의해 노드(200E)에 링크된다. 노드(200E)는 노드(200E)를 가리키는 한쪽 말단의 하나의 화살표 머리와 노드(200F)를 가리키는 나머지 말단에의 다른 화살표 머리를 갖는 또다른 에지에 의해 노드(200F)에 링크된다. 노드(200F, 200H)를 가리키는 선 상의 화살표 머리로 시각적으로 도시된 에지는 노드(200F, 200H)에 링크된다. 노드(200E)는 말단에 화살 표 머리는 갖는 선으로 나타내진 또다른 에지에 의해 노드(200G)를 링크한다. 노드(200G, 200I)는 에지를 정의하는 말단에 화살표 머리를 갖는 선에 의해 링크된다.
노드(200A-200H) 및 그들의 에지는 0개 이상의 노드(200A-200I)와, 노드 쌍을 접속시키는 0개 이상의 에지로 이루어진 그래프를 형성한다. 2개의 자유로운 노드를 접속시키는 에지가 있고, 그 2개의 자유로운 노드가 서로를 커미트하고자 하면, 매치가 일어난다. 동적 분산 컴퓨팅 환경(200)에서 데드락을 억제하는 것을 확실히 하기 위해, 2개의 자유로운 노드를 서로 링크시킬 수 있는 에지가 더이상 없을 때까지 통신을 원하는 각각의 자유로운 노드를 매치시킨다. 노드(200C) 및 다른 노드들이 동적 분산 컴퓨팅 환경(200) 내에 동적으로 나타날 수 있기 때문에, 매치 프로세스는 끝이 없게 된다. 노드(200C)와 같은 새롭게 도입된 노드가 이미 노드(200A)에 매치된 노드(200B)와 같은 또다른 노드에 링크되면, 노드(200C)에 대한 다른 매치가 불가능할 수 있다. 그러나, 노드(200C)와 같은 새롭게 도입된 노드가 노드(200C)와 통신하길 원하는 자유로운 노드에게 이웃으로서 나타나면, 새로운 매치가 가능할 수 있다.
동적 분산 컴퓨팅 환경(200) 내의 노드들을 매치시키는데 대한 하나의 해결과제는, 각각의 노드가 에지에 의해 자신에게 링크되는 바로 옆의 이웃들에 대한 지식을 갖는 것이다. 예를 들어, 노드(200A)는 노드(200D) 및 노드(200B)에 대해서는 알고 있지만, 노드(200E)에 대해서는 모른다. 노드(200B, 200D)는 노드(200A)에 대해 잠재적 매치이다. 노드(200D)가 노드(200E)에 매치되어 있을 수 있 고, 노드(200B)가 노드(200C)에 매치되어 있을 수 있다는 것을 모르므로, 노드(200B, 200D)는 노드(200A)와 통신을 위해 매치될 수 없게 된다. 본 발명의 다양한 실시예는 동적 분산 컴퓨팅 환경(200) 내에서 데드락을 방지하거나 줄이면서, 노드가 다른 노드에 접속할 수 있고 정보를 교환할 수 있도록 설계된 규칙 또는 표준의 세트를 제공한다. 각각의 노드(200A-200I)는 잠재적으로 동시에 실행되며 같은 프로토콜을 작동시킨다. 매치 방법은 이웃과 결합하기 위한 노드에 의한 결정으로 시작한다. 본 발명의 다양한 실시예는 노드가 매치 가능성이 있는지를 조사하기 위해 이웃 노드와 대화를 시작할 수 있게 한다.
노드(200A)는 노드(200D)와 매치하기 위해 커미트하지만, 노드(200D)는 이미 노드(200E)와 매치됐기 때문에 노드(200A)에 커미트할 수 없는 상황을 고려해보자. 동시에, 노드(200B)는 노드(200C)와 매치하기 위해 커미트하지만, 노드(200C)는 이미 또다른 노드(도시되지 않음)와 매치됐다. 즉, 이는 노드(200A)와 노드(200B)가 에지에 의해 서로 인접한 2개의 노드이지만 두 노드(200A, 200B)에 의한 조기의 커미트 때문에 매치될 수 없는 상황이다. 따라서, 최대 매치는 불가능하다. 본 발명의 다양한 실시예는 이러한 상황을 억제한다. 본 발명의 다양한 실시예는 노드들을 매치하기 위해 그래프를 잠글 필요가 없다. 이는 노드(200C)와 같은 새로운 노드가 동적 분산 컴퓨팅 환경(200)으로 도입되도록 한다.
본 발명의 다양한 실시예에 의해 사용되어 노드들이 매치를 형성하기 위해 협상할 수 있게 하는 프로토콜의 설명을 단순화하기 위해, 단지 3개의 노드(302-306)만을 네트워크(300a)에 도시한다. 노드(302-306)중 2개가 통신을 위해 서로 커미트할 때 매치가 발생한다. 노드(302)는 2개의 포트(302Z, 302X)를 포함하며, 그중 하나만을 통신에 이용할 수 있다. 수학적으로, 노드(302Z)는 문자 Z로 표시되고, 노드(302X)는 문자 X로 표시된다. 식 "Z+X"는 포트(Z, X) 중 오직 하나의 포트만이 노드(302)에서 통신할 수 있음을 표시한다. 노드(304)는 포트(304
Figure 112005013039735-PAT00001
) 및 포트(304
Figure 112005013039735-PAT00002
)를 포함한다. 노드(304)는 포트(304
Figure 112005013039735-PAT00003
, 304
Figure 112005013039735-PAT00004
) 중 오직 하나를 통해서만 다른 노드와 매치할 수 있다. 수학적으로, 포트(304
Figure 112005013039735-PAT00005
)는 문자
Figure 112005013039735-PAT00006
로 표시되고, 포트(304
Figure 112005013039735-PAT00007
)는 문자
Figure 112005013039735-PAT00008
로 표시된다. 수학식 "
Figure 112005013039735-PAT00009
+
Figure 112005013039735-PAT00010
"는 포트(
Figure 112005013039735-PAT00011
,
Figure 112005013039735-PAT00012
) 중 오직 하나의 포트만이 노드(304)로부터의 통신 및 매치가 가능함을 표시한다. 노드(306)는 포트(306Y, 306
Figure 112005013039735-PAT00013
)를 포함한다. 수학적으로, 포트(306Y)는 문자 Y로 표시되고, 포트(306
Figure 112005013039735-PAT00014
)는 문자
Figure 112005013039735-PAT00015
로 표시된다. 식 "Y+
Figure 112005013039735-PAT00016
"는 포트(Y,
Figure 112005013039735-PAT00017
)중 오직 하나의 포트만이 노드(306)에서 통신 및 매치에 이용할 수 있음을 표시한다.
각각의 노드(302-306)가 자신의 이웃들 중 어느 것이 매치에 이용될 수 있는지를 결정해야 한다면, 문제점은 해결불가능하게 보인다. 노드(302)의 포트(302Z)와 노드(306)의 포트(306
Figure 112005013039735-PAT00018
)를 접속시키는 에지(말단에 화살표 머리를 갖는 선으로 도시됨)가 있다. 노드(302)의 포트(302X)와 노드(304)의 포트(304
Figure 112005013039735-PAT00019
)를 링크하기 위한 또다른 에지가 존재한다(에지는 포트(302X, 304
Figure 112005013039735-PAT00020
)를 가리키는 화살표 머리를 가진 선임). 노드(304)의 포트(304
Figure 112005013039735-PAT00021
)와 노드(306)의 포트(306Y)를 링크하기 위한 또다른 에지(말단에 화살표 머리를 가진 또다른 선)가 존재한다. 엄밀하게, 노드(302)가 포트(302Z)를 통해 정보를 입력할 수 있고, 노드(306)가 포트(306
Figure 112005013039735-PAT00022
)를 통 해 정보를 송신할 수 있으므로, 이러한 에지는 포트(302Z)와 포트(306
Figure 112005013039735-PAT00023
) 간의 잠재적 리액션이 있음을 나타낸다. 유사하게, 포트(302X, 304
Figure 112005013039735-PAT00024
)를 통한 노드(302)와 노드(304) 간의 잠재적 리액션이 있다. 포트(302X)는 포트(304
Figure 112005013039735-PAT00025
)에 의해 송신될 수 있는 정보를 입력할 수 있다. 포트(304
Figure 112005013039735-PAT00026
)와 포트(306Y)를 통한 노드(304)와 노드(306) 간의 또다른 잠재적 리액션이 있다. 정보는 포트(306Y)를 통해 입력되고, 포트(304
Figure 112005013039735-PAT00027
)에 의해 출력될 수 있다.
여기에서, 항
Figure 112005013039735-PAT00028
는 노드(304)의 포트(304
Figure 112005013039735-PAT00029
)를 나타내고; 마침표 "."는 포트(304
Figure 112005013039735-PAT00030
)가 자신의 동작을 완료했을 때 프로세스 P가 계속됨을 나타내며; 수직 바 "|"는 병렬로 실행하는 동작을 나타내고; 항 X는 포트(302X)를 나타내며; 항 R은 포트(302X)에서 작동중인 프로세스의 종료로부터 계속 실행하는 프로세스를 나타낸다. π연산식 "
Figure 112005013039735-PAT00031
.P|X.R"을 고려해보자. 이 π연산식은 제1 프로세스가 정보를 포트 X 상에 출력하고 후에 프로세스 P에 의해 계속됨을 표시한다. 제1 프로세스 "
Figure 112005013039735-PAT00032
.P"는 제2 프로세스 "X.R"와 병렬로 실행되는데, 여기서 제2 프로세스는 채널 X 상의 정보를 수신한 후 프로세스 R을 실행하는 것이다. 교착상태 또는 데드락을 방지하기 위해, 상기 π 연산식은 제2 π 연산식 "P|R"으로 변환되어야 한다. 변환되지 않으면, 교착상태 또는 데드락이 발생할 수 있다. 즉, 제1 π 연산식에서 수직바의 양쪽에 있는 2개의 식은, 제1 π 연산식은 제2 π 연산식으로 계속되도록 반응할 수 있어야 한다. 그들이 반응할 수 없으면, 시스템이 정상적으로 작동하지 않아서, 상술한 바와 같이, 원하지 않는 데드락이 일어난다.
본 발명의 다양한 실시예는 매치가 일어나게 하기 위해 해결법이 노드들(302-306)간에서 수렵되게 한다. 본 발명의 다양한 실시예는 식 "Z+X", "
Figure 112005013039735-PAT00033
+
Figure 112005013039735-PAT00034
" 및 "Y+Z"에 의해 수학적으로 표시된 상호 배타적인 액션과 그들의 통신이 상호 배타적으로 유지되도록 한다. 본 발명의 다양한 실시예는 한 노드 상의 포트가 다른 노드 상의 호환적 포트에 커미트하려고 할 때까지 한 노드가 또다른 노드에 커미트하는 것을 억제한다. 이러한 커미트가 불가능하면, 본 발명의 다양한 실시예는 매치가 발생하지 못하게 한다. 즉, 본 발명의 다양한 실시예는 통신이 노드 상의 또다른 배타적 통신에 의해 선취되지 않는 한 노드들 간의 통신이 발생하도록 한다. 본 발명의 각각의 실시예는 각각의 노드 상에서 균형적으로 작동된다. 추가적으로, 노드들 간의 통신은 노드의 이웃과 비동기적으로 발생한다. "비동기적"이란 용어는 노드가 통신을 출력하고, 노드가 이러한 통신이 성공적이란 응답을 수신할 때까지 차단 및 대기할 필요 없는 상황을 의미한다. 본 발명의 다양한 실시예에서 각각의 노드는 계속 통신한다. 설계의 단순함은 병행성을 강화시키고, 각각의 노드가 입력 통신을 조정하기 위한 독립적 능력을 가지도록 한다.
동적 분산 컴퓨팅 환경 내에서 통신가능 노드들을 매치하기 위한 프로토콜(300B)이 도 3b에 도시된다. 2개의 노드 간의 매치를 발견하기 위해 초청자(inviter)(308) 및 노드(302-306)는 프로트콜(300B)을 사용한다. 초청자(308)는 노드(302-306)가 다른 노드들과 통신할 수 있음을 밝히고, 노드(302-306)중 2개의 노드 간에 매치가 있는지를 조사하기 위해 노드(302-306)를 초청한다. 초청자(308)는 초청(308A)및 초청(308B)을 포함하는 초청(308-1)의 제1 세트를 송신한다. 초청(308A)은 노드(302)로 송신되고, 초청(308B)는 노드(304)로 송신된다. 초청(308A, 308B)은 노드(302, 304)의 어드레스를 포함하여, 노드(302, 304)가 서로 통신할 수 있도록 한다. 초청(308C, 308D)을 포함하는 또다른 초청(308-2) 세트는 노드(302, 306)로 각각 송신된다. 초청(308C, 308D)은 노드(302, 306)의 어드레스를 포함하여, 노드(302, 306)가 서로 통신할 수 있도록 한다. 다른 초청(308-3) 세트는 노드(304)로 송신되는 초청(308E) 및 노드(306)로 송신되는 초청(308F)을 포함한다. 초청(308E, 308F)은 노드(304, 306)가 서로 통신하여 잠재적 매치를 판정하도록 한다. 초청(308E, 308F)은 노드(304, 306)의 어드레스를 포함하여 노드(304, 306)가 서로를 발견하고 통신하여 잠재적 매치를 판정하도록 한다. 이러한 초청(308-1, 308-2, 308-3)은 프로토콜(300B)의 한 부분(310)을 형성하고, 이에 의하여 잠재적 통신가능 노드들은 잠재적 매치를 발견하기 위해 서로 통신하도록 초정된다.
프로토콜(300B)의 또다른 부분(312)은 노드(302-306)가 매치가능한 노드를 조사하도록 한다. 노드(302)는 노드(304)의 어드레스를 가진 이용가능성 메시지(302A)를 노드(304)에 송신하여, 노드(304)의 매치 가능성을 조사한다. 노드(304)도 또한 이용가능성 메시지(304A)를 노드(306)에 송신한다. 유사하게, 노드(302)의 어드레스를 알고 있는 노드(306)는 노드(302)에 이용가능성 메시지(306A)를 송신하여 노드(302)의 매치 가능성을 조사한다. 이용가능성 메시지(302A)에 응답하여, 노드(304)는 불확실 긍정(maybe) 메시지(304B)로 노드(302)에 응답하여, 자신이 잠재적으로 통신 가능함을 노드(302)가 알게한다. 노드(306)가 잠재적인 매치 로서 이용가능함을 확인시키기 위해, 불확실 긍정 메시지(304B)가 노드(306)에 의해 노드(304)에 보내진다. 유사하게, 노드(302)는 불확실 긍정 메시지(302B)를 노드(306)에 송신하여, 노드(302)가 잠재적 매치로서 이용가능함을 알린다. 따라서, 결론적으로, 프로트콜(300B)의 부분(312)은 노드가 이웃 노드들의 통신 가능성을 밝히도록 한다.
프로토콜(300B)의 또다른 부분(314)은 매치된 노드를 완성하고, 다른 노드를 거절한다. 또다시, 노드(302)는 노드(304)에 이용가능성 메시지(302C)를 송신하여, 노드(304)에게 노드(302)가 여전히 매치 가능함을 알린다. 노드(304)는 또한 노드(306)에 이용가능성 메시지(304C)를 송신한다. 동시에, 노드(306)는 또한 매치가능한 노드(304)에 이용가능성 메시지(306C)를 송신한다 (즉, 메시지(304C, 306C)는 에지의 양 말단에 화살표 머리를 가진 에지로 도시된 바와 같이 서로 교차함). 노드(304)는 노드(306)로부터의 이용가능성 메시지(306C)를 수신하여, 노드(306)가 불확실 긍정 메시지를 송신하지 않았음에도 불구하고 매치가 발생했음을 인식한다. 따라서, 노드(304)는 매치를 위한 잠재적 노드로서의 노드(302)를 거절하는 부정 메시지(no message; 304D)로 노드(302)에 응답한다. 따라서, 프로토콜(300B)의 부분(314)은 가능성 노드를 찾은 후, 2개의 노드가 매치를 형성하기 위해 서로에게 커미트하도록 한다 (노드(302)는 미래의 매치에 이용가능한 다수의 노드 내에 남아있는 것이 바람직함).
도 4a-4m은 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 방법(400)을 나타낸다. 명료하게 설명하기 위해, 다음의 방법(400)에 대한 설명은 동적 분산 컴퓨팅 환경(200)(도 2), 네트워크(300A)(도 3a), 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 프로토콜(300B)(도 3b)과 관련해 나타난 다양한 구성요소를 참조한다. 시작 블럭에서부터, 방법(400)은 연속 터미널("터미널 A")과 종료 터미널("터미널 B") 간에 정의된 방법 단계의 세트(402)로 진행된다. 방법 단계의 세트(402)는 초청자가 서로 통신할 수 있는 노드를 식별하고, 이 노드들 간의 통신을 초청함을 설명한다.
터미널 A(도 4b)에서부터, 방법(400)은 초청자(308)가 서로 통신할 수 있는 2개의 노드(302-306)를 식별하는 블럭(408)으로 진행한다(즉, 이는 노드의 그래프 내의 에지임). 블럭(408)으로부터의 방법(400)은 자신의 실행을 3개의 프로그램 경로, 즉 블럭(410, 416, 420)으로 동시에 분할할 수 있다. 블럭(410)에서, 각각의 노드는 어드레스를 가지며 초청자(308)에 의해 밝혀진다 (2개 노드의 2개 어드레스는 그래프 내의 2개 노드 간의 에지를 형성함). 초청자(308)는 제1 노드를 제2 노드와의 통신에 초청하여, 매치의 가능성을 검사한다. 블럭(412)을 보자. 방법(400)은 그후 초청이 2개 노드의 어드레스를 포함하는 에지를 포함하는 블럭(414)으로 진행한다. 방법(400)은 그후 종료 터미널 B로 진행한다. 동시에, 블럭(416)에서, 초청자(308)는 제2 노드를 제1 노드와의 통신에 초청하고, 매치 가능성을 검사한다. 초청은 2개 노드의 2개 어드레스를 포함하는 에지를 포함한다. 블럭(418)을 보자. 방법(400)은 그후 종료 터미널 B로 진행한다. 동시에, 블럭(420)에서, 식별될 수 있는 노드가 더 있는지를 판정하기 위한 테스트가 행해진다. 결정 블럭(420)에서 테스트의 답이 예이면, 방법(400)은 상술된 처리 단계가 반복 되는 블럭(408)으로 루프백(loop back)한다. 한편, 결정 블럭(402)에서 테스트의 답이 아니오이면, 방법(400)은 식별될 수 있는 노드가 더 있을 때까지 루프한다. 종료 터미널 B에서부터, 방법(400)은 연속 터미널("터미널 C")과 종료 터미널("터미널 D") 간에 정의된 방법 단계(404)의 세트로 진행한다. 방법 단계의 세트(404)는 초청자(308)에 의해 식별된 노드들이 매치를 찾기 위해 서로 통신하는 프로세스를 설명한다.
터미널 C에서부터(도 4c), 방법(400)은 제1 노드가 초청자(308)가 송신한 에지(2개 노드의 2개 어드레스로 형성됨)를 포함하는 초청을 수신하는 블럭(422)으로 진행한다. 다음으로, 결정 블럭(424)에서, 제1 노드가 이미 또다른 노드와 매치했는지를 판정하기 위한 테스트가 행해진다. 결정 블럭(424)에서 테스트의 답이 예이면, 방법(400)은 실행을 종료하는 또다른 연속 터미널("터미널 F")로 진행한다. 결정 블럭(424)에서 테스트의 답이 아니오이면, 방법(400)은 제1 노드가 이미 에지를 알고 있는지를 판정하기 위한 테스트가 행해지는 또다른 결정 블럭(426)으로 들어간다. 결정 블럭(426)에서 테스트의 답이 예이면, 방법(400)은 실행을 종료하는 터미널 F로 진행한다. 한편, 결정 블럭(426)에서 테스트의 답이 아니오이면, 방법(400)은 또다른 연속 터미널("터미널 C1")로 진행한다.
터미널 C1에서부터(도 4d), 방법(400)은 방법(400)이 제1 노드의 이웃 어레이(neighbor's array)의 길이(에지의 개수 포함)를 획득하는 블럭(428)으로 진행한다. 어레이의 사용은 여기에 오직 예시적인 목적으로만 설명된다. 임의의 적절한 데이터 구조가 사용될 수 있으며, 본 발명은 어레이의 사용에 한정을 두지 않는다. 다음으로, 블럭(430)에서, 그 길이는 가변 색인에 할당된다. 에지(2개 노드의 2개 어드레스로 형성됨)는 이웃 어레이(가변 색인으로 어드레싱됨) 내의 한 위치에 저장된다. 블럭(432)을 보자. 방법(400)은 그후 그 에지가 이웃 어레이 내의 단 하나의 에지인지를 판정하기 위한 테스트가 행해지는 결정 블럭(434)으로 진행한다. 결정 블럭(434)에서 테스트의 답이 아니오이면, 방법(400)은 실행이 종료되는 터미널 F로 계속된다. 반면, 결정 블럭(434)에서 테스트의 답이 예이면, 방법(400)은 제1 노드가 제2 노드에 이용가능성 메시지를 송신하여 제2 노드의 통신 가능성을 판정하도록하는 블럭(436)으로 진행한다. 방법(400)은 그후 종료 터미널 D로 진행한다.
터미널 D에서부터(도 4A), 방법(400)은 연속 터미널("터미널 E")과 종료 터미널인 터미널 F 간에 정의된 방법 단계의 세트(406)로 진행한다. 방법 단계의 세트(406)는 매치된 노드가 서로간의 통신은 확실하게 하고 다른 노드는 거절하는 프로세스를 설명한다.
터미널 E에서부터(도 4E), 방법(400)은 제2 노드가 제1 노드가 송신한 이용가능성 메시지를 수신 및 처리하는 블럭(438)으로 진행한다. 다음으로, 결정 블럭(440)에서, 제2 노드가 이미 또다른 노드와 매치되어 있는 지를 판정하기 위한 테스트가 행해진다. 결정 블럭(440)에서 테스트의 답이 아니오이면, 방법(400)은 또다른 연속 블럭("터미널 E2")으로 들어간다. 반면, 결정 블럭(440)에서 테스트의 답이 예이면, 제2 노드는 제1 노드에게 아니오라고 답한다. 블럭(442)을 보자. 방법(400)은, 그후 제1 노드가 제2 노드가 초청 또는 이용가능성 메시지가 송신되 었던 노드인지가 확실한지를 체크하는 블럭(444)으로 진행한다. 방법(400)은 그후 또다른 연속 터미널("터미널 E1")로 들어간다.
터미널 E1에서부터(도 4F), 방법(400)은 이웃 어레이로부터 에지(2개 노드의 2개 주소로 형성됨)를 제거하는 블럭(446)으로 진행한다. 다음으로, 블럭(448)에서, 제1 노드는 또다른 노드에 이용가능성 메시지를 발행할 준비를 한다. 이웃 어레이 내에 에지가 있는지 판정하기 위한 테스트가 행해진다. 결정 블럭(450)을 보자. 결정 블럭(450)에서 테스트의 답이 아니오이면, 방법(400)은 종료 터미널 F로 진행하여 실행을 종료시킨다. 반면, 결정 블럭(450)에서 테스트의 답이 예이면, 방법(400)은 제1 노드가 매치를 찾기 위해 통신할 새로운 노드를 고르는 블럭(452)으로 진행한다. 방법(400)은 그후 상술된 처리 단계가 반복되는 터미널 E로 계속된다.
터미널 E2에서부터(도 4g), 방법(400)은 제2 노드의 이웃 어레이에 에지가 있는지를 판정하기 위한 테스트가 행해지는 결정 블럭(454)으로 진행한다. 결정 블럭(454)에서 테스트의 답이 아니오이면, 방법(400)은 또다른 연속 터미널("터미널 E3")로 진행한다. 한편, 결정 블럭(454)에서 테스트의 답이 예이면, 방법(400)은 이것이 이용가능성 메시지가 송신된 에지인지를 판정하기 위한 또다른 테스트가 행해지는 또다른 결정 블럭(456)으로 진행한다. 결정 블럭(456)에서 테스트의 답이 아니오이면, 방법(400)은 터미널 E3로 진행한다. 반면, 결정 블럭(456)에서 테스트의 답이 예이면, 방법(400)은 제2 노드가 제1 노드가 초청 또는 이용가능성 메시지가 송신된 노드임이 확실한지를 체크하는 블럭(458)으로 진행한다. 방법(400) 은 또다른 연속 터미널("터미널 E4")로 계속된다.
터미널 E4에서부터(도 4h), 방법(400)은 제2 노드가 나타내는 상태가 참으로 설정되어, 제2 노드가 제1 노드에 매치됨을 나타내는 블럭(460)으로 진행한다. 다음으로, 블럭(462)에서, 제2 노드의 이웃 어레이의 컨텐츠는 제2 노드가 매치된 때에, 클리어된다. 방법(400)은 그후 실행이 종료되는 터미널 F로 진행한다.
터미널 E3에서부터, 방법(400)은 제2 노드가 이미 에지를 알고 있는지를 판정하기 위한 테스트가 행해지는 결정 블럭(464)로 진행된다. 결정 블럭(464)에서 테스트의 답이 아니오이면, 방법(400)은 또다른 연속 터미널("터미널 E6")로 진행한다. 반면, 결정 블럭(464)에서 테스트의 답이 예이면, 방법(400)은 제2 노드의 이웃 어레이의 길이(다수의 에지를 포함)를 획득한다. 블럭(466)을 보자. 다음으로, 블럭(468)에서, 그 길이는 가변 색인에 할당된다. 방법(400)은 그후 또다른 연속 터미널("터미널 E5")로 계속된다.
터미널 E5에서부터(도 4j), 방법(400)은 에지(2개 노드의 2개 어드레스로 형성됨)가 이웃 어레이(가변 색인으로 어드레싱됨) 내의 위치에 저장되는 블럭(470)으로 진행한다. 다음으로, 결정 블럭(472)에서, 이웃 어레이에 오직 이 에지만이 있는지를 판정하기 위한 테스트가 행해진다. 결정 블럭(472)에서 테스트의 답이 아니오이면, 방법(400)은 터미널 E6로 진행한다. 반면, 결정 블럭(472)에서 테스트의 답이 예이면, 제2 노드는 제1 노드에 예라고 응답한다. 블럭(474)을 보자. 방법(400)은 그 후 제1 노드가 제2 노드가 초청 또는 가능성 메시지를 수신하는 노드임이 확실한 지를 체크하는 블럭(476)으로 계속된다. 다음으로, 블럭(478)에서, 제1 노드가 나타내는 상태는 참으로 설정되어, 제1 노드가 제2 노드에 매치됨을 나타내게 된다. 방법(400)은 그후 또다른 연속 터미널("터미널 E7")로 진행한다.
터미널 E7에서부터(도 4k), 방법(400)은 제1 노드가 매치된 때에 제1 노드의 이웃 어레이의 컨텐츠가 클리어되는 블럭(480)으로 진행한다. 다음으로, 블럭(482)에서, 제2 노드는 제1 노드가 초청 또는 이용가능성 메시지를 수신한 노드임이 확실한지를 체크한다. 제2 노드가 나타내는 상태는 제2 노드가 제1 노드가 매치함을 나타내는 참으로 설정된다. 블럭(484)을 보자. 제2 노드가 매치될 때에 제2 노드의 이웃 어레이의 컨텐츠가 클리어된다. 블럭(486)을 보자. 방법(400)은 그후 실행을 종료하는 종료 터미널("터미널 F")로 계속된다.
터미널 E6에서부터(도 4l), 방법(400)은 제2 노드가 제1 노드에 불확실 긍정을 답하는 블럭(488)으로 진행한다. 다음으로, 블럭(490)에서, 제1 노드는 제2 노드가 초청 또는 이용가능성 메시지를 수신한 노드가 확실한지를 체크한다. 방법(400)은 그후 또다른 연속 터미널("터미널 E8")로 계속된다.
터미널 E8에서부터(도 4m), 방법(400)은 제1 노드가 이용가능성 메시지를 또다른 노드에 발행할 준비를 하는 블럭(492)으로 진행한다. 다음으로, 결정 블럭(494)에서, 이웃 어레이 내에 에지가 있는지를 판정하기 위한 테스트가 행해진다. 결정 블럭(494)에서 테스트의 답이 아니오이면, 방법(400)은 종료 터미널 F로 진행하여, 실행을 종료한다. 반면, 결정 블럭(494)에서 테스트의 답이 예이면, 제1 노드는 매치를 찾기 위해 통신할 새로운 노드를 고른다. 블럭(496)을 보자. 방법(400)은 그후 상술된 처리 단계를 반복하는 터미널 E로 계속된다.
본 발명의 바람직한 실시예가 도시되고 설명됐지만, 본 발명의 취지 및 영역을 벋어나지 않는 다양한 변형들이 만들어질 수 있음을 인식해야 한다.
본 발명에 따르면, 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 위한 효율적인 매치 방법 및 시스템이 제공된다.

Claims (15)

  1. 분산 컴퓨팅 환경으로서,
    다수의 노드를 포함하고,
    상기 다수의 노드 내의 각각의 노드는 상기 다수의 노드 내의 다른 노드들의 이웃 노드가 될 수 있고, 각각의 상기 노드는 이웃 노드의 매치 가능성을 쿼리할 수 있고, 상기 매치는 제1 노드가 제2 노드의 이용가능성을 쿼리하고 제2 노드가 제1 노드의 이용가능성을 쿼리할 때 형성되는 분산 컴퓨팅 환경.
  2. 제1항에 있어서, 상기 제1 노드가 상기 제2 노드의 이용가능성을 쿼리하고 상기 제2 노드가 긍정 메시지(yes message)로 응답할 때 또다른 매치가 형성되는 분산 컴퓨팅 환경.
  3. 제1항에 있어서, 상기 제1 노드가 상기 제2 노드의 이용가능성을 쿼리하고 상기 제2 노드가 부정 메시지(no message)로 응답할 때 매치가 형성되지 않는 분산 컴퓨팅 환경.
  4. 제1항에 있어서, 매치를 찾기 위해 상기 다수의 노드를 통신에 초청하는 초청자(inviter)를 더 포함하는 분산 컴퓨팅 환경.
  5. 제1항에 있어서, 상기 분산 컴퓨팅 환경에 동적으로 도입되는 새로운 노드를 더 포함하고, 상기 새로운 노드는 이웃 노드들의 매치 가능성을 쿼리할 수 있는 분산 컴퓨팅 환경.
  6. 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치시키기 위한 컴퓨터-구현된 프로토콜로서,
    매치를 찾기 위해 노드들을 통신에 초청하는 것;
    이용가능성 메시지를 송신함으로써 노드들의 매치 가능성을 밝히는 것; 및
    또다른 이용가능성 메시지를 제1 노드로부터 제2 노드에 송신할 때, 상기 제2 노드가 이용가능성 메시지 및 긍정 메시지로 이루어진 그룹으로부터 선택된 메시지를 송신하는 경우, 매치를 형성하는 것
    을 포함하는 컴퓨터-구현된 프로토콜.
  7. 제6항에 있어서, 상기 초청하는 것은 초청자에 의해 실행되고, 상기 초청자는 이웃하는 제1 노드 및 제2 노드를 식별하여, 상기 제1 노드 및 상기 제2 노드의 어드레스를 포함하는 초청을 상기 제1 노드에 송신하고, 상기 초청자는 또다른 초청을 상기 제2 노드에 더 송신하는 컴퓨터-구현된 프로토콜.
  8. 제7항에 있어서, 제1 노드가 이미 또다른 노드와 매치되어 있는 경우 상기 프로토콜을 종료시키고, 그렇지 않은 경우 상기 프로토콜이 상기 제2 노드에 이용 가능성 메시지를 송신하여 상기 제2 노드의 매치 가능성을 판정하는 것을 더 포함하는 컴퓨터-구현된 프로토콜.
  9. 제8항에 있어서, 상기 제2 노드가 상기 제1 노드로부터 송신된 상기 이용가능성 메시지를 수신하고, 상기 제2 노드가 이미 다른 노드와 매치되어 있는 경우에 상기 제2 노드는 상기 제1 노드에 부정 메시지로 답하고, 그렇지 않은 경우에 상기 제2 노드가 나타내는 상태는 참으로 설정되어 상기 제2 노드가 상기 제1 노드와 매치됨을 나타내는 것을 더 포함하는 컴퓨터-구현된 프로토콜.
  10. 제9항에 있어서, 상기 제1 노드가 나타내는 상태를 참으로 설정하여 상기 제1 노드가 상기 제2 노드에 매치됨을 나타내는 것을 더 포함하는 컴퓨터-구현된 프로토콜.
  11. 동적 분산 컴퓨팅 환경 내의 통신가능 노드들을 매치하기 위한 방법을 수행하는 컴퓨터-실행가능 명령를 갖는 컴퓨터-판독가능 매체로서,
    매치를 찾기 위해 노드들을 통신에 초청하는 것;
    이용가능성 메시지를 송신함으로써 노드들의 매치 가능성을 밝히는 것; 및
    또다른 이용가능성 메시지를 제1 노드로부터 제2 노드에 송신할 때, 상기 제2 노드가 이용가능성 메시지 및 긍정 메시지로 이루어진 그룹으로부터 선택된 메시지를 송신하는 경우, 매치를 형성하는 것
    을 포함하는 컴퓨터-판독가능 매체.
  12. 제11항에 있어서, 상기 초청하는 것은 초청자에 의해 실행되고, 상기 초청자는 이웃하는 제1 노드 및 제2 노드를 식별하여, 상기 제1 노드 및 상기 제2 노드의 어드레스를 포함하는 초청을 상기 제1 노드에 송신하고, 상기 초청자는 또다른 초청을 상기 제2 노드에 더 송신하는 컴퓨터-판독가능 매체.
  13. 제12항에 있어서, 제1 노드가 이미 또다른 노드와 매치되어 있는 경우 상기 프로토콜을 종료시키고, 그렇지 않은 경우 상기 프로토콜이 상기 제2 노드에 이용가능성 메시지를 송신하여 상기 제2 노드의 매치 가능성을 판정하는 것을 더 포함하는 컴퓨터-판독가능 매체.
  14. 제13항에 있어서, 상기 제2 노드가 상기 제1 노드로부터 송신된 상기 이용가능성 메시지를 수신하고, 상기 제2 노드가 이미 다른 노드와 매치되어 있는 경우에 상기 제2 노드는 상기 제1 노드에 부정 메시지로 답하고, 그렇지 않은 경우에 상기 제2 노드가 나타내는 상태는 참으로 설정되어 상기 제2 노드가 상기 제1 노드와 매치됨을 나타내는 것을 더 포함하는 컴퓨터-판독가능 매체.
  15. 제14항에 있어서, 상기 제1 노드가 나타내는 상태를 참으로 설정하여 상기 제1 노드가 상기 제2 노드에 매치됨을 나타내는 것을 더 포함하는 컴퓨터-판독가능 매체.
KR1020050020598A 2004-03-12 2005-03-11 동적 분산 환경에서의 노드 매칭 KR100999278B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/799,087 US7617300B2 (en) 2004-03-12 2004-03-12 Node matching in a dynamic, decentralized environment
US10/799,087 2004-03-12

Publications (2)

Publication Number Publication Date
KR20060044311A true KR20060044311A (ko) 2006-05-16
KR100999278B1 KR100999278B1 (ko) 2010-12-07

Family

ID=34861993

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050020598A KR100999278B1 (ko) 2004-03-12 2005-03-11 동적 분산 환경에서의 노드 매칭

Country Status (5)

Country Link
US (1) US7617300B2 (ko)
EP (1) EP1580660B1 (ko)
JP (1) JP2005310117A (ko)
KR (1) KR100999278B1 (ko)
CN (1) CN1671142B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312449B2 (en) * 2006-10-31 2012-11-13 International Business Machines Corporation Viral installation of operating systems in a network
KR100882442B1 (ko) 2007-05-14 2009-02-06 엔에이치엔(주) 단일 서버용 사용자 프로그램을 복수개의 컴퓨팅 노드에서병렬 실행하는 방법
US8046750B2 (en) * 2007-06-13 2011-10-25 Microsoft Corporation Disco: a simplified distributed computing library
EP3391609B1 (en) * 2015-12-19 2019-06-05 Telefonaktiebolaget LM Ericsson (publ) A method and apparatus for trust based authentication in sdn clustering
US20240314043A9 (en) * 2018-02-07 2024-09-19 4L Data Intelligence, Inc. Detection of operational threats using artificial intelligence
KR102705859B1 (ko) 2019-12-26 2024-09-10 서강대학교산학협력단 연합형 분산 에지 환경에서 에너지와 QoS를 고려한 SFC 스케쥴링 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02294129A (ja) * 1989-05-08 1990-12-05 Nec Corp ネットワーク制御方式
JPH08265845A (ja) * 1995-02-22 1996-10-11 Metricom Inc ノードが通信リンクのリストを獲得する方法
US6628643B1 (en) * 1998-03-14 2003-09-30 The United States Of America As Represented By The Secretary Of The Navy Method for eliminating synchronized clocks in distributed routing approaches that are dependent on temporal ordering of events
AU2037201A (en) * 1999-12-06 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Broadcast as a triggering mechanism for route discovery
US7240093B1 (en) * 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7203729B2 (en) * 2001-04-20 2007-04-10 Motorola Inc. Method and apparatus for a communication network with nodes capable of selective cluster head operation
US7203743B2 (en) * 2001-12-28 2007-04-10 Nortel Networks Limited Hierarchical tree-based protection scheme for mesh networks
US7117264B2 (en) * 2002-01-10 2006-10-03 International Business Machines Corporation Method and system for peer to peer communication in a network environment
EP1343098A1 (en) * 2002-03-07 2003-09-10 Hewlett-Packard Company Improvements relating to network environments and location of resources therein
JP2003273898A (ja) * 2002-03-14 2003-09-26 Ricoh Co Ltd 通信システム及び通信方法
US7117201B2 (en) * 2002-03-20 2006-10-03 Hewlett-Packard Development Company, L.P. Resource searching
US20040054781A1 (en) * 2002-07-30 2004-03-18 Heng-Chien Chen Method for establishing point to point or point to multiple points internet connection(s)
US20040153520A1 (en) * 2002-12-23 2004-08-05 Johan Rune Bridging between a bluetooth scatternet and an ethernet LAN
US7039634B2 (en) * 2003-03-12 2006-05-02 Hewlett-Packard Development Company, L.P. Semantic querying a peer-to-peer network
CN1216472C (zh) * 2003-03-31 2005-08-24 中国科学院计算机网络信息中心 层次式交换网络节点域的一种控制方法
US8103753B2 (en) * 2003-04-22 2012-01-24 Microsoft Corporation Distributing membership information for multi-party application layer sessions
US7804851B2 (en) * 2003-07-31 2010-09-28 Intel Corporation Discovery technique for physical media interface aggregation
US20050080858A1 (en) * 2003-10-10 2005-04-14 Microsoft Corporation System and method for searching a peer-to-peer network

Also Published As

Publication number Publication date
EP1580660A2 (en) 2005-09-28
EP1580660B1 (en) 2019-10-30
EP1580660A3 (en) 2013-01-02
KR100999278B1 (ko) 2010-12-07
JP2005310117A (ja) 2005-11-04
CN1671142A (zh) 2005-09-21
US7617300B2 (en) 2009-11-10
US20050204023A1 (en) 2005-09-15
CN1671142B (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
EP0511142B1 (en) Method and apparatus for data processing network interconnection
KR100999278B1 (ko) 동적 분산 환경에서의 노드 매칭
US9647917B2 (en) Maintaining consistency within a federation infrastructure
EP2095248B1 (en) Consistency within a federation infrastructure
US7958262B2 (en) Allocating and reclaiming resources within a rendezvous federation
Baumes et al. Discovering hidden groups in communication networks
CN110557416B (zh) 一种多节点协同打块的方法及系统
Tošić et al. Maximal clique based distributed coalition formation for task allocation in large-scale multi-agent systems
US11477277B2 (en) Computer-implemented method, computer program and data processing system
Francez et al. Distributed termination with interval assertions
CN113807851A (zh) 一种基于分片的区块链可扩展性实现方法及系统
EP1127310B1 (en) Method and apparatus for evaluating a data processing request performed by distributed processes
Altisen et al. Election in unidirectional rings with homonyms
Balhara et al. Leader election algorithms in distributed systems
CN115099421A (zh) 面向群组的联邦学习系统
Kutten et al. Singularly near optimal leader election in asynchronous networks
Cidon et al. Message terminating algorithms for anonymous rings of unknown size
Cidon et al. Message terminate algorithms for anonymous rings of unknown size
Dobrev et al. On the cost of waking up
US6925582B2 (en) Forwarding of diagnostic messages in a group
Saxena et al. A Further Study on Weak Byzantine Gathering of Mobile Agents
Özcan et al. A hybrid load balancing model for multi-agent systems
US11075988B2 (en) Consensus mechanism for distributed systems
Yum et al. Adaptive load balancing for parallel queues with traffic constraints
Chin et al. Improving the time complexity of message-optimal distributed algorithms for minimum-weight spanning trees

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20131115

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 9