2011-04-26 93 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