Определение модели «клиент — сервер»

Два процесса удаленного приложения могут взаимодействовать в основном в двух разных моделях:

  • Одноранговый: оба удаленных процесса выполняются на одном уровне, и они обмениваются данными с использованием некоторого общего ресурса.
  • Клиент-сервер: один удаленный процесс действует как Клиент и запрашивает некоторый ресурс из другого прикладного процесса, действующего как Сервер.

В модели клиент-сервер любой процесс может действовать как сервер или клиент. Это не тип машины, размер машины или ее вычислительная мощность, которая делает ее сервером; это возможность обслуживания запроса, который делает машину сервером.

Система может одновременно действовать как Сервер и Клиент. То есть, один процесс действует как Сервер, а другой действует как клиент. Также может случиться так, что и клиентский, и серверный процессы находятся на одной машине.

Коммуникация

Два процесса в клиент-серверной модели могут взаимодействовать различными способами:

  • Сокеты
  • Удаленные вызовы процедур (RPC)

Сокеты

В этой парадигме процесс, действующий как сервер, открывает сокет, используя известный (или известный клиентский) порт и ждет, пока не появится какой-либо клиентский запрос. Второй процесс, действующий как клиент, также открывает сокет, но вместо ожидания входящего запроса клиент сначала обрабатывает запросы

Когда запрос доходит до сервера, он обслуживается. Это может быть либо обмен информацией, либо запрос ресурсов.

Удаленный вызов процедур

Это механизм, при котором один процесс взаимодействует с другим посредством вызовов процедур. Один процесс (клиент) вызывает процедуру, лежащую на удаленном хосте. Процесс на удаленном хосте считается сервером. Оба процесса выделяют заглушки. Это сообщение происходит следующим образом:

  • Клиентский процесс вызывает клик-заглушку. Он передает все параметры, относящиеся к локальной программе.
  • Затем все параметры упаковываются (сортируются) и выполняется системный вызов для отправки их на другую сторону сети.
  • Ядро отправляет данные по сети, а другой — получает.
  • Удаленный хост передает данные на заглушку сервера, где он не привязан.
  • Параметры передаются процедуре, и процедура выполняется.
  • Результат отправляется клиенту таким же образом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.