CN1671142B - 动态、分散环境中的节点匹配 - Google Patents

动态、分散环境中的节点匹配 Download PDF

Info

Publication number
CN1671142B
CN1671142B CN2005100551005A CN200510055100A CN1671142B CN 1671142 B CN1671142 B CN 1671142B CN 2005100551005 A CN2005100551005 A CN 2005100551005A CN 200510055100 A CN200510055100 A CN 200510055100A CN 1671142 B CN1671142 B CN 1671142B
Authority
CN
China
Prior art keywords
node
section point
availability
message
coupling
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN2005100551005A
Other languages
English (en)
Other versions
CN1671142A (zh
Inventor
S·G·比约格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1671142A publication Critical patent/CN1671142A/zh
Application granted granted Critical
Publication of CN1671142B publication Critical patent/CN1671142B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

处理动态的、分散的计算环境中的计算实体,就好像这些计算实体是在一个通过边(edge)相互链接的图中,匹配这些节点直到没有其他可能的匹配为止。新的节点可被动态地引入到分散的计算环境中而本发明的不同实施例在防止分散计算环境中的死锁的情况下继续匹配这些节点。

Description

动态、分散环境中的节点匹配
技术领域
本发明一般涉及变得与他人相关的动作,更具体地说,涉及一种在蛋白结合(protein binding),社会网络,或者动态、分散计算环境中用于匹配可通信节点的方法。
背景技术
集中的计算架构延续了源自1950年代的大型计算机的假设,即所有的计算可以由单个的计算机系统全部地完成。该架构假设所有的资源都是计算机系统的一部分。所有的资源都在单个的计算机系统中被寻址、发现、载入、使用并释放(并且所有资源都假设存在)。然而,现在以及可预见的未来里,资源——以及随着互联网的普及,用户数据——分散在许多计算机系统中,这些系统通常处于不同的信任区域(trust domain)中,且每一个具有其自己的安全策略。以前的集中计算架构具有很多延续到今天的问题。图1详细示出了这些问题中的一些。
大型计算机104被设计为处理大量计算(intensive computational)的任务。参考图1,诸如大型计算机104的大型计算机的特征是它们具有同时支持许多通过终端连接到该计算机的用户的能力。它的名字来源于“主要框架(main frame)”,起初是用来放置这种计算机的处理单元。数个节点102A-102D耦合至大型计算机104。一节点是一个设备,例如客户机计算机102A-C,一共享打印机102D,或者其他连接至网络100并能与其他的网络设备通信的设备。假设节点102A希望与节点102D通信而节点102B希望与节点102C通信。由于节点102A-102D对于大型计算机104来说都是局部的,大型计算机104对这些节点102A-102D具有全局的观察并且能够知道这些节点中的哪些可用于通信。例如,如果节点102A、102D都是可用的,大型计算机104允许通信在节点102A和102D之间发生。类似的,如果节点102B、102C是可用的,大型计算机104允许节点102B、102C相互通信。大型计算机104的集中计算架构允许所有可与另一个通信的匹配节点的问题一次性地被发现,且可通信节点之间的匹配可以完全不化时间地被找到。
考虑一种情况,大型计算机104从网络100中消失。在这种情况下,匹配一个节点至另一个节点以进行通信的问题变得不能解决。所有的节点,例如节点102A-102D可以看见的仅仅是和它紧邻的邻居。例如,节点102A仅仅可以看到节点102B或者节点102D,但是看不见节点102C。假设节点102B早先认可(commit)与节点102A进行通信而相应地节点102C早先认可与节点102D进行通信。由于这些早先的认可,节点102B、102C不会将对方视为可用于通信的潜在匹配。进一步假设取代节点102A对节点102B的认可以及节点102D对节点102C的认可,节点102A进而与节点102D相连以进行通信。当两个程序、设备、或者节点(节点102B、102C)在继续执行之前等待来自节点102A、102D的响应时,会出现死循环或者死锁的局面。当然,不会再从节点102A、102D接收到任何的响应,因为节点102A、102D已经相互连接在一起进行通信,从而对节点102B、102C造成损害。
集中的计算架构阻碍了互联网的分散结构的发展,在互联网中,如上面所讨论的,用户数据分散在多个计算机系统中。另一个需要解决的问题是互联网分散结构的动态性质。会出现附加的节点,因此而动态扩展了网络100。在存在动态引入节点的情况下,使得网络100匹配可用的节点至另一个以使通信可在另个节点之间发生的能力更加复杂。为了避免死锁,任何可以匹配的节点应该被匹配。
总的来说,集中的计算架构对于大型的计算机系统,例如分散的互联网表现不佳。当节点可用于并且希望进行通信却不能找到其他节点进行通信时,会出现死锁。在不具有可合适地在动态的、分散的计算环境中工作并协调动态的、分散的节点匹配以允许通信发生的协议时,用户可能逐渐地不再信任网络100可提供希望的计算经历,并且要求网络100随着时间的推移在市场上逐渐消失。因此,所需要的是一种用于动态的、分散的计算环境中的可通信节点的匹配方法和系统,其可以避免或者减少上面所讨论的问题。
发明内容
术语“节点”此后表示在计算机设备、Web服务器、蛋白结合、社会网络中的点,它们允许一个实体变得永久的或者临时的与其他实体相关。按照本发明,提供了用于匹配动态的、分散的计算环境中的可通信节点的系统、协议以及计算机可读媒质。本发明的系统形式包括分散的计算环境,其中包括了数个节点。这数个节点中的每一个都是这数个节点中的其他节点的邻居节点。每一个节点能够询问邻居节点的可用性以进行匹配。当第一节点询问第二节点的可用性且第二节点作为响应询问第一节点的可用性时匹配形成。
按照本发明的另一方面,本发明的协议形式包括用于匹配动态的、分散的计算环境中的可通信节点的计算机可执行协议。该协议包括邀请准备进行通信的节点寻找一个匹配。该协议还包括通过发送可用性消息来发现节点的匹配可用性。该协议还包括形成一匹配,当从第一节点向第二节点发送另一个可用性消息时,第二节点从包含一可用消息和一肯定(yes)消息的组中选择一回答作为响应。
按照本发明的另一方面,一种用于匹配动态的、分散的计算环境中的可通信节点的方法,该方法包括邀请准备进行通信的节点寻找一个匹配。该方法还包括通过发送可用性消息来发现节点的匹配可用性。该方法还包括形成一匹配,当从第一节点向第二节点发送另一个可用性消息时,第二节点从包含一可用消息和一肯定(yes)消息的组中选择一回答作为响应。
附图说明
本发明的前述的各方面以及许多其他的优势将通过参考下述的结合附图的详细描述而变得更加清楚以及能够被更好地理解,其中:
图1是说明包括大型计算机104和多个节点的传统网络的框图;
图2是说明按照本发明的一个实施例,试图匹配其他节点进行通信的多个节点的框图;
图3A是说明按照本发明的一个实施例,在匹配的过程中的可通信节点的框图;
图3B是说明按照本发明的一实施例,一邀请者和三个相互通信的节点确定一匹配的协议框图;
图4A-4M是说明用于匹配动态的、分散的计算环境中的可通信节点的方法的进程框图。
具体实施方式
本发明的不同实施例处理动态的、分散的计算环境中的计算实体,就好像这些计算实体是在一个通过边(edge)相互链接的图中,匹配这些节点直到没有其他可能的匹配为止。新的节点可被动态地引入到分散的计算环境中而本发明的不同实施例在防止分散计算环境中的死锁的情况下继续匹配这些节点。本发明的不同实施例提供一协议,该协议由每一个节点用来探测邻居节点以确定潜在的匹配是否是可能的。之前的集中计算架构不需要在本发明的不同实施例中被使用,因为每个节点具有其自身潜在的能力来发现其可以匹配的节点,因此而帮助分散的计算架构,一个显著的例子就是互联网。
动态的、分散的计算环境200在图2中示出。该动态的、分散的计算环境200包括数个节点200A-200I。每一个节点是一个设备,例如客户机计算机、服务器、共享打印机、或者其他能够与其他节点通信的计算设备。节点200A通过一边与节点200D相链接,使用两端都有箭头的线段表示。节点200A通过另一边与节点200B相链接,使用在线段的一端指向节点200A的箭头以及在线段的另一端指向节点200B的箭头表示。另一链接节点200B至200C的边在线段的两端都具有箭头,指向节点200B和200C。节点200C使用虚线来表示,以说明节点200C是一个新引入到该动态的、分散的计算环境200中的节点。术语“动态的”意味着包含引入一个节点至该动态的、分散的计算环境中,该计算环境之前不包括这个刚刚被引入的节点。节点200D通过一边连接到节点200E,该边上具有指向节点200D、200E的箭头。节点200E通过另一边连接到节点200F,该边在线段的一段具有指向节点200E的箭头而在线段的另一端具有指向节点200F的箭头。一边链接节点200F、200H,其使用线段上指向节点200F、200H的箭头表示。节点200E通过另一边链接到节点200G,使用两端具有箭头的线段表示。节点200G、200I通过两端具有箭头的线段相链接,该线段定义了一边。
节点200A-200H以及它们的边形成了一图,该图包括0个或多个节点200A-200I以0个或多个边,每一边连接一对节点。如果一边连接了两个空闲的节点且这两个空闲的节点愿意认可对方,则匹配出现。为了确保防止在该动态的、分散的计算环境200中出现死锁,每一个希望进行通信的空闲节点被匹配直到再也没有更多的边可以将两个空闲的节点链接在一起。节点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不能认可节点200A因为节点200D已经与节点200E匹配。在相同的时间,节点200B认可了与节点200C的匹配,但是节点200C已经与另一个节点(未示出)匹配。换句话说,这种情况下节点200A和节点200B是两个通过一边互相邻接的节点,但是它们由于节点200A、200B的之前的认可而不能匹配。因此,最大化匹配是不可能的。本发明的不同实施例防止了这种情况。本发明的不同实施例不需要锁定该图以匹配节点。这允许新的节点,例如节点200C被引入到该动态的、分散的计算环境200中。
为了简化对于由本发明的不同实施例使用的允许节点协商以形成匹配的协议的讨论,在网络300A中仅仅示出了3个节点302-306。当节点302-306中的另个认可另一个进行通信时,匹配发生。节点302包括两个端口302Z、302X,仅仅其中的一个可用于通信。数学上,节点302Z由字母Z标记而节点302X由字母X标记。短语“Z+X”表示端口Z、X中仅仅只有一个端口可在节点302进行通信。节点304包括端口304
Figure G2005100551005D00061
和端口304。节点304可仅仅通过端口304
Figure G2005100551005D00063
和304中的一个而与另一个节点匹配。数学上,端口304使用字母标记而端口304使用字母
Figure G2005100551005D00068
标记。数学短语表示仅仅一个端口可被用于匹配以及从节电304进行通信。节电306包括端口306Y和306
Figure G2005100551005D000611
。数学上,端口306Y由字母Y表示而端口306
Figure G2005100551005D000612
由字母表示。短语表示端口Y、
Figure G2005100551005D000615
中只有一个端口可被用户匹配以及在节点306进行通信。
如果节点302-306中的每一个必须确定它们的邻居中的哪一个可用于匹配,问题将变得不能解决。一边(图示为在两端具有箭头的线段)连接节点302的端口302和节点306的端口306。存在另一个边链接节点302的端口302X和节点304的端口304
Figure G2005100551005D000618
(该边是具有指向端口302X和304
Figure G2005100551005D000619
的线段)。存在另一个边(另一个在两端具有箭头的线段)链接节点304的端口304和节点306的端口306Y。数学上,这些边表示在端口302Z和端口306之间存在反应潜能,因为节点302可通过端口302Z输入信息而端口306可通过端口306发送信息。类似的,在节点302和节点304之间通过端口302X和304
Figure G2005100551005D000623
也存在反应潜能。在节点304和节点306之间通过端口304和端口306Y也存在反应的潜能。信息可通过端口306Y输入并通过端口304
Figure G2005100551005D000625
输出。
考虑π计算等式其中项表示节点304的端口304
Figure G2005100551005D000628
;句点“.”表示在端口304
Figure G2005100551005D000629
完成了其操作之后继续进程P;竖直杠“|”表示并行运行的操作;项X表示端口302X;而项R表示在端口302X运行的进程结束之后作为继续运行的进程。该π计算等式表示在端口上的第一处理输出信息,该信息之后继续由进程P处理。第一处理
Figure G2005100551005D000631
与第二处理“X.R”并行运行,涤而处理在信道X上接收信息并之后执行进程R。为了避免死循环或者死锁,上述的π计算等式将转变成第二π计算等式“P|R”。如果不是这样,死循环或者死锁将会发生。换句话说,第一π计算等式中在竖直杠两边的两个短语应该能进行反应以继续第二π计算等式。如果不是这样,该系统将会不正确地工作,且如上面所述的,不希望的死锁等式会出现。
本发明的不同实施例允许覆盖节点302-306的解决方案,因而匹配发生。本发明的不同实施例允许由短语“Z+X”、“”和“
Figure G2005100551005D00072
”标记的相互独立的动作以及它们的通信以维持相互独立。本发明的不同实施例防止一个一个节点认可另一个知道一个节点上的一个端口愿意认可其他节点上的兼容端口。如果这样的认可是不可能的,本发明的不同实施例不允许匹配发生。换句话说,本发明的不同实施例允许节点之间的通信发生,除非该通信由一节点上的另一个独立通信预先占据。本发明的每一个实施例在每一个节点上对称地运行。此外,节点之间的通信与节点的邻居异步发生。术语“异步”意味着包含一种情况,当一节点输出一通信时,该节点不需要锁定并等待直到该节点接收到该通信成功的响应。每个节点通信按照本发明的不同实施例中继续。这种简化的设计增加了并发性并允许每个节点具有独立的能力来处理到达的信息。
用于匹配动态的、分散的计算环境中的可通信节点的协议300B在图3B中示出。协议300B由邀请者308和节点302-306使用以寻找两个节点之间的匹配。邀请者308发现节点302-306可与其中的另一个通信并邀请节点302-306确定是否在节点302-306中的两个之间存在匹配。邀请者308发送第一组邀请308-1,其包括邀请308A、308B。邀请308A被发送到节点302而邀请308B被发送到节点304。邀请308A、308B包括节点302、304的地址以允许节点302、304相互通信。另一组邀请308-2,其包括邀请308C、308D,分别发送给节点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确定可用于匹配的节点。使用节点304的地址,节点302发送一可用消息302A至节点304以确定节点304的匹配可用性。节点304还可以发送可用消息304A至节点306。类似的,节点306知道节点302的地址,发送可用消息306A至节点302以确定节点302的匹配可用性。为了响应可用消息302A,节点304响应可能消息(maybe message)304B至节点302以使节点302知道节点304是潜在可用的。可能消息306由节点306发送到节点304以确认节点306作为潜在匹配的可用性。类似的,节点302发送可能消息302B至节点306以向潜在的匹配揭示节点302的可用性。因此,总的来说,协议300B的部分312允许节点发现邻居节点的可用性。
协议300B的另一部分314结束匹配的节点并拒绝其他节点。再一次,节点302发送可用消息302C至节点304以通知节点304节点302仍然可以用于匹配。节点304还发送可用消息304C至节点306。同时,节点306还发送可用消息306C至可用于匹配的节点304。(换句话说,消息304C、306C通过如图所示的在边的两端具有箭头的边而相互交叉。)节点304从节点306接收接收可用消息306C并认识到匹配发生了,尽管节点306从来没有发射过可能消息。因此,节点304使用否定(no)消息304D来响应节点302以拒绝节点302作为用于匹配的潜在节点。因此,协议300B的部分314结束对于可用节点的发现并使得两个节点互相认可以形成一匹配。(节点302较佳地维持数个可用于将来的匹配的节点)。
图4A-4M示出了用于匹配动态的、分散的计算环境中的可通信节点的方法400。为了简明,下面对于方法400的描述参考结合动态的、分散的计算环境200(图2)说明的不同元件、网络300A(图3A)、以及用于匹配动态的、分组的计算环境中的可通信节点的协议300B(图3B)。从开始框起,方法400进入到一组方法步骤402,其在一继续端点(“端点A”)和退出端点(“端点B”)之间被定义。方法步骤组402描述了由邀请者对于能够相互通信的节点的识别,且该邀请者在这些节点之间邀请通信。
从端点A(图4B),该方法400进入到框408,其中邀请者308识别可互相通信的两个节点302-306(即,这是节点图中的一边)。该方法400从框408开始可以并发地分裂执行3个程序路径:框410、416和420。在框410,每个节点具有一地址并且由邀请者318发现。(两个节点的两个地址形成了图中两个节点之间的边)。邀请者308邀请第一节点与第二节点通信以探测匹配的可能性。参见框412。该方法之后进入到框414,其中该邀请包括了包含这两个节点的地址的边。该方法400之后进入到退出端点B。同时,在框416,邀请者308邀请第二节点与第一节点通信以探测匹配的可能性。该邀请包括包含两个节点的两个地址的边。参见框418。该方法400之后进入到退出端点B。同时,在判决框420做出是否存在更多的节点可被识别的决定。如果对于判决框420的测试的回答是肯定的,该方法400回到框408重复上述的处理步骤。否则,对于判决框420的测试的回答是否定的,该方法400进行循环直至有更多的节点可被识别。从退出端点B,该方法400处理在一继续端点(“端点C”)和一退出端点(“端点D”)之间定义的一组方法步骤404。该组方法步骤404描述了由邀请者308识别的节点与其他节点通信以寻找匹配的过程。
从端点C(图4C),该方法400进入到框422,其中第一节点接收该邀请,该邀请包括由邀请者308发送的边(由两个节点的两个地址形成),之后,在判决框424,进行测试以确定是否第一节点已经被匹配至其他节点。如果对于在判决框424的回答是肯定的,该方法400进入到另一个继续端点(“端点F”),此处方法400终止其执行。如果对于在判决框424的测试的回答是否定的,方法400进入到另一个判决框426,其中进行一测试以确定是否该边已经为第一节点所知。如果对于在判决框426的测试的回答是肯定的,该方法400进入到端点F,此处其终止其执行。否则,对于在判决框426的测试的回答是否定的,该方法400进入到另一个继续端点(“端点C1”)。
从端点C1(图4D),该方法400进入框428,其中该方法400获得第一节点的邻居数组(array)(其包含数个边)的长度。此处讨论的对于数组的使用仅仅是为了说明。任何合适的数据结构可被使用且本发明不限于使用数组。之后,在框430,长度被分配给一变量索引。边(由两个节点的两个地址所形成)被保存在邻居数组的一位置中(由变量索引定址)。参见框432。该方法400之后进入到框434,其中进行一测试以确定是否该边是邻居数组中仅有的边。如果对于在判决框434的测试的回答是否,该方法400继续进入端点F,此处终止其执行。否则,对于在判决框434的回答是肯定的,则方法进入框436,其中第一节点发送可用性消息至第二节点以确定第二节点的进行通信的可用性。方法400之后进入退出端点D。
从端点D(图4A),该方法400进入到一组方法步骤406,其在一继续端点(“端点E”)和退出端点,端点F之间被定义。该组方法步骤406描述了匹配节点之间相互确认通信并拒绝其他节点的过程。
从端点E(图4E),该方法400进入到框438,此处第二节点接收并处理由第一节点发送的可用性消息。之后,在判决框440,进行一测试以确定第二节点是否已经被匹配至另一个节点。如果对于在判决框440进行的测试的回答是否,方法400进入另一个继续端点(“端点E2”)。否则,对于在判决框440进行的测试的回答是否,第二节点向第一节点回答否。参见框442。该方法400之后进入到框444,此处第一节点进行检验以保证第二节点就是邀请或者可用性消息所发送的节点。方法400之后进入另一个继续端点(“端点E1”)。
从端点E1(图4F),该方法400进入到框446,其中该方法400从邻居数组中移除该边(由两个节点的两个地址形成)。之后,在框448,第一节点准备向另一个节点发布可用性消息。参考判决框450。如果对于在判决框450进行的测试的回答是否,该方法400进入到退出端点F并终止执行。否则,如果对于在判决框450进行的测试的回答是肯定的,该方法进入到框452,此处第一节点选择一新的节点进行通信以寻找匹配。该方法400之后继续到端点E重复上面描述的处理步骤。
从端点E2(图4G),该方法400进入到判决框454,此处进行一测试以确定在第二节点的邻居数组中是否存在一边。如果对于在判决框454中进行的测试的回答是否,该方法400进入到另一个继续端点(“端点E3”)。否则,对于在判决框454中进行的测试的回答是肯定的,该方法400进入到另一个判决框456,此处进行另一个测试以确定该边是否就是已发送可用性消息的边。如果对于在判决框456中进行的测试的回答是否,方法400进入到端点E3。否则,对于在判决框456中进行的测试的回答是肯定的,该方法400进入到框458,此处第二节点进行检验以保证第一节点就是发送邀请或者可用性消息的节点。该方法之后继续到另一个继续端点(“端点E4”)。
从端点E4(图4H),该方法400进入到框460,其中第二节点的获取状态(taken state)被设置成真(TRUE),以表示第二节点与第一节点相匹配。之后,在框462,第二节点的邻居数组的内容被清除,此时第二节点已经被匹配。该方法400之后进入到端点F,此处终止其执行。
从端点E3,该方法400进入到判决框464,此处进行一测试以确定是否该边已经为第二节点所知。如果对于在判决框464中进行的测试的回答是肯定的,方法400进入到另一个继续端点(“端点E6”)。否则,对于在判决框464中进行的测试的回答是否,该方法400获取第二节点的邻居数组(其包含数个边)的长度。参见框466。之后,在框468,该长度被分配给一变量索引。该方法400之后继续到另一个继续端点(“端点E5”)。
从端点E5(图4J),该方法400进入到框470,此处边(由另个节点的两个地址形成)被保存在邻居数组(由变量索引定址)中的一位置。之后,在判决框472,进行一测试以确定是否该边是邻居数组中仅有的边。如果对于在判决框472中进行的测试的回答是否,方法400进入到端点E6。否则,对于在判决框472中进行的测试的回答是肯定的,第二节点向第一节点响应肯定回答(YES)。参见框474。该方法400之后进入到框476,此处发送第一可用性消息。之后,在框478,第一节点的获取状态被设置为真(TRUE),表示第一节点匹配至第二节点。该方法400之后进入到另一个继续端点(“端点7”)。
从端点7(图4K),该方法400进入到框480,此处第一节点的邻居数组的内容被清除,此时第一节点已经被匹配。之后,在框482,第二节点进行检验以保证第一节点就是发送邀请或者可用性消息的节点。第二节点的获取状态被设置为真(TRUE),表示第二节点匹配至第一节点。参见框484。第二节点的邻居数组的内容被清除,此时第二节点已经被匹配。参见框486。该方法400之后继续到退出端点F终止执行。
从端点E6(图4L),该方法400进入到框488,此处第二节点向第一节点回答可能(MAYBE)。之后,在框490,第一节点进行检验以保证第二节点就是发送邀请或者可用性消息的节点。方法400之后继续到另一个继续端点(“端点E8”)。
从端点E8(图4M),该方法400进入到框492,此处第一节点准备向另一个节点发布可用性消息。之后,在判决框494,进行一测试以确定在邻居数组中是否存在一边。如果对于在判决框494中进行的测试的回答是否,方法400进入到退出端点F并终止执行。否则,对于在判决框494中进行的测试的回答是肯定的,第一节点选择新的节点进行通信以寻找匹配。参见框496。该方法400之后继续到端点E重复上述的处理步骤。
虽然本发明的优选实施例被说明和描述,可以理解可在其上进行不同的改变而不脱离本发明的原理和范围。

Claims (15)

1.一种分散计算环境系统,包括:
数个节点,所述数个节点中的每一个能够成为所述数个节点中的其他节点的邻居节点,每一节点能够询问邻居节点的可用性用于进行匹配,当第一节点询问第二节点的可用性且第二节点询问第一节点的可用性时形成匹配,在第二节点匹配至第一节点的情况下,第二节点的获取状态设置为真,且第二节点的邻居数组的内容被清空。
2.如权利要求1所述的分散计算环境系统,其特征在于,当第一节点询问第二节点的可用性且第二节点以肯定消息作为响应时,形成另一个匹配。
3.如权利要求1所述的分散计算环境系统,其特征在于,当第一节点询问第二节点的可用性且第二节点以否定消息作为响应时,无匹配形成。
4.如权利要求1所述的分散计算环境系统,其特征在于,还包括邀请所述数个节点进行通信以寻找匹配的邀请者。
5.如权利要求1所述的分散计算环境系统,其特征在于,还包括动态引入到所述分散计算环境中的新节点,所述新节点能够询问邻居节点的可用性以进行匹配。
6.一种匹配动态的、分散的计算环境中的可通信节点的方法,包括:
邀请节点进行通信以寻找匹配;
通过发送可用性消息来发现节点的匹配可用性;以及
在当从第一节点向第二节点发送另一个可用性消息时,第二节点发送从包括一可用性消息和一肯定消息的组中选择的消息的情况下,形成匹配,在第二节点匹配至第一节点的情况下,第二节点的获取状态设置为真,且第二节点的邻居数组的内容被清空。
7.如权利要求6所述的方法,其特征在于,所述邀请是由一邀请者执行,该邀请者识别是邻居的第一节点和第二节点并发送邀请至第一节点,该邀请包含第一节点和第二节点的地址,该邀请者还发送另一个邀请至第二节点。
8.如权利要求7所述的方法,还包括,如果第一节点已经匹配至另一个节点,终止该方法,否则,该方法发送一可用性消息至第二节点以确定其进行匹配的可用性。
9.如权利要求8所述的方法,还包括:当第二节点接收从第一节点发送的可用性消息时,如果第二节点已经匹配至另一个节点则第二节点向第一节点回答一否定消息,否则第二节点的获取状态被设置成真以表示第二节点被匹配至第一节点。
10.如权利要求9所述的方法,还包括设置第一节点的获取状态成为真以表示第一节点被匹配至第二节点。
11.一种匹配动态的、分散的计算环境中的可通信节点的系统,包括:
用于邀请节点进行通信以寻找匹配的装置;
用于通过发送可用性消息来发现节点的匹配可用性的装置;以及
用于在当从第一节点向第二节点发送另一个可用性消息时,第二节点发送从包括一可用性消息和一肯定消息的组中选择的消息的情况下,形成匹配的装置,在第二节点匹配至第一节点的情况下,第二节点的获取状态设置为真,且第二节点的邻居数组的内容被清空。
12.如权利要求11所述的系统,其特征在于,所述用于邀请的装置是一邀请者,该邀请者识别是邻居的第一节点和第二节点并发送邀请至第一节点,该邀请包含第一节点和第二节点的地址,该邀请者还发送另一个邀请至第二节点。
13.如权利要求12所述的系统,还包括用于如果第一节点还未匹配至另一个节点,则发送一可用性消息至第二节点以确定其进行匹配的可用性的装置。
14.如权利要求13所述的系统,还包括:用于当第二节点接收从第一节点发送的可用性消息时,如果第二节点已经匹配至另一个节点则第二节点向第一节点回答一否定消息,否则第二节点的获取状态被设置成真以表示第二节点被匹配至第一节点的装置。
15.如权利要求14所述的系统,还包括用于设置第一节点的获取状态成为真以表示第一节点被匹配至第二节点的装置。
CN2005100551005A 2004-03-12 2005-03-11 动态、分散环境中的节点匹配 Expired - Fee Related CN1671142B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1671142A CN1671142A (zh) 2005-09-21
CN1671142B true CN1671142B (zh) 2010-05-26

Family

ID=34861993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100551005A Expired - Fee Related CN1671142B (zh) 2004-03-12 2005-03-11 动态、分散环境中的节点匹配

Country Status (5)

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

Families Citing this family (5)

* 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
KR20210082733A (ko) 2019-12-26 2021-07-06 서강대학교산학협력단 연합형 분산 에지 환경에서 에너지와 QoS를 고려한 SFC 스케쥴링 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1408159A (zh) * 1999-12-06 2003-04-02 艾利森电话股份有限公司 作为对于路由发现的触发机制的广播
CN1440159A (zh) * 2003-03-31 2003-09-03 中国科学院计算机网络信息中心 层次式交换网络节点域的一种控制方法

Family Cites Families (17)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1408159A (zh) * 1999-12-06 2003-04-02 艾利森电话股份有限公司 作为对于路由发现的触发机制的广播
CN1440159A (zh) * 2003-03-31 2003-09-03 中国科学院计算机网络信息中心 层次式交换网络节点域的一种控制方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107733855B (zh) 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法
Dziembowski et al. Multi-party virtual state channels
CN112636930B (zh) 一种基于原子交换的资产交易方法和系统
Maurer et al. Anonymous CoinJoin transactions with arbitrary values
CN1671142B (zh) 动态、分散环境中的节点匹配
AU2007224392A1 (en) A Private Network System And Method
CN112583917B (zh) 一种基于cscp的混合链构建方法
JP2000067022A5 (zh)
US9270671B2 (en) Biometric-based wireless device association
CN111046110B (zh) 用于区块链系统的节点管理的方法、节点和计算设备
US7516132B1 (en) Mechanism for enabling distributed file sharing among a plurality of nodes in a network
CN108650289A (zh) 一种基于区块链的管理数据的方法和装置
CN110032573A (zh) 一种基于区块链的黑名单共享方法、仲裁方法及装置
CN112463761A (zh) 用于动态非平衡应用环境的跨链协同平台构建方法及系统
Hoenisch et al. Lightswap: An atomic swap does not require timeouts at both blockchains
Aspnes et al. O (log n)-time overlay network construction from graphs with out-degree 1
CN106059882A (zh) 一种路由插入的方法及装置
Nadahalli et al. Grief-free Atomic Swaps
CN114356606A (zh) 一种区块链的跨链方法、装置、设备及产品
CN113538150A (zh) 一种区块链资产跨链交易方法
Benjamin Analysis of connection survivability in complex strategic communications networks
Firdaus et al. A Review of Blockchain Interoperability and Its Current Solutions
Spalazzese et al. Components Interoperability through Mediating Connector Patterns
CN109395417A (zh) 智能积木模块连接拓扑信息生成方法及智能积木系统
CN115065687B (zh) Hyperledger Fabric与以太坊间的跨链数据共享方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

CF01 Termination of patent right due to non-payment of annual fee