專利名稱:基于web的應(yīng)用程序的離線執(zhí)行的制作方法
基于web的應(yīng)用程序的離線執(zhí)行 背景
計(jì)算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會(huì)的許多方面。的確,計(jì)算機(jī)系統(tǒng)處理 信息的能力已改變?nèi)藗兩詈凸ぷ鞯姆绞?。?jì)算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行在計(jì) 算機(jī)系統(tǒng)出現(xiàn)以前手動(dòng)執(zhí)行的許多任務(wù)(例如,文字處理、日程安排和會(huì) 計(jì)等)。最近,計(jì)算機(jī)系統(tǒng)被彼此耦合并被耦合到其它電子設(shè)備,以形成 計(jì)算機(jī)系統(tǒng)和其它電子設(shè)備可以在其上傳送電子數(shù)據(jù)的有線和無線計(jì)算機(jī) 網(wǎng)絡(luò)。因此,許多計(jì)算任務(wù)的性能分布在多個(gè)不同的計(jì)算機(jī)系統(tǒng)和/或多個(gè) 不同的計(jì)算組件上。
基于網(wǎng)絡(luò)的通信的一種常見形式是在萬維網(wǎng)("WWW")上交換電
子消息。萬維網(wǎng)上的內(nèi)容通常以客戶機(jī)/服務(wù)器模型來訪問??蛻舳擞?jì)算機(jī)
的"web瀏覽器"發(fā)送訪問由服務(wù)器計(jì)算機(jī)系統(tǒng)的"web服務(wù)器"提供的 內(nèi)容的請求(例如,通過將統(tǒng)一資源定位符("URL")輸入到該web瀏 覽器中)。如果web瀏覽器的用戶被授權(quán)訪問該內(nèi)容,則web服務(wù)器通常 將該內(nèi)容提供給該web瀏覽器。在web環(huán)境中,內(nèi)容和對內(nèi)容的請求經(jīng)常 使用超文本傳輸協(xié)議("HTTP")來傳輸?;趙eb的內(nèi)容可以在超文本 標(biāo)記語言("HTML")頁面、樣式表、圖像、腳本等中提供。
大多數(shù)web瀏覽器(即使不是全部)將基于web的各部分內(nèi)容高速緩 存在公共存儲位置(瀏覽器高速緩存)中以使得可更高效地呈現(xiàn)網(wǎng)頁的后 續(xù)呈現(xiàn)。例如,當(dāng)web瀏覽器從web服務(wù)器接收網(wǎng)頁時(shí),該web瀏覽器可 本地高速緩存該網(wǎng)頁中所包括的內(nèi)容的各部分。由此,如果web瀏覽器隨 后被定向到相同的網(wǎng)頁,則該web瀏覽器可檢查公共存儲位置以査找高速 緩存的內(nèi)容的各部分并且任何高速緩存的內(nèi)容的各部分都可與經(jīng)由網(wǎng)絡(luò)接 收到的其它內(nèi)容組合以構(gòu)造網(wǎng)頁。因此,使用本地高速緩存的內(nèi)容可能減 少通過網(wǎng)絡(luò)傳輸來顯示來自web服務(wù)器的內(nèi)容的數(shù)據(jù)量。結(jié)果,網(wǎng)頁可更 快速地呈現(xiàn),從而改善了用戶體驗(yàn)。
然而,通常即使只有網(wǎng)頁的一部分改變,整個(gè)頁面也通過網(wǎng)絡(luò)重新加載以便顯示在web瀏覽器上。例如,情況可以是web瀏覽器訪問一網(wǎng)頁, 經(jīng)由網(wǎng)絡(luò)通信下載該網(wǎng)頁的內(nèi)容并高速緩存了來自該網(wǎng)頁的內(nèi)容。如果該 網(wǎng)頁的內(nèi)容隨后改變了,則該web瀏覽器可能需要重新下載整個(gè)網(wǎng)頁,即 使只有該網(wǎng)頁的 一 小部分發(fā)生了改變。
因此,最近某些web瀏覽器實(shí)現(xiàn)了部分頁面更新以便更好地利用高速 緩存的內(nèi)容。內(nèi)容在網(wǎng)頁的適當(dāng)?shù)牟糠指淖儠r(shí)被重新下載。然而,web瀏 覽器未必需要響應(yīng)于對網(wǎng)頁的一部分的改變而重新下載網(wǎng)頁的所有內(nèi)容。 例如,當(dāng)網(wǎng)頁中的單個(gè)圖像改變時(shí),web瀏覽器可檢測到該變化并重新下 載該單個(gè)圖像而不必重新下載未改變的其它高速緩存的內(nèi)容。
某些基于web的應(yīng)用程序還準(zhǔn)許web瀏覽器與來自數(shù)據(jù)庫(例如,SQL 數(shù)據(jù)庫)的數(shù)據(jù)交互。web服務(wù)器從web瀏覽器接收請求,訪問數(shù)據(jù)庫數(shù) 據(jù)的適當(dāng)?shù)牟糠植⑶覍⒃摂?shù)據(jù)庫數(shù)據(jù)返回給web瀏覽器。取決于基于web 的應(yīng)用程序的配置,用戶可能還能夠通過web瀏覽器來改變數(shù)據(jù)庫數(shù)據(jù)的 各部分。例如,用戶可能能夠通過web瀏覽器來創(chuàng)建和修改數(shù)據(jù)庫記錄。 在某些環(huán)境中,用戶能夠通過web瀏覽器來實(shí)現(xiàn)SQL操作(CREATE TABLE、 SELECT、 INSET、 UPDATE、 DELETE等)。由此,web瀏覽器 本質(zhì)上提供了用于通過網(wǎng)絡(luò)(例如,因特網(wǎng))來操縱數(shù)據(jù)庫數(shù)據(jù)的用戶界 面。
然而,通常不存在供web瀏覽器適當(dāng)?shù)馗咚倬彺姹砀駭?shù)據(jù)(例如,來 自數(shù)據(jù)庫的數(shù)據(jù))的機(jī)制。通常,用戶無法在任一時(shí)刻訪問數(shù)據(jù)庫中的所 有數(shù)據(jù)。因此,高速緩存任何接收到的數(shù)據(jù)庫數(shù)據(jù)提供了不完整的(并且 可能是非功能性的)數(shù)據(jù)集。此外,因?yàn)閮?nèi)容通常被高速緩存在公共位置
(瀏覽器高速緩存)中,所以高速緩存來自一個(gè)網(wǎng)站(或域)的數(shù)據(jù)庫數(shù) 據(jù)可能使得高速緩存的數(shù)據(jù)庫數(shù)據(jù)對該web瀏覽器訪問的任何其它網(wǎng)站
(或域)可用。例如,高速緩存的公司財(cái)務(wù)數(shù)據(jù)在web瀏覽器隨后(并且 可能不為用戶所知)被定向到惡意網(wǎng)站(該惡意網(wǎng)站然后可檢査該瀏覽器 高速緩存)時(shí)處于危險(xiǎn)的境地。
此外,因?yàn)樵S多數(shù)據(jù)庫包含大量數(shù)量,所以本地高速緩存數(shù)據(jù)庫數(shù)據(jù) 可快速填滿所分配的瀏覽器高速緩存空間。另外,大多數(shù)瀏覽器(即使不是全部)缺乏在"離線"模式下工作的 能力。g卩,在網(wǎng)站不可用時(shí)(例如,在沒有檢測到活動(dòng)的網(wǎng)絡(luò)連接或?qū)?yīng)
的web服務(wù)器被關(guān)閉時(shí)),在不將web瀏覽器從所有網(wǎng)站離線的情況下, 該瀏覽器通常無法呈現(xiàn)有意義的內(nèi)容。例如,在web瀏覽器試圖從不可獲 得的web服務(wù)器加載諸如HTML頁面或圖像等資源時(shí),該web瀏覽器無法 呈現(xiàn)該資源(即使該資源已被本地高速緩存)。因此,即使數(shù)據(jù)庫數(shù)據(jù)(或 任何其他類型的內(nèi)容)已被高速緩存,web瀏覽器也無法以離線模式呈現(xiàn) 該數(shù)據(jù)庫數(shù)據(jù)(或任何其它類型的內(nèi)容)。
簡要概述
本發(fā)明涉及用于基于web的應(yīng)用程序的離線執(zhí)行的方法、系統(tǒng)和計(jì)算 機(jī)程序產(chǎn)品。在某些實(shí)施例中,計(jì)算機(jī)系統(tǒng)配置本地內(nèi)容以供基于web的 應(yīng)用程序的web瀏覽器應(yīng)用程序組件離線使用。該計(jì)算機(jī)系統(tǒng)確定該基于 web的應(yīng)用程序被啟用來用于離線執(zhí)行。該計(jì)算機(jī)系統(tǒng)檢測到該基于web 應(yīng)用程序的基于web的服務(wù)器組件是可經(jīng)由網(wǎng)絡(luò)通信獲得的。
該計(jì)算機(jī)系統(tǒng)經(jīng)由網(wǎng)絡(luò)通信從基于web的服務(wù)器組件接收用于該基于 web的應(yīng)用程序的資源。計(jì)算機(jī)系統(tǒng)將所接收到的資源本地存儲在該計(jì)算 機(jī)系統(tǒng)處。該本地地存儲的資源副本無需網(wǎng)絡(luò)通信而可由web瀏覽器客戶 機(jī)組件訪問。如此,在檢測到基于web的服務(wù)器組件不可經(jīng)由網(wǎng)絡(luò)通信獲 得時(shí),可以響應(yīng)于來自基于web的客戶機(jī)組件的請求來訪問該本地地存儲 的資源。計(jì)算機(jī)系統(tǒng)將該本地地存儲的資源配置成在指定的一段時(shí)間內(nèi)保 持本地地存儲在該計(jì)算機(jī)系統(tǒng)上,從而覆蓋web瀏覽器的默認(rèn)的高速緩存 回收設(shè)置。
在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)離線運(yùn)行基于web的應(yīng)用程序。基于web 的應(yīng)用程序的基于web的瀏覽器應(yīng)用程序組件通過網(wǎng)絡(luò)向該基于web的應(yīng) 用程序的對應(yīng)的web服務(wù)器應(yīng)用程序組件發(fā)送對基于web的應(yīng)用程序資源 的在線請求。計(jì)算機(jī)系統(tǒng)檢測到該請求失敗。該計(jì)算機(jī)系統(tǒng)確定該基于web 的應(yīng)用程序被啟用來用于離線執(zhí)行。該計(jì)算機(jī)系統(tǒng)將該web瀏覽器配置成 離線執(zhí)行該web瀏覽器應(yīng)用程序,而其它web瀏覽器應(yīng)用程序保持配置成在線執(zhí)行。該計(jì)算機(jī)系統(tǒng)從該計(jì)算機(jī)系統(tǒng)的本地存儲中提供所請求的基于
web的應(yīng)用程序資源而不將該web瀏覽器離線。
提供本概述以便以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。該概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征, 也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,且其部分根據(jù)本描述 將是顯而易見的,或可通過對本發(fā)明的實(shí)踐獲知。本發(fā)明的特征和優(yōu)點(diǎn)可 通過在所附權(quán)利要求書中特別指出的手段和組合來實(shí)現(xiàn)和獲得。本發(fā)明的 這些和其他特征將通過以下描述和所附權(quán)利要求書而變得更加完全明顯, 或可通過對下文中所述的本發(fā)明的實(shí)踐來獲知。
附圖簡述
為了描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方法,將通過引用 附圖中示出的本發(fā)明的具體實(shí)施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體 描述。可以理解,這些附圖僅描述本發(fā)明的典型實(shí)施例,從而不被認(rèn)為是 對其范圍的限制,本發(fā)明將通過使用附圖用附加特征和細(xì)節(jié)來描述和說明,
附圖中
圖1A示出便于配置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器 應(yīng)用程序組件離線使用的示例計(jì)算機(jī)體系結(jié)構(gòu)。
圖1B示出便于離線運(yùn)行基于web的應(yīng)用程序的示例計(jì)算機(jī)體系結(jié)構(gòu)。
圖2示出用于配置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器應(yīng) 用程序組件離線使用的示例方法的流程圖。
圖3示出用于離線運(yùn)行基于web的應(yīng)用程序的示例方法的流程圖。
詳細(xì)描述
本發(fā)明涉及用于基于web的應(yīng)用程序的離線執(zhí)行的方法、系統(tǒng)和計(jì)算 機(jī)程序產(chǎn)品。在某些實(shí)施例中,計(jì)算機(jī)系統(tǒng)配置本地內(nèi)容以供基于web的 應(yīng)用程序的web瀏覽器應(yīng)用程序組件離線使用。該計(jì)算機(jī)系統(tǒng)確定該基于 web的應(yīng)用程序被啟用來用于離線執(zhí)行。該計(jì)算機(jī)系統(tǒng)檢測到該基于web應(yīng)用程序的基于web的服務(wù)器組件是可經(jīng)由網(wǎng)絡(luò)通信獲得的。
計(jì)算機(jī)系統(tǒng)經(jīng)由網(wǎng)絡(luò)通信從基于web的服務(wù)器組件接收用于基于web 的應(yīng)用程序的資源。計(jì)算機(jī)系統(tǒng)將所接收到的資源本地存儲在該計(jì)算機(jī)系 統(tǒng)處。該本地地存儲的資源復(fù)件可由web瀏覽器客戶機(jī)組件訪問而無需網(wǎng) 絡(luò)通信。如此,在檢測到基于web的服務(wù)器組件不可經(jīng)由網(wǎng)絡(luò)通信獲得時(shí), 可以響應(yīng)于來自基于web的客戶機(jī)組件的請求來訪問該本地地存儲的資 源。計(jì)算機(jī)系統(tǒng)將該本地地存儲的資源配置成在指定的一段時(shí)間內(nèi)保持本 地地存儲在該計(jì)算機(jī)系統(tǒng)上,從而覆蓋(override) web瀏覽器的默認(rèn)的高 速緩存回收設(shè)置。
在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)離線運(yùn)行基于web的應(yīng)用程序?;趙eb 的應(yīng)用程序的基于web的瀏覽器應(yīng)用程序組件通過網(wǎng)絡(luò)向該基于web的應(yīng) 用程序的對應(yīng)的web服務(wù)器應(yīng)用程序組件發(fā)送對基于web的應(yīng)用程序資源 的在線請求。計(jì)算機(jī)系統(tǒng)檢測到該請求失敗。該計(jì)算機(jī)系統(tǒng)確定該基于web 的應(yīng)用程序被啟用來用于離線執(zhí)行。該計(jì)算機(jī)系統(tǒng)將該web瀏覽器配置成, 在其它web瀏覽器應(yīng)用程序保持配置成在線執(zhí)行的同時(shí)離線執(zhí)行該web瀏 覽器應(yīng)用程序。該計(jì)算機(jī)系統(tǒng)從該計(jì)算機(jī)系統(tǒng)的本地存儲中提供所請求的 基于web的應(yīng)用程序資源而不將該web瀏覽器離線。
本發(fā)明的各實(shí)施例可以包括含有計(jì)算機(jī)硬件的專用或通用計(jì)算機(jī),這 將在以下做出進(jìn)一步討論。本發(fā)明的范圍內(nèi)的各實(shí)施例還包括用于承載或 其上儲存有計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算 機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)訪問的任何可用介質(zhì)。作為示例 而非限制,計(jì)算機(jī)可讀介質(zhì)可包括物理(或可記錄類型的)計(jì)算機(jī)可讀存 儲介質(zhì),諸如RAM、 ROM、 EEPROM、 CD-ROM或其它光盤存儲、磁盤 存儲或其它磁存儲設(shè)備、或可用于存儲計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式 的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問的任何其它介質(zhì)。
在本說明書和所附權(quán)利要求書中,"網(wǎng)絡(luò)"被定義為允許在計(jì)算機(jī)系 統(tǒng)和/或模塊之間傳輸電子數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或 另一通信連接(硬連線、無線或硬連線或無線的組合)傳輸或提供給計(jì)算 機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈橛?jì)算機(jī)可讀介質(zhì)。因此,作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括可用于承載或存儲計(jì)算機(jī)可執(zhí)行指令或數(shù) 據(jù)結(jié)構(gòu)形式的所需程序代碼裝置并可由通用或?qū)S糜?jì)算機(jī)訪問的網(wǎng)絡(luò)或數(shù) 據(jù)鏈路。
計(jì)算機(jī)可執(zhí)行指令包括例如,使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰?br>
理設(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是 例如二進(jìn)制代碼、諸如匯編語言等中間格式指令、或甚至源代碼。盡管用 結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán)利 要求書中定義的主題不必限于上述特征或動(dòng)作。相反,上述特征和動(dòng)作是 作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。
本領(lǐng)域的技術(shù)人員將理解,可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的 網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐本發(fā)明,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺式
計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于 微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、 移動(dòng)電話、PDA、尋呼機(jī)等等。本發(fā)明也可以在其中通過網(wǎng)絡(luò)鏈接(或者 通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的 組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)踐。 在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
圖1A示出便于配置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器 應(yīng)用程序組件離線使用的示例計(jì)算機(jī)體系結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu)100 包括計(jì)算機(jī)系統(tǒng)101、網(wǎng)絡(luò)131和域172。計(jì)算機(jī)體系結(jié)構(gòu)100中所描繪的 是包括應(yīng)用程序191C、 web瀏覽器104、應(yīng)用程序191S和web服務(wù)器173 在內(nèi)的各種組件。各種組件中的每一個(gè)都可被連接到諸如局域網(wǎng)("LAN")、 廣域網(wǎng)("WAN")、或甚至因特網(wǎng)等網(wǎng)絡(luò)131。因此,各種組件可對連 接到網(wǎng)絡(luò)的其它組件收發(fā)數(shù)據(jù)。因此,各組件可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通
過網(wǎng)絡(luò)交換消息相關(guān)數(shù)據(jù)(例如,網(wǎng)際協(xié)議("IP")數(shù)據(jù)報(bào)和利用IP數(shù) 據(jù)報(bào)的其它更高層協(xié)議,如傳輸控制協(xié)議("TCP")、超文本傳輸協(xié)議 ("HTTP")、簡單郵件傳輸協(xié)議("SMTP")等)。例如,各組件可 交換包含web服務(wù)相關(guān)數(shù)據(jù)的簡單對象訪問協(xié)議("SOAP")封裝。在某 些實(shí)施例中,應(yīng)用程序191C和應(yīng)用程序191S是諸如web服務(wù)應(yīng)用程序等分布式應(yīng)用程序的不同部分。
web瀏覽器104可被配置成向諸如,例如域171等可經(jīng)由網(wǎng)絡(luò)131來 訪問的域請求基于web的內(nèi)容。基于web的內(nèi)容可包括文本數(shù)據(jù)、圖像數(shù) 據(jù)、音頻/視頻數(shù)據(jù)等。例如,應(yīng)用程序191C等一個(gè)或多個(gè)基于web的應(yīng) 用程序可被配置成在web瀏覽器104中運(yùn)行?;趙eb的應(yīng)用程序可以是 腳本和/或其它計(jì)算機(jī)可執(zhí)行指令?;趙eb的應(yīng)用程序可以向可經(jīng)由網(wǎng)絡(luò) 131來訪問的域請求諸如數(shù)據(jù)庫數(shù)據(jù)等其它類型的數(shù)據(jù)。
域171可由諸如域名服務(wù)("DNS")名稱等可解析成IP地址的域名 172來標(biāo)識。域名172可被輸入到web瀏覽器(可能連同域171中的指定 應(yīng)用程序的其它標(biāo)識信息一起輸入)以指示瀏覽器向web服務(wù)器173請求 內(nèi)容。域名連同其它標(biāo)識信息一起可被包括在輸入到web瀏覽器的統(tǒng)一資 源定位符("URL")中。取決于請求和/或接收到的URL的類型,web服 務(wù)器153可訪問來自內(nèi)容175的內(nèi)容和/或啟動(dòng)諸如應(yīng)用程序191S等基于 web的應(yīng)用程序。應(yīng)用程序191S可請求來自域171中的其它位置的數(shù)據(jù), 諸如來自數(shù)據(jù)庫174 (例如,SQL或其它關(guān)系數(shù)據(jù)庫)等。web服務(wù)器173 可在對web瀏覽器請求的響應(yīng)中包括來自175的內(nèi)容和/或來自數(shù)據(jù)庫174 的數(shù)據(jù)。
瀏覽器高速緩存106被配置成高速緩存從包括域171在內(nèi)的域接收到 的基于web的內(nèi)容中所包括的組分。高速緩存的組分隨后可用于實(shí)現(xiàn)發(fā)自 web瀏覽器104的基于web的請求。例如,高速緩存的組分可以是直接從 瀏覽器高速緩存106訪問的(無需經(jīng)由網(wǎng)絡(luò)131來傳輸高速緩存的組分) 并且在web瀏覽器104中呈現(xiàn)的內(nèi)容155的各部分。
在web瀏覽器嘗試處理來自web瀏覽器104中的web應(yīng)用程序的請求 時(shí),該web瀏覽器可以訪問瀏覽器高速緩存106來搜索本地地高速緩存組 分。在標(biāo)識了高速緩存組分的情況下,該web瀏覽器可以訪問這些組分并 在將在web瀏覽器104中的web應(yīng)用程序中呈現(xiàn)的響應(yīng)中包括這些組分。
本地存儲訪問模塊107管理對本地存儲108的訪問。本地存儲108被 配置成存儲響應(yīng)于基于web的請求所接收到的數(shù)據(jù)庫數(shù)據(jù)。存儲在本地存 儲108中的數(shù)據(jù)庫數(shù)據(jù)可由web瀏覽器104來訪問(無需經(jīng)由網(wǎng)絡(luò)131來傳輸該數(shù)據(jù)庫數(shù)據(jù)),并可被呈現(xiàn)在web瀏覽器104中的基于web的應(yīng)用 程序中。數(shù)據(jù)庫數(shù)據(jù)可連同將該數(shù)據(jù)庫數(shù)據(jù)發(fā)送給web瀏覽器104的域的 指示一起存儲在本地存儲108中。
本地存儲訪問模塊107可以過濾來自源自web服務(wù)器的腳本代碼模塊 的、請求訪問存儲在本地存儲108中的數(shù)據(jù)庫數(shù)據(jù)的請求,以便防止一個(gè) 域訪問另一個(gè)域的數(shù)據(jù)庫數(shù)據(jù)(即,數(shù)據(jù)庫數(shù)據(jù)可按域來沙箱化)。因此, 雖然數(shù)據(jù)庫數(shù)據(jù)存儲在本地存儲108中,但該數(shù)據(jù)庫數(shù)據(jù)通常不可被訪問 來實(shí)現(xiàn)對任何域的請求。
離線管理器122被配置成管理應(yīng)用程序的離線狀態(tài)。在離線管理器122 接收應(yīng)用程序被啟用來用于離線執(zhí)行的指示時(shí),離線管理器122可以嘗試 用用于該應(yīng)用程序的離線操作的組分和/或數(shù)據(jù)來填充瀏覽器高速緩存106 和/或本地存儲。即,在與在線的web服務(wù)器的通信隨后失去的情況下,離 線管理器122可以啟動(dòng)與該web服務(wù)器的通信以下載應(yīng)用程序的離線執(zhí)行 可能需要的組分和/或數(shù)據(jù)。
離線管理器122可以延長要用于離線執(zhí)行的組分的期限,來覆蓋web 瀏覽器104的默認(rèn)的高速緩存回收策略。例如,離線管理器122可以將要 用于離線執(zhí)行的組分的期限設(shè)置成30天。要用于離線執(zhí)行的組分的期限的 延長可以防止瀏覽器在web瀏覽器104導(dǎo)航其它網(wǎng)站時(shí)清除這些組分。
配置界面102便于用戶配置啟用離線的應(yīng)用程序和域的存儲定額。例 如,用戶可以選擇應(yīng)用程序191C作為用于離線執(zhí)行的應(yīng)用程序,從而使得 應(yīng)用程序191C被包括在啟用離線的應(yīng)用程序121中(例如,被計(jì)算機(jī)系統(tǒng) 的用戶標(biāo)識為啟用離線的應(yīng)用程序的列表)。用戶最初還可以設(shè)置以及更 改域的存儲定額的值。例如,用戶可以設(shè)置定額數(shù)據(jù)內(nèi)的域171 (由域名 172表示)定額112的值。 一般而言,定額是分配給域的用于在計(jì)算機(jī)系統(tǒng) 101處本地地存儲(即,在瀏覽器高速緩存106和/或本地存儲108中)項(xiàng) 目的存儲空間的量。配置界面102可以呈現(xiàn)用于接收和實(shí)現(xiàn)用于啟用離線 的應(yīng)用程序和域定額的用戶設(shè)置的用戶界面控件。盡管離線管理器122和 本地存儲訪問模塊107是分開描述的,但它們可以協(xié)同交互,以便指定的 域在瀏覽器高速緩存106和本地存儲108中所使用的存儲空間的總和不超過該指定域的定額。
離線檢測程序被配置成檢測web瀏覽器104或基于web的應(yīng)用程序何 時(shí)不能夠與web服務(wù)器通信。與web服務(wù)器的通信可能出于多種原因而不 可獲得,諸如到因特網(wǎng)的或因特網(wǎng)上的通信鏈路的故障、web服務(wù)器已崩 潰等。在某些實(shí)施例中,離線檢測程序123 —次次地或以指定的時(shí)間間隔 嘗試聯(lián)系web服務(wù)器,以確定與該web服務(wù)器的聯(lián)系是否可獲得。
在與web服務(wù)器的通信的狀態(tài)改變時(shí),離線檢測程序123可以通知離 線管理器122和/或本地存儲訪問模塊107。例如,在一可獲得web服務(wù)器 變得不可獲得(例如,通信故障、該web服務(wù)器崩潰等)時(shí)和在一不可獲 得web服務(wù)器變得可獲得(例如,通信恢復(fù)、該web服務(wù)器在重啟后開始 操作等)時(shí),離線檢測程序123可以發(fā)送通知。離線檢測程序123還可以 發(fā)送用戶界面通知(例如,通過配置界面102),警告用戶web服務(wù)器的 可獲得性的轉(zhuǎn)換。
圖2示出用于配置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器應(yīng) 用程序離線使用的示例方法200的流程圖。方法200將參考圖1A中的計(jì)算 機(jī)體系結(jié)構(gòu)100的組件和數(shù)據(jù)來描述。
方法200包括確定基于web的應(yīng)用程序被啟用來用于離線執(zhí)行的動(dòng)作 (動(dòng)作201)。例如,離線管理器122可以訪問啟用離線的應(yīng)用程序121 來確定應(yīng)用程序191C被啟用來用于離線執(zhí)行。方法200包括檢測到該基于 web的應(yīng)用程序的基于web的服務(wù)器組件可經(jīng)由網(wǎng)絡(luò)通信獲得的動(dòng)作(動(dòng) 作202)。例如,離線檢測程序123能檢測到域172中的web服務(wù)器173、 應(yīng)用程序191S、和其它組件可用于通過網(wǎng)絡(luò)131來通信。
響應(yīng)于檢測到可獲得的通信,web瀏覽器104可以發(fā)送資源請求以便 于應(yīng)用程序191C的離線執(zhí)行。例如,web瀏覽器104可以向web服務(wù)器 713發(fā)送請求199。請求199可以包括對包括來自內(nèi)容175的內(nèi)容、來自數(shù) 據(jù)庫174的數(shù)據(jù)庫數(shù)據(jù)、和對應(yīng)于應(yīng)用程序191S的可執(zhí)行指令(例如,腳 本)的各部分在內(nèi)的各種不同的資源的請求。
Web服務(wù)器173可以接收請求199。響應(yīng)于接收到請求199, web服務(wù) 器173可以收集資源集合(例如,資源193B)來便于應(yīng)用程序191C的離線執(zhí)行。即,web服務(wù)器173可以"扯下(tear off)"域172中的網(wǎng)站的 一部分(例如,制作其功能復(fù)件)以傳送到計(jì)算機(jī)系統(tǒng)101。 web服務(wù)器 173可以向計(jì)算機(jī)系統(tǒng)101發(fā)送該資源集合。例如,響應(yīng)于請求199, web 服務(wù)器173可以向計(jì)算機(jī)系統(tǒng)101發(fā)送資源193B(用于便于應(yīng)用程序191C 的離線執(zhí)行的資源集合)。資源193B可以包括資源194B (應(yīng)用程序191S 的代碼、來自內(nèi)容175的內(nèi)容等)和數(shù)據(jù)庫174 (或其一部分)。
在某些實(shí)施例中,域還可以在發(fā)送資源集合之前發(fā)送資源清單。資源 清單可以標(biāo)識要被包括在資源集合中的資源,且可以指示用于存儲該資源
集合的存儲要求。資源清單還可以指示要被本地地執(zhí)行以便于在接收到對 應(yīng)于該應(yīng)用程序的URL時(shí)應(yīng)用程序的離線執(zhí)行(否則這將引起在web服務(wù) 器或服務(wù)器側(cè)分布式應(yīng)用程序組件處的遠(yuǎn)程執(zhí)行)的模塊。資源清單還可 以指示要被執(zhí)行來同步資源以便于應(yīng)用程序的離線執(zhí)行的模塊。可以在先 前不可獲得的web服務(wù)器和/或應(yīng)用程序變得可獲得時(shí)、與可獲得web服務(wù) 器和/或應(yīng)用程序、或響應(yīng)于與可獲得web服務(wù)器和/或應(yīng)用程序同步的用戶 請求來同步資源。用于啟動(dòng)離線執(zhí)行的模塊和用于同步資源的模塊其本身 可以是包括在用于便于應(yīng)用程序的離線執(zhí)行的資源集合中的資源。
如在計(jì)算機(jī)體系結(jié)構(gòu)100中所示,例如,web服務(wù)器173可以向計(jì)算 機(jī)系統(tǒng)101發(fā)送清單192。清單192可以標(biāo)識資源193B中的資源,指示資 源193B的存儲要求,指示在web瀏覽器104處接收到對應(yīng)于web服務(wù)器 173和/或應(yīng)用程序191S的URL時(shí)要執(zhí)行的用于應(yīng)用程序的離線執(zhí)行的模 塊,以及指示要被執(zhí)行來同步資源193B的模塊。以下是示例XML資源清 單(出于引用的目的而包括了行號)
1. 〈?xml version="1.0" encoding="utf-8" 〉
2. 〈resources name-"Expense Report"〉
3. 〈resource src="default.css" />4.
5. <resource src="images/reconcile.jpg" />
6. <resource src="images/personal.jpg" />
7. 〈resource src="images/dispute.jpg" />8. <resource src="images/hold.jpg" />9.
10. <resource src="ExpenseReportService.asmx/js" />
11. <resource src="ExpenseReportLineItemService.asmx/js" /〉12.
13. 〈resource src-"DefaultSync.aspx" />14.
15. 〈resource src-"ExpenseReports.aspx" />
16. 〈resource src="ExpenseReport.aspx" />17.
18. <runOfflineUrl src-"ExpenseReports.aspx" />
19. <takeOnlineOrSyncUrl src="DefaultSync.aspx" />
20. <database spaceNeeded="60" />
21. </resources>
在該示例清單中,行3-16標(biāo)識用于便于"ExpenseReport(經(jīng)費(fèi)報(bào)告)" (在行2處標(biāo)識)應(yīng)用程序的離線執(zhí)行的資源。行20指示用于存儲該清單 中所標(biāo)識的資源的存儲要求是"60"(例如,以兆字節(jié)為單位)。行18指 示模塊"ExpenseReports.aspx"(例如,腳本)要被本地地(例如在計(jì)算機(jī) 系統(tǒng)104處)執(zhí)行以啟動(dòng)經(jīng)費(fèi)報(bào)告應(yīng)用程序的離線執(zhí)行。 ExpenseReports.aspx在行15處被標(biāo)識為資源。行 19指示模塊 "DefaultSync.aspx"(例如,腳本要被本地地執(zhí)行以同步該示例清單中所 標(biāo)識的資源)。"DefaultSync.aspx"在行13處被標(biāo)識為資源。
方法200包括經(jīng)由網(wǎng)絡(luò)通信從該基于web的服務(wù)器組件接收用于該基 于web的應(yīng)用程序的資源的動(dòng)作(動(dòng)作203)。例如,web瀏覽器104可 以從域171接收資源193B。
在某些實(shí)施例中,在接收資源193B之前,離線管理器122和/或本地 存儲訪問模塊108基于定額112來確定資源193B的存儲是適當(dāng)?shù)?。S卩,離 線管理器122和/或本地存儲訪問模塊105驗(yàn)證向域171分配的存儲空間足 以存儲資源194B和數(shù)據(jù)庫174。如果所分配的存儲空間是足夠的,則web瀏覽器104可以接受資源193B。
如果基于定額112所分配的存儲空間是不足夠的,則可以拒絕資源 193B (或其一部分)。另選地,配置界面102可以通知計(jì)算機(jī)系統(tǒng)102的 用戶向域172分配的存儲空間不足以存儲資源193B。在適當(dāng)?shù)那闆r下,用 戶隨后可以通過配置界面102來將定額112增加到足以存儲資源193B的 量。如果用戶選擇不將定額122增加到足以存儲資源193B的量,則可以拒 絕資源193B (或其一部分)。
方法200包括在計(jì)算機(jī)系統(tǒng)處本地地存儲所接收到的資源的動(dòng)作,該 本地地存儲的資源復(fù)件可由web瀏覽器客戶機(jī)組件訪問,基于web的客戶 機(jī)組件可以使用該本地地存儲的資源而無需網(wǎng)絡(luò)通信以便在檢測到基于 web的服務(wù)器組件不可經(jīng)由網(wǎng)絡(luò)通信獲得時(shí)可以響應(yīng)于來自基于web的客 戶機(jī)組件的請求來訪問該本地地存儲的資源(動(dòng)作204)。例如,web瀏覽 器104可以將資源194B存儲在瀏覽器高速緩存106中,并可以將數(shù)據(jù)庫 174 (連同域名172)存儲在本地存儲108中。因此,web瀏覽器104和應(yīng) 用程序191C可以使用資源194B和數(shù)據(jù)庫174而無需通過網(wǎng)絡(luò)131傳輸資 源194B和數(shù)據(jù)庫174。因此,資源194B和數(shù)據(jù)庫174可被用來便于應(yīng)用 程序191C的離線執(zhí)行。例如,在域171不可達(dá)到時(shí),來自應(yīng)用程序191C 的(去往應(yīng)用程序191S的)對資源194C中的資源的請求可以通過訪問來 自瀏覽器高速緩存106中的資源來實(shí)現(xiàn)。配置成在離線執(zhí)行期間接收請求 (例如,對應(yīng)于應(yīng)用程序191S的URL)的模塊可以便于訪問瀏覽器高速緩 存106中的資源。
方法200包括將本地地存儲的資源配置成在指定的一段時(shí)間內(nèi)保持本 地地存儲在計(jì)算機(jī)系統(tǒng)上,從而覆蓋web瀏覽器的默認(rèn)的高速緩存回收設(shè) 置的動(dòng)作(動(dòng)作205)。例如,離線管理器123可以延長資源194B期滿的 時(shí)間。延長資源期滿的時(shí)間可以包括用具有相當(dāng)長期限(例如,30天)的 粘著位來標(biāo)記資源。使用粘著位可以覆蓋web瀏覽器的默認(rèn)的高速緩存回 收設(shè)置。例如,用粘著位標(biāo)記資源194B中的資源可以覆蓋與瀏覽器高速緩 存106相關(guān)聯(lián)的高速緩存回收策略。
在某些實(shí)施例中,用于應(yīng)用程序的離線執(zhí)行的資源是預(yù)高速緩存的??梢栽跈z測到基于web的服務(wù)器組件不可獲得之前預(yù)高速緩存資源。例如, 在初始指示基于web的應(yīng)用程序被啟用來用于離線執(zhí)行時(shí)(例如,在用戶 最初將一應(yīng)用程序包括在啟用離線的應(yīng)用程序121中時(shí)),離線管理器122 可以請求資源來便于該基于web的應(yīng)用程序的離線執(zhí)行。因此,在后續(xù)通 信故障發(fā)生時(shí),該基于web的應(yīng)用程序更高效地轉(zhuǎn)換為離線執(zhí)行。
在其它實(shí)施例中,本地地存儲的資源與對基于web的服務(wù)器組件可獲 得的對應(yīng)的資源進(jìn)行同步。例如,情況可以是資源191A先前被存儲在瀏覽 器高速緩存106中以供應(yīng)用程序191C的離線執(zhí)行。然而,在某些時(shí)候,在 存儲資源194A后,內(nèi)容174的各部分被更新了。因此,接收資源194B來 將本地地存儲的資源與對web服務(wù)器173和/或應(yīng)用程序191S可獲得的資 源進(jìn)行同步。同步可以重寫本地地存儲的資源的先前版本。例如,接收資 源194B可以使資源194A被重寫。在同步之后可以重新設(shè)置粘著位。
圖1B示出便于離線運(yùn)行基于web的應(yīng)用程序的計(jì)算機(jī)體系結(jié)構(gòu)100。 圖1B所示的計(jì)算機(jī)體系結(jié)構(gòu)100示出資源194B的更詳細(xì)的視圖。資源 194B包括模塊195、其它模塊196和內(nèi)容197。模塊195 (例如,腳本)是 要被執(zhí)行來便于應(yīng)用程序191C的離線執(zhí)行的模塊。在域171不可獲得的情 況下接收到應(yīng)用程序191S的URL時(shí),可以執(zhí)行模塊195。先前可能在清單 192中已經(jīng)標(biāo)識了模塊195。其它模塊196表示可以在模塊195的執(zhí)行期間 調(diào)用來便于應(yīng)用程序191C的離線執(zhí)行的其它模塊(例如,其它腳本)。內(nèi) 容197表示用于便于應(yīng)用程序191C的離線執(zhí)行的內(nèi)容。
圖3示出用于離線運(yùn)行基于web的應(yīng)用程序的示例方法300的流程圖。 方法300將參考圖1B中的計(jì)算機(jī)體系結(jié)構(gòu)IOO的組件和數(shù)據(jù)來描述。
方法300包括基于web的應(yīng)用程序的web瀏覽器應(yīng)用程序組件向該基 于web的應(yīng)用程序的對應(yīng)的web服務(wù)器應(yīng)用程序組件發(fā)送對基于web的應(yīng) 用程序資源的請求的動(dòng)作(動(dòng)作301)。例如,應(yīng)用程序191C可以向web 瀏覽器104提交請求141。請求141可以包括域171中的URL,指示對來 自應(yīng)用程序191S的對資源的請求。
方法300包括檢測到與對應(yīng)的web服務(wù)器應(yīng)用程序組件的通信無法通 過網(wǎng)絡(luò)獲得的動(dòng)作(動(dòng)作302)。例如,離線檢測程序123可以檢測到域171是不可獲得的。在未接收到對于請求141的響應(yīng)的情況下,離線檢測程 序123可以檢測到域171的不可獲得性。在確定域171不可獲得之前,離 線檢測程序可以嘗試與域172的進(jìn)一步通信。另選地,在請求141發(fā)生之 前,離線檢測程序可能已經(jīng)檢測到域171是不可獲得的。
方法300包括確定該基于web的應(yīng)用程序被啟用來用于離線執(zhí)行的動(dòng) 作(動(dòng)作303)。例如,響應(yīng)于檢測到域171是不可獲得的,離線管理器 122可以引用啟用離線的應(yīng)用程序121以確定應(yīng)用程序191C被啟用來用于 離線執(zhí)行。
方法300包括將該web瀏覽器配置成離線執(zhí)行該web瀏覽器應(yīng)用程序, 而其它web瀏覽器應(yīng)用程序保持配置成在線執(zhí)行的動(dòng)作(動(dòng)作304)。例 如,離線管理器122可以執(zhí)行模塊195并配置瀏覽器104,以使得來自應(yīng)用 程序191C的請求被定向到模塊195且來自模塊195的響應(yīng)被定向到應(yīng)用程 序191C。然而,來自其它應(yīng)用程序的請求和到這些應(yīng)用程序的響應(yīng)未被重 新定向。即,web瀏覽器104可以繼續(xù)經(jīng)由網(wǎng)絡(luò)131與其它域通信。因此, 在應(yīng)用程序191C的通信被傳送到模塊195并來自于模塊195期間,web瀏 覽器104可以通過網(wǎng)絡(luò)131向其它域發(fā)送基于web的請求并從其它域接收 基于web的響應(yīng)。
方法300包括從計(jì)算機(jī)系統(tǒng)處的本地存儲提供所請求的基于web的應(yīng) 用程序資源而不將web瀏覽器離線的動(dòng)作(動(dòng)作305)。例如,模塊195 可以使用其它模塊196、內(nèi)容197和數(shù)據(jù)庫174來制定對請求141的響應(yīng) 142。模塊195可以向應(yīng)用程序191C發(fā)送(可能通過web瀏覽器104)響 應(yīng)142。
在從本地存儲訪問用于響應(yīng)請求141的資源期間,web瀏覽器104可 以通過網(wǎng)絡(luò)131向其它域繼續(xù)發(fā)送基于web的請求并從其它域接收基于 web的響應(yīng)。因此,在訪問其它模塊196、內(nèi)容197、和數(shù)據(jù)庫174來制定 對請求141的響應(yīng)的同時(shí),經(jīng)由網(wǎng)絡(luò)131所發(fā)送的請求和響應(yīng)還可以在瀏 覽器高速緩存106和本地存儲108中檢索和存儲其它數(shù)據(jù)。
本發(fā)明的各實(shí)施例便于基于web的可執(zhí)行指令和數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)處 的本地存儲。該基于web的可執(zhí)行指令和數(shù)據(jù)可被用來本地地實(shí)現(xiàn)來自與web瀏覽器相關(guān)聯(lián)的模塊的請求(發(fā)送到發(fā)送該可執(zhí)行指令和數(shù)據(jù)的域)。 因此,在網(wǎng)站以其它方式不可獲得的情況下,本地地存儲的基于web的可 執(zhí)行指令和數(shù)據(jù)可在計(jì)算機(jī)系統(tǒng)處用來模擬與該網(wǎng)站的通信。
本發(fā)明的各實(shí)施例可以根據(jù)用戶和計(jì)算機(jī)系統(tǒng)配置規(guī)則來幫助該計(jì)算 機(jī)系統(tǒng)處的非易失性存儲的透明的擴(kuò)展。文件的多個(gè)陰影復(fù)件的維護(hù)提供 冗余,從而在巻發(fā)生故障的情況下得到更高效的恢復(fù)。此外,在未以其它 方式繁重使用系統(tǒng)資源時(shí),文件操作可以在后臺在陰影復(fù)件之間傳播。
本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實(shí) 施例在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范 圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方式的含 義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍涵蓋。
權(quán)利要求
1.一種在連接到網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)處的用于配置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器應(yīng)用程序組件離線使用的方法,所述計(jì)算機(jī)系統(tǒng)包括web瀏覽器和對應(yīng)的基于web的應(yīng)用程序的多個(gè)web瀏覽器應(yīng)用程序組件,所述web瀏覽器被配置成執(zhí)行各web瀏覽器應(yīng)用程序組件來分別從所述對應(yīng)的基于web的應(yīng)用程序的web服務(wù)器應(yīng)用程序組件訪問資源,所述方法包括確定所述基于web的應(yīng)用程序被啟用來用于離線執(zhí)行的動(dòng)作;檢測到所述基于web應(yīng)用程序的基于web的服務(wù)器組件可經(jīng)由網(wǎng)絡(luò)通信獲得的動(dòng)作;經(jīng)由網(wǎng)絡(luò)通信從所述基于web的服務(wù)器組件接收用于所述基于web的應(yīng)用程序的資源的動(dòng)作;在所述計(jì)算機(jī)系統(tǒng)處本地地存儲所接收到的資源的動(dòng)作,所述本地地存儲的資源的復(fù)件可由web瀏覽器客戶機(jī)組件訪問,所述基于web的客戶機(jī)組件可以使用所述本地地存儲的資源而無需網(wǎng)絡(luò)通信以便在檢測到所述基于web的服務(wù)器組件不可經(jīng)由網(wǎng)絡(luò)通信獲得時(shí)可以響應(yīng)于來自所述基于web的客戶機(jī)組件的請求來訪問所述本地地存儲的資源;以及將所述本地地存儲的資源配置成在指定的一段時(shí)間內(nèi)保持本地地存儲在所述計(jì)算機(jī)系統(tǒng)上從而覆蓋所述web瀏覽器的默認(rèn)高速緩存回收設(shè)置的動(dòng)作。
2. 如權(quán)利要求l所述的方法,其特征在于,檢測到所述基于web應(yīng)用 程序的基于web的服務(wù)器組件可經(jīng)由網(wǎng)絡(luò)通信獲得的動(dòng)作包括在web服務(wù) 器有一段時(shí)間不可獲得之后,重新建立與所述web服務(wù)器的通信的動(dòng)作。
3. 如權(quán)利要求1所述的方法,其特征在于,接收用于所述基于web的 應(yīng)用程序的資源的動(dòng)作包括接收在所述web服務(wù)器不可獲得的情況下要在 所述計(jì)算機(jī)系統(tǒng)處本地地執(zhí)行的模塊,所述模塊被配置成從所述web瀏覽 器應(yīng)用程序組件接收請求并生成對應(yīng)的響應(yīng)。
4. 如權(quán)利要求1所述的方法,其特征在于,在所述計(jì)算機(jī)系統(tǒng)處本地 地存儲所接收到的資源的動(dòng)作包括在檢測到所述基于web的服務(wù)器組件隨后不可獲得之前,預(yù)高速緩存所接收到的資源的動(dòng)作。
5. 如權(quán)利要求1所述的方法,其特征在于,在所述計(jì)算機(jī)系統(tǒng)處本地 地存儲所接收到的資源的動(dòng)作包括將本地地存儲的資源與包含所述基于web的服務(wù)器組件的域內(nèi)的、所述基于web的服務(wù)器組件可獲得的資源進(jìn) 行同步的動(dòng)作。
6. 如權(quán)利要求l所述的方法,其特征在于,還包括在從所述基于web的服務(wù)器組件接收所述資源的動(dòng)作之前,接收包括 所述基于web的服務(wù)器組件將要發(fā)送到所述計(jì)算機(jī)系統(tǒng)以供本地存儲的資 源的列表并指示對于存儲所述資源的存儲要求的清單的動(dòng)作;以及確定分配給包含所述基于web的服務(wù)器組件的域的存儲空間的量足以 滿足所述清單中指示的存儲要求的動(dòng)作。
7. 如權(quán)利要求l所述的方法,其特征在于,還包括-響應(yīng)于檢測到所述基于web的應(yīng)用程序的基于web的服務(wù)器組件可經(jīng)由網(wǎng)絡(luò)通信獲得,發(fā)送所述基于web的服務(wù)器組件的可獲得性的用戶通知 的動(dòng)作。
8. —種連接到網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)處的用于離線運(yùn)行基于web的應(yīng)用程 序的方法,所述計(jì)算機(jī)系統(tǒng)包括web瀏覽器和對應(yīng)的基于web的應(yīng)用程序 的多個(gè)web瀏覽器應(yīng)用程序組件,所述web瀏覽器被配置成執(zhí)行各web瀏 覽器應(yīng)用程序組件來分別從所述對應(yīng)的基于web的應(yīng)用程序的web服務(wù)器應(yīng)用程序組件訪問資源,所述方法包括基于web的應(yīng)用程序的web瀏覽器應(yīng)用程序組件向所述基于web的應(yīng) 用程序的對應(yīng)的web服務(wù)器應(yīng)用程序組件發(fā)送對基于web的應(yīng)用程序資源 的請求的動(dòng)作;檢測到與所述對應(yīng)的web服務(wù)器應(yīng)用程序組件的通信無法通過網(wǎng)絡(luò)獲 得的動(dòng)作;確定所述基于web的應(yīng)用程序被啟用來用于離線執(zhí)行的動(dòng)作; 將所述web瀏覽器配置成在其它web瀏覽器應(yīng)用程序保持配置成在線 執(zhí)行的同時(shí)離線執(zhí)行所述web瀏覽器應(yīng)用程序的動(dòng)作;以及從所述計(jì)算機(jī)系統(tǒng)的本地存儲中提供所請求的基于web的應(yīng)用程序資源而不將所述web瀏覽器離線的動(dòng)作。
9. 如權(quán)利要求8所述的方法,其特征在于,所述基于web的應(yīng)用程序 的web瀏覽器應(yīng)用程序組件發(fā)送請求的動(dòng)作包括所述web瀏覽器應(yīng)用程序 組件向所述web瀏覽器發(fā)送所述web服務(wù)器應(yīng)用程序組件的URL的動(dòng)作。
10. 如權(quán)利要求8所述的方法,其特征在于,確定所述基于web的 應(yīng)用程序被啟用來用于離線執(zhí)行的動(dòng)作包括引用被啟用來用于離線執(zhí)行的 應(yīng)用程序的列表的動(dòng)作。
11. 如權(quán)利要求8所述的方法,其特征在于,將所述web瀏覽器配 置成離線執(zhí)行所述web瀏覽器應(yīng)用程序的動(dòng)作包括從所述計(jì)算機(jī)系統(tǒng)處的 瀏覽器高速緩存中本地地加載模塊的動(dòng)作,所述模塊被配置成從所述web 瀏覽器應(yīng)用程序組件接收請求并制定對應(yīng)的響應(yīng)。
12. 如權(quán)利要求11所述的方法,其特征在于,從所述計(jì)算機(jī)系統(tǒng)處 的瀏覽器高速緩存中本地地加載模塊的動(dòng)作包括,加載在資源清單中被標(biāo) 識為要在接收到對所述web服務(wù)器應(yīng)用程序組件的請求且與所述web服務(wù) 器應(yīng)用程序組件的通信無法通過網(wǎng)絡(luò)獲得的情況下執(zhí)行的模塊的模塊的動(dòng) 作。
13. 如權(quán)利要求12所述的方法,其特征在于,從所述計(jì)算機(jī)系統(tǒng)處 的本地存儲提供所請求的基于web的應(yīng)用程序資源而不將所述web瀏覽器 離線的動(dòng)作包括將所述請求定向到所加載的模塊的動(dòng)作;所加載的模塊從所述瀏覽器高速緩存訪問所請求的基于web的應(yīng)用程 序資源的動(dòng)作;所加載的模塊只使用從所述計(jì)算機(jī)系統(tǒng)的本地存儲所訪問的資源來制 定對請求的完整響應(yīng)的動(dòng)作;以及向所述web瀏覽器應(yīng)用程序組件傳送所述完整響應(yīng)的動(dòng)作。
14. 如權(quán)利要求8所述的方法,其特征在于,從所述計(jì)算機(jī)系統(tǒng)處的 本地存儲中提供所請求的基于web的應(yīng)用程序資源的動(dòng)作包括,從所述計(jì) 算機(jī)系統(tǒng)處的瀏覽器高速緩存中提供內(nèi)容以及從所述計(jì)算機(jī)系統(tǒng)處的本地 存儲中提供數(shù)據(jù)庫數(shù)據(jù),以便在所述web瀏覽器應(yīng)用程序組件發(fā)送所述請求之后不發(fā)生任何網(wǎng)絡(luò)通信的情況下向所述web瀏覽器應(yīng)用程序組件提供 所請求的基于web的應(yīng)用程序資源的動(dòng)作。
15. —種計(jì)算機(jī)系統(tǒng),包括一T馱多T處埋益;系統(tǒng)存儲器;本地地部署在所述計(jì)算機(jī)系統(tǒng)處的一個(gè)或多個(gè)物理計(jì)算機(jī)可讀介質(zhì), 所述一個(gè)或多個(gè)物理計(jì)算機(jī)可讀介質(zhì)其上存儲有被配置成實(shí)現(xiàn)一種用于配 置本地內(nèi)容以供基于web的應(yīng)用程序的web瀏覽器應(yīng)用程序組件離線使用 的方法的計(jì)算機(jī)可執(zhí)行指令,所述方法包括執(zhí)行以下動(dòng)作確定所述基于web的應(yīng)用程序被啟用來用于離線執(zhí)行; 檢測到所述基于web的應(yīng)用程序的基于web的服務(wù)器組件可經(jīng)由網(wǎng) 絡(luò)通信獲得;經(jīng)由網(wǎng)絡(luò)通信從所述基于web的服務(wù)器組件接收用于所述基于web 的應(yīng)用程序的資源;在所述計(jì)算機(jī)系統(tǒng)處本地地存儲所接收到的資源,所述本地地存儲 的資源的復(fù)件可由web瀏覽器客戶機(jī)組件訪問,所述基于web的客戶機(jī)組 件可以使甩所述本地地存儲的資源而無需網(wǎng)絡(luò)通信以便在檢測到所述基于 web的服務(wù)器組件不可經(jīng)由網(wǎng)絡(luò)通信獲得時(shí)可以響應(yīng)于來自所述基于web 的客戶機(jī)組件的請求來訪問所述本地地存儲的資源;以及將所述本地地存儲的資源配置成在指定的一段時(shí)間內(nèi)保持本地地存 儲在所述計(jì)算機(jī)系統(tǒng)上從而覆蓋所述web瀏覽器的默認(rèn)高速緩存回收設(shè) 置。所述一個(gè)或多個(gè)物理計(jì)算機(jī)可讀介質(zhì)其上存儲有被配置成實(shí)現(xiàn)一種用 于離線運(yùn)行所述基于web的應(yīng)用程序的方法的計(jì)算機(jī)可執(zhí)行指令,所述方 法包括執(zhí)行以下動(dòng)作所述基于web的應(yīng)用程序的web瀏覽器應(yīng)用程序組件向所述基于 web的應(yīng)用程序的web服務(wù)器應(yīng)用程序組件發(fā)送對基于web的應(yīng)用程序資 源的請求;檢測到與所述web服務(wù)器應(yīng)用程序組件的通信無法通過網(wǎng)絡(luò)獲得;確定所述基于web的應(yīng)用程序被啟用來用于離線執(zhí)行;將所述web瀏覽器配置成在其它web瀏覽器應(yīng)用程序保持配置成在線執(zhí)行的同時(shí)離線執(zhí)行所述web瀏覽器應(yīng)用程序;以及從存儲在所述計(jì)算機(jī)系統(tǒng)處的存儲中的本地地存儲的資源提供所請求的基于web的應(yīng)用程序資源而不將所述web瀏覽器離線。
16. 如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,將所接收到的 資源本地地存儲在所述計(jì)算機(jī)系統(tǒng)處包括在檢測到所述基于web的服務(wù)器 組件隨后不可獲得之前,預(yù)高速緩存所接收到的資源。
17. 如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,在所述計(jì)算機(jī) 系統(tǒng)處本地地存儲所接收到的資源包括將本地地存儲的資源與包含所述基 于web的服務(wù)器組件的域內(nèi)的、所述基于web的服務(wù)器組件可獲得的資源 進(jìn)行同步。
18. 如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括被配置 成執(zhí)行以下動(dòng)作的計(jì)算機(jī)可執(zhí)行指令在從所述基于web的服務(wù)器組件接收所述資源的動(dòng)作之前,接收包括 所述基于web的服務(wù)器組件將要發(fā)送到所述計(jì)算機(jī)系統(tǒng)以供本地存儲的資 源的列表并指示對于存儲所述資源的存儲要求的清單;以及確定分配給包含所述基于web的服務(wù)器組件的域的存儲空間的量足以 滿足所述清單中指示的存儲要求。
19. 如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括被配置 成執(zhí)行以下動(dòng)作的計(jì)算機(jī)可執(zhí)行指令響應(yīng)于檢測到所述基于web的應(yīng)用程序的基于web的服務(wù)器組件可經(jīng) 由網(wǎng)絡(luò)通信獲得,發(fā)送所述基于web的服務(wù)器組件的可獲得性的用戶通知。
20. 如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,從所述計(jì)算機(jī) 系統(tǒng)處的本地存儲中提供所請求的基于web的應(yīng)用程序資源而不將所述 web瀏覽器離線包括將所述請求定向到本地地加載的模塊;所述本地地加載的模塊從瀏覽器高速緩存訪問所請求的基于web的應(yīng) 用程序資源;所加載的模塊只使用從所述計(jì)算機(jī)系統(tǒng)的本地存儲所訪問的資源來制 定對請求的完整響應(yīng);以及向所述web瀏覽器應(yīng)用程序組件傳送所述完整響應(yīng)。
全文摘要
本發(fā)明涉及用于基于web的應(yīng)用程序的離線執(zhí)行的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明的各實(shí)施例便于基于web的可執(zhí)行指令和數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)處的本地存儲。該基于web的可執(zhí)行指令和數(shù)據(jù)可被用來本地地實(shí)現(xiàn)來自與web瀏覽器相關(guān)聯(lián)的模塊的請求(定向到發(fā)送該供存儲的可執(zhí)行指令和數(shù)據(jù)的域)。因此,當(dāng)網(wǎng)站在其它情況下不可用時(shí),本地地存儲的基于web的可執(zhí)行指令和數(shù)據(jù)可在計(jì)算機(jī)系統(tǒng)處用來模擬與該網(wǎng)站的通信。
文檔編號G06F17/00GK101529415SQ200780040223
公開日2009年9月9日 申請日期2007年10月5日 優(yōu)先權(quán)日2006年10月30日
發(fā)明者J·C·霍金斯, S·S·尼約吉 申請人:微軟公司