Что такое технология клиент–сервер

Содержание статьи:
Технология клиент-сервер – это способ соединения между клиентом (компьютером пользователя) и сервером (мощным компьютером или оборудованием, предоставляющем данные), при котором они взаимодействуют между собой напрямую.
Что такое “клиент-сервер”?
Общие принципы передачи данных между компонентами вычислительной сети устанавливаются сетевой архитектурой. Технология “клиент-сервер” представляет собой такую систему, в которой хранение информации и ее обработка осуществляются на серверной части, а формирование запроса и получение данных предоставляется клиентской стороне. В отличие от клиент-серверной технологии, где данные извлекаются из файлов, в сетях “клиент-сервер” данные хранятся на той машине, где установлено серверное приложение сетевой базы данных.
При этом клиент-серверные технологии предусматривают наличие специального программного обеспечения – клиентского и серверного. Эти программы взаимодействуют с помощью специальных сетевых протоколов передачи данных. Как правило, клиент и сервер установлены на разных компьютерах, но иногда могут быть установлены и на одну машину.
Серверное программное обеспечение настроено на получение и обработку запросов от пользователя, предоставляя ему результат в виде данных или функций (электронная почта, общение или просмотр страниц в интернете). Компьютер, на который устанавливается эта программа, должен иметь высокую производительность и высокие технические параметры.
Как функционирует клиент-серверная архитектура
Программное обеспечение со стороны клиентской машины отправляет запрос на сервер, где он обрабатывается и готовый результат отправляется клиенту. Подобная технология работает по такому же принципу, как и база данных: запрос – обработка – передача результата.
Сервер выполняет следующие функции:
- хранение данных;
- обработка запроса от клиента с помощью процедур и триггеров;
- отправка результата клиенту.
Функции, которые реализуются клиентской частью:
- формирование и отправка запроса к серверу;
- получение результатов и отправка дополнительных команд (запросов на добавление, удаление или обновление информации).
Достоинства и недостатки
Клиент-серверная архитектура обладает следующими преимуществами:
- высокая скорость обработки данных;
- низкая нагрузка на сетевую инфраструктуру;
- возможность быстрой работы с большим количеством клиентов;
- разделение программного кода серверных и клиентских приложений.
Несколько пользователей могут одновременно работать с данными за счет транзакций (последовательность операций, представляемых в виде единого блока) и блокировок (изоляция данных от редактирования другими пользователями).
Недостатки клиент-серверной технологии:
- высокие требования к аппаратно-программным характеристикам серверного оборудования за счет того, что обработка данных происходит на стороне сервера;
- потребность в системном администраторе, контролирующем бесперебойность работы серверного оборудования.
Многоуровневая клиент-серверная архитектура
Многоуровневая технология “клиент-сервер” предусматривает выделение отдельного серверного оборудования для обработки данных. Операции хранения, обработки и вывода данных производятся на разных серверах. Благодаря этому распределению обязанностей повышается эффективность работы сети.
Примером многоуровневой архитектуры является трехуровневая технология. В такой сети, помимо клиента и сервера приложений, есть дополнительный сервер базы данных.
Предусматриваются следующие три уровня:
- Нижний. Это звено включает клиентское программное обеспечение с пользовательским интерфейсом и системой взаимодействия со следующим уровнем обработки данных.
- Средний. Запросы от клиентских программ обрабатываются сервером приложений, на котором осуществляются операции по обработке и подготовке информации для передачи между сервером верхнего уровня и клиентом. Он позволяет разгрузить хранилище данных от лишней нагрузки и распределить запросы от разных пользователей.
- Верхний. Это независимый сервер базы данных, на котором хранится вся информация. Он получает подготовленный запрос от сервера приложений и предоставляет ему необходимую информацию без непосредственного взаимодействия с клиентскими приложениями.
Сеть с выделенным сервером
Архитектура с выделенным сервером представляет собой такую локальную сеть, в которой все взаимодействующие устройства находятся под управлением одного или нескольких серверов. При этом клиенты (рабочие станции) отправляют запрос к ресурсам через серверное программное обеспечение. Выделенный сервер не имеет клиентской части и функционирует только как сервер для обработки запросов от клиентов и защиты данных. При наличии нескольких серверов, функции между ними могут распределяться с определением для каждого отдельных обязанностей.