- Обзор технологии клиент-сервер
- Немного о структуре
- Особенности технологии
- Разновидности клиент-серверной архитектуры
- Одноуровневая
- Двухуровневая
- Трехуровневая
- Многоуровневая
- Преимущества и ограничения технологии клиент-сервер
- Область применения
- Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
- 4.1. Определение модели «клиент-сервер»
- 4.2. Виды сетевых служб
Обзор технологии клиент-сервер
«Клиент-сервер» – современная технология, предполагающая распределение нагрузки и заданий между теми, кто предоставляет услуги и теми, кто их использует. Называют их «сервером» и «клиентом» соответственно. Речь идет о программном обеспечении, размещенном на одной или нескольких принципиально отличных вычислительных машинах. Взаимодействие «клиент сервер» выполняется через сеть на основании ряда протоколов. Познакомимся с этой технологией более подробно, ее особенностями, преимуществами и недостатками.
Немного о структуре
Основные роли в этой структуре распределены между двумя «узлами»:
- Клиент. Представляет собой машинное оборудование, в обязанности которого входит отправка запросов на предоставление определенной информации или решение пользовательских задач серверу.
- Сервер. Мощное аппаратное обеспечение, принимающее, обрабатывающее и выполняющее запросы, полученные от клиента.
В работе система достаточно простая: клиент отправляет серверу запрос, тот его обрабатывает и отправляет обратно результаты. В ее структуре предусмотрено четкое разграничение на того, кто ставит задачи и того, кто их выполняет.
Модель клиент сервер предполагает использование следующих компонентов:
- Клиент. Это рабочая станция с одной выходной точкой – конечный пользователь. В его обязанности входит отправка запросов и получение ответа. Их количество может быть любым.
- Сервер. В одном контуре предусмотрена лишь одна структурная единица. Взаимодействует со всеми клиентами, подсоединенными к нему. Обрабатывает поставленные задачи, составляет и направляет ответы.
- Сеть. Структурная единица, предназначенная для осуществления обмена данными. Соединяет отдельные рабочие машины с общими ресурсами.
- Приложения. ПО, при помощи которого выполняется обработка данных, обеспечение физического распределения между основными структурными элементами. Предусмотрены отдельные продукты для сервера, направленные на сбор информации, работу с ней и хранение, а также для клиента.
Особенности технологии
Сервер работает в многопользовательском режиме, то есть может одновременно поддерживать работу с большим количеством клиентов. Машина автоматически выставляет приоритеты, ориентируясь на очередность поступления запросов, обрабатывает их и отправляет обратно результаты. Сервер позволяет настраивать приоритеты не только исходя из очереди поступления запросов, но и по другим параметрам, как пример – по важности. Тогда такие запросы будут обработаны первыми, даже если поступят позже.
Вся система «клиент сервер» работает так, что рядовые пользователи даже не подозревают о приоритетности и других нюансах. Их запросы обрабатываются очень быстро, вне зависимости от того, смотрят ли они видео, читают книги, изучают необходимую информацию, делают покупки в интернет-магазинах и пр.
В своем большинстве в роли клиента выступает браузер определенного пользователя. А вот в качестве сервера может использоваться:
Обмен данными между узлами осуществляется на основании сетевых протоколов. И для каждой из услуг предусмотрен свой торрент. Вариантов очень много. Так, для обработки пользовательских запросов предназначается протокол http. Он предполагает соблюдение четкой структуры с данными, которые нужно будет предоставить. Требования предъявляются даже к оформлению. В ответ на http-запрос сервер присылает html документ. Запрос от клиента сопровождается дополнительными данными, которые дают серверу понять, как с ними работать. В ответе от серверного оборудования также идут сторонние коды, помимо запрошенных данных. Они помогут браузеру правильно «понять» сообщение сервера. То есть вся инициатива в работе идет от клиента. Сервер только дает ответ на запрос и указывает, какие условия для этого требуется соблюсти.
Одновременное присутствие на одном сайте нескольких пользователей чревато поступлением на один дата-центр большого количества обращений. Но здесь есть свои ограничения, связанные с мощностью с пропускной способностью серверного оборудования, характером запросов.
Разновидности клиент-серверной архитектуры
Выделяют следующие типы архитектуры клиент серверов:
Одноуровневая
Одноуровневая архитектура предполагает распределение прикладного ПО по отдельным рабочим единицам, обращающимися при взаимодействии к одному серверу. Здесь нет дополнительных программ. Сервер всего лишь предоставляет сведения в ответ на запрос.
Архитектура надежная, но в управлении достаточно сложная. Во всех рабочих станциях информация будет находиться в разных вариациях. А это значит, что на ряде аппаратного обеспечения потребуется выполнение синхронизации. Здесь же предусмотрен еще один уровень – базы данных. Те, кто не сильно вникает в теорию, воспринимают его за отдельный рабочий уровень и ошибочно принимают одноуровневую структуру двухуровневой.
Двухуровневая
В двухуровневой архитектуре уже присутствуют прикладные программы. Они располагаются на специально выделенном сервере ПО. А вот программы-клиенты, предоставляющие пользовательский интерфейс для взаимодействия с приложениями, размещены в рабочих единицах. Это строение обладает большей логичностью. Здесь предусмотрено 2 варианта: толстый клиент и тонкий сервер или же тонкий клиент и толстый сервер. В первом случае информация хранится на сервере, а логика ее обработки и бизнес-файлы на машине-клиенте. Если же на сервере находятся и данные, и логика их обработки, то говорят о двухуровневой архитектуре тонкий клиент, толстый сервер.
Среди достоинств такого решения выделяют:
- удобство работы;
- простоту модификаций и конфигураций программных продуктов;
- отличная производительность, возможность масштабирования.
Но надо знать, что при повышении количества клиентов, производительность системы может снижаться. Еще есть риск появления проблем с безопасностью, ведь вся информация и ПО хранятся на одной машине. А еще клиенты будут завязаны на БД одного производителя. Эти моменты относят к недостаткам двухуровневой архитектуры.
Трехуровневая
Здесь центральный, файловый и другие разновидности серверного аппаратного обеспечения –особый уровень, предназначенный для обслуживания сервера приложений. В сфере предложений находится логика данных и бизнес-логика. Клиент связывается с БД не напрямую, а через специальное промежуточное ПО, размещенное на сервере приложений. Такое решение обеспечило повышение продуктивности взаимодействия и улучшило вариативность функционирования.
Технология клиент сервер с архитектурой третьего уровня имеет 3 ключевых достоинства:
- абсолютная целостность потока;
- отличный уровень защиты БД от доступа злоумышленников;
- большая безопасность в сравнении с предыдущими вариантами.
Но наличие промежуточного ПО существенно усложняет структуру взаимосвязи между клиентом и сервером. А это уже – недостаток решения.
Многоуровневая
Предполагается, что ряд серверов приложений в работе применяет результаты друг друга и данные из сторонних серверов. То есть трехуровневая – часть многоуровневой архитектуры. Среди достоинств выделяют повышенную гибкость оказываемых услуг, ведь они – результат работы отдельных дата-центров и их программных продуктов.
Недостаток очевидный – многокомпонентность, которая значительно усложняет архитектуру и сам процесс клиентского взаимодействия.
Преимущества и ограничения технологии клиент-сервер
Подводя итоги, стоит выделить обобщенные преимущества, присущие принципу «клиент-сервер»:
- непревзойденный уровень информационной безопасности, что обеспечивается централизованным администрированием ресурсов общего пользования;
- централизованность структуры: вся информация и управление ею располагаются на центральном сервере;
- хорошая масштабируемость, позволяющая увеличивать мощности параллельно с повышением числа клиентов, а также можно наращивать возможности как клиента, так и сервера независимо друг от друга;
- более высокая производительность и скорость работы приложений общего пользования, что связано с применением выделенного сервера.
Но технология имеет ряд весомых ограничений:
- Есть высокий риск перегрузки трафика. Актуально для ситуаций, когда большое количество пользователей одновременно запрашивают одну и ту же услугу.
- В небольших сетях, основанных только на одном сервере есть только одна точка отказа. И если это оборудование выйдет из строя, все клиенты лишаться обслуживания.
- Вероятность отказа в обслуживании новых клиентов в случае превышение ресурса системы.
- Необходимость установки специальных драйверов для работы некоторых программ. Как пример принтеров, видеокарт, веб-камер, колонок и пр.
- Необходимость в привлечении услуг системного администратора для управления системой.
Область применения
Функции клиент сервера делают его незаменимым в разных сферах. Так, на этой технологии отлично будет работать автомобильный навигатор. Любой пользователь может подключиться к системе через смартфон. С сервера направляется информация о текущем состоянии дорог, наличии полиции, пробок с геолокационной привязкой. Сервер навигации обрабатывает данные скорости пользователей, рассчитывая среднюю скорость, время прибытия.
Еще один пример практического применения этой технологии – корпоративные сети, информационные системы предприятий. Если число рабочих ПК небольшое (3-5 шт.), то один из них вполне может выполнять функцию сервера. Но если компьютеров будет 10 и больше, то лучше выделить отдельную более мощную машину под их обслуживание.
Можно использовать клиент-серверную технологию и в быту. Особенно актуально для домовладений с большим количеством «умных» устройств: колонки, мультимедийный системы, роботы-пылесосы, счетчики, освещение и пр.
Более подробно с особенностями данной технологии и ее областью применения вас познакомят специалисты компании «Xelent». Связаться с ними можно по телефону или через форму обратной связи.
Мы советуем размещать сервера на ru-площадках, находящихся в регионе, где работает ваша компания. Это нужно для максимального качества связи. Наши клиенты могут воспользоваться хостингом для размещения серверов в ЦОД Санкт-Петербурга и Москвы.
Переведите офис на удаленную работу в течение 1 дня. Облако с площадками в Санкт-Петербурге, Москве, Алма-Ате и Минске.
Автоматизация обязательного архивирования – первый шаг к упрощенному управлению ИТ-структурой предприятия. Аренда облачного архива для 1С в Xelent поможет справиться с этой задачей. Все данные размещаются на защищенном от сбоев оборудовании в ЦОДах Москвы и Санкт-Петербурга.
Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
Для понимания материала этой главы необходимы знания по компьютерным сетям, изложенные в предыдущей главе, а также общие понятия о вычислительной технике, изложенные в главе 1.
4.1. Определение модели «клиент-сервер»
Клиент-сервер — это модель взаимодействия процессов в вычислительной системе, при которой один процесс (клиент) делает запрос, другой процесс (сервер) его обрабатывает и возвращает первому ответ или предоставляет определенную услугу в виде вычислений, каких-либо данных и т.п.
Чаще всего процесс-клиент запускается на одном компьютере, процесс-сервер — на другом.
В общем виде модель представлена на рис. 13.
Рис. 13 Модель «клиент-сервер»
Также клиентом (рабочей станцией) в двухранговой компьютерной сети называется компьютер, на котором преобладают процессы-клиенты, а сервером — компьютер, на котором преобладают процессы-серверы. В процессе работы сети компьютер-сервер и компьютер-клиент могут меняться ролями. Любой компьютер может одновременно быть клиентом и сервером для различных видов услуг.
Требования надежности, скорости и отказоустойчивости у серверов выше, чем у рабочих станций. Среднее время простоя современных серверов может достигать всего несколько минут в год.
4.2. Виды сетевых служб
Несмотря на то, что технологии «клиент-сервер» применима как в централизованных, так и в распределенных вычислительных системах, она достигла популярности именно в компьютерных сетях.
Сетевая служба (сервис) — это определенный вид обслуживания, предоставляемый сервером.
Сетевые службы занимаются предоставлением:
- совместно используемых аппаратных ресурсов — процессорного времени, памяти, диска, принтеров;
- различных сетевых услуг — обрабатывают и предоставляют различную информацию.