2016-11-17 111 views
0

我正在设计一个系统,将有100,000个设备,用户将能够通过MQTT向他的设备发送/接收数据。 设备到应用程序通信: 将会有一个基于mac地址的每个设备的唯一主题和设备ID。每个设备都将其数据发布到服务器主题。服务器将通过HTTP将数据发送到相应的应用程序。用于云端物联网设备的MQTT通信

应用程序到设备通信 应用程序将通过HTTP将数据发送到服务器,服务器将通过MQTT将数据转发到相应的设备。

现在你可以请指导我这是一个正确的方法来做到这一点?或者更好的方法是服务器应该订阅所有设备的独特主题?

以下是上述程序

enter image description here

+0

您应该允许用户在不连接到公共互联网或云服务器的情况下使用它的物联网设备。您将在您的系统中构建安全问题,您将泄漏用户的隐私并冒着设备风险。您将允许100k个以上的系统成为僵尸网络的一部分。 – DanFromGermany

+0

就安全而言,你是对的。现在我已经使用HTTPS来确保更安全的通信,并将考虑我可以做出的改进。 –

+0

你将要用这样的架构来构建一个巨大的瓶颈。一些MQTT代理可以处理高达几十万msg/sec的数据,后端的单个服务器将无法处理这种负载。考虑使用HTTP的共享订阅或代理插件。如果您处于云端,HA(高可用性)和可伸缩性集群(前面带有负载平衡器)可能值得关注。 –

回答

1

IBM Bluemix提供IoT for electronics服务,这可能是您感兴趣的流程图。它使用Watson物联网平台将您的智能电子设备与您开发的应用程序连接起来。它还可以帮助您分析和了解设备中的数据。

+0

谢谢你的建议。我正在研究这个。但是,我的关注也是为了更好地理解MQTT标准。我曾与一个架构合作,在该架构中,云服务器拥有每个设备可发布到的一个主题。另一种方式是服务器应订阅所有独特的设备主题。并听取与设备进行通信的信息。 您能否建议哪个系统性能更好 –

+0

借助IBM的Watson IoT平台,每台设备都有其独特的主题空间。阅读信息的用户可以使用通配符来检查多个主题。 – ValerieLampkin