Перейти к основному содержимому

2. DataSpace Community Edition

Общее описание

DataSpace Community Edition (далее DataSpace CE) — это платформа с открытым исходным кодом для быстрой разработки приложений, основанная на принципах предметно-ориентированного проектирования (Domain-Driven Design, DDD). Платформа предоставляет инструменты для моделирования предметной области, автоматической генерации API и клиентских приложений.

✨ Ключевые возможности

  • Предметно-ориентированное моделирование — описание модели предметной области в формате XML
  • Автоматическая генерация API — создание GraphQL API на основе модели
  • Удобный web-интерфейс выполнения GraphQL-запросов — управление данными через встроенный интерфейс
  • Безопасность — поддержка современных механизмов авторизации и контроля доступа

📈 Преимущества использования

  • Скорость разработки — сокращение времени от идеи до создания готового приложения
  • Фокус на бизнес-логике — разработчики концентрируются на моделировании предметной области
  • Гибкость модели данных — возможность быстрого изменения и развития модели
  • Единый источник истины — модель данных служит основой для всех компонентов системы

🎯 Типовые сценарии использования

  • Разработка корпоративных приложений
  • Прототипирование и быстрая проверка бизнес-идей
  • Автоматизация внутренних бизнес-процессов компаний

Установка и запуск DataSpace CE с моделью медицинской клиники

Необходимые компоненты:

  • ☕ Open JDK 17+
  • 🐳 Docker и Docker Compose версии 2.29 и выше
    ⚠️ При установке Docker на Windows важно также установить WSL!

Установка и запуск DataSpace с моделью медицинской клиники

  1. Клонируйте репозиторий DataSpace CE:

    git clone https://gitverse.ru/sbertech/dataspace-ce.git
  2. Сохраните с заменой файл модели медицинской клиники, созданный специально для данного курса model.xml в директорию моделей dataspace-ce/files/resources/src-model/. Важно, чтобы имя файла модели было именно model.xml, при сохранении переименуйте его.

  3. Вернитесь в корень проекта DataSpace CE (dataspace-ce) и выполните команду:

    ./quickstart.sh

    В Docker будут созданы и запущены контейнеры, содержащие все необходимые компоненты для работы DataSpace CE. По окончании процесса запуска в командной строке будет выведена информация о созданных сервисах и доступах к ним:

    Также после запуска DataSpace CE по адресу http://localhost:8080/actuator/models становится доступен список всех запущенных моделей (сейчас это одна модель медицинской клиники):

    а по адресу http://localhost:8080/graphiql?path=/models/1/graphq предоставляется удобный web-интерфейс для работы с GraphQL-запросами:

    При работе с DataSpace также могут быть полезны следующие команды:

    • перезагрузка Dataspace выполняется той же командой что и запуск: ./quickstart.sh
    • остановка Docker, удаление всех данных: в папке docker выполните команду docker compose down -v

Архитектура комплексного демо-приложения

🗄️ DataSpace CE выступает в качестве серверной части и основного хранилища данных. DataSpace CE хранит информацию о клиниках, врачах, пациентах, расписаниях и записях на прием и др., используя в качестве хранилища базу данных PostgreSQL. При этом все серверные компоненты разворачиваются в контейнерах Docker

👥 Пользователи взаимодействуют с React-приложением, которое обращается к DataSpace CE для получения и обновления данных. При этом само это приложение создается с помощью автоматической кодогенерации на основе GraphQL-схемы модели данных предметной области DataSpace, а также к Keycloak для аутентификации и авторизации пользователей, обеспечивая безопасный доступ к функциональности системы в соответствии с ролями пользователей

🔐 Помимо front и back составляющих в проекте также присутствует интеграция IAM Keycloak для обеспечения управления идентификацией и доступом в системе. Администраторы IAM могут настраивать роли и права доступа, а система аутентификации проверяет учетные данные пользователей при входе в приложение, а также осуществляет доступ к данным на основе ролей и аттрибутов. При этом также задействуется механизм разрешений и проверок DataSpace CE.

📚 Ссылки