Daten in Echtzeit übernehmen

Wuast

Bekanntes Mitglied
Hallo Leute,

ich frage mich gerade, wie man Daten, die extern generiert werden, unmittelbar in das eigene Programm übernehmen kann.
z.B. nehmen wir an, es gibt ein Netzwerk aus 3 Rechnern, der eine sammelt und verwertet Daten (sagen wir mal der "Hauptrechner"), zwei weitere erzeugen diese. etwa durch Benutzereingaben oder Berechnungen. Jetzt soll auf dem "Hauptrechner" ein Programm laufen, welches in einer Klasse die eingehenden Daten empfängt. Diese könnten dann ja z.B. in Echtzeit dargestellt werden oder zwecks Prognoserechnungen oder was auch immer weiterverwertet werden. Erstmal nicht weiter wichtig, geht nur um das Prinzip.
Wie setzt man so etwas um in Java?

Mein bisheriges Know-How geht in die Richtung, wie Dateien beschrieben und eingelesen werden können. Jetzt könnte ich ja hingehen und auf PC 2 und 3 die Nutzereingaben alle paar Sekunden oder Zehntel-Sekunden in eine Datei speichern und dann im "Hauptserver" einlesen, aber das scheint mir nicht sehr sinnvoll oder effizient. Oder wie läuft das in der Praxis (z.B. in Unternehmen)?

Danke :)
 

mihe7

Top Contributor
Das kann man pauschal nicht sagen aber ich nehme mal an, dass Du übliche 0815-Anwendungen und mit Echtzeit "so schnell wie möglich" meinst, wobei die Zeit für die Datenübertragung nicht die ausschlaggebende Rolle spielt. Sprich: Du kannst z. B. ein stinknormales Netzwerk auf Basis von TCP/IP oder UDP/IP verwenden, je nachdem, ob die Verbindung "verlässlich" sein soll.

Im Grundsatz läuft das einfach so, dass die Rechner eine Verbindung aufbauen und miteinander kommunizieren. Wie genau? Das regeln Protokolle, wobei man das Protokoll auf Anwendungsebene durchaus auch selbst definieren kann.

Soweit möglich nimmt man natürlich etwas, das schon existiert. Das gilt sowohl für das Protokoll als auch Software. Eingesetzt wird, was den Zweck erfüllt und möglichst wenig Aufwand verursacht. Wir setzen z. B. fast ausschließlich HTTP ein, um Daten zu übertragen (die dann meist auch sofort weiterverarbeitet werden), aber es gibt praktisch unbegrenzt viele Möglichkeiten.

Für Näheres müsstest Du schon konkreter werden.
 

Wuast

Bekanntes Mitglied
Für Näheres müsstest Du schon konkreter werden.
Geht eigentlich noch nicht, das war eher so ein grundsätzlicher Gedanke, ob und wie ich so etwas in Java umsetzen würde. Jetzt merke ich aber gerade, dass ich noch viel zu wenig Ahnung von Netzwerken und Protokollen habe.
Aber irgendwo müssen die Daten, die durch den bus auf dem Hauptcomputer ankommen, in das Programm "aufgenommen" werden. Also rein von der Programmier-Seite her - quasi die Schnittstelle zwischen meinem Code und den Daten von außerhalb.

Kannst du mir da noch ein Beispiel geben? :)
 

mihe7

Top Contributor
Also rein von der Programmier-Seite her - quasi die Schnittstelle zwischen meinem Code und den Daten von außerhalb.
Wie gesagt: das kommt darauf an, was Du machen willst, daher ist auch ein Beispiel schwierig. Es gibt nicht "die eine API", die man zur Kommunikation einsetzt, auch nicht in Java.

Im EE-Umfeld baut/verwendet man hauptsächlich "REST-APIs" (wobei man es vielleicht besser als HTTP-APIs bezeichnen sollte), weil man den Webserver sowieso schon hat und es so schön einfach ist :) Dein Anwendungsfall muss halt dazupassen: HTTP ist relativ geschwätzig und die Kommunikation läuft in einem Request-Response-Zyklus ab, d. h. der Client stellt eine Anfrage an den Server, der Server sendet eine Antwort. Fertig. Der Server kann also nicht von sich aus irgendwas an die Clients übermitteln, zumindest nicht ohne Tricks. Wenn Dich das nicht stört, kannst Du diesen Weg gehen, z. B. mit SpringBoot, Java/Jakarta EE oder auch mit Jersey Standalone. Sogar das JDK bringt einen einfachen HttpServer mit, über den man Daten austauschen kann.

In der Heimautomation (und nicht nur dort) wird oft MQTT verwendet - das Protokoll für das Internet of Things. Da kommuniziert man mit einem Message Broker und versendet bzw. erhält über diesen Nachrichten an/von sog. Topics (quasi benannte Nachrichtenkanäle), die hierarchisch aufgebaut sind und man relativ frei wählen kann. In Java würdest Du dann z. B. den Eclipse Paho Java Client einsetzen.

Speziell in Java gibts auch RMI (Remote Method Invocation). Hab ich noch nie direkt verwendet, da kein Bedarf.

Wenn Dir alles nicht passt, kannst Du Dich auch selbst auf die Socket-Kommunikation stürzen. Das ist aber nicht gerade trivial, schon gar nicht, wenn das Vorhaben größer ist/wird. Auch da gibts wieder unterstützende Bibliotheken, die einem das Leben leichter machen, netty würde mir da einfallen.

Das ist jetzt mal ein ganz, ganz, ganz kleiner Ausschnitt dessen, wie man Daten über das Netzwerk übermitteln könnte und für jeden Ansatz gibts eigene APIs. Man müsste halt wissen, was Du ungefähr machen willst. Eingaben vom Anwender übertragen? Dafür reicht HTTP beispielsweise locker.
 

Wuast

Bekanntes Mitglied
Okay, das reicht mir an dieser Stelle schon erstmal. Jetzt habe ich ein ungefähres Gefühl, wo die Reise irgendwann hingehen könnte. Ich nahm zunächst an, dass es da vllt. ein Java-API für geben könnte und somit einen "richtigen und einfachen Weg", wie man das halt so in Java macht.

Man müsste halt wissen, was Du ungefähr machen willst.
Am Strand liegen und die Sonne genießen :)
Spaß beiseite: Die Frage war auf kein konkretes Bsp. bezogen, dachte, ich lern "mal eben" was neues. Aber das scheint ja doch etwas umfangreicher zu sein, da warte ich lieber auf das passende Modul - denke, das kommt noch dran. Ich halte erstmal HTTP im Kopf, weil da habe ich schon mehr drüber gelesen, ebenso SpringBoot. Aber da fehlen mir erstmal noch sämtliche Grundlagen.

Wie immer herzlichsten Dank!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33
C Daten speichern und laden Java Basics - Anfänger-Themen 6
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
R csv-Datei auslesen und ausgelesene Daten in neue csv-Datei speichern Java Basics - Anfänger-Themen 2
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben