CN115469916B - 一种兼容多版本的南向接口的实现方法、系统和装置 - Google Patents
一种兼容多版本的南向接口的实现方法、系统和装置 Download PDFInfo
- Publication number
- CN115469916B CN115469916B CN202211002623.3A CN202211002623A CN115469916B CN 115469916 B CN115469916 B CN 115469916B CN 202211002623 A CN202211002623 A CN 202211002623A CN 115469916 B CN115469916 B CN 115469916B
- Authority
- CN
- China
- Prior art keywords
- version
- matching
- target program
- cloud
- compiled
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及南向接口技术领域,尤其涉及一种兼容多版本的南向接口的实现方法、系统和装置,方法包括:获取目标程序的编译版本,从云端获取匹配规则;进行第一匹配判断;若第一匹配判断结果为可匹配则启动成功,若第一匹配判断结果为不可匹配则进行第二匹配判断;若第二匹配判断结果为可匹配,则上传匹配规则到云端,启动成功;若第二匹配判断结果为不可匹配,则启动失败;启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。本发明可以兼容几万个目标程序,当目标程序升级时,本程序仍然能兼容;当不兼容情况出现时,只需等待5分钟,其在云端修复后,本程序便又能实现自动兼容。
Description
技术领域
本发明涉及南向接口技术领域,尤其涉及一种兼容多版本的南向接口的实现方法、系统和装置。
背景技术
目前,当一个应用程序需要从另外一个应用程序获取数据时,有南向接口和北向接口两种。对于一个公司内的,需求较多的,一般采用南向接口。但是不同的软件分由不同的部门开发,南向接口变更特别频繁。当由于历史原因,提供南向接口的程序,在不同的机器上部署了不同的版本时,承载在它之上的应用程序就无法兼容。对此,现在业界没有很好的解决办法。
鉴于此,如何克服上述现有技术所存在的技术问题是本技术领域亟待解决的难题。
发明内容
本发明的目的之一在于克服上述现有技术中的存在的技术问题,提供一种兼容多版本的南向接口的实现方法、系统和装置,使一个应用程序可以兼容多个不同版本的南向接口。本发明包括本程序和目标程序,本程序是南向接口的使用方,目标程序是南向接口的提供方。首先本程序从目标程序下载南向接口规范文件和目标程序的编译版本,然后根据本地的匹配规则对其分析匹配并上传策略文件。当目标程序版本变更时,本程序自动重新匹配。
本发明是这样实现的:
第一方面,本发明提供一种兼容多版本的南向接口的实现方法,包括:
获取目标程序的编译版本,从云端获取匹配规则;
进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配;
若第一匹配判断结果为可匹配则启动成功,若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;
若第二匹配判断结果为可匹配,则上传匹配规则到云端,启动成功;若第二匹配判断结果为不可匹配,则启动失败;
启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。
进一步的,所述获取目标程序的编译版本,从云端获取匹配规则具体包括:
获取目标程序的编译版本;版本格式包括:V版本号-R版本号-SP版本号-BD版本号-Build号;
获取云端的接口匹配规则,所述匹配规则采用json的方式,包括:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型。
进一步的,所述进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配具体包括:
如果云端的匹配规则没有找到和本地编译版本完全一致的,则判断结果为不可匹配,如果找到完全一致的则判断结果为可匹配。
进一步的,所述若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件时,获取的南向接口文件为java编译后的,以jar结尾的文件,且文件名是已知的。
进一步的,所述根据云端的匹配规则和目标程序的软件版本梳选出可能的接口具体包括:
按照目标程序编译版本,对云端规则进行排序;排序原则是计算每个编码版本的等价值,等价值计算包括:V版本号*10000+R版本号*1000+SP版本号*100+BD版本号*10+Build版本号除以20的余数;
计算当前目标程序编译版本和云端规则中的编译版本间的等价值差距,求出比当前目标程序编译版本等价值小且差距最少的一个,求出比当前目标程序编译版本等价值大且差距最小的一个,求出比当前目标程序编译版本等价值小且差距小于20的若干个,求出比当前目标程序编译版本等价值大且差距小于20的若干个,将求出的编码版本的等价值符合要求的云端规则作为第二匹配判断规则集。
进一步的,所述进行第二匹配判断,对目标程序逐个试探是否可匹配具体包括:
对得到的第二匹配判断规则集中的云端规则进行排序,排序的原则是根据离当前目标程序编译版本等价值的距离进行排序;
对每个第二匹配判断规则集中的云端规则进行南向接口的调用,若所有的调用都成功,则终止并判断为匹配成功。
进一步的,所述若第二匹配判断结果为不可匹配,则启动失败具体包括:
将匹配失败的情况,以邮件的方式通知用户,同时关闭程序;邮件以表格的形式进行发送,邮件的格式包括:目标程序编译版本,匹配不成功的编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型;若匹配成功的编译版本有多个,则多个匹配成功的编译版本间以逗号分割,如果一个也未匹配到,则空白显示。
进一步的,所述启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动具体包括:
每隔5分钟获取目标程序的编译版本并从云端获取匹配规则;
检查目标程序版本是否变化,若无变化则继续运行,若有变化则进行第一匹配判断,判断现有的匹配规则是否可匹配;
若在第一匹配判断中不可匹配,则从目标程序获取南向接口文件,根据云端规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配,若在第一匹配判断中可匹配,则判断匹配的接口规格是否变更;
若在第二匹配判断中不可匹配,则以邮件的方式通知用户,并休眠30分钟后重新进入目标程序运行步骤,若在第二匹配判断中可匹配,则上传匹配规则到云端,并判断匹配的接口规格是否变更;
在判断匹配的接口规格是否变更时,若未变更则继续运行,若有变更则重新启动。
第二方面,本发明提供一种兼容多版本的南向接口的实现系统,用于实现如第一方面所述的兼容多版本的南向接口的实现方法,系统包括编译版本及匹配规则获取模块、第一匹配判断模块、第二匹配判断模块、匹配规则上传模块以及定时更新模块,其中:
所述编译版本及匹配规则获取模块用于获取目标程序的编译版本,从云端获取匹配规则;
所述第一匹配判断模块用于进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配;若不可匹配则调用所述第二匹配判断模块进行下一步判断;
所述第二匹配判断模块用于在第一匹配判断为不可匹配时,从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;
所述匹配规则上传模块用于在第二匹配判断为可匹配时,上传匹配规则到云端;
所述定时更新模块用于在启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。
第三方面,本发明提供一种兼容多版本的南向接口的实现装置,装置包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器设置为执行如第一方面所述的兼容多版本的南向接口的实现方法。
综上所述,本发明的有益效果为:提供一种兼容多版本的南向接口的实现方法、系统和装置,使一个应用程序可以兼容多个不同版本的南向接口。本发明包括本程序和目标程序,本程序是南向接口的使用方,目标程序是南向接口的提供方。首先本程序从目标程序下载南向接口规范文件和目标程序的编译版本,然后根据本地的策略文件对其分析匹配并上传策略文件。当目标程序版本变更时,本程序自动重新匹配。本发明还提供一种如何比较两个编译版本的距离的方法,可以比较出当前目标程序编译版本和云端规则中的编译版本间的距离(也即等价值差距),以此作为参考挑选出距离相近的编译版本来进行匹配,可以减少匹配时间,优化匹配过程。本发明中的本程序启动后,能兼容几万个目标程序,当目标程序升级时,本程序仍然能兼容;当不兼容的情况出现时,只需等待5分钟,其在云端修复后,本程序便又能实现自动兼容。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例1提供的一种兼容多版本的南向接口的实现方法的流程图;
图2为本发明实施例1提供的步骤101扩展流程图;
图3为本发明实施例1提供的步骤103中梳选可能接口的扩展流程图;
图4为本发明实施例1提供的步骤103中第二匹配判断的扩展流程图;
图5为本发明实施例1提供的步骤105扩展流程图;
图6为本发明实施例2提供的一种兼容多版本的南向接口的实现系统的模块框图;
图7为本发明实施例2提供的启动阶段具体流程图;
图8为本发明实施例2提供的运行阶段具体流程图;
图9为本发明实施例3提供的一种兼容多版本的南向接口的实现装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合,各个步骤在符合逻辑、不冲突的情况下也可以调换先后顺序。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
需先说明,本发明实施例包括本程序和目标程序,本程序是南向接口的使用方,目标程序是南向接口的提供方。首先本程序从目标程序下载南向接口规范文件和目标程序的编译版本,然后根据本地的策略文件对其分析匹配并上传策略文件。当目标程序版本变更时,本程序自动重新匹配。本发明实施例提供的步骤都是以“本程序”为视角进行描述的。另外,本实施例中,匹配规则就是接口规则:包括软件版本、编译版本。软件版本是一年或几年出一个版本,编译版本上有具体的出厂日期,精确到年月日。一个软件版本对应多个编译版本。软件版本可穷举,编译版本不可穷举。接口规则如果在本地,就是本地规则,如果上传到云端就是云端规则,当未联网时,两者不一致。
如图1所示,本发明实施例1提供一种兼容多版本的南向接口的实现方法,该方法包括如下步骤。
步骤101:获取目标程序的编译版本,从云端获取匹配规则。该步骤中,由本程序获取目标程序的编译版本以及云端现有的匹配规则。
步骤102:进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配。该步骤,本程序根据上一步获取的目标程序的编译版本以及云端现有的匹配规则来分析是否可匹配。
步骤103:若第一匹配判断结果为可匹配则启动成功,若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配。该步骤是对上一步骤中第一匹配判断结果的处理,若第一匹配判断的结果为可匹配那本程序就能直接启动,如果不可匹配,那就得需要进行更深层次的第二匹配判断。需说明的是,现有的匹配规则完全基于目标程序的编译版本,只有一个自变量。而本发明实施例经过大量版本的学习发现后,增加了若干自变量,增加的变量是:目标程序的操作系统版本(linux或windows),目标程序的使用地点(国内还是海外),目标程序的管理的硬件设备类型(PTN(包传输网络),OTN(光传输网络),目标程序的架构版本等。所以在该步骤103中,可以先过滤出(目标程序操作系统的版本、使用地点、管理的硬件设备类型、架构版本)完全一样的规则,再计算一个匹配规则的差值。从而更精准的匹配。一般而言,架构版本的确定是通过登录目标程序的服务注册中心,读取指定微服务的版本,并将其作为架构的版本,基于上述变量的设置,在遇到类似版本3中包含版本2内容的特例情况时,本发明实施例在确定架构版本时就不会出现问题。另外,关于本实施例中的匹配规则,云端匹配规则包含两个部分,一个是专家经验库,初始时有一个规则库,每个季度,会由固定的人填写最新的目标程序的信息(出的版本不只一个,但是此处只上传一个)。另外一部分是,本地程序经过学习上传的经验库。
步骤104:若第二匹配判断结果为可匹配,则上传匹配规则到云端,启动成功;若第二匹配判断结果为不可匹配,则启动失败。该步骤是对上一步骤中第二匹配判断结果的处理,若可匹配则本程序就能直接启动,并把成功匹配的匹配规则上传到云端,以方便后续使用;若判定为不可匹配则启动失败,此时可联系工作人员进行后续匹配规则的修改。
步骤105:启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。该步骤类似于一个定时更新步骤,当目标程序升级时,使本程序仍然能兼容,即使有不兼容的情况,在云端修复后,下一次定时时间到后,本程序就能实现自动兼容。云端修复指的是人工上传了解决办法并修复。
在本优选实施例的某一具体实施方案中,如图2所示,步骤101中的所述获取目标程序的编译版本,从云端获取匹配规则具体包括如下步骤。
步骤201:获取目标程序的编译版本;版本格式包括:V版本号-R版本号-SP版本号-BD版本号-Build号。
步骤202:获取云端的接口匹配规则,所述匹配规则采用json的方式,包括:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型。
在本优选实施例的某一具体实施方案中,步骤102中的所述进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配具体包括:如果云端的匹配规则(按编译版本梳理),没有找到和本地编译版本完全一致的,则判断结果为不可匹配,如果找到完全一致的则判断结果为可匹配。该步骤实质上就是云端的找出,看有没有一条编译版本和这个机器上目标版本完全一致。
在本优选实施例的某一具体实施方案中,步骤103中的所述若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件时,获取的南向接口文件为java编译后的,以jar结尾的文件,且文件名是已知的。
在本优选实施例的某一具体实施方案中,如图3所示,步骤103中的所述根据云端的匹配规则和目标程序的软件版本梳选出可能的接口具体包括如下步骤。
步骤301:按照目标程序编译版本,对云端规则进行排序;排序原则是计算每个编码版本的等价值,等价值计算包括:V版本号*10000+R版本号*1000+SP版本号*100+BD版本号*10+Build版本号除以20的余数。
步骤302:计算当前目标程序编译版本和云端规则中的编译版本间的等价值差距,求出比当前目标程序编译版本等价值小且差距最少的一个,求出比当前目标程序编译版本等价值大且差距最小的一个,求出比当前目标程序编译版本等价值小且差距小于20的若干个,求出比当前目标程序编译版本等价值大且差距小于20的若干个,将求出的编码版本的等价值符合要求的云端规则作为第二匹配判断规则集。
在本优选实施例的某一具体实施方案中,如图4所示,步骤103中的所述进行第二匹配判断,对目标程序逐个试探是否可匹配具体包括如下步骤。
步骤401:对得到的第二匹配判断规则集中的云端规则进行排序,排序的原则是根据离当前目标程序编译版本等价值的距离进行排序。本实施例的该步骤中,一个云端规则代表一个编译版本,对云端规则进行排序指的是根据云端规则对应的编译版本的等价值离当前目标程序编译版本等价值的距离进行排序。排序,是为了在大量云端规则中找到一个和当前版本最接近的规则。另外,这里的距离是计算的绝对值。
步骤402:对每个第二匹配判断规则集中的云端规则进行南向接口的调用,若所有的调用都成功,则终止并判断为匹配成功。本实施例的该步骤还提供一种简便优化方式,即在进行南向接口的调用只使用最近的两个匹配规则(云端规则)进行调用,如果调用成功,函数的返回值是正常的,否则就是异常。需说明的是,该步骤所有的调用都成功,则终止并判断为匹配成功指的是某个云端规则进行所有南向接口的调用都成功。
在本优选实施例的某一具体实施方案中,步骤104中的所述若第二匹配判断结果为不可匹配,则启动失败具体包括:将匹配失败的情况,以邮件的方式通知用户(例如通知主管,以通过人工方式确定规则),同时关闭程序;邮件以表格的形式进行发送,邮件的格式包括:目标程序编译版本,匹配不成功的编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型;若匹配成功的编译版本若有多个(因为上一步的判断是对两个或更多个匹配规则进行的判断,所以可能会存在多个匹配成功的编译版本),则多个匹配成功的编译版本间以逗号分割,如果一个也未匹配到,则空白显示。另外,若第二匹配判断结果为可匹配,则启动成功,此时将上一步验证通过的规则,通过https的post的方式上传到云端。规则的格式是json,它的格式是:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型。
在本优选实施例的某一具体实施方案中,如图5所示,步骤105中的所述启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动具体包括如下步骤。
步骤501:每隔5分钟获取目标程序的编译版本并从云端获取匹配规则。该步骤中,版本格式是V版本号-R版本号-SP版本号-BD版本号-Build号。匹配规则采用json的方式,例如:它包括:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型。
步骤502:检查目标程序版本是否变化,若无变化则继续运行(本程序继续运行),若有变化则进行第一匹配判断,判断现有的匹配规则是否可匹配。该步骤中,根据现在取到的编译版本,在匹配规则中查找是否有完全匹配的,匹配的原则是逐个字符的比较。
步骤503:若在第一匹配判断中不可匹配,则从目标程序获取南向接口文件,根据云端规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配,若在第一匹配判断中可匹配,则判断匹配的接口规格是否变更。该步骤中获取的南向接口的文件为java编译后的,以jar结尾的文件,文件名是已知的。该步骤中的根据云端规则和目标程序的软件版本梳选出可能的接口具体包括:按照目标程序编译版本,对云端规则进行排序;排序原则是计算每个编码版本的等价值,等价值计算包括:V版本号*10000+R版本号*1000+SP版本号*100+BD版本号*10+Build版本号除以20的余数;计算当前目标程序编译版本和云端规则中的编译版本间的等价值差距,求出比当前目标程序编译版本等价值小且差距最少的一个,求出比当前目标程序编译版本等价值大且差距最小的一个,求出比当前目标程序编译版本等价值小且差距小于20的若干个,求出比当前目标程序编译版本等价值大且差距小于20的若干个,将求出的编码版本的等价值符合要求的云端规则作为第二匹配判断规则集。该步骤中的进行第二匹配判断,对目标程序逐个试探是否可匹配包括:对得到的第二匹配判断规则集中的云端规则进行排序,排序的原则是根据离当前目标程序编译版本等价值的距离进行排序;对每个第二匹配判断规则集中的云端规则,通过java的反射机制,进行南向接口的调用,若所有的调用都成功,则终止并判断为匹配成功。
步骤504:若在第二匹配判断中不可匹配,则以邮件的方式通知用户,并休眠30分钟后重新进入目标程序运行步骤(本程序休眠,休眠结束后,重新:先读取云端规则,然后第一第二匹配),若在第二匹配判断中可匹配,则上传匹配规则到云端,并判断匹配的接口规格是否变更。该步骤中,上传匹配规则到云端时是通过https的post的方式上传到云端,规则的格式是json,它的格式是:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型;匹配成功的编译版本如果有多个,则多个以逗号分割,如果一个也未匹配到,则空白显示。该步骤中若在第二匹配判断中不可匹配,则以邮件的方式通知用户时,可以是发送邮件给主管,以进行人工确定规则。
步骤505:在判断匹配的接口规格是否变更时,若未变更则(本程序)继续运行,若有变更则(本程序)重新启动。
综上所述,本发明实施例提供一种兼容多版本的南向接口的实现方法,使一个应用程序可以兼容多个不同版本的南向接口。本发明包括本程序和目标程序,本程序是南向接口的使用方,目标程序是南向接口的提供方。首先本程序从目标程序下载南向接口规范文件和目标程序的编译版本,然后根据本地的策略文件对其分析匹配并上传策略文件。当目标程序版本变更时,本程序自动重新匹配。本发明还提供一种如何比较两个编译版本的距离的方法,可以比较出当前目标程序编译版本和云端规则中的编译版本间的距离(也即等价值差距),以此作为参考挑选出距离相近的编译版本来进行匹配,可以减少匹配时间,优化匹配过程。本发明中的本程序启动后,能兼容几万个目标程序,当目标程序升级时,本程序仍然能兼容;当不兼容的情况出现时,只需等待5分钟,其在云端修复后,本程序便又能实现自动兼容。
实施例2:
本发明实施例2提供一种兼容多版本的南向接口的实现系统,以用来实现如实施例1提供的兼容多版本的南向接口的实现方法,如图6所示,本实施例的系统包括编译版本及匹配规则获取模块、第一匹配判断模块、第二匹配判断模块、匹配规则上传模块以及定时更新模块,其中:所述编译版本及匹配规则获取模块用于获取目标程序的编译版本,从云端获取匹配规则;所述第一匹配判断模块用于进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配;若不可匹配则调用所述第二匹配判断模块进行下一步判断;所述第二匹配判断模块用于在第一匹配判断为不可匹配时,从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;所述匹配规则上传模块用于在第二匹配判断为可匹配时,上传匹配规则到云端;所述定时更新模块用于在启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。
基于上述系统模块,本实施例可分为启动阶段和运行阶段,其中,启动阶段主要包括:通过分析匹配规则和目标程序的编译版本,选择正确的版本;运行阶段主要包括:监听目标程序的编译版本的变化,自动兼容。
具体的,下面对本系统各模块启动阶段和运行阶段的工作流程进行详细说明。
如图7所示,对于启动阶段,目标程序启动之后,本程序的编译版本及匹配规则获取模块获取目标程序的编译版本,并从云端获取匹配规则;然后通过第一匹配判断模块判断是否可匹配;如果第一匹配判断为可匹配,直接启动成功,如果第一匹配判断为不可匹配,则调用第二匹配判断模块从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;如果第二匹配判断为可匹配,则调用匹配规则上传模块上传匹配规则到云端,并启动成功,如果第二匹配判断为不可匹配,则发送邮件给主管,通过人工确定规则,此次启动失败。
如图8所示,对于运行阶段,目标程序运行过程中,定时更新模块每隔5分钟获取目标程序的编译版本以及每隔5分钟从云端获取匹配规则,检查目标程序版本是否变化;如果没有发生变化就继续运行,如果发送变化就调用第一匹配判断模块来判断现有规则是否可匹配;如果第一匹配判断为可匹配,则判断匹配的接口规格是否变更,如果第一匹配判断为不可匹配,则调用第二匹配判断模块从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;如果第二匹配判断为可匹配,则调用匹配规则上传模块上传匹配规则到云端,并判断匹配的接口规格是否变更,如果第二匹配判断为不可匹配,则发送邮件给主管,通过人工确定规则,然后休眠30分钟后再次运行目标程序;对于判断匹配的接口规格是否变更,若变更则重新启动,若未变更则进行运行。
综上所述,本发明实施例提供一种兼容多版本的南向接口的实现系统,使一个应用程序可以兼容多个不同版本的南向接口。本发明包括本程序和目标程序,本程序是南向接口的使用方,目标程序是南向接口的提供方。首先本程序从目标程序下载南向接口规范文件和目标程序的编译版本,然后根据本地的策略文件对其分析匹配并上传策略文件。当目标程序版本变更时,本程序自动重新匹配。本发明中的本程序启动后,能兼容几万个目标程序,当目标程序升级时,本程序仍然能兼容;当不兼容的情况出现时,只需等待5分钟,其在云端修复后,本程序便又能实现自动兼容。
实施例3:
在上述实施例1提供的兼容多版本的南向接口的实现方法的基础上,本发明还提供了一种可用于实现上述方法的兼容多版本的南向接口的实现装置,如图9所示,是本发明实施例的装置架构示意图。本实施例的兼容多版本的南向接口的实现装置包括一个或多个处理器21以及存储器22。其中,图9中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的兼容多版本的南向接口的实现方法。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行兼容多版本的南向接口的实现装置的各种功能应用以及数据处理,即实现实施例1的兼容多版本的南向接口的实现方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1中的兼容多版本的南向接口的实现方法,例如,执行以上描述的图1-图5所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ReadOnlyMemory,简写为:ROM)、随机存取存储器(RandomAccessMemory,简写为:RAM)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种兼容多版本的南向接口的实现方法,其特征在于,包括:
获取目标程序的编译版本,从云端获取匹配规则,其中,目标程序是南向接口的提供方,版本格式包括:V版本号-R版本号-SP版本号-BD版本号-Build版本号;
进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配;
若第一匹配判断结果为可匹配则启动成功,若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;
若第二匹配判断结果为可匹配,则把成功匹配的匹配规则上传到云端,启动成功;若第二匹配判断结果为不可匹配,则启动失败;
启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动;
其中,所述根据云端的匹配规则和目标程序的软件版本梳选出可能的接口具体包括:按照目标程序编译版本,对云端规则进行排序;排序原则是计算每个编码版本的等价值,等价值计算包括:V版本号 * 10000 + R版本号* 1000 + SP版本号* 100 + BD版本号* 10 +Build版本号除以20的余数;
计算当前目标程序编译版本和云端规则中的编译版本间的等价值差距,求出比当前目标程序编译版本等价值小且差距最少的一个,求出比当前目标程序编译版本等价值大且差距最小的一个,求出比当前目标程序编译版本等价值小且差距小于20的若干个,求出比当前目标程序编译版本等价值大且差距小于20的若干个,将求出的编码版本的等价值符合要求的云端规则作为第二匹配判断规则集。
2.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述获取目标程序的编译版本,从云端获取匹配规则具体包括:
获取云端的接口匹配规则,所述匹配规则采用json的方式,包括:目标程序编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型。
3.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配具体包括:
如果云端的匹配规则没有找到和本地编译版本完全一致的,则判断结果为不可匹配,如果找到完全一致的则判断结果为可匹配。
4.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述若第一匹配判断结果为不可匹配则从目标程序获取南向接口文件时,获取的南向接口文件为java编译后的,以jar结尾的文件,且文件名是已知的。
5.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述进行第二匹配判断,对目标程序逐个试探是否可匹配具体包括:
对得到的第二匹配判断规则集中的云端规则进行排序,排序的原则是根据离当前目标程序编译版本等价值的距离进行排序;
对每个第二匹配判断规则集中的云端规则进行南向接口的调用,若所有的调用都成功,则终止并判断为匹配成功。
6.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述若第二匹配判断结果为不可匹配,则启动失败具体包括:
将匹配失败的情况,以邮件的方式通知用户,同时关闭程序;邮件以表格的形式进行发送,邮件的格式包括:目标程序编译版本,匹配不成功的编译版本,南向接口名,输入参数1的类型,输入参数2的类型,输入参数3的类型,输出参数1的类型,输出参数2的类型,输出参数3的类型;若匹配成功的编译版本有多个,则多个匹配成功的编译版本间以逗号分割,如果一个也未匹配到,则空白显示。
7.根据权利要求1所述的兼容多版本的南向接口的实现方法,其特征在于,所述启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动具体包括:
每隔5分钟获取目标程序的编译版本并从云端获取匹配规则;
检查目标程序版本是否变化,若无变化则继续运行,若有变化则进行第一匹配判断,判断现有的匹配规则是否可匹配;
若在第一匹配判断中不可匹配,则从目标程序获取南向接口文件,根据云端规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配,若在第一匹配判断中可匹配,则判断匹配的接口规格是否变更;
若在第二匹配判断中不可匹配,则以邮件的方式通知用户,并休眠30分钟后重新进入目标程序运行步骤,若在第二匹配判断中可匹配,则上传匹配规则到云端,并判断匹配的接口规格是否变更;
在判断匹配的接口规格是否变更时,若未变更则继续运行,若有变更则重新启动。
8.一种兼容多版本的南向接口的实现系统,用于实现如权利要求1-7任一所述的兼容多版本的南向接口的实现方法,其特征在于,包括编译版本及匹配规则获取模块、第一匹配判断模块、第二匹配判断模块、匹配规则上传模块以及定时更新模块,其中:
所述编译版本及匹配规则获取模块用于获取目标程序的编译版本,从云端获取匹配规则;其中,目标程序是南向接口的提供方,版本格式包括:V版本号-R版本号-SP版本号-BD版本号-Build版本号;
所述第一匹配判断模块用于进行第一匹配判断,根据前面获取的编译版本和匹配规则分析是否可匹配;若不可匹配则调用所述第二匹配判断模块进行下一步判断;
所述第二匹配判断模块用于在第一匹配判断为不可匹配时,从目标程序获取南向接口文件,根据云端的匹配规则和目标程序的软件版本梳选出可能的接口,并进行第二匹配判断,对目标程序逐个试探是否可匹配;其中,所述根据云端的匹配规则和目标程序的软件版本梳选出可能的接口具体包括:按照目标程序编译版本,对云端规则进行排序;排序原则是计算每个编码版本的等价值,等价值计算包括:V版本号 * 10000 + R版本号* 1000 + SP版本号* 100 + BD版本号* 10 + Build版本号除以20的余数;计算当前目标程序编译版本和云端规则中的编译版本间的等价值差距,求出比当前目标程序编译版本等价值小且差距最少的一个,求出比当前目标程序编译版本等价值大且差距最小的一个,求出比当前目标程序编译版本等价值小且差距小于20的若干个,求出比当前目标程序编译版本等价值大且差距小于20的若干个,将求出的编码版本的等价值符合要求的云端规则作为第二匹配判断规则集;
所述匹配规则上传模块用于在第二匹配判断为可匹配时,把成功匹配的匹配规则上传到云端;
所述定时更新模块用于在启动成功后,定时获取目标程序的编译版本以及从云端获取匹配规则,通过检查目标程序版本是否变化以确定是否重新启动。
9.一种兼容多版本的南向接口的实现装置,其特征在于,装置包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器设置为执行权利要求1-7任一所述的兼容多版本的南向接口的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211002623.3A CN115469916B (zh) | 2022-08-19 | 2022-08-19 | 一种兼容多版本的南向接口的实现方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211002623.3A CN115469916B (zh) | 2022-08-19 | 2022-08-19 | 一种兼容多版本的南向接口的实现方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115469916A CN115469916A (zh) | 2022-12-13 |
CN115469916B true CN115469916B (zh) | 2023-06-20 |
Family
ID=84366422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211002623.3A Active CN115469916B (zh) | 2022-08-19 | 2022-08-19 | 一种兼容多版本的南向接口的实现方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115469916B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634114A (en) * | 1993-11-18 | 1997-05-27 | Intel Corporation | Dynamic link library version negotiation |
CN106371838A (zh) * | 2016-08-31 | 2017-02-01 | 福建联迪商用设备有限公司 | 一种维护软件包依赖关系的方法及系统 |
CN108334335A (zh) * | 2018-04-04 | 2018-07-27 | 北京顶象技术有限公司 | 一种软件源代码版本确定方法及装置 |
-
2022
- 2022-08-19 CN CN202211002623.3A patent/CN115469916B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634114A (en) * | 1993-11-18 | 1997-05-27 | Intel Corporation | Dynamic link library version negotiation |
CN106371838A (zh) * | 2016-08-31 | 2017-02-01 | 福建联迪商用设备有限公司 | 一种维护软件包依赖关系的方法及系统 |
CN108334335A (zh) * | 2018-04-04 | 2018-07-27 | 北京顶象技术有限公司 | 一种软件源代码版本确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115469916A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113010217B (zh) | 一种bios参数设置方法、装置、电子设备及存储介质 | |
CN109144701A (zh) | 一种任务流管理方法、装置、设备及系统 | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN107784400B (zh) | 一种业务模型的执行方法和装置 | |
CN111414189A (zh) | 一种确定版本兼容性的方法及装置 | |
US20230376726A1 (en) | Inference service deployment method, device, and storage medium | |
CN115469916B (zh) | 一种兼容多版本的南向接口的实现方法、系统和装置 | |
CN110841280A (zh) | 一种微端的在线动态加载及校验资源的方法 | |
CN110780910A (zh) | 下位机软件更新方法及系统、计算机可读存储介质 | |
CN115080076A (zh) | 一种云手机软件管理方法 | |
CN105808214B (zh) | 一种数据编译方法和地图编译器 | |
CN114448788A (zh) | 一种交换机系统的安装方法、系统、设备以及介质 | |
CN113052707A (zh) | 一种应用投产方法、装置、计算机设备和存储介质 | |
CN114356781A (zh) | 软件功能测试方法和装置 | |
CN113127039A (zh) | 一种微服务架构产品自动化升级系统 | |
CN108874405B (zh) | 一种OpenStack环境升级方法 | |
EP3770422A1 (en) | Updating software and/or firmware of a plurality of wind turbine devices | |
CN112711575A (zh) | 一种数据库集群的部署方法、系统及相关装置 | |
CN114116033B (zh) | 一种服务器配置修改方法和装置 | |
CN113553097B (zh) | 模型版本管理方法及装置 | |
CN113452550A (zh) | 资讯撷取装置、嵌入式系统装置的固件更新方法及系统 | |
CN113035153B (zh) | 显示屏信息维护方法、装置和系统 | |
CN114281622A (zh) | 一种芯片测试方法和系统 | |
CN114518891A (zh) | 一种单板升级方法、单板设备及计算机可读存储介质 | |
CN113867767A (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 |