Osnovni servisi↵
LOBE servis je modularizovan u više posebnih sub-servisa koji komuniciraju preko definisanih interfejsa i koriste docker sistem kontejnera i orkestratora za kreiranje, proviziju i pokretanje radnih okruženja. Ovim se postiže:
- brza i laka konfiguracija
- skalabilnost
- failover i automatski recovery
- izolovan rad na sub-servisima od strane nezavisnih timova
- nezavisno testiranje i deployment
Database model↵
LOBE koristi kombinovani Database model, pri čemu se security domen i šema čuvaju u Postgres bazi, dok se poslovna logika kao i izveštajni domen mapiraju na PostgreSQL bazu podataka. Dodatno, PostgreSQL je infrastrukturalno organizovan kao failover klaster, pri čemu dodatni nodovi omogućavaju kako rezilijentnost i recovery, tako i prebacivanje opterećenja poslovnog izveštavanja sa glavne instance.
Gateway servis↵
Gateway servis predstavlja polaznu tačku ka backend infrastrukturi i servisima poslovne logike. Pored routing-a upita ka odgovarajućem servisu, gateway uključuje i kompletnu funkcionalnost autentikacije i autorizacije korisnika, kao i sigurnosne protokole koji sprečavaju zloupotrebu servisa. Takođe, servis obezbeđuje menadžment korisnika i organizacija, kao menadžment i odobravanje registracija pravnih lica.
Backend servis↵
U okviru backend REST web servisa implementirane su sve ključne funkcionalnosti KIBJLS servisa - učitavanje i pregled budžeta, rebalansa i izmena aproprijacija, menadžment projektnih struktura, kao i pregled i rad sa prinudnom naplatom i neprepoznatim plaćanjima korisnika.
Ovaj servis karakteriše:
- direktan pristup KIBJLS bazi podataka
- HTTP pristup preko REST arhitekturnog stila, komunikacija sa konzumerima putem JSON fajlova u klijent-server maniru
- implementacija u .NET Core3 tehnologiji (cross_platform, FOSS)
REST servise generalno karakterišu značajano veće mrežne performanse (bandwith) u odnosu na alternativne tehnologije (npr. SOAP) zbog minimalnog broja dodatnih atributa na HTTP protokol, mogućnost upotrebe HTTP cache-a i lakše skaliranje.
Backend servis je najosnovnija komponenta KIBJLS i preko njega se mogu upotrebiti sve funkcionalnosti kroz odgovarajući klijent.
Komunikacija sa REST interfejsom je generalno veoma laka za implementaciju i integraciju. SDK za komunikaciju sa servisima ovog tipa je deo osnovnih biblioteka svih savremenih programskih jezika dok svi moderni operativni sistemi već dolaze sa odgovarajućim alatima out of the box - npr. na Windows platformama može se koristiti Powershell cmdlet Invoke-RestMethod
1, dok se na Unix-like sistemima standardno koristi curl
2.
Frontend servis↵
U okviru frontend servisa implementirana je web aplikacija koja predstavlja standardni grafički interfejs nad KIBJLS REST servisom korišćenjem Internet browser-a. Omogućava učitavanje i pregled budžeta, rebalansa i izmena aproprijacija, menadžment projektnih struktura, kao i pregled i rad sa prinudnom naplatom i neprepoznatim plaćanjima korisnika. Uključuje i generisanje izveštaja, pregled i izmenu korisničkih profila i autorizacionih prava, promenu kredencijala i druge opcije vezane za menadžment korisnika i organizacija.
Web servis je implementiran kao statički sajt što mu daje najbolje moguće performanse i mali broj vektora za napade.
Implementiran je korišćenjem Javascript framework-a Vue.js4 kao single-page web application (cross-platform, cross-browser, FOSS). Nakon inicijalnog učitavanja u Web browser-u aplikacija funkcioniše bez fizičke komunikacije sa web serverom - sve operacije se izvode direktnom komunikacijom sa backend serverom preko asinhronih poziva. Zbog ovoga je opterećenje servera koji hostuje ovaj web servis veoma nisko i gotovo ga je nemoguće preopteretiti. Bilo koji moderni web server (nginx, apache, IIS itd.) može da služi ovaj servis.
Izveštajni servis↵
Nezavisni DotNet.Core REST servis koji, koristeći bazu podataka sa poslovnom logikom backend servisa, generiše Excel izveštaje koji sadrže odabarane aproprijacije kao i detalje pojedinačnih aproprijacija.
Frontend koristi ovaj servis da omogući korisniku download izveštaja.
Dokumentacioni servis↵
Korisnička i tehnička dokumentacija svih komponenti servisa razvija se kao git projekat i u osnovi koristi Markdown5 jezik za tekstualne delove dokumentacije i PlantUml6 jezik za grafičke delove. Dokumentacija se razvija kao source code (verzionira se) te postoji build i deployment procedura. U dokumentaciji se ne koriste propriatery i binarni fajlovi (osim screenshot-ova ekrana).
Dokumentacioni sistem se kompajlira u statički sajt koga može služiti bilo koji web server koji je predviđen za konzumaciju od strane krajnjih korisnika CRF servisa i tehničkog kadra naručioca. Odlikuju ga sledeće funkcionalnosti:
- mogućnost ažuriranja stranica korišćenjem Gitlab web interfejsa bez posebnih preduslova (uz odgovarajuća ovlašćenja)
- mogućnost eksportovanja dokumentacije u bilo koji popularni format (Word, PDF, epub itd.)
- kreiranje različitih stilova dokumentacije (prezentacija) nezavisno od sadržaja
- prilagođavanje vidljivosti sekcija u odnosu na ciljnu grupu
- mogućnost paralelnog kolaborativnog rada na dokumentaciji od strane više ljudi
- nezavisni deploy dokumentacije u produkciju u odnosu na druge komponente sistema
Dokumentacioni servis je implementiran korišćenjem mkdocs 7 sistema uz material design8 temu.
Integracioni servisi↵
Integracioni servisi povezuju KIBJKS sa platnim prometom Uprave za trezor.
Todo
Sekcija je u fazi izrade