CN113360184A - 多生态间的软件迁移方法、装置、计算机设备及存储介质 - Google Patents

多生态间的软件迁移方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113360184A
CN113360184A CN202110623284.XA CN202110623284A CN113360184A CN 113360184 A CN113360184 A CN 113360184A CN 202110623284 A CN202110623284 A CN 202110623284A CN 113360184 A CN113360184 A CN 113360184A
Authority
CN
China
Prior art keywords
api
ecology
basic
software
mapping relation
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
CN202110623284.XA
Other languages
English (en)
Other versions
CN113360184B (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.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing 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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN202110623284.XA priority Critical patent/CN113360184B/zh
Publication of CN113360184A publication Critical patent/CN113360184A/zh
Application granted granted Critical
Publication of CN113360184B publication Critical patent/CN113360184B/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/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

本发明公开了一种多生态间的软件迁移方法、装置、计算机设备及存储介质,该方法包括:获取目标软件在第一生态中调用的第一API;根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同;根据映射关系对第一API进行迁移。相对于目前缺少普遍适用于不同生态间的软件迁移的问题,本发明实施例中生成的映射关系,能够表示第一生态的第一API与第二生态的第二API的映射关系,根据映射关系能够完成目标软件从第一生态至第二生态的迁移,提高软件代码的迁移效率。

Description

多生态间的软件迁移方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及人工智能技术,尤其涉及一种多生态间的软件迁移方法、装置、计算机设备及存储介质。
背景技术
目前越来越多的硬件被用于进行人工智能的机器学习。由于显卡具备一定的计算能力,常被用于进行机器学习的某些计算任务。该计算任务的执行依据程序员预先编辑的软件代码实现,该软件代码通过调用应用程序接口(Application ProgrammingInterface,API)完成硬件的驱动以实现计算任务。
不同品牌的显卡具备各自独有的生态,每个生态具有自身特有的软件库以及API,因此一套软件代码无法同时在不同品牌的显卡生态中运行。目前缺少在不同平台生态间进行软件迁移的方案,导致程序员需要针对每个显卡生态分别编写一套软件代码,软件迁移效率低。
发明内容
本发明提供一种多生态间的软件迁移方法、装置、计算机设备及存储介质,以实现提高软件代码的迁移效率。
第一方面,本发明实施例提供了一种多生态间的软件迁移方法,其特征在于,包括:
获取目标软件在第一生态中调用的第一API;
根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同;
根据映射关系对第一API进行迁移。
在上述方案的基础上,获取目标软件在第一生态中调用的第一API,包括:
根据目标软件的代码结构确定API调用关系;
根据调用关系确定第一自定义API和第一生态的第一基础API。
上述方案根据目标软件的代码结构能够得到目标软件中API的调用关系,因此能够清晰快捷的获取第一生态中所调用的第一API,且能够普遍适用于不同生态,易用性强。根据调用关系可确定用户自定义的第一自定义API以及第一生态原生的第一基础API,达到识别原生API与自定义API的目的,更加进准确的对API进行划分。
在上述方案的基础上,根据调用关系确定第一自定义API和第一生态的第一基础API,包括:
根据调用关系确定被调用的目标API;
若目标API属于第一生态提供的基础API,将目标API确定为第一基础API;
否则,若目标API不属于第一生态提供的基础API,将目标API确定为第一自定义API。
上述方案根据第一生态的底层API对调用关系中的目标API进行分类,分别确定为第一基础API或第一自定义API,实现基于第一生态的目标API分类,准确的确定目标API的类型,提高分类准确性。
在上述方案的基础上,根据第一API生成映射关系,包括:
获取第二生态中与第一基础API对应的第二基础API;
根据第二基础API和第一基础API生成第一基础API的映射关系;
根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API;
生成第二自定义API与第一自定义API的映射关系。
上述方案能够分别建立第一基础API和第一自定义API的映射关系,第一基础API与第二基础API的映射关系能够将两个生态之间功能而名称不同的底层函数进行关联,第二自定义API可以根据在个性化命名规则进行重命名,进而在第二生态中进行调用,提高映射准确性。
在上述方案的基础上,获取第二生态中与第一基础API对应的第二基础API,包括:
判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API;
若存在,则获取第二基础API;
若不存在,则对第一基础API进行重写,得到第二基础API。
上述方案能够在第二生态缺少与第一基础API对应的基础API时,通过重写的方式得到第二基础API,进而得到能够在第二环境运行的第二基础API,进而避免因引缺少第二基础API导致软件无法迁移的问题,提高软件迁移的可靠性。
在上述方案的基础上,判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API,包括:
根据预设名称对应表和第一基础API名称进行回退查找,判断是否存在与第一基础API功能相同的第二基础API。
上述技术方案能够在第二生态的基础API查询过程中出现的遗漏问题,通过回退查找能够识别出名称部分重叠的基础API,进而更加全面的查找第二基础API。
在上述方案的基础上,根据映射关系对第一API进行迁移,包括:
读取第一API的程序文件;
根据映射关系和第一API的程序文件,生成第二API的程序文件;
根据多个第二API的程序文件进行编译,得到第二生态安装包;
运行第二生态安装包,以便将目标软件迁移至第二生态。
上述方案能够在软件迁移前,生成第二生态所需的第二API的程序文件。在迁移过程中,通过运行第二API的程序文件,可实现目标软件的迁移,提高迁移效率。此外,可以预先配置多个不同生态的API程序文件,进而使目标软件能够适配多个生态,且能够快速迁移到相应生态,提高迁移效率。
第二方面,本发明实施例还提供了一种多生态间的软件迁移装置,包括:
API获取模块,用于获取目标软件在第一生态中调用的第一API;
映射生成模块,用于根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同;
迁移模块,用于根据映射关系对第一API进行迁移。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如本发明实施例所示的多生态间的软件迁移方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例所示的多生态间的软件迁移方法。
本发明实施例提供的多生态间的软件迁移方法,能够获取目标软件在第一生态中调用的第一API;根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,根据映射关系对第一API进行迁移。相对于目前缺少普遍适用于不同生态间的软件迁移的问题,本发明实施例中生成的映射关系,能够表示第一生态的第一API与第二生态的第二API的映射关系,根据映射关系能够完成目标软件从第一生态至第二生态的迁移,提高软件代码的迁移效率。
附图说明
图1是本发明实施例一中的多生态间的软件迁移方法的流程图;
图2是本发明实施例二中的多生态间的软件迁移方法的流程图;
图3是本发明实施例三中的多生态间的软件迁移方法的流程图;
图4是本发明实施例四中的多生态间的软件迁移方法的流程图;
图5是本发明实施例五中的多生态间的软件迁移装置的结构示意图;
图6是本发明实施例六中的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
人工智能技术中,使用显卡参与机器学习模型的计算。不同显卡的生态存在差异,例如硬件等底层驱动API不同等,因此同一套代码通常只能适配一种生态,无法适用于不同生态。本发明提供了一种多生态间的软件迁移方法,以实现将目标软件的代码迁移到不同生态,使一套代码能够在不同生态中使用,提高软件代码的适用性。
实施例一
图1为本发明实施例一提供的一种多生态间的软件迁移方法的流程图,本实施例可适用于在不同生态间进行软件迁移的情况,该方法可以由计算机设备来执行,具体包括如下步骤:
步骤110、获取目标软件在第一生态中调用的第一API。
目标软件运行于第一生态中。第一生态可以为一种硬件生态,目标软件通过调用第一API实现相应模块的功能。在一种使用场景中,第一生态可以为一种显卡硬件生态,该生态包括该种显卡硬件、硬件驱动以及软件库等。涉及显卡硬件生态的软件涉及处理器代码、加速器代码以及软件功能代码。本申请实施例中的目标软件可以为加速器代码实现的内容。可选的,目标软件可以为飞浆软件(paddle)。
通过对目标软件的API调用进行分析,得到目标软件调用的第一API。
步骤120、根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系。
其中,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同。
在确定第一生态中调用的第一API后,根据第二生态调用的API确定第二生态中与第一API功能相同的第二API,生成第一API与第二API的映射关系。
步骤130、根据映射关系对第一API进行迁移。
根据映射关系,将调用的第一API修改为第二API。使目标软件运行于第二生态时,可以按照原有的API调用逻辑执行,调用第二API。由于第二API为第二生态中的API,因此在第二生态中调用第二API不会发生错误。进而实现在第二生态中按照目标软件的逻辑进行第二API调用,实现第二API的功能。实现将目标软件从第一生态迁移到第二生态。
可选的,步骤130可通过下述方式实施:
读取第一API的程序文件;根据映射关系和第一API的程序文件,生成第二API的程序文件;根据多个第二API的程序文件进行编译,得到第二生态安装包;运行第二生态安装包,以便将目标软件迁移至第二生态。
第一生态中每个第一API具有独立的程序文件,该程序文件用于记录第一API的代码内容。目标软件在一个生态(第一生态或第二生态)中运行之前,需要对代码进行编译,编译可得到软件的安装包。在该生态中运行该安装包后,可以实现将目标软件安装到该生态。
获取任意一个第一API的程序文件,根据步骤120得到的映射关系,对第一API的程序文件进行修改。修改包括对第一API程序文件中调用的第一API名称进行修改,将第一API名称修改为第二API名称。
可以根据不同的第二生态,生成适用于每个第二生态的第二生态安装包。进而为目标软件从第一生态迁移至不同的第二生态做准备。当生成第二生态安装包时,可以将第二生态安装包拷贝到第二生态中,并在第二生态中运行第二生态安装包,实现目标软件的迁移。
上述方案能够在软件迁移前,生成第二生态所需的第二API的程序文件。在迁移过程中,通过运行第二API的程序文件,可实现目标软件的迁移,提高迁移效率。此外,可以预先配置用于多个不同生态的多个API程序文件,进而使目标软件能够适配多个生态,且能够快速迁移到相应生态,提高迁移效率。
本发明实施例提供的多生态间的软件迁移方法,能够获取目标软件在第一生态中调用的第一API;根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,根据映射关系对第一API进行迁移。相对于目前缺少普遍适用于不同生态间的软件迁移的问题,本发明实施例中生成的映射关系,能够表示第一生态的第一API与第二生态的第二API的映射关系,根据映射关系能够完成目标软件从第一生态至第二生态的迁移,提高软件代码的迁移效率。
实施例二
图2为本发明实施例二提供的一种多生态间的软件迁移方法,作为对上述实施例的进一步说明,步骤110可以实施为:根据目标软件的代码结构确定API调用关系;根据调用关系确定第一自定义API和第一生态的第一基础API。此时,该方法可以通过下述方式实施:
步骤210、根据目标软件的代码结构确定API调用关系。
目标软件的代码结构用于表示目标软件包含的API调用以及不同功能的嵌套关系。通过遍历代码能够确定目标软件包含的功能,以及实现各功能所调用的API,进而确定API调用关系。功能包括主函数实现的主要功能,以及主函数所调用的函数,函数可以通过API调用的方式调用预先编辑的代码,完成代码执行的功能。
步骤220、根据调用关系确定第一自定义API和第一生态的第一基础API。
调用的API具有不同类型,可以分为第一自定义API和第一基础API。第一自定义API为用户自定义函数的接口。第一基础API为第一生态提供的基础API。
可选的,步骤220、根据调用关系确定第一自定义API和第一生态的第一基础API,可通过下述方式实施:
若目标API属于第一生态提供的基础API,将目标API确定为第一基础API;
否则,若目标API不属于第一生态提供的基础API,将目标API确定为第一自定义API。
目标API为调用关系中任意一个被调用的第一API。第一生态提供的基础API是明确的,可以通过查询获取第一生态提供的库函数以及基础API。若目标API属于第一生态提供的基础API,将目标API确定为第一基础API。否则,说明目标API不属于第一生态体用的基础API,属于自定义API,将目标API确定为第一自定义API。
上述实施方式能够根据第一生态的底层API对调用关系中的目标API进行分类,分别确定为第一基础API或第一自定义API,实现基于第一生态的目标API分类,准确的确定目标API的类型,提高分类准确性。
步骤230、根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系。
其中,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同。
步骤240、根据映射关系对第一API进行迁移。
本发明实施例提供的多生态间的软件迁移方法,根据目标软件的代码结构能够得到目标软件中API的调用关系,因此能够清晰快捷的获取第一生态中所调用的第一API,且能够普遍适用于不同生态,易用性强。根据调用关系可确定用户自定义的第一自定义API以及第一生态原生的第一基础API,达到识别生态原生的基础API与自定义API的目的,更加进准确的对API进行划分。
实施例三
图3为本发明实施例二提供的一种多生态间的软件迁移方法,作为对上述实施例的进一步说明,步骤120可以实施为:获取第二生态中与第一基础API对应的第二基础API;根据第二基础API和第一基础API生成第一基础API的映射关系;根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API;生成第二自定义API与第一自定义API的映射关系。此时,该方法可以通过下述方式实施:
步骤310、获取目标软件在第一生态中调用的第一API。
其中,第一API包括第一自定义API和第一生态的第一基础API。
步骤320、获取第二生态中与第一基础API对应的第二基础API。
可选的,获取第一基础API的功能信息。根据第一基础API的功能信息从第二生态提供的API库中获取与该功能信息匹配的第二基础API。
可选的,步骤320可通过下述方式确定第二基础API:
步骤321、判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API。
第二生态提供的基础API具有固定的功能,分别获取每个第二生态提供的基础API的功能描述。判断该功能描述与第一基础API的功能描述是否行相同。
在一种实现方式中,根据预设名称对应表和第一基础API名称进行回退查找,判断是否存在与第一基础API功能相同的第二基础API。
除了按照功能查找第二基础API,还可以按照API名称查找第二API。若第二生态的基础API与第一基础API名称相同,则确定存在与第一基础API功能相同的第二基础API。
此外,在建立生态时,有时会参照在先生态的命名方式对基础API进行命名。假设第一生态以第二生态为在先生态,第一生态中的基础API的名称为第二生态的基础API的名称加上第一生态的标识。此时,第一基础API与第二基础API具有部分重叠。通过回退查找的方式查找名称中是否包含部分词汇重叠,若存在词汇重叠,则确定存在与第一基础API功能相同的第二基础API。
上述技术方案能够在第二生态的基础API查询过程中出现的遗漏问题,通过回退查找能够识别出名称部分重叠的基础API,进而更加全面的查找第二基础API。
步骤322、若存在,则获取第二基础API。
若存在,则获取第二基础API的标识。标识可以为第二基础API的名称。
步骤323、若不存在,则对第一基础API进行重写,得到第二基础API。
若不存在第二基础API,则程序员对第二基础API进行编写,以便得到在第二生态中起到与第一基础API功能相同的第二基础API。
上述方案能够在第二生态缺少与第一基础API对应的基础API时,通过重写的方式得到第二基础API,进而得到能够在第二环境运行的第二基础API,进而避免因引缺少第二基础API导致软件无法迁移的问题,提高软件迁移的可靠性。
步骤330、根据第二基础API和第一基础API生成第一基础API的映射关系。
根据第二基础API的标识和第一基础API的标识建立第一基础API的映射关系。
步骤340、根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API。
第一自定义API可以按照预设的个性化命名规则进行重命名。个性化命名规则为适用于第二生态的命名方式。用户可以根据需求对个性化命名规则进行配置。
步骤350、生成第二自定义API与第一自定义API的映射关系。
在确定第二自定义API后,根据第二自定义API的标识和第一自定义API的标识建立映射关系。
本发明实施例提供的多生态间的软件迁移方法,能够分别建立第一基础API和第一自定义API的映射关系,第一基础API与第二基础API的映射关系能够将两个生态之间功能而名称不同的底层函数进行关联,第二自定义API可以根据在个性化命名规则进行重命名,进而在第二生态中进行调用,提高映射准确性。
实施例四
图4为本发明实施例四提供的一种多生态间的软件迁移方法的流程图,作为上述实施例的一个示例,该方法包括:
步骤401、根据目标软件的代码结构确定API调用关系,根据调用关系确定被调用的目标API。
步骤402、若目标API属于第一生态提供的基础API,将目标API确定为第一基础API。
步骤403、否则,若目标API不属于第一生态提供的基础API,将目标API确定为第一自定义API。
步骤404、根据预设名称对应表和第一基础API名称进行回退查找或全名称查找,判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API。
步骤405、若存在,则获取第二基础API。
步骤406、若不存在,则对第一基础API进行重写,得到第二基础API。
步骤407、根据第二基础API和第一基础API生成第一基础API的映射关系。
步骤408、根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API;生成第二自定义API与第一自定义API的映射关系。
步骤409、读取第一API的程序文件;根据映射关系和第一API的程序文件,生成第二API的程序文件。
步骤410、根据多个第二API的程序文件进行编译,得到第二生态安装包。
步骤411、运行第二生态安装包,以便将目标软件迁移至第二生态。
本发明实施例提供的多生态间的软件迁移方法,能够获取目标软件在第一生态中调用的第一API;根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,根据映射关系对第一API进行迁移。相对于目前缺少普遍适用于不同生态间的软件迁移的问题,本发明实施例中生成的映射关系,能够表示第一生态的第一API与第二生态的第二API的映射关系,根据映射关系能够完成目标软件从第一生态至第二生态的迁移,提高软件代码的迁移效率。
实施例五
图5为本发明实施例五提供的多生态间的软件迁移装置的结构示意图,本实施例可适用于在不同生态间进行软件迁移的情况,该方法可以由计算机设备来执行,具体包括:API获取模块510、映射生成模块520和迁移模块530。
API获取模块510,用于获取目标软件在第一生态中调用的第一API;
映射生成模块520,用于根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同;
迁移模块530,用于根据映射关系对第一API进行迁移。
在上述实施例的基础上,API获取模块510用于:
根据目标软件的代码结构确定API调用关系;
根据调用关系确定第一自定义API和第一生态的第一基础API。
在上述实施例的基础上,API获取模块510用于:
根据调用关系确定被调用的目标API;
若目标API属于第一生态提供的基础API,将目标API确定为第一基础API;
否则,若目标API不属于第一生态提供的基础API,将目标API确定为第一自定义API。
在上述实施例的基础上,映射生成模块520用于:
获取第二生态中与第一基础API对应的第二基础API;
根据第二基础API和第一基础API生成第一基础API的映射关系;
根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API;
生成第二自定义API与第一自定义API的映射关系。
在上述实施例的基础上,映射生成模块520用于:
判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API;
若存在,则获取第二基础API;
若不存在,则对第一基础API进行重写,得到第二基础API。
在上述实施例的基础上,映射生成模块520用于:
根据预设名称对应表和第一基础API名称进行回退查找,判断是否存在与第一基础API功能相同的第二基础API。
在上述实施例的基础上,迁移模块530用于:
读取第一API的程序文件;
根据映射关系和第一API的程序文件,生成第二API的程序文件;
根据多个第二API的程序文件进行编译,得到第二生态安装包;
运行第二生态安装包,以便将目标软件迁移至第二生态。
本发明实施例提供的多生态间的软件迁移装置,API获取模块510获取目标软件在第一生态中调用的第一API;映射生成模块520根据第一API生成映射关系,迁移模块530根据映射关系对第一API进行迁移。相对于目前缺少普遍适用于不同生态间的软件迁移的问题,本发明实施例中生成的映射关系,能够表示第一生态的第一API与第二生态的第二API的映射关系,根据映射关系能够完成目标软件从第一生态至第二生态的迁移,提高软件代码的迁移效率。
本发明实施例所提供的多生态间的软件迁移装置可执行本发明任意实施例所提供的多生态间的软件迁移方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括处理器60、存储器61、输入装置62和输出装置63;计算机设备中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;计算机设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多生态间的软件迁移方法对应的程序指令/模块(例如,多生态间的软件迁移装置中的API获取模块510、映射生成模块520和迁移模块530)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的多生态间的软件迁移方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
计算机设备还包括显卡,显卡可以为显示卡(Video card)或显示芯片。显卡与处理器60连接,若输出装置63为显示屏,则显卡与输出装置63连接。显卡具有独立处理器和存储器,显卡具有硬件生态。不同品牌的显卡具有各自的生态。本申请目标软件可以用于在显卡中运行。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种多生态间的软件迁移方法,该方法包括:
获取目标软件在第一生态中调用的第一API;
根据第一API生成映射关系,映射关系包括第一API与第二API的映射关系,第二API为第二生态调用的API,第二API在第二生态的功能与第一API在第一生态的功能相同;
根据映射关系对第一API进行迁移。
在上述实施例的基础上,获取目标软件在第一生态中调用的第一API,包括:
根据目标软件的代码结构确定API调用关系;
根据调用关系确定第一自定义API和第一生态的第一基础API。
在上述实施例的基础上,根据调用关系确定第一自定义API和第一生态的第一基础API,包括:
根据调用关系确定被调用的目标API;
若目标API属于第一生态提供的基础API,将目标API确定为第一基础API;
否则,若目标API不属于第一生态提供的基础API,将目标API确定为第一自定义API。
在上述实施例的基础上,根据第一API生成映射关系,包括:
获取第二生态中与第一基础API对应的第二基础API;
根据第二基础API和第一基础API生成第一基础API的映射关系;
根据个性化命名规则对第一自定义API进行重命名,得到第二自定义API;
生成第二自定义API与第一自定义API的映射关系。
在上述实施例的基础上,获取第二生态中与第一基础API对应的第二基础API,包括:
判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API;
若存在,则获取第二基础API;
若不存在,则对第一基础API进行重写,得到第二基础API。
在上述实施例的基础上,判断第二生态提供的基础API是否存在与第一基础API功能相同的第二基础API,包括:
根据预设名称对应表和第一基础API名称进行回退查找,判断是否存在与第一基础API功能相同的第二基础API。
在上述实施例的基础上,根据映射关系对第一API进行迁移,包括:
读取第一API的程序文件;
根据映射关系和第一API的程序文件,生成第二API的程序文件;
根据多个第二API的程序文件进行编译,得到第二生态安装包;
运行第二生态安装包,以便将目标软件迁移至第二生态。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的多生态间的软件迁移方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
值得注意的是,上述多生态间的软件迁移装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种多生态间的软件迁移方法,其特征在于,包括:
获取目标软件在第一生态中调用的第一API;
根据所述第一API生成映射关系,所述映射关系包括所述第一API与第二API的映射关系,所述第二API为第二生态调用的API,所述第二API在所述第二生态的功能与所述第一API在所述第一生态的功能相同;
根据所述映射关系对所述第一API进行迁移。
2.根据权利要求1所述的方法,其特征在于,获取目标软件在第一生态中调用的第一API,包括:
根据目标软件的代码结构确定API调用关系;
根据所述调用关系确定第一自定义API和第一生态的第一基础API。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调用关系确定第一自定义API和第一生态的第一基础API,包括:
根据所述调用关系确定被调用的目标API;
若所述目标API属于第一生态提供的基础API,将所述目标API确定为第一基础API;
否则,若所述目标API不属于第一生态提供的基础API,将所述目标API确定为第一自定义API。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一API生成映射关系,包括:
获取第二生态中与所述第一基础API对应的第二基础API;
根据所述第二基础API和所述第一基础API生成所述第一基础API的映射关系;
根据个性化命名规则对所述第一自定义API进行重命名,得到第二自定义API;
生成所述第二自定义API与所述第一自定义API的映射关系。
5.根据权利要求4所述的方法,其特征在于,所述获取第二生态中与所述第一基础API对应的第二基础API,包括:
判断第二生态提供的基础API是否存在与所述第一基础API功能相同的第二基础API;
若存在,则获取所述第二基础API;
若不存在,则对所述第一基础API进行重写,得到第二基础API。
6.根据权利要求5所述的方法,其特征在于,所述判断第二生态提供的基础API是否存在与所述第一基础API功能相同的第二基础API,包括:
根据预设名称对应表和所述第一基础API名称进行回退查找,判断是否存在与所述第一基础API功能相同的第二基础API。
7.根据权利要求1所述的方法,其特征在于,所述根据所述映射关系对所述第一API进行迁移,包括:
读取所述第一API的程序文件;
根据所述映射关系和所述第一API的程序文件,生成第二API的程序文件;
根据多个第二API的程序文件进行编译,得到第二生态安装包;
运行所述第二生态安装包,以便将所述目标软件迁移至所述第二生态。
8.一种多生态间的软件迁移装置,其特征在于,包括:
API获取模块,用于获取目标软件在第一生态中调用的第一API;
映射生成模块,用于根据所述第一API生成映射关系,所述映射关系包括所述第一API与第二API的映射关系,所述第二API为第二生态调用的API,所述第二API在所述第二生态的功能与所述第一API在所述第一生态的功能相同;
迁移模块,用于根据所述映射关系对所述第一API进行迁移。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的多生态间的软件迁移方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的多生态间的软件迁移方法。
CN202110623284.XA 2021-06-04 2021-06-04 多生态间的软件迁移方法、装置、计算机设备及存储介质 Active CN113360184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110623284.XA CN113360184B (zh) 2021-06-04 2021-06-04 多生态间的软件迁移方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110623284.XA CN113360184B (zh) 2021-06-04 2021-06-04 多生态间的软件迁移方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113360184A true CN113360184A (zh) 2021-09-07
CN113360184B CN113360184B (zh) 2024-06-18

Family

ID=77532191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110623284.XA Active CN113360184B (zh) 2021-06-04 2021-06-04 多生态间的软件迁移方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113360184B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068715A1 (en) * 2002-10-04 2004-04-08 Wai-Ming Wong System and method for migration of software
US6854123B1 (en) * 2000-05-09 2005-02-08 International Business Machines Corporation Method, system, and program for mapping standard application program interfaces (APIs) to user interface APIs
US20050172301A1 (en) * 2001-07-09 2005-08-04 Microsoft Corporation Interface invoke mechanism
KR20090065721A (ko) * 2007-12-18 2009-06-23 티쓰리큐 주식회사 인터페이스를 이용한 요구사항 추적/관리 방법 및 시스템
US20110314443A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Seamless migration of tuxedo® applications to a cics® hosting environment
US8516508B1 (en) * 2012-08-02 2013-08-20 Cisco Technology, Inc. Automated application programming interface (API) generation
CN106878052A (zh) * 2016-12-21 2017-06-20 新华三技术有限公司 一种用户迁移方法和装置
US20190171433A1 (en) * 2017-12-01 2019-06-06 Adp, Llc Methods for enabling a computer to migrate microservices and to perform microservice templating
CN111708539A (zh) * 2020-06-17 2020-09-25 腾讯科技(深圳)有限公司 一种应用程序代码转换方法、装置、电子设备和存储介质
CN112114789A (zh) * 2019-06-20 2020-12-22 腾讯科技(深圳)有限公司 一种业务开发方法及设备
CN112181489A (zh) * 2020-09-28 2021-01-05 中国平安人寿保险股份有限公司 代码迁移方法、装置、计算机设备及存储介质
CN112256249A (zh) * 2020-10-15 2021-01-22 深圳Tcl新技术有限公司 扩展Android系统功能的方法、设备及计算机存储介质
CN112416365A (zh) * 2020-11-18 2021-02-26 中信银行股份有限公司 文件转换方法、装置及存储介质
WO2021073214A1 (zh) * 2019-10-14 2021-04-22 支付宝(杭州)信息技术有限公司 用于运行应用程序的方法、装置及gpu节点
CN112748914A (zh) * 2020-03-18 2021-05-04 腾讯科技(深圳)有限公司 一种应用程序开发方法、装置、电子设备和存储介质
CN112882751A (zh) * 2021-02-25 2021-06-01 曙光信息产业(北京)有限公司 Cuda程序移植方法、装置、电子设备及存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854123B1 (en) * 2000-05-09 2005-02-08 International Business Machines Corporation Method, system, and program for mapping standard application program interfaces (APIs) to user interface APIs
US20050172301A1 (en) * 2001-07-09 2005-08-04 Microsoft Corporation Interface invoke mechanism
US20040068715A1 (en) * 2002-10-04 2004-04-08 Wai-Ming Wong System and method for migration of software
KR20090065721A (ko) * 2007-12-18 2009-06-23 티쓰리큐 주식회사 인터페이스를 이용한 요구사항 추적/관리 방법 및 시스템
US20110314443A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Seamless migration of tuxedo® applications to a cics® hosting environment
US8516508B1 (en) * 2012-08-02 2013-08-20 Cisco Technology, Inc. Automated application programming interface (API) generation
CN106878052A (zh) * 2016-12-21 2017-06-20 新华三技术有限公司 一种用户迁移方法和装置
US20190171433A1 (en) * 2017-12-01 2019-06-06 Adp, Llc Methods for enabling a computer to migrate microservices and to perform microservice templating
CN112114789A (zh) * 2019-06-20 2020-12-22 腾讯科技(深圳)有限公司 一种业务开发方法及设备
WO2021073214A1 (zh) * 2019-10-14 2021-04-22 支付宝(杭州)信息技术有限公司 用于运行应用程序的方法、装置及gpu节点
CN112748914A (zh) * 2020-03-18 2021-05-04 腾讯科技(深圳)有限公司 一种应用程序开发方法、装置、电子设备和存储介质
CN111708539A (zh) * 2020-06-17 2020-09-25 腾讯科技(深圳)有限公司 一种应用程序代码转换方法、装置、电子设备和存储介质
CN112181489A (zh) * 2020-09-28 2021-01-05 中国平安人寿保险股份有限公司 代码迁移方法、装置、计算机设备及存储介质
CN112256249A (zh) * 2020-10-15 2021-01-22 深圳Tcl新技术有限公司 扩展Android系统功能的方法、设备及计算机存储介质
CN112416365A (zh) * 2020-11-18 2021-02-26 中信银行股份有限公司 文件转换方法、装置及存储介质
CN112882751A (zh) * 2021-02-25 2021-06-01 曙光信息产业(北京)有限公司 Cuda程序移植方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姜人和;郑晓梅;朱晓倩;潘敏学;张天;: "一种基于UML关系的Java代码库构造方法", 计算机科学, no. 11, 15 November 2017 (2017-11-15) *

Also Published As

Publication number Publication date
CN113360184B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN109976761B (zh) 软件开发工具包的生成方法、装置及终端设备
CN109542399B (zh) 软件开发方法、装置、终端设备及计算机可读存储介质
KR100518584B1 (ko) 공유 라이브러리 시스템 및 상기 시스템 구축 방법
CN111796831A (zh) 一种多芯片兼容的编译方法和装置
CN110231994B (zh) 内存分析方法、装置和计算机可读存储介质
CN107766130B (zh) 虚拟机向容器迁移的方法和装置
CN106648755B (zh) 一种在安卓art环境中动态加载dex的方法及装置
CN112817657B (zh) 一种应用程序启动项加载方法、装置、系统及存储介质
CN111068328A (zh) 游戏广告配置表格的生成方法、终端设备及介质
US20170351490A1 (en) Seamless high performance interoperability between different type graphs that share a garbage collector
CN110598855A (zh) 深度学习模型生成方法、装置、设备及存储介质
CN103631573A (zh) 可迁移函数执行时间的获得方法及系统
CN113051514A (zh) 元素的定位方法、装置、电子设备及存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
US8316357B2 (en) Type descriptor management for frozen objects
CN112860312A (zh) 项目依赖关系变化的检测方法及装置
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
US8769498B2 (en) Warning of register and storage area assignment errors
CN109558121B (zh) 接口驱动程序的开发方法、装置、设备及存储介质
CN114816772B (zh) 基于兼容层运行的应用的排错方法、排错系统及计算设备
CN114138376B (zh) 一种在应用中加载插件的方法、计算设备及存储介质
CN114020278B (zh) 数据处理方法、装置、设备及存储介质
CN113360184B (zh) 多生态间的软件迁移方法、装置、计算机设备及存储介质
CN116964560A (zh) 针对云原生高性能计算的代码生成工具
CN114237769A (zh) 一种程序的执行方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant