CN110324169B - 一种接口管理的方法和装置 - Google Patents
一种接口管理的方法和装置 Download PDFInfo
- Publication number
- CN110324169B CN110324169B CN201810297341.8A CN201810297341A CN110324169B CN 110324169 B CN110324169 B CN 110324169B CN 201810297341 A CN201810297341 A CN 201810297341A CN 110324169 B CN110324169 B CN 110324169B
- Authority
- CN
- China
- Prior art keywords
- command
- information
- equipment
- attribute information
- parameter
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0273—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Abstract
本发明公开了一种接口管理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备;接收目标设备返回的执行结果,传输执行结果至接口。该实施方式通过综合运用多种协议,尤其是对于各种协议的配置和管理,使得接口对于大部分设备的版本升级不再敏感,提高了接口的设备型号覆盖率,缓解设备升级对程序的影响,提高了网络设备的差异屏蔽功能性,实现了接口统一化管理和控制的功能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口管理的方法和装置。
背景技术
目前对于大规模基础网络系统的运营、维护和管理,各互联网公司普遍采用自行开发工具集或脚本等自行定制化的方式进行管理和批量配置,这其中面临不同厂商、不同型号、不同版本的设备在完成同样的功能时,在操作方法、数据返回、词汇语义等方面差异。
针对上述差异,现有方案大多是各个系统模块根据自身需求,进行不同设备的解析和适配。例如,监控模块大多数只针对SNMP协议(Simple Network ManagementProtocol,简单网络管理协议)的返回结果进行解析;一些批量设置的脚本则将不同厂商可接受的命令进行逐一尝试,直到遇到匹配的命令。但若这些设备能返回统一的格式和语义,对运维人员的工作效率和其他上次系统的开发,就会非常便利。
现有方案中主要通过三种实施方式:
(1)程序与设备之间,仅通过单一SSH(Secure Shell)模拟终端方式登录;
(2)运维人员需要通过大量的运维业务脚本对设备进行控制、数据解析,且脚本与设备厂商、型号需进行耦合;
(3)设备厂商自行开发的接口,如NXAPI接口,使得应用程序可以直接通过http接口管理和配置设备。
在实现本发明过程中,发明人发现现有技术至少存在如下问题:
(1)SSH模拟登陆方式,所获取的结果是面向操作人员的,其数据格式、标识等于程序不相符,且返回结果对于设备的软件版本非常敏感,当设备软件升级导致文本微小改动时,整段解析器需要重写;
(2)所采用的运维脚本可能针对的业务产生,与某项业务较为适配,但是缺乏系统性、统一性,不易维护,且脚本的复用率较低;
(3)对于设备厂商所提供开发的接口,虽解决了程序连接和解析文本困难的问题,但仍无法屏蔽不同厂商设备之间的差异。
发明内容
有鉴于此,本发明实施例提供一种接口管理的方法和装置,至少能够解决现有技术中无法屏蔽各种设备的差异,导致需要提供不同接口的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种接口管理方法,包括:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备;接收目标设备返回的执行结果,传输执行结果至接口。
可选的,基于IP地址获取目标设备的属性信息包括:遍历设备信息库,当未查询到IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为目标设备的属性信息。
可选的,业务信息包括业务名称以及相应的参数信息;
确定与业务信息以及属性信息相应的执行命令包括:获取与业务名称相应的命令,根据目标设备的命令文本格式规则,提取命令中与命令文本格式规则相应的命令文本,通过命令文本与参数信息生成执行命令。
可选的,组装命令文本与参数信息生成执行命令还包括:获取目标设备的参数格式规则,当参数信息的格式不符合参数格式规则时,根据预定的格式转换规则,对参数信息进行格式转换,组装命令文本与格式转换后的参数信息生成执行命令;或当参数信息的格式符合参数格式规则时,组装命令文本与参数信息生成执行命令。
可选的,目标设备的属性信息至少包括目标设备的型号信息、版本信息以及品牌信息。
为实现上述目的,根据本发明实施例的另一方面,提供了一种接口管理装置,包括:请求接收模块,用于接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;命令确定模块,用于基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备;结果反馈模块,用于接收目标设备返回的执行结果,传输执行结果至接口。
可选的,命令确定模块,用于:遍历设备信息库,当未查询到IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为目标设备的属性信息。
可选的,业务信息包括业务名称以及相应的参数信息;
命令确定模块,用于:获取与业务名称相应的命令,根据目标设备的命令文本格式规则,提取命令中与命令文本格式规则相应的命令文本,通过命令文本与参数信息生成执行命令。
可选的,还包括格式转换模块,用于:获取目标设备的参数格式规则,当参数信息的格式不符合参数格式规则时,根据预定的格式转换规则,对参数信息进行格式转换,组装命令文本与格式转换后的参数信息生成执行命令;或当参数信息的格式符合参数格式规则时,组装命令文本与参数信息生成执行命令。
可选的,目标设备的属性信息至少包括目标设备的型号信息、版本信息以及品牌信息。
为实现上述目的,根据本发明实施例的再一方面,提供了一种接口管理的电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的接口管理的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的接口管理的方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:通过综合运用多种协议,尤其是对于各种协议的配置和管理,使得接口对于大部分设备的版本升级不再敏感,提高了接口的设备型号覆盖率,缓解设备升级对程序的影响,提高了网络设备的差异屏蔽功能性,实现了接口统一化管理和控制的功能。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种接口管理的方法的主要流程示意图;
图2是根据本发明实施例的一种可选的接口管理的方法的流程示意图;
图3是根据本发明实施例的另一种可选的接口管理的方法的流程示意图;
图4是根据本发明实施例的又一种可选的接口管理的方法的流程示意图;
图5是根据本发明实施例的一种接口管理的装置的主要模块示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明实施例主要面向网络设备的接口统一管理,且可以有多种登录方式,例如基于NETCONF、SNMP、SSH的模拟登录方式。
本发明中的设备指网络控制设备,包括但不限于交换机、路由器等。对于电脑和手机等属于终端,是网络的接驳者,只能使用网络来发送和接收数据,而无法控制网络,例如设备屏蔽、流量的切换、虚拟子网的建立、限速等控制行为,因此不在本发明考虑范围内。
本发明中的上层程序,是一个相对位置的名称,并不是专有名词。如果组成整个系统的所有角色都展开,设备在最下面,接口在中间,监控程序、运维程序等程序都在上面,因此称这些“通过本方案的接口来控制设备”的程序为上层程序。
本发明中的接口为北向接口,为通过下层程序给上层程序提供的接口,面向北边,即介于设备与程序之间,且程序位于最上面(北边)。
参见图1,示出的是本发明实施例提供的一种接口管理的方法的主要流程图,包括如下步骤:
S101:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址。
S102:基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备。
S103:接收目标设备返回的执行结果,传输执行结果至接口。
上述实施方式中,对于步骤S101,外部程序请求调用接口时,需要提供目标设备的IP地址、业务信息。其中,业务信息至少包括业务名称以及相应的参数信息:
1)IP地址,为目标设备的身份标识,用以“发送目标设备执行”,即确定去哪个设备上执行业务命令;
2)业务名称,即所需执行的活动,例如创建/删除/查看vlan(Virtual Local AreaNetwork,虚拟局域网)信息、创建/删除/查看端口聚合、设置端口link-type、关闭某个交换机端口、查看某个端口的CRC错误;
3)参数信息,即可供参考的信息,用以对业务活动进行具体描述,例如,在编号100的文件内创建新文档。
对于步骤S102,由于不同类型的设备可能会有操作差异,为便于后续在接口内部的统一化管理,避免差异问题对上层程序运行的影响,可以建立设备信息库,用以至少存储不同IP地址以及各IP地址下的设备属性信息,且该属性信息至少包括设备的型号、版本、所属品牌,例如,目标设备1——型号为1、版本为1.2.1、所属品牌2。
接口接收到请求后,会首先根据IP地址,在设备信息库中查询目标设备的属性信息,设备信息库包括设备IP与设备属性信息之间的关系,但对于初始阶段,或者是新设备,当不存在该IP时,需要调用预定的属性信息查询指令,以获取该设备的属性信息。
之后,根据目标设备的属性信息,从命令数据库中筛选获取完成该业务所需要的命令。命令数据库包括设备属性信息与各业务命令之间的对应关系,且可以与设备信息库位于数据库中,例如,
型号A的X内容1.0====命令1
型号A的X内容1.1====命令10
型号B的X内容1.0====命令2
型号A的Y内容1.0====命令1
型号B的Y内容1.0====命令3。
此处的命令,可以是NETCONF协议的XML报文,也可以是SNMP的定位ID,还可以是SSH的命令文本。
另外,命令的组装、执行、解析等,对于一次接口请求,可能会有多次重复,即一个业务可能需要多条命令协作完成,即命令集。且存在后续命令的参数可能是前面命令的执行结果,因此,对于命令的传输方式,需要逐条发送。
进一步的,程序自身的信息库中有大量的命令可供调用,但是这些命令的标签就是型号(+版本+品牌),也就是说,“确定该设备是否可以完成业务”的方法就是查询信息库(型号+版本+品牌-命令对应关系)。
对于步骤S103,对于目标设备所返回的执行结果,可以直接传输至接口,也可以首先对执行结果进行结构化、统一语义解析,例如,将SSH文本结果、NETCONF协议的XML、SNMP的二进制结果,均解析成预定格式的格式化数据,并统一用词和结构。
此处格式化的意义是将结果使用结构化文本表达出来,可以使用json表示,也可以使用xml表示。例如,对于命令(5+1=?),其执行结果为6,但所表示的结果需要用语言进行描述,可以为六,也可以是six。
进一步的,对于json格式以及xml格式,通信较为稳定,几乎不会因为目标设备版本升级而变化,若升级目标设备的软件系统后,本方案的解析程序也无需变化。
每次命令执行完成后,系统都会暂存命令的执行结果,若后续无命令,待所有命令都执行完成后,根据业务的具体要求,对命令结果进行封装和整合,并将整合后的结果返回给接口。
其中,业务的具体要求,取决于具体需求,例如,查看当前静态路由列表、查看设备时钟同步配置,这两个业务,对应的命令一致,但是所提取的结果是位于不同部分的,而对于具体提取哪部分内容,是程序事先写好配置在信息库中的。
上述实施例所提供的方法,可以将运维系统设备调用层的结构大幅度简化,定义各种业务命令对应的型号、版本、品牌、协议等信息之间的关系,以屏蔽各个接口和设备之间的调用差异,完成各种设备的适配操作,节省了管理和开发成本,提高了程序的稳定性和可维护性,应用范围较广。
参见图2,示出了根据本发明实施例的一种可选的接口管理的方法流程示意图,包括如下步骤:
S201:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址。
S202:遍历设备信息库,当未查询到IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为目标设备的属性信息。
S203:确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备。
S204:接收目标设备返回的执行结果,传输执行结果至接口。
上述实施例方式中,步骤S201、S203、S204可分别参见图1所示步骤S101、S102以及S103的描述,在此不再赘述。
上述实施方式中,对于步骤S202,对于设备,具有型号、品牌、版本的区别,且由于设备的更新换代,部分设备可能会升级、部分设备可能会被淘汰,且设备信息库中可能覆盖不了所有设备信息,因此在设备信息库中确定与IP地址相应的设备属性信息,可以有多种情况:
1)如果设备信息库中有该IP地址对应的设备属性信息时,可以直接提取;
2)如果是新设备,在设备信息库中查询不到与该IP对应的设备信息,会调用预置的设备属性信息查询命令,并调用自身接口获取设备的属性信息,该查询指令是适配所有类型设备的硬编码。
另外,由于不知道该设备是什么型号品牌,所以需要执行多个查询命令进行逐一尝试,直到遇到匹配的命令为止,然后将该匹配命令对应的设备信息作为结果写入设备信息库中。
举例说明:
查询vlan:http://xx.com/devices/xx.xx.xx.xx/vlan
查询设备信息:http://xx.com/devices/xx.xx.xx/system
此时当外部程序(上层程序)欲对一个新设备查询vlan信息,且vlan接口内部发现是新设备时,会调用查询设备信息接口来获取和写入信息库,可视为是自己的接口调用自己的另一个接口。
3)对于新设备,如果该IP地址在设备信息库中不存在,且无法通过查询指令获取时,则需要接口扩充对该设备属性信息的解析。
因此,接口在首次执行新设备命令时速度较慢,因为实际上除了执行业务命令之外,还执行了信息获取、写库等操作。
需要说明的是,所确定的设备属性信息,需在设备信息库中查询得到;若查询不存在,即表示超出该接口的处理工作范围,此时可以返回信息“不支持的操作”等。
上述实施例所提供的方法,提供了一种获取新设备属性信息的思路,若新设备在设备信息库中已有定义,可以直接调用,但若不存在,只需要开发人员在接口代码中添加新模块化解析逻辑即可完成适配,实现设备的自动发现,且无需运维人员录入。
参见图3,示出了根据本发明实施例的另一种可选的接口管理的方法流程示意图,包括如下步骤:
S301:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;其中,业务信息包括业务名称以及相应的参数信息。
S302:基于IP地址获取目标设备的属性信息。
S303:获取与业务名称相应的命令,根据目标设备的命令文本格式规则,提取命令中与命令文本格式规则相应的命令文本,通过命令文本与参数信息生成所述执行命令,传输执行命令至目标设备。
S304:接收目标设备返回的执行结果,传输执行结果至接口。
上述实施方式中,步骤S302可参见图2所示步骤S202的描述,步骤S304可参见图1所示步骤S103的描述,在此不再赘述。
上述实施方式中,对于步骤S301,对于请求中的IP地址以及业务信息描述,可参见图1所示步骤S101的描述,在此不再赘述。
接口所接收的业务信息,包括业务名称以及参数信息。例如,需要在IP地址为192.168.1.2的设备上创建一个vlan,vlan的编号是100,则需要发出请求http://xx.com/ device/192.168.1.2/vlan?vlanid=100,其中,vlan是业务名称、100是参数。
对于步骤S303,对于命令的执行,无论是通过ssh执行、通过netconf执行又或者通过snmp执行,都需要文本格式的命令,且目前无其他方式的命令。即无法通过语音控制网络设备、无法通过视频控制网络设备,只能通过文本提交命令的方式控制网络设备。且不同命令的类型不同,其相应的命令文本也是不一样的。
对于步骤S304,各设备上执行命令具有格式要求,例如,设备A执行业务1的命令格式为12345、设备B执行业务1的命令格式为54321。对于命令文本与格式判断,有两种情况:
1)在组装之前,需要首先判断命令文本是否符合目标设备的格式要求,若符合,再将命令文本与参数信息进行组装;
2)首先将命令文本与参数信息及进行组装,再判断组装后的执行命令是否符合目标设备的格式要求。
对于方式1)与2),方式1)较与方式2)操作较为便捷,因此,本发明主要采用方式1)。
以业务信息“创建id为5的vlan”为例进行说明:
1)假设设备A可接收的命令格式为:cretea vlan 5
在命令信息库中所存储的业务命令为::create vlan{vlan_id}
2)所提供的接口为:http://xx.com/device/xxx.xxx.xxx.xxx/vlan?vlan_id=5
3)从这个请求中获取参数vlan_id=5,并替换掉从信息库中所提取命令模板中的{vlan_id},得到组装后的结构create vlan 5,和设备A的命令格式要求一样。
上述实施例所提供的方法,提供了一种对命令进行格式处理,以满足设备对于命令格式的要求,提高了对于各项命令的配置和管理,同时节省了开发成本,实现了接口统一化管理和控制的功能。
参见图4,示出了示出了根据本发明实施例的又一种可选的接口管理的方法流程示意图,包括如下步骤:
S401:接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址。
S402:基于IP地址获取目标设备的属性信息。
S403:确定与业务信息以及属性信息相应的执行命令。
S404:获取目标设备的参数格式规则,当参数信息的格式不符合参数格式规则时,根据预定的格式转换规则,对参数信息进行格式转换,组装命令文本与格式转换后的参数信息生成执行命令,传输执行命令至目标设备。
S404’:获取目标设备的参数格式规则,当参数信息的格式符合参数格式规则时,组装命令文本与参数信息生成执行命令,传输执行命令至目标设备。
S405:接收目标设备返回的执行结果,传输执行结果至接口。
上述实施方式中,步骤S401、S405可分别参见图1所示步骤S101、S103的描述,步骤S402可参见图1所示步骤S102以及图2所示步骤S202的描述,步骤S403可参见图3所示步骤S303的描述,在此不再赘述。
上述实施方式中,对于步骤S404以及S404’,不同设备对于参数信息有不同的格式要求,例如,C交换机和D交换机,对于LACPMODE的取值,有Dynamic一项,两个厂商的设备都支持Dynamic,但是意义截然相反,而接口的输入参数是一致的,因此需要对输入参数进行设备关联的差异性转换。
各设备对于参数的格式要求,包括但不限于是:
1)参数格式的要求:例如,汉字、英文、数字等;
2)参数取值个数的要求:例如,参数要求数量为10个,但是仅输入5个,对于不足部分进行补0操作。
虽然,将参数转换为各自品牌型号所适配的格式的思路是相同的,由于不同企业对于参数格式转换程序的编程可能会不一样,由此对于该思想也是需要保护的。
上述实施里所提供的方法,对于参数信息,在组装之前需要进行格式转换,以此进行设备关联的差异性转换,满足不同程序的调用需求,实现灵活的调用机制,以保证接口的可复用性和易维护性。
本发明实施例中,对于执行同一个操作,不同设备的命令有可能不同,包括:品牌不同,型号不同,系统版本不同,因此,对于命令与设备的关系设定,前期需要操作人员介入。以设备A,有1.0版本以及1.5版本为例:
1)若测试得知1.5版本内部程序与原1.0版本相同,即两者命令一样,在调用获取业务命令时,可以将原1.0版本的命令发给1.5版本;
2)若测试得知1.5版本为原1.0版本的升级版,即两者命令不相同时,需要针对1.5版本,设置相对独立的命令。
本发明实施例中,所采用的命令,包括命令类型、协议、命令解析器、命令文本、以及前置参数转换列表,其具体内容,参见上述方法中的描述,在此不再赘述。
本发明实施例中,当目标设备所返回的结果遇到错误时,设备间的提示也是不相同的。本发明内部定义了一整套网络设备出错的标准化输出内容和错误代码,以帮助上层程序定位错误内部。
例如,对于A交换机执行创建聚合端口的命令,当给出欲创建id在设备上已存在,交换机所返回的错误是configure error,本方案所返回的是:Interface Group Id:xxxalready exists!。
在创建一个id已经存在的vlan时,上述举例的实际实现可以有2种情况,以设备型号进行说明:
1)有的设备在直接创建命令时就会返回结果,那么这种情况在信息库中会定义该业务对于此型号设备执行一条创建命令。
2)有的设备在直接执行创建命令时,返回不明确的结果,参见上述举例,则先执行查询vlan操作,如果查询id已经存在,则直接返回结果,不执行第二条命令,也就是不执行创建命令,当第一条查询命令查不到指定的id时,就会执行创建命令的指令。
本发明所涉及的所有模块错误时,均会通过错误解析器进行最终处理,并封装成规范的错误输出,并返回给接口调用方。
本发明实施例所提供的方法,通过综合运用多种协议,尤其是对于各种协议的配置和管理,使接口对于大部分设备的软件版本升级不再敏感,提高了接口的设备型号覆盖率,缓解设备升级对程序的影响,且无需关注网络设备的差异信息,简化了系统设备调用层的结构,另外,基于多协议下命令报文,提高了结果输出的统一管理方法。
参见图5,示出了本发明实施例提供的一种接口管理的装置500的主要模块示意图,包括:
请求接收模块501,用于接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;
命令确定模块502,用于基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备;
结果反馈模块503,用于接收目标设备返回的执行结果,传输执行结果至接口。
本发明实施装置中,命令确定模块502,用于:遍历设备信息库,当未查询到所述IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为目标设备的属性信息。
本发明实施装置中,业务信息包括业务名称以及相应的参数信息;
命令确定模块502,用于:获取与业务名称相应的命令,根据目标设备的命令文本格式规则,提取命令中与命令文本格式规则相应的命令文本,通过命令文本与参数信息生成执行命令。
本发明实施装置中,还包括格式转换模块504(图中未标出),用于:
获取目标设备的参数格式规则,当参数信息的格式不符合参数格式规则时,根据预定的格式转换规则,对参数信息进行格式转换,组装命令文本与格式转换后的参数信息生成执行命令;或
当参数信息的格式符合参数格式规则时,组装命令文本与参数信息生成执行命令。
本发明实施装置中,目标设备的属性信息至少包括目标设备的型号信息、版本信息以及品牌信息。
需要说明的是,本发明还包括其他装置,具体有:
(1)设备信息抓取模块,用于基于外部程序发送的接口调用请求,获取目标设备的信息,信息的获取通过设备信息库获得;但如果设备信息库没有该IP地址,则接口自己发起一个请求获取设备信息;
(2)命令组装模块,用于根据设备的型号和版本,从命令数据库中获取执行所需请求所需要的命令;
(3)执行引擎,用于直接和设备交互并按照不同协议和设备通信的模块,此模块负责发送命令到设备,并接受返回。此模块应具有并发能力、设备锁等机制,但引擎对传输内容不做任何处理和检查;
(4)命令解析器,负责对命令的执行结果进行结构化、统一语义的解析,也是本方案最为庞大的模块;
(5)业务管理器,每个业务包含一条或多条(占用内存空间较大)需要执行的命令,业务管理器主要负责提取、合并或加工命令的执行结果,将命令的执行结果变成业务需要的数据,一般一个请求接口,对应一个业务内容;
(6)错误解析器,当返回的结果遇到错误时,设备间的提示也是千差万别,错误解析器内定义了一整套网络设备出错的标准化输出内容和错误代码,帮助上层程序定位错误内容。
另外,在本发明实施例中所述的接口管理装置的具体实施内容,在上面所述接口管理方法中已经详细说明了,故在此重复内容不再说明。
本发明实施例所提供的装置,通过对网络设备、命令集、文本集、解析器进行建模和组织,以模块化定义各种命令对应的属性信息、协议等之间的关系,完成对各种网络设备的适配。本发明通过有效管理网络设备在软件系统中的模型,对外提供数据口径完全一致的北向操作接口,对于上层程序无需关注设备间的调用差异、名词差异等,即可完成对设备的业务操作。本发明极大提高了统一化管理和控制功能,减少了系统的开发和维护成本,丰富了系统的服务体验,应用范围较广。
参见图6示出了可以应用本发明实施例的接口管理方法或接口管理装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交系统软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的接口管理方法一般由服务器605执行,相应地,接口管理装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
参见图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求接收模块、命令确定模块、结果反馈模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,命令确定模块还可以被描述为“可执行命令确定模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
接收接口调用请求,至少获取请求中的业务信息以及目标设备的IP地址;
基于IP地址获取目标设备的属性信息,确定与业务信息以及属性信息相应的执行命令,传输执行命令至目标设备;
接收目标设备返回的执行结果,传输执行结果至接口。
根据本发明实施例的技术方案,通过综合运用多种协议,尤其是对于各种协议的配置和管理,使接口对于大部分设备的软件版本升级不再敏感,提高了接口的设备型号覆盖率,缓解设备升级对程序的影响,且无需关注网络设备的差异信息,简化了系统设备调用层的结构,另外,基于多协议下命令报文,提高了结果输出的统一管理方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种接口管理方法,其特征在于,包括:
接收接口调用请求,至少获取所述请求中的业务信息以及目标设备的IP地址;其中,业务信息包括业务名称以及相应的参数信息,业务名称为所需执行的活动,参数信息用以对业务活动进行具体描述;
基于所述IP地址获取所述目标设备的属性信息,确定与所述业务信息以及所述属性信息相应的执行命令,传输所述执行命令至所述目标设备;其中,目标设备为网络控制设备,只能通过文本提交命令的方式控制所述网络控制设备,且命令传输方式为逐条发送;
接收所述目标设备返回的执行结果,传输所述执行结果至接口。
2.根据权利要求1所述的方法,其特征在于,所述基于所述IP地址获取所述目标设备的属性信息包括:
遍历设备信息库,当未查询到所述IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为所述目标设备的属性信息。
3.根据权利要求1所述的方法,其特征在于,所述确定与所述业务信息以及所述属性信息相应的执行命令包括:
获取与所述业务名称相应的命令,根据所述目标设备的命令文本格式规则,提取所述命令中与所述命令文本格式规则相应的命令文本,通过所述命令文本与所述参数信息生成所述执行命令。
4.根据权利要求3所述的方法,其特征在于,所述通过所述命令文本与所述参数信息生成所述执行命令,包括:
获取所述目标设备的参数格式规则,当所述参数信息的格式不符合所述参数格式规则时,根据预定的格式转换规则,对所述参数信息进行格式转换,组装所述命令文本与格式转换后的所述参数信息生成所述执行命令;或
当所述参数信息的格式符合所述参数格式规则时,组装所述命令文本与所述参数信息生成所述执行命令。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述目标设备的属性信息至少包括所述目标设备的型号信息、版本信息以及品牌信息。
6.一种接口管理装置,其特征在于,包括:
请求接收模块,用于接收接口调用请求,至少获取所述请求中的业务信息以及目标设备的IP地址;其中,业务信息包括业务名称以及相应的参数信息,业务名称为所需执行的活动,参数信息用以对业务活动进行具体描述;
命令确定模块,用于基于所述IP地址获取所述目标设备的属性信息,确定与所述业务信息以及所述属性信息相应的执行命令,传输所述执行命令至所述目标设备;其中,目标设备为网络控制设备,只能通过文本提交命令的方式控制所述网络控制设备,且命令传输方式为逐条发送;
结果反馈模块,用于接收所述目标设备返回的执行结果,传输所述执行结果至接口。
7.根据权利要求6所述的装置,其特征在于,所述命令确定模块,用于:
遍历设备信息库,当未查询到所述IP地址时,调用预定的属性信息查询命令集,获取返回结果不为空的属性信息查询命令,提取与所获取的属性信息查询命令相应的设备属性信息,将所提取的设备属性信息作为所述目标设备的属性信息。
8.根据权利要求6所述的装置,其特征在于,所述命令确定模块,用于:
获取与所述业务名称相应的命令,根据所述目标设备的命令文本格式规则,提取所述命令中与所述命令文本格式规则相应的命令文本,通过所述命令文本与所述参数信息生成所述执行命令。
9.根据权利要求8所述的装置,其特征在于,还包括格式转换模块,用于:
获取所述目标设备的参数格式规则,当所述参数信息的格式不符合所述参数格式规则时,根据预定的格式转换规则,对所述参数信息进行格式转换,组装所述命令文本与格式转换后的所述参数信息生成所述执行命令;或
当所述参数信息的格式符合所述参数格式规则时,组装所述命令文本与所述参数信息生成所述执行命令。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述目标设备的属性信息至少包括所述目标设备的型号信息、版本信息以及品牌信息。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810297341.8A CN110324169B (zh) | 2018-03-30 | 2018-03-30 | 一种接口管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810297341.8A CN110324169B (zh) | 2018-03-30 | 2018-03-30 | 一种接口管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110324169A CN110324169A (zh) | 2019-10-11 |
CN110324169B true CN110324169B (zh) | 2023-06-27 |
Family
ID=68112516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810297341.8A Active CN110324169B (zh) | 2018-03-30 | 2018-03-30 | 一种接口管理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110324169B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804076B (zh) * | 2019-11-14 | 2022-11-04 | 大唐移动通信设备有限公司 | 一种指令响应方法及网络设备 |
CN111597059A (zh) * | 2020-04-18 | 2020-08-28 | 北京奇保信安科技有限公司 | 接口调用请求处理方法、装置及电子设备 |
CN111641528A (zh) * | 2020-05-29 | 2020-09-08 | 山东浪潮通软信息科技有限公司 | 设备管理方法、装置、存储介质和计算机可读介质 |
CN111953532B (zh) * | 2020-07-30 | 2022-10-11 | 中国工商银行股份有限公司 | 设备型号的识别方法、装置和设备 |
CN111917592A (zh) * | 2020-08-12 | 2020-11-10 | 中国工商银行股份有限公司 | 一种异构品牌网络设备的集中操作方法及装置 |
CN114116544B (zh) * | 2020-08-31 | 2024-05-07 | 北京达佳互联信息技术有限公司 | 插槽信息的获取方法、装置、设备及存储介质 |
CN112511343B (zh) * | 2020-11-17 | 2023-03-21 | 上海金卓科技有限公司 | 一种前传接口的配置方法、装置、设备及存储介质 |
CN112751874A (zh) * | 2020-12-31 | 2021-05-04 | 北京天融信网络安全技术有限公司 | 一种设备策略管控方法、装置、电子设备及存储介质 |
CN112597057B (zh) * | 2021-01-04 | 2023-10-20 | 网易(杭州)网络有限公司 | 一种蓝图数据的差异化处理方法和装置 |
CN112765446A (zh) * | 2021-01-18 | 2021-05-07 | 杭州电魂网络科技股份有限公司 | 一种数据接口生成方法和系统 |
CN112988289A (zh) * | 2021-04-09 | 2021-06-18 | 北京字节跳动网络技术有限公司 | 调用接口的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1392019A1 (en) * | 2002-08-19 | 2004-02-25 | Alcatel Canada Inc. | Command line interface processor with dynamic update of attribute dependencies. |
CN103067950A (zh) * | 2011-10-20 | 2013-04-24 | 中兴通讯股份有限公司 | 信令跟踪的处理方法及装置 |
CN104394008A (zh) * | 2014-10-10 | 2015-03-04 | 广东电网有限责任公司电力科学研究院 | 一种统一配置不同类型交换机的方法及其系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463528B1 (en) * | 1999-04-20 | 2002-10-08 | Covad Communications Group, Inc. | Method and apparatus for simplifying the configuration of several models of customer premise equipment |
CN100440809C (zh) * | 2006-11-13 | 2008-12-03 | 杭州华三通信技术有限公司 | 进行网络设备业务配置的方法及装置 |
CN101582794B (zh) * | 2009-06-26 | 2011-12-07 | 西安电子科技大学 | 网络设备统一配置系统及其配置方法 |
CN105993147B (zh) * | 2014-07-23 | 2019-03-05 | 华为技术有限公司 | 一种终端升级方法及相关设备 |
CN105897467A (zh) * | 2016-03-30 | 2016-08-24 | 杭州华三通信技术有限公司 | 一种端口扩展设备的控制方法和装置 |
-
2018
- 2018-03-30 CN CN201810297341.8A patent/CN110324169B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1392019A1 (en) * | 2002-08-19 | 2004-02-25 | Alcatel Canada Inc. | Command line interface processor with dynamic update of attribute dependencies. |
CN103067950A (zh) * | 2011-10-20 | 2013-04-24 | 中兴通讯股份有限公司 | 信令跟踪的处理方法及装置 |
CN104394008A (zh) * | 2014-10-10 | 2015-03-04 | 广东电网有限责任公司电力科学研究院 | 一种统一配置不同类型交换机的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110324169A (zh) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324169B (zh) | 一种接口管理的方法和装置 | |
EP3828701B1 (en) | Mini app processing method, server, device and storage medium | |
US10963370B2 (en) | Default mock implementations at a server | |
CN111459605A (zh) | 一种基于Docker的边缘计算网关虚拟化方法 | |
US20220138074A1 (en) | Method, electronic device and computer program product for processing data | |
CN108804100B (zh) | 创建界面元素的方法、装置、存储介质及移动终端 | |
CN113821352A (zh) | 一种远程服务的调用方法和装置 | |
CN111125064A (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN113268260A (zh) | 用于web前端的路由方法及装置 | |
CN114117190A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN113641700A (zh) | 一种基于Spring boot框架的数据处理方法及装置 | |
CN113760722A (zh) | 测试系统和测试方法 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN108959294A (zh) | 一种访问搜索引擎的方法和装置 | |
CN113055410A (zh) | 云资源管理方法、装置、设备、系统及可读存储介质 | |
CN113468067B (zh) | 应用程序的调试方法、装置、电子设备和计算机可读介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
US11372627B2 (en) | System and method for providing integrated development environment (IDE) for programmable software system | |
CN113779122B (zh) | 导出数据的方法和装置 | |
CN109271310B (zh) | 移动应用程序网络功能的开发测试方法和装置 | |
CN113495747B (zh) | 一种灰度发布方法和装置 | |
CN117235052B (zh) | 一种数据库语句处理方法和装置 | |
CN111062682B (zh) | 一种工单处理方法和装置 | |
CN108804101B (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 |