專利名稱:計算機上的內容再現(xiàn)的制作方法
計算機上的內容再現(xiàn)
背景技術:
諸如字處理應用程序、電子數(shù)據(jù)表應用程序和演示應用程序等的生產力應用程序 (productivity application program)使得用戶能夠創(chuàng)建不同類型的文檔。這些文檔可以包括原屬于特定文檔類型并且甚至原屬于特定應用程序的數(shù)據(jù)。為了查看這一原生的數(shù)據(jù) (native data),用戶可以通過創(chuàng)建該文檔的生產力應用程序來查看文檔。例如,用戶可以依靠特定的字處理應用程序來查看由該字處理應用程序創(chuàng)建的字處理文檔。當文檔通過網頁瀏覽器跨萬維網(在下文中被稱為“網頁”)被共享時,會產生問題。特別地,一般的網頁瀏覽器不能夠以其原生的格式讀取給定的文檔。為了解決這一問題,網絡服務器可以被實現(xiàn)以執(zhí)行能夠將文檔從其原生的格式再現(xiàn)(render)為能夠通過網頁瀏覽器查看的網頁兼容的格式的代碼。此類網頁服務器的傳統(tǒng)實現(xiàn)在向網頁瀏覽器提供再現(xiàn)的版本之前完全地再現(xiàn)文檔。這有時被稱為文檔預再現(xiàn)。在預再現(xiàn)期間,請求查看給定文檔的用戶將被迫在文檔被完全再現(xiàn)之前等待大量的時間。這一延遲可以導致用戶本質上的受挫和不便。在此呈現(xiàn)對于這些和其它考慮事項做出的本公開。
發(fā)明內容
此處描述了用于再現(xiàn)諸如文檔的內容的技術。提供了用于將文檔和其它內容從原生的文檔格式再現(xiàn)為能夠通過網頁瀏覽器或其它合適的應用程序查看的網頁兼容的格式的應用程序服務器。應用程序服務器包括被操作為增量地再現(xiàn)文檔的再現(xiàn)模塊。通過增量再現(xiàn),應用程序服務器可以在原生的文檔仍在被再現(xiàn)時,向網頁瀏覽器提供經再現(xiàn)的文檔部分。此處描述的技術的其它示例實現(xiàn)包括將文檔從一個格式轉換到另一個格式(例如將文檔從二進制文件格式變換為辦公公開XML(Office Open XML)格式、便攜式文件格式 (“PDF”)等)。還提供了下載管理器以便提高再現(xiàn)模塊的吞吐量。當再現(xiàn)模塊在再現(xiàn)一個文檔時,下載管理器可以開始檢索將在稍后時間再現(xiàn)的其它文檔。這些其它文檔可以從存儲服務器處下載并且被存儲在應用程序服務器上的再現(xiàn)隊列中。一旦再現(xiàn)模塊變?yōu)榭捎?,再現(xiàn)模塊可以立即開始對這些直接來自于再現(xiàn)隊列的其它文檔進行再現(xiàn),而沒有在等待提取文檔時的下載時間。還提供了一個或多個高速緩存以便減少用于提取文檔和其它內容的工作量。高速緩存的示例包括文檔高速緩存、授權高速緩存和位置高速緩存。文檔高速緩存可以被操作為存儲在前端中再現(xiàn)的文檔,從而消除了在后端從其它存儲單元提取再現(xiàn)的文檔的需要。 授權高速緩存可以被操作為存儲授權和驗證數(shù)據(jù),從而消除了重新授權或重新認證稍后訪問同一文檔的用戶的需要。位置高速緩存可以被操作為存儲再現(xiàn)的文檔的位置。通過使用位置高速緩存,可以從相關存儲單元有效地提取再現(xiàn)的文檔而不需查詢多個存儲單元。根據(jù)一個實施例,此處提供用于再現(xiàn)通過在計算機上操作的網頁瀏覽器查看的內容的方法。內容的一些部分被變換為再現(xiàn)的內容部分。當內容部分正在被變換為再現(xiàn)的內容部分時,至少一部分的再現(xiàn)的內容部分可以被提供給應用程序。應當明白,上述主題還可以被實現(xiàn)為計算機控制的裝置、計算機進程、計算系統(tǒng)、 或諸如計算機可讀介質等的制品。通過閱讀以下詳細描述并查閱相關的附圖,這些和各種其它特征將是顯而易見的。提供本概述以便以簡化形式介紹將在以下的詳細描述中進一步描述的一些概念。 本概述并不旨在標識出所要求保護的主題的關鍵或必要特征,本概述也不旨在用于限定所要求保護的主題的范圍。此外,所要求保護的主題不限于解決在本公開的任一部分中提及的任何或所有缺點的實現(xiàn)。
圖1是依照各實施例,示出被操作為再現(xiàn)通過網頁瀏覽器查看的文檔的說明性系統(tǒng)體系結構的框圖;圖2是依照各實施例,示出來自圖1的系統(tǒng)體系結構中的應用程序管理器的說明性實現(xiàn)的框圖;圖3是依照各實施例,示出來自圖1的系統(tǒng)體系結構中的前端的說明性實現(xiàn)的框圖;圖4A是依照各實施例,示出用于再現(xiàn)通過網頁瀏覽器查看的內容的說明性過程的流程圖;圖4B是依照各實施例,示出用于取得再現(xiàn)內容的一部分的說明性過程的流程圖; 以及圖5是示出能夠實現(xiàn)此處呈現(xiàn)的各實施例的計算系統(tǒng)的說明性計算機硬件體系結構的計算機體系結構圖。
具體實施例方式以下詳細描述被定向至用于再現(xiàn)諸如文檔的內容的技術。通過使用此處呈現(xiàn)的技術和概念,提供了被操作為將文檔或其它內容從其原生的格式增量地再現(xiàn)為諸如網頁兼容格式等的另一個格式的應用程序服務器。相比于預再現(xiàn),由于內容是被增量地再現(xiàn),已經被再現(xiàn)的文檔或其它內容的每個離散部分可以變?yōu)橛脩艨捎玫摹_€提供了一個或多個高速緩存以便減少用于檢索再現(xiàn)的內容的工作量。此處描述的實施例將頁或幻燈片稱為文檔或經再現(xiàn)的文檔的離散部分。但是,應當明白頁和幻燈片僅是離散部分的示例,并且不旨在限定。如本領域的技術人員所預期的, 其它種類的離散部分可以被類似地實現(xiàn)。雖然沒有如此限定,但是此處描述的實施例主要指文檔和文檔再現(xiàn)。但是,應當明白此處描述的實施例可以類似地應用于能夠從原生的格式再現(xiàn)為另一格式的任意合適的內容。這些內容可以包括諸如文本、圖像、音頻、視頻和其組合等的多媒體。此外,此處描述的實施例主要指如能夠通過網頁瀏覽器查看的網頁兼容格式的再現(xiàn)的格式。但是,應當明白如本領域的技術人員所預期的,再現(xiàn)的格式可以是其它合適的格式。盡管在結合計算機系統(tǒng)上的操作系統(tǒng)和應用程序的執(zhí)行而執(zhí)行的程序模塊的一般上下文中呈現(xiàn)了此處描述的主題,但是本領域技術人員將認識到,其它實現(xiàn)可以結合其
6它類型的程序模塊來執(zhí)行。一般地,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結構和其它類型的結構。此外,本領域的技術人員將明白,可以用其它計算機系統(tǒng)配置來實施此處描述的主題,這些計算機系統(tǒng)配置包括手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子產品、小型計算機、大型計算機等等。在以下的詳細描述中,將參考構成本發(fā)明的一部分的附圖,并且在附圖中作為說明示出了各具體實施例或示例?,F(xiàn)在參考附圖,其中若干附圖中相同的標號表示相同的元素,用于提供按需內容查看的概念和技術將被描述。特別地,圖1是示出依照各實施例,被操作為再現(xiàn)文檔和檢索再現(xiàn)的文檔的系統(tǒng)體系結構100的框圖。體系結構100包括被操作為與計算機104通信的前端102。前端102可以通過諸如因特網等的網絡108從網頁瀏覽器106處接收和處理請求。例如,前端102可以接收具有對存儲在文檔存儲112中的特定文檔,例如文檔110A,的請求的超文本傳輸協(xié)議(“HTTP”)消息。應當明白,依照進一步的實施例,體系結構100的組件可以駐于同一的服務器上。將體系結構100分為前端和應用程序服務器僅是實現(xiàn)設計選擇,并且不旨在限定。響應于接收到HTTP請求,網頁前端102可以嘗試從輸出存儲114處檢索與請求的文檔IlOA對應的網頁兼容的再現(xiàn)文檔110B。例如,如果文檔IlOA是最近被再現(xiàn)的,則經再現(xiàn)的文檔IlOB可以被存儲在輸出存儲114中。如果輸出存儲114包含與文檔IlOA對應的經再現(xiàn)的文檔110B,則輸出存儲114可以將經再現(xiàn)的文檔IlOB返回給前端102。如果輸出存儲114不包含經再現(xiàn)的文檔110B,則應用程序服務116,更具體地說再現(xiàn)模塊118,可以從文檔存儲112處檢索文檔110A。根據(jù)各實施例,應用程序服務器116中的再現(xiàn)模塊118被操作為將文檔IlOA再現(xiàn)(即轉換、變換)為經再現(xiàn)的文檔110B。再現(xiàn)模塊118可以生成能夠被合適的網頁瀏覽器顯示的任何格式的經再現(xiàn)的文檔110B。示例格式可以包括圖像格式(例如便攜式網絡圖形(“PNG”)、聯(lián)合圖像專家組(“JPEG”)等)、微軟的SILVERLIGHT、ADOBE的FLASH等等。再現(xiàn)模塊118還可以將經再現(xiàn)的文檔IlOB生成為包括可擴展標記語言(“XML”)、腳本、超文本標記語言(“HTML”)、圖像和/或等等的網頁就緒的譯文,從而該網頁就緒的譯文中獨立的數(shù)據(jù)類型可以被網頁瀏覽器共同地理解。在由此處描述的增量再現(xiàn)過程生成后,這些數(shù)據(jù)類型中的每一種可以變?yōu)橛脩艨捎玫?。再現(xiàn)模塊118還可以被操作為同時再現(xiàn)多個文檔。在生成經再現(xiàn)的文檔IlOB后,應用程序服務器116可以將經再現(xiàn)的文檔IlOB存儲在輸出存儲114中,并且將經再現(xiàn)的文檔IlOB返回至前端102。在接收到經再現(xiàn)的文檔IlOB后,前端102可以通過經由HTTP協(xié)議向網頁瀏覽器 106提供經再現(xiàn)的文檔IlOB來響應HTTP請求。然后網頁瀏覽器106可以顯示對應文檔 IlOA的完全保真表示的經再現(xiàn)的文檔110B。完全保真表示包含在原始表示中發(fā)現(xiàn)的相同格式(例如布局、分辨率、內容等)。因此,無論是通過生產力應用程序還是通過諸如網頁瀏覽器106等的網頁瀏覽器來查看文檔,用戶都可以期望查看給定文檔的相同體驗。完全保真表示可以對比于其中例如布局被改變或者分辨率和內容被減少的較低保真表示。在其它實施例中,經再現(xiàn)的文檔IlOB可以用于非查看場景,例如將二進制文件轉換為用于編輯的另一文檔類型。例如,微軟OFFICE 二進制文件可以被再現(xiàn)為公開辦公可擴展標記語言 (“ OOXML ”)文件。應當明白,圖1的體系結構100中組件和組件的配置僅是說明性的,并且不旨在限定。在其它實施例中,體系結構100可以包括另外的前端和/或另外的應用程序服務器。此外,多個前端和/或多個應用程序服務器可以駐留在同一服務器上。例如,另外的前端可以用于處理來自網頁瀏覽器的更大數(shù)量的請求。在一個實施例中,部署另外的應用程序服務器以處理更重負荷的再現(xiàn)。在另一個實施例中,部署另外的應用程序服務器以再現(xiàn)不同類型的文檔。例如,一個應用程序服務器可以專用于再現(xiàn)字處理文檔,而另一個應用程序服務器可以專用于再現(xiàn)演示。在另一個實施例中,部署另外的應用程序服務器以再現(xiàn)一給定文檔的不同元素。然后可以結合經再現(xiàn)的元素以創(chuàng)建經再現(xiàn)的文檔。例如,一個應用程序服務器可以再現(xiàn)演示中的視頻,而另一個應用程序服務器可以再現(xiàn)該演示中的文本。在這一例子中,前端102可以被操作為結合兩個應用程序服務器的結果以構成經再現(xiàn)的演示。在一些實施例中,響應于對再現(xiàn)給定格式的文檔的單個請求,前端102可以指示應用程序服務器116將文檔再現(xiàn)為多個格式,以便支持跨多個設備類型和網頁客戶端配置的多個使用。例如,網頁瀏覽器106可以從前端102請求以ADOBE FLASH再現(xiàn)的給定文檔。前端102可以通過與操作網頁瀏覽器106的用戶相關聯(lián)的用戶檔案,確定用戶經常訪問ADOBE FLASH、微軟SILVERLIGHT、便攜式網絡圖形(“PNG”)、移動的和完整版本的文檔。 前端102還可以通過用戶檔案確定用戶經常訪問包括XML、腳本、HTML、圖像和/或等等的網頁就緒譯文的文檔。在這一例子中,前端102可以通過再現(xiàn)一個或多個這些版本的文檔來完成請求。其它合適的數(shù)據(jù)可以類似地用于確定前端102是否響應于單個再現(xiàn)請求,指示應用程序服務器116再現(xiàn)文檔為多個格式。通過響應于單個請求主動地再現(xiàn)文檔為多個格式,而不是響應于對另外格式的指定請求而再現(xiàn)文檔,體系結構100可以更迅速地提供經再現(xiàn)的文檔。根據(jù)各實施例,應用程序服務器116進一步包括應用程序管理器120。應用程序管理器120被操作為管理將文檔IlOA增量再現(xiàn)為經再現(xiàn)的文檔110B。如此處所使用的,“增量再現(xiàn)”指在文檔IlOA正在由再現(xiàn)模塊118再現(xiàn)時,提供經再現(xiàn)文檔IlOB的部分。例如, 可以向前端102提供字處理文檔經再現(xiàn)的第一頁或者演示的經再現(xiàn)的第一張幻燈片,然后前端102可以提供經再現(xiàn)的第一頁或經再現(xiàn)的第一張幻燈片給網頁瀏覽器106用于顯示。 其它實施例可以再現(xiàn)文檔中的任意特定頁或幻燈片。其它實施例還可以再現(xiàn)除了頁或幻燈片以外的內容的其它部分。作為正在由再現(xiàn)模塊118再現(xiàn)的字處理文檔或演示的剩余,應用程序管理器120可以向網頁瀏覽器106提供另外的經再現(xiàn)的頁和經再現(xiàn)的幻燈片。為了提供增量再現(xiàn),應用程序管理器120可以在文檔IlOA正在由再現(xiàn)模塊118再現(xiàn)時,使得經再現(xiàn)文檔IlOB的部分可用。前端102然后可以在必要時從應用程序服務器 116處檢索經再現(xiàn)文檔IlOB的這些部分。在一個實施例中,經再現(xiàn)文檔IlOB的這些部分被存儲在應用程序服務器116中的后端高速緩存122里。在增量再現(xiàn)期間,可以按照任意預定的順序再現(xiàn)文檔的頁或幻燈片。這些經再現(xiàn)的頁或幻燈片隨后按照其被再現(xiàn)的相同順序對前端102可用。在一個實施例中,從文檔的開頭到結尾來再現(xiàn)文檔。與其中用戶必須等待直到整個文檔被再現(xiàn)為止的傳統(tǒng)預再現(xiàn)相反,增量再現(xiàn)減少了在用戶能夠查看文檔的諸如開頭或者若干其它部分等的部分之前再現(xiàn)的時間量。例如, 在傳統(tǒng)的預再現(xiàn)中,需要查看字處理文檔的第一頁或者演示的第一張幻燈片的用戶需要等待直到整個字處理文檔或者演示被再現(xiàn)為止。在增量再現(xiàn)的說明性實現(xiàn)中,用戶能夠在剩余的字處理文檔或演示被再現(xiàn)之前,更加快速地查看第一頁或者第一張幻燈片。
在一些實施例中,用戶可以請求文檔的第N頁或者第N張幻燈片,其中變量N表示文檔中的任意頁或幻燈片。請求可以發(fā)生在文檔被再現(xiàn)之前或者文檔被再現(xiàn)時。在接收到對第N頁或第N張幻燈片的請求后,應用程序管理器120可以指示再現(xiàn)模塊118通過搜索文檔中特定的頁或幻燈片來再現(xiàn)該第N頁或第N張幻燈片。然后經再現(xiàn)的第N頁或第N張幻燈片可以由前端120使用。在經再現(xiàn)的第N頁或第N張幻燈片可用后,應用程序管理器 120繼續(xù)進行再現(xiàn)剩余的文檔。在一些實施例中,再現(xiàn)模塊118被操作為當整個文檔還沒有被完全下載時增量地再現(xiàn)文檔。就是說,再現(xiàn)模塊118可以在正在從文檔存儲112處下載文檔時開始再現(xiàn)該文檔,而不是等到整個文件已經被下載時。這一在完全下載文檔前再現(xiàn)該文檔的方法可以減少再現(xiàn)模塊118再現(xiàn)文檔的時間量,尤其是當文檔相對較大時?,F(xiàn)在轉至圖2,將描述關于應用程序管理器120的另外的細節(jié)。特別地,圖2是根據(jù)各實施例,示出應用程序管理器120的框圖。應用程序管理器120包括下載管理器202 和再現(xiàn)隊列204。根據(jù)各實施例,下載管理器202被操作為在再現(xiàn)模塊118再現(xiàn)文檔之前從文檔存儲112處下載該文檔。下載管理器202然后可以將下載的文檔存儲在再現(xiàn)隊列204 中,直到再現(xiàn)模塊118可用來再現(xiàn)該文檔為止。應當明白,再現(xiàn)隊列204可以在沒有下載管理器202的情況下操作。但是,下載管理器202可以用于加速通過再現(xiàn)隊列204的處理。此外,即便是下載管理器202存在,再現(xiàn)隊列204可以獨立于下載管理器202操作以處理當應用程序管理器120過載時的情況。在說明性示例中,如果提出請求再現(xiàn)第一文檔206A和第二文檔206B,則下載管理器202可以從文檔存儲112處下載第一文檔206A,并且再現(xiàn)模塊118可以開始再現(xiàn)第一文檔206A。當再現(xiàn)模塊118再現(xiàn)第一文檔206A時,下載管理器202可以同時從文檔存儲112 處下載第二文檔206B并且將第二文檔206B存儲在再現(xiàn)隊列204中。在再現(xiàn)第一文檔206A 后,再現(xiàn)模塊118然后可以立即繼續(xù)再現(xiàn)來自再現(xiàn)隊列204的第二文檔206B,而不需要等待下載第二文檔206B。采用這種方式,通過消除在傳統(tǒng)實現(xiàn)中發(fā)現(xiàn)的任何空閑時間來提高再現(xiàn)模塊118的吞吐量,在傳統(tǒng)實現(xiàn)中再現(xiàn)模塊118需要等待下載第二文檔206B。應當明白,如本領域的技術人員所預期的,再現(xiàn)隊列204可以被配置為存儲任意數(shù)量的文檔。在一些實施例中,下載管理器202可以由用戶配置為調節(jié)同時下載的文檔數(shù)以及存儲在再現(xiàn)隊列204中等待再現(xiàn)的最大文檔數(shù)。采用這種方式,用戶可以確保在任意給定時間下載和/或存儲的文檔數(shù)不對系統(tǒng)資源施加過度的負擔?,F(xiàn)在轉至圖3,將描述關于前端102的另外的細節(jié)。特別地,圖3是根據(jù)各實施例, 示出前端102的框圖。前端102包括請求合并模塊302和包括文檔高速緩存304A、授權高速緩存304B以及位置高速緩存304C的若干高速緩存304。根據(jù)各實施例,請求合并模塊302 維護標識當前正在再現(xiàn)給定文檔的特定應用程序服務器的跟蹤數(shù)據(jù)。請求合并模塊302可以使用這一跟蹤數(shù)據(jù)以將同一文檔的另外請求指向同一應用程序服務器。通過將同一文檔的另外請求指向同一應用程序服務器,減少了應用程序服務器之間的冗余工作,并且其它的應用程序服務器可以被釋放以再現(xiàn)其它文檔。如以上所述,圖1的系統(tǒng)體系結構100可以包括多個前端和多個應用程序服務器。 這些前端能夠或者不能夠互相通信。在前端不互相通信的例子中,請求合并模塊302可以被配置為執(zhí)行一致散列,以便為特定的文檔請求標識特定的應用程序服務器。在一致散列中,給定文檔請求的一個或多個方面可以被分析,以便將這些方面映射到特定的應用程序服務器。采用這種方式,即便是這些前端不能互相通信時,單獨的前端也可以將對同一文檔的多個請求指向同一應用程序服務器。文檔請求的方面的示例是被請求的文檔名。應當明白,在這一例子中一致散列可以顯著提高文檔不在不同的應用程序服務器上被多次再現(xiàn)的概率(例如多個前端可以接收對同一文檔的請求)。沒有一致散列,眾多應用程序服務器可以接收這些請求并且處理同一文檔。可以類似地使用能夠將文檔請求映射到應用程序服務器的其它散列技術。高速緩存304可以通過減少前端102訪問諸如輸出存儲114和應用程序服務器 116等的系統(tǒng)體系結構100的其它部分的需要來提高前端102的性能。根據(jù)各實施例,文檔高速緩存304A被操作為根據(jù)流行程度來緩存經再現(xiàn)文檔的至少部分。例如,經常被請求的文檔可以直接從文檔高速緩存304A處檢索,而不用訪問輸出存儲114或應用程序服務器 116。如本領域的技術人員所預期的,任何的各種因素和方法都可以用于確定文檔的流行程度。根據(jù)各實施例,授權高速緩存304B被操作為存儲與用戶相關的授權和驗證信息。 基于用戶輸入諸如用戶名和密碼的身份信息的授權過程,可以限制對文檔和經再現(xiàn)的文檔的訪問。例如,當用戶嘗試訪問特定文檔時,前端102可以訪問請求諸如登錄標識符和密碼的標識用戶的信息的授權模塊(未示出)。授權模塊然后可以確定用戶是否許可訪問文檔。 授權模塊可以被配置為僅當授權模塊驗證用戶具有許可時允許訪問文檔。當授權模塊成功驗證用戶時,授權高速緩存304B可以存儲指示用戶已經被驗證的狀態(tài)信息。前端102可以使用這一狀態(tài)信息以驗證用戶具有或不具有訪問文檔的許可, 而不需要訪問授權模塊。采用這種方式,不要求前端102發(fā)送證書至遠程授權服務,從而優(yōu)化了前端102的性能。此外,用戶不必為訪問同一文檔的另外請求重新輸入身份信息。當用戶每次僅請求給定文檔的一部分時,授權高速緩存304B中存儲的狀態(tài)信息是尤其有用的。例如,用戶可以在開始時僅請求多頁文檔的第一頁。在提交對文檔的第一頁的請求后,用戶被要求輸入身份信息(例如證書)以便查看第一頁。如果用戶隨后請求文檔另外的頁,則前端102可以基于存儲在授權高速緩存304B中的證書快速地授權用戶。 因此,每次用戶驗證并不需要導致用戶被詢問證書。此外,可以消除重新查詢其它服務器以驗證和授權用戶的需要。授權高速緩存304B可以被配置為在刪除狀態(tài)信息之后在任意時間量內存儲該狀態(tài)信息。根據(jù)各實施例,也被稱為“字典”的位置高速緩存304C被操作為存儲給定的經再現(xiàn)文檔的位置。例如,位置高速緩存304C可以指示存儲特定的經再現(xiàn)文檔的特定存儲單元。存儲單元的示例可以包括輸出存儲114和后端高速緩存122。存儲單元可以是系統(tǒng)體系結構100的一部分或者與系統(tǒng)體系結構100分離。通過將再現(xiàn)文檔的位置存儲在位置高速緩存304C中,相對于單獨地查詢每個存儲單元并且導致存儲單元上另外的負載而言,前端102可以將對經再現(xiàn)的文檔的請求指向特定的存儲單元?,F(xiàn)在參考圖4A和4B,將提供關于此處呈現(xiàn)的用于再現(xiàn)通過網頁瀏覽器查看的文檔的各實施例的附加細節(jié)。特別地,圖4A是示出一種用于再現(xiàn)通過在計算機上操作的網頁瀏覽器查看的內容的方法的流程圖。圖4B是示出一種用于取得內容的經再現(xiàn)部分的方法
10的流程圖。圖4B的方法可以與圖4A的方法一起執(zhí)行,或者在圖4A的方法執(zhí)行之后執(zhí)行。 應當明白,此處描述的邏輯操作被實現(xiàn)為(1)運行在計算機系統(tǒng)上的一系列計算機實現(xiàn)的動作或程序模塊,和/或(2)計算機系統(tǒng)內互連的機器邏輯電路或電路模塊。取決于計算系統(tǒng)的性能及其它要求,可以選擇不同的實現(xiàn)。因此,此處描述的邏輯操作被不同地稱為狀態(tài)、操作、結構設備、動作或模塊。這些操作、結構設備、動作和模塊可以用軟件、固件、專用數(shù)字邏輯,以及其任何組合來實現(xiàn)。應當明白,可以執(zhí)行比附圖中示出以及此處描述的操作更多或更少的操作。這些操作還可以按與此處所描述的不同的順序來執(zhí)行。在圖4A中,例程400在操作402處開始,其中前端102從網頁瀏覽器106處接收對諸如文檔IlOA的文檔的請求。例程400然后進行至操作404處,其中前端102指示再現(xiàn)模塊118開始增量再現(xiàn)文檔110A。特別地,再現(xiàn)模塊118可以從文檔存儲112處檢索文檔 110A。在從文檔存儲112處檢索文檔IlOA后,再現(xiàn)模塊118可以再現(xiàn)文檔IlOA的第一頁或第一張幻燈片。在一些實施例中,請求可以指定文檔IlOA中的特定幻燈片或頁。在這一例子中,再現(xiàn)模塊118可以再現(xiàn)特定的頁或特定的幻燈片,而不是第一頁或第一張幻燈片。 在生成經再現(xiàn)的文檔IlOB的第一頁或第一張幻燈片后,例程進行到操作406處。在操作406處,再現(xiàn)模塊118確定文檔IlOA是否已經被完全再現(xiàn)。如果文檔IlOA 已經被完全再現(xiàn),則例程400A終止。如果文檔IlOA沒有被完全再現(xiàn),則例程400退回至操作404處,其中再現(xiàn)文檔1IOA的下一頁或下一張幻燈片。操作404可以重復必要多的次數(shù), 直到文檔IlOA已經被完全再現(xiàn)為經再現(xiàn)的文檔IlOB為止。在圖4B中,例程400B在操作408處開始,其中前端102從網頁瀏覽器106處接收對諸如文檔IlOA的文檔的請求。例程400B然后進行到操作410處,其中隨著經再現(xiàn)的文檔IlOB的頁或幻燈片由再現(xiàn)模塊118再現(xiàn),應用程序管理器120使得前端102能夠使用經再現(xiàn)的文檔IlOB的這些頁或幻燈片。如果請求特定的頁或特定的幻燈片,則應用程序管理器120還可以使得該特定的頁或特定的幻燈片可用。再現(xiàn)模塊118可以通過后端高速緩存 122使得經再現(xiàn)的文檔IlOB的頁或幻燈片可用。前端102然后可以從后端緩存122處檢索經再現(xiàn)的文檔IlOB的頁或幻燈片,并且將經再現(xiàn)的文檔IlOB的頁或幻燈片傳輸至網頁瀏覽器106用于顯示。應當明白,可以在文檔1IOA正在根據(jù)例程400A被增量再現(xiàn)時執(zhí)行例程400B。就是說,當再現(xiàn)模塊118正在根據(jù)例程400A再現(xiàn)文檔IlOA的頁或幻燈片時,應用程序管理器 120可以根據(jù)例程400B實現(xiàn)對那些經再現(xiàn)的頁或幻燈片的請求。采用這種方式,前端102 可以繼續(xù)檢索經再現(xiàn)的文檔IlOB另外的頁或幻燈片,而不等待整個經再現(xiàn)的文檔IlOB被生成。此外,當應用程序管理器120正在實現(xiàn)對經再現(xiàn)的文檔IlOB的頁或幻燈片的請求時, 再現(xiàn)模塊118可以繼續(xù)再現(xiàn)來自文檔IlOA另外的頁或幻燈片。根據(jù)一些實施例,可以由前端102接收對其它文檔的另外請求。不需要等待直到再現(xiàn)模塊118已經完成將文檔IlOA再現(xiàn)為再現(xiàn)文檔IlOB為止,下載管理器202可以從文檔存儲112處檢索其它文檔,并且在再現(xiàn)模塊118仍在再現(xiàn)文檔IlOA時將這些文檔存儲在再現(xiàn)隊列204中。在將文檔IlOA再現(xiàn)為經再現(xiàn)的文檔IlOB后,再現(xiàn)模塊118可以開始再現(xiàn)這些其它文檔,而不用等待從文檔存儲112處檢索它們。根據(jù)一些實施例,對文檔IlOA的另外請求可以被定向至同一應用程序服務器 116。采用這種方式,其它應用程序服務器可用來再現(xiàn)其它文檔。此外,根據(jù)一些實施例,響應于單個請求,再現(xiàn)模塊118可以將文檔IlOA再現(xiàn)為多個格式?,F(xiàn)在參考圖5,說明了示出計算機500的示例性計算機體系結構圖。計算機500包括處理單元502( “CPU”)、系統(tǒng)存儲器504、以及將存儲器504耦合至CPU 502的系統(tǒng)總線 506。計算機500進一步包括用于存儲諸如再現(xiàn)模塊118的一個或多個程序模塊514的大容量存儲設備512,以及諸如文檔存儲112的一個或多個數(shù)據(jù)庫516。其它程序模塊514可以包括網頁瀏覽器106、下載管理器202以及請求合并模塊302。其它數(shù)據(jù)庫516可以包括輸出存儲114、再現(xiàn)隊列204以及高速緩存304。大容量存儲設備512通過連接至總線506 的大容量存儲控制器(未示出)連接到CPU 502。大容量存儲設備512及其相關的計算機可讀介質為計算機500提供非易失性存儲。雖然對這里包含的計算機可讀介質的描述引用了諸如硬盤或CD-ROM驅動器之類的大容量存儲設備,但是本領域的技術人員應當明白,計算機可讀介質可以是可由計算機500訪問的任何可用計算機存儲介質。作為示例而非限制,計算機可讀介質可以包括以用于存儲諸如計算機可讀指令、 數(shù)據(jù)結構、程序模塊之類的信息或其它數(shù)據(jù)的任何方法或技術實現(xiàn)的易失性和非易失性、 可移動和不可移動介質。例如,計算機可讀介質包括但不限于,RAM、ROM、EPROM、EEPR0M、閃存或其它固態(tài)存儲器技術、⑶-ROM、數(shù)字多功能盤(“DVD”)、HD-DVD、藍光(BLU-RAY)或其它光學存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機500訪問的任何其它介質。根據(jù)各實施例,計算機500可以在使用通過諸如網絡108之類的網絡到遠程計算機的邏輯連接的聯(lián)網環(huán)境中操作。計算機500可以通過連接至總線506的網絡接口單元 510來連接到網絡108。應當明白,網絡接口單元510還可以被用來連接到其它類型的網絡和遠程計算機系統(tǒng)。計算機500還可以包括輸入/輸出控制器508,用于接收和處理來自包括鍵盤、鼠標、話筒和游戲控制器的多個輸入設備(未示出)的輸入。類似地,輸入/輸出控制器508可以向顯示器或其它類型的輸出設備(未示出)提供輸出?;谏衔模瑧斆靼状颂幊尸F(xiàn)了用于再現(xiàn)諸如文檔的通過網頁瀏覽器查看的內容的技術。雖然以計算機結構特征、方法動作、以及計算機可讀介質專用的語言描述了此處呈現(xiàn)的主題,但是應當理解,在所附權利要求書中所限定的本發(fā)明不一定僅限于此處描述的具體特征、動作、或介質。相反,這些具體特征、動作和介質是作為實現(xiàn)權利要求的示例形式來公開的。上述主題僅作為說明提供,并且不應被解釋為限制??梢詫Υ颂幩龅闹黝}作出各種修改和改變,而不必遵循所示和所述的示例實施例和應用,并且不背離所附權利要求書中所述的本發(fā)明的真正精神和范圍。
權利要求
1.一種用于再現(xiàn)計算機上的內容(110A)的計算機實現(xiàn)的方法,所述方法包括計算機實現(xiàn)的操作以用于變換內容(110A)的一部分為經再現(xiàn)的內容(110B)部分;以及當正在變換內容(110A) —部分為經再現(xiàn)的內容(110B)部分時,向應用程序(106)提供至少一些經再現(xiàn)的內容(110B)部分。
2.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述經再現(xiàn)的內容適用于通過網頁瀏覽器提供內容的完全保真表示;并且所述向應用程序提供至少一些經再現(xiàn)的內容部分包括向網頁瀏覽器提供至少一些經再現(xiàn)的內容部分。
3.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述內容包括文檔或演示;如果所述內容包括文檔,則變換內容的一部分為經再現(xiàn)的內容部分包括變換文檔的頁為經再現(xiàn)的文檔的頁;并且如果所述內容包括演示,則變換內容的一部分為經再現(xiàn)的內容部分包括變換演示的幻燈片為經再現(xiàn)的文檔的幻燈片。
4.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于從網頁瀏覽器處接收對經再現(xiàn)的內容的請求;以及所述向網頁瀏覽器提供至少一些經再現(xiàn)的內容部分包括響應于對經再現(xiàn)的內容的請求,向網頁瀏覽器提供至少一些經再現(xiàn)的內容部分;以及將經再現(xiàn)的內容存儲在文檔高速緩存中。
5.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于確定操作網頁瀏覽器的用戶是否具有查看內容的許可;所述變換內容的一部分為經再現(xiàn)的內容部分包括響應于確定操作網頁瀏覽器的用戶具有查看內容的許可,變換內容的一部分為經再現(xiàn)的內容部分;以及響應于確定操作網頁瀏覽器的用戶具有查看內容的許可,將狀態(tài)信息存儲在授權高速緩存中,所述狀態(tài)信息指示用戶具有或沒有許可。
6.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于從網頁瀏覽器處接收對第一格式的內容的請求;以及所述變換內容的一部分為經再現(xiàn)的內容部分包括變換內容的一部分為第一格式的第一經再現(xiàn)的內容部分以及第二格式的第二經再現(xiàn)的內容部分。
7.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于從網頁瀏覽器處接收對內容的指定部分的請求;所述變換內容的一部分為經再現(xiàn)的內容部分包括變換內容的指定部分為經再現(xiàn)的內容的指定部分;以及當變換內容的一部分為經再現(xiàn)的內容部分時,從內容存儲中檢索第二內容并且將第二內容存儲在再現(xiàn)隊列中。
8.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于在變換內容的一部分為經再現(xiàn)的內容部分之前,從文檔存儲中檢索內容;以及所述變換內容的一部分為經再現(xiàn)的內容部分包括在從文檔存儲中檢索內容時,變換內容的一部分為經再現(xiàn)的內容部分。
9.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述變換內容的一部分為經再現(xiàn)的內容部分包括通過第一再現(xiàn)模塊變換內容中的一部分的第一元素為經再現(xiàn)的內容的第一元素;以及通過第二再現(xiàn)模塊變換內容中的一部分的第二元素為經再現(xiàn)的內容的第二元素;以及結合經再現(xiàn)的內容的第一元素和經再現(xiàn)的內容的第二元素以構成經再現(xiàn)的內容的部分。
10.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述方法還包括計算機實現(xiàn)的操作以用于將經再現(xiàn)的文檔存儲在多個存儲單元之一中;以及將經再現(xiàn)的文檔的位置存儲在位置高速緩存中。
11.一種再現(xiàn)計算機系統(tǒng),包括被操作為存儲文檔(110A)的文檔存儲(112);應用程序服務器(116),所述應用程序服務器(116)被操作為(i)從文檔存儲(112) 中檢索文檔(110A),(ii)增量地再現(xiàn)文檔(110A)以生成經再現(xiàn)的文檔(110B)部分,所述經再現(xiàn)的文檔(110B)部分適用于通過網頁瀏覽器(106)提供文檔(110A)的完全保真表示,以及(iii)通過網絡(108)向網頁瀏覽器(106)提供經再現(xiàn)的文檔(110B)的一個或多個部分;被操作為存儲來自應用程序服務器(116)的經再現(xiàn)的文檔(110B)的輸出存儲(114);以及被操作為幫助網頁瀏覽器(106)和應用程序服務器(116)之間通信的前端(102)。
12.如權利要求11所述的再現(xiàn)計算機系統(tǒng),其特征在于,所述應用程序服務器包括 再現(xiàn)模塊,所述再現(xiàn)模塊被操作為(i)通過網絡從網頁瀏覽器處接收對文檔的請求,以及(ii)響應于接收到對文檔的請求,變換文檔的一部分為經再現(xiàn)的文檔部分;應用程序管理器,所述應用程序管理器被操作為管理對來自文檔存儲的用于由再現(xiàn)模塊再現(xiàn)的文檔的檢索,所述應用程序管理器進一步被操作為(i)通過網絡從網頁瀏覽器處接收對文檔的請求,以及(ii)響應于接收到對文檔的請求,通過網絡向網頁瀏覽器提供經再現(xiàn)的文檔部分以用于通過網頁瀏覽器顯示;以及用于存儲經再現(xiàn)的文檔的后端高速緩存。
13.如權利要求12所述的再現(xiàn)計算機系統(tǒng),其特征在于,所述應用程序管理器包括 被操作為從文檔存儲中檢索另外的文檔的下載管理器;以及被操作為存儲由下載管理器檢索的另外的文檔的再現(xiàn)隊列,所述再現(xiàn)隊列被操作為向再現(xiàn)模塊提供另外的文檔以用于再現(xiàn)。
14.如權利要求11所述的再現(xiàn)計算機系統(tǒng),其特征在于,所述前端包括 被操作為存儲經再現(xiàn)的文檔的文檔高速緩存;被操作為存儲指示操作網頁瀏覽器的用戶是否具有訪問文檔的許可的授權信息的授權高速緩存;以及被操作為將經再現(xiàn)的文檔的位置存儲在一個或多個存儲單元中的位置高速緩存。
15.如權利要求14所述的再現(xiàn)計算機系統(tǒng),其特征在于,所述前端還包括被操作為維護標識正在再現(xiàn)文檔的應用程序服務器的跟蹤數(shù)據(jù)的請求合并模塊,所述前端進一步被操作為將對同一文檔的另外請求定向至同一應用程序服務器。
全文摘要
內容的一部分被變換為經再現(xiàn)的內容部分。當內容的一部分正在被變換為經再現(xiàn)的內容部分時,每個離散的經再現(xiàn)的內容部分可以在該部分完成之后被提供給應用程序。
文檔編號G06F15/16GK102341823SQ201080010824
公開日2012年2月1日 申請日期2010年2月26日 優(yōu)先權日2009年3月4日
發(fā)明者B·奧德爾-亞歷山大, G·A·豪威爾, J·戈特維斯, K·A·文卡塔, M·J·魯倫, N·A·羅巴吉, S·S·卡普爾, Z·朱 申請人:微軟公司