一种集成多控制器的可视化sdn网络管理方法

文档序号:8397998阅读:906来源:国知局
一种集成多控制器的可视化sdn网络管理方法
【技术领域】
[0001]本发明涉及一种集成多控制器的可视化SDN网络管理方法,属于计算机应用技术领域。
【背景技术】
[0002]随着SDN网络的不断普及和发展,目前SDN网络的研宄已经成为我国一个重要的研宄课题。目前越来越多的研宄人员进入该研宄领域,然而,现如今大多数针对SDN网络的研宄都是通过Mininet等软件虚拟出SDN网络的组件(包括控制器、交换机、主机等),然后在此基础上进行实验研宄。因此,研宄人员初次接触该领域都觉得SDN网络的技术很抽象,难以把握,严重阻碍了研宄人员对SDN网络的认识,所以研宄人员在该领域的研宄变得举步维艰。其次,由于SDN网络的概念提出的时间较短,因此目前还没有统一的标准,特别是针对SDN网络控制器的研发,许多不同的团体开发了多种类型的SDN网络的控制器,而不同控制器所提供的接口名称,功能可能都不一致,因此研宄者需要学习研宄多种控制器的原理、API,然后才能在实验中加以应用,然而多种控制器提供的接口繁多、名称各异,这无疑给研宄者的研宄开发带来了难度。

【发明内容】

[0003]为了克服上述不足,本发明提供了一种基于Java、Flex技术的集成了多控制器的SDN网络管理方法。首先,该方法实现了对SDN网络的可视化操作管理,用户可以利用本方法提供的前端页面实现如下功能:简单快速的生成SDN网络;展示所生成的网络拓扑;展示SDN网络的信息;对交换机的流表进行管理等。
[0004]此外,该方法不仅用图形化的界面代替了命令行,而且我们还统一了多控制器提供的接口,屏蔽了不同控制器带来的差异,使用户不用考虑SDN网络中控制器的类型,也不用熟悉每种控制器操作交换机的命令,从而使初学者能够简单方便的使用SDN控制器相关功能,快速的认识SDN网络。
[0005]本发明采取的技术方案如下:
[0006]一种集成多控制器的可视化SDN网络管理方法,方法由前端,服务器端,数据库,SDN控制器以及交换机组成;其中服务器端由对SDN网络进行管理,负责与SDN网络进行通信,是前端与SDN网络通信的桥梁;其中服务器端主要由Java语言实现,同时应用了spring框架的依赖注入及声明式事务管理来管理服务器端对象的初始化和事务管理;前端主要是负责实现SDN网络拓扑创建、SDN网络拓扑信息的展示,流表的添加和流表的删除等操作的可视化(结合服务器端);前端主要由Flex,Act1nScript语言实现,其中Flex负责网页的构造和美化,Act1nScript负责网页功能的实现,同时还负责与服务器端交互数据。数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供前端查询使用。其中前端和服务器端通过Blazeds访问远程服务接口实现,其中Blazeds是一个基于服务器的Java远程调用和Web消息传递技术,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信;而服务器端通过MyBatis和Spring技术对数据库进行存取操作,而MyBatis和Spring之间通过MyBatis-Spring进行整合,使用MyBatis-Spring类库中的类,Spring将会加载必要的MyBatis工厂类和sess1n类。这个类库也提供一个简单的方式来注入MyBatis数据映射器和SqlSess1n到业务层的bean中,这样就实现了服务器对数据库的操作;服务器端则是通过向SDN控制器的RESTAPI发送HTTP请求来实现对SDN控制器的控制。
[0007]一种集成多控制器的可视化SDN网络管理方法,包括SDN网络拓扑创建、拓扑信息采集、SDN网络拓扑信息的展示、流表的添加和流表的删除;具体如下:
[0008]SDN网络拓扑创建的方法为:
[0009](I)用户确定所需拓扑;
[0010](2)创建组件,其中包括SDN控制器,OpenFlow交换机和主机。本步骤主要是在前端页面完成;
[0011](3)连接上述步骤中所创建的控制器,交换机和主机组成网络拓扑,其中,控制器连接交换机,交换机即可连接控制器也可连接主机,控制器和主机之间不存在直接链路,该步骤也是在前端页面完成,网络拓扑创建完成后,可以导出拓扑;
[0012]拓扑?目息米集方法为:
[0013](4)确定需要采集的拓扑信息,需要获取哪些拓扑信息主要是由拓扑中SDN控制器的种类和开发人员决定,一般包括控制器、交换机、主机、链路等相关信息;
[0014](5)判断控制类型,因为不同的控制器,获取同一类信息的命令是不一致的;
[0015](6)在确定了控制器类型和需要采集的信息之后就是拼接采集信息的命令,因为服务器端与控制器交互是通过HTTP请求实现,因此拼接采集信息的命令其实就是拼接HTTP请求,获取不同拓扑信息的HTTP请求是不一样的,因此获取不同的拓扑信息需要拼接不同的HTTP请求,HTTP请求拼接具体过程是:首先确定HTTP请求类型(包括POST, GET, DELETE),在确定了 HTTP请求类型之后,再将需要请求的信息内容加入到HTTP中,这样一条完成的HTTP请求就拼接完成了,之后进行下一步;
[0016](7)向控制器发送HTTP求情,控制器在接受到外部发来的HTTP请求时,先判断其格式是否正确,若是不正确在直接返回错误,不再进行其他操作,若是格式正确则进行下一步;SDN控制器解析HTTP请求,获取请求信息的类型,然后将需要返回的信息封装成JSON字格式的字符串返回;
[0017](8)服务器端收到来自控制器的返回信息后,返回信息的格式是JSON字符串,需要对其进行解析,解析过程如下:在服务器端定义一个Map对象来接收控制器返回的JSON字符串,然后通过Map取出JSON中的信息存入相应的对象,最后再调用操作数据库的方法将信息更新到数据库中;
[0018](9)网络中拓扑信息是实时变化的,将获取网络中拓扑信息设置成了定时的任务,每过一个周期就获取一次拓扑信息。
[0019]SDN网络拓扑信息的展示的方法为:
[0020](10)用户选择需要查看的拓扑信息,确定之后进行下一步;
[0021](11)在用户选择了需要显示的拓扑信息后,前端通过调用服务器端提供的获取特定拓扑信息的方法读取数据库获取所需拓扑信息的当前值,将其封装成对象之后返回至前端,若是不存在相关拓扑信息,则返回空;
[0022](12)接受到服务器端所返回的数据后,前端取出封装的对象,然后在页面显示;
[0023](13)如果还想查看其他信息,返回(10)。
[0024]流表的添加的方法:
[0025](14)开始添加流表,该步骤主要在前端完成,具体操作是,设置需要添加流表的相关参数,设置完成之后进行下一步;
[0026](15)确定控制器类型,因为不同控制器添加流表的命令是不一致的;
[0027](16)在确定了控制器类型之后就是拼接添加流表的命令的HTTP请求,其过程与获取网络拓扑信息中拼接HTTP请求是一致的;
[0028](17) HTTP拼接完成之后,服务器端将向控制器发送拼接完成的HTTP请求;
[0029](18)控制器在接收到来自服务器的HTTP请求后,首先判断其格式是否正确,若不正确则直接返回错误信息并重新开始流表添加,若正确则进行第六步;
[0030](19)判断流表中是否存在与将要添加的流表同名的流表项,若存在则直接覆盖,返回带有entry pushed信息的JSON字符串,若不存在则判断所要添加的流表项是否满足依赖关系,满足则添加新流表,向服务器返回带有entry pushed信息的JSON字符串,否则,添加流表失败,返回带有entry p
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1