專利名稱:分布式路由表體系結(jié)構(gòu)和設(shè)計(jì)的制作方法
分布式路由表體系結(jié)構(gòu)和設(shè)計(jì)
背景
計(jì)算設(shè)備的網(wǎng)絡(luò)通常包括用作定向該網(wǎng)絡(luò)上的消息通信的"路由器"的至 少一個(gè)計(jì)算設(shè)備。傳統(tǒng)上,路由器連接兩個(gè)或更多子網(wǎng)以使得不同子網(wǎng)上的計(jì)
算設(shè)備之間的消息被定向到適當(dāng)?shù)淖泳W(wǎng)以便傳遞到其目標(biāo)目的地。路由器的功 能的中心是"路由表",其將各個(gè)計(jì)算設(shè)備的標(biāo)識(shí)符與可用于到達(dá)該計(jì)算機(jī)的 網(wǎng)絡(luò)路徑相關(guān)。路由表能夠以各種方式實(shí)現(xiàn),并且不限于傳統(tǒng)的査找表。的確, 雖然傳統(tǒng)的査找表可適用于實(shí)現(xiàn)用于包括有限數(shù)量的計(jì)算設(shè)備的網(wǎng)絡(luò)的路由 表,但用于諸如無處不在的因特網(wǎng)等包括數(shù)百萬個(gè)單獨(dú)的計(jì)算設(shè)備的大型網(wǎng)絡(luò) 的路由器表可改為以為高效信息檢索而設(shè)計(jì)的獨(dú)特構(gòu)造的形式實(shí)現(xiàn)。
路由表中所包含的信息同樣可取決于所使用的路由類型而變化。例如,在 被稱為"逐跳路由"的簡(jiǎn)單路由方案中,路由表可將各個(gè)計(jì)算設(shè)備的標(biāo)識(shí)符與 沿著到該目的地的路徑的下一個(gè)設(shè)備(換言之,下一 "跳")的地址相關(guān)。或 者,更復(fù)雜的路由方案基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的知識(shí)并且因此,這一方案中的路由 農(nóng)可將各個(gè)計(jì)算設(shè)備的標(biāo)識(shí)符與到該計(jì)算設(shè)備的一條或多條路徑相關(guān)。
因?yàn)槁酚善骺砂▽?duì)于網(wǎng)間通信而言是重要的信息,所以路由器很容易會(huì) 成為網(wǎng)絡(luò)通信的瓶頸。例如,如果路由器變成阻塞的或無響應(yīng)的,則該路由器 可能減緩或甚至中斷各種網(wǎng)絡(luò)通信。為了消除這一瓶頸,可使用分布式路由表
(DRT),藉此多個(gè)計(jì)算設(shè)備能夠各自主存能夠以分布式方式使用的路由表的 部分或全部。例如,多個(gè)計(jì)算設(shè)備中的每一個(gè)都能夠主存DRT中包括關(guān)于網(wǎng) 絡(luò)上的計(jì)算設(shè)備的子集的信息的部分。由此,對(duì)于由計(jì)算設(shè)備接收到的目的地 并非該計(jì)算設(shè)備的每一個(gè)消息,該計(jì)算設(shè)備可參考其在DRT中的部分并標(biāo)識(shí) 更有可能能夠最終將該消息傳遞到其預(yù)期接收者的另一計(jì)算設(shè)備。與在其發(fā)生 故障時(shí)不再能夠?qū)⑾⒍ㄏ虻狡漕A(yù)期目的地的集中式路由器不同,即使一個(gè)或 多個(gè)計(jì)算設(shè)備發(fā)生故障DRT也能夠繼續(xù)定向消息。在這一故障情形中,其余 可操作的計(jì)算設(shè)備將消息定向到其他仍舊可操作的計(jì)算設(shè)備即可,并由此最終 將消息傳遞至其預(yù)期目的地。概述
在 一個(gè)或多個(gè)計(jì)算設(shè)備上執(zhí)行的多個(gè)應(yīng)用程序可基于分布式路由表拓?fù)?結(jié)構(gòu)來實(shí)現(xiàn)應(yīng)用程序間通信。為了最小化給予這些應(yīng)用程序之間的惡意行為的 機(jī)會(huì),在--個(gè)實(shí)施例中消息可由從根證書中導(dǎo)出的證書來簽署。由此,可首先 驗(yàn)證接收到的消息已由證書正確地簽署,并且隨后可驗(yàn)證證書本身以確保該證 書是從一個(gè)或多個(gè)預(yù)先選擇的根證書中正確導(dǎo)出的。這些驗(yàn)證可由模塊化的安 全模塊來執(zhí)行,該模塊由于其模塊化的設(shè)計(jì)而能夠由可基于替換安全機(jī)制的另 一安全模塊來高效地替代。
這一模塊化方法可被應(yīng)用于DRT操作中所使用的其他元件,從而向?qū)崿F(xiàn) DRT網(wǎng)絡(luò)的那些應(yīng)用程序提供更大的靈活性。例如,在一個(gè)實(shí)施例中,可使用 模塊化的傳輸模塊來使得應(yīng)用程序能夠使用多個(gè)獨(dú)特的網(wǎng)絡(luò)通信協(xié)議中的任 -個(gè)來進(jìn)行通信。由此, 一個(gè)傳輸模塊能夠使用普遍存在的的傳輸控制協(xié)議 (TCP)來實(shí)現(xiàn)通信,而另一傳輸模塊能夠使用諸如用戶數(shù)據(jù)報(bào)協(xié)議(UDP) 等某--其他協(xié)議來實(shí)現(xiàn)通信。類似地,可使用模塊化的引導(dǎo)模塊來使得應(yīng)用程 序能夠基于各種對(duì)等協(xié)議或其他名稱解析協(xié)議來形成和加入DRT網(wǎng)絡(luò)。例如, 一個(gè)引導(dǎo)模塊使得能夠基于對(duì)等名稱解析協(xié)議(PNRP)來形成和加入DRT網(wǎng) 絡(luò),而另--引導(dǎo)模塊能夠與域名服務(wù)(DNS) —起工作。
在DRT的操作中所使用的模塊中, 一個(gè)實(shí)施例構(gòu)想存在能夠基于網(wǎng)絡(luò)局 部性來維護(hù)路由表的路由表管理模塊。更具體而言,DRT中的每一個(gè)單獨(dú)的路 由表中的條目標(biāo)識(shí)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的意義上"靠近"路由表管理模塊在其上執(zhí) 行的計(jì)算設(shè)備的計(jì)算設(shè)備。這些"靠近"的條目可通過例如將與將要添加到路 由表的設(shè)備的通信的往返時(shí)間與已經(jīng)在該表中的設(shè)備的往返時(shí)間進(jìn)行比較,并 且僅在到該新設(shè)備的通信的往返時(shí)間更短的情況下將該新設(shè)備添加到該表來 維護(hù)。通過提供引用本地計(jì)算設(shè)備的路由表,可提高DRT網(wǎng)絡(luò)的總體效率。
提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 -些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征, 也不旨在用于限定所要求保護(hù)的主題的范圍。
當(dāng)參考附圖閱讀以下詳細(xì)描述時(shí),將使得其它特征和優(yōu)點(diǎn)是顯而易見的。
以下詳細(xì)描述在結(jié)合附圖參考時(shí)可得到最佳的理解,附圖中
圖1是示例性DRT網(wǎng)絡(luò)的網(wǎng)絡(luò)圖2是示例性計(jì)算設(shè)備的框圖3是可由應(yīng)用程序調(diào)用的示例性DRT機(jī)制的框圖
圖4是用于實(shí)例化DRT機(jī)制的示例性步驟的流程閣5是用于加入DRT網(wǎng)絡(luò)的示例性步驟的流程圖6是使得能夠向DRT網(wǎng)絡(luò)注冊(cè)計(jì)算設(shè)備的一系列示例性通信的通信圖
以及
圖7是使得能夠搜索DRT網(wǎng)絡(luò)上的計(jì)算設(shè)備的一系列示例性通信的通信圖。
詳細(xì)描述
以下描述涉及用于實(shí)現(xiàn)并使用依靠分布式路由表(DRT)的計(jì)算設(shè)備的網(wǎng) 絡(luò)的機(jī)制。具體而言,每一個(gè)計(jì)算設(shè)備都可主存可擔(dān)當(dāng)基于DRT的網(wǎng)絡(luò)的端 點(diǎn)的--個(gè)或多個(gè)應(yīng)用程序。這些應(yīng)用程序可實(shí)例化能夠維護(hù)DRT的每一個(gè)單 獨(dú)部分并且還可提供通信和安全基礎(chǔ)結(jié)構(gòu)的進(jìn)程,從而使得這些應(yīng)用程序能夠 創(chuàng)建并使用依靠DRT的網(wǎng)絡(luò)。
與DRT的實(shí)現(xiàn)相關(guān)的各種任務(wù)可被組件化,以使得可互換的組件能夠提 供各種各樣的功能。在一個(gè)實(shí)施例中,安全模塊可由應(yīng)用程序來從一個(gè)或多個(gè) 安全模塊中選擇,其中每一個(gè)安全模塊都可根據(jù)該模塊所實(shí)現(xiàn)的特定安全策略 來驗(yàn)證傳入消息。在另一實(shí)施例中,傳輸模塊可由應(yīng)用程序來從一個(gè)或多個(gè)傳 輸模塊中選擇,其中每一個(gè)傳輸模塊都可使用不同的網(wǎng)絡(luò)傳輸協(xié)議來提供通 信。同樣,其他實(shí)施例構(gòu)想引導(dǎo)模塊或記錄模塊,這兩個(gè)模塊中的每一個(gè)都可
由應(yīng)用程序來從提供相同的基本功能但各自實(shí)現(xiàn)該模塊專用的機(jī)制的一個(gè)或 多個(gè)模塊中選擇。
又一實(shí)施例構(gòu)想路由表管理模塊,該模塊可管理DRT的每一部分的條目 以確保每--個(gè)路由表中的條目標(biāo)識(shí)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中最接近該計(jì)算設(shè)備的計(jì)算設(shè)備。在一個(gè)實(shí)施例中,路由表中的條目或潛在條目的接近度可通過由該條 目標(biāo)識(shí)的計(jì)算設(shè)備和路由表管理模塊在其上執(zhí)行的計(jì)算設(shè)備之間的通信的往 返時(shí)間來確定。由此,如果路由表已經(jīng)包括足夠數(shù)量的條目,則在一個(gè)實(shí)施例 中,僅在潛在條目的往返時(shí)間少于當(dāng)前在該路由表中的至少一個(gè)條目的往返時(shí) 間的情況下可添加該潛在條目。在一替換實(shí)施例中,可自由地向路由表添加條 目,但路由表管理模塊可周期性地或另外如所請(qǐng)求地測(cè)試該路由表中的一個(gè)或 多個(gè)條目的往返時(shí)間,并且可丟棄往返時(shí)間大于所確定的閾值的那些條目或者 只保留閾值數(shù)量的條目。
在另一實(shí)施例中,安全模塊可基于一個(gè)或多個(gè)預(yù)定義根證書來施加安全措
施。具體而言,在接收到關(guān)于基于DRT的網(wǎng)絡(luò)的管理的消息后,這一安全模 塊可驗(yàn)證所接收到的消息已由與該消息一起提供的證書正確地簽署,以及所提 供的證書構(gòu)成回頭通向預(yù)定義根證書中的--個(gè)的證書鏈。根證書可由本地認(rèn)證 機(jī)構(gòu)(CA)或諸如通過因特網(wǎng)來銷售和提供服務(wù)的商業(yè)CA中的任一個(gè)等外部 CA來提供。
此處所描述的技術(shù)聚焦于但不限于,用于創(chuàng)建、加入和管理在一個(gè)或多個(gè) 物理計(jì)算設(shè)備上執(zhí)行的多個(gè)應(yīng)用程序的網(wǎng)絡(luò)的機(jī)制,且每一個(gè)計(jì)算設(shè)備通過一 個(gè)或多個(gè)子網(wǎng)物理地連網(wǎng)到其他計(jì)算設(shè)備。為了在計(jì)算設(shè)備之間的物理網(wǎng)絡(luò)連 接與一系列互相通信的應(yīng)用程序之間的物理網(wǎng)絡(luò)連接之間進(jìn)行區(qū)分,后者將被 稱為"網(wǎng)格"。由此,使用分布式路由表(DRT)來路由網(wǎng)格中的消息的網(wǎng)格 將被稱為"DRT網(wǎng)格"。
轉(zhuǎn)向圖1,示出了示例性DRT網(wǎng)格99,其包括通過網(wǎng)絡(luò)90聯(lián)網(wǎng)在一起的 計(jì)算設(shè)備IO、 20、 30、 40和50。在所示的示例性DRT網(wǎng)格99中,參與的計(jì) 算設(shè)備IO、 20、 30、 40和50中的每一個(gè)都可包括鍵和路由表。每一個(gè)鍵都可 擔(dān)當(dāng)計(jì)算設(shè)備本身或在該計(jì)算設(shè)備上執(zhí)行的特定進(jìn)程或應(yīng)用程序的唯一標(biāo)識(shí) 符。例如,普遍存在的網(wǎng)際協(xié)議(IP)地址是用于標(biāo)識(shí)網(wǎng)絡(luò)中遵照該網(wǎng)際協(xié)議 的端點(diǎn)的一種類型的鍵。在所示的示例性DRT網(wǎng)格99中,計(jì)算設(shè)備IO、 20、 30、 40和50已被分別分配鍵1000、 2000、 3000、 4000和5000 。
計(jì)算設(shè)備10、 20、 30、 40和50的路由表11、 21、 31、 41和51中的每一 個(gè)分別只包括路由信息的可用部分。相反,擔(dān)當(dāng)用于DRT網(wǎng)格99的單個(gè)分布式路由表的是路由表ll、 21、 31、 41和51的組合。例如,為了將通信發(fā)送到 訃算設(shè)備40,計(jì)算設(shè)備20首先可確定其正在搜索的鍵是鍵4000。 一旦計(jì)算設(shè) 備20標(biāo)識(shí)了鍵4000,它就可參考其路由表21以搜索到鍵4000的最近條目。 在路由表21中,計(jì)算設(shè)備20可將鍵3000或鍵5000標(biāo)識(shí)為最近。選擇例如鍵 3000可使得計(jì)算設(shè)備20發(fā)起與鍵3000所標(biāo)識(shí)的計(jì)算設(shè)備30的通信并且請(qǐng)求 該計(jì)算設(shè)備30將通信從計(jì)算設(shè)備20轉(zhuǎn)發(fā)至具有鍵4000的計(jì)算設(shè)備。計(jì)算設(shè) 備30可參考其自己的路由表31并且可標(biāo)識(shí)鍵4000。因此,將該通信從計(jì)算設(shè) 備20轉(zhuǎn)發(fā)至具有鍵4000的計(jì)算設(shè)備40。以此方式,通信可在參與圖1的DRT 網(wǎng)格99的任何計(jì)算設(shè)備之間路由,即使每一個(gè)計(jì)算設(shè)備都只包括總路由表的 -部分。
雖然未作要求,但以下描述將處在諸如程序模塊等正由一個(gè)或多個(gè)計(jì)算設(shè) 備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中。更具體而言,除非另外指明,否 則描述將參考一個(gè)或多個(gè)計(jì)算設(shè)備或外圍設(shè)備所執(zhí)行的動(dòng)作以及其所執(zhí)行的 操作的符號(hào)表示。由此,可以理解,這些有時(shí)被稱為計(jì)算機(jī)執(zhí)行的動(dòng)作和操作 包括以結(jié)構(gòu)化形式表示數(shù)據(jù)的電信號(hào)的處理單元的操縱。該操縱在存儲(chǔ)器中的 各個(gè)位置變換或維護(hù)數(shù)據(jù),這以本領(lǐng)域技術(shù)人員都理解的方式重新配置或以其 他方式更改計(jì)算設(shè)備或外圍設(shè)備的操作。其中維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是具有由該 數(shù)據(jù)的格式定義的特定特性的物理位置。
一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、 程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到這些計(jì)算 設(shè)備不必限于常規(guī)個(gè)人計(jì)算機(jī),并且包括其他計(jì)算配置,包括手持式設(shè)備、 多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì) 算機(jī)、大型計(jì)算機(jī)等等。類似地,這些計(jì)算設(shè)備不必限于獨(dú)立計(jì)算設(shè)備,因 為各機(jī)制也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分 布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程 存儲(chǔ)器存儲(chǔ)設(shè)備中。
參考圖2,示出了示例性計(jì)算設(shè)備100。計(jì)算設(shè)備100可表示圖1的計(jì)算 設(shè)備10、 20、 30、 40和50中的任一個(gè)。示例性計(jì)算設(shè)備100可包括但不限于, -個(gè)或多個(gè)中央處理單元(CPU) 120、系統(tǒng)存儲(chǔ)器130和將包括該系統(tǒng)存儲(chǔ)
10器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可 以是兒種類型的總線結(jié)構(gòu)中的任何--種,包括存儲(chǔ)器總線或存儲(chǔ)控制器、外圍 總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。
計(jì)算設(shè)備100通常還包括能夠包括可由計(jì)算設(shè)備100訪問的任何可用介質(zhì) 的計(jì)算機(jī)可讀介質(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)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但 不限于,RAM、 ROM、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字 多功能盤(DVD)或其它光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ) 設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算設(shè)備100訪問的任何其它介質(zhì)。通 信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀 指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任意信息傳送介質(zhì)。作為示例 而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介 質(zhì),諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述中任一組合也應(yī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ì)算設(shè)備100中元件之間傳遞信息的 基本例程,它通常存儲(chǔ)在ROM131中。RAM132通常包含處理單元120可以 立即訪問和/或目前正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制, 圖2示出了操作系統(tǒng)134、其它程序模塊135和程序數(shù)據(jù)136。
計(jì)算機(jī)系統(tǒng)100還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī) 存儲(chǔ)介質(zhì)。僅僅作為示例,圖2示出了對(duì)不可移動(dòng)、非易失性磁性介質(zhì)進(jìn)行讀 寫的硬盤驅(qū)動(dòng)器141??梢耘c示例性計(jì)算設(shè)備一起使用的其它可移動(dòng)/不可移 動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多 功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141通常通 過諸如接口 140的不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121。
上文討論并在圖2中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算設(shè)備100提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。 例如,在圖2中,硬盤驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、其它程序模塊145 和程序數(shù)據(jù)146。注意,這些組件可以與操作系統(tǒng)134、其它程序模塊135和 程序數(shù)據(jù)136相同,也可以與它們不同。操作系統(tǒng)144、其它程序模塊145和 程序數(shù)據(jù)146在這里被標(biāo)注了不同的標(biāo)號(hào)是為了說明至少它們是不同的副本。
關(guān)于以下描述,計(jì)算設(shè)備100可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連 接在聯(lián)網(wǎng)環(huán)境中操作。為了說明簡(jiǎn)便起見,計(jì)算設(shè)備100在圖2中被示為連接 到不限于任何特定網(wǎng)絡(luò)或聯(lián)網(wǎng)協(xié)議的網(wǎng)絡(luò)卯。圖2所描繪的邏輯連接是一般網(wǎng) 絡(luò)連接171,其可以是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或其他網(wǎng)絡(luò)。計(jì)算設(shè) 備IOO通過網(wǎng)絡(luò)接口或適配器170連接到通用網(wǎng)絡(luò)連接171,網(wǎng)絡(luò)接口或適配 器170進(jìn)而連接到系統(tǒng)總線121,但將會(huì)認(rèn)識(shí)到,所示網(wǎng)絡(luò)連接是示例性的并 且可使用建立通信鏈路的其他手段。
在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算設(shè)備100或其部分或外圍設(shè)備所描繪的程序模 塊可被存儲(chǔ)在通過一般網(wǎng)絡(luò)連接171通信地耦合到計(jì)算設(shè)備100的一個(gè)或多個(gè) 貝:他計(jì)算設(shè)備的存儲(chǔ)器中。同樣,操作系統(tǒng)144和程序模塊145能夠與在計(jì)算 設(shè)備100可經(jīng)由 '般網(wǎng)絡(luò)連接171和網(wǎng)絡(luò)90通信地耦合到的其他計(jì)算設(shè)備上 執(zhí)行的其他操作系統(tǒng)和程序模塊進(jìn)行通信。在一個(gè)實(shí)施例中,程序模塊145包 括至少-—個(gè)應(yīng)用程序,該至少一個(gè)應(yīng)用程序經(jīng)由諸如圖1的DRT網(wǎng)格99等跨 網(wǎng)絡(luò)卯實(shí)現(xiàn)的DRT網(wǎng)格來與在其他計(jì)算設(shè)備上執(zhí)行的其他應(yīng)用程序進(jìn)行通
信°
轉(zhuǎn)向圖3,諸如將由程序模塊145中的一個(gè)或多個(gè)來創(chuàng)建的應(yīng)用程序進(jìn)程 200被示為包括用于通過諸如DRT網(wǎng)格99等DRT網(wǎng)格來與其他應(yīng)用程序進(jìn)程 進(jìn)行通信的元件。具體而言,圖3的應(yīng)用程序進(jìn)程包括應(yīng)用程序代碼210和兩 個(gè)節(jié)點(diǎn)實(shí)例220和230。對(duì)這兩個(gè)節(jié)點(diǎn)實(shí)例的說明旨在僅僅是示例性的,因?yàn)?可實(shí)例化任何數(shù)量的一個(gè)或多個(gè)節(jié)點(diǎn)實(shí)例作為諸如應(yīng)用程序進(jìn)程200等單個(gè)應(yīng) 用程序進(jìn)程的一部分。
在一個(gè)實(shí)施例中,每一個(gè)節(jié)點(diǎn)實(shí)例都可包括用于實(shí)現(xiàn)特殊化任務(wù)的多個(gè)組 件或模塊。由此,如圖所示,節(jié)點(diǎn)實(shí)例220包括節(jié)點(diǎn)221、路由表管理模塊222、 傳輸模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊226。節(jié)點(diǎn)實(shí)例230可包括類似的模塊,但圖3只示出了節(jié)點(diǎn)231。最初,如圖3的上面的箭頭所 示,傳輸模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊226可由應(yīng)用程 序代碼210來實(shí)例化到應(yīng)用程序進(jìn)程200中。隨后,節(jié)點(diǎn)221可由應(yīng)用程序代 碼210來實(shí)例化到應(yīng)用程序進(jìn)程200中,并且可被提供指向已經(jīng)實(shí)例化的傳輸 模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊226的實(shí)例的指針,如圖3 的下面的箭頭所示。節(jié)點(diǎn)221可實(shí)例化路由表管理模塊222并且可創(chuàng)建節(jié)點(diǎn)實(shí) 例220,該節(jié)點(diǎn)實(shí)例包括實(shí)例化的節(jié)點(diǎn)221、路由表管理模塊222、傳輸模塊 223、引導(dǎo)模塊224、安全模塊225和記錄模塊226的實(shí)例。
每一個(gè)節(jié)點(diǎn)實(shí)例220和230都可表示諸如圖1的DRT網(wǎng)格99等DRT網(wǎng) 格內(nèi)的可唯一-標(biāo)識(shí)的端點(diǎn)。由此,每一個(gè)節(jié)點(diǎn)實(shí)例220和230都可被分配對(duì)應(yīng) 于該節(jié)點(diǎn)實(shí)例的鍵標(biāo)識(shí)符,并且每一個(gè)節(jié)點(diǎn)實(shí)例都可允許應(yīng)用程序代碼以獨(dú)立 的方式與 -個(gè)或多個(gè)其他節(jié)點(diǎn)實(shí)例進(jìn)行通信。可以看出,單個(gè)計(jì)算設(shè)備且實(shí)際 上是單個(gè)應(yīng)用程序能夠主存多個(gè)節(jié)點(diǎn)實(shí)例。由此,雖然圖1以及隨后的圖6和 7各自將計(jì)算設(shè)備示為單個(gè)節(jié)點(diǎn)實(shí)例,但不應(yīng)將描述中的任何內(nèi)容解讀成需要 這樣的節(jié)點(diǎn)實(shí)例與計(jì)算設(shè)備或者節(jié)點(diǎn)實(shí)例與在這些計(jì)算設(shè)備上執(zhí)行的應(yīng)用程 序之間的一對(duì)一對(duì)應(yīng)關(guān)系。
轉(zhuǎn)向圖4,示出了例示可由應(yīng)用程序發(fā)起以建立諸如圖3的節(jié)點(diǎn)實(shí)例220 或230等節(jié)點(diǎn)實(shí)例的--系列示例性步驟的流程圖300。雖然流程圖300的步驟 按特定次序示出,但這一系列步驟中的許多步驟之間的確切關(guān)系是無關(guān)的,并 且因此,存在等價(jià)于所示排序的對(duì)流程圖300的步驟的多種排序。然而, 一般 而言,將發(fā)生某一發(fā)起步驟以使得應(yīng)用程序執(zhí)行所示步驟。由此,在圖4中, -個(gè)這樣的發(fā)起步驟是在步驟310處的應(yīng)用程序決定加入DRT網(wǎng)格。在這一 發(fā)起步驟之后,可發(fā)生多個(gè)實(shí)例化,但如圖所示,這些實(shí)例化的準(zhǔn)確次序并不 受限。
在流程圖300所示的示例中,在步驟320,應(yīng)用程序代碼210可實(shí)例化傳 輸模塊223。在一個(gè)實(shí)施例中,在步驟320處實(shí)例化的傳輸模塊223被特別設(shè) 計(jì)成使用特定傳輸協(xié)議來操作,并且應(yīng)用程序代碼210無需為了使得節(jié)點(diǎn)221 能夠利用傳輸模塊223而執(zhí)行任何進(jìn)一步的動(dòng)作。然而,在一替換實(shí)施例中, 傳輸模塊223能夠與多種不同的傳輸兼容。在這種情況下,應(yīng)用程序代碼210
13還可在步驟320處實(shí)例化傳輸模塊223后在步驟325處向該傳輸模塊通知要使 用的底層協(xié)議。
隨后,在步驟330,應(yīng)用程序代碼210可實(shí)例化安全模塊225,但是如先 前所指示的,安全模塊的實(shí)例化可等效地在傳輸模塊223的實(shí)例化之前發(fā)生。 旦實(shí)例化了安全模塊,在步驟335,應(yīng)用程序代碼210就可向該安全模塊提 供適當(dāng)?shù)陌踩珣{證。這些安全憑證可包括由應(yīng)用程序代碼210使用的私鑰和公 切對(duì)以及公鑰證書。在一個(gè)實(shí)施例中,在步驟335處提供的公鑰證書可從通過 DRT網(wǎng)格進(jìn)行通信的所有應(yīng)用程序所共有的根證書中導(dǎo)出。
在步驟330和335處實(shí)例化了安全模塊225并向其提供了相關(guān)信息之后, 在步驟340,應(yīng)用程序代碼210可實(shí)例化引導(dǎo)模塊224?;蛘撸缦惹八甘?的,引導(dǎo)模塊224的實(shí)例化也可等效地在傳輸模塊223和安全模塊225的實(shí)例 化中的任-'個(gè)或兩者之前發(fā)生。在一個(gè)實(shí)施例中,引導(dǎo)模塊224被特別設(shè)計(jì)成 使用從中發(fā)起與DRT網(wǎng)格的通信的特定網(wǎng)絡(luò)來操作,并且應(yīng)用程序代碼210 無需為了使得節(jié)點(diǎn)221能夠利用引導(dǎo)模塊224而執(zhí)行任何進(jìn)一步的動(dòng)作。在— ^換實(shí)施例中,引導(dǎo)模塊224可以更靈活,在這種情況下,應(yīng)用程序代碼210 還可在步驟340處實(shí)例化引導(dǎo)模塊224后在步驟345處向該引導(dǎo)模塊通知要使 用的特定網(wǎng)絡(luò)。
在步驟360處實(shí)例化節(jié)點(diǎn)之前,應(yīng)用程序代碼210可在步驟350處實(shí)例化 記錄模塊226。如同步驟320、 330和340的實(shí)例化一樣,記錄模塊226的實(shí)例 化不必按相對(duì)于傳輸模塊223、安全模塊225或引導(dǎo)模塊224的實(shí)例化的任何 特定次序來發(fā)生,并且能夠等效地在這些實(shí)例化中的任一個(gè)或全部之前發(fā)生。 隨后,在步驟355,應(yīng)用程序代碼210可向記錄模塊226通知要使用的日志存 儲(chǔ)的名稱和位置?;蛘撸T如記錄模塊226等每一個(gè)記錄模塊都可被設(shè)計(jì)成使 用特定日志存儲(chǔ),在這種情況下將不執(zhí)行步驟355。
在傳輸模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊226已由應(yīng)用 程序代碼210實(shí)例化之后,該應(yīng)用程序代碼可繼續(xù)實(shí)例化節(jié)點(diǎn)221,并由此創(chuàng) 建DRT實(shí)例,諸如DRT實(shí)例220。由此,如流程圖300所示,在步驟360, 應(yīng)用程序代碼210可實(shí)例化節(jié)點(diǎn)221 。應(yīng)用程序代碼210還可將指向?qū)嵗?傳輸模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊226的實(shí)例的指針傳遞給節(jié)點(diǎn)221,由此使得節(jié)點(diǎn)221能夠與傳輸、引導(dǎo)、安全和記錄模塊進(jìn)行通 信并利用這些模塊。節(jié)點(diǎn)221然后可創(chuàng)建DRT實(shí)例220并且還可實(shí)例化路由 衣管理模塊222。
一旦創(chuàng)建了DRT實(shí)例220,在步驟365,應(yīng)用程序代碼210就可指示節(jié)點(diǎn) 221加入DRT網(wǎng)格,諸如圖1的DRT網(wǎng)格99。在步驟370,應(yīng)用程序代碼210 在加入DRT網(wǎng)格時(shí)的初始處理可結(jié)束。
為了諸如響應(yīng)于步驟365來加入DRT網(wǎng)格,節(jié)點(diǎn)221可利用實(shí)例化的路 由表管理模塊222、傳輸模塊223、引導(dǎo)模塊224、安全模塊225和記錄模塊 226。轉(zhuǎn)向圖5,流程圖400示出了由節(jié)點(diǎn)221執(zhí)行以加入DRT網(wǎng)格的一系列 示例性步驟。最初,如圖所示,在步驟410,節(jié)點(diǎn)221可從應(yīng)用程序代碼210 接收加入DRT網(wǎng)格的請(qǐng)求。隨后,節(jié)點(diǎn)210可請(qǐng)求實(shí)例化的引導(dǎo)模塊224提 供該應(yīng)用程序正試圖加入的DRT網(wǎng)格中的該引導(dǎo)模塊所知道的其他節(jié)點(diǎn)的列 表。如果如步驟430所確定的引導(dǎo)模塊224沒有返回任何節(jié)點(diǎn),則在步驟440, 節(jié)點(diǎn)221可保持在離線狀態(tài)。
在一個(gè)實(shí)施例中,如果引導(dǎo)模塊224沒有返回任何節(jié)點(diǎn),則應(yīng)用程序代碼 210可請(qǐng)求該引導(dǎo)模塊發(fā)布其可用性,或者該引導(dǎo)模塊可自動(dòng)發(fā)布其可用性。 邁具體地,為了使得至少兩個(gè)節(jié)點(diǎn)能夠在最初進(jìn)行通信以便首先形成DRT網(wǎng) 格,引導(dǎo)模塊224可使用預(yù)先安排的會(huì)合(rendezvous)。這一會(huì)合可采取在 另一網(wǎng)絡(luò)的上下文中進(jìn)行的發(fā)布或注冊(cè)的形式,以便通告節(jié)點(diǎn)實(shí)例220的可用 性及其形成DRT網(wǎng)格的意愿。具體地,引導(dǎo)模塊224可使用特定對(duì)等協(xié)議或 例如計(jì)算設(shè)備10、 20、 30、 40和50所慣用的其他名稱解析協(xié)議來形成網(wǎng)絡(luò)卯。 在一個(gè)實(shí)施例中,可針對(duì)諸如對(duì)等名稱解析協(xié)議(PNRP)等特定協(xié)議來定制 特定的個(gè)別引導(dǎo)模塊,由此使得應(yīng)用程序能夠通過簡(jiǎn)單地實(shí)例化適當(dāng)?shù)囊龑?dǎo)模 塊,依靠各種名稱解析協(xié)議來形成各網(wǎng)絡(luò)上的DRT網(wǎng)格。
一旦引導(dǎo)模塊224已使用網(wǎng)絡(luò)卯的名稱解析協(xié)議來通告節(jié)點(diǎn)實(shí)例220的 存在,該模塊就可等待另一節(jié)點(diǎn)變成在網(wǎng)絡(luò)卯上活動(dòng)。這一后續(xù)節(jié)點(diǎn)然后可 經(jīng)由網(wǎng)絡(luò)卯中的預(yù)先安排的會(huì)合點(diǎn)來檢查諸如節(jié)點(diǎn)實(shí)例220等任何其他節(jié)點(diǎn) 是否可用于創(chuàng)建DRT網(wǎng)格。該后續(xù)節(jié)點(diǎn)由此能夠獲悉節(jié)點(diǎn)實(shí)例220的存在, 并且這兩個(gè)節(jié)點(diǎn)可繼續(xù)進(jìn)行通信以形成DRT網(wǎng)格。然而,如果在步驟430處確定引導(dǎo)模塊224已返回了至少一個(gè)節(jié)點(diǎn),則節(jié) 點(diǎn)221可繼續(xù)加入或建立具有該節(jié)點(diǎn)的DRT網(wǎng)格。如圖所示,如果單個(gè)節(jié)點(diǎn) 先前已經(jīng)在網(wǎng)絡(luò)卯上以預(yù)先安排的方式發(fā)布了其形成DRT網(wǎng)格的可用性,則 在步驟430,引導(dǎo)模塊224可返回這一節(jié)點(diǎn)。類似地,如果多個(gè)節(jié)點(diǎn)已經(jīng)形成 了 DRT網(wǎng)格,則在步驟430,引導(dǎo)模塊224也可返回這些節(jié)點(diǎn)中的一個(gè)或多個(gè)。 在任--種情況下,在步驟450,節(jié)點(diǎn)221可請(qǐng)求安全模塊225確認(rèn)由引導(dǎo)模塊 224返回的節(jié)點(diǎn)中的一個(gè)或多個(gè)。
為了使得節(jié)點(diǎn)實(shí)例220能夠更快地形成有用的路由表,由引導(dǎo)模塊224 返回的節(jié)點(diǎn)可向節(jié)點(diǎn)實(shí)例220提供關(guān)于這些節(jié)點(diǎn)所知道的其他節(jié)點(diǎn)的信息。這 些信息也可由安全模塊225來確認(rèn)。
在一個(gè)實(shí)施例中,安全模塊225可通過驗(yàn)證從節(jié)點(diǎn)接收到的信息己由附隨 該信息的證書正確地簽署以及該證書是從根證書中正確地導(dǎo)出的兩者來確認(rèn) 由引導(dǎo)模塊224標(biāo)識(shí)并提供的節(jié)點(diǎn)。例如,從節(jié)點(diǎn)接收到的信息可以用唯一鍵 編號(hào)來標(biāo)識(shí)該節(jié)點(diǎn)。為了防止惡意實(shí)體通過提供使用相同鍵編號(hào)的信息來假裝 成該節(jié)點(diǎn),可使用證書米簽署包括鍵編號(hào)的接收到的信息。使用已知密碼技術(shù), 安全模塊225可驗(yàn)證包括鍵編號(hào)的接收到的信息已由所提供的證書正確地簽 署。例如,安全模塊225可使用證書中所提供的公鑰來驗(yàn)證所提供的信息和鍵 編號(hào)是由對(duì)應(yīng)的私鑰簽署的。另外,在一個(gè)實(shí)施例中,鍵編號(hào)可從發(fā)布者的公 鑰中導(dǎo)出,由此使得安全模塊能夠進(jìn)一步驗(yàn)證該鍵編號(hào)。在使用證書來驗(yàn)證消 息內(nèi)容后,安全模塊225可進(jìn)一步驗(yàn)證該證書是預(yù)先批準(zhǔn)的根證書或者是包括 預(yù)先批準(zhǔn)的根證書的證書鏈的一部分。通過使用根證書而不是自簽署的證書, DRT網(wǎng)格可變得更安全并且安全措施可具有更大的靈活性。
--旦安全模塊225已在步驟450處確認(rèn)了由引導(dǎo)模塊224返回的節(jié)點(diǎn),在 步驟460,節(jié)點(diǎn)221就可請(qǐng)求路由表管理模塊222將得到驗(yàn)證的節(jié)點(diǎn)和相關(guān)路 由添加到由節(jié)點(diǎn)實(shí)例220維護(hù)的路由表。在一個(gè)實(shí)施例中,路由表管理模塊222 可僅在這些節(jié)點(diǎn)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中比已經(jīng)在路由表中的節(jié)點(diǎn)中的一個(gè)或多個(gè) 更接近主存節(jié)點(diǎn)實(shí)例220的計(jì)算設(shè)備的情況下決定添加這些節(jié)點(diǎn)中的一個(gè)或多 個(gè)。在—替換實(shí)施例中,路由表管理模塊222最初可將由引導(dǎo)模塊224返回并 且得到安全模塊225的驗(yàn)證的節(jié)點(diǎn)中的部分或全部添加到節(jié)點(diǎn)實(shí)例22Q的路由表。隨后,路由表管理模塊222可確定節(jié)點(diǎn)實(shí)例220的路由表中的條目數(shù)是否 超過預(yù)定閾值。如果超過這一閾值,則可基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的路由表中的條 目所引用的節(jié)點(diǎn)和主存節(jié)點(diǎn)實(shí)例220的計(jì)算設(shè)備之間的距離來移除條目。更具 體而言,能夠以有利于表示較接近的節(jié)點(diǎn)的條目的方式移除具有更大距離的條 目。路由表管理模塊對(duì)路由表的這一削減可在周期性的基礎(chǔ)上或在應(yīng)用程序代 碼210或節(jié)點(diǎn)221請(qǐng)求時(shí)發(fā)生,或者以其他方式觸發(fā),諸如由監(jiān)視路由表中的 條目數(shù)的進(jìn)程來觸發(fā)。
在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,節(jié)點(diǎn)之間的距離或主存這些節(jié)點(diǎn)的計(jì)算設(shè)備之間的距 離可以不由節(jié)點(diǎn)之間的物理距離,而由節(jié)點(diǎn)之間的通信路徑的距離來定義。的 確,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)通常不符合物理拓?fù)浣Y(jié)構(gòu)。例如,連接到公司網(wǎng)絡(luò)的計(jì)算設(shè) 備與連接到同一公司網(wǎng)絡(luò)的其他計(jì)算設(shè)備的通信能夠比該計(jì)算設(shè)備與連接到 不同的公司網(wǎng)絡(luò)的另一計(jì)算設(shè)備的通信更高效,即使連接到同一公司網(wǎng)絡(luò)的這 些計(jì)算設(shè)備在其它城市而連接到不同公司網(wǎng)絡(luò)的另一設(shè)備位于僅僅數(shù)個(gè)街區(qū) 之外。同-網(wǎng)絡(luò)分區(qū)上的兩個(gè)計(jì)算設(shè)備之間的通信路徑可能是短且直接的,即 使這兩個(gè)計(jì)算設(shè)備物理上彼此分開,而不同網(wǎng)絡(luò)分區(qū)上的兩個(gè)計(jì)算設(shè)備之間的 通信路徑可能需要大量網(wǎng)間傳輸并因此可能相當(dāng)長(zhǎng)且復(fù)雜。
為了確定節(jié)點(diǎn)的接近度,在一個(gè)實(shí)施例中路由表管理模塊222可測(cè)量從節(jié) 點(diǎn)實(shí)例220發(fā)送到正在測(cè)量其距離的節(jié)點(diǎn)的消息的往返時(shí)間。具有最短往返時(shí) 間的節(jié)點(diǎn)被認(rèn)為是"較接近"的并因此被保留在路由表中。在另一實(shí)施例中, 路由表管理模塊222可基于主存正在估算其距離的節(jié)點(diǎn)的計(jì)算設(shè)備的網(wǎng)際協(xié)議 (IP)地址的特性與主存節(jié)點(diǎn)實(shí)例220的計(jì)算設(shè)備的IP地址的特性的比較來確 定哪一個(gè)節(jié)點(diǎn)"較接近"。在又一實(shí)施例中,可使用上述兩個(gè)實(shí)施例的組合。 例如,路由表管理模塊222最初可測(cè)量往返時(shí)間,但如果兩個(gè)或更多節(jié)點(diǎn)被測(cè) 得具有相似的往返時(shí)間并因此被認(rèn)為與節(jié)點(diǎn)實(shí)例220的網(wǎng)絡(luò)拓?fù)渚嚯x大致相 等,則可選擇將具有更相似的IP地址的節(jié)點(diǎn)包括在路由表中。
然而,在最初加入DRT網(wǎng)格時(shí),更有可能的情況是路由表所具有的條目 太少。如果路由表管理模塊222確定路由表需要其他條目,則該模塊可請(qǐng)求節(jié) 點(diǎn)221執(zhí)行DRT網(wǎng)格中的搜索以獲取其他節(jié)點(diǎn)信息。如圖5的流程圖400所 示,在步驟470,節(jié)點(diǎn)221可接收這一獲取其他節(jié)點(diǎn)信息的請(qǐng)求。如果在步驟470處未接收到這一請(qǐng)求,則節(jié)點(diǎn)221為加入DRT網(wǎng)格而執(zhí)行的處理可在步驟 4卯處結(jié)束。然而,如果在步驟470處接收到對(duì)其他節(jié)點(diǎn)信息的請(qǐng)求,則節(jié)點(diǎn) 221可在步驟480處執(zhí)行對(duì)DRT網(wǎng)格的搜索。
---種可用于執(zhí)行對(duì)DRT網(wǎng)格的搜索的機(jī)制由圖6的通信流500示出。最 初,節(jié)點(diǎn),諸如由鍵2000標(biāo)識(shí)并由計(jì)算設(shè)備20主存的節(jié)點(diǎn)可標(biāo)識(shí)與正被搜索 的節(jié)點(diǎn)相關(guān)聯(lián)的鍵編號(hào)。正在搜索的節(jié)點(diǎn)無需確定正被搜索的節(jié)點(diǎn)的存在,因 為對(duì)任何鍵的搜索都將返回由大致等于正被搜索的鍵的鍵來標(biāo)識(shí)的節(jié)點(diǎn)。在通 信流500所示的示例中,由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)可搜索由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)。 最初,如通信510所示,諸如節(jié)點(diǎn)221的節(jié)點(diǎn)可請(qǐng)求路由表管理模塊222在本 地路由表21中査找被搜索的鍵4000。作為響應(yīng),路由表管理模塊222可向節(jié) 點(diǎn)221返回到被搜索的鍵的路由或者到最接近被搜索的鍵的鍵的路由。在圖6 所示的特定示例中,被搜索的鍵4000不存在于路由表21中。因此,路由表管 理模塊222可向節(jié)點(diǎn)221提供到由存在于路由表21中的、與被搜索的鍵4000 垴接近的鍵3000標(biāo)識(shí)的節(jié)點(diǎn)的路由。
有了到由鍵3000標(biāo)識(shí)的節(jié)點(diǎn)的路由,節(jié)點(diǎn)221可建立與由鍵3000標(biāo)識(shí)的 節(jié)點(diǎn)的通信并請(qǐng)求該節(jié)點(diǎn)在其路由表中查找由被搜索的鍵4000標(biāo)識(shí)的節(jié)點(diǎn)。 由此,如圖6所示,這一請(qǐng)求能夠以從計(jì)算設(shè)備20到計(jì)算設(shè)備30的通信520 的形式作出,計(jì)算設(shè)備20可被認(rèn)為主存圖3的節(jié)點(diǎn)實(shí)例220,計(jì)算設(shè)備30在 閣6的示例性DRT網(wǎng)格99中主存由鍵3000標(biāo)識(shí)的節(jié)點(diǎn)。由鍵3000標(biāo)識(shí)的節(jié) 點(diǎn)的路山表31在圖6所示的實(shí)施例中的確包括對(duì)應(yīng)于由鍵4000標(biāo)識(shí)的被搜索 的節(jié)點(diǎn)的條目。因此,在標(biāo)識(shí)路由表31中的條目525后,由鍵3000標(biāo)識(shí)的節(jié) 點(diǎn)可經(jīng)由通信530來響應(yīng)節(jié)點(diǎn)221以便向該節(jié)點(diǎn)221通知到由鍵4000標(biāo)識(shí)的 節(jié)點(diǎn)的路由。
在一個(gè)實(shí)施例中,在確定已經(jīng)定位了由鍵4000標(biāo)識(shí)的被搜索的節(jié)點(diǎn)之前, 節(jié)點(diǎn)221可向由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)發(fā)送通信540以請(qǐng)求該節(jié)點(diǎn)同樣搜索其路 由表以査找由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)。這一消息可被稱為"詢問"消息,并在圖6 中經(jīng)由從主存節(jié)點(diǎn)221的計(jì)算設(shè)備20到計(jì)算設(shè)備40的通信540示出,計(jì)算設(shè) 備40在圖6所示的示例中主存由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)。為了確保響應(yīng)詢問消息 540的消息不被某--其他節(jié)點(diǎn)取得并重放,該詢問消息可包括可隨機(jī)生成的令
18牌"現(xiàn)時(shí)值"。后續(xù)響應(yīng)消息然后可包括該令牌并且該消息的簽名可參考該令 牌來計(jì)算。
在接收到通信540后,由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)可響應(yīng)它的確是節(jié)點(diǎn)221正 在搜索的節(jié)點(diǎn)。由此,如圖6所示,從主存由鍵4000標(biāo)識(shí)的節(jié)點(diǎn)的計(jì)算設(shè)備 40到主存節(jié)點(diǎn)實(shí)例220的計(jì)算設(shè)備20的通信545可指示作出響應(yīng)的節(jié)點(diǎn)用鍵 4000來標(biāo)識(shí)。這一消息可被稱為"權(quán)威"消息并且可以是經(jīng)數(shù)字簽名的并且與 包括公鑰的證書一起傳輸。如上所述,該權(quán)威消息還可包括來自詢問消息540 的隨機(jī)現(xiàn)時(shí)值并且證書中的簽名可參考該現(xiàn)時(shí)值來計(jì)算。另外,節(jié)點(diǎn)221可在 接收到通信545后請(qǐng)求安全模塊225驗(yàn)證該權(quán)威消息已正確地簽署并且證書或 者是正確的根證書或者是包括正確的根證書的證書鏈的一部分。
一旦安全模塊225已驗(yàn)證該權(quán)威消息,由此為節(jié)點(diǎn)221驗(yàn)證它的確已找到 由被搜索的鍵4000標(biāo)識(shí)的節(jié)點(diǎn),節(jié)點(diǎn)221可向應(yīng)用程序代碼210提供應(yīng)用程 序凈荷。該應(yīng)用程序凈荷是由用該鍵注冊(cè)的鍵4000所標(biāo)識(shí)的節(jié)點(diǎn)表示的遠(yuǎn)程 應(yīng)用程序的信息。在一個(gè)實(shí)施例中,該應(yīng)用程序凈荷可以是主存該遠(yuǎn)程應(yīng)用程 序的il算設(shè)備40的IP地址或其他常見網(wǎng)絡(luò)地址。在這種情況下, 一旦應(yīng)用程 序代碼210接收到該IP地址,它就可繼續(xù)使用傳統(tǒng)TCP/IP通信來與該遠(yuǎn)程應(yīng) 用程序進(jìn)行通信。
在一個(gè)實(shí)施例中,諸如以剛剛描述的方式的對(duì)另一節(jié)點(diǎn)的搜索可由DRT 網(wǎng)格99中的任一節(jié)點(diǎn)來執(zhí)行。然而,在一替換實(shí)施例中,只有在DRT網(wǎng)格99 中注冊(cè)的節(jié)點(diǎn)才被允許搜索。為了向DRT網(wǎng)格99注冊(cè)其自身,諸如節(jié)點(diǎn)221 等節(jié)點(diǎn)可向該DRT網(wǎng)格中的其他節(jié)點(diǎn)中的一個(gè)或多個(gè)發(fā)布鍵或其他標(biāo)識(shí)值。 轉(zhuǎn)向圖7,示出了通信流600,其示出了可使得由計(jì)算設(shè)備610主存的節(jié)點(diǎn)能 夠?qū) A身注冊(cè)為DRT網(wǎng)格99的一部分的一系列示例性通信。在一個(gè)實(shí)施例 中,最初,諸如節(jié)點(diǎn)實(shí)例220的節(jié)點(diǎn)221等由計(jì)算設(shè)備610主存的節(jié)點(diǎn)可請(qǐng)求 安全模塊225生成可用于在DRT網(wǎng)格99中標(biāo)識(shí)節(jié)點(diǎn)實(shí)例220的唯一鍵。在--替換實(shí)施例中,取決于安全模塊225的功能,節(jié)點(diǎn)221自己選擇將在DRT網(wǎng) 格99中注冊(cè)該節(jié)點(diǎn)時(shí)使用的標(biāo)識(shí)鍵即可。在圖7所示的示例中,可選擇鍵l卯0 來標(biāo)識(shí)由計(jì)算設(shè)備610主存的節(jié)點(diǎn)實(shí)例220。
為了向DRT網(wǎng)格99注冊(cè)其自身,節(jié)點(diǎn)221最初可執(zhí)行"解析"操作,藉此標(biāo)識(shí)具有接近對(duì)應(yīng)于節(jié)點(diǎn)實(shí)例220的所選鍵的鍵的節(jié)點(diǎn)。在一個(gè)實(shí)施例中,該解析操作可通過將鍵l卯0遞增一并且然后向DRT網(wǎng)格99搜索該新鍵值,即本示例中的l卯l來執(zhí)行。由此,如通信流程圖600所示,來自計(jì)算設(shè)備610的通信620可搜索鍵l卯l。為了簡(jiǎn)單起見,搜索請(qǐng)求620被示為被大致定向到DRT網(wǎng)格99而不是該DRT網(wǎng)格的特定節(jié)點(diǎn),但如上文中所詳細(xì)描述的,這些搜索結(jié)果最初被定向到具有存儲(chǔ)在由正在搜索的節(jié)點(diǎn)維護(hù)的路由表中的相似鍵的節(jié)點(diǎn),并且然后在適當(dāng)時(shí)由每一個(gè)后續(xù)節(jié)點(diǎn)來重定向。類似地,為了簡(jiǎn)單起見,搜索響應(yīng)通信625被示為大致來自DRT網(wǎng)格99而不是特定節(jié)點(diǎn),但同樣如在上文中所詳細(xì)描述的,這些搜索響應(yīng)可從由正在搜索的節(jié)點(diǎn)聯(lián)系的一個(gè)或多個(gè)節(jié)點(diǎn)接收。
在圖7所示的示例中,響應(yīng)通信625可指示由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)具有與被搜索的鍵l卯l最接近的鍵。一旦正在嘗試使用鍵l卯O來向DRT網(wǎng)格99注冊(cè)其自身的節(jié)點(diǎn)實(shí)例220知道由鍵2000標(biāo)識(shí)的節(jié)點(diǎn),該節(jié)點(diǎn)實(shí)例220就可向該節(jié)點(diǎn)發(fā)送"洪泛"消息630,該消息通告作為該DRT網(wǎng)格的一部分的節(jié)點(diǎn)實(shí)例220的存在并提供標(biāo)識(shí)鍵1900。響應(yīng)于接收到洪泛消息,節(jié)點(diǎn)最初可使用安全模塊來驗(yàn)證該洪泛消息已被正確地簽署并且相關(guān)聯(lián)的證書或者是已批準(zhǔn)的根證書或者是包括該已批準(zhǔn)的根證書的證書鏈的一部分。 一且該洪泛消息得到驗(yàn)證,諸如圖7所示的示例中的由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)等接收節(jié)點(diǎn)就可將所接收到的鍵和路由信息添加到其路由表21中。由此,如圖所示,可將對(duì)應(yīng)于鍵1900的條目635添加到由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)的路由表21 。
除了將鍵l卯O添加到其路由表21之外,由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)還可在假設(shè)其路由表21中的其他條目也希望獲悉該新節(jié)點(diǎn)的情況下響應(yīng)于洪泛消息630來將該洪泛消息轉(zhuǎn)發(fā)給這些其他條目。由此,如圖7所示,由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)可經(jīng)由通信640來將轉(zhuǎn)發(fā)的洪泛消息發(fā)送到其路由表21中的其他節(jié)點(diǎn),即由鍵IOOO、 3000和5000標(biāo)識(shí)的節(jié)點(diǎn)。在接收到轉(zhuǎn)發(fā)的洪泛消息640后,接收節(jié)點(diǎn)中的每一個(gè)都能夠以類似于由鍵2000標(biāo)識(shí)的節(jié)點(diǎn)在其接收洪泛消息630時(shí)的方式來響應(yīng);即,由鍵IOOO、 3000和5000標(biāo)識(shí)的接收節(jié)點(diǎn)中的每—個(gè)都能夠在其各自的安全模塊驗(yàn)證轉(zhuǎn)發(fā)的洪泛消息640的情況下將由鍵l卯O標(biāo)識(shí)的節(jié)點(diǎn)添加到其各自的路由表ll、 31和51。--旦將關(guān)于對(duì)應(yīng)于鍵1900的節(jié)點(diǎn)的路由信息存儲(chǔ)在構(gòu)成DRT網(wǎng)格99的其他節(jié)點(diǎn)的一個(gè)或多個(gè)路由表中,對(duì)應(yīng)于鍵1900的節(jié)點(diǎn)就可被認(rèn)為是已注冊(cè)為該DRT網(wǎng)格的一部分。在另一實(shí)施例中,最少數(shù)量的節(jié)點(diǎn)必須在其路由表中具有對(duì)應(yīng)于由鍵1卯0標(biāo)識(shí)的節(jié)點(diǎn)的條目以使得該節(jié)點(diǎn)能夠被認(rèn)為是DRT網(wǎng)格99的已注冊(cè)節(jié)點(diǎn)。在這種情況下,接收轉(zhuǎn)發(fā)的洪泛消息640的節(jié)點(diǎn)本身可將該洪泛消息進(jìn)一步轉(zhuǎn)發(fā)給這些接收節(jié)點(diǎn)的路由表中所標(biāo)識(shí)的節(jié)點(diǎn)。如果節(jié)點(diǎn)從不止一個(gè)源接收到洪泛消息,則該節(jié)點(diǎn)忽略重復(fù)的洪泛消息即可。然而,通過多次轉(zhuǎn)發(fā)洪泛消息,更多數(shù)量的節(jié)點(diǎn)的路由表可用該洪泛消息中所包含的鍵和路由信息來更新,從而使得發(fā)送該洪泛消息的節(jié)點(diǎn)在DRT網(wǎng)格99中注冊(cè)其自身能夠高效得多。
從以上描述中可以看出,DRT網(wǎng)格可由具有實(shí)現(xiàn)各種定義的任務(wù)的組件化模塊的節(jié)點(diǎn)來創(chuàng)建、維護(hù)和利用,這些組件化模塊包括安全模塊和路由表管理模塊,前者能夠允許使用根證書來驗(yàn)證消息,而后者能夠提供包括在考慮網(wǎng)絡(luò)沐'撲結(jié)構(gòu)時(shí)接近節(jié)點(diǎn)的條目的路由表??紤]此處所述的主題的眾多可能的變化,本發(fā)明要求保護(hù)落入以下權(quán)利要求書范圍內(nèi)的所有這樣的實(shí)施例及其等效實(shí)施方式。
權(quán)利要求
1.一種或多種包括用于創(chuàng)建節(jié)點(diǎn)實(shí)例的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述節(jié)點(diǎn)實(shí)例表示分布式路由表網(wǎng)格的端點(diǎn),所述計(jì)算機(jī)可執(zhí)行指令涉及以下步驟,包括根據(jù)用于所述分布式路由表網(wǎng)格的網(wǎng)絡(luò)傳輸來選擇傳輸模塊;實(shí)例化所述傳輸模塊;根據(jù)用于發(fā)起與所述分布式路由表網(wǎng)格的其他節(jié)點(diǎn)的通信的預(yù)定義機(jī)制來選擇引導(dǎo)模塊;實(shí)例化所述引導(dǎo)模塊;根據(jù)與所述分布式路由表網(wǎng)格相關(guān)聯(lián)的一個(gè)或多個(gè)安全機(jī)制來選擇安全模塊;實(shí)例化所述安全模塊;以及實(shí)例化節(jié)點(diǎn)模塊,所述節(jié)點(diǎn)模塊用于利用所述傳輸模塊、所述引導(dǎo)模塊和所述安全模塊來參與所述分布式路由表網(wǎng)格。
2. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述節(jié)點(diǎn)模塊包括用于實(shí)例化用于管理與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表中的條目的路由表管理模塊的計(jì)算機(jī)可執(zhí)行指令。
3. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述路由表管理模塊過濾與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表中的條目以保留根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)比不被保留的那些條目更接近所述節(jié)點(diǎn)實(shí)例的那些條目。
4. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,與所述分布式路由表網(wǎng)格相關(guān)聯(lián)的一個(gè)或多個(gè)安全機(jī)制包括基于至少一個(gè)根證書的基于證書的安全機(jī)制。
5. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述安全模塊包括用于通過參考與所述分布式路由表網(wǎng)格中的另一節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的證書以確保該證書鏈接到所述至少一個(gè)根證書來驗(yàn)證從該另一節(jié)點(diǎn)實(shí)例接收到的消息 的計(jì)算機(jī)可執(zhí)行指令。
6. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述引導(dǎo)模塊使用 所述引導(dǎo)模塊專用的對(duì)等名稱解析協(xié)議來與其他節(jié)點(diǎn)實(shí)例進(jìn)行通信。
7. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,包括用于創(chuàng)建第二 節(jié)點(diǎn)實(shí)例的其他計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令執(zhí)行以下步驟,包 括實(shí)例化第二節(jié)點(diǎn)模塊,所述第二節(jié)點(diǎn)模塊用于利用第二傳輸模塊、第二 引導(dǎo)模塊和第二安全模塊來參與所述分布式路由表網(wǎng)格。
8. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述節(jié)點(diǎn)模塊包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令請(qǐng)求所述引導(dǎo)模塊枚舉所述分布式 路由表網(wǎng)格中的其他節(jié)點(diǎn),請(qǐng)求所述安全模塊驗(yàn)證由所述引導(dǎo)模塊提供的所枚 舉的其他節(jié)點(diǎn),以及請(qǐng)求路由表管理模塊將得到驗(yàn)證的、所枚舉的其他節(jié)點(diǎn)添 加到與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表。
9. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述節(jié)點(diǎn)模塊包括 用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令向所述安全模塊請(qǐng)求與所述節(jié)點(diǎn)實(shí) 例相關(guān)聯(lián)的鍵,標(biāo)識(shí)與另一鍵相關(guān)聯(lián)的另一節(jié)點(diǎn),所述另一鍵在數(shù)值上最接近 所述鍵,以及向該另一節(jié)點(diǎn)發(fā)送包括所述鍵的洪泛消息。
10. —種或多種包括用于維護(hù)與節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表的計(jì)算機(jī)可 執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述節(jié)點(diǎn)實(shí)例表示分布式路由表網(wǎng)格的端點(diǎn),所 述計(jì)算機(jī)可執(zhí)行指令涉及以下步驟,包括根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來確定與第一鍵相關(guān)聯(lián)的第一節(jié)點(diǎn)和所述節(jié)點(diǎn)實(shí)例之 間的第一距離;根據(jù)所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來確定與第二鍵相關(guān)聯(lián)的第二節(jié)點(diǎn)和所述節(jié)點(diǎn)實(shí) 例之間的第二距離;如果所述第一距離小于所述第二距離,則維護(hù)與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路 由表以包括與所述第一節(jié)點(diǎn)相關(guān)聯(lián)的條目,該條目包括所述第一鍵和從所述節(jié) 點(diǎn)實(shí)例到所述第一節(jié)點(diǎn)的第一路由;以及如果所述第二距離小于所述第一 距離,則維護(hù)與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路 由表以包括與所述第二節(jié)點(diǎn)相關(guān)聯(lián)的條目,該條目包括所述第二鍵和從所述節(jié) 點(diǎn)實(shí)例到所述第二節(jié)點(diǎn)的第二路由。
11. —種用于創(chuàng)建節(jié)點(diǎn)實(shí)例的方法,所述節(jié)點(diǎn)實(shí)例表示分布式路由表網(wǎng) 格的端點(diǎn),所述方法包括以下步驟根據(jù)用于所述分布式路由表網(wǎng)格的網(wǎng)絡(luò)傳輸來選擇傳輸模塊; 實(shí)例化所述傳輸模塊;根據(jù)用于發(fā)起與所述分布式路由表網(wǎng)格的其他節(jié)點(diǎn)的通信的預(yù)定義機(jī)制 來選擇引導(dǎo)模塊;實(shí)例化所述引導(dǎo)模塊;根據(jù)與所述分布式路由表網(wǎng)格相關(guān)聯(lián)的一個(gè)或多個(gè)安全機(jī)制來選擇安全 模塊;實(shí)例化所述安全模塊;以及實(shí)例化節(jié)點(diǎn)模塊,所述節(jié)點(diǎn)模塊用于利用所述傳輸模塊、所述引導(dǎo)模塊和 所述安全模塊來參與所述分布式路由表網(wǎng)格。
12. 如權(quán)利要求11所述的方法,其特征在于,所述節(jié)點(diǎn)模塊執(zhí)行包括 實(shí)例化用于管理與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表中的條目的路由表管理模塊 的步驟。
13. 如權(quán)利要求12所述的方法,其特征在于,所述路由表管理模塊過 濾與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的路由表中的條目以保留根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)比不被 保留的那些條目更接近所述節(jié)點(diǎn)實(shí)例的那些條目。
14. 如權(quán)利要求11所述的方法,其特征在于,與所述分布式路由表網(wǎng)格相關(guān)聯(lián)的一個(gè)或多個(gè)安全機(jī)制包括基于至少一個(gè)根證書的基于證書的安全 機(jī)制。
15. 如權(quán)利要求14所述的方法,其特征在于,所述安全模塊執(zhí)行包括 通過參考與所述分布式路由表網(wǎng)格中的另一節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的證書以確保該 證書鏈接到所述至少一個(gè)根證書來驗(yàn)證從該另一節(jié)點(diǎn)實(shí)例接收到的消息的步 驟。
16. 如權(quán)利要求11所述的方法,其特征在于,所述引導(dǎo)模塊使用所述 引導(dǎo)模塊專用的對(duì)等名稱解析協(xié)議來與其他節(jié)點(diǎn)實(shí)例進(jìn)行通信。
17. 如權(quán)利要求ll所述的方法,其特征在于,還包括以下步驟創(chuàng)建第二節(jié)點(diǎn)實(shí)例,所述計(jì)算機(jī)可執(zhí)行指令執(zhí)行以下步驟,包括實(shí)例化第二節(jié) 點(diǎn)模塊,所述第二節(jié)點(diǎn)模塊用于利用第二傳輸模塊、第二引導(dǎo)模塊和第二安全 模塊來參與所述分布式路由表網(wǎng)格。
18. 如權(quán)利要求11所述的方法,其特征在于,所述節(jié)點(diǎn)模塊執(zhí)行以下 步驟,包括請(qǐng)求所述引導(dǎo)模塊枚舉所述分布式路由表網(wǎng)格中的其他節(jié)點(diǎn), 請(qǐng)求所述安全模塊驗(yàn)證由所述引導(dǎo)模塊提供的所枚舉的其他節(jié)點(diǎn),以及請(qǐng)求路 由表管理模塊將得到驗(yàn)證的、所枚舉的其他節(jié)點(diǎn)添加到與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián) 的路由表。
19. 如權(quán)利要求11所述的方法,其特征在于,所述節(jié)點(diǎn)模塊執(zhí)行以下 步驟,包括向所述安全模塊請(qǐng)求與所述節(jié)點(diǎn)實(shí)例相關(guān)聯(lián)的鍵,標(biāo)識(shí)與另一 鍵相關(guān)聯(lián)的另一節(jié)點(diǎn),所述另一鍵在數(shù)值上最接近所述鍵,以及向該另一節(jié)點(diǎn) 發(fā)送包括所述鍵的洪泛消息。
全文摘要
分布式路由表(DRT)網(wǎng)格可包括兩個(gè)或更多節(jié)點(diǎn),這些節(jié)點(diǎn)中的每一個(gè)都維護(hù)表示該DRT網(wǎng)格的總路由知識(shí)中的部分或全部的其自己的路由表。每一個(gè)節(jié)點(diǎn)都可包括模塊化組件,該組件能夠執(zhí)行各種定義的功能以使得應(yīng)用程序能夠基于哪些模塊化組件已被實(shí)例化來定制該節(jié)點(diǎn)的特征和能力。路由表管理模塊可維護(hù)每一個(gè)節(jié)點(diǎn)處的各個(gè)路由表,并且可確保在路由表中只維護(hù)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的意義上靠近該節(jié)點(diǎn)的條目。另外,安全模塊可基于達(dá)成協(xié)議的根證書來驗(yàn)證所接收到的消息。
文檔編號(hào)H04B7/26GK101657980SQ200880011670
公開日2010年2月24日 申請(qǐng)日期2008年3月18日 優(yōu)先權(quán)日2007年4月13日
發(fā)明者B·R·里艾倫, J·L·德威利, K·C·蘭森, P·德, S·A·森克斯蒂, S·K·辛格豪爾, T·R·曼尼恩 申請(qǐng)人:微軟公司