SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Nadzor korisničkih aktivnosti u online
bankarstvu kroz NoSQL bazu
Kristijan Duvnjak
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
Š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
Š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
Š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
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
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
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
Interceptori
mapiranje metoda servisnog i dao sloja
zapisivanje podataka o ulaznim parametrima
zapisivanje rezultata izvršavanja mapirane metode
zapisivanje exception na razini metode
9
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
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
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
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
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
MongoDB dokument
15
MongoDB query
16
Š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
PITANJA?
Zahvaljujem na pažnji!Zahvaljujem na pažnji!
18
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

Weitere ähnliche Inhalte

Was ist angesagt? (8)

JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija KranjecJavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzz
 
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil RisterJavantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
 
JavaCro'15 - BOOTylicious Spring - Karlo Novak
JavaCro'15 - BOOTylicious Spring - Karlo NovakJavaCro'15 - BOOTylicious Spring - Karlo Novak
JavaCro'15 - BOOTylicious Spring - Karlo Novak
 
JavaCro'15 - RESTful Web APIs Design - Denis Kranjčec
JavaCro'15 - RESTful Web APIs Design - Denis KranjčecJavaCro'15 - RESTful Web APIs Design - Denis Kranjčec
JavaCro'15 - RESTful Web APIs Design - Denis Kranjčec
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir MuratJavantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
 

Andere mochten auch

Andere mochten auch (20)

JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara
JavaCro'14 - ZeroMQ and Java(Script) – Mladen ČikaraJavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara
JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara
 
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
 
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
 
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
 
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir DžaferovićJavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
 
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
 
JavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko ElezovićJavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko Elezović
 
JavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan KrešićJavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan Krešić
 
JavaCro'14 - How to handle large amounts of data in real time using a cloud e...
JavaCro'14 - How to handle large amounts of data in real time using a cloud e...JavaCro'14 - How to handle large amounts of data in real time using a cloud e...
JavaCro'14 - How to handle large amounts of data in real time using a cloud e...
 
JavaCro'14 - Sustainability of business performance and best practices – Zlat...
JavaCro'14 - Sustainability of business performance and best practices – Zlat...JavaCro'14 - Sustainability of business performance and best practices – Zlat...
JavaCro'14 - Sustainability of business performance and best practices – Zlat...
 
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter PilgrimJavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
 
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
 
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
 
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
 
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan IvanovićJavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
 
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
 
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan RagužJavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
 
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor SauerJavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter PilgrimJavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
 

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

Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Nenad Pecanac
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaandrea132961
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaSlaven Brumec
 
Data WareHose
Data WareHoseData WareHose
Data WareHoseKruno Ris
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxLarlochLes
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. Stipe Predanic
 
Coolinarika - Case Study - Net Konferenca 2007
Coolinarika - Case Study - Net Konferenca 2007Coolinarika - Case Study - Net Konferenca 2007
Coolinarika - Case Study - Net Konferenca 2007webburza
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević Kruno Ris
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)IT Showoff
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXIvan Kaselj
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXAndrej Ko?i?
 
Algoritmi i strukture_podataka_2016-05_v01
Algoritmi i strukture_podataka_2016-05_v01Algoritmi i strukture_podataka_2016-05_v01
Algoritmi i strukture_podataka_2016-05_v01Leonardo Miljko
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. Stipe Predanic
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 
REST API - iskustva iz prakse
REST API - iskustva iz prakseREST API - iskustva iz prakse
REST API - iskustva iz prakseDenis Kranjčec
 

Ähnlich wie JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duvnjak (20)

Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjima
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podataka
 
Data WareHose
Data WareHoseData WareHose
Data WareHose
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
 
JavaCro'15 - API as a new architecture - Miroslav Rešetar
JavaCro'15 - API as a new architecture - Miroslav RešetarJavaCro'15 - API as a new architecture - Miroslav Rešetar
JavaCro'15 - API as a new architecture - Miroslav Rešetar
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
 
Coolinarika - Case Study - Net Konferenca 2007
Coolinarika - Case Study - Net Konferenca 2007Coolinarika - Case Study - Net Konferenca 2007
Coolinarika - Case Study - Net Konferenca 2007
 
JavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad PečanacJavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad Pečanac
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan VučakJavantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
Algoritmi i strukture_podataka_2016-05_v01
Algoritmi i strukture_podataka_2016-05_v01Algoritmi i strukture_podataka_2016-05_v01
Algoritmi i strukture_podataka_2016-05_v01
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
REST API - iskustva iz prakse
REST API - iskustva iz prakseREST API - iskustva iz prakse
REST API - iskustva iz prakse
 

Mehr von HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

Mehr von HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 

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

  • 1. Nadzor korisničkih aktivnosti u online bankarstvu kroz NoSQL bazu Kristijan Duvnjak
  • 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. Š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. Š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. Š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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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
  • 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