![]() |
Kommunikation mehrerer DataSnap-Server untereinander
Hallo,
ich starte gerade eine sehr große Umstellung (meines langjährigen Projekts) von selbst entwickelter TCP Kommunikation unter Delphi 7 auf DataSnap unter Delphi 10.2. Folgende Situation: Meine Kunden haben teilweise mehrere Filialen. In jeder Filiale ist ein lokales autarkes Netzwerk mit einem Server und einigen Clients. Ein Server wird als "Master" deklariert (Master-Filiale). Meist sind die Filialen via VPN sternförmig (vom Master aus) verbunden. Meine Software besteht aus einem Applikationsserver der auf eine Datenbank zugreift und über TCP/IP mit den Clients kommuniziert. Wenn ein Client Daten einer fremden Filiale haben möchte, so fragt er "seinen" Server und dieser erkennt, dass er die Daten aus einer anderen Filiale holen muss. Er nimmt Kontakt mit dem Master (der Master-Filiale) auf und der Master leitet die Anfrage an den gewünschten Filialserver weiter. Das funktionierte sehr gut in den letzten Jahren. (Hinweis: Oft haben die Client-PC's keine Verbindung nach außen, so dass sie nur über ihren eigenen Server kommunizieren können) Jetzt möchte ich auf DataSnap wechseln. Dazu wir es aber nötig sein, das die einzelnen Filialserver sich untereinander unterhalten können. Also die Frage: Kann ein DataSnap Server gleichzeitig auch Client eines anderen DataSnap Servers sein? Gibt es weitergehende Infos zu diesem Thema? Ich habe bisher nur Basisinformationen gefunden. Der nächste Versuch würde sein, einfach im Server die Clientmodule zu integrieren und probieren ob es geht. Aber vielleicht hat ja jemand Tipps für mich. Ich habe erst im Frühjahr von Delphi 7 (aus 2002) auf 10.2 umgestellt und muss eine Menge nachholen. Vielen Dank. Thomas |
AW: Kommunikation mehrerer DataSnap-Server untereinander
Zitat:
Zitat:
|
AW: Kommunikation mehrerer DataSnap-Server untereinander
Zitat:
Der Server kann dann Funktionen in seiner eigenen Anwendung ausführen, oder eben den Clienten benutzen und das in einem anderen Server ausführen lassen. Zitat:
Der Client nimmt eine Verbindung zum Server in der eigenen EXE auf. PS: Man kann in seiner EXE auch die EXPORTS-Klausel verwenden, wie man sie von DLLs kennt. Verlinkung dann natürlich nicht statisch, sondern nur dynamisch. So kann man Funktionen/Units haben, die selber keine phyischen Verbindungen (z.B. in gemeinsam genutzten Units) besitzen und erst zur Laufzeit die Verbindung (DataSnap, GetProcAddress, NamedPipe, NamedMMF, ...) herstellen. |
AW: Kommunikation mehrerer DataSnap-Server untereinander
Dank schon mal für die Antworten. Ich werde es probieren.
@mkinzler: Wegen der docwiki. Ich habe daraus nicht abgeleitet, dass diese Kommunikation auch mit fremden DataSnap Server funktioniert. Also ob beliebige Connect-Parameter einstellbar sind oder es einen speziellen In-Process gibt. |
AW: Kommunikation mehrerer DataSnap-Server untereinander
DataSnap ist eine Client-Server-Archtektur, die ihre Verwaltungsdaten veröffentlicht.
Du baust den Server und wenn du magst, kannst du dir daraus automatisch die Client-Klassen/Units bauen lassen. DataSnap baut eine Verbindung via TCP/IP auf. Also über Intenet, Intranet/LAN, innerhalb eines PCs (localhost) oder gar Beides innerhalb einer Anwendung. Mini-Beispiel: TIdTCPServer und TIdTCPClient ... die kann man in zwei getrennte oder in die selbe Anwendung einbauen und sich dann untereinander verbinden. Anwendung 1 (Client) ==> Anwendung 2 (Server) -> Anwendung 2 (Client) ==> Anwendung 3 (Server) Anwendung 2 wäre also sowas wie ein Proxy. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz