Клиент-сервер

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

Когда и процесс клиента, и процесс сервера запущены на одном компьютере, это называется одноместной установкой.

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

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

Сегодня широко используются как клиент-серверная, так и P2P-архитектуры.

Базовый тип клиент-серверной программной архитектуры использует только два типа хостов: клиенты и серверы. Этот тип архитектуры иногда называют двухуровневой. Двухуровневая архитектура означает, что клиент действует как один уровень, а серверный процесс - как другой уровень.

Архитектура клиент-серверного программного обеспечения стала одной из базовых моделей сетевых вычислений. Многие типы приложений были написаны с использованием клиент-серверной модели. Стандартные сетевые функции, такие как обмен электронной почтой, веб-доступ и доступ к базам данных, основаны на модели клиент-сервер. Например, веб-браузер - это клиентская программа на компьютере пользователя, которая может получать доступ к информации на любом веб-сервере в мире.

Пиринговая сеть.Zoom
Пиринговая сеть.

Сеть на один сервер.Zoom
Сеть на один сервер.

Характеристики клиентов

  • Всегда инициирует запросы к серверам.
  • Ждет ответов.
  • Получает ответы.
  • Обычно подключается к небольшому количеству серверов одновременно.
  • Обычно непосредственно взаимодействует с конечными пользователями, используя любой пользовательский интерфейс, например, графический.

Характеристики сервера

  • Всегда ждите запроса от одного из клиентов.
  • Обслуживает запросы клиентов, а затем отвечает на них запрошенными данными.
  • Сервер может взаимодействовать с другими серверами для обслуживания запроса клиента.
  • Если для обработки запроса требуется дополнительная информация (или реализована безопасность), сервер может запросить у клиента дополнительные данные (пароли) перед обработкой запроса.
  • Конечные пользователи обычно не взаимодействуют напрямую с сервером, а используют клиента.

Преимущества

  • В большинстве случаев клиент-серверная архитектура позволяет распределить роли и обязанности вычислительной системы между несколькими независимыми компьютерами, которые известны друг другу только по сети, поэтому одним из преимуществ данной модели является большая простота обслуживания. Например, можно заменить, отремонтировать, обновить или даже переместить сервер, в то время как его клиенты остаются неосведомленными и не затронутыми этим изменением. Такая независимость от изменений также называется инкапсуляцией.
  • Все данные хранятся на серверах, которые, как правило, имеют лучший контроль над безопасностью, чем большинство клиентов. Серверы могут лучше контролировать доступ и ресурсы, чтобы гарантировать, что только те клиенты, у которых есть соответствующие разрешения, могут получать доступ и изменять данные.
  • Поскольку хранение данных централизованно, обновление этих данных намного проще для администраторов, чем то, что было бы возможно при P2P архитектуре. При использовании P2P-архитектуры обновления данных, возможно, придется распределить и применить к каждому "коллеге" в сети, что отнимает много времени и чревато ошибками, так как таких коллег может быть тысячи или даже миллионы.
  • Уже доступно множество передовых технологий клиент-сервер, которые были разработаны для обеспечения безопасности, удобного интерфейса и простоты использования.
  • Он работает с несколькими разными клиентами с разными техническими характеристиками.

Недостатки

  • Блокировка сетевого трафика является одной из проблем, связанных с моделью клиент-сервер. С увеличением количества одновременных клиентских запросов к данному серверу может произойти перегрузка сервера. В отличие от сети P2P, где ее пропускная способность фактически увеличивается по мере добавления новых узлов, так как общая пропускная способность сети P2P может быть грубо вычислена как сумма пропускной способности каждого узла в этой сети.
  • Сравнивая модель клиент-сервер с моделью Peer to Peer, в случае отказа одного из серверов, запросы клиентов не могут быть обслужены, но в случае P2P сетей, серверы, как правило, распределяются между многими узлами. Даже в случае отказа одного или нескольких узлов, например, если узел не смог загрузить файл, оставшиеся узлы все равно должны иметь данные, необходимые для завершения загрузки.

Примеры

Вопросы и ответы

В: Что такое клиент-серверная архитектура программного обеспечения?


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

В: Как работает клиент-серверное приложение?


О: Клиент-серверное приложение - это распределенная система, состоящая из клиентского и серверного программного обеспечения. Клиентский процесс всегда инициирует соединение с сервером, а серверный процесс всегда ожидает запросов от любого клиента.

В: Что происходит, когда и клиентский процесс, и серверный процесс выполняются на одном компьютере?


О: Когда и клиентский процесс, и серверный процесс выполняются на одном компьютере, это называется одноместной установкой.

В: Какие преимущества дает использование клиент-серверного приложения?


О: Использование клиент-серверного приложения обеспечивает лучший способ разделения рабочей нагрузки между несколькими компьютерами или пользователями.

В: Кто инициирует соединения в клиент-серверных приложениях?


О: Клиентский процесс всегда инициирует соединения в клиент-серверных приложениях.


В: Кто ожидает запросов в клиент-серверных приложениях?


О: Серверный процесс всегда ожидает запросов в клиент-серверных приложениях.

В: Как несколько компьютеров или пользователей могут разделять рабочие нагрузки друг с другом?


О: Несколько компьютеров или пользователей могут разделять рабочие нагрузки, используя распределенную систему, такую как Клиент-серверное приложение.

AlegsaOnline.com - 2020 / 2023 - License CC3