mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-10-31 10:11:49 +08:00
- expand single-line Javadocs to multi-line blocks, rewrap Markdown prose, and reflow POM, YAML, and TypeScript formatting - formatting only: no Java code lines changed, no build-file semantics changed - verified: backend compile and check_documentation.py pass, pnpm check and pnpm lint:check pass, and the dc3 YAML files parse
244 lines
18 KiB
Markdown
244 lines
18 KiB
Markdown
<p align="right">
|
||
<a href="./README.md">English</a> | <a href="./README.zh.md">中文</a> | <a href="./README.ja.md">日本語</a> | <a href="./README.vi.md">Tiếng Việt</a> | <a href="./README.ko.md">한국어</a> | <a href="./README.es.md">Español</a> | <a href="./README.ru.md">Русский</a>
|
||
</p>
|
||
|
||
> **ИИ-ассистенты:** Сначала прочитайте [README.ai.md](./README.ai.md) для краткого обзора IoT DC3, оптимизированного
|
||
> для ИИ.
|
||
|
||
<p align="center">
|
||
<img src="./.github/brand/png/banner.ru.png" alt="IoT DC3 — 多协议接入、云原生、AI 赋能的开源工业物联网平台,面向智能体演进">
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/pnoker/iot-dc3/stargazers">
|
||
<img src="https://img.shields.io/github/stars/pnoker/iot-dc3?style=flat&logo=github&color=green" alt="GitHub Stars">
|
||
</a>
|
||
<a href="https://gitee.com/pnoker/iot-dc3/stargazers">
|
||
<img src="https://gitee.com/pnoker/iot-dc3/badge/star.svg?theme=gvp" alt="Gitee Star">
|
||
</a>
|
||
<a href="https://gitee.com/pnoker/iot-dc3/members">
|
||
<img src="https://gitee.com/pnoker/iot-dc3/badge/fork.svg?theme=gvp" alt="Gitee Fork">
|
||
</a>
|
||
<a href="https://github.com/pnoker/iot-dc3/graphs/contributors">
|
||
<img src="https://img.shields.io/github/contributors/pnoker/iot-dc3?label=contributors&color=orange" alt="Contributors">
|
||
</a>
|
||
<img src="https://img.shields.io/badge/License-AGPL%203.0-blue" alt="License">
|
||
<img src="https://img.shields.io/badge/Java-21-orange?logo=openjdk" alt="Java 21">
|
||
<img src="https://img.shields.io/badge/Spring%20Boot-4.0-6DB33F?logo=springboot" alt="Spring Boot 4">
|
||
</p>
|
||
|
||
<p align="center">
|
||
<strong>
|
||
IoT DC3 — мультипротокольная, облачно-нативная открытая платформа промышленного Интернета вещей.<br>
|
||
С ИИ — от подключения устройств к промышленным агентам
|
||
</strong>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://dc3.site">https://dc3.site</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
🔌 <strong>Многопротокольное подключение</strong> ·
|
||
🤖 <strong>AI Agentic Center</strong> ·
|
||
☁️ <strong>Облачные микросервисы</strong>
|
||
</p>
|
||
|
||
---
|
||
|
||
## 📸 Превью продукта
|
||
|
||
<table>
|
||
<tr>
|
||
<th width="33%">📸 Обзор платформы</th>
|
||
<th width="33%">📸 Управление устройствами</th>
|
||
<th width="33%">📸 ИИ-чат</th>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">
|
||
<img src="https://docs.dc3.site/images/screenshot-overview.png" alt="Панель управления платформой" width="100%">
|
||
<br>
|
||
<strong>Главная / Панель управления</strong><br>
|
||
<em>Обзор системы · Статистика онлайн-устройств · Графики трендов данных</em>
|
||
</td>
|
||
<td align="center">
|
||
<img src="https://docs.dc3.site/images/screenshot-device.png" alt="Страница управления устройствами" width="100%">
|
||
<br>
|
||
<strong>Управление устройствами</strong><br>
|
||
<em>Список устройств · Статус онлайн · Поиск и фильтрация</em>
|
||
</td>
|
||
<td align="center">
|
||
<img src="https://docs.dc3.site/images/screenshot-ai.png" alt="Страница ИИ-чата" width="100%">
|
||
<br>
|
||
<strong>ИИ-чат</strong><br>
|
||
<em>Запросы устройств на естественном языке · Анализ данных · Интеллектуальная помощь</em>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
## 🏗️ Обзор архитектуры
|
||
|
||
### Архитектура на одном экране
|
||
|
||

|
||
|
||
Шестиуровневая микросервисная архитектура: клиенты → шлюз → четыре центральных сервиса → шина сообщений → 36
|
||
протокольных драйверов → полевые устройства. PostgreSQL (TimescaleDB + pgvector + AGE) для хранения и опциональный стек
|
||
наблюдаемости (ELK + Prometheus + Grafana) — всё на одном чертеже.
|
||
|
||
🧱 **Принципы проектирования** — межсервисные вызовы всегда через интерфейсы Facade; трёхслойная модель DO/BO/VO строго
|
||
разделяет хранение, бизнес-логику и API; изоляция арендаторов от базы данных и кэша до API。Чёткие границы,
|
||
масштабируемые между сервисами и командами.
|
||
|
||
> 📖 Подробная документация по архитектуре:
|
||
> [Обзор системной архитектуры](https://docs.dc3.site/en/architecture/).
|
||
|
||
## ✨ Основные возможности
|
||
|
||
### 🔌 Многопротокольное подключение устройств
|
||
|
||
IoT DC3 включает **36 модулей драйверов доступа** для промышленной автоматизации, IoT-коммуникаций, мостовой передачи
|
||
данных, базовых коммуникаций и сценариев моделирования/отладки, снижая стоимость подключения распространённых устройств
|
||
и источников данных:
|
||
|
||
| Категория | Модули драйверов |
|
||
|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
| 🏭 **Промышленные протоколы** | Modbus TCP · Modbus RTU · OPC UA · OPC DA · Siemens S7 · BACnet/IP · EtherNet/IP · Omron FINS · Mitsubishi MELSEC · IEC 60870-5-104 · IEC 61850 · DNP3 · DLMS · DLT645 · KNX · M-Bus · SL651 |
|
||
| 📡 **IoT-протоколы** | MQTT · CoAP · LwM2M · HTTP · BLE · Zigbee · LoRaWAN |
|
||
| 🗄️ **Мостовая передача данных** | MySQL · PostgreSQL · Oracle · SQL Server · Redis |
|
||
| 🔧 **Базовые коммуникации и управление** | TCP/UDP · Serial · SNMP · CAN · Kafka |
|
||
| 🧪 **Моделирование и отладка** | Virtual · Listening Virtual |
|
||
|
||
**Driver SDK** поддерживает быструю разработку пользовательских протокольных драйверов и их регистрацию в среде
|
||
выполнения платформы.
|
||
|
||
### 🤖 Интеграция ИИ-возможностей
|
||
|
||
Центр интеллектуальных агентов построен на **Spring AI** и подключает большие языковые модели к рабочим процессам
|
||
эксплуатации IoT:
|
||
|
||
- **Операционная поддержка на естественном языке** — LLM через Tool Calling и под контролем доступа может запрашивать
|
||
устройства, читать/записывать точки данных и помогать с выполнением команд
|
||
- **Интеллектуальный анализ аварий** — ИИ помогает с анализом корневых причин и предложениями по реагированию
|
||
- **Аналитика данных** — запросы данных устройств на естественном языке с генерацией визуальных графиков
|
||
- **Поддержка нескольких моделей** — совместимость с провайдерами в стиле OpenAI API и ведущими моделями, такими как
|
||
GPT, Claude, DeepSeek и Qwen
|
||
- **Память диалога** — многошаговые диалоги и контекстная память, сохраняемые в базе данных
|
||
|
||
### 🏗️ Облачные микросервисы
|
||
|
||
Распределённая микросервисная архитектура на базе **Spring Boot 4 + Spring Cloud 2025**:
|
||
|
||
- **Управление сервисами** — Spring Cloud Gateway как единая точка входа со статическими маршрутами и гибкой настройкой
|
||
через переменные окружения
|
||
- **Эффективная коммуникация** — межсервисные вызовы через gRPC с сериализацией Protobuf
|
||
- **Горизонтальное масштабирование** — бездизайновый дизайн для масштабирования отдельных сервисов по нагрузке
|
||
- **Отказоустойчивость** — заменяемые узлы сервисов и изоляция сбоев
|
||
|
||
### 📊 Движок данных реального времени
|
||
|
||
- **Сбор данных** — драйверы собирают телеметрию устройств и передают асинхронно через RabbitMQ
|
||
- **Хранение временных рядов** — эффективные запросы для данных реального времени и истории
|
||
- **Движок правил** — гибкие правила аварий с многоуровневыми уведомлениями
|
||
- **Проследимость событий** — полная история команд и событий
|
||
|
||
### 🔐 Корпоративная безопасность и мультитенантность
|
||
|
||
- **Изоляция арендаторов** — изоляция на уровне арендаторов от базы данных и кэша до API
|
||
- **Аутентификация и авторизация** — JWT + Spring Security с моделью RBAC
|
||
- **Шифрование передачи** — поддержка TLS/SSL
|
||
- **Аудиторский трекинг** — журналы операций пользователей и системных событий
|
||
|
||
### 🧩 Удобство для разработчиков
|
||
|
||
- **Driver SDK** — полный набор инструментов для разработки драйверов. См.
|
||
[Руководство по созданию драйверов](https://docs.dc3.site/en/development/driver-authoring)
|
||
- **Разделение фронтенда и бэкенда** — фронтенд на Vue 3 + TypeScript, API RESTful и gRPC
|
||
- **Контейнеризированное развёртывание** — запуск одной командой через Podman / Docker Compose, с возможностью миграции
|
||
на Kubernetes и другие контейнерные платформы
|
||
- **Полная документация** — онлайн-документация, руководство по быстрому старту и руководство по устранению неполадок
|
||
|
||
## ⚡ Быстрый старт
|
||
|
||
Для локальной разработки из исходного кода запустите PostgreSQL и RabbitMQ, загрузите локальные переменные окружения,
|
||
затем соберите проект:
|
||
|
||
```bash
|
||
make up-db
|
||
source dc3/env/dev.env.sh
|
||
mvn -s .mvn/settings.xml clean package
|
||
```
|
||
|
||
Если вы находитесь в материковом Китае, используйте `make up-db-cn` для реестра Alibaba Cloud.
|
||
|
||
> 📖 Порядок запуска сервисов, настройка IDE, команды верификации и типичные подводные камни см. в
|
||
> [Полное руководство по быстрому старту](https://docs.dc3.site/en/quickstart/).
|
||
|
||
## 🛠️ Технологический стек
|
||
|
||
IoT DC3 построен на Java 21, Spring Boot 4, Spring Cloud 2025, Spring AI 2, PostgreSQL, RabbitMQ, gRPC, Vue 3,
|
||
TypeScript и Vite.
|
||
|
||
Подробности о компонентах и их использовании см.
|
||
в [Технологический стек](https://docs.dc3.site/en/development/technology-stack).
|
||
|
||
## 📖 Документация и сообщество
|
||
|
||
| Ресурс | Ссылка |
|
||
|-------------------------|--------------------------------------------------------------------------------------------|
|
||
| 📚 Онлайн-документация | [docs.dc3.site](https://docs.dc3.site/) |
|
||
| 🚀 Быстрый старт | [Руководство по быстрому старту](https://docs.dc3.site/en/quickstart/) |
|
||
| 🛠️ Технологический стек | [Technology Stack](https://docs.dc3.site/en/development/technology-stack) |
|
||
| 🏗️ Архитектура | [Модули и зависимости](https://docs.dc3.site/en/architecture/modules) |
|
||
| 🔧 Разработка драйверов | [Руководство по созданию драйверов](https://docs.dc3.site/en/development/driver-authoring) |
|
||
| 🐛 Устранение неполадок | [Устранение неполадок](https://docs.dc3.site/en/guide/troubleshooting) |
|
||
| 📋 Журнал изменений | [Журнал релизов](https://docs.dc3.site/en/development/changelog) |
|
||
| 🐛 Сообщить об ошибке | [GitHub Issues](https://github.com/pnoker/iot-dc3/issues) |
|
||
| 🇨🇳 Зеркало Gitee | [Gitee GVP проект](https://gitee.com/pnoker/iot-dc3) |
|
||
|
||
## 🌍 Сценарии применения
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="60">🏭</td>
|
||
<td><strong>Умное производство</strong></td>
|
||
<td>Мониторинг оборудования на производственных линиях, сбор параметров процесса, предиктивное обслуживание, анализ OEE</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">⚡</td>
|
||
<td><strong>Мониторинг энергии</strong></td>
|
||
<td>Дистанционный учёт электроэнергии, воды и газа; анализ трендов энергопотребления; аномальные оповещения</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">🌾</td>
|
||
<td><strong>Умное сельское хозяйство</strong></td>
|
||
<td>Мониторинг теплиц, автоматическое управление поливом, предупреждение о вредителях и болезнях, прогноз урожайности</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">🏙️</td>
|
||
<td><strong>Умный город</strong></td>
|
||
<td>Управление уличным освещением, мониторинг качества окружающей среды, эксплуатация муниципальных объектов, мониторинг безопасности</td>
|
||
</tr>
|
||
</table>
|
||
|
||
## 🤝 Участие в разработке
|
||
|
||
Мы приветствуем вклад в любом виде. Пожалуйста, следуйте этому рабочему процессу:
|
||
|
||
1. **Fork и ветка** — создайте ветку от `main`, используя формат `feature/your_name/feature_description`
|
||
(например: `feature/pnoker/mqtt_driver`)
|
||
2. **Разработка и коммит** — завершите изменения на новой ветке и следуйте спецификации
|
||
[Conventional Commits](https://www.conventionalcommits.org/)
|
||
3. **Открытие PR** —подайте Pull Request в ветку `develop` для рецензирования и слияния сопровождающими
|
||
|
||
## 📄 Лицензия
|
||
|
||
IoT DC3 — проект с открытым исходным кодом под лицензией [AGPL 3.0](./LICENSE-AGPL.txt).
|
||
|
||
- ✅ **Личное обучение, исследования и внутреннее использование** — бесплатно
|
||
- ✅ **Изменение кода и публикация ваших изменений** — приветствуется
|
||
- ⚠️ **Предоставление в качестве коммерческой услуги третьим лицам без публикации изменений** — требуется коммерческая
|
||
лицензия
|
||
|
||
Подробности о коммерческой лицензии см. в [LICENSE.txt](./LICENSE.txt).
|