專利名稱:頁面內(nèi)安裝器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機軟件領(lǐng)域,并且更具體地,提供了可將軟件應(yīng)用經(jīng)
由web頁面安裝在用戶計算機上的系統(tǒng)和方法。
背景技術(shù):
隨著關(guān)于計算機安全問題(這些計算機安全問題許多都是由于將惡意 計算機軟件安裝到?jīng)]有疑心的用戶的計算機上而招致的)的新聞報導(dǎo)的盛 行,用戶可理解地對安裝任何新軟件都很警惕。此外,對于大部分人而 言,安裝新軟件是一項令人畏懼的任務(wù)一他們被提示確認(rèn)安裝路徑、安裝 選項以及可能對初學(xué)用戶而言難以理解的其他屬性。因此,在制造商分發(fā) 新計算機時,計算機軟件公司經(jīng)常競爭將其軟件安裝到這些計算機上的機 會。通過對軟件進行預(yù)安裝,計算機軟件公司可以消除用戶以后安裝軟件 的需要。因此,這些計算機軟件公司與不將其軟件進行預(yù)安裝的計算機軟 件公司相比,能夠?qū)崿F(xiàn)其軟件的更高采用率。
現(xiàn)有技術(shù)中的某些技術(shù)嘗試了通過簡化計算機軟件安裝過程來克服這 些缺點。作為示例,由加州圣克拉拉市的Macroviskm公司發(fā)行的 InstallShield安裝工具,以及由猶他州林頓市的Altiris公司發(fā)行的Wise Installation Studio,提供了可以用來使大多數(shù)軟件安裝過程自動化的手段。 然而,這樣的安裝工具要求針對每個應(yīng)用和應(yīng)用版本來創(chuàng)建新的安裝器 (installer)。安裝器將整個安裝打包到一個或多個經(jīng)壓縮的、經(jīng)數(shù)字簽名 的文件中,這些文件然后被安裝器提取。安裝器然后在軟件被安裝后去除其自身的至少一部分。
產(chǎn)業(yè)上的其他技術(shù)嘗試了通過簡化程序更新的安裝來解決問題,從而 至少減少用戶必須安裝程序的次數(shù)。作為示例,華盛頓洲雷蒙德市的
Microsoft公司提供了 ClickOnce (—次點擊)部署技術(shù)。ClickOnce是使得 軟件開發(fā)者能夠針對Microsoft Windows,系列操作系統(tǒng)創(chuàng)建自行更新的應(yīng) 用的部署技術(shù)。自行更新的應(yīng)用可以通過最少的用戶交互而被安裝并運 行。關(guān)于ClickOnce部署技術(shù)的更多信息可以參見 http:〃msdn2.microsoft.com/enus/library/142dbbz4.aspx。
發(fā)明內(nèi)容
所需要的是可以用來使計算機軟件安裝和更新能夠進一步簡化的系統(tǒng) 和方法。因此,該公開致力于一種頁面內(nèi)(in-page)計算機軟件安裝器, 其實質(zhì)上解決了由于相關(guān)技術(shù)的限制和缺點所致的一個或多個問題。
如上所述,許多計算設(shè)備被預(yù)裝載了計算機軟件,并且許多用戶將其 自身限制為僅使用這些計算機軟件,甚至是在可能更適合于用戶需要的其 他計算機軟件存在的情況下也是如此。類似地,雖然有益于特定用戶的計 算機軟件可能存在,但是用戶可能不知道這樣的軟件存在。
存在許多這樣的系統(tǒng),通過這些系統(tǒng),能夠基于用戶對傳統(tǒng)web瀏覽 器(例如非限制性地,由華盛頓洲雷蒙德市的Microsoft公司發(fā)行的 Internet Explorer,以及由加州芒廷維尤市的Mozilla公司發(fā)行的Firefox) 的使用以及與之進行的交互來為用戶建立簡檔(profile)。通過使用這樣 的建立簡檔的系統(tǒng),能夠判斷出是否存在很可能是用戶感興趣的計算機軟 件。該公開利用這樣的建立簡檔系統(tǒng)來提醒用戶存在這樣的軟件,并使這 樣的計算機軟件的安裝簡化并且更高效。
本發(fā)明的額外特征和優(yōu)點將在隨后的描述中被提出,并且部分地將根 據(jù)本公開而變得清楚,或者可通過實踐本發(fā)明而被認(rèn)識到。本發(fā)明的目的 和其他優(yōu)點將通過在此書寫的描述(包括在此包含的任何權(quán)利要求和附 圖)中具體指出的結(jié)構(gòu)而被認(rèn)識到并得到。
頁面內(nèi)計算機軟件安裝器的某些實施例為用戶提供跨web下載相關(guān)情境(context)的軟件的能力,以及盡可能快且不費氣力地得到這樣的軟件 而不違背情境的能力。該方案使得Web頁面等能夠為用戶提供適當(dāng)軟件的 安裝,并且這些提供將以如下的方式被嵌入到現(xiàn)有Web頁面中,所述方式 即基于由頁面提供的情境以及用戶計算設(shè)備的配置來動態(tài)定制提供和對采 取行動的號召(call to action)。這與支持基于Web的安裝的那些傳統(tǒng)安 裝器(其中安裝器必須從專用的Web頁面啟動)形成對比。作為示例而非 限制性地,用戶可能為了找到將存儲在用戶計算機上的數(shù)字相片呈現(xiàn)為幻 燈片的軟件,而搜索諸如widgets.yahoo.com之類的計算機軟件儲存庫 (repository)。這樣的搜索可能返回可能是用戶感興趣的若干個軟件應(yīng) 用。頁面內(nèi)計算機軟件安裝器能夠容易地允許用戶安裝作為搜索的一部分 被返回的一個或多個軟件應(yīng)用。
在某些實施例中,頁面內(nèi)計算機軟件安裝器還能夠在不請求或要求用 戶輸入的情況下,自動地管理依用戶計算設(shè)備的配置而異的安裝相關(guān)事 宜。這可以使用戶能夠通過點擊Web頁面上的對采取行動的號召來運行軟 件而無需用戶部分的額外的、中間動作。
頁面內(nèi)計算機軟件安裝器的某些實施例是開放的并且可擴展的,具有 基于由提交器提供的設(shè)置以及由母web頁面的開發(fā)器指示的參數(shù)來針對提 交給儲存庫的任何軟件動態(tài)管理安裝相關(guān)事宜的能力,并且受制于用戶計 算設(shè)備的配置。
某些實施例利用可分配的體系結(jié)構(gòu),從而輔助不同環(huán)境下的部署,并 且輔助下層體系結(jié)構(gòu)的變化。在某些實施例中,這可以通過經(jīng)由IFRAME (或者嵌入式幀,如在HTML 2.0規(guī)范中定義的那樣)將"標(biāo)記 (badge)"嵌入到web頁面中的安裝器中而被實現(xiàn)。在某些實施例中, 可以通過手動地將適當(dāng)功能硬編碼到個別Web頁面中來實現(xiàn)頁面內(nèi)計算機 軟件安裝器。在另一些實施例中,可以通過創(chuàng)建能夠被動態(tài)地嵌入到任一 Web頁面中的模塊來實現(xiàn)頁面內(nèi)計算機軟件安裝器。在另一些實施例中, 可以通過將適當(dāng)功能嵌入到提供廣告的媒體中來實現(xiàn)頁面內(nèi)計算機軟件安 裝器。
某些實施例包括一種通知用戶存在相關(guān)軟件并且輔助安裝該軟件的方法,包括以下步驟在瀏覽會話期間監(jiān)視用戶與正運行在計算設(shè)備上的瀏 覽器的交互;基于所監(jiān)視到的用戶交互來確定瀏覽會話的情境;確定與情 境相關(guān)的軟件是否可用;向用戶推薦所確定的軟件;以及通過頁面內(nèi)安裝 器來輔助安裝所確定的軟件。在某些實施例中,輔助步驟還包括判斷瀏 覽器是否是支持的瀏覽器,并且如果瀏覽器不是支持的瀏覽器,那么通過 標(biāo)準(zhǔn)安裝器來輔助安裝所確定的軟件;判斷必需的代碼庫是否被安裝在計 算設(shè)備上,并且將任何需要的代碼庫都安裝到計算設(shè)備上;從中央應(yīng)用服 務(wù)器得到安裝腳本;以及使瀏覽器發(fā)起安裝腳本。
在某些實施例中,安裝腳本或其多個部分可以是經(jīng)數(shù)字簽名的,并且 數(shù)字簽名可用來驗證安裝腳本是來自可信源的。如果安裝腳本不是來自可 信源的,那么頁面內(nèi)安裝器可以拒絕執(zhí)行安裝,或者頁面內(nèi)安裝器可以在 發(fā)起安裝之前請求用戶的額外授權(quán)。
在某些實施例中,頁面內(nèi)安裝器還可以包括基于所監(jiān)視到的用戶交互 來建立所述用戶的簡檔。在某些實施例中,所確定的軟件是通過廣告被推 薦給用戶的。在某些實施例中,所確定的軟件是通過動態(tài)地并入到出現(xiàn)在 所述瀏覽器中的web頁面中的內(nèi)容而被推薦給所述用戶的。
在某些實施例中,情境可以至少部分地基于與目前由瀏覽器所顯示的 頁面相關(guān)聯(lián)的關(guān)鍵字、元數(shù)據(jù)或其他這樣的信息而被確定。在某些實施例 中,情境可以至少部分地基于由用戶所執(zhí)行的搜索(例如,利用流行的雅 虎搜索引擎的搜索)的結(jié)果而被確定。
某些實施例包括一種用于輔助軟件安裝的系統(tǒng),包括標(biāo)準(zhǔn)web服務(wù) 器;應(yīng)用服務(wù)器;應(yīng)用相關(guān)數(shù)據(jù)庫(application dependency database);在 能夠呈遞(render)由標(biāo)準(zhǔn)web服務(wù)器所呈現(xiàn)的內(nèi)容的計算設(shè)備上操作的 瀏覽器;以及命令集,該命令集可由瀏覽器解譯,其中,所述命令集輔助 以下操作從應(yīng)用相關(guān)數(shù)據(jù)庫得到安裝腳本;從應(yīng)用服務(wù)器得到在安裝腳 本中引用的文件;以及執(zhí)行安裝腳本以安裝軟件。在某些實施例中,應(yīng)用 服務(wù)器包括應(yīng)用相關(guān)數(shù)據(jù)庫。某些實施例還可以包括第一代碼庫,其中, 第一代碼庫輔助運行在計算設(shè)備上的操作系統(tǒng)與瀏覽器之間的交互。某些 實施例還可以包括安裝在計算設(shè)備上的第二代碼庫,其中,第二代碼庫輔助得到關(guān)于安裝在計算設(shè)備上的操作系統(tǒng)和其他軟件應(yīng)用的信息。在某些 實施例中,第一代碼庫和第二代碼庫被并入到單個代碼庫中。
某些實施例可以包括并入到一個或多個計算機程序產(chǎn)品中的頁面內(nèi)安 裝器的各個方面。
該方案具有巨大的潛在商業(yè)意義。它被設(shè)計為確保一旦少量核心文件 被安裝到用戶的PC上,任何額外軟件的安裝將完全不用用戶費力。該方 案的實施例以開放并可擴展的方式被構(gòu)造從而實現(xiàn)了十分輕質(zhì)且可配置的 部署,這將很大程度上增大分配點的數(shù)目和相關(guān)性。此外,利用廣告服務(wù)
器的定向(targeting)技術(shù)的能力,開始了全新的分配方法。該分配機會 的增殖結(jié)合對于傳統(tǒng)可下載軟件分配所關(guān)聯(lián)的最費力的用戶痛處的消除的 最終結(jié)果被預(yù)測為成功的軟件安裝次數(shù)的大幅提高,以及采用這樣的軟 件的這些用戶的更高保持力。這使計算機制造商和計算機軟件售賣商能夠 不必再像當(dāng)前的實踐那樣過分積極地將不太相關(guān)的軟件與更流行的軟件產(chǎn) 品進行捆綁,而取而代之地將注意力放在給予用戶在他們所找尋的情境下 的、他們所希望的更多軟件。
應(yīng)理解,以上的一般描述和以下的詳細描述二者都是示例性和說明性 的,并且意欲提供對所公開的頁面內(nèi)計算機軟件安裝器的更進一步的說 明。
被包括用來提供對所公開的頁面內(nèi)計算機軟件安裝器的進一步理解 的、并且被并入且構(gòu)成本說明書一部分的附圖,示出各種實施例,并且與具體實施方式
一起用來說明所公開的頁面內(nèi)計算機軟件安裝器的至少一個 實施例的原理。
在附圖中
圖1是示出能夠告知用戶存在其可能感興趣的軟件的示例性用戶界面
的截屏(screen capture)。
圖2是示出能夠識別出用戶感興趣的軟件的示例性方法的流程圖。
圖3a和3b是示出能夠利用頁面內(nèi)安裝器來安裝軟件的示例性方法的流程圖。
圖4是能夠告知用戶關(guān)于感興趣的軟件的更多細節(jié)的示例性用戶界面 的截屏。
圖5是用戶憑借其能夠利用頁面內(nèi)安裝器來發(fā)起軟件的下載和安裝的 示例性用戶界面的截屏。
圖6是用戶憑借其能夠使軟件被打開的示例性頁面內(nèi)安裝器用戶界面 的截屏。
圖7是用戶憑借其能夠確認(rèn)軟件和相關(guān)支持組件的安裝的示例性頁面
內(nèi)安裝器用戶界面的截屏。
圖8是用戶憑借其能夠得到關(guān)于相關(guān)支持組件的更多信息的示例性用
戶界面的截屏。
圖9是示例性狀態(tài)條的截屏。 圖IO是示例性狀態(tài)條的截屏。 圖ll是示例性狀態(tài)條的截屏。 圖12是指示安裝被撤銷的示例性狀態(tài)條的截屏。 圖13是告知用戶安裝完成的示例性用戶界面的截屏。 圖14是告知用戶安裝和/或下載錯誤的示例性用戶界面的截屏。 圖15是用戶憑借其能夠發(fā)起對先前安裝軟件的更新的示例性用戶界 面的截屏。
圖16是示出支持頁面內(nèi)安裝器的實現(xiàn)方式的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)的 功能框圖。
具體實施例方式
現(xiàn)在將詳細描述所公開的頁面內(nèi)計算機軟件安裝器的實施例,在附圖 中示出了這些實施例的示例。
本公開描述了一種可基于用戶與web瀏覽器的交互來將軟件推薦給用 戶并且隨后為用戶安裝軟件的系統(tǒng)和方法。作為示例而非限制性地,存在 允許基于用戶所訪問的萬維網(wǎng)("Web")站點以及輸入其中的信息(例 如非限制性地,由用戶經(jīng)由一個或多個搜索引擎執(zhí)行的搜索)來對用戶建立簡檔的若干種系統(tǒng)。這樣的簡檔可被用來確定用戶的興趣范圍,并且這 些興趣范圍可隨后被用來識別出可能對用戶有益的或用戶需要的軟件。圖 1是可以告知用戶存在這樣的軟件的示例性用戶界面的截屏。在圖1所示
的示例中,該系統(tǒng)正在推薦"YME遙控器"(YME Remote),它是已知 為"窗口小部件(widget)"的小型專用應(yīng)用,其輔助對大家熟知的雅虎 音樂引擎(Yahoo! Music Engine "YME")進行控制。窗口小部件的優(yōu) 點之一在于利用相對少的微處理器時間和/或存儲器來進行操作。在某些實 施例中,窗口小部件可以被寫為ActiveX控件,或者以JAVA、 Java Script、 VBScript等來編寫,這輔助了這樣的窗口小部件在瀏覽器中的操 作。雖然該公開描述了向用戶推薦窗口小部件的系統(tǒng)和方法,但是本領(lǐng)域 中的技術(shù)人員應(yīng)理解,替代軟件可以對其進行替換而不會背離本發(fā)明的精 神和范圍。
圖2是示出可向用戶推薦軟件的示例性方法的原理框圖。在塊200, 用戶與web瀏覽器的交互被監(jiān)視,并且隨后簡檔基于這些交互而被形成 (塊210)。在塊220,隨著用戶與瀏覽器的進一步交互,該系統(tǒng)和方法 可確定用戶與瀏覽器的交互的特定情境。該系統(tǒng)和方法可以然后確定與用 戶的情境和簡檔相關(guān)的和/或適用于用戶的情境和簡檔的軟件是否可用(塊 230),并且可向用戶推薦軟件(塊240)。作為示例而非限制性地,簡檔 可以確定用戶是男性,很可能在18到25歲之間,以及用戶經(jīng)常購買數(shù)字 音樂并使用YME來管理其數(shù)字音樂。當(dāng)用戶隨后使用瀏覽器來搜索"媒 體播放器"或訪問具有可下載的媒體播放器的web頁面時,該系統(tǒng)和方法 還可以搜索可用窗口小部件和其他軟件的數(shù)據(jù)庫來識別出用戶可能感興趣 的軟件。 一旦被識別出,該方法和系統(tǒng)就可通過將提醒作為廣告進行替換 或插入,或者否則通過號召用戶采取行動,經(jīng)由如圖1所示界面之類的界 面來提醒用戶注意YME遙控器軟件存在的事實。在某些實施例中,對采 取行動的號召可并入頁面內(nèi)軟件安裝器,從而使軟件的安裝簡化并且更有 效率。
圖3a和3b是示出能夠利用頁面內(nèi)軟件安裝器將軟件安裝到用戶計算 設(shè)備上的示例性方法的框圖。方法始于圖3a的塊300。在該實施例中,瀏覽器判斷在用戶計算設(shè)備上運行的操作系統(tǒng)是否是支持計算機軟件的頁面 內(nèi)安裝的操作系統(tǒng),適當(dāng)?shù)哪_本引擎是否存在于計算設(shè)備上,以及是否存 在可用于計算設(shè)備的頁面內(nèi)安裝版本的軟件(塊301)。在某些實施例
中,該方法可利用JAVA腳本來實現(xiàn)頁面內(nèi)安裝,然而替代性腳本語言可 對其進行替換而不會背離本發(fā)明的精神和范圍。如果操作系統(tǒng)是計算機軟 件的頁面內(nèi)安裝對其而言不可用的操作系統(tǒng),如果適當(dāng)?shù)哪_本引擎未存在 于計算設(shè)備上,或者如果頁面內(nèi)可安裝版本的軟件不可用,那么該方法得 到這樣的鏈接,軟件可以通過該鏈接而被下載(塊302)。該方法隨后顯 示用戶憑借其能夠發(fā)起對軟件的標(biāo)準(zhǔn)安裝器的下載的對話框、web頁面或 其他用戶界面,例如非限制性地顯示如圖5所示的web頁面(塊303)。 用戶然后能夠選擇運行和/或保存安裝器(塊304),或者選擇取消。
如果該系統(tǒng)和方法支持在運行于用戶計算設(shè)備上的操作系統(tǒng)中的軟件 的頁面內(nèi)安裝,如果適當(dāng)?shù)哪_本引擎存在于計算設(shè)備上,然而如果頁面內(nèi) 可安裝版本的軟件不可用(塊305),那么用戶被給予這樣的機會,即利 用傳統(tǒng)安裝程序來下載并安裝軟件(塊302)。如果軟件的頁面內(nèi)可安裝 版本可用,那么該方法判斷輔助軟件的頁面內(nèi)安裝所必需的代碼是否已經(jīng) 與目前在用戶計算設(shè)備上所使用的操作系統(tǒng)相關(guān)聯(lián)(塊310)。
頁面內(nèi)軟件安裝器的某些實施例使用兩個代碼庫,這兩個代碼庫被安 裝在用戶計算設(shè)備上或者對用戶計算設(shè)備而言可訪問。在此被稱作YInst 和YVerlnfo的這兩個代碼庫使得Web頁面內(nèi)附加的計算機軟件代碼(例 如非限制性地,以JAVA、 JAVAScript、 VBScript等編寫的計算機軟件代 碼)能夠以大多數(shù)Web頁面所不能夠的方式與計算設(shè)備的操作系統(tǒng)進行通 信。Web頁面可以利用YVerlnfo來詢問計算設(shè)備以得到系統(tǒng)配置信息, 版本信息,以及操作系統(tǒng)自身和任何已安裝軟件應(yīng)用的相關(guān)信息。這樣的 數(shù)據(jù)然后可用作由Web頁面和應(yīng)用相關(guān)數(shù)據(jù)庫所指示的業(yè)務(wù)邏輯的輸入, 從而確定出哪個軟件(如果有的話)需要被安裝以使得用戶能夠體驗他們 已請求了的內(nèi)容。
YInst代碼庫基于業(yè)務(wù)邏輯的輸出,通過從一個或多個儲存庫得到所 需組件并以適當(dāng)順序和位置來安裝所得到的組件來管理安裝過程。在某些實施例中,所有這些操作可以發(fā)生而甚至無需用戶看到瀏覽器安全對話或 客戶安裝器界面。所有需要的信息的用戶輸入和顯示能夠完全發(fā)生在被嵌
入在Web頁面中的原始的號召采取行動的情境中。在某些實施例中,由 YInst和YVerlnfo代碼庫所提供的功能可被組合到單個代碼庫中。針對這 樣的經(jīng)組合的代碼庫的示例性對象模型定義被作為附錄A隨附于此,并且 其全部內(nèi)容通過引用被結(jié)合于此。
如果頁面內(nèi)安裝代碼不可用或者與計算設(shè)備上所使用的瀏覽器不相關(guān) 聯(lián),那么向用戶呈現(xiàn)對話框或其他用戶界面(塊312和314),例如如圖 6所示的用戶界面。當(dāng)用戶指示軟件可被安裝時,可向用戶呈現(xiàn)諸如圖7 的用戶界面之類的后續(xù)用戶界面。諸如圖7所示的示例性用戶界面之類的 用戶界面使得用戶能夠確認(rèn)頁面內(nèi)安裝器代碼和軟件二者將被安裝到用戶 計算設(shè)備上,并且確認(rèn)頁面內(nèi)安裝器代碼至少將與目前運行在用戶計算設(shè) 備上的瀏覽器相關(guān)聯(lián)。圖8是用戶憑借其能夠得到關(guān)于將被安裝到用戶計 算機上的頁面內(nèi)安裝器代碼或其他文件的附加信息的示例性用戶界面。圖 4是用戶憑借其能夠得到關(guān)于軟件的附加信息的替代示例性界面。如果用 戶選擇不使頁面內(nèi)安裝器代碼與瀏覽器相關(guān)聯(lián),那么用戶可以被給予利用 傳統(tǒng)軟件安裝器來安裝軟件的機會。 一旦頁面內(nèi)安裝器代碼被安裝(塊 316和318),方法就前進到塊320。
如果頁面內(nèi)安裝器代碼與目前運行在用戶計算設(shè)備上的瀏覽器相關(guān) 聯(lián),那么該方法判斷最新版本的頁面內(nèi)安裝器代碼是否目前駐存于用戶計 算設(shè)備上(塊320)。如果最新版本的頁面內(nèi)安裝器代碼未駐存于用戶計 算設(shè)備上,那么該方法利用當(dāng)前安裝版本的頁面內(nèi)安裝器代碼來發(fā)起對最 新版本的下載和安裝(塊322、 324和326)。在某些實施例中,可將確認(rèn) 最新版本的頁面內(nèi)安裝器代碼要被安裝的機會呈現(xiàn)給用戶。在任何較大文 件或文件組的下載期間,該方法可使計算設(shè)備和/或瀏覽器顯示狀態(tài)條或下 載進程的其他指示,例如如圖9所示的示例性狀態(tài)條。類似地,該方法可 使?fàn)顟B(tài)條被顯示以傳達安裝進程,該狀態(tài)條例如是如圖10、 11和12所示 的狀態(tài)條。 一旦成功更新了頁面內(nèi)安裝器代碼,該方法就可以判斷一版本 軟件是否已經(jīng)安裝在用戶計算設(shè)備上(塊328)。如果軟件已經(jīng)被安裝,那么該方法可選地使祝賀的用戶界面(例如非限制性地,如圖13所示的
用戶界面)被顯示,并啟動軟件(塊360)。如果軟件未被安裝,那么該 方法發(fā)起軟件安裝過程(塊334)。
如果最新版本的頁面內(nèi)安裝器代碼駐存于用戶計算設(shè)備上,那么該方 法前進到塊330。在塊330,用戶計算設(shè)備被輪詢以判斷一版本軟件是否 已經(jīng)駐存于用戶計算設(shè)備上。作為示例而非限制性地,在公共或共享計算 設(shè)備上,用戶可能不知道之前下載并安裝了軟件,因此可能排除重新安裝 的需要。如果軟件被安裝,那么該方法可判斷最新版本是否駐存于計算設(shè) 備上(塊340),如果軟件被安裝并且最新版本駐存于計算設(shè)備上,那么 軟件被啟動(塊350)。如果軟件未駐存于計算設(shè)備上,或者更新版本的 軟件可用,那么該方法可發(fā)起對軟件的下載和安裝(塊332和342)。在 安裝是更新的情況下,該方法可僅下載發(fā)生了變化的那些文件或部分文 件,從而降低帶寬需求并加快安裝。此外,可向用戶呈現(xiàn)與圖15的用戶 界面相類似的、用戶憑借其能夠確認(rèn)軟件要被更新的用戶界面。
在某些實施例中,該方法還能夠判斷實現(xiàn)軟件所必須的和/或有益于實 現(xiàn)軟件的支持組件是否駐存于計算設(shè)備上(塊334),并且判斷駐存于計 算設(shè)備上的任何支持組件是否需要被更新(塊344)。如果最新版本的支 持組件已經(jīng)駐存于用戶計算設(shè)備上,那么該方法可發(fā)起對輔助軟件安裝或 升級所必需的文件的下載和安裝(塊336)。如果支持組件需要被安裝和/ 或更新,那么該方法下載并安裝必需的文件(塊370),包括用于軟件的 那些文件。 一旦完成安裝,就可以向用戶呈現(xiàn)諸如圖13所示的用戶界面 之類的、告知用戶安裝成功并完成的用戶界面。如果在軟件或支持組件的 下載或安裝期間出錯(塊338和372),那么可向用戶呈現(xiàn)與圖14的用戶 界面類似的、能夠告知用戶出錯的用戶界面。
用戶還可以在任何時間撤銷對軟件或支持組件的下載和/或安裝(塊 374)。如果支持組件安裝已被發(fā)起(塊376),那么清除過程可以被發(fā)起 以去除那些支持組件(塊377),此后撤銷被完成(塊378)。
如上所述,頁面內(nèi)安裝器使用瀏覽器和相關(guān)聯(lián)的腳本引擎來輔助用戶 計算設(shè)備上的軟件安裝。存在頁面內(nèi)安裝器的若干分配實施例,所有這些實施例都能夠利用如上所述的示例性方法或類似方法。這些分配實施例包 括但并不限于
1 ) 將該功能手動地硬編碼到個別Web頁面中
2) 創(chuàng)建能夠被動態(tài)地嵌入到任一 Web頁面中的模塊
3) (利用IFRAME)創(chuàng)建能夠被動態(tài)地嵌入到任一 Web頁面中的 "標(biāo)記"
4) 將該功能嵌入到提供廣告的媒體中
圖16示出頁面內(nèi)安裝器能夠進行操作的示例性體系結(jié)構(gòu)。在所示出 的實施例中,頁面內(nèi)安裝器被分配為瀏覽器可解譯命令1608,其在用戶計 算設(shè)備1600上的瀏覽器1605中運行。當(dāng)用戶使用瀏覽器1605來訪問由標(biāo) 準(zhǔn)web服務(wù)器提供的Web頁面時,可以向用戶呈現(xiàn)安裝(如通過將用戶 興趣和/或偏好與從中央應(yīng)用服務(wù)器1620可用的軟件進行比較而確定的) 其感興趣的軟件的機會。當(dāng)用戶指示希望安裝軟件時,瀏覽器可解譯命令 1608能夠從應(yīng)用相關(guān)數(shù)據(jù)庫1625得到必需的文件和安裝腳本。應(yīng)用相關(guān) 數(shù)據(jù)庫1625可提供標(biāo)準(zhǔn)的安裝腳本,或者可基于用戶偏好、瀏覽器1605 的配置和/或用戶計算設(shè)備1600的配置來創(chuàng)建經(jīng)定制的安裝腳本。在某些 實施例中,從應(yīng)用相關(guān)數(shù)據(jù)庫1625得到的任何安裝腳本的至少部分可以 是經(jīng)數(shù)字簽名的,從而允許瀏覽器可解譯命令1608驗證安裝腳本是來自 可信源的。可以通過各種方式來完成這樣的數(shù)字簽名,包括但不限于使用 RSA、 SHA和GMR簽名機制。在某些實施例中,數(shù)字簽名信息能夠被嵌 入在較大的腳本集中,從而允許腳本是自認(rèn)證的(self-authenticating)。 在某些實施例中,腳本的經(jīng)數(shù)字簽名的多個部分可被限制為僅是需要提升 的權(quán)限(elevated privilege)來與操作系統(tǒng)、瀏覽器、設(shè)備等進行適當(dāng)交互 的那些指令。
雖然在此描述了頁面內(nèi)計算機軟件安裝器的詳細且具體的實施例,但 是本領(lǐng)域中的普通技術(shù)人員應(yīng)理解,可以在其中做出各種改變和修改而不 會背離頁面內(nèi)計算機軟件安裝器的精神和范圍。因此,本發(fā)明意欲覆蓋這 些修改和改變,只要它們落入任一個隨附的權(quán)利要求和/或其等效物的范圍 之內(nèi)。附錄AYlnst對象模型
ydpp1atf ormobject
YDPPIatformObject是默認(rèn)對象并且可經(jīng)由所嵌入的對象直接訪問
特性
st:H,,yIniReader 「、W",iR、"w!t、r()h〗" objectN抓ei〗......
■ - 'j ,'-.
object
version
方法("ring a/v〃c^t 'o"W ) h'r"'/vir'li'—.、! "、',ohj,、. 1
f ,' ndApp"h cati onByBundl eldobject「、T〕1V,!、|:-1 " .Ui(,:"K、l-'10:';
getApp"l icationByName〖V!)I、、"I,'〖"K ',n',(.it)〕,.-'' : 1
getinstaller(.、t r"〗q j(rey )〖VDi,!r:M ."〗
objectgetU)calF"i leob ject("丫i' 'ap/ 77'caf'o〃jvy,、' hr'("- ,i'、 11
"M叩C vn ,':l )
g et NewOown 1 o adQu eu e(v(, ) ! "M''iv.',':''->.j
sr,'in;:; st,' ,n(j voidgetPropertyNames jn a, at C 、'("(1 ) / 、- 11/i 、
rel easelnst3"H er、、1)1。 j
voidrunsignedscript(w m〖i t/廠7 )
voidru打SignedScriptStringUt>o 1 -c廣& tT5助se"f/w:octetf
YDPOSObject
提供關(guān)于操作系統(tǒng)環(huán)境的基本信息特性
w architecturew ing objectw加estr'闊 platformst',n《j version
方法
string getMethodNames C void )
string getPropertyNames C void )
YDP加Readerob j ect
使用YDPIniReaderobject來解析您下載的INI文件
特性
objectN柳e
方法
voidcloseF"e(串d )
(、't>:〖1 〉
stringgetPropei"tyNa敝s(W>l,'〖)
stnr,(jsi ring j(rey )
(string i/r7 )
voidresetSect i onE加鵬rato rC void )
YDPAppl1 cat1 onobject
Mr *V7.fl^r>W " /)7""/"-^1>(/>/177 ",.0〃炒說/"http://76工^/廣'£"諷,>^/'00. ^'勿6 ^/^7>/6",-
提供在給出應(yīng)用的名稱或應(yīng)用包ID的情況下對查詢應(yīng)用屬性(例如
版本)以及開始和退出應(yīng)用的支持。
特性
string3ppName
string
strincjobjectN柳e
path
st'.ingversion
方法
s t r i m ggetwetbodN抓es(v,id )
Si r ,getPfopertyNamesC id )
boolC void )
bool"launchC void 〕
boo"lquitByldC void )quitByName
(、'"(1 〉
YDPDownl oade rob ject
提供下載隊列再加上管理隊列并提供進程反饋的功能
特性
string
currentDownload[y附i I 。obj" r J
"length
objectMame
timeR柳sin1ng
方法
vo icf cancel Download
void 柳ptyQueue
s u. , mj getMethodNames
m' im〕 gewopertyN細es
oL) ]" r getQueu戰(zhàn)nt ry
boo 1 removeFromQueue
void sta e
void suspendQueue
事件
vo i d fl/w3c 沐"7oa必e- /"
vo i d o"/tonr 7加沈《 ^ 7
(wiru、, wW, oimonal v、,Hanr co"te^T,
oca 7f/ 7maAie1, 《r't ,
vi 1 i(f
「i'、g a廣7 )
!")"I )
nl)〕m: I Y附i leOi)jen I i 行7e勿'ecf〗
(W)Of廁l<xifif〖',b le':i rV77'知/ )ect,object [、WFilr(:4)ie"l 行7ed6jfect 5
(ol);je". 1、WLKm'"l(jai"".Oi-屮-、(-! 1 t/ 7'506j^cT,
Mrfri(j廠e3SOrt, u、t )
(ob卜 " IYWD簡"Of、ncr0b。l:j M7's加j'ect,oIj j i: I Ym'i- i 1 e()h i ot' t.行7e幼j.ecf )
"ring netw[/廣7 )
YDPmeObject提供對所下載的特定本地文件的訪問特性
int content"ngthvariant context
ir、tcurrentLength
im'expected匕ength
.str "u)
objectN柳e
percentage
intti鵬R柳aining
url
方法
boo 1exists
boo"lextractAnd鄰en(/War7ve紹r力7"of/7eJ7Mrc力,ke )
"ringC vo , ,'i ;>
w叩getMethodNa鵬es(、'u"i )
getPropertyNamesC void )
w",ajietve「sion
boo!C 、'o"l )
removeC 、'(j,d 〉
ver1fysignatureC v(.ikl 〉
wrlteBuddyFile
YDPinsMl 1 erob;J ect
YPDInstaller對象允許對最終用戶系統(tǒng)的不受限的訪問。在某些實施例中,所有動作(action)作為根來執(zhí)行。實際動作調(diào)用YDPAgen魂執(zhí)行動作。在最初執(zhí)行YDPAgent時,將嘗試經(jīng)由0辣提高其權(quán)限,這可能需要終端用戶在操作系統(tǒng)授權(quán)對話等中輸入其密碼。
特性
方法
void c叩yFi"le
void de"IeteFi"le
void executeProcess
(w r' i,q 行7e戶at/7, opi i nr,,,' 1
(string f/7e/"ar/ , oprioua I variant aw3A7e'optionaf string 3r_fit_0, 0pT,0na"ivoidexists
voidext ract
string訴tLocal Fi 1 en細e
get附thodN柳es
getPropertyNames
v。itiopenDocumervt
vo,'dreboot
voidren柳纖i"le
事件
void
".i,"、t c卯Ar,'e 〉
variant: c加We )
srri叩w廣7, option:, I
void )
、string /77ePa汰optional o(:'t:"fona, variant cr o/r/e ) (〗pU'oruiT variant cwAre 〕
提供對平臺ui的訪問 特性
"r , obj ectN柳e
方法
getMethodNames getPropertyNames
"r一 眺ssageBox
C vcn(i )
(str"ig t7.t7e, string鵬ssa《e,
"「— ite/^Wi:敏加,"ring c新"7助tr加,
string otAerflt/tro")
問題?建議?
權(quán)利要求
1.一種通知用戶存在相關(guān)軟件并且輔助安裝這種軟件的方法,包括以下步驟在瀏覽會話期間監(jiān)視用戶與正運行在計算設(shè)備上的瀏覽器的交互;基于所監(jiān)視到的用戶交互來確定所述瀏覽會話的情境;確定與所述情境相關(guān)的軟件是否可用;向所述用戶推薦所確定的軟件;以及通過頁面內(nèi)安裝器來輔助安裝所確定的軟件。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述輔助步驟還包括 判斷所述瀏覽器是否是支持的瀏覽器,并且如果所述瀏覽器不是支持的瀏覽器,那么通過標(biāo)準(zhǔn)安裝器來輔助安裝所確定的軟件;判斷必需的代碼庫是否被安裝在所述計算設(shè)備上,并且將任何需要的代碼庫都安裝到所述計算設(shè)備上;從中央應(yīng)用服務(wù)器得到安裝腳本;以及 使所述瀏覽器發(fā)起所述安裝腳本。
3. 根據(jù)權(quán)利要求2所述的方法,其中,所述安裝腳本的至少一部分是 經(jīng)數(shù)字簽名的。
4. 根據(jù)權(quán)利要求3所述的方法,其中,所述安裝腳本的經(jīng)數(shù)字簽名的 部分包括需要提升的權(quán)限來運行的指令。
5. 根據(jù)權(quán)利要求3所述的方法,還包括 基于所述數(shù)字簽名來驗證所述安裝腳本是來自可信源的。
6. 根據(jù)權(quán)利要求5所述的方法,還包括 如果所述安裝腳本未經(jīng)驗證,那么拒絕執(zhí)行所述安裝。
7. 根據(jù)權(quán)利要求5所述的方法,還包括 通知所述用戶所述安裝腳本不能被驗證; 向用戶請求對繼續(xù)所述安裝的授權(quán);以及 如果所述用戶未授權(quán)所述安裝,那么退出所述方法。
8. 根據(jù)權(quán)利要求1所述的方法,還包括基于所監(jiān)視到的用戶交互來建立所述用戶的簡檔。
9. 根據(jù)權(quán)利要求1所述的方法,其中,所確定的軟件是通過廣告被推 薦給所述用戶的。
10. 根據(jù)權(quán)利要求1所述的方法,其中,所確定的軟件通過以下內(nèi)容而被推薦給所述用戶,所述內(nèi)容動態(tài)地并入到出現(xiàn)在所述瀏覽器中的web 頁面中。
11. 根據(jù)權(quán)利要求1所述的方法,其中,所述情境是部分地基于由所 述用戶經(jīng)由所述瀏覽器所執(zhí)行的搜索的結(jié)果而被確定的。
12. 根據(jù)權(quán)利要求11所述的方法,其中,所述搜索包括對計算機軟件 應(yīng)用儲存庫的搜索。
13. 根據(jù)權(quán)利要求1所述的方法,其中,所述情境是部分地基于目前 由所述瀏覽器所顯示的頁面內(nèi)的關(guān)鍵字而被確定的。
14. 根據(jù)權(quán)利要求1所述的方法,其中,所述情境是部分地基于與目 前由所述瀏覽器所顯示的頁面相關(guān)聯(lián)的元數(shù)據(jù)而被確定的。
15. —種用于輔助軟件安裝的系統(tǒng),包括-應(yīng)用服務(wù)器;應(yīng)用相關(guān)數(shù)據(jù)庫;以及命令集,所述命令集可由在計算設(shè)備上進行操作的瀏覽器解譯, 其中,所述命令集在被所述瀏覽器解譯時輔助以下操作 從所述應(yīng)用相關(guān)數(shù)據(jù)庫得到安裝腳本; 從所述應(yīng)用服務(wù)器得到在所述安裝腳本中引用的文件; 驗證所述安裝腳本中需要提升的權(quán)限來操作的至少部分是經(jīng)可信源數(shù)字簽名的;以及執(zhí)行所述安裝腳本以安裝所述軟件。
16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述應(yīng)用服務(wù)器包括所述應(yīng) 用相關(guān)數(shù)據(jù)庫。
17. 根據(jù)權(quán)利要求15所述的系統(tǒng),還包括安裝在所述計算設(shè)備上的第 一代碼庫,其中,所述第一代碼庫輔助運行在所述計算設(shè)備上的操作系統(tǒng) 與所述瀏覽器之間的交互。
18. 根據(jù)權(quán)利要求17所述的系統(tǒng),還包括安裝在所述計算設(shè)備上的第 二代碼庫,其中,所述第二代碼庫輔助得到關(guān)于安裝在所述計算設(shè)備上的 所述操作系統(tǒng)和其他軟件應(yīng)用的信息。
19. 根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述第一代碼庫和所述第二 代碼庫被并入到單個代碼庫中。
20. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述命令集還包括用于在可 信腳本的至少一部分未經(jīng)可信源數(shù)字簽名的情況下通知所述用戶并且向用 戶請求對繼續(xù)所述安裝的授權(quán)的指令。
21. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述命令集還包括用于確定 瀏覽器會話的情境的指令。
22. 根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述情境是部分地基于由所 述用戶經(jīng)由所述瀏覽器所執(zhí)行的搜索的結(jié)果而被確定的。
23. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中,所述搜索包括對計算機軟件應(yīng)用儲存庫的搜索。
24. 根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述情境是部分地基于目前由所述瀏覽器所顯示的頁面內(nèi)的關(guān)鍵字而被確定的。
25. 根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述情境是部分地基于與目 前由所述瀏覽器所顯示的頁面相關(guān)聯(lián)的元數(shù)據(jù)而被確定的。
26. —種具有其上記錄了計算機程序邏輯的計算機可讀介質(zhì)的計算機 程序產(chǎn)品,所述計算機程序產(chǎn)品包括用于通知用戶存在相關(guān)軟件并且輔助 安裝這種軟件的指令,所述指令包括以下指令用于在瀏覽會話期間監(jiān)視用戶與正運行在計算設(shè)備上的瀏覽器的交互 的指令;用于基于所監(jiān)視到的用戶交互來確定所述瀏覽會話的情境的指令; 用于確定與所述情境相關(guān)的軟件是否可用的指令; 用于向所述用戶推薦所確定的軟件的指令;以及 用于通過頁面內(nèi)安裝器來輔助安裝所確定的軟件的指令。
27. 根據(jù)權(quán)利要求26所述的計算機程序產(chǎn)品,還包括 用于判斷所述瀏覽器是否是支持的瀏覽器,并且如果所述瀏覽器不是支持的瀏覽器那么通過標(biāo)準(zhǔn)安裝器來輔助安裝所確定的軟件的指令;用于判斷必需的代碼庫是否被安裝在所述計算設(shè)備上,并且將任何需要的代碼庫都安裝到所述計算設(shè)備上的指令;用于從中央應(yīng)用服務(wù)器得到安裝腳本的指令;以及 用于使所述瀏覽器發(fā)起所述安裝腳本的指令。
28. 根據(jù)權(quán)利要求27所述的計算機程序產(chǎn)品,還包括用于基于數(shù)字簽 名來驗證所述安裝腳本是來自可信源的指令。
29. 根據(jù)權(quán)利要求28所述的計算機程序產(chǎn)品,還包括用于在所述安裝 腳本未經(jīng)驗證的情況下拒絕執(zhí)行所述安裝的指令。
30. 根據(jù)權(quán)利要求28所述的計算機程序產(chǎn)品,還包括 用于通知所述用戶所述安裝腳本無法被驗證的指令; 用于向用戶請求對繼續(xù)所述安裝的授權(quán)的指令;以及 用于在所述用戶未授權(quán)所述安裝的情況下中止所述安裝的指令。
31. 根據(jù)權(quán)利要求27所述的計算機程序產(chǎn)品,還包括用于基于所監(jiān)視 到的用戶交互來建立所述用戶的簡檔的指令。
32. 根據(jù)權(quán)利要求27所述的計算機程序產(chǎn)品,還包括用于通過廣告將 所確定的軟件推薦給所述用戶的指令。
33. 根據(jù)權(quán)利要求27所述的計算機程序產(chǎn)品,還包括通過以下內(nèi)容來將所確定的軟件推薦給所述用戶的指令,所述內(nèi)容動態(tài)地并入到出現(xiàn)在所 述瀏覽器中的web頁面中。
34. 根據(jù)權(quán)利要求26所述的方法,其中,所述情境是部分地基于由所 述用戶經(jīng)由所述瀏覽器所執(zhí)行的搜索的結(jié)果而被確定的。
35. 根據(jù)權(quán)利要求34所述的方法,其中,所述搜索包括對計算機軟件應(yīng)用儲存庫的搜索。
36. 根據(jù)權(quán)利要求26所述的方法,其中,所述情境是部分地基于目前 由所述瀏覽器所顯示的頁面內(nèi)的關(guān)鍵字而被確定的。
37. 根據(jù)權(quán)利要求26所述的方法,其中,所述情境是部分地基于與目 前由所述瀏覽器所顯示的頁面相關(guān)聯(lián)的元數(shù)據(jù)而被確定的。
38. —種用于輔助軟件安裝的系統(tǒng),包括web服務(wù)器; 應(yīng)用服務(wù)器; 應(yīng)用相關(guān)數(shù)據(jù)庫;通信路徑,經(jīng)由所述通信路徑,所述web服務(wù)器能與能夠呈遞由所述 web服務(wù)器所呈現(xiàn)的內(nèi)容的瀏覽器通信;以及命令集,所述命令集可由所述瀏覽器解譯,其中,所述命令集輔助以 下操作-從所述應(yīng)用相關(guān)數(shù)據(jù)庫得到安裝腳本; 從所述應(yīng)用服務(wù)器得到在所述安裝腳本中引用的文件; 驗證所述安裝腳本中需要提升的權(quán)限來操作的的至少部分是經(jīng)可 信源數(shù)字簽名的;以及執(zhí)行所述安裝腳本以將所述軟件安裝到計算設(shè)備上。
39. 根據(jù)權(quán)利要求38所述的系統(tǒng),其中,所述應(yīng)用服務(wù)器包括所述應(yīng) 用相關(guān)數(shù)據(jù)庫。
40. 根據(jù)權(quán)利要求38所述的系統(tǒng),還包括安裝在所述計算設(shè)備上的第 一代碼庫,其中,所述第一代碼庫輔助運行在所述計算設(shè)備上的操作系統(tǒng) 與所述瀏覽器之間的交互。
41. 根據(jù)權(quán)利要求40所述的系統(tǒng),還包括安裝在所述計算設(shè)備上的第 二代碼庫,其中,所述第二代碼庫輔助得到關(guān)于安裝在所述計算設(shè)備上的 所述操作系統(tǒng)和其他軟件應(yīng)用的信息。
42. 根據(jù)權(quán)利要求41所述的系統(tǒng),其中,所述第一代碼庫和所述第二 代碼庫被并入到單個代碼庫中。
43. 根據(jù)權(quán)利要求38所述的系統(tǒng),其中,所述命令集還包括用于在可 信腳本的至少一部分未經(jīng)可信源數(shù)字簽名的情況下通知所述用戶并且向用 戶請求對繼續(xù)所述安裝的授權(quán)的指令。
44. 根據(jù)權(quán)利要求38所述的系統(tǒng),其中,所述命令集還包括用于確定瀏覽器會話的情境的指令。
45. 根據(jù)權(quán)利要求44所述的系統(tǒng),其中,所述情境是部分地基于由所述用戶經(jīng)由所述瀏覽器所執(zhí)行的搜索的結(jié)果而被確定的。
46. 根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述搜索包括對計算機軟件 應(yīng)用儲存庫的搜索。
47. 根據(jù)權(quán)利要求44所述的系統(tǒng),其中,所述情境是部分地基于目前 由所述瀏覽器所顯示的頁面內(nèi)的關(guān)鍵字而被確定的。
48. 根據(jù)權(quán)利要求44所述的系統(tǒng),其中,所述情境是部分地基于與目 前由所述瀏覽器所顯示的頁面相關(guān)聯(lián)的元數(shù)據(jù)而被確定的。
全文摘要
一種通知用戶存在相關(guān)軟件并且利用瀏覽器來輔助安裝這樣的軟件的方法。用戶與瀏覽器的交互被監(jiān)視以確定給定瀏覽會話的情境,并且與該情境相關(guān)的軟件是否可用被判斷。如果這樣的軟件可用,那么向用戶推薦該軟件,并且如果用戶希望安裝該軟件,那么安裝能夠經(jīng)由瀏覽器而被執(zhí)行。軟件可以通過多種方式被推薦給用戶,包括將推薦并入靜態(tài)的web頁面中,將推薦并入動態(tài)的web頁面中,以及將推薦作為廣告內(nèi)容的一部分進行遞送。推薦可以包括到輔助通過瀏覽器來安裝軟件的安裝腳本等的鏈接。
文檔編號G06F17/30GK101689193SQ200880009222
公開日2010年3月31日 申請日期2008年3月13日 優(yōu)先權(quán)日2007年3月21日
發(fā)明者喬納森·斯特拉斯, 約翰尼·J·斯皮克斯, 迪瑞克·維托爾, 阿什特·甘德伊, 麥克·波爾里斯 申請人:雅虎公司