基于SNMP的网络监控系统开发平台与架构的设计与实现

基于SNMP的网络监控系统开发平台与架构的设计与实现,第1张

简单网络管理协议SNMP(Simple Network Management Protocol)是为网络管理系统提供的底层网络管理的框架。其应用范围非常广泛,诸多种类的网络设备、软件和系统中都有所采用。SNMP协议发展到目前的第3版,已经成为一个非常成熟的网络管理协议[1]。不过由于每个设备的支持程序有所不同,所以面向SNMP的成熟网络管理框架依然非常少见[2]。在SNMP的支持方面,Cisco是走在最前沿的[3],除了完整地支持RFC1213中MIB-2的定义外,还在部分设备中支持RFC2819和RFC2021中的RMON。基于Cisco的主流性,开发“可扩展”的基于SNMP的网络管理框架变得非常现实。

1 开发平台与架构的选择

.NET平台的C#语言有着丰富的语言特性,例如Lambda表达式(在Auto-Topology控件及软件框架中已多次使用)可以显著地提升开发效率,而且支持C#的官方开发环境Visual Studio是公认的更加有助于团队协作的集成开发环境。再者,C#中匿名对象、对象初始化器、闭包支持LINQ等利于DSL表现的特性,加之良好的异步编程支持,使C#成为了首选语言,自然,首选的平台则为.NET。

软件必须面对的两个基本问题是“通用性”与“可扩展性”。所谓通用性,就是在绝大多数的网络环境中都能够使用的基本功能;所谓可扩展性,就是在保证通用的前提下,充分发挥特有设备特别功能的能力。这使得通用框架的设计难度加大。

如何使网络管理任务充分简化是需要重点考虑的,软件的工作方式将会影响 *** 作的行为,C/S结构或者纯粹的单体软件无疑有着更为强大的图形展现能力,而B/S结构则在伸缩性与跨平台方面有着更为良好的表现。一个较为折衷并且有经济效益的选择,就是在框架级别实现通用与跨平台,在表现层分离为不同的解决方案。最终,软件采用了普通软件的工作方式。

虽然可以自主开发SNMP底层的通讯类库来支持整个项目,但考虑到开发周期等因素,还是寻求一款更为优秀的开源组件来承担基础通讯。有两款开源组件可供选择:SnmpSharpNet和SharpSnmpLib。在仔细研究了这两款组件后发现,SharpSnmpLib更新频率更高,而且代码更加利于维护,于是选择SharpSnmpLib来支持开发。

2 系统分析 2.1 重点问题

由于SNMP协议在不同的设备上支持的情况不同,所以要求软件的一些通用功能兼容大部分设备,这是很有挑战的。常见的网络管理任务基本都建立在以拓扑图为蓝本的扩展之上,所以无论设备如何不同、协议支持情况有多复杂,自动网络拓扑发现功能是一个不能缺少的核心功能。如何在兼容常见设备的基础上实现扩展功能成为研究的重点问题。

2.1.1 与现有的大部分硬件设备保持兼容

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2594922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存