需要架构建议 - 客户端 - 云 - 硬件控制

时间:2012-12-12 15:26:55

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

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

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

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

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

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

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

“基于云的安全系统,由外部托管。需要与特定建筑物中的门上的磁力锁进行通信。”

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

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

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

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

因此,我们需要某种可靠的客户端 - 服务器服务总线,可以快速在云上运行。

考虑因素:我们正在考虑将AWS作为托管环境。 AWS是否具有此体系结构所需形状的客户端 - 服务器服务总线?如果我确实采用了亚马逊AWS路线,那么这会做我需要的:http://aws.amazon.com/sns/吗?

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

希望有人可以提供建议。

1 个答案:

答案 0 :(得分:1)

这可以很好地利用像RabbitMq这样的东西吗? Web客户端与RabbitMq交谈,后者与相应的现场客户端进行对话?

我不了解SNS,但它看起来像兔子一样。如果您在亚马逊上主持,那么可能就要走了。

让Web客户端与驱动程序客户端通信会对Web客户端IMO承担太多责任。让它只需处理与消息经纪人的交谈,并让它处理通知订阅者。

注意:我不是这方面的专家,但由于没有发表任何人,我觉得这值得发帖。基本上,我认为你最初的直觉(亚马逊SNS)是正确的。