2011-04-26 81 views
2

我被要求设计一个报警系统,它可以让一些用户创建报警,而其他人可以听到这些报警并做他们需要做的事情。 启动警报的用户希望有一个快捷方式(他们的系统运行Windows XP),所以正在收听可能的警报的人会自动获得相应的信号。报警系统设计

也就是说,如果用户按下组合键,请愿自动发送给安全人员。

我想过通过创建一个包含系统中所有用户的位置信息的数据库来开发这个功能,并且还有警报历史记录。我正在考虑为用户启动的每个闹钟创建一个新行,然后让安全人员寻找生成的新闹钟。所以基本上是这样的:

  • 在快捷启动脚本,在警报表中创建一个新行。
  • Cron或安全人员的计划任务不断检查新警报。

我在设计这类系统方面很新颖,我在想这是否是一个好的方法。另外,如果有人知道如何将启动脚本分配给Windows下的系统快捷方式,我将不胜感激。

感谢任何帮助,并让我知道是否需要更多信息。

+0

@closer:huh ??? – 2011-04-26 11:17:16

+0

@Raj更多:我做错了什么? – Nobita 2011-04-26 16:52:26

+0

有人投票结束,我想知道为什么。 – 2011-04-26 17:04:45

回答

1

我强烈建议使用这个消息队列。您可以使用简单的控制台应用程序(使用桌面上的快捷方式或其他)将新消息提交给队列。

将立即通知“监听”系统,并在此时执行相应的操作。

微软内置在队列中工作的伟大:

http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.aspx

或者你可以使用RabbitMQ的,这是比较稳健的,但更难获得工作开箱。

这将节省所有不断打到数据库更新的麻烦。

编辑:

,当然,你也将要记录在数据库中的所有呼叫,记录保存。

+0

感谢您的回答。我是开发Windows应用程序的新手,所以我更喜欢其他解决方案。尽管如此,这看起来很干净,我将着眼于它。听力系统如何工作?它应该是一个始终运行的过程,当存在警报时,会弹出一个窗口,但消息传递是否可行?谢谢。 – Nobita 2011-04-26 07:51:16

+0

您可以使用每分钟只需查询一次的数据库。消息队列的好处是它可以很快地通知收件人。其他大多数方法都有延迟。你可以使用直接套接字,但这会更困难。你可以通过一个很少代码的队列发送消息,所以即使它看起来令人望而生畏,你会惊讶于你能多快地拿起它。搜索谷歌的“C#消息队列教程”,你会发现大量的信息入门。 – Mikecito 2011-04-26 08:15:06

+0

监听计算机“订阅”队列,一旦消息到达,他们会收到通知,以便他们可以处理它。根据你的设置,你可以只用一台电脑就可以完成它们,比如所有的电脑等等.RabbitMQ比微软队列更具定制性,但是它也可以用这两种方法来完成。 – Mikecito 2011-04-26 08:19:44