專利名稱:一種為計算設(shè)備的自動配置創(chuàng)建并展開較小Microsoft Windows應(yīng)用程序的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可執(zhí)行程序尺寸的減小。特別地,本發(fā)明描述了一種為計算設(shè)備的自動配置創(chuàng)建并展開(deploy)較小Microsoft Windows應(yīng)用程序的方法和設(shè)備。
計算機在收集和分配信息中的越來越多的使用已經(jīng)暴露了典型收集和分配渠道上的許多問題。例如,一種當前的軟件分配系統(tǒng)使軟件銷售商能夠通過網(wǎng)絡(luò)向多個用戶提供軟件。此系統(tǒng)還使銷售商能夠按照用戶的要求更新和維護軟件,使用戶能夠通過網(wǎng)絡(luò)從不同的軟件銷售商那里按照用戶的要求得到軟件。然而,這樣一個系統(tǒng)只能按用戶的要求提供軟件和相關(guān)服務(wù),而沒有考慮到用戶的需求或偏好。其結(jié)果是,此系統(tǒng)對于用戶的特定需求和/或偏好不是最優(yōu)化的。
通常,計算機系統(tǒng)運到用戶時是沒有捆綁任何軟件的。當計算機制造商想要增加軟件包來增加系統(tǒng)的感知的(perceived)終端用戶價值時,就會增加配置時間和花費,因為每個附加軟件包都必須在系統(tǒng)的裝配階段進行安裝和調(diào)試。為了節(jié)約時間,制造商可以提前配置系統(tǒng)的這種組件,如硬盤驅(qū)動程序。但是,如果已安裝的軟件需要作一些改變,則制造商必須要考慮庫存成本和浪費的配置時間。
一種可能的解決方法是在獨立的存儲介質(zhì)、例如軟盤或光盤(CD-ROM或DVD-ROM)上包含軟件。然后用戶就可以將這種附加軟件安裝到計算機系統(tǒng)上。然而,這種解決方法需要用戶花費時間來安裝軟件,而且,如果用戶不能正確地安裝軟件,還會產(chǎn)生附加的客戶支持問題。另外,用戶可以選擇不安裝制造商預(yù)定安裝的一種或多種應(yīng)用程序,如演示軟件或其他廣告軟件。
制造商可用的另一種可能的解決方法是在計算機系統(tǒng)中放入可以在計算機啟動時自動裝載、然后安裝附加應(yīng)用程序的軟件。這種軟件可以不引人注意地從網(wǎng)上下載附加應(yīng)用程序,并安裝這些程序。而且,這種軟件必須盡可能地小,以減少對計算機硬件資源的使用。
目前,可以在由微軟公司銷售的32位版本的操作系統(tǒng)(如Windows 95TM、Windows 98TM和Windows NTTM,通稱為Windows)下獲得的最小可執(zhí)行程序在用微軟公司銷售的諸如VisualC++的版本5的編譯器進行編譯后體積約為8K。但是,這是在假設(shè)沒有任何功能而且去除了所有的調(diào)試支持后得到的結(jié)果。因此,要得到任一功能或提供調(diào)試能力的話,就會增加程序的體積。盡管編譯后的程序的大小根據(jù)使用的特定編譯器和文件類型等因素的不同而不同,但是對一個應(yīng)用程序所能達到的即使是最小的編譯后的體積也是相當?shù)卮蟆?br>
假定需要擁有一個比當前可使用可執(zhí)行程序格式達到的最小體積還要小、且能夠在不修改Windows系統(tǒng)注冊表的情況下在Windows啟動時自動啟動的Windows應(yīng)用程序,就不能使用標準的Windows可執(zhí)行文件格式。
因此,在技術(shù)上存在著對一種創(chuàng)建較小微軟Windows應(yīng)用程序的方法和設(shè)備的需求,這種應(yīng)用程序在啟動時可執(zhí)行,而且不需要修改Windows就能兼容。
本方法包括根據(jù)Windows Control Panel Language(Windows控制面板語言,CPL)格式來創(chuàng)建可執(zhí)行程序;將該可執(zhí)行程序存儲到第一非易失性存儲器中;將可執(zhí)行程序從第一非易失性存儲器傳輸?shù)降诙且资源鎯ζ髦?;以及,配置操作系統(tǒng),使操作系統(tǒng)完成引導(dǎo)后就啟動該可執(zhí)行程序。
圖1是使用本發(fā)明的方法和設(shè)備的信息分配系統(tǒng)的一個實施例的系統(tǒng)方框圖;圖2顯示了能夠?qū)崿F(xiàn)本發(fā)明實施例的例示性處理器系統(tǒng)或用戶計算機系統(tǒng);圖3顯示了圖1中的信息分配系統(tǒng)的一個實施例的細節(jié)部分的方框圖;圖4顯示了依據(jù)本發(fā)明的原理提供的過程流程圖的一個實施例;圖5顯示了依據(jù)本發(fā)明的原理配置的計算機系統(tǒng)內(nèi)包含的存儲器的一個實施例的方框圖;圖6顯示了詳述依據(jù)本發(fā)明的原理執(zhí)行的較小微軟Windows應(yīng)用程序的開發(fā)過程的一個例子的流程圖;圖7顯示了詳述依據(jù)本發(fā)明的原理執(zhí)行的較小微軟Windows應(yīng)用程序的操作的一個例子的流程圖。
定義此處討論的“計算機系統(tǒng)”是一個包括能夠處理數(shù)據(jù)的電路的產(chǎn)品。計算機系統(tǒng)包括但并不局限于,通用計算機系統(tǒng)(例如,服務(wù)器,膝上電腦,桌面電腦,掌上電腦,個人電子設(shè)備等)、個人電腦(PC)、硬拷貝設(shè)備(例如,打印機,繪圖儀,傳真機等)、銀行設(shè)備(例如,自動柜員機)以及類似的設(shè)備。信息媒介是一個代表商品和服務(wù)生產(chǎn)者提供信息的網(wǎng)址,還向商家提供關(guān)于供應(yīng)商和其他商家提供的產(chǎn)品和/或服務(wù)等的相關(guān)信息。內(nèi)容指的是應(yīng)用程序、驅(qū)動程序、實用程序、有效負荷等及其組合,還包括圖形、信息材料(文章、股票報價等)和類似的內(nèi)容,或者單獨或者任意組合?!坝行ж摵伞笔侵赣脠D形或信息資料(例如文章、股票報價等)表示的消息,包括文件或應(yīng)用程序。在一個實施例中,將其在預(yù)定時間傳送到系統(tǒng)的海量存儲介質(zhì)。另外,“通信鏈路”是指通信的媒介或信道。通信鏈路包括電話線、調(diào)制解調(diào)器連接、因特網(wǎng)連接、綜合業(yè)務(wù)數(shù)字網(wǎng)(“ISDN’)連接、異步傳遞模式(ATM)連接、幀中繼連接、以太網(wǎng)連接、同軸連接、光纖連接、衛(wèi)星連接(例如數(shù)字衛(wèi)星服務(wù)等)、無線連接、射頻(RF)鏈接,電磁鏈接、雙向?qū)ず暨B接等及其組合。
另外,操作系統(tǒng)(“OS’)的加載指的是操作系統(tǒng)引導(dǎo)裝入程序的初始布置。在一個實施例中,在OS加載過程中,一般將一個扇區(qū)的信息、從硬盤加載進系統(tǒng)存儲器?;蛘撸瑢⒁龑?dǎo)裝入程序從網(wǎng)絡(luò)加載進系統(tǒng)存儲器。OS“引導(dǎo)”是指引導(dǎo)裝入程序的執(zhí)行。這樣將OS置于系統(tǒng)的控制下。在OS引導(dǎo)期間執(zhí)行的一些動作包括系統(tǒng)配置、設(shè)備檢測、驅(qū)動器加載和用戶登錄。
OS運行時間指的是引導(dǎo)階段的完成和由OS執(zhí)行應(yīng)用程序的開始。在一個實施例中,在OS運行時間期間,OS和用戶交互作用來執(zhí)行和/或運行應(yīng)用程序。
通電自檢(POST)指的是在加載OS前執(zhí)行的用以配置和檢測系統(tǒng)硬件的指令。
下面來介紹包含本發(fā)明實施例的一個例示系統(tǒng)。
本發(fā)明提供了一種通過采用Windows控制面板庫(CPL)格式創(chuàng)建較小Windows應(yīng)用程序而不改變Windows系統(tǒng)從而避開微軟Windows(“Windows”)可執(zhí)行程序的尺寸限制的方法。CPL文件格式具有與標準Windows動態(tài)鏈接庫(DLL)文件類似的結(jié)構(gòu),該文件具有作為單獨的應(yīng)用程序執(zhí)行的附加性能。應(yīng)用程序一旦被裝載,就可以通過在Windows目錄下“啟動”文件夾里包含快捷方式或“win.ini”文件的修改在操作系統(tǒng)啟動時執(zhí)行。然后,無需用戶的干涉,應(yīng)用程序就可以下載并配置恰當?shù)能浖?br>
這涉及到將可執(zhí)行圖象(例如應(yīng)用程序)從系統(tǒng)的基本輸入輸出系統(tǒng)(BIOS)傳送到系統(tǒng)的硬盤或其他大容量存儲設(shè)備。在用戶不進行干預(yù)的情況下,每次操作系統(tǒng)啟動時都會執(zhí)行該應(yīng)用程序或得到的應(yīng)用程序的替換物。本文中將傳輸圖象稱為因特網(wǎng)啟動應(yīng)用程序(ISUA)。該應(yīng)用程序便于構(gòu)造和維護一個安全的、專用的主要從授權(quán)服務(wù)注冊、因特網(wǎng)服務(wù)注冊、系統(tǒng)輪廓文件(profile)和用戶偏好等收集到的因特網(wǎng)用戶和系統(tǒng)輪廓文件的儲存庫。最初,這些信息用于向所購買的硬件和軟件產(chǎn)品的制造商和在線或其他服務(wù)的供應(yīng)商注冊用戶。隨著時間的過去,用戶數(shù)據(jù)用于創(chuàng)建一個用戶輪廓文件,并通知用戶相關(guān)軟件的更新或升級,以鼓勵在線購買相關(guān)軟件,并允許一對一的定制銷售和其他服務(wù)。
在本發(fā)明的各個實施例中使用了兩個軟件模塊。一個軟件駐留于用戶系統(tǒng)中,用來訪問一個預(yù)定網(wǎng)址。例如,在一個實施例中,操作系統(tǒng)和基本輸入輸出系統(tǒng)(BIOS)預(yù)先安裝在一個計算機系統(tǒng)中,當計算機系統(tǒng)隨后首次啟動時,一個出于討論的目的被稱為第一軟件模塊(在一個實施例中,第一軟件模塊是將在下文中描述的初始啟動應(yīng)用程序(ISUA))的應(yīng)用程序?qū)⒃试S一個或多個可執(zhí)行程序在引導(dǎo)前的環(huán)境中啟動。在一個實施例中,第一軟件模塊使一個或多個可執(zhí)行程序在OS的加載、引導(dǎo)、執(zhí)行與/或運行之前的啟動變得容易。在一個實施例中,用戶被鼓勵選擇使用像這樣的程序(即,第一軟件模塊的使用),在另一個實施例中,程序是自動啟動的。包含在第一軟件模塊中的程序能夠使工具和實用程序在適當?shù)臅r間以正確的用戶授權(quán)運行,還允許用戶通過PC機上的因特網(wǎng)連接下載一個包括驅(qū)動程序、應(yīng)用程序和附加有效負荷的第二軟件模塊。如果OS不能成功地啟動,程序還可以提供系統(tǒng)的遠程管理。
一旦第二個軟件模塊被傳遞過來,它可成為駐留存儲器的程序,并且禁止第一軟件模塊的傳送的拷貝。仍然駐留在系統(tǒng)的非易失性存儲器中的第一軟件模塊的原始拷貝保持空閑,直到第二軟件模塊不能工作、遭破壞或被刪除為止,此時,對傳送第一軟件模塊的原始拷貝如上所述。第二軟件模塊包括將用戶和因特網(wǎng)上的特定服務(wù)連接起來并指導(dǎo)用戶到預(yù)定網(wǎng)址上尋求授權(quán)來下載更多的預(yù)約資料的一個應(yīng)用程序。第二軟件模塊還包括和第一軟件模塊的內(nèi)容相同或相近的內(nèi)容。在一個實施例中,系統(tǒng)還可以包括一個存儲在只讀存儲器BIOS(ROM BIOS)中的初始有效負荷。在一個實施例中,初始有效負荷是第一軟件模塊(例如,ISUA)的一部分。在另一個實施例中,初始有效負荷作為一個模塊存儲在ROMBIOS中,同第一軟件模塊分開。在一個實施例中,初始有效負荷是從ROM BIOS中啟動,并在通電自檢(POST)之后,但在OS引導(dǎo)、加載和/或執(zhí)行之前顯示在屏幕上。這將在預(yù)定時間上發(fā)生,例如在系統(tǒng)被制造、裝配和檢測時,或者在終端用戶首次激活系統(tǒng)時。在另一個實施例中,這個初始有效負荷在預(yù)定時間被復(fù)制到預(yù)定位置(比如系統(tǒng)的硬盤中),例如在系統(tǒng)被制造、裝配和檢測時,或者當終端用戶首次激活系統(tǒng)時。一旦被復(fù)制,有效負荷在POST之后、OS操作之前執(zhí)行,并在屏幕上顯示圖形、廣告、動畫、聯(lián)合圖象專家組(JPEG)/運動圖象專家組(MPEG)格式的資料。當附加程序和/或有效負荷(通過因特網(wǎng)或其他外部連接)被傳送時,在OS引導(dǎo)前和引導(dǎo)過程中,顯示屏將被用于以消息或圖形的方式提供定制屏幕。另外,除了隨后的從網(wǎng)站上下載的程序(例如第二軟件模塊)之外,在第一軟件模塊中傳送的可執(zhí)行程可以用來檢測PC以決定所安裝的設(shè)備、驅(qū)動程序和應(yīng)用程序的各種類型。在一個實施例中,如同在題目為“在計算機上自動安裝和配置軟件的方法和設(shè)備”的其內(nèi)容在此作為參考的共同未決的美國專利申請的序列號__中所描述的,第一軟件模塊用于為用戶識別和自動生成快捷方式和/或書簽。從網(wǎng)站上下載的程序包括基于用戶偏好收集和維護的用戶輪廓文件的軟件。這些信息提供給信息媒體,信息媒體隨后根據(jù)信息將息息和/或所編輯數(shù)據(jù)的一部分提供給供應(yīng)商和其他商家,以便獲得供應(yīng)商和其他商家提供的信息的更新或修訂。
參考圖1,信息分布系統(tǒng)10包括通過一條或者多條通信鏈路301-30N與一臺或多臺用戶計算機系統(tǒng)401-40N(“40”)連接起來的服務(wù)中心20。服務(wù)中心20包括一個或多個服務(wù)器22、一個或多個數(shù)據(jù)庫24以及一個或多個計算機261-26M。一個或多個計算機261-26M可以由多個用戶計算機系統(tǒng)401-40N同時訪問。如果使用了多個計算機,貝計算機261-26M可以通過局域網(wǎng)(LAN)或其他相似的連接技術(shù)進行連接。然而,對于服務(wù)中心20來說,也可以有其他配置。例如,較少數(shù)目的大型計算機(比如少數(shù)的主機、小型計算機等),帶有在大型計算機上運行的、能夠與用戶計算機建立通信鏈路的一些內(nèi)部程序和進程。
服務(wù)中心20也可以連接到遠程網(wǎng)絡(luò)50(例如因特網(wǎng))或者遠程位置(例如在附圖1中沒有顯示的衛(wèi)星)。遠程網(wǎng)絡(luò)50或者遠程位置允許服務(wù)中心20提供可能存儲在服務(wù)中心20中的更廣泛的計算機軟件、內(nèi)容等。與服務(wù)中心計算機、例如261相連接的一個或多個數(shù)據(jù)庫24用于存儲包括在計算機26上可用的計算機軟件的數(shù)據(jù)庫項。在一個實施例中,每個用戶計算機401-40N都有自己的不能被其他計算機訪問的安全數(shù)據(jù)庫(未顯示)。通信鏈路301-30N允許一個或多個用戶計算機系統(tǒng)401-40N同時和計算機261-26M連接。連接由服務(wù)器22管理。
在一個用戶計算機系統(tǒng)40與信息服務(wù)計算機26建立雙向通信之后,將內(nèi)容以下述方式傳送到用戶計算機系統(tǒng)40。下載的內(nèi)容包括一個用來檢測用戶和/或用戶計算機系統(tǒng)的硬件和/或軟件以便開發(fā)一個用戶輪廓文件以及用戶系統(tǒng)的輪廓文件的應(yīng)用程序。從用戶和/或用戶計算機系統(tǒng)搜集的信息隨后被提供給服務(wù)中心20,服務(wù)中心20根據(jù)用戶和系統(tǒng)輪廓文件向用戶計算機40提供附加內(nèi)容。與服務(wù)計算機26相連的數(shù)據(jù)庫的數(shù)據(jù)庫項包括關(guān)于計算機軟件、硬件和用戶可以使用的第三方服務(wù)和產(chǎn)品的信息。在用戶和/或系統(tǒng)輪廓文件基礎(chǔ)上,內(nèi)容進一步被傳送給用戶計算機來顯示。該內(nèi)容還包括信息摘要,例如現(xiàn)有計算機軟件的補丁和糾錯的可用性、現(xiàn)有計算機軟件的新版本、全新計算機軟件、新的幫助文件等。該內(nèi)容還包括關(guān)于硬件和用戶感興趣的第三方產(chǎn)品和服務(wù)的可用性的信息。用戶能夠從可用產(chǎn)品和服務(wù)摘要中做出一個或多個選擇,要求將產(chǎn)品從服務(wù)計算機26傳送到用戶計算機?;蛘?,用戶也可以從可用產(chǎn)品和服務(wù)摘要中購買所需的產(chǎn)品或服務(wù)。
圖2顯示了實現(xiàn)本發(fā)明的實施例的一個例示計算機系統(tǒng)100。計算機系統(tǒng)100顯示了用戶計算機系統(tǒng)401-40N和/或計算機261-26M(圖1)的一個實施例,但也可以容易地使用其他的實施例。
參考圖2,計算機系統(tǒng)100包括處理器或中央處理單元(CPU)104。所示的CPU 104包括一個進行計算的算術(shù)邏輯單元(ALU)、一個用于臨時存儲數(shù)據(jù)和指令的寄存器集合和一個控制系統(tǒng)100的操作的控制單元。在一個實施例中,CPU104包括IntelTM公司出售的X86、PentiumTM、PentiumⅡTM、PentiumProTM微處理器、AMDTM出售的K-6微處理器、或者CyrixTM公司出售的6x86MX微處理器中的任意一種。更多的例子還包括Digital Equipment CorporationTM(數(shù)字設(shè)備公司)出售的AlphaTM處理器、MotorolaTM出售的680X0處理器、或者IBMTM出售的PowerPCTM處理器。另外,包括Sun Microsysterns、MIPS、IBM、Motorola、NEC、Cyrix、AMD、Nexgen和其他公司出售的其他處理器種類中的任何一種都能用于實現(xiàn)CPU 104。CPU 104不僅僅局限于微處理器,還可以有其他形式,如微控制器、數(shù)字信號處理器、精簡指令集計算機(RISC)、應(yīng)用專用集成電路等。盡管只顯示了一個CPU104,計算機系統(tǒng)100也可以包括多個處理單元。
CPU104通過CPU總線108與總線控制器112相連??偩€控制器112包括集成在其內(nèi)的存儲器控制器116,但存儲器控制器116也可以在總線控制器112外部。存儲器控制器116提供了CPU104或其他設(shè)備經(jīng)存儲器總線120訪問系統(tǒng)存儲器124的接口。在一個實施例中,系統(tǒng)存儲器124包括同步動態(tài)隨機存取存儲器(SDRAM)。系統(tǒng)存儲器124可以可選地包括附加的或者可替代的高速存儲設(shè)備或存儲電路??偩€控制器112與系統(tǒng)總線128相連,系統(tǒng)總線128可以是外設(shè)部件互連(PCI)總線、工業(yè)標準結(jié)構(gòu)(ISA)總線等。同系統(tǒng)總線128相連的是圖形控制器、圖形引擎或視頻控制器132、海量存儲設(shè)備152、通信接口設(shè)備156、一個或多個輸入/輸出(I/O)設(shè)備1681-168N、以及擴展總線控制器172。視頻控制器132與能夠在如數(shù)字144所指示的一單個卡或設(shè)備上集成的視頻存儲器136(例如8兆字節(jié))和視頻BIOS 140相連。視頻存儲器136用于容納在顯示屏148上顯示信息的顯示數(shù)據(jù),視頻BIOS 140包括用于控制視頻控制器132的代碼和視頻服務(wù)。在另一個實施例中,視頻控制器132通過高級圖形端口(AGP)總線和CPU104相連接。
海量存儲設(shè)備152包括(但不僅僅局限于)硬盤、軟盤、CD-ROM、DVD-ROM、磁帶、高密度軟盤、高容量可拆卸媒體、低容量可拆卸媒體、固態(tài)存儲設(shè)備等及其組合。海量存儲設(shè)備152還可以包括任何其他海量存儲媒體。通信接口設(shè)備156包括網(wǎng)卡、調(diào)制解調(diào)器接口等,用于通過通信鏈路160訪問網(wǎng)絡(luò)164。I/O設(shè)備1681-168N包括鍵盤、鼠標、聲卡、打印機和類似設(shè)備。I/O設(shè)備1681-168N可以是盤驅(qū)動器、例如緊致盤驅(qū)動器、數(shù)字盤驅(qū)動器、磁帶驅(qū)動器、高速驅(qū)動器、強化驅(qū)動器、數(shù)字視盤(DVD)驅(qū)動器、固態(tài)存儲設(shè)備、磁光盤驅(qū)動器、高密度軟盤驅(qū)動器、高容量可拆卸驅(qū)動器、低容量媒體設(shè)備和/或其任可組合。擴展總線控制器172與包括系統(tǒng)固件176的非易失性存儲器175相連。系統(tǒng)固件176包括用來控制計算機系統(tǒng)100中的硬件設(shè)備及其它實體的系統(tǒng)BIOS82。系統(tǒng)固件176還包括ROM 180和閃存(或EEPROM)184。擴展總線控制器172還與具有RAM、ROM和/或閃存(未顯示)的擴展存儲器188相連接。系統(tǒng)100另外還包括與總線控制器112相連接的存儲器模塊190。在一個實施例中,存儲器模塊190包括ROM192和閃存(或EEPROM)194。
對于本領(lǐng)域普通技術(shù)人員來說熟悉的是,計算機系統(tǒng)100還包括一個操作系統(tǒng)(OS)和至少一個應(yīng)用程序,在一個實施例中,將OS與應(yīng)用程序從海量存儲器152載入系統(tǒng)存儲器124并在POST之后啟動。OS包括但并不局限或限制在包括IOS、WindowsTM(例如Windows95TM,Windows98TM,Windows NTTM等)、Unix、Linux、OS/2、OS/9、Xenix等中的任何一種OS類型。操作系統(tǒng)是控制計算機系統(tǒng)的操作和資源分配的一個或多個程序的集合。應(yīng)用程序是執(zhí)行用戶所要求的任務(wù)的一個或多個軟件程序的集合。
根據(jù)計算機編程領(lǐng)域普通技術(shù)人員的實踐,除非另外指明,在下文中參考由計算機系統(tǒng)100執(zhí)行的操作的符號表示來描述本發(fā)明。這樣的操作有時稱作是由計算機執(zhí)行的。這樣將認識到,以符號表示的操作包括由CPU104對表示數(shù)據(jù)比特的電信號的處理和數(shù)據(jù)比特在系統(tǒng)存儲器124中的存儲單元上的維護,以及其他的信號處理。維護數(shù)據(jù)比特的存儲單元是有與數(shù)據(jù)比特相符合的特定的電、磁、光或有機特性的物理區(qū)域。
當以軟件實施時,本發(fā)明的元素實質(zhì)上是執(zhí)行必要任務(wù)的代碼段。程序或代碼段可以被存儲在處理器可讀媒體中或以包含在載波中的計算機數(shù)據(jù)信號在傳播媒體或通信鏈路上發(fā)送?!疤幚砥骺勺x媒體”包括能夠存儲或傳送信息的任何媒體。處理器可讀媒體的例子包括電子線路、半導(dǎo)體存儲設(shè)備、ROM、閃存、可擦除ROM(EROM)、軟盤、CD-ROM、光盤、硬盤、光纖媒體、射頻(RF)鏈路等。計算機數(shù)據(jù)信號包括能夠在諸如電子網(wǎng)絡(luò)信道、光纖、空中、電磁、射頻鏈路等的傳輸媒體上傳播的任何信號。代碼段可通過因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等計算機網(wǎng)絡(luò)下載。
圖3顯示了計算機系統(tǒng)100的邏輯圖。參考圖2和3,系統(tǒng)固件176包括在POST期間載入系統(tǒng)存儲器124并在隨后由處理器104執(zhí)行的軟件模塊和數(shù)據(jù)。在一個實施例中,系統(tǒng)固件176包括一個具有系統(tǒng)BIOS處理程序、硬件例程等的系統(tǒng)BIOS模塊82、一個ROM應(yīng)用程序接口(RAPI)模塊84、一個初始啟動應(yīng)用程序(ISUA)模塊86、一個初始有效負荷88a、密鑰90、密碼引擎92和顯示引擎94。系統(tǒng)固件176的上述模塊和部分包含于ROM180和/或閃存184中?;蛘?,系統(tǒng)固件176的上述模塊和部分也可以包含于ROM190和/或閃存194中。RAPI84、ISUA86和初始有效負荷88a每一個都在最初使用計算機系統(tǒng)100之前單獨地開發(fā)并存儲在系統(tǒng)固件176中。在一個實施例中,RAPI84、ISUA86和初始有效負荷88a每一個都包括由Phoenix Technologies,Ltd開發(fā)的專有軟件。RAPI84提供了ROM應(yīng)用程序和系統(tǒng)固件176之間的安全接口。在轉(zhuǎn)讓給PhoenixTechnologies,Ltd的1999年6月18日提交的、題目為“安全使用基本輸入輸出(BIOS)服務(wù)的系統(tǒng)和方法”的共同未決的美國專利申請的序列號__中描述了RAPI84的一個實施例,其內(nèi)容在此作為參考。在轉(zhuǎn)讓給Phoenix Technologies,Ltd的1999年6月18日提交的題目為“在計算機上自動安裝和配置軟件的方法和設(shè)備”的共同未決的美國專利申請的序列號__中描述了ISUA 86的一個實施例,其內(nèi)容在此作為參考。
如圖3和4A和4B所示的一個實施例中,在最初對一個新的計算機系統(tǒng)100加電之后,系統(tǒng)以POST過程開始。在初始POST期間,ISUA 86被傳送到海量存儲設(shè)備152,如A1所示。在一個實施例中,這樣的傳送是在制造和/或裝配過程中當系統(tǒng)100在操作系統(tǒng)安裝之后(但是在載入和運行操作系統(tǒng)之前)首次加電時進行的。在另一個實施例中,這樣的傳送是在制造和/或裝配過程之后在用戶收到和加電系統(tǒng)100之后進行的。在另一個可代替實施例中,在ISUA 86傳送期間,附加程序、應(yīng)用程序、驅(qū)動程序、數(shù)據(jù)、圖形和其他信息也可以被傳送(例如,從ROM)到海量存儲器152。例如,傳送包括初始有效負荷88a到海量存儲器152的傳送,隨后從海量存儲器152傳遞出初始有效負荷。在1999年6月18日提交的、轉(zhuǎn)讓給Phoenix Technologies,Ltd的題目為“一種從系統(tǒng)固件向存儲設(shè)備傳送應(yīng)用程序的系統(tǒng)和方法”的共同未決的美國專利申請的序列號__中描述了用于這種傳送的系統(tǒng)和過程的一個實施例,其內(nèi)容在比作為參考。在1999年3月19日提交的、題目為“一種提供基于存儲器的設(shè)備仿真的方法和設(shè)備”的共同未決的美國專利申請的序列號09/272,859、在1999年6月18日提交的、題目為“提供基于存儲器的設(shè)備仿真的方法和設(shè)備”的共同未決的美國專利部分繼續(xù)申請的序列號、以及1999年6月18日提交的、題目為“在海量存儲器中插入一個或者多個文件的系統(tǒng)和方法”的共同未決的美國專利申請的序列號__中描述了用于這種傳送的系統(tǒng)和過程的其它實施例,每一個申請都轉(zhuǎn)讓給本發(fā)明的受讓人Phoenix Technologies,Ltd,其內(nèi)容在此作為參考。
在一個實施例中,ISUA86是一個確定是否有駐留在終端用戶系統(tǒng)中的預(yù)安裝程序的計算機軟件可執(zhí)行程序。如果是,它將識別那些預(yù)安裝的程序,并(在Windows操作系統(tǒng)的情況下,在桌面上)生成快捷方式或書簽,來允許用戶自動啟動程序。在這個實施例中,如下所述可執(zhí)行程序也能夠啟動和建立與服務(wù)器22和/或任何一個服務(wù)計算機26(圖1)上的一個或者多個應(yīng)用程序的雙向通信。此外,在一個實施例中,初始有效負荷88a中的圖形內(nèi)容在POST期間通過顯示引擎94顯示在用戶的顯示器上?;蛘?,初始有效負荷88a中的圖形內(nèi)容可以在隨后的引導(dǎo)過程之后顯示。例如,作為下述的用戶輪廓文件的一部分,用戶會被詢問他或她是否想獲得關(guān)于一種或多種產(chǎn)品和/或服務(wù)的附加信息。如果用戶這樣要求,所需產(chǎn)品和或服務(wù)的相關(guān)內(nèi)容在隨后的引導(dǎo)過程期間被顯示。
一旦POST完成,OS被加載、執(zhí)行和初始化。然后標準的OS驅(qū)動程序和服務(wù)程序被加載。然后提示用戶輸入包括諸如年齡、性別、愛好等人口統(tǒng)計信息的注冊信息。另外,執(zhí)行ISUA 86,在后臺運行,保持空閑狀態(tài)直到它檢測到通過圖2的網(wǎng)絡(luò)164(例如,因特網(wǎng))在計算機系統(tǒng)100與遠程服務(wù)器(例如圖1中的服務(wù)器22)之間建立的通信鏈路。在一個實施例中,ISUA 86可以通過操作系統(tǒng)查找,以確定是否有已經(jīng)加載和已經(jīng)安裝在系統(tǒng)上的應(yīng)用程序。如果有,一旦通信鏈路建立,ISUA 86能自動為應(yīng)用程序提供快捷方式和/或書簽來發(fā)送進一個預(yù)定的服務(wù)器。這個通信鏈路可以通過套接字以一個網(wǎng)絡(luò)協(xié)議堆棧(比如TCP/IP)或任何其他的本領(lǐng)域已知雙向通信技術(shù)來建立。一旦建立了通信鏈路30,ISUA86向服務(wù)器22(如A2所示)發(fā)出一個請求信號,以便從一個內(nèi)容模塊60下載一個初始內(nèi)容程序包62。響應(yīng)這個請求,服務(wù)器下載這個初始內(nèi)容程序包62(如A3所示),在一個實施例中,該初始內(nèi)容程序包62被存儲在海量存儲器152中。在一個實施例中,初始內(nèi)容62和后續(xù)內(nèi)容64可以單獨開發(fā),在服務(wù)器22上存儲初始內(nèi)容62和后續(xù)內(nèi)容64之前,將每個內(nèi)容都用密鑰進行加密和/或數(shù)字簽名。當初始內(nèi)容62和或/后續(xù)內(nèi)容64隨后被下載進系統(tǒng)100中時,密碼引擎92將使用密鑰90對初始內(nèi)容62和/或后續(xù)內(nèi)容64進行解密。
如上所述,初始內(nèi)容程序包62包括應(yīng)用程序62a、驅(qū)動程序62b和有效負荷62c。在一個實施例中,應(yīng)用程序62a包括一個數(shù)據(jù)加載應(yīng)用程序和一個輪廓文件管理器應(yīng)用程序。數(shù)據(jù)加載應(yīng)用程序以與ISUA86相同或相似的方式工作,一旦下載,則禁止并替代ISUA86。更具體地,數(shù)據(jù)加載應(yīng)用程序是一個也能夠啟動、建立和結(jié)束服務(wù)器22和計算機系統(tǒng)100之間的雙向通信的計算機軟件程序。數(shù)據(jù)加載應(yīng)用程序還提供服務(wù)器22和計算機系統(tǒng)100之間的通信控制管理、以及促進終端用戶系統(tǒng)和指定服務(wù)器之間的通信和下載到終端用戶系統(tǒng)的內(nèi)容等其他功能。
輪廓文件管理器根據(jù)用戶偏好、系統(tǒng)硬件和在計算機系統(tǒng)100上安裝的軟件獲得計算機系統(tǒng)100的用戶和系統(tǒng)的輪廓文件。在獲得計算機系統(tǒng)100的用戶和系統(tǒng)輪廓文件基礎(chǔ)上,輪廓文件管理器應(yīng)用程序?qū)⒔Y(jié)果傳送給數(shù)據(jù)加載應(yīng)用程序,數(shù)據(jù)加載應(yīng)用程序隨后將這些信息提供給服務(wù)器22,服務(wù)器22將用戶告訴的偏好與數(shù)據(jù)庫24(圖1)進行匹配。結(jié)果可以在預(yù)定的時間間隔或根據(jù)用戶要求被傳送。然后,服務(wù)器22處理用戶輪廓文件或人口統(tǒng)計學數(shù)據(jù),并將內(nèi)容對準有相似輪廓文件的用戶。另外,多個用戶的用戶輪廓文件數(shù)據(jù)在服務(wù)器22中被編譯和集合來生成一個總體用戶輪廓文件模型。然后將內(nèi)容傳送到以用戶輪廓文件數(shù)據(jù)和/或總體用戶輪廓文件模塊為基礎(chǔ)的用戶的計算機系統(tǒng)上(如A4所示)。后續(xù)內(nèi)容64被下載并存儲在系統(tǒng)固件176中,由數(shù)字88b所示。在一個實施例中,后續(xù)內(nèi)容64被保存在非易失性存儲器、例如閃存或EEPROM中,如同本領(lǐng)域普通技術(shù)人員所熟知的,后續(xù)內(nèi)容的加載是通過重新擦寫ROM完成的。后續(xù)內(nèi)容64也可以作為一個或多個文件存儲在海量存儲器152中或被用于修正WindowsTM系統(tǒng)文件(在WindowsTM環(huán)境下)。輪廓文件收集過程計算機系統(tǒng)100活動期間一直繼續(xù)。在一個實施例中,內(nèi)容可以在服務(wù)器22接收并分析了用戶的輪廓文件之后才下載。
當計算機系統(tǒng)100隨后被加電時(見圖4B),系統(tǒng)再次執(zhí)行POST。然后,在加載和/或執(zhí)行操作系統(tǒng)之前,顯示先前下載和保存在系統(tǒng)固件176中且有關(guān)版權(quán)問題已經(jīng)解決的內(nèi)容。在WindowsTM環(huán)境中,在初始加載操作系統(tǒng)期間顯示的WindowsTM徽標隨后被一個或多個顯示保存在系統(tǒng)固件176中的以前下載的內(nèi)容的屏幕所代替。
在與再閃爍ROM不同將內(nèi)容作為一個或者多個文件存儲在海量存儲器152中的情況下,在引導(dǎo)或關(guān)閉時顯示的WindowsTM徽標可以被改變或替換。利用這種方法的一個實施例包括用一個或多個顯示內(nèi)容的文件(例如,圖形文件)替換相應(yīng)的WindowsTM系統(tǒng)文件,如同在1999年6月18日提交的、題目為“在引導(dǎo)或關(guān)閉過程中顯示圖象”、轉(zhuǎn)讓給Phoenix Technologies,Ltd的共同未決的美國專利申請的序列號中所描述的,其內(nèi)容在此作為參考。將引導(dǎo)Windows顯示文件取名為LOGO.SYS,通常位于Windows目錄中。首先將WindowsTMLOGO.SYS文件從Windows目錄傳送到其他目錄。然后,將內(nèi)容圖形文件重命名為LOGO.SYS并傳送到Windows目錄下。當操作系統(tǒng)初次被運行時,操作系統(tǒng)將恢復(fù)這個文件,因此,內(nèi)容在顯示器上顯示。WindowsTM期望LOGO.SYS文件是圖形分辨率為320×400和256色的一個位圖文件,盡管WindowsTM后來為了顯示的目的將圖象分辨率擴展到640×400。因此,內(nèi)容圖形文件要成為同樣的圖形格式(在重命名為LOGO.SYS之前通常以“.BMP”為擴展名進行命名)。
操作系統(tǒng)然后被加載、執(zhí)行和初始化。標準操作系統(tǒng)驅(qū)動程序和應(yīng)用程序也被加載。輪廓文件管理器被執(zhí)行。當已經(jīng)建立與預(yù)定網(wǎng)站的鏈接時,附加的內(nèi)容會被下載和隨后被顯示。這樣的附加內(nèi)容既可以任意地被提供,也可以根據(jù)從用戶或用戶系統(tǒng)的調(diào)查中獲得的信息被提供。在一個實施例中,一旦引導(dǎo)過程完成,顯示屏的一部分將被用來提供用于訪問關(guān)于以前顯示過的消息或廣告的詳細信息的圖標和快捷方式。在更進一步的實施例中,消息或廣告在關(guān)閉過程期間可以再次被顯示,例如,用其他的選擇內(nèi)容來替換屏幕顯示的“Windows正在關(guān)機”或“現(xiàn)在可以安全關(guān)閉你的計算機”等消息。
圖5是顯示ISUA 86與ISUA 86正常工作所需軟件的其他部分的組合的一個實施例的方框圖。如圖5所示,ISUA 86是在rundll32.exe應(yīng)用程序500的存儲器空間中執(zhí)行的。Rundll32.exe應(yīng)用程序500依次在操作系統(tǒng)506之上工作,在這個實施例中,操作系統(tǒng)506是微軟Windows98TM操作系統(tǒng)。作為由操作系統(tǒng)506提供的功能的一部分,wininet.dll 502和winsock.dll 504包含在操作系統(tǒng)506中。wininet.dll 502和winsock.dll 504一起提供了ISUA 86所需的網(wǎng)絡(luò)功能。
圖6是依據(jù)本發(fā)明的原理執(zhí)行的一個例示性操作過程的流程圖。
在方框600中,ISUA86是用CPL格式創(chuàng)建的。這樣,ISUA86就可以使用任意的編譯程序進行編譯以生成CPL格式的可執(zhí)行文件。當然,ISUA 86也可以以預(yù)編譯CPL格式的可執(zhí)行文件提供給系統(tǒng)。
在方框602中,ISUA86存儲在BIOS82中。在一個實施例中,ISUA86的一個圖象包含在一個大圖象中,該大圖象然后通過閃存過程存儲在BIOS 82中。在另一個實施例中,ISUA 86的圖象是獨立于BIOS的其他內(nèi)容存儲的。
在方框604中,將ISUA 86包從BIOS 82拷貝到海量存儲設(shè)備152上。在一個實施例中,ISUA 86包最初被壓縮,在傳送到海量存儲設(shè)備152上時被解壓縮。在另一個可選實施例中,ISUA 86被直接傳送,并可選地在以后被解壓縮。ISUA 86包也可以進行加密,這樣會需要一個解密ISUA 86包的解密機。在將ISUA 86包傳送到海量存儲設(shè)備152之后,操作繼續(xù)進行到方框606。
在方框606中,將ISUA 86設(shè)定成啟動應(yīng)用程序。這樣,在用戶系統(tǒng)40中包含的操作系統(tǒng)完成引導(dǎo)之后,就會調(diào)用ISUA 86。根據(jù)操作系統(tǒng)的實際版本,可以采用不同的方法來設(shè)置ISUA 86,使其在操作系統(tǒng)引導(dǎo)完成之后自動啟動。在Windows95TM或Windows98TM下,CPL程序必須放置在“開始菜單”文件夾之外。這包括“開始菜單”文件夾下的所有目錄。如果將CPL文件放在啟動文件夾下,它們就會被忽略并變得無效。為了Windows9TM或Windows98TM操作系統(tǒng)能夠自動啟動ISUA 86,可以創(chuàng)建程序的快捷方式并放在啟動文件夾下?;蛘撸梢孕薷摹癢indows”目錄(或在其下面安裝系統(tǒng)的目錄)下的win.ini文件,使其包括CPL程序的“run=”條目。當操作系統(tǒng)引導(dǎo)時,將自動啟動啟動文件夾下的每個程序和快捷方式以及在win.ini文件中指定的程序。在Windows NTTM下,可以將CPL程序直接放在WindowsTM的啟動文件夾里。操作系統(tǒng)會根據(jù)系統(tǒng)注冊表識別文件,并在Windows出現(xiàn)時自動起動該程序,而不需要創(chuàng)建操作系統(tǒng)的快捷方式。操作然后繼續(xù)進行到方框608。
在方框608中,控制返回到操作系統(tǒng)來按正常情況繼續(xù)引導(dǎo)和初始化計算機。
在方框610中,操作系統(tǒng)將ISUA 86當作啟動應(yīng)用程序來加載或運行,這就允許ISUA 86具有下面要介紹的功能。
圖7是在操作系統(tǒng)和ISUA86加載之后ISUA86的一個實施例的流程圖。在方框700中,ISUA 86的網(wǎng)絡(luò)連接檢測器502執(zhí)行輪詢以檢測因特網(wǎng)連接或必要的網(wǎng)絡(luò)連接是否存在。網(wǎng)絡(luò)連接檢測器502通過查詢操作系統(tǒng)或向包含初始內(nèi)容包62的主服務(wù)器發(fā)出聲脈沖看看主服務(wù)器是否可用,來判定必要的網(wǎng)絡(luò)連接是否存在。在另一個實施例中,網(wǎng)絡(luò)連接檢測器502可以嘗試與一組服務(wù)器進行聯(lián)系,直到一個服務(wù)器進行了響應(yīng)。如果網(wǎng)絡(luò)連接存在,就會繼續(xù)方框702的操作,否則會繼續(xù)方框704的操作。
在方框702中,如果網(wǎng)絡(luò)連接檢測器502沒有檢測到網(wǎng)絡(luò)連接,就會等待一段延遲時間,然后返回到方框700。在一個實施例中,延遲時間為10秒。
在方框700中,如果網(wǎng)絡(luò)連接檢測器502檢測到了必要的網(wǎng)絡(luò)連接的存在,則網(wǎng)絡(luò)連接檢測器502會在方框704中檢查用戶正在使用多少帶寬。這是為了確定ISUA 86是否有足夠的可用帶寬來傳送信息,而不會顯著影響用戶對帶寬的使用。最好用戶不會覺察到ISUA 86在使用帶寬。在一個實施例中,網(wǎng)絡(luò)連接檢測器502可以在對正在使用的帶寬和使用時間的分析中使用試探法來判定是否適于ISUA86使用該連接。例如,網(wǎng)絡(luò)連接檢測器502可以在ISUA 86開始使用連接之前進行等待,直到用戶只使用小于50%的帶寬五分鐘為止。在另一實施例中,可以使用預(yù)定閾值來判定是否有帶寬可供ISUA 86使用。這樣,如果由其他過程占用的連接帶寬量只是全部帶寬的10%,就可以認為具有足夠的帶寬供ISUA 86使用。由ISUA 86使用的帶寬量可以基于在用戶使用的帶寬或ISUA 86要使用的帶寬之間的簡單的比例或某些數(shù)學關(guān)系。如果帶寬可用,則繼續(xù)方框706的操作,否則繼續(xù)方框710的操作。
在方框706中,ISUA 86的下載模塊504會在一次傳輸中下載WDL62a的一個數(shù)據(jù)塊,而不是對WDL 62a的數(shù)據(jù)的各部分進行單獨下載。
在方框708中,下載模塊504確定WDL62a是否已經(jīng)下載完畢。如果WDL62a已經(jīng)下載完畢,則繼續(xù)方框716的操作。否則,返回到方框700的操作。在方框716中,一旦下載模塊504確定WDL62a已經(jīng)下載完畢,下載模塊504就會驗證WDL62a的完成和完整性。例如,下載模塊504可以對下載的WDL62a執(zhí)行校驗和運算來判定在下載中是否遇到差錯。如果WDL 62a被驗證,則繼續(xù)方框712的操作。否則,繼續(xù)方框718的操作。
在方框712中,一旦WDL 62a被驗證,則URL/快捷方式模塊506就向任何應(yīng)用程序、例如因特網(wǎng)服務(wù)提供者的安裝/注冊程序或?qū)W(wǎng)絡(luò)站點的鏈接安裝快捷方式。在一個實施例中,WDL 62a也被立即執(zhí)行以便開始執(zhí)行它的任務(wù)。另外,一旦WDL 62a被驗證,則WDL 62a將由操作系統(tǒng)作為啟動應(yīng)用程序來執(zhí)行。在URL/快捷方式模塊506改動了快捷方式后,操作結(jié)束。
在方框718中,如果WDL62a在方框716中未被驗證,下載模塊304就會從海量存儲設(shè)備152中去除WDL 62a。然后繼續(xù)方框700的操作,其中網(wǎng)絡(luò)連接檢測器502再次輪詢以檢測必要的網(wǎng)絡(luò)連接是否存在。
在一個實施例中,一旦ISUA 86完成了其因特網(wǎng)連接之前的作業(yè)(包括下載、安裝和起動WDL62a),ISUA86也就完成了所要做的全部事情。WDL62a會從這一點開始接替ISUA 86。一旦WDL 62a開始工作,WDL 62a的初始任務(wù)之一就是卸載ISUA86。
WDL 62a的主要功能就是控制計算機系統(tǒng)100和服務(wù)器22之間的數(shù)據(jù)傳輸。用這種方式,就可以將WDL 62a看成向所有其他部件提供數(shù)據(jù)交換和傳輸服務(wù)。
在一個實施例中,WDL 62a執(zhí)行的數(shù)據(jù)交換任務(wù)是以圖7中介紹的ISUA 86在傳輸WDL 62a方面提供的同樣的功能為基礎(chǔ)的。因此,WDL 62a提供檢測是否存在可用連接(因為它自身并不起動因特網(wǎng)連接),而且如果連接存在的話,就只將數(shù)據(jù)傳輸限制在任何可用的帶寬內(nèi),以防止沖擊其他應(yīng)用程序?qū)挼氖褂?。WDL62a與ISUA86相比,除了類似功能外,為了適應(yīng)更豐富的特性、高需求的環(huán)境,WDL 62a的功能被增強和增加了。
在一個實施例中,WDL 62a增加的功能就是從計算機系統(tǒng)100向服務(wù)器22上載的功能。已經(jīng)安裝在客戶機上的所有部件、如輪廓文件管理器應(yīng)用程序都需要向網(wǎng)絡(luò)服務(wù)器傳遞信息,如用戶輪廓文件和用戶/廣告量度等。
WDL 62a的下載和上載功能如下1.它具有“因特網(wǎng)連接分時”的特點,即只使用空閑時間段來下載和上載數(shù)據(jù)。
2.它能夠從部分下載中構(gòu)造出有效數(shù)據(jù)模塊,并重新發(fā)送未成功的上載。也就是說,如果在一個Windows對話中WDL 62a沒有足夠的空閑連接時間來交換一個數(shù)據(jù)模塊或一組數(shù)據(jù)模塊,則WDL 62a在空閑連接時間再次可用時從停止的地方開始。
WDL 62a只處理數(shù)據(jù)交換和傳播。與處理提供基本OS內(nèi)容(如快捷方式)的ISUA86不同,WDL62a不處理實際內(nèi)容的提供或改變用戶接口。WDL62a只是用作為數(shù)據(jù)通信協(xié)調(diào)程序。初始化WDL62a一旦安裝并在OS中運行后,WDL62a就1.卸載ISUA86;2.下載各種的應(yīng)用程序部件,包括-用戶查詢應(yīng)用程序-內(nèi)容管理程序-輪廓文件管理程序-ROM擦寫程序(flasher)3.等待因特網(wǎng)連接在一個實施例中,下載的第一個部件為用戶查詢應(yīng)用程序。此部件會立即起動即使其余部件仍在繼續(xù)下載。每個Windows對話在一個“常規(guī)對話”中,當因特網(wǎng)連接不存在時,WDL 62a的責任就是等待(嗅探)因特網(wǎng)連接。這是無限期地進行的,直到連接成功為止。一旦作出因特網(wǎng)連接,它就會檢測正常連接時間之間的空閑時段,并用這些時間片斷來進行校驗和傳送1.終端用戶和廣告量度;2.終端用戶輪廓文件;3.用戶內(nèi)容和用戶內(nèi)容指令;4.廣告內(nèi)容和廣告內(nèi)容指令;5.更新OS部件,其中包括內(nèi)容管理程序、輪廓文件管理程序和ROM擦寫程序;6.更新ROM部件,其中包括ISUA 86和ROM客戶加載程序(這些將被提供給ROM擦寫程序);7.增加的其他常規(guī)應(yīng)用程序。
WDL 62a的數(shù)據(jù)交換功能能夠從部分下載和上載中構(gòu)造出有效數(shù)據(jù)模塊,一個下載批量不是在一次連接中、一次 Windows對話中甚至不是在一天中完成的。WDL62a判定每條數(shù)據(jù)完成并準備好另一個部件在其上面工作的時間??赡艿脑偕M管WDL 62a會永遠存在下去,但是也有可能最終用戶會刪除WDL 62a。由ROM客戶機加載程序(RCL)來負責核查ISUA 86或WDL 62a是否還裝在Windows下。如果發(fā)現(xiàn)二者都不存在了,RCL就會重新配備ISUA86,使ISUA86能夠再次從頭執(zhí)行一遍其工作,其中我們所關(guān)心的就是再次下載、安裝并起動WDL 62a。在一個實施例中,如果用戶先以前對詢問用戶是否需要安裝所有部件的用戶查詢應(yīng)用程序的回答為“否”,就會設(shè)定CMOS位,而且RCL也不會再重新配備ISUA 86了。這也存著在例外情況,我們將在下面介紹。因特網(wǎng)連接檢測器(嗅探連接)如上所述,在一個“常規(guī)對話”中,不存在因特網(wǎng)連接時,WDL 62a會等待(或嗅探)一個因特網(wǎng)連接。WDL 62a會無限期地進行,直到連接成功為止。一旦有因特網(wǎng)連接成功,就會檢測正常連接時間之間的空閑時段,并用這些時間片斷來校驗和下載服務(wù)器22想要給客戶機的部件。因特網(wǎng)連接檢測器模塊(未顯示)在后臺運行,并在指定的時間間隔等待連接。一旦連接建立,則調(diào)用傳輸(上載/下載)功能。數(shù)據(jù)交換(下載/上載)智能一旦因特網(wǎng)連接檢測模塊已經(jīng)確定存在因特網(wǎng)連接,則WDL 62a開始檢測正常連接時間之間的空閑時段,并用這些時間片斷來下載部件/數(shù)據(jù)和上載數(shù)據(jù)。
關(guān)于要下載的內(nèi)容的信息來自服務(wù)器22。WDL 62a僅僅查詢服務(wù)器22,然后服務(wù)器22在所知道的客戶機(如計算機系統(tǒng)100)、用戶輪廓文件、排隊的終端用戶內(nèi)容、排隊的廣告商的內(nèi)容等基礎(chǔ)上,開始向客戶機發(fā)送數(shù)據(jù)。在需要上載時可以由安裝并運行中的部件來向WDL 62a發(fā)出上載請求。WDL 62a也可以從其他服務(wù)器下載數(shù)據(jù),如這里描述的。從部分下載中重新構(gòu)造數(shù)據(jù)在常規(guī)因特網(wǎng)連接對話的空閑時刻中會有大量的數(shù)據(jù)跨越線路輸送,數(shù)據(jù)批極有可能不能在一次連接中、一次Windows對話中甚至不是在一天中完成。
如果WDL 62a檢測出存在任何原因下的連接丟失,都會返回到等待連接(嗅探)模式。一旦重新連接上,就會設(shè)法從停止的地方繼續(xù)下載。這意味著WDL62a的下載功能能夠從部分下載中構(gòu)造出有效數(shù)據(jù)模塊來。它是通過跟蹤上一次成功傳送的數(shù)據(jù)包、并向服務(wù)器22索求系列中的下一個數(shù)據(jù)包來實現(xiàn)此功能的。一旦WDL 62a判定一塊數(shù)據(jù)已經(jīng)完成并為下一個部件在其上面操作做好了準備,它就會通知合適的部件。事件的下載序列一旦檢測出常規(guī)因特網(wǎng)連接對話中的空閑時間,就會發(fā)生以下事件1.從存儲在WDL 62a數(shù)據(jù)區(qū)域(未顯示)里的信息中獲得要聯(lián)系的服務(wù)器(如服務(wù)器22)的IP地址,其中存儲區(qū)域是海量存儲設(shè)備152的一部分;2.用這個IP地址與要聯(lián)系的服務(wù)器建立連接;3.WDL 62a通知已安裝的部件,它已經(jīng)具有一個連接;4.已安裝的部件要求WDL 62a代表它們上載數(shù)據(jù)(例如,內(nèi)容管理程序可以要求上載終端用戶和廣告量度,輪廓文件管理程序可以要求上載其終端用戶輪廓文件);5.WDL 62a發(fā)出校驗下載內(nèi)容更新的請求,網(wǎng)絡(luò)服務(wù)器用數(shù)據(jù)做出回應(yīng),而且一旦經(jīng)過WDL 62a下載,WDL 62a就會向各部件通知它們的到來(例如,內(nèi)容管理程序可以接收用戶內(nèi)容和用戶內(nèi)容指令以及廣告內(nèi)容和廣告內(nèi)容指令);6.WDL 62a發(fā)出校驗下載部件更新的請求,網(wǎng)絡(luò)服務(wù)器用新的更新做出回應(yīng),而且一旦經(jīng)過WDL 62a成功地下載,WDL 62a就會安裝更新部件(更新可以包括OS部件,例如內(nèi)容管理程序、輪廓文件管理程序、ROM擦寫程序、OEM應(yīng)用程序和WDL 62a自身;ROM部件的更新可以包括ISUA 86和ROM客戶機裝載程序-將這些更新展示給系統(tǒng)BIOS的ROM擦寫程序);以及7.WDL 62a將控制返回到初始因特網(wǎng)連接器(一般為網(wǎng)絡(luò)瀏覽器)。與其他部件的交互作用WDL 62a的服務(wù)之一是通知部件數(shù)據(jù)的可用性。在內(nèi)容(如數(shù)據(jù)和指令)下載之后,WDL 62a需要了解要向哪個已安裝的部件通知新數(shù)據(jù)的到來。這是一個設(shè)計實現(xiàn)問題,但是在一個實施例中,每個已安裝的部件都在WDL 62a上作了注冊。注冊也意味著部件已經(jīng)向WDL 62a提供了自身操作時所需了解的全部東西。這包括1.增加包含在該WDL 62a的數(shù)據(jù)區(qū)域里的WDL 62a的部件和數(shù)據(jù)列表,這樣WDL 62a就能夠核查網(wǎng)絡(luò)服務(wù)器的更新了;2.識別部件數(shù)據(jù)的方法;3.起動或通知部件其數(shù)據(jù)可用的方法;以及4.從部件向網(wǎng)絡(luò)服務(wù)器傳送數(shù)據(jù)的方法。安裝和起動下載的部件在更新及從服務(wù)器下載新部件之后,WDL 62a就會安裝它們。在一個實施例中,這些部件都是可執(zhí)行的Windows應(yīng)用程序,所有部件都具有標準的安裝方法。此標準可以只是需要一個自解壓、自安裝的可執(zhí)行文件。注冊由于最終用戶可能刪除WDL62a,所以WDL62a需要給出一些自身存在的提示,這樣ROM客戶機裝載程序(RCL)就能夠在每次引導(dǎo)時核查它是否仍然存在。然后RCL可以重新配備ISUA86,它會依次最終再次下載、安裝并起動WDL62a。在一個實施例中,這種提示是通過核查Windows注冊表中WDL62a的實際位置來實現(xiàn)的。用戶查詢應(yīng)用程序在ISUA 86完成其工作以后,WDL 62a就會代替它。WDL 62a從服務(wù)器22上下載的第一個部件是用戶查詢應(yīng)用程序。這是第一次詢問用戶是否想要接收系統(tǒng)的權(quán)益。如果用戶拒絕了,WDL 62a就會執(zhí)行以下任務(wù)1.停止下載附加部件(它們可能正在后臺進行);2.刪除那些已下載的部件,不管是部分下載還是全部下載的;3.通知(系統(tǒng)ROM中的)ROM客戶機加載程序,一旦刪除了WDL62a,就應(yīng)該重安裝ISUA 86,ISUA 86隨后再次下載、安裝并起動WDL 62a。此通知可以通過設(shè)定CMOS位或通過其他方法來完成;以及4.WDL62a自卸載。
在終端用戶回答“否”后,ROM客戶機加載程序(RCL)可以用一些潛在的方法將ISUA86(它最終會初始化所有其他部件的安裝)重新配置到Windows中。存在著以下幾種可能性1.在重新安裝Windows新拷貝時;2.在重新安裝Windows新拷貝時;3.在重新安裝新硬盤時;或4.經(jīng)歷一個預(yù)定的時間段(如6個月的時間)之后。
只要上述事件有一種發(fā)生,RCL就會向ISUA 86提供情報,并傳遞給WDL62a。情報內(nèi)容為在過去有一次,用戶查詢應(yīng)用程序發(fā)出詢問,而且用戶拒絕安裝系統(tǒng)的部件。一旦WDL 62a下載了用戶查詢應(yīng)用程序,用戶查詢應(yīng)用程序就能夠從WDL62a得到這種情報并詢問另一個較少令人煩惱的而具有更大刺激性的問題。
在一個實施例中,用戶查詢應(yīng)用程序的對話應(yīng)該向用戶說明在恢復(fù)部件時所能提供的全部特點,如系統(tǒng)部件的自動更新等。
由于用戶查詢應(yīng)用程序具有用戶接口,所以可以提供多語言的功能。可以檢驗Windows的語言實現(xiàn),以便用戶查詢應(yīng)用程序能夠自動顯示正確的語言。最可能需要的是EFIGS(英語、法語、意大利語、德語和西班牙語)。也可以提供日語和中國標準語。
盡管借助本發(fā)明的一種優(yōu)選實施例描述了本發(fā)明,但本領(lǐng)域普通技術(shù)人員可以看出其他實施例也在本發(fā)明的范圍之內(nèi)。相應(yīng)地,本發(fā)明的范圍只用下面的權(quán)利要求書限定。
權(quán)利要求
1.一種方法,包括按照Windows控制面板語言(CPL)格式創(chuàng)建可執(zhí)行程序;將可執(zhí)行程序存儲在第一非易失性存儲器中;從第一非易失性存儲器向第二非易失性儲器傳送該可執(zhí)行程序;以及配置操作系統(tǒng),使操作系統(tǒng)完成引導(dǎo)后就運行該可執(zhí)行程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,可執(zhí)行程序的文件大小比可在Microsoft Windows95TM或以后的操作系統(tǒng)中得到的最小可執(zhí)行文件大小還要小。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將該可執(zhí)行程序存儲在第一非易失性存儲器中包括將該可執(zhí)行程序存儲在基本輸入輸出系統(tǒng)(BIOS)設(shè)備中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,BIOS設(shè)備是以下設(shè)備中的一個或多個電可擦除只讀存儲器、只讀存儲器和閃存設(shè)備。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,傳送可執(zhí)行程序包括從BIOS設(shè)備向海量存儲設(shè)備傳送該可執(zhí)行程序。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就運行該可執(zhí)行程序包括創(chuàng)建該可執(zhí)行程序的快捷方式,并將快捷方式存儲生啟動文件夾中。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就運行該可執(zhí)行程序包括修改初始化文件來包含對該可執(zhí)行程序的引用。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就運行該可執(zhí)行程序包括修改win.ini文件來包含對該可執(zhí)行程序的引用。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就運行該可執(zhí)行程序包括將該可執(zhí)行程序放入啟動菜單里。
1O.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的可執(zhí)行程序包括確定是否存在因特網(wǎng)連接;如果存在因特網(wǎng)連接,確定因特網(wǎng)連接的預(yù)定帶寬量是否可用;如果至少預(yù)定帶寬量是可用的,則在后臺向遠程服務(wù)器發(fā)送一個下載一個或多個文件的請求;以及接收來自遠程服務(wù)器的一個或多個文件。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述可執(zhí)行程序還包括將一個或多個文件存儲在海量存儲器上。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述一個或多個文件包括以下中的一個或多個可執(zhí)行程序、應(yīng)用程序、有效載荷和驅(qū)動程序。
13.一種設(shè)備,包括一個包括一條或多條指令的存儲器;以及一個與存儲器相連的處理器,所述處理器響應(yīng)于一條或多條指令從一個非易失性存儲器向第二存儲器傳輸按照Windows控制面板語言(CPL)格式創(chuàng)建的可執(zhí)行程序,以及配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就啟動該可執(zhí)行程序。
14.根據(jù)權(quán)利要求12所述的設(shè)備,其特征在于,該可執(zhí)行程序的文件大小比在Microsoft Windows95TM或以后的操作系統(tǒng)中可得到的最小的可執(zhí)行文件大小還要小。
15.根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于,非易失性存諸器包括一個基本輸入輸出系統(tǒng)(BIOS)設(shè)備。
16.根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于,非易失性存儲器包括以下設(shè)備中的一個或兩個只讀存儲器和閃存設(shè)備。
17.根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于,存儲器包括非易失性存儲器。
18.根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于第二存儲器包括海量存儲設(shè)備。
19.根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于處理器通過運行以下操作之一來配置操作系統(tǒng)以使操作系統(tǒng)完成引導(dǎo)后就啟動該可執(zhí)行呈序?qū)⒃摽蓤?zhí)行程序的快捷方式存儲到啟動文件夾里;修改win.ini文件來包含對該可執(zhí)行程序的引用;以及將該可執(zhí)行程序放入啟動菜單里。
20.一種計算機程序產(chǎn)品,包括具有包含在其中的計算機程序代碼的計算機可用媒介,所述計算機程序代碼用于從第一設(shè)備向第二設(shè)備傳輸按照Windows控制面板語言(CPL)格式創(chuàng)建的可執(zhí)行程序;以及配置操作系統(tǒng)使操作系統(tǒng)在完成引導(dǎo)后就執(zhí)行該可執(zhí)行程序的計算機程序代碼。
21.根據(jù)權(quán)利要求20所述的計算機程序產(chǎn)品,其特征在于,該可執(zhí)行程序的文件大小比在Microsoft Windows95TM或以后的操作系統(tǒng)中可得到的最小的可執(zhí)行文件大小還要小。
22.根據(jù)權(quán)利要求20所述的計算機程序產(chǎn)品,其特征在于,第一設(shè)備包括以下設(shè)備中的一個或兩個只讀存儲器和閃存。
23.根據(jù)權(quán)利要求20所述的計算機程序產(chǎn)品,其特征在于,第二設(shè)備包括海量存儲設(shè)備。
24.根據(jù)權(quán)利要求20所述的計算機程序產(chǎn)品,其特征在于,所述配置所述操作系統(tǒng)使操作系統(tǒng)在完成引導(dǎo)后就啟動該可執(zhí)行程序的計算機程序代碼包括下列之一將該可執(zhí)行程序的快捷方式存儲到啟動文件夾里的計算機程序代碼;修改初始化文件來包括對該可執(zhí)行程序的引用的計算機程序代碼;以及將該可執(zhí)行程序放入啟動菜單里的計算機程序代碼。
全文摘要
一種方法,包括:按照Windows控制面板語言(CPL)格式創(chuàng)建可執(zhí)行程序;將可執(zhí)行程序存儲在第一非易失性存儲器中;從第一非易失性存儲器向第二非易性存儲器傳送該可執(zhí)行程序;以及,配置操作系統(tǒng),使操作系統(tǒng)完成引導(dǎo)后就啟動該可執(zhí)行程序。
文檔編號G06F9/445GK1283817SQ0012629
公開日2001年2月14日 申請日期2000年6月18日 優(yōu)先權(quán)日1999年6月18日
發(fā)明者C·程, B·袁, J·P·阿布格拉爾 申請人:鳳凰技術(shù)有限公司