Update architecture.md
This commit is contained in:
parent
fe2afb62ba
commit
40b8256cad
303
architecture.md
303
architecture.md
@ -1,264 +1,81 @@
|
|||||||
# COGNITIVE AI MANUFACTURING AGENT (IOT INDUSTRY AUTOMATION)
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TB
|
graph TB
|
||||||
%% IoT Device Layer
|
%% IoT Sensors
|
||||||
subgraph "IoT Device Layer"
|
subgraph "IoT Sensors"
|
||||||
A1[Temperature Sensors<br/>°C Monitoring]
|
A1[Temp/Pressure/Vibration<br/>Flow/Speed/Level]
|
||||||
A2[Pressure Sensors<br/>Bar/PSI Readings]
|
|
||||||
A3[Vibration Sensors<br/>Accelerometer Data]
|
|
||||||
A4[Flow Sensors<br/>Liquid/Gas Flow]
|
|
||||||
A5[Proximity Sensors<br/>Position Detection]
|
|
||||||
A6[Current Sensors<br/>Power Consumption]
|
|
||||||
A7[Speed Sensors<br/>RPM Monitoring]
|
|
||||||
A8[Level Sensors<br/>Tank/Container Levels]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Edge Computing Layer
|
%% Edge Processing
|
||||||
subgraph "Edge Computing Layer"
|
subgraph "Edge Layer"
|
||||||
B1[Edge Gateway<br/>Local Processing]
|
B1[Edge Gateway<br/>Data Validation]
|
||||||
B2[Data Validation<br/>Quality Checks]
|
B2[MQTT Broker<br/>Protocol Convert]
|
||||||
B3[Local Cache<br/>Temporary Storage]
|
|
||||||
B4[Protocol Conversion<br/>Modbus/OPC-UA to MQTT]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Communication Protocol Layer
|
%% Stream Processing
|
||||||
subgraph "MQTT Communication Layer"
|
subgraph "DataStreamX"
|
||||||
C1[MQTT Broker<br/>Message Distribution]
|
C1[Real-time Ingestion]
|
||||||
C2[Topic Management<br/>Sensor/alerts/commands]
|
C2[Pattern Detection]
|
||||||
C3[QoS Handling<br/>Message Reliability]
|
C3[Data Enrichment]
|
||||||
C4[Security Layer<br/>TLS/SSL Encryption]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% DataStreamX Processing Layer
|
%% Event Streaming
|
||||||
subgraph "DataStreamX (Apache StreamPipes)"
|
subgraph "Kafka"
|
||||||
D1[Data Ingestion<br/>Real-time Collection]
|
D1[Event Topics<br/>sensor-data/alerts]
|
||||||
D2[Stream Processing<br/>Data Transformation]
|
D2[Consumer Groups]
|
||||||
D3[Data Enrichment<br/>Context Addition]
|
|
||||||
D4[Pattern Detection<br/>Anomaly Identification]
|
|
||||||
D5[Data Routing<br/>Multiple Destinations]
|
|
||||||
D6[Buffer Management<br/>Peak Load Handling]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Apache Kafka Event Streaming
|
%% AI Engine
|
||||||
subgraph "Apache Kafka Event Streaming"
|
subgraph "AI Processing"
|
||||||
E1[Producer API<br/>Event Publishing]
|
E1[Anomaly Detection]
|
||||||
E2[Topic Partitions<br/>sensor-data<br/>alerts<br/>commands<br/>system-logs]
|
E2[Predictive Maintenance]
|
||||||
E3[Consumer Groups<br/>AI Agents<br/>Dashboard<br/>Archive]
|
E3[Decision Engine]
|
||||||
E4[Event Store<br/>Message Persistence]
|
|
||||||
E5[Stream Processing<br/>Kafka Streams]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% AI Processing Engine
|
%% Actions
|
||||||
subgraph "AI Processing Engine"
|
subgraph "Actions"
|
||||||
F1[Node.js AI Agent<br/>Real-time Processing]
|
F1{Critical?}
|
||||||
F2[Python AI Agent<br/>ML Analytics]
|
F2[Emergency Stop]
|
||||||
F3[Anomaly Detection<br/>Statistical Models]
|
F3[Auto-Fix]
|
||||||
F4[Predictive Maintenance<br/>Failure Prediction]
|
F4[Optimization]
|
||||||
F5[Pattern Recognition<br/>Trend Analysis]
|
|
||||||
F6[Decision Tree<br/>Action Classification]
|
|
||||||
F7[Machine Learning<br/>Continuous Learning]
|
|
||||||
F8[Rule Engine<br/>Business Logic]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Decision & Action Layer
|
%% Notifications
|
||||||
subgraph "Decision & Action Layer"
|
subgraph "HookPilot"
|
||||||
G1{Critical Alert?}
|
G1[Workflow Engine]
|
||||||
G2{Self-Healing Enabled?}
|
G2[Multi-channel<br/>Telegram/Email/Slack]
|
||||||
G3[Emergency Shutdown<br/>Safety Protocol]
|
|
||||||
G4[Auto-Fix Actions<br/>Parameter Adjustment]
|
|
||||||
G5[Equipment Control<br/>Start/Stop/Adjust]
|
|
||||||
G6[Maintenance Schedule<br/>Preventive Actions]
|
|
||||||
G7[Optimization<br/>Performance Tuning]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% HookPilot Notification System
|
%% Dashboard
|
||||||
subgraph "HookPilot (ActivePieces) Automation"
|
subgraph "React Dashboard"
|
||||||
H1[Webhook Receiver<br/>Event Processing]
|
H1[Real-time Monitor]
|
||||||
H2[Workflow Engine<br/>Automation Rules]
|
H2[Analytics]
|
||||||
H3[Multi-channel Dispatch<br/>Notification Routing]
|
H3[Control Panel]
|
||||||
H4[Template Engine<br/>Message Formatting]
|
|
||||||
H5[Retry Mechanism<br/>Delivery Guarantee]
|
|
||||||
H6[Integration APIs<br/>Third-party Services]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% External Notification Channels
|
%% Storage
|
||||||
subgraph "External Notification Channels"
|
subgraph "Storage"
|
||||||
I1[Telegram Bot<br/>Instant Alerts]
|
I1[Time Series DB]
|
||||||
I2[Email System<br/>SMTP Delivery]
|
I2[Event Store]
|
||||||
I3[Slack Integration<br/>Team Notifications]
|
|
||||||
I4[SMS Gateway<br/>Critical Alerts]
|
|
||||||
I5[WhatsApp API<br/>Mobile Alerts]
|
|
||||||
I6[Custom Webhooks<br/>API Endpoints]
|
|
||||||
I7[Mobile Push<br/>App Notifications]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% React Dashboard Interface
|
%% Learning Loop
|
||||||
subgraph "React Dashboard Interface"
|
subgraph "ML Loop"
|
||||||
J1[Real-time Monitoring<br/>Live Data Display]
|
J1[Performance Metrics]
|
||||||
J2[System Overview<br/>Health Status]
|
J2[Model Retraining]
|
||||||
J3[Alert Management<br/>Acknowledge/Dismiss]
|
|
||||||
J4[Analytics Dashboard<br/>Charts & Graphs]
|
|
||||||
J5[Device Configuration<br/>Settings Panel]
|
|
||||||
J6[User Management<br/>Access Control]
|
|
||||||
J7[Historical Reports<br/>Trend Analysis]
|
|
||||||
J8[Control Panel<br/>Manual Override]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Data Storage Layer
|
%% Connections
|
||||||
subgraph "Data Storage & Analytics"
|
A1 --> B1 --> B2 --> C1
|
||||||
K1[Time Series Database<br/>Sensor History]
|
C1 --> C2 --> C3 --> D1
|
||||||
K2[Event Store<br/>Action Logs]
|
D1 --> D2 --> E1
|
||||||
K3[Configuration DB<br/>System Settings]
|
E1 --> E2 --> E3 --> F1
|
||||||
K4[User Database<br/>Authentication]
|
F1 -->|Yes| F2
|
||||||
K5[ML Model Store<br/>Trained Models]
|
F1 -->|No| F3 --> F4
|
||||||
K6[Backup System<br/>Data Recovery]
|
F2 --> G1
|
||||||
end
|
F3 --> G1
|
||||||
|
F4 --> G1
|
||||||
%% Feedback Loop
|
G1 --> G2
|
||||||
subgraph "Feedback & Learning Loop"
|
D2 --> H1 --> H2
|
||||||
L1[Performance Metrics<br/>System KPIs]
|
H3 --> F3
|
||||||
L2[Model Retraining<br/>Continuous Learning]
|
C3 --> I1
|
||||||
L3[Threshold Adjustment<br/>Dynamic Tuning]
|
E3 --> I2
|
||||||
L4[Rule Optimization<br/>Logic Refinement]
|
H2 --> J1 --> J2 --> E1
|
||||||
end
|
|
||||||
|
|
||||||
%% Data Flow Connections
|
|
||||||
A1 --> B1
|
|
||||||
A2 --> B1
|
|
||||||
A3 --> B1
|
|
||||||
A4 --> B1
|
|
||||||
A5 --> B2
|
|
||||||
A6 --> B2
|
|
||||||
A7 --> B3
|
|
||||||
A8 --> B4
|
|
||||||
|
|
||||||
B1 --> C1
|
|
||||||
B2 --> C2
|
|
||||||
B3 --> C3
|
|
||||||
B4 --> C4
|
|
||||||
|
|
||||||
C1 --> D1
|
|
||||||
C2 --> D2
|
|
||||||
C3 --> D3
|
|
||||||
C4 --> D4
|
|
||||||
|
|
||||||
D1 --> D5
|
|
||||||
D2 --> D5
|
|
||||||
D3 --> D6
|
|
||||||
D4 --> E1
|
|
||||||
D5 --> E1
|
|
||||||
D6 --> E1
|
|
||||||
|
|
||||||
E1 --> E2
|
|
||||||
E2 --> E3
|
|
||||||
E3 --> F1
|
|
||||||
E3 --> F2
|
|
||||||
E4 --> E5
|
|
||||||
E5 --> F7
|
|
||||||
|
|
||||||
F1 --> F3
|
|
||||||
F2 --> F4
|
|
||||||
F3 --> F6
|
|
||||||
F4 --> F5
|
|
||||||
F5 --> F8
|
|
||||||
F6 --> G1
|
|
||||||
F7 --> F8
|
|
||||||
F8 --> G1
|
|
||||||
|
|
||||||
G1 -->|Yes| G3
|
|
||||||
G1 -->|No| G2
|
|
||||||
G2 -->|Yes| G4
|
|
||||||
G2 -->|No| H1
|
|
||||||
G3 --> H1
|
|
||||||
G4 --> G5
|
|
||||||
G4 --> G6
|
|
||||||
G5 --> G7
|
|
||||||
G6 --> H1
|
|
||||||
G7 --> H1
|
|
||||||
|
|
||||||
H1 --> H2
|
|
||||||
H2 --> H3
|
|
||||||
H3 --> H4
|
|
||||||
H4 --> H5
|
|
||||||
H5 --> H6
|
|
||||||
|
|
||||||
H6 --> I1
|
|
||||||
H6 --> I2
|
|
||||||
H6 --> I3
|
|
||||||
H6 --> I4
|
|
||||||
H6 --> I5
|
|
||||||
H6 --> I6
|
|
||||||
H6 --> I7
|
|
||||||
|
|
||||||
E3 --> J1
|
|
||||||
F8 --> J2
|
|
||||||
H2 --> J3
|
|
||||||
K1 --> J4
|
|
||||||
G5 --> J5
|
|
||||||
K4 --> J6
|
|
||||||
K2 --> J7
|
|
||||||
J8 --> G5
|
|
||||||
|
|
||||||
D5 --> K1
|
|
||||||
G5 --> K2
|
|
||||||
J5 --> K3
|
|
||||||
J6 --> K4
|
|
||||||
F7 --> K5
|
|
||||||
K1 --> K6
|
|
||||||
K2 --> K6
|
|
||||||
|
|
||||||
J1 --> L1
|
|
||||||
K1 --> L2
|
|
||||||
F8 --> L3
|
|
||||||
G7 --> L4
|
|
||||||
L1 --> L2
|
|
||||||
L2 --> F7
|
|
||||||
L3 --> F8
|
|
||||||
L4 --> G7
|
|
||||||
|
|
||||||
%% Styling
|
|
||||||
style A1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A2 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A3 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A4 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A5 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A6 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A7 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
style A8 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
|
||||||
|
|
||||||
style D1 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
style D2 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
style D3 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
style D4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
style D5 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
style D6 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
|
||||||
|
|
||||||
style F1 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F4 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F5 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F6 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F7 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
style F8 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
|
||||||
|
|
||||||
style H1 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
style H2 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
style H3 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
style H4 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
style H5 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
style H6 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
|
||||||
|
|
||||||
style J1 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J2 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J3 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J4 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J5 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J6 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J7 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
style J8 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
|
|
||||||
|
|
||||||
style G1 fill:#ffebee,stroke:#d32f2f,stroke-width:3px
|
|
||||||
style G2 fill:#ffebee,stroke:#d32f2f,stroke-width:3px
|
|
||||||
```
|
|
||||||
Loading…
Reference in New Issue
Block a user