Files
MSE-PI-E2EEDA-Plein-de-eeee…/report/meetings/260611-final/db.typ
2026-06-10 22:00:34 +02:00

90 lines
1.8 KiB
Typst

#import "/metadata.typ": *
#import "/tail/bibliography.typ": *
#import "/tail/glossary.typ": *
#import "/main/architecture/description.typ": *
#import "/resources/slides.typ": *
#import "/main/database/sequence.typ": *
// server
// mqtt->db
// db->rest
== Database & API - Server
#let server = [
#figure(
image("server.png", width: 100%),
caption: [],
) <fig:server>
]
#grid(
columns: (1.5fr, 1fr),
column-gutter: 2em,
server,
align(top+left)[
#v(3em) #pause
- LXC Debian #pause
- @ssh:short certificate by user #pause
- Docker #pause
- Traefik
],
)
== Database & API - Save measures in DB
#let toDB = {
import chronos: *
b.display
mg.display
main.display
ig.display
db.display
_col(b.name, mg.name, width: 5cm)
_col(mg.name, main.name, width: 5cm)
_col(main.name, ig.name, width: 5cm)
_col(ig.name, db.name, width: 5cm)
sync(main, mg, "New", create-dst: true)
sync(mg, b, "subscribe")
sync(main, ig, "New", create-dst: true)
async(b, mg, "message")
sync(mg, main, "DataPoint")
sync(main, main, "map topics")
sync(main, ig, "DataPoint")
async(ig, db, "flush")
}
#let fromDB = {
import chronos: *
db.display
ig.display
main.display
rg.display
u.display
_col(db.name, ig.name, width: 5cm)
_col(ig.name, main.name, width: 5cm)
_col(main.name, rg.name, width: 5cm)
_col(rg.name, u.name, width: 5cm)
async(u, rg, "Request")
sync(rg, main, "getNodes")
sync(main, rg, "", dashed: true)
sync(rg, ig, "Query")
sync(ig, db, "")
sync(db, ig, "", dashed: true)
sync(ig, rg, "", dashed: true)
sync(rg, u, "", dashed: true)
}
---
#figure(
chronos.diagram(toDB, width: 90%),
caption: [Sequence from broker to DB]
) <fig:seq:toDB>
---
#figure(
chronos.diagram(fromDB, width: 90%),
caption: [Sequence to REST from DB]
) <fig:seq:fromDB>