Okruženje

OZDS je ASP.NET Core web aplikacija smještena na Azure App Service. Aplikacija se povezuje s Postgresql bazom podataka s TimescaleDB ekstenzijom. Aplikacija prima dolazne podatke s Raspberry Pi 4B uređaja putem HTTP POST zahtjeva. Korisnici pristupaju aplikaciji putem web preglednika. Aplikacija se prikazuje putem Blazor SSR.

Razvoj

Alati koji se koriste za razvoj OZDS-a su:

Kod za poslužitelj nalazi se na github-u. Kod se razvija u vscode.

Kod za Raspberry Pi 4B posrednike se nalazi na github-u. Kod za te uređaje obično se razvija spajanjem na njih preko SSH. Posrednici rade na linux distribuciji zvanoj NixOS. Razlog za to je što NixOS olakšava reprodukciju istog okruženja na svim uređajima.

Implementacija

Implementacija se vrši putem github akcija. Radni proces implementacije definiran je u .github/workflows/deploy.yml. Radni proces se pokreće prilikom git push na main. Radni proces gradi OZDS web aplikaciju i prenosi je na Azure App Service.

Arhitektura

Arhitektura OZDS je distribuirani sustav s više lokacija. Sustav se sastoji od poslužitelja koji pokreće ASP.NET Core aplikaciju, PostgreSQL baze podataka i više lokacija s brojilima. Brojila su povezani s poslužiteljem putem Raspberry Pi uređaja koji djeluje kao posrednik. Server prima podatke od brojila i pohranjuje ih u bazu podataka. Server također poslužuje web aplikaciju klijentima.

Server hostira ASP.NET Core aplikaciju, koja je podijeljena u tri glavna dijela:

  • Ozds.Data: Sloj za pristup podacima
  • Ozds.Client: Klijentska aplikacija
  • Ozds.Business: Poslovna logika

Evo potpunog grafa implementacije za OZDS: