![]() |
3 Client 3 Server oder 1 Client 1 Server und Dienste
Servus,
wie würdet ihr das machen? Bin dabei für uns eine Client Server Anwendung zu programmieren. Wir brauchen mehrere Aufgaben das heist ich möchte die von den anderen Aufgaben auseinanderhalten. Methode 1
Delphi-Quellcode:
Dabei gibt es vorteile sowie nachteile. Vorteil die last wird verteilt da 3 Server. Nachteil es müssen 3 Verbindungen bestehen.
ClientComputer Servercomputer
Client1 <-> Server1 Client2 <-> Server2 Client3 <-> Server3 Methode 2
Delphi-Quellcode:
Ich sende dann einen Befehl an den Client dieser schaut nach an welchen Dienst diese gerichtet ist und leitet den Befehl weiter an den Dienst, wenn der Dienst was zu senden hat, sendet er den Befehl an den Client und dieser wieder an den Server.
Dienst ClientComputer Servercomputer
Aufgabe1 <-> Client1 <-> Server1 Aufgabe2 <-> Aufgabe3 <-> Vorteil es läuft nur ein Client und ein Server. Nachteil wenn der Client abschmiert war es das und ich kann gar nichts mehr machen. Hat auch den vorteil wenn ich ein update aufspiele brauche ich nur den einen Dienst zu erneuern und nicht den ganzen client anhalten. Was meint ihr? Mfg |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Wenn die Ausfallsicherheit sehr wichtig ist, dann könnte man auch einfach zwei Clients parallel benutzen, die beide alle Aufgaben durchführen können. Und auf Serverseite gilt das selbe. Ist der eine Server nicht erreichbar, wird ein parallel laufender als Fallback benutzt. Die Clients bräuchten dann nur eine Liste der möglichen Server.
Die Anzahl der Clientcomputer hängt doch eigentlich davon ab, ob man mehrere braucht oder nicht. Aber wegen Client, was ich nicht so ganz verstehe: Bei deiner Methode 2 sendest du an einen Clientcomputer, aber von wo? Auf weiteren Clientcomputern? Das heißt die hier genannten Clients wären eigentlich auch Server? :gruebel: |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
Im grunde läuft es so ab
Delphi-Quellcode:
Möchte der Manager einen Befehl zum Client senden, sendet er den Befehl an den Server2. Server2 gibt den Befehl weiter an Server1 und dieser schaut nach welcher Client gemeint ist und sendet den Befehl zum Clientcomputer.
ClientComputer ServerComputer Manager
Client <-> Server1 Server2 <-> Client |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
Und deswegen wollte ich mal hören wir ihr das findet wenn man nur einen TClientSockets erstellt. Braucht man mehrer Aufgaben kann auf dem Computer noch ein Dienst installiert werden un der Dienst tauscht die Daten mit der Clientsocket aus und diese sendet die Daten zum server... |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Ah, jetzt habe ich verstanden was du meinst. :idea:
Ein großer Vorteil einer einzigen Verbindung wäre, dass sich dieser eine Dienst auch darum kümmern kann, wenn der Server ausfällt. Das heißt es könnte zentral für alle Dienste ein Backupserver gesucht und dazu eine Verbindung hergestellt werden. Ein Nachteil ist allerdings die zusätzliche Interprozesskommunikation auf dem Client. Dazu kommt, dass alles von dem einen zentralen Dienst abhängt. Fällt der aus irgendeinem Grund aus, geht gar nichts mehr auf dem Client. Deshalb wäre meine Meinung, dass mehrere separate Dienste mit eigenen Verbindungen ausfallsicherer und robuster (nicht von IPC und einem anderen Dienst abhängig) zu programmieren wären. Die Logik der Verbindung kann man ja kapseln, insofern sollte auch der Aufwand bei der Entwicklung nicht viel höher sein bzw. im Vergleich mit der IPC eher niedriger. Wobei ich dazu sagen muss, dass ich mit der Entwicklung verteilter Systeme keine große Erfahrung habe, vermutlich gibt es also auch noch andere Faktoren, an die ich jetzt gar nicht denke. |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
Zitat:
Zitat:
Ich denke so, lieber 3 oder 4 Dienste auf einem Computer wie 3 Socketclients auf einem Computer. |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
eine Methode fehlt auch noch im Ausgangspost:
Delphi-Quellcode:
So das man einen Client hat aber dort in den Einstellungen für die verschiedenen Aufgaben verschiedene Server eintragen kann. Das macht vor allem dann Sinn wenn der Client nur zur Bedienung ist und die eigentlichen Aufgaben (Prozessorlastige etc.) auf dem Server geschehen.
Dienst ClientComputer Servercomputer
Aufgabe1 <-> Client1 <-> Server1 Aufgabe2 <-> <-> Server1 Aufgabe3 <-> <-> Server1 |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
Der Client muss die Verbindung immer trennen. Und wenn der Server 1 daten an den Client senden möchte dieser aber gerade mit Server 2 verbunden ist muss ich mit Server 1 warten solange bis der Client sich wieder an Server1 anmeldet... |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Warum musst du da Verbindungen trennen? Es können doch auch mehrere parallele Verbindungen laufen. :gruebel:
(Je nach Client-Betriebssystem und Einstellungen zumindest 10.) |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Das stimmt schon, aber so wie du es oben in der Zecihnung dargstellt hast nur mit einem Client auf dem Computer.
Wie soll den ein Client die Verbindung mit 3 Server halten. Der Client meldet sich an Server 1 dann kann er ja nicht mit Server 2 kommunizieren, da dieser ja auf einen anderen Port läuft... |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Ich glaube wir stellen uns unter client gerade alle etwas anderes vor.
Wofür steht Client bei dir? - für einen eigenen Computer - für ein eigenes Programm - für eine Clientcomponente gleiches gilt für den Server. Wenn von Last die Rede ist spricht man in aller Regel direkt vom Computer. Wenn man von Diensten spricht redet man von Programmen (Webserver = Programm1, smtp-server = Programm2, ...) und dann gibt es auch dort die Möglichkeit innerhalb eines Programmes (zum Beispiel Mailserver allgemein) mehrere Servercomponenten zu verwenden (imap, pop, smtp) |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
ich meine es so
Delphi-Quellcode:
Also auf irgend ein Computer läuft meine Clientanwendung. Die Clientanwendung baut 3 Verbindungen auf zu einem anderem Computer, hier Computer2. Auf Computer2 läuft meine Serveranwendung, diese hat 4 Server mit 4 Ports.
Computer1 Computer2 Computer3
Anwendung Anwendung Anwendung - Client1 <-> - Server1 - Client2 <-> - Server2 - Client3 <-> - Server3 - Server4 <-> - Client4 Computer1 irgend ein client im Netzwerk Computer2 ist ein SBS 2003 Computer3 x belibiger Rechner im Netz für die Verwaltung oder halt dann diese Methode
Delphi-Quellcode:
Die Dienste die alle auch auf dem Computer laufen wo die Anwendung läuft, werden dann vom Client1 gesteuert, bzw bekommen da seine Befehle. Vorteil nur eine verbindung.
Computer1 Computer2 Computer3
Dienste Anwendung Anwendung Anwendung Dienst1 <-> - Client1 <-> - Server1 Dienst2 <-> - Server2 <-> - Client2 Dienst3 <-> Ich glaube jetzt habe ich mich richtig ausgedrückt. |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
*g* ok, wir haben uns Missverstanden. Ich meinte es so:
Delphi-Quellcode:
Und die Verwaltung dann als Extra Programm. Das macht aber eben nur Sinn wenn die eigentliche Last der Server zu tragen hat und die Clients nur zur Ein-/Ausgabe sind. Denn der Client hat nichts zu tun und die Server welche die Last tragen sind auf 3 Rechenmaschienen aufgeteilt.
Computer1
Anwendung - Client1 <-> Computer1 - Anwendung1 - Server1/Dienst1 - Client2 <-> Computer2 - Anwendung2 - Server2/Dienst2 - Client3 <-> Computer3 - Anwendung3 - Server3/Dienst3 |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
aso ok, dann haben wir uns missverstanden :D
Was wäre also besser Methode 1 mit 3 Clients oder Methode 2 mit nur einem Client? |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Könnte man mal analysieren:
1. (a) Sind die Serverdienste unter Hochlast bereitzustellen oder (b) ist eher ihre dauerhafte Verfügbarkeit wichtig ? Bei a würde ich zu der Aufteilung der Serverdienste auf mehrere Servercomputer neigen. ------------------------------------------------------------------------------------------------------------- Bei b würde ich die Serverdienste auf einem Computer bündeln. Wenn besondere Ausfallsicherheit bei b gewünscht wird, dann würde ich ein Heartbreaksystem einsetzten. Im Extremfall über mehrere Computer. ------------------------------------------------------------------------------------------------------------- |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
|
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Ja! Das ist korrekt!
Du hast drei Dienste, die logischerweise auf drei unterschiedlichen Ports laufen. Das ist praktisch aber kein wirkliches Problem, da jetder Dienst unabhängig kommunizieren können muß. Da eine Bündellung über einen Port zu legen würde dann nur Rechenaufwand erfordern um das wieder zu entflechten, also gleich die Portnummer als Weiche nehmen ist wohl günstiger. Viele Grüße // Martin |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
dachte mir halt nur das wenn eine Verbindung läuft das dass besser wäre.
Deswegen eine Anwendung die als Verteiler dient. Aber wenn jeder ne eigene Verbindung besser ist, werde ich es wohl so machen. |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Moin, Moin,
in den meisten Fällen fährst Du damit gut, gibt natürlich auch Ausnahmen. Nehmen wir an Du hast einen Datenbankserver, eine Zeitsynchronisation, eine Chatverbindung dann laufen die auf unterschiedlcihen Ports allemal besser, da dass Betriebssystem bei gleichzeitigen Anfragen das schon sauber in Zeitscheiben aufteilen kann und nicht intern noch ermittelt werden muß welches der Programme auf dem gleichen Port sich melden muß. Es ist vom Zeitverlauf am günstigsten. Eine der "sagen wir mal Ausnahmefälle" wäre zum Beispiel ein SOAP-Server. Der stellt verschiedenen Funktionen und Rechenroutinen für externe Clients zur Verfügung. Der kann natürlich verschiedene Aufgaben/Anwendungen (sprich Proceduren und Funktionen) zur Verfügung stellen und entscheidet selbständig welche Routine angefordert wird. Also der SOAP-Server erfüllt verschiedene Aufgaben oder nacht Sichtweise ist er halt nur ein Soap-Dienst. Grüße // Martin |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
hmm ok stimmt. Angenommen man hat 3 "Aufgaben" die dann ein Server abarbeiten muss von einem Client dann kann der Server leicht überfordert sein, oder verschlingt zu viele Ressourcen.
|
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Auch hmm: Der Begriff Server wird leider oft für Serverdienst (Webserver Apache) und auch für Servercomputer (Rootserver) verwendet.
Nehemn wir an Du meinst einen Computer als Server. Bei Chatdiensten wird der sich wohl meist langweilen. Wenn man ihm mal eine schwierigere SQL-Abfrage gibt, dann hat er schon eher was zu arbeiten. Bei Webinaren mit Filmübertragung merkt man schnell ob er etwas überfordert ist. Grüße // Martin |
Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
Zitat:
Die Serveranwendung bekommt auch SQL Strings oder abfragen, diesen Abfragen werden aber an einen Thread ausgelagert so das der Server nicht blockiert wird und somit keine Anfragen mehr annehmen kann. gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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