一种基于数据库的无刷新告警自动监测技术的制作方法

文档序号:7928687阅读:146来源:国知局
专利名称:一种基于数据库的无刷新告警自动监测技术的制作方法
一种基于数据库的无刷新告警自动监测技术 所属领域
本发明涉及一种无刷新告警自动监测方法的实现,属于网络管
理领域,具体的说,涉及网络管理系统中,在GUI上实现无刷新告警 自动监测的方案。
背景技术
随着网络技术的发展,网络规模急剧膨胀,网络复杂性大大提高, 在这种情况下,网络的故障日益增多,管理的难度也不断增大,而用 户对网络的安全性要求却越来越高。因此,网管的故障管理需实现可 靠、实时的自动监测功能,及时处理所有告警,维持网络的高效、有 序运行。
告警的自动监测通常通过监听GUI端消息接收端口 ,不断刷新界 面,截获最新数据触发告警提示的方式实现,这种方式在告警数据较 少时,可靠性较高,但当告警数据迅速增加时,需提高界面刷新频率 以适应数据到达频率的变化,以至于服务器的负荷急剧增加,影响网 管运行的可靠性。
此外,通过刷新方式实现的告警自动监听对告警数据的纪录极为 不便,要兼顾数据库和网管日志的数据存储实现难度较大,同时,刷 新界面时需要重新编译网页程序,对界面重新构图,在刷新频率较高 时,页面的闪动对管理员的视觉会产生比较大影响,增加管理员的管理负担。
为解决以上问题,无刷新方式通过开启后台程序,设置后台刷新 函数,每隔一定时间自动刷新,获取最新的数据,达到监听的目的, 因为后台的刷新不影响页面的显示,避免了闪动对效果的影响,同时 只需刷新某个对象,无需重编译,保证可靠性和有效性的同时减轻了
服务器负荷。刷新方式和无刷新方式的对比如图2。

发明内容
本发明提供一种基于数据库的无刷新告警自动监测方法,采用
Ajax (Asynchronous javascript and xml)技术,在后台定时对数 据库数据进行处理,触发告警,达到无刷新自动监测效果,在保证可 靠性和实时性的前提下,不仅降低服务器的工作负荷,美观的告警方 式也增加了网络管理员管理的便利性,在数据的备份上,易于实现数 据的即时存储和记录,达到网络的可运营、可管理目的。
本技术主要包括两大部分告警存储、告警监测,分别完成告警 信息的监听存储和自动监测过程(如图1)。告警存储和告警监测都 基于数据库进行,使用socket技术对数据进行监听,结合Ajax技术, 异步处理告警数据,实现无刷新告警自动监测。网页编程技术可以选 择JSP( Java Server Page )、 ASP( Active Server Page )、 PHP( Personal Home Page)等,Ajax技术使用Javascript脚本承载,异步调用后 台页面对数据库进行轮询,同时及时刷新告警情况。这种方法利用后 台的方式进行监测,避免了告警界面中对数据的直接操作,提高了网 络的安全性和可靠性。


利用对参考了附图的优选实施例的详细叙述,将会使本发明的上
述目的及优点更加清楚明了,其中
图1所示为基于数据库的无刷新告警自动监测的系统框图; 图2所示为刷新方式与无刷新方式告警监听对比; 图3所示为无刷新告警自动监测系统的功能模块; 图4所示为无刷新告警的自动监测过程。
具体实施方案
本发明根据Ajax技术的特点,提出了基于数据库的无刷新技术, 对告警信息进行自动监测。
参见图1本发明系统总体设计框图。图中,代理agent与底层硬 件交互,完成配置和轮询告警上报功能,管理站manager负责处理转 发管理配置和告警信息,GUI服务器与管理员交互,接收管理配置信 息并对告警信息给出提示。
其中,数据库系统运行在GUI服务器中,存储所有的管理信息和 故障信息,从管理站manager过来的告警信息通过socket技术传到 GUI服务器的告警存储系统,继而存储到数据库中。
同时,告警显示页面启动javascript后台调用告警查询页面查询 数据库中的告警信息,并返回给javascript后台进行处理,在确定 有新告警时,javascript后台通过无刷新技术刷新告警显示页面中 显示的告警信息。
6基于数据库的无刷新告警自动监测系统包括监听存储、数据显示、
数据处理、数据查询四大功能模块,如图3,其中监听存储模块与管 理站manager相接,监听存储所有上报的告警信息。数据显示模块与 管理员交互,显示所有发生的告警记录及最新未查看告警记录。监听 存储模块通过数据库系统与数据显示、数据处理和数据查询模块进行 通信,数据显示、数据处理和数据查询模块通过互为调用完成告警的 监测功能。
基于数据库的无刷新告警自动监测过程如图4,当底层产生告警 时,告警会自动上报管理站manager, manager服务器通过socket技 术使用DatagramPacket. send将告警信息通过以太网传送到GUI服务 器的告警监听端口 ,监听模块建立DatagramSocket. receive将告警 数据接收后转到存储模块对数据进行整理后使用Insert语句将数据 存储到SQL数据库中。监听端口的生存周期和GUI服务器一样,在 GUI服务器正常运行时,所有的告警信息都将通过监听端口存进数据 库中。
显示模块在GUI界面中,负责显示告警的详细参数,在GUI服务 器启动时,显示才莫块调用JavaScript页面中的showAlarm()函数, showAlarm()函lt使用xmlHttp. open函凄t打开查询页面,并使用 xmlHttp. responseText返回查询页面中out. print出来的内容,然 后将这些内容赋给显示模块的div层显示出来。
在JavaScript处理模块中设置全局变量x和y,在本系统中,设 计查询页面显示告警数据库中共有告警信息的总条数,x就用于存储最新获取到的告警信息总数,y用于存储上一次运行showAlarm()函 数时xmlHttp. responseText返回的查询页面out. print出来的告警 信息总数。
在showAlarm()函数中, 一开始便把x的值赋给y存储,而后将 最新获取到的getRow()返回值赋给x,如此,x和y便分别存储了新 旧告警总数值。当x与y不等时,说明数据库中有最新的告警信息, 这时便触发弹出"有最新告警信息"提示框。点击提示框确定按钮时 触发事件,刷新未读告警页面,将最新告警信息的粗略信息显示出来。 设置showAlarmO函数的运行间隔为1秒或其它合适值,如此后台处 理模块便不停查询数据库告警信息,实时监测是否有告警信息上报。
在JavaScript处理模块中共定义了五个函数showAlarm(), YEvaluateded() , XEvaluateY() , stateChanged () , GetXmlHUpObject()。其中showAlarm0函数是最主要的函数,在函 数的开始,调用GetXmlHttpObject()函数进行xmlHUp对象定义, 然后将x值赋给y, 4妄着调用stateChanged ()函数运行查询页面返回 getRow()的输出值给x,并判断x与y是否相等,从而决定是否给出 告警提示框。
当GUI服务器的监听端口同时收到多条告警时,若y的值不能在 点击确定按钮后被赋予与x相同的值,程序向下执行,if语句会判 断x与y不相等,从而出现多个告警提示框,这是程序设计所不允许 的。为了解决这个问题,需要在点击确定按钮后调用函数将x的值赋 予y,这个赋值需要4吏用YEvaluateded()和XEvaluateY 0函数。YEvaluateded()函数类似于showAlarm()函数,但其作用只是为了调 用XEvaluateY()函凄t。 XEvaluateY ()函^t运4亍查询页面,返回 getRow()的值给x,然后把x的值赋给y,如此y便被赋予了最新的 x值,避免了多个提示框的出现。
当监测到有最新告警时,弹出告警提示框,点击确定按钮后,会 刷新未读告警页面,将最新告警的粗略信息显示在未读告警页中。将
这些信息写成连接的形式,点击后在GUI界面中显示最新告警的详细 信息,这一功能的实现需要在未读告警模块中设置session保存告警 信息到来之前的告警总数,在连接到新页面后读取session变量值, 使用数据库操作语句以session变量值作为限定条件读取最新告警 的详细信息。显示完后再次刷新未读告警页面,将未读告警条数显示 为0条。
未读告警才莫块中使用了两个结果集ResultSet rs和as,用rs取 得告警信息表中的记录总数,而as则用来显示最新的告警信息。模 块中使用JavaBean设置一个随GUI服务器的启动和关闭而产生和灭 亡的变量sum,用来存储新告警到来之前的告警总数。实现的方法是 在页面显示完告警总数后将getRow()的值赋给sum, 然后使用 getSum()函数返回sum的值。在刷新未读告警页面时使用getRow() 返回告警表中最新的告警总数,将getRow()的值减去sum的值就是 最新的告警信息条数,从而显示出新告警的大略信息。在GUI服务器 启动后第一次运行程序时sum的值会被赋值为0,尽管此时没有新告 警信息,但显示未读告警条数时将getRow()的值减去sum的值并不为零,也即显示的新告警信息数不为0。为了解决这个问题,可以在 javabean中设置跟sum变量一样属性的另一个变量flag,第一次运 行程序时先判断flag的值是否为0,若为零则将getRow()的值赋给 sum,然后再执行最新告警条数的显示,在程序结束时使flag值加1, 如此在第二次以后运行未读告警页面时便不会执行getRow()赋值给 sum了,也即能在一开始就显示最新告警信息条数为O条。
在显示完告警信息条数后,使用数据库操作语句将新告警信息保 存到as中,使用结果集的getString()函数显示最新告警的大体信 台
以上所述的,仅为本发明的可行实施例,并非因此局限本发明的 专利范围,故凡应用本发明说明书或附图内容所为的等效变化,均同 理皆包含于本发明的范围内,以保障发明者的权益,于此声明。
权利要求
1、一种基于数据库的无刷新告警自动监测技术,其特征在于按照网络管理的故障管理特点,基于数据库对故障进行实时无刷新自动监测,并采用数据库技术存储所有告警信息。告警存储在网管启动时使用socket技术打开监听端口,监听所有进入该端口的告警信息,通过JDBC桥即时存储到数据库中以作备份并触发告警监测,在网管界面显示新到告警的详细信息,同时将监听到的信息写入日志供网管查询。告警监测在网管启动时进入JavaScript后台程序,每隔1s的时间调用告警查询程序对数据库中的告警信息进行查询并返回相应的数据,对比前后两次调用告警查询的返回结果,若有不同即触发告警显示事件,显示所到告警细节。
2、 根据权利要求1所述的一种基于数据库的无刷新告警自动监 测技术,其特征在于所述的基于数据库对故障进行实时无刷新自动 监测,采用Ajax技术在后台对数据进行处理,无需刷新网管界面即 可自动监测到新到告警信息。
3、 根据权利要求1所述的一种基于数据库的无刷新告警自动监 测技术,其特征在于所述的告警存储在网管启动时即使用socket 技术绑定告警监听端口,并记录数据。
4、 根据权利要求3所述的一种基于数据库的无刷新告警自动监 测技术,其特征在于所述的告警存储需要在监听时使用JDBC桥存 储告警数据,同时要写入网管日志,对告警详情进行记录,以备查询及管理所需。
5、 根据权利要求1所述的一种基于数据库的无刷新告警自动监 测技术,其特征在于所述的JavaScript后台,是无刷新技术的关键环节,负责调用告警查询、处理数据并触发告警显示。
6、 根据权利要求5所述的一种基于数据库的无刷新告警自动监 测技术,其特征在于所述的无刷新技术是使用Ajax技术异步调用 告警查询,完成数据对比后无需刷新用户接口调用消息框,弹出告警 通知。
全文摘要
本发明公开了一种基于数据库的无刷新告警自动监测技术,在网页中实现无刷新的告警监测,实时监控并记录告警信息。该技术包括告警存储和告警监测两部分,告警存储打开监听端口,接收所有来自告警信息并存储到数据库中;告警监测则由三部分组成,告警显示、JavaScript后台和告警查询。告警显示面向用户,显示告警细节,定位告警信息;JavaScript后台负责定时对比告警数据,发现新到告警,上报告警显示;告警查询面向数据库,在JavaScript后台的调用下查询告警数据库数据并返回后台所需的数据信息。本发明解决了网管自动告警的存储、可靠性和实时性问题,有效地对网络的性能进行监测,保证网络的“可运营、可管理、可增值”能力。
文档编号H04L12/24GK101478423SQ200810239598
公开日2009年7月8日 申请日期2008年12月12日 优先权日2008年12月12日
发明者昱 尧, 张永军, 畅 曹, 蒋定孚, 顾畹仪 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1