專利名稱:用于移動裝置的對等網(wǎng)絡的服務發(fā)現(xiàn)和服務提供的制作方法
技術(shù)領域:
本發(fā)明涉及用于共享數(shù)據(jù)處理資源的處理。
背景技術(shù):
在現(xiàn)代軟件開發(fā)中,存在一種趨勢,即傾向于增加模塊性和對共享組件的遠程訪問,以便能夠依靠在較低性能機上運行的所謂的“瘦客戶端(thin client)”作為網(wǎng)關來訪問復雜業(yè)務。傳統(tǒng)原理趨向于假設集中式方法將依賴于服務的用戶與該服務的提供者之間的不對稱客戶端-服務器關系,來形成支持遠程訪問的架構(gòu)基礎。
這種傳統(tǒng)設計原理基于兩個主要假設。第一,假定“高級”硬件(用于處理、用于存儲、或用于兩者)的成本是這樣的,即可通過限制過提供(over-provisioning)來實現(xiàn)實質(zhì)的節(jié)約。第二,需要終端用戶能夠并自愿利用低端終端裝置有效地工作。顯然,由于用戶利用更多受限終端裝置工作的自愿性取決于要獲得更高級硬件的成本是多少,以及操作并維護它們有多困難,因此,這些假設是互補的。
然而,由于硬件資源成本下降的趨勢快于針對它們的需求的增長,因此,過提供的成本實際上相當?shù)汀6遥?00%的遠程訪問方法需要非常高的業(yè)務質(zhì)量(差錯率、中斷時間等)和可實用的大帶寬。期望可預測的使用模式,以便為資源的分配作計劃。
許多商家可能愿意以分散方式管理合作軟件和/或浮動許可證,以避免維護專用服務器基礎設施的成本。在分散環(huán)境下,當可經(jīng)由便攜式設備來訪問服務時,出現(xiàn)了特殊問題,這導致連通性方面的高度動態(tài)變化。
可以設想這樣一種架構(gòu),其中,個體用戶僅依賴針對被認為不關鍵的服務的遠程訪問。然而,這種遠程訪問因此限制了個體終端用戶判定什么是他們最關鍵的需求和動作的自由。另選的是,如果個體用戶被允許由他們自己來判定哪個服務是關鍵的,則需要一些副本,使得所有服務即使對于不這樣判定的那些用戶也不得不是重要可用的。而且,這種設置將導致如下一種架構(gòu),其中服務的有效性易受到少量核心機的損壞的影響。
因此,對于每個個體用戶來說,存在可用資源在多數(shù)時間欠利用的趨勢。有利的是,當機會出現(xiàn)時提高這些資源的利用率,同時避免依賴于它們的可利用性。
所謂的“網(wǎng)格”計算的開發(fā)允許將“空閑”處理能力再分配給耗時長的計算密集型作業(yè)。Haas,R.et.al.(Autonomic service deployment innetworks.IBM Systems Journal,Vol.42,No.1,2003)提出了一種基于終端客戶端的請求在可配置或可編程網(wǎng)絡中對服務進行自主調(diào)度的機制。這種方法使用分級網(wǎng)絡,在該分級網(wǎng)絡中,路由器、網(wǎng)關、隧道、代碼轉(zhuǎn)換器等向具體服務提供端到端應用,即邊緣結(jié)點本身不受影響。然而,這主要適用于允許按照需要來使用可用處理能力的系統(tǒng),在該系統(tǒng)中終端的可用性以及它們的連通性和能力是預定的。這種設置不太適用于包括移動裝置的遍布式(普適)環(huán)境,這是因為這種環(huán)境對諸如空間定位、移動、無線鏈接的附加約束需要基于個體裝置的當前可利用性和連通性進行專門(ad hoc)設置。
數(shù)據(jù)還可以分布在眾多用戶之間,這使得個體用戶可能需要從其它用戶獲得數(shù)據(jù)。
Mikic-Rakic,M.和Medvidovic,N.(Support for Disconnected Operationvia Architectural Self-Reconfiguration.Proceedings of ICAC 2004,May 2004,New York)論證了在移動環(huán)境下可以怎樣把軟件組件分配給具有受限資源的裝置。實際上,他們關注于以自主方式對組件進行監(jiān)控、評估以及再調(diào)度,怎樣在整體上增加系統(tǒng)的可利用性。個體裝置向?qū)Ψ照{(diào)度的評估進行處理的服務器返回報告,該服務器允許裝置與相鄰裝置共享組件并由此為彼此提供所需服務。該服務器使用許多算法,這些算法試圖解決對寄駐在硬件主機上的軟件組件的調(diào)度。由服務器執(zhí)行的這種處理需要監(jiān)管功能,這種監(jiān)管功能使得所述處理不適應在個體用戶的需求和可用性方面易于動態(tài)變化的網(wǎng)絡。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了一種計算機處理裝置,所述計算機處理裝置具有對安裝在合作裝置上的服務進行訪問的能力,和從數(shù)據(jù)庫檢索數(shù)據(jù)以允許安裝這種服務從而供其自己使用并且供合作裝置使用的能力,所述計算機處理裝置包括對一個或更多個服務的當前提供范圍進行識別的裝置,所述計算機處理裝置還包括針對所述計算機處理裝置所需的服務來識別是否存在欠提供狀態(tài)(under provision condition)的裝置;和用于從所述數(shù)據(jù)庫檢索數(shù)據(jù),以便將針對其識別出這種欠提供狀態(tài)的一個或者更多個服務安裝在所述計算機處理裝置上的裝置;以及響應于來自合作裝置的請求而允許通過這種合作裝置對存儲在所述計算機處理裝置上的服務進行訪問的裝置。
根據(jù)另一方面,提供了一種多個計算機處理裝置相互合作以作為彼此應用的服務的主機的方法,其中,所述計算機處理裝置相互合作來對指定服務的提供范圍進行識別,其中,當需要尚未安裝的服務時,第一裝置嘗試對可以提供所需服務的相鄰裝置進行識別,并且如果所述第一裝置識別到欠提供狀態(tài),則它通過檢索適于執(zhí)行所述服務的服務數(shù)據(jù)來嘗試安裝所需服務。
要訪問的服務可以是數(shù)據(jù)庫,或者是被設計成對數(shù)據(jù)進行操縱的程序。
裝置可以自己作為服務的主機,然而在其它方面,針對任何指定裝置的服務的可用性卻依賴于是否存在能夠向它提供服務的相鄰裝置。這個能力依賴于相鄰裝置是否作為服務的主機。然而,雖然請求裝置可以具有指示出其相鄰裝置之一作為服務的主機的信息,但是該相鄰裝置可能當前無法提供所述服務。該相鄰裝置可能因向其它裝置提供服務而已經(jīng)被完全占用,或者它可能無法有效地與請求裝置進行通信。有效通信依賴于當前都連接到網(wǎng)絡連接的兩個裝置是否都具有適于該任務的帶寬。諸如中間鏈路數(shù)的其它因素也可能影響連接的效果。因為針對不同服務而導致的需求上的波動,而且因為隨著移動裝置在網(wǎng)絡中來回移動而導致的網(wǎng)絡連通性上的變化,所以這種狀態(tài)會隨著時間而改變??梢赃M行一些刺激以鼓勵用戶在他們不使用他們的裝置時保持該裝置在線,使得其他用戶可以使用其容量。然而,有時,個體裝置(無論是否移動)仍然可能因許多原因(如電力或通信故障),或需要以安全模式進行操作而選擇離線。當它離線時,由該裝置作為主機的任何服務都是不可用的。
個體裝置可以通過預定的絕對標準(諸如標識為服務的當前主機的裝置的編號)來識別欠提供狀態(tài)。然而,優(yōu)選的是使用動態(tài)標準,諸如當裝置需要使用服務時,裝置對能夠提供服務的主機的失敗識別。這可以通過向一范圍內(nèi)的所有裝置廣播一請求來完成。然而,如果主裝置已經(jīng)記錄了作為服務主機的任何相鄰設備,則可以首先以這些相鄰裝置作為目標發(fā)送具體請求。如果這些目標裝置因某些原因而不能履行該請求(或許因為它們已經(jīng)因為作為用于其它方的服務的主機而被完全占用,或者當前不在范圍內(nèi)),則可以接著進行廣播請求??梢詮囊粋€裝置向另一裝置轉(zhuǎn)發(fā)請求,使得彼此不直接聯(lián)系的裝置可以利用中間裝置作為中繼來為彼此提供服務。由于采用這種方式的中繼影響傳送質(zhì)量(尤其是延遲),并且需要利用中繼裝置中的資源,因此,希望限制可能使用的級數(shù)。在要描述的實施例中,將該級數(shù)限定為兩級,即,僅使用一個中間裝置作為中繼。
如果沒有識別出合適的主機,則可以從中央數(shù)據(jù)庫訪問操作該指定服務所需的程序數(shù)據(jù),或者如果已經(jīng)作為所述指定服務的主機的另一裝置可用,則從該另一裝置訪問用于操作所述指定服務所需的程序數(shù)據(jù)。用戶可替代地此時不選擇使用該服務,而是稍后進行另一嘗試。可以根據(jù)對數(shù)據(jù)進行訪問的不成功嘗試的次數(shù)或比例來定義欠提供。可以使用隨機處理,其中,將可調(diào)隨機組件應用于欠提供狀態(tài)的識別,由此,對安裝(或卸載)概率上的一個進行選擇。不同用戶可以針對該定義選擇不同閾值。通過利用在以這種方式運轉(zhuǎn)的裝置的全體中出現(xiàn)的隨機波動,可以針對需求逐步動態(tài)地調(diào)節(jié)可利用性。
如果裝置不具備作為服務的主機的數(shù)據(jù)存儲能力,其可以利用類似標準來刪除針對其識別出過提供狀態(tài)的服務。
如果要這樣做的設施是不可用的,則不必立即下載用于運行額外服務所需的數(shù)據(jù)模塊。例如,用戶可以改為借助于利用固定終端,或延遲希望的操作直到能夠下載服務數(shù)據(jù)時為止。當下載的機會出現(xiàn)時(例如,當移動裝置直接有線連接到網(wǎng)絡中或無線連接至本身就是這樣連接的基站時),裝置(或用戶)根據(jù)嘗試失敗的絕對次數(shù)、裝置的容量、以及描述過去經(jīng)驗的所存儲信息,進行關于是否安裝該數(shù)據(jù)模塊的判定,從而選擇要安裝的模塊。
如果裝置一天僅有一次直接網(wǎng)絡訪問,則系統(tǒng)在可變時段內(nèi)(可能是幾天)進行自組織。例如,移動裝置可以具有提供內(nèi)部連接和電池充電功能的關聯(lián)托架,當用戶不使用該移動裝置時可以將該移動裝置放置到該關聯(lián)托架中。最初,系統(tǒng)中沒有裝置支持普遍存在的訪問,由此,用戶需要下載他們需要的任何程序數(shù)據(jù)。然而,只要檢索該數(shù)據(jù),用戶就將其存儲在他們的移動裝置上。這允許用戶在下一次需要該程序數(shù)據(jù)的時候,在不需要針對固定終端的資源的情況下操作該處理。而且,如果另一用戶處在范圍內(nèi)并且需要相同的信息,那么第一裝置可以回答該請求,以使其他用戶不必從固定終端下載該程序數(shù)據(jù)。隨著時間的過去,更多通用的服務將變得“遍布地”可用,并且僅不常用的請求不被答復從而需要用戶轉(zhuǎn)到固定終端。
因此,本發(fā)明通過在資源利用不足的情況下對合作的機會進行檢測,將交互協(xié)議與本機判定規(guī)則相結(jié)合,以允許對等式(P2P)團體利用裝置之間的處理差別,以便在限制過提供的同時實現(xiàn)服務的可接受質(zhì)量。通過反復試驗,個體裝置識別并且專用于作為它們所需的全部服務中的適當子集的主機。它們需要的其它服務因寄駐在所述團體的其它成員上,所以不形成此子集的部分。對需求提供調(diào)節(jié)并考慮不可預測的動態(tài)環(huán)境下的隱含約束,結(jié)果獲得自組織為一個整體的團體。
因此,本發(fā)明在機會出現(xiàn)時允許提高可用資源的利用率,同時避免依賴性并且不會限制用戶選擇作為哪個服務的主機的能力,并且無需用戶針對可利用性具有明確的定量知識。通過反復試驗來進行對“欠提供”情況的識別,這允許系統(tǒng)在缺少任何明確的關于活動模式(包括在無線情況下的物理移動)的信息時,能夠?qū)崿F(xiàn)足夠的服務覆蓋和負載平衡。因為決定的進行方式是完全分散方式,所以用于識別不充分可利用性的標準是個體標準。例如,用戶可以判定,如果服務的可利用性降到指定閾值之下則應當下載相應的服務模塊,該閾值例如可以根據(jù)個體用戶所需該服務的頻率或急迫性而在一個用戶與另一用戶之間有所不同。由此,個體用戶將傾向于安裝他們本人認為重要的、可能縮減加入團體的可知成本的模塊。
為了使這種系統(tǒng)有效地運轉(zhuǎn),管理的、經(jīng)濟的、合同的或其它框架需要各得其位,從而要求或說服方案中的個體成員在任何可能的時候,盡量始終如一地使服務可用。雖然,這種考慮具有非技術(shù)性質(zhì)并且將不詳細討論,但是,本發(fā)明的優(yōu)勢在于包括用于對個體參與者使用根據(jù)本發(fā)明提供的服務的使用情況進行監(jiān)控的監(jiān)督功能,并且包括對個體參與者自己為了其它成員的使用而提供這種服務的提供情況進行監(jiān)控的監(jiān)督功能。
下面,參照附圖,以示例的方式對本發(fā)明的例示性實施例進行描述,其中圖1是數(shù)據(jù)處理裝置的互連組的示意圖;圖2是個體數(shù)據(jù)處理裝置的功能組件的示意圖;圖3是例示了從另一裝置請求服務的本發(fā)明的實施例的操作的流程圖;圖4是例示了接收來自另一裝置的服務請求的本發(fā)明的實施例的操作的流程圖;圖5是保持在圖2中的數(shù)據(jù)存儲部231中的數(shù)據(jù)記錄的圖示;圖6是例示本發(fā)明的使用中的工作示例的九種情況的圖示。
具體實施例方式
圖1是移動計算裝置(未引用全部個體)的網(wǎng)絡100的示意圖,在移動計算裝置之間存在通信介質(zhì),該通信介質(zhì)允許任何個體單元(例如,14)與范圍內(nèi)的任何其它單元(例如,12、13、15、16)交換信息。每個單元14都可以利用較近的單元(13、15)作為中繼與較遠的單元(例如,10、17、18)通信。(針對當前的目的,假定最大允許兩個“中繼段(hop)”(即,單一中繼),但實際上可以使用更多中繼段)。通信可以使用任何合適的介質(zhì),如無線(無線電、紅外線等)數(shù)據(jù)傳輸。
每個裝置還可作為裝置可能需要使用的整個服務集合的子集的主機。(個體單元有時可以作為全部這些服務的主機或者不作為任何服務的主機)。這些服務可包括數(shù)據(jù)和允許操縱數(shù)據(jù)的程序。每個成員裝置攜帶唯一標識碼,該成員裝置利用標識功能部28(見圖2)定期通告該標識碼,以確保每一個單元14都獲知其第一相鄰單元12、13、15、16。實際上,如同裝置11所示,當個體裝置和它的相鄰裝置到處移動、或者通/斷切換時,可以把該個體裝置添加至組100或從組100去除,并且這也影響服務的供需。即使裝置之間的連接和它們的網(wǎng)絡存在不隨時間變化(如果它們始終連接,則會成為用于固定裝置的情況),它們作為主機的各種服務的可利用性和針對該服務的需求也會改變。
如同裝置16所示,個體裝置可時常停放在允許訪問服務存儲部的連接部19處。
圖2詳細例示了圖1中所示的數(shù)據(jù)處理裝置16之一。所述數(shù)據(jù)處理裝置16之一包括通信接口21,其用于與其它裝置(如,相鄰移動裝置14和固定停放站19)建立并保持通信;操作系統(tǒng)22;服務搜索功能部23,其包括數(shù)據(jù)存儲裝置231,所述數(shù)據(jù)存儲裝置231用于存儲與來自其它類似裝置的可用服務有關的數(shù)據(jù);服務訪問裝置24,其用于與服務主機進行合作;服務下載功能部25;存儲裝置26,其用于存儲該裝置本身作為主機的服務;服務傳遞裝置27,其用于向請求這種服務的遠程終端傳遞這種寄駐的服務;以及已經(jīng)討論過的標識功能部28。盡管本發(fā)明的范圍沒有排除在網(wǎng)絡中提供僅專用于作為其它相鄰用戶裝置使用的服務的主機的裝置,但是,大部分這種裝置也可以包括用戶接口29。
在下面的說明中,需要對請求服務的根據(jù)圖2的第一裝置與提供該服務的類似的第二裝置的組件進行區(qū)別,后者的組件將用“單引號(’)”來標識。因此,經(jīng)過相應的通信功能部21’、21,借助于主機裝置的服務傳遞功能部27’和客戶端裝置上的服務訪問功能部24,把存儲在該主機裝置的服務存儲裝置26’上的服務傳遞給接收裝置上的操作系統(tǒng)22。
圖3所示處理在專用的P2P環(huán)境下提供對遍布服務的分配。該處理是自組織區(qū)別之一,其中,類似單元團體中的個體成員獲得不同能力,這使得它們各自能夠執(zhí)行團體作為整體運轉(zhuǎn)所需的全部功能中的子集功能。在導致相互依賴和合作的處理中,這種專門化是以犧牲單元執(zhí)行其它任務的能力為代價的,而所述其它任務隨后由選擇了不同特性的其它單元來處理。這種專門化可在沒有中央控制的情況下,通過個體成員之間的大量正反饋和負反饋來實現(xiàn)。
將個體單元的專門化觸發(fā)到指定任務中的信號是性能的缺乏或累積,所述性能的可利用性可由候選單元來度量。在此實施例中,針對服務的失敗請求的累積(表示對于進行請求的資源共享團體的成員,服務具有較差的可利用性)很可能啟動可解決這種狀況的動作過程。結(jié)合隨機時空波動和逐步的、至少部分可逆的轉(zhuǎn)換處理,提供了用于把合適數(shù)量的單元的專門化調(diào)配到每個所需功能中的基礎。下面,將更詳細地說明這種處理。
在加入對這種處理進行操作的資源共享對等的團體的時候,新成員將從可用選項列表中選擇許多服務。該新來者還將值v(0<v≤1)賦予每個所選服務,此值專用于對察覺的服務的本地質(zhì)量進行評估,并且對是否安裝新的組件進行判定。最后,為了“引導(bootstrap)”該合作處理,該新成員安裝所需的軟件組件,以從其選擇的選項中選擇至少一個服務作為其主機。這種軟件是從源數(shù)據(jù)庫下載的,該源數(shù)據(jù)庫可以是對等裝置或指定專用數(shù)據(jù)庫之一。
當需要服務時,裝置將處于以下三種可能情況中的一種,如圖3所示。它可能已經(jīng)安裝了全部所需軟件組件(結(jié)果390),或者它能夠識別具有全部所需軟件組件并可以作為服務的主機的相鄰裝置(結(jié)果391)。第三種情況是該主裝置和相鄰裝置中的任一個都沒有安裝軟件的情況(結(jié)果392)。因此,該裝置需要根據(jù)如圖3所示處理來測試應用這些情況中的那一種。它首先檢查是否本地安裝了全部所需組件(步驟30)。如果是這種情況,則它可以充當其自己的提供者并且操作系統(tǒng)22可以自主運行該服務(步驟390)。
如果該裝置沒有作為該服務的主機,則搜索功能部23嘗試識別可以作為所需服務的主機的伙伴裝置。該搜索功能部23通過生成針對寄駐在相鄰裝置上的服務的請求來進行操作。在此實施例中,該搜索功能部23首先針對已知作為該服務的主機的任何裝置,對數(shù)據(jù)存儲部231進行檢查(步驟31),并且以那些裝置為目標進行請求(步驟32);否則,向所有相鄰裝置廣播請求(步驟35)。
目標請求是包括對所需服務和一個或更多個預定接收者的列表的引用的請求。廣播請求沒有被特定目標化。始發(fā)裝置向其所有相鄰裝置發(fā)送請求,但是,接收這種請求的裝置(步驟40、41)將忽略任何目標請求,除非接收者的列表包括接收裝置的ID(步驟42)或其自己的第一相鄰裝置之一的ID(步驟44)。
可以考慮以下幾種結(jié)果如果該請求裝置可以提供針對所需服務的一個或更多個已知提供者的ID(步驟31),則它發(fā)送目標請求和那些ID(步驟32)。如果那些已知提供者中的至少一個是一第一相鄰裝置,則該目標請求必需到達合適的提供者(步驟40、41、42)。而那個裝置將通過用作所請求服務的主機(步驟49)、從其存儲部26’檢索所需程序數(shù)據(jù)、以及利用服務傳遞功能部27’傳遞該服務來響應該請求。然而,如果在該請求者的第一相鄰裝置中沒有任何已知提供者,則仍存在第一相鄰裝置之一本身具有目標裝置之一作為其自己的相鄰裝置的可能性。如果這種“第二中繼段”相鄰裝置被識別為目標裝置(步驟43、44),則該第一相鄰裝置向所述請求裝置回報這個信息(步驟45),并且準備充當該請求裝置與目標裝置之間的中繼。
所述請求裝置等待對其目標請求的“就緒”響應(49)。如果該請求裝置接收到這種響應(步驟33),則它向進行提供的裝置請求服務(步驟391),該服務被傳遞至客戶端功能部24,以控制操作系統(tǒng)22。如果該請求裝置接收到多于一個的這種提供,則該請求裝置隨機地、或者根據(jù)諸如它們之間的通信連接質(zhì)量的一些標準來選擇其中之一。如果沒有接收到“就緒”響應,則該請求裝置檢查間接響應(步驟45)。如果該請求裝置接收到這種響應(步驟34),則它利用中間裝置作為中繼向所識別的裝置請求服務(步驟391)。
如果因該請求裝置不能提供任何已知主機的ID(步驟31),或者因目標消息不能對主機中的任一個進行定位(步驟33、34)而造成這個處理不能識別合適的主機,則進行廣播請求(步驟35)。廣播請求是包括針對所需服務的引用,但不包括對預定接收者的列表的應用的請求(以允許每一個裝置都接收該廣播請求并能夠提供服務以進行響應)。廣播消息是根據(jù)預定規(guī)則集沿現(xiàn)有連接傳遞的。特別的是,可以對廣播請求的轉(zhuǎn)發(fā)次數(shù)進行限制,以使得該廣播請求從該請求裝置起僅傳播預定級數(shù)——在此示例中,最大兩級。這樣允許限制生成的通信量——而且,如果客戶端與主機之間的鏈路不得不通過若干媒介,則所獲得的服務的服務質(zhì)量預期會下降。因此,目標請求與廣播請求之間的主要差別在于接收它們的對等體解釋并處理它們的方式,而非它們的范圍。
如果裝置接收到廣播消息,則接收裝置檢查它本身是否可以提供所請求的服務(步驟46)。如果可以,則該接收裝置向該請求裝置發(fā)送響應(步驟49)。如果不能,并且傳播的級數(shù)小于相對于始發(fā)裝置的最大級數(shù)(步驟47),則該接收裝置把該請求轉(zhuǎn)發(fā)給其直接連接的任何其它裝置(除了該接收裝置接收到的該廣播請求所來自的裝置之外)(步驟48)。這些裝置按相同方式進行響應。
如果始發(fā)裝置接收到針對廣播消息的響應(步驟36、37),則該始發(fā)裝置請求該響應裝置為了該始發(fā)裝置而作為所請求的服務的主機(步驟391)。此外,如果多于一個的裝置進行響應,則選擇它們之一。需要最少中繼段的那些裝置很可能是最可靠的,并且通過在需要更多中繼段的那些裝置之前,先檢查所述需要最少中繼段的那些裝置(步驟36)而優(yōu)先地選擇它們(步驟37)。
到達指定地址的請求(目標化請求或廣播請求)的概率依賴于請求者和提供者的相應位置。下表列舉了如果超過第一相鄰裝置就不進行傳播的可能結(jié)果。能夠看到,目標請求允許對裝置已知的提供者(如果這種提供者存在)進行選擇,并且,如果目標請求不能獲得結(jié)果,則廣播請求會對兩個中繼段范圍內(nèi)的任何其它合適的提供者進行識別。在兩種情況下,優(yōu)先于兩個中繼段處的裝置而選擇一個中繼段處的裝置,但要注意的是,優(yōu)先于一個中繼段處的未知裝置而選擇兩個中繼段處的已知裝置。
參照圖6對每一種情況的示例進行討論。在每一個示例中,裝置A要求服務x,而裝置B、C、D以及F都作為服務x的主機。裝置A知道裝置B和C可以作為該服務的主機,但不知道裝置D和F也能夠作為該服務的主機。裝置E不作為該服務的主機。除裝置A與E之間的連接對于所有示例相同之外,其它連接在各個情況下是變化的。除非規(guī)定,否則每個裝置距離裝置A和裝置E兩者都多于一個中繼段。
在情況1a、1b、1c下,裝置B和E處于A的一個中繼段內(nèi),在情況2a、2b、2c下,裝置D和E處于裝置A的一個中繼段內(nèi)。在情況3a、3b以及3c下,僅裝置E與裝置A通信。
而且,在情況1a、2a、3a下,裝置C處于裝置E的一個中繼段內(nèi),而在情況1b、2b、3b下,裝置F處于裝置E的一個中繼段內(nèi),而在情況1c、2c、3c下,裝置C和裝置F都不在裝置E的一個中繼段內(nèi)。
在每一種情況下,裝置A都遵循圖3所示的過程,而接收來自裝置A的請求的任何其它裝置都根據(jù)圖4中的處理作出響應。最初,裝置A識別本身未作為所需服務的主機(步驟30),接著對所知道的作為該服務的主機的一些其它裝置(B和C)進行識別(步驟31)。由此,它向其當前相鄰裝置發(fā)送消息,尋址已知主機(步驟32),并且等待響應。相鄰裝置接收到這些請求(步驟40)并且將這些請求識別為目標請求(步驟41)。由此,結(jié)果在各個情況下發(fā)生變化。
情況1aB和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”C處于E的一個中繼段內(nèi) B對A“就緒”E對A“可以聯(lián)系C”A對B“請求服務x…”情況1bB和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”F處于E的一個中繼段內(nèi) B對A“就緒”A對B“請求服務x…”情況1cB和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”B對A“就緒”A對B“請求服務x…”在這三種情況下,裝置B接收直接來自裝置A的目標請求。由于它本身就是目標之一(步驟42),因此,它發(fā)送響應(步驟49)。當接收到這個響應時(步驟33),裝置A請求服務(步驟391)。裝置E也接收該目標請求。裝置E本身不是目標(步驟42),由此,裝置E檢查它是否處于距請求源(步驟43)和距任何目標裝置(步驟44)為一個中繼段的范圍內(nèi)。在情況1a下,它發(fā)現(xiàn)目標裝置C,并且將此回報給裝置A(步驟45)。然而,裝置A因它已經(jīng)識別出更近的目標而沒有針對該信息有所行動。
情況2aD和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”C處于E的一個中繼段內(nèi) E對A“可以聯(lián)系C”A(經(jīng)由E)對C“請求服務x…”情況3aE處于A的一個中繼段內(nèi) A對B和C“我需要服務x…”C處于E的一個中繼段內(nèi) E對A“可以聯(lián)系C”A(經(jīng)由E)對C“請求服務x…”在這兩種情況下,在裝置A的一個中繼段內(nèi)不存在目標裝置(B、C)。要注意的是,在情況2a下,由于裝置A初始時不知道裝置D能夠提供該服務,所以不管裝置D。與情況1a下相同,裝置E處于目標裝置C的一個中繼段內(nèi),因此將此消息回報給裝置A。已經(jīng)接收到?jīng)]有直接的“就緒”消息(步驟33)的裝置A通過請求來自裝置C的經(jīng)由裝置E中繼的服務,對來自裝置E的“可以連接”消息進行響應(步驟34)。
情況2bD和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”F處于E的一個中繼段內(nèi) 無應答A對全體“我需要服務x…”E對全體“A需要服務x…”D對A“我作為服務x的主機…”F(經(jīng)由E)對A“我作為服務x的主機…”A到D“請求服務x…”
情況2cD和E處于A的一個中繼段內(nèi)A對B和C“我需要服務x…”無應答A對全體“我需要服務x…”E對全體“A需要服務x…”D對A“我作為服務x的主機…”A對D“請求服務x…”在這兩種情況下,不存在針對目標請求的響應(步驟33、34),所以,裝置A發(fā)送廣播請求(步驟35)。在兩種情況下,裝置D接收到該廣播請求并對其進行響應(步驟46)。這個響應由裝置A接收到(步驟36),裝置A將裝置D添加至服務提供者列表并且從裝置D請求服務。裝置E也接收到該請求,但不能夠提供服務,于是對該請求本身進行轉(zhuǎn)發(fā)(步驟47、48)。在請況2b下,轉(zhuǎn)發(fā)的請求由裝置F接收到,裝置F經(jīng)由裝置E發(fā)回響應(步驟46、49),但裝置A因已經(jīng)接收到直接響應而忽略此間接響應。
情況3bE處于A的一個中繼段內(nèi) A對B和C“我需要服務x…”F處于E的一個中繼段內(nèi) 無應答A對全體“我需要服務x…”E對全體“A需要服務x…”F(經(jīng)由E)對A“我作為服務x的主機…”A(經(jīng)由E)對F“請求服務x…”關于情況3b,目標消息不能到達所尋址的B或C中的任何一個(步驟33、34),所以裝置A發(fā)送廣播請求。在這種情況下,能夠提供服務的裝置沒有直接接收到該廣播請求,所以裝置A沒有接收到直接的響應(步驟36)。裝置E接收到該請求,但不能夠提供服務,而對該請求本身進行轉(zhuǎn)發(fā)(步驟47、48)。轉(zhuǎn)發(fā)的請求由裝置F接收到,裝置F經(jīng)由裝置E發(fā)回響應(步驟46、49)。裝置A通過將裝置F添加至服務提供者列表并且從裝置F請求服務來響應這個間接響應(步驟37)。
情況3cE處于A的一個中繼段內(nèi) A對B和C“我需要服務x…”無應答A對全體“我需要服務x…”E對全體“A需要服務x…”無應答在這種情況下,裝置A沒有接收到針對目標消息(步驟32)或廣播消息(步驟35)的應答,所以裝置A不能從任何潛在的主機請求服務(步驟391),并且必須尋找一些另選的操作方法(步驟392)。
當請求者直接地(步驟36)或經(jīng)由公共的第一相鄰裝置(步驟37),從在先未知的提供者接收到針對廣播請求的應答時,它將該提供者的ID存儲在用于這個服務的已知提供者的列表中(步驟38),以用于將來的目標請求和判定。在圖5中示出了存儲的數(shù)據(jù)。針對每一種服務,保持了已知提供者(511、512、513等)的列表51、52、53、54。每一個提供者511都具有與它相關聯(lián)的相對應的“得分(score)”611等。如果添加新的唯一ID將導致列表超出其最大長度,則它代替地替換最后的條目(其中存儲ID的順序間接反映了所有已知提供者的相關可用性,見下文)。如果針對一個請求接收到幾個應答,則隨機選擇應答裝置之一。要注意的是,可在選擇它們之一(步驟391)之前,對多于一個的ID進行存儲(步驟38)。
每當已知提供者511等回答了請求時,其“得分”611增加一個值,所述值可以是整合了許多關系特定變量(信任、服務費、延遲…)的值。盡管每個預定列表(subscription)51僅存在針對指定提供者的一個引用511,但是,同一裝置可以是幾個服務52、53的已知提供者。在這種情況下,在每一個相對應的預定列表中具有獨立的條目523、542。這也意味著,相同的裝置針對正提供(或者已經(jīng)提供)給另一成員的不同服務具有不同的得分623、642,或者如果相同的裝置正用作(或者已經(jīng)用作)幾個其它對等成員的提供者時,針對相同的服務具有不同的得分?;旧希暗梅帧敝竷蓚€成員之間針對一個服務的一種關系,并且由個體用戶擁有/保持。
定期使用獨立于每個預定列表51、52、53,得分來對提供者進行排序。結(jié)果是在選擇時段內(nèi),最佳性能的提供者出現(xiàn)在列表的首位,而最差的出現(xiàn)在列表的最后。由于最差性能的提供者條目是在廣播請求之后由最新識別的提供者的唯一ID所替換的最后條目(見上文),所以系統(tǒng)趨于通過“忘記”差的執(zhí)行者(即,曾經(jīng)嘗試作為提供者但實際上在請求者的可達范圍內(nèi)沒有經(jīng)過較長周期,因而不適于長期關聯(lián)的對等體)來隨時間選擇最佳(即,最頻繁可用的)候選者。另選解決方案是在選擇時段內(nèi),針對服務存儲所有識別出的提供者的地址,對它們?nèi)窟M行排序,接著“拋棄”超出者。從邏輯觀點來看,兩種方法非常類似,但前者具有需要較少存儲和處理的優(yōu)點,而后者很可能增加效率。
無論何時進行請求,都可以對該請求“立即”應答(通過已知目標提供者或者在廣播之后通過一些其它對等體),或者不回答。在第二種情況下,將該請求添加至“未決”請求的列表中,并且定期進行“再檢查”(即再發(fā)送),直到提供者變得可用,或者該請求達到“存在時間”限。在第二種情況下,該請求被假定成已經(jīng)“失敗”(即,該請求被放棄)并且不對這個預定列表的“成功”變量進行增加。
通過各個團體成員本地安裝新軟件模塊來實現(xiàn)為需求提供的調(diào)節(jié)。每當針對相應服務的請求失敗時,通過對等體來進行是否安裝新模塊的判定。根據(jù)分配給服務的值與其察覺的可利用性之間的平衡(與成功/請求比成比例),裝置可以選擇不再依賴遠程訪問,而可以采用必需的步驟來聯(lián)系中央儲存庫,并且利用下載功能部25將模塊下載/安裝至其自己的程序數(shù)據(jù)存儲部26。
如果通過這個處理識別了合適的伙伴,(步驟33、36、37),則請求裝置利用該伙伴作為主機來運行程序(391)。如果沒有潛在的合適伙伴作為服務的主機,或者這樣做的任何裝置已經(jīng)服務于一些其它伙伴或者因諸如不足通信帶寬的一些其它原因而不相容,則連接失敗。接著,裝置可以訪問程序數(shù)據(jù)的源提供者,并且立即或者在數(shù)據(jù)變得可用時安裝所需的軟件組件本身(步驟392)。接著,該裝置可以在不需要遠程訪問的情況下運行程序本身(步驟390)。(要注意的是,為了本地使用而進行的程序下載需要的帶寬小于下載遠程主機程序所需的帶寬)。
因為已經(jīng)下載了程序數(shù)據(jù),所以這個裝置隨后可在其他裝置需要這個程序時,用作提供者(主機)。(該裝置將對它接收的針對這個服務的任何廣播請求(步驟41)給出正響應(步驟46),并將及時被其它用戶識別(步驟38),而且還成為目標請求的對象)。因此,主要旨在解決個體裝置的問題的初始校正動作將在減少了對需要其他對等裝置安裝相對應的程序數(shù)據(jù)模塊的需求的情況下,有效地增加所牽連的服務的可利用性,并且有助于提高總利用性。
假定作為程序的主機存在成本(否則,在共享模塊或利用遠程訪問方面將不存在優(yōu)點,而對于每一個用戶的最佳解決方案是本地安裝全部組件)。這個成本可以是財金方面的(例如,如果軟件制造商對安裝模塊比從另一對等體訪問相應服務收取更多費用),或者更可能包括多種不方便性(例如,較長下載時間、存儲容量的浪費,或者需要找到固定網(wǎng)絡接入點)。為了對團體成員“不情愿”履行安裝處理進行模擬,每當考慮該安裝選項時,針對固定閾值進行隨機測試。根據(jù)針對該閾值選取的值,這典型地導致在實際開始該處理之前所需的幾個失敗的請求。重要的是應該理解,這種失敗的原因并不重要,這意味著本發(fā)明原則上可以用于對其可利用性可變和/或不可預期的任何系統(tǒng)進行管理,而且所述管理獨立于導致這種情況的原因。在模擬的遍布式服務環(huán)境下,這種失敗的原因是移進和移出參與裝置彼此的范圍的所述參與裝置的物理移動的結(jié)果,但是在其它情況下,這種失敗的原因可能是在另外的適當提供者上缺乏資源(例如,在GRID計算中的處理能力)。
本發(fā)明本征地適應于作為判定處理的“反復試驗”的性質(zhì)的微擾,這使得本發(fā)明自發(fā)地起作用,以改變供需之間的平衡。新對等體在它們檢測到其可利用性已經(jīng)變得不滿足于它們自己的需要時,安裝“缺少”的模塊,從而恢復處理中的整個服務質(zhì)量水平。
權(quán)利要求
1.一種計算機處理裝置,所述計算機處理裝置具有訪問安裝在合作裝置上的服務的能力,并具有從數(shù)據(jù)庫檢索數(shù)據(jù)以允許安裝這種服務從而供其自己使用并且供合作裝置使用的能力,所述計算機處理裝置包括對一個或更多個服務的當前提供范圍進行識別的裝置,所述計算機處理裝置還包括如下裝置針對所述計算機處理裝置所需的服務來識別是否存在欠提供狀態(tài)的裝置;和用于從所述數(shù)據(jù)庫檢索數(shù)據(jù),以便將針對其識別出這種欠提供狀態(tài)的一個或更多個服務安裝在所述計算機處理裝置上的裝置;以及響應于來自合作裝置的請求而允許所述合作裝置對存儲在所述計算機處理裝置上的服務進行訪問的裝置。
2.根據(jù)權(quán)利要求1所述的計算機處理裝置,所述計算機處理裝置包括確定裝置,所述確定裝置在下載服務的機會出現(xiàn)時確定是否應當安裝該服務。
3.根據(jù)權(quán)利要求2所述的計算機處理裝置,所述計算機處理裝置還包括刪除裝置,所述刪除裝置用于刪除針對其識別出過提供狀態(tài)的服務,以允許安裝另一服務。
4.根據(jù)權(quán)利要求1、2或者3所述的計算機處理裝置,所述計算機處理裝置包括識別裝置,所述識別裝置嘗試識別能夠向所述計算機處理裝置提供所需服務的相鄰裝置,其中由識別這種相鄰裝置的失敗定義欠提供狀態(tài)。
5.根據(jù)權(quán)利要求4所述的計算機處理裝置,其中,所述欠提供狀態(tài)被定義為識別這種相鄰裝置的預定失敗次數(shù)。
6.根據(jù)權(quán)利要求5所述的計算機處理裝置,其中,所述預定失敗次數(shù)被定義為在預定時間上進行的嘗試的比例。
7.根據(jù)權(quán)利要求4、5或6所述的計算機處理裝置,所述計算機處理裝置還包括應用裝置,所述應用裝置將可調(diào)隨機組件應用于對過提供狀態(tài)或者欠提供狀態(tài)的識別。
8.根據(jù)權(quán)利要求1、2、3、4、5、6或7所述的計算機處理裝置,所述計算機處理裝置包括存儲裝置和發(fā)送裝置,所述存儲裝置用于對與作為所需服務的主機的裝置有關的信息進行存儲,所述發(fā)送裝置用于發(fā)送尋址到由此識別出的裝置的針對所需服務的請求。
9.根據(jù)權(quán)利要求1、2、3、4、5、6、7或8所述的計算機處理裝置,所述計算機處理裝置包括廣播裝置,所述廣播裝置用于向范圍內(nèi)的全部裝置廣播針對服務的請求。
10.根據(jù)權(quán)利要求8或9所述的計算機處理裝置,所述計算機處理裝置包括轉(zhuǎn)發(fā)裝置,所述轉(zhuǎn)發(fā)裝置將從其它裝置接收的任何這種請求轉(zhuǎn)發(fā)預定級數(shù)。
11.一種多個計算機處理裝置相互合作以作為由所述計算機處理裝置彼此使用的服務的主機的方法,其中,所述計算機處理裝置相互合作以對指定服務的提供范圍進行識別,其中,第一裝置在需要該第一裝置尚未安裝的服務時,嘗試對能夠提供所需服務的相鄰裝置進行識別,并且如果所述第一裝置識別到欠提供狀態(tài),則它通過檢索適于執(zhí)行所述服務的服務數(shù)據(jù)來嘗試安裝所需服務。
12.根據(jù)權(quán)利要求11所述的方法,其中,存儲與欠提供狀態(tài)有關的信息,并且一裝置在識別出安裝這種服務的機會時安裝這種服務。
13.根據(jù)權(quán)利要求11或12所述的方法,其中,欠提供狀態(tài)是由針對能夠向所述第一裝置提供所需服務的相鄰裝置進行識別的失敗來標識的。
14.根據(jù)權(quán)利要求13所述的方法,其中,所述欠提供狀態(tài)被標識為對這種相鄰裝置進行識別的預定失敗次數(shù)。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述預定失敗次數(shù)被定義為在預定時間上進行的嘗試的比例。
16.根據(jù)權(quán)利要求13、14或15所述的方法,其中,將可調(diào)隨機組件應用于對過提供狀態(tài)或欠提供狀態(tài)的識別。
17.根據(jù)權(quán)利要求11、12、13或14所述的方法,其中,每一個裝置都存儲與已經(jīng)被識別為作為所需服務的主機的裝置有關的信息,并且發(fā)送尋址到這樣識別出的裝置的針對所需服務的請求。
18.根據(jù)權(quán)利要求11、12、13、14、1516或17所述的方法,其中,所述裝置向范圍內(nèi)的全部裝置廣播針對服務的請求。
19.根據(jù)權(quán)利要求17或18所述的方法,其中,把這種請求從一個裝置向另一裝置轉(zhuǎn)發(fā)預定級數(shù)。
20.根據(jù)權(quán)利要求11、12、13、14、15、16、17、18或19所述方法,所述方法還包括監(jiān)管功能,所述監(jiān)管功能用于對個體參與者使用根據(jù)本發(fā)明提供的服務的使用情況進行監(jiān)控,并且用于對個體參與者自己為了其它成員的使用而提供這種服務的提供情況進行監(jiān)控。
全文摘要
本發(fā)明涉及用于移動裝置的對等網(wǎng)絡的服務發(fā)現(xiàn)和服務提供。一組計算機處理裝置被設置成相互合作以作為彼此使用的服務的主機。每一裝置都存儲與已知安裝了這種服務(38)的裝置有關的信息。當所述一組計算機處理裝置之一需要其尚未安裝的服務時,它發(fā)送針對所需服務的請求(32、35)。如果相鄰裝置能夠提供所述服務,則該相鄰裝置因此進行響應(33、34、36、37)并提供所請求的服務(391)。如果一裝置不能識別到足夠合適的相鄰主機裝置,則該裝置可以在識別到安裝這種服務的機會時自己安裝這種服務(392)。
文檔編號H04L12/56GK101031883SQ200580032755
公開日2007年9月5日 申請日期2005年8月4日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者法布里斯·特里斯坦·皮埃爾·薩夫爾, 阿瓦爾·拉斯特·布羅克 申請人:英國電訊有限公司