初学C#,需要开发一个指标报警系统,大致可以这么简单描述:
指标数据源已经存在于数据库,需要通过Web Service访问它获取某指标,接着根据报警配置判断指标是否合法产生报警行为。要求实时监控,实时报警,扩展性强。
在这个解决方案中,我写了两个project,一个是Web Service获取指标的project,一个是具体的报警project。Web Service很简单,只需模拟出取指标的环境,接着在报警的project中添加Web Service引用,能获取指标即可。
Web Service可以参考:
http://www.cnblogs.com/denylau/archive/2010/07/23/1783530.html
剩下就是报警系统的具体开发了,我设计了如下六个类,这六个类的主要内容如下:
1)Configurator:只负责报警配置的读与写。
2)Monitor:只负责实时获取源数据中的指标(利用Web Service)。指标值被Alarmer监听,每获取一个指标值,就触发Alarmer中的指标判断事件。
3)Alarmer:只负责判断当前这个时刻的指标值是否合法。维护一个指标队列,用于实现历史监控报警功能。指定的报警状态被Handler监听。
4)Handler:只负责处理报警