DCN - Client Server Modell
Zwei Remote-Anwendungsprozesse können hauptsächlich auf zwei verschiedene Arten kommunizieren:
Peer-to-peer: Beide Remote-Prozesse werden auf derselben Ebene ausgeführt und tauschen Daten mithilfe einer gemeinsam genutzten Ressource aus.
Client-Server: Ein Remote-Prozess fungiert als Client und fordert eine Ressource von einem anderen Anwendungsprozess an, der als Server fungiert.
Im Client-Server-Modell kann jeder Prozess als Server oder Client fungieren. Es ist nicht der Maschinentyp, die Größe der Maschine oder ihre Rechenleistung, die sie zum Server macht. Es ist die Fähigkeit, Anforderungen zu bedienen, die einen Computer zu einem Server macht.
Ein System kann gleichzeitig als Server und Client fungieren. Das heißt, ein Prozess fungiert als Server und ein anderer als Client. Dies kann auch vorkommen, dass sich sowohl Client- als auch Serverprozesse auf demselben Computer befinden.
Kommunikation
Zwei Prozesse im Client-Server-Modell können auf verschiedene Arten interagieren:
Sockets
Remote Procedure Calls (RPC)
Steckdosen
In diesem Paradigma öffnet der als Server fungierende Prozess einen Socket über einen bekannten (oder dem Client bekannten) Port und wartet, bis eine Clientanforderung eingeht. Der zweite Prozess, der als Client fungiert, öffnet ebenfalls einen Socket, aber anstatt auf eine eingehende Anforderung zu warten, verarbeitet der Client "Anforderungen zuerst".
Wenn die Anforderung beim Server erreicht ist, wird sie zugestellt. Dies kann entweder eine Informationsfreigabe oder eine Ressourcenanforderung sein.
Remote Procedure Call
Dies ist ein Mechanismus, bei dem ein Prozess über Prozeduraufrufe mit einem anderen interagiert. Ein Prozess (Client) ruft die Prozedur auf, die auf dem Remote-Host liegt. Der Prozess auf dem Remote-Host wird als Server bezeichnet. Beide Prozesse sind Stubs zugeordnet. Diese Kommunikation erfolgt folgendermaßen:
Der Client-Prozess ruft den Client-Stub auf. Es übergibt alle Parameter des lokalen Programms.
Alle Parameter werden dann gepackt (gemarshallt) und ein Systemaufruf wird ausgeführt, um sie an die andere Seite des Netzwerks zu senden.
Der Kernel sendet die Daten über das Netzwerk und das andere Ende empfängt sie.
Der Remote-Host leitet Daten an den Server-Stub weiter, wo sie nicht gemarshallt werden.
Die Parameter werden an die Prozedur übergeben und die Prozedur wird dann ausgeführt.
Das Ergebnis wird auf die gleiche Weise an den Client zurückgesendet.