УП.05: Разработка модели архитектуры ИС

на примере "Интернет-магазин"

Цель проекта

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

1. Выбор типа архитектуры

Для веб-приложений, таких как интернет-магазин, наиболее распространена трехуровневая (трехзвенная) архитектура. Она обеспечивает модульность, масштабируемость и безопасность.

Уровень 1 (Presentation Layer)

Клиентская часть (то, что видит пользователь в браузере)

Уровень 2 (Business Logic Layer)

Серверная часть (мозг системы, где выполняются все операции)

Уровень 3 (Data Access Layer)

Уровень данных (где хранится информация)

2. Декомпозиция архитектуры на модели

Одной картинкой архитектуру не описать. Нужно создать несколько взаимосвязанных моделей.

1Контекстная диаграмма

Задача: Показать, с какими внешними системами и субъектами будет взаимодействовать наша ИС.

  • Покупатель: Взаимодействует с системой через браузер
  • Платежный шлюз: Внешняя система для приема платежей
  • Курьерская служба: Передача данных о доставке
  • Администратор магазина: Управление контентом и заказами

2Компонентная диаграмма

Задача: Показать основные программные модули системы и связи между ними.

  • Frontend: Клиентское приложение (React, Vue.js)
  • Backend: API Gateway и модули системы
  • Уровень данных: Базы данных и хранилища

3Физическая архитектура

Задача: Показать развертывание компонентов на серверах.

  • Балансировщик нагрузки
  • Веб-серверы (Nginx)
  • Серверы приложений
  • Кластер БД

4Модель данных

Задача: Показать структуру базы данных — сущности и связи.

  • ER-диаграмма
  • Сущности и атрибуты
  • Связи между таблицами

Компоненты системы

Frontend (Клиентское приложение)

  • Отображение интерфейса (React, Vue.js)
  • Пользовательский интерфейс
  • Клиентская валидация

Backend (Серверное приложение)

  • API Gateway - единая точка входа
  • Модуль аутентификации (Auth)
  • Модуль каталога (Catalog)
  • Модуль заказов (Order)
  • Модуль оплаты (Payment)
  • Модуль уведомлений (Notification)

Уровень данных

  • База данных (PostgreSQL/MySQL)
  • Кеш (Redis)
  • Файловое хранилище (S3)

Физическая архитектура

flowchart TD
    subgraph Internet [Интернет]
        direction LR
        A1[Пользователи]
        A2[Администраторы]
    end

    subgraph DMZ [Демилитаризованная зона DMZ]
        B1[Балансировщик нагрузки Load Balancer]
    end

    subgraph InternalNetwork [Внутренняя сеть]
        subgraph WebTier [Веб-уровень]
            C1[Веб-сервер 1 Nginx]
            C2[Веб-сервер 2 Nginx]
        end

        subgraph AppTier [Уровень приложений]
            D1[Сервер приложений 1 Node.js/Docker]
            D2[Сервер приложений 2 Node.js/Docker]
        end

        subgraph DataTier [Уровень данных]
            E1[Кластер БД PostgreSQL]
            E2[Сервер кеша Redis]
        end
    end

    Internet --> DMZ
    DMZ --> WebTier
    WebTier --> AppTier
    AppTier --> DataTier
                

Оформление отчета по УП.05

Эта работа покажет, что вы понимаете не только что делать, но и как это должно быть реализовано на практике.