CN103294563B - 一种对安装单元进行版本冲突检查的方法和系统 - Google Patents

一种对安装单元进行版本冲突检查的方法和系统 Download PDF

Info

Publication number
CN103294563B
CN103294563B CN201210048760.0A CN201210048760A CN103294563B CN 103294563 B CN103294563 B CN 103294563B CN 201210048760 A CN201210048760 A CN 201210048760A CN 103294563 B CN103294563 B CN 103294563B
Authority
CN
China
Prior art keywords
version
dependence
matrix
iuc
row
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 - Fee Related
Application number
CN201210048760.0A
Other languages
English (en)
Other versions
CN103294563A (zh
Inventor
裴洋
张真
朱宾
韩兆兵
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201210048760.0A priority Critical patent/CN103294563B/zh
Priority to US13/776,918 priority patent/US9075695B2/en
Publication of CN103294563A publication Critical patent/CN103294563A/zh
Application granted granted Critical
Publication of CN103294563B publication Critical patent/CN103294563B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种对安装单元进行版本冲突检查的方法和系统,方法包括:接收对至少一个安装单元IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;获得已安装的IU之间的版本依赖关系;根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;以及检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。该方法和系统能够检查安装/更新/卸载的软件与环境中的其它软件版本之间的依赖关系是否合适,从而确定在该环境中安装/更新/卸载该软件是否合适。

Description

一种对安装单元进行版本冲突检查的方法和系统
技术领域
本发明涉及软件版本冲突检查,更具体地,涉及一种对安装单元进行版本冲突检查的方法和系统。
背景技术
目前,IT企业常常需要为他们的客户提供全面的解决方案。在这种全面的解决方案中,IT企业需要为客户部署复杂的IT环境。在该IT环境中,一些基础软件需要和业务集成软件,或者同一软件不同版本的不同组件一起工作。如果在安装过程中,新安装的软件不知道其对该IT环境中其它软件版本的依赖关系,安装可能会失败;或者安装后该新安装的软件不能正常工作;或者安装后造成该IT环境中其它软件不能正常工作。无论哪种情况发生,都会增加软件维护的成本,是IT企业不想看到的,因此,同一系统生命周期中的不同的软件和组件的版本级别依赖关系检查变得越来越重要。
当前软件版本的依赖关系检查一般采用的是静态方法,需要开发人员手动记录和保持软件版本之间的依赖信息,例如通过配置文件记录软件之间的版本依赖信息,软件安装或者更新时,安装程序通过程序员手动或者自动检查新安装或者更新的软件与当前IT环境中其它软件之间的依赖关系是否合理,来确定是否可以安装或者更新当前的软件。在卸载软件时,一般目前很难检查卸载软件是否会对当前系统所安装的软件产生影响以及对哪些软件产生影响。
目前软件系统变得越来越复杂,变化越来越快,上述软件的安装/更新检查已经不能满足大量需求变化;另外,在软件设计之初,软件之间版本依赖关系是很简单的,只关注本身的版本。将来如果软件对其它软件或组件有更复杂的依赖关系,这将带来大量而复杂的代码更改。
发明内容
因此,需要提供一种对安装单元进行版本冲突检查的方法和系统,该方法和系统能够检查安装/更新/卸载的软件与环境中的其它软件版本之间的依赖关系是否合适,从而确定在该环境中安装/更新/卸载该软件是否合适。
根据本发明的一个方面,提供了一种对安装单元IU进行版本冲突检查的方法,包括:
接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;
获得已安装的IU之间的版本依赖关系;
根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;以及
检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。
根据本发明的另一个方面,提供了一种对安装单元IU进行版本冲突检查的系统,包括:
接收模块,被配置为接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;
获得模块,被配置为获得已安装的IU之间的版本依赖关系;
更新模块,被配置为根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;以及
检查模块,被配置为检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2示出了一种对IU进行版本冲突检查的方法的流程;
图3示出了对于全新安装的IU的母本矩阵更新流程;
图4示出了对于更新安装IU的母本矩阵更新流程;
图5示出了检查方法的方法步骤;以及
图6示出了对安装单元IU进行版本冲突检查的系统600的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、模块或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、模块或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、模块或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、模块(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理模块的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理模块执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的模块。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理模块以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令模块(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理模块、或其它设备上,使得在计算机、其它可编程数据处理模块或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程模块上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
在本发明中,软件之间的版本依赖关系记录的形式化表达可以是版本依赖矩阵(VersionDependencyMatrix),版本依赖矩阵记录的数据格式可以有多种实现方法,例如以某种文件格式存储(XML,properties,JSON,文本等等),程序的数据结构,以数据库表记录方式存储等等。
版本依赖矩阵是一个正方形或矩形的矩阵,如表1示出一个版本依赖矩阵的例子,版本依赖矩阵的第一行和第一列表示一组有序的安装单元(InstallableUnit简称IU),安装单元(Installableunit)是一组具有同一版本和依赖关系可安装文件集.它们可以是软件,软件中的一个组件,一组集成的软件,硬件,以及操作系统和操作系统级别的组件。版本依赖矩阵的第一行和第一列的IU的排列顺序应该相同,即表1中的第一行IU1-IU4分别为4个IU,第一列IU1-IU4分别为和第一行对应的4个IU。
表1一个版本依赖矩阵例子
版本依赖矩阵中的单元格表示:
版本依赖矩阵的对角线元素(除去第一行和第一列的元素)的数值表示该IU的安装状态,例如表1中的1.1,1.2,0以及空白:安装状态根据数据值可以分为3种安装状态:i)未安装,代表该IU没有被安装,比如用0表示,例如表1中IU3就没有被安装;ii)已安装或包含,代表该IU被安装到某个已安装的IU集合或包含在某个即将安装的IU集合中,且已知其具体版本,比如用版本表示法表示它的1.1版本,例如表1中安装单元IU1安装的版本为1.1,安装单元IU2安装的版本为1.2;iii)不包含,代表使用该版本依赖矩阵的IU集合(即表1中IU1-IU4的4个IU组成的集合)中不包含该IU,例如表1中安装单元IU4就不包含在该IU集合中。其中,不包含只能出现在即将安装的IU集合中,不能出现在一个已经安装的IU集合中,比如一个已经安装的IU集合是一个已经装好的操作系统中的若干组件,而该操作系统的补丁包(含若干组件)就是一个即将安装的IU集合,在补丁包的版本依赖矩阵中可以出现某些IU的状态是“不包含”,因为实际的情况往往是补丁包带有的很多组件会依赖于补丁包中不包含的组件,版本依赖矩阵只是记录了它们的依赖关系。
该版本依赖矩阵的行n和列c的元素[IUn,IUc]表示第n行第1列的IU对第1行第c列的IU的依赖关系值,其中,n为大于1的整数,c为大于1的整数,且n不等于c。所述元素[IUn,IUc]的范围类型包括以下至少一种:枚举;范围;互斥;无依赖关系。以下依次介绍这几种范围类型:
枚举:列举1个或多个依赖的版本值,值里面也可以是未安装的状态值也可以一个范围值,但不能是互斥的值,比如表1中IU1对IU3的版本依赖是1.1,1.2,代表IU1对IU3的依赖是IU3要安装1.1或1.2版本;IU3对IU1的版本依赖是0,1.0,1.3,代表IU3对IU1的依赖是IU1要么不安装,要么安装1.0或1.3版本。
范围:列举一个依赖的版本值的范围,值只能是版本值,范围型关系值可以和枚举型关系值相结合后利用,例如表1中IU1对IU4的版本依赖是1.1,[1.4,1.7],代表IU1对IU4的依赖是IU4要安装1.1或者1.4到1.7之间的版本。
互斥:代表2个IU不能共存或互不兼容,如果2个IU依赖关系是互斥,那么它们其中一个的状态必须是未安装。比如用-1表示。例如表1中的IU2和IU3之间的依赖。
无依赖关系:代表2个IU不存在任何依赖关系。比如空白,例如表1中的IU4和IU3之间的依赖。
上述用数值表示的依赖关系范围类型都是示意性的,本领域技术人员可以知道,可以采用任何其它数值表达上述依赖关系得范围类型。
表2版本依赖矩阵存在的一种特殊形式
表3表2等同的版本依赖矩阵
表2是版本依赖矩阵存在的一种特殊形式:矩形。其实这种形式等同于删除正方形形式中的某些行或列,并且这些行或列的单元格值都是空白的,表3为表2等同的版本依赖矩阵。所以在版本后续的依赖关系中是否存在版本冲突进行检查时,可以将这种矩形转换成等同的如表3所示的矩阵后,再做更新和检查。
利用上面定义的版本依赖关系,可以检查将要安装/更新/卸载的至少一个IU与已经安装的其它IU版本的依赖关系是否有版本冲突。图2示出了一种对IU进行版本冲突检查的方法的流程,根据图2,该方法包括:在步骤S201,接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;在步骤S202,获得已安装的IU之间的版本依赖关系;在步骤S203,根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;在步骤S204,检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。
本发明的进行版本冲突检查的方法可以应用于以下至少一个场景:一种是全新安装,也就是安装新的IU,即,在所述未更新的已安装的IU之间的版本依赖关系中不存在该新的IU;一种是更新安装,也就是安装旧的IU的另一版本,其中,在所述未更新的已安装的IU之间的版本依赖关系中存在不同于所述另一版本的该旧的IU的版本;另外一种是卸载,也就是说卸载已安装的IU,其中,在已安装的IU之间的版本依赖关系中存在该已安装的IU。
本发明的实施例中的版本依赖关系,可以使用上述的版本依赖矩阵,具体在方法实现以及计算机程序设计中,可以使用任何合适的数据结构来描述该矩阵,例如可以使用二维数组,多个一维数组,表,甚至还可以使用数据库表,或者XML文件等等,只要能描述上述版本依赖矩阵所表示的IU之间的版本依赖关系,就在本发明的保护范围之内。
与该至少一个IU有依赖关系的IU之间的版本依赖矩阵可以由程序员使用上述任何数据格式提供,而已安装的IU之间的版本依赖关系在初始系统中可以为空,随着安装的IU的增多,利用步骤S203逐步更新已安装的IU之间的版本依赖关系。当删除IU后,也利用步骤S203逐步更新已安装的IU之间的版本依赖关系。检查更新后的已安装的IU之间的版本依赖关系是否存在版本冲突可以给软件安装/更新/删除人员提供提示:其操作是否会对现有系统造成问题,从而提醒该人员是否可以进行其操作。
下面将用例子讲解上述方法的步骤S203具体更新实现过程。版本依赖矩阵的更新是指应用与该至少一个IU有依赖关系的IU之间的版本依赖矩阵更新已安装的IU之间的版本依赖矩阵,这里已安装的IU之间的版本依赖矩阵是母本矩阵。
更新过程包括:与该至少一个IU有依赖关系的IU之间的版本依赖矩阵中可以单独包括全新安装,单独包括更新安装,单独包括卸载,也可以包括全新安装、更新安装和卸载的混合操作。
图3示出了对于全新安装的IU的母本矩阵更新流程,根据图3,在步骤S301,在所述已安装的IU之间的版本依赖矩阵的第一行和第一列分别加入该新的IU;新的IU可以通过插入一行和插入一列的方式加入,既可以加在最后一行和最后一列,也可以加在中间行和中间列,只要确保加入后全部IU的排列顺序相同即可;在步骤S302,在所述已安装的IU之间的版本依赖矩阵的新的IU对应的对角线元素加入该新的IU的安装状态;在步骤S303,将与该新的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值加入到所述已安装的IU之间的版本依赖矩阵的对应元素。
以下给出上述步骤的一个具体例子,表4给出一个已安装的IU之间的版本依赖矩阵,即母本矩阵,其中包含IU1和IU2两个IU,表5给出与至少一个IU有依赖关系的IU之间的版本依赖矩阵,该矩阵中包含了一个新的安装单元IU3。其中[IU3,IU3]=1.0代表即将安装的IU3的版本是1.0,[IU3,IU2]=[1.0,2.0]代表IU3对IU2的依赖是从1.0到2.0均可,而IU2不被包含在这个更新中,IU2对IU3也没有任何依赖要求。
表4一个已安装的IU之间的版本依赖矩阵
IU1 IU2
IU1 1.1 1.2,1.3
IU2 1.2
表5一个IU依赖的IU之间的版本依赖矩阵
IU3 IU2
IU3 1.0 [1.0,2.0]
IU2
执行步骤S303过程中,先在母本矩阵表4中补充IU3的行和列,比如在最后一行补充;然后将表5矩阵的元素值更新到表4矩阵中对应单元格中,得到如下新的母本矩阵,如表6所示。更新过程完毕。
表6更新的母本矩阵
IU1 IU2 IU3
IU1 1.1 1.2,1.3
IU2 1.2
IU3 [1.0,2.0] 1.0
图4示出了对于更新安装IU的母本矩阵更新流程,根据图4,在步骤S401,将所述已安装的IU之间的版本依赖矩阵中旧的IU对应的对角线元素更新为该旧的IU另一版本的安装状态;在步骤S402,将与该旧的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值更新到所述已安装的IU之间的版本依赖矩阵的对应元素。更新的方式是找到母本矩阵中对应的依赖关系值,然后用与该至少一个IU依赖有依赖关系的IU之间的版本依赖矩阵的依赖关系值替换母本矩阵的依赖关系值,但如果与该至少一个IU有依赖关系的IU之间的版本依赖矩阵的依赖关系值是不包含,则母本矩阵的对应依赖关系值应更新为未安装(参见不包含的定义)。
以下给出上述步骤的一个具体例子,例如对上述表4的矩阵要更新安装单元IU2的版本,表7示出了与要更新的IU有依赖关系的IU之间的版本依赖矩阵,其中,[IU2,IU2]=1.3代表即将安装的IU2的版本是1.3,而母本矩阵中IU2的版本为1.2,此时代表一个升级的过程。将表7矩阵更新到表4母本矩阵中对应单元格中,得到表8的母本矩阵。
表7要更新的IU依赖的IU之间的版本依赖矩阵
IU2
IU2 1.3
表8更新的母本矩阵
IU1 IU2
IU1 1.1 1.2,1.3
IU2 1.3
更新操作包含版本的升级和回滚,回滚意味着IU的版本降级,并且降级后的低版本曾经被安装使用过。尤其是刚刚更新了更高版本的软件,突然发现其它的问题,需要回滚到原来的旧版本软件的情况。对于这种特殊情况,还有一种优选的实施方式,在该实施方式中,将过去检查成功的版本依赖矩阵存储起来,回滚时加以利用,具体来说首先响应于检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU不存在版本冲突,存储每一次更新后的已安装的IU之间的版本依赖关系以及更新次序;然后响应于安装旧的IU的另一版本,所述根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系包括:从存储的已安装的IU之间的版本依赖关系中获得包含该旧的IU,并且更新次序为最新的已安装的IU之间的版本依赖关系,作为与该该旧的IU有依赖关系的IU之间的版本依赖矩阵。这样就可以利用上述的更新安装的安装单元的更新流程。更新次序可以采用多种表达方式,例如使用更新日期,或者简单采用序号表明更新的先后,等等。
在卸载旧的IU时,更新所述已安装的IU之间的版本依赖关系包括将所述已安装的IU之间的版本依赖矩阵中该旧的IU对应的对角线元素更新为未安装的安装状态。例如对于表4所示的矩阵来卸载安装单元IU2,表9示出了与要更新的IU有依赖关系的IU之间的版本依赖矩阵,其中[IU2,IU2]=0代表IU2为未安装,而表4母本矩阵中IU2的版本为1.2,此时代表即将卸载IU2。更新得到如表10所示的母本矩阵。后续的依赖关系检查会发现这里IU2不能被卸载,因为IU1对IU2是有依赖的。
表9与要更新的IU有依赖关系的IU之间的版本依赖矩阵
IU2
IU2 0
表10母本矩阵
IU1 IU2
IU1 1.1 1.2,1.3
IU2 0
可以在一次混合操作(包含安装、更新、卸载这三个操作中的任何一个或多个操作)中进行一次检查。具体实现时可以分别执行上述安装/更新/卸载时使用的更新步骤,优选地,可以先执行卸载已安装的IU之间的版本依赖矩阵更新,然后再执行安装或更新过程的已安装的IU之间的版本依赖矩阵更新,这样可以使得已安装的IU之间的版本依赖矩阵更新的工作量减少。
在步骤S204中检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。更新后的版本依赖矩阵的检查的目的是检查被更新后的母本矩阵中,各个IU之间的版本依赖关系是否还成立,并对更新母本矩阵中各个IU的安装/更新/卸载操作是否可行输出检查结果。具体来说,图5示出了检查方法的方法步骤,根据图5,该方法包括:在步骤S501,对更新后的已安装的IU之间的版本依赖矩阵中的与所述至少一个IU相关的依赖关系值进行检查;在步骤S502,根据依赖关系值的检查结果评估对该至少一个IU的操作是否合适。
具体在检查一个IU与其它的有依赖关系的IU之间的依赖关系值是否冲突,可以采用以下方法:假设更新后的已安装的IU之间的版本依赖矩阵中的依赖关系值记为[IUn,IUc],IUn代表其它的某个安装单元,IUc代表被检查的安装单元,[IUn,IUc]代表其它IU对被检查IU的依赖关系,对于一个安装单元,依赖关系值使用以下规则检查:
(1)如果[IUn,IUc]的范围类型是无依赖,则[IUn,IUc]的检查结果为无版本冲突;
(2)如果[IUn,IUc]的范围类型是互斥,则检查[IUc,IUn]的范围类型是否也是互斥,并且检查[IUc,IUc]和[IUn,IUn]中至少一个的范围类型是未安装,如果以上都成立,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突;
(3)如果[IUn,IUc]的的范围类型为枚举或范围,检查[IUc,IUc]的值是否在每个[IUn,IUc]的值的范围内,如果是,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突。
在一种实施方式中,对更新后的版本依赖矩阵中的每一个IU,获得该IU所在的列的依赖关系值,依次进行检查,检查完毕就可以得到该IU的全部依赖关系值检查结果,从而分析对该IU的操作-例如安装、更新或卸载是否会出现问题。然后依次对其它IU进行检查。
下面给出根据一个上述实施例检查的一个例子,表11是对要求安装IU3,更新IU4以及卸载IU1的更新后的已安装的IU之间的版本依赖矩阵,要求检查上述安装IU3,更新IU4以及卸载IU1的动作是否可行。
具体检查中,检查IU3,在表11的母本矩阵中找到IU3所在的列,分别检查[IU1,IU3]、[IU2,IU3]以及[IU4,IU3],检查结果为“不冲突,冲突,不冲突”。具体检查过程为:[IU1,IU3]空白,代表IU1对IU3没有依赖,检查不冲突;[IU2,IU3]是互斥,则同时检查[IU3,IU2],[IU3,IU2]为互斥,再检查[IU3,IU3]和[IU2,IU2],发现它们都不为未安装状态,则互斥不成立,检查冲突;[IU4,IU3]空白,代表IU4对IU3没有依赖,检查不冲突。
检查IU4,在表11的母本矩阵找到IU4所在的列,分别检查[IU1,IU4]、[IU2,IU4]以及[IU3,IU4],IU4的检查结果为“不冲突,不冲突,不冲突”。具体检查过程为:[IU1,IU4]空白,代表IU1对IU4没有依赖,检查不冲突;[IU2,IU4]是枚举依赖0,1.3,1.5,看[IU4,IU4]=1.3是否在该枚举值范围,检查不冲突;[IU3,IU4]是枚举依赖1.2,1.3,看[IU4,IU4]=1.3是否在该枚举值范围,不在该范围,检查不冲突。
表11对要求安装IU3,更新IU4以及卸载IU1的更新后的已安
装的IU之间的版本依赖矩阵
IU1 IU2 IU3 IU4
IU1 0 [1.0,1.3]
IU2 1.1 -1 0,1.3,1.5
IU3 -1 1.0 1.2,1.3
IU4 1.0 (1.0,1.4] 1.3
检查IU1,在表11母本矩阵中找到IU1所在的列,分别检查[IU2,IU1]、[IU3,IU1]以及[IU4,IU1],IU1的检查结果为“不冲突,不冲突,冲突”。具体检查过程为:[IU2,IU1]空白,代表IU2对IU1没有依赖,检查不冲突;[IU3,IU1]空白,代表IU3对IU1没有依赖,检查不冲突。[IU4,IU1]是枚举依赖1.0,看[IU1,IU1]=0是否在该枚举值范围,由于IU1被卸载处于未安装状态,检查冲突。
因此,上述的检查结果表明:IU3的安装不可行,IU4的更新可行,IU1的卸载不可行。
在另一种实施方式中,也可以对更新后的母本依赖矩阵中的每一个安装单元,获得该安装单元所在的行的依赖关系值,利用和列相同的方法进行检查。
甚至,可以对更新的母本矩阵从矩阵的任何一个依赖关系值开始检查,最后,在全部依赖关系值的检查结果中找出需要检查的安装单元的检查结果并输出分析结果。
在同一个发明构思下,本发明还公开了一种对安装单元IU进行版本冲突检查的系统,图6示意性地示出了对安装单元IU进行版本冲突检查的系统600的结构框图,根据图6,系统600包括:接收模块601,被配置为接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;获得模块602,被配置为获得已安装的IU之间的版本依赖关系;更新模块603,被配置为根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;检查模块604,被配置为检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突。
系统600中,版本依赖关系可以使用版本依赖矩阵表示,其中该版本依赖矩阵的第一行和第一列分别表示一组有序的IU,并且第一行和第一列的IU的排列顺序相同;该版本依赖矩阵的除去第一行和第一列元素的对角线元素表示该行或列所表示的IU的安装状态;该版本依赖矩阵的行n和列c的元素[IUn,IUc]表示第n行第1列的IU对第1行第c列的IU的依赖关系值,其中,n为大于1的整数,c为大于1的整数,且n不等于c。其中所述元素[IUn,IUc]的范围类型包括以下至少一种:枚举;范围;互斥;无依赖关系。版本依赖矩阵可以使用合适的数据结构来表示,包括一维或多维数组,表格,数据库表等等。
系统600应用于对所述至少一个IU的以下至少一个操作:I)安装新的IU,其中,在所述未更新的已安装的IU之间的版本依赖关系中不存在该新的IU;II)安装旧的IU的另一版本,其中,在所述未更新的已安装的IU之间的版本依赖关系中存在不同于所述另一版本的该旧的IU的版本;III)卸载已安装的IU,其中,在所述未更新的已安装的IU之间的版本依赖关系中存在该已安装的IU。也就是说,系统600可以应用于同时对多个软件的不同操作,例如依次进行3个软件的安装、2个软件的更新和五个软件的删除同时进行检查。
在一种实施方式中,响应于安装新的IU,所述更新模块执行的操作包括:在所述已安装的IU之间的版本依赖矩阵的第一行和第一列分别加入该新的IU;在所述已安装的IU之间的版本依赖矩阵的新的IU对应的对角线元素加入该新的IU的安装状态;以及将与该新的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值加入到所述已安装的IU之间的版本依赖矩阵的对应元素。
在另一种实施方式中,系统600还包括存储模块(图6未示出),被配置为响应于检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU不存在版本冲突,存储每一次更新后的已安装的IU之间的版本依赖关系以及更新次序;这样,响应于安装旧的IU的另一版本,所述更新模块执行的操作还包括:从存储的已安装的IU之间的版本依赖关系中获得包含该旧的IU,并且更新次序为最新的已安装的IU之间的版本依赖关系,作为与该该旧的IU有依赖关系的IU之间的版本依赖矩阵。这种存储对于软件版本更新比较重要,这样在安装旧的IU的另一版本时,所述更新模块执行的操作包括:在所述已安装的IU之间的版本依赖矩阵中旧的IU对应的对角线元素更新该旧的IU的安装状态;将与该旧的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值更新到所述已安装的IU之间的版本依赖矩阵的对应元素。
在又一种实施方式中,系统600在卸载旧的IU时,所述更新模块执行的操作包括:将所述已安装的IU之间的版本依赖矩阵中该旧的IU对应的对角线元素更新为未安装的安装状态。
无论对于安装新软件,更新现有软件的版本还是卸载软件,当得到更新后的已安装的IU之间的版本依赖关系后,检查的方式都是类似的。检查模块604执行的操作包括:对更新后的已安装的IU之间的版本依赖矩阵中的与所述至少一个IU相关的依赖关系值进行检查;根据依赖关系值的检查结果评估对该至少一个IU的操作是否合适。依赖关系值检查使用以下规则检查:
(1)如果[IUn,IUc]的范围类型是无依赖,则[IUn,IUc]的检查结果为无版本冲突;
(2)如果[IUn,IUc]的范围类型是互斥,则检查[IUc,IUn]的范围类型是否也是互斥,并且检查[IUc,IUc]和[IUn,IUn]中至少一个的范围类型是未安装,如果以上都成立,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突;
(3)如果[IUn,IUc]的的范围类型为枚举或范围,检查[IUc,IUc]的值是否在每个[IUn,IUc]的值的范围内,如果是,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突。
本发明还包括一种计算机程序产品,当所述计算机程序产品运行在计算机中时,用于执行上述方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (18)

1.一种对安装单元IU进行版本冲突检查的方法,包括:
接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;
获得已安装的IU之间的版本依赖关系;
根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;以及
检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突;
其中所述版本依赖关系使用版本依赖矩阵表示,其中
该版本依赖矩阵的第一行和第一列分别表示一组有序的IU,并且第一行和第一列的IU的排列顺序相同;
该版本依赖矩阵的除去第一行和第一列元素的对角线元素表示该行或列所表示的IU的安装状态;
该版本依赖矩阵的行n和列c的元素[IUn,IUc]表示第n行第1列的IU对第1行第c列的IU的依赖关系值,其中,n为大于1的整数,c为大于1的整数,且n不等于c。
2.根据权利要求1所述的方法,其中所述元素[IUn,IUc]的范围类型包括以下至少一种:枚举;范围;互斥;无依赖关系。
3.根据权利要求2所述的方法,其中所述方法应用于对所述至少一个IU的以下至少一个操作:
I)安装新的IU,其中,在未更新的已安装的IU之间的版本依赖关系中不存在该新的IU;
II)安装旧的IU的另一版本,其中,在未更新的已安装的IU之间的版本依赖关系中存在不同于所述另一版本的该旧的IU的版本;
III)卸载已安装的IU,其中,在未更新的已安装的IU之间的版本依赖关系中存在该已安装的IU。
4.根据权利要求3所述的方法,其中响应于安装新的IU,所述根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系包括:
在所述已安装的IU之间的版本依赖矩阵的第一行和第一列分别加入该新的IU;
在所述已安装的IU之间的版本依赖矩阵的新的IU对应的对角线元素加入该新的IU的安装状态;
将与该新的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值加入到所述已安装的IU之间的版本依赖矩阵的对应元素。
5.根据权利要求3所述的方法,其中还包括响应于检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU不存在版本冲突,存储每一次更新后的已安装的IU之间的版本依赖关系以及更新次序;
响应于安装旧的IU的另一版本,其中所述根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系包括:
从存储的已安装的IU之间的版本依赖关系中获得包含该旧的IU,并且更新次序为最新的已安装的IU之间的版本依赖关系,作为与该旧的IU有依赖关系的IU之间的版本依赖矩阵。
6.根据权利要求5所述的方法,其中在安装旧的IU的另一版本时,所述根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系包括:
将所述已安装的IU之间的版本依赖矩阵中旧的IU对应的对角线元素更新为该旧的IU另一版本的安装状态;
将与该旧的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值更新到所述已安装的IU之间的版本依赖矩阵的对应元素。
7.根据权利要求3所述的方法,其中在卸载旧的IU时,所述根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系包括:
将所述已安装的IU之间的版本依赖矩阵中该旧的IU对应的对角线元素更新为未安装的安装状态。
8.根据权利要求3-7之一所述的方法,其中所述检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突包括:
对更新后的已安装的IU之间的版本依赖矩阵中的与所述至少一个IU相关的依赖关系值进行检查;
根据依赖关系值的检查结果评估对该至少一个IU的操作是否合适。
9.根据权利要求8所述的方法,其中依赖关系值检查使用以下规则检查:
(1)如果[IUn,IUc]的范围类型是无依赖,则[IUn,IUc]的检查结果为无版本冲突;
(2)如果[IUn,IUc]的范围类型是互斥,则检查[IUc,IUn]的范围类型是否也是互斥,并且检查[IUc,IUc]和[IUn,IUn]中至少一个的范围类型是未安装,如果以上都成立,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突;
(3)如果[IUn,IUc]的的范围类型为枚举或范围,检查[IUc,IUc]的值是否在每个[IUn,IUc]的值的范围内,如果是,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突。
10.一种对安装单元IU进行版本冲突检查的系统,包括:
接收模块,被配置为接收对至少一个IU进行版本冲突检查的请求,该请求中包含与该至少一个IU有依赖关系的IU之间的版本依赖关系;
获得模块,被配置为获得已安装的IU之间的版本依赖关系;
更新模块,被配置为根据所述与该至少一个IU有依赖关系的IU之间的版本依赖关系更新所述已安装的IU之间的版本依赖关系;以及
检查模块,被配置为检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU是否存在版本冲突;
其中所述版本依赖关系使用版本依赖矩阵表示,其中
该版本依赖矩阵的第一行和第一列分别表示一组有序的IU,并且第一行和第一列的IU的排列顺序相同;
该版本依赖矩阵的除去第一行和第一列元素的对角线元素表示该行或列所表示的IU的安装状态;
该版本依赖矩阵的行n和列c的元素[IUn,IUc]表示第n行第1列的IU对第1行第c列的IU的依赖关系值,其中,n为大于1的整数,c为大于1的整数,且n不等于c。
11.根据权利要求10所述的系统,其中所述元素[IUn,IUc]的范围类型包括以下至少一种:枚举;范围;互斥;无依赖关系。
12.根据权利要求11所述的系统,其中所述系统应用于对所述至少一个IU的以下至少一个操作:
I)安装新的IU,其中,在未更新的已安装的IU之间的版本依赖关系中不存在该新的IU;
II)安装旧的IU的另一版本,其中,在未更新的已安装的IU之间的版本依赖关系中存在不同于所述另一版本的该旧的IU的版本;
III)卸载已安装的IU,其中,在已安装的IU之间的版本依赖关系中存在该已安装的IU。
13.根据权利要求12所述的系统,其中响应于安装新的IU,所述更新模块执行的操作包括:
在所述已安装的IU之间的版本依赖矩阵的第一行和第一列分别加入该新的IU;
在所述已安装的IU之间的版本依赖矩阵的新的IU对应的对角线元素加入该新的IU的安装状态;
将与该新的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值加入到所述已安装的IU之间的版本依赖矩阵的对应元素。
14.根据权利要求12所述的系统,其中还包括存储模块,被配置为响应于检查更新后的已安装的IU之间的版本依赖关系中该至少一个IU不存在版本冲突,存储每一次更新后的已安装的IU之间的版本依赖关系以及更新次序;
响应于安装旧的IU的另一版本,所述更新模块执行的操作还包括:
从存储的已安装的IU之间的版本依赖关系中获得包含该旧的IU,并且更新次序为最新的已安装的IU之间的版本依赖关系,作为与该旧的IU有依赖关系的IU之间的版本依赖矩阵。
15.根据权利要求14所述的系统,其中在安装旧的IU的另一版本时,所述更新模块执行的操作包括:
将所述已安装的IU之间的版本依赖矩阵中旧的IU对应的对角线元素更新为该旧的IU另一版本的安装状态;
将与该旧的IU有依赖关系的IU之间的版本依赖矩阵所描述的依赖关系值更新到所述已安装的IU之间的版本依赖矩阵的对应元素。
16.根据权利要求12所述的系统,其中在卸载旧的IU时,所述更新模块执行的操作包括:
将所述已安装的IU之间的版本依赖矩阵中该旧的IU对应的对角线元素更新为未安装的安装状态。
17.根据权利要求12-16之一所述的系统,其中所述检查模块执行的操作包括:
对更新后的已安装的IU之间的版本依赖矩阵中的与所述至少一个IU相关的依赖关系值进行检查;
根据依赖关系值的检查结果评估对该至少一个IU的操作是否合适。
18.根据权利要求17所述的系统,其中依赖关系值检查使用以下规则检查:
(1)如果[IUn,IUc]的范围类型是无依赖,则[IUn,IUc]的检查结果为无版本冲突;
(2)如果[IUn,IUc]的范围类型是互斥,则检查[IUc,IUn]的范围类型是否也是互斥,并且检查[IUc,IUc]和[IUn,IUn]中至少一个的范围类型是未安装,如果以上都成立,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突;
(3)如果[IUn,IUc]的的范围类型为枚举或范围,检查[IUc,IUc]的值是否在每个[IUn,IUc]的值的范围内,如果是,则[IUn,IUc]的检查结果为无版本冲突,否则检查结果为有版本冲突。
CN201210048760.0A 2012-02-28 2012-02-28 一种对安装单元进行版本冲突检查的方法和系统 Expired - Fee Related CN103294563B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210048760.0A CN103294563B (zh) 2012-02-28 2012-02-28 一种对安装单元进行版本冲突检查的方法和系统
US13/776,918 US9075695B2 (en) 2012-02-28 2013-02-26 Version conflict checking to installable unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210048760.0A CN103294563B (zh) 2012-02-28 2012-02-28 一种对安装单元进行版本冲突检查的方法和系统

Publications (2)

Publication Number Publication Date
CN103294563A CN103294563A (zh) 2013-09-11
CN103294563B true CN103294563B (zh) 2016-03-09

Family

ID=49004739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210048760.0A Expired - Fee Related CN103294563B (zh) 2012-02-28 2012-02-28 一种对安装单元进行版本冲突检查的方法和系统

Country Status (2)

Country Link
US (1) US9075695B2 (zh)
CN (1) CN103294563B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256413B2 (en) * 2012-04-17 2016-02-09 Sap Se Automatic identification of services
US9182966B2 (en) * 2013-12-31 2015-11-10 International Business Machines Corporation Enabling dynamic software installer requirement dependency checks
TWI520066B (zh) * 2014-03-12 2016-02-01 緯創資通股份有限公司 基本輸入輸出系統更新方法及電腦可讀取儲存媒體
US9880827B2 (en) * 2015-08-30 2018-01-30 International Business Machines Corporation Managing software version upgrades in a multiple computer system environment
US10083029B2 (en) * 2016-11-09 2018-09-25 Red Hat, Inc. Detect application defects by correlating contracts in application dependencies
CN107678936B (zh) * 2017-06-25 2021-02-09 平安科技(深圳)有限公司 业务系统预先稽查方法、服务器及计算机可读存储介质
CN111052074A (zh) * 2017-09-27 2020-04-21 英特尔公司 具有自描述依从性信息的固件组件
CN108334334B (zh) * 2018-03-07 2022-02-01 政采云有限公司 一种管理依赖包版本的方法和系统
CN109471641B (zh) * 2018-11-12 2022-05-03 中通客车股份有限公司 新能源客车多控制器程序自动批量刷写系统及方法
CN111309370B (zh) * 2019-11-15 2023-08-15 上海金融期货信息技术有限公司 多项目多系统环境的版本号有向图排序稽核方法和系统
CN111736848B (zh) * 2020-06-15 2023-08-22 北京奇艺世纪科技有限公司 包冲突定位方法、装置、电子设备及可读存储介质
CN112214408A (zh) * 2020-10-12 2021-01-12 北京字节跳动网络技术有限公司 依赖冲突检测方法、装置、电子设备及计算机可读介质
US11422795B2 (en) * 2020-11-23 2022-08-23 Cerner Innovation, Inc. System and method for predicting the impact of source code modification based on historical source code modifications
US11281460B1 (en) 2020-11-23 2022-03-22 Cerner Innovation, Inc. System and method for identifying source code defect introduction during source code modification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324900A (zh) * 2008-07-30 2008-12-17 金蝶软件(中国)有限公司 一种打开图形使用者界面的方法、装置及系统
CN101984410A (zh) * 2010-11-12 2011-03-09 中兴通讯股份有限公司 软件安装包的生成、卸载方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442753B1 (en) 1997-08-28 2002-08-27 International Business Machines Corporation Apparatus and method for checking dependencies among classes in an object-oriented program
US6442754B1 (en) 1999-03-29 2002-08-27 International Business Machines Corporation System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
US7185027B2 (en) * 2002-07-11 2007-02-27 Cisco Technology, Inc. Evolving entries within persistent stores in a scalable infrastructure environment
US7434202B2 (en) 2002-09-05 2008-10-07 Bea Systems, Inc. System and method for software component dependency checking
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US7174540B2 (en) 2003-06-16 2007-02-06 Microsoft Corporation Component dependency matrices
US7822795B2 (en) 2003-09-19 2010-10-26 Lattix, Inc. Apparatus and methods for displaying and determining dependency relationships among subsystems in a computer software system
EP1671268A4 (en) 2003-09-19 2006-12-06 Lattix Inc DEVICE AND METHOD FOR MANAGING THE DESIGN OF A SOFTWARE SYSTEM USING A DEPENDENCE STRUCTURE
US7415706B1 (en) * 2003-12-01 2008-08-19 Cisco Technology, Inc. Dynamic handling of multiple software component versions for device management
US20060031827A1 (en) 2004-08-05 2006-02-09 International Business Machines Corporation System, apparatus and method of assisting with software product update installations
US7457674B2 (en) * 2004-08-27 2008-11-25 Siemens Corporate Research, Inc. System, device, and methods for updating system-monitoring models
EP1739552A1 (en) * 2005-06-21 2007-01-03 Hewlett-Packard Development Company, L.P. Software installation method and computer system
US7506336B1 (en) 2005-06-29 2009-03-17 Emc Corporation System and methods for version compatibility checking
US7984436B1 (en) * 2005-09-27 2011-07-19 Intuit Inc. Management of compatibility of software products installed on a user's computing device
DE102006009374B4 (de) * 2006-03-01 2009-06-04 Koenig & Bauer Aktiengesellschaft Verfahren zur Speicherung von Daten mindestens einer Komponente einer mehrere Komponenten und mindestens ein Kommunikationsnetzwerk aufweisenden Druckmaschine
US7802082B2 (en) * 2006-08-31 2010-09-21 Intel Corporation Methods and systems to dynamically configure computing apparatuses
US8650539B2 (en) * 2006-12-21 2014-02-11 Siemens Aktiengesellschaft Method for mapping the structure of a complex software product
US8091079B2 (en) * 2007-08-29 2012-01-03 International Business Machines Corporation Implementing shadow versioning to improve data dependence analysis for instruction scheduling
US20120054731A1 (en) * 2010-08-24 2012-03-01 International Business Machines Corporation Method, System and Computer Programs to Assist Migration to a Cloud Computing Environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324900A (zh) * 2008-07-30 2008-12-17 金蝶软件(中国)有限公司 一种打开图形使用者界面的方法、装置及系统
CN101984410A (zh) * 2010-11-12 2011-03-09 中兴通讯股份有限公司 软件安装包的生成、卸载方法及装置

Also Published As

Publication number Publication date
US9075695B2 (en) 2015-07-07
US20130227542A1 (en) 2013-08-29
CN103294563A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
CN103294563B (zh) 一种对安装单元进行版本冲突检查的方法和系统
US10324830B2 (en) Conditional upgrade and installation of software based on risk-based validation
US8423963B2 (en) Computer implemented API management mechanism for generating upgrade risk level handling
US8473916B2 (en) Method and system for providing a testing framework
US11157390B2 (en) Automatic software defect repair
US9104796B2 (en) Correlation of source code with system dump information
US8495425B2 (en) System and method to efficiently identify bad components in a multi-node system utilizing multiple node topologies
US9600395B2 (en) Software quality evaluating system and methods for determining an extent of software code changes
CN107678936B (zh) 业务系统预先稽查方法、服务器及计算机可读存储介质
US20170235661A1 (en) Integration of Software Systems via Incremental Verification
US8954949B2 (en) Smart patch delivery system
CN110674047B (zh) 软件测试方法、装置及电子设备
CN104765621A (zh) 一种在集群节点中部署程序的方法和系统
CN107562419B (zh) 软件开发支援方法及系统
US20160291968A1 (en) Deploying incremental scripts
CN106681783A (zh) 一种svn代码检测方法及其系统
US9134975B1 (en) Determining which computer programs are candidates to be recompiled after application of updates to a compiler
JP2015011372A (ja) デバッグ支援システム、方法、プログラム及び記録媒体
Park et al. Fragmentation problem in Android
US20160055074A1 (en) Program analysis device, program analysis method, and program analysis program
US20160335301A1 (en) Generating context tree data based on a tailored data model
CN112559373B (zh) 一种软件兼容性管理方法和系统
CN111352610A (zh) 接口返回值修改方法、装置、电子设备及存储介质
US20100191867A1 (en) Systems and Methods for Performing Field Updates of Firmware
JP2013114437A (ja) システム構築支援方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160309

Termination date: 20210228

CF01 Termination of patent right due to non-payment of annual fee