AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Client-Server Programme auf Terminalserver ausführen

Client-Server Programme auf Terminalserver ausführen

Ein Thema von Harry Stahl · begonnen am 3. Jul 2018 · letzter Beitrag vom 16. Jul 2018
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.303 Beiträge
 
Delphi 11 Alexandria
 
#1

Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 17:08
Hi, ich bekomme hin und wieder die Frage, ob meine Programme, die z.T. als Client-Serverprogramm-Lösungen gestaltet sind, auch auf einem Terminalserver laufen.

Da ich keine Ahnung von Terminalservern habe, kann ich da i.d.R. nur ausweichend antworten ("sollte", "müssten Sie selber ausprobieren").

Daher hier meine Frage:

Eine Programmlösung, die aus einem Server-Programm und beliebig skalierbaren Clients besteht, und die Programme die über TCP-IP miteinander kommunizieren (jeder Client kann bei Bedarf einen anderen Port verwenden), gibt es da Dinge, die grundsätzlich Probleme erzeugen könnten?

Mein Server-Programm läuft auf dem Terminal-Server, ist schon klar. Ich gehe mal davon aus, dass auch die Client-Programme dann auch auf dem Terminalserver installiert werden. Aber werden die dort ausgeführt oder auf den Client-Geräten? Die Clients sind so programmiert, dass nur eine Instanz starten kann. Ist das ein Problem oder ist das - wenn sie auf dem Terminalserver ausgeführt werden - trotzdem möglich (weil der irgendwie die Programme in geschützten Bereichen auseinanderhält)?

Wäre für ein paar hilfreiche Anmerkungen dankbar...

Und: Könnte ich so eine Situation hier mit verschiedenen VM's nachstellen oder wird dafür bestimmte Hardware benötigt?

Geändert von Harry Stahl ( 3. Jul 2018 um 22:29 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.885 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 17:17
Meins Server-Programm läuft auf dem Terminal-Server, ist schon klar.
Eigentlich sollte das eigene Server-Programm auf einem dafür bereitgestellten eigenen Server und nicht auf dem Terminal-Server installiert werden. Der Terminalserver soll nur die virtuellen Clients bereitstellen. In den virtuellen Clients läuft dann jeweils eine Instanz der Client-Applikation, die dann TCP/IP Verbindungen zum Server aufbauen. Port-Konflikte oder Probleme durch mehrfache Instanzen sind dann nicht zu erwarten, es sei denn, die Client öffnen selber Ports. Das geht nur, wenn alle Clients auf dem Terminalserver unterschiedliche Ports verwenden.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.303 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 17:27
Danke für die Antwort. Was meinst Du mit die Clients öffnen selber Ports?

Hier ist es so angelegt, dass man die mit dem Programm einmal einstellt und dann verwendet.
Andere Ports nutzen die Programme dann nicht.

Als Beispiel mal der Einstellungs-Dialog Netzwerk für den Client anliegend.
Miniaturansicht angehängter Grafiken
client.jpg  
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.828 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 17:38
Obwohl es Terminalserver heisst, laufen auf ihm die Clients. Der Server sollte auf dem (File-)Server installiert werden.
Alle Sessions uaf dem TS haben natürlich die selbe IP. Es kommt dann darauf an, ob Dein Programm das unterstützt. Die "Clients" müssen dann natürlich nicht nur anhand der IP-Adresse, sondern auch anhand des (Client-)Ports unterschieden werden.

Funktionieren mehrere Clients auf einem Rechner? Melde Dich mal mit 2 Benutzern an deinem lokalen Rechner an und Teste, ob es funktioniert.
Markus Kinzler
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 17:56
Nicht obwohl, sondern weil es Terminalserver heißt laufen die Anwendungen auf diesem und es wird nur die Anzeige übertragen. Eben so, wie man das von ganz früher kannte, wo es für die Benutzer Terminals (ja, damals nur reiner Text) gab. Und ein Server stellt etwas zur Verfügung (z.B. Datenbanken, Dateien, Web) und hier stellt der eben Terminals zur Verfügung.

Bei dem Mutex gib es die Unterscheidung zwischen Session (local) und Machine (global). Ist der Prefix Global\ dann kann in diesem Falle nur eine Instanz pro Maschine laufen, andernfalls eben pro Anmeldesession (und das passt dann auch für den Terminalserver).

Nutzt du von deiner Anwendung auch noch Verzeichnisse/Dateien lokal auf dem Rechner? Dann müsstest du das auch noch berücksictigen, dass ein Anwender auch mehrfach angemeldet sein könnte (das kann man aber auch abschalten, dann darf jeder Benutzer nur einmal angemeldet sein)

Geändert von Schokohase ( 3. Jul 2018 um 17:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.303 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 18:07
Ja, die Ausführung unter unterschiedlichen User-Accounts funktioniert auf demselben PC, erwartungsgemäß muss ich auf dem anderen Benutzer / Client die Port-Nummer ändern, aber dann gehts...
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.303 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 18:10
Nutzt du von deiner Anwendung auch noch Verzeichnisse/Dateien lokal auf dem Rechner? Dann müsstest du das auch noch berücksictigen, dass ein Anwender auch mehrfach angemeldet sein könnte (das kann man aber auch abschalten, dann darf jeder Benutzer nur einmal angemeldet sein)
Ja, aber die sind alle auf den jeweiligen Benutzername bezogen erstellt, sollte also kein Problem sein.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.303 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 18:20

Bei dem Mutex gib es die Unterscheidung zwischen Session (local) und Machine (global). Ist der Prefix Global\ dann kann in diesem Falle nur eine Instanz pro Maschine laufen, andernfalls eben pro Anmeldesession (und das passt dann auch für den Terminalserver).
Also falls Du die Prüfung über doppelt gestartete Anwendungen über Erzeugung eines Mutexes meinst, das habe ich bei den Client-Programmen anders gelöst, als bei Programmen, die nur solo laufen, irgendwelche Mutex-Stopps sollten daher nicht entstehen.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.885 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 18:24
Danke für die Antwort. Was meinst Du mit die Clients öffnen selber Ports?

Hier ist es so angelegt, dass man die mit dem Programm einmal einstellt und dann verwendet.
Andere Ports nutzen die Programme dann nicht.

Als Beispiel mal der Einstellungs-Dialog Netzwerk für den Client anliegend.
Das sieht im Screenshot so aus als ob der Client auch (zum Empfangen von Daten) einen eigenen Port öffnen, d.h. der Client agiert auch als Server. Daher muss jeder Client zum Empfangen einen noch freien Port öffnen. Auf einem Terminalserver müssen daher alle Clients jeweils ihren eigenen Port zum Empfangen öffnen.

Was ich allerdings nicht verstehe: sendet der Server Daten an den Client über diesen zweiten Port? Falls ja, warum verwendet der Server nicht den Port mit dem sich der Client zum Senden verbindet, auch in die Gegenrichtung? Bei TCP/IP sind Ports bidirektional, der Server kann Daten über den gleichen Port auch an den Client senden, parallel zum Empfangen von Daten des Clients. (Genau wie man mit einer Telefonleitung Sprechen und Hören kann)
Michael Justin

Geändert von mjustin ( 3. Jul 2018 um 18:26 Uhr)
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
982 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Client-Server Programme auf Terminalserver ausführen

  Alt 3. Jul 2018, 18:37
RDP ist da auch ein Stichwort, wenn du das testen möchtest.

Mutex ist schon erwähnt worden. Das Schreiben/Lesen aus der Registry ist am Terminalserver in anderen Zweigen untergebracht, wenn ich das richtig im Kopf habe, als auf einem normalen Rechner.

Drucken + lokale Laufwerke bzw alle lokalen Ressourcen muss man sich auch ansehen, weil "lokal" am TS ja was anderes bedeutet.

Wenn es mehrere TS gibt (Loadbalancing) sind lokale Daten ein Problem, weil die je nach TS dann auf einem anderen Rechner liegen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf