Hallo,
aktuell befinde ich mich in der Planung für eine Überarbeitung einer bestehenden Anwendung.
Die Anwendung läuft auf mehreren Clients im Netzwerk die ihre Daten von einem Dienst auf einem Server via
TCP erhalten.
Der Dienst versendet die Events als ClientDataSet binary.
Bisher werden sämtliche Daten des Programmes in verschiedenen TClientDataSets gehalten.
Updates und Inserts werden mittels des empfangenen Event-ClientDataSets via Edit oder Append im jeweiligen ClientDataSet ergänzt.
Dieser Vorgang findet in einem gesonderten Thread statt, der ausschließlich für das Eventing verantwortlich ist.
Um die Anwendung Threadsafe zu gestalten werden TMultiReadExclusiveWriteSynchronizer Instanzen verwendet um den Zugriff auf die ClientDataSets zu managen.
Bei höheren Datenlasten (ca. 2 Update/Insert Events pro Sekunde) spürt man allerdings in der
GUI das im Hintergrund einiges vor sich geht.
Die Anwendung wurde damals in Delphi 7 programmiert, später auf XE2 migriert und vor einem Jahr auf Delphi 10 Seattle.
Eine Migration auf Delphi 12.1 Athens ist für die Zukunft bereits geplant.
Da die Architektur mittlerweile schon gut 20 Jahre alt ist und mit ihren Aufgaben über die Zeit hinweg wuchs, wollte ich mich erkundigen ob es neuere, eventuell bessere Möglichkeiten gibt um die Daten in der Anwendung zu managen. Der Serverdienst muss nicht in diesem Format bestehen bleiben, hier besteht ebenfalls die Möglichkeit einer Überarbeitung.
Zu meiner Frage:
1. Gibt es modernere/praktischere Lösungen als die aktuell bestehende Architektur? Wenn ja, welche Möglichkeiten gibt es noch?
Ich bin über jede Möglichkeit/Anregung/Idee dankbar