Update READMEs, guides, USAGE and the stack-test skill to use the up-<stack>[-<registry>] targets in place of the removed dev-* commands.
17 KiB
English | 中文 | 日本語 | Tiếng Việt
AI assistants: Read README.ai.md first for a concise, AI-friendly overview of IoT DC3.
IoT DC3 は、AI シナリオに向けて進化するオープンソースの分散型 IoT プラットフォームです。
デバイス接続、データ収集、運用管理、インテリジェント分析をカバーし、産業 IoT ソリューションの構築を支援します。
🔌 28 個の接続ドライバーモジュール · 🤖 AI 機能統合 · ☁️ クラウドネイティブマイクロサービス
📸 プロダクトプレビュー
| 📸 プラットフォーム概要 | 📸 デバイス管理 | 📸 AI チャット |
|---|---|---|
ホーム / ダッシュボード システム概要 · デバイスオンライン統計 · データトレンドチャート |
デバイス管理 デバイス一覧 · オンライン状態 · 検索とフィルタ |
AI チャット 自然言語によるデバイス操作 · データクエリ · インテリジェント分析 |
✨ 主な機能
🔌 マルチプロトコルデバイス接続
IoT DC3 は 28 個の接続ドライバーモジュールを内蔵し、産業オートメーション、IoT 通信、データブリッジ、基本通信、シミュレーションとデバッグのシナリオをカバーします。一般的なデバイスやデータソースの接続コストを下げます。
| 分類 | ドライバーモジュール |
|---|---|
| 🏭 産業プロトコル | Modbus TCP · Modbus RTU · OPC UA · OPC DA · Siemens S7 · BACnet/IP · EtherNet/IP · Omron FINS · Mitsubishi MELSEC · IEC 60870-5-104 · SL651 · DLMS |
| 📡 IoT プロトコル | MQTT · CoAP · LwM2M · HTTP · BLE · Zigbee |
| 🗄️ データブリッジ | MySQL · PostgreSQL · Oracle · SQL Server |
| 🔧 基本通信とネットワーク管理 | TCP/UDP · Serial · SNMP · CAN |
| 🧪 シミュレーションとデバッグ | Virtual · Listening Virtual |
Driver SDK により、カスタムプロトコルドライバーをすばやく開発し、実行中のプラットフォームへ登録できます。
🤖 AI 機能統合
Spring AI ベースの Agentic Center により、大規模言語モデルを IoT 運用ワークフローへ接続します。
- 自然言語によるデバイス操作 - LLM が Tool Calling を通じてデバイス照会、ポイント読み書き、コマンド実行を行えます
- インテリジェントなアラーム分析 - AI が原因分析と対応提案を支援します
- データインサイト - 自然言語でデバイスデータを照会し、可視化チャートを生成します
- 複数モデル対応 - 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 - 充実したドライバー開発ツールキットです。ドライバー開発ガイド を参照してください
- フロントエンド / バックエンド分離 - Vue 3 + TypeScript フロントエンド、RESTful + gRPC API
- コンテナ化デプロイ - Podman / Docker Compose でワンコマンド起動でき、Kubernetes などのコンテナプラットフォームへ移行しやすい構成です
- ドキュメント整備 - オンラインドキュメント、クイックスタート、トラブルシューティングガイド
⚡ クイックスタート
前提条件
| 依存関係 | バージョン |
|---|---|
| Java (JDK) | 21+ |
| Maven | 3.9+ |
| Podman または Docker | 最新安定版 |
3 ステップで起動
① リポジトリをクローン
git clone https://github.com/pnoker/iot-dc3.git
cd iot-dc3
② 基本依存関係を起動(PostgreSQL + RabbitMQ)
# グローバルレジストリ
make up-db
# 中国大陸のユーザー向け(Alibaba Cloud レジストリ)
make up-db-cn
③ ローカル環境変数を読み込み、ビルドして起動
source dc3/env/dev.env.sh
mvn -s .mvn/settings.xml clean package
dc3/env/dev.env.sh は、ローカル Java プロセスを localhost に公開された PostgreSQL、RabbitMQ、gRPC ポートへ接続します。
以降の java -jar コマンドは同じターミナルセッションで実行してください。
順番にサービスを起動します。
java -jar dc3-gateway/target/dc3-gateway.jar # API ゲートウェイ
java -jar dc3-center/dc3-center-auth/target/dc3-center-auth.jar # 認証センター
java -jar dc3-center/dc3-center-manager/target/dc3-center-manager.jar # 管理センター
java -jar dc3-center/dc3-center-data/target/dc3-center-data.jar # データセンター
java -jar dc3-center/dc3-center-agentic/target/dc3-center-agentic.jar # AI Agentic Center
java -jar dc3-driver/dc3-driver-virtual/target/dc3-driver-virtual.jar # デモ用仮想ドライバー
🔧 その他の起動オプション(任意依存関係、単一サービス起動、環境変数)
任意のインフラを起動(EMQX、ELK/APM、Prometheus、Grafana など):
make up-optional-cn # 任意依存関係を起動
make up-db-cn && make up-optional-cn && make up-dev-cn # すべての依存関係を起動
必要なサービスだけ起動(フロントエンド / API テスト向け):
make up SERVICES=agentic REGISTRY=cn # 単一サービス
make up SERVICES="gateway agentic" REGISTRY=cn # 複数サービス
make up GROUP=core REGISTRY=cn # コアサービスグループ
make up GROUP=drivers REGISTRY=cn # ドライバーサービスグループ
make logs SERVICES="gateway agentic" # ログを確認
Compose 環境変数の上書き:
cp .env.example .env # テンプレートをコピー
ルート .env は、イメージレジストリ、イメージタグ、公開ポートなど Compose の変数展開に使われます。
アプリケーション実行時の変数は dc3/env/dev.env
で設定します。詳しくは環境変数ドキュメントを参照してください。
🏗️ アーキテクチャ概要
| 層 | 役割 |
|---|---|
| ドライバー層 | SDK によるドライバー開発、標準 / 独自プロトコルのデバイス接続、南向きデータ収集とコマンド実行 |
| データ層 | デバイスデータの収集、保存、クエリ。リアルタイムデータと履歴データサービスを支えます |
| 管理層 | マイクロサービス連携の中核。サービス登録、デバイス / ドライバー管理、コマンド編成、設定管理 |
| アプリケーション層 | データ公開、タスクスケジューリング、アラーム、ログ管理、サードパーティ統合、AI 自動化 |
📖
詳細なモジュール依存関係とランタイムフローについては、モジュールと依存関係
を参照してください。
🛠️ 技術スタック
| 分類 | 技術 |
|---|---|
| 言語とフレームワーク | Java 21 · Spring Boot 4 · Spring Cloud 2025 · Spring AI 2.0 |
| データ、キャッシュ、スケジューリング | PostgreSQL · Caffeine · MyBatis-Plus · Quartz |
| メッセージングと通信 | RabbitMQ · gRPC · MQTT (Paho + EMQX) · Protobuf |
| セキュリティと認証 | Spring Security · JWT · BouncyCastle |
| 可観測性 | Micrometer · Prometheus · Grafana · ELK |
| フロントエンド | Vue 3 · TypeScript 6 · Vite 8 · Element Plus · AntV G2/G6 |
| デスクトップ | Tauri 2 |
| デプロイ | Podman · Docker Compose |
💡 フロントエンドのソースコードは iot-dc3-web リポジトリにあります。
📖 ドキュメントとコミュニティ
| リソース | リンク |
|---|---|
| 📚 オンラインドキュメント | pnoker.github.io/iot-dc3 |
| 🚀 クイックスタート | クイックスタートガイド |
| 🏗️ アーキテクチャ | モジュールと依存関係 |
| 🔧 ドライバー開発 | ドライバー開発ガイド |
| 🐛 トラブルシューティング | よくある問題と解決策 |
| 📋 変更履歴 | リリース変更履歴 |
| 🐛 問題報告 | GitHub Issues |
| 🇨🇳 Gitee ミラー | Gitee GVP プロジェクト |
🌍 ユースケース
| 🏭 | スマートファクトリー | 生産ライン設備の状態監視、工程パラメータ収集、予知保全、OEE 分析 |
| ⚡ | エネルギー監視 | 電力 / 水道 / ガスの遠隔検針、エネルギー傾向分析、異常アラーム |
| 🌾 | スマート農業 | 温室環境監視、自動灌漑制御、病害虫警告、収量予測 |
| 🏙️ | スマートシティ | 街路灯管理、環境品質監視、公共施設運用、安全監視 |
🤝 コントリビューション
あらゆる形のコントリビューションを歓迎します。以下の流れに従ってください。
- Fork とブランチ作成 -
mainからブランチを作成し、feature/your_name/feature_description形式で命名します (例:feature/pnoker/mqtt_driver) - 開発とコミット - 新しいブランチで変更を完了し、Conventional Commits 仕様に従います
- PR 作成 -
developブランチへ Pull Request を提出し、メンテナーのレビューとマージを受けます
📄 ライセンス
IoT DC3 は AGPL 3.0 ライセンスの下でオープンソースとして公開されています。
- ✅ 個人学習、研究、内部利用 - 無料
- ✅ コードを変更し、その変更をオープンソース化すること - 歓迎します
- ⚠️ 変更を公開せず第三者向け商用サービスとして提供する場合 - 商用ライセンスが必要です
商用ライセンスの詳細は LICENSE.txt を参照してください。



