研究管理代理与监控模块通信设计
能同时对管理代理进行写操作。可能存在这样的情况:当一个应用程序的实例向管理代理的内存文件中写入数据,并通知管理代理读取时,另外一个应用程序的实例也在做同样的写操作,它写入的数据将前一次写入的数据覆盖了。当管理代理响应消息从内存文件中读入时,得到的是第二个应用程序实例的数据,第一个应用程序实例写入的数据已丢失了。在应用程序实例的内存文件上也存在类似的情况:当一个应用程序实例连续向内存文件中写入时,管理代理可能还来不及对第一次写入的数据进行读取,第二次的写入已经将第一次写入的内容覆盖了。在对内存文件的读写过程中引入同步机制是必要的。程序中采用的同步机制是信号灯机制[9]。
在管理代理上为内存文件创建信号灯:
/*创建信号灯,信号灯名为ProxyMapViewSemaphore ,初始计数为1,最大计数也是1,h_SemAccessMapView为该信号灯的句柄*/
h_SemAccessMapView=CreateSemaphore(NULL,1,1,"ProxyMapViewSemaphore");
在监控模块中,打开这个信号灯:
/*打开名为ProxyMapViewSemaphore 的信号灯,h_SemAccessMapView为信号灯句柄*/
h_SemAccessMapView=OpenSemaphore(SEMAPHORE_ALL_ACCESS,false, "ProxyMapViewSemaphore");
监控模块每次对管理代理内存文件写操作前,均要等待信号灯的信号:
/*等待信号灯h_SemAccessMapView的信号,知道信号灯为有信号时才返回*/
::WaitForSingleObject(h_SemAccessMapView,INFINITE);
//对管理代理内存文件映射的写操作管理代理在每次对内存文件进行读操作后,都要增加信号灯的计数:
//对内存文件的读操作
//增加信号灯h_SemAccessMapView的计数,每次增加1
ReleaseSemaphore(h_SemAccessMapView,1,NULL);
5结束语
在对SNMP中MIB信息和协议数据单元扩充的基础上,设计并实现了面向应用软件的网络监控系统。该系统提供了对应用程序类中成员变量和成员函数的监控功能。
参考文献:
[1]唐亚哲,张鹏,李增智,等. DIINMS分布智能网络管理系统的设计与实现[J].小型微型计算机系统 ,2002,23(8):926-929.
[2]田力威,尹朝万.基于CORBA的智能网络管理系统的结构及实现[J].小型微型计算机系统,2002,23(7):810-813.[3]HUNTER, PHILIP.Integrated security and network management remain elusive[J].Network Security,2004,10(6):15-16.
[4]BHUTANI,KIRAN R,KHAN,et al.Optimal distribution of a hierarchy of network management agents[J]. Information Sciences,2003,149(4):235-248.
[5]费洪晓,康松林,施荣华.基于SNMP的网络应用软件监控系统的设计与实现[J].计算机工程与应用,2004,40(15): 122-125.
[6]康松林,费洪晓,施荣华.网络应用软件监控系统监控模块的设计与实现[J].中南大学学报:自然科学版,2004,35(6):993-997.
[7]罗雪松,罗蕾,许子辛.嵌入式SNMP Agent的设计与实现[J].计算机应用研究,2004,21(10):220-222.
[8]DOUGLAS E C, DAVID L S.Internetworking with TCP/IP Vol II:design,implementation, and internals[M].北京:清华大学出版社,1998:95-126.
[9]DOUGLAS E C, DAVID L S. Internetworking with TCP/IP Vol III:client-server programming and applications[M].windows sockets version.北京:清华大学出版社,1998:147-183.
Tags:
上一篇:现今电信发展的趋势与挑战探析下一篇:探析电信级以太网技术