Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

4.3. Многоуровневая архитектура (n-tier)

Развитие трёхуровневой, где добавляются дополнительные уровни:

  • Прокси-серверы и балансировщики нагрузки — распределяют трафик.

  • Кэширующие серверы (Redis, Memcached) — снижают нагрузку на БД.

  • Очереди сообщений (RabbitMQ, Kafka) — для асинхронной обработки.

  • API-шлюзы — единая точка входа для клиентов.

  • Сервисы — в микросервисной архитектуре множество независимых серверов приложений.

Фактически, микросервисная архитектура (обсуждавшаяся в вопросе 26) — это развитие многоуровневой архитектуры, где уровень приложений разбит на множество мелких сервисов.

5. Преимущества клиент-серверной архитектуры

  1. Централизованное управление данными — все данные хранятся на сервере, что упрощает резервное копирование, обеспечение целостности и безопасности.

  2. Безопасность — можно организовать надёжную защиту на сервере (аутентификация, авторизация, шифрование), а клиентам давать только ограниченный доступ.

  3. Масштабируемость — можно наращивать мощность сервера (вертикальное масштабирование) или добавлять новые серверы (горизонтальное).

  4. Совместное использование ресурсов — клиенты могут пользоваться общими принтерами, файлами, базами данных.

  5. Снижение требований к клиентам — клиенты могут быть "тонкими", что удешевляет рабочие станции.

  6. Упрощение обновления — при изменениях в бизнес-логике достаточно обновить сервер, клиенты могут оставаться без изменений.

6. Недостатки и проблемы

  1. Единая точка отказа — если сервер выходит из строя, вся система перестаёт работать. Решается резервированием (кластеризацией).

  2. Сетевые проблемы — при плохой связи клиент не может работать. Решается созданием офлайн-режимов.

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

  4. Сложность разработки — нужно проектировать протоколы обмена, учитывать сетевые задержки, обрабатывать ошибки.

  5. Стоимость — мощные серверы и сетевое оборудование могут быть дорогими.

7. Примеры клиент-серверных систем

Пример 1: Веб-сайт (трёхуровневая)

  • Клиент: Браузер пользователя.

  • Сервер приложений: Веб-сервер с PHP/Node.js/Python, генерирующий HTML-страницы.

  • Сервер данных: MySQL/PostgreSQL.

Пример 2: Система "Клиент-банк"

  • Клиент: Мобильное приложение или веб-интерфейс на компьютере.

  • Сервер приложений: Сервер банка, реализующий бизнес-логику (проверка баланса, переводы).

  • Сервер данных: Основная база данных банка (Oracle, DB2), возможно, с дополнительными уровнями для безопасности.

Пример 3: 1С:Предприятие в файловом варианте

Это пример двухуровневой архитектуры с "толстым" клиентом:

  • Клиент: Программа 1С на компьютере пользователя (содержит и интерфейс, и бизнес-логику).

  • Сервер: Файловый сервер, где хранятся файлы баз данных 1С.

  • (В более новых версиях есть трёхуровневый вариант с сервером 1С).

Пример 4: Электронная почта

  • Клиент: Почтовый клиент (Outlook, Thunderbird) или веб-интерфейс (Gmail).

  • Серверы:

    • SMTP-сервер для отправки почты.

    • POP3/IMAP-сервер для получения почты.

    • DNS-серверы для поиска почтовых серверов.

8. Современные тенденции

  1. Облачные технологии — серверы физически находятся у облачных провайдеров (AWS, Azure, Google Cloud), клиенты подключаются через Интернет.

  2. Serverless — клиент-серверная модель, где серверная часть полностью управляется облачным провайдером, а разработчик пишет только функции (FaaS — Function as a Service).

  3. Микросервисы — дальнейшее развитие идеи многоуровневой архитектуры.

  4. WebSockets и другие технологии реального времени — сервер может инициировать отправку данных клиенту (push-уведомления), что немного нарушает классическую модель "клиент инициирует", но не отменяет её.