驱动实现方法、装置、设备和计算机可读存储介质与流程

文档序号:16630807发布日期:2019-01-16 06:33阅读:158来源:国知局
驱动实现方法、装置、设备和计算机可读存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种驱动实现方法、装置、设备和计算机可读存储介质。



背景技术:

随着网络规模的不断增长和物联网技术的发展,现有网络的架构已经渐渐难以跟上发展的脚步,而软件定义网络(softwaredefinednetwork,简称sdn)成为未来网络发展的方向。其中,openflow(一种新型网络交换模型)交换机与sdn控制器结合,完成了数据转发和路由控制的分离,初步实现了软件定义网络的核心思想。

但是目前网络中,设备种类繁多,厂家、交换机支持的协议、协议的版本可能各有差异,因此sdn控制器要实现每种协议的各种版本、各种厂商差异的驱动,开发工作量非常大。



技术实现要素:

本发明的目的在于提供一种驱动实现方法、装置、设备和计算机可读存储介质,以针对相关技术中实现多种版本驱动的问题,减少实现多种版本驱动时的开发工作量。

本发明解决上述技术问题所采用的技术方案如下:

提供的一种驱动实现方法,所述驱动实现方法包括:分析目标驱动的驱动流程;比较所述目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分;实现所述差异部分;根据预实现的所述默认驱动的驱动流程和已实现的所述差异部分,注册所述目标驱动。

可选地,前述的驱动实现方法,所述实现所述差异部分的步骤,具体包括:分析所述差异部分对应的动作,获取所述动作对应的接口,根据所述接口实现所述差异部分。

可选地,前述的驱动实现方法,所述根据预实现的所述默认驱动的驱动流程和已实现的所述差异部分,注册所述目标驱动的步骤,具体包括:在预设的配置文件中添加所述目标驱动的描述信息和流程信息,所述目标驱动的描述信息记录所述默认驱动的标识信息,所述目标驱动的流程信息记录已实现的所述差异部分;根据所述默认驱动的标识信息查找预实现的所述默认驱动的驱动流程,对预实现的所述默认驱动的驱动流程和已实现的所述差异部分实例化以完成注册。

可选地,前述的驱动实现方法,所述驱动实现方法还包括:通过所述默认驱动获取预设的交换机的唯一标识信息;将所述交换机的唯一标识信息与所述目标驱动的描述信息进行比较,根据比较结果判断是否将所述目标驱动与所述交换机进行绑定。

可选地,前述的驱动实现方法,所述驱动实现方法还包括:删除所述目标驱动对应的所有信息后,向预设的交换机发出取消所述目标驱动的通知。

提供的一种驱动实现装置,所述驱动实现装置包括:流程分析模块,用于分析目标驱动的驱动流程;差异比较模块,用于比较所述目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分;实现模块,用于实现所述差异部分;注册模块,用于根据预实现的所述默认驱动的驱动流程和已实现的所述差异部分,注册所述目标驱动。

可选地,前述的驱动实现装置,所述实现模块分析所述差异部分对应的动作,获取所述动作对应的接口,根据所述接口实现所述差异部分。

可选地,前述的驱动实现装置,所述注册模块在预设的配置文件中添加所述目标驱动的描述信息和流程信息,所述目标驱动的描述信息记录所述默认驱动的标识信息,所述目标驱动的流程信息记录已实现的所述差异部分,并根据所述默认驱动的标识信息查找预实现的所述默认驱动的驱动流程,对预实现的所述默认驱动的驱动流程和已实现的所述差异部分实例化以完成注册。

可选地,前述的驱动实现装置,所述驱动实现装置还包括:绑定模块,用于通过所述默认驱动获取预设的交换机的唯一标识信息,并将所述交换机的唯一标识信息与所述目标驱动的描述信息进行比较,根据比较结果判断是否将所述目标驱动与所述交换机进行绑定。

可选地,前述的驱动实现装置,所述驱动实现装置还包括:通知模块,用于删除所述目标驱动对应的所有信息后,向预设的交换机发出取消所述目标驱动的通知。

提供的一种驱动实现设备,所述驱动实现设备包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的驱动实现程序,以实现前述的驱动实现方法的步骤。

提供的一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述的驱动实现方法的步骤。

根据以上技术方案,可知本发明的驱动实现方法、装置、设备和计算机可读存储介质至少具有以下优点:

根据本发明的技术方案,在需要安装目标驱动时,通过分析目标驱动的驱动流程并与默认驱动进行比较得到差异部分,仅对差异部分进行实现,基于实现的差异部分和在先实现的默认驱动的驱动流程,完成目标驱动的注册,由于需要实现的仅为差异部分,而非整个目标驱动的驱动流程,所以大大降低了实现目标驱动的工作量。

附图说明

图1为本发明实施例的一种驱动实现方法的流程图;

图2为本发明实施例的一种驱动实现方法的流程图;

图3为本发明实施例的一种驱动实现装置的框图;

图4为本发明实施例的一种驱动实现装置的框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

如图1所示,本发明的一个实施例中提供了一种驱动实现方法,驱动实现方法包括:

步骤s110,分析目标驱动的驱动流程。

根据本实施例的技术方案,可以实现一种驱动框架,利用该驱动框架可以完成目标驱动的安装。

步骤s120,比较目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分。

在本实施例中,分析目标驱动驱动的交换机-驱动交互流程与已有驱动流程的差异。

步骤s130,实现差异部分。

则对于目标驱动而言,在本实施例中可以继承已有驱动以快速实现新驱动:分析新驱动的交换机-驱动交互流程与已有驱动流程的差异,实现流程差异。

步骤s140,根据预实现的默认驱动的驱动流程和已实现的差异部分,注册目标驱动。

在本实施例中,通过分析目标驱动的驱动流程并与默认驱动进行比较得到差异部分,仅对差异部分进行实现,基于实现的差异部分和在先实现的默认驱动的驱动流程,完成目标驱动的注册,由于需要实现的仅为差异部分,而非整个目标驱动的驱动流程,所以大大降低了实现目标驱动的工作量。

实施例二

如图2所示,本发明的一个实施例中提供了一种驱动实现方法,驱动实现方法包括:

步骤s210,分析目标驱动的驱动流程。

步骤s220,比较目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分。

步骤s230,分析差异部分对应的动作,获取动作对应的接口,根据接口实现差异部分。

在本实施例中,以实现openflow标准协议的驱动为例,将openflow标准协议中驱动涉及的所有流程拆分为功能单一的小步骤,将每个步骤作为工作流中的一个动作,提供这些动作的接口。则实现支持openflow标准协议的默认驱动的过程为:根据openflow标准协议,实现所有驱动涉及的流程,实现的功能包括:openflow标准协议列出的所有功能、根据上层业务模块的请求组装并发送报文、将交换机上报的消息传递给上层业务模块等;实现注册驱动和注销驱动等;使用配置文件配置驱动的描述信息和流程信息(注册、注销驱动、配置文件的功能实现后,保证可以进行后续的操作)。

在本实施例中,根据新驱动的交换机-驱动交互流程与已有驱动流程的差异,实现流程差异对应的动作,添加驱动配置文件、实现注册注销机制,在配置文件中只需设置父驱动和差异化步骤。

步骤s240,在预设的配置文件中添加目标驱动的描述信息和流程信息,目标驱动的描述信息记录默认驱动的标识信息,目标驱动的流程信息记录已实现的差异部分。

在本实施例中,使用xml格式的驱动配置文件,配置驱动的描述信息和流程信息,描述信息包括驱动的名称(唯一)、父驱动、厂商信息、硬件版本、软件版本、systemid等,流程信息包括相对父驱动特有的流程的动作信息,包括动作的名称、api模块中的接口类、驱动中的实现类、动作之间的转换处理类。

步骤s250,根据默认驱动的标识信息查找预实现的默认驱动的驱动流程,对预实现的默认驱动的驱动流程和已实现的差异部分实例化以完成注册。

在本实施例中,完成注册的流程为:在基于osgi的环境下,本实施例实现的驱动框架提供服务,驱动从配置文件中读取驱动描述信息和流程信息,使用该服务,将驱动的所有描述信息和流程传递给驱动框架,驱动框架存储驱动的描述信息,并实例化驱动用到的所有动作及关系,协议栈接收到报文后,从驱动框架查找适合的驱动,使用该驱动的动作构成的工作流处理报文。

同时,本实施例中提供注销驱动的流程:在基于osgi的环境下,本实施例实现的驱动框架提供服务,驱动实现使用该服务,通知驱动框架删除该驱动的所有信息,驱动框架将该驱动的所有信息都删除。

进一步地,为了保证灵活注册或注销驱动,本实施例的技术方案基于osgi环境,可在karaf(一个基于osgi的运行环境)命令行客户端中,使用命令将驱动所在模块安装到karaf容器中或从容器中卸载驱动模块。

步骤s260,通过默认驱动获取预设的交换机的唯一标识信息。

步骤s270,将交换机的唯一标识信息与目标驱动的描述信息进行比较,根据比较结果判断是否将目标驱动与交换机进行绑定。

在本实施例中,在默认驱动与交换机交互时,默认驱动从交换机获取交换机的交换机描述信息,包括厂商信息、硬件版本、软件版本、序列号、datapathid描述信息等,其中datapathid用来唯一标识交换机,然后默认驱动将交换机描述信息传递给驱动框架,驱动框架对注册的驱动进行循环,在循环过程中将驱动的描述信息和该交换机的描述信息进行一一比较(描述信息为多项),信息相同时积一分,当驱动框架对所有注册的驱动的循环完成后,比较所有驱动的分数,分数超过3且分数最高的驱动为该交换机绑定的驱动,如果没有一个驱动的分数超过3,则绑定失败。

步骤s280,删除目标驱动对应的所有信息后,向预设的交换机发出取消目标驱动的通知。

在本实施例中,当驱动被注销时,所有与该驱动绑定的交换机都收到该驱动被注销的通知,然后这些交换机向设备驱动要求重新绑定驱动。

基于前述内容,用户可使用karaf命令行指定某个交换机的驱动或触发重绑定的过程为:用户能够在karaf命令行端口输入交换机的datapathid(指定交换机)和驱动的名称(指定驱动),驱动框架根据参数将datapathid标识的交换机与指定的驱动进行绑定;用户能够在karaf命令行端口触发重绑定,所有交换机会向驱动框架请求重新绑定驱动。

在本实施例中,本发明提出的一种基于osgi框架和工作流的驱动系统实现方法,可以帮助开发者减少工作量,基于默认驱动迅速实现新标准对应的驱动或厂商差异化驱动,显著地提升开发效率;实际运行环境中,动态安装或卸载驱动,减轻设备压力;用户可以基于特定场景灵活指定版本或要求重新绑定驱动,将设备绑定到最优驱动。

实施例三

如图3所示,本发明的一个实施例中提供了一种驱动实现装置,驱动实现装置包括:

驱动分析模块310,分析目标驱动的驱动流程。

根据本实施例的技术方案,本实施例的驱动实现装置相当于驱动框架,利用该驱动框架可以完成目标驱动的安装。

流程比较模块320,比较目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分。

在本实施例中,分析目标驱动驱动的交换机-驱动交互流程与已有驱动流程的差异。

实现模块330,实现差异部分。

则对于目标驱动而言,在本实施例中可以继承已有驱动以快速实现新驱动:分析新驱动的交换机-驱动交互流程与已有驱动流程的差异,实现流程差异。

注册模块340,根据预实现的默认驱动的驱动流程和已实现的差异部分,注册目标驱动。

在本实施例中,通过分析目标驱动的驱动流程并与默认驱动进行比较得到差异部分,仅对差异部分进行实现,基于实现的差异部分和在先实现的默认驱动的驱动流程,完成目标驱动的注册,由于需要实现的仅为差异部分,而非整个目标驱动的驱动流程,所以大大降低了实现目标驱动的工作量。

实施例四

如图4所示,本发明的一个实施例中提供了一种驱动实现装置,本实施例的驱动实现装置包括:

流程分析模块410,分析目标驱动的驱动流程。

比较模块420,比较目标驱动的驱动流程与预设的默认驱动的驱动流程得到差异部分。

在本实施例中,需要预先开启控制器,在控制器的karaf环境中安装驱动框架,在安装默认驱动,该驱动框架只有一个默认驱动。

实现模块430,分析差异部分对应的动作,获取动作对应的接口,根据接口实现差异部分。

在本实施例中,对于默认驱动和目标驱动,均分解驱动流程,将流程分解为工作流中的动作并进行比较得到差异部分,根据差异部分的动作,提供接口和实现。

注册模块440,在预设的配置文件中添加目标驱动的描述信息和流程信息,目标驱动的描述信息记录默认驱动的标识信息,目标驱动的流程信息记录已实现的差异部分。

在本实施例中,添加配置文件,配置驱动的描述信息和流程信息。描述信息包括驱动的名称(唯一)、父驱动、厂商信息、硬件版本、软件版本、systemid等,流程信息包括相对父驱动特有的流程的动作信息,包括动作的名称、api模块中的接口类、驱动中的实现类、动作之间的转换处理类。

注册模块440根据默认驱动的标识信息查找预实现的默认驱动的驱动流程,对预实现的默认驱动的驱动流程和已实现的差异部分实例化以完成注册。

在本实施例中,基于配置文件的描述信息和流程信息,实现注册驱动和注销驱动的机制。在安装驱动时,从配置文件中读取描述信息和流程信息,生成驱动实例,向驱动框架注册自身驱动。在驱动模块被卸载时,向驱动框架注销自身驱动。

在本实施例中,对于有厂商差异的驱动,分析与默认驱动流程的差异,实现差异部分,在配置文件中设置父驱动和差异化步骤。因为厂商差异的驱动与默认驱动的流程有很多相似之处,所以可以基于默认驱动,只实现流程的差异部分,快速实现有厂商差异的驱动。

在本实施例中,注册完成后即完成目标驱动的安装,目标驱动为厂商差异化驱动,可安装多个厂商差异化驱动。

绑定模块450,通过默认驱动获取预设的交换机的唯一标识信息,并将交换机的唯一标识信息与目标驱动的描述信息进行比较,根据比较结果判断是否将目标驱动与交换机进行绑定。

在本实施例中,设置交换机向控制器主动建链。在openflow标准中,将openflow交换机的控制器ip地址和端口配置好后,交换机会主动向控制器的驱动建立链接。控制器的驱动框架首先使用默认驱动完成版本协商、处理featurereply、获取交换机信息,然后根据交换机信息将openflow交换机与某个适当的驱动绑定,后续控制器与交换机的交互都由该驱动处理。

通知模块460,删除目标驱动对应的所有信息后,向预设的交换机发出取消目标驱动的通知。

本实施例的技术方案,可以帮助开发者减少工作量,基于默认驱动迅速实现新标准对应的驱动或厂商差异化驱动,显著地提升开发效率;实际运行环境中,动态安装或卸载驱动,减轻设备压力;用户可以基于特定场景灵活指定版本或要求重新绑定驱动,将设备绑定到最优驱动。

本发明的一个实施例中,还提供一种驱动实现设备,驱动实现设备包括处理器、存储器及通信总线;通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的驱动实现程序,以实现前述实施例的驱动实现方法的步骤。

本发明的一个实施例中,还提供一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例的驱动实现方法的步骤。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1