校园网自动监控报警系统的设计和实现

2010-07-25 07:16丁青范磬亚俞海平张义东吉翔
微型电脑应用 2010年4期
关键词:短消息调用校园网

丁青,范磬亚,俞海平,张义东,吉翔

0 引言

随着校园网支撑的业务越来越广泛,网络负荷变得越来越重,网络在运行过程中经常会出现不可预知的突发故障。如果不能及时获知消息、排除故障,有可能会造成网络性能变差甚至引发网络大面积瘫痪。校园网的骨干和中心是核心通信设备与提供核心业务的服务器[1],它们是校园网正常运转的基础。只要能确保它们的正常运行,就能够保证整个网络不出大的问题。

而随着移动通信技术的迅速发展,作为移动通信的一种重要增值业务的SMS(短消息服务)也得到了迅速的发展。在校园信息化的建设过程中,短信功能的应用逐步扮演着越来越重要的作用,积极地推动着校园信息化的快速发展。基于这样的思想,我们自主开发了一套校园网自动监控报警系统。这套系统对网络中的核心设备和服务器加以实时监控,如果发现运行故障,立即通过短消息方式向网络管理员报警,网络管理员收到报警后及时采取措施排除故障,从而确保网络通畅和数据安全[2]。

1 系统的构成

图1 总体结构

校园网自动监控报警系统的总体结构如图1所示,整个系统按功能划分,分为设备监控模块、短消息收发模块和系统集成模块。设备监控模块根据相关网络管理协议实时监控连接到校园网的所有路由器、交换机、服务器以及 UPS等关键设备。短消息收发模块通过RS232连接GSM模块,实现短消息报警功能,一旦发现网络故障,则立即将报警信息通过GPRS网络发送到网管员手机。系统集成模块则是系统顶层模块,每隔一定的时间,通过调用设备监控模块轮询网络设备,如果发现设备故障,则调用短消息收发模块向网管员报警,另外由于采用B/S架构,网管员桌面可以在校园网任意授权节点连接系统所在服务器,通过浏览器查看设备状态并对系统进行相关配置。

按软硬件划分,该系统分为软件和硬件两部分。软件部分整体采用.NET技术来实现,后台数据库为SQL Server,软件开发工具采用了Visual Studio.Net平台,软件运行环境为 Windows 2003 Server。硬件部分选用的 GSM 模块是Wavecom的Q2304A,支持AT指令集收发短消息。

2 功能模块的实现

系统由三大功能模块组成,分为设备监控模块、短消息收发模块、系统集成模块,它们都基于微软公司的.NET Framework 来实现。

2.1 设备监控模块

网络设备的监控主要依据相关的网络管理协议来进行,常用的有因特网报文管理协议(ICMP)和简单网络管理协议(SNMP)。ICMP是IP层的标准协议,它允许主机或路由器报告差错情况和提供有关异常情况的报告[4]。目前的设备监控模块实现了最基本的连通性检测,主要采用基于ICMP的Ping服务来实现。

基于面向对象的设计方法,设备监控模块被定义成一个类名为DevMon的类,它所包含的成员方法主要是静态的基于各种网络管理协议的检测函数。连通性检测的函数定义为public static Boolean ICMP_PING(string DevIpAddr),关键代码如下:

首先新生成Ping类对象PingSender,然后设置Ping服务相关参数(禁止数据包分段、生成包含32个字节发送数据的缓冲区和设置超时时间为480毫秒),接着调用同步方法Send向目标IP地址发送ICMP回声报文,最后根据应答结果来决定返回值为真或假。

2.2 短消息收发模块

GSM模块能够支持所有GSM短消息通讯功能,主要包括中心号码设置、消息模式配置、发送、接收和删除等,上位机则通过发送相应的AT指令来控制GSM模块进行相关操作[5]。短消息收发模块同样被设计成一个类名为GsmSMS的类,它通过对AT指令进行封装实现了短消息通讯相关的主要功能。

2.2.1 UML图

图2 GsmSMS类的UML图

GsmSMS类的UML图如图2所示,这里列出了最主要的成员变量和成员函数。私有成员变量 rs232是 SerialPort类对象,SerialPort借助rs232可以方便的实现串口相关操作。公有的成员函数一共有五个:GsmInit用于初始化GSM 模块,GsmSendSMS用于发送短消息,GsmReadSMS用于阅读短消息,GsmSetSMSC用于设置短消息中心号码,GsmDeleteSMS用于删除短消息。

2.2.2 成员函数的实现

成员函数的实现都依据相关的AT指令[6],如表1所示。

表1 相关AT指令

以 GSM 模块初始化(GsmInit)和发送短消息(GsmSendSMS)为例,介绍 GsmSMS类成员函数的具体实现。

图3 GsmInit和GsmSendSMS的流程图

GsmInit的其程序流程图如图3中(a)所示。首先根据输入参数(串口名、波特率、奇偶校验、数据长度和停止位)来创建SerialPort类对象,接着调用SerialPort类方法Open()打开串口,然后通过串口向GSM模块发送“AT”查询模块的状态,如果模块处于活动状态,则进一步发送“AT+CGMF=1”配置短消息为文本模式,如果配置成功,则初始化成功并返回TRUE。

GsmSendSMS的程序流程图如图3中(b)所示。首先利用发送短消息 AT指令发送对方号码,接收到“>”提示符后,再发送短消息内容,然后等待直到返回包含“ERROR”或“CMGS”的响应,如果返回“CMGS”则表示发送成功,如果返回“ERROR”则表示发送失败。

2.3 系统集成模块

系统集成模块是整个系统的运转调度中心,通过该中心实现了对网络的实时监控。首先是系统初始化:初始化GSM模块,连接后台数据库获知监控设备列表以及网管员名单,并根据输入参数配置运行参数。然后进行定时批量监控,定时对位于监控设备列表上的每个设备调用设备监控模块加以检测并记录结果。最后,如果发现设备故障,则根据一定的报警策略向网管员手机发送报警信息。

2.3.1 UML图

系统集成模块相关的UML图如图4所示。

图4 MonAlarm类的UML图

其中MonDev结构用于保存设备信息和状态,ID、Type、Location和 IPAddr分别对应监控设备的名称、类型、位置和IP地址,直接来源于数据库;Status则表明设备是否正常工作,AlarmFlag则标志是否已经报警,AlarmCount则记录设备报警次数。

MonAlarm类实现整个系统集成,其成员变量一共有6个:mdlist为所有受监控设备对应的 MonDev结构列表,devalarm_limit为单个设备报警的次数限制,allalarm_limit为所有报警的次数限制,allalarmcount则是所有报警计数值,montimer是基于.NET的 Timer类的监控定时器,sms_agent则是GsmSMS类对象。

MonAlarm成员函数一共包括5个。公有 的Init 用于执行系统初始化,通过sms_agent调用GsmInit初始化GSM模块;连接数据库生成 mdlist并对 Status、AlarmFlag和AlarmCount进行初始化,分别设置成True、False和0;此外,初始化allalarmcount为0 ,并根据输入参数配置用于限制报警次数的 devalarm_limit和 allalarm_limit。SetTimer用于配置监控定时器,参数interval表示秒为单位定时间隔,参数enable决定是否启动或停止监控定时器。MonAll实施监控批处理,针对mdlist中每个设备调用DevMon类的监控函数,并根据结果更新Status。SMSAlarm则在实施监控之后根据mdlist中的状态信息,再依据一定的报警策略决定是否通过sms_agent来发送报警信息。OnTimedEvent则是定时器事件函数,包含整个监控报警流程,先调用 MonAll,然后再调用SMSAlarm。需要说明的是,MonAlarm类的mdlist公有成员变量,它能够被外部直接访问,从而可以方便的在Web页中显示所有监控情况。

2.3.2 系统报警策略

短消息报警能够提高管理效率,但也会带来一些成本开销。因此,在保证报警有效性的情况下,如何设计报警策略来尽可能的降低成本,是系统很需要考虑的问题。首先要避免重复报警,只有当监控到设备从正常状态(Status=True)变为非正常状态(Status=False)时,才发送短消息报警。其次要控制设备的报警次数,对单个设备的报警次数 AlarmCount需要加以限制,避免设备出现时好时坏的情况时反复报警 ;此外,对系统总共的报警次数 allalarmcount也应该加以限制,避免由于系统所在服务器本身和网络断开而大量报警的情况。

上述报警策略集成在成员函数SMSAlarm中,实现流程图如图5所示。另外,由于系统对报警次加了限制,每报警一次,设备和系统所允许的报警次数都会各减少一次,因而在网管员收到报警并手动排除故障之后,需要再次调用Init执行系统初始化。

图5 报警策略流程图

3 结语

本文介绍的校园网自动监控报警系统目前已在本院网络中心投入运行,为网管员发现、排除网络故障和确保网络正常运行发挥了重要的作用。下一步的工作,主要是考虑采用更为专业的网管协议来监控网络设备,特别是对于重要的服务器,除了基本的连通性检测,对于流量、服务、安全等方面的监控也非常重要,通过加强对各种安全隐患的提前预警,进而做到防患于未然。

[1]何发镁等.嵌入式网络管理报警系统的设计[J].计算机工程,2007,(20):101-103.

[2]张杰等.基于嵌入式系统的网络故障检测报警系统[J].内蒙古大学学报(自然科学版),2009,(3):356-359.

[3]金旭亮.编程的奥秘——.NET软件技术学习与实践[M].北京:电子工业出版社,2006-1 .

[4]谢希仁.计算机网络教程[M].北京:人民邮电出版社.2006-5.

[5]谢春祥等.基于 GSM/GPRS的终端式短信平台开发[J].计算机工程和设计,2007,(4):1680-1682.

[6]郭辉.基于GSM SMS的短信平台及其应用系统的设计与实现[D].南京:东南大学,2006:15-16.

猜你喜欢
短消息调用校园网
数字化校园网建设及运行的几点思考
核电项目物项调用管理的应用研究
试论最大匹配算法在校园网信息提取中的应用
试论电视新闻短消息的采写策略
基于VRRP和MSTP协议实现校园网高可靠性
浅谈广播短消息的采写
NAT技术在校园网中的应用
基于系统调用的恶意软件检测技术研究
利用RFC技术实现SAP系统接口通信
小灵通里的父爱