2016-11-17 3 views
0

Ich entwerfe ein System mit 100.000 Geräten, und der Benutzer kann über MQTT Daten an seine Appliance senden/empfangen. Device-to-App-Kommunikation: Es wird ein Mac-Adress-basiertes eindeutiges Thema und eine Geräte-ID für jede Appliance geben. Jede Appliance veröffentlicht ihre Daten zum Thema des Servers. Der Server sendet die Daten an die entsprechende App über HTTP.MQTT-Kommunikation für IOT-Geräte mit Cloud-Server

Kommunikation zwischen App und Gerät Die App sendet Daten über HTTP an den Server und der Server leitet die Daten über MQTT an die entsprechende Appliance weiter.

Jetzt können Sie mich bitte führen ist dies ein richtiger Weg, das zu tun? Oder besser, wenn der Server eindeutige Themen aller Appliances abonnieren soll?

Im Folgenden ist der Ablaufplan für das oben erwähnte Verfahren

enter image description here

+0

Sie sollten dem Benutzer erlauben, sein IoT-Gerät zu verwenden, ohne eine Verbindung zu öffentlichen Internet- oder Cloud-Servern herzustellen. Sie werden Sicherheitsprobleme in Ihr System einbauen, Sie werden die Privatsphäre der Benutzer verlieren und ihre Geräte riskieren. Sie werden erlauben, dass 100.000 weitere Systeme Teil eines Botnetzes sind. – DanFromGermany

+0

Sie haben recht, was die Sicherheit betrifft. Für den Moment habe ich HTTPS verwendet, um eine sicherere Kommunikation zu gewährleisten und werde die Verbesserungen untersuchen, die ich machen kann. –

+0

Sie werden einen massiven Engpass mit einer solchen Architektur bauen. Einige MQTT-Broker können bis zu Hunderttausende von Nachrichten pro Sekunde verarbeiten. Ihr einzelner Server im Back-End kann diese Last nicht verarbeiten. Erwägen Sie die Verwendung von freigegebenen Abonnements oder eines Broker-Plugins für HTTP. Wenn Sie sich in der Cloud befinden, kann es sich lohnen, Clustering (mit Load Balancern im Vordergrund) für HA und Skalierbarkeit in Betracht zu ziehen. –

Antwort

1

IBM Bluemix einen IoT for electronics Service bietet die für Sie von Interesse sein können. Es nutzt die Watson IoT-Plattform, um Ihre intelligenten elektronischen Geräte mit den von Ihnen entwickelten Anwendungen zu verbinden. Es hilft Ihnen auch, die Daten Ihrer Geräte zu analysieren und zu verstehen.

+0

Vielen Dank für Ihren Vorschlag. Ich untersuche das. Mein Anliegen ist es aber auch, die MQTT-Standards besser zu verstehen. Ich habe mit einer Architektur gearbeitet, in der der Cloud-Server ein Thema hatte, zu dem jedes Gerät veröffentlichen konnte. Eine andere Möglichkeit besteht darin, dass der Server alle eindeutigen Gerätethemen abonnieren sollte. und höre zu, was immer mit dem Gerät kommuniziert wird. Können Sie bitte vorschlagen, welches System besser funktionieren würde? –

+0

Mit IBMs Watson IoT Platform hat jedes Gerät seinen eigenen einzigartigen Themenbereich. Der Abonnent zum Lesen der Informationen kann Platzhalter verwenden, um nach einer Anzahl von Themen zu suchen. – ValerieLampkin

1

Sie können Nachrichten mit Azure IoT hub senden und empfangen, die MQTT- und HTTP-Protokolle mit Geräte-zu-Cloud- und Cloud-zu-Gerät-Funktionen unterstützen.

Azure IoT device SDKs kann mit einer breiten Palette von Betriebssystemplattformen und -geräten verwendet werden. Sie können Ihr "Gerät" und "App" mit Microsoft.Azure.Devices.Client erstellen.

Sie können den MQTT-Broker in Azure, this und this bereitstellen, auf die Sie verweisen können.

Die throughput variiert mit der Service-Ebene, bis zu 208.333 Nachrichten pro Minute.