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 с моделью медицинской клиники
-
Клонируйте репозиторий DataSpace CE:
git clone https://gitverse.ru/sbertech/dataspace-ce.git -
Сохраните с заменой файл модели медицинской клиники, созданный специально для данного курса model.xml в директорию моделей
dataspace-ce/files/resources/src-model/. Важно, чтобы имя файла модели было именно model.xml, при сохранении переименуйте его. -
Вернитесь в корень проекта 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 выполняется той же командой что и запуск:
Архитектура комплексного демо-приложения
🗄️ DataSpace CE выступает в качестве серверной части и основного хранилища данных. DataSpace CE хранит информацию о клиниках, врачах, пациентах, расписаниях и записях на прием и др., используя в качестве хранилища базу данных PostgreSQL. При этом все серверные компоненты разворачиваются в контейнерах Docker
👥 Пользователи взаимодействуют с React-приложением, которое обращается к DataSpace CE для получения и обновления данных. При этом само это приложение создается с помощью автоматической кодогенерации на основе GraphQL-схемы модели данных предметной области DataSpace, а также к Keycloak для аутентификации и авторизации пользователей, обеспечивая безопасный доступ к функциональности системы в соответствии с ролями пользователей
🔐 Помимо front и back составляющих в проекте также присутствует интеграция IAM Keycloak для обеспечения управления идентификацией и доступом в системе. Администраторы IAM могут настраивать роли и права доступа, а система аутентификации проверяет учетные данные пользователей при входе в приложение, а также осуществляет доступ к данным на основе ролей и аттрибутов. При этом также задействуется механизм разрешений и проверок DataSpace CE.
