【问题标题】:Architecture advice required - Client-Cloud - Hardware Control需要架构建议 - 客户端云 - 硬件控制
【发布时间】:2012-12-12 15:26:55
【问题描述】:

我们正在设计一个主要基于云的应用程序。该应用程序的几乎所有功能都将是 .NET MVC 4。

但是,应用程序的两个元素需要通过 USB 驱动两个特定硬件。

我们将为这两种硬件设备(Mac 和 Windows)创建必要的驱动程序。

问题在于基于浏览器的应用程序需要与客户端上安装和运行的驱动程序通信。

这是一个多站点部署,因此服务器端需要与不同的客户端实时通信。

例如,让我们看一个假想的场景来说明问题。

“基于云的安全系统,在外部托管。需要与特定建筑物门上的磁力锁对话。”

驱动程序将在客户端 PC/Mac 上作为守护程序或服务运行。

我很高兴在服务器上运行的后端应用程序和驱动程序之间进行通信前端 Web 应用程序 (java/html) 与驱动程序通信(如果那样的话是可能的)。

它还需要跨浏览器和跨平台工作,因此 Flash、Silverlight 和 ActiveX 不适用(幸运的是!!)

什么是稳健、可扩展且高性能的解决方案?在浏览器上发出的请求与点击设备驱动程序的命令之间需要非常短的延迟时间。例如,在 Web 应用程序中发出命令,然后需要 10 秒才能到达驱动程序,这是不可接受的。

因此,我们需要某种可靠的客户端-服务器服务总线,可以快速跨云工作。

考虑:我们正在考虑将 AWS 作为托管环境。 AWS 是否具有此架构所需形状的客户端-服务器服务总线?如果我确实选择了亚马逊 AWS 路线,这会满足我的需求吗:http://aws.amazon.com/sns/

另一个考虑因素:JavaScript 是否会在客户端触发一些可以被守护程序/服务获取的东西?这将是一个非常简单的解决方案,因为几乎没有延迟。我知道有许多安全限制(出于显而易见的原因),所以我不知道 JavaScript 能够在客户端上做什么。它只需要向我正在运行的服务发送一个 XML 命令。

希望有人可以建议。

【问题讨论】:

  • 我可以简单地使用 WCF 回调功能吗?

标签: asp.net-mvc wcf amazon-web-services client-server cloud


【解决方案1】:

这可能是 RabbitMq 之类的一个很好的用途吗? Web 客户端与 RabbitMq 对话,后者与适当的现场客户端对话?

我不了解 SNS,但它看起来与兔子相似。如果您在 Amazon 上托管,这可能是您的最佳选择。

让 Web 客户端与驱动程序客户端进行对话会给 Web 客户端 IMO 带来过多的责任。让它只需要处理与消息代理的对话并让它处理通知订阅者。

注意:我不是这方面的专家,但由于没有更聪明的人发帖,我觉得这值得发帖。基本上,我认为你最初的直觉(Amazon SNS)是对的。

【讨论】:

  • 感谢您的 cmets。我以前从未听说过 RabbitMq - 快速浏览了一下,它看起来很有趣,特别是因为它是开源的、跨平台的并且似乎有很多支持和工具。对此表示赞赏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
相关资源
最近更新 更多