Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#12

AW: Client/Server Architektur realisieren - Ideen

  Alt 5. Dez 2014, 13:15
Hallo,

ich überlege derzeit, ein größeres Programm in eine echte Client-/Server-Architektur einzubauen. Das Programm besteht aus einem Hauptprogramm mit mehreren Modulen/Plugins. Die Datenspeicherung übernimmt eine MySQL-Datenbank.
Was ist denn daran derzeit "nicht" Client-Server?

Da das Programm und dessen Plugins hauptsächlich mit Daten aus der DB arbeiten, benötigt jedes Programmteil eine Datenbankverbindung und muss mit dem DB-Server kommunizieren können.

Das hat natürlich zum Nachteil, dass pro Benutzer mehrere Datenbankverbindungen (eine pro Programmteil) geöffnet wird. Weiterer Nachteil ist, dass es zu schwer abfangbaren Problemen im Programm kommt (keine Reaktion etc.), wenn die Verbidung zur Datenbank verloren geht. Dies kann durch remote-Zugriff via VPN etc. öfter mal passieren.
Ich habe ein ähnliches Programm-Konzept mit meinem WWS: ein Hauptprogramm und dazu 18 Module, wo jedes seine eigene Datenbankverbindung hat. Das Ganze läuft schon seit über 14 Jahren auf über 800 Installationen. Bisher konnte ich diese von dir angesprochenen Nachteile nicht nachvollziehen. Entweder die Datenbank und der Server kann das, oder irgendwas läuft falsch.

Abgesehen von den vermeintlichen Nachteilen hat das Prinzip auch (daten-)sicherheitstechnische Vorteile. Wenn ein Client (ein Modul auf einem PC im Netz) abraucht (nicht mehr reagiert) dann hat das auf die übrigen Verbindungen überhaupt keinen negativen Einfluss. Der Server trennt diese einzige Verbindung, ohne dass die anderen Clients davon was mitbekommen.

Daher habe ich mir überlegt, einen Windows-Dienst zu schreiben.
Also einen Dienst der den Datenbank-Dienst (nichts anderes ist ja (d)eine Datenbank) mit Daten "füttert". Und wenn die CS-Verbindung abraucht, dann raucht die (Netzwerk-)Verbindung deines Dienstes zu den Clients auch ab. Ich kann da beim besten Willen keinen Vorteil erkennen. Höchstens den Schluss daraus ziehen: Wenn deine Datenbank und/oder deren Clients mit Verbindungsabbrüchen bis hin zu Stromausfällen im laufenden Betrieb nicht richtig umgehen können, dann liegt das Übel nicht am System, sondern an der Datenbank, oder dessen Programmierer der die Möglichkeiten der Datenbank nicht ausschöpft.

Was haltet ihr davon?
Sorry, gar nichts.
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat