Какие основные модели клиент-серверной архитектуры существуют?

«Какие основные модели клиент-серверной архитектуры существуют?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Клиент-серверная архитектура организуется в различные многоуровневые (tier) модели в зависимости от разделения ответственности.

Ключевые модели:

  1. Двухзвенная архитектура (2-Tier) Прямое взаимодействие клиента с сервером базы данных.

    • Клиент (Presentation + Business Logic)Сервер БД (Data Tier)
    • Пример: Толстый клиент (десктоп-приложение), подключающийся напрямую к PostgreSQL.
  2. Трехзвенная архитектура (3-Tier) Наиболее распространенная модель с четким разделением слоев.

    • Презентационный слой (Frontend): Отображает UI (браузер, мобильное приложение).
    • Слой бизнес-логики (Backend): Обрабатывает запросы, выполняет правила приложения.
    • Слой данных (Database): Хранит и управляет данными.
      // Пример слоя бизнес-логики (Node.js/Express)
      app.post('/api/orders', authenticateUser, (req, res) => {
      // 1. Валидация данных (бизнес-правило)
      const { items } = req.body;
      if (!items || items.length === 0) {
      return res.status(400).json({ error: 'Корзина пуста' });
      }
      // 2. Обращение к слою данных
      db.query('INSERT INTO orders ...', [items], (error, result) => {
      if (error) { /* обработка ошибки БД */ }
      // 3. Ответ презентационному слою
      res.status(201).json({ orderId: result.insertId });
      });
      });
  3. N-звенная архитектура (N-Tier) Расширение 3-tier, где слой бизнес-логики или данных может быть разбит на несколько независимых сервисов (например, отдельный сервис кеширования, сервис аутентификации, микросервисы).

Смежные модели:

  • Тонкий клиент (Thin Client): Минимальная логика на клиенте (веб-браузер, терминал).
  • Толстый клиент (Fat Client): Большая часть логики выполняется на стороне клиента (десктоп-приложения, SPA с тяжелой клиентской логикой).
  • Одноранговая сеть (Peer-to-Peer, P2P): Альтернативная архитектура, где узлы равноправны и могут быть как клиентами, так и серверами.