一种自动适配方法、装置、存储介质及电子设备转让专利

申请号 : CN202211077471.3

文献号 : CN115167886B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李飞飞逄振马鹏程刘晶晶

申请人 : 塬数科技(无锡)有限公司

摘要 :

本发明涉及计算机软件技术领域,具体公开了一种自动适配方法、装置、存储介质及电子设备,包括:获取所在操作系统的系统参数信息;根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;当所在操作系统的系统类型为非国产开源操作系统时,加载与非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。本发明提供的自动适配方法能够实现软件对操作系统的自动适配。

权利要求 :

1.一种自动适配方法,其特征在于,当接收到应用程序的安装请求时,所述自动适配方法包括:获取所在操作系统的系统参数信息,所述系统参数信息包括:操作系统信息、中间件信息和硬件参数信息;

根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;

当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;

当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。

2.根据权利要求1所述的自动适配方法,其特征在于,根据所述系统参数信息确定所在操作系统的系统类型,包括:将所述系统参数信息与预存系统参数信息进行比对,其中所述预存系统参数信息包括预存非国产开源操作系统参数信息和预存国产系统参数信息;

若所述系统参数信息与预存非国产开源操作系统参数信息匹配,则确定所在操作系统的系统类型为非国产开源操作系统;

若所述系统参数信息与预存国产系统参数信息匹配,则确定所在操作系统的系统类型为国产系统。

3.根据权利要求1所述的自动适配方法,其特征在于,当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求,包括:当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准数据库组件和标准消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。

4.根据权利要求3所述的自动适配方法,其特征在于,所述标准数据库组件包括mysql组件,所述标准消息组件包括Redis组件和/或MQTT组件。

5.根据权利要求1所述的自动适配方法,其特征在于,当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求,包括:当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产数据库组件和国产消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。

6.根据权利要求5所述的自动适配方法,其特征在于,所述国产数据库组件包括达梦数据库、TDengine、GBase、SequoiaDB、OceanBase和SSDB中的任意一种,所述国产消息组件包括CODIS、smart‑mqtt和ApusicMQ中的任意一种。

7.一种自动适配装置,其特征在于,当接收到应用程序的安装请求时,所述自动适配装置包括:获取模块,用于获取所在操作系统的系统参数信息,所述系统参数信息包括:操作系统信息、中间件信息和硬件参数信息;

确定模块,用于根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;

第一加载模块,用于当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;

第二加载模块,用于当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。

8.一种存储介质,其特征在于,所述存储介质存储有计算机指令,所述计算机指令被处理器加载以执行权利要求1至6中任意一项所述的自动适配方法。

9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器和所述处理器通信连接,所述处理器能够加载并执行所述存储器存储的计算机指令以实现权利要求1至6中任意一项所述的自动适配方法。

说明书 :

一种自动适配方法、装置、存储介质及电子设备

技术领域

[0001] 本发明涉及计算机软件技术领域,尤其涉及一种自动适配方法、自动适配装置、存储介质及电子设备。

背景技术

[0002] 针对近年来国产系统中间件等没有像传统系统中间件等建立体系标准,在适应国产化系统时,不同厂商提供的接口服务以及硬件有可能不同,面对这样差异较大的系统,软件无法自动适配,只能出多个版本的软件包,目前没有较好的解决方案。

发明内容

[0003] 本发明提供了一种自动适配方法、自动适配装置、存储介质及电子设备,解决相关技术中存在的软件无法自动适配的问题。
[0004] 作为本发明的第一个方面,提供一种自动适配方法,其中,当接收到应用程序的安装请求时,所述自动适配方法包括:
[0005] 获取所在操作系统的系统参数信息,所述系统参数信息包括:操作系统信息、中间件信息和硬件参数信息;
[0006] 根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;
[0007] 当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;
[0008] 当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0009] 进一步地,根据所述系统参数信息确定所在操作系统的系统类型,包括:
[0010] 将所述系统参数信息与预存系统参数信息进行比对,其中所述预存系统参数信息包括预存非国产开源操作系统参数信息和预存国产系统参数信息;
[0011] 若所述系统参数信息与预存非国产开源操作系统参数信息匹配,则确定所在操作系统的系统类型为非国产开源操作系统;
[0012] 若所述系统参数信息与预存国产系统参数信息匹配,则确定所在操作系统的系统类型为国产系统。
[0013] 进一步地,当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求,包括:
[0014] 当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准数据库组件和标准消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0015] 进一步地,所述标准数据库组件包括mysql组件,所述标准消息组件包括Redis组件和/或MQTT组件。
[0016] 进一步地,当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求,包括:
[0017] 当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产数据库组件和国产消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0018] 进一步地,所述国产数据库组件包括达梦数据库、TDengine、GBase、SequoiaDB、OceanBase和SSDB中的任意一种,所述国产消息组件包括CODIS、smart‑mqtt和ApusicMQ中的任意一种。
[0019] 作为本发明的另一个方面,提供一种自动适配装置,其中,当接收到应用程序的安装请求时,所述自动适配装置包括:
[0020] 获取模块,用于获取所在操作系统的系统参数信息,所述系统参数信息包括:操作系统信息、中间件信息和硬件参数信息;
[0021] 确定模块,用于根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;
[0022] 第一加载模块,用于当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;
[0023] 第二加载模块,用于当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0024] 作为本发明的另一个方面,提供一种存储介质,其中,所述存储介质存储有计算机指令,所述计算机指令被处理器加载以执行前文所述的自动适配方法。
[0025] 作为本发明的另一个方面,提供一种电子设备,其中,包括存储器和处理器,所述存储器和所述处理器通信连接,所述处理器能够加载并执行所述计算机指令以实现前文所述的自动适配方法。
[0026] 本发明提供的自动适配方法,通过获取所在操作系统的系统参数信息,并根据其确定所在操作系统的系统类型,从而加载与该系统类型对应的组件,以实现应用程序的安装,而无需改变应用程序本身,即不管是非国产开源操作系统和国产系统都可以用同一个程序包安装,而不必按照不同系统出不同版本的程序,有效解决了现有技术中的软件无法自动适配而需要出多个版本软件包的问题,也避免了资源的浪费。

附图说明

[0027] 附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
[0028] 图1为本发明提供的自动适配方法的流程图。
[0029] 图2为本发明提供的自动适配装置的结构框图。
[0030] 图3为本发明提供的电子设备的结构框图。

具体实施方式

[0031] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。
[0032] 为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0033] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0034] 在本实施例中提供了一种自动适配方法,图1是根据本发明实施例提供的自动适配方法的流程图,如图1所示,当接收到应用程序的安装请求时,所述自动适配方法包括:
[0035] S100、获取所在操作系统的系统参数信息;
[0036] 应当理解的是,为了能够使得应用程序不仅能够适配标准操作系统,还同时能够在不改变版本的情况下适配国产操作系统,在接收到应用程序的安装请求时,首先获取所在操作系统的系统参数信息,即获取应用程序待安装的操作系统的系统参数信息,以便于与预存的系统参数信息进行比对,确定操作系统的系统类型。
[0037] 在本发明实施例中,所述系统参数信息具体可以包括:操作系统信息、中间件信息和硬件参数信息。
[0038] 具体地,所述操作系统信息具体可以包括操作系统版本信息和操作系统名称。
[0039] 具体地,所述中间件信息具体可以包括数据库中间件以及消息组件等;所述硬件参数信息具体可以包括处理器信息、存储器信息等。
[0040] S200、根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;
[0041] 在本发明实施例中,为了实现无论是非国产开源操作系统还是国产系统,都可以使用一个应用程序的程序安装包,而不必按照不同系统设置不同版本的程序,因此对所述操作系统的系统类型进行判断,从而能够根据不同的系统类型加载与之对应的组件。
[0042] 需要说明的是,在本发明中,所述非国产开源操作系统具体可以包括CentOS Linux、RedHat Linux、Ubuntu Linux等等。
[0043] 具体地,根据所述系统参数信息确定所在操作系统的系统类型,包括:
[0044] 将所述系统参数信息与预存系统参数信息进行比对,其中所述预存系统参数信息包括预存非国产开源操作系统参数信息和预存国产系统参数信息;
[0045] 若所述系统参数信息与预存非国产开源操作系统参数信息匹配,则确定所在操作系统的系统类型为非国产开源操作系统;
[0046] 若所述系统参数信息与预存国产系统参数信息匹配,则确定所在操作系统的系统类型为国产系统。
[0047] 可以理解的是,将获取到的系统参数信息与预存国产系统参数信息以及预存非国产开源操作系统参数信息进行比对,如果与预存国产系统参数信息匹配成功,则确定所在操作系统的系统类型为国产系统,如果与预存非国产开源操作系统参数信息匹配成功,则确定所在操作系统的系统类型为非国产开源操作系统。
[0048] 应当理解的是,所述预存国产系统参数信息可以包括多个比较常用的国产系统参数信息,所述预存非国产开源操作系统参数信息可以包括多个比较常用的非国产开源操作系统参数信息。当然还可以对预存国产参数信息以及预存非国产开源操作系统参数信息进行定期更新,以满足不同的需求。
[0049] S300、当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;
[0050] 在本发明实施例中,当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准数据库组件和标准消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0051] 具体地,所述标准数据库组件包括mysql组件,所述标准消息组件包括Redis组件和/或MQTT组件。
[0052] 应当理解的是,所述标准数据库组件和消息组件与应用程序的功能相关,应用程序的不同功能可能对应着不同的标准数据库组件和标准消息组件,因此可以根据应用程序的功能确定标准数据库组件和标准消息组件。
[0053] S400、当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0054] 在本发明实施例中,当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求,包括:
[0055] 当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产数据库组件和国产消息组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0056] 具体地,所述国产数据库组件包括达梦数据库、TDengine、GBase、SequoiaDB、OceanBase和SSDB中的任意一种,所述国产消息组件包括CODIS、smart‑mqtt和ApusicMQ中的任意一种。
[0057] 应当理解的是,所述国产数据库组件以及国产消息组件具体为哪些组件可以根据需要进行设定,上述仅为示例性描述,此处不作限定。
[0058] 应当理解的是,若查出来是uos(国产统信)操作系统,并在程序代码中的国产系统列表中找到,将代码中的全局操作系统标识修改为“uos”。因此,在运行时选择的数据库配置也是国产数据库,例如达梦的配置信息,读写数据库时,也是根据标识判断选择对应的sql文件等。
[0059] 还应当理解的是,所述国产数据库组件和消息组件与应用程序的功能相关,应用程序的不同功能可能对应着不同的国产数据库组件和消息组件,因此可以根据应用程序的功能确定国产数据库组件和消息组件。
[0060] 需要说明的是,若查出来的既不是国产操作系统也不是标准操作系统,即没有比对成功的系统类型,则会弹出错误提示。
[0061] 综上,本发明实施例提供的自动适配方法,通过获取所在操作系统的系统参数信息,并根据其确定所在操作系统的系统类型,从而加载与该系统类型对应的组件,以实现应用程序的安装,而无需改变应用程序本身,即不管是非国产开源操作系统和国产系统都可以用同一个程序包安装,而不必按照不同系统出不同版本的程序,有效解决了现有技术中的软件无法自动适配而需要出多个版本软件包的问题,也避免了资源的浪费。
[0062] 下面对本发明实施例提供的自动适配方法的具体实现过程进行详细描述。
[0063] 根据已预存的国产系统数据参数信息,在运行时自动匹配,判断是否是国产系统还是非国产开源操作系统,对国产系统和非国产开源操作系统有不同的程序安装及代码分支的选择。
[0064] 例如:在安装脚本中,首先查询linux系统,是标准的还是国产的,非国产开源操作系统对应一组标准组件,国产系统对应国产组件,在组件包中选择安装对应的组件。
[0065] 在程序运行时,查询linux操作系统,获取其中的系统参数信息,若查出来是uos(国产统信)操作系统,并在程序代码中的国产系统列表中找到,将代码中的全局操作系统标识修改为“uos”,因此,在运行时选择的数据库配置也是国产数据库,例如达梦的配置信息,读写数据库时,也是根据标识判断选择对应的sql文件等。
[0066] 本发明实施例的自动适配方法,可以使用springboot2框架开发程序,在程序代码中定义国产系统的枚举类,启动时通过cat /etc/os‑release获取系统信息(国产操作系统主要是基于开源操作系统linux/unix开发),判断是否是国产系统。并将其保存为全局变量,以待进一步调用。
[0067] 以下是最常用的连接数据库,不同的数据库,sql不一样,以数据库举例。
[0068] 举例:springboot+mybatis +数据库(非国产开源操作系统:mysql,国产系统:达梦)。
[0069] 1)在pom.xml文件中配置好mysql和达梦两个数据库的驱动依赖,以及其他需要的工具包依赖。
[0070] 2)在application.yml中配置数据库的相关配置信息。
[0071] 3)编写配置类:分别配置mysql和达梦两个数据库连接配置信息,注意读取数据库连接相关的键,扫描的mapper文件等。
[0072] 4)国产系统和非国产开源操作系统创建不同config配置信息,并分别实现org.springframework.context.annotation.Condition接口,并实现matches方法。
[0073] 编写一个Condition配置类,类加注解@Configuration,类中实现不同数据库配置文件的扫描方法。方法上需要两个注解: @bean、@Conditional(),其中“()”中写的是4)中编写的类名。
[0074] 5)根据数据库配置中的扫描文件路径创建相应的mapper路径及文件。
[0075] 6)这样在启动程序时,cat /etc/os‑release获取系统信息,就可以根据系统选择不同的数据库了。
[0076] 其他的选择,与数据库的配置方法同理。在4)中的方法中实例化所有需要区分的方法。
[0077] 作为本发明的另一实施例,提供一种自动适配装置,其中,当接收到应用程序的安装请求时,如图2所示,所述自动适配装置10包括:
[0078] 获取模块100,用于获取所在操作系统的系统参数信息;
[0079] 确定模块200,用于根据所述系统参数信息确定所在操作系统的系统类型,其中所述系统类型包括非国产开源操作系统和国产系统;
[0080] 第一加载模块300,用于当所在操作系统的系统类型为非国产开源操作系统时,加载与所述非国产开源操作系统匹配的标准组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求;
[0081] 第二加载模块400,用于当所在操作系统的系统类型为国产系统时,加载与所述国产系统匹配的国产组件,并加载与所述应用程序的功能相适配的功能组件,以响应所述安装请求。
[0082] 综上,本发明实施例提供的自动适配装置,通过获取所在操作系统的系统参数信息,并根据其确定所在操作系统的系统类型,从而加载与该系统类型对应的组件,以实现应用程序的安装,而无需改变应用程序本身,即不管是非国产开源操作系统和国产系统都可以用同一个程序包安装,而不必按照不同系统出不同版本的程序,有效解决了现有技术中的软件无法自动适配而需要出多个版本软件包的问题,也避免了资源的浪费。
[0083] 关于本发明提供的自动适配装置的具体工作过程可以参照前文的自动适配方法的描述,此处不再赘述。
[0084] 作为本发明的另一实施例,提供一种存储介质,其中,所述存储介质存储有计算机指令,所述计算机指令被处理器加载以执行前文所述的自动适配方法。
[0085] 在本发明实施例中,提供了一种非暂态计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的供应商物料管理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid‑State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
[0086] 作为本发明的另一实施例,提供一种电子设备,其中,包括存储器和处理器,所述存储器和所述处理器通信连接,所述处理器能够加载并执行所述计算机指令以实现前文所述的自动适配方法。
[0087] 如图3所示,该电子设备可以包括:至少一个处理器31,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口33,存储器34,至少一个通信总线32。其中,通信总线32用于实现这些组件之间的连接通信。其中,通信接口33可以包括显示屏(Display)、键盘(Keyboard),可选通信接口33还可以包括标准的有线接口、无线接口。存储器34可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器34可选的还可以是至少一个位于远离前述处理器31的存储装置。其中,存储器34中存储应用程序,且处理器31调用存储器34中存储的程序代码,以用于执行上述任一方法步骤。
[0088] 其中,通信总线32可以是外设部件互连标准(peripheral  component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。通信总线32可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0089] 其中,存储器34可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random‑access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non‑volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid‑state drive,缩写:SSD);存储器34还可以包括上述种类的存储器的组合。
[0090] 其中,处理器31可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
[0091] 其中,处理器31还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application‑specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:
field‑programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
[0092] 可选地,存储器34还用于存储程序指令。处理器31可以调用程序指令,实现如本发明图1实施例中所示的自动适配方法。
[0093] 可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。