紧急警报系统的最佳架构

时间:2011-07-14 21:38:31

标签: asp.net sql-server asp.net-mvc database-design architecture

我正在开发一个接收信息(保存到数据库中)的软件系统,当收到任何信息时(特定表中的新插入),应该在信息中心的屏幕上看到警报,所以正确可以采取行动。

我正在编写一个ASPNET MVC,SQL Server 2008 Express,SQL Server免费版本的SQL Server,Entity Framework 4,Visual Studio 2010等应用程序。

现在,我已经设置了数据库和每分钟监视一次表的SQL作业,如果有新记录,则会将电子邮件发送到相同的地址。我的问题是......然后呢?哪个是最好的架构? 我想到的几个选项是:

1)在作业连接到Web服务和Web服务时,Web服务可以打开弹出窗口 2)网页可以汇集数据库表以了解是否有新记录

有没有办法推送到网页而不是汇集数据库服务器的页面?

我知道也许Windows应用程序在这里更合适,但是现在我必须坚持使用ASPNET MVC,因为我已经开始并且不想创建另一个应用程序。 谢谢!丹尼尔

4 个答案:

答案 0 :(得分:3)

  

有没有办法推送到网页而不是汇集数据库服务器的页面?

HTML5 WebSockets。草稿,相当新,规范仍有可能改变,所有浏览器都实现它。您需要WebSocket Server。如果你走那条路,请务必阅读this guy's blog。他落后Laharsub,这是一个必须尝试的服务器。

答案 1 :(得分:1)

我很确定您能够使用Silverlight将数据推送到客户端。这是我前一段时间读过的a pretty good overview。 HTML5可能是更好的方法。但是在如此有限的支持下,此时几乎不值得。虽然Silverlight应用程序可能无法实现,但仍有可能。

答案 2 :(得分:1)

我建议您研究(复杂)事件处理或流处理 - 至少要了解这些系统的体系结构。

我们的想法是捕获事件流,然后到达数据库,在事件处理器中路由它们(进程)并将它们放在数据库中 - 将数据库视为只有一个活动目的地(订户)。

查看 Streambase ruleCore many others

这些都是针对您描述的场景类型而开发的。

答案 3 :(得分:0)

尝试从另一个角度看问题。开发一个每分钟读取数据库并与上次拉动相比较的Web客户端...