一种交换机管理软件架构的制作方法

文档序号:12037672阅读:539来源:国知局

本发明涉及交换机技术领域,具体提供一种交换机管理软件架构。



背景技术:

计算机具有存储信息量大,使用者获取信息方便快捷等优点,受到广泛的应用,特别是随着社会及经济的飞速发展,计算机的应用领域越来越广泛,给社会的通信带来很大的方便。交换机是一种在通信系统中完成信息交换功能的设备。交换机在组建网络时需要进行一些配置和管理工作,其配置、管理的简易型在一定程度上决定着用户的体验。由此可见,交换机的管理软件的开发在交换机软件开发中占据重要地位。在实际的产品开发过程中,由于更换硬件平台或者交换机管理软件需求的变化,会给交换机软件开发工作带来更多的工作量,因此急需一种能够节约产品开发成本的交换机管理软件架构设计。



技术实现要素:

本发明的技术任务是针对上述存在的问题,提供一种能够节约产品开发成本,提高工作效率,通用性强,可扩展性强的交换机管理软件架构。

为实现上述目的,本发明提供了如下技术方案:

一种交换机管理软件架构,由ui层、命令解析层和命令执行代理层构成:ui层包括gui和cli,提供给用户操作接口层,获取用户操作命令;命令解析层用于解析ui层传递来的操作命令,并封装成统一的操作命令;命令执行代理层为ui层、命令解析层的统一抽象层,接收命令解析层发来的操作命令,并解析操作命令后调用相应硬件平台的管理、配置实现交换机的管理。

所述ui(userinterface)即用户界面,gui(graphicaluserinterface)即图形用户界面,cli(command-lineinterface)即命令行界面。

所述ui层是比较独立的,主要负责和用户的交互,注重的是用户使用流程设计和用户体验。在结构上,ui层具有较高的模块化,可根据不同需求快速部署用户交互流程和ui风格。

所述命令解析层用于解析用户输入的指令,引导用户正确操作以及用户输入错误时给予友好的提示信息。

所述命令执行代理层对上层来说提供统一的操作api,api一般是由c语言编写,屏蔽了不同硬件、软件平台的差异性,对于下层来说,根据不同平台提供不同的接口,以满足软件的可移植性和扩展性。

本发明中,为管理用户和交换机配置信息,使用了嵌入式数据库sqlite。将交换机配置信息存在于交换机芯片的内存中,配置信息在交换机掉电后会丢失,因此需要将用户配置的信息保存到非易失性存储器里,本发明中存储到norflash中,使用嵌入式数据库sqlite将交换机配置信息保存,在系统上电时,读取该数据库内容用于配置交换机。使用sqlite数据库可以简化交换机用户管理和交换机配置信息的管理,主要包括交换机用户的增、删、改、查以及交换机配置信息的保存、修改、导入、导出等。

工作过程中,通过gui、cli获取用户的操作命令,命令解析层解析命令并封装成统一的操作命令传递给命令执行代理层,命令执行代理层接收命令解析层发来的操作命令,解析此操作命令后调用相应硬件平台的管理、配置api实现交换机的管理。

所述交换机管理软件架构可以兼容常见的交换芯片的管理、配置,层内高内聚,层间低耦合,具有跨平台性、软件可扩展性,可以高效地应对交换机管理软件的需求变化,方便地移植到新的硬件平台,对快速开发交换机产品具有重要意义,并且该设计方法简单、高效,具有很强的实用性,且易于推广。

作为优选,所述ui层的gui采用前端、后端程序低耦合设计,即静态页面和动态页面相分离,前端使用html、css语言编写,后端处理使用php脚本语言。

使用jqueryui前端框架进行gui开发。

gui基本的前端交互和验证采用javascript。

作为优选,gui使用webserver提供web服务,并使用php脚本语言解析前端ui层传递来的操作指令。

作为优选,所述webserver使用apacheweb服务器。

作为优选,所述ui层的cli采用开源库gnureadline,实现命令自动补全、命令自动提示、命令历史记录功能。

cli使用c语言开发。

所述cli支持标准的bashshell脚本程序,支持串口、telnet、ssh等。

作为优选,cli解析程序使用cliserver解析操作命令,并封装成统一的格式发送到命令执行代理层。

cli后台服务程序有sshserver、telnetserver等。

作为优选,所述命令解析层解析ui层传递来的操作命令,封装成统一的socketapi传递给命令执行代理层。

作为优选,命令执行代理层接收命令解析层发来的socketapi,解析socketapi后调用相应硬件平台的管理、配置api实现交换机的管理。

配置管理交换机的api一般是由c语言编写的,gui的后端服务程序使用php编写,这样存在不同编程语言接口调用问题,本发明中使用socket作为gui的后端服务程序和交换机底层管理程序的通讯方法。cli方式下,也使用socket通讯接口和底层配置交换机底层管理程序进行通讯,在整个软件架构上保持了高度的同一性。

与现有技术相比,本发明的交换机管理软件架构具有以下突出的有益效果:所述的交换机管理软件架构,具有跨平台性、软件可扩展性,可以高效地应对交换机管理软件的需求变化,方便地移植到新的硬件平台,对快速开发交换机产品具有重要意义,并且该设计方法简单、高效,具有很强的实用性,且易于推广。

附图说明

图1是本发明所述交换机管理软件架构的示意图。

具体实施方式

下面将结合附图和实施例,对本发明的交换机管理软件架构作进一步详细说明。

实施例

如图1所示,本发明的交换机管理软件架构由ui层、命令解析层和命令执行代理层构成。

ui层包括gui和cli,提供给用户操作接口层,获取用户操作命令。ui层的gui采用前端、后端程序低耦合设计,即静态页面和动态页面相分离。gui前端使用html、css进行设计,基本的前端交互和验证采用javascript。cli支持标准的bashshell脚本程序,使用c语言开发,支持串口、telnet、ssh等,采用gnureadline开源库,实现命令自动补全、命令自动提示、命令历史记录等功能。ui层主要负责和用户的交互,注重用户使用流程设计和用户体验。在结构上,ui层具有较高的模块化,可根据不同需求快速部署用户交互流程和ui风格。

命令解析层将ui层传过来的命令解析并封装成统一的socketapi格式发送给命令执行代理层。命令解析层设有webserver和cliserver,其中gui通过webserver提供web服务,并使用php脚本语言解析ui层传入的命令,webserver使用apacheweb服务器;cli通过cliserver进行解析命令,并转换成统一的socketapi格式发送到命令执行代理层。

命令执行代理层为ui层、命令解析层的统一抽象层,接收命令解析层发来的socketapi,解析socketapi后调用相应硬件平台的管理、配置api实现交换机的管理。命令执行代理层对上层提供统一的操作api,对下层根据不同平台提供不同的接口。

本发明中,为管理用户和交换机配置信息,使用了嵌入式数据库sqlite,将用户配置的信息保存到norflash中,使用嵌入式数据库sqlite将交换机配置信息保存,在系统上电时,读取该数据库内容用于配置交换机。使用sqlite数据库可以简化交换机用户管理和交换机配置信息的管理,主要包括交换机用户的增、删、改、查以及交换机配置信息的保存、修改、导入、导出等。

本发明的交换机管理软件的架构的工作过程为:

(一)通过gui、cli获取用户的操作命令;

(二)命令解析层解析命令并转换成统一的socketapi格式传递给命令执行代理层;

(三)命令执行代理层接收命令解析层发来的socketapi,解析此socketapi后调用相应硬件平台的管理、配置api实现交换机的管理。

命令解析层和命令执行代理层之间使用的socketapi格式见表1:

表1

下面以web界面操作添加一个vlan为例,详细说明该交换机管理软件架构的设计工作流程。web界面接收到用户添加一个新的vlan的执行,通过web前端填写web前端的表单,填写内容为新建vlan的id号,然后点击表单里的添加vlan按钮。web前端页面的表单内容会发送到web后端的aphache服务器,服务器接收到前端页面发来的表单请求,会调用相应的php程序解析此表单的内容,提取出表单中添加vlan请求以及添加vlan所需要的vlanid参数。提取出参数后封装成socketapi,内容为:add_vlan:vlan_id。通过标准的socket编程将此socketapi发送到命令执行代理层,解析socketapi,并转换成具体平台管理交换机的api。实际平台的api为bcm_create(0,vlan_id)(此处以博通交换芯片为例,使用博通的交换芯片管理api)。到此,添加一个新的vlan的过程结束。

以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

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