mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-10-31 18:21:58 +08:00
5.6 KiB
5.6 KiB
Module Dependency Map
This document describes the Maven module structure and dependency relationships.
Top-Level Modules
iot-dc3 (root pom)
+-- dc3-api <- Protobuf/gRPC API contracts
+-- dc3-common <- Reusable business libraries
+-- dc3-center <- Deployable center services
+-- dc3-driver <- Protocol drivers
+-- dc3-gateway <- Spring Cloud Gateway
dc3-api - gRPC Contract Layer
| Module | Description |
|---|---|
| dc3-api-auth | Auth protobuf: tenant, user, token |
| dc3-api-data | Data protobuf: point value read/write |
| dc3-api-driver | Driver protobuf: register, command |
| dc3-api-manager | Manager protobuf: device, profile, driver management |
dc3-common - Shared Business Libraries
Foundation Layer
| Module | Purpose |
|---|---|
| dc3-common-constant | Enums, constants, value objects |
| dc3-common-exception | Custom exception hierarchy (24+ classes) |
| dc3-common-public | R<T> wrapper, utility classes |
| dc3-common-model | BO/VO/DTO entity definitions |
| dc3-common-web | BaseController, WebFlux config |
| dc3-common-log | Request/response logging filter |
| dc3-common-thread | Thread pool configuration |
Data Access Layer
| Module | Purpose |
|---|---|
| dc3-common-dal | MyBatis-Plus mapper/repository |
| dc3-common-postgres | PostgreSQL datasource (dynamic multi-schema) |
| dc3-common-repository | File/blob storage abstraction |
Runtime caches use in-process Caffeine wrappers such as LocalCacheService; Redis is no longer a standalone module or
infrastructure dependency.
Communication Layer
| Module | Purpose |
|---|---|
| dc3-common-facade-api | Facade interfaces for cross-service calls |
| dc3-common-facade-grpc | gRPC client/server auto-configuration |
| dc3-common-facade-local | Local facade for dc3-center-single |
| dc3-common-rabbitmq | RabbitMQ exchange/queue config |
| dc3-common-mqtt | MQTT client configuration |
Domain Layer
| Module | Purpose | Key Dependencies |
|---|---|---|
| dc3-common-auth | Auth business logic | dc3-api-auth, dal, postgres, web |
| dc3-common-manager | Manager business logic | dc3-api-*, dal, facade-api, postgres, rabbitmq, quartz, web |
| dc3-common-data | Data business logic | dc3-api-*, dal, facade-api, postgres, rabbitmq, repository, quartz, web |
| dc3-common-driver | Driver SDK | dc3-api-driver, constant, exception, log, model, public, quartz, rabbitmq, thread |
| dc3-common-gateway | Gateway filter | facade-api, log, model, public, web |
| dc3-common-agentic | AI chat and tool logic | facade-api, postgres, web, Spring AI |
dc3-center - Deployable Services
| Service | Depends On | HTTP | gRPC |
|---|---|---|---|
| dc3-center-auth | dc3-common-auth | 8300 | 9300 |
| dc3-center-data | dc3-common-data, facade-grpc | 8500 | 9500 |
| dc3-center-manager | dc3-common-manager, facade-grpc | 8400 | 9400 |
| dc3-center-agentic | dc3-common-agentic, facade-grpc | 8600 | - |
| dc3-center-single | auth+manager+data (facade-local) | 8200 | 9200 |
dc3-driver - Protocol Drivers
All drivers depend on dc3-common-driver. Communicate with Manager via gRPC + RabbitMQ.
| Driver | Protocol |
|---|---|
| dc3-driver-virtual | Virtual device simulator (HTTP push) |
| dc3-driver-listening-virtual | Listening virtual driver (MQTT) |
| dc3-driver-modbus-tcp | Modbus TCP |
| dc3-driver-mqtt | MQTT (generic) |
| dc3-driver-opc-da | OPC DA (DCOM) |
| dc3-driver-opc-ua | OPC UA |
| dc3-driver-plcs7 | Siemens S7 (PLC) |
dc3-gateway
Depends on: dc3-common-gateway + dc3-common-facade-grpc.
Routes /api/v3/* to center services with StripPrefix=2 and Authentic filter, including /api/v3/agentic/**.
Runtime Flow
Client --> Gateway (8000) --> Auth/Manager/Data (REST)
| | |
v v v
dc3-common-* libs
| | |
v v v
PostgreSQL / RabbitMQ
in-process LocalCache (Caffeine)
|
v
dc3-driver (gRPC + MQ)