專利名稱:將資源組織成集合以促進(jìn)更有效和可靠的資源訪問的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及組織資源,且更具體地說,涉及將資源組織成集合以促進(jìn)更有效和可靠的資源訪問。
背景技術(shù):
計算機(jī)系統(tǒng)及相關(guān)技術(shù)影響社會的許多方面。確實,計算機(jī)系統(tǒng)處理信息的能力已經(jīng)改變了我們的生活和工作方式。計算機(jī)系統(tǒng)現(xiàn)在一般用作任務(wù)(例如,字處理,安排時間和數(shù)據(jù)庫管理)的主機(jī),這些任務(wù)在計算機(jī)系統(tǒng)出現(xiàn)之前是手工完成的。最近,計算機(jī)系統(tǒng)已經(jīng)彼此耦合并且與其它電子設(shè)備耦合,形成有線和無線兩者的計算機(jī)網(wǎng)絡(luò),在網(wǎng)絡(luò)上計算機(jī)系統(tǒng)和其它電子設(shè)備能夠傳送電子數(shù)據(jù)。結(jié)果,在計算機(jī)系統(tǒng)上執(zhí)行的許多任務(wù)(例如,語音通信,訪問電子郵件,控制家用電子產(chǎn)品,Web瀏覽,以及打印文檔)包括大量計算機(jī)系統(tǒng)和/或其它電子設(shè)備之間通過有線和/或無線計算機(jī)網(wǎng)絡(luò)的電子通信。
由于可通過計算機(jī)網(wǎng)絡(luò)訪問的資源(例如設(shè)備和服務(wù))的數(shù)量和多樣化,因此開發(fā)了各種各樣不同的訪問機(jī)制。許多訪問機(jī)制使用不同的協(xié)議。例如,訪問萬維網(wǎng)(“WWW”)上的網(wǎng)頁通常是使用超文本傳輸協(xié)議(“HTTP”)來進(jìn)行的。另一方面,訪問來自遠(yuǎn)程位置的文件可以使用文件傳輸協(xié)議(“FTP”)來進(jìn)行。有時,相同的內(nèi)容可以在不同時間使用不同協(xié)議來傳輸。例如,電子郵件消息可以在郵件服務(wù)器之間使用簡單郵件傳輸協(xié)議來傳輸,并且隨后使用因特網(wǎng)消息訪問協(xié)議(“IMAP”)或者郵局協(xié)議(“POP”)來傳送到客戶機(jī)。
然而,在可以使用協(xié)議傳送或者訪問資源之前,相應(yīng)的訪問機(jī)制必須具有某種方法來標(biāo)識要訪問或者傳輸?shù)馁Y源。例如,在Web瀏覽器可以使用HTTP訪問Web網(wǎng)頁之前,Web瀏覽器必須具有某種方法來標(biāo)識要訪問的Web網(wǎng)頁。同樣,在郵件客戶機(jī)能夠使用IMAP或者POP接收電子郵件消息之前,郵件客戶機(jī)必須具有某種方法來標(biāo)識存儲電子郵件的郵件服務(wù)器。因此,實際上所有資源訪問機(jī)制還包括可以用于標(biāo)識資源的標(biāo)識機(jī)制。
一種標(biāo)識機(jī)制包括使用網(wǎng)絡(luò)地址(例如互聯(lián)網(wǎng)協(xié)議(“IP”)地址)來標(biāo)識相應(yīng)的計算設(shè)備(例如,膝上型計算機(jī),郵件服務(wù)器,打印機(jī),PDA等等)。通過網(wǎng)絡(luò)地址標(biāo)識計算設(shè)備在較小的網(wǎng)絡(luò)(例如,家庭區(qū)域網(wǎng)絡(luò)(“HAN”))上和/或在網(wǎng)絡(luò)地址相對不頻繁地改變的網(wǎng)絡(luò)上可能足夠了。然而,在分布式較大規(guī)模的網(wǎng)絡(luò)上,使用網(wǎng)絡(luò)地址作為標(biāo)識機(jī)制常常有問題。例如,由于因特網(wǎng)上巨量的計算設(shè)備,因此,要讓用戶記住用戶想要訪問的每個計算設(shè)備的IP地址,即使不是不可能,也是很困難的。而且,始終存在供應(yīng)者會改變計算設(shè)備網(wǎng)絡(luò)地址的可能性或者將計算設(shè)備的擁有權(quán)轉(zhuǎn)移到一個控制不同網(wǎng)絡(luò)地址的不同供應(yīng)者。因而,隨后的以先前已知的網(wǎng)絡(luò)地址對一個計算設(shè)備的訪問企圖會失敗,并且沒有容易地確定最新的網(wǎng)絡(luò)地址的方法。
因此,其它標(biāo)識機(jī)制將網(wǎng)絡(luò)地址表示為字母串,它一般更易于記憶并且對網(wǎng)絡(luò)地址提供某種程度的抽象。例如,域名服務(wù)(“DNS”)可以用于將IP地址表示為字母串(例如,相應(yīng)于域名)。當(dāng)字母串用于標(biāo)識計算設(shè)備時,DNS檢查翻譯數(shù)據(jù)庫,將字母串翻譯成該計算設(shè)備的相應(yīng)IP地址。而且,當(dāng)將新的IP地址分配給計算設(shè)備時,可以更新翻譯數(shù)據(jù)庫,使得先前使用的標(biāo)識該計算設(shè)備的字母串相應(yīng)于新的IP地址。因而,DNS提供一種抽象層,它允許計算設(shè)備的IP地址改變而不必改變表示該計算設(shè)備的字母串。相應(yīng)地,如果供應(yīng)者改變一個計算設(shè)備的IP地址,則同一字母串經(jīng)??梢杂糜谠L問該計算設(shè)備。
然而,由于計算機(jī)系統(tǒng)可以配置成同時提供許多不同的服務(wù),因此僅使用DNS不足以標(biāo)識一個計算設(shè)備的特定資源。例如,在有些環(huán)境中,使用DNS作為唯一的標(biāo)識機(jī)制,會使它難以區(qū)分由同一Web服務(wù)器提供的不同服務(wù)(電子郵件,搜索功能等)。即,標(biāo)識Web服務(wù)器(例如,通過網(wǎng)絡(luò)地址或者字母串)不一定提供由Web服務(wù)器提供的特定服務(wù)的任何指示。因而,為訪問Web服務(wù)器的電子郵件服務(wù),標(biāo)識機(jī)制需要有某種方法將電子郵件服務(wù)與Web服務(wù)器的其它服務(wù)區(qū)分開來。
統(tǒng)一資源標(biāo)識符(“URI”)是一種已經(jīng)開發(fā)的機(jī)制,它更精確地標(biāo)識資源。URI可以包括網(wǎng)絡(luò)地址或者標(biāo)識計算設(shè)備的字母串,以及一個附加的字母數(shù)字串,標(biāo)識計算設(shè)備上的特定資源。統(tǒng)一資源定位符(“URL”)指一個URI子集,它們通過它們的主要訪問機(jī)制的表示(例如,它們的網(wǎng)絡(luò)位置)來標(biāo)識資源。全球資源名字(“URN”)指一個URI子集,要求它們保持全球唯一和持久不變,即使相應(yīng)的資源停止存在。
URL一般用于訪問因特網(wǎng)上的資源。例如,URL“http//[域名]/[字母數(shù)字串]”可以用于標(biāo)識WWW上一個計算設(shè)備處的特定資源。URL通常還細(xì)分成不同的方案,表示不同(經(jīng)常是分層的)名字空間。例如,在因特網(wǎng)上使用的一些不同方案包括ftp,http,gopher,mailto,news和telent。這些方案的每一個分別代表一個不同的相應(yīng)名字空間。其好處在于,資源的標(biāo)識范圍可以跨不同名字空間,并且每個方案可以具有不同的語法來標(biāo)識其相應(yīng)名字空間內(nèi)的資源。例如,標(biāo)識http名字空間中資源的語法和標(biāo)識fpt名字空間中資源的語法可以不同。
遺憾的是,由于至少部分不同方案具有不同的語法,因此,配置對資源的訪問,使得資源可以從多個名字空間內(nèi)來訪問,這如果不是不可能,也常常是困難的。即,使資源可從一個名字空間訪問,一般就阻止該資源從其它名字空間來訪問。例如,http方案一般不能用于標(biāo)識已經(jīng)配置為使用ftp方案(和使用ftp的傳輸)標(biāo)識的資源。即,http//[域名]/[字母數(shù)字串]形式的URL一般不能用于標(biāo)識ftp名字空間中的資源。
而且,典型的資源標(biāo)識機(jī)制具有有限的查詢能力。例如,一個URL子集共享一個公共語法,用于表示具有指定名字空間的分層關(guān)系。這個子集的URI可以具有<scheme>//<authority><path> <query>(<方案>//<當(dāng)局><路徑> <查詢>)形式,其中查詢部分是由在<scheme>//<authority><path>(<方案>//<當(dāng)局><路徑>)處的資源解釋的信息串。這有利于對資源發(fā)出查詢,諸如例如,以執(zhí)行一個搜索或者發(fā)現(xiàn)資源能力。
然而,典型的資源標(biāo)識機(jī)制即使有,也只有有限的功能來使用URI查詢包含在名字空間中的資源的名字空間。用于某些名字空間的URI語法允許查詢功能,但只在名字空間內(nèi)的最低層(例如,在葉節(jié)點(diǎn))。這至少部分地是由于現(xiàn)有的名字空間機(jī)制不將中間節(jié)點(diǎn)視為資源的事實所導(dǎo)致的。因而,可以格式化表示URI以查詢特定端點(diǎn)處的文本文件,諸如例如,表示一個指定公司W(wǎng)eb網(wǎng)站的URI。然而,格式化表示URI以只從每個以“.com”結(jié)束的域?qū)ν幻挚臻g分層結(jié)構(gòu)查詢文本文件,即使不是不可能,也是困難的。
而且,現(xiàn)有的搜索機(jī)制要求高速緩存大量的資源信息。例如,大多數(shù)因特網(wǎng)搜索引擎不斷地掃描因特網(wǎng)中的新URL并在本地高速緩存該URL。當(dāng)一個搜索(或者查詢)被提交給搜索引擎時,搜索引擎搜索高速緩存的URL。因而,如果沒有高速緩存資源的URL或者在高速緩存之后URL改變了,則在搜索結(jié)果中不能返回資源的該URL或正確URL。因此,促進(jìn)更有效和可靠的資源訪問的系統(tǒng)、方法、計算機(jī)程序產(chǎn)品是有益的。
發(fā)明內(nèi)容
與背景技術(shù)有關(guān)的上述問題由本發(fā)明的原理來克服,本發(fā)明的目標(biāo)是將資源組成集合以促進(jìn)更有效和可靠的資源訪問的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在有些實施例中,在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中傳輸名字空間注冊請求。接收注冊一個名字空間分支的名字空間注冊請求,該名字空間注冊請求包括一個名字空間串,它標(biāo)識該名字空間分支。一個至少單向的等價數(shù)字標(biāo)識值如散列值,是基于平面URI方案的整個名字空間串或者基于直到分層的URL方案的名字空間串的第一路徑段的部分產(chǎn)生的。名字空間注冊請求被發(fā)送(并且有可能被路由)到一個名字空間管理器,它具有一個在數(shù)字上比其它名字空間管理器的標(biāo)識符更接近至少單向的等價數(shù)字標(biāo)識值的標(biāo)識符。該名字空間分支與該名字空間管理器相關(guān)聯(lián)。
在其它實施例中,在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中遷移一個名字空間注冊請求。確定名字空間管理器已經(jīng)滿足了政策約束。標(biāo)識能夠遷移來滿足與該政策約束相關(guān)聯(lián)的政策動作的名字空間分支。該名字空間分支的現(xiàn)有注冊,響應(yīng)于該政策動作,被遷移到一個合作伙伴名字空間管理器。
在還有的其它實施例中,在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中處理一個名字空間注冊請求。接收注冊一個名字空間分支的名字空間注冊請求。該名字空間注冊請求包括一個標(biāo)識該名字空間分支的名字空間串和一個請求注冊該名字空間分支的供應(yīng)者的標(biāo)識符。確定名字空間管理器對該名字空間分支感興趣。該名字空間串保存在一個經(jīng)適當(dāng)索引的名字空間注冊數(shù)據(jù)庫中。還確定注冊請求發(fā)起者(例如名字空間供應(yīng)者)的活動性隨后要以什么頻度來驗證。
在還有一些實施例中,在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中發(fā)送(并且有可能路由)一個名字空間查找請求。接收包括標(biāo)識一個名字空間分支的名字空間串的名字空間查找請求。一個至少單向的等價數(shù)字標(biāo)識值如散列值,是基于平面URI方案的整個名字空間串或者基于直到分層URI方案的名字空間串的第一路徑段的部分產(chǎn)生的。名字空間查找請求被發(fā)送(并且有可能被路由)到一個目的地名字空間管理器,例如,按照接近度量。目的地名字空間管理器可以是在一個具有唯一的在數(shù)字上最接近該至少單向的等價數(shù)字標(biāo)識值的標(biāo)識符的名字空間管理器的預(yù)定范圍內(nèi)的鄰近名字空間管理器中的任何一個。名字空間查找請求被轉(zhuǎn)送以交付給相應(yīng)注冊請求的發(fā)起者(例如名字空間供應(yīng)者),它們已經(jīng)表達(dá)了對該名字空間分支感興趣或者負(fù)責(zé)該名字空間分支。
在還有一些另外的實施例中,在聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中遷移一個名字空間查找請求。名字空間管理器接收一個名字空間分支的名字空間查找請求。該名字空間管理器包括一個唯一的名字空間標(biāo)識符,它標(biāo)識該名字空間分支。名字空間管理器唯一的標(biāo)識符標(biāo)識比一個或多個其它名字空間管理器的名字空間管理器唯一標(biāo)識符更接近于所產(chǎn)生的名字空間分支唯一標(biāo)識符(例如,至少單向的等價數(shù)字標(biāo)識值)的名字空間管理器。檢測名字空間分支已經(jīng)被遷移到一個具有不同名字空間管理器唯一標(biāo)識符的名字空間管理器的標(biāo)志。
在還有一些其它實施例中,在聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中處理一個名字空間查找請求。接收包括標(biāo)識一個名字空間的名字空間分支的名字空間串的名字空間查找請求。標(biāo)識該名字空間查找請求的名字空間查找請求類型。檢測一個或多個已經(jīng)注冊了與該名字空間分支相關(guān)的名字空間的部分的供應(yīng)者?;谒鶚?biāo)識的名字空間查找請求類型,該名字空間查找請求被轉(zhuǎn)送到至少一個供應(yīng)者。
在其它實施例中,一個資源參加到聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中的多個名字空間。建立資源的唯一資源標(biāo)識符。在第一名字空間中發(fā)布該資源的可用性。該唯一資源標(biāo)識符被鏈接到第一名字空間中一個現(xiàn)有的名字空間節(jié)點(diǎn)資源,使得可以穿過第一名字空間來標(biāo)識該資源。在第二名字空間中發(fā)布該資源的可用性。該唯一資源標(biāo)識符被鏈接到第二名字空間中的一個現(xiàn)有的名字空間節(jié)點(diǎn)資源,使得可以穿過第二名字空間來標(biāo)識該資源。
在還有的一些其它實施例中,標(biāo)識名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中的一個資源子集。從一個發(fā)起者接收一個查詢。該查詢包括第一查詢部分,它標(biāo)識在名字空間分層結(jié)構(gòu)的第一層上滿足第一查詢準(zhǔn)則的第一部分資源。該查詢包括第二查詢部分,它標(biāo)識從包括在第一部分資源內(nèi)的資源中選擇的第二部分資源。第二部分資源是在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中第二不同位置上標(biāo)識的。第二部分資源的身分被返回給發(fā)起者。
在還有的其它實施例中,組織多個資源。確定一個資源被包括在一個或多個名字空間內(nèi),其中,這一個或多個名字空間的每一個被配置成組織一個或多個資源。標(biāo)識在這一個或多個名字空間的第一名字空間內(nèi)的第一資源,并且標(biāo)識與該資源相關(guān)的名字空間。第一名字空間段用于將該資源鏈接到第一資源,使得可以穿越該名字空間段從第一資源導(dǎo)航到該名字空間內(nèi)的該資源。
本發(fā)明的這些和其它目標(biāo)和特征,通過下面的描述和所附權(quán)利要求書將變得更顯而易見,或者可通過如下所述的本發(fā)明實踐來了解。
為進(jìn)一步闡明本發(fā)明的上述和其它優(yōu)點(diǎn)與特征,將參考特定的實施例和說明它們的附圖來呈現(xiàn)本發(fā)明的更具體的描述。要意識到,這些附圖只示出了本發(fā)明的典型實施例,并因此不能認(rèn)為是對本發(fā)明范圍的限制。通過使用附圖,用附加的特異性和細(xì)節(jié)來描述和說明本發(fā)明,這些附圖是圖1例示了一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的例子。
圖2例示了一個促進(jìn)將請求間接地路由到合作伙伴的計算機(jī)體系結(jié)構(gòu)的例子。
圖3例示了一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中名字空間管理器之間的二元關(guān)系。
圖4例示了一個促進(jìn)將名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)與其它協(xié)議集成的體系結(jié)構(gòu)的例子。
圖5例示了從一個名字空間的供應(yīng)者和集合視圖來看的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的例子。
圖6例示了具有使其在多個名字空間中可用的資源的示例名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)。
圖7A例示了一個路由名字空間注冊請求的方法的示例流程圖。
圖7B例示了一個遷移名字空間注冊請求的方法的示例流程圖。
圖7C例示了一個處理名字空間注冊請求的方法的示例流程圖。
圖8A例示了一個路由名字空間查找請求的方法的示例流程圖。
圖8B例示了一個遷移名字空間查找請求的方法的示例流程圖。
圖8C例示了一個處理名字空間查找請求的方法的示例流程圖。
圖9例示了一個資源參加多個名字空間的方法的示例流程圖。
圖10例示了一個標(biāo)識名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中資源子集的方法的示例流程圖。
圖11例示了一個適合于本發(fā)明原理的操作環(huán)境。
圖12例示了一個組織多個資源的方法的示例流程圖。
圖13例示了可以用于描述資源的示例模式分類法。
詳細(xì)說明本發(fā)明的原理提供將資源組織成集合,以促進(jìn)更有效和可靠的資源訪問。在有些實施例中,在一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中傳輸名字空間注冊請求。接收注冊一個名字空間分支的名字空間注冊請求,該名字空間注冊請求包括一個標(biāo)識該名字空間分支的名字空間串。一個至少單向的等價數(shù)字標(biāo)識值如散列值,是基于平面URI方案的整個名字空間串或者基于直到分層URI模式的名字空間串的第一路徑段的部分產(chǎn)生的。名字空間注冊請求被發(fā)送(并且有可能被路由)到一個名字空間管理器,它具有在數(shù)字上比其它名字空間管理器的標(biāo)識符更接近該至少單向的等價數(shù)字標(biāo)識值的標(biāo)識符。將該名字空間分支與該名字空間管理器相關(guān)聯(lián)。
在其它實施例中,在一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中遷移一個名字空間注冊請求。確定一個名字空間管理器已經(jīng)滿足了政策約束。標(biāo)識能夠遷移來滿足與該政策約束相關(guān)聯(lián)的政策動作的名字空間分支。該名字空間分支的現(xiàn)有注冊,響應(yīng)于該政策動作,被遷移到一個合作伙伴名字空間管理器。
在還有的其它實施例中,在一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中處理一個名字空間注冊請求。接收注冊一個名字空間分支的名字空間注冊請求。該名字空間注冊請求包括一個標(biāo)識該名字空間分支的名字空間串和請求注冊該名字空間分支的供應(yīng)者的標(biāo)識符。確定名字空間管理器對該名字空間分支感興趣。該名字空間串保存在一個經(jīng)適當(dāng)索引的名字空間注冊數(shù)據(jù)庫中。還確定注冊請求發(fā)起者(例如名字空間供應(yīng)者)的活動性隨后要以什么頻度來驗證。
在還有一些實施例中,在一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中發(fā)送(并且有可能路由)一個名字空間查找請求。接收包括標(biāo)識一個名字空間分支的名字空間串的名字空間查找請求。一個至少單向的等價數(shù)字標(biāo)識值如散列值,是基于平面URI方案的整個名字空間串或者基于直到分層URI方案的名字空間串的第一路徑段的部分產(chǎn)生的。名字空間查找請求被發(fā)送(并且有可能被路由)到一個目的地名字空間管理器,例如,按照接近度量。目的地名字空間管理器可以是在一個具有唯一的在數(shù)字上最接近該至少單向的等價數(shù)字標(biāo)識值的標(biāo)識符的名字空間管理器的預(yù)定范圍內(nèi)的鄰近名字空間管理器中的任何一個。名字空間查找請求被轉(zhuǎn)送以交付給相應(yīng)注冊請求的發(fā)起者(例如名字空間供應(yīng)者),它們已經(jīng)表達(dá)了對該名字空間分支感興趣或者負(fù)責(zé)該名字空間分支。
在還有一些另外的實施例中,在一個聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中遷移一個名字空間查找請求。名字空間管理器接收一個名字空間分支的名字空間查找請求。該名字空間管理器包括一個唯一的名字空間標(biāo)識符,它標(biāo)識該名字空間分支。名字空間管理器唯一的標(biāo)識符標(biāo)識比一個或多個其它名字空間管理器的名字空間管理器唯一標(biāo)識符更接近所產(chǎn)生的名字空間分支唯一標(biāo)識符(例如,至少單向的等價數(shù)字標(biāo)識值)的名字空間管理器。檢測名字空間分支已經(jīng)被遷移到一個具有不同名字空間管理器唯一標(biāo)識符的名字空間管理器的標(biāo)志。
在還有一些其它實施例中,在一個聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中處理一個名字空間查找請求。接收包括標(biāo)識一個名字空間的名字空間分支的名字空間串的名字空間查找請求。標(biāo)識該名字空間查找請求的名字空間查找請求類型。檢測一個或多個已經(jīng)注冊了與該名字空間分支相關(guān)的名字空間的部分的供應(yīng)者?;谒鶚?biāo)識的名字空間查找請求類型,該名字空間查找請求被轉(zhuǎn)送到至少一個供應(yīng)者。
在其它實施例中,一個資源參加聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中的多個名字空間。建立資源的唯一資源標(biāo)識符。在第一名字空間中發(fā)布該資源的可用性。該唯一資源標(biāo)識符被鏈接到第一名字空間中一個現(xiàn)有的名字空間節(jié)點(diǎn)資源,使得可以穿過第一名字空間來標(biāo)識該資源。在第二名字空間中發(fā)布該資源的可用性。該唯一資源標(biāo)識符被鏈接到第二名字空間中的一個現(xiàn)有的名字空間節(jié)點(diǎn)資源,使得可以穿過第二名字空間來標(biāo)識該資源。
在還有的一些其它實施例中,標(biāo)識名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中的一個資源子集。從一個發(fā)起者接收一個查詢。該查詢包括第一查詢部分,它標(biāo)識在名字空間分層結(jié)構(gòu)的第一層上滿足第一查詢準(zhǔn)則的第一部分資源。該查詢包括第二查詢部分,它標(biāo)識從包括在第一部分資源內(nèi)的資源中選擇的第二部分資源。第二部分資源是在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中第二不同位置上標(biāo)識的。第二部分資源的身分被返回給發(fā)起者。
在還有的其它實施例中,組織多個資源。確定一個資源被包括在一個或多個名字空間內(nèi),其中,這一個或多個名字空間的每一個被配置成組織一個或多個資源。標(biāo)識在這一個或多個名字空間的第一名字空間內(nèi)第一資源,并且標(biāo)識與該資源相關(guān)的名字空間。第一名字空間段用于將該資源鏈接到第一資源,使得可以穿越該名字空間段從第一資源導(dǎo)航到該名字空間內(nèi)的該資源。
在本發(fā)明范圍內(nèi)的實施例包括用于攜帶或者具有存儲在其上的計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計算機(jī)可讀介質(zhì)。這類計算機(jī)可讀介質(zhì)可以是任何可用的、可由通用或?qū)S糜嬎銠C(jī)系統(tǒng)訪問的介質(zhì)。作為例子而非限制性地,這類計算機(jī)可讀介質(zhì)可以包括物理存儲介質(zhì),諸如RAM、ROM、EPROM、CD-ROM或者其它光盤存儲、磁盤存儲或者其它磁存儲設(shè)備,或者任何可以用于以計算機(jī)可執(zhí)行指令、計算機(jī)可讀指令或者數(shù)據(jù)結(jié)構(gòu)或者可由通用或?qū)S糜嬎銠C(jī)系統(tǒng)訪問的形式攜帶或者存儲所需要的程序代碼方法的其它介質(zhì)。
在本說明書中以及在所附的權(quán)利要求書中,“網(wǎng)絡(luò)(network)”被定義為一個或多個數(shù)據(jù)鏈接(有可能速度不同),支持在計算機(jī)系統(tǒng)和/或模塊(例如,硬件和/或軟件模塊)之間傳輸電子數(shù)據(jù)。當(dāng)信息通過網(wǎng)絡(luò)或其它通信連接(或者硬線的,無線的,或者硬線或無線的組合)傳送或者提供給計算機(jī)系統(tǒng)時,將該連接適當(dāng)?shù)匾暈橛嬎銠C(jī)可讀介質(zhì)。因而,任何這類連接適當(dāng)?shù)胤Q為計算機(jī)可讀介質(zhì)。上述的組合也應(yīng)該包括在計算機(jī)可讀介質(zhì)內(nèi)。計算機(jī)可執(zhí)行指令包括,例如,使通用計算機(jī)系統(tǒng)或?qū)S糜嬎銠C(jī)系統(tǒng)執(zhí)行某個功能或者一組功能的指令和數(shù)據(jù)。計算機(jī)可執(zhí)行指令可以是,例如,二進(jìn)制的,中間格式指令如匯編語言,或者甚至是源代碼。在有些實施例中,硬件模塊,諸如例如,專用集成電路或門陣列被優(yōu)化以實現(xiàn)本發(fā)明的原理。
在本說明書中以及在所附的權(quán)利要求書中,“計算機(jī)系統(tǒng)(computersystem)”被定義為一個或多個軟件模塊,一個或多個硬件模塊,或者它們的組合,它們一起工作以對電子數(shù)據(jù)執(zhí)行操作。例如,計算機(jī)系統(tǒng)的定義包括個人計算機(jī)的硬件組件,以及軟件模塊,諸如個人計算機(jī)的操作系統(tǒng)。這些模塊的物理布局不重要。計算機(jī)系統(tǒng)可以包括一個或多個通過網(wǎng)絡(luò)耦合的計算機(jī)。同樣,計算機(jī)系統(tǒng)可以包括一個單個的物理設(shè)備(諸如移動電話或者個人數(shù)字助理“PDA”),其中內(nèi)部模塊(諸如存儲器和處理器)一起工作以對電子數(shù)據(jù)執(zhí)行操作。而且,計算機(jī)系統(tǒng)可以包括專用硬件,諸如例如,包括專用集成電路的路由器。
那些本領(lǐng)域的熟練技術(shù)人員將意識到,本發(fā)明可在網(wǎng)絡(luò)計算環(huán)境中實踐,該環(huán)境具有許多類型的計算機(jī)系統(tǒng)配置,包括個人計算機(jī)、膝上型計算機(jī)、手持設(shè)備、多處理器系統(tǒng)、基于微處理器的或者可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、移動電話、PDA、尋呼機(jī)、路由器、網(wǎng)關(guān)、中介器(broker)、代理、防火墻、重定向器、網(wǎng)絡(luò)地址翻譯器等等。本發(fā)明還可在分布式系統(tǒng)環(huán)境中實踐,其中本地和遠(yuǎn)程計算機(jī)系統(tǒng)通過網(wǎng)絡(luò)鏈接起來(或者通過硬線數(shù)據(jù)鏈路,無線數(shù)據(jù)鏈路,或者通過硬線數(shù)據(jù)鏈路和無線數(shù)據(jù)鏈路的組合)共同執(zhí)行任務(wù)。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程兩者的存儲器存儲設(shè)備中。
在本說明書中以及在所附的權(quán)利要求書中,“資源(resource)”被定義為任何模塊、對象、計算機(jī)系統(tǒng)、設(shè)備、文件、數(shù)據(jù)庫項、模式、服務(wù)等等,它們可以用于滿足指定的功能,諸如例如,存儲數(shù)據(jù),定義數(shù)據(jù)格式,打印文檔等。資源可以由服務(wù)組件來支持和/或主機(jī)控。例如,文件資源可以具有一個作為訪問該文件的服務(wù)組件的文件服務(wù)器。同樣,會議室可以具有一個接待員郵箱作為安排會議時間的服務(wù)組件。實現(xiàn)的資源可跨多個其它資源分布。
資源還定義為包括名字空間節(jié)點(diǎn)資源,例如,被包括在一個名字空間內(nèi),促進(jìn)或者提供對名字空間功能的訪問,諸如例如,名字空間安全和管理功能,和/或可以被穿過以訪問其它資源,諸如例如,另一個名字空間節(jié)點(diǎn)資源、計算機(jī)系統(tǒng)或計算機(jī)系統(tǒng)組件。在有些實施例中,名字空間節(jié)點(diǎn)資源可以以分布方式實現(xiàn)。而且,名字空間節(jié)點(diǎn)資源可以表示一個名字空間樹中的相應(yīng)節(jié)點(diǎn)。
在本說明書中以及在所附的權(quán)利要求書中,“資源描述符(resourcedescriptor)”定義為描述資源的數(shù)據(jù)結(jié)構(gòu)(例如,按照資源描述符模式格式化的)。
在本說明書中以及在所附的權(quán)利要求書中,“名字空間(namespace)”定義為確定范圍機(jī)制,用于將資源(例如,在因特網(wǎng)上的全部資源)分解成多個部分,在這些部分上可以執(zhí)行解析、發(fā)現(xiàn)和消息路由。名字空間是可擴(kuò)展的,因此可以定義新的范圍并且各個范圍可以是分層的。
名字空間可以視為森林,其中每個名字空間(樹)表示為具有方案的統(tǒng)一資源標(biāo)識符(“URI”)并且緊跟在其后的用作根的部分。URI方案可以是分層的或者是平面的。分層方案諸如“名字(name)”和“http”(與平面方案如“uuid”相反)可以由在方案名字之后“/”字符序列的存在來標(biāo)識。分層方案的第一部分可以標(biāo)識負(fù)責(zé)URI組件其余部分的命名授權(quán)機(jī)構(gòu)。這類URI是由在方案名字之后的“//”字符序列的存在來標(biāo)識的。名字空間可以既是分層的又是可路由的,意思是名字空間用作可以用于標(biāo)識從發(fā)送者到接收者的通信路徑的標(biāo)識符。
在有些實施例中,名字空間可以定義為如下Namespace=Flat|Hierarchical(平面的|分層的)
Flat=Scheme‘’Opaque_part(方案‘’不透明部分)Hierarchical=Scheme“/”(‘/’Authority‘/’) Segment(‘/’Segment)*(方案“/”(‘/’授權(quán)機(jī)構(gòu)‘/’) 段(‘/’段)*)Scheme=按URI一般句法由RFC-2396定義的Opaque-part=按URI一般句法由RFC-2396定義的Authority=按URI一般句法由RFC-2396定義的Segment=按URI一般句法由RFC-2396定義的資源可以使其在樹中的任何分支上可用,并且給定資源可以在多個名字空間中揭示。而且,給定的名字空間可以標(biāo)識單個資源或者名字空間分支(一組資源)。這樣的分組可以是邏輯的或物理的,取決于名字空間的語義。分組是通過在所標(biāo)識的名字空間分支上執(zhí)行深度優(yōu)先搜索來獲得的。一旦一個資源分組已經(jīng)被標(biāo)識,就可以在它們上面執(zhí)行許多操作,諸如選擇滿足某些準(zhǔn)則的資源,僅發(fā)送(并且有可能路由)給定的消息到在一個分組中那些資源,等等。
單個資源可以視為一個平凡的集合。因而,每個資源可以分配一個名字(空間)。因為名字空間是可路由的,消息可以通過名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)被路由到任何具有名字的資源。這樣的路由可以跨越信任邊界并且穿過防火墻。
通常,資源可以分配一個或多個URI,它們可以用于訪問該資源。一個URI,分配給資源的資源ID,在最低程度上可以跨越由一個給定的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)實現(xiàn)的所有名字空間,使得資源可以以異乎尋常的方式被引用。其它有可能非唯一的URI也可以分配給資源。這些其它有可能非唯一的URI提供通過由一個給定名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)實現(xiàn)的名字空間內(nèi)的附加位置來訪問資源。資源可以分配至少一個有可能非唯一的URI,用于可以被穿過以訪問該資源的每個名字空間。
圖5例示從名字空間的供應(yīng)者和集合觀點(diǎn)來看的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的例子。名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)500示出供應(yīng)者可以在名字空間樹中任何分支上注冊。而且,供應(yīng)者可以注冊在有可能不同樹中的多個名字空間分支上。例如,供應(yīng)者501注冊為名字空間分支location/CorporateBuildings/bldg34(位置/公司大樓/大樓34)、location/CorporateBuildings/bldg50/floor2(位置/公司大樓/大樓50/樓層2)和location/CorporateBuildings/bldg50/floor1/room1304(位置/公司大樓/大樓50/樓層1/房間1304)。供應(yīng)者502注冊為名字空間分支location/CorporateBuildings/bldg50(位置/公司大樓/大樓50)和location/CorporateBuildmgs/bldg26(位置/公司大樓/大樓26)注冊。供應(yīng)者503向location/CorporateBuildings/bldg50/floor1(位置/公司大樓/大樓50/樓層1)。
如圖5所示,應(yīng)用可以將名字空間視為可以分層嵌套的資源邏輯集合。即,中間名字空間節(jié)點(diǎn)(例如,Location/CorporateBuildings/bldg50/floor1(位置/公司大樓/大樓50/樓層1)和Location/CorporateBuildings/bldg50(位置/公司大樓/大樓50)被視為資源一名字空間節(jié)點(diǎn)資源。應(yīng)用可以有效地以相干和可伸縮的方式在這類邏輯集合上操作,包括發(fā)布、搜索、定位、跟蹤、確定來自集合內(nèi)部的事件的目標(biāo)與源。注意,不是邏輯集合內(nèi)的所有資源有必要定位在單個計算機(jī)系統(tǒng)或設(shè)備上。資源可以在空間和時間上跨計算機(jī)系統(tǒng)和設(shè)備分布。名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)照管有效地將查找請求路由到參加任何給定集合的計算機(jī)系統(tǒng)和設(shè)備,從而對應(yīng)用提供統(tǒng)一和一致的視圖。
圖6例示了使其資源在多個名字空間中可用的示例名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)600。URIOrganization/Product(組織/產(chǎn)品)標(biāo)識名字空間樹601的根。同樣,URILocation/Bldg(位置/大樓)42標(biāo)識名字空間樹602的根。如所示的,Printer(打印機(jī))603既在名字空間樹601中又在名字空間樹602中出現(xiàn)。
在本說明書和所附的權(quán)利要求書中,名字空間節(jié)點(diǎn)資源可以簡單地視為名字空間樹中的一個節(jié)點(diǎn)。有些名字空間節(jié)點(diǎn)資源可以被視為根節(jié)點(diǎn)(例如,Location/Bldg(位置/大樓)42),其它的可以被視為中間節(jié)點(diǎn)(例如,Organization/Product/Devices Team(組織/產(chǎn)品/設(shè)備團(tuán)隊)),還有其它的可以被視為葉節(jié)點(diǎn)(例如,Location/Bldg 42/Floor 1/Room 112/Printer603(位置/大樓42/樓層1/房間112/打印機(jī)603))。然而,應(yīng)該理解,一個名字空間樹中的名字空間節(jié)點(diǎn)資源可以引用另一個名字空間樹中的名字空間節(jié)點(diǎn)資源(或者其它資源)。因而,將名字空間節(jié)點(diǎn)資源視為一個名字空間樹中的根、中間或者葉不限制從其它名字空間樹對該名字空間節(jié)點(diǎn)資源的查詢。
名字空間還包括將兩或多個名字空間節(jié)點(diǎn)資源鏈接(或者相關(guān))起來的名字空間段。名字空間段可以用于鏈接同一名字空間中的名字空間節(jié)點(diǎn)資源。例如,名字空間段611(“Devices(設(shè)備)”)鏈接Organization/Product(組織/產(chǎn)品)到設(shè)備團(tuán)隊。而且,名字空間段可以鏈接(或者連接)不同名字空間樹中的名字空間節(jié)點(diǎn)資源,從而提供符號鏈接的功能。穿過名字空間段包括導(dǎo)航到所有目標(biāo)名字空間節(jié)點(diǎn)資源。例如,名字空間段641(“工程”)將PM Team(PM團(tuán)隊)連接到文件資源SpecTemplate.doc和Milestone.prj。
因此,可以穿過名字空間樹601中的名字空間段611(“Devices(設(shè)備)”),名字空間段621(“設(shè)備”)和名字空間段631(“Printer(打印機(jī))”)來標(biāo)識Printer(打印機(jī))603。同樣,可以穿過名字空間樹602中的名字空間段612(“Floor(樓層)1”)、名字空間段622(“Room(房間)1226”)和名字空間段632(“Printer(打印機(jī))”)來標(biāo)識Printer(打印機(jī))603。應(yīng)該理解,名字空間樹601的URI方案和名字空間樹602的URI方案可以不同。
由于同一資源可以參加多個名字空間并且提供符號鏈接功能,因此所有參加它們的名字空間和資源的全局視圖形成有向圖,其中名字空間段用作有標(biāo)簽的圖邊,而其它資源用作圖節(jié)點(diǎn)。名字空間根有效地將這個全局圖中的名字空間節(jié)點(diǎn)資源和其它資源劃分成起始和可到達(dá)資源的集合,其中起始名字空間節(jié)點(diǎn)資源提供名字空間確定范圍的基礎(chǔ)。因此,用于實現(xiàn)查詢的高速緩存的信息被減少并跨每個名字空間分布。
而且,任何給定的名字空間可以形成一個圖,因為同一資源可以使其在多個名字空間分支上可用并且有些段可以連接以其它方式連接的名字空間節(jié)點(diǎn)資源。
圖1例示名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100的例子。名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100包括名字空間管理器101,102,103,111和112,它們可以形成不同類型的結(jié)成聯(lián)盟的合作伙伴。例如,名字空間管理器101,102,103彼此對等地結(jié)成聯(lián)盟而沒有根名字空間管理器。另一方面,名字空間管理器111和112分別與名字空間管理器101和102結(jié)成聯(lián)盟,其中名字空間管理器101和102用作根名字空間管理器。不同類型的設(shè)備可以參加名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu),包括主機(jī)(例如,PC主機(jī)資源),消息路由器,消息網(wǎng)關(guān)(例如,防火墻,網(wǎng)絡(luò)地址翻譯(“NAT”盒,以及重定向器)和消息中介器(例如,發(fā)布-預(yù)訂中介(pub-subintermediarie))。名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100便利于總線協(xié)議(例如,活動性,控制,事件化和流化)。而且,名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100可以使用相關(guān)的WS協(xié)議諸如例如WS-發(fā)現(xiàn)和WS-事件化來與第三方軟件和硬件堆?;ゲ僮鳌?br>
通常,名字空間管理器101,102,103,111和112可以利用名字空間聯(lián)盟協(xié)議來形成合作伙伴關(guān)系并且交換名字空間信息。合作伙伴關(guān)系的形成和名字空間信息的交換促進(jìn)對名字空間資源更有效和可靠的訪問。對等名字空間管理器(例如,名字空間管理器101,102和103)可與其它對等名字空間管理器交換名字空間信息。然而,其它名字空間管理器(例如,名字空間管理器111和112)可與相應(yīng)的根名字空間管理器(例如,名字空間管理器101和102交換名字空間信息。名字空間管理器101,102,103,111和112每一個可以維護(hù)一個名字空間信息的數(shù)據(jù)庫,諸如例如,什么名字空間管理器或者供應(yīng)者對哪些名字空間分支感興趣。
名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100包括供應(yīng)者121,122,123,124,126和127。每個供應(yīng)者可以對名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中一個或多個名字空間分支感興趣。供應(yīng)者與相應(yīng)的名字空間管理器交換名字空間信息。例如,供應(yīng)者122與名字空間管理器111交換名字空間信息。相應(yīng)的名字空間管理器隨后促進(jìn)將名字空間信息傳送到其它名字空間管理器。例如,名字空間管理器111可以將名字空間信息傳送到名字空間管理器101,而名字空間管理器101可以接著將名字空間信息的有關(guān)部分傳送到名字空間管理器102和103。
名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)(例如,名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100)促進(jìn)在名字空間上分發(fā)查找請求到合適的供應(yīng)者。例如,供應(yīng)者501,502,503可以是供應(yīng)者121,122,123,124,126或127中每一個。
名字空間管理器可以使用各種各樣不同機(jī)制來結(jié)成聯(lián)盟。第一種結(jié)成聯(lián)盟機(jī)制包括對等名字空間管理器轉(zhuǎn)送名字空間信息到所有其它對等名字空間管理器。當(dāng)一個名字空間管理器要加入一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)時,該名字空間管理器使用廣播/多播發(fā)現(xiàn)協(xié)議,諸如例如WS-發(fā)現(xiàn),來宣布它的存在(廣播/多播Hello(你好))并且發(fā)出廣播/多播探測信號來檢測其它名字空間管理器。該名字空間管理器隨后與已經(jīng)存在于網(wǎng)絡(luò)上的其它名字空間管理器建立簡單的轉(zhuǎn)送合作伙伴關(guān)系,并且接受與新加入的名字空間管理器的新合作伙伴關(guān)系。之后,該名字空間管理器可以將每個名字空間請求轉(zhuǎn)送到它的合作伙伴。
第二種結(jié)成聯(lián)盟機(jī)制包括對等名字空間管理器有效地轉(zhuǎn)送所有名字空間信息到其它對等名字空間管理器。當(dāng)一個新的名字空間管理器要加入一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)時,新名字空間管理器使用廣播/多播發(fā)現(xiàn)協(xié)議,諸如例如WS-發(fā)現(xiàn)來宣布它的存在(廣播/多播Hello(你好))并且發(fā)出廣播/多播探測信號來檢測作為名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)一部分的其它名字空間管理器。在檢測到另一個名字空間管理器時,新的名字空間管理器與其它名字空間管理器建立合作伙伴關(guān)系。從已建立的合作伙伴關(guān)系,新的名字空間管理器了解到已經(jīng)參加聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)的其它名字空間管理器的存在。它接著與這些新了解到的名字空間管理器建立合作伙伴關(guān)系并且接受任何新進(jìn)入的合作伙伴關(guān)系請求。
名字空間管理器的到達(dá)/離開和名字空間注冊兩者都是通過名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)來充滿,使得每個名字空間管理器都具有其它名字空間管理器和名字空間注冊的全局知識。有了這樣的全局知識,任何名字空間管理器可以將查找請求只轉(zhuǎn)送到具有已在請求中指定的名字空間分支下注冊的供應(yīng)者/預(yù)訂者的合作伙伴。
第三種結(jié)成聯(lián)盟機(jī)制包括對等名字空間管理器間接地將名字空間信息轉(zhuǎn)送到其它對等的名字空間管理器。在這第三種機(jī)制中,名字空間管理器分配唯一的標(biāo)識符(ID的),諸如例如,128位或160位ID。負(fù)責(zé)給定名字空間樹的名字空間管理器被確定是一個其ID最接近于由至少單向映射功能諸如例如散列給定名字空間樹而獲得的名字空間管理器。基于名字空間的映射方案的這樣一個散列化在下面更詳細(xì)地描述。
在這第三種機(jī)制中,名字空間管理器在結(jié)構(gòu)上來充滿名字空間管理器到達(dá)和離開。另一方面,名字空間注冊被轉(zhuǎn)送到被確定為負(fù)責(zé)在請求中指定的名字空間分支的名字空間管理器。為了可伸縮性、負(fù)載平衡和容錯,接收名字空間注冊的名字空間管理器可靠地在那些在其鄰近集合中內(nèi)的名字空間管理器中充滿這些注冊。一個指定名字空間管理器的鄰近集合被確定為具有在一個有限的模ID的地址空間內(nèi)指定名字空間管理器的ID任何一邊上預(yù)定義范圍內(nèi)的ID的名字空間管理器集合。
與機(jī)制2相似,新加入的名字空間管理器使用廣播/多播發(fā)現(xiàn)協(xié)議,諸如例如WS-發(fā)現(xiàn)來宣布它的存在(廣播/多播Hello(你好))并且發(fā)出一個廣播/多播探測信號來檢測已經(jīng)是名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)一部分的名字空間管理器。新名字空間管理器與所發(fā)現(xiàn)的名字空間管理器建立合作伙伴關(guān)系并且使用該合作伙伴關(guān)系了解參加名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的其它名字空間管理器的存在。新名字空間管理器隨后與新發(fā)現(xiàn)的名字空間管理器建立進(jìn)一步的合作伙伴關(guān)系并且接收任何新進(jìn)入的合作伙伴關(guān)系請求。它從其在它所負(fù)責(zé)的名字空間分支之下的合作伙伴接受進(jìn)入的名字空間注冊,并且可在其鄰近集合上充滿它們。
響應(yīng)于進(jìn)入的查找請求,新名字空間管理器咨詢其注冊數(shù)據(jù)庫并且將請求轉(zhuǎn)送到具有在請求中指定的名字空間分支之下注冊的供應(yīng)者/預(yù)訂者的名字空間管理器。因而,當(dāng)使用這第三種機(jī)制時,在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中的每個名字空間管理器具有所有其它名字空間管理器的全局知識,但除了將注冊信息有效地劃分在名字空間管理器中。名字空間管理器因而間接地將查找請求只轉(zhuǎn)送到那些具有在請求中指定的名字空間分支之下注冊的供應(yīng)者/預(yù)訂者的合作伙伴。這個間接是通過具有在請求中指定的名字空間分支之下的名字空間注冊的全局知識的名字空間管理器來完成的。
第四種結(jié)成聯(lián)盟機(jī)制包括對等名字空間管理器間接地將名字空間信息路由到其它對等的名字空間管理器。這第四種機(jī)制不同于第三種機(jī)制,在于名字空間管理器到達(dá)/離開和名字空間注冊/查找請求兩者全部是路由的而不是充滿的。路由協(xié)議設(shè)計為保證名字空間查找請求和名字空間注冊請求之間的集合點(diǎn)。
圖2例示促進(jìn)將請求間接地路由到合作伙伴的計算機(jī)體系結(jié)構(gòu)200的例子。計算機(jī)體系結(jié)構(gòu)200示出不同類型的計算機(jī)系統(tǒng)和設(shè)備有可能跨多個參加名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的本地發(fā)現(xiàn)范圍而擴(kuò)展。
工作站233可以包括一個PnP供應(yīng)者實例,它向在location/architecture200/scope224/Devices(位置/體系結(jié)構(gòu)200/范圍224/設(shè)備)名字空間分支之下的相應(yīng)名字空間管理器注冊。為通知其合作伙伴有關(guān)這個供應(yīng)者實例的存在,工作站233經(jīng)過名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)路由名字空間注冊請求201。名字空間注冊請求201最初被轉(zhuǎn)送到膝上型231,它接著將名字空間注冊請求201轉(zhuǎn)送到消息中介器237,后者進(jìn)而將名字空間注冊請求201轉(zhuǎn)送到消息網(wǎng)關(guān)241。消息網(wǎng)關(guān)241將注冊信息注冊請求201保存在它的數(shù)據(jù)庫中并且返回成功消息204到工作站233。
隨后,另一個供應(yīng)者實例,這次是運(yùn)行服務(wù)的供應(yīng)者實例,在工作站233內(nèi)出現(xiàn)活動,并且將它自己向在location/architecture200/scope221/Services(位置/體系結(jié)構(gòu)200/范圍221/服務(wù))名字空間分支之下的相應(yīng)名字空間管理器注冊。這次名字空間管理器知道消息網(wǎng)關(guān)241負(fù)責(zé)在location/architecture200(位置/體系結(jié)構(gòu)200)之下的注冊并且將注冊請求205直接轉(zhuǎn)送到消息網(wǎng)關(guān)241。消息網(wǎng)關(guān)241將注冊信息注冊請求205保存在它的數(shù)據(jù)庫中并且返回成功消息206到工作站233。
隨后,打印機(jī)236(例如,UPnP打印機(jī))加電并且發(fā)送宣告207。服務(wù)器234檢測到宣告207,給打印機(jī)236分配名字空間location/architecture200/scope224/Devices(位置/體系結(jié)構(gòu)200/范圍224/設(shè)備),并且將注冊請求208路由到消息中介器237。消息中介器237將注冊請求208轉(zhuǎn)送到消息網(wǎng)關(guān)241。消息網(wǎng)關(guān)241將注冊信息注冊請求208保存在它的數(shù)據(jù)庫中并且返回成功消息210到服務(wù)器234。
隨后,個人計算機(jī)242發(fā)出發(fā)現(xiàn)請求211以發(fā)現(xiàn)在名字空間分支location/architecture200(位置/體系結(jié)構(gòu)200)之下的所有設(shè)備。由于個人計算機(jī)242不知道將發(fā)現(xiàn)請求211轉(zhuǎn)送到哪里,因此它通過工作站243路由發(fā)現(xiàn)請求211。因為路由協(xié)議實質(zhì)上保證給定名字空間樹的注冊和查找請求之間的集合點(diǎn),所以工作站243將發(fā)現(xiàn)請求211轉(zhuǎn)送到消息網(wǎng)關(guān)241。消息網(wǎng)關(guān)241將發(fā)現(xiàn)請求211轉(zhuǎn)送到工作站233和服務(wù)器234兩者。工作站233和服務(wù)器234分別發(fā)送應(yīng)答消息214和216到個人計算機(jī)242。
這第四種機(jī)制通過將請求路由到具有在請求中指定的名字空間分支(例如,location/architecture200(位置/體系結(jié)構(gòu)200)之下的名字空間注冊的全局知識的名字空間管理器(消息網(wǎng)關(guān)241)來工作。這第四種機(jī)制實質(zhì)上保證路由可以在0(logN)跳內(nèi)完成,其中N是參加聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)的名字空間管理器的數(shù)量。由于這第四種機(jī)制有效地劃分名字空間注冊信息并且不要求所有參加的名字空間管理器的全局知識,因此它的尺度可達(dá)非常大的網(wǎng)絡(luò),甚至是因特網(wǎng)。
圖3例示在一個名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中名字空間管理器之間二元關(guān)系的例子。在圖3中所示的二元關(guān)系是一種可用于實現(xiàn)名字空間管理器之間更有效路由的關(guān)系。使用反射的、反對稱的、傳遞的和總的并且在名字空間管理器身分域上定義的二元關(guān)系,將參加名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的名字空間管理器組織為一個經(jīng)排序的列表。經(jīng)排序列表的兩端是連接的,從而形成環(huán)306。這使得在經(jīng)排序列表中的每個名字空間管理器有可能將其本身視為在經(jīng)排序列表的中間。經(jīng)排序列表可以雙向鏈接,因此任何名字空間管理器可以以任一方向穿過經(jīng)排序列表。而且,存在從名字空間管理器身分的值域(例如,2,50或151)到名字空間管理器本身的1∶1映射。這個映射考慮到了在映射不緊密時是由于在值域中名字空間管理器的稀疏造成的。
在環(huán)306上的每個名字空間管理器可以包括一個路由表,它促進(jìn)將名字空間信息(例如,注冊和查找請求)路由到其它名字空間管理器。圖3中示出一個具有ID 64的名字空間管理器的示例路由表。該路由表指示ID 64的后繼者是ID 76。后繼者可以是在環(huán)306上從ID 64順時針方向的直接毗鄰名字空間管理器。后繼者可以改變,例如,當(dāng)新的名字空間管理器(例如,具有ID為71的)加入或者現(xiàn)有的名字空間管理器(例如,ID 76)離開名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)時。
該路由表指示ID 64的先前者是ID 50。先前者可以是在環(huán)306上從ID 64逆時針方向的直接毗鄰名字空間管理器。先前者可以改變,例如,當(dāng)新的名字空間管理器(例如,具有ID為59的)加入或者現(xiàn)有名字空間管理器(例如,ID 50)離開名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)時。
該路由表指示ID 64的鄰近者是ID 83,76,50和46。鄰近者可以使用兩個因子大小和范圍中較大者來標(biāo)識。名字空間管理器被標(biāo)識為一個鄰近的成員,當(dāng)相應(yīng)的ID在主ID(例如,以環(huán)306的順時針或逆時針方向)的最小范圍內(nèi)或者小于在鄰近中已經(jīng)存在的某個配置的最小鄰近大小時。例如,在環(huán)306上,指定的范圍可以具有20的數(shù)量并且大小可以大于4。因此,在ID 64順時針(+10)和逆時針(-10)兩者的20個位置內(nèi)的ID都是ID 64的鄰近者。鄰近者可以改變,例如,當(dāng)名字空間管理器加入或者離開名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)時或者當(dāng)指定的范圍被改變時。例如,在大小等于4的情況下,具有ID 48的名字空間管理器可以替代具有ID 46的名字空間管理器。
該路由表指示ID 64可以直接路由到ID 200,2,30,46,50,64,76,83,98和135。因而,當(dāng)具有ID 64的名字空間管理器接收請求時,名字空間管理器可以將請求路由到具有路由表中比較接近于請求中的名字空間管理器ID的ID的名字空間管理器。
圖4例示促進(jìn)將名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)與其它協(xié)議集成的體系結(jié)構(gòu)400的例子。名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)可以支持基于供應(yīng)者的擴(kuò)展模型。因此,聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)可以與現(xiàn)有的協(xié)議集成,假定現(xiàn)有協(xié)議的資源模型與名字空間的兼容。體系結(jié)構(gòu)400示出與現(xiàn)用目錄402和UDDI服務(wù)器403互操作的名字空間管理器401,404,406(例如,名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的)。實箭頭指示名字空間管理器使用名字空間聯(lián)盟協(xié)議通信,虛線區(qū)域指示名字空間管理器使用LDAP協(xié)議與現(xiàn)用目錄402通信,而點(diǎn)線箭頭指示名字空間管理器使用UDDI協(xié)議與UDDI服務(wù)器403通信。
發(fā)布-預(yù)訂主題是名字空間的另一個示例用法。發(fā)布-預(yù)訂主題可以視為對該主題的預(yù)訂者的集合;因此,主題名字被視為名字空間。將發(fā)布-預(yù)訂主題視為名字空間的優(yōu)點(diǎn)是名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)可以用于將通知消息從發(fā)布者路由到預(yù)訂者。對主題的預(yù)訂者可以被視為名字空間注冊請求并且對主題的發(fā)布可以被視為名字空間查找請求。
在有些實施例中,名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)可以給編程者提供類似總線的抽象來開發(fā)分布式應(yīng)用。例如,名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)可以抽象活動性一應(yīng)用使用這種機(jī)制來了解它們感興趣的資源何時已經(jīng)離開網(wǎng)絡(luò)了。為了跟蹤給定的資源,應(yīng)用預(yù)訂發(fā)送到在該資源的身分URI(例如,它的名字)之后命名的發(fā)布-預(yù)訂主題的通知。通知給定資源已經(jīng)離開網(wǎng)絡(luò)的任何組件(例如應(yīng)用)可以發(fā)布一個活動性通知消息給在資源的身分URI之后命名的主題,從而通知感興趣跟蹤該資源的其它應(yīng)用。由于發(fā)布-預(yù)訂的預(yù)訂跨名字空間基礎(chǔ)結(jié)構(gòu)結(jié)成聯(lián)盟并且由于許多身分方案是分層的(以從活動性觀點(diǎn)捕捉資源的容納(containment)方面),因此系統(tǒng)避免了簡單檢測系統(tǒng)的n2次ping(測試網(wǎng)絡(luò)節(jié)點(diǎn)連通性)問題并且在網(wǎng)絡(luò)規(guī)模很大時也非常好。而且,較感興趣的組件(例如應(yīng)用),對于給定的資源,越快注意到它已經(jīng)離開網(wǎng)絡(luò),就越有利。
開發(fā)者可以將名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)視為在其中注冊了資源諸如文件和事件源的云團(tuán)。應(yīng)用可以發(fā)出針對該云團(tuán)的發(fā)現(xiàn)請求來發(fā)現(xiàn)已注冊的資源。應(yīng)用也可以請求該云團(tuán)代表它們預(yù)訂當(dāng)前和將來的向該云團(tuán)注冊過的事件源。而且,應(yīng)用可以預(yù)定在該云團(tuán)中維護(hù)的發(fā)布-預(yù)訂主題。任何人可以發(fā)布通知消息并且該云團(tuán)照管將該消息轉(zhuǎn)送給向其發(fā)布該消息的事件主題的預(yù)訂者。
各種類型的資源可以在名字空間中發(fā)布,包括服務(wù)、設(shè)備、文件、主機(jī)、組件、數(shù)據(jù)庫中的項、關(guān)于元數(shù)據(jù)的元數(shù)據(jù)(模式)等等。資源可以具有作為它的主管/支持它的服務(wù)組件。例如,文件源可以具有文件服務(wù)器作為訪問該文件的服務(wù)組件。會議室可以具有接待員郵箱作為安排會議時間的服務(wù)組件。
每個資源可以與捕捉其描述性方面的資源描述符相關(guān)聯(lián)。因而,可以查詢資源描述符來標(biāo)識感興趣的資源。當(dāng)標(biāo)識了一個資源時,該資源可以通過該資源的相應(yīng)服務(wù)方面來訪問??梢园l(fā)送到作為資源的主管/支持資源的服務(wù)的消息類型從一種資源類型改變成另一種類型。例如,文件服務(wù)器支持開放文件資源而接待員接受會議室的安排時間請求。
實現(xiàn)資源描述符的數(shù)據(jù)模型可以是可版本化的,可擴(kuò)展的和可互操作的。這樣一個資源數(shù)據(jù)模型可以跨許多當(dāng)前的框架諸如分布式文件系統(tǒng)(“DFS”),AD和UDDI來共享。這樣一個單一的共享的數(shù)據(jù)模型可以促進(jìn)AD對象和DFS文件(或者形成其它資源管理系統(tǒng)的資源)被視為使用名字空間方法結(jié)成聯(lián)盟的資源,并且通過發(fā)送消息給作為主管的服務(wù)來訪問。
因此,資源可以定義為具有下列屬性資源ID可以任選地用一組引用屬性來增補(bǔ)并且可以在空間和時間上穩(wěn)定的URI??梢员硎緸橘Y源引用模式的實例。資源ID連同資源屬性可以共同地表示資源的身分。
描述符資源專用模式實例,包含有關(guān)該資源的半靜態(tài)元數(shù)據(jù)。該元數(shù)據(jù)用于資源選擇。資源描述符模式可以分類。配置數(shù)字單調(diào)增強(qiáng)的數(shù)字,標(biāo)識資源描述符數(shù)據(jù)的特定版本。這個數(shù)字每當(dāng)資源描述符被修改時就增加。
實例ID單調(diào)增加的數(shù)字,標(biāo)識活動資源的特定實例。例如,這可以與服務(wù)/設(shè)備資源的引導(dǎo)時間相同或者與文件資源的文件修改時間相同。
進(jìn)一步參考描述符,設(shè)備可以具有按照一個或多個模式的元數(shù)據(jù)。例如,打印機(jī)可以具有按照描述該打印機(jī)不同方面的不同模式的元數(shù)據(jù)。資源描述符模式可以由組織如UPnP論壇工作組(例如,打印機(jī)模式可以由UPnP打印機(jī)工作組來標(biāo)準(zhǔn)化)和W3C來標(biāo)準(zhǔn)化。圖13示出描述資源的示例分類1300。在分類1300內(nèi),不同模式通常表示為如下服務(wù)引用模式擴(kuò)展資源引用模式并且指定一個動作類型列表,該列表標(biāo)識由資源支持的消息,它的斷言的政策容器(諸如所支持的傳輸),以及一組擴(kuò)展名。
資源描述符模式擴(kuò)展資源引用模式并且指定描述符的配置數(shù)字(見下面的說明),資源的友好名字,支持資源的服務(wù)的服務(wù)引用,以及一組擴(kuò)展名。
名字空間節(jié)點(diǎn)描述符模式擴(kuò)展資源描述符模式并且指定從它可達(dá)到的資源作為邊緣描述符模式的實例。
邊緣描述符模式指定在本地確定范圍的邊緣名字,邊緣類型和目標(biāo)資源。
設(shè)備描述符模式擴(kuò)展資源描述符模式并且指定序列號和制造者名字。
打印機(jī)描述符模式擴(kuò)展設(shè)備描述符模式并且指定打印機(jī)專用屬性諸如分辨率,彩色打印的能力,每分鐘頁數(shù),以及所支持的紙張大小。
以上述任何描述模式定義的任何信息可以包括在一個用于標(biāo)識聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)中資源的查詢中。例如,可以使用過濾器(或者查詢)表達(dá)式搜索和導(dǎo)航描述符數(shù)據(jù)。例如,可以按照描述符模式或字段值類型來過濾,導(dǎo)航到從它的引用字段可到達(dá)的實例,對這些應(yīng)用預(yù)訂者的過濾器,等等。在有些實施例中,使用基于XPath的過濾器表達(dá)式?;貋韰⒖紙D6,使用XPath句法,在由資源描述符模式指定的描述數(shù)據(jù)上操作的過濾器表達(dá)式可以用于定位一個在Location/Bldg42/Floor1(位置/大樓42/樓層1)的可以彩色打印的打印機(jī)。
名字空間可以指定一個過濾器表達(dá)式,以URI段參數(shù)的形式,用于在選擇和穿越的名字空間節(jié)點(diǎn)資源上定義的字段/屬性。例如,名字空間Location/Bldg42/Floor1/Room1226;employee=″employee1″/printer(位置/大樓42/樓層1/房間1226;職員=“職員1”/打印機(jī))僅當(dāng)“Room 1226(房間1226)”描述符具有“employee(職員)”字段具有值“employee1(職員1)”時才穿越名字空間節(jié)點(diǎn)資源“Room 1226(房間1226)”。同樣,名字空間Orgamzation/Product/DevicesTeam;building=″Bldg33″/Dev/Computer604;printer=″color″(組織/產(chǎn)品/設(shè)備團(tuán)隊;大樓=“大樓33”/設(shè)備/計算機(jī)604;打印機(jī)=“彩色”)僅當(dāng)它的描述符具有值為“Bldg33(大樓33)”的“building(大樓)”字段(因而標(biāo)識資源的第一部分)時才穿越名字空間節(jié)點(diǎn)資源“Devices Team(設(shè)備團(tuán)隊)”,并且僅當(dāng)它的描述符具有值“color(彩色)”的“printer(打印機(jī))”(意味著標(biāo)識一臺彩色打印機(jī)已經(jīng)附在它上面了)字段時才選擇名字空間節(jié)點(diǎn)資源“Computer 604(計算機(jī)604)”。
##使用唯一的名字空間管理器ID,可以提供下面的功能來路由名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中的名字空間信息RouteNumerically(V,Msg)給定從名字空間管理器的值域標(biāo)識的值V和消息“Msg”,將該消息遞送給名字空間管理器X(它的身分可以使用映射功能映射到V)。
Neighborhood(X,S)Neighborhood(鄰近)是在名字空間管理器X的任一側(cè)的具有集的勢等于S的名字空間管理器集合(例如在環(huán)306上)。
本發(fā)明的實施例還可以使用參考聯(lián)盟的名字空間管理器的接近準(zhǔn)則。接近準(zhǔn)則可以定義為一種等價關(guān)系,將結(jié)成聯(lián)盟的名字空間管理器集合劃分成一組不相交的類(或分區(qū))。通常,在集合S上的關(guān)系R如果滿足下列屬性就是等價關(guān)系·反射x是S的一個元素→x R x·對稱給定S的x,y元素,x R y→y R x
·傳遞給定S的x,y,z元素,x R y∧y R z→x R z本發(fā)明的實施例可以支持多個不同接近準(zhǔn)則,并且接近準(zhǔn)則可以以偏序來排列。例如,認(rèn)為所有屬于“公司1”的名字空間節(jié)點(diǎn)資源是最接近的準(zhǔn)則在認(rèn)為在“公司1,位置A”內(nèi)的所有名字空間管理器是最接近的準(zhǔn)則之前。這是前面的準(zhǔn)則(屬于“公司A”)認(rèn)為最接近的名字空間管理器的集合為后面的準(zhǔn)則(屬于“公司1,位置A”)認(rèn)為最接近的名字空間管理器的集合的超集所得到的結(jié)果。另一方面,在認(rèn)為“公司1”內(nèi)所有名字空間管理器最接近的準(zhǔn)則與認(rèn)為“公司1,位置A”內(nèi)所有名字空間管理器最接近的準(zhǔn)則之間沒有先后關(guān)系。
在計算聯(lián)盟中每個名字空間管理器的路由名字空間管理器時考慮接近事項,其結(jié)果是在到最終目的地的路徑上的每個路由跳躍保持在發(fā)起請求的名字空間管理器的最接近范圍內(nèi)。而且,仍能產(chǎn)生用數(shù)字表示的空間中名字空間管理器之間閉合距離的明顯進(jìn)步。
使用唯一的ID連同接近準(zhǔn)則,可以提供下面的附加功能用于在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中路由名字空間信息RouteProximally(V,Msg,P)給定從名字空間管理器的域標(biāo)識的值V和消息“Msg”,將該消息遞送到名字空間管理器Y,其身分可以被映射到接近準(zhǔn)則P認(rèn)為等價的名字空間管理器之中的V。
當(dāng)供應(yīng)者/預(yù)訂者在名字空間分支注冊一個名字空間管理器時,注冊請求被發(fā)送(并且有可能被路由)到負(fù)責(zé)維護(hù)在注冊請求中指定的名字空間樹的注冊信息的合作伙伴名字空間管理器??晒┨鎿Q地,發(fā)起名字空間注冊請求到結(jié)構(gòu)中的名字空間管理器是負(fù)責(zé)的名字空間管理器。將相對于圖1的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)和圖6的名字空間來描述方法710。
方法710包括接收注冊一個名字空間分支的名字空間注冊請求的動作,該名字空間注冊請求包括標(biāo)識該名字空間分支的名字空間標(biāo)識符(動作711)。例如,名字空間管理器112可以從供應(yīng)者131接收注冊請求132,它包括名字空間ID 142。由于名字空間管理器112不是對等名字空間管理器,因此名字空間管理器112可以將注冊請求132轉(zhuǎn)送到名字空間管理器102。名字空間管理器112可以在經(jīng)過名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100傳遞注冊請求132之前按照它的方案所標(biāo)識的規(guī)則規(guī)范化名字空間ID 142。
方法710包括一個動作,基于名字空間標(biāo)識符連同該名字空間標(biāo)識符路徑部分的至少一部分來產(chǎn)生至少單向等價標(biāo)識值(動作712)。例如,名字空間管理器102可以基于名字空間ID 142連同名字空間ID 142的路徑部分的至少一部分來產(chǎn)生散列152。任何各種各樣不同的散列函數(shù),諸如例如,SHA,可以用于從名字空間串的各部分產(chǎn)生散列值。產(chǎn)生名字空間串的散列值可以基于名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)的配置而改變。
對于非分層的名字空間方案諸如“uuid”(例如,由在方案之后不包含“/”字符序列來標(biāo)識的),可以在整個名字空間上產(chǎn)生散列。例如,整個名字空間串“uuida36fab9c-9c7f-42c3-97d8-36cd57e9bd29”可用于產(chǎn)生SHA散列值。
分層的名字空間可以是授權(quán)的或非授權(quán)的,方案部分之后用兩個相應(yīng)的字符序列“//”和“/”來區(qū)分。對于授權(quán)的名字空間諸如“name(名字)”,在跟隨在“//”字符序列之后的方案部分、授權(quán)分量和名字空間的第一路徑分量上產(chǎn)生散列。例如,名字空間串″name//red.pm.xrx200/printers/b42-1749-a″的″name//red.pm.xrx200/printers″部分可用于產(chǎn)生SHA散列值。對于非授權(quán)的名字空間諸如圖6的“l(fā)ocation(位置)”方案,可以在跟隨在“/”字符序列之后的方案部分和名字空間的第一路徑分量上產(chǎn)生散列。例如,名字空間串″location/Bldg42/Floor1/Room1226″的″location/Bldg42″部分。
方法710包括一個動作,發(fā)送名字空間注冊請求到一個名字空間管理器,這個名字空間管理器具有一個在數(shù)字上比其它名字空間管理器的標(biāo)識符更接近于至少單向的等價數(shù)字標(biāo)識值的標(biāo)識符(動作713)。例如,名字空間管理器102可以啟用RouteNumerically(在數(shù)字上路由)函數(shù),提供散列152和注冊消息132作為輸入,例如,RouteNumerically(散列152,注冊消息132)??晒┨鎿Q地,可以使用RouteProximally(最接近地路由)函數(shù)。在有些實施例中,名字空間注冊請求被直接發(fā)送而沒有路由發(fā)生。
聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)100隨后使用聯(lián)盟協(xié)議來將注冊消息轉(zhuǎn)送到適當(dāng)?shù)拿挚臻g管理器。例如,注冊消息132可以被路由到名字空間管理器103。名字空間管理器103可已將名字空間分支的責(zé)任遷移到了另一個名字空間管理器。因而,名字空間管理器103可返回一個指引消息給名字空間管理器102。因此,當(dāng)已經(jīng)指向了名字空間分支的責(zé)任時,名字空間管理器102可以接收指定適當(dāng)?shù)拿挚臻g管理器的指引消息。名字空間管理器102進(jìn)而可以發(fā)送注冊請求132到適當(dāng)?shù)拿挚臻g管理器??梢杂龅揭粋€或多個指引,直到有一個名字空間管理器接受或者拒絕該注冊請求為止。
方法710包括一個動作,將該名字空間管理器與該名字空間分支相關(guān)聯(lián)(動作714)。例如,名字空間管理器103可以與由名字空間ID 142標(biāo)識的名字空間分支相關(guān)聯(lián)(通過供應(yīng)者131)。名字空間ID 142可以,例如,標(biāo)識名字空間601或名字空間602的一部分。在名字空間管理器與名字空間分支之間的關(guān)聯(lián)允許請求(例如,查找請求)指定在要轉(zhuǎn)送的注冊請求中所指定的之下的名字空間分支,代替被路由到在該關(guān)聯(lián)中指定的名字空間管理器。當(dāng)檢測到名字空間管理器故障或者獲得對一個不同名字空間管理器的指引時,關(guān)聯(lián)被打斷。當(dāng)檢測到故障時,路由后來的請求,直到可以形成一個新的關(guān)聯(lián)為止。
圖7B例示遷移名字空間注冊請求的方法720的示例流程圖。方法720將相對于圖1的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)和圖6的名字空間來描述。
方法720包括一個動作,確定名字空間管理器已經(jīng)滿足了政策約束(動作721)。例如,名字空間管理器103可以確定在名字空間管理器103處正在處理的名字空間信息的數(shù)量(與聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)100有關(guān)的)已經(jīng)超過一個配置的閾限。配置的閾限可以是,例如,保持在名字空間管理器處的注冊總數(shù)或者在名字空間管理器處正在服務(wù)的查找請求的總數(shù)。
方法720包括一個動作,標(biāo)識一個可以被遷移以滿足與政策約束相關(guān)聯(lián)的政策行動的名字空間分支(動作722)。例如,名字空間管理器103可以標(biāo)識一個可以被遷移以減少在名字空間管理器103處理的名字空間信息低于配置的閾限的名字空間分支(例如,相應(yīng)于名字空間ID 142)。名字空間管理器可標(biāo)識一個更重地填充了的和/或更重地服務(wù)的名字空間分支用于遷移。
方法720包括一個動作,響應(yīng)于政策行動,將名字空間分支的現(xiàn)有注冊遷移到合作伙伴名字空間管理器(動作723)。例如,名字空間管理器103可以響應(yīng)于一個行動,將現(xiàn)有注冊遷移到合作伙伴(例如,鄰近)名字空間管理器,這個行動是為減輕較重填充了的和/或較重服務(wù)的名字空間分支上的負(fù)擔(dān)而發(fā)生的。
方法730也可以包括一個動作,接收相應(yīng)于名字空間分支的名字空間請求。例如,名字空間管理器103可以接收相應(yīng)于由名字空間ID 142表示的名字空間分支的注冊請求132。
方法720還可以包括一個動作,采取行動將名字空間請求重定向到合作伙伴名字空間管理器。例如,由點(diǎn)線箭頭指示,名字空間管理器103可以重新將注冊請求132路由到名字空間管理器101。遷移名字空間分支的名字空間管理器可以啟用RouteNumerically(在數(shù)字上路由)來將請求重新路由到不同的名字空間管理器。例如,可以啟用RouteNumerically(H,migrateMsg)來將請求重新路由到由正在遷移的名字空間分支的至少單向的等價值標(biāo)識的名字空間管理器(例如,名字空間管理器101)。例如,要遷移分支location/Bldg42/Floor1(位置/大樓42/樓層1),名字空間管理器103在串“l(fā)ocation/Bldg42/Floor1”上產(chǎn)生散列H,啟用RouteNumerically(H,migrateMsg)來標(biāo)識負(fù)責(zé)被遷移分支的名字空間管理器101,并且將在被遷移名字空間分支之下的所有名字空間注冊如location/Bldg42/Floor1/Room1226(位置/大樓42/樓層1/房間1226)和location/Bldg42/Floor1/Room1119(位置/大樓42/樓層1/房間1119)遷移到所標(biāo)識的名字空間管理器101。
名字空間管理器也可決定將所有沿被遷移的名字空間分支的干線所遇到的名字空間注冊轉(zhuǎn)送到作為該分支主機(jī)的合作伙伴名字空間管理器。這促進(jìn)合作伙伴名字空間管理器分支為所有指定該名字空間分支的查找請求服務(wù),而不必讓這些請求經(jīng)歷正在遷移的名字空間管理器,或者直接或者間接地,自始至終。正在遷移的名字空間管理器可以留在指示它已經(jīng)遷移了指定名字空間分支之下的注冊信息的樹樁之后。正在遷移的名字空間管理器也可以廢除對跟蹤在被遷移的注冊中指定的供應(yīng)者/預(yù)訂者的活動性通知的預(yù)訂,如果有的話。因此,隨后在由正在遷移的名字空間管理器接收的被遷移名字空間分支的干線之下和沿此干線的名字空間注冊被轉(zhuǎn)送到合作伙伴名字空間管理器。
圖7C例示處理名字空間注冊請求的方法730的示例流程圖。方法720將相對于圖1的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)和圖6的名字空間來描述。
方法730包括一個動作,接收注冊一個名字空間分支的名字空間注冊請求,該名字空間注冊請求包括一個標(biāo)識該名字空間分支的名字空間URI串,并包括一個唯一的引用或標(biāo)識符,用于請求該名字空間分支中注冊的供應(yīng)者(或者預(yù)訂者)(動作731)。例如,名字空間管理器103可以接收包括對供應(yīng)者131的引用的注冊請求132。
方法730包括一個動作,確定名字空間管理器對該名字空間分支感興趣(動作732)。例如,名字空間管理器102可以確定名字空間管理器102是否負(fù)責(zé)由名字空間ID 142表示的名字空間分支(例如,Organiztion/Product/Messaging Team(組織/產(chǎn)品/消息團(tuán)隊))。當(dāng)名字空間管理器102不負(fù)責(zé)時,名字空間管理器102可以將該名字空間注冊請求(例如,注冊請求132)轉(zhuǎn)送到指定名字空間分支的負(fù)責(zé)的名字空間管理器(例如名字空間管理器103)??晒┨鎿Q地,當(dāng)名字空間管理器102不負(fù)責(zé)時,名字空間管理器102可以發(fā)送指引消息134到發(fā)起該注冊請求(例如注冊請求133)的名字空間管理器(例如,名字空間管理器103)來代替聯(lián)系負(fù)責(zé)的名字空間管理器(例如,名字空間管理器101)。當(dāng)名字空間管理器102負(fù)責(zé)時,名字空間管理器102可以保留該名字空間注冊請求。
方法730包括一個動作,將名字空間標(biāo)識符保存在適當(dāng)索引的名字空間注冊數(shù)據(jù)庫(動作733)。例如,如果名字空間標(biāo)識符是URI串,則以字母順序存儲在名字空間注冊數(shù)據(jù)庫中,其中較長的串排列得較高。例如,名字空間管理器103可以將名字空間ID 142保存在名字空間注冊數(shù)據(jù)庫中。圍繞供應(yīng)者131的虛線和相應(yīng)的虛線框,指示名字空間管理器103已經(jīng)將供應(yīng)者131引用為對名字空間ID 142表示的名字空間感興趣。
方法730還可以包括一個動作,確定隨后要多么頻繁地驗證供應(yīng)者的活動性。例如,名字空間管理器103可以確定隨后要多么頻繁地驗證供應(yīng)者131的活動性。名字空間供應(yīng)者103可以可選地預(yù)訂發(fā)布到由ID 161標(biāo)識的供應(yīng)者的發(fā)布-預(yù)訂主題的活動性通知。發(fā)布-預(yù)訂主題可以由ID 161標(biāo)識。可供替換地,如果沒有進(jìn)行活動性預(yù)訂,則給注冊分配一段時間有限的租期。供應(yīng)者131可以在租期期滿之前通過直接聯(lián)系名字空間管理器103來更新注冊。其它活動性機(jī)制也可以使用。
名字空間管理器和供應(yīng)者活動性可以跨分層結(jié)構(gòu)來分布。位于分層結(jié)構(gòu)中較高層處的名字空間管理器可以依賴于位于相似位置的其它名字空間管理器來報告相應(yīng)的較低層名字空間管理器和供應(yīng)者的活動性信息。例如在圖1中,名字空間管理器103可以跟蹤名字空間管理器102的活動性(兩者都是根名字空間管理器)。名字空間管理器103可以依賴于名字空間管理器102來報告任何相應(yīng)的較低層名字空間管理器(例如,名字空間管理器112)或者供應(yīng)者(例如,供應(yīng)者124)的故障。名字空間管理器102進(jìn)而依賴于名字空間管理器103來報告相似類型故障(例如,供應(yīng)者126的故障)。
在成功注冊供應(yīng)者131(或者失敗)之后,名字空間管理器102可以發(fā)送指示成功(或失敗)消息到供應(yīng)者131。
有時,消費(fèi)者(其它計算機(jī)系統(tǒng)或設(shè)備)可能希望訪問由一個供應(yīng)者管理的名字空間分支中的資源。為獲得對資源的訪問,消費(fèi)者可發(fā)出查找請求以試圖標(biāo)識資源。查找請求可以在名字空間管理器處接收并且遞送到一個或多個適當(dāng)?shù)墓?yīng)者。通常,當(dāng)名字空間管理器接收查找請求時,它將該查找請求路由到最接近它(如由有個預(yù)定義的接近度量確定的)并且朝著負(fù)責(zé)在該請求中指定的名字空間分支的名字空間管理器鄰近的合作伙伴名字空間管理器。隨著跨鄰近名字空間管理器復(fù)制注冊信息,該查找請求可以由在鄰近集合中任何名字空間管理器來滿足。
通過最接近發(fā)起該查找請求的名字空間管理器來路由,其結(jié)果是改善的網(wǎng)絡(luò)吞吐量和動態(tài)負(fù)載平衡,因為從查找請求滿足的角度,查找請求獲得跨鄰近名字空間管理器自動和有效地劃分。為促進(jìn)路由,映射查找請求中指定的名字空間ID的算法可以實質(zhì)上與映射注冊請求中指定的名字空間ID的算法相同。例如,從名字空間身分的值域到名字空間管理器的1∶1映射可以用于映射查找和注冊請求兩者的名字空間ID。
圖8A例示了路由名字空間查找請求的方法810的示例流程圖。方法810將相對于圖1的聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)和圖6的名字空間來描述。
方法810包括一個動作,接收名字空間查找請求,它包括一個標(biāo)識名字空間分支的名字空間標(biāo)識符(動作811)。例如,名字空間管理器103可以接收查找請求133。查找請求133可以指定標(biāo)識名字空間樹602的一個分支的名字空間ID 143,諸如例如,Location/Bldg 42/Floor 2/ConfRoom 2005(位置/大樓42/樓層2/會議室2005)。
方法810包括一個動作,基于該名字空間標(biāo)識符產(chǎn)生一個至少單向的等價數(shù)字標(biāo)識值(動作812)。例如,名字空間管理器102可以散列名字空間ID 143的方案部分連同名字空間ID 143的路徑部分的至少一部分來產(chǎn)生散列153。
方法810包括一個動作,發(fā)送名字空間查找請求到目的地名字空間管理器(動作813)。目的地名字空間管理器包括在鄰近的名字空間管理器中,這些名字空間管理器在一個名字空間管理器的預(yù)定范圍之內(nèi),這個名字空間管理器具有一個在數(shù)字上最接近該至少單向的等價數(shù)字標(biāo)識值的唯一標(biāo)識符。為了路由查找請求133,名字空間管理器103可啟用RouteProximally(最接近地路由)(或者RouteNumerically(在數(shù)字上路由))功能。例如,名字空間管理器103可以啟用RouteProximally(散列153,查找消息133,接近準(zhǔn)則P)來路由查找消息133到合作伙伴名字空間管理器102,因為在被認(rèn)為在指定的接近準(zhǔn)則P下最接近名字空間管理器103的名字空間管理器之中,它被標(biāo)識為一個具有在數(shù)字上最接近的唯一ID的名字空間管理器。通過RouteProximal1y(最接近地路由)功能,名字空間管理器102可以被標(biāo)識。
方法810也可以包括一個動作,轉(zhuǎn)送名字空間查找請求以遞送到一個或多個對該名字空間分支感興趣的供應(yīng)者。例如,名字空間管理器103可以轉(zhuǎn)送查找請求133到名字空間管理器102。名字空間管理器102可以轉(zhuǎn)送查找請求133到供應(yīng)者131。
圖8B例示遷移名字空間查找請求的方法820的示例流程圖。方法820將相對于圖1的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)和圖6的名字空間來描述。
方法820包括一個動作,接收一個名字空間分支的名字空間查找請求(動作821)。名字空間查找請求包括一個唯一的名字空間標(biāo)識符,它標(biāo)識特定的名字空間分支。例如,名字空間標(biāo)識符可以是URI ID 143。而且,所接收的名字空間查找請求可任選地包括一個至少單向的等價數(shù)字標(biāo)識值,它是基于指定的名字空間分支的標(biāo)識符產(chǎn)生的。例如,它可以從方案和名字空間ID 143的路徑部分的至少一部分產(chǎn)生的散列值153。該名字空間管理器的名字空間管理器標(biāo)識符比一個或多個其它名字空間管理器的名字空間分支標(biāo)識符更接近名字空間分支標(biāo)識符。名字空間管理器102可以接收查找請求133作為唯ID 172比名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)100中其它名字空間管理器的唯一標(biāo)識符(例如ID174)更接近散列153的結(jié)果。
方法820包括一個動作,檢測該名字空間分支已經(jīng)被遷移到一個具有不同名字空間分支標(biāo)識符的不同名字空間管理器的標(biāo)志(動作822)。例如,名字空間管理器102可以檢測樹樁的存在,它指示由名字空間ID 143表示的名字空間分支已經(jīng)被遷移到名字空間管理器101。
方法820還可以包括至少通知發(fā)起的名字空間管理器該名字空間分支已經(jīng)被遷移到不同名字空間管理器的動作。例如,名字空間管理器102可以至少通知名字空間管理器103由名字空間ID 143表示的名字空間分支已經(jīng)被遷移。例如,名字空間管理器102可以發(fā)送指引消息134到名字空間管理器103,指示名字空間管理器103應(yīng)該聯(lián)系名字空間管理器101或者為被遷移的分支發(fā)起一個新的查找請求132。
名字空間管理器103可以遵循來自名字空間管理器102包括在指引消息中的指令。
名字空間管理器102可以可供替換地重新路由查找請求133本身,通過在其本身上啟用RouteProximally(新ID H,查找請求133,接近準(zhǔn)則CriteriaP)。例如,與原始散列值相比,新ID H可以通過散列經(jīng)遷移的名字空間分支的整個分量來產(chǎn)生,前者是通過只散列方案部分和路徑組件的第一部分來產(chǎn)生的。啟用RouteProximally(最接近地路由)可以使查找請求133被路由到其它名字空間管理器來遞送到名字空間管理器101(如由包括查找請求133的虛線箭頭所指示的)。
圖8C例示處理名字空間查找請求的方法830的示例流程圖。方法830將相對于圖1的名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)和圖5的名字空間來描述。
方法830包括一個動作,接收一個名字空間查找請求,它包括一個標(biāo)識名字空間的名字空間分支的名字空間標(biāo)識符(動作831)。例如,名字空間管理器102可以接收包括名字空間ID 143的名字空間查找請求133。名字空間ID 143可以標(biāo)識名字空間基礎(chǔ)結(jié)構(gòu)500的名字空間分支。
方法830包括一個動作,標(biāo)識名字空間查找請求的名字空間查找請求類型(動作832)。例如,名字空間管理器102標(biāo)識查找請求133的名字空間查找請求類型。在有些實施例中,名字空間查找請求類型可以是一般的請求類型(例如對于任何名字空間分支)或者確定目標(biāo)的請求類型(例如對于一個特定的名字空間分支)。
方法830包括檢測一個或多個供應(yīng)者已經(jīng)注冊了與該名字空間分支有關(guān)的名字空間的各部分的動作(動作833)。例如,名字空間管理器102可以檢測一個或多個供應(yīng)者已經(jīng)注冊了由名字空間ID 143表示的名字空間分支有關(guān)的名字空間的各部分?,F(xiàn)在參考圖5,如果名字空間ID 143是Location/CorporateBuildings/Bldg 50/Floor1(位置/公司大樓/大樓50/樓層1),則供應(yīng)者501、502和503可以被標(biāo)識。供應(yīng)者502已經(jīng)為Room 1304(房間1304)(名字空間樹500的Floor1(樓層1)下面)注冊,供應(yīng)者502為Bldg 50(樓層50)(在名字空間樹500的樓層1上面)注冊,而供應(yīng)者503向名字空間樹500的Floor1(樓層1)注冊。
方法830還可以包括一個動作,將名字空間查找請求轉(zhuǎn)送到至少一個供應(yīng)者,基于所標(biāo)識的名字空間查找請求類型。例如,名字空間管理器102可以將查找請求133轉(zhuǎn)送到供應(yīng)者501、502和503中的一個或多個。
對于一個一般請求,名字空間管理器102將請求轉(zhuǎn)送到所有其注冊名字空間分支是查找請求中指定的名字空間管理器的前綴或后綴的供應(yīng)者。例如,名字空間管理器102可將名字空間查找請求133轉(zhuǎn)送到供應(yīng)者501、502和503,如果名字空間ID 143是Location/Corporate Buildings/Bldg 50/Floor1(位置/公司大樓/大樓50/樓層1)。對于一個確定目標(biāo)的請求,名字空間管理器將請求只轉(zhuǎn)送到其注冊名字空間分支是查找請求中指定的名字空間管理器的最大前綴的供應(yīng)者。然而,對于一般和確定目標(biāo)類型兩者,如果不止一個給定供應(yīng)者的拷貝諸如501可用,則名字空間管理器102將請求轉(zhuǎn)送到在所選擇的接近度量之下較接近查找請求的起點(diǎn)(在這種情況下,名字空間管理器103)的供應(yīng)者。
名字空間管理器103可以在由名字空間ID 143表示的名字空間分支與名字空間管理器102之間創(chuàng)建一關(guān)聯(lián)(例如,將它存儲在名字空間數(shù)據(jù)庫中)。這樣一個關(guān)聯(lián)促進(jìn)名字空間查找請求指定在關(guān)聯(lián)中指定的名字空間分支之下的一個名字空間分支(例如,在Location/Corporate Buildings/Bldg 50/Floor1(位置/公司大樓/大樓50/樓層1)之下)要被轉(zhuǎn)送而不是被路由到名字空間管理器102。關(guān)聯(lián)在檢測到目標(biāo)名字空間管理器故障或者獲得對一個不同名字空間管理器的指引時被打斷。在前一情況下,路由以后的請求,直到可以形成一個新的關(guān)聯(lián)。
圖9例示資源參加多個名字空間的方法900的示例流程圖。方法900將相對于圖6中的名字空間樹描述。
方法900包括一個動作,創(chuàng)建資源的唯一資源標(biāo)識符(動作901)。動作901可以包括創(chuàng)建相應(yīng)于該資源的URI的路徑部分。例如,可以為一個打印機(jī)建立“printer 603(打印機(jī)603)”的標(biāo)識符。
方法900包括一個動作,在第一名字空間中發(fā)布該資源的可用性(動作902)。例如,打印機(jī)603可以發(fā)布它在名字空間樹601中的可用性。方法900包括一個動作,將唯一資源標(biāo)識符鏈接到第一名字空間中的第一名字空間節(jié)點(diǎn)資源,使得第一名字空間可以被穿過以標(biāo)識該資源(動作903)。例如,可以建立名字空間段631以將打印機(jī)603鏈接到“Dev Team(設(shè)備團(tuán)隊)”名字空間節(jié)點(diǎn)資源。因此,名字空間樹601(以及“Dev Team(設(shè)備團(tuán)隊)”名字空間節(jié)點(diǎn)資源)可以被穿過以標(biāo)識打印機(jī)603。
方法900包括一個動作,在第二名字空間中發(fā)布該資源的可用性(動作904)。例如,打印機(jī)603可以發(fā)布它在名字空間樹602中的可用性。方法900包括一個動作,將唯一資源標(biāo)識符鏈接到第二名字空間中第二名字空間節(jié)點(diǎn)資源,使得第二名字空間可以被穿過以標(biāo)識該資源(動作905)。例如,可以建立名字空間段632,將打印機(jī)603鏈接到“Room 1226(房間1226)”名字空間節(jié)點(diǎn)資源。因此,名字空間樹602(和“Room 1226(房間1226)”名字空間節(jié)點(diǎn)資源)可以被穿過以標(biāo)識打印機(jī)603。
圖10例示了標(biāo)識名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中資源子集的方法1000的示例流程圖。方法1000將相對于圖6中的名字空間樹描述。
方法1000包括一個動作,從設(shè)備接收查詢(動作1001)。例如,名字空間樹602的供應(yīng)者可以從可網(wǎng)絡(luò)連接到該供應(yīng)者的設(shè)備接收查詢。該查詢包括第一查詢部分,標(biāo)識滿足名字空間分層結(jié)構(gòu)中第一層上的第一查詢準(zhǔn)則的第一部分資源。例如,第一查詢部分可以標(biāo)識在穿過名字空間段“Floor 2(樓層2)”之后滿足第一查詢準(zhǔn)則的第一部分資源(在名字空間樹602中)。第一部分資源可以是,例如職員,而第一準(zhǔn)則也可以包括例如分配給“Messaging Team(收發(fā)消息團(tuán)隊)”的準(zhǔn)則。因而,第一查詢部分可以標(biāo)識所有分配給在(Bldg 42(大樓42)的)Floor 2(樓層2)上工作的“Messaging Team(收發(fā)消息團(tuán)隊)”的職員。在有些實施例中,第一查詢準(zhǔn)則用于導(dǎo)航通過引用第一部分資源的資源屬性。
查詢包括第二查詢部分,標(biāo)識從包括在第一部分資源中的資源中選擇的第二部分資源。例如,第二查詢部分可以標(biāo)識在穿過名字空間段“Room 2005(房間2005)”之后滿足第二查詢準(zhǔn)則的第二部分資源(在名字空間樹602中)。第二部分資源可以是例如管理員,而第二準(zhǔn)則可以是例如設(shè)備。因而,第二查詢部分可以標(biāo)識在Room 2005(房間2005)中帶有辦公室小房間的打印機(jī)管理員。在有些實施例中,第二查詢準(zhǔn)則用于導(dǎo)航通過引用第二部分資源的第一部分資源的屬性。
因此,提供從第一查詢部分標(biāo)識的資源作為到第二查詢部分的輸入,所接收的查詢結(jié)果可以(取決于資源模式的字段定義)標(biāo)識帶有在第二樓層上Room2005(房間2005)的辦公室的且分配給“Messaging Team(收發(fā)消息團(tuán)隊的)打印機(jī)管理員。
方法1000包括一個動作,返回第二部分資源的身分給該設(shè)備(動作1002)。例如,名字空間樹602的供應(yīng)者可以返回ConfRoom 2005(會議室2005)中設(shè)備的管理員身分給網(wǎng)絡(luò)可連接的設(shè)備,這些設(shè)備是由收發(fā)消息團(tuán)隊的職員擁有的。
圖12例示了組織多個資源的方法120的示例流程圖。方法1200將相對于圖6中的名字空間基礎(chǔ)結(jié)構(gòu)600來描述。
方法1200包括一個動作,確定一個新的資源要包括在一個或多個名字空間中,一個或多個名字空間的每一個配置為組織一個或多個資源(動作1201)。例如,可以確定打印機(jī)603要被包括在名字空間601和/或名字空間602中。方法1200包括一個動作,標(biāo)識一個或多個名字空間的第一名字空間內(nèi)的第一資源要與新資源相關(guān)(動作1202)。例如,可以標(biāo)識在名字空間602中的房間1226要與打印機(jī)603相關(guān)。同樣,可以標(biāo)識名字空間601中的Dev Team(設(shè)備團(tuán)隊)要與打印機(jī)603相關(guān)。
方法1200包括一個動作,使用第一名字空間段鏈接新資源到第一資源,使得該名字空間段可以被穿過以從現(xiàn)有資源導(dǎo)航到該名字空間內(nèi)的新資源(動作1203)。例如,名字空間段632可以用于鏈接603到房間1226,使得名字空間段632可以被穿過以從房間1226導(dǎo)航到打印機(jī)603。同樣,名字空間段631可以用于鏈接打印機(jī)到Dev Team(設(shè)備團(tuán)隊),使得名字空間段631可以被穿過以從Dev Team導(dǎo)航到打印機(jī)603。
圖11和下面的討論目的是要提供適合于實現(xiàn)本發(fā)明的示例計算環(huán)境的簡短概括的說明。盡管沒有要求(例如,當(dāng)在硬件中實現(xiàn)時),但本發(fā)明將在計算機(jī)可執(zhí)行指令的一般上下文諸如由計算機(jī)系統(tǒng)執(zhí)行的程序模塊中描述。通常,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機(jī)可執(zhí)行指令,相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),以及程序模塊表示執(zhí)行在此所揭示方法的動作的程序代碼的裝置。
參考圖11,實現(xiàn)本發(fā)明的示例系統(tǒng)包括計算機(jī)系統(tǒng)1120形式的通用計算設(shè)備,包括處理單元1121,系統(tǒng)存儲器1122,以及耦合包括系統(tǒng)存儲器1122在內(nèi)的各種系統(tǒng)組件到處理單元1121的系統(tǒng)總線1123。處理單元1121可以執(zhí)行設(shè)計為實現(xiàn)包括本發(fā)明特征在內(nèi)的計算機(jī)系統(tǒng)1120特征的計算機(jī)可執(zhí)行指令。系統(tǒng)總線1123可以是任何若干類型總線結(jié)構(gòu),包括存儲器總線或存儲器控制器,外設(shè)總線,以及使用任何各種各樣總線體系結(jié)構(gòu)的局部總線。系統(tǒng)存儲器包括只讀存儲器(“ROM”)1124和隨機(jī)存取存儲器(“RAM”)1125?;据斎?輸出系統(tǒng)(“BIOS”)1126,包含諸如在啟動時幫助在計算機(jī)系統(tǒng)1120內(nèi)元件之前傳輸信息的基本例程,可存儲在ROM 1124中。
計算機(jī)系統(tǒng)1120也可包括讀寫硬磁盤1139的硬磁盤驅(qū)動器1127,讀寫可移動磁盤1129的磁盤驅(qū)動器1128,以及讀寫可移動光盤1131諸如CD-ROM或其它光介質(zhì)的光盤驅(qū)動器1130。硬磁盤驅(qū)動器1127,磁盤驅(qū)動器1128和光盤驅(qū)動器1130分別通過硬盤驅(qū)動器接口1132、磁盤驅(qū)動器接口1133和光盤驅(qū)動器接口1134連接到系統(tǒng)總線1123。驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)為計算機(jī)系統(tǒng)1120提供計算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。盡管在此描述的示例環(huán)境使用硬磁盤1139、可移動磁盤1129和可移動光盤1131,但可以使用其它類型的計算機(jī)可讀介質(zhì),包括磁帶、閃存卡、數(shù)字多功能盤,伯努利盒(Bernoulli cartridge)、RAM、ROM等等。
包括一個或多個程序模塊的程序代碼方法可存儲在硬盤1139、磁盤1129、光盤1131、ROM 1124或RAM 1125,包括操作系統(tǒng)1135,一個或多個應(yīng)用程序1136,其它程序模塊1137和程序數(shù)據(jù)1138。用戶可通過鍵盤1140、定點(diǎn)設(shè)備1142或其它輸入設(shè)備(未示出)諸如例如話筒、操縱桿、游戲墊、掃描儀等等將命令和信息輸入到計算機(jī)系統(tǒng)1120中。這些和其它輸入設(shè)備可以通過耦合到系統(tǒng)總線1123的輸入/輸出接口1146連接到處理單元1121。輸入/輸出接口1146在邏輯上表示任何多種多樣的不同接口,諸如例如,串行端口接口,PS/2接口,并行端口接口,通用串行總線(“USB”)接口,或者電氣和電子工程協(xié)會(“IEEE”)1394接口(即,F(xiàn)ireWire接口),或者甚至可在邏輯上表示不同接口的組合。
監(jiān)示器1147或其它顯示設(shè)備也可以通過視頻接口1148連接到系統(tǒng)總線1123。揚(yáng)聲器1169或者其它音頻輸出設(shè)備也通過音頻接口1149連接到系統(tǒng)總線1123。其它外圍輸出設(shè)備(未示出),諸如例如,打印機(jī)也可以連接到計算機(jī)系統(tǒng)1120。
計算機(jī)系統(tǒng)1120可連接到網(wǎng)絡(luò),諸如例如,辦公室級或者企業(yè)級計算機(jī)網(wǎng)絡(luò),家庭網(wǎng)絡(luò),內(nèi)聯(lián)網(wǎng),和/或因特網(wǎng)。計算機(jī)系統(tǒng)1120可以通過這樣的網(wǎng)絡(luò)與外部源諸如例如遠(yuǎn)程計算機(jī)系統(tǒng),遠(yuǎn)程應(yīng)用和/或遠(yuǎn)程數(shù)據(jù)庫交換數(shù)據(jù)。
計算機(jī)系統(tǒng)1120包括網(wǎng)絡(luò)接口1153,通過它計算機(jī)系統(tǒng)1120從外部源接收數(shù)據(jù)和/或發(fā)送數(shù)據(jù)到外部源。如圖11所示,網(wǎng)絡(luò)接口1153促進(jìn)通過鏈路1151與遠(yuǎn)程計算機(jī)系統(tǒng)1183的數(shù)據(jù)交換。網(wǎng)絡(luò)接口1153可以在邏輯上表示一個或多個軟件和/或硬件模塊,諸如例如網(wǎng)絡(luò)接口卡和相應(yīng)的網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范(“NDIS”)堆棧。鏈路1151表示網(wǎng)絡(luò)的一部分(例如以太網(wǎng)段),并且遠(yuǎn)程計算機(jī)系統(tǒng)1183表示網(wǎng)絡(luò)的一個計算機(jī)系統(tǒng)。
同樣,計算機(jī)系統(tǒng)1120包括輸入/輸出接口1146,通過它計算機(jī)系統(tǒng)1120從外部源接收數(shù)據(jù)和/或發(fā)送數(shù)據(jù)到外部源。輸入/輸出接口446通過鏈路459耦合到調(diào)制解調(diào)器454(例如,標(biāo)準(zhǔn)調(diào)制解調(diào)器,電纜調(diào)制解調(diào)器,或者數(shù)據(jù)訂戶線(“DSL”)調(diào)制解調(diào)器),通過它計算機(jī)系統(tǒng)1120從外部源接收數(shù)據(jù)和/或發(fā)送數(shù)據(jù)到外部源。如圖11所示,輸入/輸出接口1146和調(diào)制解調(diào)器1154促進(jìn)通過鏈路1152與遠(yuǎn)程計算機(jī)系統(tǒng)1193的數(shù)據(jù)交換。鏈路1152表示網(wǎng)絡(luò)的一部分,而遠(yuǎn)程計算機(jī)系統(tǒng)1193表示網(wǎng)絡(luò)的一個計算機(jī)系統(tǒng)。
盡管圖11表示適合于本發(fā)明的操作環(huán)境,但本發(fā)明的原理可在任何能夠?qū)崿F(xiàn)本發(fā)明原理的(如果必要可做適當(dāng)修改的)系統(tǒng)中使用。在圖11中例示的環(huán)境僅是說明性的,并且決不表示可實現(xiàn)本發(fā)明原理的多種多樣環(huán)境的一小部分。
按照本發(fā)明,名字空間管理器,供應(yīng)者和資源以及相關(guān)聯(lián)的數(shù)據(jù),包括名字空間數(shù)據(jù)庫、名字空間標(biāo)識符和串、散列、資源標(biāo)識符、路由表和名字空間樹,可從任何與計算機(jī)系統(tǒng)1120相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)中存儲和訪問。例如,這類模塊的部分和相關(guān)聯(lián)程序數(shù)據(jù)的部分可包括在操作系統(tǒng)1135、應(yīng)用程序1136、程序模塊1137和/或程序數(shù)據(jù)1138中,以存儲在系統(tǒng)存儲器1122中。
當(dāng)大容量存儲設(shè)備諸如例如硬磁盤驅(qū)動器1139耦合到計算機(jī)系統(tǒng)1120,這類模塊和相關(guān)聯(lián)的程序數(shù)據(jù)也可存儲在大容量存儲設(shè)備中。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機(jī)系統(tǒng)1120所示的程序模塊或其部分,可以存儲在遠(yuǎn)程存儲器存儲設(shè)備中,諸如系統(tǒng)存儲器和/或與遠(yuǎn)程計算機(jī)系統(tǒng)1183相關(guān)聯(lián)的大容量存儲設(shè)備和/或遠(yuǎn)程計算機(jī)系統(tǒng)1193中。這類模塊的執(zhí)行可在分布式環(huán)境中完成,如前所述。
本發(fā)明可在不脫離它精神或?qū)嵸|(zhì)特性的情況下以其它特定的形式實現(xiàn)。所述本發(fā)明是要在所有方面被認(rèn)為只是說明性而不是限制性的。本發(fā)明的范圍因此是由所附的權(quán)利要求書而不是由上述說明來表示的。所有來自權(quán)利要求書的等價意義和范圍內(nèi)的改變要包括在它們的范圍之內(nèi)。
權(quán)利要求
1.一種用于在一名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中組織多個資源的方法,其特征在于,所述方法包括確定一個新資源要包括在一個或多個名字空間中的動作,所述一個或多個名字空間的每一個被配置成組織一個或多個資源;標(biāo)識所述一個或多個名字空間的第一名字空間中要與所述新資源相關(guān)的第一資源的動作;以及使用第一名字空間段將所述新資源鏈接到所述第一資源,使得所述名字空間段可以被穿過,以從所述第一資源導(dǎo)航到所述名字空間內(nèi)的所述新資源的動作。
2.如權(quán)利要求1所述的方法,其特征在于,還包括基于要包括在所述一個或多個名字空間中的資源建立所述一個或多個名字空間的動作,所述一個或多個名字空間的每一個標(biāo)識資源查詢的起點(diǎn),使得高速緩存的用于實現(xiàn)查詢的信息被減少,并且跨所述一個或多個名字空間的每一個分布。
3.如權(quán)利要求1所述的方法,其特征在于,還包括標(biāo)識所述一個或多個名字空間的第二名字空間中要與所述新資源相關(guān)的第二資源的動作;以及使用第二名字空間段將所述新資源鏈接到所述第二資源,使得所述名字空間段可以被穿過,以從現(xiàn)有資源導(dǎo)航到所述名字空間內(nèi)的所述新資源的動作。
4.如權(quán)利要求1所述的方法,其特征在于,還包括發(fā)布所述第一名字空間中所述資源的可用性,使得所述第一名字空間可以被查詢以定位所述資源的動作。
5.如權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識第一資源的動作包括查詢所述名字空間內(nèi)現(xiàn)有名字空間節(jié)點(diǎn)資源的屬性的動作。
6.如權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識第一資源的動作包括標(biāo)識所述第一名字空間中的中間名字空間節(jié)點(diǎn)資源的動作,所述中間名字空間節(jié)點(diǎn)資源具有可以在穿越所述第一名字空間期間被查詢的屬性。
7.如權(quán)利要求6所述的方法,其特征在于,所述標(biāo)識所述第一名字空間中的中間名字空間節(jié)點(diǎn)資源的動作包括標(biāo)識具有可以提供給過濾器作為輸入的屬性,以在穿越所述第一名字空間段時標(biāo)識所述新資源的中間名字空間節(jié)點(diǎn)資源的動作。
8.如權(quán)利要求1所述的方法,其特征在于,還包括將URI分配給所述新資源,使得所述資源可以使用所述URI來訪問的動作。
9.如權(quán)利要求8所述的方法,其特征在于,所述分配URI給所述新資源的動作包括分配唯一URI給所述資源,使得所述URI可以用于以異乎尋常的方式訪問所述資源的動作。
10.如權(quán)利要求9所述的方法,其特征在于,還包括分配一個或多個附加URI給所述資源的動作,所述一個或多個附加URI的每一個用于從所述一個或多個名字空間之一內(nèi)來訪問所述新資源。
11.如權(quán)利要求8所述的方法,其特征在于,所述分配URI給所述新資源的動作包括分配可以用于在分層名字空間中標(biāo)識所述新資源的URI的動作。
12.如權(quán)利要求8所述的方法,其特征在于,所述分配URI給所述新資源的動作包括分配可以在平面名字空間中標(biāo)識所述新資源的URI的動作。
13.如權(quán)利要求8所述的方法,其特征在于,所述分配URI給所述新資源的動作包括分配具有一個或多個按照RFC-2396定義的部分的URI的動作。
14.如權(quán)利要求1所述的方法,其特征在于,使用第一名字空間段將所述新資源鏈接到所述第一資源包括除將所述第一資源鏈接到所述新資源之外,使用將所述第一資源鏈接到一個或多個其它資源的現(xiàn)有名字空間段的動作。
15.如權(quán)利要求1所述的方法,其特征在于,所述新資源是名字空間節(jié)點(diǎn)資源。
16.如權(quán)利要求1所述的方法,其特征在于,所述第一資源是名字空間節(jié)點(diǎn)資源。
17.如權(quán)利要求1所述的方法,其特征在于,還包括標(biāo)識所述一個或多個名字空間的第二名字空間內(nèi)要與所述新資源相關(guān)的第二資源的動作;以及使用第二名字空間段將所述新資源鏈接到所述第二資源,使得所述第二名字空間段可以被穿過,以從所述第二資源導(dǎo)航到所述第二名字空間內(nèi)的所述新資源的動作。
18.一種在一名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中在多個名字空間中注冊資源的方法,其特征在于,包括建立資源的唯一資源標(biāo)識符的動作;發(fā)布所述資源在第一名字空間中的可用性的動作;將所述唯一資源標(biāo)識符鏈接到所述第一名字空間中的第一名字空間節(jié)點(diǎn)資源,使得所述第一名字空間可以被穿過以標(biāo)識所述資源的動作;發(fā)布所述資源在第二名字空間中的可用性的動作;以及將所述唯一資源標(biāo)識符鏈接到所述第二名字空間中的第二名字空間節(jié)點(diǎn)資源,使得所述第二名字空間可以被穿過以標(biāo)識所述資源的動作。
19.如權(quán)利要求18所述的方法,其特征在于,所述發(fā)布所述資源在第一名字空間中的可用性的動作包括發(fā)布所述資源在一個來自多個劃分資源以提供名字空間確定范圍的基礎(chǔ)的多個名字空間中的第一名字空間中的可用性的動作。
20.如權(quán)利要求18所述的方法,其特征在于,所述發(fā)布所述資源在第一名字空間中的可用性的動作包括發(fā)布所述資源在具有一個起始名字空間節(jié)點(diǎn)資源的第一名字空間中的可用性的動作,所述起始名字空間節(jié)點(diǎn)資源可以由其它資源查詢以標(biāo)識在所述名字空間內(nèi)的所述資源。
21.如權(quán)利要求18所述的方法,其特征在于,所述將所述唯一資源標(biāo)識符鏈接到所述第一名字空間中第一名字空間節(jié)點(diǎn)資源使得所述第一名字空間可以被穿過以標(biāo)識所述資源的動作包括將URI與所述資源相關(guān)聯(lián)的動作。
22.如權(quán)利要求21所述的方法,其特征在于,所述將所述第一名字空間的URI與所述資源相關(guān)聯(lián)的動作包括分配唯一URI給所述資源使得所述唯一URI可以用于以異乎尋常方式訪問所述資源的動作。
23.如權(quán)利要求22所述的方法,其特征在于,還包括分配一個或多個附加URI給所述資源的動作,所述一個或多個附加URI的每一個用于從所述多個名字空間之一內(nèi)訪問所述新資源。
24.如權(quán)利要求18所述的方法,其特征在于,所述將所述唯一資源標(biāo)識符鏈接到所述第一名字空間中的第一名字空間節(jié)點(diǎn)資源使得所述第一名字空間可以被穿過以標(biāo)識所述資源的動作包括在所述資源與所述第一名字空間節(jié)點(diǎn)資源之間形成一名字空間段的動作。
25.如權(quán)利要求18所述的方法,其特征在于,所述發(fā)布所述資源在第二名字空間中的可用性的動作包括發(fā)布所述資源在來自劃分資源以提供名字空間確定范圍的基礎(chǔ)的多個名字空間之中的第二名字空間中的可用性的動作。
26.如權(quán)利要求18所述的方法,其特征在于,所述發(fā)布所述資源在第二名字空間中的可用性的動作包括發(fā)布所述資源在一個具有起始名字空間節(jié)點(diǎn)資源的第二名字空間中的可用性的動作,所述起始名字空間節(jié)點(diǎn)資源可以由其它資源查詢以標(biāo)識在所述名字空間內(nèi)的所述資源。
27.如權(quán)利要求18所述的方法,其特征在于,所述將所述唯一資源標(biāo)識符鏈接到所述第二名字空間中的第二名字空間節(jié)點(diǎn)資源使得所述第二名字空間可以被穿過以標(biāo)識所述資源的動作包括將所述第二名字空間的URI與所述資源相關(guān)聯(lián)的動作。
28.如權(quán)利要求18所述的方法,其特征在于,所述將所述唯一資源標(biāo)識符鏈接到所述第二名字空間中的第二名字空間節(jié)點(diǎn)資源使得所述第二名字空間可以被穿過以標(biāo)識所述資源的動作包括在所述資源與所述第二名字空間節(jié)點(diǎn)資源之間形成一名字空間段的動作。
29.如權(quán)利要求18所述的方法,其特征在于,所述資源是名字空間節(jié)點(diǎn)資源。
30.一種用于在一名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中在所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中實現(xiàn)查詢的方法,其特征在于,所述方法包括從設(shè)備接收查詢的動作,所述查詢包括第一查詢部分,所述第一查詢部分標(biāo)識滿足第一查詢準(zhǔn)則的第一部分資源,所述第一部分資源是在名字空間分層結(jié)構(gòu)中第一層處標(biāo)識的;以及第二查詢部分,所述第二查詢部分標(biāo)識從包括在第一部分資源中選擇的滿足第二查詢準(zhǔn)則的第二部分資源,所述第二部分資源是在名字空間中第二不同位置處標(biāo)識的;以及返回所述第二部分資源的身分給所述設(shè)備的動作。
31.如權(quán)利要求30所述的方法,其特征在于,所述從設(shè)備接收查詢的動作包括名字空間的起始名字空間節(jié)點(diǎn)資源接收查詢的動作。
32.如權(quán)利要求30所述的方法,其特征在于,所述從設(shè)備接收查詢的動作包括名字空間內(nèi)的一中間名字空間節(jié)點(diǎn)資源從所述名字空間的根名字空間節(jié)點(diǎn)資源接收查詢的動作。
33.如權(quán)利要求30所述的方法,其特征在于,所述從設(shè)備接收查詢的動作包括接收具有第二查詢準(zhǔn)則的查詢的動作,所述查詢標(biāo)識所述名字空間分層結(jié)構(gòu)中第二層處的資源。
34.如權(quán)利要求30所述的方法,其特征在于,所述從設(shè)備接收查詢的動作包括接收具有第二查詢準(zhǔn)則的查詢的動作,所述查詢標(biāo)識在第二不同名字空間分層結(jié)構(gòu)中的資源。
35.如權(quán)利要求30所述的方法,其特征在于,所述返回第二部分資源的身分給所述設(shè)備的動作包括對于所述第二部分資源的每一個,返回至少一個可以用于以異乎尋常的方式訪問資源的唯一相應(yīng)的URI的動作。
36.如權(quán)利要求35所述的方法,其特征在于,還包括分配一個或多個附加URI給所述第二資源的每一個的動作,所述一個或多個附加URI的每一個用于從所述多個名字空間之一內(nèi)訪問所述第二資源的每一個。
37.如權(quán)利要求30所述的方法,其特征在于,還包括從所述第一部分資源中的第一資源穿越一名字空間段到所述第二部分資源中的第二資源的動作,所述名字空間段滿足所述第二查詢準(zhǔn)則。
38.如權(quán)利要求30所述的方法,其特征在于,還包括使用所述第一查詢準(zhǔn)則導(dǎo)航通過引用所述第一部分資源的資源屬性的動作。
39.如權(quán)利要求30所述的方法,其特征在于,還包括使用所述第二查詢準(zhǔn)則導(dǎo)航通過引用所述第二部分資源的所述第一部分資源的屬性的動作。
40.一種在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中使用的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品用于實現(xiàn)一種組織多個資源的方法,所述計算機(jī)程序產(chǎn)品包括一個或多個計算機(jī)可讀介質(zhì),所述介質(zhì)具有存儲在其上的計算機(jī)可執(zhí)行指令,當(dāng)由處理器執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作確定一新資源要包括在一個或多個名字空間中,所述一個或多個名字空間的每一個配置為組織一個或多個資源;標(biāo)識所述一個或多個名字空間的第一名字空間內(nèi)要與所述新資源相關(guān)的第一資源;以及使用第一名字空間段將所述新資源鏈接到所述第一資源,使得所述名字空間段可以被穿過以從所述第一資源導(dǎo)航到所述名字空間內(nèi)的所述新資源。
41.如權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其特征在于,還包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作基于要包括在所述一個或多個名字空間中的所述資源,建立所述一個或多個名字空間,所述一個或多個名字空間的每一個標(biāo)識資源查詢的起點(diǎn),使得高速緩存的用于實現(xiàn)查詢的信息被減少,并且跨所述一個或多個名字空間的每一個分布所述高速緩存的信息。
42.如權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其特征在于,還包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作發(fā)布所述資源在所述第一名字空間中的可用性,使得所述第一名字空間可以被查詢以定位所述資源。
43.如權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)可執(zhí)行指令當(dāng)被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)標(biāo)識包括名字空間的第一資源的計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)標(biāo)識所述第一名字空間中的一中間名字空間節(jié)點(diǎn)資源,所述中間名字空間節(jié)點(diǎn)資源具有可以在穿越所述第一名字空間時查詢的屬性。
44.如權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其特征在于,所述在被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)標(biāo)識第一資源的計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)標(biāo)識一中間名字空間節(jié)點(diǎn)資源,它具有可以作為輸入提供給過濾器的屬性,以在穿越所述第一名字空間段時標(biāo)識所述新資源。
45.如權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其特征在于,還包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作分配一URI給所述新資源,使得所述資源可以使用所述URI來訪問。
46.一種在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中使用的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品用于實現(xiàn)一種在多個名字空間中注冊資源的方法,所述計算機(jī)程序產(chǎn)品包括一個或多個計算機(jī)可讀介質(zhì),所述介質(zhì)具有存儲在其上的計算機(jī)可執(zhí)行指令,當(dāng)由處理器執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作建立資源的唯一資源標(biāo)識符;發(fā)布所述資源在第一名字空間中的可用性;將所述唯一資源標(biāo)識符鏈接到所述第一名字空間中的第一名字空間節(jié)點(diǎn)資源,使得所述第一名字空間可以被穿過以標(biāo)識所述資源;發(fā)布所述資源在第二名字空間中的可用性;以及將所述唯一資源標(biāo)識符鏈接到所述第二名字空間中的第二名字空間節(jié)點(diǎn)資源,使得所述第二名字空間可以被穿過以標(biāo)識所述資源。
47.如權(quán)利要求46所述的計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)可執(zhí)行指令在被執(zhí)行時使名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)將所述唯一資源標(biāo)識符鏈接到所述第一名字空間中第一名字空間節(jié)點(diǎn)資源的該計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)在所述資源與所述第一名字空間節(jié)點(diǎn)資源之間形成一名字空間段。
48.如權(quán)利要求46所述的計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)可執(zhí)行指令在被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)將所述唯一資源標(biāo)識符鏈接到所述第二名字空間中第二名字空間節(jié)點(diǎn)資源的該計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)在所述資源與所述第二名字空間節(jié)點(diǎn)資源之間形成一名字空間段。
49.一種在名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中使用的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品用于實現(xiàn)一種實現(xiàn)在所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)中的查詢的方法,所述計算機(jī)程序產(chǎn)品包括一個或多個計算機(jī)可讀介質(zhì),所述介質(zhì)具有存儲在其上的計算機(jī)可讀指令,當(dāng)由處理器執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作從一設(shè)備接收查詢,所述查詢包括第一查詢部分,所述第一查詢部分標(biāo)識滿足第一查詢準(zhǔn)則的第一部分資源,所述第一部分資源是在名字空間分層結(jié)構(gòu)中第一層處標(biāo)識的;以及第二查詢部分,所述第二查詢部分標(biāo)識從包括在第一部分資源中的資源中選擇的滿足第二查詢準(zhǔn)則的第二部分資源,所述第二部分資源是在名字空間中的第二不同位置標(biāo)識的;以及返回所述第二部分資源的身分給所述設(shè)備。
50.如權(quán)利要求49所述的計算機(jī)程序產(chǎn)品,所述計算機(jī)可執(zhí)行指令在被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)從一設(shè)備接收查詢的該計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間的起始名字空間節(jié)點(diǎn)資源接收所述查詢。
51.如權(quán)利要求49所述的計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)可執(zhí)行指令在被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)從一設(shè)備接收查詢的該計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)接收具有第二查詢準(zhǔn)則的查詢,所述查詢標(biāo)識在所述名字空間分層結(jié)構(gòu)中第二層處的資源。
52.如權(quán)利要求49所述的計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)可執(zhí)行指令在被執(zhí)行時使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)從一設(shè)備接收查詢的該計算機(jī)可執(zhí)行指令包括計算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)接收具有第二查詢準(zhǔn)則的查詢,所述查詢標(biāo)識在第二不同名字空間分層結(jié)構(gòu)中的資源。
53.如權(quán)利要求49所述的計算機(jī)程序產(chǎn)品,其特征在于,還包括計算機(jī)可讀指令,當(dāng)被執(zhí)行時,使所述名字空間聯(lián)盟基礎(chǔ)結(jié)構(gòu)執(zhí)行下列動作從所述第一資源部分中的第一資源穿越一名字空間段到所述第二部分資源中的第二資源,所述名字空間段滿足第二查詢準(zhǔn)則。
全文摘要
本發(fā)明擴(kuò)展了將資源組織成集合以促進(jìn)更有效和可靠的資源訪問的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。名字空間管理器彼此通信以形成聯(lián)盟名字空間基礎(chǔ)結(jié)構(gòu)。該基礎(chǔ)結(jié)構(gòu)可以有效地路由、遷移和處理名字空間請求,諸如例如,來自請求管理名字空間各部分的供應(yīng)者的名字空間注冊請求和來自請求對受管理資源訪問的消費(fèi)者的查找請求。資源可以注冊在多個不同名字空間中并且使它們可以從多個不同名字空間訪問。資源可以使用嵌套的查詢來標(biāo)識,這些查詢在分層名字空間的多個層上過濾結(jié)果。
文檔編號H04L29/12GK1755694SQ20051011332
公開日2006年4月5日 申請日期2005年9月30日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者G·K·R·卡其瓦亞, R·L·哈薩 申請人:微軟公司