Pregled backend sistema

Backend za Strujomerko je centralni sistem koji prima telemetriju sa uređaja, upravlja uređajima, čuva merenja, šalje konfiguraciju, vodi tarife, generiše obračune i obezbeđuje administratorski i korisnički pristup podacima.

Backend ne meri potrošnju direktno. Uređaj meri i šalje podatke, a backend ih proverava, skladišti, prikazuje i koristi za obračun.

Ciljevi backend-a

  • Evidencija uređaja, korisnika, lokacija i ugovora.
  • Siguran provisioning uređaja i izdavanje uređajskog tokena.
  • Prijem i validacija telemetrije.
  • Čuvanje mernih podataka i statusnih događaja.
  • Slanje konfiguracije uređaju.
  • Upravljanje tarifnim planovima.
  • Nezavisna verifikacija tarifne klasifikacije.
  • Generisanje računa i obračunskih perioda.
  • Administratorski portal za servis, operatere i podršku.
  • Korisnički portal ili API za pregled potrošnje.

Glavni podsistemi

Podsistem Namena
Identitet i pristup Korisnici, uloge, sesije, API tokeni i prava pristupa.
Registar uređaja Evidencija uređaja, serijskih brojeva, claim kodova, modela i firmware verzija.
Provisioning Prvo povezivanje uređaja sa backend-om i izdavanje uređajskog tokena.
Telemetrija Prijem, validacija i skladištenje mernih podataka.
Konfiguracija uređaja Slanje runtime, tarifne i uplink konfiguracije uređaju.
Tarife Tarifni planovi, vremenski opsezi, cene i pravila.
Obračun Obračunski periodi, računi, stavke računa i verifikacija potrošnje.
Događaji i alarmi Tamper, power-fail, greške, offline stanje i servisni događaji.
Administracija Interni panel za operatere, servis i podršku.
Korisnički pristup Pregled potrošnje, istorije, računa i statusa uređaja.

Granica između uređaja i backend-a

Uređaj je odgovoran za:

  • merenje,
  • lokalnu akumulaciju energije,
  • izbor aktivne tarife na osnovu konfiguracije i vremena,
  • čuvanje kritičnog stanja,
  • slanje telemetrije,
  • prijavljivanje grešaka i statusa.

Backend je odgovoran za:

  • identitet uređaja,
  • autorizaciju,
  • skladištenje podataka,
  • proveru tarifne ispravnosti,
  • obračun,
  • administraciju,
  • dugoročnu istoriju i prikaz.

Predložena arhitektura

Minimalna MVP arhitektura može biti jedan backend servis sa jasno odvojenim modulima:

  • HTTP API za uređaje,
  • HTTP API za admin/krajnje korisnike,
  • baza podataka,
  • background worker za obradu telemetrije i obračun,
  • scheduler za periodične poslove,
  • object storage za izveštaje ako bude potreban.

Kasnije se podsistemi mogu izdvojiti u odvojene servise ako opterećenje ili timska organizacija to zahtevaju.