本公開(kāi)的方面涉及計(jì)算硬件和軟件技術(shù),尤其涉及更新數(shù)字內(nèi)容。
背景技術(shù):
對(duì)所有類型的數(shù)字內(nèi)容的更新經(jīng)由云以增大的頻率輸送。雖然一些軟件包會(huì)是每年更新一次,或者以甚至更低的頻率更新,但是現(xiàn)在常見(jiàn)的是軟件開(kāi)發(fā)者每個(gè)月或者甚至比每月更快地提供更新。諸如地圖數(shù)據(jù)庫(kù)和媒體庫(kù)的其它類型的數(shù)字內(nèi)容也以增大的頻率更新。
過(guò)去,對(duì)應(yīng)用的更新可以通過(guò)下載并安裝新的安裝包來(lái)實(shí)現(xiàn)。該技術(shù)的缺陷在于,當(dāng)安裝包中的新文件取代較舊版本的文件時(shí),會(huì)丟失用戶對(duì)應(yīng)用程序的定制。另一缺陷是一些安裝包的大尺寸,這會(huì)消耗相當(dāng)大量的時(shí)間和帶寬。
在許多情況下,從應(yīng)用的一個(gè)版本到另一版本的文件或二進(jìn)制文檔的差異不會(huì)有太大變化,使得完全安裝過(guò)程甚至更低效。甚至在從一個(gè)版本到下一版本確實(shí)有變化的二進(jìn)制文檔內(nèi),變化也是微小的。這些缺陷以及其它缺陷是通過(guò)補(bǔ)丁的開(kāi)發(fā)來(lái)緩解的。利用補(bǔ)丁,針對(duì)應(yīng)用包中的有限集合的文件進(jìn)行更新,從而限制需要下載多少文件。
可以利用比如二進(jìn)制差異壓縮(binary delta compression)的差分壓縮技術(shù)來(lái)減小更新包的總大小,無(wú)論它包含補(bǔ)丁文件還是完整文件。二進(jìn)制差異壓縮僅允許在更新過(guò)程期間下載舊文件與新文件之間的差別。因此,更新包可以包括使得舊版本的文件相對(duì)于新版本的文件是最新的差異文件,而不必下載文件的完整版本。
雖然補(bǔ)丁和差分壓縮技術(shù)可改善特定更新的性能,但是開(kāi)發(fā)者由于對(duì)數(shù)字內(nèi)容包創(chuàng)建更新的快速性而面臨新的情況。因?yàn)橐愿蟮念l率產(chǎn)生更新,所以可能的更新?tīng)顟B(tài)的范圍已經(jīng)擴(kuò)大。要繼續(xù)當(dāng)前的更新范式意味著越來(lái)越多的差異文件需要被維護(hù)以便于支持所有可能的更新?tīng)顟B(tài)。
技術(shù)實(shí)現(xiàn)要素:
本文提供的是增強(qiáng)更新數(shù)字內(nèi)容的過(guò)程的系統(tǒng)、方法和軟件。在至少一個(gè)實(shí)現(xiàn)方式中,更新代理從一組文件中識(shí)別出定于從文件的當(dāng)前版本更新到文件的新版本的至少一個(gè)文件作為對(duì)該組文件的更新的部分。該更新可以包括用于將文件從文件的多個(gè)先前版本更新到新版本的差異文件集合以及用于將文件更新到新版本的完整文件。
更新代理判定該差異文件集合中是否有任何差異文件能夠用于將文件從當(dāng)前版本更新到新版本。如果該差異文件集合包括利用其以將文件從當(dāng)前版本更新到新版本的至少一個(gè)差異文件,則該差異文件被下載且用于更新文件。如果該差異文件集合中的任一個(gè)均不能用于將文件從當(dāng)前版本更新到新版本,則下載利用其以將文件更新到新版本的完整文件。
提供該發(fā)明內(nèi)容以便以簡(jiǎn)化的形式來(lái)引入下面的具體實(shí)施方式中進(jìn)一步描述的概念的選擇。該發(fā)明內(nèi)容不旨在確定所要求保護(hù)的主題的關(guān)鍵特征或主要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。
附圖說(shuō)明
本公開(kāi)的多個(gè)方面可以參考附圖得以更好的理解。雖然結(jié)合這些附圖描述了若干實(shí)現(xiàn)方式,本公開(kāi)不限于在此公開(kāi)的實(shí)現(xiàn)方式。相反,意圖是涵蓋所有的可替代方案、變型例和等同方案。
圖1示出了實(shí)現(xiàn)方式中的更新體系結(jié)構(gòu)。
圖2示出了實(shí)現(xiàn)方式中的更新過(guò)程。
圖3示出了實(shí)現(xiàn)方式中的更新過(guò)程。
圖4示出了實(shí)現(xiàn)方式中的更新體系結(jié)構(gòu)。
圖5示出了實(shí)現(xiàn)方式中的操作序列。
圖6示出了實(shí)現(xiàn)方式中的更新體系結(jié)構(gòu)。
圖7示出了實(shí)現(xiàn)方式中的更新過(guò)程。
圖8示出了實(shí)現(xiàn)方式中的更新過(guò)程的結(jié)果。
圖9示出了適合于實(shí)現(xiàn)本文結(jié)合圖1-9所公開(kāi)的以及下面在技術(shù)公開(kāi)中所論述的應(yīng)用、服務(wù)、過(guò)程、體系結(jié)構(gòu)和操作方案中的任一個(gè)的計(jì)算系統(tǒng)。
具體實(shí)施方式
在本文公開(kāi)的實(shí)現(xiàn)方式使能增強(qiáng)數(shù)字內(nèi)容更新,由此可以產(chǎn)生并維護(hù)用于將文件從先前版本更新到更近期版本的有限的差異文件集合。更新代理隨后可以根據(jù)相關(guān)聯(lián)的文件的更新?tīng)顟B(tài)來(lái)選擇性地下載差異文件。當(dāng)適合的差異文件不可用時(shí),更新代理可以下載新文件的完整版本。
該實(shí)現(xiàn)方式有助于適應(yīng)產(chǎn)生對(duì)數(shù)字內(nèi)容的更新的增大的頻率以及由此引起的相應(yīng)增大的可能的更新?tīng)顟B(tài)的范圍。過(guò)去,當(dāng)以例如每年或十八個(gè)月一次的速率產(chǎn)生更新時(shí),可能存在于本地安裝中的各種更新?tīng)顟B(tài)僅變化這么多。例如,如果在三年的過(guò)程中產(chǎn)生來(lái)自軟件包的基礎(chǔ)狀態(tài)的兩個(gè)更新,則在三年末尾時(shí)僅可能有三個(gè)不同的更新?tīng)顟B(tài)。產(chǎn)生和維護(hù)適合于橋接所有更新?tīng)顟B(tài)的差異文件因此將是合理的努力。
隨著更新產(chǎn)生的頻率增大,在相同的三年跨度內(nèi),很可能有極大數(shù)量的更新?tīng)顟B(tài)。例如,如果每月更新軟件包,則在三年過(guò)程中可能有數(shù)十個(gè)不同的更新?tīng)顟B(tài)。產(chǎn)生和維護(hù)將軟件包以其全部各種更新?tīng)顟B(tài)的實(shí)例橋接到最近期版本的軟件包所需的所有的差異文件是費(fèi)力且低效的任務(wù)。
如本文所討論的,所支持的差異文件的數(shù)量會(huì)受限制于使得僅可能存在的各種更新?tīng)顟B(tài)的子集能夠利用差異文件橋接到新版本的數(shù)字內(nèi)容。該技術(shù)減少了否則在產(chǎn)生和維護(hù)更新文件中所涉及到的努力和資源的量。
可以在通過(guò)更新服務(wù)傳送給運(yùn)行于各種內(nèi)容環(huán)境中的更新代理的更新清單中列舉可用作更新的部分的差異文件。給定的更新代理可以檢查清單以識(shí)別一組文件中的哪個(gè)(哪些)文件是從文件的先前版本到新版本的更新所針對(duì)的。清單還可以列舉可供用來(lái)將文件從文件的先前版本更新到新版本的差異文件。用于更新文件到新版本的完整文件也可以包含在更新中。
更新代理可以從清單中判定出是否有差異文件可供用于適合將文件從當(dāng)前版本更新到新版本的更新中。如果有適合的差異文件可用,則更新代理可以開(kāi)始從更新服務(wù)或者任選地從某其它源下載該差異文件。如果沒(méi)有適合的差異文件可供使用,則可以下載完整的文件且用于更新文件。
作為更新目標(biāo)的給定的軟件包或其它類型的數(shù)字內(nèi)容可以包括一組文件,該組文件中的至少一些文件須經(jīng)更新。因此,更新可以包括差異文件組。差異文件的每個(gè)單獨(dú)的組可對(duì)應(yīng)于更新目標(biāo)中的文件中的單獨(dú)一個(gè)文件。在示例中,軟件包可以包括多個(gè)文件。對(duì)軟件包的更新可因此包含對(duì)應(yīng)于軟件文件中的一個(gè)軟件文件的一個(gè)差異文件集合和對(duì)應(yīng)于軟件文件中的另一軟件文件的另一個(gè)差異文件集合。
在這些方案中,更新代理可以檢查清單以判定軟件包或其它數(shù)字內(nèi)容中的哪個(gè)文件或文件的哪個(gè)子集須經(jīng)更新。更新代理從中可以對(duì)于文件子集中的每個(gè)文件判定出更新是否包括適合于將該文件從先前版本更新到新版本的差異文件。在一些方案中,清單可以描述對(duì)于更新中的差異文件,每個(gè)差異文件可應(yīng)用于文件的先前版本中的哪一個(gè)版本。
更新代理可以發(fā)起對(duì)更新服務(wù)的獲得更新清單的請(qǐng)求。該請(qǐng)求可以響應(yīng)于由更新服務(wù)提供的更新可用的通知而做出。然而,可替代的技術(shù)可用于遞送清單,諸如將清單連同更新通知一起傳送的更新服務(wù)。
數(shù)字內(nèi)容的示例包括單獨(dú)的軟件應(yīng)用、軟件包或軟件套件、視頻內(nèi)容、數(shù)字書(shū)籍和期刊、數(shù)字音樂(lè)和可以不斷更新的任何其它類型的數(shù)字內(nèi)容??梢愿碌奈募氖纠〝?shù)據(jù)庫(kù)文件、應(yīng)用文件、操作系統(tǒng)文件以及媒體文件(例如視頻、音頻或數(shù)字印刷媒體)。
在一些實(shí)現(xiàn)方式中,更新服務(wù)可以跟蹤每個(gè)均包括一組文件的軟件包的更新?tīng)顟B(tài)且基于其更新?tīng)顟B(tài)而生成用于軟件包的清單。這可以包括例如跟蹤對(duì)應(yīng)于軟件的一系列可能版本中的一個(gè)版本或另一版本的軟件包的安裝實(shí)例的份額。取決于特定版本所具有的安裝實(shí)例的份額多大,對(duì)于包中的每個(gè)文件可以產(chǎn)生會(huì)適合用于將包的那些安裝的實(shí)例從軟件包的該版本更新到新版本的差異文件。
當(dāng)判定是構(gòu)建差異文件(或文件集合)還是根本不構(gòu)建差異文件(或文件集合)時(shí),也可以考慮給定版本所占有的安裝實(shí)例的份額。隨著給定版本的份額隨時(shí)間推移而下降,其會(huì)在某點(diǎn)通過(guò)某閾值以下而使得將不產(chǎn)生差異文件。對(duì)于更新所生成的清單可以識(shí)別對(duì)于給定的更新目標(biāo)所產(chǎn)生的上述一個(gè)或多個(gè)差異文件以及給定的差異文件能夠從其中更新文件的特定版本。
現(xiàn)在轉(zhuǎn)到圖1,更新體系結(jié)構(gòu)100包括內(nèi)容環(huán)境101和更新服務(wù)111。內(nèi)容環(huán)境101包括更新代理102、文件103和文件105。文件103和105可以不斷地經(jīng)過(guò)由更新服務(wù)111提供的更新。更新120代表了一個(gè)這樣的更新并且包括差異文件121、差異文件123、差異文件125和文件127。
在操作中,開(kāi)發(fā)更新120,并且生成描述更新120的內(nèi)容的相應(yīng)的清單。清單129代表了可以關(guān)于更新120所產(chǎn)生的清單。清單129包括表明內(nèi)容環(huán)境中的什么文件可以定于更新的信息。該信息還表明更新中可用的內(nèi)容,諸如哪些差異文件在更新中以及哪些完整文件在更新中。
在清單中規(guī)定的差異文件中的每一個(gè)可用于將目標(biāo)文件從各種先前版本中的一個(gè)先前版本更新到近期版本。除了識(shí)別差異文件之外,清單129中的信息可以識(shí)別出可使用差異文件將目標(biāo)文件從哪個(gè)先前版本更新到文件的近期版本。在該操作方案中,差異文件121代表了文件的第四版本與第五版本之間的差別;差異文件123代表了文件的第三版本與第五版本之間的差別;差異文件125代表了文件的第二版本與文件的第五版本之間的差別。文件127代表了文件的完整的第五版本。
更新服務(wù)111將清單129傳送到內(nèi)容環(huán)境101以及可能傳送到可供用于更新120的其它內(nèi)容環(huán)境(未示出)。更新代理102檢查清單129以判定從更新服務(wù)111下載哪個(gè)或哪些差異文件。在一些方案中,不下載任何差異文件。相反,可以下載所更新的一個(gè)文件或多個(gè)文件的完整版本。
一旦識(shí)別出適合的(多個(gè))差異文件或(多個(gè))完整文件,則將差異文件或完整文件從更新服務(wù)111下載到內(nèi)容環(huán)境101。然后,相應(yīng)地更新目標(biāo)文件。在該方案中,差異文件123被識(shí)別且下載從而將文件103從第三版本更新到第五版本。
圖2示出了在關(guān)于圖1所論述的操作方案的上下文中更新服務(wù)111可以采用的更新過(guò)程200。作為附加說(shuō)明參考圖2所描述的步驟,更新服務(wù)111識(shí)別在更新包中包括哪個(gè)或哪些文件(步驟201)。這可以包括識(shí)別與更新相關(guān)聯(lián)的差異文件和完整文件二者。哪些差異文件包含在更新中可以基于描述軟件包的更新或安裝狀態(tài)的遙測(cè)數(shù)據(jù)來(lái)自動(dòng)地確定。在其它方案中,識(shí)別包含在更新中的差異文件可以涵蓋經(jīng)由規(guī)定要包含哪些差異文件的用戶接口來(lái)接收用戶輸入或其它指導(dǎo)。
更新服務(wù)111隨后生成清單129,該清單描述了更新的內(nèi)容(步驟203)。該清單可以是文件、消息、一系列消息或者適合于承載該信息的任何其它數(shù)據(jù)結(jié)構(gòu)。該清單由更新服務(wù)111傳送到內(nèi)容環(huán)境101以及可能傳送到其它內(nèi)容環(huán)境(步驟205)。
圖3更詳細(xì)地示出了在關(guān)于圖1所論述的操作方案的上下文中更新代理102所可能采用的更新過(guò)程300。作為附加說(shuō)明參考圖3所描述的步驟,更新代理102檢查清單129以識(shí)別內(nèi)容環(huán)境101中的哪個(gè)或哪些文件須經(jīng)更新(步驟301)。對(duì)于須經(jīng)更新的文件中的每一個(gè)文件,更新代理102判定在更新包中所包含差異文件中是否有任何差異文件適合用于將目標(biāo)文件更新到該文件的更近期版本(步驟303)。這可以通過(guò)將每個(gè)差異文件的版本信息與該主題文件的更新?tīng)顟B(tài)進(jìn)行比較來(lái)實(shí)現(xiàn)。
如果存在可用于將主題文件更新到更近期版本的差異文件,則更新代理102開(kāi)始從更新服務(wù)111(步驟305)或某其它內(nèi)容源下載差異文件。然而,如果適合的差異文件不可用,則下載文件的完整版本。
返回參考圖1,內(nèi)容環(huán)境101可以是其中托管了文件且可以運(yùn)行能夠更新文件的用戶代理的任何計(jì)算環(huán)境。內(nèi)容環(huán)境101的示例包括但不限于:本地運(yùn)行時(shí)環(huán)境、操作系統(tǒng)環(huán)境、web瀏覽器環(huán)境、虛擬機(jī)、沙盒環(huán)境、安裝環(huán)境、和虛擬化環(huán)境,以及它們的任意組合或變型例。
內(nèi)容環(huán)境101可以實(shí)現(xiàn)在單個(gè)計(jì)算設(shè)備中或者分布在多個(gè)計(jì)算設(shè)備之中。計(jì)算系統(tǒng)901代表了一個(gè)這樣的計(jì)算平臺(tái)且下文參考圖9進(jìn)行更詳細(xì)論述。然而,用于實(shí)現(xiàn)內(nèi)容環(huán)境101的適合的計(jì)算設(shè)備(多個(gè))的示例包括任何類型的個(gè)人計(jì)算機(jī),包括膝上型的、桌面式的、平板式的和混合式的計(jì)算機(jī)。其它示例包括移動(dòng)電話、智能電話、游戲設(shè)備、智能電視機(jī)和其它智能器具、可佩戴計(jì)算設(shè)備、服務(wù)器計(jì)算機(jī)、虛擬服務(wù)器、虛擬機(jī)或任何其它適合的計(jì)算設(shè)備。
更新代理102代表了能夠與更新服務(wù)111通信且實(shí)現(xiàn)更新過(guò)程300的任何軟件應(yīng)用、實(shí)用工具、模塊、組件或其集合。隨著更新代理102運(yùn)行于內(nèi)容環(huán)境101的上下文內(nèi),其可以利用存儲(chǔ)在由計(jì)算系統(tǒng)901代表的適合的計(jì)算設(shè)備上或者由其執(zhí)行的程序指令來(lái)實(shí)現(xiàn)。更新代理102可以獨(dú)立的方式執(zhí)行或者可以集成到其它應(yīng)用、實(shí)用工具、模塊或組件中。
更新服務(wù)111代表了能夠與更新代理102通信且實(shí)現(xiàn)更新過(guò)程200的任何軟件應(yīng)用或服務(wù)。更新服務(wù)111可以利用存儲(chǔ)在計(jì)算系統(tǒng)901代表的適合的一個(gè)或多個(gè)計(jì)算設(shè)備上或者由其執(zhí)行的程序指令來(lái)實(shí)現(xiàn)。更新服務(wù)111可以是獨(dú)立的服務(wù)或者可以與其它服務(wù)集成,諸如生產(chǎn)應(yīng)用服務(wù)、通信服務(wù)、游戲服務(wù)、電子商務(wù)服務(wù)、在線應(yīng)用商店、或任何其它類型的服務(wù)、服務(wù)的組合或其變型例。
文件103和文件105代表了可以被視為數(shù)字內(nèi)容且可以不斷更新的任何類型的文件。示例包括程序應(yīng)用文件,如可執(zhí)行文件、庫(kù)文件、數(shù)據(jù)庫(kù)文件和操作系統(tǒng)文件。其它示例包括媒體文件,如電影、音樂(lè)、數(shù)字文獻(xiàn)、數(shù)字期刊或任何其它類型的數(shù)字內(nèi)容文件。
可以從圖1-3的上述論述中意識(shí)到,當(dāng)實(shí)現(xiàn)如本文所論述的增強(qiáng)更新時(shí)可以獲得各種技術(shù)效果。如所提到的,否則適應(yīng)增大的更新產(chǎn)生速率將需要的差異文件的大的數(shù)量會(huì)受限制或緩解。另外,允許更新代理選擇性地下載差異文件節(jié)約了網(wǎng)絡(luò)帶寬和本地存儲(chǔ)容量。除了本文所述的那些技術(shù)效果之外替代本文所描述的那些技術(shù)效果,其它技術(shù)效果是可能的,并且可視為在本公開(kāi)的范圍內(nèi)。
圖4示出了在另一實(shí)現(xiàn)方式中的更新體系結(jié)構(gòu)400。更新體系結(jié)構(gòu)400包括應(yīng)用環(huán)境401、應(yīng)用環(huán)境411和應(yīng)用環(huán)境421。應(yīng)用環(huán)境401、411和421分別包括更新代理405、更新代理415和更新代理425,它們與更新服務(wù)431通信以接收對(duì)安裝在應(yīng)用環(huán)境中的應(yīng)用的更新。應(yīng)用包括由應(yīng)用環(huán)境401、411和421中的每一個(gè)應(yīng)用環(huán)境中的各自的文件403、文件413和文件423所表示的文件。更新440代表了可利用其來(lái)更新文件403、413和423的更新包。
更新440包括差異文件441、差異文件443和差異文件445。差異文件441、443和445各自代表了所更新的文件的先前版本與要更新為的文件的更近期版本之間的差別。在該示例中,差異文件441代表了文件的第四版本與第五版本之間的差別;差異文件443代表了文件的第三版本與第五版本之間的差別;并且差異文件445代表了文件的第二版本與第五版本之間的差別。更新440還包括文件447,其代表了文件的完整的第五版本。
圖5示出了在一個(gè)實(shí)現(xiàn)方式中代表更新服務(wù)431與應(yīng)用環(huán)境401、411、421之間的信息和數(shù)據(jù)流的操作序列500。在操作中,更新服務(wù)431生成了清單,該清單包括表明一組文件中的什么文件可定于更新的信息。該信息還可以表明在更新中哪些具體文件可用,例如哪些差異文件在更新中,以及哪些完整文件在更新中。因此,在該示例的序列中,清單可以識(shí)別作為更新目標(biāo)的文件(對(duì)應(yīng)于應(yīng)用環(huán)境401、411和421中的相應(yīng)的文件403、413和423)、差異文件441、443、445和文件447。
更新服務(wù)431將清單傳送給應(yīng)用環(huán)境401、411和421中的每一個(gè)。應(yīng)用環(huán)境401、411和421中的更新代理405、415和425分別檢查清單以判定如何繼續(xù)進(jìn)行更新,包括判定下載哪個(gè)差異文件,或者在缺失適合的差異文件的情況下判定下載哪個(gè)完整文件。
可以意識(shí)到,圖4中的文件403、413和423的版本相互不同。因此,更新代理405、415和425各自達(dá)成了完全不同的關(guān)于下載差異文件441、443和445中的哪個(gè)差異文件(如果有)的判定。更新代理425判定下載差異文件441且相應(yīng)地向更新服務(wù)431請(qǐng)求該差異文件。差異文件441由更新代理425選擇,是因?yàn)槲募?23的版本是版本四。因此,能夠利用差異文件441來(lái)將文件423更新到版本五。應(yīng)用環(huán)境411中的更新代理415決定使用差異文件443來(lái)將文件413從版本三更新到版本五并且相應(yīng)地開(kāi)始下載差異文件443。
然而,更新代理405判定在更新440中可用的全部差異文件441、443、445均不適合用于更新文件403。這種情況是因?yàn)槲募?03的版本是版本一,但是尚未產(chǎn)生任何差異文件用于將這些文件從版本一帶到版本五。因此,應(yīng)用環(huán)境401中的更新代理405開(kāi)始對(duì)文件的全版本即文件447的下載,從而將文件403更新到版本五。文件447能夠用于取代文件403。
返回參考圖4,應(yīng)用環(huán)境401、411和421可以各自代表任何可以在其中托管文件且能夠更新文件的用戶代理可以在其中運(yùn)行的計(jì)算環(huán)境。應(yīng)用環(huán)境401、411和421的示例包括但不限于程序應(yīng)用、本地運(yùn)行時(shí)環(huán)境、操作系統(tǒng)環(huán)境、web瀏覽器應(yīng)用、虛擬機(jī)、沙盒環(huán)境、安裝環(huán)境和虛擬化環(huán)境,以及它們的任意組合或變型例。應(yīng)用環(huán)境401、411和421可以各自實(shí)現(xiàn)于單個(gè)計(jì)算設(shè)備中或者分布在多個(gè)計(jì)算設(shè)備之中。計(jì)算系統(tǒng)901代表了一個(gè)這樣的計(jì)算平臺(tái)并且下面結(jié)合圖9來(lái)更詳細(xì)地論述。
更新代理405、415和425各自代表了能夠與更新服務(wù)431通信且實(shí)現(xiàn)更新過(guò)程的任何軟件應(yīng)用、實(shí)用工具、模塊、組件或其集合。更新代理405、415和425可以各自分別在上下文應(yīng)用環(huán)境401、411和421內(nèi)運(yùn)行且可以存儲(chǔ)在計(jì)算系統(tǒng)901代表的適合的計(jì)算設(shè)備上且由其執(zhí)行。更新代理405、415和425可以獨(dú)立的方式執(zhí)行或者可以集成到其它應(yīng)用、實(shí)用工具、模塊或組件中。
更新服務(wù)431代表了任何能夠與更新代理405、415和425通信且實(shí)現(xiàn)更新過(guò)程的軟件應(yīng)用或服務(wù)。更新服務(wù)431可以利用存儲(chǔ)在計(jì)算系統(tǒng)901代表的適合的一個(gè)或多個(gè)計(jì)算設(shè)備上或者由其執(zhí)行的程序指令來(lái)實(shí)現(xiàn)。更新服務(wù)431可以是獨(dú)立的服務(wù)或者可以與其它服務(wù)集成,諸如生產(chǎn)應(yīng)用服務(wù)、通信服務(wù)、游戲服務(wù)、電子商務(wù)服務(wù)、在線應(yīng)用商店、或任何其它類型的服務(wù)、服務(wù)組合或其變型例。
文件403、413和423各自代表了可以視為數(shù)字內(nèi)容且可以不斷更新的任何類型的文件。示例包括程序應(yīng)用文件,諸如可執(zhí)行文件、庫(kù)文件、數(shù)據(jù)庫(kù)文件和操作系統(tǒng)文件。其它示例包括媒體文件,諸如電影、音樂(lè)、數(shù)字文獻(xiàn)、數(shù)字期刊或任何其它類型的數(shù)字內(nèi)容文件。
從圖4-5的以上論述中可以意識(shí)到,當(dāng)實(shí)現(xiàn)如本文論述的增強(qiáng)更新時(shí),可以獲得各種技術(shù)效果。在該示例中,當(dāng)每個(gè)更新代理下載不同的單獨(dú)的差異文件時(shí),而不是每個(gè)更新代理下載全部可用的差異文件,節(jié)約了帶寬。另外,無(wú)需維護(hù)用于將文件從版本一更新到版本五的差異文件,從而節(jié)約了生產(chǎn)和維護(hù)資源。
圖6示出了其中多個(gè)文件須經(jīng)更新的實(shí)現(xiàn)方式中的更新體系結(jié)構(gòu)600。更新體系結(jié)構(gòu)600包括應(yīng)用環(huán)境601、應(yīng)用環(huán)境611、和應(yīng)用環(huán)境621。應(yīng)用環(huán)境601、611和621各自包括更新代理,更新代理與更新服務(wù)631通信以促進(jìn)對(duì)安裝在應(yīng)用環(huán)境601、611和621的每個(gè)應(yīng)用環(huán)境中的軟件包的更新。
特別地,應(yīng)用環(huán)境601包括輔助更新作為軟件包的部分的文件603和文件604的更新代理605。應(yīng)用環(huán)境611包括輔助更新也屬于軟件包的文件613和文件614的更新代理615。應(yīng)用環(huán)境621包括用于更新也作為軟件包的部分的文件623和文件626的更新代理625。因此,可以意識(shí)到,在應(yīng)用環(huán)境601、611和621中的每個(gè)應(yīng)用環(huán)境中的每組文件代表了在每個(gè)應(yīng)用環(huán)境中安裝的軟件包的實(shí)例。
軟件包的每個(gè)實(shí)例可以相對(duì)于其它實(shí)例略微不同。這會(huì)由于例如一個(gè)實(shí)例相比另一實(shí)例更新得較不頻繁而發(fā)生。作為示例,文件603代表了包中名稱為“alpha.exe”的文件的第一版本,文件604代表了包中名稱為“kilo.exe”的另一文件的第二版本。在應(yīng)用環(huán)境611中,文件613代表了alpha.exe文件的第三版本,而文件614代表了kilo.exe文件的第三版本。應(yīng)用環(huán)境621中的文件623代表了alpha.exe文件的第四版本,而文件626代表了名稱為“sierra.exe”的文件的任何版本,其在某時(shí)點(diǎn)也可以是軟件包的部分。從這些示例可以意識(shí)到,雖然每個(gè)應(yīng)用環(huán)境包括了安裝在其中的相同的軟件包,但是與包中的每個(gè)文件相關(guān)聯(lián)的更新?tīng)顟B(tài)可以在環(huán)境與環(huán)境之間不同,并且實(shí)際上甚至是在文件與文件之間不同。
更新服務(wù)631包括軟件更新640,其代表了可用來(lái)更新安裝到應(yīng)用環(huán)境601、611和621中的軟件包的實(shí)例的更新。為了示范的目的,軟件更新640包括針對(duì)兩個(gè)文件的更新包,由文件更新650和文件更新660表示。文件更新650包括用于將應(yīng)用環(huán)境601、611和621中的alpha.exe文件更新到文件的第五版本的差異文件和完整文件,由差異文件651、差異文件653、差異文件655和完整文件657來(lái)表示。文件更新660包括用于將應(yīng)用環(huán)境601、611和621中的kilo.exe文件更新到文件的第五版本的差異文件和完整文件,由差異文件661、差異文件663、差異文件665和完整文件667來(lái)表示。軟件更新640還包括描述軟件更新640的內(nèi)容的清單670。
在操作中,軟件更新640可以在構(gòu)建或開(kāi)發(fā)環(huán)境(或兩者)中產(chǎn)生且準(zhǔn)備用于在更新服務(wù)631中籌劃。一旦軟件更新640準(zhǔn)備就緒,向應(yīng)用環(huán)境601、611、621提供通知。更新代理605、615和625在該上下文中采用更新過(guò)程700,更新過(guò)程700將在圖7中進(jìn)行詳細(xì)說(shuō)明。
參考圖7,更新代理(諸如更新代理605、615和625)接收新的更新包可用的通知(步驟701)。這會(huì)在例如更新代理輪詢更新服務(wù)時(shí)或者在該通知被推送給更新代理或者以某其它方式提供時(shí)發(fā)生。更新代理作為回應(yīng)請(qǐng)求并下載更新清單,該更新清單描述哪些文件要作為更新的一部分而被更新(步驟703)。
清單還描述哪些差異文件以及哪些完整文件是可供使用的。與每個(gè)差異文件能夠更新對(duì)應(yīng)文件的哪些版本相關(guān)聯(lián)地描述差異文件。更新代理處理清單以列舉在清單中被識(shí)別為待經(jīng)更新的各個(gè)文件(步驟705)。所列舉的每個(gè)文件由更新代理分析以判定其是否是與軟件包的本地實(shí)例中的現(xiàn)有文件不同的新文件(步驟707)。如果該文件是新的,則更新代理下載全文件(步驟709)且使用它來(lái)產(chǎn)生文件的新版本(步驟711)。
然而,如果文件不是新的,則更新代理檢查清單以判定適合用于更新每個(gè)文件的差異文件是否包含在更新中(步驟713)。如果為否,則更新代理下載全文件(步驟709)且產(chǎn)生文件的新版本。如果適合的差異文件確實(shí)存在且包含在更新中,則更新代理下載差異文件(步驟715)且利用差異文件來(lái)產(chǎn)生文件的更新版本(步驟717)。
在產(chǎn)生了新文件或更新的文件之后,更新代理判定基于清單所列舉的任何其它文件是否仍待更新(步驟719)。如果為是,則更新過(guò)程700返回到步驟707。但是,如果沒(méi)有任何需要更新的剩余文件,則更新完成(步驟721)。
圖8包括表格800,表格800圖示出當(dāng)運(yùn)行于應(yīng)用環(huán)境601、611和621中的更新代理605、615和625在圖6所提供的方案的上下文中分別采用更新過(guò)程700時(shí)會(huì)出現(xiàn)的結(jié)果。表格800包含由所更新文件的名稱(alpha.exe和kilo.exe)所定義的行以及對(duì)應(yīng)于每個(gè)文件在其中更新的應(yīng)用環(huán)境的列。由行和列所定義的每個(gè)單元包括對(duì)于每個(gè)更新過(guò)程700表達(dá)特定應(yīng)用環(huán)境中的特定文件如何更新的信息。
在該示例的方案中,文件更新650將關(guān)于alpha.exe文件應(yīng)用于應(yīng)用環(huán)境601。更新代理605將確定下載完整文件以便于更新alpha.exe文件,因?yàn)椴话瑢⑽募?03從版本一更新到版本五的任何適合的差異文件。相反,更新代理605將下載差異文件665以便于將kilo.exe文件從版本二更新到版本五。
關(guān)于應(yīng)用環(huán)境611,更新代理615將確定下載差異文件653以便于將文件613從alpha.exe文件的第三版本更新到第五版本。另外,更新代理615將下載差異文件663以便于將文件614從kilo.exe文件的第三版本更新到第五版本。
關(guān)于應(yīng)用環(huán)境621,更新代理625將確定下載差異文件651以用于將文件623從alpha.exe文件的第四版本更新到第五版本。但是,關(guān)于更新kilo.exe文件的本地版本,更新代理625將遇到文件不存在于本地的情況。相應(yīng)地,更新代理625將下載完整文件667以便于獲得第五版本的kilo.exe文件的完整版本。
表格800還說(shuō)明了更新代理625將任選地移除名稱為sierra.exe的文件626。這在更新包不再包含先前已經(jīng)包含在軟件套件中的文件的一些方案中會(huì)發(fā)生。在一些方案中,更新代理可以由于在清單中不存在一文件而得出結(jié)論該文件可被移除。在其它方案中,清單可以顯式地規(guī)定要移除的文件。
返回參考圖6,應(yīng)用環(huán)境601、611和621可以各自是可以在其中托管文件且能夠更新文件的用戶代理可以在其中運(yùn)行的任何計(jì)算環(huán)境。應(yīng)用環(huán)境601、611和621的示例包括但不限于程序應(yīng)用、本地運(yùn)行時(shí)環(huán)境、操作系統(tǒng)環(huán)境、web瀏覽器應(yīng)用、虛擬機(jī)、沙盒環(huán)境、安裝環(huán)境和虛擬化環(huán)境,以及它們的任意組合或變型例。應(yīng)用環(huán)境601、611和621可以各自實(shí)現(xiàn)在單個(gè)計(jì)算設(shè)備中或者分布在多個(gè)計(jì)算設(shè)備之中。計(jì)算系統(tǒng)901代表了一個(gè)這樣的計(jì)算平臺(tái)且下文結(jié)合圖9來(lái)更詳細(xì)說(shuō)明。
更新代理605、615和625各自代表了能夠與更新服務(wù)631通信且實(shí)現(xiàn)更新過(guò)程的任何軟件應(yīng)用、實(shí)用工具、模塊、組件或其集合。更新代理605、615和625可以各自分別運(yùn)行于應(yīng)用環(huán)境601、611和621的上下文內(nèi)且可以存儲(chǔ)在計(jì)算系統(tǒng)901代表的適合的計(jì)算設(shè)備上且由該適合的計(jì)算設(shè)備執(zhí)行。更新代理605、615和625可以獨(dú)立的方式執(zhí)行或者可以集成到其它應(yīng)用、實(shí)用工具、模塊或組件中。
更新服務(wù)631代表了能夠與更新代理605、615和625通信且實(shí)現(xiàn)更新過(guò)程700的任何軟件應(yīng)用或服務(wù)。更新服務(wù)631可以利用存儲(chǔ)在計(jì)算系統(tǒng)901代表的適合的一個(gè)或多個(gè)計(jì)算設(shè)備上或者由其執(zhí)行的程序指令來(lái)實(shí)現(xiàn)。更新服務(wù)631可以是獨(dú)立的服務(wù)或者可以與其它服務(wù)集成,諸如生產(chǎn)應(yīng)用服務(wù)、通信服務(wù)、游戲服務(wù)、電子商務(wù)服務(wù)、在線應(yīng)用商店或任何其它類型的服務(wù)、服務(wù)的組合或其變型例。
文件603、604、613、614、623和624各自代表可以被視為數(shù)字內(nèi)容且可以不斷更新的任何類型的文件。示例包括程序應(yīng)用文件,諸如可執(zhí)行文件、庫(kù)文件、數(shù)據(jù)庫(kù)文件和操作系統(tǒng)文件。其它示例包括媒體文件,諸如電影、音樂(lè)、數(shù)字文獻(xiàn)和數(shù)字期刊。
從圖6-8的以上論述中可以意識(shí)到,當(dāng)實(shí)現(xiàn)如本文論述的增強(qiáng)更新時(shí),可以獲得各種技術(shù)效果。在其它可能的益處當(dāng)中,通過(guò)提供優(yōu)于完整文件的差異文件來(lái)節(jié)約帶寬。另外,支持有限的差異文件集合節(jié)約了生產(chǎn)和維護(hù)資源。
圖9圖示出代表可以在其中實(shí)現(xiàn)本文公開(kāi)的各種操作體系結(jié)構(gòu)、方案和過(guò)程的任何系統(tǒng)或系統(tǒng)集合的計(jì)算系統(tǒng)901。計(jì)算系統(tǒng)901的示例包括但不限于,智能電話、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、桌面式計(jì)算機(jī)、混合式計(jì)算機(jī)、游戲機(jī)、虛擬機(jī)、智能電視機(jī)、智能手表和其它可佩戴設(shè)備,以及它們的任意變型例或組合。其它示例包括服務(wù)器計(jì)算機(jī)、機(jī)架服務(wù)器、web服務(wù)器、云計(jì)算平臺(tái)、以及數(shù)據(jù)中心裝備,以及任何其它類型的物理或虛擬服務(wù)器機(jī)器、及其任意變型例或組合。
計(jì)算系統(tǒng)901可以實(shí)現(xiàn)為單一裝置、系統(tǒng)或設(shè)備,或者可以分布式方式實(shí)現(xiàn)為多個(gè)裝置、系統(tǒng)或設(shè)備。計(jì)算系統(tǒng)901包括但不限于,處理系統(tǒng)902、存儲(chǔ)系統(tǒng)903、軟件905、通信接口系統(tǒng)907和用戶接口系統(tǒng)909。處理系統(tǒng)902與存儲(chǔ)系統(tǒng)903、通信接口系統(tǒng)907和用戶接口系統(tǒng)909可操作地耦合。
處理系統(tǒng)902從存儲(chǔ)系統(tǒng)903裝載并執(zhí)行軟件905。軟件905至少包括更新過(guò)程906,該更新過(guò)程代表了關(guān)于上述實(shí)現(xiàn)方式所論述的更新過(guò)程200、更新過(guò)程300和更新過(guò)程700。當(dāng)通過(guò)處理系統(tǒng)902執(zhí)行來(lái)增強(qiáng)如何更新數(shù)字內(nèi)容時(shí),軟件905引導(dǎo)處理系統(tǒng)902對(duì)于至少在上述實(shí)現(xiàn)方式中論述的各個(gè)過(guò)程、操作方案和序列如本文所描述的那樣操作。計(jì)算系統(tǒng)901可以任選地包括為簡(jiǎn)要的目的而沒(méi)有論述的附加的設(shè)備、特征或功能。
仍參考圖9,處理系統(tǒng)902可以包括從存儲(chǔ)系統(tǒng)903取回并執(zhí)行軟件905的微處理器和其它電路系統(tǒng)。處理系統(tǒng)902可以實(shí)現(xiàn)在單個(gè)處理設(shè)備內(nèi),但是也可以分布于在執(zhí)行程序指令時(shí)配合的多個(gè)處理設(shè)備或子系統(tǒng)之中。處理系統(tǒng)902的示例包括通用中央處理單元、專用處理器和邏輯器件,以及任何其它類型的處理設(shè)備、組合或其變型例。
存儲(chǔ)系統(tǒng)903可以包括處理系統(tǒng)902能讀且能夠存儲(chǔ)軟件905的任何計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)系統(tǒng)903可以包括利用用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性的、可移除的和非可移除的介質(zhì)。存儲(chǔ)介質(zhì)的示例包括隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器、磁盤、光盤、閃速存儲(chǔ)器、虛擬存儲(chǔ)器和非虛擬存儲(chǔ)器、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或任何其它適合的存儲(chǔ)介質(zhì)。在任何情況下,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)都不是傳播信號(hào)。
除了計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)之外,在一些實(shí)現(xiàn)方式中,存儲(chǔ)系統(tǒng)903還可以包括計(jì)算機(jī)可讀通信介質(zhì),至少一些軟件905可以在內(nèi)部或者在外部通過(guò)該計(jì)算機(jī)可讀通信介質(zhì)傳送。存儲(chǔ)系統(tǒng)903可以實(shí)現(xiàn)為單個(gè)存儲(chǔ)設(shè)備,或者還可以實(shí)現(xiàn)在相對(duì)于彼此共同定位或分布的多個(gè)存儲(chǔ)設(shè)備或子系統(tǒng)之中。存儲(chǔ)系統(tǒng)903可以包括能夠與處理系統(tǒng)902或可能其它系統(tǒng)通信的附加的元件,諸如控制器。
軟件905可以利用程序指令來(lái)實(shí)現(xiàn),并且在其它功能當(dāng)中,當(dāng)通過(guò)處理系統(tǒng)902執(zhí)行時(shí),可以引導(dǎo)處理系統(tǒng)902如關(guān)于本文圖示的各個(gè)操作方案、序列和過(guò)程所描述的那樣操作。例如,軟件905可以包括用于實(shí)現(xiàn)更新代理或更新服務(wù)及其相應(yīng)的功能的程序指令。
特別地,程序指令可以包括配合或以其它方式交互來(lái)執(zhí)行本文所描述的各個(gè)過(guò)程和操作方案的各種組件或模塊。各個(gè)組件或模塊可以編譯或解釋的指令來(lái)具體體現(xiàn),或者以指令的某其它變型例或組合來(lái)具體體現(xiàn)。各個(gè)組件或模塊可以同步或異步的方式、串行地或者并行地、在單線程環(huán)境或多線程環(huán)境中、或者根據(jù)任何其它適合的執(zhí)行范式、變型例或其組合來(lái)執(zhí)行。除了更新過(guò)程906之外或包括更新過(guò)程906,軟件905可以包括額外的過(guò)程、程序或組件,諸如操作系統(tǒng)軟件或其它應(yīng)用軟件。軟件905還可以包括能夠由處理系統(tǒng)902執(zhí)行的固件或某其它形式的機(jī)器可讀處理指令。
一般地,當(dāng)裝載到處理系統(tǒng)902中且執(zhí)行時(shí),軟件905可以將適合的裝置、系統(tǒng)或設(shè)備(計(jì)算系統(tǒng)901代表)整體地從通用計(jì)算系統(tǒng)變換成被定制以促進(jìn)數(shù)字內(nèi)容的增強(qiáng)更新的專用計(jì)算系統(tǒng)。事實(shí)上,將軟件905編碼到存儲(chǔ)系統(tǒng)903上可以變換存儲(chǔ)系統(tǒng)903的物理結(jié)構(gòu)。物理結(jié)構(gòu)的具體的變換可以取決于該說(shuō)明書(shū)的不同實(shí)現(xiàn)方式中的各種因素。這些因素的示例可以包括但不限于用于實(shí)現(xiàn)存儲(chǔ)系統(tǒng)903的存儲(chǔ)介質(zhì)的技術(shù)以及計(jì)算機(jī)存儲(chǔ)介質(zhì)是否表征為主存儲(chǔ)或輔助存儲(chǔ),以及其它因素。
例如,如果計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)實(shí)現(xiàn)為基于半導(dǎo)體的存儲(chǔ)器,當(dāng)程序指令編碼到其中時(shí),例如通過(guò)變換晶體管、電容器或其它構(gòu)成半導(dǎo)體存儲(chǔ)器的離散電路元件的狀態(tài),軟件905可以變換半導(dǎo)體存儲(chǔ)器的物理狀態(tài)。關(guān)于磁或光介質(zhì)可以發(fā)生類似的變換。物理介質(zhì)的其它變換是可能的,而不偏離本說(shuō)明書(shū)的范圍,提供前述示例僅為了利于當(dāng)前的論述。
再次參考作為示例的圖1-3,通過(guò)計(jì)算系統(tǒng)901代表的一個(gè)或多個(gè)計(jì)算系統(tǒng)的操作,可以相對(duì)于更新體系結(jié)構(gòu)100執(zhí)行變換,尤其是針對(duì)文件103執(zhí)行變換。作為示例,文件103的更新?tīng)顟B(tài)可以是其已被更新到版本3。在更新服務(wù)111采用更新過(guò)程200且更新代理102采用更新過(guò)程300時(shí),差異文件123被下載且用于將文件103更新到版本5,從而將其變成新的更新?tīng)顟B(tài)。
可以理解的是,計(jì)算系統(tǒng)901一般旨在表示可以在其上部署和執(zhí)行軟件905從而實(shí)現(xiàn)增強(qiáng)的數(shù)字內(nèi)容更新的一個(gè)或多個(gè)計(jì)算系統(tǒng)。然而,計(jì)算系統(tǒng)901還可適合作為可以在其上籌劃軟件905以及從其中分布、傳送、下載或以其它方式提供一個(gè)或兩個(gè)軟件到又一計(jì)算系統(tǒng)以用于部署和執(zhí)行或者另外額外分布的任何計(jì)算系統(tǒng)。
通信接口系統(tǒng)907可以包括允許經(jīng)由通信網(wǎng)絡(luò)(未示出)與其它計(jì)算系統(tǒng)(未示出)通信的通信連接和設(shè)備。共同允許系統(tǒng)間通信的連接和設(shè)備的示例可以包括網(wǎng)絡(luò)接口卡、天線、功率放大器、RF電路系統(tǒng)、收發(fā)機(jī)和其它通信電路系統(tǒng)。連接和設(shè)備可以經(jīng)由通信介質(zhì)通信以與其它計(jì)算系統(tǒng)或系統(tǒng)網(wǎng)絡(luò)交換通信信息,諸如金屬、玻璃、空氣或任何其它適合的通信介質(zhì)。上述的介質(zhì)、連接和設(shè)備是公知的且無(wú)需再此冗長(zhǎng)論述。
用戶接口系統(tǒng)909是任選的并且可包括鍵盤、鼠標(biāo)、語(yǔ)音輸入設(shè)備、用于接收來(lái)自用戶的觸摸姿勢(shì)的觸摸輸入設(shè)備、用于檢測(cè)用戶的非觸摸姿勢(shì)和其它運(yùn)動(dòng)的運(yùn)動(dòng)輸入設(shè)備和其它能夠接收來(lái)自用戶的用戶輸入的類似的輸入設(shè)備和相關(guān)聯(lián)的處理元件。諸如顯示器、揚(yáng)聲器、觸覺(jué)設(shè)備和其它類型的輸出設(shè)備之類的輸出設(shè)備也可以包含在用戶接口系統(tǒng)909中。在一些情況下,輸入設(shè)備和輸出設(shè)備可以組合在單個(gè)設(shè)備中,諸如能夠顯示圖像和接收觸摸姿勢(shì)的顯示器。上述用戶輸入和輸出設(shè)備是本領(lǐng)域公知的且無(wú)需在此冗長(zhǎng)論述。
用戶接口系統(tǒng)909還可以包括能夠由處理系統(tǒng)902執(zhí)行的支持上述的各種用戶輸入和輸出設(shè)備的相關(guān)聯(lián)的用戶接口軟件。單獨(dú)地或者彼此結(jié)合以及與其它硬件和軟件元件結(jié)合地,用戶接口軟件和用戶接口設(shè)備可以支持圖形用戶接口、自然用戶接口或任何其它類型的用戶接口。
計(jì)算系統(tǒng)901與其它計(jì)算系統(tǒng)(未示出)之間的通信可以通過(guò)一個(gè)或多個(gè)通信網(wǎng)絡(luò)以及依照各種通信協(xié)議、協(xié)議的組合或其變型例而發(fā)生。示例包括內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、無(wú)線網(wǎng)、有線網(wǎng)、虛擬網(wǎng)、軟件定義網(wǎng)絡(luò)、數(shù)據(jù)中心總線、計(jì)算底板或任何其它類型的網(wǎng)絡(luò)、網(wǎng)絡(luò)的組合或其變型例。上述通信網(wǎng)和協(xié)議是公知的且無(wú)需在此冗長(zhǎng)論述。然而,可以使用的一些通信協(xié)議包括但不限于因特網(wǎng)協(xié)議(IP,IPv4、IPv6等)、傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)圖協(xié)議(UDP)以及任何其它適合的通信協(xié)議、變型例或其組合。
在其中交換數(shù)據(jù)、內(nèi)容或任何其它類型的信息的上述示例中的任一個(gè)示例中,信息的交換可以根據(jù)各種協(xié)議中的任一種而發(fā)生,包括FTP(文件傳輸協(xié)議)、HTTP(超文本傳輸協(xié)議)、REST(表征狀態(tài)傳輸)、WebSocket、DOM(文檔對(duì)象模型)、HTML(超文本標(biāo)記語(yǔ)言)、CSS(級(jí)聯(lián)式表單)、HTML5、XML(可擴(kuò)展標(biāo)記語(yǔ)言)、JavaScript、JSON(JavaScript對(duì)象符號(hào))、和AJAX(異步JavaScript和XML)以及任何其它適合的協(xié)議、變型例或其組合。
雖然圖1-9一般地描繪了相對(duì)較少的操作方案和序列,可以意識(shí)到本文公開(kāi)的概念可以大規(guī)模地且常規(guī)地應(yīng)用。例如,本文所公開(kāi)的更新服務(wù)可以部署成支持任意數(shù)量的內(nèi)容環(huán)境和應(yīng)用環(huán)境。
在圖中提供的功能框圖、操作方案和序列以及流程圖代表了用于執(zhí)行本公開(kāi)的新穎的方面的示范性的系統(tǒng)、環(huán)境和方法。雖然為了簡(jiǎn)化說(shuō)明的目的,本文所包含的方法可以為功能圖、操作方案或序列或流程圖的形式,并且可以被描述為一系列動(dòng)作,應(yīng)當(dāng)理解且意識(shí)到,所述方法不受動(dòng)作順序限制,因?yàn)橐恍﹦?dòng)作可以據(jù)此以與如圖所示和本文所描述的其它動(dòng)作不同的順序發(fā)生和/或與其同時(shí)發(fā)生。例如,本領(lǐng)域技術(shù)人員將理解和意識(shí)到,方法可以可替代地表示為一系列互相關(guān)的狀態(tài)或事件,諸如狀態(tài)圖。而且,不是在方法中所說(shuō)明的所有動(dòng)作都是新穎的實(shí)現(xiàn)方式所需要的。
本文所包含的說(shuō)明和附圖描繪了具體的實(shí)現(xiàn)方式以教導(dǎo)本領(lǐng)域技術(shù)人員如何實(shí)現(xiàn)和利用最佳的選擇。為了教導(dǎo)發(fā)明原理的目的,一些常規(guī)的方面已經(jīng)簡(jiǎn)化或省略。本領(lǐng)域技術(shù)人員將意識(shí)到來(lái)自這些實(shí)現(xiàn)方式的落入本發(fā)明范圍內(nèi)的變型例。本領(lǐng)域技術(shù)人員還將意識(shí)到,上述的特征能夠以多種方式組合而形成多個(gè)實(shí)現(xiàn)方式。結(jié)果,本發(fā)明不限于上述的具體實(shí)現(xiàn)方式,而是僅由權(quán)利要求及其等同內(nèi)容來(lái)限制。