Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duvnjak

Auditing of business applications is very important especially in online banking because we are working with monetary transactions. Privredna banka Zagreb had an requirement
to implement a flexible system to audit user activity in our online banking for SME clients especialy since are authorization model was rather complex, for that we decided to use api with Java filters and intereceptors on are web application and for storage system we choosed MongoDB NoSQL database. In this presentation we are going to show you how we did it.

  • Be the first to comment

  • Be the first to like this

JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duvnjak

  1. 1. Nadzor korisničkih aktivnosti u online bankarstvu kroz NoSQL bazu Kristijan Duvnjak
  2. 2. Sadržaj što smo imali, što smo htjeli dobiti i što smo dobili kako sve to funkcionira pogled izbliza NoSQL baza MongoDB prednosti i nedostaciMongoDB prednosti i nedostaci što dalje linkovi 2
  3. 3. Što smo imali i kako je sve počelo web logovi aplikacijski logovi, system logovi zapisi u relacijskim bazama CA APM alati za nadzor aplikacijskih serveraalati za nadzor aplikacijskih servera digitalni potpis transakcija helpdesk kako sve to povezati? 3
  4. 4. Što smo htjeli dobiti nadzor korisničkih aktivnosti u aplikaciji, tko je radio, kada, u ime koga i što je točno radio omogućiti ponovljivost transakcije, korak po korak ponoviti cjelokupan proces zadavanja, potpisivanja i izvršavanja naloga pomoć u otkrivanju pogrešaka u aplikaciji kada sepomoć u otkrivanju pogrešaka u aplikaciji kada se greška dogodila, za kojeg korisnika i klijenta se dogodila, sa kojim podacima se greška dogodila, te na koji način je to povezano sa ostalim sustavima za nadzor 4
  5. 5. Što smo dobili sve sa prethodnog slajda dobilo smo jedinstven zapis koji nam omogućuje da na jednom mjestu objedinimo i analiziramo sve podatke mogućnosti mjerenja performansi prezentacijskog i servisnog sloja unutar aplikacije pomoć pri otkrivanju i istraživanju potencijalnih prijevara te pokušaja prijevara statističke informacije o korisnicima i načinu na koji korisnici koriste aplikaciju 5
  6. 6. Kako to sve funkcionira Java dio sustava unutar web aplikacije skuplja, filtrira i obrađuje podatke te ih priprema za zapis u bazu podataka podaci se skupljaju na razini HTTP request/response ciklusa, svaki request predstavlja jednu akciju korisnika u aplikaciji te jedan zapis u bazi podatakakorisnika u aplikaciji te jedan zapis u bazi podataka podaci se spremaju u NoSql bazu kao niz međusobno povezanih dokumenata na razini jednog korisnika koji radi u ime jednog klijenta jedan click (jedna akcija), jedan zapis, jedan NoSql dokument 6
  7. 7. Java servlet filter početna i završna točka request/response ciklusa prikupljanje podataka na razini request-a zapisivanje podataka na kraju ciklusa u NoSql bazu 7
  8. 8. ThreadLocal varijable variable na razini pojedinog thread-a u aplikaciji sadrže podatke za vrijeme trajanja request-a podaci se nadopunjuju za vrijeme request-a varijable su dostupne iz bilo kojeg dijela web aplikacijeaplikacije inicijalizacija prilikom ulaska u filter clean up prilikom izlaska iz filtera thread safe weak reference na vrijednosti 8
  9. 9. Interceptori mapiranje metoda servisnog i dao sloja zapisivanje podataka o ulaznim parametrima zapisivanje rezultata izvršavanja mapirane metode zapisivanje exception na razini metode 9
  10. 10. Asinhroni zapis WS work manager thread pool aplikacijskog servera dostupan web aplikaciji podaci se zapisuju u thread-u neovisnom o servlet container thread-u 10
  11. 11. NoSql baze podataka nerelacijske baze podataka drugačiji format podataka u bazi motivirano različitim potrebama modernih aplikacija (horizontalno skaliranje, jednostavniji dizajn, brži dohvat podataka) zapis i dohvat podataka su prilagođeni formatu podataka u bazi dijele se prema modelu podataka na key/value (Riak,Redis), dokument (MongoDB), graf (Neo4J) baze itd. 11
  12. 12. Zašto NoSql trebali smo jednostavan i fleksibilan način zapisa zbog modela podataka nismo trebali relacije između podataka i transakcije prilikom zapisa podataka u bazu htjeli smo rasteretiti Oracle instancu te svu raspoloživu procesorsku snagu ostaviti za poslovneraspoloživu procesorsku snagu ostaviti za poslovne potrebe postigli smo veću brzinu zapisa bilo nam je zanimljivo 12
  13. 13. MongoDB dokument model podataka kolekcije/dokumenti – tablice/retci JavaScript query language JSON/BSON format podataka nema unaprijed definirane sheme podatakanema unaprijed definirane sheme podataka horizontalna skalabilnost Map/Reduce Replikacija, Sharding fire and forget 13
  14. 14. MongoDB prednosti i nedostaci prednosti: – jednostavan za administriranje – dobra dokumentacija – pouzdan – JavaScript kao query jezik – indeksiranje nedostaci – database administratori ne postoje – korisnici moraju učiti novi query jezik – potrebno je promijeniti mentalni model na nerelacijski, nije pogodno za svaki poslovni slučaj 14
  15. 15. MongoDB dokument 15
  16. 16. MongoDB query 16
  17. 17. Što dalje podaci: – 35000 korisnika – 400000 dokumenata dnevno, 20Kb dokument – 3TB podataka godišnje podaci se mogu dodano skupljati prema potrebi analiza podataka da bi se iz njih izvukle vrijedneanaliza podataka da bi se iz njih izvukle vrijedne informacije o korisnicima i njihovim navikama te načinu na koji koriste aplikaciju 17
  18. 18. PITANJA? Zahvaljujem na pažnji!Zahvaljujem na pažnji! 18
  19. 19. LINKOVI MongoDB - https://www.mongodb.org/ MongoVUE - http://www.mongovue.com/downloads/ ThreadLocal - https://plumbr.eu/blog/how-is-threadlocal- implemented logstash - http://logstash.net/logstash - http://logstash.net/ splunk - http://www.splunk.com 19

×