Java Protokolle

Ich suche potentielle (Java) Protokolle für die Netzwerkkommunikation.
Das Netzwerk besteht aus einem zentralen Steuerungsrechner und mehreren Rechner (Nodes) die mit jenem verbunden werden - es findet nur eine Kommunikation mit dem zentralen Steuerungsrechner und den Nodes statt, nicht unbedingt unter den Nodes selbst.
Alle Rechnersysteme verwenden eine Java Steurungssoftware

  • Platformübergreifender Standard wünschenswert.
  • Die gesendeten Daten sind größtenteils numerische Sensordaten, Steuerungsbefehle und Bilder

Die Ideen waren bisher

  • Proprietäre TCP und UDP Implementation
  • REST Webservice auf den Nodes
  • REST Webservice auf dem Steuerungsrechner (nicht sicher ob sinnvoll, der Steuerungsrechner sollte die Teilnehmer kennen)
  • SOAP
  • Hazelcast
  • SIMON

Vielleicht lässt sich eine Diskussion anregen, einfach nachfragen sollten Fragen offen sein.

Ich stell mir gerade vor, dass du eine Steuerungsrechner hast, der Befehle an Knoten schickt und die Konten Sensordaten an den Steuerungsrechner. Falls dem so ist, dann würde ich nicht nicht den Steuerungsrechner in die Mitte stellen, sondern einen Broker. Bei Sensordaten denke ich gleich an MQTT, also zum Beispiel einen Mosquitto. Es gingen auch MessageQueues wie z.B. RabbitMQ.

Für Netzwerkprotokolle würden mir noch Sachen wie zum Beispiel:

einfallen.

Ich dachte da auch an eine MOM (message oriented middleware), da ich gerade mit einer arbeite, nämlich mit Apache ActiveMQ.

Ich würde mal Netty vorschlagen:

https://netty.io/

Gruß
Karl Heinz Marbaise

Das sind doch mal fantastische Vorschläge. Mir gefällt MQTT sehr gut, gerade weil es standardisiert ist und nicht Java exklusiv.
Mosquitto soll nicht gerade einfach sein was ich so lese. Vielleicht ist ActiveMQ die bessere Alternative.

Netty.io - oft gelesen, hörte sich immer interessant an, nie ausprobiert. Weil für mich ist nicht ganz klar was hier für ein Problem gelöst werden soll.

Bei ActiveMQ gibt es auch Ports für die unterschiedlichsten Sprachen. So können die Programme auf einfache Weise zusammenarbeiten.