欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于跨設(shè)備和web服務(wù)使瀏覽器緩存同步的編程模型的制作方法

文檔序號:6348587閱讀:267來源:國知局
專利名稱:用于跨設(shè)備和web服務(wù)使瀏覽器緩存同步的編程模型的制作方法
用于跨設(shè)備和web服務(wù)使瀏覽器緩存同步的編程模型
背景技術(shù)
web服務(wù)器經(jīng)常存儲一組數(shù)據(jù)對象,例如HTML頁面、媒體對象、數(shù)據(jù)倉庫(data store)和可執(zhí)行腳本,這些數(shù)據(jù)對象被提供給web瀏覽器并且從而被再現(xiàn)以呈現(xiàn)一組構(gòu)成網(wǎng)站的網(wǎng)頁。web瀏覽器典型地包括瀏覽器緩存,其中可以存儲接收的項目以便在隨后再現(xiàn)的網(wǎng)頁中重新使用,從而提高web瀏覽器的性能,節(jié)省web服務(wù)器的資源并且可選地在不能訪問web服務(wù)器時提供有限的再現(xiàn)網(wǎng)頁的能力。與計算機(jī)系統(tǒng)內(nèi)的其他類型的數(shù)據(jù)對象 (例如用戶文檔、應(yīng)用和操作系統(tǒng)二進(jìn)制文件以及應(yīng)用配置信息)形成對照的是,瀏覽器緩存中包含的數(shù)據(jù)對象典型地被認(rèn)為是臨時的和一次性的。

發(fā)明內(nèi)容
提供這個發(fā)明內(nèi)容部分以便以簡化的形式引入概念的選擇,這些概念在下面具體實施方式
中進(jìn)一步加以描述。本發(fā)明內(nèi)容部分并不預(yù)期識別要求保護(hù)的主題的關(guān)鍵因素或基本特征,也不預(yù)期用來限制要求保護(hù)的主題的范圍。web技術(shù)的發(fā)展已經(jīng)導(dǎo)致更加復(fù)雜類型的網(wǎng)站,所述網(wǎng)站可以結(jié)合在web瀏覽器內(nèi)執(zhí)行的web應(yīng)用。構(gòu)成這樣的網(wǎng)站和web應(yīng)用的數(shù)據(jù)對象經(jīng)常存儲在瀏覽器緩存中,并且可能希望的是在web服務(wù)器不可訪問時,例如在web瀏覽器未連接到網(wǎng)絡(luò)時或者在web 服務(wù)器離線時,允許這樣的網(wǎng)站的再現(xiàn)以及這樣的web應(yīng)用的執(zhí)行。這樣的數(shù)據(jù)對象也可以存儲在若干類型的瀏覽器緩存(例如存儲瀏覽器托管的應(yīng)用的應(yīng)用資源的應(yīng)用緩存以及存儲從網(wǎng)站取回的數(shù)據(jù)對象(例如HTML文檔和圖像)的內(nèi)容緩存)中。當(dāng)代用戶經(jīng)常利用一組計算機(jī)(例如便攜式計算機(jī)、工作站和手機(jī)設(shè)備),并且這些計算機(jī)可以共同地向用戶呈現(xiàn)計算環(huán)境,例如用戶的文檔、安裝的應(yīng)用、應(yīng)用和操作系統(tǒng)配置信息、用戶簡檔、不同個人(例如目錄中存儲的聯(lián)系人)的表示等等。而且,可以使這些計算機(jī)的特定方面同步以提高跨所有這樣的計算機(jī)的計算環(huán)境的一致性。然而,各計算機(jī)可以包含具有瀏覽器緩存的瀏覽器,其內(nèi)容可以不同,因為用戶與每個計算機(jī)不同地交互。 如果瀏覽器緩存的內(nèi)容包括擴(kuò)展的重要數(shù)據(jù)對象集合,例如離線可用的應(yīng)用和保存的用戶文檔,那么這樣的web緩存在這樣的計算機(jī)之中的分歧可能導(dǎo)致特定于計算機(jī)的差別,例如不一致的可用應(yīng)用集合、存儲的文檔的沖突版本以及媒體庫中的差異。為了降低這樣的不一致性和版本沖突,可以使這樣的計算機(jī)的瀏覽器緩存同步。 在共享計算環(huán)境的一組計算機(jī)之中,計算機(jī)可以被配置成針對改動監(jiān)視其瀏覽器緩存的狀態(tài),并且依照各種不同的同步策略與其他計算機(jī)的瀏覽器緩存同步。該瀏覽器緩存同步也可以包含在這樣的計算機(jī)之中的一般計算環(huán)境的同步中,從而提高同步進(jìn)程的效率并且節(jié)省計算資源。此外,可以提供編程接口(programmatic interface)以便例如通過請求不同數(shù)據(jù)對象的同步并且通過識別關(guān)于瀏覽器緩存的同步策略的信息而允許在web瀏覽器中執(zhí)行的應(yīng)用與瀏覽器緩存同步交互。通過維持用戶利用的不同計算機(jī)的瀏覽器緩存的一致性,這些技術(shù)可以促進(jìn)用戶的數(shù)據(jù)對象和計算環(huán)境的一致性。為了實現(xiàn)前面的和相關(guān)的目的,以下描述和附圖闡明了特定的說明性方面和實現(xiàn)方式。其表示了其中可以采用一個或多個方面的不同方式中的僅僅一些。當(dāng)結(jié)合附圖考慮時,本公開內(nèi)容的其他方面、優(yōu)點和新穎特征根據(jù)以下詳細(xì)描述將變得清楚明白。


圖1為示出涉及一組以具有瀏覽器緩存的瀏覽器為特征的計算機(jī)的示例性方案的部件框圖。圖2為示出涉及一組以具有可同步瀏覽器緩存的瀏覽器為特征的計算機(jī)的示例性方案的部件框圖。圖3為示出被配置成使計算機(jī)上的瀏覽器的瀏覽器緩存與遠(yuǎn)程計算機(jī)的遠(yuǎn)程倉庫同步的示例性系統(tǒng)的部件框圖。圖4為包含被配置成實施本文闡述的一個或多個規(guī)定的處理器可執(zhí)行指令的示例性計算機(jī)可讀介質(zhì)的圖示。圖5為計算環(huán)境主機(jī)與不同計算環(huán)境再現(xiàn)設(shè)備的示例性交互的圖示。圖6示出了其中可以實現(xiàn)本文闡述的一個或多個規(guī)定的示例性計算環(huán)境。
具體實施例方式現(xiàn)在參照附圖描述要求保護(hù)的主題,在所有附圖中,相似的附圖標(biāo)記用來表示相似的元件。在以下描述中,出于解釋的目的,闡述了許多特定的細(xì)節(jié),以便提供對于要求保護(hù)的主題的透徹理解。然而,可能明顯的是,可以在沒有這些特定細(xì)節(jié)的情況下實施要求保護(hù)的主題。在其他情況下,結(jié)構(gòu)以框圖形式示出以便有利于描述要求保護(hù)的主題。在計算領(lǐng)域中,web服務(wù)器可以向不同的訪問者提供網(wǎng)頁的內(nèi)容。在較早幾代網(wǎng)站中,這樣的內(nèi)容典型地僅僅涉及簡單類型的數(shù)據(jù)對象,例如HTML文檔、結(jié)合到這樣的HTML 文檔中的圖形以及客戶端JavMcript腳本。這些數(shù)據(jù)對象被輸送到web瀏覽器,該web瀏覽器代表用戶再現(xiàn)構(gòu)成網(wǎng)站的網(wǎng)頁。在web瀏覽器的早期發(fā)展中,開發(fā)了瀏覽器緩存,其中在接收到一些或所有這樣的數(shù)據(jù)對象時可以存儲這些數(shù)據(jù)對象以便供以后重新使用,從而通過避免數(shù)據(jù)對象的冗余下載提高了 web瀏覽器的性能并且節(jié)省了服務(wù)器上的計算資源的消耗。如果服務(wù)器不可訪問,例如如果服務(wù)器離線或者如果計算機(jī)未連接到網(wǎng)絡(luò),那么瀏覽器緩存中存儲的數(shù)據(jù)對象也可以用來再現(xiàn)內(nèi)容的表示。盡管對這樣的數(shù)據(jù)對象的緩存可以通過降低冗余網(wǎng)絡(luò)傳輸而提高了 web瀏覽器的性能,但是這些數(shù)據(jù)對象被認(rèn)為是臨時的和一次性的。許多瀏覽器包含作為臨時空間節(jié)省機(jī)制的刪除瀏覽器緩存的內(nèi)容的選項,因為這些項目經(jīng)常可能在用戶下次訪問網(wǎng)站期間再次獲得。當(dāng)代的網(wǎng)站經(jīng)常涉及比前幾代web發(fā)展中更高級類型的內(nèi)容。特別地,網(wǎng)站可能結(jié)合一個或多個應(yīng)用,其包含可執(zhí)行二進(jìn)制文件、數(shù)據(jù)源和用戶數(shù)據(jù)對象,例如用戶生成的文檔。這些應(yīng)用也可以涉及多樣的數(shù)據(jù)對象集合,這些對象可以由web瀏覽器在呈現(xiàn)該應(yīng)用時使用并且可以存儲在瀏覽器緩存中。而且,瀏覽器緩存可以存儲可以用來在網(wǎng)站不可訪問時(例如當(dāng)計算機(jī)未連接到網(wǎng)絡(luò)時或者當(dāng)網(wǎng)站離線時)提供對于網(wǎng)站特定方面的訪問的數(shù)據(jù)對象。鑒于這些擴(kuò)展的能力,瀏覽器緩存中存儲的數(shù)據(jù)對象包括用戶計算環(huán)境的重要部分。當(dāng)代的瀏覽器也可以提供不同類型的多個緩存;例如,包含可以在web瀏覽器中執(zhí)行的應(yīng)用的應(yīng)用資源的數(shù)據(jù)對象可以存儲在瀏覽器應(yīng)用緩存中,而從訪問的網(wǎng)站取回的諸如HTML文檔和嵌入其中的圖像之類的數(shù)據(jù)對象可以存儲在瀏覽器內(nèi)容緩存中。這兩種類型的緩存可以以類似的方式提升web瀏覽器的性能,但是在特定緩存中存儲資源可以提供附加的優(yōu)點(例如,用戶可以能夠請求在保留應(yīng)用緩存的內(nèi)容的同時清空內(nèi)容緩存)。現(xiàn)代計算環(huán)境中的另一個趨勢涉及用戶可以利用的增長的計算機(jī)范圍。例如,用戶經(jīng)??梢岳脗€人工作站,筆記本、手掌或者口袋形狀因素的便攜式計算機(jī),手機(jī),媒體播放器,照相機(jī)和游戲控制臺。盡管這些計算機(jī)可能具有專門用途和方案,但是用戶可以將所有這些計算機(jī)看作一起構(gòu)成計算環(huán)境。而且,計算環(huán)境可以包含大而多樣的數(shù)據(jù)對象(例如媒體對象、文檔、應(yīng)用和操作系統(tǒng)首選項(operating system preferences))集合,并且這些數(shù)據(jù)對象可以跨所有這樣的計算機(jī)而被共享。例如,可以自動地同步這些數(shù)據(jù)對象以便提供更一致的用戶體驗,使得一個計算機(jī)上的計算環(huán)境的變化(例如新媒體對象或應(yīng)用的添加或者文檔的改動)可以自動地在整個計算環(huán)境中傳播。圖1示出了一個示例性方案(Scenario)IO,其中用戶12可以操作一組共享存儲了數(shù)據(jù)對象集合(例如文檔32集合)的計算機(jī),包括工作站14、筆記本計算機(jī)觀和手機(jī)設(shè)備 30。每個計算機(jī)也配備有可以用來再現(xiàn)應(yīng)用22的瀏覽器16,該應(yīng)用包含可以輸送到各計算機(jī)且存儲在與瀏覽器16關(guān)聯(lián)的瀏覽器緩存20中的數(shù)據(jù)對象M集合。數(shù)據(jù)對象M可以包括例如包含應(yīng)用22的邏輯和用戶界面的應(yīng)用二進(jìn)制文件、存儲用戶12選擇的各種不同的設(shè)置和首選項的應(yīng)用配置以及利用應(yīng)用22創(chuàng)建的各種不同的文檔,其可以在瀏覽器16中作為用戶文檔26呈現(xiàn)給用戶12。附加的數(shù)據(jù)對象可以存儲在計算環(huán)境18中,但是存儲在瀏覽器緩存20之外,例如文檔32集合。而且,這些計算機(jī)的計算環(huán)境18可以共享一些或所有數(shù)據(jù)對象;例如,可以在這些計算機(jī)之中共享作為數(shù)據(jù)對象存儲在計算環(huán)境18中的文檔32以便可在跨其共享計算環(huán)境18的所有計算機(jī)上訪問。然而,如果這些不同計算機(jī)中的每一個包含具有瀏覽器緩存的瀏覽器,并且如果這樣的瀏覽器緩存結(jié)合了構(gòu)成用戶計算環(huán)境的重要部分的數(shù)據(jù)對象,那么可能出現(xiàn)問題。 因為前幾代瀏覽器中的瀏覽器緩存僅僅存儲臨時的和一次性的數(shù)據(jù)對象,所以即使計算環(huán)境中的數(shù)據(jù)對象同步,計算機(jī)的瀏覽器緩存也可能不包含在該同步中。因此,構(gòu)成用戶計算環(huán)境的不同計算機(jī)的瀏覽器緩存可以有差異,導(dǎo)致不同計算機(jī)上的不同計算環(huán)境(例如瀏覽器緩存中存儲的文檔的不同版本,或者不同計算機(jī)上可用的瀏覽器存儲的應(yīng)用的不同集合)。如圖1的示例性方案10中進(jìn)一步所示,即使計算環(huán)境18中的文檔32和其他數(shù)據(jù)對象在計算機(jī)之中自動同步,各瀏覽器緩存20的內(nèi)容也可能失去同步。作為第一個實例,包括第一文檔(“文檔1”)的數(shù)據(jù)對象M可能以不同版本存在于每個計算機(jī)中,這可能在文檔在不同的設(shè)備上不同的時間更新但不同步的情況下出現(xiàn)。作為第二個實例,數(shù)據(jù)對象M可能存在于一個瀏覽器緩存20中,但不存在于另一個瀏覽器緩存20中;例如,稱為“文檔3” 的數(shù)據(jù)對象M包含在工作站14的瀏覽器緩存20中,但是不包含在筆記本計算機(jī)觀的瀏覽器緩存20中。作為第三個實例,應(yīng)用22可以存儲于一些計算機(jī)中以供離線訪問,但不存儲于其他計算機(jī)中;例如,在該示例性方案10中,“應(yīng)用”應(yīng)用20存儲于工作站14和筆記本計算機(jī)觀上以供離線訪問,但不存儲在手機(jī)設(shè)備30上。盡管這些差異中的一些可能在用戶12選擇(例如來自用戶12的從手機(jī)設(shè)備30中排除應(yīng)用22的指令)時或者基于邏輯原理(例如由于存儲空間、性能或硬件限制的原因而無能力利用手機(jī)設(shè)備30執(zhí)行應(yīng)用22)而出現(xiàn),但是在其他情況下,這些差異可能是不希望的且可避免的,但是仍然可能由于使構(gòu)成用戶12的計算環(huán)境的計算機(jī)的瀏覽器緩存20同步的機(jī)制不存在而出現(xiàn)。圖2示出了以該技術(shù)的實施例為特征的示例性方案40。在圖2的示例性方案40 中,工作站14、筆記本計算機(jī)觀和手機(jī)設(shè)備30可以再次分別包括與被配置成存儲例如可能屬于應(yīng)用22的數(shù)據(jù)對象M的瀏覽器緩存20耦合的瀏覽器16。這些計算機(jī)也可以共同地構(gòu)成跨所有這樣的計算機(jī)共享的包含數(shù)據(jù)對象(例如文檔32)集合的計算環(huán)境18,這些數(shù)據(jù)對象在這樣的計算機(jī)之中同步以便向用戶呈現(xiàn)更一致的計算環(huán)境。然而,在該示例性方案40中,所述計算機(jī)中的一個或多個也可以包含示例性系統(tǒng)42,該示例性系統(tǒng)被配置成使各計算機(jī)的瀏覽器16的瀏覽器緩存20與遠(yuǎn)程計算機(jī)的遠(yuǎn)程倉庫同步,例如與另一個計算機(jī)的瀏覽器16的瀏覽器緩存20同步。該示例性系統(tǒng)42可以包括瀏覽器緩存監(jiān)視部件44, 該部件可以監(jiān)視瀏覽器緩存20,其被配置成檢測向瀏覽器緩存20寫入數(shù)據(jù)對象M,例如創(chuàng)建、編輯或刪除緩存的數(shù)據(jù)對象對。該示例性系統(tǒng)42也可以包括瀏覽器緩存同步部件46, 該部件可以被配置成在瀏覽器緩存監(jiān)視部件44檢測到所述寫入時,使瀏覽器緩存20與遠(yuǎn)程倉庫(例如另一個計算機(jī)的瀏覽器緩存20)同步。作為第一個實例,手機(jī)設(shè)備30中實現(xiàn)的瀏覽器緩存監(jiān)視部件44可以檢測向瀏覽器緩存20寫入“文檔1”數(shù)據(jù)對象24的最近版本,并且可以將數(shù)據(jù)對象M輸送給筆記本計算機(jī)觀的瀏覽器緩存20 (例如或者通過與瀏覽器緩存20直接交互、通過向筆記本計算機(jī)觀的瀏覽器緩存同步部件46提供數(shù)據(jù)對象M 以便寫入到其瀏覽器緩存20等等)。筆記本計算機(jī)28的瀏覽器緩存監(jiān)視部件44又可以檢測“文檔1”數(shù)據(jù)對象M的寫入(代替數(shù)據(jù)對象M的早期1. 1版本),并且瀏覽器緩存同步部件46可以將更新的數(shù)據(jù)對象M輸送給工作站14的瀏覽器緩存20。作為圖2中所示的第二個實例,瀏覽器緩存監(jiān)視部件44可以檢測“文檔3”數(shù)據(jù)對象M的寫入及其不存在于筆記本計算機(jī)觀的瀏覽器緩存20中,并且依據(jù)該檢測,工作站 14的瀏覽器緩存同步部件46可以將“文檔3”數(shù)據(jù)對象M輸送給筆記本計算機(jī)觀的瀏覽器緩存20。作為第三個實例,筆記本計算機(jī)觀的瀏覽器緩存監(jiān)視部件20可以檢測包括應(yīng)用22的應(yīng)用資源的數(shù)據(jù)對象M的存儲,并且筆記本計算機(jī)觀的瀏覽器緩存同步部件46 可以在檢測到這樣的數(shù)據(jù)對象M不存在于手機(jī)設(shè)備30的瀏覽器緩存20中時,將這些數(shù)據(jù)對象M發(fā)送給手機(jī)設(shè)備30。通過這種方式,可以將不同計算機(jī)的瀏覽器緩存20帶入同步, 從而向用戶呈現(xiàn)一致的計算環(huán)境(包括“文檔1”數(shù)據(jù)對象M的當(dāng)前版本、“文檔3”數(shù)據(jù)對象M的存在以及應(yīng)用22在所有計算機(jī)上的可用性)。更一般地,且考慮到這些方案,圖3呈現(xiàn)了這里討論的技術(shù)的示例性實施例42,作為被配置成使計算機(jī)52上的瀏覽器16的瀏覽器緩存20與遠(yuǎn)程計算機(jī)M的遠(yuǎn)程倉庫56 同步的示例性系統(tǒng)42。該示例性系統(tǒng)42可以包括瀏覽器緩存監(jiān)視部件44,該部件可以被配置成檢測將至少一個數(shù)據(jù)對象M寫入瀏覽器緩存20中;以及瀏覽器緩存同步部件46, 該部件可以被配置成在瀏覽器緩存監(jiān)視部件44檢測到所述寫入時,使瀏覽器緩存20與遠(yuǎn)程倉庫56同步。示例性系統(tǒng)58可以包含例如指令集合,該指令集合存儲在計算機(jī)52的存儲器58中并且可以在處理器60上執(zhí)行以便支持瀏覽器緩存20以及計算機(jī)52的計算環(huán)境與一組特定用戶利用的其他計算機(jī)(例如遠(yuǎn)程計算機(jī)的同步。這些技術(shù)的另一個實施例涉及計算機(jī)可讀介質(zhì),該介質(zhì)包含被配置成應(yīng)用這里給出的技術(shù)的處理器可執(zhí)行指令。圖5中示出了可以以這些方式設(shè)計的一種示例性計算機(jī)可讀介質(zhì),其中實現(xiàn)方式70包括計算機(jī)可讀介質(zhì)72(例如⑶-R、DVD-R或者硬盤驅(qū)動器盤片), 在該介質(zhì)上編碼了計算機(jī)可讀數(shù)據(jù)74。該計算機(jī)可讀數(shù)據(jù)74又包含被配置成依照這里闡述的原理操作的計算機(jī)指令76集合。在一個這樣的實施例中,處理器可執(zhí)行指令76可以被配置成實現(xiàn)這樣的系統(tǒng),該系統(tǒng)被配置成使計算機(jī)上的瀏覽器的瀏覽器緩存與遠(yuǎn)程計算機(jī)的遠(yuǎn)程倉庫同步,例如圖3的示例性系統(tǒng)42。本領(lǐng)域普通技術(shù)人員可以設(shè)計出被配置成依照這里給出的技術(shù)操作的許多這樣的計算機(jī)可讀介質(zhì)。這里討論的技術(shù)可以被設(shè)計成具有許多方面的變型,并且一些變型可能相對于這些和其他技術(shù)的其他變型呈現(xiàn)附加的優(yōu)點和/或減少缺點。而且,一些變型可以組合地實現(xiàn),并且一些組合可能通過協(xié)同合作而表現(xiàn)出附加的優(yōu)點和/或減少的缺點。這些變型可以結(jié)合到不同的實施例(例如圖3的示例性系統(tǒng)42)中以便賦予這樣的實施例單獨(dú)的和/ 或協(xié)同的優(yōu)點??梢栽谶@些技術(shù)的實施例之中變化的第一方面涉及可以在瀏覽器緩存20與遠(yuǎn)程倉庫56之間執(zhí)行的同步類型。使數(shù)據(jù)對象同步的進(jìn)程可以具有許多變量,這些變量可以不同地調(diào)節(jié)以適合不同的方案。作為第一個實例,同步可以由許多事件觸發(fā)。在一個這樣的實施例中,同步可以在瀏覽器緩存監(jiān)視部件44檢測到將數(shù)據(jù)對象M寫入到瀏覽器緩存20 之后即時地觸發(fā)。盡管即時同步可以提供瀏覽器緩存20與遠(yuǎn)程倉庫56之間的高程度的同步,但是該觸發(fā)可能例如因每次寫入時建立計算機(jī)52與遠(yuǎn)程計算機(jī)M之間的連接和/或因在短時間幀內(nèi)為在短時間幀內(nèi)更新若干次的數(shù)據(jù)對象M建立一系列連接和數(shù)據(jù)傳輸而為低效的。在另一個這樣的實施例中,可以在瀏覽器監(jiān)視部件44檢測到寫入時,但是在滿足特定閾值之后,例如在定義的閾值時段過去而沒有進(jìn)一步寫入到瀏覽器緩存20之后和/ 或在定義的閾值量的數(shù)據(jù)寫入到瀏覽器緩存20之后,觸發(fā)同步??商鎿Q地或者此外,可以由遠(yuǎn)程計算機(jī)M觸發(fā)同步;例如,遠(yuǎn)程計算機(jī)M可以發(fā)送使瀏覽器緩存20與遠(yuǎn)程倉庫56 同步的通知給計算機(jī)52,并且瀏覽器緩存同步部件46可以被配置成在接收到來自遠(yuǎn)程計算機(jī)M的通知時執(zhí)行該同步。這種類型的配置在具有對等關(guān)系的計算機(jī),例如其中可以改動任一個計算機(jī)52的瀏覽器緩存20的兩個計算機(jī)之間可能是有利的。作為另一個實例, 可以周期性地,例如在每周的基礎(chǔ)上在預(yù)定的時間,或者在自最近的同步以來過去特定時間量之后觸發(fā)同步。作為又一個可替換方案,可以基于其他因素例如在檢測到處理器60空閑閾值時間段時或者在檢測到網(wǎng)絡(luò)帶寬的可用性時觸發(fā)同步。作為這個第一方面的第二變型,同步可以以許多方式出現(xiàn)。作為第一個實例,計算機(jī)20可以簡單地向遠(yuǎn)程計算機(jī)M輸送在計算機(jī)20上變化的任何數(shù)據(jù)對象M而不檢查遠(yuǎn)程倉庫56的內(nèi)容。該配置可能例如在遠(yuǎn)程計算機(jī)M包括僅接收來自計算機(jī)52的更新的檔案服務(wù)器的情況下是合適的。作為第二個實例,瀏覽器緩存同步部件46可以查詢遠(yuǎn)程計算機(jī)M的遠(yuǎn)程倉庫56的內(nèi)容,并且可以比較各數(shù)據(jù)對象M以確定遠(yuǎn)程倉庫56中丟失或過時的且應(yīng)當(dāng)更新的數(shù)據(jù)對象對??商鎿Q地,瀏覽器緩存同步部件46可以將瀏覽器緩存20 的內(nèi)容列表輸送給遠(yuǎn)程計算機(jī)M以便與遠(yuǎn)程倉庫56的內(nèi)容進(jìn)行比較,并且可以從遠(yuǎn)程計算機(jī)M接收要執(zhí)行的操作列表以便使瀏覽器緩存20和遠(yuǎn)程倉庫56同步。在任一實施例中,該比較可以考慮許多因素,例如數(shù)據(jù)對象24的修改日期、數(shù)據(jù)對象M的大小或類型、歸因于不同數(shù)據(jù)對象M的版本標(biāo)識符和/或代表數(shù)據(jù)對象M的內(nèi)容的哈希碼(hash code)。 瀏覽器緩存同步部件46于是可以將要輸送的數(shù)據(jù)對象M發(fā)送給遠(yuǎn)程計算機(jī)M以便使瀏覽器緩存20和遠(yuǎn)程倉庫56同步??商鎿Q地或者此外,瀏覽器緩存同步部件46也可以請求遠(yuǎn)程計算機(jī)M上新存儲的或較近更新的數(shù)據(jù)對象對,并且可以在瀏覽器緩存20中接收到這樣的數(shù)據(jù)對象M時存儲這些數(shù)據(jù)對象??商鎿Q地或者此外,如果發(fā)現(xiàn)數(shù)據(jù)對象M在瀏覽器緩存M和遠(yuǎn)程倉庫56中均改變,那么瀏覽器緩存同步部件46和/或遠(yuǎn)程計算機(jī)M 可以確定是否將數(shù)據(jù)對象M的表示之一選作權(quán)威性的并且可以代替非權(quán)威性的表示??商鎿Q地,可能的是合并數(shù)據(jù)對象M的表示以產(chǎn)生包含所有這樣的改變的混合數(shù)據(jù)對象24, 并且利用混合數(shù)據(jù)對象M代替所述兩種情況。說明一些可變同步復(fù)雜性的該第二變型的一個特征涉及在遠(yuǎn)程倉庫56中發(fā)現(xiàn)瀏覽器緩存20中不存在的數(shù)據(jù)對象。這樣的數(shù)據(jù)對象M在自從上次同步以來新存儲在遠(yuǎn)程倉庫56中的情況下可能存在,或者在這樣的數(shù)據(jù)對象M從瀏覽器緩存20中移除的情況下可能存在。在一個這樣的實施例中,如果瀏覽器緩存同步部件46在遠(yuǎn)程倉庫56中檢測到瀏覽器緩存20中不存在的數(shù)據(jù)對象對,那么它可以請求遠(yuǎn)程計算機(jī)M從遠(yuǎn)程倉庫56中移除數(shù)據(jù)對象M (從而假定從瀏覽器緩存20中移除)。相反地,瀏覽器緩存同步部件46可以被配置成從遠(yuǎn)程倉庫56接收從瀏覽器緩存20移除已經(jīng)從遠(yuǎn)程倉庫56移除的數(shù)據(jù)對象M 的請求,并且可以相應(yīng)地動作以維持同步??商鎿Q地或者此外,瀏覽器緩存監(jiān)視部件44可以盡力檢測瀏覽器緩存20中至少一個移除的數(shù)據(jù)對象M的移除,并且瀏覽器緩存同步部件46于是可以請求遠(yuǎn)程計算機(jī)M從遠(yuǎn)程倉庫56中移除數(shù)據(jù)對象M (從而假定新添加到遠(yuǎn)程倉庫56)。在又一個實施例中,瀏覽器緩存監(jiān)視部件被配置成檢測從瀏覽器緩存20中移除至少一個移除的數(shù)據(jù)對象24,并且可以請求從遠(yuǎn)程倉庫56中移除這樣的移除的數(shù)據(jù)對象24。其后在遠(yuǎn)程倉庫56中識別的任何數(shù)據(jù)對象M都可以假定最近已被添加到遠(yuǎn)程倉庫56。在又一個實施例中,瀏覽器緩存20和/或遠(yuǎn)程倉庫56可以維持對各數(shù)據(jù)對象倉庫進(jìn)行修改的日志,并且可以檢查或比較這樣的日志以便確定精確的同步操作。作為該第一方面的第三變型,這些技術(shù)可以選擇性地應(yīng)用于web瀏覽器提供的特定數(shù)據(jù)緩存。由于web瀏覽器接收的數(shù)據(jù)對象可能在不同的上下文中是有用的(例如屬于應(yīng)用的應(yīng)用資源以及在網(wǎng)頁的再現(xiàn)中使用的內(nèi)容型數(shù)據(jù)對象,例如HTML文檔、樣式表和嵌入的媒體對象),因而web瀏覽器可以在不同的緩存(例如被配置成存儲應(yīng)用資源的應(yīng)用緩存以及被配置成存儲內(nèi)容型數(shù)據(jù)對象的內(nèi)容緩存)中存儲這樣的數(shù)據(jù)對象。本文涉及的同步技術(shù)可以以各種不同的方式應(yīng)用到這樣的緩存的內(nèi)容。作為第一個實例,同步可以均勻地應(yīng)用到所有這樣的緩存中的所有數(shù)據(jù)對象。作為第二個實例,同步可以僅僅適用于這樣的特定緩存,這些緩存被配置成存儲更重要值的數(shù)據(jù)對象(例如應(yīng)用緩存)以及忽略被配置成存儲不那么有用的數(shù)據(jù)對象的數(shù)據(jù)緩存的內(nèi)容。作為第三個實例,同步可以不同地應(yīng)用到這樣的緩存;例如,應(yīng)用緩存可以完全地且在頻繁的基礎(chǔ)上同步,而內(nèi)容緩存可以僅僅關(guān)于其中存儲的數(shù)據(jù)對象的部分(例如最近時間幀中獲取或訪問的數(shù)據(jù)對象)而同步,并且可以在不那么嚴(yán)格的時間表上同步。該第一方面的附加變型可能涉及更復(fù)雜的同步形式。作為第一個實例,瀏覽器緩存同步部件46和/或遠(yuǎn)程倉庫56可以被配置成僅僅使數(shù)據(jù)對象M的部分同步,例如使與至少一個同步數(shù)據(jù)對象準(zhǔn)則匹配的數(shù)據(jù)對象M子集同步。例如,瀏覽器緩存同步部件46 可以被配置成僅僅使包含用戶數(shù)據(jù)文件的數(shù)據(jù)對象M和/或僅僅使包含應(yīng)用二進(jìn)制文件的數(shù)據(jù)對象M和/或僅僅使屬于特定用戶或應(yīng)用的數(shù)據(jù)對象M和/或僅僅使不超過特定數(shù)據(jù)大小的數(shù)據(jù)對象M同步。因此,瀏覽器緩存同步部件46可以忽略同步期間瀏覽器緩存20中存儲的其他數(shù)據(jù)對象M。作為第二個實例,可以設(shè)計這樣的同步策略,該同步策略描述同步的各個不同方面,例如同步觸發(fā)策略(例如同步可以開始的情況集合)、同步類型策略(例如單向同步與雙向同步)、數(shù)據(jù)對象比較策略(例如按照其比較數(shù)據(jù)對象的兩種表示以檢測差別的準(zhǔn)則)、數(shù)據(jù)對象類型合并策略(例如可以合并的數(shù)據(jù)對象M的類型以及用于這樣做的邏輯)和/或數(shù)據(jù)對象沖突解決策略(例如按照其解決數(shù)據(jù)對象M的不同表示的邏輯)??赡苡欣氖牵x描述各種各樣的同步形式的若干同步策略(例如不經(jīng)常的同步期間應(yīng)用的第一同步策略以及頻繁增量同步期間應(yīng)用的第二同步策略)。而且,同步策略可以由計算機(jī)52或者由遠(yuǎn)程計算機(jī)M根據(jù)其間的關(guān)系而定義。本領(lǐng)域普通技術(shù)人員可以設(shè)計用于在實現(xiàn)本文所討論的技術(shù)的同時發(fā)起和執(zhí)行瀏覽器緩存20和遠(yuǎn)程計算機(jī)M的同步的許多技術(shù)??梢栽谶@些技術(shù)的實施例之中變化的第二方面涉及實現(xiàn)方式的架構(gòu)。作為第一個實例,瀏覽器緩存監(jiān)視部件44和瀏覽器緩存同步部件46可以在計算機(jī)52內(nèi)以各種不同的方式執(zhí)行。在第一這樣的實施例中,瀏覽器緩存監(jiān)視部件44可以被配置成在計算機(jī)52上在瀏覽器16內(nèi)例如作為瀏覽器16的部分或者其中安裝的插件而執(zhí)行。該實現(xiàn)方式在瀏覽器緩存監(jiān)視部件44主要承擔(dān)監(jiān)視瀏覽器緩存20的變化的任務(wù)以便觸發(fā)瀏覽器緩存監(jiān)視部件46的同步的情況下可能是有幫助的,因為這樣的變化很可能僅在瀏覽器16執(zhí)行時才出現(xiàn)。相比之下以及可替換地或者此外,瀏覽器緩存同步部件46可以被配置成在計算機(jī)52上作為瀏覽器16之外的進(jìn)程而執(zhí)行,例如作為計算機(jī)52的后臺服務(wù)而執(zhí)行。這可能是有利的,因為同步可能例如通過使改變的數(shù)據(jù)對象M同步而不干擾網(wǎng)頁的再現(xiàn)和瀏覽器16執(zhí)行應(yīng)用20并且通過允許瀏覽器緩存20與遠(yuǎn)程倉庫56的同步在這樣的應(yīng)用20不執(zhí)行時以及甚至在瀏覽器16不執(zhí)行的情況下發(fā)生而與瀏覽器16獨(dú)立地發(fā)生。例如,當(dāng)計算機(jī)52連接到網(wǎng)絡(luò)時,但是當(dāng)用戶12不在使用瀏覽器16時(例如當(dāng)計算機(jī)52空閑時),瀏覽器緩存同步部件46可以從遠(yuǎn)程倉庫56中取回一些更新的數(shù)據(jù)對象M并且將它們存儲在瀏覽器緩存20中,并且即使計算機(jī)52處于離線狀態(tài)下,當(dāng)用戶12請求使用這些數(shù)據(jù)對象M (例如調(diào)用結(jié)合了這樣的web對象M的應(yīng)用22)時,這樣的對象可以在瀏覽器16中使用。作為該第二方面的第二個實例,這些技術(shù)的實施例的架構(gòu)可以在實現(xiàn)這里描述的特征的同時說明計算機(jī)M內(nèi)的其他進(jìn)程的動作。例如,可能有利的是將瀏覽器緩存同步部件46實現(xiàn)為在瀏覽器16之外執(zhí)行的進(jìn)程,但是該獨(dú)立性可以允許這兩個進(jìn)程的競爭性干擾。作為第一個實例,瀏覽器緩存同步部件46可能試圖代替瀏覽器16使用的數(shù)據(jù)對象M, 從而造成數(shù)據(jù)侵犯錯誤。作為第二個實例,瀏覽器緩存同步部件46和瀏覽器16中的每一個可以更新數(shù)據(jù)對象24,并且如果不使用對象同步構(gòu)造,那么可能出現(xiàn)競爭狀況,導(dǎo)致數(shù)據(jù)丟失和潛在的邏輯問題。為了避免這樣的問題并且改進(jìn)這些技術(shù)的實現(xiàn)方式,瀏覽器緩存監(jiān)視部件44和/或瀏覽器緩存同步部件46可以考慮其他進(jìn)程的動作。作為第一個實例, 瀏覽器緩存同步部件46可以在使數(shù)據(jù)對象M與遠(yuǎn)程倉庫56同步之前請求數(shù)據(jù)對象M的訪問鎖(例如信號量或互斥),并且可以在完成數(shù)據(jù)對象M的同步時釋放數(shù)據(jù)對象M的鎖。 可替換地或者此外,瀏覽器緩存監(jiān)視部件44可以被配置成在檢測到瀏覽器緩存同步部件 46對瀏覽器16使用的數(shù)據(jù)對象M的更新時通知瀏覽器16更新的數(shù)據(jù)對象M的可用性, 并且瀏覽器可以在瀏覽器16的操作中的方便時刻(例如在數(shù)據(jù)對象M未被積極使用時)重新加載更新的數(shù)據(jù)對象對。作為該第二方面的第三個實例,瀏覽器緩存同步部件46執(zhí)行的同步可以包含在計算環(huán)境18與遠(yuǎn)程倉庫56的更廣泛的同步中。在第一個這樣的實現(xiàn)方式中,兩個計算機(jī)可以共享存儲在瀏覽器緩存20之內(nèi)以及存儲在瀏覽器緩存20之外但是存儲在計算環(huán)境18 之內(nèi)的數(shù)據(jù)對象M(例如計算機(jī)52的文件系統(tǒng)中存儲的文件、操作系統(tǒng)存儲的用戶簡檔以及數(shù)據(jù)庫中存儲的記錄)。同步進(jìn)程可以被設(shè)計成在單個同步期間使許多數(shù)據(jù)對象系統(tǒng)中存儲和訪問的大而多樣的數(shù)據(jù)對象M集合(包括瀏覽器緩存20中存儲的數(shù)據(jù)對象同步。這可能是有幫助的,例如用于允許用戶12規(guī)定應(yīng)用到所有數(shù)據(jù)對象M的單個同步策略而不管這樣的數(shù)據(jù)對象M如何被存儲,以及用于代替實現(xiàn)獨(dú)立地(以及可能沖突地)使不同數(shù)據(jù)對象M集合同步的多個同步部件,而允許一個部件執(zhí)行這樣的數(shù)據(jù)對象對的同步。在一個這樣的實施例中,計算環(huán)境18可以代表可部署的計算環(huán)境,并且遠(yuǎn)程計算機(jī)M可以包括計算環(huán)境主機(jī)。為了降低構(gòu)成當(dāng)代計算環(huán)境的對象的復(fù)雜多樣性和分散化, 可以設(shè)計計算環(huán)境的可部署表示,其中將構(gòu)成計算環(huán)境的對象組織成數(shù)據(jù)對象層次,其可以由計算環(huán)境主機(jī)托管。該計算環(huán)境主機(jī)可以被配置成存儲包括用戶12的計算環(huán)境18的整個計算機(jī)集合的表示;在這樣的計算機(jī)之中協(xié)調(diào)計算環(huán)境18的同步;存儲計算環(huán)境18 的權(quán)威表示(例如攜帶解決版本沖突的優(yōu)先級的數(shù)據(jù)對象M的特定表示);和/或管理計算環(huán)境18或者其部分到特定計算機(jī)52 (例如新添加的計算機(jī))的部署。(可以理解的是,該方案中的遠(yuǎn)程倉庫56可能不一定與計算環(huán)境主機(jī)82上的瀏覽器緩存相應(yīng),該計算環(huán)境主機(jī) 82可以包括這樣的文件服務(wù)器,該文件服務(wù)器甚至不包含瀏覽器,而是改為例如代表被分配來存儲可部署計算環(huán)境84的計算環(huán)境主機(jī)82的文件系統(tǒng)的部分。)可以將數(shù)據(jù)對象層次輸送給不同的設(shè)備以表示相同的計算環(huán)境(包括相同的用戶簡檔、應(yīng)用、數(shù)據(jù)文件等等),并且每個設(shè)備可以基于設(shè)備的能力以一致但是定制的方式再現(xiàn)計算環(huán)境(例如用于從附接到工作站的鍵盤設(shè)備接收數(shù)據(jù)條目的硬鍵盤接口以及用于從手機(jī)設(shè)備接收數(shù)據(jù)條目的觸摸屏軟件鍵盤接口)。因此,可部署的計算環(huán)境的用戶可以以平臺和設(shè)備獨(dú)立的方式與可部署的計算環(huán)境交互,同時也實現(xiàn)相對于可替換的訪問技術(shù)的至少一些優(yōu)點,例如同步或異步調(diào)用、標(biāo)準(zhǔn)操作的批處理以及移動代理。而且,如果構(gòu)成計算環(huán)境18的數(shù)據(jù)對象M在可部署計算環(huán)境內(nèi)以均勻的方式表示且以一致的方式管理(而不管通過其訪問這樣的數(shù)據(jù)對象 M的特定數(shù)據(jù)對象系統(tǒng)如何),那么可以設(shè)計一組服務(wù)以應(yīng)用到計算環(huán)境的所有數(shù)據(jù)對象。 然而,本領(lǐng)域普通技術(shù)人員可以設(shè)計其中可以應(yīng)用這里討論的技術(shù)的許多這樣的方案。圖5示出了一種這樣的方案80,其中計算環(huán)境可以由計算環(huán)境主機(jī)82托管,該計算環(huán)境主機(jī)可以存儲和管理可部署計算環(huán)境84。計算環(huán)境主機(jī)82也可以代表諸如手機(jī)設(shè)備86、個人筆記本計算機(jī)90和公共工作站94之類的不同設(shè)備以及也代表具有不同訪問特權(quán)的不同類型的用戶以不同的方式再現(xiàn)可部署計算環(huán)境84。因此,計算環(huán)境的再現(xiàn)反映了跨暴露相同的應(yīng)用、用戶簡檔、殼配置(shell configuration)、用戶數(shù)據(jù)對象等等的所有設(shè)備的一致計算環(huán)境。因此,用戶可以通過高性能筆記本計算機(jī)訪問計算環(huán)境的全功能版本92、在低功率手機(jī)設(shè)備86上訪問計算環(huán)境的精簡版本88以及通過公共終端94的web 瀏覽器86訪問計算環(huán)境的瀏覽器兼容且面向隱私的版本98。在每個這樣的設(shè)備的能力支持計算環(huán)境的再現(xiàn)的程度上,由于根據(jù)每個設(shè)備的能力調(diào)節(jié)的可部署計算環(huán)境84的再現(xiàn)而可以呈現(xiàn)一致的用戶界面和數(shù)據(jù)集合??梢詫⒂嬎悱h(huán)境的更新向后傳播到計算環(huán)境主機(jī)82,并且可以自動地使其與其他設(shè)備同步。不同的設(shè)備也可以通過與其他設(shè)備共享本地存儲的數(shù)據(jù)并且通過控制其他設(shè)備或者由其他設(shè)備控制而協(xié)作。因此,計算環(huán)境可以因而設(shè)計和呈現(xiàn)為云計算架構(gòu),包括表達(dá)為跨形成相同計算環(huán)境的協(xié)作門戶(portal)(具有特定于設(shè)備的屬性)網(wǎng)格的所有設(shè)備(“客戶端”)的一致再現(xiàn)的設(shè)備獨(dú)立表示(“云”)。特別是關(guān)于計算環(huán)境的應(yīng)用,可部署計算環(huán)境84可以包括應(yīng)用集合、應(yīng)用資源和由此創(chuàng)建的數(shù)據(jù)對象的表示。而且,計算環(huán)境主機(jī)82可以將服務(wù)應(yīng)用于構(gòu)成數(shù)據(jù)對象層次32的不同對象,并且數(shù)據(jù)對象以其存儲于可部署計算環(huán)境84中的通用格式可以有利于服務(wù)的一致可用性和應(yīng)用,而不管向其應(yīng)用的數(shù)據(jù)對象的性質(zhì)如何。關(guān)于該第二方面,如果計算機(jī)52以代表計算環(huán)境主機(jī)82管理的可部署計算環(huán)境 84的計算環(huán)境18為特征,那么這里討論的技術(shù)可以以與其相關(guān)的特定優(yōu)點實現(xiàn)。作為第一個實例,如果計算環(huán)境主機(jī)82用作遠(yuǎn)程計算機(jī)M,那么可能有利的是將瀏覽器緩存20表示為計算環(huán)境18的一部分。而且,如果遠(yuǎn)程倉庫56包括計算環(huán)境主機(jī)82管理的可部署計算環(huán)境84的表示,那么可以一起執(zhí)行包括瀏覽器緩存20的整個計算環(huán)境18的同步。例如, 可以設(shè)計這樣的計算環(huán)境部件,其管理計算機(jī)52的大的數(shù)據(jù)對象M集合與計算環(huán)境主機(jī) 82的同步,包括存儲在瀏覽器緩存20之內(nèi)的數(shù)據(jù)對象M以及存儲在其他數(shù)據(jù)對象系統(tǒng)中且可通過其他數(shù)據(jù)對象系統(tǒng)訪問的數(shù)據(jù)對象M,例如文件系統(tǒng)中的文件、系統(tǒng)注冊表中存儲的配置信息和操作系統(tǒng)存儲的用戶簡檔。同步于是可以在瀏覽器緩存20的內(nèi)容以及計算環(huán)境18的其余部分上均勻地執(zhí)行,并且其他服務(wù)(例如認(rèn)證服務(wù)和壓縮服務(wù))可以被設(shè)計且均勻地應(yīng)用到所有這樣的數(shù)據(jù)對象M。再次,可能希望的是作為單個同步進(jìn)程和/或在單個部件中執(zhí)行所有這樣的對象M的同步,所述單個部件例如使可部署計算環(huán)境84的所有數(shù)據(jù)對象M與計算環(huán)境主機(jī)82同步的計算環(huán)境部件。而且,計算環(huán)境主機(jī)82也可以處理將這樣的數(shù)據(jù)對象輸送給共享計算環(huán)境的其他計算機(jī),使得每個計算機(jī)M可以主要與計算環(huán)境主機(jī)82通信,但是仍然可以接收在其他計算機(jī)M上最初創(chuàng)建或最近更新的數(shù)據(jù)對象對。作為該第二方面的第四個實例,瀏覽器緩存監(jiān)視部件44和/或瀏覽器緩存同步部件46可以以同步編程接口為特征,該同步編程接口可以允許在瀏覽器16之內(nèi)執(zhí)行的應(yīng)用 22與瀏覽器緩存20中的數(shù)據(jù)對象M的同步交互。作為第一個實例,同步編程接口可以允許應(yīng)用22識別同步的細(xì)節(jié),例如數(shù)據(jù)對象M的上次同步的日期以及數(shù)據(jù)對象M的來源。 在一個這樣的實施例中,同步編程接口可以包括被配置成公開同步的至少一個同步策略的至少一個屬性的至少一個同步策略公開操作以及被配置成設(shè)置至少一個同步策略的至少一個屬性的至少一個同步策略設(shè)置操作。例如,應(yīng)用主機(jī)可以供應(yīng)應(yīng)用,其按固定時間表更新特定應(yīng)用資源,例如每個星期日午夜供應(yīng)新的防病毒定義數(shù)據(jù)庫的防病毒軟件供應(yīng)商。 應(yīng)用主機(jī)因而可以將應(yīng)用22配置成經(jīng)由同步編程接口指示瀏覽器緩存同步部件46在預(yù)定時間更新包括該應(yīng)用資源的數(shù)據(jù)對象對。應(yīng)用22也可以使用同步編程接口以識別數(shù)據(jù)對象M的上次這樣的同步的日期和時間(例如以便在病毒定義數(shù)據(jù)庫過期的情況下通知用戶12),和/或限制數(shù)據(jù)對象M僅僅與應(yīng)用主機(jī)識別的受信任來源同步(例如,使得病毒定義數(shù)據(jù)庫僅可以直接從防病毒軟件供應(yīng)商處獲取)??商鎿Q地或者此外,瀏覽器緩存同步部件46可以暴露同步編程接口,該同步編程接口被配置成調(diào)用瀏覽器緩存同步部件46以便使瀏覽器緩存20 (或者其部分)與遠(yuǎn)程倉庫M同步。例如,可以允許應(yīng)用22調(diào)用由瀏覽器緩存同步部件46通過同步編程接口的操作對特定數(shù)據(jù)對象M的同步(例如,如果防病毒應(yīng)用的用戶請求即時更新病毒定義數(shù)據(jù)庫)。此外,同步編程接口可以以熟悉而良好確立的方式實現(xiàn),其可以允許應(yīng)用方便地且沒有顯著的重新設(shè)計地利用接口。例如,被設(shè)計成支持在web瀏覽器16中執(zhí)行的應(yīng)用22 的web瀏覽器插件可以暴露基于Javakript的同步編程接口,例如作為可以在Javakript 中調(diào)用以便在瀏覽器緩存20中讀寫不同數(shù)據(jù)對象M的操作集合??商鎿Q地或者此外,同步編程接口可以支持更高級的語言,例如諸如Java和0#之類的面向?qū)ο蟮恼Z言;可以暴露計算環(huán)境的更復(fù)雜的細(xì)節(jié),例如同步服務(wù)的調(diào)度、本地緩存的新鮮度和策略以及包括計算環(huán)境的計算機(jī)的關(guān)系(例如,所述計算機(jī)用作特定數(shù)據(jù)對象的權(quán)威表示的主機(jī));和/或可以包括允許更強(qiáng)大的編程訪問的更復(fù)雜的編程構(gòu)造(例如可以通知應(yīng)用諸如特定數(shù)據(jù)對象的同步之類的計算環(huán)境事件的事件訂閱和數(shù)據(jù)饋送)。通過這種方式,編程接口可以以復(fù)雜的方式暴露計算環(huán)境的寬泛的各種各樣的方面,同時遵守可以由開發(fā)者容易地采用而不必利用不同編程技術(shù)重新設(shè)計或重寫其大部分的熟悉的編程模型。本領(lǐng)域普通技術(shù)人員可以在實現(xiàn)這里討論的技術(shù)時設(shè)計出許多架構(gòu)及其特征??梢栽谶@些技術(shù)的實施例之中變化的第三方面涉及可以包含在其不同實現(xiàn)方式中的特定于數(shù)據(jù)對象的特征。作為第一個實例,應(yīng)用22請求存儲于瀏覽器緩存20中的數(shù)據(jù)對象M可以具有一個或多個不尋常的屬性,例如大的數(shù)據(jù)對象或者許多關(guān)聯(lián)的數(shù)據(jù)對象的集合。一些瀏覽器緩存20可能不能夠適應(yīng)這樣的緩存。例如,瀏覽器緩存20可以對特定數(shù)據(jù)對象施加大小限制,并且特定數(shù)據(jù)對象M可能太大而不能存儲于瀏覽器緩存20 中(例如,可以提供用于應(yīng)用22離線訪問的大數(shù)據(jù)庫)。相反地,瀏覽器16可以被配置成將這樣的數(shù)據(jù)對象M存儲在瀏覽器緩存20之外和計算環(huán)境18中,例如文件系統(tǒng)中的文件, 并且在瀏覽器緩存20中存儲對存儲于瀏覽器緩存20之外的數(shù)據(jù)對象M的引用。而且,瀏覽器緩存監(jiān)視部件44可以被配置成監(jiān)視存儲于瀏覽器緩存20之外的數(shù)據(jù)對象M的更新, 連同監(jiān)視存儲在瀏覽器緩存20之內(nèi)的數(shù)據(jù)對象M的更新;和/或瀏覽器緩存同步部件46 可以被配置成使存儲于瀏覽器緩存20之外的這樣的數(shù)據(jù)對象對連同存儲在瀏覽器緩存20 之內(nèi)的數(shù)據(jù)對象M同步。作為該第三方面的第二個實例,存儲在瀏覽器緩存20中的數(shù)據(jù)對象M可以包括被配置成在瀏覽器16之內(nèi)執(zhí)行的應(yīng)用22的應(yīng)用資源。瀏覽器緩存監(jiān)視部件44和/或瀏覽器緩存同步部件46可以被配置成以特定的方式處理這樣的數(shù)據(jù)對象對。在第一個這樣的方案中,數(shù)據(jù)對象M可以包括應(yīng)用安裝包,該安裝包可以被調(diào)用以便在瀏覽器16之內(nèi)安裝應(yīng)用22。瀏覽器緩存同步部件46因此可以被配置成在接收到來自遠(yuǎn)程計算機(jī)M的數(shù)據(jù)對象M時調(diào)用應(yīng)用安裝包以安裝應(yīng)用22。作為第二個實例,數(shù)據(jù)對象M與之關(guān)聯(lián)的應(yīng)用 22可以與應(yīng)用主機(jī)關(guān)聯(lián),并且可以被配置成在諸如連接的上下文或者斷開的上下文之類的應(yīng)用主機(jī)連接上下文中執(zhí)行。在一個這樣的方案中,數(shù)據(jù)對象M可以包括離線應(yīng)用資源, 并且應(yīng)用22可以被配置成當(dāng)應(yīng)用22在斷開的上下文中執(zhí)行時使用離線應(yīng)用資源。本領(lǐng)域普通技術(shù)人員可以在實現(xiàn)這里討論的技術(shù)時設(shè)計出用于針對特定類型的數(shù)據(jù)對象M配置瀏覽器緩存監(jiān)視部件44和/或瀏覽器緩存同步部件46的許多技術(shù)。盡管以特定于結(jié)構(gòu)特征和/或方法動作的語言描述了主題,但是應(yīng)當(dāng)理解的是, 所附權(quán)利要求中限定的主題不一定限于上面描述的特定特征或動作。相反地,上面描述的特定特征和動作被公開為實施權(quán)利要求的實例形式。當(dāng)在本申請中使用時,術(shù)語“部件”、“模塊”、“系統(tǒng)”、“接口”等等通常意在表示計算機(jī)相關(guān)的實體,其為硬件、硬件和軟件的組合、軟件或者執(zhí)行中的軟件。例如,部件可以是但不限于處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行文件、執(zhí)行線程、程序和/或計算機(jī)。舉例而言,運(yùn)行于控制器上的應(yīng)用以及該控制器可以是部件。一個或多個部件可以駐留于進(jìn)程和/或執(zhí)行線程中并且部件可以本地化于一個計算機(jī)上和/或分布在兩個或更多計算機(jī)之間。此外,要求保護(hù)的主題可以實現(xiàn)為使用標(biāo)準(zhǔn)編程和/或工程技術(shù)以產(chǎn)生軟件、固件、硬件或者其任意組合以便控制計算機(jī)實施所公開的主題的方法、裝置或者制品。在本文中使用的術(shù)語“制品”意在涵蓋可從任何計算機(jī)可讀設(shè)備、載體或介質(zhì)中訪問的計算機(jī)程序。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識到,在不脫離要求保護(hù)的主題的范圍或精神的情況下可以對該配置做出許多修改。圖6和下面的討論提供了實現(xiàn)本文闡述的一個或多個規(guī)定的實施例的適當(dāng)計算環(huán)境的簡要一般描述。圖6的操作環(huán)境是適當(dāng)操作環(huán)境的僅僅一個實例,并且并不意在暗示關(guān)于操作環(huán)境的使用或功能的范圍的任何限制。示例計算設(shè)備包括但不限于個人計算機(jī)、服務(wù)器計算機(jī)、手持式或膝上型設(shè)備、移動設(shè)備(例如移動電話、個人數(shù)字助理(PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費(fèi)電子器件、微型計算機(jī)、大型計算機(jī)、包括任何上面的系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。盡管不是所要求的,在由一個或多個計算設(shè)備執(zhí)行的“計算機(jī)可讀指令”的一般上下文中描述了若干實施例。計算機(jī)可讀指令可以經(jīng)由計算機(jī)可讀介質(zhì)分布(在下文中討論)。計算機(jī)可讀指令可以實現(xiàn)為執(zhí)行特定任務(wù)或者實現(xiàn)特定抽象數(shù)據(jù)類型的程序模塊,例如函數(shù)、對象、應(yīng)用編程接口(API)、數(shù)據(jù)結(jié)構(gòu)等等。典型地,計算機(jī)可讀指令的功能可以根據(jù)需要被組合或分布于不同的環(huán)境中。圖6示出了包括被配置成實施本文提供的一個或多個實施例的計算設(shè)備102的系統(tǒng)100的實例。在一個配置中,計算設(shè)備102包括至少一個處理單元106和存儲器108。取決于計算設(shè)備的確切配置和類型,存儲器108可以是易失性的(諸如例如RAM)、非易失性的 (諸如例如ROM、閃存等等)或者這二者的某種組合。該配置通過虛線104示于圖6中。在其他實施例中,設(shè)備102可以包括附加的特征和/或功能。例如,設(shè)備102也可以包括附加的存儲裝置(例如可移除的和/或不可移除的),包括但不限于磁性存儲裝置、光學(xué)存儲裝置等等。這樣的附加存儲裝置在圖6中由存儲裝置110示出。在一個實施例中, 實施本文提供的一個或多個實施例的計算機(jī)可讀指令可以處于存儲裝置110中。存儲裝置 110也可以存儲實施操作系統(tǒng)、應(yīng)用程序等等的其他計算機(jī)可讀指令。計算機(jī)可讀指令也可以加載在存儲器108中以供例如處理單元106執(zhí)行。本文中使用的術(shù)語“計算機(jī)可讀介質(zhì)”包括計算機(jī)存儲介質(zhì)。計算機(jī)存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的易失性的和非易失性的、可移除的和不可移除的介質(zhì),用于存儲諸如計算機(jī)可讀指令或其他數(shù)據(jù)之類的信息。存儲器108和存儲裝置110是計算機(jī)存儲介質(zhì)的實例。計算機(jī)存儲介質(zhì)包括但不限于RAM、ROM、EEPR0M、閃存或者其他存儲技術(shù)、 CD-ROM、數(shù)字多功能盤(DVD )或其他光學(xué)存儲裝置、盒式磁帶、磁帶、磁盤存儲裝置或其他磁性存儲設(shè)備或者可以用來存儲希望的信息且可以由設(shè)備102訪問的任何其他介質(zhì)。任何這樣的計算機(jī)存儲介質(zhì)可以是設(shè)備102的一部分。設(shè)備102也可以包括允許設(shè)備102與其他設(shè)備通信的通信連接(一個或多個)116。 通信連接(一個或多個)116可以包括但不限于調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射器/接收器、紅外端口、USB連接或者用于將計算設(shè)備102連接到其他計算設(shè)備的其他接口。通信連接(一個或多個)116可以包括有線連接或者無線連接。通信連接(一個或多個)116可以發(fā)送和/或接收通信媒體。術(shù)語“計算機(jī)可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)典型地在諸如載波或其他傳輸機(jī)制之類的“調(diào)制數(shù)據(jù)信號”中含有計算機(jī)可讀指令或其他數(shù)據(jù),并且包括任何信息輸送介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”可以包括這樣的信號,該信號具有其以這樣的方式設(shè)置或改變以便在該信號中編碼信息的一個或多個特性。設(shè)備102可以包括輸入設(shè)備(一個或多個)114,例如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、 觸摸輸入設(shè)備、紅外照相機(jī)、視頻輸入設(shè)備和/或任何其他輸入設(shè)備。諸如一個或多個顯示器、揚(yáng)聲器、打印機(jī)和/或任何其他輸出設(shè)備之類的輸出設(shè)備(一個或多個)112也可以包含在設(shè)備102中。輸入設(shè)備(一個或多個)114和輸出設(shè)備(一個或多個)112可以經(jīng)由有線連接、無線連接或者其任意組合連接到設(shè)備102。在一個實施例中,來自另一個計算設(shè)備的輸入設(shè)備或輸出設(shè)備可以用作用于計算設(shè)備102的輸入設(shè)備(一個或多個)114或輸出設(shè)備 (一個或多個)112。計算設(shè)備102的部件可以通過諸如總線之類的不同互連連接。這樣的互連可以包括外圍部件互連(PCI)(例如PCI Express)、通用串行總線(USB)、火線(IEEE 1394)、光學(xué)總線結(jié)構(gòu)等等。在另一個實施例中,計算設(shè)備102的部件可以由網(wǎng)絡(luò)互連。例如,存儲器 108可以由位于不同物理位置的通過網(wǎng)絡(luò)互連的多個物理存儲單元組成。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識到,用來存儲計算機(jī)可讀指令的存儲設(shè)備可以跨網(wǎng)絡(luò)分布。例如,可經(jīng)由網(wǎng)絡(luò)118訪問的計算設(shè)備120可以存儲執(zhí)行本文提供的一個或多個實施例的計算機(jī)可讀指令。計算設(shè)備102可以訪問計算設(shè)備120并且下載一部分或所有計算機(jī)可讀指令以便執(zhí)行。可替換地,計算設(shè)備102可以根據(jù)需要下載計算機(jī)可讀指令的片段,或者一些指令可以在計算設(shè)備102處執(zhí)行并且一些指令可以在計算設(shè)備120處執(zhí)行。本文提供了實施例的不同操作。在一個實施例中,所描述的一個或多個操作可以構(gòu)成一個或多個計算機(jī)可讀介質(zhì)上存儲的計算機(jī)可讀指令,這些指令在由計算設(shè)備執(zhí)行的情況下將使得計算設(shè)備執(zhí)行所描述的操作。描述一些或所有操作的順序不應(yīng)當(dāng)被解釋為暗示這些操作一定是順序相關(guān)的。受益于本說明書的本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解可替換的排序。此外,應(yīng)當(dāng)理解的是,不是所有的操作一定存在于本文提供的每個實施例中。而且,措詞“示例性”在本文中用來表示用作示例、實例或例證。本文中描述為“示例性”的任何方面或設(shè)計不一定要解釋為相對于其他方面或設(shè)計是有利的。相反地,措詞示例性的使用意在以具體的方式給出若干概念。當(dāng)在本申請中使用時,措詞“或者”意在表示包容性“或者”而不是排他性“或者”。換言之,除非另有說明或者根據(jù)上下文顯然可見, “X采用A或者B”意在表示任何自然的包容性置換。換言之,如果X采用A ;X采用B ;或者 X采用A和B 二者,那么在前面任何情況下都滿足“X采用A或者B”。此外,本申請和所附權(quán)利要求書中使用的冠詞“一”一般可以解釋為表示“一個或多個”,除非另有規(guī)定或者根據(jù)上下文可知指的是單數(shù)形式。
此外,盡管針對一個或多個實現(xiàn)方式示出和描述了本公開內(nèi)容,但是本領(lǐng)域技術(shù)人員基于本說明書和附圖的閱讀和理解應(yīng)當(dāng)想到等效的變動和修改。本公開內(nèi)容包括所有這樣的修改和變動并且僅由以下權(quán)利要求書的范圍限制。特別是考慮到上面描述的部件 (例如元件、資源等等)執(zhí)行的不同功能,除非另有說明,用來描述這樣的部件的術(shù)語意在與執(zhí)行所描述的部件的規(guī)定功能的任何部件相應(yīng)(例如即功能上等效),即使結(jié)構(gòu)上不等效于執(zhí)行本文示出的本公開內(nèi)容的示例性實現(xiàn)方式中的功能的公開結(jié)構(gòu)。此外,盡管可能僅僅針對若干實現(xiàn)方式之一公開了本公開內(nèi)容的特定特征,但是這樣的特征可以與可能對于任何給定或特定應(yīng)用而言是所需的和有利的其他實現(xiàn)方式的一個或多個其他特征相組合。此外,就措詞“包含”、“擁有”、“具有”、“帶有”及其變體用在詳細(xì)說明書或權(quán)利要求書中而言, 這樣的措詞預(yù)期以類似于措詞“包括”的方式而是包容性的。
權(quán)利要求
1.一種被配置成使計算機(jī)(52)上的瀏覽器(16)的瀏覽器緩存(20)與遠(yuǎn)程計算機(jī)(54) 的遠(yuǎn)程倉庫(56)同步的系統(tǒng)(42),該系統(tǒng)(42)包括瀏覽器緩存監(jiān)視部件(44),其被配置成檢測將至少一個數(shù)據(jù)對象(24)寫入瀏覽器緩存(20)中,以及瀏覽器緩存同步部件(46),其被配置成在瀏覽器緩存監(jiān)視部件(44)檢測到所述寫入時使瀏覽器緩存(20)與遠(yuǎn)程倉庫(56)同步。
2.權(quán)利要求1的系統(tǒng),瀏覽器緩存同步部件被配置成在接收到來自遠(yuǎn)程計算機(jī)的使瀏覽器緩存與遠(yuǎn)程倉庫同步的通知時使瀏覽器緩存與遠(yuǎn)程倉庫同步。
3.權(quán)利要求1的系統(tǒng),瀏覽器緩存同步部件被配置成依照至少一個同步策略使瀏覽器緩存與遠(yuǎn)程倉庫同步。
4.權(quán)利要求3的系統(tǒng),選自同步策略集合的至少一個同步策略包括 同步觸發(fā)策略;同步類型策略; 數(shù)據(jù)對象比較策略; 數(shù)據(jù)對象類型合并策略;以及數(shù)據(jù)對象沖突解決策略。
5.權(quán)利要求3的系統(tǒng),至少一個同步策略由遠(yuǎn)程計算機(jī)定義。
6.權(quán)利要求1的系統(tǒng)瀏覽器緩存包含在計算機(jī)的計算環(huán)境中,并且所述至少一個數(shù)據(jù)對象存儲在計算機(jī)的計算環(huán)境中。
7.權(quán)利要求6的系統(tǒng)計算環(huán)境包括可部署計算環(huán)境;遠(yuǎn)程計算機(jī)包括被配置成管理計算環(huán)境的計算環(huán)境主機(jī);并且瀏覽器緩存同步部件包括被配置成使計算環(huán)境與計算環(huán)境主機(jī)同步的計算環(huán)境部件。
8.權(quán)利要求1的系統(tǒng),瀏覽器緩存同步部件通過以下方式被配置為瀏覽器緩存中存儲的數(shù)據(jù)對象在使數(shù)據(jù)對象同步之前,請求來自計算機(jī)的數(shù)據(jù)對象的訪問鎖;以及當(dāng)完成數(shù)據(jù)對象的同步時,釋放數(shù)據(jù)對象的訪問鎖。
9.權(quán)利要求1的系統(tǒng),瀏覽器緩存同步部件包括同步編程接口,該同步編程接口包括 被配置成公開至少一個同步策略的至少一個屬性的至少一個同步策略公開操作,以及被配置成設(shè)置至少一個同步策略的至少一個屬性的至少一個同步策略設(shè)置操作。
10.權(quán)利要求9的系統(tǒng),同步編程接口包括被配置成調(diào)用瀏覽器緩存同步部件以使瀏覽器緩存與遠(yuǎn)程倉庫同步的同步調(diào)用操作。
11.權(quán)利要求1的系統(tǒng),瀏覽器緩存中存儲的至少一個數(shù)據(jù)對象包括與被配置成在瀏覽器中執(zhí)行的應(yīng)用關(guān)聯(lián)的應(yīng)用資源。
12.權(quán)利要求11的系統(tǒng) 數(shù)據(jù)對象包括應(yīng)用安裝包,并且瀏覽器緩存同步部件被配置成在接收到來自遠(yuǎn)程計算機(jī)的數(shù)據(jù)對象時調(diào)用應(yīng)用安裝包以便安裝應(yīng)用。
13.權(quán)利要求12的系統(tǒng),所述應(yīng)用與應(yīng)用主機(jī)關(guān)聯(lián)且被配置成在應(yīng)用主機(jī)連接上下文中執(zhí)行,該應(yīng)用主機(jī)連接上下文選自包括連接上下文和斷開的上下文的應(yīng)用主機(jī)連接上下文集合。
14.權(quán)利要求13的系統(tǒng)數(shù)據(jù)對象包括離線應(yīng)用資源,并且所述應(yīng)用被配置成當(dāng)該應(yīng)用在斷開的上下文中執(zhí)行時使用離線應(yīng)用資源。
15.一種被配置成使具有可部署計算環(huán)境(84)的計算機(jī)(52)上的瀏覽器(16)的瀏覽器緩存(20)與包括被配置成管理計算環(huán)境(84)的計算環(huán)境主機(jī)(82)的遠(yuǎn)程計算機(jī)(54) 的遠(yuǎn)程倉庫(56)同步的系統(tǒng)(42),該系統(tǒng)(42)包括瀏覽器緩存監(jiān)視部件(44),其被配置成在計算機(jī)(52)上在瀏覽器(16)之內(nèi)執(zhí)行并且檢測將至少一個數(shù)據(jù)對象(24)寫入瀏覽器緩存(20)中,包括瀏覽器緩存(20)中至少一個移除的數(shù)據(jù)對象(24)的移除,以及瀏覽器緩存同步部件(46),其被配置成在計算機(jī)(52)上作為瀏覽器(16)之外的進(jìn)程而執(zhí)行,并且被配置成當(dāng)瀏覽器緩存監(jiān)視部件(44)檢測到所述寫入時,依照至少一個同步策略使與至少一個同步數(shù)據(jù)對象準(zhǔn)則匹配的瀏覽器緩存(20)中的數(shù)據(jù)對象(24)與遠(yuǎn)程倉庫(56)同步,并且當(dāng)接收到來自遠(yuǎn)程計算機(jī)(54)的使瀏覽器緩存(20)與遠(yuǎn)程倉庫(56)同步的通知時, 依照遠(yuǎn)程計算機(jī)(54)定義的至少一個同步策略使與至少一個同步數(shù)據(jù)對象準(zhǔn)則匹配的瀏覽器緩存(20)中的數(shù)據(jù)對象(24)與遠(yuǎn)程倉庫(56)同步;以及向應(yīng)用(22)暴露同步編程接口,該同步編程接口包括被配置成公開至少一個同步策略的至少一個屬性的至少一個同步策略公開操作; 被配置成設(shè)置至少一個同步策略的至少一個屬性的至少一個同步策略設(shè)置操作;以及被配置成調(diào)用瀏覽器緩存同步部件(46)以使瀏覽器緩存(20)與遠(yuǎn)程倉庫(56)同步的同步調(diào)用操作。
全文摘要
計算機(jī)用戶可以使用包括一組計算機(jī)的計算環(huán)境,這些計算機(jī)分別以具有包含許多類型的數(shù)據(jù)對象的瀏覽器緩存的web瀏覽器為特征,所述數(shù)據(jù)對象包括應(yīng)用資源和用戶生成的數(shù)據(jù)文件。然而,瀏覽器緩存的內(nèi)容對計算機(jī)的計算環(huán)境有重大貢獻(xiàn),并且每個計算機(jī)呈現(xiàn)的計算環(huán)境可能有差異,從而提供不一致的計算環(huán)境。替代地,包括計算環(huán)境的計算機(jī)的瀏覽器緩存的內(nèi)容可以跨計算機(jī)而同步。此外,瀏覽器緩存可以與計算環(huán)境的其他數(shù)據(jù)對象(例如文件系統(tǒng)的相關(guān)部分)同步;同步可以實現(xiàn)為與應(yīng)用獨(dú)立地且甚至在瀏覽器不執(zhí)行時執(zhí)行的瀏覽器外的進(jìn)程;并且同步可以通過web應(yīng)用可以與之交戶的編程訪問而暴露。
文檔編號G06F15/16GK102349062SQ201080011292
公開日2012年2月8日 申請日期2010年2月19日 優(yōu)先權(quán)日2009年3月11日
發(fā)明者哈奈-西哈尼 A., 帕拉斯尼斯 A., 班達(dá)卡 A., 舒克拉 D., 穆罕默德 F., 希勒里奧 I., 恩德雷斯 R. 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
亳州市| 桦川县| 寿宁县| 云安县| 吉安县| 肥城市| 天台县| 菏泽市| 龙口市| 云阳县| 界首市| 新昌县| 龙山县| 临汾市| 子洲县| 宜兴市| 乌鲁木齐市| 定安县| 临西县| 涟水县| 新龙县| 当阳市| 奉节县| 义乌市| 雅安市| 芜湖县| 海阳市| 汤阴县| 铜山县| 永丰县| 东兰县| 色达县| 南汇区| 清丰县| 安化县| 贵南县| 伊吾县| 永州市| 玉门市| 沈丘县| 白朗县|