掌桥专利:专业的专利平台
掌桥专利
首页

兼容性评估方法、装置、设备及存储介质

文献发布时间:2023-06-19 15:50:55



技术领域

本申请涉及计算机和互联网技术领域,特别涉及一种兼容性评估方法、装置、设备及存储介质。

背景技术

自Linux操作系统诞生以来,基于Linux操作系统的发行版本(以下简称为“Linux发行版本”)层出不穷。Linux发行版本是指由Linux内核、GNU工具与库,以及软件集合等构成的操作系统。

通常,一些组织或厂商将Linux内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具等,从而构成Linux发行版本。更确切地来说,“Linux发行版本”又可以称为“以Linux为核心的操作系统软件包”。由于开发者基于某个Linux发行版本创建的开发环境及业务系统等依赖于该Linux发行版本所提供的软件包及软件包提供的API(Application Programming Interface,应用程序接口)/ABI(Application binaryinterface,应用二进制接口),且由于不同的Linux发行版本的选包策略不一样导致不同的Linux发行版本所选择的基础软件包的范围清单、版本以及提供的API/ABI等存在差异,从而,同一个应用程序在不同的Linux发行版本之间迁移可能需要做大量的移植和适配工作。

然而,在相关技术中,用户无法直观地感知不同的Linux发行版本之间的差异,从而难以评估某一应用程序在不同的Linux发行版本之间是否兼容、是否需要进行适配工作等,导致不同的Linux发行版本之间的业务迁移效率低下。

发明内容

本申请实施例提供了一种兼容性评估方法、装置、设备及存储介质,能够提升应用程序在不同的操作系统之间的迁移效率。所述技术方案如下:

根据本申请实施例的一个方面,提供了一种兼容性评估方法,所述方法包括:

建立第一操作系统对应的成分数据库和第二操作系统对应的成分数据库;

从所述第一操作系统对应的成分数据库中获取目标应用程序的关联数据,得到第一关联数据;

从所述第二操作系统对应的成分数据库中获取所述目标应用程序的关联数据,得到第二关联数据;

基于所述第一关联数据和所述第二关联数据,对所述目标应用程序在所述第一操作系统和所述第二操作系统之间的兼容性进行评估。

通过分别获取应用程序在不同的操作系统中对应的关联数据,并基于获取到的关联数据评估应用程序在不同的操作系统间的兼容性,以为用户提供应用程序跨操作系统的兼容性评估结果,便于用户及时掌握应用程序在不同的操作系统之间是否兼容,指导用户及时准确地开展应用程序在不同的操作系统之间的适配等工作,提升了应用程序在不同的操作系统之间的迁移效率。并且,本申请实施例通过建立不同的操作系统分别对应的成分数据库,实现了对操作系统的成分进行分析、整理及存储,一方面为用户提供了操作系统的成分清单,便于用户开展操作系统的选型等工作,另一方面便于识别不同的操作系统之间不同的成分数据,为用户进行数据分析等提供参考,从而有助于用户便捷开展多样化的工作。

在一个可能的设计中,所述基于所述第一关联数据和所述第二关联数据,对所述目标应用程序在所述第一操作系统和所述第二操作系统之间的兼容性进行评估,包括:

对比所述第一关联数据和所述第二关联数据;

在所述第一关联数据和所述第二关联数据一致的情况下,确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间兼容;

在所述第一关联数据和所述第二关联数据不一致的情况下,确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间不兼容。

通过上述方式,提供了一种评估应用程序的兼容性的具体方式,实现了快速判断应用程序是否兼容。

在一个可能的设计中,所述确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间兼容之后,还包括:

输出第一兼容性评估结果,所述第一兼容性评估结果包括所述目标应用程序在所述第一操作系统和所述第二操作系统之间兼容。

通过上述方式,可以使得用户及时掌握应用程序在不同的操作系统之间兼容,以便于用户及时准确地推进应用程序的迁移等工作。

在一个可能的设计中,所述目标应用程序是指已与所述第一操作系统适配,且未与所述第二操作系统适配的应用程序;

所述确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间不兼容之后,还包括:

获取所述第一关联数据和所述第二关联数据之间的差异数据;

基于所述差异数据,确定修改指导信息,所述修改指导信息用于指示使得所述目标应用程序与所述第二操作系统适配的修改方式。

通过上述方式,为用户提供针对应用程序如何适配不同的操作系统的修改建议,加快了应用程序的修改适配效率,且该修改建议立足于具体的分析结果,实现了有针对性地提供修改建议,提高了修改建议的准确性。

在一个可能的设计中,所述基于所述差异数据,确定修改指导信息之后,还包括:

输出第二兼容性评估结果,所述第二兼容性评估结果包括以下至少一项:所述修改指导信息、所述差异数据。

通过上述方式,可以为用户针对应用程序的修改适配提供更多的参考,以便于用户依据自身的偏好以及实际的差异数据等,对修改方式做出针对性的调整。

在一个可能的设计中,所述目标应用程序的关联数据包括以下至少一项:

依赖数据,是指所述目标应用程序的依赖包相关的数据;

接口数据,是指所述目标应用程序的接口相关的数据;

结构数据,是指所述目标应用程序的文件相关的数据;

编译数据,是指所述目标应用程序的编译参数相关的数据;

自定义配置数据,是指操作系统的自定义配置相关的数据。

通过上述方式,获取与应用程序相关联的多个方面的数据,实现了充分且全面地获取应用程序的关联数据,从而为应用程序的兼容性评估提供多方面的参考数据,以实现从多角度评估应用程序的兼容性,提升了应用程序跨操作系统的兼容性评估的精确性。

在一个可能的设计中,所述依赖数据包括以下至少一项:

存在数据,用于指示是否存在所述依赖包;

版本数据,用于在存在所述依赖包的情况下,指示所述依赖包的版本。

通过上述方式,实现了依据应用程序的基础关联信息,快速地判断应用程序在不同的操作系统之间是否兼容。

在一个可能的设计中,在所述目标应用程序的接口包括API的情况下,所述接口数据包括以下至少一项:

编程数据,用于指示所述目标应用程序调用其它模块的函数接口;

程序数据,用于指示所述目标应用程序的功能特性参数;

系统数据,用于指示操作系统的默认参数。

通过上述方式,实现了在输入应用程序的源码的情况下,快速且全面地获取应用程序的接口相关的数据。

在一个可能的设计中,在所述目标应用程序的接口包括ABI的情况下,所述接口数据包括以下至少一项:

类型数据,用于指示数据类型的相关定义;

约定数据,用于指示控制函数参数传递方式以及返回值传递方式;

调用数据,用于指示向操作系统进行系统调用的方式;

格式数据,用于指示文件格式。

通过上述方式,实现了在输入应用程序的二进制的情况下,快速且全面地获取应用程序的接口相关的数据。

在一个可能的设计中,所述结构数据包括以下至少一项:

目录数据,用于指示根文件系统的目录结构;

路径数据,用于指示文件路径;

名称数据,用于指示文件名称;

默认配置数据,用于指示操作系统的默认配置。

通过上述方式,实现了从文件描述的角度为应用程序的兼容性评估提供参考,丰富了兼容性评估的考虑因素。

在一个可能的设计中,所述编译参数包括以下至少一项:

系统编译数据,用于指示操作系统的编译参数;

程序编译数据,用于指示所述目标应用程序的编译参数。

通过上述方式,实现了从应用程序编译和运行的角度为应用程序的兼容性评估提供参考,进一步丰富了兼容性评估的考虑因素。

在一个可能的设计中,所述成分数据库包括:

静态数据,用于指示操作系统的初始参数;

和/或,

动态数据,用于指示操作系统处于运行状态时的服务参数。

通过上述方式,实现从不同角度分析操作系统的成分。

在一个可能的设计中,所述静态数据包括以下至少一项:所述操作系统自带的软件包相关的数据、所述操作系统的默认参数、所述操作系统的编译参数。

通过上述方式,充分利用已知信息进行操作系统的成分分析,使得成分分析更加便捷。

在一个可能的设计中,所述动态数据包括所述操作系统运行时提供的接口信息。

通过上述方式,考虑到操作系统处于运行状态时的参数变化,充分考虑到影响操作系统成分的因素,使得操作系统的成分分析更为完善。

根据本申请实施例的一个方面,提供了一种兼容性评估装置,所述装置包括:

数据库建立模块,用于建立第一操作系统对应的成分数据库和第二操作系统对应的成分数据库;

第一获取模块,用于从所述第一操作系统对应的成分数据库中获取目标应用程序的关联数据,得到第一关联数据;

第二获取模块,用于从所述第二操作系统对应的成分数据库中获取所述目标应用程序的关联数据,得到第二关联数据;

兼容性评估模块,用于基于所述第一关联数据和所述第二关联数据,对所述目标应用程序在所述第一操作系统和所述第二操作系统之间的兼容性进行评估。

根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述兼容性评估方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述兼容性评估方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述兼容性评估方法。

本申请实施例提供的技术方案可以带来如下有益效果:

通过分别获取应用程序在不同的操作系统中对应的关联数据,并基于获取到的关联数据评估应用程序在不同的操作系统间的兼容性,以为用户提供应用程序跨操作系统的兼容性评估结果,便于用户及时掌握应用程序在不同的操作系统之间是否兼容,指导用户及时准确地开展应用程序在不同的操作系统之间的适配等工作,提升了应用程序在不同的操作系统之间的迁移效率。并且,本申请实施例通过建立不同的操作系统分别对应的成分数据库,实现了对操作系统的成分进行分析、整理及存储,一方面为用户提供了操作系统的成分清单,便于用户开展操作系统的选型等工作,另一方面便于识别不同的操作系统之间不同的成分数据,为用户进行数据分析等提供参考,从而有助于用户便捷开展多样化的工作。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的实施环境的示意图;

图2是本申请一个实施例提供的接口调用关系的示意图;

图3是本申请一个实施例提供的兼容性评估方法的流程图;

图4是本申请一个实施例提供的应用程序的关联数据的示意图;

图5是本申请一个实施例提供的应用程序跨操作系统兼容性评估的示意图;

图6是本申请一个实施例提供的兼容性评估装置的框图;

图7是本申请另一个实施例提供的兼容性评估装置的框图;

图8是本申请一个实施例提供的计算机设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以实现成为一个业务迁移系统。该实施环境可以包括:计算机设备10和计算机设备20。

计算机设备10上搭载操作系统。通常,一台计算机设备上只能搭载一个操作系统,但本申请对此并不做限定。可选地,操作系统提供了业务系统使用的主体功能,包括提供系统库函数接口、系统调用、命令接口、服务、头文件、配置文件、sysfs等接口,从而为开发环境或者业务系统调用。可选地,某一应用程序的接口既可以调用其它接口,也可以被其它接口调用,例如,如图2所示,接口210既可以调用接口220,也可以被接口230调用。

以一台计算机设备上搭载一个操作系统为例,可选地,计算机设备10包括计算机设备12和计算机设备14,如图1所示,该计算机设备12和计算机设备14为两台不同的计算机设备,其中,计算机设备12上搭载第一操作系统,计算机设备14上搭载第二操作系统。第一操作系统和第二操作系统为两个不同的操作系统,可选地,第一操作系统和第二操作系统为上述不同的Linux发行版本。

计算机设备20用于评估同一应用程序在不同的操作系统之间的兼容性,例如,某一应用程序已与计算机设备12上搭载的第一操作系统适配,而未与计算机设备14上搭载的第二操作系统适配,此时,在该应用程序需求从第一操作系统迁移至第二操作系统的情况下,计算机设备20可以评估该应用程序是否兼容第二操作系统,从而为该应用程序的迁移和适配等提供相关的参考。可选地,计算机设备20可以与计算机设备10为同一台计算机设备,也可以为两台不同的计算机设备,为便于描述,图1仅以计算机设备20和计算机设备10为两台不同的计算机设备为例进行说明,应理解,这并不构成对本申请实施例的限定。

可选地,计算机设备(包括上述计算机设备10或计算机设备20)可以是诸如手机、平板电脑、多媒体播放设备、PC(Personal Computer,个人电脑)等设备,也可以是一台服务器、多台服务器组成的服务器集群、云计算服务中心等设备。可选地,计算机设备10和计算机设备20之间通过网络进行通信,该网络可以为有线网络,也可以为无线网络。

本申请实施例提供的兼容性评估方法,各步骤的执行主体可以是计算机设备20。在一个可能的设计中,本申请提供的兼容性评估方法主要应用于业务迁移场景,但这并不构成对本申请的限定。本领域技术人员在了解了本申请的技术方案后,将容易想到将本申请提供的兼容性评估方法应用于其它业务场景,如业务定制化场景、操作系统的软件包升级场景等,应理解,这些均应属于本申请的保护范围之内。

请参考图3,其示出了本申请一个实施例提供的兼容性评估方法的流程图。该方法可以包括以下几个步骤(310~340)。

步骤310,建立第一操作系统对应的成分数据库和第二操作系统对应的成分数据库。

第一操作系统和第二操作系统为两个不同的操作系统,例如,第一操作系统和第二操作系统为两个不同的Linux发行版本。本申请实施例中,计算机设备可以对第一操作系统和第二操作系统的成分进行分析,并基于分析结果建立成分数据库,以便于后续兼容性分析等过程中从成分数据库中查询相关的数据。

本申请实施例针对第一操作系统和第二操作系统,分别进行成分分析,并分别基于分析结果建立成分数据库,即建立第一操作系统对应的成分数据库和第二操作系统对应的成分数据库。在一个可能的设计中,成分数据库包括静态数据和/或动态数据,从而实现了从不同角度分析操作系统的成分。

静态数据用于指示操作系统的初始参数。可选地,静态数据基于以下至少一项信息分别收集得到:操作系统的源代码包、操作系统的二进制包、操作系统的扩展仓库。通过这种方式,可以充分利用已知信息进行操作系统的成分分析,使得成分分析更加便捷。可选地,静态数据包括以下至少一项数据:操作系统自带的软件包相关的数据(如操作系统自带的软件包清单及软件包版本;软件包依赖关系及软件包所提供的文件目录信息;软件包库文件、API、ABI、开头头文件;软件包所提供的应用程序、系统服务等)、操作系统的默认参数、操作系统的编译参数;动态数据用于指示操作系统处于运行状态时的服务参数。

动态数据用于指示操作系统处于运行状态时的服务参数。可选地,动态数据在操作系统运行时收集,从而,动态数据与操作系统处于运行状态时的各项参数相关,可以考虑到操作系统处于运行状态时的参数变化,充分考虑到影响操作系统成分的因素,使得操作系统的成分分析更为完善。可选地,动态数据包括操作系统运行时提供的接口信息(如sys/proc等提供的接口信息)。

在一个可能的设计中,上述步骤310之后,还包括:对比第一操作系统对应的成分数据库和第二操作系统对应的成分数据库,得到差异信息;输出差异信息。通过在分别建立不同的操作系统对应的成分数据库之后,对比不同的操作系统分别对应的成分数据库,识别出差异成分数据,即差异信息,并输出差异信息以供用户参考,便于用户直观和全面地掌握不同操作系统之间的差异。

步骤320,从第一操作系统对应的成分数据库中获取目标应用程序的关联数据,得到第一关联数据。

第一操作系统对应的成分数据库中包含各项数据,计算机设备可以基于目标应用程序的源代码或者二进制作为输入,从第一操作系统对应的成分数据库中查询与目标应用程序相关联的数据,即目标应用程序的关联数据,以得到第一关联数据。有关目标应用程序的关联数据的介绍说明,请参见下述实施例,此处不多赘述。

步骤330,从第二操作系统对应的成分数据库中获取目标应用程序的关联数据,得到第二关联数据。

第二操作系统对应的成分数据库中包含各项数据,计算机设备可以基于目标应用程序的源代码或者二进制作为输入,从第二操作系统对应的成分数据库中查询与目标应用程序相关联的数据,即目标应用程序的关联数据,以得到第二关联数据。有关目标应用程序的关联数据的介绍说明,请参见下述实施例,此处不多赘述。

步骤340,基于第一关联数据和第二关联数据,对目标应用程序在第一操作系统和第二操作系统之间的兼容性进行评估。

计算机设备一方面从第一操作系统对应的成分数据库中获取第一关联数据,另一方面从第二操作系统对应的成分数据库中获取第二关联数据,之后,计算机设备便可基于第一关联数据和第二关联数据,评估目标应用程序在第一操作系统和第二操作系统之间的兼容性。可选地,若目标应用程序已与第一操作系统适配而未与第二操作系统适配,则目标应用程序在第一操作系统和第二操作系统之间的兼容性表现为目标应用程序是否兼容第二操作系统;若目标应用程序已与第二操作系统适配而未与第一操作系统适配,则目标应用程序在第一操作系统和第二操作系统之间的兼容性表现为目标应用程序是否兼容第一操作系统。

在一个可能的设计中,上述步骤340,包括:对比第一关联数据和第二关联数据;在第一关联数据和第二关联数据一致的情况下,确定目标应用程序在第一操作系统和第二操作系统之间兼容;在第一关联数据和第二关联数据不一致的情况下,确定目标应用程序在第一操作系统和第二操作系统之间不兼容。通过依据第一关联数据和第二关联数据的对比结果,来判断目标应用程序在第一操作系统和第二操作系统之间是否兼容,提供了一种评估目标应用程序的兼容性的具体方式,实现了快速判断目标应用程序是否兼容。

计算机设备对比第一关联数据和第二关联数据,以确定第一关联数据和第二关联数据是否一致。本申请实施例对第一关联数据和第二关联数据是否一致的判断方式不作限定。可选地,在第一关联数据和第二关联数据完全相同的情况下,确定第一关联数据和第二关联数据一致;在第一关联数据和第二关联数据不完全相同的情况下,确定第一关联数据和第二关联数据不一致。可选地,在第一关联数据和第二关联数据之间的差异小于或等于某一设定阈值的情况下,确定第一关联数据和第二关联数据一致;在第一关联数据和第二关联数据之间的差异大于某一设定阈值的情况下,确定第一关联数据和第二关联数据不一致。

在一个可能的设计中,上述确定目标应用程序在第一操作系统和第二操作系统之间兼容之后,还包括:输出第一兼容性评估结果,第一兼容性评估结果包括目标应用程序在第一操作系统和第二操作系统之间兼容。通过及时输出第一兼容性评估结果,可以使得用户及时掌握目标应用程序在不同的操作系统之间兼容,以便于用户及时准确地推进目标应用程序的迁移等工作。

在一个可能的设计中,目标应用程序是指已与第一操作系统适配,且未与第二操作系统适配的应用程序,也即,用户需求将目标应用程序从第一操作系统迁移至第二操作系统。基于此,上述确定目标应用程序在第一操作系统和第二操作系统之间不兼容之后,还包括:获取第一关联数据和第二关联数据之间的差异数据;基于差异数据,确定修改指导信息。

修改指导信息用于指示使得目标应用程序与第二操作系统适配的修改方式,如修改调用方式、进行路径修订、修改包依赖方式等。计算机设备通过依据第一关联数据和第二关联数据中存在差异的具体数据,来确定修改指导信息,为用户提供针对目标应用程序如何适配不同的操作系统的修改建议,加快了目标应用程序的修改适配效率,且该修改建议立足于具体的分析结果,实现了有针对性地提供修改建议,提高了修改建议的准确性。可选地,上述基于差异数据,确定修改指导信息之后,还包括:输出第二兼容性评估结果,第二兼容性评估结果包括以下至少一项:修改指导信息、差异数据。通过同时输出具体的差异数据以及修改指导信息,可以为用户针对目标应用程序的修改适配提供更多的参考,以便于用户依据自身的偏好以及实际的差异数据等,对修改方式做出针对性的调整。

综上所述,本申请实施例提供的技术方案,通过分别获取应用程序在不同的操作系统中对应的关联数据,并基于获取到的关联数据评估应用程序在不同的操作系统间的兼容性,以为用户提供应用程序跨操作系统的兼容性评估结果,便于用户及时掌握应用程序在不同的操作系统之间是否兼容,指导用户及时准确地开展应用程序在不同的操作系统之间的适配等工作,提升了应用程序在不同的操作系统之间的迁移效率。并且,本申请实施例通过建立不同的操作系统分别对应的成分数据库,实现了对操作系统的成分进行分析、整理及存储,一方面为用户提供了操作系统的成分清单,便于用户开展操作系统的选型等工作,另一方面便于识别不同的操作系统之间不同的成分数据,为用户进行数据分析等提供参考,从而有助于用户便捷开展多样化的工作。

下面,对目标应用程序的关联数据进行介绍说明。

在一个可能的设计中,如图4所示,目标应用程序的关联数据包括以下至少一项数据。

(1)依赖数据。

依赖数据是指目标应用程序的依赖包相关的数据。在输入目标应用程序的源代码的情况下,依赖包是指目标应用程序源码编译所必须依赖的包;在输入目标应用程序的二进制的情况下,依赖包是指目标应用程序二进制运行所必须依赖的包。可选地,依赖数据包括以下至少一项:存在数据、版本数据。其中,存在数据用于指示是否存在依赖包;版本数据用于在存在依赖包的情况下,指示依赖包的版本。通过确定是否存在依赖包以及依赖包的版本,实现了依据目标应用程序的基础关联信息,快速地判断目标应用程序在不同的操作系统之间是否兼容。

以目标应用程序存在依赖包为例,在输入目标应用程序的源代码的情况下,若操作系统的成分中不包括依赖包,或者操作系统的成分中包括依赖包而依赖包的版本不正确,则导致目标应用程序的源代码无法编译为二进制,从而目标应用程序不兼容该操作系统;在输入目标应用程序的二进制的情况下,若操作系统的成分中不包括依赖包,或者操作系统的成分中包括依赖包而依赖包的版本不正确,则导致操作系统安装目标应用程序失败,从而目标应用程序不兼容该操作系统。

(2)接口数据。

接口数据是指目标应用程序的接口相关的数据。

在输入目标应用程序的源代码的情况下,目标应用程序的接口包括API,从而接口数据包括以下至少一项:编程数据、程序数据、系统数据。其中,编程数据用于指示目标应用程序调用其它模块的函数接口;程序数据用于指示目标应用程序的功能特性参数;系统数据用于指示操作系统的默认参数。通过获取API相关的数据,实现了在输入目标应用程序的源码的情况下,快速且全面地获取目标应用程序的接口相关的数据。

在输入目标应用程序的二进制的情况下,目标应用程序的接口包括ABI,从而接口数据包括以下至少一项:类型数据、约定数据、调用数据、格式数据。其中,类型数据用于指示数据类型的相关定义(如数据类型的大小、布局和对齐等);约定数据用于指示控制函数参数传递方式以及返回值传递方式;调用数据用于指示向操作系统进行系统调用的方式;格式数据用于指示文件格式(如二进制格式、程序库等)。通过获取ABI相关的数据,实现了在输入目标应用程序的二进制的情况下,快速且全面地获取目标应用程序的接口相关的数据。

(3)结构数据。

结构数据是指目标应用程序的文件相关的数据,从而结构数据可以从操作系统的文件目录结构中获取。本申请实施例中,目标应用程序在不同的操作系统中分别对应的结构数据需要保持一致,若非一致,则目标应用程序在不同的操作系统之间不兼容,将会导致目标应用程序无法运行。可选地,结构数据包括以下至少一项:目录数据、路径数据、名称数据、默认配置数据。其中,目录数据用于指示根文件系统的目录结构;路径数据用于指示文件路径(如安装文件的存放路径、目标应用程序依赖的文件路径及环境变量等);名称数据用于指示文件名称(如配置文件、应用程序、库文件等名称);默认配置数据,用于指示操作系统的默认配置。通过获取结构数据,实现了从文件描述的角度为目标应用程序的兼容性评估提供参考,丰富了兼容性评估的考虑因素。

(4)编译数据。

编译数据是指目标应用程序的编译参数相关的数据。可选地,编译参数包括以下至少一项:系统编译数据、程序编译数据。其中,系统编译数据用于指示操作系统的编译参数;程序编译数据用于指示目标应用程序的编译参数。通过获取编译数据,实现了从目标应用程序编译和运行的角度为目标应用程序的兼容性评估提供参考,进一步丰富了兼容性评估的考虑因素。

(5)自定义配置数据。

自定义配置数据是指操作系统的自定义配置相关的数据。可选地,操作系统的配置数据包括上述默认配置数据和自定义配置数据。其中,默认配置数据在运行时不会发生改变;而自定义配置数据在运行时可能会发生改变,用户可以根据需求以及运行情况等,对自定义配置数据进行动态地配置和调整。因此,又可以将“默认配置数据”称为“静态数据”,而将“自定义配置数据”称为“动态数据”。

基于上述目标应用程序的关联数据,如图5所示,以目标应用程序在不同的操作系统之间迁移为例,计算机设备需要分别从不同的操作系统对应的成分数据库中获取上述依赖数据、接口数据、结构数据、编译数据和自定义配置数据,然后,计算机设备需要确定这些数据在不同的操作系统中是否一致,以进行兼容性评估。若一致,则目标应用程序在不同的操作系统之间兼容;若不一致,则目标应用程序在不同的操作系统之间不兼容。

综上所述,本申请实施例提供的技术方案,通过获取与应用程序相关联的多个方面的数据,实现了充分且全面地获取应用程序的关联数据,从而为应用程序的兼容性评估提供多方面的参考数据,以实现从多角度评估应用程序的兼容性,提升了应用程序跨操作系统的兼容性评估的精确性。

下述为本申请装置实施例,可用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图6,其示出了本申请一个实施例提供的兼容性评估装置的框图。该装置具有实现上述兼容性评估方法的功能。该装置600可以包括:数据库建立模块610、第一获取模块620、第二获取模块630和兼容性评估模块640。

数据库建立模块610,用于建立第一操作系统对应的成分数据库和第二操作系统对应的成分数据库。

第一获取模块620,用于从所述第一操作系统对应的成分数据库中获取目标应用程序的关联数据,得到第一关联数据。

第二获取模块630,用于从所述第二操作系统对应的成分数据库中获取所述目标应用程序的关联数据,得到第二关联数据。

兼容性评估模块640,用于基于所述第一关联数据和所述第二关联数据,对所述目标应用程序在所述第一操作系统和所述第二操作系统之间的兼容性进行评估。

在一个可能的设计中,所述兼容性评估模块640,用于:对比所述第一关联数据和所述第二关联数据;在所述第一关联数据和所述第二关联数据一致的情况下,确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间兼容;在所述第一关联数据和所述第二关联数据不一致的情况下,确定所述目标应用程序在所述第一操作系统和所述第二操作系统之间不兼容。

在一个可能的设计中,如图7所示,所述装置600还包括:第一输出模块650,用于输出第一兼容性评估结果,所述第一兼容性评估结果包括所述目标应用程序在所述第一操作系统和所述第二操作系统之间兼容。

在一个可能的设计中,所述目标应用程序是指已与所述第一操作系统适配,且未与所述第二操作系统适配的应用程序;如图7所示,所述装置还包括:数据获取模块660,用于获取所述第一关联数据和所述第二关联数据之间的差异数据;信息确定模块670,用于基于所述差异数据,确定修改指导信息,所述修改指导信息用于指示使得所述目标应用程序与所述第二操作系统适配的修改方式。

在一个可能的设计中,如图7所示,所述装置600还包括:第二输出模块680,用于输出第二兼容性评估结果,所述第二兼容性评估结果包括以下至少一项:所述修改指导信息、所述差异数据。

在一个可能的设计中,所述目标应用程序的关联数据包括以下至少一项:依赖数据,是指所述目标应用程序的依赖包相关的数据;接口数据,是指所述目标应用程序的接口相关的数据;结构数据,是指所述目标应用程序的文件相关的数据;编译数据,是指所述目标应用程序的编译参数相关的数据;自定义配置数据,是指操作系统的自定义配置相关的数据。

在一个可能的设计中,所述依赖数据包括以下至少一项:存在数据,用于指示是否存在所述依赖包;版本数据,用于在存在所述依赖包的情况下,指示所述依赖包的版本。

在一个可能的设计中,在所述目标应用程序的接口包括API的情况下,所述接口数据包括以下至少一项:编程数据,用于指示所述目标应用程序调用其它模块的函数接口;程序数据,用于指示所述目标应用程序的功能特性参数;系统数据,用于指示操作系统的默认参数。

在一个可能的设计中,在所述目标应用程序的接口包括ABI的情况下,所述接口数据包括以下至少一项:类型数据,用于指示数据类型的相关定义;约定数据,用于指示控制函数参数传递方式以及返回值传递方式;调用数据,用于指示向操作系统进行系统调用的方式;格式数据,用于指示文件格式。

在一个可能的设计中,所述结构数据包括以下至少一项:目录数据,用于指示根文件系统的目录结构;路径数据,用于指示文件路径;名称数据,用于指示文件名称;默认配置数据,用于指示操作系统的默认配置。

在一个可能的设计中,所述编译参数包括以下至少一项:系统编译数据,用于指示操作系统的编译参数;程序编译数据,用于指示所述目标应用程序的编译参数。

在一个可能的设计中,所述成分数据库包括:静态数据,用于指示操作系统的初始参数;和/或,动态数据,用于指示操作系统处于运行状态时的服务参数。

在一个可能的设计中,所述静态数据包括以下至少一项:所述操作系统自带的软件包相关的数据、所述操作系统的默认参数、所述操作系统的编译参数。

在一个可能的设计中,所述动态数据包括所述操作系统运行时提供的接口信息。

综上所述,本申请实施例提供的技术方案,通过分别获取应用程序在不同的操作系统中对应的关联数据,并基于获取到的关联数据评估应用程序在不同的操作系统间的兼容性,以为用户提供应用程序跨操作系统的兼容性评估结果,便于用户及时掌握应用程序在不同的操作系统之间是否兼容,指导用户及时准确地开展应用程序在不同的操作系统之间的适配等工作,提升了应用程序在不同的操作系统之间的迁移效率。并且,本申请实施例通过建立不同的操作系统分别对应的成分数据库,实现了对操作系统的成分进行分析、整理及存储,一方面为用户提供了操作系统的成分清单,便于用户开展操作系统的选型等工作,另一方面便于识别不同的操作系统之间不同的成分数据,为用户进行数据分析等提供参考,从而有助于用户便捷开展多样化的工作。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图8,其示出了本申请一个实施例提供的计算机设备800的结构框图。该计算机设备800可以是诸如手机、平板电脑、多媒体播放设备、可穿戴设备、PC(PersonalComputer)、语言学习终端、智能教学机等电子设备,也可以是服务器。该计算机设备用于实施上述实施例中提供的兼容性评估方法。该计算机设备可以是图1所示实施环境中的计算机设备20。

通常,计算机设备800包括有:处理器801和存储器802。

处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述兼容性评估方法。

在一些实施例中,计算机设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。

本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述兼容性评估方法。

可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述兼容性评估方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120114604306