【问题标题】:Best architecture for an emergency alert system紧急警报系统的最佳架构
【发布时间】:2011-10-05 17:26:21
【问题描述】:

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

我正在使用 ASPNET MVC、SQL Server 2008 Express、该版本 SQL Server 的免费 SQL 代理、Entity Framework 4、Visual Studio 2010 等编写应用程序。

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

1) 在作业中连接到 Web 服务,并且该 Web 服务可以打开一个弹出窗口 2)网页可能正在汇集数据库表以了解是否有新记录

有什么方法可以推送到网页而不是页面池化数据库服务器?

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

【问题讨论】:

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


    【解决方案1】:

    有什么方法可以推送到网页而不是页面池化数据库服务器?

    HTML5 WebSockets。草案,相当新,规范仍然会发生变化,所有浏览器都会实现它。您将需要一个WebSocket Server。如果你走那条路,请确保你阅读this guy's blog。他在Laharsub 后面,这是一个必须尝试的服务器。

    【讨论】:

    • 达林,感谢您的快速回复。 HTML 5 的问题在于,从我所阅读的内容来看,它至少要再过 2 年才会发布,这给了很多改变它的可能性,并且让我在未来感到头疼......
    • html5 已经被大多数浏览器在不同程度上支持,尽管 websockets 部分(我认为)目前只有 chrome 支持
    • 有几个 javascript websocket 框架在 Flash 组件的帮助下向后兼容。谷歌
    【解决方案2】:

    我很确定您能够使用 Silverlight 将数据推送到客户端。这是我不久前读到的a pretty good overview。 HTML5 可能是更好的选择。但在如此有限的支持下,目前几乎不值得。诚然 Silverlight 应用程序可能遥不可及,但仍有可能。

    【讨论】:

      【解决方案3】:

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

      这个想法是在事件流到达数据库之前捕获它们,在事件处理器中路由它们(处理)并从那里将它们放入数据库中——将数据库视为仅其中一个事件目的地(订阅者)。

      看看 StreambaseruleCoremany others

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我对此并不热衷,因为我可能无缘无故地连接到数据库太多,我的意思是,在长时间没有新事件的情况下。
        猜你喜欢
        • 2010-12-30
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-20
        • 1970-01-01
        相关资源
        最近更新 更多