AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Client-Server Datenaustausch
Thema durchsuchen
Ansicht
Themen-Optionen

Client-Server Datenaustausch

Offene Frage von "Delrabe"
Ein Thema von Delrabe · begonnen am 12. Nov 2024 · letzter Beitrag vom 13. Nov 2024
Antwort Antwort
Delrabe

Registriert seit: 18. Aug 2009
11 Beiträge
 
#1

Client-Server Datenaustausch

  Alt 12. Nov 2024, 16:15
Hallo,

seit langer Zeit verwalte ich ein Windows-Programm, indem es hauptsächlich darum geht, dass die Anwender spezielle Daten ihrer Kunden erfassen und Auswertungen erstellen. Dies funktioniert so, dass die Endkunden papierne Formulare ausfüllen, in denen bei allen Fragen eine der vorgegebenen Antworten angekreuzt werden muß. Anschließend müssen Mitarbeiter der Anwender diese Antwort-Formulare mit dem Programm in die Datenbank eintragen, was umständlich und aufwendig ist. Die gewünschten Auswertungen kann man am Ende einfach erstellen.

Inzwischen besteht der Wunsch, den Umweg über papierne Formulare nach Möglichkeit zu vermeiden. Dazu sollten die Endkunden die gewünschten Daten mit einer App auf ihrem Smartphone erstellen und an den jeweiligen Kunden übertragen können. Damit müssten die Mitarbeiter unserer Anwender nur noch Antwortdateien importieren, was sehr viel einfacher ist.

Eine entsprechende App. habe ich mit Firemonkey weitestgehend erstellt und auf meinem eigenen Smartphone mit Android-Betriebssystem via USB-Kabel getestet. Die App funktioniert gut, das Hauptproblem ist derzeitig der Datenaustausch. Die App muß Konfigurationsdateien für die Formulare herunterladen und Antwortdateien der Endkunden hochladen können. Das Hauptprogramm muß lokal erstellte Konfigurationsdateien hochladen und Antwortdateien herunterladen und löschen können.

Ich stelle mir vor, dass der Anwender irgendwo auf seinem Server ein spezielles Verzeichnis einrichtet, das Unterverzeichnisse für die Konfigurations- und Antwortdateien enthält, und dass der Datenaustausch über ein spezielles, noch zu entwickelndes Programm ermöglicht wird. Leider weiß ich nicht, wie man so etwas organisiert und welche Komponenten man am besten dazu benutzt.

Bei Download habe ich Erfahrung im Zusammenhang mit meinen Programm-Updates, wobei ich TNetHTTPClient benutze. Beim Upload habe ich gerade Client-Server-Demoprogramme mit TIdTCPClient/TIdTCPServer erstellt, da funktioniert der Upload von Dateien aber auch noch nicht korrekt.

Ein Problem sind auch noch die Firewalls. Wir sind ja wohl alle zufrieden damit, dass unerlaubte Zugriffe unterbunden werden, aber es müssen auch irgendwie Möglichkeiten existieren, mit denen legale Zugriffe programmiert werden können.

Ich habe zu dem Thema schon viel gegoogelt und auch bei unserer IT zart angefragt, ohne dass ich eine Lösung gefunden habe. Bei den Dateien handelt es sich um einfache und kleine Textdateien, bei Delphi wird die Version XE 10.4 benutzt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Client-Server Datenaustausch

  Alt 12. Nov 2024, 17:12
Für mich klingt das so, als wäre man mit einem REST-Server ganz gut bedient. Dann braucht man auch nicht zwingend eine FMX-App, ein handelsüblicher Webbrowser genügt als Client. Dazu muss der Server zwar öffentlich erreichbar sein, das ist bei Deiner Lösung aber auch nicht anders. Ggf. nach Anmeldung durch den Endkunden könnten dann die Fragen und die zugehörigen Antworten direkt aus der Datenbank gelesen und an den Client übertragen werden (üblicherweise im JSON-Format). Welche Antwort ausgewählt wurde, wird dann wieder an den Server zurückgesendet und die nächste Frage samt Antworten abgefragt, der Server trägt die Antwort direkt in die Datenbank ein ohne irgendwelche Zwischenprogramme.
Für REST mit Delphi gibt es mittlerweile einige Frameworks, z.B. mORMot, DMVC oder TMS WebCore (zufällige Auswahl ohne Wertung und Anspruch auf Vollständigkeit).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#3

AW: Client-Server Datenaustausch

  Alt 12. Nov 2024, 17:21
Wir haben für solche Szenarien den RelayServer als Open-Source Lösung entwickelt: https://github.com/thinktecture/relayserver

Zentral läuft irgendwo der RelayServer. Das kann auf einer gemieteten VM oder in der Cloud sein.
Bei den Endkunden vor Ort läuft jeweils ein Connector.
Der Connector verbindet sich mit einer ständigen Realtime-Verbindung mit dem Server.

Dann können HTTP-Requests an den RelayServer geschickt, und dabei ein Connector gezielt adressiert werden.
Der Request geht dann über die Realtime-Verbindung zum Connector, der macht den gleichen Request lokal gegen eine HTTP-API und die Antwort wird dann wieder via dem RelayServer an den Client gesendet, der die ursprüngliche Anfrage geschickt hat.

Somit müssen am Ziel keine Firewalls konfiguriert, Portfreigaben eingerichtet und irgendwelche DynDNS-Sachen registriert werden. Es sind ausschliesslich die Endpunkte im lokalen Netz erreichbar, die explizit im Connector freigegeben sind und der Zugriff auf den RelayServer kann auch über so ziemlich alle gängigen Authentication-Methoden abgesichert werden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Delrabe

Registriert seit: 18. Aug 2009
11 Beiträge
 
#4

AW: Client-Server Datenaustausch

  Alt 13. Nov 2024, 11:11
Hallo,
danke für die Antworten.

@DeddyH: Diese Möglichkeit scheidet leider aus. Es müssen diverse sehr unterschiedliche Layouts abgebildet werden und das ist ziemlich kompliziert. Es geht hier auch nicht darum, Antwort-Statistiken zu erstellen, sondern die jeweiligen Antworten sollen zeitnah graphisch dargestellt werden.

@Phoenix: Diese Möglichkeit werde ich in Betracht ziehen. Ich verstehe es aber noch nicht so richtig und ich weiß auch nicht, ob das für uns eine Lösung ist.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz