專利名稱:經(jīng)由端對端網(wǎng)絡(luò)的軟件分發(fā)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計算設(shè)備,并且更具體地,涉及通過adhoc (自組織)端對端網(wǎng)絡(luò)來提供軟件分發(fā)服務(wù)。
背景技術(shù):
通用即插即用(Universal Plug and PlayTM) ( UPnP )定義了用 于所有類型的消費者電子設(shè)備之間普遍的、端對端組網(wǎng)的架構(gòu),其 中消費者電子設(shè)備包括智能設(shè)備、無線設(shè)備以及所有形式因素的PC。 UPnP技術(shù)為完全不同的處理設(shè)備提供了通過鄰近或者ad hoc網(wǎng)絡(luò)來 交換數(shù)據(jù)的方式。UPnP架構(gòu)設(shè)計用于為家庭、小型商業(yè)場所、公共 場所中的或者附接至因特網(wǎng)的ad hoc或者未托管網(wǎng)絡(luò)提供易用的、 靈活的、基于標(biāo)準(zhǔn)的連接。UPnP技術(shù)提供一種分布式的、開放的組 網(wǎng)架構(gòu),其利用TCP/IP和Web技術(shù)來支持無縫的鄰近組網(wǎng),并支持 組網(wǎng)設(shè)備之間的控制和數(shù)據(jù)傳送。
UPnP設(shè)備架構(gòu)(UDA)設(shè)計用于支持零配置的、"不可見"的 組網(wǎng),以及對來自各種供應(yīng)商的多種設(shè)備類別的自動發(fā)現(xiàn)。這意味 著,設(shè)備可以自動加入網(wǎng)絡(luò)、獲取IP地址、傳遞其能力、以及了解 其他設(shè)備的存在和能力。UPnP規(guī)范包括用于設(shè)備發(fā)現(xiàn)的規(guī)范,并且 UPnP論壇發(fā)布了多個特定的設(shè)備控制協(xié)議(DCP)。這些發(fā)布的 DCP對特定類型的UPnP網(wǎng)絡(luò)功能進(jìn)行了標(biāo)準(zhǔn)化。例如,某些DCP 定義了用于通過UPnP網(wǎng)絡(luò)來呈現(xiàn)音頻和視頻的功能。各貢獻(xiàn)者可以 實現(xiàn)這些以及其他UPnP設(shè)備和服務(wù)描述,由此創(chuàng)建將設(shè)備連接到功 能性網(wǎng)絡(luò)中的簡易方法。UPnP的目標(biāo)是支持家用電子設(shè)備無縫地交 互,由此進(jìn)一步提高這些設(shè)備的有效性。
UPnP標(biāo)準(zhǔn)包括用于力良務(wù)發(fā)現(xiàn)的標(biāo)準(zhǔn),并且以鄰近的或者ad hoc
7網(wǎng)絡(luò)為主要目標(biāo)。各貢獻(xiàn)者(contributor)發(fā)布UPnP設(shè)備以及服務(wù) 描述,由此創(chuàng)建連接設(shè)備的簡易方式并且簡化網(wǎng)絡(luò)的實現(xiàn)。UPnP設(shè) 計用于在多種環(huán)境中工作,包括家庭、商業(yè)場所、公共場所以及附 接至因特網(wǎng)的設(shè)備上。UPnP標(biāo)準(zhǔn)是一種開放式架構(gòu),其利用Web 技術(shù)并且設(shè)計用于提供ad-hoc組網(wǎng)和分布式計算。
開發(fā)UPnP以及相關(guān)的協(xié)議主要是為了允許消費者容易地組建 家庭網(wǎng)絡(luò),以及訪問和控制正常情況下不與組網(wǎng)計算相關(guān)聯(lián)的設(shè)備。 然而,UPnP的靈活特性意味著其可以在任何地方實現(xiàn),并且可以適 用于網(wǎng)絡(luò)架構(gòu)的發(fā)起者不可預(yù)見的使用。例如,UPnP可以在通常連 接至無線供應(yīng)商網(wǎng)絡(luò)的移動設(shè)備上使用。這種設(shè)備可以包含次要的 有線或者無線接口 ,其允許設(shè)備與家庭或者商業(yè)網(wǎng)絡(luò)的其他實體通 信。
在本質(zhì)上,移動設(shè)備通常是容易運送的,因此與其他類型的計 算設(shè)備相比,用戶傾向于具有對這些設(shè)備的更大訪問權(quán)。隨著這種 設(shè)備的數(shù)據(jù)處理能力和多媒體特征的增加,移動設(shè)備還可以用于較 為高級的休閑活動,例如聽音樂、看電影、打游戲等。這種能力和 活動常??梢酝ㄟ^網(wǎng)絡(luò)通信來增強,其允許人們與共享活動中的其 他人交互。然而,網(wǎng)絡(luò)特征的建立和使用對于某些用戶而言可能是 困難的。這種在使用網(wǎng)絡(luò)特征中的可察覺到的困難可能阻止了一些 人使用組網(wǎng)的娛樂功能,因此他們可能認(rèn)為為了增強任意性的活動 來學(xué)習(xí)如何使用網(wǎng)絡(luò)特征所花費的努力是不值得的。因此,期望提 供一種對支持娛樂活動的網(wǎng)絡(luò)技術(shù)的簡單配置和使用。
發(fā)明內(nèi)容
為了克服上文描述的現(xiàn)有技術(shù)的限制,并且克服在閱讀和理解 本說明書時將變得易見的其他限制,本說明書公開了 一種用于經(jīng)由 ad hoc端對端網(wǎng)絡(luò)的數(shù)據(jù)處理裝置來分發(fā)軟件的系統(tǒng)、設(shè)備以及方 法。在一個實施方式中, 一種方法,包括配置第一設(shè)備來提供有 助于對多個程序進(jìn)行訪問的端對端軟件分發(fā)服務(wù)。使用adhoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議,經(jīng)由第 一設(shè)備來公告該端對端軟件分發(fā)服 務(wù)。響應(yīng)于公告該端對端軟件分發(fā)服務(wù),在第一設(shè)備處從目標(biāo)機器 接收針對該端對端軟件分發(fā)服務(wù)的描述的至少一個查詢。經(jīng)由該端 對端軟件分發(fā)服務(wù)來促進(jìn)將程序下載到目標(biāo)設(shè)備。所述程序是從多 個程序中選出的,并且能夠在目標(biāo)設(shè)備的處理器上操作。
在更為具體的實施方式中,所述程序配置用于經(jīng)由所述ad hoc 端對端網(wǎng)絡(luò)來進(jìn)行操作,并且所述至少一個查詢可以響應(yīng)于目標(biāo)設(shè) 備嘗試訪問adhoc端對端網(wǎng)絡(luò)的已公告服務(wù)而接收。在這種情況下, 所述至少一個查詢包括對所公告服務(wù)的描述,并且所述程序使目標(biāo) 設(shè)備能夠使用所公告的服務(wù)。在其他布置中,促進(jìn)將程序下載到目 標(biāo)設(shè)備包括將程序從第一設(shè)備下載到端(peer)設(shè)備和/或從第三 方計算布置下載到目標(biāo)設(shè)備。將程序下載到目標(biāo)設(shè)備還可以包括 使用與ad hoc端對端網(wǎng)絡(luò)的協(xié)議不同的一個或多個協(xié)議來下載程 序。
在其他更為具體的實施方式中,所述方法還包括經(jīng)由所述ad hoc端對端網(wǎng)絡(luò)在所述目標(biāo)設(shè)備上促進(jìn)激活所述程序。激活所述程序 可以包括驗證對第一設(shè)備和目標(biāo)設(shè)備中的至少一個的所有者訪問 權(quán)限。在某些配置中,adhoc端對端網(wǎng)路包括通用即插即用網(wǎng)絡(luò)。 在另一布置中,所述至少一個查詢包括對目標(biāo)設(shè)備的計算機平臺和/ 或用于對響應(yīng)于查詢而返回的結(jié)果進(jìn)行過濾的軟件類別的描述。
在本發(fā)明的另一實施方式中, 一種方法,包括將第一設(shè)備耦 合至adhoc端對端網(wǎng)絡(luò);以及使用ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié) 議,經(jīng)由第一設(shè)備來發(fā)現(xiàn)端對端軟件分發(fā)服務(wù)。所述端對端軟件分 發(fā)服務(wù)由端設(shè)備提供,并且促進(jìn)對多個程序的訪問。響應(yīng)于發(fā)現(xiàn)所 述端對端軟件分發(fā)服務(wù),從第一設(shè)備向所述端設(shè)備發(fā)送針對所述端 對端軟件分發(fā)對服務(wù)描述的至少 一個查詢。經(jīng)由第 一設(shè)備從多個程 序中選擇程序,并且所述程序被下載到第一設(shè)備。所述下載由所述 端設(shè)備的軟件分發(fā)服務(wù)來促進(jìn)。
在更為具體的實施方式中,所述程序配置用于經(jīng)由所述adhoc端對端網(wǎng)絡(luò)來進(jìn)行操作。在這種情況下,所述方法可以包括由所
述第 一設(shè)備嘗試訪問所述ad hoc端對端網(wǎng)絡(luò)的已公告服務(wù),并且響 應(yīng)于訪問已公告服務(wù)的嘗試,將所述程序下載到第一設(shè)備。所屬程 序使第一設(shè)備能夠使用所公告的服務(wù),在這種布置中,所述查詢可 以包括對所公告服務(wù)的描述,并且所述方法可以包括在第一設(shè)備處 調(diào)用所述程序來訪問所公告的服務(wù)。
在另 一更為具體的實施方式中,將程序下載到第 一設(shè)備包括從 端設(shè)備和/或第三方計算布置下載所述程序。此外,將程序下載到第 一設(shè)備可以包括使用與所述ad hoc端對端網(wǎng)絡(luò)的協(xié)議不同的 一個或 多個協(xié)議來下載所述程序。在一個配置中,所述方法還包括經(jīng)由 所述adhoc端對端網(wǎng)絡(luò)在所述第一設(shè)備上激活所述程序,并且激活 所述程序可以包括訪問所述ad hoc端對端網(wǎng)絡(luò)的激活服務(wù)和/或所述 adhoc端對端網(wǎng)絡(luò)的軟件分發(fā)服務(wù)。激活所述程序可以包括驗證 對所述第一設(shè)備和所述端設(shè)備中的至少一個的所有者訪問權(quán)限。
在本發(fā)明的另一實施方式中, 一種設(shè)備,包括網(wǎng)絡(luò)接口,其 能夠經(jīng)由adhoc端對端網(wǎng)絡(luò)來進(jìn)行通信;以及耦合至所述網(wǎng)絡(luò)接口 的處理器。存儲器存儲設(shè)備耦合至所述處理器,并且包括指令,所 述指令使所述處理器使用所述ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來 發(fā)現(xiàn)端對端軟件分發(fā)服務(wù)。所述端對端軟件分發(fā)服務(wù)由端設(shè)備提供, 并且促進(jìn)對多個程序的訪問。所述指令還使所述處理器從多個程序 中選擇程序,并且將所述程序下載到所述裝置。通過所述端對端設(shè) 備的軟件分發(fā)服務(wù)來促進(jìn)所述下載。
在更為具體的實施方式中,所述指令還使所述處理器提供本地 提供的端對端軟件分發(fā)服務(wù),其促進(jìn)對第二多個程序的訪問;經(jīng)由 所述服務(wù)發(fā)現(xiàn)協(xié)議來公告所述本地提供的端對端軟件分發(fā)服務(wù);以 及經(jīng)由本地提供的端對端軟件分發(fā)服務(wù)來促進(jìn)將第二程序下載到目 標(biāo)設(shè)備。所述第二程序從第二多個程序中選擇,并且能夠在目標(biāo)設(shè) 備的處理器上進(jìn)行操作。在某些布置中,所述端對端軟件分發(fā)服務(wù) 和/或所述本地提供的端對端軟件分發(fā)服務(wù)作為通用即插即用設(shè)備來
10公告。
在本發(fā)明的另一實施方式中, 一種計算機可讀存儲介質(zhì),其具
有可由能夠耦合至adhoc端對端網(wǎng)絡(luò)的裝置來執(zhí)行的指令。所述指 令可由所述裝置執(zhí)行以執(zhí)行下列步驟使用所述ad hoc端對端網(wǎng)絡(luò) 的服務(wù)發(fā)現(xiàn)協(xié)議來發(fā)現(xiàn)端對端軟件分發(fā)服務(wù)。所述端對端分發(fā)服務(wù) 由端設(shè)備提供,并且促進(jìn)對多個程序的訪問。所述步驟還包括從 多個程序中選擇程序,并將所述程序下載到所述裝置。通過所述端
設(shè)備的所述軟件分發(fā)服務(wù)來促進(jìn)所述下載。
在更為具體的實施方式中,所述步驟還包括提供本地提供的 端對端軟件分發(fā)服務(wù),其促進(jìn)對第二多個程序的訪問;經(jīng)由所述服 務(wù)發(fā)現(xiàn)協(xié)議來公告所述本地提供的端對端軟件分發(fā)服務(wù);以及經(jīng)由 所述本地提供的端對端軟件分發(fā)服務(wù)來促進(jìn)將第二程序下載到目標(biāo) 設(shè)備。所述第二程序是從第二多個程序中選擇的,并且能夠在所述 目標(biāo)設(shè)備的處理器上進(jìn)行操作。
在本發(fā)明的另一實施方式中, 一種系統(tǒng),包括用于經(jīng)由第一 端設(shè)備,通過ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來提供端對端軟件 分發(fā)服務(wù)。通用的端對端軟件分發(fā)服務(wù)促進(jìn)對多個程序的訪問。所 述系統(tǒng)還包括用于經(jīng)由所述網(wǎng)絡(luò)的第二端設(shè)備來發(fā)現(xiàn)所述端對端 軟件分發(fā)服務(wù)的裝置;以及用于經(jīng)由所述端對端軟件分發(fā)服務(wù)來促 進(jìn)將程序下載到所述第二端設(shè)備的裝置。在更為具體的實施方式中, 所述系統(tǒng)還包括用于經(jīng)由所述ad hoc端對端分發(fā)服務(wù)來激活所述 程序的裝置。
特別地,表征本發(fā)明的新穎性的這些以及各種其他優(yōu)點和特征 在所附權(quán)利要求書中特別指出,其中權(quán)利要求書構(gòu)成本發(fā)明的 一部 分。然而,更為更好地理解本發(fā)明、其優(yōu)點以及其使用所達(dá)到的目 的,將參考構(gòu)成本發(fā)明其他部分的附圖以及所附的描述性文字,其 中示出并描述了按照本發(fā)明的系統(tǒng)、設(shè)備以及方法的代表性示例。
ii將結(jié)合下文附圖中所示的實施方式來描述本發(fā)明。
圖1是示出按照本發(fā)明實施方式的系統(tǒng)的框圖2是示出按照本發(fā)明實施方式的軟件分發(fā)服務(wù)的實現(xiàn)的框圖3是示出按照本發(fā)明實施方式的UPnP軟件分發(fā)架構(gòu)的框圖4是按照本發(fā)明實施方式的示例軟件分發(fā)服務(wù)交互的序列圖5是按照本發(fā)明實施方式的移動設(shè)備的框圖6是示出按照本發(fā)明實施方式的、用于提供經(jīng)由adhoc端對
端網(wǎng)絡(luò)的軟件分發(fā)服務(wù)的方法的流程圖;以及
圖7是示出按照本發(fā)明實施方式的、用于經(jīng)由adhoc端對端網(wǎng)
絡(luò)來使用軟件分發(fā)服務(wù)的方法的流程圖。
具體實施例方式
在下文對各種示例性實施方式的描述中,將參考構(gòu)成本發(fā)明一 部分的附圖,其中以示范的方式示出了可以實踐本發(fā)明的各種實施 方式。應(yīng)當(dāng)理解,可以使用其他實施方式,因為可以在不脫離本發(fā) 明范圍的情況下進(jìn)行結(jié)構(gòu)性和操作性改變。
總體上,本發(fā)明涉及使軟件能夠經(jīng)由adhoc端對端網(wǎng)絡(luò)來分發(fā) 的方法、系統(tǒng)和設(shè)備。軟件的"分發(fā),,可以包括兩個或者多個計算 設(shè)施之間的處理器可執(zhí)行指令的發(fā)現(xiàn)、傳輸、驗證、安裝、購買、 激活以及維護的任意組合。軟件可以包括可以在數(shù)據(jù)處理設(shè)備上執(zhí) 行的任何類型的系統(tǒng)軟件或者用戶軟件。這種軟件的 一個示例是游
還使用端對端網(wǎng)絡(luò)來公告對游戲的使用,和/或使用網(wǎng)絡(luò)來交換游戲 操作數(shù)據(jù)。盡管在此示出的各種實施方式可能是按照各種特定類型 的軟件(例如,游戲)來描述的,但是將會理解,本發(fā)明不限于此, 而是可以應(yīng)用于本領(lǐng)域公知的任何方式的計算機輔助活動。
在按照本發(fā)明實施方式的系統(tǒng)中,通用軟件分發(fā)服務(wù)允許經(jīng)由 單個通用接口來發(fā)現(xiàn)和使用任何程序。因此,在這種布置中,用戶 可以了解到可供使用的多個程序。在某些情況下,軟件可用于輔助
12設(shè)備以訪問端對端網(wǎng)絡(luò)上的另一服務(wù)。例如,端設(shè)備可以發(fā)現(xiàn)經(jīng)由 網(wǎng)絡(luò)的發(fā)現(xiàn)協(xié)議而公告的多人游戲。多人游戲可以將端對端網(wǎng)絡(luò)用
于發(fā)現(xiàn)和玩游戲事件二者。為了玩游戲,用戶設(shè)備可以發(fā)現(xiàn)和/或祐_ 自動指引到軟件分發(fā)服務(wù),該軟件分發(fā)服務(wù)支持在用戶設(shè)備上安裝
兼容的軟件。以此方式,用戶可以無縫地使用在端對端網(wǎng)絡(luò)上出現(xiàn)
的、此前未知和未安裝的能力。
在一個布置中,支持軟件分發(fā)服務(wù)的adhoc端對端網(wǎng)絡(luò)可以是 通用即插即用(UPnP)網(wǎng)絡(luò)。UPnP架構(gòu)包括兩層通用UPnP設(shè)備 架構(gòu)(UDA)以及特定于設(shè)備的設(shè)備控制協(xié)議(DCP)。目前存在 用于各種設(shè)備類別的大約10個標(biāo)準(zhǔn)化DCP。經(jīng)由UPnP的軟件分發(fā) 可以包括創(chuàng)建使用戶能夠搜索任何可用程序的通用框架,從而使得 該搜索不與任何特定的軟件類型、設(shè)備平臺、許可機制或者通常與 軟件分發(fā)相關(guān)聯(lián)的其他類別綁定??梢詣?chuàng)建軟件分發(fā)DCP,其將定 義"UPnP軟件分發(fā)設(shè)備"將暴露給UPnP網(wǎng)絡(luò)的服務(wù)、動作和狀態(tài) 變量。
現(xiàn)在參考圖l,框圖IOO示出了按照本發(fā)明實施方式的示例系統(tǒng)。 一般地,諸如UPnP的技術(shù)設(shè)計用于在有限的空間內(nèi)操作。在圖1 中,物理邊界定義了本地空間102。本地空間102的尺度通常由基礎(chǔ) 網(wǎng)絡(luò)協(xié)議、介質(zhì)以及用來促進(jìn)軟件分發(fā)的adhoc端對端組網(wǎng)結(jié)束的 可擴展性來限定。然而,將會理解,其他adhoc端對端協(xié)議可能不 限于任何物理空間限制,因此示出本地空間102是為了示范而非限 制的目的。
空間102可以包括至少一個本地網(wǎng)絡(luò)104,其能夠支持與一個或 多個用戶設(shè)備106的通信。本地網(wǎng)絡(luò)104可以包括數(shù)據(jù)傳輸介質(zhì)和 協(xié)議的任意組合。例如,網(wǎng)絡(luò)104可以使用有線的或者無線的數(shù)據(jù) 傳輸介質(zhì)。類似地,本地網(wǎng)絡(luò)104上的設(shè)備106可以使用各種物理 和數(shù)據(jù)鏈路層協(xié)議來相互通信,包括以太網(wǎng)、FDDI、 PPP、 ATM、 HDLC、光纖信道、X-IO、串行/并行點對點連接等。多個較高層的 網(wǎng)絡(luò)協(xié)議同樣可以在網(wǎng)絡(luò)104上操作,包括TCP/IP、 UDP/IP、 IPX、
13Appletalk、 ICMP、 ARP、 DNS、 FTP、 NetBEUI等。
用戶設(shè)備106 —般地包括某些方式的數(shù)據(jù)處理能力,并且特別 地,至少某些設(shè)備106能夠經(jīng)由網(wǎng)絡(luò)104來獲得和運行軟件。在多 數(shù)安裝中,該軟件包括用戶程序或者系統(tǒng)程序,其能夠在具有通用 數(shù)據(jù)處理能力的設(shè)備106上運行。這種設(shè)備106通常包括充足的存 儲器(例如,隨機訪問存儲器),以便載入選擇性地改變設(shè)備行為 的新程序。這種設(shè)備106—般地包括(或者至少能夠訪問)某些類 型的永久數(shù)據(jù)存儲設(shè)備(例如,硬盤、閃存),其允許設(shè)備106在 電源周期之后保存已改變的和已添加的軟件。
盡管在此描述的概念可以有益地應(yīng)用于通用計算設(shè)備,但是本 發(fā)明無需限于這種設(shè)備。例如,設(shè)備106可以包括嵌入式設(shè)備107, 其是有限用途的數(shù)據(jù)處理布置,并且通常不能通過添加新程序來進(jìn) 行擴展。然而,嵌入式設(shè)備107中包含的已有的專用程序可以通過 在此描述的端對端軟件分發(fā)服務(wù)來更新、修改或者替換。例如,嵌 入式設(shè)備107可以包括"智能"UPnP設(shè)備,其經(jīng)由網(wǎng)絡(luò)104來執(zhí)行 單個功能。這種設(shè)備107可以通過修改包含設(shè)備107操作指令的閃 存來進(jìn)行升級(例如,以增強特定的功能或者修正漏洞(bug))。 在這種布置中,設(shè)備107可以包括如下指令,其允許設(shè)備107在無 需用戶干預(yù)的情況下使用UPnP軟件分發(fā)服務(wù)來獲得和應(yīng)用閃存升 級。
在所示的框圖100中,其他可組網(wǎng)設(shè)備106包括游戲控制臺108、 移動電話109、膝上型計算機IIO、個人數(shù)字助理112、便攜式音樂 播放器114、平板計算機116、個人計算機117、娛樂中心120或者 由通用數(shù)據(jù)處理設(shè)備118表示的任何其他設(shè)備。因為諸如UPnP的協(xié) 議適用于多種消費者電子設(shè)備,所以諸如娛樂中心120的消費者電 子設(shè)備包括端對端網(wǎng)絡(luò)功能。在某些配置中,嵌入式設(shè)備107之類 的消費者電子設(shè)備12 0可以具有固定的功能,諸如只能夠呈現(xiàn)聲音 或者視頻。例如,這種能力可以包括在設(shè)備120的閃存程序中,并 且由此對于設(shè)備120的使用壽命而言相對固定。然而,在其他布置中,設(shè)備120可以包括通用計算機能力,諸如對隨機訪問存儲器
(RAM)和/或永久存儲設(shè)備的訪問,并由此能夠添加新的程序來擴 展設(shè)備的能力。在任一布置中,設(shè)備120可以適用于使用或者提供 在此描述的某些或者全部軟件分發(fā)服務(wù)。
優(yōu)選地,網(wǎng)絡(luò)104及其基礎(chǔ)協(xié)議被設(shè)計為通用的和靈活的,從
而能夠?qū)⒍喾N類型的控制或者數(shù)據(jù)處理功能作為服務(wù)進(jìn)行抽象,并 將其提供給網(wǎng)絡(luò)104上的其他實體。在一個實施方式中,本地網(wǎng)絡(luò) 104可以支持用于ad hoc端對端服務(wù)發(fā)現(xiàn)和互操作性的一個或多個 協(xié)議。Ad hoc端對端協(xié)議的示例是在UPnP架構(gòu)中使用的那些協(xié)議。 UPnP將簡單服務(wù)發(fā)現(xiàn)協(xié)議(SSDP)用于服務(wù)發(fā)現(xiàn),并且通常構(gòu)建 在基于因特網(wǎng)協(xié)議UP)的網(wǎng)絡(luò)之上。盡管本發(fā)明的概念可以按照 UPnP網(wǎng)絡(luò)來描述,但是熟悉可應(yīng)用領(lǐng)域的技術(shù)人員將會理解,這些 概念可以應(yīng)用于使用消費者或者商業(yè)網(wǎng)絡(luò)的任何形式的ad ho c端對 端組網(wǎng)布置。例如,服務(wù)位置協(xié)議(SLP) 、 Zeroconf以及JiniTM是 提供與UPnP的功能相類似功能的協(xié)議。
本地網(wǎng)絡(luò)104可以設(shè)計用于服務(wù)于有限的物理區(qū)域,如邊界102 所示。在這種本地網(wǎng)絡(luò)104 (例如,UPnP)中使用的協(xié)議經(jīng)常,支設(shè) 網(wǎng)絡(luò)104將只需要支持在合理的小范圍內(nèi)操作的有限數(shù)目的設(shè)備。 然而,本地網(wǎng)絡(luò)104上的^艮多設(shè)備可以受益于可以經(jīng)由外部網(wǎng)路(特 別是因特網(wǎng)126)獲得的信息服務(wù)。UPnP規(guī)范定義了公知為因特網(wǎng) 網(wǎng)關(guān)設(shè)備(IGD) 128的特殊服務(wù)/功能。IGD功能128可以由一個或 多個設(shè)備106提供,以用于代表本地UPnP網(wǎng)絡(luò)104的其他設(shè)備106 來提供路由和防火墻服務(wù)的目的。在某些布置中,專用網(wǎng)關(guān)設(shè)備可 以執(zhí)行UPnP網(wǎng)絡(luò)104上的IGD功能128,以及提供用于非UPnP設(shè) 備的傳統(tǒng)網(wǎng)關(guān)/路由器服務(wù)。
在本發(fā)明的一個實施方式中, 一個或多個用戶設(shè)備106具有專 用組件130,其使設(shè)備106能夠至少經(jīng)由本地網(wǎng)絡(luò)104來分發(fā)軟件程 序。該組件130可以可替換地指設(shè)備或者服務(wù)。在UPnP規(guī)范中,概 念"設(shè)備"是一種邏輯抽象,其未必具有與單個硬件片段的一對一
15對應(yīng)。軟件分發(fā)設(shè)備/服務(wù)130可以由一個或多個網(wǎng)絡(luò)設(shè)備106主控, 并按照本地端對端網(wǎng)絡(luò)104的服務(wù)發(fā)現(xiàn)協(xié)議來公告132。例如,UPnP 網(wǎng)絡(luò)上的設(shè)備經(jīng)由SSDP來進(jìn)行公告,SSDP使用XMLUDP單播和 多播分組來公告132服務(wù)。響應(yīng)于公告132,設(shè)備118可以發(fā)起進(jìn)一 步的協(xié)商(例如,查詢),以發(fā)現(xiàn)關(guān)于服務(wù)130的細(xì)節(jié)。々£設(shè)設(shè)備 118希望并且能夠使用軟件分發(fā)服務(wù)130,則設(shè)備可以經(jīng)由服務(wù)130 來請求134軟件分發(fā)功能。
可以由設(shè)備請求134的一個軟件分發(fā)功能是下載136。在所示的 環(huán)境中,下載136可以包括將數(shù)據(jù)直接從服務(wù)130傳送到設(shè)備118。 在另一示例中,服務(wù)130可以促進(jìn)下載136,但是數(shù)據(jù)傳送138發(fā)生 自本地網(wǎng)絡(luò)104中的另一設(shè)備117。下載138所源自的設(shè)備117可以 或者可以不能使用服務(wù)130的格式和協(xié)議來進(jìn)行通信。例如,設(shè)備 117可以處于休眠模式,并且服務(wù)/設(shè)備130充當(dāng)處理查詢和其他事 物的代理,但是在使設(shè)備117醒來之后使下載138源自設(shè)備117。在 另一示例中,設(shè)備117可以使用"帶外(out-of-band )"機制來傳送 數(shù)據(jù)。在此使用的術(shù)語"帶外"通常是指使用并非adhoc端對端網(wǎng) 絡(luò)104的協(xié)議的一部分的一個或多個協(xié)議。例如,盡管文件傳輸協(xié) 議(FTP)和UPnP二者都可以在TCP/IP網(wǎng)絡(luò)之上工作,但是可以 認(rèn)為簡單的主機對主機FTP文件傳送是帶外的,因為這種傳送本身 并不使用UPnP協(xié)議棧。反之,"帶內(nèi)"機制至少使用針對設(shè)備106 而定義的協(xié)議的最小集合,以經(jīng)由網(wǎng)絡(luò)104來加入adhoc端對端交 互。
在另一布置中,下載140可以源自諸如因特網(wǎng)126的外部網(wǎng)絡(luò), 并且可以通過一個或多個本地組件(包括軟件分發(fā)H良務(wù)130和IGD 128)來加以促進(jìn)。在下載源自網(wǎng)絡(luò)外部的情況下,提供下載140的 實體142可能并不作為本地網(wǎng)絡(luò)104上的邏輯設(shè)備而出現(xiàn)。在一個 布置中,諸如IGD 128的設(shè)備可以充當(dāng)用于軟件下載的代理,使得 看起來好像是IGD 128在提供下載,即使數(shù)據(jù)是源自外部實體142 的。外部實體142可以包括單個服務(wù)器或者多個分布式的主機,以
16使用諸如BitTorrent和Gnutella的端對端技術(shù)來提供部分下載。本地 實體130、 117也可以參與類似的分布式軟件分發(fā)。
下載僅僅是設(shè)備/服務(wù)130能夠促進(jìn)的軟件分發(fā)功能的一個示 例。其他功能示出為建立/配置/激活功能144。這些功能144可以包 括除了下載之外的任何動作,其使得指令在特定的設(shè)備上正確地操 作。例如,配置可以包括向目標(biāo)設(shè)備添加或者修改文件或者其他數(shù) 據(jù)。該配置數(shù)據(jù)可以由安裝程序使用、由程序讀取和寫入以維持狀 態(tài)、用來存儲日志數(shù)據(jù),等等。功能144還可以包括將文件或者其 他永久對象放置在文件系統(tǒng)層級中的正確位置、二進(jìn)制的補丁、受 保護的/加密的代碼的激活、使系統(tǒng)文件/注冊表改變、與已有軟件組 件通信等。服務(wù)130可以直接執(zhí)行功能144,或者可以促進(jìn)客戶端 118與另一實體之間的功能。 一個這樣示例是所示的激活146,其經(jīng) 由本地環(huán)境102外部的實體142來執(zhí)行。
將會理解,相對于分發(fā)軟件的傳統(tǒng)方式而言,所示的系統(tǒng)100 具有多個優(yōu)點。在典型的系統(tǒng)中,用戶必須首先了解特定的軟件, 找到針對特定計算平臺的軟件下載,并且安裝軟件。如果軟件包括 與其他人或者設(shè)備的交互(例如,在UPnP環(huán)境中),則用戶可能還 必須找出參與軟件活動的設(shè)備、用戶或者團體。然而,在按照本發(fā) 明實施方式的系統(tǒng)中,僅僅經(jīng)由adhoc網(wǎng)絡(luò)來執(zhí)行發(fā)現(xiàn)服務(wù),便可 以確定目標(biāo)活動的存在以及希望參與該活動的其他人和設(shè)備的存 在。在很多情況下,如果沒有附加的軟件,則用戶可能無法參與目 標(biāo)活動。在這種情況下,可以在試用或者永久的基礎(chǔ)上自動地將促 進(jìn)該活動的軟件從其他位置下載到本地環(huán)境中或者其他任何位置。 這允許用戶更好地辨別其希望將哪個軟件安裝在其系統(tǒng)上。因此, 決策可以基于用戶經(jīng)常參與的、環(huán)境中的此類活動的實際使用,而 不是基于經(jīng)由諸如Web的公共論壇獲得的可能過期或者不準(zhǔn)確的數(shù) 據(jù)。
現(xiàn)在參考圖2,其給出了按照本發(fā)明實施方式可以如何促進(jìn)軟件 分發(fā)的更為詳細(xì)的示例。兩個移動終端202、 204經(jīng)由adhoc端對端網(wǎng)絡(luò)206耦合。在此示例中,移動終端202包括控制點/客戶端208, 而終端204包括分發(fā)服務(wù)器210,其可以配置用于將軟件分發(fā)到移動 終端202、 204或者網(wǎng)絡(luò)206的其他設(shè)備。將會理解,盡管在此示例 中在相應(yīng)終端202、 204上僅使用了示出的組件208、 210,但是終端 202、 204 二者可以包含相應(yīng)的控制點/客戶端208和服務(wù)器組件210 的任意組合。在此情況下,終端204可以充當(dāng)UPnP設(shè)備,其向網(wǎng)絡(luò) 206上的其他UPnP設(shè)備提供其分發(fā)服務(wù)210。這樣,終端204可以 響應(yīng)于經(jīng)由網(wǎng)絡(luò)206接收到的查詢而提供可擴展標(biāo)記語言(XML ) 設(shè)備描述212。
示例設(shè)備描述212包括描述設(shè)備本身(諸如,設(shè)備類型214)的 變量。 一般地,UPnP設(shè)備還提供一個或多個服務(wù),并且所示的設(shè)備 描述212示出了兩個示例服務(wù)程序目錄服務(wù)216和下載管理器服 務(wù)218。程序目錄服務(wù)216促進(jìn)可以經(jīng)由服務(wù)器設(shè)備214獲得的程序 的查詢和列表。程序目錄服務(wù)216還能夠使用各種標(biāo)準(zhǔn)來提供程序 的列表??梢砸罂蛻舳?08提交的一個參數(shù)包括計算平臺。
如本領(lǐng)域內(nèi)已知的,"計算平臺"有時定義為設(shè)備使用的中央 處理單元(CPU)和操作系統(tǒng)(OS)的組合。例如,Intel x86兼容 的CPU可以運行不同的0S,諸如Windows , Linux 、 OS X 、 Free BSD等。盡管本機運行在x86 CPU上的所有程序?qū)⑹褂孟嗤?指令集,但是程序需要指令和數(shù)據(jù)的特定布置,以便與特定的OS 相兼容。在某些情況下,程序甚至可以依賴于OD的特定補丁級別, 并且將無法在不兼容的補丁級別上運行。類似地,LinuxOS已經(jīng)編 譯為在多種不同的CPU上運行。然而,針對Linux x86編譯的程序 例如將必須重新編譯,方可在用于不同CPU的Linux上運行。
已經(jīng)創(chuàng)建了多種適配來簡化在不兼容平臺上使用軟件的問題。 在某些布置中,仿真程序創(chuàng)建虛擬的處理器和OS,其允許程序即使 是在針對不同OS和CPU編譯的情況下也能運行,雖然這具有顯著 的性能下降。其他適配(諸如Wine Project)允許針對特定CPU而 編譯的程序在相同CPU的不同操作系統(tǒng)上運行。這些適配對其他操作系統(tǒng)的應(yīng)用程序接口 (API)進(jìn)行仿真,但是由于程序是針對相同
的CPU類型編譯的,所以程序指令仍然可以在CPU上直接運行而無 需任何轉(zhuǎn)譯。又一種適配包括分發(fā)根本不適用特定于CPU的指令的 程序。這些適配的一個形式是標(biāo)記語言,諸如Perl、 Python、 Basic 等,其使用在ASCII文本中編寫的程序,并且在運行時將該文本聯(lián) 機轉(zhuǎn)換為機器語言。諸如JavaTM或者M(jìn)icrosoft .NET的其他適配 使用二進(jìn)制程序,其設(shè)計為在與平臺無關(guān)的運行時環(huán)境中運行。與 運行時環(huán)境兼容的程序可以編譯一次,并且在具有所安裝運行時環(huán) 境的任何平臺上運行。
將會理解,目錄服務(wù)216在處理目錄請求時可能必須將請求設(shè) 備的平臺納入考慮。即使是在程序是獨立于平臺時(例如,Java), 也可能存在需要考慮請求設(shè)備208的特定運行時環(huán)境的版本不兼容 性。在分發(fā)軟件時目錄設(shè)備216需要考慮的其他問題包括請求終 端202、 204的容量(例如,存儲器、處理器速度、圖形能力、所需 的用戶輸入設(shè)備)、許可問題、軟件類別、內(nèi)容限制(例如,家長 控制、公司IT策略)、其他軟件版本(例如,UPnP版本)、OS補 丁級別等。響應(yīng)于這些標(biāo)準(zhǔn)的各種組合,目錄服務(wù)214可以提供滿 足標(biāo)準(zhǔn)的可用程序的列表。該列表可以是"平坦的,,,或者可以按 照層級來安排,諸如查詢結(jié)果屏幕220中看到的。
一旦客戶端208已經(jīng)選擇了將要獲得的程序(例如,經(jīng)由選擇 屏幕222 ),則軟件分發(fā)設(shè)備214將促進(jìn)將數(shù)據(jù)諸如經(jīng)由下載管理器 服務(wù)218傳送到客戶端202,從而允許安裝選定的程序。下載管理器 設(shè)備218可以配置用于促進(jìn)從終端204本身或者從第三方下載配置 和/或可執(zhí)行鏡像。例如,下載管理器218可以提供認(rèn)證,其允許其 他終端202訪問Web下載站點并獲得可執(zhí)行文件。對于受限目的(例 如,僅利用終端204來執(zhí)行)或者對于終端202所有者的不受限使 用而言,這種下載的可執(zhí)行文件是有利的。
在下載的更為具體的示例中,服務(wù)終端204具有存儲在文件系 統(tǒng)中的所需安裝文件(例如,Java、 Symbian可執(zhí)行對象)。服務(wù)器210提供到安裝文件的鏈接(例如,統(tǒng)一資源標(biāo)識符或稱URI),并 且接收客戶端208可以使用UPnP內(nèi)容目錄服務(wù)DCP來下載文件。 在另一示例中,服務(wù)終端204具有存儲在文件系統(tǒng)中的輕量級運行 時(run-time )對象(Java或者web瀏覽器腳本)。服務(wù)器210提供 到運行時文件的HTTP鏈接,并且接收客戶端208可以使用UPnP 內(nèi)容目錄服務(wù)DCP來下載他們。在另一示例中,服務(wù)器210向客戶 端208提供到安裝文件的因特網(wǎng)HTTPURI,并且設(shè)備202可以使用 適當(dāng)?shù)某绦騺硐螺d這些安裝文件。
軟件分發(fā)服務(wù)器210通常至少允許諸如控制點組件208的其他 網(wǎng)絡(luò)實體查看和選擇可經(jīng)由終端204獲得的程序??刂泣c組件208 還能夠查看、查詢和使用由該軟件分發(fā)服務(wù)器或者其他軟件分發(fā)服 務(wù)器210提供的服務(wù)。響應(yīng)于嘗試使用服務(wù),控制點208 (或者客戶 端設(shè)備202的另一組件)可以自動地調(diào)用分發(fā)服務(wù)210。例如,客戶 端終端202可以由正在機場進(jìn)行長時間等待的旅行者所有。他/她拿 起移動終端202(或者任何其他適當(dāng)?shù)脑O(shè)備)并且啟動"游戲管理器,, 功能,該功能列出了經(jīng)由設(shè)備在adhoc端對端網(wǎng)絡(luò)上本地主控的組 網(wǎng)游戲。游戲管理器允許終端202的用戶例如通過用戶接口組件(例 如,游戲控制點)來選擇游戲之一。
作為該游戲選擇功能的一部分,游戲管理器還可以發(fā)現(xiàn)進(jìn)行該 游戲需要客戶端軟件的特定片段。該客戶端游戲軟件的詳情可以作 為游戲管理器的服務(wù)發(fā)現(xiàn)協(xié)議的一部分來提供(例如,通過指定可 執(zhí)行名稱)。游戲管理器可以手動地或者自動地配置用于使用軟件 分發(fā)客戶端208來搜索程序分發(fā)服務(wù)器214的實例。當(dāng)找到這種設(shè) 備214時,客戶端208可以提交針對游戲客戶端的特定查詢,并且 進(jìn)行到下載和安裝所需軟件。
將會理解,在上文描述的示例情況中,軟件可以相當(dāng)廣泛和容 易地分發(fā)。然而,軟件經(jīng)常受制于版權(quán)和許可,其對分發(fā)設(shè)置了法 律限制。在其他情況中,軟件包含數(shù)字版權(quán)管理(DRM)特征,其 在某些情況下阻止軟件分發(fā)。由此,分發(fā)設(shè)備214可能需要有所不同地執(zhí)行特定的軟件分發(fā),這取決于與軟件相關(guān)聯(lián)的許可和/或
DRM。對于某些軟件分發(fā)情況,諸如開源軟件,在開源許可下,免
費地分發(fā)程序的副本是可接受的使用。然而,軟件分發(fā)的多數(shù)所有 權(quán)模型要求至少某些最終用戶購買軟件。如將在下文討論的,分發(fā)
設(shè)備214能夠強制關(guān)于非免費軟件的分發(fā)的可接受限制。
參考上文的游戲示例,主機設(shè)備(例如,終端204)的游戲軟件 可以被許可,從而可以免費地分發(fā)程序的特定受限版本。這種情況 類似于通常用來促銷付費軟件產(chǎn)品的共享軟件分發(fā)。程序的這種免 費分發(fā)版本包含某些限制,其使得免費版本的用途少于付費版本。 無論如何,這些限制版本是有用的,因為其允許人們在進(jìn)行最終的 財務(wù)許諾以便購買之前試用該軟件。關(guān)于諸如當(dāng)前情況的網(wǎng)絡(luò)游戲, 為了促進(jìn)網(wǎng)絡(luò)游戲并且能夠最終增加付費用戶的基礎(chǔ),使用有限能 力的客戶端版本可能也是有用的。在這種情況下,軟件銷售商可能 希望允許任何人免費地連接注冊用戶并與之進(jìn)行游戲,但是無法在 不付費的情況下使用軟件。
可以這樣來分發(fā)所有權(quán)程序的受限、免費版本即準(zhǔn)備或者修 改已許可程序的可執(zhí)行文件(例如通過覆寫二進(jìn)制文件中的塊), 從而限制程序的執(zhí)行。這種限制可以僅允許使用特定的時段,或者 預(yù)定次數(shù)的游戲。另 一修改可以包括限制受限版本的用戶可以與之 進(jìn)行游戲的人。例如,客戶端終端202和主才幾終端204的唯一數(shù)據(jù) 可以合并(例如,形成哈希值),并添加到可執(zhí)行文件或者其他文 件中。在進(jìn)行網(wǎng)絡(luò)游戲之前和/或期間可以檢查該值,使得網(wǎng)絡(luò)交互 僅發(fā)生在這兩個設(shè)備之間,并且在不付費的情況下終端202將無法 連接至其他玩家(除非那些其他用戶也具有恰當(dāng)許可的版本)。可 以內(nèi)置于所分布的可執(zhí)行文件的其他限制可以包括禁用單人模式、 限制進(jìn)行到某個游戲級別、使游戲在縮減模式中操作(例如,縮減 的網(wǎng)絡(luò)帶寬、縮減的圖形顯示等)、阻止游戲或者其他永久數(shù)據(jù)的 保存、在免費產(chǎn)品中使用嵌入廣告等。將會理解,關(guān)于網(wǎng)絡(luò)游戲示 例描述的概念同樣適用于其他非游戲應(yīng)用。
21一般地,經(jīng)由分發(fā)設(shè)備214分發(fā)至客戶端終端202的軟件版本 被限制為特定使用,優(yōu)選地,如果用戶不想再次使用該程序,可以 允許客戶端終端202的用戶容易地釋放存儲器。例如,如果程序僅 在有限的時間內(nèi)是活躍的,則可以自動地將其刪除(或者移動到可 覆蓋的高速緩存),以釋放可用的存儲。軟件分發(fā)客戶端208可以 配置用于執(zhí)行這些清理動作。客戶端208還可以輔助用戶來獲得不 受限的軟件版本,諸如通過與計費實體和軟件激活實體的交互。
將版權(quán)管理實現(xiàn)到軟件分發(fā)服務(wù)中可以解決與某些類型軟件的 非法分發(fā)有關(guān)的問題。在實現(xiàn)分發(fā)服務(wù)時需要解決的另 一 問題是安 全性。例如,某些類型的軟件(經(jīng)常稱為"惡意軟件")可能不經(jīng) 意地安裝在了用戶設(shè)備上。在某些情況下,惡意軟件可能出于不受 歡迎的或者惡意而消耗資源,故意地破壞數(shù)據(jù)和/或硬件,試圖訪問 和泄漏私有數(shù)據(jù)等。為了阻止惡意或者不期望軟件的擴散,基礎(chǔ)平 臺可以實現(xiàn)安全性測量,諸如僅允許安裝經(jīng)過數(shù)字簽名的和授權(quán)的 軟件。類似的測量還可以在服務(wù)210和/或客戶端208中實現(xiàn)。例如, 任何軟件在客戶端機器202安裝其之前,必須由可信來源授權(quán)。在 其他情況中,控制點208的用戶接口可以在安裝任何軟件之前要求 用戶確i人。
設(shè)備描述212可以包括與安全性和版權(quán)管理二者相關(guān)的特定服 務(wù)。類似地,客戶端/控制點208可以包括確保任何分發(fā)服務(wù)器210 將是可信的規(guī)定。例如,與服務(wù)器210之間的事務(wù)可以包括交換可 以獨立驗證的認(rèn)證密鑰。也可以使用現(xiàn)有配置(例如,共享加密密 鑰、手動授權(quán)),盡管與來自受信認(rèn)證源的自動認(rèn)證相比,這種現(xiàn) 有配置通常較不用戶友好。
在此描述的系統(tǒng)可以使用本領(lǐng)域已知的組網(wǎng)技術(shù)的任意組合來 實現(xiàn)。特別地,UPnP框架對于經(jīng)由網(wǎng)絡(luò)實體來提供游戲活動特別有 用。現(xiàn)在參考圖3,框圖300示出了按照本發(fā)明實施方式的UPnP軟 件分發(fā)架構(gòu)的示例實現(xiàn)??驁D300包括兩個兼容的端設(shè)備302、 304, 其可以經(jīng)由UPnP網(wǎng)絡(luò)306來交互。設(shè)備302、 304通常表示分離的硬件組件,然而可以存在某些配置,其中設(shè)備302、 304是彼此以及 與網(wǎng)絡(luò)305的其他組件共享硬件的虛擬設(shè)備。
如圖所示,設(shè)備302、 304可以包含兼容的功能性組件308、 310、 312、 314、 338、 340、 342、 344,其允許每個設(shè)備302、 304促進(jìn)軟 件分發(fā)(例如,充當(dāng)服務(wù)器)以及發(fā)現(xiàn)/使用程序(例如,充當(dāng)客戶 端)。將會理解,設(shè)備302、 304不必每個都包括所有列出的功能以 形成可用的系統(tǒng)。例如,某些設(shè)備可以配置用于僅充當(dāng)客戶端,諸 如通過禁用分發(fā)服務(wù)器功能或者開始就不安裝這些功能。類似地, 功能性組件可以在多個物理設(shè)備之間分布,但是以繼承的方式操作, 就像是在一個設(shè)備上一樣。例如,端設(shè)備302可以包括充當(dāng)UPnP 控制點338的手持游戲控制器,并且該控制器經(jīng)由藍(lán)牙與充當(dāng)UPnP 客戶端240的蜂窩電話通信。
端設(shè)備304的功能性組件308、 310、 312、 314將在下文更為詳 細(xì)地描述。將會理解,設(shè)備302的類似組件338、 340、 342、 344也 可以提供相同的功能。所示的設(shè)備304包括UPnP軟件分發(fā)控制點 318、 UPnP軟件分發(fā)客戶端310、以及UPnP軟件分發(fā)服務(wù)器312。 組件308、 310、 312中的每一個配置用于經(jīng)由UPnP協(xié)議來通信,并 因此將實現(xiàn)UPnP設(shè)備架構(gòu)(UDA)。而且,與這些組件310、 312、 314相關(guān)聯(lián)的是UPnP軟件分發(fā)設(shè)備控制協(xié)議(DCP),其定義組件 310、 312、 314之間的各種交互的動作和狀態(tài)變量。
UPnP軟件分發(fā)控制點308可以提供與諸如UPnP音頻視頻(AV ) 控制點的其他UPnP控制點相類似的功能。 一般地,控制點308包括 用戶接口和應(yīng)用邏輯,其中應(yīng)用邏輯允許用戶發(fā)現(xiàn)UPnP網(wǎng)絡(luò)306 上的其他軟件分發(fā)設(shè)備的服務(wù)。UPnP軟件分發(fā)控制點308還可以提 供用于與發(fā)現(xiàn)、選擇、購買、下載、配置和運行軟件相關(guān)聯(lián)的動作 的其他控制功能??刂泣c308可以調(diào)用UPnP軟件分發(fā)DCP來執(zhí)行 這些動作,以便得到期望的響應(yīng)。在某些應(yīng)用中,控制點308可以 僅提供最少的用戶接口功能,諸如報告關(guān)鍵錯誤,或者按照安全性 策略設(shè)置的要求來要求軟件安裝的確認(rèn)。軟件分發(fā)客戶端設(shè)備310是提供UPnP接口以連接至軟件分發(fā)服 務(wù)器的UPnP設(shè)備??蛻舳嗽O(shè)備310可以響應(yīng)于控制點308、其他用 戶接口設(shè)備的操作來進(jìn)行操作,或者響應(yīng)于其他非用戶發(fā)起的事件 進(jìn)行操作。 一般地,客戶端設(shè)備310與軟件分發(fā)服務(wù)器312、 342交 互,以便至少發(fā)起程序的下載,并且還可以處理其他動作,諸如支 持這些程序運行所需的配置和激活。
UPnP軟件分發(fā)服務(wù)312充當(dāng)中央控制點,用于訪問可以經(jīng)由設(shè) 備304獲得的特定程序314。更具體地,服務(wù)器312是具有暴露可用 程序314的"軟件分發(fā)"服務(wù)的UPnP設(shè)備。服務(wù)器設(shè)備312還可以 處理動作并維護與安裝程序314相關(guān)聯(lián)的狀態(tài)變量。服務(wù)器設(shè)備312 可以使用注冊表或者某些其他機制來跟蹤和分類可通過端設(shè)備304 獲得的各種程序314。 一般地,那些程序可以包括UPnP程序317和 非UPnP程序319 二者。特別地,UPnP程序317的分發(fā)可以與UPnP 服務(wù)的發(fā)現(xiàn)集成,其中UPnP服務(wù)包括由設(shè)備304主控的UPnP服務(wù), 設(shè)備304還存儲支持其他設(shè)備使用服務(wù)的程序。
在一個配置中,軟件分發(fā)服務(wù)器312可以使用對UPnP內(nèi)容目錄 服務(wù)(CDS)的擴展來實現(xiàn)。CDS是UPnP音頻視頻(AV)服務(wù)模 板,被標(biāo)識為 "urn:schemas畫upnp-org:service:ContentDirectory:l",
其中數(shù)字"r表示最新的版本。CDs是用于訪問媒體存儲設(shè)備的服
務(wù)器側(cè)接口。 CDS提供諸如"瀏覽"和"搜索"的查找功能,其允
許設(shè)備發(fā)現(xiàn)存儲在媒體服務(wù)器上的個體數(shù)據(jù)對象并訪問該內(nèi)容。當(dāng)
前CDS接口可以擴展,以包括軟件對象存儲庫。備選地,軟件分發(fā) 服務(wù)器312可以使用在CDS之后建模的服務(wù)模板,但是包括對于軟 件分發(fā)唯一 的特征,包括解決版權(quán)管理和安全性問題的特征。
如果將軟件分發(fā)服務(wù)器312配置為CDS或者類似CDS的服務(wù), 則標(biāo)準(zhǔn)AV控制點組件可以用于(或者適于)來查看和選擇可以通 過系統(tǒng)300獲得的軟件。AV控制點與適于同系統(tǒng)300結(jié)合使用的控 制點之間的 一點不同在于標(biāo)準(zhǔn)AV控制點從媒體存儲設(shè)備向用戶 可感知的AV媒體呈現(xiàn)器設(shè)備發(fā)送數(shù)據(jù)。由系統(tǒng)300分發(fā)的軟件并不一定"呈現(xiàn),,給用戶,而是通常安裝在計算機上。然而,諸如客
戶端310、 340的組件可以適于類似于UPnP々某體呈現(xiàn)器。在這種情 況下,軟件安裝組件可以經(jīng)由網(wǎng)絡(luò)306來傳送,其方式類似于從媒 體存儲設(shè)備向呈現(xiàn)設(shè)備發(fā)送數(shù)字媒體,因此可以使軟件安裝組件與 某些或者全部現(xiàn)有UPnP AV框架相兼容。
組件308、 310、 312、 314、 338、 340、 342、 344可以進(jìn)行交互, 以用于諸如服務(wù)發(fā)現(xiàn)316、目錄編制318、查詢/搜索320以及程序的 發(fā)起322、下載324和配置326的目的。在某些情況中,已安裝程序 的運行時數(shù)據(jù)可以在組件308、 310、 312、 314、 338、 340、 342、 344 之間傳送。例如, 一旦安裝并且成功運行了程序,則其可以在運行 時信號通知328成功,使得安裝中所涉及的程序可以終止,并且將 安裝記錄為成功。這種數(shù)據(jù)也可以由帶外機制329經(jīng)由網(wǎng)絡(luò)或者經(jīng) 由設(shè)備302、 304內(nèi)的進(jìn)程間通信來傳送。這種帶外機制可以包括使 用專用組網(wǎng)、備選網(wǎng)絡(luò)接入機制和介質(zhì)、流式傳輸數(shù)據(jù)、多播數(shù)據(jù)、 向遠(yuǎn)程數(shù)據(jù)庫寫入等。
將會理解,下載功能324可以包括設(shè)備302、 304之間的直接下 載和/或使用設(shè)備302、 304作為代理的下載。然而,也可以使用帶外 上傳/下載機制330、 332,諸如用于訪問來自數(shù)據(jù)庫334的程序和/ 或向數(shù)據(jù)庫334添加程序。另一示出的帶外上傳/下載機制包括分布 式上傳/下載356、 358,其通常允許同時從多個端設(shè)備360進(jìn)行下載。 諸如BitTorrent的技術(shù)分發(fā)如下文件,該文件包含關(guān)于待共享文件的 源數(shù)據(jù)以及關(guān)于協(xié)調(diào)文件分發(fā)的服務(wù)器(或稱"追蹤器(tracker),,) 的源數(shù)據(jù),從而允許此類分布式上傳/下載。追蹤器輔助下載設(shè)備發(fā) 現(xiàn)可以下載部分所請求數(shù)據(jù)的端360。將會理解,端360可以包括 UPnP網(wǎng)絡(luò)306之內(nèi)和之外的主機(包括因特網(wǎng)主機)的任意組合。
在另一配置中,可以完全使用UPnP網(wǎng)絡(luò)協(xié)議來支持分布式上傳 /下載356、 358。在這種示例中,UPnP分布客戶端310、 340以及服 務(wù)器312、 342可以擴展為充當(dāng)BitTorrent類型的端,而不需要使用 追蹤器。這種UPnP分布將僅需要查詢本地UPnP網(wǎng)絡(luò)上的設(shè)備,以
25發(fā)現(xiàn)分布式下載設(shè)備/服務(wù),當(dāng)然,在這種情況下,可以通過使用諸
如UPnPIGD (參見圖1)的代理將軟件的可用性擴展到網(wǎng)絡(luò)之外的實體。
現(xiàn)在參考圖4,序列圖示出了按照本發(fā)明實施方式的軟件分發(fā)服 務(wù)的示例使用。在圖4所示的情況中,用戶具有蜂窩電話400和車 庫開門器401,其能夠經(jīng)由諸如UPnP的ad hoc端對端網(wǎng)絡(luò)進(jìn)行通信。 蜂窩電話包含控制點402和軟件分發(fā)客戶端設(shè)備404。假設(shè)所示情況 中的控制點402能夠處理任何類型的UPnP服務(wù)之間的通信,盡管在 某些實施方式中,所示由控制點402執(zhí)行的動作可能由不止一個物 理和/或邏輯控制點設(shè)備來處理。
開門器401包括開門器服務(wù)設(shè)備406,其允許對門硬件的控制。 開門器設(shè)備406可以包括與門控制器相關(guān)聯(lián)的典型動作,包括開門 和關(guān)門、關(guān)燈和開燈、鎖門和開鎖等。其他較不典型的操作也可以 經(jīng)由設(shè)備406來執(zhí)行,諸如設(shè)置安全斷路靈敏度、標(biāo)定傳感器等。 開門器設(shè)備406還可以能夠傳輸與硬件相關(guān)聯(lián)的數(shù)據(jù),諸如打開/關(guān) 閉狀態(tài)、周期數(shù)目等。這些數(shù)據(jù)在通常的遠(yuǎn)程控制應(yīng)用外部可能是 有用的。例如,人可以具有靠近其床邊的UPnP警報鎖,其檢測門的 狀態(tài),并且經(jīng)由時鐘顯示器來指示門是打開的,由此提示人員在其 上床之前門是打開的。
在某些情況下,可以使用設(shè)備406所公告的控制命令的通???用軟件(例如,瀏覽器)可以利用開門器設(shè)備406的能力。然而, 為了使用某些功能,控制點402可能需要特定軟件。例如,門401 可以使用動態(tài)安全碼,其防止某些人無線地截取打開/關(guān)閉命令并稍 后使用這些命令來開門。因此,開門器401 (或者網(wǎng)絡(luò)的某些其他實 體)可以包括軟件分發(fā)服務(wù)器設(shè)備408,其將軟件組件分發(fā)至授權(quán)設(shè) 備。授權(quán)設(shè)備可以使用這種組件來生成正確的碼。將會理解,分發(fā) 服務(wù)器408可以實現(xiàn)附加的安全性測量,以阻止對控制碼軟件的未 授權(quán)訪問,但是這種安全性測量在本討論的范圍以外。
軟件分發(fā)客戶端404和服務(wù)器408可以包括關(guān)于圖3中所示的
26UPnP組件描述的功能。在任何時候,軟件分發(fā)客戶端404可以從一 個或多個軟件分發(fā)服務(wù)設(shè)備408接收服務(wù)發(fā)現(xiàn)消息410。類似地,控 制點402可以從開門器服務(wù)406接收服務(wù)發(fā)現(xiàn)消息412。響應(yīng)于服務(wù) 發(fā)現(xiàn)消息412,控制點402可以自動地或者在用戶的提示下請求414 服務(wù)描述。作為響應(yīng),開門器服務(wù)器406返回服務(wù)描述416,其包括 Java "midlet"的描述,其可由設(shè)備使用以便利用開門器服務(wù)器406 的特征。
在控制點402已經(jīng)確定了開門器服務(wù)406的能力之后,其可以 向軟件分發(fā)客戶端404發(fā)送請求418,要求安裝所需組件。作為響應(yīng), 軟件分發(fā)客戶端404從軟件分發(fā)服務(wù)器獲得服務(wù)描述420、 422,并 且經(jīng)由查詢424、 426來確定服務(wù)器408具有可用組件。軟件分發(fā)客 戶端404繼而下載427、 428適當(dāng)?shù)目蓤?zhí)行文件以及配置430,配置 430可能是將要在其中安裝midlet428的特定設(shè)備400所需的。軟件 分發(fā)客戶端404解析432配置430 (或者使用它,例如使用腳本語言 來執(zhí)行它),并且安裝midlet434。 midlet無需安裝434在如圖所示 的控制點402中,而是可以經(jīng)由OS等安裝在其他程序中。
不論使用什么方法來安裝軟件434,安裝成功或者失敗都可以在 消息436中傳送給軟件分發(fā)客戶端404。此后,控制點402 (或者其 他軟件,包括下載的組件428本身)可以用來發(fā)送控制消息438。由 于安裝的組件434,所以安全碼是正確的,并且開門器服務(wù)器設(shè)備 406可以打開440門,并且將狀態(tài)442信號通知給控制點402。
圖4中所示的示例情況僅僅是可能如何使用端對端軟件分發(fā)服 務(wù)的一個說明。除了圖示之外或者作為替代,可以使用其他的消息 和序列。而且,軟件分發(fā)無需限于控制點設(shè)備。組件402、 404、 406、 408中的任何組件可能夠利用通用軟件分發(fā)服務(wù)。例如,開門器401 的制造商可以提供更新,其包括可用服務(wù)器406使用的較強加密。 IGD或者其他本地連接的設(shè)備可以充當(dāng)代理來訪問制造商的服務(wù) 器,并且通知網(wǎng)絡(luò)更新何時變?yōu)榭捎?。更新可以?jīng)由IGD應(yīng)用于月良 務(wù)器設(shè)備406,或者應(yīng)用于分發(fā)服務(wù)器設(shè)備408,其繼而自動地更新可以使用這些更新的其他組件402、 404、 406。即使是軟件分發(fā)組件 404、 408,也可以能夠通過訪問其他分發(fā)組件來自己進(jìn)4亍更新。
多種類型的裝置能夠參與在此描述的軟件分發(fā)活動。移動設(shè)備 通常在此角色中特別有用,因為其是便攜式的用戶接口設(shè)備,并且 因此可以被調(diào)用以控制多種組網(wǎng)組件。現(xiàn)在參考圖5,示出了能夠執(zhí) 行按照本發(fā)明實施方式的操作的代表性移動計算布置500。本領(lǐng)域的 技術(shù)人員將會理解,示例性移動計算布置500僅僅是可以與這種移 動設(shè)備相關(guān)聯(lián)的 一 般性功能的表示,并且陸線計算系統(tǒng)類似地包括 執(zhí)行這些操作的計算電路。
處理單元502控制布置500的基本功能。相關(guān)聯(lián)的那些功能可 以包括為存儲在程序存儲設(shè)備/存儲器504中的指令。在本發(fā)明的一 個實施方式中,與存儲設(shè)備/存儲器504相關(guān)聯(lián)的程序模塊存儲在非 易失性電可擦除可編程只讀存儲器(EEPROM)、閃速只讀存儲器 (ROM)、硬盤等之中,使得在移動終端關(guān)機時不會丟失信息。用 于執(zhí)行傳統(tǒng)移動終端操作和按照本發(fā)明的操作的相關(guān)軟件還可以經(jīng) 由數(shù)據(jù)信號傳輸至移動計算布置500,例如經(jīng)由諸如因特網(wǎng)和中間無 線網(wǎng)的一個或多個網(wǎng)絡(luò)電子地下載。
移動計算布置500可以包括耦合至處理/控制單元502的硬件和 軟件組件,以用于執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)交換。移動計算布置500可以包括 多個網(wǎng)絡(luò)接口,以用于維護有線或者無線數(shù)據(jù)連接的任何組合。特 別地,所示的移動計算布置500包括用于執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)交換的無線 數(shù)據(jù)傳輸電路。
該無線電路包括用于執(zhí)行各項功能的數(shù)字信號處理器(DSP ) 506,這些功能包括模數(shù)(A/D)轉(zhuǎn)換、數(shù)模(D/A)轉(zhuǎn)換、語音 編碼/解碼、加密/解密、誤差檢測和修正、比特流轉(zhuǎn)換、濾波等。通 常耦合至天線510的收發(fā)機508發(fā)射與無線設(shè)備關(guān)聯(lián)的傳出無線電 信號512并接收與無線設(shè)備關(guān)聯(lián)的傳入無線電信號514。這些組件可 以使布置500能夠加入一個或多個網(wǎng)絡(luò)515,包括移動服務(wù)提供商網(wǎng) 絡(luò)、本地網(wǎng)絡(luò)以及諸如因特網(wǎng)的公共網(wǎng)絡(luò)。移動計算布置500還可以包括耦合至處理/控制單元502的備選 網(wǎng)絡(luò)/數(shù)據(jù)接口 516。備選網(wǎng)絡(luò)/數(shù)據(jù)接口 516可以包括使用任何方式 的數(shù)據(jù)傳輸介質(zhì)(包括有線介質(zhì)和無線介質(zhì))在次級網(wǎng)絡(luò)上通信的 能力。備選網(wǎng)絡(luò)/數(shù)據(jù)接口 516的示例包括USB、藍(lán)牙、以太網(wǎng)、802.11 Wi-Fi、 IRDA等。在所示的示例中,備選網(wǎng)絡(luò)接口耦合至本地ad hoc 端對端網(wǎng)絡(luò)517。這些備選接口 516還能夠經(jīng)由網(wǎng)絡(luò)515來通信。
處理器502還耦合至與移動終端相關(guān)聯(lián)的用戶接口元件518。移 動終端的用戶接口 518例如可以包括諸如液晶顯示器的顯示器520 以及照相機522。接口 518中可以包括其他用戶接口機制,諸如小鍵 盤、揚聲器、麥克風(fēng)、語音命令、開關(guān)、觸摸板/屏幕、使用指點設(shè) 備的圖形用戶界面、軌跡球、操縱桿、振動生成器等。如本領(lǐng)域已 知的,這些以及其他用戶接口組件耦合至處理器502。
程序存儲設(shè)備/存儲器504通常包括操作系統(tǒng),其用于執(zhí)行與移 動計算布置500上的功能相關(guān)聯(lián)的功能和應(yīng)用。程序存儲設(shè)備504 可以包括以下一個或多個只讀存儲器(ROM)、閃速ROM、可編 程和/或可擦除ROM、隨機訪問存儲器(RAM )、訂戶接口模塊(SIM )、 無線接口模塊(WIM)、智能卡、硬盤驅(qū)動或者其他可移動存儲設(shè) 備。移動計算布置500的存儲設(shè)備/存儲器504還可以包括用于執(zhí)行 按照本發(fā)明實施方式的功能的軟件模塊。
特別地,程序存儲設(shè)備/存儲器504包括UPnP棧530,其提供用 于與端對端網(wǎng)絡(luò)517的設(shè)備進(jìn)行通行的基線UDA功能。該棧530可 以實現(xiàn)為公共的庫和/或單獨的進(jìn)程。備選地,系統(tǒng)500上的某些或 者全部UPnP應(yīng)用可以實現(xiàn)其自己的UPnP棧。這些UPnP應(yīng)用可以 包括軟件分發(fā)服務(wù)器設(shè)備532、軟件分發(fā)客戶端設(shè)備534、軟件分發(fā) 控制點536以及UPnP感知的程序538。本質(zhì)上不是UPnP感知的其 他程序540也可以能夠通過插件API 542的方式來使用UPnP功能。 一般地,開發(fā)者經(jīng)常包括插件API 542,以此作為第三方擴展基礎(chǔ)程 序540功能的方式。插件可以使用該API 542來包括UPnP功能,該 功能允許程序540與其他UPnP軟件分發(fā)模塊532、 534、 536、 538
29的功能進(jìn)行集成,以用于諸如軟件更新和添加新軟件的目的。
游戲服務(wù)器和客戶端532、 534可能需要訪問永久或者非永久數(shù) 據(jù)存儲設(shè)備,以便高速緩存和/或存儲程序、配置和狀態(tài)數(shù)據(jù)。這種 存儲需求的一個示例;波示為訂制數(shù)據(jù)庫546和軟件數(shù)據(jù)庫548。訂制 數(shù)據(jù)庫546可以包括與端設(shè)備請求的再次進(jìn)行更新有關(guān)的永久數(shù)據(jù)。 這些訂制可以響應(yīng)于服務(wù)器設(shè)備532所服務(wù)的先前安裝而自動添加 到數(shù)據(jù)庫546,或者基于來自經(jīng)由服務(wù)器設(shè)備532的描述而發(fā)現(xiàn)了該 訂制能力的設(shè)備的軟件更新服務(wù)器服務(wù)而添加到數(shù)據(jù)庫546。 一般 地,服務(wù)器設(shè)備532 (或者某些其他組件)可以定期地查詢已知的更 新源,并且向任何訂制端設(shè)備推送更新。
程序數(shù)據(jù)庫548可以包含分發(fā)軟件所需的文件,包括可執(zhí)行鏡 像、配置文件/腳本以及隨程序一起分發(fā)的其他元數(shù)據(jù)。在某些情況 下,程序數(shù)據(jù)庫548可以包含對這些數(shù)據(jù)的引用,從而無需本地存 儲數(shù)據(jù)。程序數(shù)據(jù)庫548可以使用訂制服務(wù)(例如,經(jīng)由訂制數(shù)據(jù) 庫546和服務(wù)器設(shè)備532 )來確保數(shù)據(jù)和/或?qū)?shù)據(jù)的引用保持為最 新。
在很多情況下,由UPnP分發(fā)功能所分發(fā)的設(shè)備500的軟件可以 包括本機UPnP接口,諸如由棧530表示。然而,提供或者使用端對 端網(wǎng)絡(luò)517功能的舊有程序(在此示為其他應(yīng)用550)可能仍然是有 用的,但是某些限制(例如,版權(quán)問題、無法訪問源碼)可能阻止 修改那些程序以使用UPnP,尤其是使用本地提供的(例如,經(jīng)由服 務(wù)器組件532 )或者經(jīng)由網(wǎng)絡(luò)517的其他設(shè)備提供的UPnP軟件更新 功能。仍舊可能修改此類程序550,以通過助手程序或者某些其他裝 置來使用UPnP。例如,某些應(yīng)用550能夠經(jīng)由操作系統(tǒng)的進(jìn)程間通 信(IPC)工具來接收命令和配置。這些IPC機制可以包括系統(tǒng)消息 收發(fā)、套接字、管道、中間件(例如,CORBA、 JavaRMI)、共享 文件、命令行參數(shù)等。備選地,虛擬環(huán)境(在此由封包組件554表 示)可以建立在其中運行應(yīng)用550的仿真環(huán)境。以此方式,可以截 取系統(tǒng)或者內(nèi)核調(diào)用,并且可以截取被指引向硬件(例如,網(wǎng)絡(luò)接口 516、 508 )和/或操作系統(tǒng)API的事件,并且對其進(jìn)行轉(zhuǎn)換以符合 UPnP協(xié)議。
提供圖5的移動計算布置500以作為可以在其中應(yīng)用本發(fā)明原 理的計算環(huán)境的代表性示例。根據(jù)在此提供的描述,本領(lǐng)域技術(shù)人 員將會理解,本發(fā)明同樣適用于其他目前已知以及未來的移動和陸 線計算環(huán)境。例如,桌面計算設(shè)備類似地包括處理器、存儲器、用 戶接口以及數(shù)據(jù)通信電路。因此,本發(fā)明適用于經(jīng)由網(wǎng)絡(luò)傳送數(shù)據(jù) 的任何已知計算結(jié)構(gòu)。
現(xiàn)在參考圖6,流程圖示出了用于經(jīng)由adhoc端對端網(wǎng)絡(luò)來提供 軟件分發(fā)服務(wù)的過程600。第一設(shè)備配置602用于提供端對端軟件分 發(fā)服務(wù),其促進(jìn)對多個程序的訪問。第一設(shè)備使用adhoc端對端網(wǎng) 絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來公告604端對端軟件分發(fā)服務(wù)。目標(biāo)設(shè)備選擇 606多個程序中能夠在目標(biāo)設(shè)備的處理器上操作的程序。經(jīng)由端對端 軟件分發(fā)服務(wù)來促進(jìn)608將所述程序下載到目標(biāo)設(shè)備??蛇x地,經(jīng) 由端對端軟件分發(fā)服務(wù)來促進(jìn)610軟件在目標(biāo)設(shè)備上的配置,并且 經(jīng)由端對端軟件分發(fā)服務(wù)來可選地促進(jìn)612軟件在目標(biāo)設(shè)備上的激 活。
現(xiàn)在參考圖7,流程圖示出了用于經(jīng)由adhoc端對端網(wǎng)絡(luò)來訪問 軟件分發(fā)服務(wù)的過程700。第一設(shè)備耦合702至adhoc端對端網(wǎng)絡(luò)。 設(shè)備使用ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來發(fā)現(xiàn)704通用端對端 軟件分發(fā)服務(wù)。端對端軟件分發(fā)服務(wù)由端設(shè)備提供,并且促進(jìn)對多 個程序的訪問。第 一設(shè)備從端設(shè)備的多個特定程序中選擇706程序。 將該程序下載708到第一設(shè)備。通過端設(shè)備的軟件分發(fā)服務(wù)來促進(jìn) 該下載708。該程序可以從端設(shè)備直接下載708到第一設(shè)備,或者端 設(shè)備可以充當(dāng)外部網(wǎng)絡(luò)(例如,因特網(wǎng))的下載代理。在其他情況 下,下載708可以使用帶內(nèi)或者帶外連接而源發(fā)自端對端網(wǎng)絡(luò)的另 一實體。在這種情況下,端設(shè)備可以例如通過提供URI來促進(jìn)下載 708,該URI允許第一設(shè)備獨立地訪問和下載708程序??蛇x地,經(jīng) 由端對端軟件分發(fā)服務(wù)來促進(jìn)710軟件在第一設(shè)備上的配置,并且經(jīng)由端對端軟件分發(fā)服務(wù)來可選地促進(jìn)712軟件在第一設(shè)備上的激 活。在第一設(shè)備無法訪問外部網(wǎng)絡(luò)的情況下,端設(shè)備除了代表第一 設(shè)備進(jìn)行下載之外,還可以提供對其他外部網(wǎng)絡(luò)服務(wù)的訪問。這種
服務(wù)可以包括通過外部網(wǎng)絡(luò)進(jìn)行注冊、配置710、認(rèn)證、購買以及激 活。即使是下載708位于本地網(wǎng)絡(luò)的設(shè)備之間的情況下,仍然可以 調(diào)用端設(shè)備,以代表第一設(shè)備來提供網(wǎng)絡(luò)代理服務(wù)(例如,注冊、 配置、認(rèn)證、激活)。
將會理解,可以實現(xiàn)對所示的adhoc端對端軟件分發(fā)服務(wù)的各 種備選方案。例如,當(dāng)注冊UPnP軟件提供/分發(fā)服務(wù)時,服務(wù)可以 通知其他UPnP服務(wù)可以使用應(yīng)用分發(fā)服務(wù)。例如,當(dāng)利用軟件分發(fā) 服務(wù)注冊新游戲(或者其他程序)時,通知游戲設(shè)備/服務(wù),從而使 游戲設(shè)備可以將游戲的安裝URI添加到游戲列表。該安裝URI可以 在隨后經(jīng)由游戲服務(wù)和/或與游戲服務(wù)結(jié)合工作的軟件分發(fā)服務(wù)而發(fā) 送的服務(wù)發(fā)現(xiàn)消息中使用。
為了示范和描述的目的,已經(jīng)給出了上文對本發(fā)明示例性實施 方式的描述。這并非意在窮盡或者將本發(fā)明限于已公開的精確形式。 根據(jù)上文的教導(dǎo),多種修改和變形是可能的。本發(fā)明的范圍并非意 在限于這些詳細(xì)描述,而是應(yīng)有所附纟又利要求書來確定。
權(quán)利要求
1.一種方法,包括配置第一設(shè)備以提供端對端軟件分發(fā)服務(wù),所述端對端軟件分發(fā)服務(wù)促進(jìn)對多個程序的訪問;經(jīng)由所述第一設(shè)備,使用ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議,來公告所述端對端軟件分發(fā)服務(wù);響應(yīng)于公告所述端對端軟件分發(fā)服務(wù),在所述第一設(shè)備處,從所述ad hoc端對端網(wǎng)絡(luò)的目標(biāo)設(shè)備接收針對所述端對端軟件分發(fā)服務(wù)的描述的至少一個查詢;響應(yīng)于所述至少一個查詢,經(jīng)由所述端對端網(wǎng)絡(luò)分發(fā)服務(wù)來促進(jìn)將程序下載到所述目標(biāo)設(shè)備,其中所述程序選自所述多個程序,并且能夠在所述目標(biāo)設(shè)備的處理器上進(jìn)行操作。
2. 如權(quán)利要求1的方法,其中所述程序配置用于經(jīng)由所述adhoc 端對端網(wǎng)絡(luò)來進(jìn)行操作。
3. 如權(quán)利要求2的方法,其中響應(yīng)于所述目標(biāo)設(shè)備試圖訪問所 述ad hoc端對端網(wǎng)絡(luò)的已公告服務(wù)來接收所述至少一個查詢,其中 所述至少一個查詢包括所公告服務(wù)的描述,并且其中所述程序使所 述目標(biāo)設(shè)備能夠使用所公告服務(wù)。
4. 如權(quán)利要求l的方法,其中促進(jìn)將所述程序下載到所述目標(biāo) 設(shè)備包括將所述程序從所述第一設(shè)備下載到端設(shè)備。
5. 如權(quán)利要求1的方法,其中促進(jìn)將所述程序下載到所述目標(biāo) 設(shè)備包括促進(jìn)將所述程序從第二設(shè)備下載到所述目標(biāo)設(shè)備。
6. 如權(quán)利要求l的方法,其中將所述程序下載到所述目標(biāo)設(shè)備 包括使用與所述ad hoc端對端網(wǎng)絡(luò)的協(xié)議不同的一個或多個協(xié)議 來下載所述程序。
7. 如權(quán)利要求l的方法,還包括經(jīng)由所述adhoc端對端網(wǎng)絡(luò) 來促進(jìn)在所述目標(biāo)設(shè)備上激活所述程序。
8. 如權(quán)利要求7的方法,其中激活所述程序包括驗證針對所述第 一設(shè)備和所述目標(biāo)設(shè)備中的至少 一個的所有者訪問權(quán)限。
9. 如權(quán)利要求l的方法,其中所述adhoc端對端網(wǎng)絡(luò)包括通用即插即用網(wǎng)絡(luò)。
10. 如權(quán)利要求1的方法,其中所述至少一個查詢包括用于對響 應(yīng)于所述查詢而返回的結(jié)果進(jìn)行過濾的、所述目標(biāo)設(shè)備的計算機平 臺的描述。
11. 如權(quán)利要求1的方法,其中所述至少一個查詢包括用于對響 應(yīng)于所述查詢而返回的結(jié)果進(jìn)行過濾的軟件類別。
12. —種方法,包括 將第一設(shè)備耦合至ad hoc端對端網(wǎng)絡(luò);經(jīng)由所述第 一設(shè)備,使用所述ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié) 議來發(fā)現(xiàn)端對端軟件分發(fā)服務(wù),其中所述端對端軟件分發(fā)服務(wù)由端 設(shè)備提供,并且其中所述端對端軟件分發(fā)服務(wù)促進(jìn)對多個程序的訪 問;響應(yīng)于發(fā)現(xiàn)所述端對端軟件分發(fā)服務(wù),從所述第一設(shè)備向所述 端設(shè)備發(fā)送針對所述端對端軟件分發(fā)服務(wù)的描述的至少 一 個查詢;響應(yīng)于從所述端設(shè)備接收到所述端對端軟件分發(fā)服務(wù)的所述描 述,經(jīng)由所述第一設(shè)備來從所述多個程序中選擇程序;將所述程序下載到所述第一設(shè)備,其中通過所述端設(shè)備的所述軟件分發(fā)服務(wù)來促進(jìn)所述下載。
13. 如權(quán)利要求12的方法,其中所述程序配置用于經(jīng)由所述ad hoc端對端網(wǎng)絡(luò)來進(jìn)行操作。
14. 如權(quán)利要求13的方法,還包括由所述第一設(shè)備嘗試訪問 所述adhoc端對端網(wǎng)絡(luò)的已公告服務(wù),并且其中將所述程序下載到 所述第 一設(shè)備是響應(yīng)于訪問所公告服務(wù)的嘗試而發(fā)生的,并且其中 所述程序使所述第一設(shè)備能夠使用所公告服務(wù)。
15. 如權(quán)利要求14的方法,其中所述至少一個查詢包括所公告 服務(wù)的描述。
16. 如權(quán)利要求14的方法,還包括在所述第一設(shè)備處調(diào)用所述程序,以訪問所公告服務(wù)。
17. 如權(quán)利要求12的方法,其中將所述程序下載到所述第一設(shè) 備包括從所述端設(shè)備下載所述程序。
18. 如權(quán)利要求12的方法,其中將所述程序下載到所述第一設(shè) 備包括從第三方計算布置下載所述程序。
19. 如權(quán)利要求12的方法,其中將程序下載到所述第一設(shè)備包 括使用與所述adhoc端對端網(wǎng)絡(luò)的協(xié)議不同的一個或多個協(xié)議來 下載所述程序。
20. 如權(quán)利要求12的方法,還包括經(jīng)由所述adhoc端對端網(wǎng)絡(luò) 在所述第一設(shè)備上激活所述程序。
21. 如權(quán)利要求20的方法,其中激活所述程序包括訪問所述ad hoc端對端網(wǎng)絡(luò)的激活服務(wù)。
22. 如權(quán)利要求20的方法,其中激活所述程序包括訪問所述 ad hoc端對端網(wǎng)絡(luò)的所述軟件分發(fā)服務(wù)。
23. 如權(quán)利要求20的方法,其中激活所述程序包括驗證針對 所述第 一 設(shè)備和所述端設(shè)備中的至少 一 個的所有者訪問權(quán)限。
24. 如權(quán)利要求12的方法,其中所述adhoc端對端網(wǎng)絡(luò)包括通 用即插即用網(wǎng)絡(luò)。
25. 如權(quán)利要求12的方法,其中所述至少一個查詢包括用于對 響應(yīng)于所述查詢而返回的結(jié)果進(jìn)行過濾的、所述第 一 設(shè)備的計算機 平臺的描述。
26. 如權(quán)利要求12的方法,其中所述至少一個查詢包括用于對 響應(yīng)于所述查詢而返回的結(jié)果進(jìn)行過濾的軟件類別。
27. —種設(shè)備,包括網(wǎng)絡(luò)接口,其能夠經(jīng)由adhoc端對端網(wǎng)絡(luò)進(jìn)行通信; 耦合至所述網(wǎng)絡(luò)接口的處理器;以及耦合至所述處理器的存儲器存儲設(shè)備,所述存儲器存儲設(shè)備包 括指令,所述指令使所述處理器使用所述ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來發(fā)現(xiàn)端對端軟件分發(fā)服務(wù),其中所述端對端軟件分發(fā)服務(wù)由端設(shè)備提供,并且其中所述端對端軟件分發(fā)服務(wù)促進(jìn)對多個程序的訪問;響應(yīng)于發(fā)現(xiàn)所述端對端軟件分發(fā)服務(wù),向所述端設(shè)備發(fā)送針對所述端對端軟件分發(fā)服務(wù)的描述的至少一個查詢;響應(yīng)于從所述端設(shè)備接收到所述端對端軟件分發(fā)服務(wù)的所述描述,從所述多個程序中選擇程序;以及將所述程序下載到所述設(shè)備,其中通過所述端設(shè)備的所述軟件分發(fā)服務(wù)來促進(jìn)所述下載。
28. 如權(quán)利要求27的設(shè)備,其中所述端對端軟件分發(fā)服務(wù)作為 通用即插即用設(shè)備來公告。
29. 如權(quán)利要求27的設(shè)備,其中所述指令還使所述處理器 提供本地提供的端對端軟件分發(fā)服務(wù),其促進(jìn)對第二多個程序的i方問;經(jīng)由所述服務(wù)發(fā)現(xiàn)協(xié)議,來公告所述本地提供的端對端軟件分 發(fā)服務(wù);以及經(jīng)由所述本地提供的端對端軟件分發(fā)服務(wù)來促進(jìn)將第二程序下 載到目標(biāo)設(shè)備,其中所述第二程序選自所述第二多個程序,并且能 夠在所述目標(biāo)設(shè)備的處理器上進(jìn)行操作。
30. 如權(quán)利要求29的設(shè)備,其中所述本地提供的端對端軟件分 發(fā)服務(wù)作為通用即插即用設(shè)備來公告。
31. —種計算機可讀存儲介質(zhì),其具有存儲在其上的指令,所述 指令可以由耦合至adhoc端對端網(wǎng)絡(luò)的設(shè)備來執(zhí)行,以便執(zhí)行步驟, 所述步驟包括使用所述ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議來發(fā)現(xiàn)端對端軟件 分發(fā)服務(wù),其中所述端對端軟件分發(fā)服務(wù)由端設(shè)備提供,并且其中 所述端對端軟件分發(fā)服務(wù)促進(jìn)對多個程序的訪問;響應(yīng)于發(fā)現(xiàn)所述端對端軟件分發(fā)服務(wù),向所述端設(shè)備發(fā)送針對 所述端對端軟件分發(fā)服務(wù)的描述的至少一個查詢;響應(yīng)于從所述端設(shè)備接收到所述端對端軟件分發(fā)服務(wù)的所述描述,從所述多個程序中選擇程序;以及將所述程序下載到所述設(shè)備,其中通過所述端設(shè)備的所述軟件 分發(fā)服務(wù)來促進(jìn)所述下載。
32. 如權(quán)利要求31的計算機可讀介質(zhì),其中所述步驟還包括 提供本地提供的端對端軟件分發(fā)服務(wù),其促進(jìn)對第二多個程序的i方問;經(jīng)由所述服務(wù)發(fā)現(xiàn)協(xié)議,來公告所述本地提供的端對端軟件分 發(fā)服務(wù);以及經(jīng)由所述本地提供的端對端軟件分發(fā)服務(wù)來促進(jìn)將第二程序下 載到目標(biāo)設(shè)備,其中所述第二程序選自所述第二多個程序,并且能 夠在所述目標(biāo)設(shè)備的處理器上進(jìn)行操作。
33. —種系統(tǒng),包括用于經(jīng)由第 一端設(shè)備,通過ad hoc端對端網(wǎng)絡(luò)的服務(wù)發(fā)現(xiàn)協(xié)議 來提供端對端軟件分發(fā)服務(wù)的裝置,其中通用端對端軟件分發(fā)服務(wù) 促進(jìn)對多個程序的訪問;用于經(jīng)由網(wǎng)絡(luò)的第二端設(shè)備來發(fā)現(xiàn)所述端對端軟件分發(fā)服務(wù)的 裝置;以及用于經(jīng)由所述端對端軟件分發(fā)服務(wù)來促進(jìn)將程序下載到所述第 二端設(shè)備的裝置。
34. 如權(quán)利要求33的系統(tǒng),還包括用于經(jīng)由所述adhoc端對 端分發(fā)服務(wù)來激活所述程序的裝置。
全文摘要
提供一種經(jīng)由ad hoc端對端網(wǎng)絡(luò)的軟件分發(fā)服務(wù),包括配置第一設(shè)備(106)以提供端對端軟件分發(fā)服務(wù)(130),所述服務(wù)促進(jìn)對多個程序(314、334、344、360)的訪問。經(jīng)由第一設(shè)備(106),使用ad hoc端對端網(wǎng)絡(luò)(104)的服務(wù)發(fā)現(xiàn)協(xié)議來公告所述端對端軟件分發(fā)服務(wù)(130)。響應(yīng)于公告所述端對端軟件分發(fā)服務(wù)(130),在第一設(shè)備(106)處從所述ad hoc端對端網(wǎng)絡(luò)的目標(biāo)設(shè)備(106)接收針對所述端對端軟件分發(fā)服務(wù)(130)的描述的至少一個查詢(134、320)。經(jīng)由所述端對端網(wǎng)絡(luò)分發(fā)服務(wù)(130)來促進(jìn)將程序下載(136、140)到所述目標(biāo)設(shè)備(106)。所述程序選自多個程序(314、334、344、360),并且能夠在所述目標(biāo)設(shè)備(106)的處理器上進(jìn)行操作。
文檔編號H04L29/08GK101584187SQ200780049981
公開日2009年11月18日 申請日期2007年11月29日 優(yōu)先權(quán)日2006年12月5日
發(fā)明者A·薩阿里瑪基, K·卡阿雷拉, K·科伊斯蒂南, M·埃蘭德, M·普爾克基南, V·盧伊羅 申請人:諾基亞公司