專(zhuān)利名稱:本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的制作方法
本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)
祖且
Ff豕
計(jì)算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會(huì)的許多方面。的確,計(jì)算機(jī)系統(tǒng)處理信息 的能力已改變?nèi)藗兩詈凸ぷ鞯姆绞健S?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ù)的有線和無(wú)線計(jì)算機(jī)網(wǎng)絡(luò)。因此,許多計(jì)算任 務(wù)的執(zhí)行分布在多個(gè)不同的計(jì)算機(jī)系統(tǒng)和/或多個(gè)不同的計(jì)算組件上。
基于網(wǎng)絡(luò)的通信的一種常見(jiàn)形式是在萬(wàn)維網(wǎng)("WWW")上交換電子消息。 萬(wàn)維網(wǎng)上的內(nèi)容通常以客戶機(jī)/服務(wù)器模型來(lái)訪問(wèn)。客戶機(jī)計(jì)算機(jī)系統(tǒng)的"web 瀏覽器"發(fā)送訪問(wèn)由服務(wù)器計(jì)算機(jī)系統(tǒng)的"web服務(wù)器"提供的內(nèi)容的請(qǐng)求(例 如,通過(guò)將統(tǒng)一資源定位符("URL")輸入到web瀏覽器中)。如果web瀏覽 器的用戶被授權(quán)訪問(wèn)該內(nèi)容,則web服務(wù)器通常將該內(nèi)容提供給該web瀏覽 器。在web環(huán)境中,內(nèi)容和對(duì)內(nèi)容的請(qǐng)求經(jīng)常使用超文本傳輸協(xié)議("HTTP") 來(lái)傳輸。基于web的內(nèi)容可以在超文本標(biāo)記語(yǔ)言("HTML")頁(yè)面、樣式表、 圖像、腳本等中提供。
大多數(shù)web瀏覽器(即使不是全部)將基于web的內(nèi)容的各部分高速緩 存在一公共存儲(chǔ)位置(瀏覽器高速緩存)中以使得可更高效地呈現(xiàn)網(wǎng)頁(yè)的后續(xù) 呈現(xiàn)。例如,當(dāng)web瀏覽器從web服務(wù)器接收網(wǎng)頁(yè)時(shí),該web瀏覽器可本地 高速緩存該網(wǎng)頁(yè)中所包括的內(nèi)容的各部分。由此,如果web瀏覽器隨后被定向 到相同的網(wǎng)頁(yè),則該web瀏覽器可檢查該公共存儲(chǔ)位置以査找高速緩存的內(nèi)容 部分并且任何高速緩存的內(nèi)容部分都可與經(jīng)由網(wǎng)絡(luò)接收到的其他內(nèi)容組合以 構(gòu)造網(wǎng)頁(yè)。因此,使用本地高速緩存的內(nèi)容可能減少通過(guò)網(wǎng)絡(luò)傳輸來(lái)顯示來(lái)自 web服務(wù)器的內(nèi)容的數(shù)據(jù)量。結(jié)果,網(wǎng)頁(yè)可更快速地呈現(xiàn),從而改善了用戶體 驗(yàn)。
然而,通常即使只有網(wǎng)頁(yè)的一部分改變,整個(gè)頁(yè)面也通過(guò)網(wǎng)絡(luò)重新加載以 便顯示在web瀏覽器上。例如,情況可以是web瀏覽器訪問(wèn)一網(wǎng)頁(yè),經(jīng)由網(wǎng)絡(luò)通信下載該網(wǎng)頁(yè)的內(nèi)容并高速緩存了來(lái)自該網(wǎng)頁(yè)的內(nèi)容。如果該網(wǎng)頁(yè)的內(nèi)容 隨后改變了,則該web瀏覽器可能需要重新下載整個(gè)網(wǎng)頁(yè),即使只有該網(wǎng)頁(yè)的 一小部分發(fā)生了改變。
因此,最近某些web瀏覽器實(shí)現(xiàn)了部分頁(yè)面更新以便更好地利用高速緩 存的內(nèi)容。內(nèi)容在網(wǎng)頁(yè)的適用部分改變時(shí)被重新下載。然而,web瀏覽器未必 需要響應(yīng)于對(duì)網(wǎng)頁(yè)的一部分的改變而重新下載網(wǎng)頁(yè)的所有內(nèi)容。例如,當(dāng)網(wǎng)頁(yè) 中的單個(gè)圖像改變時(shí),web瀏覽器可檢測(cè)到該變化并重新下載該單個(gè)圖像而不 必重新下載未改變的其他高速緩存的內(nèi)容。
某些基于web的應(yīng)用程序還準(zhǔn)許web瀏覽器與來(lái)自數(shù)據(jù)庫(kù)(例如,SQL 數(shù)據(jù)庫(kù))的數(shù)據(jù)交互。web服務(wù)器從web瀏覽器接收請(qǐng)求,訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)的 適當(dāng)部分并且將該數(shù)據(jù)庫(kù)數(shù)據(jù)返回給web瀏覽器。取決于基于web的應(yīng)用程 序的配置,用戶可能還能夠通過(guò)web瀏覽器來(lái)改變數(shù)據(jù)庫(kù)數(shù)據(jù)的各部分。例如, 用戶可能能夠通過(guò)web瀏覽器來(lái)創(chuàng)建和修改數(shù)據(jù)庫(kù)記錄。在某些環(huán)境中,用戶 能夠通過(guò)web瀏覽器來(lái)實(shí)現(xiàn)SQL操作(CREATE TABLE、 SELECT、 INSET、 UPDATE、 DELETE等)。由此,web瀏覽器本質(zhì)上提供了用于通過(guò)網(wǎng)絡(luò)(例 如,因特網(wǎng))來(lái)操縱數(shù)據(jù)庫(kù)數(shù)據(jù)的用戶界面。
然而,通常不存在供web瀏覽器適當(dāng)?shù)馗咚倬彺姹砀駭?shù)據(jù)(例如,來(lái)自 數(shù)據(jù)庫(kù)的數(shù)據(jù))的機(jī)制。通常,用戶無(wú)法在任一時(shí)刻訪問(wèn)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)。 因此,高速緩存任何接收到的數(shù)據(jù)庫(kù)數(shù)據(jù)提供了不完整的(并且可能是不起作 用的)數(shù)據(jù)集。此外,因?yàn)閮?nèi)容通常被高速緩存在公共位置(瀏覽器高速緩存) 中,所以高速緩存來(lái)自一個(gè)網(wǎng)站(或域)的數(shù)據(jù)庫(kù)數(shù)據(jù)可能使得高速緩存的數(shù) 據(jù)庫(kù)數(shù)據(jù)對(duì)該web瀏覽器訪問(wèn)的任何其他網(wǎng)站(或域)可用。例如,高速緩存 的公司財(cái)務(wù)數(shù)據(jù)在web瀏覽器隨后(并且可能不為用戶所知)被定向到惡意網(wǎng) 站(該惡意網(wǎng)站然后可檢査該瀏覽器高速緩存)時(shí)處于危險(xiǎn)的境地。
此外,因?yàn)樵S多數(shù)據(jù)庫(kù)包含大量數(shù)據(jù),所以本地高速緩存數(shù)據(jù)庫(kù)數(shù)據(jù)可快 速填滿所分配的瀏覽器高速緩存空間。
另外,大多數(shù)瀏覽器(即使不是全部)缺乏以"離線"模式操作的能力。艮口, web瀏覽器通常無(wú)法在網(wǎng)站不可用時(shí)(例如,在沒(méi)有檢測(cè)到活動(dòng)的網(wǎng)絡(luò)連接或 對(duì)應(yīng)的web服務(wù)器停機(jī)時(shí))呈現(xiàn)有意義的內(nèi)容。例如,在web瀏覽器試圖從不可用的web服務(wù)器加載諸如例如,HTML頁(yè)面或圖像等資源時(shí),該web瀏 覽器無(wú)法呈現(xiàn)該資源(即使該資源已被本地高速緩存)。因此,即使數(shù)據(jù)庫(kù)數(shù) 據(jù)(或任何其他類(lèi)型的內(nèi)容)已被高速緩存,web瀏覽器也無(wú)法以離線模式呈 現(xiàn)該數(shù)據(jù)庫(kù)數(shù)據(jù)(或任何其他類(lèi)型的內(nèi)容)。
簡(jiǎn)要概述
本發(fā)明涉及用于本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的方法、系統(tǒng)和計(jì)算機(jī) 程序產(chǎn)品。在某些實(shí)施例中,計(jì)算機(jī)系統(tǒng)高速緩存表格數(shù)據(jù)庫(kù)以供后續(xù)web瀏 覽器訪問(wèn)。計(jì)算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器。該 基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中的數(shù)據(jù) 庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從該web服務(wù)器接收數(shù)據(jù)庫(kù)的一部分。計(jì)算機(jī)系統(tǒng)將所接收 到的數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處。該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由 web瀏覽器來(lái)本地訪問(wèn)以使得來(lái)自該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提 供給web瀏覽器而不必在基于網(wǎng)絡(luò)的通信中包括該數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)保留該數(shù) 據(jù)庫(kù)部分是從指定域接收到的指示以防止來(lái)自其他域中的web服務(wù)器的腳本 代碼訪問(wèn)該數(shù)據(jù)庫(kù)部分。
在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)在web瀏覽器中呈現(xiàn)表格數(shù)據(jù)庫(kù)數(shù)據(jù)。計(jì) 算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給由指定域名指示的指定域中的web服務(wù)器。 該基于web的請(qǐng)求是為了訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中的 數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從web服務(wù)器接收訪問(wèn)本地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處的本地存 儲(chǔ)的數(shù)據(jù)庫(kù)部分的請(qǐng)求。計(jì)算機(jī)系統(tǒng)訪問(wèn)指示先前將該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分 發(fā)送給該計(jì)算機(jī)系統(tǒng)的域的存儲(chǔ)的域名。計(jì)算機(jī)系統(tǒng)將該指定域名與存儲(chǔ)的域 名進(jìn)行比較。計(jì)算機(jī)系統(tǒng)確定該指定域名和存儲(chǔ)的域名足夠相似以允許來(lái)自 web服務(wù)器的響應(yīng)包括來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)庫(kù)數(shù)據(jù)。計(jì)算機(jī)系統(tǒng) 基于該判定來(lái)在對(duì)該基于web的請(qǐng)求的基于web的響應(yīng)中包括來(lái)自該本地存 儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)在web瀏覽器處呈現(xiàn)包括來(lái)自本地存儲(chǔ)的 數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的基于web的響應(yīng)。
9在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)在該計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)
以供后續(xù)web瀏覽器訪問(wèn)。計(jì)算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給指定域中的 web服務(wù)器。該基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù) 據(jù)庫(kù)中的數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從來(lái)自該web服務(wù)器的腳本代碼接收將該數(shù)據(jù)庫(kù)部分發(fā)送給 該計(jì)算機(jī)系統(tǒng)以便本地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處的請(qǐng)求。計(jì)算機(jī)系統(tǒng)確定分配給 該指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)該數(shù)據(jù)庫(kù)部分。計(jì)算機(jī)系 統(tǒng)從該web服務(wù)器接收該數(shù)據(jù)庫(kù)部分。計(jì)算機(jī)系統(tǒng)將所接收到的數(shù)據(jù)庫(kù)部分存 儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處。所存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由web瀏覽器來(lái)本地訪問(wèn)以使得 來(lái)自該數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提供給web瀏覽器而不必在基于網(wǎng)絡(luò)的通 信中包括該數(shù)據(jù)。
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨 在用于幫助確定所要求保護(hù)的主題的范圍。
本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,且其一部分根據(jù)本描述將 是顯而易見(jiàn)的,或可通過(guò)對(duì)本發(fā)明的實(shí)踐來(lái)獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過(guò) 在所附權(quán)利要求書(shū)中特別指出的手段和組合來(lái)實(shí)現(xiàn)和獲得。本發(fā)明的這些和其 他特征將通過(guò)以下描述和所附權(quán)利要求書(shū)而變得更加完全明顯,或可通過(guò)對(duì)下 文中所述的本發(fā)明的實(shí)踐來(lái)獲知。
附圖簡(jiǎn)述
為了描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方式,將通過(guò)參考附圖 中示出的本發(fā)明的具體實(shí)施例來(lái)呈現(xiàn)以上簡(jiǎn)要描述的本發(fā)明的更具體描述???以理解,這些附圖僅描述本發(fā)明的典型實(shí)施例,從而不被認(rèn)為是對(duì)其范圍的限 制,本發(fā)明將通過(guò)使用附圖用附加特征和細(xì)節(jié)來(lái)描述和說(shuō)明,附圖中-
圖lA—lC示出了幫助本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的示例計(jì)算機(jī)體系 結(jié)構(gòu)。
圖2示出了用于在計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù)web 瀏覽器訪問(wèn)的示例方法的流程圖。圖3示出了用于在web瀏覽器中呈現(xiàn)表格數(shù)據(jù)庫(kù)數(shù)據(jù)的示例方法的流程圖。
圖4示出了用于在計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù)web 瀏覽器訪問(wèn)的另一示例方法的流程圖。
詳細(xì)描述
本發(fā)明涉及用于本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的方法、系統(tǒng)和計(jì)算機(jī) 程序產(chǎn)品。在某些實(shí)施例中,計(jì)算機(jī)系統(tǒng)高速緩存表格數(shù)據(jù)庫(kù)以供后續(xù)web瀏 覽器訪問(wèn)。計(jì)算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器。該 基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中的數(shù)據(jù) 庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從該web服務(wù)器接收數(shù)據(jù)庫(kù)的一部分。計(jì)算機(jī)系統(tǒng)將所接收 到的數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處。該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由 web瀏覽器來(lái)本地訪問(wèn)以使得來(lái)自該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提 供給web瀏覽器而不必在基于網(wǎng)絡(luò)的通信中包括該數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)保留該數(shù) 據(jù)庫(kù)部分是從指定域接收到的指示以防止來(lái)自其他域中的web服務(wù)器的腳本 代碼訪問(wèn)該數(shù)據(jù)庫(kù)部分。
在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)在web瀏覽器中呈現(xiàn)表格數(shù)據(jù)庫(kù)數(shù)據(jù)。計(jì) 算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給由指定域名指示的指定域中的web服務(wù)器。 該基于web的請(qǐng)求是為了訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中的 數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從來(lái)自該web服務(wù)器的腳本代碼接收訪問(wèn)本地存儲(chǔ)在該計(jì)算
機(jī)系統(tǒng)處的本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的請(qǐng)求。計(jì)算機(jī)系統(tǒng)訪問(wèn)指示先前將該本地
存儲(chǔ)的數(shù)據(jù)庫(kù)部分發(fā)送給該計(jì)算機(jī)系統(tǒng)的域的存儲(chǔ)的域名。計(jì)算機(jī)系統(tǒng)將該指 定域名與存儲(chǔ)的域名進(jìn)行比較。計(jì)算機(jī)系統(tǒng)確定該指定域名和存儲(chǔ)的域名足夠
相似以允許來(lái)自web服務(wù)器的響應(yīng)包括來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)庫(kù) 數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)基于該判定來(lái)在對(duì)該基于web的請(qǐng)求的基于web的響應(yīng)中 包括來(lái)自該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)在web瀏覽器處呈現(xiàn)包 括來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的基于web的響應(yīng)。在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)在該計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)
以供后續(xù)web瀏覽器訪問(wèn)。計(jì)算機(jī)系統(tǒng)將基于web的請(qǐng)求發(fā)送給指定域中的 web服務(wù)器。該基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù) 據(jù)庫(kù)中的數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè)。
計(jì)算機(jī)系統(tǒng)從來(lái)自該web服務(wù)器的腳本代碼接收將該數(shù)據(jù)庫(kù)部分發(fā)送給
該計(jì)算機(jī)系統(tǒng)以便本地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處的請(qǐng)求。計(jì)算機(jī)系統(tǒng)確定分配給 該指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)該數(shù)據(jù)庫(kù)部分。計(jì)算機(jī)系 統(tǒng)從該web服務(wù)器接收該數(shù)據(jù)庫(kù)部分。計(jì)算機(jī)系統(tǒng)將所接收到的數(shù)據(jù)庫(kù)部分存 儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處。所存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由web瀏覽器來(lái)本地訪問(wèn)以使得 來(lái)自該數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可本地提供給web瀏覽器而不必在基于網(wǎng)絡(luò)的通信 中包括該數(shù)據(jù)。
本發(fā)明的各實(shí)施例可以包括含有計(jì)算機(jī)硬件的專(zhuān)用或通用計(jì)算機(jī),這將在 以下做出進(jìn)一步討論。本發(fā)明的范圍內(nèi)的各實(shí)施例還包括用于承載或其上儲(chǔ)存 有計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可 以是可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何可用介質(zhì)。作為示例而非限制,計(jì)算機(jī) 可讀介質(zhì)可包括物理(或可記錄類(lèi)型的)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),諸如RAM、 ROM、 EEPROM、 CD-ROM或其它光盤(pán)存儲(chǔ)、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、 或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由 通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何其它介質(zhì)。
在本說(shuō)明書(shū)和所附權(quán)利要求書(shū)中,"網(wǎng)絡(luò)"被定義為允許在計(jì)算機(jī)系統(tǒng)和/ 或模塊之間傳輸電子數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過(guò)網(wǎng)絡(luò)或另一通信 連接(硬連線、無(wú)線或硬連線或無(wú)線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算 機(jī)將該連接完全視為計(jì)算機(jī)可讀介質(zhì)。因此,作為示例而非限制,計(jì)算機(jī)可讀 介質(zhì)可包括可用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序 代碼裝置并可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的網(wǎng)絡(luò)或數(shù)據(jù)鏈路。
計(jì)算機(jī)可執(zhí)行指令包括例如,使通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)
備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn) 制代碼、諸如匯編語(yǔ)言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/
或方法動(dòng)作專(zhuān)用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書(shū)中定義的主題不必限于上述特征或動(dòng)作。相反,上述特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的 示例形式而公開(kāi)的。
本領(lǐng)域的技術(shù)人員將理解,可以在具有許多類(lèi)型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò) 計(jì)算環(huán)境中實(shí)踐本發(fā)明,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、 膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或 可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、 尋呼機(jī)等等。本發(fā)明也可以在其中通過(guò)網(wǎng)絡(luò)鏈接(或者通過(guò)硬連線數(shù)據(jù)鏈路、 無(wú)線數(shù)據(jù)鏈路,或者通過(guò)硬連線和無(wú)線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī) 系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)踐。在分布式系統(tǒng)環(huán)境中,程序模 塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
圖lA—lC示出了幫助本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的示例計(jì)算機(jī)體系 結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu)100包括計(jì)算機(jī)系統(tǒng)101、網(wǎng)絡(luò)131和域152。計(jì)算 機(jī)體系結(jié)構(gòu)100中所描繪的是包括應(yīng)用程序191C、 web瀏覽器104、應(yīng)用程序 191S和web服務(wù)器153在內(nèi)的各種組件。各種組件中的每一個(gè)都可被連接到 諸如例如,局域網(wǎng)("LAN")、廣域網(wǎng)("WAN")或甚至因特網(wǎng)等網(wǎng)絡(luò)131。 因此,各種組件可對(duì)連接到網(wǎng)絡(luò)的其他組件收發(fā)數(shù)據(jù)。因此,各組件可以創(chuàng)建 消息相關(guān)數(shù)據(jù)并通過(guò)網(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")、簡(jiǎn)單郵件傳輸協(xié)議("SMTP")等)。例如,各組件可交換 包含web服務(wù)相關(guān)數(shù)據(jù)的簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議("SOAP")信封。在某些實(shí)施例 中,應(yīng)用程序191C和應(yīng)用程序191S是諸如例如,web服務(wù)應(yīng)用程序等分布式 應(yīng)用程序的不同部分。
web瀏覽器104可被配置成向諸如,例如域151等可經(jīng)由網(wǎng)絡(luò)131來(lái)訪問(wèn) 的域請(qǐng)求基于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í)行指令。基于web的應(yīng)用程序可以向可經(jīng)由網(wǎng)絡(luò)131來(lái)訪問(wèn)的 域請(qǐng)求諸如例如,數(shù)據(jù)庫(kù)數(shù)據(jù)等其他類(lèi)型的數(shù)據(jù)。
域151可由諸如例如,域名服務(wù)("DNS")名稱等可解析成IP地址的域名152來(lái)標(biāo)識(shí)。域名152可被輸入到web瀏覽器(可能連同關(guān)于域151中的指 定應(yīng)用程序的其他標(biāo)識(shí)信息一起輸入)以指示瀏覽器向web服務(wù)器153請(qǐng)求內(nèi) 容。域名可連同其他標(biāo)識(shí)信息一起被包括在輸入到web瀏覽器的統(tǒng)一資源定位 符("URL")中。取決于請(qǐng)求和/或接收到的URL的類(lèi)型,web服務(wù)器153可 訪問(wèn)來(lái)自內(nèi)容155的內(nèi)容和/或啟動(dòng)諸如例如,應(yīng)用程序191S等基于web的應(yīng) 用程序。應(yīng)用程序191S可請(qǐng)求來(lái)自域151中的其他位置的數(shù)據(jù),諸如例如, 來(lái)自數(shù)據(jù)庫(kù)154 (例如,SQL或其他關(guān)系型數(shù)據(jù)庫(kù))等。web服務(wù)器153可在 對(duì)web瀏覽器請(qǐng)求的響應(yīng)中包括來(lái)自155的內(nèi)容和/或來(lái)自數(shù)據(jù)庫(kù)154的數(shù)據(jù)。
瀏覽器高速緩存106被配置成高速緩存從包括域151在內(nèi)的域接收到的基 于web的內(nèi)容中所包括的分量。高速緩存的分量隨后可用于滿足發(fā)自web瀏 覽器104的基于web的請(qǐng)求。例如,高速緩存的分量182可以是直接從瀏覽器 高速緩存106訪問(wèn)的(無(wú)需經(jīng)由網(wǎng)絡(luò)131來(lái)傳輸高速緩存的分量182)并且在 web瀏覽器104中呈現(xiàn)的內(nèi)容155的各部分。
在web服務(wù)器試圖響應(yīng)來(lái)自web瀏覽器104的請(qǐng)求時(shí),來(lái)自該web服務(wù) 器的腳本代碼可訪問(wèn)瀏覽器高速緩存106以搜索本地存儲(chǔ)的分量。在標(biāo)識(shí)高速 緩存的分量時(shí),web服務(wù)器可訪問(wèn)這些分量并在將在web瀏覽器104中呈現(xiàn)的 響應(yīng)中包括這些分量。由此,瀏覽器高速緩存106 —般可由與web瀏覽器104 進(jìn)行通信的任何web服務(wù)器來(lái)訪問(wèn)。因此, 一個(gè)域中的web服務(wù)器可訪問(wèn)瀏 覽器高速緩存106中為不同域中的web服務(wù)器高速緩存的高速緩存的分量。
另一方面,本地存儲(chǔ)訪問(wèn)模塊107管理對(duì)本地存儲(chǔ)108的訪問(wèn)。本地存儲(chǔ) 108被配置成存儲(chǔ)在對(duì)基于web的請(qǐng)求的響應(yīng)中接收到的數(shù)據(jù)庫(kù)數(shù)據(jù)。存儲(chǔ)在 本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)數(shù)據(jù)可由web瀏覽器104來(lái)訪問(wèn)(無(wú)需經(jīng)由網(wǎng)絡(luò)131 來(lái)傳輸該數(shù)據(jù)庫(kù)數(shù)據(jù))并被呈現(xiàn)在web瀏覽器104中的基于web的應(yīng)用程序 中。數(shù)據(jù)庫(kù)數(shù)據(jù)可連同將該數(shù)據(jù)庫(kù)數(shù)據(jù)發(fā)送給web瀏覽器104的域的指示一起 存儲(chǔ)在本地存儲(chǔ)108中。
本地存儲(chǔ)訪問(wèn)模塊107可過(guò)濾來(lái)自源自web服務(wù)器的腳本代碼的、訪問(wèn) 存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)數(shù)據(jù)的請(qǐng)求,以使得防止一個(gè)域訪問(wèn)另一個(gè)域 的數(shù)據(jù)庫(kù)數(shù)據(jù)。由此,盡管數(shù)據(jù)庫(kù)數(shù)據(jù)被存儲(chǔ)在本地存儲(chǔ)108中,但該數(shù)據(jù)庫(kù) 數(shù)據(jù)一般不可訪問(wèn)以滿足對(duì)任何域的請(qǐng)求(與一般可由來(lái)自任何域的web服務(wù)
14器來(lái)訪問(wèn)的存儲(chǔ)在瀏覽器高速緩存106中的分量相反)。
圖2示出了用于在計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù)web 瀏覽器訪問(wèn)的示例方法200的流程圖。方法200將參考
圖1A中所描繪的計(jì)算 機(jī)體系結(jié)構(gòu)100的各組件來(lái)描述。
方法200包括將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器的動(dòng)作, 該基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括數(shù)據(jù)庫(kù)數(shù)據(jù)的一部分的網(wǎng)頁(yè),該數(shù)據(jù)庫(kù)部分被 存儲(chǔ)在該web服務(wù)器可訪問(wèn)(例如,通過(guò)執(zhí)行腳本代碼)的數(shù)據(jù)庫(kù)中(動(dòng)作 201)。例如,應(yīng)用程序191C的腳本代碼(在瀏覽器104中運(yùn)行)可以將請(qǐng)求 181發(fā)送給域151中的web服務(wù)器153。請(qǐng)求181可以是訪問(wèn)包括數(shù)據(jù)庫(kù)154 的一部分的網(wǎng)頁(yè)的請(qǐng)求。
web服務(wù)器153可接收請(qǐng)求181并將請(qǐng)求181的至少一部分路由至應(yīng)用程 序191S。應(yīng)用程序191S可響應(yīng)于接收到該請(qǐng)求而訪問(wèn)來(lái)自數(shù)據(jù)庫(kù)154的數(shù)據(jù) 庫(kù)部分154P。在適當(dāng)時(shí),web服務(wù)器153可將從數(shù)據(jù)庫(kù)部分154P訪問(wèn)的任何 數(shù)據(jù)庫(kù)數(shù)據(jù)與來(lái)自內(nèi)容155的其他內(nèi)容組合。從數(shù)據(jù)庫(kù)部分154P以及可能的 其他內(nèi)容,web服務(wù)器153可制定網(wǎng)頁(yè)182。 web服務(wù)器153可將網(wǎng)頁(yè)182發(fā) 送給web瀏覽器104。
web瀏覽器104可接收網(wǎng)頁(yè)182。 web瀏覽器104可呈現(xiàn)內(nèi)容的某些部分 并將任何數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)發(fā)至應(yīng)用程序191C。應(yīng)用程序191C可處理并呈現(xiàn)該數(shù) 據(jù)庫(kù)數(shù)據(jù)。
響應(yīng)于請(qǐng)求181, web服務(wù)器153還可將數(shù)據(jù)庫(kù)部分154P發(fā)送給web瀏 覽器104。
方法200包括從web服務(wù)器接收數(shù)據(jù)庫(kù)部分的動(dòng)作(動(dòng)作202)。例如, web瀏覽器104可接收網(wǎng)頁(yè)182中所包括的數(shù)據(jù)庫(kù)部分154P?;蛘撸瑆eb瀏覽 器104可接收響應(yīng)于請(qǐng)求181而單獨(dú)發(fā)送給web瀏覽器104的數(shù)據(jù)庫(kù)部分 154P。
方法200包括將所接收到的數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在計(jì)算機(jī)系統(tǒng)處的動(dòng)作, 該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由web瀏覽器來(lái)本地訪問(wèn)以使得來(lái)自該本地存儲(chǔ) 的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提供給web瀏覽器而不必在基于網(wǎng)絡(luò)的通信中 包括該數(shù)據(jù)(動(dòng)作203)。例如,web瀏覽器104可將數(shù)據(jù)庫(kù)部分154P存儲(chǔ)在本地存儲(chǔ)108中。因此,數(shù)據(jù)庫(kù)部分154P可由web瀏覽器104來(lái)本地訪問(wèn)以 使得該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分154P可以在不經(jīng)由網(wǎng)絡(luò)131來(lái)傳輸數(shù)據(jù)庫(kù)部分 154P的情況下提供給web瀏覽器104。
方法200包括保留數(shù)據(jù)庫(kù)部分是從指定域接收到的指示以防止其他域中 的web服務(wù)器訪問(wèn)(例如,通過(guò)執(zhí)行腳本代碼)該數(shù)據(jù)庫(kù)部分的動(dòng)作(動(dòng)作 204)。例如,域名152可連同數(shù)據(jù)庫(kù)部分154P—起存儲(chǔ)在本地存儲(chǔ)108中以 指示該數(shù)據(jù)庫(kù)部分154P是從域151接收到的。本地存儲(chǔ)訪問(wèn)模塊107可將與 對(duì)數(shù)據(jù)庫(kù)部分154P的后續(xù)請(qǐng)求相關(guān)聯(lián)的域名與域名152進(jìn)行比較以確定訪問(wèn) 數(shù)據(jù)庫(kù)部分154P的請(qǐng)求是否被授權(quán)。
圖1B示出了示例計(jì)算機(jī)體系結(jié)構(gòu)100并且還描繪了域161。域161包括 惡意web服務(wù)器163。惡意web服務(wù)器163可被配置成試圖訪問(wèn)高速緩存在瀏 覽器高速緩存106中的其他web服務(wù)器的高速緩存的分量并且試圖訪問(wèn)存儲(chǔ)在 本地存儲(chǔ)108中的來(lái)自其他域的數(shù)據(jù)庫(kù)數(shù)據(jù)。
圖3示出了用于在web瀏覽器中呈現(xiàn)表格數(shù)據(jù)庫(kù)數(shù)據(jù)的示例方法300的 流程圖。方法300將參考圖1B中所描繪的計(jì)算機(jī)體系結(jié)構(gòu)100的各組件來(lái)描 述。
方法300包括將基于web的請(qǐng)求發(fā)送給由指定域名指示的指定域中的web 服務(wù)器的動(dòng)作,該基于web的請(qǐng)求是為了訪問(wèn)包括數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè),該 數(shù)據(jù)庫(kù)部分被存儲(chǔ)在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中(動(dòng)作301)。例如,web 瀏覽器104可將請(qǐng)求189發(fā)送給域151中的web服務(wù)器153。請(qǐng)求189可以與 包括域名152的URL相關(guān)聯(lián)。請(qǐng)求189可以是訪問(wèn)包括來(lái)自數(shù)據(jù)庫(kù)154的數(shù) 據(jù)庫(kù)部分154P的網(wǎng)頁(yè)的請(qǐng)求。
響應(yīng)于請(qǐng)求189, web服務(wù)器153可將請(qǐng)求184發(fā)回web瀏覽器104。請(qǐng) 求184可以是訪問(wèn)存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)部分154P的副本的請(qǐng)求。
方法300包括從web服務(wù)器接收訪問(wèn)本地存儲(chǔ)在計(jì)算機(jī)系統(tǒng)處的本地存 儲(chǔ)的數(shù)據(jù)庫(kù)部分的請(qǐng)求(動(dòng)作302)。例如,web瀏覽器104可接收請(qǐng)求訪問(wèn) 存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)部分154P的請(qǐng)求184(例如,包括腳本代碼)。
方法300包括訪問(wèn)指示先前將本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分發(fā)送給計(jì)算機(jī)系統(tǒng) 的域的存儲(chǔ)的域名的動(dòng)作(動(dòng)作303)。例如,本地存儲(chǔ)訪問(wèn)模塊107可訪問(wèn)指示先前己經(jīng)將數(shù)據(jù)庫(kù)部分154P發(fā)送給web瀏覽器104的域151中的web服 務(wù)器的域名152。
方法300包括將該指定域名與存儲(chǔ)的域名進(jìn)行比較的動(dòng)作(動(dòng)作304)。 例如,本地存儲(chǔ)訪問(wèn)模塊可將域名152 (存儲(chǔ)在本地存儲(chǔ)108中)與域名152 (與請(qǐng)求184相關(guān)聯(lián))進(jìn)行比較。方法300包括確定指定域名和存儲(chǔ)的域名足 夠相似以允許來(lái)自web服務(wù)器的響應(yīng)包括本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的動(dòng)作(動(dòng)作 305)。例如,本地存儲(chǔ)訪問(wèn)模塊107可確定域152 (存儲(chǔ)在本地存儲(chǔ)108中) 與域名152 (與請(qǐng)求184相關(guān)聯(lián))相同。然而,可以使用指示較低相似度的指 定規(guī)則來(lái)確定指定域名和存儲(chǔ)的域名是否足夠相似。
方法300包括基于判定來(lái)在對(duì)基于web的請(qǐng)求的基于web的響應(yīng)中包括 來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的動(dòng)作(動(dòng)作306)。例如,數(shù)據(jù)庫(kù)部分154P 可基于比較的結(jié)果來(lái)包括在響應(yīng)185 (即,對(duì)請(qǐng)求189的響應(yīng))中。方法300 包括在web瀏覽器處呈現(xiàn)包括本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的基于web的響應(yīng)的動(dòng) 作(動(dòng)作307)。例如,數(shù)據(jù)庫(kù)部分154P (以及響應(yīng)185中所包括的任何其他 網(wǎng)頁(yè)分量)可在web瀏覽器104處呈現(xiàn)。
本發(fā)明的各實(shí)施例可防止惡意服務(wù)器訪問(wèn)另一服務(wù)器的本地存儲(chǔ)的數(shù)據(jù) 庫(kù)數(shù)據(jù)。例如,情況可以是域161中的惡意服務(wù)器163將響應(yīng)136發(fā)送給web 瀏覽器104 (響應(yīng)于來(lái)自web瀏覽器104的請(qǐng)求)。響應(yīng)136可包括請(qǐng)求訪問(wèn) 存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)數(shù)據(jù)(例如通過(guò)執(zhí)行腳本)的代碼(腳本)。 由此,本地存儲(chǔ)訪問(wèn)模塊107可將域名162 (域161的域名)與本地存儲(chǔ)108 中存儲(chǔ)的域名(例如,域名152)進(jìn)行比較。如果域名162缺乏與任何存儲(chǔ)的 域名的足夠的相似度,則不給予對(duì)存儲(chǔ)的數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問(wèn)。由此,保護(hù)了諸 如例如,數(shù)據(jù)庫(kù)部分154P等來(lái)自其他域的數(shù)據(jù)庫(kù)數(shù)據(jù)免遭未授權(quán)訪問(wèn)。艮P, 當(dāng)域名152和域名162缺乏足夠的相似度時(shí),本地存儲(chǔ)訪問(wèn)模塊107不準(zhǔn)許來(lái) 自域161的請(qǐng)求訪問(wèn)發(fā)自域151并且存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)庫(kù)部分 154P。
來(lái)自web服務(wù)器的響應(yīng)可包括諸如例如,當(dāng)用戶與網(wǎng)站進(jìn)行具體通信等 時(shí)來(lái)自服務(wù)器的代碼(腳本)。響應(yīng)還可包括諸如例如,當(dāng)一個(gè)網(wǎng)站包括另一 個(gè)網(wǎng)站的廣告等時(shí)來(lái)自第三方服務(wù)器的代碼(腳本)。"惡意"web服務(wù)器從存儲(chǔ)在本地存儲(chǔ)108中的數(shù)據(jù)的觀點(diǎn)來(lái)看可被視作是 惡意的,即使在用戶具有訪問(wèn)web服務(wù)器的合法理由時(shí)。例如,用戶可能在第 一銀行和第二銀行都具有銀行賬戶。因此,計(jì)算機(jī)系統(tǒng)101的用戶具有訪問(wèn)第 一和第二銀行兩者的網(wǎng)站的合法的(并且實(shí)際上是有益的)理由。此外,通過(guò) 先前與第一銀行的網(wǎng)站進(jìn)行通信,該第一銀行可具有存儲(chǔ)在本地存儲(chǔ)108中的 數(shù)據(jù)庫(kù)數(shù)據(jù)(例如,用戶賬戶信息)。然而,用戶未必期望將對(duì)該第一銀行的 本地存儲(chǔ)的數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問(wèn)給予第二銀行。域名檢查可防止來(lái)自第二銀行的 腳本訪問(wèn)第一銀行的本地存儲(chǔ)的數(shù)據(jù)庫(kù)數(shù)據(jù)。
因此,本發(fā)明的各實(shí)施例可用于按域"沙箱化(sandbox)"本地存儲(chǔ)的基 于web的數(shù)據(jù)庫(kù)數(shù)據(jù)。
圖1C示出了示例計(jì)算機(jī)體系結(jié)構(gòu)100并且還描繪了域171。域171包括 惡意web服務(wù)器173和數(shù)據(jù)庫(kù)174。類(lèi)似于web服務(wù)器153, web服務(wù)器173 可以與一個(gè)或多個(gè)分布式應(yīng)用程序相關(guān)聯(lián)并且可訪問(wèn)其他基于web的內(nèi)容。 圖4示出了用于在計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù)web瀏覽器 訪問(wèn)的另一示例方法的流程圖。方法400將參考圖1C中所描繪的計(jì)算機(jī)體系 結(jié)構(gòu)100的各組件來(lái)描述。
方法400包括將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器的動(dòng)作, 該基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè),該數(shù)據(jù)庫(kù)部分被存儲(chǔ) 在該web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中(動(dòng)作401)。例如,web瀏覽器104可將 請(qǐng)求187發(fā)送給web服務(wù)器173。請(qǐng)求187可包括訪問(wèn)包括數(shù)據(jù)庫(kù)174的一部 分的網(wǎng)頁(yè)的請(qǐng)求。
web服務(wù)器173可接收請(qǐng)求187并將請(qǐng)求181的至少一部分路由至分布式 應(yīng)用程序。該分布式應(yīng)用程序可響應(yīng)于接收到該請(qǐng)求而訪問(wèn)來(lái)自數(shù)據(jù)庫(kù)174的 數(shù)據(jù)(例如,數(shù)據(jù)庫(kù)部分174P)。在適當(dāng)時(shí),web服務(wù)器153可將從數(shù)據(jù)庫(kù) 174訪問(wèn)的任何數(shù)據(jù)庫(kù)數(shù)據(jù)與其他內(nèi)容組合。從該數(shù)據(jù)庫(kù)數(shù)據(jù)以及可能的其他 內(nèi)容,web服務(wù)器153可制定網(wǎng)頁(yè)并將其發(fā)回web瀏覽器174。
web瀏覽器104可接收該網(wǎng)頁(yè)。web瀏覽器104可呈現(xiàn)內(nèi)容的某些部分并 將任何數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)發(fā)至分布式應(yīng)用程序。該分布式應(yīng)用程序可處理并呈現(xiàn)該 數(shù)據(jù)庫(kù)數(shù)據(jù)。
18響應(yīng)于請(qǐng)求187, web服務(wù)器173可將請(qǐng)求188發(fā)送給web服務(wù)器104。 請(qǐng)求188可以是將數(shù)據(jù)庫(kù)部分174P發(fā)送給計(jì)算機(jī)系統(tǒng)101以便存儲(chǔ)在本地存 儲(chǔ)108中的請(qǐng)求。
方法400包括從web服務(wù)器接收將數(shù)據(jù)庫(kù)部分發(fā)送給計(jì)算機(jī)系統(tǒng)以便本 地存儲(chǔ)在該計(jì)算機(jī)系統(tǒng)處的請(qǐng)求的動(dòng)作(動(dòng)作402)。例如,web瀏覽器104 可從web服務(wù)器133接收請(qǐng)求188。
方法400包括確定分配給指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以 存儲(chǔ)數(shù)據(jù)庫(kù)部分的動(dòng)作(動(dòng)作403)。例如,響應(yīng)于請(qǐng)求188,本地存儲(chǔ)訪問(wèn) 模塊107可參考配額數(shù)據(jù)103以確定分配給域171的存儲(chǔ)空間的量。本地存儲(chǔ) 訪問(wèn)模塊107可掃描配額數(shù)據(jù)103中的條目以査找指定域名。例如,本地存儲(chǔ) 訪問(wèn)模塊107可掃描配額數(shù)據(jù)103中的條目以査找域名172 (域171的域名)。 當(dāng)發(fā)現(xiàn)包括指定域名的條目時(shí),本地存儲(chǔ)訪問(wèn)模塊107可參考與該域相對(duì)應(yīng)的 存儲(chǔ)空間配額。例如,本地存儲(chǔ)訪問(wèn)模塊107可參考配額112以標(biāo)識(shí)分配給域 171以供將數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)在本地存儲(chǔ)108中的存儲(chǔ)空間。
本地存儲(chǔ)訪問(wèn)模塊107可從配額112中減去域171當(dāng)前所使用的存儲(chǔ)空間 的量以計(jì)算可用于供域171存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù)的剩余存儲(chǔ)空間量。當(dāng)數(shù)據(jù)庫(kù)部分 174P的大小小于或等于對(duì)于域171可用的剩余存儲(chǔ)空間量時(shí),本地存儲(chǔ)訪問(wèn) 模塊107準(zhǔn)許將數(shù)據(jù)庫(kù)部分174P連同域名172 —起存儲(chǔ)在本地存儲(chǔ)108中。
另一方面,當(dāng)數(shù)據(jù)庫(kù)部分174P的大小大于對(duì)于域171可用的剩余存儲(chǔ)空 間量時(shí),本地存儲(chǔ)訪問(wèn)模塊107可阻止將數(shù)據(jù)庫(kù)部分174P存儲(chǔ)在108中。或 者,當(dāng)數(shù)據(jù)庫(kù)部分174P的大小大于對(duì)于域171可用的剩余存儲(chǔ)空間量時(shí),可 向用戶呈現(xiàn)通知,從而給予該用戶增加域171的配額的機(jī)會(huì)。
例如,配置界面102可以在數(shù)據(jù)庫(kù)部分174P的存儲(chǔ)將導(dǎo)致超出配額112 時(shí)在計(jì)算機(jī)系統(tǒng)101處呈現(xiàn)通知。該通知可包括用于在最初設(shè)置以及更改配額 112的值的用戶界面控件。如果用戶將配額112增加了一適當(dāng)?shù)牧?,則本地存 儲(chǔ)訪問(wèn)模塊107隨后可準(zhǔn)許將數(shù)據(jù)庫(kù)部分174P連同域名172 —起存儲(chǔ)在本地 存儲(chǔ)108中。
當(dāng)本地存儲(chǔ)訪問(wèn)模塊107準(zhǔn)許將數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)在存儲(chǔ)108中時(shí),web瀏 覽器104可將該信息發(fā)送給做出請(qǐng)求的web服務(wù)器。例如,web瀏覽器104可通知web服務(wù)器173其具有足夠的剩余存儲(chǔ)空間來(lái)將數(shù)據(jù)庫(kù)部分174P存儲(chǔ)在 本地存儲(chǔ)108中。作為響應(yīng),web服務(wù)器173可將數(shù)據(jù)庫(kù)部分174P發(fā)送給web 瀏覽器104。
方法400包括從web服務(wù)器接收數(shù)據(jù)庫(kù)部分的動(dòng)作(動(dòng)作404)。例如, web瀏覽器104可從web服務(wù)器173接收數(shù)據(jù)庫(kù)部分174P。方法400包括將 數(shù)據(jù)庫(kù)部分存儲(chǔ)在計(jì)算機(jī)系統(tǒng)處的動(dòng)作,所存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由web瀏覽器 來(lái)本地訪問(wèn)以使得來(lái)自該數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提供給web瀏覽器而不 必在基于網(wǎng)絡(luò)的通信中包括該數(shù)據(jù)(動(dòng)作405)。例如,web瀏覽器104可將 數(shù)據(jù)庫(kù)部分174P存儲(chǔ)在本地存儲(chǔ)108中。因此,數(shù)據(jù)庫(kù)部分174P可由web 瀏覽器104來(lái)本地訪問(wèn)以使得該本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分174P可以在不經(jīng)由網(wǎng) 絡(luò)131來(lái)傳輸數(shù)據(jù)庫(kù)部分174P的情況下提供給web瀏覽器104。
因此,本發(fā)明的各實(shí)施例準(zhǔn)許將基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)本地存儲(chǔ)在計(jì)算 機(jī)系統(tǒng)處以提高在該計(jì)算機(jī)系統(tǒng)處的web瀏覽器中呈現(xiàn)基于web的數(shù)據(jù)庫(kù)數(shù) 據(jù)的效率?;趙eb的數(shù)據(jù)庫(kù)數(shù)據(jù)可按域沙箱化以減少(并且可能消除)基于 web的數(shù)據(jù)庫(kù)數(shù)據(jù)向惡意計(jì)算機(jī)系統(tǒng)的暴露。分配給每一個(gè)域的空間可在最初 設(shè)置并且然后由用戶隨后來(lái)更改。
本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實(shí)施例 在所有方面都應(yīng)被認(rèn)為僅是說(shuō)明性而非限制性的。從而,本發(fā)明的范圍由所附 權(quán)利要求書(shū)而非前述描述指示。落入權(quán)利要求書(shū)的等效方式的含義和范圍內(nèi)的 所有改變應(yīng)被權(quán)利要求書(shū)的范圍涵蓋。
權(quán)利要求
1. 一種在包括用于瀏覽基于web的內(nèi)容的web瀏覽器的計(jì)算機(jī)系統(tǒng)處的方法,所述方法用于在所述計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù)web瀏覽器訪問(wèn),所述方法包括將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器的動(dòng)作,所述基于web的請(qǐng)求請(qǐng)求訪問(wèn)包括數(shù)據(jù)庫(kù)的一部分的網(wǎng)頁(yè),所述數(shù)據(jù)庫(kù)部分被存儲(chǔ)在所述web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中;從所述web服務(wù)器接收所述數(shù)據(jù)庫(kù)部分的動(dòng)作;將所述數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的動(dòng)作,所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分可由所述web瀏覽器來(lái)本地訪問(wèn)以使得來(lái)自所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可被本地提供給所述web瀏覽器而不必在基于網(wǎng)絡(luò)的通信中包括所述數(shù)據(jù);保留所述數(shù)據(jù)庫(kù)部分是從所述指定域接收到的指示以防止其他域中的web服務(wù)器訪問(wèn)所述數(shù)據(jù)庫(kù)的副本的動(dòng)作。
2. 如權(quán)利要求1所述的方法,其特征在于,所述將基于web的請(qǐng)求發(fā)送 給web服務(wù)器的動(dòng)作包括發(fā)送HTTP請(qǐng)求的動(dòng)作。
3. 如權(quán)利要求1所述的方法,其特征在于,所述將基于web的請(qǐng)求發(fā)送 給web服務(wù)器的動(dòng)作包括發(fā)送包括從所述計(jì)算機(jī)系統(tǒng)處的分布式應(yīng)用程序的 一部分到所述指定域中的分布式應(yīng)用程序的另一部分的通信的基于web的請(qǐng) 求的動(dòng)作。
4. 如權(quán)利要求1所述的方法,其特征在于,所述從web服務(wù)器接收數(shù)據(jù) 庫(kù)部分的動(dòng)作包括接收關(guān)系型數(shù)據(jù)庫(kù)的一部分的動(dòng)作。
5. 如權(quán)利要求1所述的方法,其特征在于,所述將數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在 計(jì)算機(jī)系統(tǒng)處的動(dòng)作包括將所接收到的數(shù)據(jù)庫(kù)部分存儲(chǔ)在來(lái)自所述web服務(wù) 器的腳本代碼可訪問(wèn)的位置中以使得來(lái)自所述web服務(wù)器的腳本代碼可訪問(wèn)本地?cái)?shù)據(jù)庫(kù)部分以滿足來(lái)自所述web瀏覽器的基于web的請(qǐng)求的動(dòng)作。
6. 如權(quán)利要求1所述的方法,其特征在于,所述將數(shù)據(jù)庫(kù)部分本地存儲(chǔ)在 計(jì)算機(jī)系統(tǒng)處的動(dòng)作包括將所接收到的數(shù)據(jù)庫(kù)部分存儲(chǔ)在來(lái)自所述web服務(wù) 器的腳本代碼可訪問(wèn)的位置中以使得數(shù)據(jù)可用于滿足基于web的請(qǐng)求而不必 通過(guò)因特網(wǎng)來(lái)傳輸所述數(shù)據(jù)的動(dòng)作。
7. 如權(quán)利要求1所述的方法,其特征在于,所述保留數(shù)據(jù)庫(kù)部分是從指定 域接收到的指示的動(dòng)作包括將所述指定域名連同所述數(shù)據(jù)庫(kù)部分一起本地存 儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的動(dòng)作。
8. —種在包括用于瀏覽基于web的內(nèi)容的web瀏覽器的計(jì)算機(jī)系統(tǒng)處的 方法,所述方法用于在所述web瀏覽器中呈現(xiàn)表格數(shù)據(jù)庫(kù)數(shù)據(jù),所述方法包括:將基于web的請(qǐng)求發(fā)送給由指定域名指示的指定域中的web服務(wù)器的動(dòng) 作,所述基于web的請(qǐng)求是為了訪問(wèn)包括數(shù)據(jù)庫(kù)數(shù)據(jù)的一部分的網(wǎng)頁(yè),所述數(shù) 據(jù)庫(kù)部分被存儲(chǔ)在所述web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中;從所述web服務(wù)器接收訪問(wèn)本地存儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的本地存儲(chǔ)的 數(shù)據(jù)庫(kù)部分的請(qǐng)求的動(dòng)作;訪問(wèn)指示先前將本地存儲(chǔ)的所述數(shù)據(jù)庫(kù)的副本發(fā)送給所述計(jì)算機(jī)系統(tǒng)的 域的存儲(chǔ)的域名的動(dòng)作;將所述指定域名與所述存儲(chǔ)的域名進(jìn)行比較的動(dòng)作;確定所述指定域名和所述存儲(chǔ)的域名足夠相似以允許來(lái)自所述web服務(wù) 器的響應(yīng)包括來(lái)自所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)庫(kù)數(shù)據(jù)的動(dòng)作;基于所述判定來(lái)在對(duì)所述基于web的請(qǐng)求的基于web的響應(yīng)中包括來(lái)自 所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的動(dòng)作;以及在所述web瀏覽器處呈現(xiàn)包括來(lái)自所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的 基于web的響應(yīng)的動(dòng)作。
9. 如權(quán)利要求8所述的方法,其特征在于,所述將基于web的請(qǐng)求發(fā)送給web服務(wù)器的動(dòng)作包括發(fā)送包括從所述計(jì)算機(jī)系統(tǒng)處的分布式應(yīng)用程序的一部分到所述指定域中的分布式應(yīng)用程序的另一部分的通信的基于web的請(qǐng)求的動(dòng)作。
10. 如權(quán)利要求8所述的方法,其特征在于,所述訪問(wèn)指示域的存儲(chǔ)的 域名的動(dòng)作包括訪問(wèn)域名服務(wù)("DNS")名稱的動(dòng)作。
11. 如權(quán)利要求8所述的方法,其特征在于,所述將指定域名與存儲(chǔ)的 域名進(jìn)行比較的動(dòng)作包括確定所述指定域名與所述存儲(chǔ)的域名相同的動(dòng)作。
12. 如權(quán)利要求8所述的方法,其特征在于,所述在基于web的響應(yīng)中 包括來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的動(dòng)作包括在不通過(guò)因特網(wǎng)來(lái)傳輸所 述數(shù)據(jù)的情況下包括所述數(shù)據(jù)的動(dòng)作。
13. 如權(quán)利要求8所述的方法,其特征在于,所述在web瀏覽器處呈現(xiàn) 包括來(lái)自本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的基于web的響應(yīng)的動(dòng)作包括呈現(xiàn)包 括來(lái)自所述本地存儲(chǔ)的數(shù)據(jù)庫(kù)部分的數(shù)據(jù)以及一種或多種其他類(lèi)型的內(nèi)容的 響應(yīng)的動(dòng)作。
14. 一種在包括用于瀏覽基于web的內(nèi)容的web瀏覽器的計(jì)算機(jī)系統(tǒng)處 的方法,所述方法用于在所述計(jì)算機(jī)系統(tǒng)處高速緩存表格數(shù)據(jù)庫(kù)數(shù)據(jù)以供后續(xù) web瀏覽器訪問(wèn),所述方法包括將基于web的請(qǐng)求發(fā)送給指定域中的web服務(wù)器的動(dòng)作,所述基于web 的請(qǐng)求請(qǐng)求訪問(wèn)包括數(shù)據(jù)庫(kù)數(shù)據(jù)的一部分的網(wǎng)頁(yè),所述數(shù)據(jù)庫(kù)部分被存儲(chǔ)在所 述web服務(wù)器可訪問(wèn)的數(shù)據(jù)庫(kù)中;從所述web服務(wù)器接收將所述數(shù)據(jù)庫(kù)部分發(fā)送給所述計(jì)算機(jī)系統(tǒng)以便本地存儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的請(qǐng)求的動(dòng)作;確定分配給所述指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)所述 數(shù)據(jù)庫(kù)部分的動(dòng)作;從所述web服務(wù)器接收所述數(shù)據(jù)庫(kù)部分的動(dòng)作;將所接收到的數(shù)據(jù)庫(kù)部分存儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的動(dòng)作,所存儲(chǔ)的數(shù)據(jù) 庫(kù)部分可由所述web瀏覽器來(lái)本地訪問(wèn)以使得來(lái)自所述數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可 被本地提供給所述web瀏覽器而不必在基于網(wǎng)絡(luò)的通信中包括所述數(shù)據(jù)。
15. 如權(quán)利要求14所述的方法,其特征在于,確定分配給所述指定域 以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分的動(dòng)作包括參考 所述指定域的用戶可配置配額數(shù)據(jù)。
16. 如權(quán)利要求14所述的方法,其特征在于,確定分配給所述指定域 以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分的動(dòng)作包括接收 初始用戶設(shè)置已將足夠的存儲(chǔ)空間分配給了所述指定域以準(zhǔn)許存儲(chǔ)所述數(shù)據(jù) 庫(kù)部分的指示。
17. 如權(quán)利要求14所述的方法,其特征在于,還包括 在確定分配給所述指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分之前,確定分配給所述指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量不夠 大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分的動(dòng)作;以及在所述計(jì)算機(jī)系統(tǒng)處呈現(xiàn)通知的動(dòng)作,所述通知指示分配給所述指定域以 供本地存儲(chǔ)的存儲(chǔ)空間的量不夠大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分。
18. 如權(quán)利要求17所述的方法,其特征在于,還包括 在確定分配給所述指定域以供本地存儲(chǔ)的存儲(chǔ)空間的量足夠大以存儲(chǔ)所述數(shù)據(jù)庫(kù)部分之前,接收用戶已增加了分配給所述指定域以供本地存儲(chǔ)的存儲(chǔ) 空間的指示的動(dòng)作。
19. 如權(quán)利要求14所述的方法,其特征在于,所述從web服務(wù)器接收 數(shù)據(jù)庫(kù)部分的動(dòng)作包括接收SQL數(shù)據(jù)庫(kù)的一部分的動(dòng)作。
20.如權(quán)利要求14所述的方法,其特征在于,所述將所接收到的數(shù)據(jù) 庫(kù)部分存儲(chǔ)在所述計(jì)算機(jī)系統(tǒng)處的動(dòng)作包括存儲(chǔ)所述數(shù)據(jù)庫(kù)部分以使得來(lái)自 所述數(shù)據(jù)庫(kù)部分的數(shù)據(jù)可用于滿足基于web的請(qǐng)求而不必通過(guò)因特網(wǎng)來(lái)傳輸 來(lái)自所述數(shù)據(jù)庫(kù)部分的數(shù)據(jù)的動(dòng)作。
全文摘要
本發(fā)明涉及用于本地存儲(chǔ)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明的各實(shí)施例準(zhǔn)許將基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)本地存儲(chǔ)在計(jì)算機(jī)系統(tǒng)處以提高在該計(jì)算機(jī)系統(tǒng)處的web瀏覽器中呈現(xiàn)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)的效率?;趙eb的數(shù)據(jù)庫(kù)數(shù)據(jù)可按域沙箱化以減少(并且可能消除)基于web的數(shù)據(jù)庫(kù)數(shù)據(jù)向惡意計(jì)算機(jī)系統(tǒng)的暴露。分配給每一個(gè)域的空間可在最初設(shè)置并且然后由用戶隨后來(lái)更改。
文檔編號(hào)G06F17/40GK101523393SQ200780037473
公開(kāi)日2009年9月2日 申請(qǐng)日期2007年10月4日 優(yōu)先權(quán)日2006年10月6日
發(fā)明者J·C·霍金斯 申請(qǐng)人:微軟公司