diff --git a/i40/index.html b/i40/index.html index 522895f..cb84dd7 100644 --- a/i40/index.html +++ b/i40/index.html @@ -176,7 +176,8 @@

Welcome
Software Engineering in Industry 4.0 Ecosystems

5 (Feb 10, - 12, 14) + 12, 14) + Architectural Design for Industry 4.0 Applications Lab 3 + Homework 3 (2w) @@ -3686,6 +3687,379 @@
Software Architecture Design Process
+
+

February 12, 2025

+ +
+ +
+

Why prioritize Data Pipeline before Software Architecture?

+ +
+ +
+

How Data Pipeline Architecture improve scalability?

+ +
+ +
+

Why good data flow critical before software architecture?

+ +
+ +
+
Data Pipeline
+ +
+
+
+ Raw Sensor Data | Device
+ +----+----------+------+---------+
+ | id | sensor  | water_hydration |
+ +----+----------+----------------+
+ | 1  | SensorA | 45              |
+ +----+----------+----------------+
+
+ +----+----------+------+---------+
+ | id | sensor  | water_hydration |
+ +----+----------+----------------+
+ | 2  | SensorB | 38              |
+ +----+----------+----------------+
+
+ +----+----------+------+---------+
+ | id | sensor  | water_hydration |
+ +----+----------+----------------+
+ | 3  | SensorC | 40              |
+ +----+----------+----------------+
+
+
+ +
+
+ Data Lake
+ +----+----------+-----------+
+ | id | raw_data | timestamp |
+ +----+----------+-----------+
+ | 1  | {JSON}   | 12:01:30  |
+ | 2  | {JSON}   | 12:02:10  |
+ | 3  | {JSON}   | 12:02:10  |
+ | 1  | {JSON}   | 09:08:10  |
+ | 2  | {JSON}   | 11:10:10  |
+ | 3  | {JSON}   | 01:06:10  |
+ | 1  | {JSON}   | 04:05:10  |
+ | 2  | {JSON}   | 12:04:10  |
+ | 3  | {JSON}   | 01:06:10  |
+ | 1  | {JSON}   | 04:05:10  |
+ | 2  | {JSON}   | 12:04:10  |
+ | 3  | {JSON}   | 01:06:10  |
+ | 1  | {JSON}   | 04:05:10  |
+ | 2  | {JSON}   | 12:04:10  |
+ +----+----------+-----------+
+
+
+ +
+
+ Data Warehouse
+ +----+----------+--------------+
+ | id | sensor  | avg_hydration |
+ +----+----------+--------------+
+ | 1  | SensorA | 46            |
+ | 2  | SensorB | 39            |
+ +----+----------+--------------+
+
+
+ +
+
+ Dashboard
+ +----------+------------------+
+ | Sensor   | Avg Hydration (%)|
+ +----------+------------------+
+ | SensorA  | 46               |
+ | SensorB  | 39               |
+ +----------+------------------+
+
+
+
+
+ +
+
Database Pipeline
+ +
+
+
+    Raw Sensor Data | SQLite
+
+
+ +
+
+    Data Lake | MongoDB
+
+
+ + +
+
+    Data Warehouse | MySQL
+
+
+ + +
+
+    Dashboard | IndexedDB
+
+
+
+
+ +
+
Caching vs Persisting
+ +
+
+
+    Sensor Cache | SQLite
+
+
+ +
+
+    Lake Persisted | MongoDB
+
+
+ +
+
+    Warehouse Cache | MySQL 
+
+
+ +
+
+    Dashboard Cache | IndexedDB
+
+
+
+
+ +
+
Full Loading
+ + +
Partial Loading
+ +
+ +
+
Full Loading and/or Partial Loading
+ +
+
+
+    Sensor Cache | SQLite
+
+
+ +
+
+    Lake Persisted | MongoDB
+
+
+ +
+
+    Warehouse Cache | MySQL 
+
+
+ +
+
+    Dashboard Cache | IndexedDB
+
+
+
+
+ +
+
Loading Triggers
+ + + + + + + + + + + + + + + + + + +
Trigger TypeDescription
Time-basedData is loaded at specific time intervals (e.g., every 5 minutes)
Event-basedData is loaded when a specific event occurs (e.g., user action, system change, value + changed)
+
+ +
+ +
+ +
+ Data Architecture > Software Architecture +
+ +
+ Error-Resilient/Security Architecture First +
+ +
+
Relevant NIST Publication
+ NIST IR 8259A: A + Profile for IoT Security +
+ +
+
Error Handling in IoT Systems (Architecture Perspective)
+ +
+ +
+
Error Logs and Business Logic Components
+ +
+
+
+                Business Logic 
+                +------------------------+
+                | Handle IoT device      |
+                | interactions, data     |
+                | processing, and        |
+                | communication          |
+                +------------------------+
+                
+                        
+ +
+
+                Error Logs 
+                +------------------------+
+                | Logs errors from       |
+                | Business Logic         |
+                | component, including   |
+                | device failure,        |
+                | performance issues,    |
+                | and system faults      |
+                +------------------------+
+                
+                        
+
+
+ +
+ +
+ +
+ +
+ +
+
Monitoring Infrastructure in IoT Systems (Architecture Perspective)
+ +
+ +
+ +
+ +
+
Diagnostics in IoT Systems (Architecture Perspective)
+ +
+ +
+ +
+ +
+
Over-the-Air (OTA) Updates in IoT Systems (Architecture Perspective)
+ +
+ +
+ +
+ +
+ Questions? +
+ +
+
Review Architecture Design Principles
+
    +
  1. Data Architecture First
  2. +
  3. Security and Privacy
  4. +
  5. Data Integrity
  6. +
  7. Feature Toggle
  8. +
  9. Monolithic Architecture
  10. +
  11. Layered Architecture
  12. +
+
Questions? diff --git a/i40/plantuml_data_processes.png b/i40/plantuml_data_processes.png new file mode 100644 index 0000000..ceb4632 Binary files /dev/null and b/i40/plantuml_data_processes.png differ diff --git a/i40/plantuml_data_processes.svg b/i40/plantuml_data_processes.svg new file mode 100644 index 0000000..cfbbcf0 --- /dev/null +++ b/i40/plantuml_data_processes.svg @@ -0,0 +1,77 @@ +RawSensorDataid: intsensor: stringwater_hydration: floatDataLakeid: intraw_data: JSONtimestamp: stringDataWarehouseid: intsensor: stringavg_hydration: floatDashboardsensor: stringavg_hydration: floatRaw DataProcessed DataAggregated Data \ No newline at end of file diff --git a/i40/plantuml_diagnostic.svg b/i40/plantuml_diagnostic.svg new file mode 100644 index 0000000..9d450af --- /dev/null +++ b/i40/plantuml_diagnostic.svg @@ -0,0 +1,27 @@ +Edge DeviceAI/ML ModelCentralized ReportingRoot Cause AnalysisLocalized DiagnosticsSends ResultsProvides Insights \ No newline at end of file diff --git a/i40/plantuml_error_1.svg b/i40/plantuml_error_1.svg new file mode 100644 index 0000000..3a14f2b --- /dev/null +++ b/i40/plantuml_error_1.svg @@ -0,0 +1,33 @@ +Business LogicError LogsHydration Sensor 1Hydration Sensor 2Hydration Sensor 3Handles DataHandles DataHandles DataLogs Errors \ No newline at end of file diff --git a/i40/plantuml_error_2.svg b/i40/plantuml_error_2.svg new file mode 100644 index 0000000..15880b0 --- /dev/null +++ b/i40/plantuml_error_2.svg @@ -0,0 +1,39 @@ +Business LogicError LogsHydration Sensor 1Hydration Sensor 2Hydration Sensor 3Handles DataHandles DataHandles DataPushes ErrorsPushes ErrorsPushes ErrorsPushes Errors \ No newline at end of file diff --git a/i40/plantuml_monitoring.svg b/i40/plantuml_monitoring.svg new file mode 100644 index 0000000..d7bb356 --- /dev/null +++ b/i40/plantuml_monitoring.svg @@ -0,0 +1,39 @@ +MonitoringSensor 1Sensor 2Sensor 3BackendDatabaseFrontendMonitors StatusMonitors StatusMonitors StatusMonitors Health InfoMonitors DataDisplays Monitoring Info \ No newline at end of file diff --git a/i40/plantuml_ota.svg b/i40/plantuml_ota.svg new file mode 100644 index 0000000..fb64b93 --- /dev/null +++ b/i40/plantuml_ota.svg @@ -0,0 +1,47 @@ +Update ServerEmbedded Device 1Embedded Device 2Embedded Device 3Hydration Sensor 1Hydration Sensor 2Hydration Sensor 3Sends OTA UpdateSends Update StatusSends OTA UpdateSends Update StatusSends OTA UpdateSends Update StatusUpdates Sensor FirmwareUpdates Sensor FirmwareUpdates Sensor Firmware \ No newline at end of file