Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   3 Client 3 Server oder 1 Client 1 Server und Dienste (https://www.delphipraxis.net/136963-3-client-3-server-oder-1-client-1-server-und-dienste.html)

Jackie1983 11. Jul 2009 08:55


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:
ClientComputer          Servercomputer
   Client1        <->       Server1
   Client2        <->       Server2
   Client3        <->       Server3
Dabei gibt es vorteile sowie nachteile. Vorteil die last wird verteilt da 3 Server. Nachteil es müssen 3 Verbindungen bestehen.

Methode 2
Delphi-Quellcode:
 Dienst       ClientComputer          Servercomputer
Aufgabe1  <->    Client1        <->       Server1
Aufgabe2  <->
Aufgabe3  <->
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.
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

jaenicke 11. Jul 2009 09:14

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:

Jackie1983 11. Jul 2009 09:20

Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
 
Zitat:

Zitat von jaenicke
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:

Sorry das hätte ich noch was deutlicher beschreiben sollen.
Im grunde läuft es so ab

Delphi-Quellcode:
ClientComputer         ServerComputer         Manager
   Client        <->      Server1       
                            Server2       <->   Client
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.

Jackie1983 11. Jul 2009 09:30

Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
 
Zitat:

Zitat von jaenicke
Die Anzahl der Clientcomputer hängt doch eigentlich davon ab, ob man mehrere braucht oder nicht.

Das ist es ja gerade. Erstellt man 3 Clients, dann laufen aber auf einem Computer 3 TClientSockets.
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...

jaenicke 11. Jul 2009 09:47

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.

Jackie1983 11. Jul 2009 10:01

Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
 
Zitat:

Zitat von jaenicke
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.

Hmmm, das bringt mich auch eine Idee. Wie wäre es denn damit das ein Backupdienst schaut ob der Socketdienst noch läuft, wenn nicht einfach den Dienst neustarten und der Socketclient meldet sich wieder an den Server an.

Zitat:

Zitat von jaenicke
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.

Den Datenaustasuch könnte man ja über eine Datei machen. Sobal in der Datei was neues steht, nimmt der Dienst die Daten aus der Datei und gibt diese wieder frei für den Socketclient.

Zitat:

Zitat von jaenicke
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.

Das Problem was ich sehe, oder nur meine ist, auf dem eigentlichen Server laufen 3 Serversockets. Diese müssen ja auch untereinader kommunizieren und jobs hin und her verlagern. Also Synchronisieren.

Ich denke so, lieber 3 oder 4 Dienste auf einem Computer wie 3 Socketclients auf einem Computer.

SirThornberry 11. Jul 2009 10:15

Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
 
eine Methode fehlt auch noch im Ausgangspost:
Delphi-Quellcode:
 Dienst       ClientComputer          Servercomputer
Aufgabe1  <->    Client1        <->       Server1
Aufgabe2  <->                   <->       Server1
Aufgabe3  <->                   <->       Server1
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.

Jackie1983 11. Jul 2009 10:23

Re: 3 Client 3 Server oder 1 Client 1 Server und Dienste
 
Zitat:

Zitat von SirThornberry
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.

Jup stimmt. Habe aber dann ein Problem.
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...

jaenicke 11. Jul 2009 10:26

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.)

Jackie1983 11. Jul 2009 10:32

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...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.
Seite 1 von 3  1 23      

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