Zitat von
Tempdir:
Bisher ist ein selbstgeschriebenes System im Einsatz welches mit den Delphi-Komponenten "TidTCPServer" und "TidTCPClient" arbeitet. Auf den Clients wird eine kleine *.EXE-Datei gestartet welche die
IP des Servers kennt, und dieser findet diese dann automatisch und empfängt die neuen Daten.
Verwaltet werden die verschiedenen Verbindungen über Threads. Zur Sicherung der Übertragung der Daten wird jeder ausgelesene Datensatz in einen Frame verpackt.
So ist es bisher realisiert. Das System soll jetzt überarbeitet werden und daher meine Frage wie man sowas besser bzw. sogar einfacher realisieren könnte
Eine sehr zuverlässige, ausfallsichere und lastverteilte Lösung kann man zum Beispiel mit einem Message Broker realisieren. Clients können auf diesen zugreifen auch wenn das Zielsystem, das die Daten weiterverarbeiten soll, nicht läuft. Der Message Broker puffert die Daten, bei Bedarf auch auf die Festplatte so dass er selber auch ausfallen darf, ohne dass Daten verloren gehen.
Die Empfänger-Anwendung kann dann vom Messagebroker die Daten abholen und weiter verarbeiten. Zur Lastverteilung können auch mehrere Empfänger Anwendungen parallel laufen. Der Broker wird die Daten dann gleichmäßig auf die Empfänger verteilen.
Kostenlose Open Source Implementierungen wie z.B. Apache ActiveMQ sind bereits sehr leistungsfähig, es existieren Clients für viele verschiedene Programmiersprachen, daher sind sie auch sehr gut für die Verbindung bestehender Systeme geeignet.