[发明专利]一种简单网络管理协议管理应用层事务回滚方法无效
申请号: | 200610161851.X | 申请日: | 2006-12-06 |
公开(公告)号: | CN101197699A | 公开(公告)日: | 2008-06-11 |
发明(设计)人: | 苏春山 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/06 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 简单 网络 管理 协议 应用 事务 方法 | ||
技术领域
本发明涉及一种在SNMP管理框架中管理者(Manager)实现应用层事务回滚的方法,尤其涉及以SNMP为管理接口的网络、网元配置管理领域。
背景技术
SNMP(简单网络管理协议)是网络管理中基于UDP报文的一种管理协议,用于管理者(Manager)和代理(Agent)之间进行简单地管理操作。
在SNMP管理协议中共有get、getnext、set、get-response、trap五种消息,其中的get、getnext、set操作是Manager发送给Agent的消息,用于设置或获取SNMP的管理变量。Manager对网元设备进行管理时就是通过使用上述操作对网元进行各种读和写操作的。
不过,由于SNMP协议是简单的管理协议,除了每个原子操作(get、getnext、set)SNMP协议栈实现了会话事务处理外,由这些原子操作组成的应用层事务则没有相应的事务处理机制。而事务处理机制的核心是事务回滚机制。这样就往往造成了应用层事务回滚每个SNMP应用程序都要自行处理,缺乏统一的处理机制。既不利于软件的维护,也不利于增强软件可靠性。
发明内容
本发明所要解决的技术问题是提供一种简单网络管理协议管理应用层事务回滚方法,为SNMP Manager管理框架提供统一的应用事务回滚机制,便于系统维护,提高系统可靠性。
为了解决上述技术问题,本发明提供了一种简单网络管理协议管理应用层事务回滚方法,所述简单网络管理协议以下简称SNMP,涉及SNMP管理者和SNMP代理,以及一个用于存放回滚操作的堆栈,所述方法包括以下步骤:
(a)SNMP管理者准备向SNMP代理下发SNMP设置命令;
(b)SNMP管理者构造所述SNMP设置命令的反操作命令,将构造好的命令压入堆栈;
(c)所述SNMP管理者向所述SNMP代理下发SNMP设置命令;
(d)所述SNMP管理者判断所述SNMP设置命令是否执行成功,如果是,执行下一步,否则,执行步骤(f);
(e)所述SNMP管理者判断全部SNMP设置命令是否下发完毕,如果是,结束,否则,返回步骤(a);
(f)使用堆栈弹出方法,将堆栈中的命令按后进先出依次取出,并执行取出的命令,判断堆栈中是否还有命令,如果是,返回本步骤。
进一步地,上述方法还可具有以下特点:所述堆栈为Java Stack,所述压入堆栈采用Stack.push(),所述取出堆栈采用Stack.pop()。
进一步地,上述方法还可具有以下特点:在所述步骤(a)进一步包括:准备建立SNMP通讯的对象,构造好下发命令的对象标识符以及对应的SNMP变量。
采用本发明所述机制,与现有技术相比,弥补了SNMP Manager管理框架缺乏应用层事务处理的不足,达到了在SNMP应用中简捷使用事务进行处理的效果,节省了网管系统研发的成本,降低软件的复杂度,大大提高了软件事务处理的通用性和可靠性。
附图说明
图1是本实施例SNMP应用层事务回滚流程图。
具体实施方式
本实施例的思路是:利用堆栈先入后出的特性,将每个SNMP Manager对Agent的原子操作的相反动作记录在堆栈中,如果Manager需要取消以前所做的SNMP操作——回滚,则依次执行堆栈中存储的SNMP操作,从而实现对以前SNMP操作的回滚。
下面对技术方案的具体实施作进一步的详细描述,参见附图1,本实施例所述SNMP Manager应用事务回滚方法如下:
步骤110,为存储SNMP回滚命令建立一个堆栈,比如java的Stack对象;
步骤120,Manager准备下发set命令给Agent;
一般是建立SNMP通讯的对象,比如SnmpTarget(SNMP对象),并构造好下发命令的OID(对象标识符),以及对应的SnmpVar(SNMP变量)。
步骤130,Manager构造所述set命令的反操作命令;
比如第二步的操作是在Snmp Agent中创建一个行实例,则对应的回滚操作则是删除这个行实例。
步骤140,将构造的回滚命令压入堆栈;
需要使用堆栈的压栈方法,比如Stack.push(),把该回滚命令存储到堆栈中。
步骤150,Manager向Agent下发set命令;
步骤160,Manager判断set命令是否执行成功,如果是,执行下一步,否则执行步骤180;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610161851.X/2.html,转载请声明来源钻瓜专利网。