Sustav koji razvijamo je namijenjen praćenju vozila putem GPS uređaja. Na domaćem i inozemnom tržištu već postoji mnogo rješenja za ovu problematiku, ali krenuli smo u razvoj vlastitog softvera vjerujući da možemo ponuditi nešto dovoljno novo i zanimljivo. Serverska strana sustava se temelji na Java platformi i MSSQL bazi podataka, a klijentske aplikacije su građene na Adobe Flash tehnologiji. Odabir Flash platforme (aplikacije bazirane na Flex4 frameworku i Flash/AIR runtime okolinama) omogućila nam je da napravimo bitan vizualni iskorak u odnosu na konkurentska rješenja i provodimo dosta vremena na UX problematici. Serverska strana je pak drugi tip tripa jer se tamo nalaze stream processing, rule engine i ogromna količina podataka koje treba procesirati u stvarnom vremenu, pohraniti u bazu i nahraniti razne alarming, reporting, real-time UI sync i ostale module.
6. Automatizirane akcije
Notifikacija nadzornom organu (e-mail,
sms, web/mobile klijent)
Blokada rada motora
Obavijest vozaču (“Ušli ste u nedopušteno
područje”, “Vozite nedopuštenom
brzinom”...)
7. Područja primjene
Nadzorom do uštede
Kontrola ponašanja
Zaštita
Administrativni podaci
Optimizacija poslovanja
Efikasnost (najbliži djelatnik za intervenciju)
Nadzor stanja vozila (temperatura hladnjače,
otvaranje vrata tovarnog prostora, ...)
Kontrola izlaska sa dozvoljene trase
...
8. Osnovne nefunkcionalne osobine
sustava
Visoka pouzdanost i stalna dostupnost
Otpornost na pogreške i oporavljivost
Skalabilnost
9. Tehnički izazovi pri realizaciji
Izgradnja podrške za rad s uređajima
Optimizacija opterećenja sustava
Broj spojenih uređaja u sustavu
Baza
Obrada podataka
Prezentacija podataka
10. Uređajni izazovi
Veliki broj različitih GPS uređaja na tržištu
Broj feature-a proporcionalan price-u
Komunikacijski Babilon
(TCP/UDP/HTTP/SMS/...)
Izgradnja zajedničkog sučelja prema svim
uređajima
Sustav je device agnostic
11. Opterećenje pt.1 - Uređaji
Veliki broj spojenih uređaja
Trajne TCP konekcije
100 bajtova svakih 10s
12. Opterećenje pt.2 - Baza
Problematičan upis ogromne količine
podataka u kratkom vremenu
Potrebna brzina = cca. 200 KB / s
Količina = 0.5 TB mjesečno
(SQL naredbe preko JDBC-a ne daju potreban red veličine)
13. Opterećenje pt.3 – obrada
podataka
Velika količina nadolazećih podataka nad kojima
je potrebno obaviti kompleksnu obradu
Sistemski parametrizirana evaluacija
System health, watch-dog monitoring, ...
Korisnički parametrizirana evaluacija
Geofence, prekoračenje brzine, ...
Rezultati obrade se očekuju u “realnom
vremenu” (obavijest o vozačevoj aktivaciji SOS
gumba koja će doći unutar dnevnog izvještaja
nije prihvatljiva)
14. Prezentacija podataka
Cilj br.1: izbjeći “tabličnu” aplikaciju
Veliku količinu međusobno ovisnih
numeričkih podataka prezentirati na
jednostavan, intuitivan i atraktivan način
Posvetiti pažnju interakciji
Zahtjevne akcije kroz wizard guided postupke
Jednostavne akcije trebaju biti jednostavne
“the art of simplicity”
15. Osnovne karakteristike rješenja
Apstrakcija vanjskih uređaja na razini
komunikacijskog sloja
Stream processing model – podaci se
procesiraju prije spremanja u bazu
Bulk pohrana podataka
Općenito minimizirana potreba za pristupom bazi
16.
17. Stream processing vs. DB post processing
Stream processing je pogodniji za slijedne
podatke
Obradom podataka po dolasku se izbjegavaju
nepotrebne r/w operacije na bazi
Eliminiranje upisa nepotrebnih podataka
Aritmetička procesiranja je puno lakše
implementirati u Javi nego u SQL procedurama
18. Stream processor
Sastavni dio stream procesora je rule-
engine
Validacija pravila oblika if-then
If (speed > maxAllowedSpeed) then sendSMSAlarm
Izbor između korištenja gotovih rješenja i
vlastitog custom rješenja je pao na potonje
21. GUI
Fat client RIA aplikacija u Adobe Flash
tehnologiji (Flash/Flex4/AIR)
Razmjena podataka sa serverom u
binarnom AMF formatu
Web server je potpuno rasterećen od
zadataka vezanih uz generiranje GUI-a
Znatna količina procesiranja prebačena na
klijenta