CN1811706A - 用于分发和安装软件的方法和系统 - Google Patents

用于分发和安装软件的方法和系统 Download PDF

Info

Publication number
CN1811706A
CN1811706A CNA2004100826484A CN200410082648A CN1811706A CN 1811706 A CN1811706 A CN 1811706A CN A2004100826484 A CNA2004100826484 A CN A2004100826484A CN 200410082648 A CN200410082648 A CN 200410082648A CN 1811706 A CN1811706 A CN 1811706A
Authority
CN
China
Prior art keywords
version
software
product
key word
computer code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2004100826484A
Other languages
English (en)
Inventor
J·F·德尔加多
S·V·普鲁肖特哈曼
A·Y·尼沙诺瓦
S·豪利
D·D·纽耶恩
程文
J·A·贝内特
A·T·休斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1811706A publication Critical patent/CN1811706A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

各种方法和计算机可读介质被揭示为与安装和分发多个软件产品有关。安装多个相关、但独特的软件产品所必要的计算机代码被存储在该存储介质上,它包括对于可从存储介质或介质集中加以安装的所有软件产品而言是必要的至少某个原代码。特殊的软件产品的安装包括:安装该原代码和至少某个产品特定代码。由安装者来执行安装,该安装者根据用户提供的信息(例如,产品关键字)来识别并安装这个合适的软件产品。该安装者可以使用查找表格来识别该代码,以进行安装,并验证:该用户被授权使用该软件产品。

Description

用于分发和安装软件的方法和系统
技术领域
本发明涉及软件在计算机上的分发、安装和操作,尤其涉及一种用于在不同的计算机上分发和安装软件产品的方法和系统。
背景技术
计算机软件开发者通常销售同一软件产品的多个版本。如一些不同的行为所证明,每个版本可被识别为不同于其他版本,即使这些版本的大多数可执行计算机代码相同,也是如此。不同的行为的例子包括不同的特点、诸如语言组等不同的可用资源、在运行时间期间向用户呈现诸如标记文本等不同的文本、不同的许可期限和不同的安装行为。
例如,软件开发者经常提供每个软件产品的原始设备制造(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的部分的以上所列出的实施例中(例如,通过在该存储介质或计算机的零售市场购买),也可以为顾客提供权利信息和安装者。如果(例如)作为推销的一部分来加以免费分发,则顾客可能必须分别获得该权利信息和该安装者之一或这两者。
本发明的实施例对于顾客和软件开发者而言都是有利的。首先,可以防止“该存储介质不包括包装上所描述的那个版本”的这种情况。只要该存储介质支持正确的软件产品,就可提供所有版本。此外,在先前的版本特定分发方法中,如果被分发给顾客的该存储介质发生故障,则顾客无法重新安装那个版本,即使他有权那么做,也是如此。在以上所示的各个实施例中,只要该安装者能够确定顾客被授权使用哪个版本,顾客就可以从关于那个软件产品的任何存储介质中安装或重新安装所购买的版本。
虽然已用针对计算机结构特点、方法论动作和通过计算机可读介质的语言来描述了本发明,但是,将会理解:所附权利要求书中所定义的本发明不一定局限于所描述的这些特殊的结构、动作或介质。举例来讲,关于该产品及其版本的该计算机代码可以被包括在计算机可经由网络(例如,因特网)来存取的存储介质中,而不是在被分发的介质上。所以,这些特殊的结构特点、动作和介质被揭示为执行所声明的发明的示范实施例。
以上所描述的各个实施例只通过举例说明的方法来加以提供,它们不应该被解释为限制本发明。精通该技术领域的人将会容易地认识到:无须遵循这里所展示和描述的这些范例实施例和应用,并且在不脱离本发明的真实的精神和范围(在以下的权利要求书中加以陈述)的前提下,可以对本发明进行各种修改和改变。

Claims (70)

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文件的数据写入该计算机上所保持的登记处,该数据针对这第一个版本。
CNA2004100826484A 2003-09-22 2004-09-22 用于分发和安装软件的方法和系统 Pending CN1811706A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/667,688 US20050066324A1 (en) 2003-09-22 2003-09-22 Method and system for distributing and installing software
US10/667,688 2003-09-22

Publications (1)

Publication Number Publication Date
CN1811706A true CN1811706A (zh) 2006-08-02

Family

ID=34313355

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004100826484A Pending CN1811706A (zh) 2003-09-22 2004-09-22 用于分发和安装软件的方法和系统

Country Status (10)

Country Link
US (1) US20050066324A1 (zh)
EP (1) EP1662384A3 (zh)
JP (1) JP2005100401A (zh)
KR (1) KR20050029705A (zh)
CN (1) CN1811706A (zh)
AU (1) AU2004208743A1 (zh)
BR (1) BRPI0404280A (zh)
CA (1) CA2482082A1 (zh)
MX (1) MXPA04009070A (zh)
RU (1) RU2004128233A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130967A (zh) * 2011-04-19 2011-07-20 彭扬 一种移动互联网数字内容分发系统
CN101996081B (zh) * 2009-08-20 2013-09-04 精品科技股份有限公司 在客户端电脑安装软件的方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100616217B1 (ko) * 2001-12-13 2006-08-25 가부시키가이샤 소니 컴퓨터 엔터테인먼트 프로그램 컨텐츠의 안전한 배포를 위한 방법 및 장비
KR100983179B1 (ko) * 2001-12-21 2010-09-20 소니 컴퓨터 엔터테인먼트 인코포레이티드 프로그램 컨텐츠의 안전한 분배를 위한 방법 및 장비
US7369808B2 (en) * 2002-02-07 2008-05-06 Sap Aktiengesellschaft Instructional architecture for collaborative e-learning
US20030154176A1 (en) * 2002-02-11 2003-08-14 Krebs Andreas S. E-learning authoring tool
US20030157470A1 (en) * 2002-02-11 2003-08-21 Michael Altenhofen E-learning station and interface
US20030152905A1 (en) * 2002-02-11 2003-08-14 Michael Altenhofen E-learning system
US20040044892A1 (en) * 2002-09-03 2004-03-04 Elmar Dorner Content based messaging for e-learning
US20040043363A1 (en) * 2002-09-03 2004-03-04 Elmar Dorner Tutor interface with content based messaging
JP3919721B2 (ja) * 2002-10-29 2007-05-30 キヤノン株式会社 情報処理方法及び情報処理装置
US20040126750A1 (en) * 2002-11-15 2004-07-01 Wolfgang Theilmann Versioning electronic learning objects
US20040255292A1 (en) * 2003-06-16 2004-12-16 Microsoft Corporation Delivering multiple installation images and computer-readable installation keys on installation media
US8224750B1 (en) * 2003-10-07 2012-07-17 Microsoft Corporation Method and system for upgrading licenses to installed software
US7287066B2 (en) * 2003-10-31 2007-10-23 Sap Aktiengesellschaft Publish-subscribe system having a reliability mechanism
US20050097343A1 (en) * 2003-10-31 2005-05-05 Michael Altenhofen Secure user-specific application versions
US20050216506A1 (en) * 2004-03-25 2005-09-29 Wolfgang Theilmann Versioning electronic learning objects using project objects
US7694280B2 (en) * 2004-03-29 2010-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for controlling program installation on a computing device
US20060008789A1 (en) * 2004-07-07 2006-01-12 Wolfgang Gerteis E-learning course extractor
US7500088B2 (en) * 2004-07-08 2009-03-03 Sony Computer Entertainment Inc. Methods and apparatus for updating of a branch history table
CN1906576B (zh) * 2004-09-20 2010-05-12 索尼计算机娱乐公司 分布软件应用的方法与设备
US8156488B2 (en) 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US20060109768A1 (en) * 2004-10-25 2006-05-25 Roberts Henry J Jr Electronic information table and method of creating same
US20060200419A1 (en) * 2005-02-24 2006-09-07 Cook Johanna M System and method for user role based product license generation
US20060190408A1 (en) * 2005-02-24 2006-08-24 Cook Johanna M System and method for customized bundled license generation
EP1924226A2 (en) * 2005-08-12 2008-05-28 Sugarcrm Inc. Customer relationship management system and method
KR100755697B1 (ko) * 2005-11-09 2007-09-05 삼성전자주식회사 소프트웨어 설치 방법, 장치, 및 시스템
US7921059B2 (en) * 2005-12-15 2011-04-05 Microsoft Corporation Licensing upsell
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
KR101185142B1 (ko) * 2006-01-11 2012-09-24 삼성전자주식회사 최종 사용자 라이센스 계약을 관리하는 장치 및 방법
US20070198427A1 (en) * 2006-02-22 2007-08-23 Microsoft Corporation Computer service licensing management
US20070198428A1 (en) * 2006-02-22 2007-08-23 Microsoft Corporation Purchasing of computer service access licenses
US7853945B2 (en) * 2006-02-22 2010-12-14 Michael Kramer Integrated computer server imaging
DE102006033863A1 (de) * 2006-07-21 2008-01-24 Siemens Ag Verschaltungsschnittstelle für flexibles Online/Offline-Deployment einer n-schichtigen Softwareapplikation
US8082442B2 (en) * 2006-08-10 2011-12-20 Microsoft Corporation Securely sharing applications installed by unprivileged users
US9639696B1 (en) * 2006-09-29 2017-05-02 Symantec Operating Corporation Method and apparatus for analyzing end user license agreements
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
KR20080052943A (ko) * 2006-12-08 2008-06-12 엘지전자 주식회사 이동통신단말기의 소프트웨어 업데이트방법
US20080163197A1 (en) * 2006-12-30 2008-07-03 Sap Ag Multi-product installation tool database architecture
US20080163199A1 (en) * 2006-12-30 2008-07-03 Rao Siddhartha Ashok Multi-product package creation and editing
US8365165B2 (en) * 2006-12-30 2013-01-29 Sap Ag Dynamic addition of products and removal of software products on a distribution server
US8001383B2 (en) * 2007-02-01 2011-08-16 Microsoft Corporation Secure serial number
JP5058697B2 (ja) * 2007-07-19 2012-10-24 キヤノン株式会社 情報処理装置、アプリケーション管理方法、及びコンピュータプログラム
RU2455687C2 (ru) * 2007-09-12 2012-07-10 Сони Корпорейшн Распространение информационных ресурсов по модели открытого рынка
US20090083732A1 (en) * 2007-09-26 2009-03-26 Microsoft Corporation Creation and deployment of distributed, extensible applications
US8589903B2 (en) * 2007-12-04 2013-11-19 Oracle International Corporation Patch attachment facility
KR100936239B1 (ko) * 2007-12-18 2010-01-12 한국전자통신연구원 스트리밍 기반 이동형 소프트웨어 제공 시스템 및 방법
US9477462B2 (en) * 2008-01-16 2016-10-25 Oracle International Corporation System and method for software product versioning packaging, distribution, and patching
US8607226B2 (en) * 2008-01-22 2013-12-10 International Business Machines Corporation Solution for locally staged electronic software distribution using secure removable media
JP5121542B2 (ja) * 2008-04-09 2013-01-16 キヤノン株式会社 アプリケーションパッケジング装置、その制御方法、プログラム
US8539478B2 (en) * 2008-06-20 2013-09-17 International Business Machines Corporation Dynamic web installer
US9354853B2 (en) * 2008-07-02 2016-05-31 Hewlett-Packard Development Company, L.P. Performing administrative tasks associated with a network-attached storage system at a client
US8584117B2 (en) * 2008-12-10 2013-11-12 Bmc Software, Inc. Method to make SMP/E based products self describing
US8464246B2 (en) * 2008-12-24 2013-06-11 Bmc Software, Inc. Automation of mainframe software deployment
JP4930562B2 (ja) * 2009-09-16 2012-05-16 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置の機能シミュレート用プログラム及び情報処理装置並びに記録媒体
US9122558B2 (en) * 2009-11-09 2015-09-01 Bank Of America Corporation Software updates using delta patching
US9176898B2 (en) * 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US8972974B2 (en) * 2009-11-09 2015-03-03 Bank Of America Corporation Multiple invocation points in software build task sequence
US8671402B2 (en) * 2009-11-09 2014-03-11 Bank Of America Corporation Network-enhanced control of software updates received via removable computer-readable medium
US20110113226A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US8584113B2 (en) * 2009-11-09 2013-11-12 Bank Of America Corporation Cross-updating of software between self-service financial transaction machines
US9128799B2 (en) * 2009-11-09 2015-09-08 Bank Of America Corporation Programmatic creation of task sequences from manifests
US20110238572A1 (en) * 2010-03-25 2011-09-29 Bank Of America Corporation Remote Control Of Self-Service Terminal
US8495614B2 (en) * 2010-05-28 2013-07-23 Red Hat, Inc. Mechanism for dynamically generating spec files for software package managers
KR101028691B1 (ko) * 2011-01-05 2011-04-14 (주)유케이디 정품 소프트웨어 관리시스템의 운영방법
US20120254857A1 (en) * 2011-03-31 2012-10-04 Infosys Technologies Limited System and method for installing an application on client machine
JP2013020354A (ja) * 2011-07-08 2013-01-31 Ricoh Co Ltd ログ集計プログラム、ログ集計装置およびインストーラ・パッケージャ・プログラム
JP6053450B2 (ja) * 2012-10-26 2016-12-27 株式会社Pfu 情報処理装置、方法およびプログラム
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
US9348849B1 (en) * 2013-12-23 2016-05-24 Emc Corporation Backup client zero-management
US9817646B1 (en) 2014-03-17 2017-11-14 Google Llc Multiplatform and multichannel distribution of web applications across devices
US9740473B2 (en) 2015-08-26 2017-08-22 Bank Of America Corporation Software and associated hardware regression and compatibility testing system
US10614427B2 (en) * 2016-10-21 2020-04-07 Johnson Controls Technology Company Systems and methods for monetizing building management system software deployment
CN111382362B (zh) * 2020-03-13 2023-10-03 百度在线网络技术(北京)有限公司 小程序处理方法、装置、设备及存储介质
KR102546434B1 (ko) 2020-03-13 2023-06-22 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 미니 프로그램 처리 방법, 장치, 기기 및 저장매체
US11861363B2 (en) * 2021-10-22 2024-01-02 Sap Se Development landscape build system
CN115659340B (zh) * 2022-12-09 2023-03-14 支付宝(杭州)信息技术有限公司 一种仿冒小程序识别方法、装置、存储介质及电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0799497B2 (ja) * 1990-12-14 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション ソフトウェアの使用を管理するための装置及び方法
US5553139A (en) * 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
JPH10143357A (ja) * 1996-11-11 1998-05-29 Hitachi Ltd ソフトウェア管理装置
JPH10177473A (ja) * 1996-12-18 1998-06-30 Japan Airlines Co Ltd コンピュータ・プログラムのインストール方法及びシステム
JPH10260820A (ja) * 1997-03-19 1998-09-29 Toshiba Corp ソフトウェアツールのインストーラ、インストール方法及びインストール媒体
US6351850B1 (en) * 1997-11-14 2002-02-26 Frank Van Gilluwe Computer operating system installation
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6378128B1 (en) * 1998-10-08 2002-04-23 Microsoft Corporation System and method for dynamically modifying an install-set
US6529992B1 (en) * 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
US6668375B1 (en) * 1999-12-15 2003-12-23 Pitney Bowes Inc. Method and system for providing build-to-order software applications
US6912711B1 (en) * 2000-05-25 2005-06-28 International Business Machines Corporation Method of applying an update to a contained collection of program and data files based upon versions
JP2002229797A (ja) * 2001-01-29 2002-08-16 Nec Eng Ltd インストーラ
US20030028870A1 (en) * 2001-08-01 2003-02-06 Weisman Mitchell T. Distribution of downloadable software over a network
US20030037325A1 (en) * 2001-08-17 2003-02-20 Hargrove David C. System and methods for automatically installing a correct software version from media containing multiple software versions
JP2003202971A (ja) * 2002-01-09 2003-07-18 Seiko Epson Corp プリンタドライバ及びインストール用ファイルセット
JP3932477B2 (ja) * 2002-01-29 2007-06-20 ソニー株式会社 情報処理システム、情報処理装置および方法、プログラム
US20040225664A1 (en) * 2002-09-04 2004-11-11 Casement Richard Allen Data abstraction layer and automated data staging system and method
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US20040243997A1 (en) * 2003-05-29 2004-12-02 Sun Microsystems, Inc. Method, system, and program for installing program components on a computer
US7472286B2 (en) * 2003-08-29 2008-12-30 Microsoft Corporation Selectively authorizing software functionality after installation of the software
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996081B (zh) * 2009-08-20 2013-09-04 精品科技股份有限公司 在客户端电脑安装软件的方法
CN102130967A (zh) * 2011-04-19 2011-07-20 彭扬 一种移动互联网数字内容分发系统

Also Published As

Publication number Publication date
EP1662384A2 (en) 2006-05-31
MXPA04009070A (es) 2007-11-15
JP2005100401A (ja) 2005-04-14
RU2004128233A (ru) 2006-03-10
KR20050029705A (ko) 2005-03-28
BRPI0404280A (pt) 2005-05-24
CA2482082A1 (en) 2005-03-22
US20050066324A1 (en) 2005-03-24
EP1662384A3 (en) 2007-10-24
AU2004208743A1 (en) 2005-04-07

Similar Documents

Publication Publication Date Title
CN1811706A (zh) 用于分发和安装软件的方法和系统
US8352935B2 (en) System for creating a customized software distribution based on user requirements
US8683579B2 (en) Software activation using digital licenses
US6681212B1 (en) Internet-based automated system and a method for software copyright protection and sales
US7143409B2 (en) Automated entitlement verification for delivery of licensed software
US7913248B1 (en) System and method for installing one or more programs, and at least a portion of their environment
US7024696B1 (en) Method and system for prevention of piracy of a given software application via a communications network
CN102938039B (zh) 针对应用的选择性文件访问
CN100430860C (zh) 将软件包绑定到有硬件改变的计算机系统的简明硬件标识
CN101156166B (zh) 使用机器属性来制止企业环境中的软件盗版的系统和方法
US20050021992A1 (en) Client terminal, software control method and control program
CN1961307A (zh) 用于渐进式安装软件应用程序的系统和方法以及api
CN1809796A (zh) 浏览、搜索和呈现媒体项的图形用户界面
CN1582447A (zh) 通过网络启动退货的系统和方法
CN1399194A (zh) 创建和使用具有选定功能的操作系统的方法和系统
CN103229187A (zh) Java存储电视机
CN1696911B (zh) 用于打补丁的方法和计算系统
CN101414263A (zh) 存储介质、软件安装方法及防盗版模块
JPH10214297A (ja) インターネットを利用した会員制サービスシステムおよび方法
US7613932B2 (en) Method and system for controlling access to software features in an electronic device
US20090018962A1 (en) Method for activating application module
US7657607B2 (en) System and method for passive server-to-client data delivery
JP4504246B2 (ja) デジタルデータの取引方法及びそのシステム
US20090113453A1 (en) System and Method for Consolidated Information Handling System Component Drivers
MXPA06001113A (es) Arquitectura de licencia flexible para la obtencion de una licencia de aplicacion digital

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned