软件定义网络中的控制方法,控制设备和处理器与流程

文档序号:12042035阅读:175来源:国知局
软件定义网络中的控制方法,控制设备和处理器与流程
本发明涉及信息技术领域,特别涉及一种软件定义网络SDN中的控制方法,控制设备和处理器。

背景技术:
SDN(SoftwareDefinedNetwork,软件定义网络)是一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。在SDN网络中,每台网络设备仅保留转发功能,控制功能全部集中到一个控制器中。SDN的网络中包括主机,转发设备和控制器。主机是网络端点,是通信的发起方或终结方;转发设备负责数据报文的发送,其没有独立的控制面,而是和其他设备共享一个集中的控制面(即SDN中的控制器);控制器是SDN中的控制中心,负责控制和管理转发设备。主机之间进行通信时,通信通道不是由转发设备协商得出,而是由控制器计算得出,并下发到各个转发设备。SDN中的控制器是通过软件逻辑、北向接口、NOS(NetworkOperationSystem,网络操作系统)和南向接口等软件模块来实现控制和管理的。其中,控制逻辑是网络应用程序或服务,通过NBI(NorthBoundInterface,北向接口)与NOS交互,使得NOS通过SBI(SouthBoundInterface,南向接口)来控制转发设备,以实现控制逻辑要求实现的数据转发等功能。现有技术中,如果注册于不同控制器的两个主机之间要建立一条链路,需要通过两个分别注册于不同的控制设备的交换设备进行操作。当一个控制器需要对另外一个控制设备下的主机进行操作时,是通过订阅/通知等广播机制来实现的,另外一个控制设备下的所有交换设备都会收到事件请求并进行判断,导致处理业务的性能较低。

技术实现要素:
本发明实施例提供了一种软件定义网络SDN中的控制方法,控制设备和处理器,以解决现有技术中处理不同控制设备下的网络设备之间业务时性能不高的问题。本发明实施例提供了一种软件定义网络SDN中的控制设备,所述控制设备包括运行于所述控制设备的操作系统,所述操作系统包括业务处理模块,对象获取模块和对象存储模块;所述对象获取模块,用于根据所述业务处理模块的请求,从所述对象存储模块获取请求的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述业务处理模块,用于根据所述网络设备的位置信息,建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制,所述远程对象代理是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理;所述对象存储模块,用于存储所述网络设备的位置信息,所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID。可选的,所述对象获取模块还用于根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。可选的,所述对象存储模块,还用于将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。可选的,所述对象存储模块将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:所述对象存储模块将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息。可选的,所述共享设备是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。可选的,所述对象存储模块,还用于从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述对象存储模块将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:所述对象存储模块将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。可选的,所述对象存储模块,还用于从所述SDN中的其它控制设备,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述控制设备还包括操作接口模块;所述操作接口模块,用于为注册于所述控制设备的网络设备的设备对象,创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系。可选的,所述操作接口模块创建的至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。可选的,所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。可选的,所述控制设备还包括监听模块和驱动管理模块;所述监听模块,用于接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,并将所述特征码发送给所述驱动管理模块,所述特征码用于唯一标识所述发起注册请求的网络设备;所述驱动管理模块,用于根据所述特征码,建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系。可选的,所述监听模块,还用于接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;所述驱动管理模块,还用于根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。可选的,所述特征码包括网络设备的产品编号、版本号或生产商编号中的至少一个。本发明实施例还提供了一种软件定义网络SDN中的控制方法,所述方法包括:所述SDN中的控制设备接收业务请求;所述控制设备获取处理所述业务的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID;所述控制设备根据所述网络设备的位置信息,建立所述网络设备的远程对象代理;所述控制设备根据所述业务请求对所述远程对象代理进行控制,所述远程对象是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理。可选的,所述根据所述网络设备的位置信息,建立所述网络设备的远程对象代理包括:根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。可选的,所述方法还包括:将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。可选的,所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息。可选的,所述共享设备是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。可选的,所述方法还包括:从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。可选的,所述方法还包括:从所述SDN中的其它控制设备,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述方法还包括:创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系,所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。可选的,所述至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。可选的,所述方法还包括:在所述控制设备中设置监听模块,所述监听模块接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,并将所述特征码发送给所述控制设备中的驱动管理模块,所述特征码用于唯一标识所述发起注册请求的网络设备;所述驱动管理模块根据所述特征码,建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系。可选的,所述方法还包括:所述监听模块接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;所述驱动管理模块根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。可选的,所述特征码包括网络设备的产品编号、版本号或生产商编号中的至少一个。本发明实施例还提供了一种软件定义网络SDN中的处理器,所述处理器位于所述SDN中的控制设备中,用于执行计算机程序,所述处理器在执行计算机程序时,执行下述步骤:接收业务请求;获取处理所述业务的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID;根据所述网络设备的位置信息,建立所述网络设备的远程对象代理;根据所述业务请求对所述远程对象代理进行控制,所述远程对象是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理。可选的,所述根据所述网络设备的位置信息,建立所述网络设备的远程对象代理包括:根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。可选的,所述处理器还用于执行下述步骤:将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。可选的,所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息。可选的,所述共享设备是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。可选的,所述处理器还用于执行下述步骤:从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。可选的,所述处理器还用于执行下述步骤:从所述SDN中的其它控制设备,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。可选的,所述处理器还用于执行下述步骤:创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系,所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。可选的,所述至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。可选的,所述处理器还用于执行下述步骤:接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,所述特征码用于唯一标识所述发起注册请求的网络设备;建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系。可选的,所述处理器还用于执行下述步骤:接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。可选的,所述特征码包括网络设备的产品编号、版本号或生产商编号中的至少一个。本发明实施例提供的SDN中的控制方法,控制设备和处理器,通过获取注册于所述SDN中的其它控制设备的网络设备的位置信息,能够根据该位置信息建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制。从而可以实现对需要控制或操作的网络设备直接控制,不需要将控制或操作的需求发送给所述其它控制设备中所有网络设备的设备对象,避免了所述其他控制设备中所有网络设备的设备对象接收业务控制请求并进行判断的步骤,提升了业务处理的性能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一种软件定义网络SDN中的控制设备101的结构示意图;图2为本发明实施例一种软件定义网络SDN中的控制设备101的具体实现结构示意图;图3为本发明实施例一种SDN中的控制设备具体实现方式结构示意图;图4为本发明实施例一种SDN中的控制设备另一种具体实现方式结构示意图;图5为本发明实施例一种SDN中的控制设备进一步具体实现方式结构示意图;图6为本发明实施例一种SDN中的控制设备另一种进一步具体实现方式结构示意图;图7为本发明实施例一种软件定义网络SDN中的控制方法的流程示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。参考图1,图1为本发明实施例一种软件定义网络SDN中的控制设备101的结构示意图,所述控制设备101包括运行于所述控制设备的操作系统,所述操作系统包括业务处理模块1011,对象获取模块1012和对象存储模块1013,所述对象获取模块1012,用于根据所述业务处理模块1011的请求,从所述对象存储模块1013获取请求的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述业务处理模块1011,用于根据所述网络设备的位置信息,建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制,所述远程对象代理是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理;所述对象存储模块1013,用于存储所述网络设备的位置信息,所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID。本发明实施例提供的上述SDN中的控制设备101,通过对象获取模块1012获取注册于所述SDN中的其它控制设备的网络设备的位置信息,使得业务处理模块1011能够根据该位置信息建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制。控制设备101可以针对需要控制或操作的网络设备直接控制,不需要将控制或操作的需求发送给所述其它控制设备中所有网络设备的设备对象,避免了所述其他控制设备中所有网络设备的设备对象接收业务控制请求并进行判断的步骤,提升了业务处理的性能。作为一种可选的实现方式,所述对象获取模块1012还用于根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。所述对象获取模块1012具体是根据所述网络设备的位置信息,确定所述网络设备注册的控制设备,并能够访问存储有所述网络设备远程对象的空间,依据从存储有所述网络设备远程对象空间获取到的所述网络设备的远程对象信息,建立对所述网络设备的远程对象代理,实现对所述网络设备的设备对象的远程控制。作为一种可选的实现方式,所述对象存储模块1013,还用于将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。其中,所述对象存储模块1013将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:所述对象存储模块将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息;或者所述对象存储模块将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。其中,所述共享设备可以是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。相应的,所述对象存储模块1013,还用于从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块;或者接收所述SDN中的其它控制设备广播的网络设备的位置信息,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。通过对象获取模块1013将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备,能够使得所述SDN中的其他控制设备能够获取所述注册于所述控制设备的网络设备的位置信息,使得所述SDN中的其他控制设备能够根据获取到的位置信息实现对所述注册于所述控制设备的远程控制。并且,如果将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,能够使得SDN中的控制设备在需要实现远程控制时从共享设备获取位置信息,能够节省对象获取模块1013存储其它控制设备的位置信息的空间。参考图2,图2为本发明实施例一种软件定义网络SDN中的控制设备101的具体实现结构示意图。如图2所示,所述控制设备101还包括操作接口模块1014;所述操作接口模块1014,用于为注册于所述控制设备的网络设备的设备对象,创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系。其中,所述操作接口模块创建的至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。通过设定至少两个操作接口,并且操作接口之间具有操作内容上的继承关系,能够实现对设备对象的灵活配置,避免了单一的操作接口设定的方法为了满足所有网络设备的设备对象而不能发挥具体网络设备特性的弊端,或者单一的操作接口针对具体的网络设备都设定操作接口,带来的实现复杂且新增网络设备时需要增加操作接口的弊端。作为一种可选的实现方式,所述控制设备101还包括监听模块1015和驱动管理模块1016;所述监听模块1015,用于接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,并将所述特征码发送给所述驱动管理模块,所述特征码用于唯一标识所述发起注册请求的网络设备;所述驱动管理模块1016,用于根据所述特征码,建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系。可选的,所述监听模块1015,还用于接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;所述驱动管理模块1016,还用于根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。其中,所述特征码可以包括网络设备的产品编号、版本号或生产商编号中的至少一个。上述实现方式,通过监听模块1015作为网络设备和驱动管理模块1016之间连接的桥梁,并通过唯一标识网络设备的特征码区分不同的网络设备,实现了对网络设备的有效控制,避免了在使用端口号区分不同的网络设备时可能出现的端口号重复导致的无法区分具体的网络设备的问题。下面以SDN中包括两个控制设备,一个共享设备,每个控制设备控制两个交换设备为例,对本发明实施例一种SDN中的控制设备做详细的说明。图3为本发明实施例一种SDN中的控制设备具体实现方式结构示意图。如图3所示,所述SDN中的控制设备301与交换设备302、交换设备303相连,控制设备304与交换设备305、交换设备306相连,控制设备301和控制设备304分别与共享设备307相连。控制设备301的操作系统中包括业务处理模块3011,对象获取模块3012和对象存储模块3013;控制设备304的操作系统中包括业务处理模块3041,对象获取模块3042和对象存储模块3043。共享设备307可以被控制设备301和控制设备304访问,即运行在控制设备301上的操作系统,运行在控制设备304上的操作系统,都能够访问共享设备307中的内容。该共享设备307中存储有其所在的SDN中网络设备的位置信息,在本实施例中,共享设备307中存储了交换设备302、交换设备303、交换设备305和交换设备306的位置信息。共享设备307通常是用特定的数据结构的方式存储网络设备的位置信息,可以用表格或树形结构等结构方式存储交换设备的位置信息,只要能够清楚地存储网络设备所注册的控制设备的设备ID,网络设备所注册的控制设备的IP地址和网络设备的设备ID,使得SDN中的控制设备能够获取注册于其它控制设备的网络设备的位置信息即可。本实施例以所述共享设备307为独立存在的硬件设备并且以树形结构形式存储交换设备的位置信息,控制设备301中的业务处理模块3011需要建立从交换设备302到交换设备306的链路为例进行说明。图4为本发明实施例一种SDN中的控制设备另一种具体实现方式结构示意图。如图4所示,当控制设备301启动时,其对象存储模块3013在共享设备307中创建控制设备301在树形数据结构中的节点:控制设备3071,该控制设备3071代表控制设备301,控制设备3071记录控制设备301的设备ID和IP地址。当交换设备302和交换设备303第一次连接到控制设备301时,控制设备301中的驱动层会分别为交换设备302和交换设备303创建设备对象,并存储在控制设备301的设备对象库中。交换设备的设备对象是控制设备对交换设备控制的代理,可以是控制设备的操作系统中业务处理模块对设备对象进行操作的代理。例如:设备对象302a是交换设备302在控制设备301的操作系统中的代理,设备对象303a是交换设备303在控制设备301的操作系统中的代理,控制设备301的操作系统通过设备对象302a对交换设备302进行控制,控制设备301的操作系统通过设备对象303a对交换设备303进行控制。对象存储模块3013记录设备对象302a和设备对象303a后,在共享设备307中创建设备对象302a的节点:设备对象3072,设备对象3072记录交换设备302的设备ID;并创建设备对象303a的节点:设备对象3073,设备对象3073记录交换设备303的设备ID。这样,在共享设备307创建了对应于控制设备301、交换设备302和交换设备303的树形结构共享信息,该树形结构共享信息记录了控制设备301的设备ID和IP地址,以及交换设备302和交换设备303的设备ID,使得控制设备304能够从共享设备307获取上述信息,实现对控制设备301控制下的交换设备302或交换设备303的远程控制。当控制设备304启动时,其对象存储模块3043在共享设备307中创建控制设备304在树形数据结构中的节点:控制设备3074,该控制设备3074代表控制设备304,控制设备3074记录控制设备304的设备ID和IP地址。当交换设备305和交换设备306第一次连接到控制设备304时,控制设备304中的驱动层会分别为交换设备305和交换设备306创建设备对象,并存储在控制设备304的设备对象库中。例如:设备对象305a是交换设备305在控制设备304的操作系统中的代理,设备对象306a是交换设备306在控制设备304的操作系统中的代理,控制设备304的操作系统通过设备对象305a对交换设备305进行控制,控制设备304的操作系统通过设备对象306a对交换设备306进行控制。对象存储模块3043记录设备对象305a和设备对象306a后,在共享设备307中创建设备对象305a的节点:设备对象3075,设备对象3075记录交换设备305的设备ID;并创建设备对象306a的节点:设备对象3076,设备对象3076记录交换设备306的设备ID。在共享设备307创建了对应于控制设备304、交换设备305和交换设备306的树形结构共享信息,该树形结构共享信息记录了控制设备304的设备ID和IP地址,以及交换设备305和交换设备306的设备ID,使得控制设备301能够从共享设备307获取上述信息,实现对控制设备301控制下的交换设备302或交换设备303的远程控制。由于业务处理模块3011要建立从交换设备302到交换设备306的链路,会获取交换设备302的设备ID和交换设备306的设备ID,业务处理模块3011需要根据交换设备302的设备ID获取交换设备302的设备对象,根据交换设备306的设备ID获取交换设备306的设备对象,通过对交换设备302的设备对象以及交换设备306的设备对象进行操作和控制,分别实现对交换设备302的控制和对交换设备306的控制。业务处理模块3011根据交换设备302的设备ID向对象获取模块3012获取交换设备302的设备对象。对象获取模块3012依据交换设备302的设备ID向对象存储模块3013请求交换设备302的设备对象。由于交换设备302是注册于控制设备301的交换设备,在对象存储模块3013中会存储交换设备302的设备对象302a。对象存储模块3013根据交换设备302的设备ID,获取交换设备302设备对象302a,并返回给对象获取模块3012。对象获取模块3012将设备对象302a返回给业务处理模块3011。业务处理模块3011根据交换设备306的设备ID向对象获取模块3012获取交换设备306的设备对象。对象获取模块3012依据交换设备306的设备ID向对象存储模块3013请求交换设备306的设备对象。由于交换设备306是注册于控制设备304的交换设备,在对象存储模块3013中没有存储交换设备306的设备对象306a。对象存储模块3013根据交换设备306的设备ID,向共享设备307获取交换设备306的位置信息。由于共享设备存储有控制设备3074和设备对象3076,控制设备3074记录了控制设备304的设备ID和IP地址,对象存储模块3013根据交换设备306的设备ID,获取控制设备304的设备ID和IP地址,并将控制设备304的设备ID,IP地址发送给对象获取模块3012。需要说明的是,对象存储模块3043在创建交换设备306的设备对象的同时,会为交换设备306在对象存储模块3043(例如远程对象服务RMIServer)中注册该交换设备306的远程对象。对象获取模块3012根据获取到的控制设备304的设备ID和IP地址,发起远程对象获取请求(例如访问RMIServer服务器),从而获取交换设备306的远程对象信息。对象获取模块3012根据交换设备306的远程对象信息建立交换设备306的远程对象代理,通过该远程对象代理306,能够使得业务处理模块3011对该远程对象代理306进行控制或操作,且控制或操作的结构能够通过网络传递到交换设备306,从而实现对交换设备306的控制。对象获取模块3012建立远程对象代理306后,可以直接对远程对象代理306实施操作,其操作方式和业务处理模块3011操作交换设备302的设备对象一样,只是对远程对象代理306控制或操作的结果通过网络传递到交换设备306。上述实施例中,是以建立交换设备306的远程对象为例进行说明的;对于控制设备304还包括控制的其它网络设备,例如注册于控制设备304的网关、路由器等,其实现方式与交换设备306的实现方式类同,不再赘述。业务处理模块3011对交换设备302的设备对象进行控制,可以通过操作接口来实现的。接口是一组方法的集合,但只定义方法,不做实现。设备对象可以实现接口,即设备对象实现接口所定义的方法。这样,就可以通过对操作接口的设定来实现对设备的控制。图5为本发明实施例一种SDN中的控制设备进一步具体实现方式结构示意图。如图5所示,所述控制设备301中还包括操作接口模块3014,用于设定至少两个操作接口。例如,可以设定接口A,该接口A包含了交换设备302和303都支持的操作,例如创建链路,交换设备302和交换设备303都支持创建链路的操作;同时,为交换设备302设定接口B,接口B继承接口A已定义方法,同时增加只有交换设备302支持的方法,例如增加虚拟端口,即接口B包括创建链路和增加虚拟端口的方法;并设定接口C,接口C也继承接口A已定义的方法,并实现只有交换设备303支持的方法,例如增加Trunk端口,即接口C包括创建链路和增加Trunk的方法。这样,交换设备302可以实现接口A和接口B,交换设备303可以实现接口A和接口C。在业务处理模块3011需要对交换设备302的设备对象进行操作时,可以调用接口A或接口B,并执行接口A或接口B所设定的方法,从而实现对交换设备302的控制。例如,在建立交换设备302与交换设备306的链路中,由于接口A设定了创建链路的方法,业务处理模块3011在建立交换设备302与交换设备306之间链路的时候,分别对交换换设备302的设备对象302a,和交换设备306的远程对象代理306b使用接口A,即实现接口A设定的方法,从而实现建立交换设备302与交换设备306之间链路的控制。图6为本发明实施例一种SDN中的控制设备另一种进一步具体实现方式结构示意图。如图6所示,控制设备301的操作系统中,还包括驱动层3017,驱动层与对象存储模块连接,本发明实施例中,驱动层3017包括监听模块3015和驱动管理模块3016。驱动层3017负责和设备之间的通信,并创建发起注册的网络设备的设备对象,例如,在交换设备302向控制设备301注册时,为交换设备302创建设备对象302a,在交换设备303向控制设备301注册时,为交换设备303创建设备对象303a;驱动层3017在完成设备对象的创建后,将创建的设备对象注册到对象存储模块3013中。驱动管理模块3016,用于存储交换设备302和交换设备303的驱动注册信息并管理交换设备302和交换设备303的驱动,例如加载、卸载或启动交换设备。监听模块3015,作为集中的监听端口监听网络设备的连接请求,交换设备302或交换设备303发出的请求信息,会先到达监听模块3015,由监听模块3015发送给驱动管理模块。由于交换设备302和交换设备303的端口号可能会出现冲突,即出现两个端口号相同的情况,导致驱动管理模块3106无法识别具体的交换设备。因此,在交换设备发起注册时,需要携带能够唯一标识交换设备的特征码。通过该特征码,驱动管理模块3106能够识别出不同的交换设备,即使是交换设备的端口号相同,也能够区分出不同的交换设备。例如在交换设备302和交换设备303的端口号相同的情况下,通过特征码,能够识别出交换设备302和交换设备303。其中,端口号是交换设备连接的端口号,特征码是交换设备发起注册请求时携带的信息,该信息能够唯一标识发起注册请求的设备。连接时发送的请求中携带的唯一标识交换设备的信息。例如,假设交换设备302的端口号是6633,其在发起注册请求时携带的特征码为0xFF32;交换设备303的端口号是831,其在发起注册请求时携带的特征码为0xBB12,则交换设备302和交换设备303在注册后,在驱动管理模块3106中记录的驱动信息如表1所示:表1上述的特征码可由设备的产品编号,版本号,生产商编号中的至少一个来组成,用来唯一标识交换设备。交换设备302注册后,在发起连接请求时,连接请求中会携带特征码0xFF32,监听模块3015接收交换设备302的连接请求,并将该连接请求发送给驱动管理模块3016,驱动管理模块3016根据所述连接请求中携带的特征码,获取交换设备302的驱动。使得驱动管理模块3016能够唯一确定交换设备302,实现控制设备301的操作系统对交换设备302的有效控制。同样的,交换设备303在发起连接请求时,与交换设备302类似,不再赘述。参考图7,图7为本发明实施例一种软件定义网络SDN中的控制方法的流程示意图,包括:步骤700:所述SDN中的控制设备接收业务请求;步骤702:所述控制设备获取处理所述业务的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID;步骤704:所述控制设备根据所述网络设备的位置信息,建立所述网络设备的远程对象代理;步骤706:所述控制设备根据所述业务请求对所述远程对象代理进行控制,所述远程对象是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理。本发明实施例提供的上述SDN中的控制方法,通过获取注册于所述SDN中的其它控制设备的网络设备的位置信息,能够根据该位置信息建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制。通过上述方法,可以实现对需要控制或操作的注册于其它控制设备的网络设备直接控制,不需要将控制或操作的需求发送给所述其它控制设备中所有网络设备的设备对象,避免了所述其他控制设备中所有网络设备的设备对象接收业务控制请求并进行判断的步骤,提升了业务处理的性能。作为一种可选的实现方式,所述根据所述网络设备的位置信息,建立所述网络设备的远程对象代理包括:根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。具体可以是根据所述网络设备的位置信息,确定所述网络设备注册的控制设备,并能够访问存储有所述网络设备远程对象的空间,依据从存储有所述网络设备远程对象空间获取到的所述网络设备的远程对象信息,建立对所述网络设备的远程对象代理,实现对所述网络设备的设备对象的远程控制。作为一种可选的实现方式,所述方法还可以包括:将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息;或者将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。其中所述共享设备是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。相应的,所述方法还包括:从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块;或者,接收所述SDN中的其它控制设备广播的位置信息,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。通过将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备,能够使得所述SDN中的其他控制设备能够获取所述注册于所述控制设备的网络设备的位置信息,使得所述SDN中的其他控制设备能够根据获取到的位置信息实现对所述注册于所述控制设备的远程控制。并且,如果将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,能够使得SDN中的控制设备在需要实现远程控制时从共享设备获取位置信息,能够所述控制设备存储其它控制设备的位置信息的空间。作为一种可选的实现方式,所述方法还包括:创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系,所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。其中,所述至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。通过设定至少两个操作接口,并且操作接口之间具有操作内容上的继承关系,能够实现对设备对象的灵活配置,避免了单一的操作接口设定的方法为了满足所有网络设备的设备对象而不能发挥具体网络设备特性的弊端,或者单一的操作接口针对具体的网络设备都设定操作接口,带来的实现复杂且新增网络设备时需要增加操作接口的弊端。作为一种可选的实现方式,所述方法还包括:在所述控制设备中设置监听模块,所述监听模块接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,并将所述特征码发送给所述控制设备中的驱动管理模块,所述特征码用于唯一标识所述发起注册请求的网络设备;所述驱动管理模块根据所述特征码,建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系。并且,所述监听模块还可以接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;所述驱动管理模块根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。所述特征码包括网络设备的产品编号、版本号或生产商编号中的至少一个。上述方法通过监听模块作为网络设备和驱动管理模块之间连接的桥梁,并通过唯一标识网络设备的特征码区分不同的网络设备,实现了对网络设备的有效控制,避免了在使用端口号区分不同的网络设备时可能出现的端口号重复导致的无法区分具体的网络设备的问题。上述方法的具体实现方式,可以参照图3至图6实施例中控制设备的实现方式来实现,不再赘述。本发明实施例还提供了一种软件定义网络SDN中的处理器,所述处理器位于所述SDN中的控制设备中,所述处理器用于执行下述步骤:接收业务请求;获取处理所述业务的网络设备的位置信息,所述网络设备注册于所述SDN中的其它控制设备;所述网络设备的位置信息包括所述网络设备所注册的控制设备的设备ID,所述网络设备所注册的控制设备的IP地址和所述网络设备的设备ID;根据所述网络设备的位置信息,建立所述网络设备的远程对象代理;根据所述业务请求对所述远程对象代理进行控制,所述远程对象是所述网络设备的设备对象在所述控制设备的代理,所述设备对象是所述网络设备所注册的控制设备对所述网络设备进行控制的代理。本发明实施例提供的上述SDN中的处理器,通过获取注册于所述SDN中的其它控制设备的网络设备的位置信息,能够根据该位置信息建立所述网络设备的远程对象代理,通过所述远程对象代理实现对所述网络设备的控制。通过上述方法,可以实现对需要控制或操作的注册于其它控制设备的网络设备直接控制,不需要将控制或操作的需求发送给所述其它控制设备中所有网络设备的设备对象,避免了所述其他控制设备中所有网络设备的设备对象接收业务控制请求并进行判断的步骤,提升了业务处理的性能。作为一种可选的实现方式,所述根据所述网络设备的位置信息,建立所述网络设备的远程对象代理包括:根据所述网络设备的位置信息,获取所述网络设备的远程对象信息,通过所述网络设备的远程对象信息建立所述网络设备的远程对象代理,所述网络设备的远程对象信息是对所述网络设备进行远程控制的信息。具体可以是根据所述网络设备的位置信息,确定所述网络设备注册的控制设备,并能够访问存储有所述网络设备远程对象的空间,依据从存储有所述网络设备远程对象空间获取到的所述网络设备的远程对象信息,建立对所述网络设备的远程对象代理,实现对所述网络设备的设备对象的远程控制。作为一种可选的实现方式,所述处理器还用于执行下述步骤:将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备;所述注册于所述控制设备的网络设备的位置信息包括:所述控制设备的设备ID,所述控制设备的IP地址和所述注册于所述控制设备的网络设备的设备ID。所述将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备包括:将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,所述共享设备存储所述SDN中网络设备的位置信息;或者将所述注册于所述控制设备的网络设备的位置信息广播给所述SDN中的其它控制设备。其中所述共享设备是一个独立的设备,或是集成于所述控制设备,或集成于所述SDN中的其它控制设备。相应的,所述处理器还用于处理下述步骤:从所述共享设备获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块;或者,接收所述SDN中的其它控制设备广播的位置信息,获取注册于所述SDN网络中其它控制设备的网络设备的位置信息,并存储于所述对象存储模块。通过将注册于所述控制设备的网络设备的位置信息共享给所述SDN中的其它控制设备,能够使得所述SDN中的其他控制设备能够获取所述注册于所述控制设备的网络设备的位置信息,使得所述SDN中的其他控制设备能够根据获取到的位置信息实现对所述注册于所述控制设备的远程控制。并且,如果将注册于所述控制设备的网络设备的位置信息发送给所述SDN中的共享设备,能够使得SDN中的控制设备在需要实现远程控制时从共享设备获取位置信息,能够所述控制设备存储其它控制设备的位置信息的空间。作为一种可选的实现方式,所述处理器还用于执行下述步骤:创建至少两个操作接口,所述至少两个操作接口之间具有操作内容上的继承关系,所述操作接口设定对所述注册于所述控制设备的网络设备操作的方式。所述至少两个操作接口中,包括一个适用于至少两个所述注册于所述控制设备的网络设备的操作接口,以及一个只适用于一个所述注册于所述控制设备的网络设备的操作接口。通过设定至少两个操作接口,并且操作接口之间具有操作内容上的继承关系,能够实现对设备对象的灵活配置,避免了单一的操作接口设定的方法为了满足所有网络设备的设备对象而不能发挥具体网络设备特性的弊端,或者单一的操作接口针对具体的网络设备都设定操作接口,带来的实现复杂且新增网络设备时需要增加操作接口的弊端。作为一种可选的实现方式,所述处理器还用于执行下述步骤:接收注册于所述控制设备的网络设备发起的注册请求,所述注册请求中携带有特征码,所述特征码用于唯一标识所述发起注册请求的网络设备;建立所述注册于所述控制设备的网络设备的驱动与所述特征码之间的对应关系;接收所述注册于所述控制设备的网络设备发起的连接请求,所述连接请求中携带有特征码;根据所述连接请求中携带的特征码,获取所述注册于所述控制设备的网络设备的驱动。所述特征码包括网络设备的产品编号、版本号或生产商编号中的至少一个。上述处理器通过通过唯一标识网络设备的特征码区分不同的网络设备,实现了对网络设备的有效控制,避免了在使用端口号区分不同的网络设备时可能出现的端口号重复导致的无法区分具体的网络设备的问题。上述处理器的具体实现方式,还可以参考图3至图6所述的实施例中控制设备的实现方式,再次不再赘述。本发明实施例还提供了一种计算机程序产品,该计算机程序产品能够执行上述SDN中控制方法实施例中所列的步骤,实现上述控制方法所达到的技术效果。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1