Что такое клиент-серверная архитектура простыми словами

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

Что такое ИТ-система

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

  • Пример ИТ-систем: Netflix, Baidu, Yandex, Вконтакте.

На каком-то очень базовом уровне все ИТ-системы имеют сходную структуру, однако они предназначены для разных пользователей и поэтому отличаются своими наборами требований, поэтому их архитектура сильно отличается, сообразно требованиям. 

  • Стандартные компоненты ИТ-систем: серверы, базы данных, клиентские приложения, серверы кэширования, прокси-серверы, и т.п.

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

Что такое дизайн ИТ-системы?

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

Компоненты ИТ-систем могут быть одинаковыми, но системы из этих компонентов составляются совсем разные, то есть их дизайн резко отличается. Например дизайн ИТ-систем Facebook, Instagram и Whatsapp сильно отличается, хотя все эти продукты принадлежат одной компании Meta, а их компоненты в общем-то одинаковые — серверы, базы данных и прочее. Возвращаясь к примеру городской архитектуры: компоненты зданий (стены и крыша, системы подачи электричества, газа и воды) в больнице и жилом доме принципиально те же, но их дизайн отличается. Так же и ИТ-системы.

Клиент-серверная архитектура

Простейший пример. Когда «гуглишь» в браузере Chrome, ноутбук выступает в роли клиента, из которого браузер отправляет запрос в хранилище данных — сервер, и сервер, приняв запрос, обрабатывает его и отправляет браузеру ответ с нужной информацией.

Существует три базовых типа клиент-серверной архитектуры: 2-уровневая, 3-уровневая, и n-уровневая. 

Базовая двухуровневая архитектура «Клиент-сервер»

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

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

Пример такой архитектуры. На сайте аренды жилья пользователь подбирает квартиру по бюджету, удобствам и району города, и нажимает кнопку отправки сформированного запроса. В ответ на запрос сервер отправляет подобранные данные, применив фильтр по параметрам бюджет/удобства/район.

Толстые и тонкие клиенты

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

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

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

Тонкий клиент выгоднее, когда системе нужно «перенести основной вес» вычислений на сервер, сделав клиент «легковесным», освободив клиентскую машину только для отображения (презентации). Это use-кейсы, когда лишь «легкие» вычисления доступны на девайсе из-за ограничений его аппаратной части («железа»), и это значит, что данные должны активно и в большом объеме передаваться через сеть.

  • Преимущества тонкого клиента — в простоте обслуживания и управления системной инфраструктурой; и она хорошо масштабируема
  • Недостатки тонких клиентов в том, что они сильно зависят от скорости сети и ее постоянной доступности; и каждый компонент такой ИТ-системы должен обслуживаться специалистами.

Трехуровневая клиент-серверная архитектура 

Если объем вычислений огромен, и большая часть их происходит на сервере, то логика и данные могут быть разнесены по двум отдельным уровням; так получается 3-уровневая архитектура.

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

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

n-уровневая клиент-серверная архитектура

Если ИТ-система еще больше (уровня большой корпорации с миллионами пользователей), а обработка данных еще более сложная и объемная, то в такой ИТ-системе может быть еще больше уровней (условно n уровней); чаще всего вводится уровень кэширования между уровнями логики и данных, а также уровень балансировки нагрузки, и прокси-уровни (м.б. несколько) между «базовыми» уровнем клиента и уровнем обработки логики. Вот так:

n-уровневая клиент-серверная архитектура
n-уровневая клиент-серверная архитектура

***

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

1 КОММЕНТАРИЙ

Подписаться
Уведомить о
guest

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Принц
Принц
11 месяцев назад

кайф

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас