CN104468418B - 中央数据库cdb实现方法及基于cdb的sdn交换机 - Google Patents
中央数据库cdb实现方法及基于cdb的sdn交换机 Download PDFInfo
- Publication number
- CN104468418B CN104468418B CN201410797890.3A CN201410797890A CN104468418B CN 104468418 B CN104468418 B CN 104468418B CN 201410797890 A CN201410797890 A CN 201410797890A CN 104468418 B CN104468418 B CN 104468418B
- Authority
- CN
- China
- Prior art keywords
- cdb
- module
- business
- sdn switch
- data service
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明揭示了一种中央数据库CDB实现方法及基于CDB的SDN交换机,其中CDB实现方法包括:首先,定义CDB语法,即根据交换机的要求,抽象出多种类型的CDB实体,每种CDB实体相当于一个节点,将所有类型的节点组成一个层次化的目录树;然后,根据CDB语法定义CDB概要;最后,根据CDB概要自动生成C代码的数据库API。实现后的CDB可以提供一种CDB配置服务和CDB数据同步服务。本发明的CDB提供了统一的接口格式,提高了SDN交换机南向编程接口的开放性和兼容性,且比传统数据库运行效率高。
Description
技术领域
本发明涉及SDN交换机技术领域,尤其是涉及一种中央数据库CDB实现方法及基于CDB的SDN交换机。
背景技术
传统的网络设备是一个封闭的系统,设备商包揽了整个设备的硬件和软件,用户无法或者很难对其进行编程。随着网络设备的用户需求变化日趋频繁,传统封闭的网络设备所提供的编程接口无法满足这些新的需求。网络设备必须进行变革以适应新的需求,于是SDN(软件定义网络)的概念出现了。
SDN的核心是让客户的应用程序参与到网络控制中,并起到控制作用,而不是由网络设备自行决定网络转发行为。ONF(Open Network Foundation,开放式网络基金会)提出SDN的典型架构分为三层,如图1所示,分别为应用层、控制层和基础设备层,应用层用于提供各种不同的业务和应用,控制层用于负责数据平面资源的编排、维护网络拓扑、状态信息,基础设备层用于负责数据转发、状态收集。
交换机作为一种基础设备,在SDN网络中,最重要的一个需求是提供开放的南向编程接口。现有传统交换机支持的特性非常丰富,各个特性各自为阵,缺乏整齐划一的接口,如果把这些特性列在一个平面,比较难检索,且没有采用数据库技术,程序自行维护私有的数据结构来保存数据。而且,现有的数据库虽然提供了固定规则的编程接口(Create/Update/Delete/Read),且数据库里面的数据都整齐划一的保存在表(Table)中,但一般开销比较大,且比原生C代码效率低很多不适合应用到交换机之类的嵌入式设备上。
鉴于现有技术没有统一的机制产生结构化的南向编程接口,而传统的数据库效率比原生C代码低很多。因此需要研究出一种新的数据库,以保证其软件效率和SDN交换机南向编程接口的统一性。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种目录树结构的中央数据库CDB实现方法,以及基于该CDB(中央数据库)的SDN交换机,由该CDB提供相应的配置服务和数据同步服务,通过定义一套类数据库的语法来产生原生C代码,这套代码能提供类数据库的南向编程接口,以保证了南向编程接口的统一性。
为实现上述目的,本发明提出如下技术方案:一种目录树结构的中央数据库CDB实现方法,包括以下步骤:
定义CDB语法;
根据所述CDB语法定义CDB概要;
根据所述CDB概要自动生成C代码的数据库API。
优选地,所述定义CDB语法过程包括:
根据交换机的要求,抽象出多种类型的CDB实体,每种所述CDB实体相当于一个节点,所述节点包括目录、表、结构和动作;
将所有类型的节点组成一个层次化的目录树。
本发明还提出另一技术方案:一种基于中央数据库的SDN交换机,所述SDN交换机包括用户接口模块、配置客户端库、中央数据服务模块、CDB自动构建模块,业务模块和硬件适配模块,所述CDB自动构建模块向所述中央数据服务模块和业务模块内分别构建CDB和本地CDB,所述中央数据服务模块内的CDB存储的业务为所有所述业务模块内的本地CDB存储业务的全集,当所述业务模块重启或升级时,所述中央数据服务模块内的CDB提供数据给所述业务模块,使其恢复到原来的配置和状态。
优选地,所述SDN交换机还包括与所述中央数据服务模块通信的客户应用模块。
优选地,所述用户接口(UI)模块包括命令行UI、网页(WEB)UI、简单网络管理协议(SNMP)UI和南向接口(SBI)UI中的一种或几种组合。
本发明实现的SDN交换机可以提供两种服务,一种是:CDB配置服务,另一种是CDB数据监控服务,其中提供的CDB配置过程,包括以下步骤:
所述用户接口模块通过配置客户端库访问所述中央数据服务模块,下一个配置业务;
所述中央数据服务模块将所述配置业务转发给所述业务模块进行相应的业务逻辑处理;
在所述业务模块内若配置成功,则更新本地中央数据库,并将配置结果依次返回给所述中央数据服务模块和用户接口模块;
所述用户接口模块将接收到的所述配置结果显示给用户。
优选地,所述业务模块进行的业务逻辑处理包括参数检查、配置校验、资源检查、下硬件表项。
SDN交换机提供的CDB数据监控,包括以下步骤:
所述客户应用向所述中央数据服务模块订阅监控数据;
所述硬件适配模块检测到监控数据的变化状态,并通知给所述业务模块;
所述业务模块做相应的业务处理,然后将新的数据状态更新到本地中央数据库,并同步通知给所述中央数据服务模块;
所述中央数据服务模块发现所述客户应用订阅了监控的数据,于是通知客户应用;
所述客户应用收到监控数据的变化状态消息,做相应的自动化处理。
优选地,所述监控数据包括端口的链路状态。
优选地,所述客户应用做的自动化处理包括发送告警、做主备切换。
本发明的有益效果是:
1、本发明在框架上统一了接口格式,提高了SDN南向编程接口的开放性和兼容性,而且业务逻辑风格统一,提高了代码的可维护性。
2、本发明客户应用模块可以订阅CDB的数据变化,从而监控数据变化,实现自动化操作的目的。
3、本发明自动化产生C代码,比传统数据库运行效率高,而且避免了人为编码出错的可能性,提高了开发效率和产品质量。
4、本发明中央数据服务模块中保存的数据可以用于业务模块重启后的数据恢复,很方便地实现高可靠性的需求。
附图说明
图1是现有SDN的典型架构示意图;
图2是本发明CDB节点组成的目录树的结构示意图;
图3是本发明实施例一基于CDB的SDN交换机的模块结构示意图;
图4是本发明实施例二基于CDB的SDN交换机的模块结构示意图;
图5是本发明基于SDN交换机的CDB配置过程的流程示意图;
图6是本发明基于SDN交换机的CDB数据同步过程的流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明揭示了一种目录树结构的中央数据库CDB实现方法,包括以下步骤:
步骤一,定义CDB语法;
在CDB中,每一种CDB实体都可看做一个节点(Node)。结合交换机的需求,本发明实施例抽象出四种类型的节点,分别是目录(Directory,简写DIR)、表(Table,简写TBL)、结构(Datastructure,简写DS)和动作(Action,简写ACT)。具体地,目录类似文件系统的目录,里面不保存数据;表由一组域(Field)或结构组成;结构由一组紧密相关的域组成,结构必须附属于一个表;动作并不保存数据,仅表示一个即时的动作。表和结构中的域的概念为:存放数据的基本单元,表或者结构的成员变量,域可以是基本数据类型INT(整数),STRING(字串),BITMAP(位图),也可以是其他实体的一个引用。
其中,除目录外,表和结构可提供所有组合操作加(Create)、改(Update)、删(Delete)、读(Read)中的任意一种,动作只提供Update操作。
将CDB中的四个节点组成一个层次化的目录树,如图2所示,所有的节点都挂在cdb这个根目录下,最后生成全路径,如全路径cdb/interface/l2if、cdb/interface/lag、……,方便配置CDB配置服务的使用者索引。
步骤二,根据CDB语法定义CDB概要;
步骤三,根据CDB概要自动生成C代码的数据库API;
具体地,首先输入TBL/DS的概要(schema)文件,Schema文件定义包括几个部分:1、名称,2、数据存储算法:包括哈希(HASH)、阵列(ARRAY)、链表(LIST)、全局(GLOBAL)等,3、对于非GLOBAL的,必须有一个KEY域定义,这个KEY定义用于查找TBL/DS的某一个元素,4、TBL/DS的域定义,每个域包括数据类型、名称、读写属性。然后,输出为define.h文件,api.h文件和api.c文件,其中define.h文件包括为该TBL/DS的数据结构定义,api.h/api.c为该TBL/DS的API接口,包括add,delete,set,get,dump(增加,删除,修改,获取,显示)函数。最后,自动生成C代码,实现了类数据库API,而且保证了代码的执行效率。
本发明基于实现的CDB还提供了一种SDN交换机,如图3所示,包括包括用户接口模块、配置客户端库、中央数据服务模块、CDB自动构建模块(图未示)、业务模块和硬件适配模块,用户接口模块可以是命令行UI、web UI、SNMP UI和SBI UI中的一种或几种组合,也可以是其他用户接口模块。用户接口模块通过配置客户端库访问中央数据服务模块。
CDB自动构建模块用于向中央数据服务模块和业务模块内分别自动构建CDB和本地CDB,中央数据服务模块内的CDB存储的业务为所有业务模块内本地CDB存储业务的全集,这样,当业务模块重启或升级时,中央数据服务模块内的CDB提供数据给业务模块,使其恢复到原来的配置和状态,这样保证本地CDB存储的数据与中央数据服务模块的数据是一致的。
更进一步地,如图4所示,本发明的SDN交换机还包括与中央数据服务模块通信的客户应用模块,用于订阅需要监控的数据。
本发明实现的CDB提供了两种服务,一种是配置服务,所有的配置操作都通过组合操作CURD(Create,Update,Read,Delete)+CDB(中央数据库)实体来完成的,如:
具体地,如图5所示,CDB配置过程包括以下步骤:
用户接口模块通过配置客户端库访问中央数据服务模块,下一个配置业务;
中央数据服务模块将配置业务转发给业务模块进行相应的业务逻辑处理,如做参数检查、配置校验、资源检查、下硬件表项等处理;
在业务模块内若配置成功,则更新本地中央数据库,若失败,则不更新本地CDB,并将配置成功或失败的结果依次返回给中央数据服务模块和用户接口模块;
用户接口模块将接收到的配置结果显示给用户。
具体地,如用户接口模块下的配置业务为:
a)、读vlan 10的name属性
输入配置操作:cdbctl read/cdb/l2/vlan/10/name
输出:/name=VLAN0010;
b)、修改vlan 10的name属性
输入配置操作:cdbctl update/cdb/l2/vlan/10/name/newvlanname;
c)、再读vlan 10的name属性,已经更新
输入配置操作:cdbctl read/cdb/l2/vlan/10/name
输出:/name=newvlanname。
CDB提供的另一种服务是CDB数据同步服务,这样,本发明基于该CDB的SDN交换机对应可以实现CDB数据监控过程,实现过程具体如图6所示,包括以下步骤:
客户应用向中央数据服务模块订阅监控数据;
硬件适配模块检测到监控数据的变化状态,并通知给业务模块;
业务模块做相应的业务处理,然后将新的数据状态更新到本地中央数据库,并同步通知给中央数据服务模块;
中央数据服务模块发现客户应用订阅了监控的数据,于是通知客户应用;
客户应用收到监控数据的变化状态消息,做相应的自动化处理。
其中,上述步骤:业务模块做相应的业务处理,然后将新的数据状态更新到本地中央数据库,并同步通知给中央数据服务模块,即为CDB提供的数据同步服务。
CDB提供的同步服务有两方面用途:一方面,跨进程通信,当一个TBL的数据发生变化时,其他订阅了该TBL的进程会收到该TBL变化的通知和数据,从而进行相应的业务逻辑处理;另一方面,保存业务模块的实时数据,并在业务模块出错重启或升级重启时,提供数据以让新启动的业务模块恢复到原来的配置和状态。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (6)
1.一种基于目录树结构的中央数据库的SDN交换机,所述基于目录树结构的中央数据库CDB实现方法包括:
定义CDB语法,所述定义CDB语法过程包括:
根据交换机的要求,抽象出多种类型的CDB实体,每种所述CDB实体相当于一个节点,所述节点包括目录、表、结构和动作;
将所有类型的节点组成一个层次化的目录树;
根据所述CDB语法定义CDB概要;
根据所述CDB概要自动生成C代码的数据库API;
其特征在于,所述SDN交换机包括用户接口模块、配置客户端库、中央数据服务模块、CDB自动构建模块、业务模块、硬件适配模块和与所述中央数据服务模块通信的客户应用模块,所述用户接口模块通过配置客户端库访问中央数据服务模块;所述CDB自动构建模块向所述中央数据服务模块和业务模块内分别构建CDB和本地CDB,所述中央数据服务模块内的CDB存储的业务为所有所述业务模块内的本地CDB存储业务的全集,当所述业务模块重启或升级时,所述中央数据服务模块内的CDB提供数据给所述业务模块,使其恢复到原来的配置和状态,所述SDN交换机提供CDB数据监控,所述CDB数据监控过程包括以下步骤:
所述客户应用模块向所述中央数据服务模块订阅监控数据;
所述硬件适配模块检测到监控数据的变化状态,并通知给所述业务模块;
所述业务模块做相应的业务处理,然后将新的数据状态更新到本地中央数据库,并同步通知给所述中央数据服务模块;
所述中央数据服务模块发现所述客户应用模块订阅了监控的数据,于是通知客户应用模块;
所述客户应用模块收到监控数据的变化状态消息,做相应的自动化处理。
2.根据权利要求1所述的SDN交换机,其特征在于,所述用户接口模块包括命令行用户接口、网页用户接口、简单网络管理协议用户接口和SBI用户接口的一种或几种组合。
3.根据权利要求1所述的SDN交换机,其特征在于,所述SDN交换机提供CDB配置,所述CDB配置过程包括以下步骤:
所述用户接口模块通过配置客户端库访问所述中央数据服务模块,下一个配置业务;
所述中央数据服务模块将所述配置业务转发给所述业务模块进行相应的业务逻辑处理;
在所述业务模块内若配置成功,则更新本地中央数据库,并将配置结果依次返回给所述中央数据服务模块和用户接口模块;
所述用户接口模块将接收到的所述配置结果显示给用户。
4.根据权利要求3所述的SDN交换机,其特征在于,所述业务模块进行的业务逻辑处理包括参数检查、配置校验、资源检查、下硬件表项。
5.根据权利要求1所述的SDN交换机,其特征在于,所述监控数据包括端口的链路状态。
6.根据权利要求1所述的SDN交换机,其特征在于,所述客户应用模块做的自动化处理包括发送告警、做主备切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410797890.3A CN104468418B (zh) | 2014-12-19 | 2014-12-19 | 中央数据库cdb实现方法及基于cdb的sdn交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410797890.3A CN104468418B (zh) | 2014-12-19 | 2014-12-19 | 中央数据库cdb实现方法及基于cdb的sdn交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468418A CN104468418A (zh) | 2015-03-25 |
CN104468418B true CN104468418B (zh) | 2018-01-30 |
Family
ID=52913812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410797890.3A Active CN104468418B (zh) | 2014-12-19 | 2014-12-19 | 中央数据库cdb实现方法及基于cdb的sdn交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468418B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172032B (zh) * | 2017-05-10 | 2020-07-21 | 北京邮电大学 | 一种基于南向接口协议的通信方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804885A (zh) * | 2006-01-18 | 2006-07-19 | 刘铁桥 | 公安移动数字警务管理系统 |
CN102254022A (zh) * | 2011-07-27 | 2011-11-23 | 河海大学 | 一种面向多数据类型信息资源元数据的共享方法 |
-
2014
- 2014-12-19 CN CN201410797890.3A patent/CN104468418B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804885A (zh) * | 2006-01-18 | 2006-07-19 | 刘铁桥 | 公安移动数字警务管理系统 |
CN102254022A (zh) * | 2011-07-27 | 2011-11-23 | 河海大学 | 一种面向多数据类型信息资源元数据的共享方法 |
Non-Patent Citations (1)
Title |
---|
"基于C语言的通用数据库接口设计";王保山;《铁路计算机应用 研究与开发》;20060531;第15卷(第5期);第10-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104468418A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107579931B (zh) | 一种基于Kubernetes的区块链即服务资源适配方法 | |
US9703890B2 (en) | Method and system that determine whether or not two graph-like representations of two systems describe equivalent systems | |
CN103297275B (zh) | Web网管客户端模块动态发现与加载方法 | |
CN109947773A (zh) | 在多租户数据库系统中部署对键模式的改变 | |
CN103793514B (zh) | 数据库同步方法及数据库 | |
US20040128327A1 (en) | System and method for synchronizing data of wireless devices | |
CN102508722B (zh) | 一种嵌入式环境下的进程间通信方法 | |
CN104158692A (zh) | 基于xml实现家庭网关数据配置管理的方法 | |
CN103780497B (zh) | 一种云平台下可扩展的分布式协调服务管理方法 | |
CN102364894A (zh) | 一种配置数据文件的下发方法及网管设备 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN106164897A (zh) | 用于寄存内存数据库的系统及方法 | |
US20120254849A1 (en) | Ontology updating apparatus, method and system | |
US20170270157A1 (en) | TCP/IP Network Automation and Orchestration Tools | |
CN106843844A (zh) | 一种自定义视图的展示装置 | |
CN110389766A (zh) | HBase容器集群部署方法、系统、设备及计算机可读存储介质 | |
CN108446327A (zh) | 业务系统动态生成方法、装置、计算机设备及存储介质 | |
Hong et al. | Netgraph: An intelligent operated digital twin platform for data center networks | |
US20130227568A1 (en) | Systems and methods involving virtual machine host isolation over a network | |
US20070088756A1 (en) | Data consolidation | |
CN109508319A (zh) | 一种3d跨平台资源管理系统和方法 | |
CN110490781A (zh) | 一种基于云平台的ppt备授课系统及方法 | |
CN109343858A (zh) | 一种基于服务端渲染的自动建站容器部署系统及其工作方法 | |
CN104468418B (zh) | 中央数据库cdb实现方法及基于cdb的sdn交换机 | |
CN114168117A (zh) | 一种基于设计器的信创低代码开发工具和存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, industrial park, Suzhou, Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |