新四季網

用於分發和安裝軟體的方法和系統的製作方法

2023-04-27 01:48:06

專利名稱:用於分發和安裝軟體的方法和系統的製作方法
技術領域:
本發明涉及軟體在計算機上的分發、安裝和操作,尤其涉及一種用於在不同的計算機上分發和安裝軟體產品的方法和系統。
背景技術:
計算機軟體開發者通常銷售同一軟體產品的多個版本。如一些不同的行為所證明,每個版本可被識別為不同於其他版本,即使這些版本的大多數可執行計算機代碼相同,也是如此。不同的行為的例子包括不同的特點、諸如語言組等不同的可用資源、在運行時間期間向用戶呈現諸如標記文本等不同的文本、不同的許可期限和不同的安裝行為。
例如,軟體開發者經常提供每個軟體產品的原始設備製造(OEM)版本和零售版本。這些版本通常具有不同的安裝行為。該零售版本預期由最終用戶來安裝,所以,它包括來自該用戶的請求信息,並要求作為安裝過程的一部分的響應。另一方面,該OEM版本預期由計算機轉售商來安裝,所以,它在安裝期間不要求信息,而是首先執行該軟體產品。所以,這兩個版本之間的一個差異是安裝期間的行為。相同產品的OEM版本與零售版本之間的另一個普通的差異是應用於每個版本的許可證有效期。
通常,每個版本在其自己的包裝中並在各自的存儲介質上被出售。該存儲介質包括原計算機代碼或原代碼、以及將那個版本安裝到接收計算機上並啟用合適的行為所必要的無論什麼二級版本特定代碼。這樣,如果軟體開發者銷售十個不同的版本,則不僅是其十個不同的包裝,而且是十個在物理上不同的存儲介質集(每個只具有待出售的那個版本),即使每個存儲介質集上的、該軟體的大部分——該原代碼相同,也是如此。
這種軟體分發方法有幾個缺點。首先,很有可能不正確地包裝存儲介質。出於許多原因,這是不合需要的。由於必須將該軟體和包裝送回到購買地點,可能會使顧客感到不便;最終,該軟體將不得不被返回給該軟體開發者,從而使該軟體開發者付出代價。該客戶也可能會偶爾獲得更高價值的版本,從而又使該軟體開發者蒙受損失。此外,如果包裝包括該存儲介質的版本特定絲網印刷或物理標註,則即使軟體開發者希望那樣做,那個存儲介質也一定被破壞,而無法加以反覆應用。
這種分發方法的另一個缺點是要求開發者生產大量不同的存儲介質集。將光碟(例如,光碟(CD))用作例子,如果開發者提供軟體產品的十個不同的版本,那麼,該開發者必須開發十個不同的版本特定CD。每個不同的CD的開發都需要付出代價;此外,「這些CD隨後只可用於特殊的版本」這個事實也增加了成本。

發明內容
根據本發明,通過在單一存儲介質上分發軟體程序的多個版本,而不是為每個版本使用各自的存儲介質,來解決以上和其他的問題。作為安裝過程的一部分,實際上被安裝在計算機上的那個版本可以由用戶輸入的產品關鍵字來加以規定。該軟體開發者只需要為介質開發不同的版本特定包裝,並為顧客提供適合該包裝上的那個版本的產品關鍵字。
安裝軟體產品的多個版本所必要的計算機代碼被存儲在該存儲介質上,它至少包括對於可從一個存儲介質或介質集中加以安裝的所有這些軟體產品而言是必要的原代碼、以及針對每個版本的二級代碼。特殊軟體產品的安裝包括該原代碼和至少某個二級代碼的安裝。由安裝者來執行安裝,該安裝者根據該用戶提供的信息(例如,產品關鍵字)來識別並安裝合適的軟體產品。該安裝者可以使用查找表格來識別該代碼,以進行安裝,並驗證該用戶被授權使用該軟體產品。
根據其他方面,本發明涉及一種用於在計算機上安裝所需的軟體產品的方法。該方法包括從用戶那裡接收命令,以便在計算機上安裝軟體。一接收到命令,計算機就對存儲介質進行存取,該存儲介質具有對於將多個軟體產品安裝在包括該所需軟體產品的計算機上而言是必要的計算機代碼。該計算機代碼包括第一部分(例如,主要部分或某個其他的不可缺少的部分),在安裝於該計算機上之後的這多個軟體產品中的每個軟體產品的操作期間,可使用這第一部分。該計算機代碼也包括許多不同的第二部分。每個第二部分與這些軟體產品中的一個不同的軟體產品關聯並且針對它;只有在其關聯的軟體產品的操作期間,才使用每個第二部分。請求並接收產品關鍵字,該產品關鍵字識別該所需的軟體產品。該方法通過安裝計算機代碼的第一部分並且只安裝計算機代碼的一個第二部分,來安裝該所需的軟體產品,該第二部分是與該所需的軟體產品關聯的計算機代碼的該第二部分。
根據其他方面,本發明涉及一種用於有效率地分發多個不同的、但相關的軟體產品(例如,同一軟體應用程式的不同的版本)的方法。該方法包括在存儲介質上存儲包括文件或對於在計算機上運行、安裝或執行這多個軟體產品中的任何軟體產品而言是必要的其他計算機代碼的所有這些數據。至少一個唯一的產品關鍵字與這多個產品中的每個產品關聯。為這些軟體產品的顧客提供只安裝一個軟體產品的安裝者,被安裝的這個產品由該顧客輸入的產品關鍵字來確定。該安裝者可能被包括在該存儲介質上,或者已被存儲在該顧客的計算機上。該存儲介質可能包括多件存儲介質(例如,多個CD、DVD或其他物理存儲介質)。該產品關鍵字可能被提供有該存儲介質,或者,可能由顧客個別地(例如,經由網際網路)獲得。
本發明可以作為計算機過程、計算機系統或作為製造物品(例如,電腦程式產品或計算機可讀介質)來加以執行。該電腦程式產品可能是計算機系統可讀的計算機存儲介質,它對用於執行計算機過程的指令的電腦程式進行編碼,並包括對於安裝多個相關而獨特的軟體產品而言是必要的該計算機代碼,這些軟體產品至少共享如上所述的某個原代碼部分。該電腦程式產品也可能是計算機系統可讀的載體上的傳播信號,它對用於執行計算機過程的指令的電腦程式進行編碼。
通過閱讀以下詳細的說明並觀察關聯的附圖,成為本發明的特徵的這些和其他各種特點以及優點將會一目了然。


圖1展示了根據本發明的一個實施例的、用於安裝軟體產品的一個版本的系統的功能部件。
圖2展示了可以在其上執行本發明的各個實施例的合適的計算機系統環境的例子。
圖3展示了根據本發明的一個實施例的存儲介質的各種內容。
圖4展示了根據本發明的產品關鍵字的一個實施例。
圖5呈現了文件中所包含的SKU表格的一個實施例,該文件將產品標識符跟特殊的軟體產品和該產品的版本聯繫起來。
圖6呈現了根據本發明的「標記表格」的實施例。
圖7呈現了根據本發明的「EULA表格」的實施例。
圖8呈現了根據本發明的「映射表格」的實施例。
圖9呈現了根據本發明的、用於安裝軟體的邏輯操作的實施例。
圖10展示了根據本發明的、為顧客分發多個相關的軟體產品的實施例的邏輯操作。
具體實施例方式
圖1表現了根據本發明的一個實施例的、用於安裝軟體產品的一個版本的系統的部分基本元件。在所示的實施例中,提供了計算機可讀數據存儲介質10。存儲介質10可能是總計算機系統12的一部分(例如,被存儲在硬驅動器(未示出)上,或被存儲在可由計算機系統12存取的可移動存儲介質上)。數據存儲介質10存儲足以將該軟體產品的任何版本安裝到計算機系統12上的計算機可讀代碼。存儲介質10包括至少兩種類型的計算機代碼——對於安裝可從該存儲介質中加以安裝的該軟體產品的每個版本而言是普通的和必要的原代碼14、以及針對一個或多個版本但不是針對所有這些版本的二級代碼16。
應該注意,「足以安裝」或「對於安裝而言是必要的」指的是除已在該計算機上的或該計算機可獲得的該代碼以外的計算機代碼、對象、數據或其他信息。作業系統可能是該安裝過程的必要部分,但它不被認為是在如這裡所描述的術語「對於安裝而言是必要的」範圍以內,因為認為該作業系統已被安裝、可供計算機系統12使用。
圖1也表現了安裝者20。關於安裝者20的軟體可能被包括在數據存儲介質10上,作為額外的計算機代碼;可能以前被安裝在計算機12上;或者,可能被遠程存儲,從而經由網絡連接(未示出)來控制該軟體產品的安裝。安裝者20中提供有接收模塊22,用於接收產品關鍵字24。產品關鍵字24識別將要被安裝的該軟體的版本,並可能包含證實產品關鍵字24的證實信息。安裝者20包括識別存儲介質10中的代碼的關聯模塊26,存儲介質10對應於產品關鍵字24所識別的那個版本。關聯模塊26可以通過使用SKU文件30來執行這一點,SKU文件30包含將產品關鍵字24所提供的信息與存儲介質10上的該軟體產品的各個版本聯繫起來的信息。
安裝者20也包括安裝模塊28,安裝模塊28從存儲介質10中提取並在計算機系統12上安裝與產品關鍵字24所識別的那個版本關聯的代碼32(即針對產品關鍵字24所識別的那個版本的該原代碼和二級代碼)。安裝模塊28也可能根據如SKU文件30中所提供的額外的行為信息所規定的那樣來加以安裝的那個版本,來啟用或禁止某些行為。
圖1所示的實施例慮及相關的軟體產品(例如,軟體應用程式的各個版本)的有效率的分發。不管顧客購買的版本如何,都可以提供同一數據存儲介質的相同的副本。該顧客可以根據為該顧客提供的產品關鍵字24,來只安裝授權該顧客使用的該軟體產品的那個版本。的確,該顧客甚至可能不知道可以從該介質中安裝一個以上的版本。軟體開發者只需要為該軟體產品開發一個存儲介質集,而不是為該軟體產品的每個版本創建並庫存各自獨特的存儲介質。
圖2展示了可以在其上執行本發明的各個實施例的合適的計算機系統環境的例子。這個系統200表示可以被用來用作提供web站點服務的伺服器的系統。在其最基本的配置中,系統200通常包括至少一個處理單元202和存儲器204。根據計算設備的確切的配置和類型,存儲器204可能是易失的(例如,RAM)、非易失的(例如,ROM、快閃記憶體等)或這兩者的某種組合。在圖2中,通過虛線206,展示了這種最基本的配置。此外,系統200也可能具有額外的特點/功能性。例如,系統200也可能包括額外的存儲器(可移動的和/或不可移動的),該額外的存儲器包括(但不局限於)磁碟或磁帶或光碟或光帶。在圖2中,通過可移動存儲器208和不可移動的存儲器210,展示了這種額外的存儲器。計算機存儲介質包括易失和非易失的可移動和不可移動的介質,該介質用關於信息(例如,計算機可讀指令、數據結構、程序模塊或其他數據)存儲的任何方法或技術來加以執行。存儲器204、可移動存儲器208和不可移動的存儲器210都是計算機存儲介質的例子。計算機存儲介質包括(但不局限於)RAM、ROM、EEPROM、快閃記憶體或其他存儲技術、CD-ROM、數字通用光碟(DVD)或其他光學存儲器、盒式磁帶、磁帶、磁庫存儲器或其他磁性存儲設備、或可以被用來存儲所需信息並可以由系統200來存取的任何其他的介質。任何這類的計算機存儲介質都可能是系統200的一部分。
系統200也可能包含允許該系統與其他設備進行通信的通信連接212。通信連接212是通信介質的例子。通信介質通常具體表現計算機可讀指令、數據結構、程序模塊或調製數據信號(例如,載波或其他傳送機制)中的其他數據,它包括任何信息傳遞介質。術語「調製數據信號」意味著一種信號,其一個或多個特徵按為該信號中的信息編碼這樣一種方式來加以設置或更改。舉例來講(不作限制),通信介質包括有線介質(例如,有線網絡或直線連接)和無線介質(例如,聲音、RF、紅外線和其他無線介質)。如這裡所使用的術語「計算機可讀介質」包括存儲介質和通信介質。
系統200也可能具有輸入設備214(例如,鍵盤、滑鼠、筆、語音輸入設備、接觸式輸入設備等)。諸如顯示器、揚聲器、印表機等輸出設備216也可能被包括在內。所有這些設備在該技術領域中眾所周知,這裡不需要加以詳細討論。
計算設備(例如,系統200)通常包括至少某種形式的計算機可讀介質。計算機可讀介質可以是可由系統200來存取的任何可用介質。舉例來講(不作限制),計算機可讀介質可能包括計算機存儲介質和通信介質。
可以認為本發明的實施例包括幾個部件,這些部件一起運作,以實現這個規定的功能。一個部件是該存儲介質。另一個部件是識別將要被安裝的該產品的該產品關鍵字。第三個部件是該產品關鍵字由此與將要被安裝的該產品關聯的裝置。第四個部件是該安裝者,該安裝者接收該產品關鍵字、識別該關聯的產品、存取該存儲介質、為該產品安裝該關聯的計算機代碼並啟動或禁止這些合適的行為。以下將依次討論這些部件中的每個部件。
為了使該討論保持平衡,將使用更普通的術語「版本」來指出一套相關的軟體產品中的一個軟體產品;其相關性體現在它們共享某個原代碼。但是,精通該技術領域的人將會認識到即使將討論不同版本的特殊例子,這裡所揭示的這些實施例也同樣適用於任何軟體產品,不管被稱作不同的版本、不同的發行版或按其他名稱來稱呼,這些軟體產品都共同享有計算機可讀代碼的至少某個部分。
存儲介質圖3展示了根據本發明的一個實施例的存儲介質102的各種內容。在所示的實施例中,提供計算機可讀數據存儲介質102。介質102可能是計算機可讀的任何類型,包括(但不局限於)可移動光學數據存儲盤(例如,CD或DVD)、軟磁碟(例如,微磁碟、硬驅動器或RAM)。
數據存儲介質102存儲足以將軟體產品的許多不同版本中的任何版本安裝到計算機上的計算機可讀代碼。被存儲在數據存儲介質102上的該代碼可以至少分成兩個部分對於每個版本而言是必要的原代碼部分106;以及代碼的多個版本特定或次要部分103、104、105和108,其中的每個部分與至少一個版本關聯。例如,如圖3所示,為了安裝該軟體產品的特殊版本A,必須安裝針對版本A的主要部分106和次要部分105。
當被用於該上下文中時,「版本特定部分」和「次要部分」指的是對於安裝不是該軟體產品的所有這些版本之間所共享的主要部分106的版本而言是必要的那個代碼部分。應該注意,版本特定部分103、104、105和108雖然對於每個版本而言是不同的,但不需要是排他的,並且可以包括其他版本的部分或全部這些版本特定部分103、104、105和108。例如,針對版本B的版本特定部分104可能包括另一個版本的部分或全部的版本特定部分108。
圖3也表現了存儲介質102上所提供的安裝者114。安裝者114確定安裝該軟體產品的哪個版本,並且,隨後安裝主要部分106和這個或這些合適的版本特定部分103、104、105或108。
注意,為軟體產品的顧客提供該安裝者的選擇性實施例也是可能存在的。例如,可能利用產品關鍵字,在單獨的存儲介質上提供安裝者114。安裝者114可能以前被安裝在計算機上或可能被遠程存儲,從而經由網絡連接來控制該軟體產品的安裝。
為了確定必須安裝什麼代碼,安裝者114必須確定什麼代碼與能夠從介質102中安裝的這各種版本相關聯。在所示的實施例中,安裝者114使用關聯SKU文件110,儘管其他實施例也是可能存在的(例如,在安裝者114內提供關聯信息)。在存儲介質102上提供SKU文件110,SKU文件110包括將不同的版本標識符與這些合適的版本特定部分103、104、105和108聯繫起來的信息。在版本安裝期間的某個時刻,這些版本標識符由該軟體顧客來提供(例如,採取產品關鍵字24的形式)。
在上文中,重要的是要注意,SKU文件110自身可能包括部分或全部的版本特定代碼103、104、105或108。例如,SKU文件110的實施例可能包括關於如何安裝這各種版本、應該為每個版本啟用什麼行為等的特殊指令。此外,在一些選擇性實施例中,SKU文件110可能被安裝有供運行時間期間使用的該軟體產品的每個版本,作為其版本特定代碼103、104、105或108的倉庫。
在所示的實施例中,原代碼106以及二級代碼103、104、105和108可以作為離散文件和單獨文件來加以提供。在選擇性實施例(例如,以上所描述的SKU文件110的實施例)中,一些二級代碼103、104、105和108可能駐留在可以被認為是原代碼106文件的地方。一個例子是單文件(例如,數據存儲介質102上所包括的查找表格,數據存儲介質102包含針對這些軟體產品中的一個或多個軟體產品的離散數據)。一安裝該軟體產品的給定版本,該安裝者就將訪問該查找表格,並提取針對該版本的表格中所包含的二級代碼,從而只將該必要的版本特定代碼拷貝到計算機。即使該查找表格自身可能是主文件(體現在它在安裝期間被使用,並包含對於每個軟體產品而言是必要的數據),實際上也只安裝版本特定數據元素和代碼。
另一個實施例將要提供連同原代碼106一起被安裝的單文件(例如,SKU文件110)中的所有的二級代碼103、104、105和108。在那個實施例中,即使對於這些版本中的任何版本而言是必要的全部代碼已在安裝期間被拷貝到計算機,被安裝的這個版本也仍然由該產品標識符來確定。在這個實施例中,該安裝者安裝全部的該代碼,但只啟用針對該版本的那個行為集。
以上所描述的存儲介質的一個實施例將會是CD-ROM光碟或光碟集,它們包括安裝軟體產品的多個不同的版本所必要的全部軟體。拿文字處理器應用程式(例如,MicrosoftWord)舉例而言,該存儲介質將會包括安裝該文字處理器應用程式的專業版本、家庭版本、學生與教師版本以及外語版本的零售版本和原始設備製造商(OEM)版本所必要的全部軟體。除零售版本和OEM版本以外,該存儲介質可能包含對其而言可存取該存儲介質的任何這些不同的作業系統(Windows、Apple、Unix等)的Word版本。
產品關鍵字圖4展示了根據本發明的產品關鍵字400的一個實施例。產品關鍵字400採取五個字母數字符號的五個集合402、404、406、408和410的形式,每個集合被連字符分開。前兩個字符集402和404共同構成產品標識符412(有時被稱作「有效負載」)。最後三個字符集406、408和410構成數字籤名414。
提供數字籤名414,以驗證該產品是有效的產品關鍵字,並且已從該軟體開發者那裡發行。較佳的是,該安裝者將利用被提供有該安裝者、該存儲介質的或從經由網絡連接而被連接的伺服器那裡提供的附加信息,來驗證該籤名。
產品標識符412表現產品關鍵字400為該安裝者提供的數據,以便讓該安裝者理解應該安裝哪個版本。產品標識符412的實施例可能包括識別該產品所必要的各種信息。在一個實施例中,產品標識符412包括識別該軟體產品或產品系列的「組ID」和識別該軟體產品的特殊版本的「通道ID」。例如,5的「組ID」可能是文字處理器產品,777的「通道ID」可能識別該產品的零售的家庭版本。此外,產品標識符也可能包含序列號。
產品關鍵字與特殊產品的關聯精通該技術領域的人將會立即認識到有許多方法可將產品標識符與存儲介質的特殊內容聯繫起來。下文呈現了一種單一計算機可讀文件(例如,SKU文件110)的一個實施例,該單一計算機可讀文件用於將產品標識符(例如,如上所述的產品關鍵字400中所提供的產品標識符412)與存儲介質的這些合適的內容聯繫起來。此外,該文件也可能規定或識別應該在那個版本的安裝和操作期間被啟用或禁止的每個版本的安裝和運行時間行為。在該實施例中,該文件是可由該安裝者來存取的XML文件。不應該認為該討論將本發明的範圍局限於這個特定的實施例,因為將產品標識符與某些內容聯繫起來的許多其他的實施例也是可能存在的。
圖5呈現了SKU文件110中所包含的表格500的一個實施例,SKU文件110將以上所描述的實施例中的產品標識符412與該產品的特殊的軟體產品和版本聯繫起來。
圖5所示的表格500被稱作「SKU表格500」。在所示的實施例中,提供了一列「組ID」506——其中,每個「組ID」指出特殊的產品。「通道ID」被包含在查找表格500中,作為識別範圍的兩個列包含該範圍的低端的列508和關於該範圍的高端的列510。接下來是列512,列512包含對於「通道ID」列508、510所指出的範圍而言是有效的序列號的順序號。
另一個列514(被稱作「標記列514」)包含商標ID,該商標ID識別針對「將如何為用戶呈現該產品的版本」的信息。將根據圖6中的該標記表格,來更詳細地討論這一點。
所示的最後一列516是關於「該產品是零售產品,還是OEM產品」的指示項。該列被稱作「映射列516」,並且,它包含針對每個產品版本的映射標識符。在一些實施例中,該映射列中的信息可以被用於圖8所示的「映射表格」,以識別該產品的適當的「最終用戶許可證協議」(EULA)。
除了可能被用來識別如以下所討論的EULA以外,這些映射標識符還可能規定被安裝在計算機上的軟體的特殊功能的啟用。例如,OEM產品在被安裝時通常不向用戶請求和提示輸入產品關鍵字。相反,當第一次執行該產品時(通常在已將計算機出售給最終用戶之後),OEM產品提示輸入該信息。另一方面,零售產品通常要求作為該安裝過程的一部分的該產品關鍵字。將立即向精通該技術領域的人提出表格500或類似結構的額外的實施例,表格500或類似結構用於將產品標識符與組成獨特版本的行為的版本或集合聯繫起來。圖5中所提供的實施例只是作為例子,不應該被認為限制本發明的範圍。
圖6呈現了「標記表格」600的實施例。該標記表格包括關於「在該產品的執行和安裝期間應該顯示什麼文本和GUI」的信息。例如,文字處理器的「學生與教師版本」可能會在該標記表格中認出在使用時或在最初被執行時,短語「學生與教師版本」應該出現在該產品的標題欄中或這些產品特定信息頁(例如,經由一些產品中的「幫助/關於」下拉菜單而發現的產品特定信息頁)中。
在圖6所示的「標記表格」600的實施例中,提供未編碼的文本,用於在安裝或運行時間期間向用戶示出的GUI中。提供第一個ID列602,它包括關於每個打上標記的版本的標記ID。提供名稱列604,它包括關於該標記ID所識別的商標的未編碼的名稱。提供版本列606,它識別該標記的版本。在圖6所示的實施例中,表格600也包括兩個欄位列608和610,它們包括未編碼的文本,該未編碼的文本用於在安裝或運行時間期間向用戶呈現的GUI和屏幕內所包含的不同的欄位中。將立即向精通該技術領域的人提出用於包括和提供該標記信息的「標記表格」600或類似結構的額外的實施例。圖6中所提供的實施例只是作為例子,不應該被認為限制本發明的範圍。
圖7呈現了用於存儲EULAS的文件(例如,SKU文件110)中所包含的另一個表格的實施例。在圖5所示的實施例中,每個版本與特殊的「最終用戶許可證協議」(EULA)關聯。通常,不同的和獨特的EULA可應用於軟體產品的各種版本。SKU文件110的實施例可能包含表格700,表格700包含關於可能被安裝的這各種版本的這些EULA,並將每個EULA與可能被安裝的這各種版本聯繫起來。「EULA表格」700是簡單的兩列表格——一個列702中具有EULA標識符,另一個列704中包含基礎64編碼的EULA。該安裝者通過參考該文件內的其他表格500、600和800中的一個或多個表格,來獲得該合適的EULA標識符。然後,通過使用該EULA,「表格」700提取該合適的EULA並為其解碼,供在安裝期間以解碼的形式來存儲於計算機上。將立即向精通該技術領域的人提出EULA表格700或類似結構的額外的實施例,EULA表格700或類似結構用於識別和提供針對軟體產品的各種版本的EULA。圖7中所提供的實施例只是作為例子,不應該被認為限制本發明的範圍。
圖8呈現了可能在SKU文件110中發現的另一個表格800——「映射表格」800。在所示的實施例中,「映射表格」800識別表格800上所列出的並且推測起來被存儲在該存儲介質上的這些軟體產品的各種版本的某些行為。「映射表格」800包括關於該映射標識符的一個列802和關於與每個映射標識符關聯的該EULA ID的另一個列804。此外,「映射表格」800包括識別其他行為的額外的列。
提供「LPK」列806,它識別是否為可能被個別安裝的擴展的語言集(被稱作「語言包」)啟用該軟體產品的這個版本。如果被設置為「是」,則該「LPK」屬性允許在用戶希望的以後的某個時間安裝語言包。如果被設置為「否」,則它阻止該語言包的安裝。如果被安裝和啟用,那麼,用戶將可以使用這些額外的語言和特點。
包括「ADMIN?」列808,它識別是否允許用戶實行管理員安裝並在安裝期間定製該軟體產品的配置。如果被設置為「是」,則該「ADMIN」屬性允許用戶實行管理員安裝,以定製該安裝(如果希望的話)。如果被設置為「否」,則阻止這項功能性。
「安靜的安裝?」列810識別是否啟用安定的安裝(即在安裝期間不向用戶呈現屏幕的安裝)。如果實行安靜的安裝,則可能經由交替方法(例如,經由該命令行)來傳遞該產品關鍵字,否則,該安裝可能會失敗。注意,在這種情況中,存儲介質102可能是計算機的硬驅動器,因為已提供該軟體。
也提供了「指點(referral)?」列812。「指點?」是這裡的唯一屬性,它具有立即的動作,並且,如果被設置為「是」,則將顯示指點代碼,或者,如果被設置為「否」,則將隱藏該指點代碼。不要求用戶決定。
「映射表格」800的選擇性實施例可能是另一個簡單的兩列表格,它將在SKU表格500的映射列516中所發現的這些標識符與EULA ID聯繫起來。該映射表格包括關於該映射標識符的一個列802和關於與每個映射標識符關聯的該EULA ID的另一個列804。將立即向精通該技術領域的人提出用於識別版本中所包括的這些行為的「映射表格」800或類似結構的額外的實施例。圖8中所提供的實施例只是作為例子,不應該被認為限制本發明的範圍。
在本發明的實施例中,SKU文件110可以全面地被拷貝到計算機上,作為該安裝過程的一部分。在其他實施例中,它被參考,並且,在安裝期間,只有該文件的內容的選擇部分(例如,該EULA、任何標記信息等)被拷貝到計算機上。精通該技術領域的人將會認識到可能存在許多不同的方法來提供將該產品標識符與特殊的標記、映射和EULA行為聯繫起來的文件,以上只是一個例子。此外,精通該技術領域的人將會認識到除了提供諸如以上所述的SKU文件等文件以外,還有許多類似的、在功能上同等的方法來執行並支持該SKU文件所執行和支持的相同的功能。
安裝者根據本發明的實施例的安裝者114是計算機可執行程序或對象,它可以接收產品標識符(例如,產品關鍵字400中的產品標識符412)、識別該版本、從該存儲介質中安裝該合適的計算機代碼、並啟用這些合適的特點,從而安裝與該產品標識符關聯的版本。在一個實施例中,可以在存儲關於該產品及其版本的計算機代碼的該存儲介質上提供安裝者114,作為(例如)可執行文件SETUP.EXE中的額外的計算機代碼。當將該介質插入諸如磁碟驅動器的閱讀設備時,可以經由名為AUTORUN.INF的第二個文件的動作來自動發動安裝者114。在另一個實施例中,安裝者114是已存在於計算機上或可經由網絡而從遠程伺服器獲得的實用程序。
在一些實施例中,一輸入有效的產品標識符,安裝者114就使用SKU文件110中的該信息來確定要安裝該軟體產品的什麼版本。根據SKU表格500中的該信息以及從該文件中的其他表格600、700和800中獲得的額外的信息,安裝者114從存儲介質102中安裝該合適的代碼,並啟用關於被識別的這個版本的這些合適的行為。在選擇性實施例中,安裝者114將SKU文件110、原代碼106、關於該版本(除SKU文件110中所包括的那個版本以外(如果有的話))的該合適的版本特定代碼拷貝到計算機,然後根據正在被安裝的那個版本來更新計算機上的登記處。
被安裝的產品的每個版本至少在一個方面(通常是在多個方面)具有不同的行為。例如,可以在國際企業版本中啟用和提供額外的語言包(該GUI可以使用的外語集)。可能包括改變該GUI的各個部分的特殊標記(例如,以上所討論的學生版本)。不同的EULA將很可能會應用於每個版本。不同的版本可能包括不同類型或數量的功能(例如,拼寫檢查、字體控制等)。以上還討論了該安裝期間的不同的行為(例如,為OEM產品和零售產品而描述的行為)。精通該技術領域的人將會認識到這裡廣泛地使用行為,以指出軟體產品的各個版本的安裝或操作之間的任何差異。
在參考圖5-8而討論的SKU文件110的實施例中,一輸入有效的產品標識符,安裝者114就使用SKU表格500中的信息來確定要安裝該軟體產品的什麼版本。根據SKU表格500中的信息以及從該文件內的其他表格600、700和800中獲得的額外的信息,安裝者114從存儲介質102中安裝該合適的代碼,並啟用關於被識別的那個版本的這些合適的行為。
在SKU文件110被全面拷貝到計算機上的選擇性實施例中,可以根據SKU文件110中所包含的信息來啟用或禁止被安裝的那個版本的一些行為。在這種情況下,安裝者114拷貝SKU文件110,但也更新該登記處,以參考該SKU文件。一執行該版本,SKU文件110就可能被參考,並且,可能根據該版本而(例如)從標記表格600中提取信息。
本發明的各種實施例的邏輯操作作為以下內容來加以執行(1)在計算機系統上運行的一連串計算機執行的動作或程序模塊,以及/或者(2)該計算機系統內的互連的機器邏輯電路或電路模塊。該實施是根據執行本發明的該計算機系統的各項性能要求而進行選擇的事項。相應地,構成這裡所描述的本發明的各個實施例的這些邏輯操作被不同地稱作「操作」、「結構設備」、「動作」或「模塊」。精通該技術領域的人將會認識到這些操作、結構設備、動作和模塊可以在軟體、固件、專用數字邏輯和其任何組合中加以執行,而不會偏離如附加的權利要求書內所陳述的本發明的精神和範圍。
圖9呈現了根據本發明的、用於安裝軟體的邏輯操作的實施例900。在接收操作902中,接收用戶命令,從而指示計算機安裝軟體。所接收的這個命令可能採取「用戶將存儲介質(例如,CD)插入該計算機中的介質讀取設備」的形式。響應於新的存儲介質的插入,該計算機可能會自動執行諸如CD上常見的AUTORUN.INF等文件,從而產生對該用戶的詢問,以安裝被存儲在該存儲介質上的軟體。在選擇性實施例中,該命令可能是與該計算機連接的顯示器上所顯示的「安裝軟體」圖標的用戶選擇。該命令可能由在其上安裝軟體的該計算機來接收,或者可能由遠程伺服器經由網絡連接來加以接收。
該實施例也包括執行安裝者的執行操作904。執行操作904可能發生在相對於其他操作的任何時間。例如,當插入存儲介質(例如,如上所述的CD)時,存取該介質(見以下關於存取操作906的討論),並且,在接收操作902中接收用戶命令之前,該AUTORUN.INF可能執行安裝者(例如,SETUP.EXE文件中所包含的安裝者)。
執行操作904識別並執行安裝者。該安裝者可能被存儲在具有將要被安裝的該計算機代碼的該存儲介質上。作為選擇,該安裝者可能在該計算機上,或者可能在經由網絡而與該計算機連接的伺服器上。不管該安裝者的位置如何,都可以切實可行地如以上參照該安裝者討論而描述的那樣從該存儲介質中安裝軟體。
存取操作906定位並存取包含將要被安裝的該軟體的該存儲介質。在一個實施例中,存取操作906包括存取曾被插入或直接與計算機連接的存儲介質上的文件和計算機代碼。在另一個實施例中,該安裝者從網絡連接上可用的存儲介質選擇中識別該存儲介質。在另一個實施例中,既存取直接與用戶連接的存儲介質,又存取網絡上可用的單獨的存儲介質。如果已有較小的版本更改,或者要求不曾被存儲在該可插入存儲介質上的一些額外的信息,則這一點是有用的。
無論如何,在存取操作906中被存取的該存儲介質包括安裝任何相關的軟體產品選擇所必要的該計算機代碼。這類產品的例子包括具有多個版本的軟體應用程式、以及使用相同的主要軟體的軟體產品。這樣,該存儲介質包括計算機代碼的某個第一部分(不管最終安裝哪個軟體,都將會被安裝)和計算機代碼的多個第二部分(每個第二部分與一個軟體關聯)。
確定操作908識別將要被安裝的該軟體,並驗證用戶被授權安裝那個軟體。該確定操作的簡單的實施例是用戶進行選擇,該用戶識別該存儲介質上的可用軟體之一。更安全的實施例可能包括從用戶那裡接收某種形式的信息,該用戶驗證該用戶對被識別的那個軟體的權利。這可能包括(例如)從遠程伺服器所生成的收據中輸入產品關鍵字、產品標識符或其他某個代碼。此外,確定操作908可能包括與第二臺計算機(例如,經由網絡而連接的證實伺服器)的相互作用。
確定操作908的一個實施例包括幾項子操作。一項子操作是提示用戶輸入權利或標識信息的請求操作910。請求操作910的例子是關於產品關鍵字(例如,以上所述的產品關鍵字400)的請求,該產品關鍵字既識別軟體的特殊版本,又包括用於證實該產品關鍵字的證實信息。例如,可能要求用戶將產品關鍵字輸入為那個目的而提供的欄位。可能包括該被請求的信息——具有關於該存儲介質的包裝。例如,可能在關於該存儲介質的保護盒上提供產品關鍵字。作為選擇,可能為該產品關鍵字提供該收據,或者,經由網絡而從產品關鍵字伺服器那裡提供該產品關鍵字。
第二項子操作是第二項接收操作912——其中,接收該被請求的信息。如上所述,所接收的信息可能採取產品關鍵字的形式。此外,所接收的信息可能被編碼,以便只有特殊的安裝者可能能夠存取並譯解該信息。
第三項子操作是證實在第二項接收操作912中所接收的該信息的證實操作914。證實操作914驗證所接收的該信息證明用戶被授權使用該用戶已識別的軟體。證實操作914可能包括譯解該接收的信息(例如,由用戶輸入的並在第二項接收操作912中接收的產品關鍵字),隨後從該被譯解的信息中提取、識別並驗證信息。
確定操作908也可能包括關聯操作920。在關聯操作920中,識別與將要被安裝的該軟體關聯的那個代碼(尤其是二級版本特定代碼)。關聯操作920的實施例可能要求使用查找表格(例如,SKU表格500)和/或文件(例如,SKU文件110)來將被識別的軟體與其組成代碼聯繫起來。該查找表格和/或文件可能被存儲在包含將要被安裝的軟體的該存儲介質上。作為選擇,該查找表格可能已被提供給用戶並被存儲在計算機上,或者可能位於經由網絡而與計算機連接的遠程伺服器處。
如果用戶被授權使用軟體,那麼,安裝操作916隨後將該軟體安裝在計算機上。安裝操作916可能包括將該關聯的計算機代碼拷貝到計算機的一個或多個內部存儲設備,這是安裝該軟體所必要的。例如,拷貝所有軟體所要求的計算機代碼的第一部分和與被識別的軟體關聯的第二部分。在實施例中,也可能拷貝該查找表格和/或SKU文件。該表格可能對於在安裝之後的該軟體的操作期間識別各種行為而言是必要的,並且對於在安裝期間識別該關聯的代碼而言也是必要的。
該安裝操作也可能包括更新計算機上的被安裝的軟體的登記處。可以將特殊的數據或信息拷貝入該登記處,該登記處包括或識別從該存儲介質中被拷貝到計算機上的信息。被寫入該登記處的該數據可能會啟用或禁止被安裝的軟體的行為,這適合該產品標識符所識別的軟體。
應該注意,貫穿以上所述的各項操作,用戶可能不知道可待安裝的獨特的軟體產品不止一個。所以,接收操作902可能被解釋為接收用於安裝軟體的一般命令,而不是用於安裝特殊的軟體產品的特殊命令。在那種情況下,對用戶的這些提示是一般提示,它們可能只是概括地指可以被認為描述該存儲介質上的所有軟體的軟體。這樣,當用戶輸入產品關鍵字或其他權利信息時,用戶可能不知道該產品既識別將要被安裝的軟體和該用戶被授權使用哪個軟體,又提供驗證該權利所必要的信息。但是,一證實該用戶的權利,安裝操作916和其他任何隨後的操作就不再需要是通用的,並可以向該用戶呈現具有對於被識別的軟體產品而言是唯一的標記文本的信息和屏幕。
圖10展示了根據本發明的、將具有多個版本的軟體產品分發給顧客的實施例的邏輯操作1000。參考圖10,每個版本將指的是個別的、獨特的、但相關的軟體產品。在所示的實施例中,該分發始於創建操作1002——其中,創建、製造或提供存儲介質的多個相同的或實質上相同的副本。通過實質上是相同的,可認識到每個存儲介質可能包括一些特殊的識別信息(例如,序列號或其他介質特定信息)。但是,至少關於被存儲於其上的這些軟體產品,該存儲介質包含相同的副本。
關聯操作1004(可能作為創建操作1002的一部分)將該存儲介質上的每個軟體產品與所有這些軟體產品所要求的計算機代碼的共同部分聯繫起來,並與那個軟體產品所要求的代碼的第二部分聯繫起來。例如,關於軟體產品的特殊的EULA將被包括在與那個軟體產品關聯的計算機代碼的該第二部分中。
關聯操作1004可能包括(例如)在該SKU文件中創建查找表格或表格集。這些表格可能被存儲在該存儲介質上,或者被提供給用戶,作為權利操作1008(以下加以討論)的一部分,權利操作1008允許用戶從該存儲介質中安裝軟體產品。
如所示,可能包括包裝操作1006。包裝操作1006可以將該存儲介質包裝到包裝中,供運輸和出售給顧客。此外,包裝操作1006可能包括將部分的該存儲介質包裝到不同的包裝中,每個包裝識別實際上被存儲在該介質上的這些軟體產品的某個子集。例如,即使該存儲介質上可能包括軟體應用程式的多個版本,也只可以識別一個版本(例如,專業版本或家庭版本)。
為了讓顧客安裝根據本發明來分發的軟體,必須為他們提供權利信息(例如,識別並授權顧客使用該存儲介質上所包含的特殊版本的產品關鍵字),該權利信息允許他們存取並安裝軟體產品。示出提供權利信息操作1008。提供權利信息操作1008為顧客提供產品關鍵字或其他信息,該產品關鍵字或其他信息對於從該存儲介質中安裝軟體產品而言是必要的。以上已討論提供該信息的許多不同的方法,並且,將立即向精通該技術領域的人提出更多的方法。例如,可以為該權利信息提供該包裝。在該包裝只識別單一軟體產品的情況中,所提供的權利信息將識別並授權顧客只安裝該包裝上所識別的那個軟體產品。在這種情況下,該權利信息可以被認為是該存儲介質的包裝的一部分。也可預期其他方法,例如,提供該權利信息,作為接收或在線購買過程的一部分。在後一種情況下,具有被分發的存儲介質的顧客僅僅通過購買或獲得對所需軟體產品的有效產品關鍵字,可以將這些軟體產品中的任何軟體產品安裝在該存儲介質上。
除權利信息以外,提供安裝者操作1010還為顧客提供安裝者,該安裝者能夠驗證該權利信息、識別被授權的軟體產品和計算機代碼的其關聯的第二部分、並安裝該第一部分和被識別的第二部分。可以根據該實施例,用許多不同的方法來提供該安裝者。例如,可以通過將其包括在該存儲介質上,來提供該安裝者。所以,如果顧客具有該存儲介質,那麼,也將會自動提供該安裝者。該安裝者也可以被提供給顧客,作為提供權利信息操作1008的一部分。例如,具有被分發的存儲介質的顧客可以獲得安裝者、連同對該所需軟體產品的該有效產品關鍵字。由於安裝者是小程序,因此,這可能是在免費分發存儲介質時防止盜版的一種有效率的方法。這些安裝者可以只對一次使用或只在一臺計算機上有效,從而防止可使用該存儲介質的人從購買的顧客那裡獲得安裝者。
提供安裝者操作1010也可能包括提供一個或多個查找表格,該查找表格通過其安裝和運行時間行為來識別每個軟體產品。查找表格的例子是參考圖5-8而加以討論的那些查找表格。這些查找表格可能作為關聯操作1004的一部分來生成,並可能在創建操作1002中被存儲在該存儲介質上。該查找表格可能包括識別每個軟體產品的安裝和運行時間行為的信息,可能識別關於每個產品的EULA,或者可能識別關於每個軟體產品的特殊的用戶界面。部分或全部的這些查找表格可以被認為是必須加以拷貝或安裝的計算機代碼的共同的第一部分的一部分,或者,如果在安裝期間不需要將來自這些表格的數據拷貝到計算機,則這些查找表格可能被認為是該安裝者的一部分。最後,這些表格的某個部分對於所有軟體產品而言可能是通用的,而其他部分則針對該存儲介質上所包含的軟體產品的某個子集。
在創建操作1002中所創建的該存儲介質在分發操作1012中被分發給顧客。該分發可以用任何數量的方法來實現。可以在穀類食品盒中(in cerealboxes)或作為條紋杯墊(coasters in bars)(作為促銷項目)來提供該存儲介質。它們可以被分發給零售市場,以便按傳統的方式來出售給最終用戶。可以通過讓顧客能夠經由網絡連接而使用該存儲介質,來對它們進行分發。它們可以作為具有從計算機供應商那裡購買的計算機的原始設備來加以分發。它們可以通過郵件來加以免費分發。在分發操作1012的部分的以上所列出的實施例中(例如,通過在該存儲介質或計算機的零售市場購買),也可以為顧客提供權利信息和安裝者。如果(例如)作為推銷的一部分來加以免費分發,則顧客可能必須分別獲得該權利信息和該安裝者之一或這兩者。
本發明的實施例對於顧客和軟體開發者而言都是有利的。首先,可以防止「該存儲介質不包括包裝上所描述的那個版本」的這種情況。只要該存儲介質支持正確的軟體產品,就可提供所有版本。此外,在先前的版本特定分發方法中,如果被分發給顧客的該存儲介質發生故障,則顧客無法重新安裝那個版本,即使他有權那麼做,也是如此。在以上所示的各個實施例中,只要該安裝者能夠確定顧客被授權使用哪個版本,顧客就可以從關於那個軟體產品的任何存儲介質中安裝或重新安裝所購買的版本。
雖然已用針對計算機結構特點、方法論動作和通過計算機可讀介質的語言來描述了本發明,但是,將會理解所附權利要求書中所定義的本發明不一定局限於所描述的這些特殊的結構、動作或介質。舉例來講,關於該產品及其版本的該計算機代碼可以被包括在計算機可經由網絡(例如,網際網路)來存取的存儲介質中,而不是在被分發的介質上。所以,這些特殊的結構特點、動作和介質被揭示為執行所聲明的發明的示範實施例。
以上所描述的各個實施例只通過舉例說明的方法來加以提供,它們不應該被解釋為限制本發明。精通該技術領域的人將會容易地認識到無須遵循這裡所展示和描述的這些範例實施例和應用,並且在不脫離本發明的真實的精神和範圍(在以下的權利要求書中加以陳述)的前提下,可以對本發明進行各種修改和改變。
權利要求
1.一種用於將第一軟體產品安裝在計算設備上的方法,其特徵在於包括從用戶那裡接收命令,以便將軟體安裝在該計算設備上;存取具有計算機代碼的存儲介質,該計算機代碼對於將多個軟體產品安裝在包括該第一軟體產品的計算機上而言是必要的,該計算機代碼包括在安裝於該計算機上之後的這多個軟體產品中的每個軟體產品的操作期間使用的第一部分、以及多個不同的第二部分,每個第二部分與這多個軟體產品中的一個不同的軟體產品相關聯,並只在這多個軟體產品中的一個其關聯的不同的軟體產品的操作期間被加以使用;確定用戶被授權安裝該第一軟體產品;以及,至少將計算機代碼的該第一部分和計算機代碼的僅僅一個第二部分安裝在該計算設備上,該第二部分是與該第一軟體產品關聯的計算機代碼的該第二部分。
2.如權利要求1的方法,其特徵在於,這多個軟體產品中的每個軟體產品是軟體應用程式的獨特版本,每個版本具有獨特的運行時間行為或獨特的安裝或這兩者。
3.如權利要求1的方法,其特徵在於,接收包括接收命令,以執行被存儲在該存儲介質上的安裝者;以及,執行該安裝者。
4.如權利要求1的方法,其特徵在於,接收包括接收命令,以執行以前被存儲在該計算設備上的安裝者;以及,執行該安裝者。
5.如權利要求1的方法,其特徵在於,接收包括經由網絡連接而在遠程伺服器處接收命令,以執行該遠程伺服器上的安裝者,從而將軟體安裝在該計算設備上;以及,執行該安裝者。
6.如權利要求1的方法,其特徵在於,確定進一步包括從用戶那裡請求權利信息,該權利信息表現出是否授權該用戶安裝軟體產品;接收該權利信息;以及,證實該權利信息。
7.如權利要求1的方法,其特徵在於進一步包括提供該存儲介質上的文件中的至少一個查找表格,該查找表格將每個軟體產品與該軟體產品的包裝中所包含的信息聯繫起來。
8.如權利要求1的方法,其特徵在於,安裝進一步包括只將對於從該存儲介質中安裝該第一軟體產品而言是必要的那個計算機代碼拷貝到該計算機。
9.如權利要求1的方法,其特徵在於,安裝進一步包括將數據寫入該計算設備上所保持的登記處,該數據針對該第一軟體產品。
10.一種用於將軟體應用程式的第一個版本安裝在計算機上的方法,其特徵在於包括從用戶那裡接收命令,以便將軟體安裝在該計算機上;存取具有計算機代碼的至少一個數據存儲盤,該計算機代碼對於將該軟體應用程式的多個版本安裝在包括該第一版本的該計算機上而言是必要的,該計算機代碼包括在安裝於該計算機上之後的這多個版本中的每個版本的操作期間使用的主要部分、以及多個不同的版本特定部分,每個版本特定部分與該軟體應用程式的不同的版本相關聯,並只在其關聯的不同的版本的操作期間被加以使用;請求產品關鍵字;接收該產品關鍵字,該產品關鍵字識別這第一個版本;以及,安裝計算機代碼的該主要部分以及與這第一個版本關聯的計算機代碼的僅僅該版本特定部分。
11.如權利要求10的方法,其特徵在於,這至少一個數據存儲盤包括多個數據存儲盤;並且,其中,存取進一步包括存取這多個數據存儲盤中的至少兩個數據存儲盤。
12.如權利要求10的方法,其特徵在於,每個版本與其他版本截然不同,每個版本具有獨特的運行時間行為、獨特的安裝行為或這兩者。
13.如權利要求10的方法,其特徵在於,接收包括接收命令,以執行被存儲在這至少一個數據存儲盤上的安裝者;以及,執行該安裝者。
14.如權利要求10的方法,其特徵在於,安裝包括在輸入該產品關鍵字之後;譯解該產品關鍵字;以及,從識別這第一個版本的該被譯解的產品關鍵字中提取信息。
15.如權利要求10的方法,其特徵在於進一步包括提供這至少一個數據存儲盤上的文件中的至少一個查找表格,該查找表格利用這至少一個數據存儲盤上的這多個版本之一來識別每個產品關鍵字。
16.如權利要求10的方法,其特徵在於,安裝包括證實該產品關鍵字中所包含的數字籤名;以及,只有當可以證實該數字籤名時,才安裝這第一個版本。
17.如權利要求10的方法,其特徵在於,安裝包括只將對於從這至少一個存儲介質中安裝這第一個版本而言是必要的該計算機代碼拷貝到該計算機。
18.如權利要求10的方法,其特徵在於,安裝包括將數據寫入該計算機上所保持的登記處,該數據針對這第一個版本。
19.一種為顧客分發多個軟體產品的方法,其特徵在於包括在多個存儲介質上存儲計算機代碼的相同的副本,每個副本包括安裝和執行包括該第一軟體產品的這多個軟體產品中的任何軟體產品所要求的計算機代碼,並且,其中,該計算機代碼的共同部分對於在安裝之後執行所有這多個軟體產品而言是必要的;讓顧客能夠使用安裝者,一接收到權利信息,該安裝者就將安裝該計算機代碼的該共同部分以及只與該權利信息所識別的該軟體應用程式的那個版本相關聯的計算機代碼的第二部分;以及,為每位顧客分發這多個存儲介質中的至少一個存儲介質。
20.如權利要求19的方法,其特徵在於,提供包括通過將安裝者存儲在這多個存儲介質中的每個存儲介質上,來讓顧客能夠使用該安裝者。
21.如權利要求19的方法,其特徵在於,每個軟體產品具有獨特的運行時間行為和獨特的安裝特徵。
22.如權利要求19的方法,其特徵在於進一步包括為第一位顧客提供與第一軟體產品關聯的權利信息。
23.如權利要求19的方法,其特徵在於進一步包括將至少部分的該存儲介質包裝在具有記號的包裝材料中,這些記號指出該包裝材料中的該存儲介質只包含第一軟體產品;以及,為不同的第一產品關鍵字提供這至少部分的存儲介質中的每個存儲介質的該包裝材料,每個第一產品關鍵字與該包裝上所指出的該第一軟體產品關聯。
24.如權利要求19的方法,其特徵在於,提供包括經由網絡連接來提供對該安裝者的使用,該安裝者被存儲在遠程伺服器上。
25.如權利要求21的方法,其特徵在於,提供包括提供查找表格,該查找表格將每個軟體產品識別為安裝和運行時間行為的獨特集合,並利用權利信息來識別每個軟體產品。
26.如權利要求25的方法,其特徵在於,該查找表格識別將由每個軟體產品在運行時間期間顯示的獨特的用戶界面。
27.如權利要求25的方法,其特徵在於,該查找表格識別獨特的最終用戶許可證協議,這些最終用戶許可證協議包括每個軟體產品的該最終用戶的各項權利。
28.如權利要求25的方法,其特徵在於,該查找表格識別將在每個軟體產品的安裝期間被遵循的獨特的安裝程序。
29.如權利要求19的方法,其特徵在於,這多個存儲介質是顧客的計算設備的一部分,並且,分發包括通過網絡,將對於安裝這多個軟體產品中的任何軟體產品而言是必要的計算機代碼的相同的副本傳送給每位顧客,供存儲在這些顧客的存儲介質上。
30.一種為顧客分發軟體應用程式的多個版本的方法,其特徵在於包括將至少一個獨特的產品關鍵字與該軟體應用程式的每個版本聯繫起來;創建多個存儲介質,每個存儲介質包括計算機代碼的相同的副本,每個副本包括安裝包括這第一個版本的、該軟體應用程式的這多個版本中的任何版本所要求的計算機代碼,並且,其中,該計算機代碼的共同部分對於安裝所有這多個版本而言是必要的;提供安裝者,一接收到該產品關鍵字,該安裝者就將安裝該計算機代碼的該共同部分以及只與有關該產品關鍵字的該軟體應用程式的那個版本相關聯的計算機代碼的第二部分;以及,為每位顧客分發這多個存儲介質中的至少一個存儲介質。
31.如權利要求30的方法,其特徵在於,該存儲介質包括一個或多個存儲盤的多個集合。
32.如權利要求30的方法,其特徵在於進一步包括為每位顧客提供不同的產品關鍵字。
33.如權利要求30的方法,其特徵在於,該軟體應用程式的每個版本具有獨特的運行時間行為和獨特的安裝特徵。
34.如權利要求30的方法,其特徵在於,進一步包括為第一位顧客提供與該軟體應用程式的第一個版本關聯的產品關鍵字。
35.如權利要求32的方法,其特徵在於,進一步包括將該存儲介質包裝在具有記號的包裝材料中,這些記號指出該包裝材料中的該存儲介質只包含該軟體應用程式的第一個版本;以及,為不同的第一產品關鍵字提供每個存儲介質的該包裝材料,每個第一產品關鍵字與該包裝上所指出的這第一個版本關聯。
36.如權利要求30的方法,其特徵在於,該提供操作進一步包括將該安裝者存儲在具有該計算機代碼的該存儲介質上。
37.如權利要求33的方法,其特徵在於,該提供操作進一步包括提供查找表格,該查找表格將每個版本識別為該軟體應用程式的安裝和運行時間行為的獨特集合,並利用其關聯的產品關鍵字來識別每個版本。
38.如權利要求37的方法,其特徵在於,該查找表格識別將由該軟體應用程式的每個版本在運行時間期間顯示的獨特的文本。
39.如權利要求37的方法,其特徵在於,該查找表格識別獨特的最終用戶許可證協議,這些最終用戶許可證協議規定該軟體應用程式的每個版本的該最終用戶的各項權利。
40.如權利要求37的方法,其特徵在於,該查找表格識別將在該軟體應用程式的每個版本的安裝期間被遵循的獨特的安裝程序。
41.如權利要求30的方法,其特徵在於,這多個存儲介質已是顧客的計算設備的一部分,並且,該分發包括通過網絡,將對於安裝包括這第一個版本的、該軟體應用程式的這多個版本中的任何版本而言是必要的計算機代碼的相同的副本傳送給每位顧客,供存儲在這些顧客的存儲介質上。
42.一種計算機可讀介質,其特徵在於,包括對於安裝軟體應用程式的多個版本中的任何版本而言是必要的計算機代碼,該軟體應用程式包括對於安裝該軟體應用程式的所有這多個版本而言是必要的計算機代碼的至少第一部分以及多個第二部分,每個第二部分對於安裝該軟體應用程式的這多個版本中的一個獨特的版本而言是必要的;以及,安裝者,當被計算機執行時,它請求產品關鍵字,並根據響應於該請求而給予的該產品關鍵字,來安裝該軟體應用程式的這些版本之一。
43.如權利要求42的計算機可讀介質,其特徵在於,進一步包括包含至少一個查找表格的文件,該查找表格將每個版本與一個或多個產品關鍵字聯繫起來。
44.如權利要求43的計算機可讀介質,其特徵在於,這至少一個查找表格將該軟體應用程式的每個版本識別為該軟體應用程式的行為的獨特集合。
45.如權利要求44的計算機可讀介質,其特徵在於,這至少一個查找表格包括SKU表格,它將每個產品關鍵字與標記表格中的商標和映射表格中的映射聯繫起來;該映射表格,它將每個映射與最終用戶許可證協議(EULA)標識符聯繫起來;該標記表格,它將每個商標與將在該軟體產品的安裝或運行時間期間使用的獨特的文本聯繫起來;以及,EULA表格,它將每個EULA標識符與EULA聯繫起來。
46.如權利要求42的計算機可讀介質,其特徵在於它被包裝有產品關鍵字,該產品關鍵字與該軟體應用程式的這多個版本之一關聯。
47.如權利要求42的計算機可讀介質,其特徵在於它被包裝在一種包裝內,該包裝指出只有該軟體應用程式的第一個版本被包含在該計算機可讀介質上。
48.如權利要求47的計算機可讀介質,其特徵在於,該包裝包括針對該軟體應用程式的這第一個版本的產品關鍵字。
49.一種計算機系統可讀的並為指令的電腦程式編碼的電腦程式產品,這些指令用於執行將軟體應用程式的第一個版本安裝在計算機上的計算機過程,其特徵在於,所述計算機過程包括從用戶那裡請求命令,以便將軟體安裝在該計算機上;存取具有計算機代碼的至少一個數據存儲盤,該計算機代碼對於將該軟體應用程式的多個版本安裝在包括這第一個版本的該計算機上而言是必要的,該計算機代碼包括在安裝於該計算機上之後的這多個版本中的每個版本的操作期間使用的主要部分、以及多個不同的版本特定部分,每個版本特定部分與該軟體應用程式的不同的版本關聯,並只在其關聯的不同的版本的操作期間被加以使用;請求產品關鍵字;接收該產品關鍵字,該產品關鍵字識別這第一個版本;以及,安裝計算機代碼的該主要部分以及與這第一個版本關聯的計算機代碼的僅僅該版本特定部分。
50.如權利要求49的電腦程式產品,其特徵在於,這至少一個數據存儲盤包括多個數據存儲盤,並且,其中,存取進一步包括存取這多個數據存儲盤中的至少兩個數據存儲盤。
51.如權利要求49的電腦程式產品,其特徵在於,每個版本與其他版本截然不同,每個版本具有獨特的運行時間行為、獨特的安裝行為或這兩者。
52.如權利要求49的電腦程式產品,其特徵在於,接收包括接收命令,以執行被存儲在這至少一個數據存儲盤上的安裝者;以及,執行該安裝者。
53.如權利要求49的電腦程式產品,其特徵在於,安裝包括在輸入該產品關鍵字之後;譯解該產品關鍵字;以及,從識別這第一個版本的該被譯解的產品關鍵字中提取信息。
54.如權利要求49的電腦程式產品,其特徵在於所述計算機過程進一步包括提供這至少一個數據存儲盤上的文件中的至少一個查找表格,該查找表格利用這至少一個數據存儲盤上的這多個版本之一來識別每個產品關鍵字。
55.如權利要求49的電腦程式產品,其特徵在於,安裝包括證實該產品關鍵字中所包含的數字籤名;以及,只有當可以證實該數字籤名時,才安裝這第一個版本。
56.如權利要求49的電腦程式產品,其特徵在於,安裝包括只將對於從這至少一個存儲介質中安裝這第一個版本而言是必要的該計算機代碼拷貝到該計算機。
57.如權利要求49的電腦程式產品,其特徵在於,安裝包括將數據寫入該計算機上所保持的登記處,該數據針對這第一個版本。
58.一種用於將軟體應用程式的第一個版本安裝在計算機上的方法,其特徵在於包括從用戶那裡接收命令,以便將軟體安裝在該計算機上;存取具有計算機代碼的至少一個數據存儲盤,該計算機代碼對於將該軟體應用程式的多個版本安裝在包括這第一個版本的該計算機上而言是必要的,該計算機代碼包括在安裝於該計算機上之後的這多個版本中的每個版本的操作期間使用的主要部分、以及包含關於這多個版本的被編碼的許可證和行為信息的SKU文件;請求產品關鍵字;接收該產品關鍵字,該產品關鍵字識別第一個版本;以及,安裝計算機代碼的該主要部分和該SKU文件。
59.如權利要求58的方法,其特徵在於,安裝包括根據該SKU文件中的該行為信息,來啟用關於該軟體產品的這第一個版本的行為。
60.如權利要求58的方法,其特徵在於,安裝包括對關於來自該SKU文件的該軟體產品的這第一個版本的第一許可證進行解碼,以創建被解碼的許可證;將關於該軟體產品的這第一個版本的被解碼的許可證拷貝到該計算機上的許可證存儲器。
61.如權利要求59的方法,其特徵在於,啟用包括根據該SKU文件中的該行為信息,來啟用關於該軟體產品的這第一個版本的安裝行為。
62.如權利要求59的方法,其特徵在於,啟用包括啟用將要在運行時間期間被顯示的關於這第一個版本的標記文本,該標記文本被存儲在該SKU文件中。
63.如權利要求58的方法,其特徵在於,這至少一個數據存儲盤包括多個數據存儲盤;並且,其中,存取進一步包括存取這多個數據存儲盤中的至少兩個數據存儲盤。
64.如權利要求58的方法,其特徵在於,每個版本與其他版本截然不同,每個版本具有獨特的運行時間行為或獨特的安裝行為或這兩者。
65.如權利要求58的方法,其特徵在於,接收包括接收命令,以執行被存儲在這至少一個數據存儲盤上的安裝者;以及,執行該安裝者。
66.如權利要求58的方法,其特徵在於,安裝包括在輸入該產品關鍵字之後;譯解該產品關鍵字;以及,從識別這第一個版本的該被譯解的產品關鍵字中提取信息。
67.如權利要求58的方法,其特徵在於進一步包括提供這至少一個數據存儲盤上的該SKU文件中的至少一個查找表格,該查找表格利用這至少一個數據存儲盤上的這多個版本之一來識別每個產品關鍵字。
68.如權利要求58的方法,其特徵在於,安裝包括證實該產品關鍵字中所包含的數字籤名;以及,只有當可以證實該數字籤名時,才安裝這第一個版本。
69.如權利要求58的方法,其特徵在於,安裝包括只將來自該SKU文件的該計算機代碼拷貝到該計算機,該計算機代碼對於從這至少一個存儲介質中安裝這第一個版本而言是必要的。
70.如權利要求58的方法,其特徵在於,安裝包括將來自該SKU文件的數據寫入該計算機上所保持的登記處,該數據針對這第一個版本。
全文摘要
各種方法和計算機可讀介質被揭示為與安裝和分發多個軟體產品有關。安裝多個相關、但獨特的軟體產品所必要的計算機代碼被存儲在該存儲介質上,它包括對於可從存儲介質或介質集中加以安裝的所有軟體產品而言是必要的至少某個原代碼。特殊的軟體產品的安裝包括安裝該原代碼和至少某個產品特定代碼。由安裝者來執行安裝,該安裝者根據用戶提供的信息(例如,產品關鍵字)來識別並安裝這個合適的軟體產品。該安裝者可以使用查找表格來識別該代碼,以進行安裝,並驗證該用戶被授權使用該軟體產品。
文檔編號G06F9/44GK1811706SQ200410082648
公開日2006年8月2日 申請日期2004年9月22日 優先權日2003年9月22日
發明者J·F·德爾加多, S·V·普魯肖特哈曼, A·Y·尼沙諾瓦, S·豪利, D·D·紐耶恩, 程文, J·A·貝內特, A·T·休斯 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀