CN1113291C - 自动配置生成 - Google Patents

自动配置生成

Info

Publication number
CN1113291C
CN1113291C CN98813215A CN98813215A CN1113291C CN 1113291 C CN1113291 C CN 1113291C CN 98813215 A CN98813215 A CN 98813215A CN 98813215 A CN98813215 A CN 98813215A CN 1113291 C CN1113291 C CN 1113291C
Authority
CN
China
Prior art keywords
entity
material standed
project
file
entities
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.)
Expired - Lifetime
Application number
CN98813215A
Other languages
English (en)
Other versions
CN1284181A (zh
Inventor
卡迪尔·B·李
斯科特·W·戴尔
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.)
APTEAN company
Original Assignee
Support com Inc
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 Support com Inc filed Critical Support com Inc
Publication of CN1284181A publication Critical patent/CN1284181A/zh
Application granted granted Critical
Publication of CN1113291C publication Critical patent/CN1113291C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种计算机实现系统通过确定向用户提供预定功能的各实体、确定取决于所确定的实体的各项目、利用删除重叠实体并组合类似实体对实体分组以及利用预定格式封装实体组对应用状态进行分析。该系统基于现行机器状态以确定方式列出正确应用操作所需的基础数据、元数据和相关性提供自动的关系答案。此外,状态信息存储在一种不变格式下,供包括着安装、同步、备分、恢复、分析和修理的各种各样的应用使用。

Description

自动配置生成
过去,软件应用典型地是中央计算中心处的大型机上的批处理。近年来,便宜但强大的个人计算机的使用代替了过去的批处理方式。许许多多用户友好、生产率提高的软件的存在使得个人计算是无处不在的。尽管更容易为用户的特殊要求定制,个人计算机的扩散使得大规模计算的管理工作更为困难。过去,计算中心里的大型机执行集中式的系统管理任务,其中包括库和配置的管理以及软件版本控制。然而,在具有各种处理机、外设和软件应用的现代网络中,可能的配置范围是惊人的。
一些配置信息是硬件专用的,例如盘控制器端口地址、通信端口地址以及视频端口地址。此外,可以在用于每个应用程序的配置文件中设置专用于软件的配置参数。例如,IBM兼容个人计算机内存储的称为autoexec.bat文件的配置文件可包括路径语句。此外,特殊的应用软件可能需要专用的初始化信息以便有效运行。典型地,可在初始化(.ini)文件中设置这样的信息。
然而,一旦安装后,计算机配置并不保持是固定的。在运行软件的同时,用户可以更新可配置的选择,例如更新文件打开/保存路径。另外,用户可以通过增加新信息使软件“个人化”,例如在万维网浏览器软件的情况下增加书签数据。而且,由于要做出更好的产品的持续竞争压力,在向用户发送交付的软件时,软件开发者已经着手开发软件的下一版本。为了应付不断增加的更为友好的和功能更多的应用软件的要求,软件开发者更多地采用组件模型,在组件模型上应用软件简化成多个模块或组件。可在不连累其它组件的状态下,修改某个组件以提高其性能或者增添以前不具有的性能。在这样的范例中,软件应用是许多独立文件的集合,其中的每个文件可由无关的软件开发者生成,这些开发者对每个组件的整体性的了解甚于对组装后的软件包的整体性的了解。尽管软件的再使用得到发展,这种范例要求更高级别的组件间整体性。不出意料地,虽然更频繁的更新为用户带来功能更多的软件,管理已释放安装的复杂性上的增加不是和更改的次数成比例的。
历史上,通过人工检测组件之间的关系并且在日志中记录组件的状态。该信息是在组件本身之外的,并且一旦改变组件必须更新该信息。由于状态信息只在开发时记录,可能会丢失在开发后再做出的改变。随着改变的步伐不断增加并且软件装配过程日益复杂,组件之间的正确状态关系之外部表达变成是易于出错的。
此外,在使用期间,用户可能使软件个性化,从而改变状态信息。软件安装和软件操作之间状态信息的差异导致不能意料的操作,并且可能需要来自信息系统(IS)部门的更多支持。
在许多应用中需要维护商业操作下的软件应用的现行状态,这些应用包括安装、同步、备用、恢复、分析和维修。需要详细了解计算机的动态环境及其系统配置,以防止为改正一个问题进行的修改可能会因不恰当的安装而造成其它错误的情况。此外,为了在多个操作环境上以及在各种处理器上验证兼容性并且确保整体性,需要准确了解系统配置。
通过确定向用户提供预定功能度的各实体、确定取决于所确定的实体组的项目、通过删除重叠的实体并且组合类似的实体对实体分组并且利用预定的格式封装实体分组,本发明确定应用状态。本系统根据当前机器状态列举出决定性方式的基数据、元数据及应用正确运行所需的各种相关性以提供自动的关系答案。生成一个可用于计算机系统的安装、同步、备分、恢复、分析及维修的有关该应用(程序)的完整、持续的运行期状态信息。
在一个方面,通过确定用户可访问性的各层分析各实体。此外,对于每个层,根据预定准则列出各根实体。对于每个列出的实体,确定该实体的一个或多个相关性。
在另一个方面,通过生成一个或多个候选物、分析这些候选物、确认各候选物并封装和候选物相关的各项目,项目相关性得到确定。
在又一个方面,通过确定实体间关系、根据实体间关系处理各实体和把各实体置成预定格式,实现实体的分组和封装。
在另一个方面,该格式包含有关每个项目以及每个实体的详细信息。该格式具有零个或一个信息块以及一个或多个实体块。带有它们相关的实体块组的多个信息块可组合到一组中。
本发明的优点包括下述。本发明动态地从组件本身重建正确状态的外部表示。此外,由于状态构建过程是动态的,本发明能在软件的整个生命周期中跟踪软件,并对许多在执行中需要有关应用的详细信息的管理任务提供信息。
图1是分析应用软件的时间状态的过程的流程图。
图2是确定根实体的流程图的过程。
图3是确定项目相关性的过程的流程图。
图4是确定分组并封装实体的过程的流程图。
图5是表征应用软件的格式的方块图。
图6是桌面配置的示例说明。
图7是在一个执行例如微软视窗操作系统的操作系统的计算机上对逻辑实体进行分析、描述和替代的过程的流程图。
图8是分析图7的计算机的桌面上的目的过程的流程图。
图9是生成项目的过程的流程图。
图10是连同图7的过程下扫描模块的过程的流程图。
图11是包含着要根据本发明确定其软件的状态的计算机的示意图。
如在本文中所使用,一个候选物是一个包含着用来生成一个或多个项目(item)的数据包。一个项目和数据或元数据的基础单元相关,其能和别的项目相关地或不相关地运行。一个实体是一组项目。实体代表用于计算机系统或用于用户的一组预定功能。在其最简单形式下,实体可代表单个应用,例如Corel WordPerfect、Microsoft Excel、等等。实体还可包括有关一个或多个操作系统的设定的信息,诸如打印机设定、字形设定、网络部件设定、等等。此外,实体还可包括有关文件的信息,例如数据文件、初始化文件、源文件、样板、等等。每个实体具有一个状态,该状态是计算机系统中可使用的整个功能度的一个逻辑子集。系统状态可包括关于诸如.exe文件、.dll文件和.ocx文件的可执行文件的信息。机器状态还可包括注册设定、环境变量、支持文件以及各特定时间点的数据文件。
现参照各图,图1是一个流程图,其表示确定软件应用的运行期状态的过程。在图1中,该流程首先确定和用户的一组预定的功能有关的一个或多个实体的存在性(步骤22)。由于实体描述供用户使用的所有有用的功能,从而根实体代表一个对象,用户可在别的机器上或在别的地方或在别的时间以一种完全自给自足的方式执行该对象。
接着,在步骤24,该流程确定项目相关性,项目相关性可随时间改变。项目相关性的确定还是一个定位所有相关性并且生成一组有限的相关笥的完整、确定性过程。通过删除重叠实体和组合相似实体,该过程把实体分成组。此外,只要未对项目的任何相关性作出改变,对某未改变的项目的状态生成和所有以前的状态生成是相容的和相同的。最后,在退出前(步骤28),该流程把各实体封装成适当的格式供以后使用(步骤26)。在步骤26的对实体分组处理中,确定实体的交点,从而可以简明地定义实体包,并且还可以在一个带有或不带有实际实体的文件中表达该实体包所需的所有信息。有关每个实体的足够信息得到包括,从而可执行正确性分析。
现参照图2,以更详细地示出步骤22(图1)。在图2中,确定用户可访问性的一个或多个层(tier)(步骤30)。对层的确定部分上基于用户对应用可访问性的容易程序。根据其在处理队列中的优先级确定层(步骤32)。典型地,选择该队列中所保持的最高优先级层。对于选定的层,根据预定准则列出一个或多个根实体(步骤34)。预定准则例如可和实体的状态有关以及和用户感觉到的有用性有关。与操作系统相关的层信息表示可能为该层的各实体。此外,由于实体的列出是基于各实体是否是已被处理的或已被排除的,对处理过的实体保持一个记录以跟踪实体可能包括在几个层中或包括在交叉层中的情况。
对于步骤34中列出的每个实体,确定项目相关性(步骤36)。该步骤把在某层中找到的数据转换成为一个可执行文件或一个数据文件的实际项目。该步骤还把实体转换成根项目。一个例子可包括从一个连接文件转换到一个可执行文件或者从一个数据文件转换到一个访问该数据文件的可执行文件。接着确定构成该实体的所有相关性。某些项目,例如数据文件,可能是终止点,因为它们不再具有更深的相关性。其它项目,例如可执行文件,可能具有可从该项目生成的许多相关性。对于下一层的选择,可能存在对各实体的某预定的界限已经被设置的条件判定,一旦到达该界限,停止当前层的处理。
一旦分析了当前层的所有列出的实体,该流程选择要处理的下一个层(步骤37)。接着该流程确定是否已处理完所有层。若没有,该流程从步骤38循环回到步骤34以继续处理。反之,该流程退出(步骤39)。
现参照图3,以更详细地示出步骤24(图1)。在确定项目相关性中,该流程首先生成一个或多个候选物(步骤40)。候选物生成处理主要取决于当前所检查的根项目的二进制分析。可通过分析可执行文件中找到的各字符串生成各候选物。每个字符串可能代表一个候选物。然而,所生成的候选物可能是无效的。例如,它们可能是各文件名,它们可能是对元数据的指针或引用,或者从相关性角度它们可能是当前实体和系统上的其它项目之间的无用信息。这里,通过删除不涉及系统上其它有效项目的候选物以及删除在已经建立的项目之间具有冗余关系的候选物,修剪已生成的候选物。接着,确认各候选物(步骤44)。在步骤44,确认那些通过重要的候选物分析的项目,从而实际上做出候选物和其父项目之间的连接。该连接可能是对元数据的引用、对某文件的引用、或者可能是对该应用所需的一条外部信息的引用。这些连接被确认并且若成功确认,它们接着变成项目并通过相关性生成处理。在分析和确认候选物中,该处理访问并参照所存储的其它候选物及项目的库,其中当前候选物将和它们进行比对。
在步骤46,封装从分析和确认处理中得到的结果项目组(步骤46)。该封装过程记录和标识属于某实体的某特定项目的信息。该信息足以使其它应用在无需实际上调查该项目下确定该项目的突出特性。除了文件名之外,在确实项目后的项目封装中添加标识文件及文件版本的文件尺寸信息、交叉核对信息。对于每个要封装的项目,重要步骤46以定位相关性树中属于该当前项目的各项目。对于当前项目之下的每个项目,持续选代该处理,直至找到原子层项目不能进行更远的候选物生成为止。此刻,该处理退出(步骤48)。
图4更详细地示出对实体分组及封装的处理26(图1)。通过确定实体之间的交点或实体的集合,步骤26初步确定实体间关系(步骤50)。该处理在当前处理层次上把该实体定到与其它实体的关系中,一旦找到些关系,可把相关的实体组合到一起,可能形成一个实体,或者替代地,若实体是多余的可把实体标记成是删除的。接着根据所确定的实体间关系处理各实体(步骤52)。在一个方面,根据它们对操作系统或对更高层要求的依从性和关系处理各实体。例如,对操作系统特定版本的要求、实体使用的特定硬件的要求、盘空间的特定文件尺寸要求或其它诸如此类的依从性进行处理。最后,把各实体置成适当格式化的文件供以后的使用(步骤54)。此外,收集需要和该实体一起封装的有关文件的信息以及需进一步列出的信息,并放在该格式化文件中,从而该格式化文件是代表可独立操作的原子数据或无数据的基础项目的集合。该格式最好是用来代表应用功能性的有用子集的可扩充格式。项目被分类以包括有关类型的足够信息,供无须进一步搜索的比较判定使用。除了捕获项目信息之外,该格式提供层次增加的信息以在逻辑上分组项目和提供诸如相关性、描述、管理开销之类的附加信息。在步骤54后,图4的处理退出(步骤56)。
图5中示出分层格式70的图例。格式70存储实体组80和90的持续状态。实体组80具有零个或一个信息块82。实体组80是有关实体的一个集合,这些实体都共享信息块82中所描述的相似的实体层描述相关性。实体80还具有一个或多个实体块84-86。实体块84至86是在项目生成步骤24(图3)期间建立的项目的集合。实体块84-86以一种预定方式相关。例如,它们可具有相关的可执行性,或者它们具有一组不同类型的相关文档文件。类似地,实体90具有零个或一个信息块92以及一个或多个实体块94-96。该格式可以是基于文本的、基于二进制的、被压缩的和/或被加密的。该格式的一种实施例可按如下:
[INFO“实体组标号”]
    key=value
    key1=value 2
        …
    [ENT“实体块标号”]
    itemtype=value 1,value 2,value 3,value 4,
              …itemtype=v2,v3,v4
    …
在该实施例中,用括号对、块类型及块标号表示块。每个块之后是任意数量的行上分开的key(关键字)值对。若该关键字是按项目类型组织的,取决于项目类型在同一行上需要预期数量的值,采用三种块类型:INFO、ENT、DEP。INFO块类型包含有关该实体组的一般信息以及有关整个文件的描述信息。ENT块类型包含其它实体和/或项目的集合,而DEP块类型包含用key=值对表示的相关性。此外,五种或更多的项目类型:file、pefile、reg、ini、lnk是可能使用的基本类型。file类型和系统上的某文件相关。pefile类型和“可移值可执行“格式下的可执行文件相关。reg类型和表示Windows Registry中的某入口的元数据有关。ini类型和表示ini型支持文件的某入口的元数据相关,而lnk和一个表示至另一个文件的捷径的二进制元数据文件相关。其它类型可描述其它数据或元数据。
现转到图6,其中示出一个示例性的桌面配置。在图6中,桌面500包含一个拼写检查应用502、一个字处理应用504和一个电子表格应用506。此外,在桌面500上示出废物箱510。在按步骤22确定根实体时,桌面500作为一层出现。在该层中,处理列举出拼写检查应用502、字处理应用504、电子表格应用506和废物箱510。该处理扔掉废物箱510,但把剩余的按实体对待并确定项目相关性。为应用502-506中的每个应用生成一个项目相关性表。接着按预定格式把该桌面编码成一个实体,供用户在随后的软件安装或维护中使用。
在进行图1的处理中,系统确实拼写检查应用502和字处理应用504在类型上是相似的并具有类似的相关性。从而,把它们输入到一个指示这些应用在公用字典或主题词上是相关的一个信息块中。此外,应用502和504可能共享一个或多个操作系统要求。这样,为实体502-504生成一个信息块82。从而,应建立一个包括一个信息块(82)和二个各代表二个应用(502-504)中的一个应用的实体块(84-86)的实体组。此外,在都驻留在相似的位置上或者在可通过类似路径可访问上,该整个实体组(80)和电子表格应用506具有相似性,从而它们可组成一组相关的实体。这样,可把应用502-506封装到一起以建立一个更大的实体组。该最后的封装包则应包括一个包含着应用(502-504)的实体组(80)和另一个包含着应用(506)的实体组(90)。该封装包包含适用于各种应用的状态信息,其中包括计算机的安装、同步、备分、恢复、分析和修理。
现参照图7-图10说明本发明的一种在微软的视窗操作系统上运行的实施例。图7示出在计算机上分析、描述和复制逻辑实体的过程99。首先,过程99搜索一个或多个实体(步骤100)。在计算机系统上找到实体后,过程99检查是否完成所有实体的处理(步骤102)。若尚有一个或多个要处理的实体,过程99生成一个项目(步骤104)。接着,过程99检查该项目是否被分解(步骤106)。若是,过程99生成一个或多个候选物(步骤108)。接着过程99检查是否还有要检查的候选物(步骤110)。若是,过程99进一步检查该候选物是否被确认(步骤113)。若未进行确认,过程99循环回到步骤108以继续生成候选物。替代地,若在步骤113进行确认,过程99回到步骤104,继续进行项目生成处理。
在项目未被分解或候选物未被生成的情况下,过程99从步骤106或步骤110转到步骤110以检查其是否是一个根项目。若不是,过程99从步骤112转到步骤108以继续候选物生成处理。替代地,在过程99位于根项目的情况下,该例程在另一层上进行实体搜索过程99。
在所有实体已被分析的情况下,过程99从步骤102转到步骤120,以对先前在步骤104-113中确定的实体进行交叉参照。过程99确定是否要对实体进行其它内务操作处理(步骤112)。若不,利用前面在步骤124中讨论的适当格式封装该实体。替代地,可在步骤126对该实体进行其它处理。
现参照图8,其示出在桌面实体情况下对某示例实体进行分析的过程200。在步骤200,该过程检查需要处理的连接。若一个或多个连接需要处理,该过程开始分析和微软视窗操作系统的“开始菜单”相关的文件(步骤204)。与该开始菜单相关的数据提供有关用户公共使用的软件或数据文件的信息,从而和状态确定处理是很有关系的,从步骤204,该过程检查是否还有要处理的其它连接(步骤206)。若无,该过程把所有可执行文件定位到已知位置上(步骤208),此外,该过程检查是否还有要处理的其它文件(步骤210)。若无,该过程确定与已定位的文件相关的文件扩充缔合(步骤212)。从步骤212,该过程确定是否还有要处理的扩充(步骤214)。若无,该过程确定该路径中的各可执行文件(步骤216)。随后,该过程确定是否还有要处理的其它文件(步骤218)。若无,即无要处理的文件,从步骤218,在该过程检查是否还有要处理的文件(步骤222)之前,先确定全局可执行性(步骤220)。从步骤222,若已处理所有文件,该过程进而建立一个实体交叉参照表(步骤224)。替代地,若找到某实体,从步骤202、206、210、214、218或222,该过程转到步骤226,其中检查该实体是否已被处理。若是,该过程返回到先前状态(步骤228)。替代地,该过程从步骤226转到步骤230进行项目生成。
现参照图9,其中更详细地示出项目生成过程230。首先,该过程检查该项目是否为已知类型(步骤232)。若不是,封装该项目(步骤234)。替代地,若该项目为已知类型,该过程确定该文件是否是可执行文件(步骤236)。若是,该过程进一步确定该文件为可移植可执行(PE)格式(步骤238)。PE文件格式是按线性数据流组织的。它以MS-DOS标题、实时模式程序存根(stub)和PE文件签名开始。紧接的是PE文件标题和选用标题。在此之后出现所有节标题,接着是节体。各节含有文件内容,包括代码、数据、资源以及其它可执行信息。每个节具有一个标题和一个本体(原始数据)。只要标题填有足够的能译解数据的信息,几乎可以按连接程序希望组织各节的任何方式组织各个节。包含着重新定位信息、符号表信息、行号信息以及串表数据的混杂信息的一些其它区域是关闭文件。PE文件中的信息基本上是由系统或应用使用的用以确定如何处理该文件的高层信息。第一字段用于指示其构建成可执行于那一种类型的机器,例如DECAlpha、MIPS R4000、IntelX86或某些其它处理器。系统利用该信息快速确定在对文件数据的其余部分作出进一步处理前如何对待该文件。
从步骤238,若该文件是一个PE文件,分解该文件并生成候选物(步骤240)。在该文件不是一个PE文件的情况下,该过程检查文件格式是否是可执行(exe)二进制文件(步骤242)。若是,该过程进行二进制可执行的分解并且还生成候选物(步骤244)。
替代地,在步骤242若文件格式不是exe二进制文件格式,该过程转到检查该文件格式是否是exe原本(script)格式(步骤246)。若是,分解该原本exe文件并生成候选物(步骤248)。替代地,该过程转到步骤246以封装该项目(步骤250)。
在步骤236,在格式不是可执行文件格式的格式下,该过程检查文件格式是否是信息格式(步骤252)。若是,为候选物生成信息文件(步骤254)。
在步骤252,在文件格式不是信息文件格式的情况下,该过程转到步骤256,其中检查该文件是否属于已知的数据格式(步骤256)。若是,该过程进行数据文件候选物生成(步骤258)。替代地,该过程从步骤256转成封装该项目(步骤234)。在该项目在步骤232中不为已知类型的情况下,也执行步骤234。
现参照图10,其中示出分析项目的过程。一旦进入图10的过程,扫描现行模块以得到诸如模块类型的信息(步骤260)。在完成该模块的扫描后,该过程确定是否还有要扫描的模块(步骤262)。在模块264,在类型未知的情况下,该过程循环地调用模块扫描处理260。若类型是已知的。若类型是知道的,该过程进入步骤266,其中检查该模块是否为ODBC类型。若是,该过程转到接通适当的模块标志(步骤268)。替代地,若该模块不是ODBC模块,该过程进而检查该模块是否是登记模块(步骤270)。若是,接通适当的模块标志(步骤268)。从步骤270,在该模块不是一个登记模块的情况下,该过程转而检查该模块是否是一个COM模块(步骤272)。若是,该过程转到步骤268。从步骤268,该过程转到步骤276以确认该项目。
在步骤262中所有模块已被扫描的情况下,该过程进行串扫描操作(步骤280)。接着,该过程确定是否还有要处理的串(步骤282)。若是,进行串匹配运算(步骤284)。从该串匹配运算,该过程确定该串是否为登记类型(步骤286)。若是,进行登记匹配运算(步骤288)。从步骤286或步骤288,该过程转到检查该串是否为ODBC类型(步骤290)。若是,进行ODBC匹配运算(步骤292)。从步骤290或292,该过程进而确定法串是否是COM类型(步骤294)。若是,在步骤296进行COM匹配运算。从步骤294或296,该过程检查文件名是否匹配(步骤298)。若是,在转到步骤276确认项目之前把该项目添加到兄弟表中(步骤300)。
在步骤282中已对所有串进行了串扫描的情况下,该过程转到进行兄弟扫描以定位相关的项目(步骤302)。接着确定是否还有要扫描的文件(步骤304)。若无,在步骤306确认该项目。替代地,在确认项目之前进行兄弟匹配运算(步骤308)。
如上面所讨论,通过确定向用户提供预定功能的实体、确定依赖于所确定的实体的各项目、借助删除重叠的实体和组合类似的实体对实体分组以及利用预定格式封装实体组,获得应用状态。该系统基于现行机器状态提供自动的关系答案,以便以一种确定性的方式列举出计算机系统的安装、同步、备分、恢复、分析及修理所需的基础数据、元数据和相关性。
本文所说明的技术可在硬件或软件下实现,或者是二者的组合。该技术最好在计算机程序下实现,该程序可在包括处理器、可由该处理器读的存储介质(包括易失性或非易失性存储器和/或存储部件)以及适当的输入输出部件的可编程计算机上执行。程序代码作用到利用输入部件输入的数据上以执行所说明的功能并生成输出信息。该输出信息施加到一个或多个输出部件上。
图11示出一种这样的计算机系统600,其包括CPU610、RAM 260以及和CPU总线640连接的I/O控制器630。I/O控制器630还通过I/O总线650和诸如键盘660、鼠标670的输入部件以及诸如监视器680的输出部件连接。各种变型在下述的权利要求书的范围内。例如,替代利用鼠标作为输入部件,可使用压力敏感笔或板生成光标位置信息。
此外,最好在高级过程或面向对象的编程语言下实现每个程序以和计算机系统通信。然而,若需要,可以以汇编或机器语言实现各程序,在任何情况下,该语言可以是编译或解释语言。
每个这样的计算机程序最好存储在可由通用或专用可编程计算机读的存储介质或部件(例如,CD-ROM、硬盘或磁盘)上,用于当由该计算机读该存储介质或部件以执行所说明的各进程时配置并运行该计算机。该系统还可按用计算机程序配置的计算机可读存储介质实现,其中该存储介质配置成使计算机按特定和预定的方式运行。
尽管参照其的一种实施例示出和说明了本发明,业内人士理解在不背离下述权利要求书的精神和范围下在形式上和细节上可做出上述的或其它的改变。

Claims (10)

1.一种确定应用状态的方法,包括:
确定提供与计算机应用相关的预定功能的各实体;
确定取决于所确定的各实体的各项目;
通过删除重叠的实体以及组合相似的实体对各实体分组;以及
利用预定格式封装实体组。
2.权利要求1的方法,其中确定各实体还包括:
确定用户可访问的各个层;
对于每层,基于预定准则列出各根实体;以及
对于每个列出的实体,确定该实体的一个或多个相关性。
3.权利要求1的方法,其中项目相关性确定还包括:
生成一个或多个候选物;
分析各候选物;
确认各候选物;以及
封装和候选物相关的各项目。
4.权利要求1的方法,其中实体分组及封装还包括:
确定实体间关系;
删除任何冗余的关系;以及
根据实体间关系处理实体。
5.权利要求1的方法,还包括生成一个或多个持续状态表示。
6.权利要求5的方法,其中该持续状态信息为一种格式下,该格式还包括:
生成零个或多个信息块;以及
生成一个或多个实体块。
7.权利要求1的方法,其中所述应用状态提供完整、持续的运行期信息。
8.权利要求1的方法,还包括在计算机系统中的安装、同步、备分、恢复、分析和修理中应用所述应用状态。
9.权利要求8的方法,其中所述计算机系统执行视窗操作系统。
10.一种确定应用状态的方法,用于对具有视窗操作系统的计算机系统进行安装、同步、备分、恢复、分析和修理,其包括:
确定提供与计算机应用相关的预定功能的各实体,包括:
确定用户可访问的各层;
对于每层,基于预定准则列出各根实体;以及
对于每个列出的实体,确定该实体的一个或多个相关性;
确定相关性项目,包括:
生成一个或多个候选物;
分析各候选物;
确认各候选物;以及
封装和候选物相关的各项目;以及
利用预定格式分组所确定的根实体并封装实体组,包括:
确定实体间关系;
删除任何冗余的关系;
根据实体间关系处理实体;以及把各实体置成预定格式。
CN98813215A 1997-12-18 1998-12-16 自动配置生成 Expired - Lifetime CN1113291C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/993,103 US5996073A (en) 1997-12-18 1997-12-18 System and method for determining computer application state
US08/993,103 1997-12-18

Publications (2)

Publication Number Publication Date
CN1284181A CN1284181A (zh) 2001-02-14
CN1113291C true CN1113291C (zh) 2003-07-02

Family

ID=25539093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98813215A Expired - Lifetime CN1113291C (zh) 1997-12-18 1998-12-16 自动配置生成

Country Status (8)

Country Link
US (3) US5996073A (zh)
EP (1) EP1040411A2 (zh)
JP (1) JP2002508561A (zh)
KR (1) KR100623245B1 (zh)
CN (1) CN1113291C (zh)
BR (1) BR9814309A (zh)
IL (1) IL136836A (zh)
WO (1) WO1999031577A2 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5996073A (en) * 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US7076765B1 (en) * 1998-06-24 2006-07-11 Kabushiki Kaisha Toshiba System for hiding runtime environment dependent part
US7246150B1 (en) 1998-09-01 2007-07-17 Bigfix, Inc. Advice provided for offering highly targeted advice without compromising individual privacy
US7197534B2 (en) 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US6263362B1 (en) 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US8914507B2 (en) 1998-09-01 2014-12-16 International Business Machines Corporation Advice provided for offering highly targeted advice without compromising individual privacy
US6256664B1 (en) 1998-09-01 2001-07-03 Bigfix, Inc. Method and apparatus for computed relevance messaging
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US6163859A (en) * 1998-12-02 2000-12-19 Support.Com, Inc. Software vault
US7277919B1 (en) 1999-03-19 2007-10-02 Bigfix, Inc. Relevance clause for computed relevance messaging
US6823376B1 (en) * 1999-04-26 2004-11-23 International Business Machines Corporation Method and system for capturing and storing system changes for application to multiple users and systems in a heterogeneous server environment
US20020174329A1 (en) * 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6370646B1 (en) 2000-02-16 2002-04-09 Miramar Systems Method and apparatus for multiplatform migration
US20020026605A1 (en) * 2000-04-06 2002-02-28 Terry Robert F. System and method for real time monitoring and control of a computer machine environment and configuration profile
US6961765B2 (en) 2000-04-06 2005-11-01 Bbx Technologies, Inc. System and method for real time monitoring and control of networked computers
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
US6880147B1 (en) * 2000-09-07 2005-04-12 Rockwell Collins System and method for developing software utilizing determinative representations
US7305465B2 (en) * 2000-11-15 2007-12-04 Robert Wing Collecting appliance problem information over network and providing remote technical support to deliver appliance fix information to an end user
US20040236843A1 (en) * 2001-11-15 2004-11-25 Robert Wing Online diagnosing of computer hardware and software
US6918112B2 (en) 2000-11-29 2005-07-12 Microsoft Corporation System and method to facilitate installation of components across one or more computers
US7356816B2 (en) * 2001-02-13 2008-04-08 Computer Associates Think, Inc. Method and apparatus for multiplatform migration
US6901446B2 (en) * 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
US6968551B2 (en) * 2001-06-11 2005-11-22 John Hediger System and user interface for generation and processing of software application installation instructions
US7533380B2 (en) * 2002-06-05 2009-05-12 Sap Ag Installation tool for enterprise management systems based on building blocks
US7133872B2 (en) * 2002-11-07 2006-11-07 Palo Alto Research Center Inc. Method and system for unifying component metadata
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US7925246B2 (en) * 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
US7353509B2 (en) * 2003-05-27 2008-04-01 Akamai Technologies, Inc. Method and system for managing software installs in a distributed computer network
US7203745B2 (en) * 2003-05-29 2007-04-10 Akamai Technologies, Inc. Method of scheduling hosts for software updates in a distributed computer network
US20040261060A1 (en) * 2003-06-20 2004-12-23 Haselden J. Kirk Dependency based package deployment
US7281239B2 (en) * 2003-08-22 2007-10-09 Gateway Inc. Method for determining software load process
DE102004015834B3 (de) * 2004-03-31 2005-03-03 Fujitsu Siemens Computers Gmbh Verfahren zur benutzerspezifischen Konfiguration eines Computers aus einer Gruppe von vorbereiteten Computern
US7587706B2 (en) * 2004-05-14 2009-09-08 International Business Machines Corporation Method to provide secure multi-vendor system sizings
US20060026587A1 (en) * 2004-07-28 2006-02-02 Lemarroy Luis A Systems and methods for operating system migration
US7669200B2 (en) * 2004-09-02 2010-02-23 International Business Machines Corporation Resizing an install image
US20060101374A1 (en) * 2004-10-14 2006-05-11 Beng Giap Lim Enterprise management system installer
US20060129601A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation System, computer program product and method of collecting metadata of application programs installed on a computer system
US20070028231A1 (en) * 2005-08-01 2007-02-01 International Business Machines Corporation System and method for start menu and application uninstall synchronization
US9864628B2 (en) * 2005-08-23 2018-01-09 Blackberry Limited Method and system for transferring an application state from a first electronic device to a second electronic device
JP4791910B2 (ja) * 2005-08-26 2011-10-12 株式会社リコー 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
KR100737521B1 (ko) 2005-11-24 2007-07-10 한국전자통신연구원 어플리케이션 상태 정보 수집 및 복원 방법 및 시스템
WO2007076850A2 (de) * 2005-12-31 2007-07-12 Rwth Aachen Verfahren und vorrichtung zum schutz einer sich ständig ändernden datenkonfiguration
US7716461B2 (en) * 2006-01-12 2010-05-11 Microsoft Corporation Capturing and restoring application state after unexpected application shutdown
US7574591B2 (en) * 2006-01-12 2009-08-11 Microsoft Corporation Capturing and restoring application state after unexpected application shutdown
US7966346B1 (en) * 2006-01-23 2011-06-21 Coverity, Inc. Updating groups of items
US8065675B2 (en) * 2007-03-21 2011-11-22 Yahoo! Inc. In-page installer
US20090044195A1 (en) * 2007-05-03 2009-02-12 Kivati Software, Llc method for performing tasks based on differences in machine state
US20090043832A1 (en) * 2007-05-03 2009-02-12 Kivati Software, Llc Method of determining and storing the state of a computer system
US8549494B2 (en) * 2007-06-28 2013-10-01 Symantec Corporation Techniques for parsing electronic files
US8457044B2 (en) 2007-09-24 2013-06-04 Qualcomm Incorporated Selective review of bundled messages from a wireless communication device
CN103678349B (zh) * 2012-09-10 2017-09-26 腾讯科技(深圳)有限公司 一种垃圾数据过滤方法和装置
US11190357B2 (en) * 2018-05-18 2021-11-30 Avive Solutions, Inc. Framework for ensuring software components are not corrupted
CN111428889A (zh) * 2019-01-08 2020-07-17 北京航空航天大学 一种划分外场可更换单元lru的装置和方法
CN110533062B (zh) * 2019-07-12 2024-04-09 平安科技(深圳)有限公司 多型号门控器切换控制方法、装置、电子设备及存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2293741A1 (fr) * 1974-12-04 1976-07-02 Anvar Procede et systeme de rapprochement iteratif et simultane de donnees avec un ensemble de donnees de reference
US4023729A (en) * 1975-10-15 1977-05-17 Eaton Roger W Group communications system
DE3177228D1 (de) * 1980-03-31 1990-12-06 Gen Instrument Corp Fernseh uebertragungsanordnung zum uebertragen von datensignalen.
US5164941A (en) * 1990-01-24 1992-11-17 Canai Computer And Network Architecture Inc. System for implementing improved attempt-and-defer access contention protocol
JPH0658624B2 (ja) * 1990-03-30 1994-08-03 インターナショナル・ビシネス・マシーンズ・コーポレーション グラフィカル・ユーザ・インターフェース管理装置
US5101436A (en) * 1990-05-11 1992-03-31 Optigraphics Corporation Hybrid image editor
EP0458495A3 (en) * 1990-05-21 1993-04-14 Texas Instruments Incorporated Apparatus and method for managing versions and configurations of persistent and transient objects
EP0463251A1 (en) * 1990-06-28 1992-01-02 International Business Machines Corporation Software installation
US5283864A (en) * 1990-10-30 1994-02-01 Wang Laboratories, Inc. Computer apparatus and method for graphical flip book
US5291490A (en) * 1992-02-18 1994-03-01 At&T Bell Laboratories Node for a communication network
US5504879A (en) * 1992-07-16 1996-04-02 International Business Machines Corporation Resolution of relationship source and target in a versioned database management system
WO1994025913A2 (en) * 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
JPH076026A (ja) * 1993-05-28 1995-01-10 Xerox Corp 構成管理及び構成要素の互換性保証方法、ならびに常駐ソフトウェアと移行ソフトウェアの非互換性の排除方法
US5617533A (en) * 1994-10-13 1997-04-01 Sun Microsystems, Inc. System and method for determining whether a software package conforms to packaging rules and requirements
US6052483A (en) * 1994-11-04 2000-04-18 Lucent Technologies Inc. Methods and apparatus for classification of images using distribution maps
US5600565A (en) * 1994-12-22 1997-02-04 International Business Machines Corporation Method and apparatus for error reduction in item packaging
CA2150967C (en) * 1994-12-22 2001-04-03 Jon C. R. Bennett Method and a scheduler for controlling when a server provides service with rate control to an entity
US5666501A (en) * 1995-03-30 1997-09-09 International Business Machines Corporation Method and apparatus for installing software
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US5721824A (en) * 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5996073A (en) * 1997-12-18 1999-11-30 Tioga Systems, Inc. System and method for determining computer application state
US6256505B1 (en) * 1998-05-28 2001-07-03 Ericsson Lnc. GSM transceiver unit equipped for time of arrival measurements
US6163859A (en) * 1998-12-02 2000-12-19 Support.Com, Inc. Software vault

Also Published As

Publication number Publication date
WO1999031577A2 (en) 1999-06-24
US6158001A (en) 2000-12-05
IL136836A0 (en) 2001-06-14
KR20010033354A (ko) 2001-04-25
US5996073A (en) 1999-11-30
KR100623245B1 (ko) 2006-09-11
WO1999031577A3 (en) 1999-08-19
JP2002508561A (ja) 2002-03-19
BR9814309A (pt) 2000-10-10
IL136836A (en) 2004-02-19
US6442684B1 (en) 2002-08-27
CN1284181A (zh) 2001-02-14
EP1040411A2 (en) 2000-10-04

Similar Documents

Publication Publication Date Title
CN1113291C (zh) 自动配置生成
CN1230744C (zh) 一种嵌入式系统软件补丁的实现和控制方法
US6003095A (en) Apparatus and method for demand loading a dynamic link library
US6697835B1 (en) Method and apparatus for high speed parallel execution of multiple points of logic across heterogeneous data sources
CN1149470C (zh) 一种分析面向对象的程序的执行的方法和设备
US6766511B1 (en) Apparatus and method for performing symbolic resolution of modules using static representations of a trace
CN1797342A (zh) 用于增量式封包部署的设备和方法
CN1821964A (zh) 将本机函数内嵌到编译的Java代码中的方法和系统
JP2002508560A (ja) マルチプル・クラスファイルのランタイムイメージへの結合
CN101515248A (zh) 面向对象程序的跟踪方法和系统
CN1508679A (zh) 被管理的文件系统过滤器模型和构造
US6691118B1 (en) Context management system for modular software architecture
US20070198705A1 (en) System and method for integrating resources in a network
EP1055184B1 (en) Native data signatures in a file system
US5819306A (en) Shadow mechanism for a modifiable object oriented system
US5692187A (en) Shadow mechanism having masterblocks for a modifiable object oriented system
CA2402298A1 (en) System and method for preloading classes in a data processing device that does not have a virtual memory manager
US20060168492A1 (en) Graceful load fail over
CN1329309A (zh) 操作系统的多语言用户接口
CN111352631B (zh) 一种接口兼容性检测方法及装置
CN1501252A (zh) 基本输入输出系统自动修复方法及系统
US6742180B1 (en) System and method providing seamless transition of operating system environment
US6944618B2 (en) Method, computer program product, and system for unloading a hierarchical database utilizing segment specific selection criteria
CN1222874C (zh) 动态链接的电脑系统中扩增程序功能的方法
Bubak et al. Convenient use of legacy software in Java with Janet package

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: SUPPORTED SOFTWARE COMPANY

Free format text: FORMER NAME OR ADDRESS: SUPPORT COM INC.

CP01 Change in the name or title of a patent holder

Patentee after: Support software company

Patentee before: Support Com Inc.

ASS Succession or assignment of patent right

Owner name: APTEAN INC.

Free format text: FORMER OWNER: SUPPORT SOFTWARE INC.

Effective date: 20141010

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141010

Address after: Georgia, USA

Patentee after: APTEAN company

Address before: American California

Patentee before: Support software company

CX01 Expiry of patent term

Granted publication date: 20030702

CX01 Expiry of patent term