一种简单网络管理协议管理应用层事务回滚方法

文档序号:7973789阅读:242来源:国知局
专利名称:一种简单网络管理协议管理应用层事务回滚方法
技术领域
本发明涉及一种在SNMP管理框架中管理者(Manager)实现应用层事 务回滚的方法,尤其涉及以SNMP为管理接口的网络、网元配置管理领域。
背景技术
SNMP (简单网络管理协议)是网络管理中基于UDP才艮文的一种管理协 议,用于管理者(Manager)和代理(Agent)之间进行简单地管理操作。
在SNMP管理协议中共有get、 getnext、 set、 get-response、 trap五种消 息,其中的get、 getnext、 set操作是Manager发送给Agent的消息,用于i殳 置或获取SNMP的管理变量。Manager对网元设备进行管理时就是通过使 用上迷操作对网元进行各种读和写操作的。
不过,由于SNMP协议是简单的管理协议,除了每个原子操作(get、 getnext、 set) SNMP协议栈实现了会话事务处理外,由这些原子操作组成的 应用层事务则没有相应的事务处理机制。而事务处理机制的核心是事务回滚 机制。这样就往往造成了应用层事务回滚每个SNMP应用程序都要自行处 理,缺乏统一的处理机制。既不利于软件的维护,也不利于增强软件可靠性。

发明内容
本发明所要解决的技术问题是提供一种简单网络管理协议管理应用层 事务回滚方法,为SNMP Manager管理框架提供统一的应用事务回滚机制, 便于系统维护,提高系统可靠性。
为了解决上述技术问题,本发明提供了 一种简单网络管理协议管理应用
层事务回滚方法,所述简单网络管理协议以下简称SNMP,涉及SNMP管理 者和SNMP代理,所述方法包括以下步骤
(a ) SNMP管理者向SNMP代理下发SNMP设置命令前,构造所述设 置命令反操作的SNMP命令并将其压入堆栈中;
(b) 所迷SNMP管理者向SNMP代理下发SNMP设置命令;
(c) 所述SNMP管理者判断所述命令是否执行成功,如果命令执行失 败,则将堆栈中的命令按后进先出依次取出并执行,完成回滚。
进一步地,上述方法还可具有以下特点所述堆栈为Java Stack,所述 压入堆栈采用Stack.push(),所述取出堆栈采用Stack.pop()。
进一步地,上述方法还可具有以下特点在所述步骤(a)中,在构造 所述设置命令的反操作命令前,先进行下发SNMP设置命令的准备,包括 准备建立SNMP通讯的对象,构造好下发命令的对象标识符以及对应的 SNMP变量。
进一步地,上述方法还可具有以下特点在所述步骤(c)中,如果所 述命令执行成功,则判断全部设置命令是否下发完毕,如果是,结束,否则, 返回步骤(a)。
进一步地,上述方法还可具有以下特点在所述步骤(c)中,执行堆 栈中的命令后判断堆栈中是否还有SNMP设置命令的反操作命令,如果有, 继续从堆栈中取出命令并执行,直到全部执行完毕。
采用本发明所述机制,与现有技术相比,弥补了 SNMP Manager管理框 架缺乏应用层事务处理的不足,达到了在SNMP应用中筒捷使用事务进行 处理的效果,节省了网管系统研发的成本,降低软件的复杂度,大大提高了 软件事务处理的通用性和可靠性。


图1是本实施例SNMP应用层事务回滚流程图。
具体实施例方式
本实施例的思路是利用堆栈先入后出的特性,将每个SNMP Manager 对Agent的原子操作的相反动作记录在堆栈中,如果Manager需要取消以前 所做的SNMP操作——回滚,则依次执行堆栈中存储的SNMP採作,从而 实现对以前SNMP操作的回滚。
下面对技术方案的具体实施作进一步的详细描述,参见附图1,本实施 例所述SNMP Manager应用事务回滚方法如下
步骤IIO,为存储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;
步骤170, Manager判断全部set命令是否下发完毕,如杲是,结束,否 则,返回步骤120;
步骤180,使用堆栈的弹出方法,取出堆栈中最上面的命令并执行;
堆栈的弹出方法,比如Stack.pop(),该方法把堆栈中最上面的一个对象 取出来。
步骤190,判断堆栈中是否还有SNMP set命令的反操作命令,如果是, 返回步骤180,否则,结束。
本发明建立在SNMP原子操作的基础上,属于一种SNMP的应用方法, 是在应用层上建立的事物处理机制。由于本发明是一种通用的事务回滚处理 方法,与具体的SNMP命令不相关,因此可以避免每个应用程序自己管理 回滚。
通过以上过程完成了一个具备事务回滚能力的SNMP事务操作,由此 可以看出,通过巧妙使用堆栈先入后出的特性,简捷的组织起了 SNMP Manager应用层事务的队列,很方便的实现了 SNMP Manager应用层事务回 滚机制,弥补了 SNMPManager管理框架应用层事务处理的不足。
权利要求
1、一种简单网络管理协议管理应用层事务回滚方法,所述简单网络管理协议以下简称SNMP,涉及SNMP管理者和SNMP代理,所述方法包括以下步骤(a)SNMP管理者向SNMP代理下发SNMP设置命令前,构造所述设置命令反操作的SNMP命令并将其压入堆栈中;(b)所述SNMP管理者向SNMP代理下发SNMP设置命令;(c)所述SNMP管理者判断所述命令是否执行成功,如果命令执行失败,则将堆栈中的命令按后进先出依次取出并执行,完成回滚。
2、 如权利要求l所述的方法,其特征在于,所述堆栈为Java Stack,所 述压入堆栈采用Stack.push(),所述取出堆栈采用Stack.pop()。
3、 如权利要求l所述的方法,其特征在于,在所述步骤(a)中,在构 造所述设置命令的反操作命令前,先进行下发SNMP设置命令的准备,包 括准备建立SNMP通讯的对象,构造好下发命令的对象标识符以及对应 的SNMP变量。
4、 如权利要求l所述的方法,其特征在于,在所述步骤(c)中,如果 所述命令执行成功,则判断全部设置命令是否下发完毕,如果是,结束,否 则,返回步骤(a)。
5、 如权利要求l所述的方法,其特征在于,在所述步骤(c)中,执行 堆栈中的命令后判断堆栈中是否还有SNMP设置命令的反操作命令,如果 有,继续从堆栈中取出命令并执行,直到全部执行完毕。
全文摘要
本发明公开了一种简单网络管理协议管理应用层事务回滚方法,为SNMP Manager管理框架提供统一的应用事务回滚机制,便于系统维护,提高系统可靠性,所述方法涉及SNMP管理者和SNMP代理,包括以下步骤(a)SNMP管理者向SNMP代理下发SNMP设置命令前,构造所述设置命令反操作的SNMP命令并将其压入堆栈中;(b)所述SNMP管理者向SNMP代理下发SNMP设置命令;(c)所述SNMP管理者判断所述命令是否执行成功,如果命令执行失败,则将堆栈中的命令按后进先出依次取出并执行,完成回滚。
文档编号H04L12/24GK101197698SQ200610161850
公开日2008年6月11日 申请日期2006年12月6日 优先权日2006年12月6日
发明者苏春山 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1