ComData Software Solution Provider Jakša Okiljević Osnovani 1992 www.comdata.rs
ComDataSoftware Solution Provider
Jakša Okiljević
Osnovani 1992
www.comdata.rs
PredictIT – PREDICTIVE MAINTENANCE SYSTEM
By ComData
❖PredictIT je sistem za predikciju kvara elektromotora
❖Uključuje IoT, Kriptovalute, BigData, AI i mobilne tehnologije
Kako se Predictive maintenence sistem uklapa u
pametne gradove?
❖Arhitektura, infrastruktura i spektar tehnologija
❖ Široka moućnost primene u servisiranju uređaja pametnog grada (liftovi, parking rampe, sigurnosna vrata itd.)
❖Ovim se postiže smanjenje troškova i downtime-a, povećanje bezbednosti
Arhitektura sistema❖ Elementi sistema:❖ Uređaji šalju podatke na IOTA-u
❖ IoT Hub prihvata podatke sa IOTA-e
❖ Pomoću Kafke se podaci distribuiraju ostatku sistema
❖ Hadoop se koristi za distribuirano skladištenje
❖ Spark se koristi za distribuirano procesiranje
❖ AI se koristi za davanje predikcija o kvarovima
❖ .Net Core REST API
❖ Mobilnu aplikaciju za prikaz
IoT Input
❖Predictive maintenance može da se radi za bilo koji uređaj za koji mogu da se dobiju podaci sa kojima može da se obuči veštakčka inteligencija (npr. vrednosti podešenja i merenih signala)
❖Potrebno je da uređaj periodično (u ciklusima) šalje informacije o svom radu
❖Na osnovu vremenske sekvence primljenih informacija radi se predikcija
Komunikacija sa uređajima
❖Za slanje informacija uređaji koriste IOTA kriptovalutu
IOTA
❖ IOTA je kriptovaluta nastala za potrebe IoT-a
❖Pomoću IOTA-e uređaji mogu da razmenjuju informacije i da vrše plaćanje
❖ IOTA za cilj ima rešavanje nedostataka Blokchain-a:
❖Skalabilnost
❖Potrebu za majnerima
❖Transakcije su besplatne
IOTA vs Blockchain
❖Blockchain predstavlja niz blokova gde svaki blok predstavlja pojedinačnu transakciju i gde svaki blok ima jednog prethodnika i jednog sledbenika
IOTA vs Blockchain
❖Blokchain se procesira od strane nodova koji pripadaju datoj Peer2Peer mreži
IOTA vs Blockchain
❖Da bi se blok kreirao potrebno je odraditi Proof-of-work koji dugo traje (~10 minuta za BTC)
❖Da bi se blok ubacio u lanac potrebno je imati kopiju kopletnog Blockchain-a
❖Da bi blok bio prihvaćen potreno ga je distribuirati ostaliim članovima P2P mreže koji zatim rade konfirmaciju validnosti bloka
IOTA vs Blockchain
❖Zbog kompleksnosti ovog procesa za obradu blokova se koriste specijalizovani računari koji za usluge procesiranja dobijaju procenat vrednosti transakcije
IOTA
❖Umesto Blokchain-a IOTA koristi Tangle(Directed Acyclic Graph)
❖Tangle čine blokovi koji predstavljaju transakcije i gde je svaki blok povezan sa dva druga bloka na takav način da ne postoje cirkularne veze
❖ Svaka veza ka bloku predstavlja potvrdu tog bloka
IOTA - Prednosti
❖Pošto svaka transakcija potvrđuje dve druge transakcije što ima više novih transakcija to se postojeće transakcije brže verifikuju
❖Proof-of-work je brži nego kod Blockchain-a
❖Za dodavanje bloka u Tangle nije potrebna kopija celog bloka nego samo dela gde se blok dodaje
❖Zahvaljujući tome nisu neophodni specijalizovani računari pa su IOTA transakcije besplatne
Apache Kafka
❖Sa IOTA IoT haba, informacije se prosleđuju Kafki
❖Apache Kafka je distribuirani, pub-sub sistem za razmenu poruka
❖Odlikuju ga visoka skalabilnost i otpornost na gresške
❖Podaci se particionišu i repliciraju između nodova
❖Omogućava procesiranje ogromnih količina podataka velikog broja IoT oređaja
❖Kafka radi kao klaster na jednom ili više servera
❖Podaci se obrađuju u kategorijama koje se nazivaju topici
Kafka Klaster
❖Kafka arhitektura sadrži:
❖Producer-e – rade slanje poruka
❖Consumere – rade primanje poruka
❖Kafka brokere: zaduženi za particionisanje i distribuciju poruka
❖Zookeper – zadužen za upravljanje klasterom
Hadoop
❖Sa Kafke podaci se prihvataju i skladište u Hadoop
❖Apache Hadoop je sistem za distribuirano skladištenje velikih količina podataka u obliku fajlova
❖Fajlovi se dele i distribuiraju u okviru klastera
Hadoop
❖Hadoop klaster se sastoji od:
❖ NameNoda: master noda koji vodi računa o tome kako su podaci distribuirani
❖DataNoda: slave node koji skladišti podatke
❖Secondary NameNoda: zadužen za backup podataka NameNoda
Parquet fajlovi
❖Podaci koje uređaji šalju se čuvaju na Hadoopu u obliku Parquet fajlova
❖Apache Parquet fajlovi su mehanizam za skladištenje podataka organizovanih u kolone.
❖Ovaj format omogućava kreiranje šema podataka sličnih SQL tabelama i čuvanje podataka u tako definisanom obliku
❖Podaci u Parquet fajlovima se ne čuvaju u jednom fajlu nego su podeljeni u više fajlova i tako distribuirani u okviru Hadoop fajl sistema
❖Na ovaj način Parquet fajlovi omogućuju skladištenje i upite nad velikim količinama distribuiranih podataka
MapReduce
❖MapReduce je famework koji Hadoop koristi za distribuirano procesiranje podataka
❖Princip je da se podaci podele, da se operacija izvrši nad svakim delom podataka u paraleli i da se dobije kumulativni rezultat
❖Nedostatak MapRaduce-a je što se svi podaci čuvaju na HDD-u i svi međurezultati se takođe skladište na disk
❖Zbog ovoga MapRaduce i Hadoop nisu pogodni za Real-Time procesiranje i veštačku inteligenciju
Spark
❖Za procesiranje podataka unutar Hadoopa koristimo Spark
❖Apache Spark je famework za distribuirano procesiranje podataka nastao kao odgovor na nedostatke MapReduce-a
❖Omogućava paralelno procesiranje nad celim klasterom obezbeđujući otpornost na greške
❖Osnova Sparka su Resilient Distributed Datasets (RDD)
❖RDD-evi predstavljaju read-only multiset podataka distribuiranih i repliciranih unutar klastera
❖Spark svo procesiranje obavlja in-memory pa je pogodan za Real-Time sisteme i AI
YARN
❖Pored toga što zahteva distribuirani fajl sistem, Sparku je potreban cluster/resource manager
❖Hadoop YARN (Yet Another Resource Negotiator) je platforma zadužena za upravljanje računarskim resursima klastera
YARN - Komponente
❖ Klijent – Spark ili druga aplikacija koja zahteva procesiranje
❖ Resource manager - Vodi računa o resursima u klasteru i organizuje njihovu dodelu klijentskim aplikacijama
❖ Containeri – resursi dodeljeni aplikaciji
❖ Node manager – nadgleda rad kontejnera
❖ Application master – pregovara sa Resource Manager-om i izvršava klijentske procese
Machine Learning
❖Machine learning se koristi za analizu podataka koji stižu sa uređaja
❖Python i PySpark smo iskoritili za implementaciju algoritma za predikciju
❖Procesiranje se vrši unutar Spark konteksta nad Hadoop fajl sistemom
Algoritam za predikciju
❖Algoritam za predikciju koristi Long short-term memory (LSTM) mrežu
❖ LSTM mreže predstavljaju rekurentne veštačke neuronske mreže
❖Za razliku od standardnih feedforward mreža, LSTM mreže imaju povratne veze između neurona
❖Na ovaj način LSTM mreže mogu da obrađuju sekvence podataka i pogodne su za procesiranje vremenskih podataka
Rezultati treninga
❖Dobijena preciznost mreže se izražava pomoću Mean Absolute Error (MAE).
❖Dobijena MAE je ~12.
❖Pošto neuronska mreža predviđa za koliko će ciklusa dati elektromotor da se pokvari očekivana greška predviđanja je +-12 ciklusa
API
❖Za potrebe serviranja podataka o uređajima implementiran je .Net Core C# Web servis
❖Ovaj servis takođe koristi Kafku i Spark i preko Sparka može da pristupi podacima na Hadoopu
❖Klijentske aplikacije mogu da dobiju podatke na zahtev putem REST API-a ili asinhrono pretplatom na SignalR hub
❖Security i autentifikacija su obezbeđeni pomoću IdentityServer-a
Mobilna aplikacija
❖Za potrebe prikaza podataka implementirana je iOS i Android mobilna aplikacija
❖Ona omogućava korisniku da se loginuje, pregleda i uređuje listu elektromotora, pregleda detalje o pojedinačnim motorima i prati njihovu telemetriju i predikcije
Mobilna aplikacija
Mobilna aplikacija
• ComData - 27 godina iskustva u razvoju i projektovanju složenih informacionih sistema
HVALA!