Anvende relevante elementer fra OS2sandbox/gps-connector #34
Labels
No labels
ADR
Maintainer
PM
SDR
SGM
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
ruby
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
OS2/ai-heatcontrol#34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kilde: [PM5]
Ansvarlig: Projektgruppen / JN
Deadline: I det videre arbejde
Baggrund
Det blev besluttet, at OS2 AI Heat Control skal anvende relevante elementer fra OS2sandbox/gps-connector som inspiration og mulige byggeklodser. GPS-connector-projektet er en FIWARE-baseret stack med fokus på IoT-dataproducenter.
Opgave
Undersøg hvilke elementer fra OS2sandbox/gps-connector der kan genbruges eller inspirere arkitektur og datainfrastruktur i OS2 AI Heat Control.
Afklaringen bør som minimum omfatte:
Definition of Done
Se også Issue #9
@janhalen: Could we start looking at redefining GPS Connector to meet the requirements in OS2 AI Heat Control? I want a mermaid diagram I can use for market dialogue purposes. Mermaid diagram from GPS Connector:
flowchart TD
GPS-device([GPS Device])
subgraph k8s[Kubernetes Cluster]
LB[Load Balancer]
Mosquitto[MQTT Broker]
Bento[Bento]
Redis[(Redis)]
IoTAgent[IoT Agent JSON]
mongoDB[(MongoDB)]
OrionLD[Orion-LD]
QuantumLeap[QuantumLeap]
CrateDB[(CrateDB)]
KeyCloak[KeyCloak]
Traefik[Proxy / Gateway]
Frontend[Frontend]
APILayer[API Layer]
ColdStorage[(Cold Storage)]
CSE[Cold Storage Extractor]
end
FleetOptimiser([External consumer])
User([User])
GPS-device -->|Publish on own topic| LB
LB -->|Raw MQTT| Mosquitto
Bento -->|Subscribe raw| Mosquitto
Bento -->|Publish normalized data| Mosquitto
Bento -->|Lookup IMEI tenant| Redis
IoTAgent -->|Subscribe tenant/device| Mosquitto
IoTAgent --- mongoDB
IoTAgent -->|NGSI-LD| OrionLD
OrionLD -->|Device state persistence| mongoDB
QuantumLeap -->|Subscribe| OrionLD
QuantumLeap -->|SQL| CrateDB
CrateDB -->|data| QuantumLeap
mongoDB --> Redis
CrateDB -->|Pull non-active data| CSE
CSE -->|Store cold data| ColdStorage
APILayer -->|Fetch cold storage| ColdStorage
FleetOptimiser -->|Auth| KeyCloak:::green
KeyCloak -->|org-service-token| FleetOptimiser:::green
FleetOptimiser -->|With org-service-token| Traefik:::green
Traefik -->|Request| QuantumLeap:::green
QuantumLeap -->|Request tenant data| CrateDB:::green
QuantumLeap -->|Response| Traefik:::green
Traefik -->|Response| FleetOptimiser:::green
User -->|Authenticate| KeyCloak:::blue
KeyCloak -->|org-token| User:::blue
User --> Traefik:::blue
Traefik --> Frontend:::blue
Frontend -->|Register new device| Traefik:::blue
Traefik -->|Route| APILayer:::blue
APILayer -->|Cache| Redis:::blue
APILayer -->|Provision device| IoTAgent:::blue
APILayer -->|Create subscription| QuantumLeap:::red
APILayer -->|New tenant| IoTAgent:::red
Frontend -->|Request cold data| Traefik:::orange
Traefik -->|Route cold data req| APILayer:::orange
APILayer --> ColdStorage:::orange
ColdStorage -->|Serve cold data| APILayer:::orange
classDef green color:#2e7d32,stroke:#43a047,fill:#e8f5e9
classDef blue color:#1565c0,stroke:#1e88e5,fill:#e3f2fd
classDef red color:#b71c1c,stroke:#e53935,fill:#ffebee
classDef orange color:#e65100,stroke:#fb8c00,fill:#fff3e0
Hey @JakobNoerby!
I will look into drafting a reference architecture for heatcontrol, starting with shared infrastructure..
The reference architecture will reuse some open-source components that are also used in the gps-connector project. This means both projects draw from the same shared building blocks in the Open Source ecosystem — rather than heatcontrol reusing components "from" gps-connector, we reuse the same external components together.
The benefit for us: we can learn from how gps-connector configured these components, and any solutions we figure out can flow both ways. No need to solve everything from scratch.
This is an iterative process, so once you get closer to capturing functional requirements from the end-user's view as user-stories I can adapt the architecture with reuse of relevant open-source components.
@JakobNoerby: I have a first draft of a reference architecure ready here in the https://github.com/OS2sandbox/ai-heatcontrol/blob/34-reusable-architecture-proposal/docs/content/architecture.md 34-branch.
Its prepared to be rendered as a webpage and included in the docs site if you wish, for your market dialogue.
I can present it and we can discuss it when you have a timeslot, maybe allready next week?
If you accept it, Ill make a PR for you to accept and merge to the main docs site!
Lets meet and discuss, or take a quick video call...
@ChatBotBerg you can join too, to stay in the loop with the work!
@JakobNoerby: A version targeted at dessicion makers with a technical understanding, architects and potential suppliers have been added to the presentation site at: https://os2sandbox.github.io/ai-heatcontrol/architecture/
For now its a "hidden" direct link with no links from the frontpage.