用于实施定制计算机系统的软件安装和测试的数据库的利记博彩app

文档序号:6414435阅读:176来源:国知局
专利名称:用于实施定制计算机系统的软件安装和测试的数据库的利记博彩app
本申请与下述申请有关,其整体在这里引用作为参考待审批美国专利申请,流水号,代理人登记号M-5022US,与本申请同日递交,标题为“Software Installation And Testing For ABuild-To-Order Computer System(定制计算机系统的软件安装和测试)”,发明人Richard D.Amberg、Roger W.Wong和Michael A.Brundridge。
本申请与下述申请有关,其整体在这里引用作为参考待审批美国专利申请,流水号,代理人登记号M-5217US,与本申请同日递交,标题为“Software Installation And Testing For A Build-To-Order Comprter System(定制计算机系统的软件安装和测试)”,发明人Richard D.Amberg、Roger W.Wong和Michael A.Brundridge。
本发明涉及计算机系统诊断,较具体地,涉及一种为计算机系统的软件安装和/或测试安排步骤序列的方法。
个人计算机,特别是IBM兼容个人计算机,因能为社会各界提供计算能力而已得到了广泛的应用。通常,个人计算机系统可以定义为桌面、地面或便携式微计算机,其中包括一个带有系统处理器及相应的非永久性和永久性存储器的系统单元,一个显示监视器,一个键盘;一个或几个软盘驱动器,一个固定磁(光)盘存储装置,以及任选地,一个打印机。
已经知道,在计算机系统发运给商务客户或个人客户之前,要在其上安装软件并进行测试。软件安装和测试的目的是有效地生产出有用、可靠的计算机系统,当它们被送交给商务客户或个人时将不会出错而且立即可以运行。通常,测试是要探测出计算机系统硬件部分和软件部分中出现的错误并对之进行分析。计算机系统硬件测试的一个不完全的清单可以包括对例如处理器、存储器、磁(光)盘存储装置、声响装置、绘图装置、键盘、鼠标器和打印机等硬件部件的诊断。软件安装通常包括把所希望的软件包安装到计算机系统上,为计算机准备适当的环境变量,以及对所安装软件准备适当的初始化文件。软件测试通常包括确认已给计算机系统安装了软件的希望版本,并且计算机系统已具有适当的驱动器。
在工业界众所周知,在把计算机系统发送给客户之前,要通过执行固定的程序来在制造过程中安装软件和测试该系统。例如,要生成一个含有适合于某一种类的计算机系统的某些诊断测试的软盘。该软盘包含了指导软件安装和诊断处理的冗长且常常是复杂的一些批文件。该软盘还包含用于对被购计算机系统进行测试的全部执行文件。
每一个被制造的计算机系统都提供有一个相应的这种软盘的拷贝。在制造过程中,在厂房内这些软盘始终伴随着正在制造的计算机系统,根据上述批文件中的固有次序在各个计算机上进行测试。如果需要对处理过程作出修改,则需要通过向/从批文件代码添加/删除一些部分来对批文件进行相应的修改。由于各个计算机系统共用同样的批文件诊断程序,所以批文件的改变将造成每个后面的被制造计算机系统的测试参数(包括测试进行的步骤)也都将发生相应的改变。
虽然对提高发运前计算机系统的可靠性来说这样的诊断安排具有一定程度的有效性,但仍留有改进的余地。例如,随着测试不断地变得愈来愈复杂和彻底,诊断测试的批文件和执行文件常常会超出软盘的存储容量。而且,对于单个的定制计算机系统或者某一类计算机系统要做专门的测试和软件安装程序而不修改对其他系统或其他种类的测试往往是困难的或不可能的。还有,对于单个的定制计算机系统或某一类计算机系统修改软件安装或测试的次序而不修改对其他系统或种类的次序是困难的或不可能的。最后,目前批文件结构的常常是复杂的性质,使得制造者要快速和有效地进行找错或维护测试和软件安装程序变得困难。从而,希望要设计一种在计算机系统发运给客户之前对它们进行软件安装和测试的改进的方法。
一种用来把软件安装到计算机系统上的设备含有一个步骤表和一个部件表。步骤表包含一组可以共用于基本上所有被制造计算机系统的各个不同部件的软件安装步骤。部件表包含一组含有各被制造计算机系统中的基本上所有可能的部件。在一个优选实施例中,计算机系统对应于一个计算机系统种类,并且该设备还包含有一个种类关系表、一个种类部件关系表、和一个种类步骤关系表。种类关系表指明一组软件安装步骤和每个被制造计算机系统种类之间的关系。种类部件关系表指明计算机系统种类和部件组之间的关系。种类步骤关系表指明一个部件和一组适用于相应部件的软件安装步骤之间的关系。
在另一个优选实施例中,本发明涉及一种用来提供多个步骤的设备,其中一个步骤与一个相应的部件描述相关连,并含有一个相应的序列号。部件描述符说明计算机系统的一个相应部件。该设备含有一个步骤表和一个部件表。步骤表包含一组可以共用于基本上所有被制造计算机系统的各个不同部件的软件安装步骤。部件表包含一组含在各被制造计算机系统中的基本上所有可能的部件。
这样,所说明的方法提供了有效的软件安装和计算机测试,它使得能实现直接的找错和对定制计算机的特定化。该设计的模块式设计有利地使得能进行对测试系统的基本维护和为新计算机系统和种类快速地生成步骤序列。
通过审阅下面对优选实施例的详细说明,本发明的上述和其他目的、特征和优点将得到进一步说明和更容易的理解。


图1是示出软件安装和测试的概要图。
图2是根据另一实施例的软件安装和测试的概要图。
图3A是根据本发明的把计算机订单转换成系统描述符记录的流程图。
图3B示出示例性计算机订单、基本组件记录(BAR)文件、和系统描述符记录的一部分。
图4是生成和提供一个步骤序列的流程图。
图5是生成一个步骤序列的更详细的流程图。
图6示出一个数据库的结构。
图7是修改系统描述符记录和步骤序列的流程图。
图8示出执行前的步骤文件的例子。
图9示出执行后的步骤文件的例子。
图10是执行步骤序列的程序的操作流程图。
图11是执行步骤序列的图10程序的更详细的操作流程图。
下面将给出实施本发明的最佳设想模式的详细说明。该说明的目的是说明性的,不应看成是限制性的。在各附图中,相同或相似的单元和模块可能会用相同的代号表示。在说明中,一个模块的定义是一个命令或一组命令。
图1是软件安装和测试系统90的概要图。在操作中,订单92的目的是要购买定制的目标计算机系统160。目标系统160要制造得含有多个硬件和软件部件。例如,目标系统160可能要含有某一牌号的硬驱,特定型号的监视器,某一牌号的处理器,和特定版本的操作系统。在目标系统160被发运给客户之前,要安装和测试这多个部件。这样的软件安装和测试将有利地保证有一个到货后便能运行的可靠的和工作正常的计算机系统。
因为不同种类的计算机系统和不同的个人计算机部件需要不同的软件安装和测试步骤,所以有必要确定在目标系统160上需要进行哪些测试以及以怎样的次序来进行这些测试,才能做到有效的软件安装和测试处理。步骤制作器140是一个计算机系统,它设计得能安排准备对目标系统160运行的软件安装和测试步骤序列。为了安排软件安装和/或测试步骤序列,步骤制作器140,或者更具体地是驻留在步骤制作器140上的排序程序204,首先从描述符文件96中读出多个部件描述符。描述符文件96是通过转换模块94把对应于具有所希望部件的所希望计算机系统的订单92转换成计算机可读的格式而得到的。
部件描述符是关于其部件由订单92所定义的目标系统160的各部件的计算机可读的说明。在本优选实施例中,各个部件描述符被含在一个称之为“系统描述符记录”的描述符文件内,这个文件是一个计算机可读的文件,它含有关于准备安装到目标系统160的部件,包括硬件部件和/或软件部件,的一个清单。排序程序204在读出了多个部件描述符之后,通过网络连接110从数据库100提取出多个对应于各部件描述符的软件安装和/或测试步骤。网络连接110可以是本技术领域所熟知的任何网络连接,例如局域网、内部网、或互连网。含在数据库100内的信息可以通过由箭头130所示的修改予以更新。
提取了适合于目标系统160的软件安装和/或测试步骤之后,排序程序204根据对应于各个步骤的序列号按预定的次序把这些步骤安排成序列。安排好目标系统160所需的步骤序列后,排序程序204在步骤盘150上写入一系列的输出文件。在图1给出的实施例中,输出文件包括一些含有一些适合于对目标系统160执行适当的软件安装和/或测试步骤的命令行的文本文件。这个执行根据对应于各步骤的序列号按预定次序进行。步骤盘150在厂房内始终伴随着目标系统160,并直接根据该步骤盘150或者根据通过网络连接180连接在目标系统160上的文件服务器190进行测试。网络连接180最好是一个插入在目标系统的一个相应网络端口上的通用网络器件。在执行了软件安装和测试步骤之后,安装和测试的结果通过网络连接180被回录到文件服务器190上。
图2是根据本发明另一实施例的软件安装和测试系统192的概要图。客户给出要购买定制目标计算机系统160的订单92。目标系统160准备制造得含有多个部件,包括硬件部件和/或软件部件。在目标系统的被发运给客户之前,要安装和测试多个部件。这种安装和测试有利地保证了有一个客户收到后便能运行的可靠的工作正常的计算机系统。
为了安排软件安装和测试步骤序列,排序程序204从描述符文件96读出多个部件描述符。订单92由转换模块94转换成描述符文件。部件描述符是关于目标系统160的各个部件的一些计算机可读的说明。在本优选实施例中,各部件描述符被含在一个称作系统描述符记录的描述符文件内,这是一个包含有关于准备安装到目标系统160上的每一个部件,包括硬件和软件,的一个清单。系统描述符记录可以直接存储在文件服务器202中。排序程序204从数据库100提取出多个对应于各部件描述符的软件安装和/或测试步骤。提取了关于目标系统160的适当的软件安装和/或测试步骤之后,排序程序204根据对应于各个步骤的序列号按预定次序对这些步骤排序。进行了目标系统160所需的步骤排序之后,排序程序204按预定次序通过网络连接195和180指导对目标系统160执行这些软件安装和测试步骤。希望网络连接200是一个插入在目标系统160的相应端口中的通用网络器件。网络连接195可以是本技术领域所熟知的任何网络连接。在执行了软件安装和/或测试步骤之后,安装和测试的结果通过网络连接200被回录到文件服务器202上,或者存储在一个适当的数据库中。从图中明显地可以看出,这里不需要图1所示的独立的步骤制作器计算机系统140。此外,也不需要步骤盘150。反之,在厂房内只需要有一个支持盘(boot disk)220伴随着目标系统160,该支持盘220设计得能支持目标系统160。
在概括地说明了软件安装和测试系统之后,现在将把注意力转换到更详细地说明图1和2所给出的系统的操作过程。
图3A示出把对计算机系统的一个订单转换成一个计算机可读的系统描述符记录的优选过程。较具体地说,在项300中,接收到一个对目标计算机系统的订单。这个订单可以是无数种形式中的任何一种形式。例如,各种不同的订单格式和订单递交机制都是可能的。例如,对目标计算机系统的订单可以通过电话、邮件、或计算机网络(如互连网)送来。不论取得订单的途径如何,也不论订单的形式如何,订单总是包含有客户所希望的目标计算机系统的类型,可能还含有关于客户希望目标计算机系统所包含的某些特定部件的明确的清单。接收到订单之后,控制转移到发送模块310,在这期间,目标计算机系统的订单将通过一个计算机网络被发送给一个生产该目标计算机系统的制造系统(未示出)。目标计算机系统的订单也还被提供给软件安装和测试系统,在那里该订单又被传送到一个位在模块320内的转换程序中。用于模块320的计算机网络可以是本技术领域所熟知的任何一种。
转换程序把目标计算机系统订单转换成一个对制造过程有用的记录。较具体地说,在模块330中转换程序首先把该计算机订单转换成一个称作BAR(基本组件记录)文件的记录。BAR文件最好含有一个能标明该正在制造的特定目标计算机系统的独有的识别符。BAR文件还含有准备包含在目标系统中的各部件的详细清单,这些部件可能既有硬件又有软件。此外,还希望BAR文件含有关于每个部件的特定制造商的零件号或者其他有用的识别符。最后,BAR文件还可以含有与客户有关的信息,例如姓名、地址和电话号码等。
在模块330中生成了BAR文件之后,在模块340中生成一个系统描述符记录。在本优选实施例中,系统描述符记录是一个对准备含在目标计算机系统中的硬件和软件的计算机可读的说明性文件。在一个优选实施中,系统描述符记录含有一个目标系统部件的清单,其格式包括硬件标签、软件标签、信息标签和附注。硬件标签向排序程序204指明位在该标签后面的是关于硬件部件的信息。类似地,软件标签指明位在该标签后面的是关于软件部件的信息。信息标签指明跟随在其后的是一般信息。附注使得各种叙述都可以被包含到系统描述符记录中,不过排序程序204将不会理会它。希望系统描述符记录是一个文本文件,它是自然人可读并易于理解的。这样的文件将有利于在安装和测试过程中容易地找错和维护。应该看到,系统描述符记录可以是一些独特识别符的任何清单,这些识别符对应于一组独特的标记,例如在一个简单的例子中系统描述符记录可以是一张零件号表。
图3B示出示例性的目标计算机系统订单350、相应的BAR文件360、以及相应的系统描述符记录370。目标计算机系统订单350含有计算机种类的名称,在图中为“X”类。计算机系统订单350还含有3个示例性的硬件部件一个Pentium(奔腾)处理器,一个硬驱,和一个监视器。通过对目标计算机系统订单350运行转换程序得到BAR文件360,如图3A的模块320所示。BAR文件360含有一个关于属于X类的特定目标计算机系统的独有识别符。BAR文件360还含有关于列出在目标计算机订单中的每一个部件的特定制造商的零件号。此外,BAR文件360还含有能指明每个部件所希望的数量的识别符和关于准备含在目标计算机系统中的每个部件的文字说明。系统90利用BAR文件360来生成系统描述符记录370。
如图所示,系统描述符记录370也含有关于属于X类的特定目标计算机系统的独有识别符。此外,系统描述符记录370还含有一些相应的标签,它们在这里指明处理器、硬驱和监视器全都是硬件部件而不是软件部件。系统描述符记录370还用文字说明的形式来说明这些部件。还有,该示例性的系统描述符记录370还含有指明某个软件应该安装到该属于X类的目标计算机系统中或者在其上进行测试的软件标签。例如,软件标签可能会指明某个用于Pentium处理器的操作系统总是应该安装到属于X类的目标计算机系统的硬驱上。
在图4中,给出了安排软件安装和测试步骤序列的优选总体方法。在模块400中,为目标计算机系统160产生独有的目标计算机系统识别符。在图1所示的实施例中,坐在步骤制作器计算机系统140前的用户把该独有的识别符(例如起着跟踪码作用的BAR识别符)提供给步骤制作器140的排序程序204。或者,在图2所示的实施例中,在接收到目标计算机订单后该独有的识别符被自动地读入到排序程序204中。
在模块410中,设置对应于BAR识别符的系统描述符记录。在图1的实施例中,或者由网络连接110,或者由网络连接195来设置系统描述符记录。在图2的实施例中,由网络连接195设置系统描述符记录。在模块420中,所设置的系统描述符记录被提供给排序程序204。在图1实施例中,排序程序驻留在步骤制作器计算机系统140上,而在图2实施例中,排序程序驻留在文件服务器202上。排序程序204和图1、图2中的数据库100一起工作,为目标计算机系统160安排软件安装和测试步骤序列。当安排好了适合于特定目标计算机系统的软件安装和测试步骤序列后,排序程序204将立即产生输出文件,如模块430所示。
在图1的实施例中,输出文件最好以6个分开的文件的形式写入到步骤盘150(见图1)上。这6个文件是(1)一个步骤文件,(2)一个Setenv.bat(设定环境.批)文件,(3)一个Qt.txt(快速测试.文本)文件,(4)一个Et.txt(扩展测试1.文本)文件,(5)一个Etlast.txt(扩展测试2.文本)文件,以及(6)一个Ft.txt(最后测试.文本)文件。希望步骤文件是一个ASCII(美国信息交换标准码)文本文件,其中含有一个关于一些用来执行定制目标计算机系统的各软件安装和测试步骤的适当的命令行的清单。在一个优选实施例中,步骤文件还含有一些可能是循环型的命令。较具体地说,步骤文件允许命令重复执行一定的次数,或者执行一定的时间长度。这样的格式有利于允许软件安装测试步骤以计算得到的预定方式重复。Setenv.bat(设定环境.批)文件最好在目标计算机系统上设定环境变量。应该指出,在一种操作模式中,对于安装和测试只需要步骤文件和Setenv.bat文件。步骤文件和Setenv.bat文件是ASCII文本文件,其中含有一个关于一些用来执行目标计算机系统的安装和测试步骤的适当的命令行的清单。Qt.txt,Et.txt,Etlast.txt和Ft.txt文件最好全都是ASCII文本文件,其中分别包含目标计算机系统在制造的快速测试(Qt)阶段、扩展测试1(Et)阶段、扩展测试2(Etlast)阶段和最后测试(Ft)阶段中的关于执行目标计算机系统的软件安装和测试步骤的一些适当命令行的清单。
另一方面,在图2的实施例中,输出文件不被写入到图1的步骤盘中。反之,输出文件被驻留在文件服务器202或文件服务器190中,输出文件被驻留在文件服务器202或文件服务器190中,在那里它们被用来指导软件安装和/或测试步骤在目标计算机160上的执行。
图5示出图1和2中所示排序程序操作204的较详细的流程图。在模块500中,对应于目标计算机系统160的系统描述符记录被提供给排序程序204。在模块510中,从系统描述符记录中读出一个部件描述符。每个部件描述符都描述目标计算机系统的一个相应硬件或软件部件。
回到图3B,模块370的系统描述符记录中的含有Pentium处理器的那一行是部件描述符的一个例子。在模块520中,排序程序204生成对应于目标计算机系统160的多个部件的多个导出目标(文件)。在本优选实施例中,这些导出目标用来存储从数据库100获得的关于需要对目标计算机系统160运行的软件安装和测试步骤的信息。在模块550中,从数据库100提取出与目标计算机系统160的各个部件有关的软件安装和测试步骤,并把它们存储在相应的导出目标中。在图1的实施例中,这些步骤是通过网络连接110提取的;而在图2的实施例中,这些步骤可以直接从文件服务器202提取。为了说清楚在本优选实施例中这些步骤是如何从数据库100提取的,首先需要说明该数据库的优选结构。
图6示出数据库100的设计。数据库100把一些按预定次序排列的软件安装和/或测试步骤序列与各个计算机系统种类联系起来。此外,数据库100还设计得把各种计算机系统部件与各个计算机系统种类联系起来。还有,数据库100还把各软件安装和/或测试步骤与计算机系统的各部件联系起来。
数据库100最好是一个关系数据库。数据库100含有几个表格,每个表格都含有一些适合于生成上述联系的属性。
数据库100含有步骤表102,系统种类表104,系统步骤序列表106,部件表108,系统部件表112,以及部件步骤表114。在本优选实施例中,每个表都含有一个属性清单,下面划了线的属性用作基本索引(primary key)。
步骤表102含有一组软件安装和测试步骤,这些步骤在所有种类的计算机的各个部件之间是可共用的。在本优选结构中,步骤表102的属性包括步骤ID(ID识别符),阶段,名称,命令,命令类型,后码(AfterCode),和最大事例。“步骤ID”是每个软件安装或测试步骤的独有的识别符号码。“阶段”指明该步骤应在哪个制造阶段执行。例如,“阶段”是从制造计算机系统的4个阶段中选出的一个相应整数,这4个制造阶段是(1)快速测试,(2)扩展测试1,(3)扩展测试2,和(4)最后测试。“名称”是一个字符串,它指定了描述该步骤的一个名称。“命令”是一个字符串,它指定了一个用来在目标系统160(见图1和图2)上执行软件安装或测试步骤的可执行命令行。“后码”是一个识别符,它规定了在执行了该软件安装或测试步骤之后是要暂停还是要再支持(reboot)。“最大事例”是一个识别符,它指明了该步骤允许运行的最多次数。最后,“类别ID”确定了与该软件安装或测试步骤相关的部件的某种类型。
系统种类表104用属性“系统ID”中所规定的一个识别整数来确定计算机系统的某一种类。系统种类表中还有一个指明了种类名称的字符串。
系统步骤序列表106是一个关系表,其中含有步骤表102和系统种类表104之间的一些关系。系统步骤序列表106含有一个在属性“系统ID”中规定的种类识别整数,指明计算机系统的某一特定种类(根据系统种类表104);一个在属性“步骤ID”中规定的步骤识别整数(根据表102),它指明了相应于该种类的一组特定的步骤;以及一个序列号。序列号最好含在属性“序列号”中,它代表与一个特定种类相对应的各个步骤准备以某一预定的次序运行。测试工程师指定在各个制造阶段中是唯一的各个序列号,这种序列号所对应的次序应选择得对于一个特定的目标系统来说是最为有效的。应该指出,也可以采用其他指定序列号的方法。
部件表108包括所有可能含在制造中的计算机系统内的部件。这个表的属性最好有“部件ID”,它给每个部件指定一个识别符;“名称描述”,它给每个部件指定一个字符串名称;以及“类别ID”,它对应于部件的类型(例如硬驱、CD-ROM(光盘只读存储器)驱动器等)。
系统部件表112是一个关系表,它含有一个计算机系统种类和一组能含在该种类中的部件之间的关系。系统部件表112的属性有在属性“系统ID”中规定的计算机种类识别整数(根据系统种类表104)和在属性“部件ID”中规定的部件识别整数(根据部件表108)。
部件步骤表114是一个关系表,它含有一个部件和关于该部件的一组软件安装和测试步骤之间的一些关系。部件步骤表114的属性有在属性“部件ID”中规定的部件识别整数(根据部件表108)和在属性“步骤ID”中规定的步骤识别整数(根据步骤表102)。
下面将用图3B所示的示例性目标计算机系统来说明上述数据库设计是如何用来提取软件安装和测试步骤的。系统描述符记录中指明种类X的计算机种类识别符导致系统种类表104中的系统ID将对应于种类X。用部件表108来检查目标计算机系统订单中所列的目标计算机系统部件是否“合法”(允许)。换言之,排序程序和数据库检查含在图3B系统描述符记录内的处理器、硬驱、监视器和软件在部件表108中是否有相应的条目和由部件ID所规定的对应整数。如果有一个部件不合法(也即如果系统描述符记录中有一个部件没有被含在部件表108中),则将举起一个出错旗标。系统部件表112是一个关系表,它含有来自部件表108和系统种类表104的映射关系。系统部件表112含有所有可以被包含在属于种类X的目标计算机系统中的合法部件。所以系统部件表112可以用来检查是否目标系统的所有部件都是合法的。换言之,排序程序和数据库将确定含在图3B系统描述符记录中的处理器、硬驱、监视器和软件在系统部件表112中是否都有对应关系。如果有一个部件不合法(也即如果系统描述符记录中有一个部件不可以被含在属于种类X的目标系统内),则将举起一个出错旗标。
在系统步骤序列表106这个关系表中含有来自步骤表102和系统种类表104的映射关系。系统步骤序列表106含有所有可以合法地对属于种类X的目标计算机系统运行的软件安装和测试步骤。此外,正是在这个系统步骤序列表106中,序列和阶段号被与每一个软件安装和测试步骤相联系。这些序列和阶段号代表着某一特定种类的计算机系统在运行各步骤时应有的正确次序。因此,系统步骤序列表106既含有准备要在X类的目标计算机系统上运行的各个步骤的清单,又含有代表在执行各步骤时应遵从的预定次序的序列和阶段号。
部件步骤表114是一个关系表,它含有来自部件表108和步骤表102的映射关系。部件步骤表114含有准备对目标计算机系统的处理器、硬驱、监视器和软件运行的软件安装和测试步骤。
关于准备含在目标计算机系统中的各个部件运行的软件安装和测试步骤的提取,涉及到执行一个对系统部件表112和部件步骤表114的联合操作,通过该联合操作将得到一个关于一组步骤的中间清单,这些步骤将对目标计算机系统160的各部件执行。
联合操作的结果是一个步骤清单,这些步骤将对列出在图3B系统描述符记录上的处理器、硬驱、监视器和软件执行。然后系统部件表112和部件步骤表114的联合结果将与含有种类X的所有步骤的系统步骤序列表106相联合。这个联合操作的结果是以序列号和阶段号的形式表现的排序信息,其中在一个特定的阶段内各序列号是特有的。这样,系统部件表112、部件步骤表114和系统步骤序列表106这三个表的联合为在目标计算机160上安装和/或测试软件产生了一些适当的软件安装和测试步骤以及形式为一些序列号和阶段号的排序信息。
如果第一个联合操作(系统部件表112和部件步骤表114的联合)的结果是一个空组,则因为空组意味着准备含在目标系统中的某个部件不属于列在系统描述符记录中的种类,于是将示出一个出错情况。下面说明这方面的一个例子。假定一个系统描述符记录正确地指明了某一目标计算机系统属于Y种类。同时再假定该系统描述符记录又不正确地指明,一个只属于种类X的目标系统的硬驱(硬驱Z)要包含到种类Y的目标系统中。在此情况下,部件步骤表114含有与硬驱Z相对应的步骤。系统部件表112含有对应于种类Y的部件。于是部件步骤表114与系统部件表112的联合将产生一个空组,其原因是硬驱Z不是一个对应于种类Y的部件(实际上它仅仅对应于种类X)。从上述例子明显可以看出,该数据库的优选设计有利地使人们可以肯定某一种类的目标系统只会含有适合于该种类的部件。
再次参见图5,当提取了关于准备包含在目标系统中的部件的步骤之后,在模块560中排序程序204将通过读出系统描述符记录和生成一个对应于准备包含在目标系统中的各部件的环境文件,为目标计算机系统准备好一些环境变量。例如,读出图3B中的系统描述符记录,并对应于系统描述符记录中的处理器硬件部件可能会准备出像“set cpu=pentium(把CPU'(中央处理单元)设定为Pentium)”这样的环境变量。
在图5的模块570中,由上述“三表联合”所提取的多个软件安装和测试步骤被按预定的次序排序。这个排序是根据用来提供步骤序列的各个序列号和阶段号来进行的。排序本身是利用本技术领域熟知的许多分类算法中的任一种算法来完成的。
在模块580中,排序程序204输出一些文件。如前所述,在图1的实施例中这些输出文件最好以6个分开的文件的形式写入到步骤盘150(见图1)上。这些文件是(1)步骤文件,(2)Setenv.bat文件,(3)Qt.txt文件,(4)Et.txt文件,(5)Etlast.txt文件,和(6)Ft.txt文件。希望步骤文件是一个ASCII文本文件。在一个优选实施例中,步骤文件还含有一些可能是循环性的命令。较具体地说,步骤文件允许命令有确定的次数的重复或迭代,或者允许命令在一个确定的时间长度内重复或迭代。Setenv.bat文件对目标计算机系统设定一些环境变量。步骤文件含有准备分别在目标计算机系统的快速测试(Qt)、扩展测试1(Et)、扩展测试2(Etlast)、和最后测试(Ft)等各制造阶段执行的步骤。另一方面,在图2的实施例中,输出文件不写入到图1的步骤盘上。反之,输出文件将驻留在文件服务器202或文件服务器190上,在那里它们可用来指导目标计算机系统160上的软件安装和测试步骤的执行。
再次回到图1和2,箭头130表示可以对数据库100进行修改。例如,如果出现了计算机系统的一个新种类,则人们可以相应地修改数据库100。较具体地说,在系统种类表104的系统ID中指定一个新种类的识别符,对系统种类表104的名称属性为该新种类指定一个名称。给系统步骤序列表106添加一个软件安装步骤和测试步骤的清单,这些步骤代表着在新种类的计算机系统上需要运行些什么步骤和以怎样的预定次序运行。如果新的计算机系统种类与已有的种类共有一些相似性,则有可能通过对系统步骤序列表106中的已有种类的条目进行修改而产生新种类的一些条目。如果有必要为新的计算机系统种类生成任何新的步骤,则这些步骤应添加到步骤表102中。类似地,如果新的计算机系统种类伴随有任何新的部件,则这些部件应添加到部件表108中。部件步骤表114也应被更新以使新种类计算机系统的每个部件都与对应于该系统的软件安装和测试的步骤联系起来。如果新种类仅仅使用数据库中已有的部件,则这个表不需修改。系统部件表112也要更新,使得可以含在新种类中的各种部件的清单都出现在数据库中。特别地,有可能需要把新计算机系统的系统ID与每个允许部件的部件ID相联系。同样,这也可能可以通过对一个原有计算机系统种类的已有条目进行拷贝和修改来完成。
应该指出,在根据本优选实施例构筑数据库时,存在着某些重大的优点。特别地,数据库的模块式设计有利于容易地为新计算机系统种类设定软件安装和测试步骤。此外,可以单独地修改关于某一特定计算机系统种类或某一特定部件的软件安装和测试步骤,而不会影响其他的软件安装和测试步骤。
图7示出如何能够通过对一个系统描述符记录和一个步骤序列进行修补而实现对根据本发明的软件安装和测试处理的模块式修改。在模块600中,生成一个系统描述符记录。在模块610中,利用对系统描述符记录的修补来修改该系统描述符记录。在本优选实施例中,这种修补是模块式的,使得修补可以对某一指定的目标计算机系统、对计算机系统的某一特定种类、或者对某一特定的部件进行。例如,如果某一天制造商希望对某一计算机系统种类用一种牌号的硬驱来替换另一种牌号的硬驱,则可以在模块610中进行这样一个修补,它将修改所有含有待替换硬驱的系统描述符记录并完成替换。在模块620中,如前简述地那样确定一个步骤序列。在模块630中,利用对步骤序列的修补来修改该步骤序列。在本优选实施例中,这种修补是模块式的,使得修补可以对某一指定的目标计算机系统、对计算机系统的某一特定种类、或者对某一特定的部件进行。例如,如果某一天制造商希望关于某一部件的某个测试步骤先于另一步骤执行,则可以形成这样一种修补,它将修改所有含有要修改次序步骤的步骤序列,并在模块640中相应地改变执行次序。
现在把注意力转向对目标系统160执行步骤序列。利用一个能读出、解释(interpret)和执行对应于目标计算机系统160的步骤序列的程序,对目标计算机系统执行软件安装和测试步骤。在本优选实施例中,这个程序叫做Runstep(运行步骤),在图1的实施例中它位在步骤盘150上,在图2的实施例中它位在文件服务器202上。
图8示出在执行任何软件安装和测试步骤之前含在步骤文件中的一个步骤序列的一部分。如前所述,步骤序列含有一些用于对定制目标计算机系统安装软件和/或测试的命令。而且,步骤文件中的步骤序列允许命令重复执行确定次数的迭代或确定的时间长度。还有,步骤文件可以含有附注,Runstep程序将不理会这些附注。在本步骤文件中,记号800用来分离步骤序列的各个场。项810是用于测试目标计算机系统160的一些命令。这些命令例如包括用来测试存储器的命令(memtest)(810a)和测试小计算机系统接口(SCSI)装置的命令(scsitest)(810b)。从图可以看出,每个命令都可以含有适用于特定测试环境的开关,例如“-0”。项820是一个不被Runstep程序理会的附注。项810c是一个按时间循环的命令。在本优选结构中,“begin-time-loop(开始-时间-循环)”指令指明一个循环的开始点。“end-time-loop(结束-时间-循环)”指令指明一个循环的结束点。“begin-time-loop”指令结合有一个场,这个场指明循环迭代的时间长度。例如,这里的命令810c将运行1小时30分钟。项810d是一个根据重复次数的循环命令(SCSI光驱测试)。在本优选实施例中,“begin-iterate-loop(开始-重复-循环)”命令告诉Runstep程序将执行一个重复循环。“end-iterate-loop(结束-重复-循环)”命令指明该循环命令的结束。这里,命令810d将运行三次。
当Runstep程序执行步骤序列时,它将把时间标记信息设置到步骤文件中,这将有利于对软件安装和测试处理的容易的找错和跟踪。
图9示出执行了各步骤之后的图8步骤序列的一部分。如图所示,Runstep程序把一些时间标记信息插入到了步骤序列中。项830示出存储器测试开始于何时,项832示出该测试结束于何时。项834示出测试的最后一次重复开始于何时。项836和838分别示出scsi HD(SCSI硬驱)测试何时开始和何时结束。项840确认该重复循环已进行了三次。最后,项842和844分别示出scsi CD(SCSI光驱)测试的最后一次重复于何时开始和何时结束。在已执行命令的附近插入时间标记信息有利于对软件安装和测试处理的有效找错和跟踪。
图10示出Runstep程序的优选总体流程图。Runstep程序860与一个Runstep(运行步骤)批文件870一起以循环方式运行。Runstep程序860从一个步骤序列中读出和解释一个步骤并把来自步骤序列的准备要运行的命令写入到批文件870。然后运行批文件870,对目标计算机系统160执行该步骤。完成了一个步骤之后,控制从批文件返回到Runstep程序860,然后后者读出和解释步骤序列的下一行。
图11示出Runstep程序的较详细的流程图。如模块900所示,Runstep程序首先检查是否存在一个名称为Re-Run.bat(再运行.批)的文件。Re-Run.bat文件在根据步骤序列执行任一个命令之前生成,并在成功地完成了该命令之后被删除。Re-Run.bat的存在向处于模块900的Runstep程序表明尚未成功地完成前一命令的运行。所以Re-Run.bat起着一种执行开始指示的作用。如果确实存在Re-Run.bat,则在模块904中将询问操作者是否还要继续该软件安装和测试处理还是想要进行找错。如果操作者选择继续处理,则控制转移到执行模块928,重新执行Runstep.bat文件。(如果没有作出肯定的选择,则这一情况为缺省选择)。如果选择了找错,则像本技术领域所熟知的那样进行找错。
如果不存在Re-Run.bat,则Runstep程序可以肯定前一命令已正确地完成,于是,控制前进到模块910,在那里读出最好是含在步骤文件中的步骤序列的一个行。读出一行后Runstep程序在模块912中判断是否存在有一个开始或结束时间标记。如果存在有开始或结束时间标记,则Runstep程序在模块914中判断刚读出的这个行是否只有开始时间标记。如果只有开始时间标记,则Runstep程序在模块916中假定一个软件安装或测试步骤刚刚结束,并在模块918中填入一个结束时间标记。填入了结束时间标记后,控制返回到模块900。
如果在Runstep程序所读出的那一行中不仅只有一个开始时间标记,则Runstep程序在模块906中判断是否既有开始又有结束时间标记。如果是这样,则Runstep程序将在模块908中假定该步骤已被执行,于是控制返回到模块900。如果Runstep程序在模块912处遇到既无开始又无结束时间标记的情况,则Runstep程序在模块920中填入开始时间标记,并准备运行它刚读出的步骤序列那一行上的步骤。
在模块922中,Runstep程序判断准备运行的命令是否存储在当地驱动器上(步骤文件控制着系统中哪个驱动器是当地驱动器)。当地驱动器例如可以是步骤盘,目标系统的硬驱,目标系统的RAM(随机存取存储器)驱动器,或者网络驱动器。如果命令不位在当地驱动器上,则Runstep程序将假定准备运行的测试含在网络某处的一个文件服务器上。在模块932中Runstep程序判断它自身是否已连接到该网络上。如果没有,则Runstep程序将在模块936中把一个向该网络登录的命令植入到Runstep.bat中。因此,在Runstep.bat通过网络连接180对目标计算机系统160执行该步骤之前就进行了网络连接。
在模块936之后,控制进入到模块926。如果Runstep程序已经登录到网络上,则由于若已存在有网络连接就不再需要另外的登录步骤,Runstep程序将在模块934中从Runstep.bat内删去向网络登录的命令。然后再是控制进入模块926。如果准备运行的步骤恰好在步骤盘150上,则Runstep程序不需要向网络登录。所以Runstep程序在模块924中从Runstep.bat内删去向网络登录的命令。然后再是控制时入模块926。在模块926中,Runstep程序把准备运行的适当的命令植入到Runstep.bat和Re-Run.bat中。这样植入的命令是从最好是含在步骤文件中的步骤序列取得的。在模块928中,通过运行Runstep.bat执行该步骤,并且如果执行成功,则删去Re-Run.bat。如果该步骤没有执行成功,则不删除Re-Run.bat,并且控制转移到失败状态929。然后控制返回到模块900,使得能够从步骤序列读出另一行。这个处理不断进行直到完成所有的软件安装和测试步骤。
执行了步骤序列之后,目标系统就经过了测试,并且软件被安装上了。在图1的实施例中,某一选定数目的测试可以直接根据步骤盘150运行,但大多数测试还是通过网络连接180根据文件服务器190来运行的。根据文件服务器190运行测试有利地消除了由步骤盘150这样的软盘的存储容量所造成的限制。
在图2的实施例中,各步骤是通过网络连接180根据文件服务器190来运行的。只需要有一个软盘,这里是支持盘220,来支持目标计算机系统160。这样的系统有利地简化了软件安装和测试处理。
再次返回到图1和2,箭头210表示软件安装和测试的结果可以回录到文件服务器190或文件服务器202上。这些结果最好包括是否所有的步骤都成功地完成了,以及遇到了什么类型的失败(如果有的话)。登录结果可以只是简单地保存或写入执行了步骤序列之后的步骤文件的修改形式,因为如前所述,这时步骤文件已被Runstep程序加上了时间标记。这样的系统有利地允许在计算机系统制造过程中改进找错能力。
虽然示出和说明了本发明的一些特定实施例,但对于熟悉本技术领域的人们来说,显然可以在不偏离本发明的广义特征的情况下做出各种改变和修改,因此,所附的权利要求将把所有落在本发明真正精神和范畴内的所有这种改变和修改包含在它们的范畴之内。
权利要求
1.一种用来把软件安装到计算机系统上的设备,它包括一个步骤表,该步骤表包含一组可以共同用于基本上所有被制造计算机系统的各个不同部件的软件安装步骤;以及,一个部件表,该部件表包含一组含在各被制造计算机系统中的基本上所有可能的部件。
2.根据权利要求1的设备,其中的步骤表含有阶段属性,该步骤识别属性对每个软件安装步骤或测试步骤都是独有的识别符。
3.根据权利要求1的设备,其中的步骤表含有步骤识别属性,该阶段属性指明一个步骤应该在哪个制造阶段执行。
4.根据权利要求1的设备,其中的步骤表含有命令属性,该命令属性与一个执行软件安装步骤的可执行命令行相对应。
5.根据权利要求1的设备,其中的步骤表含有后码属性,该后码属性指明在执行了一个相应步骤之后是要暂停还是要重新执行。
6.根据权利要求1的设备,其中的步骤表含有最大事例属性,该最大事例属性指明一个相应步骤可以运行的最大次数。
7.根据权利要求1的设备,其中的步骤表含有类别识别属性,该类别识别属性指明与一个软件安装或测试步骤相关连的部件的类别。
8.根据权利要求1的设备,其中的部件表含有部件识别属性,该部件识别属性指明部件表中的每一个部件。
9.根据权利要求1的设备,其中的部件表含有类别识别属性,该类别识别属性指明部件的类别。
10.根据权利要求1的设备,其中的计算机系统对应于一个计算机系统种类;并且该设备还包括一个种类关系表,该种类关系表指明一组软件安装步骤和每个被制造的计算机系统种类之间的关系;一个种类部件关系表,该种类部件关系表指明计算机系统种类和部件组之间的关系;以及,一个种类步骤关系表,该种类步骤关系表指明一个部件和一组适用于相应部件的软件安装步骤之间的关系。
11.根据权利要求10的设备,其中的种类关系表含有种类识别属性,该属性指明一个特定的计算机系统种类。
12.根据权利要求10的设备,其中的种类关系表含有步骤识别属性,该属性指明适合于一个特定种类的一组特定步骤。
13.根据权利要求10的设备,其中的种类关系表含有对应于每个种类的序列号,该序列号代表与该种类有关的各步骤准备执行的预定次序。
14.根据权利要求10的设备,其中的种类部件关系表规定了指明计算机种类的属性和指明部件的属性之间的关系。
15.根据权利要求10的设备,其中的种类部件关系表规定了部件识别属性和步骤识别属性之间的关系。
16.根据权利要求10的设备,它还包括一个种类表,该种类表用一个名称来识别计算机系统的种类。
17.一种用来提供多个步骤的设备,一个步骤与一个相应的部件描述符相关连并含有一个相应的序列号,一个部件描述符说明计算机系统的一个相应部件,该设备包括一个步骤表,该步骤表包含一组基本上为所有的被制造计算机系统的各种不同的部件所共用的软件安装步骤;一个部件表,该部件表包含一组基本上所有可能被包含在几乎所有被制造计算机系统内的部件。
18.根据权利要求17的设备,其中的计算机系统对应于一个计算机系统的种类,该设备还包括一个种类关系表,该种类关系表指明一组软件安装步骤和被制造计算机系统的种类之间的关系;一个种类部件关系表,该种类部件关系指明计算机系统种类和部件组之间的关系;一个种类步骤关系表,该种类步骤关系表指明一个部件和一组适用于该部件的软件安装步骤之间的关系。
全文摘要
用来把软件安装到计算机系统上的设备包含一步骤表和一部件表。步骤表包含一组可共用于所有被制造计算机系统的各不同部件的软件安装步骤。部件表包含一组含在各计算机系统中的所有部件。且该设备还包含种类关系表、种类部件关系表和种类步骤关系表。种类关系表指明一组软件安装步骤和每个被制造计算机系统种类间的关系。种类部件关系表指明计算机系统种类和部件组间的关系。种类步骤关系表指明一个部件和一组相应软件安装步骤间的关系。
文档编号G06F11/22GK1211006SQ9811880
公开日1999年3月17日 申请日期1998年8月28日 优先权日1997年8月29日
发明者理查德·D·安伯格, 罗杰·W·翁, 迈克尔·A·布伦德里奇 申请人:戴尔美国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1