[發明專利]用于持久性Web應用設計的架構模式無效
| 申請號: | 201080023704.0 | 申請日: | 2010-04-01 |
| 公開(公告)號: | CN102449628A | 公開(公告)日: | 2012-05-09 |
| 發明(設計)人: | 羅伯特·J·克勒格爾;亞歷山大·尼科拉烏;帕維爾·V·科比亞科夫;亞歷山大·V·肯貝格 | 申請(專利權)人: | 谷歌公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L29/08 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 周亞榮;安翔 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 持久性 web 應用 設計 架構 模式 | ||
技術領域
所公開的實施例總體上涉及客戶端-服務器計算機網絡系統領域,具體地涉及用于開發具有離線能力的web應用的系統和方法。
背景技術
Web應用(例如,主要通過web瀏覽器訪問并且從遠程服務器接收數據的應用)變得日益流行。Web應用用于各種各樣的用途,包括電子郵件、日歷、銀行業務、字處理和圖像編輯應用。然而,web應用的廣泛使用產生了許多問題。例如,在通過網絡發送請求和接收響應之間通常存在延遲,也被稱為網絡延時。該網絡延時降低了web應用的響應性,因為web應用在對執行用戶所指示的操作的請求作出響應之前,必須等待來自遠程服務器的數據。該額外的等待時間對用戶來說可能感到沮喪。另外,當網絡連接不可用時,web應用不能從遠程服務器接收數據,因此限制了web應用的功能。類似地,由于缺乏網絡連接而不能使用應用對用戶來說可能感到沮喪。
發明內容
因此,在此所公開的方法和系統通過提供用于存儲數據項的本地數據結構以供web應用使用來降低或消除了上述問題。使用所公開的方法和系統,降低了網絡延時和網絡連接缺乏對用戶體驗的負面影響。在一些實施例中,存儲在本地數據庫中的數據項由web應用以離線模式使用。在這些實施例中,web應用使用本地存儲的數據項來提供通常由web應用在存在網絡連接時提供的功能中的至少部分(例如,顯示電子郵件消息)。在一些實施例中,存儲在本地數據庫中的這些數據項由web應用以在線模式使用來提高web應用對執行對數據項的操作(例如,顯示操作)的用戶請求的響應性。例如,對于緩存在本地數據庫中的電子郵件消息,當用戶選擇緩存的消息中的一個來顯示時,可以立即顯示緩存的電子郵件消息,而不用等待來自遠程服務器的對請求的響應。
根據本發明的第一方面,客戶端設備具有計算機處理器和計算機存儲器;被配置成在客戶端設備上執行的web瀏覽器;被配置成在web瀏覽器內運作的本地web應用;被配置成管理在本地web應用和與web應用相關聯的服務器系統之間的通信的web接口;在存儲器中維護的寫隊列;以及在存儲器中維護的包含多個數據項的持久性本地數據庫,每一個數據項與使每一個相應的數據項能夠在客戶端設備和服務器系統上被唯一識別的標識符相關聯。當客戶端設備上的web應用需要執行對數據項的操作時,web應用發出數據庫請求以確定該數據項是否在本地數據庫中。如果該數據項不在本地數據庫中,則web應用經由web接口向服務器系統發出數據請求。如果該數據項在本地數據庫中,并且操作涉及更新該數據項,則web應用執行對存儲在該數據庫中的該數據項的操作,并且將表征該操作的信息以及該數據項的標識符寫入寫隊列。當在客戶端設備和服務器系統之間存在網絡連接時,web接口將寫隊列排出(to?drain)到服務器系統,其可以使用該信息來更新其數據庫中的已被客戶端操作修改的條目。這是直寫式(write-through)緩存的示例。本發明的實施例還實現LRU(最近最少使用)緩存替換策略,其中通過刪除最近最少使用的條目來為在本地數據庫中的新的條目釋放空間。
在一些實施例中,該軟件緩存被類比到硬件緩存。通過將硬件緩存策略類比到軟件緩存策略,使用軟件緩存的web應用的性能可以使用與用于提高硬件緩存的性能的那些技術類似的技術來提高。這些緩存技術通常是眾所周知的并且被全面測試。例如,緩存存取的速度可以通過在處理器(CPU)和更大但是更慢的L2緩存之間插入高速L1緩存來提高。類似地,對于web應用訪問數據項的速度可以通過在web應用和持久性數據庫之間插入存儲器內(in-memory)數據庫來提高。其他實施例可以將web瀏覽器的文檔對象模型用作L1緩存。如在硬件中得到的各種緩存所建議的,將文檔對象模型用作L1緩存的軟件可以是回寫式或直寫式的。如果web應用通過直接修改文檔對象模型來實現一些用戶動作,則文檔對象模型片段的回寫式緩存作為L1緩存將是適當的。與硬件緩存的該類比所建議的實施例中的其他特征是對數據項的預取和負載轉發。
附圖說明
圖1是圖示依據一些實施例的客戶端-服務器分布式系統的基礎結構的框圖。
圖2是圖示依據一些實施例的示例性客戶端系統的結構的框圖。
圖3是圖示依據一些實施例的示例性服務器系統的結構的框圖。
圖4是圖示依據一些實施例的在客戶端-服務器分布式系統的組件之間的相互關系的框圖。
圖5A-5C是圖示依據一些實施例的在客戶端-服務器分布式系統中的多線程軟件應用的啟動過程的框圖。
圖6A是圖示依據一些實施例的服務器系統中的與web應用相關聯的數據結構的框圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于谷歌公司,未經谷歌公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201080023704.0/2.html,轉載請聲明來源鉆瓜專利網。





