專利名稱::簡單對(duì)等點(diǎn)名稱解析協(xié)議應(yīng)用程序接口的制作方法簡單對(duì)等點(diǎn)名稱解析協(xié)議應(yīng)用程序接口背景對(duì)等聯(lián)網(wǎng)通過將按照地理或網(wǎng)絡(luò)特性相關(guān)聯(lián)的計(jì)算機(jī)連接起來而向用戶提供了許多協(xié)作和共享的機(jī)會(huì)。提供并發(fā)現(xiàn)服務(wù)、文件、數(shù)據(jù)和程序上的提供內(nèi)容增加了計(jì)算資源的靈活性和利用。對(duì)等網(wǎng)絡(luò)可包括稱為云(cloud)的群集中的類似計(jì)算機(jī)分組。云可按照其范圍或按照諸如相關(guān)聯(lián)的部門等其它屬性來標(biāo)識(shí)。多個(gè)云可存在于一給定公司或組織實(shí)體中。對(duì)等網(wǎng)絡(luò)上可用的提供內(nèi)容被稱為端點(diǎn)。端點(diǎn)可以是計(jì)算機(jī)、文件或程序。然而,端點(diǎn)也可包括可在對(duì)等網(wǎng)絡(luò)上的多于一個(gè)物理位置處可用的服務(wù),即,服務(wù)可具有多個(gè)互聯(lián)網(wǎng)協(xié)議地址和/或IP端口。希望加入對(duì)等網(wǎng)絡(luò)或維持與對(duì)等網(wǎng)絡(luò)的聯(lián)系的端點(diǎn)可使用稱為"對(duì)等點(diǎn)名稱解析協(xié)議"(PNRP)的服務(wù)。PNRP當(dāng)前可經(jīng)由兩種機(jī)制,即GetAddrlnfo(獲取地址信息)應(yīng)用程序接口(API)或WinsockNamespaceProvider(Windows套接字名稱空間提供者)API來訪問。GetAddrlnfo是相對(duì)簡單的,但不能得到所有的PNRP功能。NamespaceProviderAPI支持PNRP的全部特征,但是某些開發(fā)者發(fā)現(xiàn)其使用是麻煩且困難的。除了編碼困難之外,現(xiàn)有技術(shù)的API增加了調(diào)試結(jié)合了PNRP的系統(tǒng)的困難。采用PNRP以及隨后采用通過用于對(duì)等聯(lián)網(wǎng)的PNRP可得的健壯特征受到使用當(dāng)前可用的API的困難的困擾。概述簡單PNRPAPI展示了可在PNRP中獲得的全部功能,同時(shí)簡化了與構(gòu)建和維護(hù)對(duì)等網(wǎng)絡(luò)相關(guān)聯(lián)的編程和管理開銷。概括而言,存在用于注冊和更新對(duì)等網(wǎng)絡(luò)中的端點(diǎn)信息的一類調(diào)用,以及用于發(fā)現(xiàn)對(duì)等網(wǎng)絡(luò)中的端點(diǎn)的另一類調(diào)用。發(fā)現(xiàn)調(diào)用可以是成塊或非成塊的。對(duì)這些簡化調(diào)用的使用預(yù)期能通過流線化用于對(duì)等網(wǎng)絡(luò)的PNRP的開發(fā)和使用來增加對(duì)PNRP的利用。該簡單PNRPAPI極大地減輕了開發(fā)者編碼PNRP接口的負(fù)擔(dān),并且簡化了開發(fā)和測試期間的調(diào)試過程。該簡單PNRPAPI預(yù)期能顯著改善對(duì)PNRP的采用,并且因此改善了在越來越多的消費(fèi)者、商業(yè)和業(yè)務(wù)應(yīng)用程序中對(duì)對(duì)等聯(lián)網(wǎng)的采用。附圖簡述圖1是計(jì)算機(jī)網(wǎng)絡(luò)的簡化的代表性框圖。圖2是可連接到圖1的網(wǎng)絡(luò)的計(jì)算機(jī)的框圖;以及圖3是對(duì)等網(wǎng)絡(luò)的簡化的代表性框圖。詳細(xì)描述盡管下文闡明了眾多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,本說明書的法定范圍是由本專利開頭所述的權(quán)利要求書的文字來定義的。該詳細(xì)描述應(yīng)被解釋為僅示例性,而未描述每一可能的實(shí)施例,因?yàn)槊枋雒恳豢赡艿膶?shí)施例即使不是不可能的也是不切實(shí)際的。使用現(xiàn)有技術(shù)或在本專利的提交日之后開發(fā)的技術(shù),可實(shí)現(xiàn)眾多替換實(shí)施例,這仍落入權(quán)利要求書的范圍之內(nèi)。還應(yīng)當(dāng)理解,除非一術(shù)語在本專利中使用語句"如此處所使用的,術(shù)語'—'此處被定義為指……"或類似的語句來明確地定義,否則毫無意圖將該術(shù)語的含義明確地或隱含地限制在其簡單或普通意義之外,且這類術(shù)語不應(yīng)當(dāng)被解釋為基于本專利的任何一節(jié)中所作出的任何陳述(權(quán)利要求書的語言除外)而在范圍上有限制。就本專利末尾的權(quán)利要求書中引用的任何術(shù)語在本專利中以與單數(shù)意義相一致的方式來引用而言,這是為清楚起見而如此做的,僅僅是為了不使讀者感到混淆,且這類權(quán)利要求術(shù)語并不旨在隱含地或以其它方式限于該單數(shù)意義。最后,除非一權(quán)利要求要素是通過敘述單詞"裝置"和功能而沒有敘述任何結(jié)構(gòu)來定義的,否則任何權(quán)利要求要素的范圍并不旨在基于35U.S.C.§112第6段的應(yīng)用來解釋。許多發(fā)明性功能和許多發(fā)明性原理最佳地使用或利用軟件程序或指令以及諸如專用集成電路(IC)等IC來實(shí)現(xiàn)。期望本領(lǐng)域的普通技術(shù)人員雖然可能要迸行大量的工作和由例如可用時(shí)間、現(xiàn)有技術(shù)以及經(jīng)濟(jì)問題促動(dòng)的許多設(shè)計(jì)選擇,但是當(dāng)受到此處所公開的概念和原理的指引時(shí)仍能夠容易地以最小的實(shí)驗(yàn)來生成這些軟件指令和程序以及IC。因此,為了簡明以及最小化使根據(jù)本發(fā)明的原理和概念晦澀的任何風(fēng)險(xiǎn),對(duì)這些軟件和IC(如果有的話)的進(jìn)一步討論將限于對(duì)于較佳實(shí)施例的原理和概念的實(shí)質(zhì)。圖1和2提供了與即時(shí)公開有關(guān)的網(wǎng)絡(luò)和計(jì)算平臺(tái)的結(jié)構(gòu)基礎(chǔ)。圖1示出了網(wǎng)絡(luò)10。網(wǎng)絡(luò)10可以是因特網(wǎng)、虛擬專用網(wǎng)(VPN)、或允許一個(gè)或多個(gè)計(jì)算機(jī)、通信設(shè)備、數(shù)據(jù)庫等通信上彼此連接的任何其它網(wǎng)絡(luò)。網(wǎng)絡(luò)IO可經(jīng)由以太網(wǎng)16和路由器18以及陸線20連接到個(gè)人計(jì)算機(jī)12和計(jì)算機(jī)終端14。以太網(wǎng)16可以是更大的互聯(lián)網(wǎng)協(xié)議網(wǎng)絡(luò)的子網(wǎng)。諸如投影儀或打印機(jī)(未示出)等其它聯(lián)網(wǎng)資源也可經(jīng)由以太網(wǎng)16或另一數(shù)據(jù)網(wǎng)絡(luò)來支持。另一方面,網(wǎng)絡(luò)10可以經(jīng)由無線通信站26和無線鏈路28無線地連接到膝上型計(jì)算機(jī)22和個(gè)人數(shù)據(jù)助理24。類似地,服務(wù)器30可使用通信鏈路32連接到網(wǎng)絡(luò)IO,而大型機(jī)34可使用另一通信鏈路36連接到網(wǎng)絡(luò)10。網(wǎng)絡(luò)10可用于支持對(duì)等網(wǎng)絡(luò)通信。圖2示出了計(jì)算機(jī)110形式的計(jì)算設(shè)備。計(jì)算機(jī)110的組件可包括但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)類型中的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線以及外圍部件互連(PCI)總線(也稱為夾層(Mezzanine)總線)。計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)UO訪問的任一可用介質(zhì),并包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來儲(chǔ)存所期望的信息并可由計(jì)算機(jī)iio訪問的任一其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號(hào)"指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、射頻、紅外和其它無線介質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲(chǔ)器130包括以易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,通常儲(chǔ)存在ROM131中。RAM132通常包含處理單元120立即可訪問和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖2示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。計(jì)算機(jī)110也可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作示例,圖2示出了對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器141、對(duì)可移動(dòng)、非易失性磁盤152進(jìn)行讀寫的磁盤驅(qū)動(dòng)器151以及對(duì)可移動(dòng)、非易失性光盤156,如CDROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141通常通過不可移動(dòng)存儲(chǔ)器接口,如接口140連接到系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常通過可移動(dòng)存儲(chǔ)器接口,如接口150連接到系統(tǒng)總線121。上文討論并在圖2示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖2中,示出硬盤驅(qū)動(dòng)器141儲(chǔ)存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對(duì)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標(biāo)號(hào)來說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤162和光標(biāo)控制設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸墊)向計(jì)算機(jī)20輸入命令和信息。諸如web攝像機(jī)(攝像頭)等攝像機(jī)163可捕捉并輸入與計(jì)算機(jī)110相關(guān)聯(lián)的環(huán)境的圖片,諸如提供用戶的圖片。攝像頭163如當(dāng)用戶指示時(shí)可按要求捕捉圖片,或可在計(jì)算機(jī)110的控制下周期性地拍攝圖片。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線的輸入接口160連接至處理單元120,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過接口,如圖形控制器190連接至系統(tǒng)總線121。除監(jiān)視器之外,計(jì)算機(jī)也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,它們通過輸出外圍接口195連接。計(jì)算機(jī)IIO可以使用到一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有以上相對(duì)于計(jì)算機(jī)IIO所描述的元件,盡管在圖2中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備181。圖2描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接至LAN171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)IIO通常包括調(diào)制解調(diào)器172或用于通過WAN173,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它通過輸入接口160或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)110所描述的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非局限,圖2示出遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181上。通信連接170172允許設(shè)備與其它設(shè)備通信。通信連接170172是通信介質(zhì)的示例。通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等己調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號(hào)"指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其它無線介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可包括存儲(chǔ)介質(zhì)和通信介質(zhì)兩者。圖3描繪了類似于圖1的網(wǎng)絡(luò)10或耦合到該網(wǎng)絡(luò)的示例性對(duì)等網(wǎng)絡(luò)。對(duì)等網(wǎng)絡(luò)200可具有通過網(wǎng)絡(luò)208210212耦合的各個(gè)云202204206。網(wǎng)絡(luò)可以是有線或無線的,并且可支持互聯(lián)網(wǎng)協(xié)議版本6(IPv6)。云202可具有計(jì)算機(jī)214216。每一計(jì)算機(jī)可支持多個(gè)端點(diǎn),例如,計(jì)算機(jī)216被示為支持端點(diǎn)1218和端點(diǎn)2220。云204被示為具有計(jì)算機(jī)222和224。計(jì)算機(jī)224被示為支持三個(gè)端點(diǎn)226228和230。云206被示為具有計(jì)算機(jī)232和234。出于本示例的目的,云206的計(jì)算機(jī)未被示為支持任何端點(diǎn)。在該示例性實(shí)施例中,每一計(jì)算機(jī)及其相關(guān)聯(lián)的端點(diǎn)在其各自的云202204206內(nèi)示出,指示按照網(wǎng)絡(luò)拓?fù)涞目赡芙M織。端點(diǎn)218220226228和230各自可以是進(jìn)程、文件、IP地址等。每一端點(diǎn)必須在其各自的云內(nèi)明確注冊以便在對(duì)等網(wǎng)絡(luò)220上被發(fā)現(xiàn)。例如,當(dāng)一個(gè)端點(diǎn)218希望在云202內(nèi)注冊時(shí),它可使用下述PeerPNRPRegister(對(duì)等PNRP注冊)調(diào)用。PeerPNRPRegister調(diào)用可被限于其自己的鏈路本地云202。類似地,云204中的端點(diǎn),如端點(diǎn)230可在云204內(nèi)本地注冊。當(dāng)關(guān)于端點(diǎn)的數(shù)據(jù),例如IP地址改變時(shí),可使用PeerPNRPUpdateRegistration(對(duì)等PNRP更新注冊)調(diào)用。當(dāng)一端點(diǎn)希望將其自身從對(duì)等網(wǎng)絡(luò)中移除時(shí),可發(fā)出PeerPNRPUnregister(對(duì)等PNRP解除注冊)調(diào)用。對(duì)等網(wǎng)絡(luò)注冊信息通過對(duì)等網(wǎng)絡(luò)傳播的方法是公知且是普遍證明的,因此此處不再討論。圖4表示對(duì)等聯(lián)網(wǎng)的一個(gè)更復(fù)雜的實(shí)施例。對(duì)等網(wǎng)絡(luò)300具有云302、304和306。云可通過各自的網(wǎng)絡(luò)連接308、310和312來耦合。云302中的計(jì)算機(jī)314可具有一個(gè)或多個(gè)端點(diǎn)(未示出)。計(jì)算機(jī)316在任何云外部,但是具有云302中的端點(diǎn)1322和云304中的端點(diǎn)2324。以此方式配置的計(jì)算機(jī)316可被附連到拓?fù)浣M織的網(wǎng)絡(luò)中的不同端點(diǎn),并且能夠公布不同網(wǎng)絡(luò)中的不同端t^"。計(jì)算機(jī)318被示為在云306中,而計(jì)算機(jī)320被示為配置在云304和306兩者中。在這一情況下,計(jì)算機(jī)320可以是云304和306兩者的邏輯成員。它可公布同時(shí)在兩個(gè)云中的端點(diǎn)326。用于面向注冊的調(diào)用的輸入和輸出信息和結(jié)構(gòu)文檔如下。在注冊之后,可返回一句柄以在關(guān)于具有該句柄的特定端點(diǎn)的將來調(diào)用中使用。返回端點(diǎn)數(shù)據(jù)的任何調(diào)用可返回一空集,換言之,沒有數(shù)據(jù)。這可以是當(dāng)對(duì)云或端點(diǎn)的名稱注冊數(shù)據(jù)不能匹配到一現(xiàn)有實(shí)體的情況。在這一情況下,沒有數(shù)據(jù)的返回是重要且有用的。PeerPnrpRegister—該方法用于注冊PNRP端點(diǎn)?;A(chǔ)結(jié)構(gòu)將選取所有云中的地址來注冊,并且監(jiān)視地址改變事件,并在必要時(shí)重新注冊。句法———^.....=————....=———___「HRESULTwinapiPeerPnrpRegister(INPCWSTRpcwzPeerName,inppeer_pnrp_registration—infopRegistrationinfo,outphandlephRegistration自漁;pcwzPeerName要注冊的名稱pReglnfo關(guān)于注冊的可任選信息。NULL將注冊所有云中的所有地址。見注釋。;phRegistration允許更新和解除注冊的注冊句柄。typedefstructpeer一pnrp—register一info—tag{PWSTRpwzCloudName;|ULONGcAddresses;SOCKADDR"ppAddressesWORDwPort;PWSTRpwzComment;ULONGcbPaiylosdsPBYTEpbPayload;PEERJPNRP—REGISTER—INFO(對(duì)等PNRP注冊信息)提供了關(guān)于應(yīng)如何執(zhí)行注冊的附加信息。概念上,該API的簡單模式是對(duì)該自變量傳遞空。復(fù)雜設(shè)置通過實(shí)際使用該結(jié)構(gòu)來訪問。_______________________________________________<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>對(duì)PeerPnrpRegister調(diào)用中的pReglnfo(注冊信息)可以是NULL。這等價(jià)于傳遞具有以下值的PEERPNRPREGISTERINFO:<table>tableseeoriginaldocumentpage14</column></row><table>當(dāng)使用PEER—PNRP—AUTO—ADDRESSES(對(duì)等PNRP自動(dòng)地址)(或?qū)Reglnfo傳遞NULL)時(shí),API不僅為要注冊的地址選取好的值,而且還保持注冊為最新。當(dāng)新的云出現(xiàn)時(shí),將在這些新的云中自動(dòng)注冊。如果本地機(jī)器上的地址改變,則用新地址更新當(dāng)前注冊。PeerPnrpUpdateRegistration—該方法用于更新PNRP端點(diǎn)的注冊。句法.............——___..........=====_—=—._________.......__HRESULfWlS^PIFeerPnrpUp"Registration(INHANDLEhRegistration,;|INPPEER_PNRP—REGISTRATION—INFOpRegistrationlnfo);自變量ihRegistrationi來自PeerPnrpRegister的注冊的句柄:pRegInfo更新的注冊信息并非關(guān)于注冊的所有內(nèi)容都可被改變。具體地,cloudname(云名稱)可以不變,而cAddress不能在自動(dòng)選擇的地址和指定地址之間改變。更新的注冊數(shù)據(jù)可包括指定一個(gè)或多個(gè)云的數(shù)據(jù),以及關(guān)于一個(gè)或多個(gè)地址/套接字信息對(duì)的數(shù)據(jù),盡管對(duì)給定的一對(duì),地址或套接字信息可以為空。PeerPnrpUnregister該方法移除一PNRP端點(diǎn)注冊。句法<table>tableseeoriginaldocumentpage14</column></row><table>jphRegistration^來自PeerPnr。Reaister的注冊的句柄l對(duì)等網(wǎng)絡(luò)200中的參與者可能希望收集關(guān)于對(duì)等網(wǎng)絡(luò)上的可用資源,例如其它端點(diǎn)的信息。該簡單PNRPAPI支持用于確定關(guān)于云和其它端點(diǎn)的信息的若干調(diào)用。云信息可通過發(fā)出PeerPnrpGetCloudlnfo(對(duì)等PNRP獲取云信息)調(diào)用來返回,如下所述。PeerPnrpGetCloudlnfo該方法將檢索所有云名稱。句法hresultwinapiPeerPnrpGetCloudinfo(ULONG*pcNumClouds,PPEER—PNRP—CLOUD—INFO*ppCloudlnfO皇變奠—一—「____________________________—_____pcNumCloudsippwzCloudNames所指向的云名稱的數(shù)目ppCloudlnfol云信息。該參數(shù)必須經(jīng)由PeerFreeData來釋放。typedefstructpeer_pnrp_cloud—info一tagwcharwzcloudName[max—cloud—name];DWORDdwScope;;jDWORDdwScopeld;}PEEJ^—PIMRP一CLgup一INFq^*PPEER—PNRP—CLOUD_INFO',存在用于檢索關(guān)于對(duì)等網(wǎng)絡(luò)中的端點(diǎn)的信息的兩個(gè)選項(xiàng)。第一個(gè)啟動(dòng)與以同步(成塊(blocked))方式從對(duì)等點(diǎn)名稱和相關(guān)聯(lián)的數(shù)據(jù)中檢索端點(diǎn)相關(guān)聯(lián)的進(jìn)程并在完成解析進(jìn)程時(shí)返回結(jié)果。第二個(gè)選項(xiàng)在一個(gè)兩步過程中解析端點(diǎn)。第一步啟動(dòng)異步(非成塊)方式的數(shù)據(jù)收集。在大多數(shù)情況下,該異步方法可通過允許其它活動(dòng),包括其它對(duì)等網(wǎng)絡(luò)活動(dòng)并行地發(fā)生來提供更多效用。第二步涉及檢索在非成塊解析步驟期間累積的特定端點(diǎn)數(shù)據(jù)。同步(成塊)調(diào)用如下所述。PeerPnrpResolve該方法執(zhí)行同步(成塊)解析。句法HRESULTWINAPIPeerPnrpResolve(inPCWSTRpcwzPeerName,inpcwstrpcwzcloudNameoptional,INOUTULONG*pcEndpoints,OUTPPEER—PNRP—ENDPOINT—INFO*ppEndPointlnf0L.);....................————_________—______________—__________^———————自變j<table>tableseeoriginaldocumentpage16</column></row><table>對(duì)于非成塊功能,使用PeerPnrpStartResolve(對(duì)等PNRP開始解析)。為使用特定的超時(shí),使用異步版本。如果CloudName為空且解析在所有云中進(jìn)行,則解析將在每一云中同時(shí)發(fā)出。該方法在其一從任何云組合接收到足夠結(jié)果時(shí)就返回。異步(非成塊)調(diào)用和用于停止解析進(jìn)程并在可用時(shí)檢索結(jié)果的相關(guān)調(diào)用如下所述。PeerPnrpStartResolve該方法執(zhí)行異步(非成塊)解析。這是執(zhí)行解析的推薦方式,尤其是在期望多個(gè)端點(diǎn)的時(shí)候。句法<table>tableseeoriginaldocumentpage16</column></row><table>,自變量<table>tableseeoriginaldocumentpage16</column></row><table>。當(dāng)找到結(jié)果時(shí),用發(fā)出hEvent的信號(hào)。應(yīng)用程序然后可調(diào)用PeerPnrpGetEndpoint(對(duì)等PNRP獲取端點(diǎn))來檢索解析的端點(diǎn)。在另一實(shí)施例中,結(jié)果可經(jīng)由對(duì)作出請(qǐng)求的進(jìn)程的回調(diào)來返回。PeerPnrpStopResoIve該方法將從對(duì)PeerPnrpStartResolve的調(diào)用中取消正在進(jìn)行的解析。句法<table>tableseeoriginaldocumentpage16</column></row><table>自變量hResolvej來自PeerPnrpStarmesolve的解析句柄。當(dāng)解析對(duì)等網(wǎng)絡(luò)的進(jìn)程具有足夠數(shù)據(jù)時(shí),使得關(guān)于端點(diǎn)的數(shù)據(jù)可用。該數(shù)據(jù)然后可在第二步中使用PeerPnrpGetEndpoint調(diào)用來檢索。PeerPnrpGetEndpoint該方法用于從先前對(duì)PeerPnrpStartResolve的調(diào)用中檢索端點(diǎn)。句法<table>tableseeoriginaldocumentpage17</column></row><table>自變量;<table>tableseeoriginaldocumentpage17</column></row><table>錯(cuò)誤<table>tableseeoriginaldocumentpage17</column></row><table>該方法是同樣包括PeerPnrpStartResolve和PeerPnrpStopResolve的異步解析PnrpAPI的一部分。用于包含關(guān)于PNRP端點(diǎn)的數(shù)據(jù)的結(jié)構(gòu)的細(xì)節(jié)如下所述。PeerPnrpEndpointlnfo用于包含PNRP端點(diǎn)的主要數(shù)據(jù)結(jié)構(gòu)。句法<table>tableseeoriginaldocumentpage17</column></row><table>元素<table>tableseeoriginaldocumentpage17</column></row><table>盡管上文闡明了本發(fā)明的眾多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,本發(fā)明的范圍是由本專利開頭的權(quán)利要求書的文字來定義的。該詳細(xì)描述應(yīng)被解釋為僅是示例性的,并且未描述本發(fā)明的每一可能的實(shí)施例,因?yàn)槊枋雒恳豢赡艿膶?shí)施例即使不是不可能的也是不切實(shí)際的??墒褂矛F(xiàn)有技術(shù)或在本專利的提交日之后開發(fā)的技術(shù)來實(shí)現(xiàn)眾多替換實(shí)施例,這仍落入定義本發(fā)明的權(quán)利要求書的范圍之內(nèi)。由此,可對(duì)此處所描述并示出的技術(shù)和結(jié)構(gòu)作出許多修改和變化而不脫離本發(fā)明的精神和范圍。因此,應(yīng)當(dāng)理解,此處所描述的方法和裝置僅是說明性的,而非限制本發(fā)明的范圍。權(quán)利要求1.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于實(shí)現(xiàn)一傳遞用于對(duì)在對(duì)等網(wǎng)絡(luò)中參與的生命周期支持的數(shù)據(jù)的方法,所述方法包括處理用于向云中的其它節(jié)點(diǎn)通知關(guān)于所述對(duì)等網(wǎng)絡(luò)中的一端點(diǎn)的狀態(tài)變化的調(diào)用;處理用于交換關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的名稱注冊數(shù)據(jù)的調(diào)用;以及處理用于報(bào)告關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的名稱注冊數(shù)據(jù)和空值之一的調(diào)用,其中所述名稱注冊數(shù)據(jù)包括具有對(duì)等標(biāo)識(shí)符、地址/端口對(duì)的計(jì)數(shù)、地址/端口對(duì)的數(shù)組、以及對(duì)應(yīng)于所述至少一個(gè)其它端點(diǎn)的有效載荷中的至少一個(gè)的數(shù)據(jù)結(jié)構(gòu),并且所述空值指示沒有找到任何端點(diǎn)。2.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于向云中的其它節(jié)點(diǎn)通知關(guān)于所述端點(diǎn)的狀態(tài)變換的調(diào)用包括接收用于分發(fā)端點(diǎn)數(shù)據(jù)的、具有包括對(duì)等點(diǎn)名稱的多個(gè)調(diào)用參數(shù)的調(diào)用;以及用包括與所述端點(diǎn)相關(guān)聯(lián)的注冊句柄的參數(shù)來響應(yīng)。3.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于向云中的其它節(jié)點(diǎn)通知關(guān)于所述端點(diǎn)的狀態(tài)變化的調(diào)用包括接收具有多個(gè)調(diào)用參數(shù)的PeerPnrpRegister調(diào)用,所述多個(gè)調(diào)用參數(shù)包括對(duì)等點(diǎn)名稱、指定一個(gè)或多個(gè)云的云數(shù)據(jù)、以及一個(gè)或多個(gè)地址/套接字信息對(duì)中的至少一個(gè)。4.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于向云中的其它節(jié)點(diǎn)通知關(guān)于所述端點(diǎn)的狀態(tài)變化的調(diào)用包括接收用于改變關(guān)于端點(diǎn)的注冊數(shù)據(jù)的、具有多個(gè)調(diào)用參數(shù)的調(diào)用,所述多個(gè)參數(shù)包括與所述端點(diǎn)相關(guān)聯(lián)的注冊句柄和更新的注冊數(shù)據(jù)中的至少一個(gè),所述更新的注冊數(shù)據(jù)包括指定一個(gè)或多個(gè)云的云數(shù)據(jù)以及一個(gè)或多個(gè)地址/套接字信息對(duì)中的至少一個(gè)。5.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于向云中的其它節(jié)點(diǎn)通知關(guān)于所述端點(diǎn)的狀態(tài)變化的調(diào)用包括接收用于移除與一端點(diǎn)相關(guān)聯(lián)的注冊數(shù)據(jù)的、具有包括與所述對(duì)等點(diǎn)名稱相關(guān)聯(lián)的注冊句柄的調(diào)用參數(shù)的調(diào)用。6.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于交換關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的名稱注冊數(shù)據(jù)的調(diào)用包括-接收對(duì)以成塊方式收集端點(diǎn)信息的請(qǐng)求,所述請(qǐng)求具有多個(gè)調(diào)用參數(shù),所述多個(gè)調(diào)用參數(shù)包括對(duì)等點(diǎn)名稱、云名稱以及要返回的最大結(jié)果數(shù)中的至少一個(gè);以及用關(guān)于端點(diǎn)的零個(gè)或多個(gè)實(shí)例的端點(diǎn)信息來響應(yīng)。7.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于交換關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的名稱注冊數(shù)據(jù)的調(diào)用包括.-接收對(duì)以非成塊方式收集端點(diǎn)信息的請(qǐng)求,所述請(qǐng)求具有多個(gè)調(diào)用參數(shù),所述多個(gè)調(diào)用參數(shù)包括對(duì)等點(diǎn)名稱、云名稱、以及要返回的最大結(jié)果數(shù)中的至少一個(gè)o8.如權(quán)利要求7所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過回調(diào)以及具有事件句柄的信號(hào)之一返回結(jié)果。9.如權(quán)利要求1所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理所述用于交換關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的名稱注冊數(shù)據(jù)的調(diào)用包括接收對(duì)停止進(jìn)行中的解析請(qǐng)求的請(qǐng)求,所述請(qǐng)求具有至少包括與所述進(jìn)行中的解析請(qǐng)求相關(guān)聯(lián)的事件句柄的調(diào)用參數(shù)。10.如權(quán)利要求l所述的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,處理用于報(bào)告關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的數(shù)據(jù)的調(diào)用包括-接收對(duì)接收對(duì)應(yīng)于先前的解析請(qǐng)求的結(jié)果的數(shù)據(jù)的請(qǐng)求,所述請(qǐng)求具有包括與所述先前的解析請(qǐng)求相關(guān)聯(lián)的事件句柄的至少一個(gè)調(diào)用參數(shù),其中所述事件句柄指向具有關(guān)于零個(gè)或多個(gè)其它端點(diǎn)的信息的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)具有對(duì)應(yīng)于其它端點(diǎn)的零個(gè)或多個(gè)對(duì)等標(biāo)識(shí)符、與所述其它端點(diǎn)相關(guān)聯(lián)的地址/端口對(duì)的數(shù)目、有效載荷的字節(jié)計(jì)數(shù)、以及關(guān)于所述其它端點(diǎn)的信息的有效載荷的條目。11.一種在請(qǐng)求進(jìn)程和服務(wù)進(jìn)程之間進(jìn)行通信的、支持對(duì)等網(wǎng)絡(luò)中的通信的方法,包括處理用于在所述對(duì)等網(wǎng)絡(luò)中的第一端點(diǎn)和至少一個(gè)其它實(shí)體之間交換數(shù)據(jù)的調(diào)用,其中所述至少一個(gè)其它實(shí)體是云的成員以及另一端點(diǎn)之一;以及處理用于報(bào)告關(guān)于所述對(duì)等網(wǎng)絡(luò)中的至少一個(gè)其它端點(diǎn)的數(shù)據(jù)的調(diào)用。12.如權(quán)利要求11所述的方法,其特征在于,所述處理用于交換數(shù)據(jù)的調(diào)用包括由所述請(qǐng)求進(jìn)程發(fā)出檢索所有云名稱的PeerPnrpGetCloudlnfo調(diào)用;由所述服務(wù)進(jìn)程接收所述PeerPnrpGetCloudlnfo調(diào)用;以及由所述服務(wù)進(jìn)程向所述請(qǐng)求進(jìn)程發(fā)出包括所返回的云名稱的數(shù)目以及對(duì)應(yīng)于每一所返回的云名稱的信息的響應(yīng)。13.如權(quán)利要求11所述的方法,其特征在于,所述處理用于交換數(shù)據(jù)的調(diào)用包括由所述請(qǐng)求進(jìn)程發(fā)出包括對(duì)等點(diǎn)名稱、云名稱以及要返回的最大結(jié)果的數(shù)目中的至少一個(gè)的PeerPnrpResolve請(qǐng)求;由所述服務(wù)進(jìn)程接收以成塊方式處理所述請(qǐng)求的PeerPnrpResolve請(qǐng)求;以及由所述服務(wù)進(jìn)程向所述請(qǐng)求進(jìn)程發(fā)出包括用于以信號(hào)表示結(jié)果的可用性并用于檢索所述結(jié)果的事件句柄的響應(yīng)。14.如權(quán)利要求11所述的方法,其特征在于,所述處理用于交換數(shù)據(jù)的調(diào)用包括由所述請(qǐng)求進(jìn)程發(fā)出包括對(duì)等點(diǎn)名稱、云名稱和要返回的最大結(jié)果的數(shù)目中的至少一個(gè)的PeerPnrpStartResolve請(qǐng)求;由所述服務(wù)進(jìn)程接收以非成塊方式處理所述請(qǐng)求的PeerPnrpStartResolve請(qǐng)求;以及由所述服務(wù)進(jìn)程向所述請(qǐng)求進(jìn)程發(fā)出包括用于以信號(hào)表示結(jié)果的可用性并用于檢索所述結(jié)果的事件句柄的響應(yīng)。15.如權(quán)利要求11所述的方法,其特征在于,所述處理用于交換數(shù)據(jù)的調(diào)用包括'由所述請(qǐng)求迸程發(fā)出向至少一個(gè)相關(guān)聯(lián)的云添加端點(diǎn)數(shù)據(jù)的PeerPnrpRegister調(diào)用,所述調(diào)用包括對(duì)等點(diǎn)名稱;由所述服務(wù)進(jìn)程接收所述PeerPnrpRegister調(diào)用并將關(guān)于所述端點(diǎn)的數(shù)據(jù)和所述對(duì)等點(diǎn)名稱發(fā)送到零個(gè)或多個(gè)其它實(shí)體;以及由所述服務(wù)進(jìn)程向所述請(qǐng)求進(jìn)程發(fā)出包括與所述端點(diǎn)數(shù)據(jù)相關(guān)聯(lián)的注冊句柄的響應(yīng)。16.如權(quán)利要求15所述的方法,其特征在于,由所述請(qǐng)求進(jìn)程發(fā)出PeerPnrpRegister調(diào)用還包括由所述請(qǐng)求進(jìn)程發(fā)出向至少一個(gè)相關(guān)聯(lián)的云添加端點(diǎn)數(shù)據(jù)的PeerPnrpRegister調(diào)用,所述調(diào)用包括對(duì)等點(diǎn)名稱和至少一個(gè)注冊參數(shù),所述注冊單數(shù)包括云名稱、要公布的地址的計(jì)數(shù)、地址/套接字對(duì)的數(shù)組、用于自動(dòng)選擇的地址的端口、注解字段、以及對(duì)應(yīng)于所述注冊的信息的有效載荷中的至少一個(gè)。17.如權(quán)利要求11所述的方法,其特征在于,所述處理用于交換數(shù)據(jù)的調(diào)用包括由所述請(qǐng)求進(jìn)程發(fā)出更新所述對(duì)等網(wǎng)絡(luò)的至少一部分中的端點(diǎn)數(shù)據(jù)的PeerPnrpUpdateRegistmtion調(diào)用,所述調(diào)用包括對(duì)等點(diǎn)名稱和更新的端點(diǎn)數(shù)據(jù);以及由所述服務(wù)進(jìn)程接收所述PeerPnrpUpdateRegistration調(diào)用,并將包括所述對(duì)等點(diǎn)名稱和更新的端點(diǎn)數(shù)據(jù)的數(shù)據(jù)發(fā)送到至少一個(gè)周圍的實(shí)體。18.—種適用于參與對(duì)等網(wǎng)絡(luò)的計(jì)算機(jī),包括用于經(jīng)由網(wǎng)絡(luò)交換數(shù)據(jù)的網(wǎng)絡(luò)通信設(shè)備;以及儲(chǔ)存機(jī)器可執(zhí)行指令的存儲(chǔ)器;用于執(zhí)行實(shí)現(xiàn)一方法的機(jī)器可讀指令的處理器,所述方法包括處理用于注冊對(duì)等網(wǎng)絡(luò)端點(diǎn)的調(diào)用,所述調(diào)用具有對(duì)等點(diǎn)名稱和單個(gè)屬性預(yù)定義值;以及選擇一有效地址來向所述對(duì)等網(wǎng)絡(luò)注冊。19.如權(quán)利要求18所述的計(jì)算機(jī),其特征在于,所述存儲(chǔ)器儲(chǔ)存用于實(shí)現(xiàn)所述方法的指令,所述方法還包括當(dāng)主機(jī)地址改變時(shí)自動(dòng)更新所述有效地址。20.如權(quán)利要求18所述的計(jì)算機(jī),其特征在于,所述存儲(chǔ)器儲(chǔ)存用于實(shí)現(xiàn)所述方法的指令,所述方法還包括當(dāng)發(fā)現(xiàn)新的云時(shí)在所述新的云中自動(dòng)更新所述有效地址。全文摘要一種用于發(fā)送和接收端點(diǎn)注冊數(shù)據(jù)和對(duì)等網(wǎng)絡(luò)云數(shù)據(jù)的應(yīng)用程序接口(API)具有用于向?qū)Φ染W(wǎng)絡(luò)添加端點(diǎn)數(shù)據(jù)的注冊調(diào)用。當(dāng)對(duì)等網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)改變時(shí),該API可接收關(guān)于地址信息的明確數(shù)據(jù),或者可被指示來選擇并維護(hù)適當(dāng)?shù)牡刂沸畔?。展示了用于檢索信息對(duì)等網(wǎng)絡(luò)端點(diǎn)數(shù)據(jù)的成塊和非成塊調(diào)用。文檔編號(hào)G06F15/16GK101278274SQ200680036349公開日2008年10月1日申請(qǐng)日期2006年10月2日優(yōu)先權(quán)日2005年9月30日發(fā)明者B·R·里艾倫,D·G·泰勒,J·L·德威,N·霍頓,S·A·森克斯蒂,T·R·曼尼恩,U·W·帕克斯三世申請(qǐng)人:微軟公司