CN107040416A - 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 - Google Patents
一种基于Cairngorm框架的虚拟数据中心可视化管理方法 Download PDFInfo
- Publication number
- CN107040416A CN107040416A CN201710225860.9A CN201710225860A CN107040416A CN 107040416 A CN107040416 A CN 107040416A CN 201710225860 A CN201710225860 A CN 201710225860A CN 107040416 A CN107040416 A CN 107040416A
- Authority
- CN
- China
- Prior art keywords
- user
- topology
- request
- web
- web front
- 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.)
- Granted
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于Cairngorm框架的虚拟数据中心可视化管理方法,属于计算机应用技术领域。本方法应用Cairngorm框架,使用flex技术作为前台开发语言,ActionScript为逻辑处理语言语言,应用于虚拟数据中心的资源管理或软件定义网络的实验场景中,提供可视化的Web前端,集成多种SDN主流控制器并展示虚拟数据中心的全局网络拓扑。通过Web前端可以控制网络拓扑中每一个组件的生命周期,完成OpenFlow流表下发、访问组件控制台、访问不同SDN控制器的UI界面等工作。
Description
技术领域
本发明涉及一种基于Cairngorm框架的虚拟数据中心可视化管理方法,属于计算机应用技术领域。
背景技术
在云计算日趋流行的背景下,虚拟数据中心以其灵活、低成本、易部署等方面的优势,渐渐成为云基础设施的首选。其对服务器、存储、网络、应用等高度的虚拟化,使用户可以按需调用各种资源;其对物理服务器、虚拟服务器、以及相关业务的自动化流程管理大大提高了工作人员的效率,简化公共管理任务。虚拟数据中心需要可靠的横向扩展和高性能的网络,2009年软件定义网络(SDN)技术的提出以新的观点解决了网络在新应用下的挑战。控制平面与转发平面分离,使网络与IT系统有机结合,提高云计算业务的发放效率,灵活调度虚拟数据中心中的流量,提高带宽利用率。
在虚拟数据中心及云计算的理念与运营模式得到越来越多认可的背景下,无论是提供虚拟数据中心服务的供应商还是虚拟数据中心的使用者,都需要一个统一的平台来对虚拟资源进行管理,实现整个环境的运维、运营管理的自动化、智能化,提高协同工作效率和自身竞争力,降低成本,构建可视化、灵活、高效的新一代虚拟数据中心,促进IT业务从虚拟化向云计算蓬勃发展。
现有的虚拟数据中心管理方法在可视化管理、集成多控制器的软件定义网络以及OpenFlow流表的下发等方面均存在一定缺陷。因此,研究、分析设计和开发虚拟数据中心的管理方法具有重要的现实意义。在可视化技术的实现方法中,Cairngorm框架使用AdobeFlex技术,即将Flex程序代码按照数据、用户视图、以及起控制作用的代码等逻辑功能来进行分块,大大增强了可视化界面 的可扩展性以及可维护性。
本发明提供的虚拟数据中心管理方法可以应用于平台的管理者、使用者甚至用于软件定义网络的实验场景中,提供可视化的Web前端,集成多种SDN主流控制器并展示虚拟数据中心的全局网络拓扑。通过Web前端可以控制网络拓扑中每一个组件的生命周期,完成OpenFlow流表下发、访问组件控制台、访问不同SDN控制器的UI界面等工作。
发明内容
本发明提出了一种基于Cairngorm框架的虚拟数据中心可视化管理方法来构建前端可视化Web界面,并将SDN控制器、交换设备、主机以及链路抽象为虚拟资源,集成多种主流控制器展示全局网络状态与OpenFlow协议模块。基于本发明的Web前端实现对于虚拟资源进行可视化管理与状态监控,为用户提供自定义、高效且稳定的SDN拓扑的状态展示与管理。用户通过前端以拖拽方式构建虚拟网络、虚拟主机、虚拟转发设备以及虚拟链路,或直接使用FatTree、BiTree等经典拓扑,并对以上虚拟资源进行整个生命周期的可视化的管理、配置与状态监控。同时本发明在这一基础上,实现了对于SDN控制器的统一管理,将不同种类控制器的接口进行了封装,使得用户可以通过Web前端的可视化界面来管理不同控制器所在网络的全局拓扑信息。
本发明的技术方案:
一种基于Cairngorm框架的虚拟数据中心可视化管理方法,包括Web前端、远过程调用和资源供给三部分;其中,Web前端包括拓扑抽象模块和消息请求模块,资源供给包括OpenStack与RpcServer和数据库三部分;
Web前端应用Cairngorm框架,即客户端界面由View(视图)组成,使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如鼠 标点击,按钮按下以及拖拽等用户动作产生Event。这些Event被Front Controller“广播”并“监听”,FrontController会将Event映射到Command。Command包括业务逻辑,创建所需Delegate,处理Delegate的相应请求,以及更新存储在Model Locator中的数据。由于View是绑定到ModelLocator中的数据上的,所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用Service并且将结果提交给Command,并调用远程数据然后将结果提交给Delegate。
Web前端包括网页的构造和美化、逻辑处理两部分;Flex负责网页的构造和美化,为用户提供一个管理拓扑资源生命周期与监控拓扑节点状态的门户,并通过Blazeds访问远程服务接口来实现与服务器端的Java应用程序进行通信,Blazeds是基于服务器的Java远程调用和Web进行消息传递的方法,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序相互传递消息;ActionScript负责网页的逻辑处理,即实现Web端的逻辑功能以及与服务器端之间的数据交互;逻辑处理部分包括为用户的请求提供统一的接口,方便用户进行自定义编排SDN网络;
(1)拓扑抽象模块
用户通过可视化的Web界面以拖拽网络元件的方式来创建拓扑管理需求,拓扑经过接口的对象转化,转化为可处理的数据,再经过拓扑抽象模块依次进行拓扑信息采集子模块、拓扑验证子模块、对象转化子模块与数据处理子模块;
信息采集子模块负责收集转化后的可处理的数据,由ActionScript生成抽象的SDN网络组件;
拓扑验证子模块负责两方面的验证工作,一是用户提交的拓扑是否是一个且仅有一个连通图;二是用户提交的控制器、交换设备、主机、链路信息是否 存在不合法的配置;拓扑验证子模块通过后,进入对象转化子模块来进行拓扑抽象,由ActionScript语言实现,正向转化负责把用户在Web前端构建的拓扑转化为底层OpenStack可识别的资源,并生成各节点之间的连通关系;在正向转化中,根据控制器的生成时间、组件编号、组件位置、用户身份、控制器类型和控制器配额,重新组装为Controller实例对象,存入数据库等待OpenStack调用并生成一台虚机,由于控制器需要访问ui界面,因此OpenStack给虚机分配一个浮动ip;根据交换设备的生成时间、组件编号、组件位置、用户身份、交换设备类型和浮动ip,重新组装为Switch实例对象,存入数据库,等待资源供给层调用,并利用Openvswitch生成网桥;根据主机的生成时间、组件编号、组件位置、用户身份、主机类型和主机配额,重新组装为Host实例对象,存入数据库等待OpenStack调用并生成一台虚机;拓扑中的链路分为两种,根据控制器与交换设备之间链路的生成时间、组件编号、组件位置、用户身份、链路类型,重新组装为oflink实例对象,存入数据库,等待控制器与交换设备之间建立连接;根据交换设备之间、交换设备与主机之间链路的生成时间、组件编号、组件位置、用户身份,重新组装为link实例对象,存入数据库,等待RpcServer建立相应的连接通路;
逆向转化是在用户登录Web前端后,用户的资源转化为Web前端可视化的图形,并展示出来;在逆向转化中,根据从数据库中获取到的该用户的Controller、Switch、Host、oflink、link实例对象的信息,并展示在Web前端中;
(2)消息请求模块
在用户确认提交拓扑后,通过消息请求机制处理用户请求,把用户通过Web前端下发的所有动作抽象为若干个请求(Request),进行发送;
消息请求机制定义了用户通过Web前端提交拓扑的请求格式与请求类型, 定义方法如下:
判断用户提交拓扑时的状态,根据消息请求机制生成Request实例对象,并存入数据库,等待资源供给层调用;这样的消息请求机制保证了多用户并发提交拓扑时,资源供给层可以根据Request队列处理请求,也保证了资源的正确性与不同拓扑内资源的隔离性。同时,系统为每一个验证身份成功的用户维护一个请求消息队列,Java应用程序的主线程不断地从请求消息队列中获取请求,然后依次对请求进行处理(RequestHandler),这样就实现了通过请求消息来驱动Java应用程序的执行;Java应用程序接收到用户发送的请求(Request)时,首先,按照类型对请求进行解析,再把该请求放在应用程序的请求消息队列中去,然后通过消息循环处理该请求;这样做的好处就是请求的发送方只要把请求发送到应用程序的消息队列中去就可以马上返回处理其他工作,而不需要等待请求的接收方在处理消息完毕后才返回,这样就可以提高系统的并发性。通过这样的异步处理机制实现了多用户同时访问Web前端管理自己的拓扑。
在成功提交拓扑后,用户再次登陆Web前端时,拓扑状态轮询模块负责从 后台获取该用户当前拓扑状态;如果该用户的拓扑处于正在创建、更新或删除的状态中,则用户不能进行接下来的操作,此时Web前端周期性从后台获取拓扑的最新状态,直到处理拓扑的操作完毕;此模块保证了单一用户拓扑资源的正确性,避免用户重复提交拓扑导致的后台数据错误。同时,控制台访问模块为创建拓扑成功的用户提供了虚机vnc控制台的访问窗口,基于FlexIframe框架实现;用户在申请访问某控制器或主机的控制台界面后,Web前端向资源供给层发送该虚机的id信息,通过HTTPPost请求调用OpenStackNova API,获取到该虚机的vnc访问地址,Web前端在获取到该vnc访问地址后,FlexIframe组件将该vnc访问地址作为source实现对vnc控制台的访问。
远过程调用采用Http请求的方式,作为前后端数据流的传递通道;
资源供给中,OpenStack资源供给层使用kilo版本,因为OpenStack源码为Python,为了更好地服务java应用程序,使用Java语言封装了OpenStack的API。API包括Identity身份验证方法、Glance镜像管理方法、Nova虚机配额以及console url管理方法、Heat虚机管理方法以及Neutron网络管理方法。Web前端就可以通过发送HTTP请求的方式使用与编排OpenStack的计算与网络资源。RpcServer运行在OpenStack计算节点上,为上层提供远过程调用接口,由Python语言实现HTTP服务端。Java应用程序可以通过特定端口直接调用RpcServer子线程对远程主机进行操作。数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供Web前端查询使用。本方法使用的数据库是MySQL。
本发明的有益效果:
以可视化的方式管理虚拟数据中心中的SDN网络,并将SDN控制器、交换设备、主机以及链路抽象为虚拟资源,集成多种主流控制器展示全局网络状态与OpenFlow协议模块;为用户提供自定义、高效且稳定的SDN网络状态展 示与管理。用户通过Web前端以拖拽方式构建虚拟拓扑、虚拟主机、虚拟转发设备以及虚拟链路,或直接使用FatTree、BiTree等经典拓扑,并对以上虚拟资源进行整个生命周期的可视化的管理、配置与状态监控。
附图说明
图1是本发明的系统整体结构示意图。
图2是本发明前端数据基于Cairngorm的传递流程图。
图3是本发明可视化管理网络拓扑的工作流程图
图4是本发明拓扑状态轮询模块的具体流程图。
图5是本发明请求消息机制的具体流程图。
图6是本发明控制台访问模块的具体流程图。
具体实施方式
以下结合附图和技术方案,进一步说明本发明的具体实施方式。
如图1所示,一种基于Cairngorm框架的虚拟数据中心可视化管理方法,包括Web前端、远过程调用和资源供给三部分;其中,Web前端包括拓扑抽象模块和消息请求模块,资源供给包括OpenStack与RpcServer和数据库三部分;
Web前端应用Cairngorm框架,即客户端界面由View(视图)组成,使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如鼠标点击,按钮按下以及拖拽等用户动作产生Event。这些Event被Front Controller“广播”并“监听”,FrontController会将Event映射到Command。Command包括业务逻辑,创建所需Delegate,处理Delegate的相应请求,以及更新存储在Model Locator中的数据。由于View是绑定到ModelLocator中的数据上的,所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用Service并且将结果提交给Command,并调用远程数据然后将结果提交给Delegate。
Web前端包括网页的构造和美化、逻辑处理两部分;Flex负责网页的构造和美化,为用户提供一个管理拓扑资源生命周期与监控拓扑节点状态的门户,并通过Blazeds访问远程服务接口来实现与服务器端的Java应用程序进行通信,Blazeds是基于服务器的Java远程调用和Web进行消息传递的方法,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序相互传递消息;ActionScript负责网页的逻辑处理,即实现Web端的逻辑功能以及与服务器端之间的数据交互;逻辑处理部分包括为用户的请求提供统一的接口,方便用户进行自定义编排SDN网络;
(1)拓扑抽象模块
用户通过可视化的Web界面以拖拽网络元件的方式来创建拓扑管理需求,拓扑经过接口的对象转化,转化为可处理的数据,再经过拓扑抽象模块依次进行拓扑信息采集子模块、拓扑验证子模块、对象转化子模块与数据处理子模块;
信息采集子模块负责收集转化后的可处理的数据,由ActionScript生成抽象的SDN网络组件;
拓扑验证子模块负责两方面的验证工作,一是用户提交的拓扑是否是一个且仅有一个连通图;二是用户提交的控制器、交换设备、主机、链路信息是否存在不合法的配置;拓扑验证子模块通过后,进入对象转化子模块来进行拓扑抽象,由ActionScript语言实现,正向转化负责把用户在Web前端构建的拓扑转化为底层OpenStack可识别的资源,并生成各节点之间的连通关系;在正向转化中,根据控制器的生成时间、组件编号、组件位置、用户身份、控制器类型和控制器配额,重新组装为Controller实例对象,存入数据库等待OpenStack调用并生成一台虚机,由于控制器需要访问ui界面,因此OpenStack给虚机分配一个浮动ip;根据交换设备的生成时间、组件编号、组件位置、用户身份、交换设备类型和浮动ip,重新组装为Switch实例对象,存入数据库,等待资源供给层调用,并利用Openvswitch生成网桥;根据主机的生成时间、组件编号、组件位置、用户身份、主机类型和主机配额,重新组装为Host实例对象,存入数据库等待OpenStack调用并生成一台虚机;拓扑中的链路分为两种,根据控制器与交换设备之间链路的生成时间、组件编号、组件位置、用户身份、链路类型,重新组装为oflink实例对象,存入数据库,等待控制器与交换设备之间建立连接;根据交换设备之间、交换设备与主机之间链路的生成时间、组件编号、组件位置、用户身份,重新组装为link实例对象,存入数据库,等待RpcServer建立相应的连接通路;
逆向转化是在用户登录Web前端后,用户的资源转化为Web前端可视化的图形,并展示出来;在逆向转化中,根据从数据库中获取到的该用户的Controller、Switch、Host、oflink、link实例对象的信息,并展示在Web前端中;
(2)消息请求模块
在用户确认提交拓扑后,通过消息请求机制处理用户请求,把用户通过Web前端下发的所有动作抽象为若干个请求(Request),进行发送;
消息请求机制定义了用户通过Web前端提交拓扑的请求格式与请求类型,定义方法如下:
判断用户提交拓扑时的状态,根据消息请求机制生成Request实例对象,并存入数据库,等待资源供给层调用;这样的消息请求机制保证了多用户并发提交拓扑时,资源供给层可以根据Request队列处理请求,也保证了资源的正确性与不同拓扑内资源的隔离性。同时,系统为每一个验证身份成功的用户维护一个请求消息队列,Java应用程序的主线程不断地从请求消息队列中获取请求,然后依次对请求进行处理(RequestHandler),这样就实现了通过请求消息来驱动Java应用程序的执行;Java应用程序接收到用户发送的请求(Request)时,首先,按照类型对请求进行解析,再把该请求放在应用程序的请求消息队列中去,然后通过消息循环处理该请求;这样做的好处就是请求的发送方只要把请求发送到应用程序的消息队列中去就可以马上返回处理其他工作,而不需要等待请求的接收方在处理消息完毕后才返回,这样就可以提高系统的并发性。通过这样的异步处理机制实现了多用户同时访问Web前端管理自己的拓扑。
在成功提交拓扑后,用户再次登陆Web前端时,拓扑状态轮询模块负责从后台获取该用户当前拓扑状态;如果该用户的拓扑处于正在创建、更新或删除的状态中,则用户不能进行接下来的操作,此时Web前端周期性从后台获取拓扑的最新状态,直到处理拓扑的操作完毕;此模块保证了单一用户拓扑资源的 正确性,避免用户重复提交拓扑导致的后台数据错误。同时,控制台访问模块为创建拓扑成功的用户提供了虚机vnc控制台的访问窗口,基于FlexIframe框架实现;用户在申请访问某控制器或主机的控制台界面后,Web前端向资源供给层发送该虚机的id信息,通过HTTPPost请求调用OpenStackNova API,获取到该虚机的vnc访问地址,Web前端在获取到该vnc访问地址后,FlexIframe组件将该vnc访问地址作为source实现对vnc控制台的访问。
远过程调用采用Http请求的方式,作为前后端数据流的传递通道;
资源供给中,OpenStack资源供给层使用kilo版本,因为OpenStack源码为Python,为了更好地服务java应用程序,使用Java语言封装了OpenStack的API。API包括Identity身份验证方法、Glance镜像管理方法、Nova虚机配额以及console url管理方法、Heat虚机管理方法以及Neutron网络管理方法。Web前端就可以通过发送HTTP请求的方式使用与编排OpenStack的计算与网络资源。RpcServer运行在OpenStack计算节点上,为上层提供远过程调用接口,由Python语言实现HTTP服务端。Java应用程序可以通过特定端口直接调用RpcServer子线程对远程主机进行操作。数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供Web前端查询使用。本方法使用的数据库是MySQL。
图2是本发明前端数据基于Cairngorm的传递流程图。应用Cairngorm框架,为了Web客户端可以被远程访问,基于网页的解决方案使用了Adobe Flex[5]技术。图2展示了框架各部分的工作流程,客户端界面由View(视图)组成,使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如鼠标点击,按钮按下以及拖拽等用户动作产生Event。这些Event被Front Controller“广播”并“监听”,Front Controller会将Event映射到Command。Command包括业务逻辑,创建所需Delegate,处理Delegate的相应请求,以及 更新存储在Model Locator中的数据。由于View是绑定到Model Locator中的数据上的,所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用Service并且将结果提交给Command,并调用远程数据然后将结果提交给Delegate。Flex构造并美化前端页面,为用户提供一个管理网络资源生命周期与监控网络节点状态的门户,并通过Blazeds[6]访问远程服务接口来实现与服务器端进行通信。其中Blazeds是一个基于服务器的Java远程调用和Web消息传递技术,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序能够相互传递消息。
图3是本发明可视化管理的工作流程图。首先,第一步是用户在Web端登陆界面验证身份信息,如果身份验证失败则不允许使用本系统创建网络拓扑。第二步是获取当前的虚网状态,当查询结果为Null、ACTIVE或DELETE时,才允许对虚网进行下一步的管理。第三步是开始对虚网整个生命周期的管理,包括创建、更新和删除。其中创建虚网既可以基于可视化界面的拖拽生成又可以直接选择创建例如FatTree、BiTree等经典拓扑。第四步是配置当前拓扑中的网络组件,可以对控制器、交换机、主机进行个性化的配置以满足实验或工程需求。第五步是提交拓扑,这时需要经过拓扑验证模块来验证用户是否创建了一个正确的拓扑。第六步是拓扑抽象模块,将用户提交的SDN网络拓扑抽象为资源供给层可以实现的对象并兼容SDN中的OpenFlow协议。第七步是消息请求模块,将用户的请求抽象为12种类型交由底层处理,以实现大规模多用户的并发操作。第八步是交由服务器后台去创建网络拓扑中的各个节点以及链路,并把处理的结果返回给前端。如果创建失败则继续管理虚网,创建成功则可以利用控制台访问模块以及配置节点来对网络节点例如主机、控制器进行下一步的操作。
图4是本发明拓扑状态轮询模块的具体流程图。第一步,用户在Web前端登录成功后,首先弹出顶层loading的gif图片,等待适当的虚网状态返回;第二步,根据用户的身份信息查询后台的数据库,找到相对应的虚网,并判断虚网的状态;第三步,如果虚网状态为“WAIT”,则说明用户的虚网正在进行创建、更新或删除的某一项操作中,此时前端依然显示loading的图片让用户继续等待,并以一定的时间间隔继续向后台查询该用户虚网的状态,即回到了第二步;第四步,如果虚网为空,或虚网状态为“ACTIVE”或“DELETE”则前端页面移除loading图片,用户进入操作界面;
图5是本发明请求消息机制的具体流程图。
第一步是获取当前用户的id信息以便于进一步获取该用户所关联的其他资源。第二步是利用虚网轮询模块获取到当前用户的虚网状态。第三步是创建拓扑模块。第四步是构造用户请求,根据当前的虚网状态,如果为空则生成一条请求创建或删除当前的虚网。如果用户的虚网状态此时不为空,则说明用户接下来对当前虚网做的一切改动都是更新操作,则生成相应更新组件数目的请求数。第五步是发送请求,资源供给层根据并发请求算法重定义当前的消息请求队列。第六步是请求处理模块,根据消息队列中的请求顺序逐条处理请求。
图6是本发明控制台访问模块的具体流程图。
第一步,用户创建拓扑并提交成功,或登录到已创建了拓扑账户;第二步,在展示拓扑中需要访问终端的组件上双击鼠标;第三步,在弹出菜单中选择“控制台”;第四步,用户界面顶层弹出loading的gif图片,用户进入等待;第五步,前端向后台发送该网络组件的身份信息,后台对OpenStack发送HTTP请求,调用OpenStack的Nova模块,获取该实例的vnc访问地址;第六步,将获取的vnc地址返回给前端;第七步,前端移除loading图片,给用户弹出新窗口展示该组件的 终端vnc访问窗口;第八步,用户操作完毕后,点击右上角图标关闭vnc窗口。
Claims (1)
1.一种基于Cairngorm框架的虚拟数据中心可视化管理方法,其特征在于,所述的基于Cairngorm框架的虚拟数据中心可视化管理方法包括Web前端、远过程调用和资源供给三部分;
Web前端包括拓扑抽象模块和消息请求模块,资源供给包括OpenStack与RpcServer和数据库三部分;
Web前端应用Cairngorm框架,即客户端界面由View组成,使用Flex的binding来显示Model Locator中包含的数据;
Web前端包括网页的构造和美化、逻辑处理两部分;
Flex负责网页的构造和美化,为用户提供一个管理拓扑资源生命周期与监控拓扑节点状态的门户,并通过Blazeds访问远程服务接口来实现与服务器端的Java应用程序进行通信,Blazeds是基于服务器的Java远程调用和Web进行消息传递的方法,使得服务器端的Java应用程序和运行在浏览器上的Flex应用程序相互传递消息;
ActionScript负责网页的逻辑处理,即实现Web端的逻辑功能以及与服务器端之间的数据交互;逻辑处理部分包括为用户的请求提供统一的接口,方便用户进行自定义编排SDN网络;
(1)拓扑抽象模块
用户通过可视化的Web界面以拖拽网络元件的方式来创建拓扑管理需求,拓扑经过接口的对象转化,转化为可处理的数据,再经过拓扑抽象模块依次进行拓扑信息采集子模块、拓扑验证子模块、对象转化子模块与数据处理子模块;
信息采集子模块负责收集转化后的可处理的数据,由ActionScript生成抽象的SDN网络组件;
拓扑验证子模块负责两方面的验证工作,一是用户提交的拓扑是否是一个且仅有一个连通图;二是用户提交的控制器、交换设备、主机、链路信息是否存在不合法的配置;拓扑验证子模块通过后,进入对象转化子模块进行拓扑抽象,由ActionScript语言实现,正向转化负责把用户在Web前端构建的拓扑转化为底层OpenStack可识别的资源,并生成各节点之间的连通关系;在正向转化中,根据控制器的生成时间、组件编号、组件位置、用户身份、控制器类型和控制器配额,重新组装为Controller实例对象,存入数据库吗,等待OpenStack调用并生成一台虚机,由于控制器需要访问ui界面,因此OpenStack给虚机分配一个浮动ip;根据交换设备的生成时间、组件编号、组件位置、用户身份、交换设备类型和浮动ip,重新组装为Switch实例对象,存入数据库,等待资源供给层调用,并利用Openvswitch生成网桥;根据主机的生成时间、组件编号、组件位置、用户身份、主机类型和主机配额,重新组装为Host实例对象,存入数据库,等待OpenStack调用并生成一台虚机;拓扑中的链路分为两种,根据控制器与交换设备之间链路的生成时间、组件编号、组件位置、用户身份、链路类型,重新组装为oflink实例对象,存入数据库,等待控制器与交换设备之间建立连接;根据交换设备之间、交换设备与主机之间链路的生成时间、组件编号、组件位置、用户身份,重新组装为link实例对象,存入数据库,等待RpcServer建立相应的连接通路;逆向转化是在用户登录Web前端后,用户的资源转化为Web前端可视化的图形,并展示出来;在逆向转化中,根据从数据库中获取到的该用户的Controller、Switch、Host、oflink、link实例对象的信息,并展示在Web前端中;
(2)消息请求模块
在用户确认提交拓扑后,通过消息请求机制处理用户请求,把用户通过Web前端下发的所有动作抽象为若干个请求,进行发送;
消息请求机制定义了用户通过Web前端提交拓扑的请求格式与请求类型,定义方法如下:
判断用户提交拓扑时的状态,根据消息请求机制生成Request实例对象,并存入数据库,等待资源供给层调用;同时,系统为每一个验证身份成功的用户维护一个请求消息队列,Java应用程序的主线程不断地从请求消息队列中获取请求,然后依次对请求进行处理,实现了通过请求消息来驱动Java应用程序的执行;Java应用程序接收到用户发送的请求时,首先,按照类型对请求进行解析,再把该请求放在应用程序的请求消息队列中去,然后通过消息循环处理该请求;
在成功提交拓扑后,用户再次登陆Web前端时,拓扑状态轮询模块负责从后台获取该用户当前拓扑状态;如果该用户的拓扑处于正在创建、更新或删除的状态中,则用户不能进行接下来的操作,此时Web前端周期性从后台获取拓扑的最新状态,直到处理拓扑的操作完毕;拓扑状态轮询模块保证了单一用户拓扑资源的正确性,避免用户重复提交拓扑导致的后台数据错误;同时,控制台访问模块为创建拓扑成功的用户提供了虚机vnc控制台的访问窗口,基于FlexIframe框架实现;用户在申请访问某控制器或主机的控制台界面后,Web前端向资源供给层发送该虚机的id信息,通过HTTPPost请求调用OpenStackNova API,获取到该虚机的vnc访问地址,Web前端在获取到该vnc访问地址后,FlexIframe组件将该vnc访问地址作为source实现对vnc控制台的访问;
远过程调用采用Http请求的方式,作为前后端数据流的传递通道;
资源供给中,OpenStack资源供给层使用kilo版本,OpenStack源码为Python,为了更好地服务java应用程序,使用Java语言封装了OpenStack的API;API包括Identity身份验证方法、Glance镜像管理方法、Nova虚机配额以及console url管理方法、Heat虚机管理方法以及Neutron网络管理方法;Web前端通过发送HTTP请求的方式使用与编排OpenStack的计算与网络资源;RpcServer运行在OpenStack计算节点上,为上层提供远过程调用接口,由Python语言实现HTTP服务端;Java应用程序通过特定端口直接调用RpcServer子线程对远程主机进行操作;
数据库部分主要是存储服务器端采集的SDN网络的相关信息,以供Web前端查询使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225860.9A CN107040416B (zh) | 2017-04-12 | 2017-04-12 | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225860.9A CN107040416B (zh) | 2017-04-12 | 2017-04-12 | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107040416A true CN107040416A (zh) | 2017-08-11 |
CN107040416B CN107040416B (zh) | 2019-12-27 |
Family
ID=59534466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710225860.9A Active CN107040416B (zh) | 2017-04-12 | 2017-04-12 | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107040416B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449214A (zh) * | 2018-03-21 | 2018-08-24 | 大连理工大学 | 一种基于Click的虚拟网元在线编排方法 |
CN109298915A (zh) * | 2018-10-31 | 2019-02-01 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的提供Openstack即服务的方法 |
WO2019154367A1 (zh) * | 2018-02-06 | 2019-08-15 | 北京龙腾佳讯科技股份公司 | 用于sdn网络的可视化实时交互方法和系统 |
CN110278235A (zh) * | 2018-03-16 | 2019-09-24 | 上海远动科技有限公司 | 基于云技术的scada移动监控桌面系统 |
CN111414232A (zh) * | 2020-03-19 | 2020-07-14 | 中国建设银行股份有限公司 | 虚拟机模板数据处理方法及装置 |
CN112350843A (zh) * | 2019-08-09 | 2021-02-09 | 烽火通信科技股份有限公司 | 一种基于虚拟组件的场景式割接方法和系统 |
CN112579518A (zh) * | 2020-12-24 | 2021-03-30 | 海光信息技术股份有限公司 | 网络拓扑结构的构建方法、访问方法及装置 |
CN113760886A (zh) * | 2020-10-26 | 2021-12-07 | 北京京东振世信息技术有限公司 | 提供数据服务的方法、装置、设备和计算机可读介质 |
CN114039858A (zh) * | 2021-10-25 | 2022-02-11 | 中国联合网络通信集团有限公司 | 一种算网资源融合方法、装置、设备及存储介质 |
CN114826915A (zh) * | 2021-01-27 | 2022-07-29 | 迪莲娜(上海)大数据服务有限公司 | 虚拟网络接口封装与调用方法、系统、介质及管理平台 |
CN114844790A (zh) * | 2022-03-30 | 2022-08-02 | 中国人民解放军战略支援部队信息工程大学 | 拟态微结构的可视化装置及方法 |
CN117234656A (zh) * | 2023-11-15 | 2023-12-15 | 苏州元脑智能科技有限公司 | 一种应用可视化显示的方法、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717095A (zh) * | 2015-03-17 | 2015-06-17 | 大连理工大学 | 一种集成多控制器的可视化sdn网络管理方法 |
CN105119996A (zh) * | 2015-09-01 | 2015-12-02 | 浪潮集团有限公司 | 一种基于云平台的资源复用方法 |
WO2016072996A1 (en) * | 2014-11-06 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Network policy graphs |
CN105809248A (zh) * | 2016-03-01 | 2016-07-27 | 中山大学 | 一种分布式人工神经网络在sdn上的配置和交互方法 |
-
2017
- 2017-04-12 CN CN201710225860.9A patent/CN107040416B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016072996A1 (en) * | 2014-11-06 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Network policy graphs |
CN104717095A (zh) * | 2015-03-17 | 2015-06-17 | 大连理工大学 | 一种集成多控制器的可视化sdn网络管理方法 |
CN105119996A (zh) * | 2015-09-01 | 2015-12-02 | 浪潮集团有限公司 | 一种基于云平台的资源复用方法 |
CN105809248A (zh) * | 2016-03-01 | 2016-07-27 | 中山大学 | 一种分布式人工神经网络在sdn上的配置和交互方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019154367A1 (zh) * | 2018-02-06 | 2019-08-15 | 北京龙腾佳讯科技股份公司 | 用于sdn网络的可视化实时交互方法和系统 |
CN110278235A (zh) * | 2018-03-16 | 2019-09-24 | 上海远动科技有限公司 | 基于云技术的scada移动监控桌面系统 |
CN108449214B (zh) * | 2018-03-21 | 2020-09-25 | 大连理工大学 | 一种基于Click的虚拟网元在线编排方法 |
CN108449214A (zh) * | 2018-03-21 | 2018-08-24 | 大连理工大学 | 一种基于Click的虚拟网元在线编排方法 |
CN109298915A (zh) * | 2018-10-31 | 2019-02-01 | 山东浪潮云信息技术有限公司 | 一种云计算环境下的提供Openstack即服务的方法 |
CN112350843B (zh) * | 2019-08-09 | 2022-02-08 | 烽火通信科技股份有限公司 | 一种基于虚拟组件的场景式割接方法和系统 |
CN112350843A (zh) * | 2019-08-09 | 2021-02-09 | 烽火通信科技股份有限公司 | 一种基于虚拟组件的场景式割接方法和系统 |
CN111414232A (zh) * | 2020-03-19 | 2020-07-14 | 中国建设银行股份有限公司 | 虚拟机模板数据处理方法及装置 |
CN111414232B (zh) * | 2020-03-19 | 2024-01-19 | 建信金融科技有限责任公司 | 虚拟机模板数据处理方法及装置 |
CN113760886B (zh) * | 2020-10-26 | 2023-09-01 | 北京京东振世信息技术有限公司 | 提供数据服务的方法、装置、设备和计算机可读介质 |
CN113760886A (zh) * | 2020-10-26 | 2021-12-07 | 北京京东振世信息技术有限公司 | 提供数据服务的方法、装置、设备和计算机可读介质 |
CN112579518A (zh) * | 2020-12-24 | 2021-03-30 | 海光信息技术股份有限公司 | 网络拓扑结构的构建方法、访问方法及装置 |
CN114826915A (zh) * | 2021-01-27 | 2022-07-29 | 迪莲娜(上海)大数据服务有限公司 | 虚拟网络接口封装与调用方法、系统、介质及管理平台 |
CN114826915B (zh) * | 2021-01-27 | 2024-04-19 | 迪莲娜(上海)大数据服务有限公司 | 虚拟网络接口封装与调用方法、系统、介质及管理平台 |
CN114039858A (zh) * | 2021-10-25 | 2022-02-11 | 中国联合网络通信集团有限公司 | 一种算网资源融合方法、装置、设备及存储介质 |
CN114039858B (zh) * | 2021-10-25 | 2023-08-22 | 中国联合网络通信集团有限公司 | 一种算网资源融合方法、装置、设备及存储介质 |
CN114844790A (zh) * | 2022-03-30 | 2022-08-02 | 中国人民解放军战略支援部队信息工程大学 | 拟态微结构的可视化装置及方法 |
CN114844790B (zh) * | 2022-03-30 | 2023-06-20 | 中国人民解放军战略支援部队信息工程大学 | 拟态微结构的可视化装置及方法 |
CN117234656A (zh) * | 2023-11-15 | 2023-12-15 | 苏州元脑智能科技有限公司 | 一种应用可视化显示的方法、系统、设备及存储介质 |
CN117234656B (zh) * | 2023-11-15 | 2024-02-20 | 苏州元脑智能科技有限公司 | 一种应用可视化显示的方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107040416B (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107040416A (zh) | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 | |
CN107133083B (zh) | 一种基于虚拟化技术的虚拟数据中心资源提供方法 | |
CN105429780B (zh) | 一种虚拟化网络服务业务自动生成和动态监控的方法 | |
Medved et al. | Opendaylight: Towards a model-driven sdn controller architecture | |
CN102760074B (zh) | 用于高负荷业务流程可扩展性的方法及其系统 | |
CN105809248B (zh) | 一种分布式人工神经网络在sdn上的配置和交互方法 | |
CN105024865B (zh) | 云联合即服务 | |
CN102571396B (zh) | 一种通讯网络系统及通讯设备的巡检子系统和巡检方法 | |
CN104967686B (zh) | 一种构建面型3s智慧服务商店系统及其设计方法 | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
WO2007059665A1 (fr) | Systeme et procede de configuration d'un dispositif de reseau | |
CN106022007A (zh) | 面向生物组学大数据计算的云平台系统及方法 | |
CN101815013B (zh) | 一种基于Ajax和Web服务技术的卫星应用系统运行监控方法 | |
CN106850589A (zh) | 一种管控云计算终端和云服务器运作的方法和装置 | |
CN105959347B (zh) | 一种基于p2p网络的全数字协同仿真系统通信方法 | |
CN108932588A (zh) | 一种前后端分离的水电站群优化调度系统及方法 | |
CN107370796A (zh) | 一种基于Hyper TF的智能学习系统 | |
CN106789432A (zh) | 基于自主可控云平台技术的测试系统 | |
CN110311798A (zh) | 一种管理虚拟资源的方法及装置 | |
CN105786611A (zh) | 一种分布式集群的任务调度方法及装置 | |
CN101324901A (zh) | 数据挖掘方法、平台和系统 | |
CN107818268A (zh) | 大数据平台的访问控制方法及服务器 | |
CN112149079A (zh) | 基于微服务架构的规划评审管理平台及用户访问授权方法 | |
CN108718244A (zh) | 一种用于多业务融合的参考系统及方法 | |
CN110476154A (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 |