CN111666079A - 软件升级的方法、装置、系统、设备和计算机可读介质 - Google Patents

软件升级的方法、装置、系统、设备和计算机可读介质 Download PDF

Info

Publication number
CN111666079A
CN111666079A CN201910163654.9A CN201910163654A CN111666079A CN 111666079 A CN111666079 A CN 111666079A CN 201910163654 A CN201910163654 A CN 201910163654A CN 111666079 A CN111666079 A CN 111666079A
Authority
CN
China
Prior art keywords
software
upgraded
upgrading
project
jar package
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.)
Granted
Application number
CN201910163654.9A
Other languages
English (en)
Other versions
CN111666079B (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.)
Beijing Jingbangda Trade Co Ltd
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910163654.9A priority Critical patent/CN111666079B/zh
Publication of CN111666079A publication Critical patent/CN111666079A/zh
Application granted granted Critical
Publication of CN111666079B publication Critical patent/CN111666079B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本发明公开了一种软件升级的方法、装置、系统、设备和计算机可读介质,涉及计算机技术领域。该方法的一具体实施方式包括:在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。该实施方式能够提高软件升级效率。

Description

软件升级的方法、装置、系统、设备和计算机可读介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件升级的方法、装置、系统、设备和计算机可读介质。
背景技术
在计算机技术领域,软件迭代是一个不可或缺的过程。Java归档文件(JavaArchive,JAR)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JAR文件格式以流行的ZIP文件格式为基础,因此也将JAR文件格式的文件称为JAR包。与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件以及插件程序,并可被编译器和Java虚拟机(Java Virtual Machine,JVM)等工具直接使用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
如果项目是分布式系统,或者需要升级多个项目,那么软件中的JAR包升级工作将是一个漫长繁琐的过程,且JAR包升级过程中由于升级的操作人不同,可能导致出现问题,因此存在升级效率较低的技术问题。
发明内容
有鉴于此,本发明实施例提供一种软件升级的方法、装置、系统、设备和计算机可读介质,能够提高软件升级效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种软件升级的方法,包括:
在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;
在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。
所述在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告,包括:
在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述升级后软件的实测报告记载JAR包的冲突,列出冲突的JAR包的引用树,通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包;
根据所述优化后的JAR包得到优化后升级后软件,测试所述优化后升级软件生成的WAR包,更新所述升级后软件的实测报告。
所述通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包,包括:
排除冲突的JAR包,重新加载JAR包引用关系,生成优化后的JAR包。
所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级,包括:
接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括全部升级;
向所述项目中所有所述待升级软件发送所述WAR包,对项目中的所述待升级软件进行升级。
所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级,包括:
接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括选择升级;
向所述项目中所述选择升级对应的所述待升级软件发送所述WAR包,对所述对应的所述待升级软件进行升级。
所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级之后,还包括:
测试项目中升级后软件,记录所述升级后软件的测试结果。
根据本发明实施例的第二方面,提供了一种软件升级的装置,包括:
软件模块,用于在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;
测试模块,用于控制在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
升级模块,用于接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。
所述测试模块,具体用于控制在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述升级后软件的实测报告记载JAR包的冲突,列出冲突的JAR包的引用树,通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包;
根据所述优化后的JAR包得到优化后升级后软件,测试所述优化后升级软件生成的WAR包,更新所述升级后软件的实测报告。
所述测试模块,具体用于控制排除冲突的JAR包,重新加载JAR包引用关系,生成优化后的JAR包。
所述升级模块,具体用于接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括全部升级;
向所述项目中所有所述待升级软件发送所述WAR包,对项目中的所述待升级软件进行升级。
所述升级模块,具体用于接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括选择升级;
向所述项目中所述选择升级对应的所述待升级软件发送所述WAR包,对所述对应的所述待升级软件进行升级。
所述装置还包括测试模块,用于测试项目中升级后软件,记录所述升级后软件的测试结果。
根据本发明实施例的第三方面,提供了一种软件升级的系统,其特征在于,包括上述软件升级的装置、生产系统、测试机和数据库;
所述数据库,用于发送待升级软件中的JAR包;
所述软件升级的装置,用于接收升级后的JAR包和待升级软件中的JAR包,发送实测报告;
所述测试机,用于在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述生成系统,用于接收所述实测报告,并发送基于所述实测报告的升级指令。
根据本发明实施例的第四方面,提供了一种软件升级的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的方法。
根据本发明实施例的第五方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述的方法。
上述发明中的一个实施例具有如下优点或有益效果:在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件。在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告。这样,用户可以基于升级后软件的实测报告决定是否需要升级,确定需要升级则发送升级指令。接收基于升级后软件的实测报告的升级指令,按照升级指令对项目中的待升级软件进行升级。
可见,软件升级是在实测报告的基础上,通过升级指令进行升级,因此可以在满足用户需求的基础上提高软件升级效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的软件升级的系统的主要结构示意图;
图2是根据本发明实施例的软件升级的方法主要流程的示意图;
图3是根据本发明实施例的软件升级的装置主要结构的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
软件中的JAR包升级,例如:JAR包中存在安全漏洞,需要及时的更新升级。如果包括JAR包的软件涉及的项目是部署在分布式系统,或者多项目环境中,即:需要升级包括JAR包的软件涉及多个项目,那么JAR包的升级将是一个漫长繁琐的过程。
而且,JAR包升级通常是人工控制升级全流程,易出现遗漏升级等问题,因此存在升级效率较低的技术问题。
参见图1,图1是根据本发明实施例的软件升级的系统的主要结构示意图。软件升级的系统具体包括:软件升级的装置、生产系统、测试机和数据库。
软件升级的装置分别与生产系统、测试机和数据库相连。软件升级的装置可以实现本发明实施例中软件升级的方法。
数据库,用于发送待升级软件中的JAR包。
测试机,用于在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告。
生成系统,用于接收实测报告,并发送基于实测报告的升级指令。
生产系统中的服务器是执行项目的设备,项目中包括待升级的软件。生产系统在首次与软件升级的装置连接,则需要将生产系统中服务器的信息注册到ZooKeeper。软件升级的装置可以从ZooKeeper获取服务器的信息。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
作为一个示例,服务器的信息可以包括:服务器所属项目,服务器的IP地址,服务器的jdk版本,服务器的tomcat版本,项目的数据库地址和系统管理人的信息。其中,系统管理人的信息可以包括:名称、账号和邮箱等。
jdk是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
测试机是用于测试升级后软件,作为一个示例:测试机可以是Docker。
测试机在首次与软件升级的装置连接,则需要将测试机注册到ZooKeeper。软件升级的装置可以从ZooKeeper获取测试机的信息。
作为一个示例,测试机的信息包括:测试机的IP地址,测试机的jdk版本,测试机的tomcat版本等。
数据库中包括生产系统中项目的待升级软件的源代码。
参见图2,图2是根据本发明实施例的软件升级的方法主要流程的示意图,具体包括以下步骤:
S201、在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件。
在分布式系统或多项目环境中,系统迭代人员通过访问软件升级的装置上传升级后的JAR包。系统迭代人员在软件升级的装置中上传升级后的JAR包,升级后的JAR包是在原JAR包的基础上生成的。
在上传升级后的JAR包的同时,还可以针对升级后的JAR包上传JAR包信息。作为一个示例,JAR包信息可以包括:JAR包的maven描述,JAR包升级的原因,及JAR包手动升级说明。maven是可以通过一段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
对于JAR包的各个版本,生成不同的升级后的JAR包。也就是说,JAR包的版本不同,则对应的升级后的JAR包也是不同。可以通过JAR包信息区别不同的升级后的JAR包。
在系统迭代人员上传升级后的JAR包至软件升级的装置后,则可以从ZooKeeper获取所有生产系统中服务器的信息,以及测试机的信息。
考虑到,每个生产系统中服务器的信息的差异性,可以基于服务器的信息针对生产系统中待升级软件的版本,有针对性的进行升级。作为一个示例,通过获取生产系统中服务器的信息,获知服务器的jdk版本。针对服务器的jdk版本,确定升级后的JAR包,进而获得升级后软件。
继续参见图1,图1中数据库中存储有待升级软件的源代码,为了避免影响项目中软件的正常运行,则可以从数据库获取待升级软件的源代码,扫描其中涉及待升级软件中的JAR包。依据升级后的JAR包,替换扫描到涉及待升级软件中的JAR包,得到升级后软件。
在本发明的实施例中,数据库可以是maven仓库,在maven仓库中存储有待升级软件的源代码。可以从maven仓库中直接获取待升级软件的源代码。
S202、在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告。
升级后软件需要在运行环境中进行测试,对于不同生产系统中的项目,其运行环境可能相同,也有可能不同。那么,需要在与项目中待升级软件相同的运行环境中,测试升级后软件。测试的目的在于生成升级后软件的实测报告。
具体来说,首先根据生产系统中服务器的信息,在测试机中构建与项目中待升级软件相同的运行环境。可以将上述运行环境理解为项目中待升级软件所需的软件运行环境。
其次,由升级后软件生成WAR包,以便于测试机进行测试。WAR包是一个Web应用程序,建立WAR文件,就是把整个Web应用程序压缩起来,指定一个.war扩展名。
之后,测试机测试由升级后软件生成的WAR包,生成升级后软件的实测报告。作为一个示例,实测报告包括,升级后的JAR包的maven描述、JAR包的升级原因、JAR包的系统迭代人员、JAR的上传时间等。
在本发明实施例中,得到升级后软件后并非直接应用于项目中,而是在项目中待升级软件相同的运行环境中,测试升级后的软件后生成实测报告。
用户基于实测报告决定是否升级。
在本发明的一个实施例中,实测报告中记载有JAR包的冲突,即一个JAR包存在多个版本,在升级后软件中引用不同版本的JAR包,从而造成JAR包的冲突。
在实测报告记载JAR包的冲突的情况下,则可以列出冲突的JAR包的引用树。通过引用树能够获知冲突的JAR包。
引用树是允许列出特定资源的引用链的工具。引用链是引用列表,列表中的每个对象都引用列表中该对象的下面的那个对象。通过引用树很容易地知道JAR包是如何被引用的。
通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包。可以预设冲突解决策略,其目的在于解决冲突的JAR包。作为一个示例,可以从冲突的JAR包中选择最新版本的JAR包。冲突的JAR包替换为版本一致即均为最新版本的JAR包,则可以避免冲突。
优化JAR包的冲突后,根据优化后的JAR包得到优化后升级后软件。即:根据优化后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到优化后升级后软件。
再次测试优化后升级软件生成的WAR包,得到升级后软件的实测报告,可以以最新的实测报告更新之前的实测报告。
在本发明实施例中,存在JAR包的冲突的情况下,列出冲突的JAR包的引用树,并优化该冲突的JAR包,从而可以自动解决JAR包冲突的情况
在本发明的一个实施例中,通过预设解决策略优化冲突的JAR包具体可以包括:
可以排除冲突的JAR包,作为一个示例,利用maven中配置的exclude函数排除冲突的JAR包。然后,重新加载JAR包引用关系,生成修改后的JAR。作为一个示例,基于maven的加载机制重新加载JAR包引用关系,其中,maven的加载机制包括以下三者中的至少一种:最短路径优先原则、最先声明优先原则和覆盖优先原则。最后,生成优化后的JAR包。
在上述实施例中,在排除冲突的JAR包之后,重新加载JAR包引用关系,就可以解决JAR包的冲突,生成不包含冲突的JAR包。在本发明的一个实施例中,在与项目中待升级软件相同的运行环境中,测试生成升级后软件的实测报告未记载JAR包的冲突,则可以直接将升级后软件的实测报告发送至用户,由用户选择是否升级软件。
在实测报告中,实测报告中不仅记载有JAR包的冲突,而且还记载软件的升级过程,以及软件的升级原因。这样,负责项目的管理人员可以基于每次软件升级的实测报告获知项目的情况,方便以后的项目交接。
S203、接收基于升级后软件的实测报告的升级指令,按照升级指令对项目中的待升级软件进行升级。
升级后软件的实测报告发送至用户,用户可以是生产系统中的服务器的系统管理人。作为一个示例,可以通过系统管理人的邮箱,发送升级后软件的实测报告至用户。
将升级后软件的实测报告发送至用户目的在于,让用户基于实测报告,确定软件是否升级。
一般来说,由项目负责人作为用户,用户可以自主决定软件是否升级。作为一个示例,可以触发升级键,一键全部升级。或是,用户自主决定不升级。作为另一个示例,用户还可以参照实测报告中的手动升级说明进行软件升级。其中,手动升级说明是在上传升级后的JAR包时同时上传的文档。作为一个示例,用户收到包括升级后软件的实测报告的邮件后,查询该实测报告,了解软件升级目的。根据测试结果判断是否需要升级软件。
在本发明的一个实施例中,用户基于升级后软件的实测报告,确定需要全部升级涉及软件,则发送升级指令,升级指令中包括全部升级。
接收到用户的升级指令后,则向项目中所有待升级软件发送WAR包,以对项目中待升级软件进行升级。
在上述实施例中,由用户决定待升级软件全部升级,能够满足用户的软件升级需求。
在本发明的一个实施例中,用户基于升级后软件的实测报告,确定需要部分升级涉及软件,则发送升级指令,升级指令中包括选择升级。
接收到用户的升级指令后,则向项目中选择升级对应的待升级软件发送WAR包,以对项目中所选择的待升级软件进行升级。
在上述实施例中,由用户决定选择待升级软件进行升级,进而满足用户对软件的选择性升级需求。在本发明的一个实施例中,项目中的待升级软件升级之后,为了确保升级后软件能够正常使用,还可以测试项目中升级后软件,并记录升级后软件的测试结果。测试结果表征升级后软件是否可以正常使用。因此,有必要将测试结果发送至用户,以供用户做出进一步的决定。
在本发明的一个实施例中,将升级后软件的实测报告发送至用户,用户并未发送升级指令,则可以记录升级后软件,当不升级该软件。可以周期性提醒用户升级软件。
在本发明实施例中,在分布式系统或多项目环境中,系统迭代人员上传升级后的JAR包后,替换从数据库获取的待升级软件中的JAR包,得到升级后软件。为了提高升级后软件的有效性,在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告。实测报告可以全面体现升级后JAR包的情况。最后,接收基于升级后软件的实测报告的升级指令,按照升级指令对项目中的待升级软件进行升级。
软件升级是在实测报告的基础上,通过升级指令进行升级,因此可以在满足用户需求的基础上提高软件升级效率。图3是根据本发明实施例的软件升级的装置主要结构的示意图,软件升级的装置可以实现软件升级的方法,如图3所示,软件升级的装置具体包括:
软件模块301,用于在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件。
测试模块302,用于控制在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告。
升级模块303,用于接收基于升级后软件的实测报告的升级指令,按照升级指令对项目中的待升级软件进行升级。
在本发明的一个实施例中,测试模块302,具体用于控制在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告;
升级后软件的实测报告记载JAR包的冲突,列出冲突的JAR包的引用树,通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包;
根据优化后的JAR包得到优化后升级后软件,测试优化后升级软件生成的WAR包,更新升级后软件的实测报告。
在本发明的一个实施例中,测试模块302,具体用于控制排除冲突的JAR包,重新加载JAR包引用关系,生成优化后的JAR包。
在本发明的一个实施例中,升级模块303,具体用于接收基于升级后软件的实测报告的升级指令,升级指令包括全部升级;
向项目中所有待升级软件发送WAR包,对项目中的待升级软件进行升级。
在本发明的一个实施例中,升级模块303,具体用于接收基于升级后软件的实测报告的升级指令,升级指令包括选择升级;
向项目中选择升级对应的待升级软件发送WAR包,对对应的所述待升级软件进行升级。
在本发明的一个实施例中,还包括测试模块(图3中未示出),用于测试项目中升级后软件,记录升级后软件的测试结果。
图4示出了可以应用本发明实施例的软件升级的方法、装置或系统的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的监控方法一般由服务器405执行,相应地,软件升级的装置或系统一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;
在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。
根据本发明实施例的技术方案,在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件。在与项目中待升级软件相同的运行环境中,测试由升级后软件生成的WAR包,生成升级后软件的实测报告。这样,用户可以基于升级后软件的实测报告决定是否需要升级,确定需要升级则发送升级指令。接收基于升级后软件的实测报告的升级指令,按照升级指令对项目中的待升级软件进行升级。
可见,软件升级是在实测报告的基础上,通过升级指令进行升级,因此可以在满足用户需求的基础上提高软件升级效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种软件升级的方法,其特征在于,包括:
在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;
在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。
2.根据权利要求1所述软件升级的方法,其特征在于,所述在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告,包括:
在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述升级后软件的实测报告记载JAR包的冲突,列出冲突的JAR包的引用树,通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包;
根据所述优化后的JAR包得到优化后升级后软件,测试所述优化后升级软件生成的WAR包,更新所述升级后软件的实测报告。
3.根据权利要求2所述软件升级的方法,其特征在于,所述通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包,包括:
排除冲突的JAR包,重新加载JAR包引用关系,生成优化后的JAR包。
4.根据权利要求1所述软件升级的方法,其特征在于,所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级,包括:
接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括全部升级;
向所述项目中所有所述待升级软件发送所述WAR包,对项目中的所述待升级软件进行升级。
5.根据权利要求1所述软件升级的方法,其特征在于,所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级,包括:
接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括选择升级;
向所述项目中所述选择升级对应的所述待升级软件发送所述WAR包,对所述对应的所述待升级软件进行升级。
6.根据权利要求1所述软件升级的方法,其特征在于,所述接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级之后,还包括:
测试项目中升级后软件,记录所述升级后软件的测试结果。
7.一种软件升级的装置,其特征在于,包括:
软件模块,用于在分布式系统或多项目环境中,依据上传升级后的JAR包,替换从数据库获取的待升级软件中的JAR包,得到升级后软件;
测试模块,用于控制在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
升级模块,用于接收基于所述升级后软件的实测报告的升级指令,按照所述升级指令对项目中的待升级软件进行升级。
8.根据权利要求7所述软件升级的装置,其特征在于,所述测试模块,具体用于控制在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述升级后软件的实测报告记载JAR包的冲突,列出冲突的JAR包的引用树,通过预设冲突解决策略优化冲突的JAR包,生成优化后的JAR包;
根据所述优化后的JAR包得到优化后升级后软件,测试所述优化后升级软件生成的WAR包,更新所述升级后软件的实测报告。
9.根据权利要求8所述软件升级的装置,其特征在于,所述测试模块,具体用于控制排除冲突的JAR包,重新加载JAR包引用关系,生成优化后的JAR包。
10.根据权利要求7所述软件升级的装置,其特征在于,所述升级模块,具体用于接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括全部升级;
向所述项目中所有所述待升级软件发送所述WAR包,对项目中的所述待升级软件进行升级。
11.根据权利要求7所述软件升级的装置,其特征在于,所述升级模块,具体用于接收基于所述升级后软件的实测报告的升级指令,所述升级指令包括选择升级;
向所述项目中所述选择升级对应的所述待升级软件发送所述WAR包,对所述对应的所述待升级软件进行升级。
12.根据权利要求7所述软件升级的装置,其特征在于,所述装置还包括测试模块,用于测试项目中升级后软件,记录所述升级后软件的测试结果。
13.一种软件升级的系统,其特征在于,包括如权利要求7-12任一所述软件升级的装置、生产系统、测试机和数据库;
所述数据库,用于发送待升级软件中的JAR包;
所述软件升级的装置,用于接收升级后的JAR包和待升级软件中的JAR包,发送实测报告;
所述测试机,用于在与项目中所述待升级软件相同的运行环境中,测试由所述升级后软件生成的WAR包,生成所述升级后软件的实测报告;
所述生成系统,用于接收所述实测报告,并发送基于所述实测报告的升级指令。
14.一种软件升级的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201910163654.9A 2019-03-05 2019-03-05 软件升级的方法、装置、系统、设备和计算机可读介质 Active CN111666079B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910163654.9A CN111666079B (zh) 2019-03-05 2019-03-05 软件升级的方法、装置、系统、设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910163654.9A CN111666079B (zh) 2019-03-05 2019-03-05 软件升级的方法、装置、系统、设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN111666079A true CN111666079A (zh) 2020-09-15
CN111666079B CN111666079B (zh) 2023-12-05

Family

ID=72381259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910163654.9A Active CN111666079B (zh) 2019-03-05 2019-03-05 软件升级的方法、装置、系统、设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN111666079B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506560A (zh) * 2020-12-15 2021-03-16 上海银基信息安全技术股份有限公司 微服务jar包管理方法、装置及计算机设备
CN112631627A (zh) * 2020-12-10 2021-04-09 武汉联影医疗科技有限公司 软件升级方法、装置、计算机设备和存储介质
CN114827107A (zh) * 2022-04-28 2022-07-29 中国银行股份有限公司 一种软件升级方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070006217A1 (en) * 2005-06-29 2007-01-04 Macrovision Corporation Method and system for pre-deployment conflict checking
US20140304697A1 (en) * 2011-12-01 2014-10-09 Tencent Technology (Shenzhen) Company Limited Method and system for upgrading software
US20150082294A1 (en) * 2012-05-28 2015-03-19 Huawei Device Co., Ltd. Method and Apparatus for Generating Firmware Over the Air Upgrade Package
WO2015143794A1 (zh) * 2014-03-24 2015-10-01 中兴通讯股份有限公司 制作、升级方法及服务器、终端、升级系统和存储介质
CN105094931A (zh) * 2015-09-09 2015-11-25 小米科技有限责任公司 软件升级方法及装置
WO2017041499A1 (zh) * 2015-09-08 2017-03-16 中兴通讯股份有限公司 一种软件升级方法、系统和计算机可读存储介质
CN107666622A (zh) * 2017-09-28 2018-02-06 深圳市创维软件有限公司 机顶盒软件升级的方法、机顶盒及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070006217A1 (en) * 2005-06-29 2007-01-04 Macrovision Corporation Method and system for pre-deployment conflict checking
US20140304697A1 (en) * 2011-12-01 2014-10-09 Tencent Technology (Shenzhen) Company Limited Method and system for upgrading software
US20150082294A1 (en) * 2012-05-28 2015-03-19 Huawei Device Co., Ltd. Method and Apparatus for Generating Firmware Over the Air Upgrade Package
WO2015143794A1 (zh) * 2014-03-24 2015-10-01 中兴通讯股份有限公司 制作、升级方法及服务器、终端、升级系统和存储介质
WO2017041499A1 (zh) * 2015-09-08 2017-03-16 中兴通讯股份有限公司 一种软件升级方法、系统和计算机可读存储介质
CN105094931A (zh) * 2015-09-09 2015-11-25 小米科技有限责任公司 软件升级方法及装置
CN107666622A (zh) * 2017-09-28 2018-02-06 深圳市创维软件有限公司 机顶盒软件升级的方法、机顶盒及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631627A (zh) * 2020-12-10 2021-04-09 武汉联影医疗科技有限公司 软件升级方法、装置、计算机设备和存储介质
CN112506560A (zh) * 2020-12-15 2021-03-16 上海银基信息安全技术股份有限公司 微服务jar包管理方法、装置及计算机设备
CN114827107A (zh) * 2022-04-28 2022-07-29 中国银行股份有限公司 一种软件升级方法及装置

Also Published As

Publication number Publication date
CN111666079B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
US20210124610A1 (en) Workflow generation using multiple interfaces
US9038059B2 (en) Automatically targeting application modules to individual machines and application framework runtimes instances
CN107666525B (zh) 集群容器ip分配的方法和装置
US8543998B2 (en) System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US10216527B2 (en) Automated software configuration management
JP5658283B2 (ja) アプリケーションの稼働方法、装置及びシステム
US10430590B2 (en) Apparatus for quantifying security of open-source software package, and apparatus and method for optimizing open-source software package
CN111666079B (zh) 软件升级的方法、装置、系统、设备和计算机可读介质
CN108255708B (zh) 测试环境中访问生产文件的方法、装置、存储介质及设备
CN110162334B (zh) 一种代码管理方法、装置及存储介质
US20130111458A1 (en) Method and system for on-demand patch generation and management
CN108829588B (zh) 一种测试应用程序的处理方法、部署系统及装置
US20160335069A1 (en) Dependency handling for software extensions
CN113434158A (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN113626036A (zh) 一种基于Jenkins的代码集成管理方法和系统
CN113760722A (zh) 测试系统和测试方法
CN113961936A (zh) 可信白名单建设方法、系统、装置和计算机设备
CN113296828A (zh) 一种发布应用的方法、服务器和系统
US20190012161A1 (en) Distributed and self-deleting apparatus for fast software deployment and upgrade in a network
CN111488268A (zh) 自动化测试的调度方法和调度装置
CN110580216A (zh) 一种应用提测的方法和装置
CN112835609B (zh) 一种修改依赖包下载地址的方法和装置
US11360823B2 (en) Predicting and Scheduling a frequency of scanning areas where occurrences of an actual state of a cloud environment departing from a desired state are high
EP2590073A1 (en) Method and system for on-demand patch generation and management
CN112181470B (zh) 一种部署补丁的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210301

Address after: 6 / F, 76 Zhichun Road, Haidian District, Beijing 100086

Applicant after: Beijing Jingdong Zhenshi Information Technology Co.,Ltd.

Address before: 101, 1st floor, building 2, yard 20, Suzhou street, Haidian District, Beijing 100080

Applicant before: Beijing Jingbangda Trading Co.,Ltd.

Effective date of registration: 20210301

Address after: 101, 1st floor, building 2, yard 20, Suzhou street, Haidian District, Beijing 100080

Applicant after: Beijing Jingbangda Trading Co.,Ltd.

Address before: 100086 8th Floor, 76 Zhichun Road, Haidian District, Beijing

Applicant before: BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: BEIJING JINGDONG CENTURY TRADING Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant