Введение
Архитектура клиент/сервер (Client/Server) – это модель взаимодействия компонентов распределённой системы, при которой одна сторона (клиент) инициирует запросы на получение данных или выполнение операций, а другая сторона (сервер) обрабатывает эти запросы и возвращает результаты. Клиент и сервер работают на отдельных узлах сети и общаются по стандартным протоколам (TCP/IP, HTTP, SQL-протоколы баз данных).
Эта архитектурная парадигма пришла на смену мейнфрейм-вычислениям с «немыми терминалами» в 1980–90-х годах и по сей день остаётся базовой моделью для корпоративных приложений, веб-сервисов и мобильных приложений.
История и контекст
До клиент-серверной архитектуры господствовала централизованная модель: мощный мейнфрейм выполнял все вычисления, а пользователи работали с «тупыми терминалами» (dumb terminal), лишёнными вычислительной мощности. С удешевлением персональных компьютеров в 1980-х годах появилась возможность распределить вычисления между клиентом и сервером.
Термин «клиент/сервер» был популяризован Gartner Group в конце 1980-х годов. Первая волна корпоративных ERP-систем (SAP R/2→R/3, Oracle Applications) перешла на двух- и трёхуровневую клиент-серверную архитектуру в 1990-х. С появлением веба в качестве клиента стал браузер, что породило современную веб-архитектуру.
Как это работает
Различают несколько вариантов клиент-серверной архитектуры:
- Двухзвенная (2-tier): клиент напрямую взаимодействует с сервером баз данных. Вся бизнес-логика в клиенте (fat client) или в хранимых процедурах БД. Характерна для классических ERP 1990-х.
- Трёхзвенная (3-tier): клиент ↔ сервер приложений ↔ сервер БД. Бизнес-логика вынесена на средний уровень. Доминирующая модель корпоративных приложений с 2000-х.
- N-звенная / микросервисная: логика разбита на множество независимых сервисов, взаимодействующих через API. Современный стандарт облачных приложений.
Взаимодействие строится по паттерну «запрос–ответ» (Request-Response): клиент отправляет запрос, сервер обрабатывает и возвращает результат. Протоколы: HTTP/HTTPS, REST, gRPC, SOAP, WebSocket (для стриминга).
Где применяется
- Корпоративные ERP/CRM: SAP, 1С, Oracle – классические клиент-серверные системы.
- Веб-приложения: браузер (клиент) взаимодействует с веб-сервером и сервером БД.
- Мобильные приложения: смартфон (клиент) обращается к backend API.
- СУБД: приложения-клиенты подключаются к серверу PostgreSQL, MySQL, Oracle.
- Почтовые клиенты: Outlook (клиент) – Exchange (сервер).
Преимущества и ограничения
Преимущества: централизованное управление данными и безопасностью, разделение ответственности между клиентом и сервером, масштабируемость (добавление серверов), возможность обновлять серверную часть без изменений на клиенте.
Ограничения: единая точка отказа – сервер, сетевая задержка, необходимость поддерживать инфраструктуру сервера. Для высоконагруженных систем требуется балансировка нагрузки и кластеризация.
Связь с другими понятиями
Клиент-серверная модель является предшественницей современной микросервисной архитектуры и SOA (Service-Oriented Architecture). В облачном контексте сервер размещается как IaaS или PaaS. API (REST, gRPC) – современный интерфейс взаимодействия клиента и сервера. Для управления корпоративным парком клиентских устройств используются Client Management Tools.