DCN - model serwera klienta

Dwa zdalne procesy aplikacji mogą komunikować się głównie na dwa różne sposoby:

  • Peer-to-peer: Oba procesy zdalne działają na tym samym poziomie i wymieniają dane przy użyciu współdzielonych zasobów.

  • Client-Server: Jeden proces zdalny działa jako klient i żąda zasobu z innego procesu aplikacji działającego jako serwer.

W modelu klient-serwer każdy proces może działać jako serwer lub klient. To nie typ maszyny, wielkość maszyny ani jej moc obliczeniowa sprawiają, że jest ona serwerem; to zdolność obsługi żądania sprawia, że ​​maszyna jest serwerem.

System może działać jednocześnie jako serwer i klient. Oznacza to, że jeden proces działa jako serwer, a inny jako klient. Może się również zdarzyć, że procesy klienta i serwera znajdują się na tej samej maszynie.

Komunikacja

Dwa procesy w modelu klient-serwer mogą współdziałać na różne sposoby:

  • Sockets

  • Zdalne wywołania procedur (RPC)

Gniazda

W tym paradygmacie proces działający jako serwer otwiera gniazdo przy użyciu dobrze znanego (lub znanego klientowi) portu i czeka, aż nadejdzie żądanie klienta. Drugi proces działający jako klient również otwiera gniazdo, ale zamiast czekać na przychodzące żądanie, klient przetwarza „żądania jako pierwsze”.

Gdy żądanie dotrze do serwera, jest obsługiwane. Może to być udostępnienie informacji lub żądanie zasobów.

Zdalne wywołanie procedury

Jest to mechanizm, w którym jeden proces współdziała z innym za pomocą wywołań procedur. Jeden proces (klient) wywołuje procedurę leżącą na zdalnym hoście. Mówi się, że proces na zdalnym hoście jest serwerem. Oba procesy mają przydzielone kody pośredniczące. Ta komunikacja odbywa się w następujący sposób:

  • Proces klienta wywołuje kod pośredniczący klienta. Przekazuje wszystkie parametry związane z programem lokalnym do niego.

  • Wszystkie parametry są następnie pakowane (uporządkowane) i wykonywane jest wywołanie systemowe w celu wysłania ich na drugą stronę sieci.

  • Kernel wysyła dane przez sieć, a drugi koniec je odbiera.

  • Zdalny host przekazuje dane do kodu pośredniczącego serwera, gdzie są usuwane.

  • Parametry są przekazywane do procedury, a następnie procedura jest wykonywana.

  • Wynik odsyłany jest do klienta w ten sam sposób.