1

我们正在设计一个主要基于云的应用程序。该应用程序的几乎所有功能都将是 .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 命令。

希望有人可以建议。

4

1 回答 1

1

Might this be a good use of something like RabbitMq? The web clients talk to RabbitMq, which talks to the appropriate on-site-clients?

I don't know about SNS but it looks like a similar thing to rabbit. If you're hosting on Amazon it's probably the way to go.

Having the web client talk to the driver client puts too much responsibility on the web client IMO. Let it just have to deal with talking to a message broker and let that deal with informing the subscribers.

Note: I'm no expert on this but as nobody wiser has posted I felt this was worth a post. Basically, I think your initial instinct (Amazon SNS) is right.

于 2012-12-12T22:03:52.253 回答