66 lines
1.3 KiB
Plaintext
66 lines
1.3 KiB
Plaintext
@startuml
|
|
skinparam dpi 300
|
|
skinparam classFontSize 8
|
|
skinparam classFontName Helvetica
|
|
autonumber
|
|
|
|
participant "User Application" as App
|
|
participant "Defender Library" as Defender
|
|
participant "MQTT Client" as MQTT
|
|
participant "TCP Stack" as TCP
|
|
participant "JSON Library" as JSON
|
|
|
|
activate App
|
|
App -> Defender : Generate Accepted and Rejected Topic Strings
|
|
|
|
activate Defender
|
|
Defender -> App : Accepted and Rejected Topic Strings
|
|
deactivate Defender
|
|
|
|
App -> MQTT : Subscribe to Accepted and Rejected Topics
|
|
|
|
activate MQTT
|
|
MQTT -> App : Subscription Successful
|
|
deactivate MQTT
|
|
|
|
loop Forever
|
|
App -> TCP : Get Metrics
|
|
|
|
activate TCP
|
|
TCP -> App : Metrics
|
|
deactivate TCP
|
|
|
|
App -> JSON : Generate Report
|
|
|
|
activate JSON
|
|
JSON -> App : Report
|
|
deactivate JSON
|
|
|
|
App -> Defender : Generate Publish Topic String
|
|
|
|
activate Defender
|
|
Defender -> App : Publish Topic String
|
|
deactivate Defender
|
|
|
|
App -> MQTT : Publish Report
|
|
|
|
activate MQTT
|
|
MQTT -> App : Published
|
|
MQTT -> App : Incoming Publish Message Received
|
|
deactivate MQTT
|
|
|
|
App -> Defender : Is this a Defender Message?
|
|
|
|
activate Defender
|
|
Defender -> App : Yes/No
|
|
note right
|
|
The Defender library also tells if the report was accepted by
|
|
|
|
the service or not.
|
|
endnote
|
|
deactivate Defender
|
|
end
|
|
|
|
deactivate App
|
|
|
|
@enduml |