Обзор технологии клиент-сервер

17 Января 2022

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

Немного о структуре

Основные роли в этой структуре распределены между двумя «узлами»:

  1. Клиент. Представляет собой машинное оборудование, в обязанности которого входит отправка запросов на предоставление определенной информации или решение пользовательских задач серверу.

  2. Сервер. Мощное аппаратное обеспечение, принимающее, обрабатывающее и выполняющее запросы, полученные от клиента.

В работе система достаточно простая: клиент отправляет серверу запрос, тот его обрабатывает и отправляет обратно результаты. В ее структуре предусмотрено четкое разграничение на того, кто ставит задачи и того, кто их выполняет.

Модель клиент сервер предполагает использование следующих компонентов:

  1. Клиент. Это рабочая станция с одной выходной точкой – конечный пользователь. В его обязанности входит отправка запросов и получение ответа. Их количество может быть любым.

  2. Сервер. В одном контуре предусмотрена лишь одна структурная единица. Взаимодействует со всеми клиентами, подсоединенными к нему. Обрабатывает поставленные задачи, составляет и направляет ответы.

  3. Сеть. Структурная единица, предназначенная для осуществления обмена данными. Соединяет отдельные рабочие машины с общими ресурсами.

  4. Приложения. ПО, при помощи которого выполняется обработка данных, обеспечение физического распределения между основными структурными элементами. Предусмотрены отдельные продукты для сервера, направленные на сбор информации, работу с ней и хранение, а также для клиента.

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Особенности технологии

Сервер работает в многопользовательском режиме, то есть может одновременно поддерживать работу с большим количеством клиентов. Машина автоматически выставляет приоритеты, ориентируясь на очередность поступления запросов, обрабатывает их и отправляет обратно результаты. Сервер позволяет настраивать приоритеты не только исходя из очереди поступления запросов, но и по другим параметрам, как пример – по важности. Тогда такие запросы будут обработаны первыми, даже если поступят позже.

Вся система «клиент сервер» работает так, что рядовые пользователи даже не подозревают о приоритетности и других нюансах. Их запросы обрабатываются очень быстро, вне зависимости от того, смотрят ли они видео, читают книги, изучают необходимую информацию, делают покупки в интернет-магазинах и пр.

В своем большинстве в роли клиента выступает браузер определенного пользователя. А вот в качестве сервера может использоваться:

  • аппаратное обеспечение типа http;

  • кластеры серверов;

  • локальные машины.

Обмен данными между узлами осуществляется на основании сетевых протоколов. И для каждой из услуг предусмотрен свой торрент. Вариантов очень много. Так, для обработки пользовательских запросов предназначается протокол http. Он предполагает соблюдение четкой структуры с данными, которые нужно будет предоставить. Требования предъявляются даже к оформлению. В ответ на http-запрос сервер присылает html документ. Запрос от клиента сопровождается дополнительными данными, которые дают серверу понять, как с ними работать. В ответе от серверного оборудования также идут сторонние коды, помимо запрошенных данных. Они помогут браузеру правильно «понять» сообщение сервера. То есть вся инициатива в работе идет от клиента. Сервер только дает ответ на запрос и указывает, какие условия для этого требуется соблюсти.

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

Разновидности клиент-серверной архитектуры

Выделяют следующие типы архитектуры клиент серверов:

  • Одноуровневая.

  • Двухуровневая.

  • Трехуровневая.

  • Многоуровневая.

Одноуровневая

Клиент-сервер 1-уровневая

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

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

Двухуровневая

Клиент-сервер 2-уровневая

В двухуровневой архитектуре уже присутствуют прикладные программы. Они располагаются на специально выделенном сервере ПО. А вот программы-клиенты, предоставляющие пользовательский интерфейс для взаимодействия с приложениями, размещены в рабочих единицах. Это строение обладает большей логичностью. Здесь предусмотрено 2 варианта: толстый клиент и тонкий сервер или же тонкий клиент и толстый сервер. В первом случае информация хранится на сервере, а логика ее обработки и бизнес-файлы на машине-клиенте. Если же на сервере находятся и данные, и логика их обработки, то говорят о двухуровневой архитектуре тонкий клиент, толстый сервер.

Среди достоинств такого решения выделяют:

  • удобство работы;

  • простоту модификаций и конфигураций программных продуктов;

  • отличная производительность, возможность масштабирования.

Но надо знать, что при повышении количества клиентов, производительность системы может снижаться. Еще есть риск появления проблем с безопасностью, ведь вся информация и ПО хранятся на одной машине. А еще клиенты будут завязаны на БД одного производителя. Эти моменты относят к недостаткам двухуровневой архитектуры.

Трехуровневая

Клиент-сервер 3-уровневая

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

Технология клиент сервер с архитектурой третьего уровня имеет 3 ключевых достоинства:

  • абсолютная целостность потока;

  • отличный уровень защиты БД от доступа злоумышленников;

  • большая безопасность в сравнении с предыдущими вариантами.

Но наличие промежуточного ПО существенно усложняет структуру взаимосвязи между клиентом и сервером. А это уже – недостаток решения.

Многоуровневая

Клиент-сервер многоуровневая

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

Недостаток очевидный – многокомпонентность, которая значительно усложняет архитектуру и сам процесс клиентского взаимодействия.

Преимущества и ограничения технологии клиент-сервер

Подводя итоги, стоит выделить обобщенные преимущества, присущие принципу «клиент-сервер»:

  • непревзойденный уровень информационной безопасности, что обеспечивается централизованным администрированием ресурсов общего пользования;

  • централизованность структуры: вся информация и управление ею располагаются на центральном сервере;

  • хорошая масштабируемость, позволяющая увеличивать мощности параллельно с повышением числа клиентов, а также можно наращивать возможности как клиента, так и сервера независимо друг от друга;

  • более высокая производительность и скорость работы приложений общего пользования, что связано с применением выделенного сервера.

Но технология имеет ряд весомых ограничений:

  1. Есть высокий риск перегрузки трафика. Актуально для ситуаций, когда большое количество пользователей одновременно запрашивают одну и ту же услугу.

  2. В небольших сетях, основанных только на одном сервере есть только одна точка отказа. И если это оборудование выйдет из строя, все клиенты лишаться обслуживания.

  3. Вероятность отказа в обслуживании новых клиентов в случае превышение ресурса системы.

  4. Необходимость установки специальных драйверов для работы некоторых программ. Как пример принтеров, видеокарт, веб-камер, колонок и пр.

  5. Необходимость в привлечении услуг системного администратора для управления системой.

Область применения

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

Еще один пример практического применения этой технологии – корпоративные сети, информационные системы предприятий. Если число рабочих ПК небольшое (3-5 шт.), то один из них вполне может выполнять функцию сервера. Но если компьютеров будет 10 и больше, то лучше выделить отдельную более мощную машину под их обслуживание.

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

Более подробно с особенностями данной технологии и ее областью применения вас познакомят специалисты компании «Xelent». Связаться с ними можно по телефону или через форму обратной связи.

Популярные услуги
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent