auditing of user activity through nosql database

19
Nadzor korisničkih aktivnosti u online bankarstvu kroz NoSQL bazu Kristijan Duvnjak

Upload: kristijan-duvnjak

Post on 17-Aug-2015

45 views

Category:

Software


2 download

TRANSCRIPT

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 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 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 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 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 aplikacije

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 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 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 vrijedne informacije o korisnicima i njihovim navikama te načinu na koji koriste aplikaciju

17

PITANJA?

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/

splunk - http://www.splunk.com

19