Sunteți pe pagina 1din 13

FACULTATEA DE AUTOMATIC I CALCULATOARE

CATEDRA CALCULATOARE

RAPORT de CERCETARE
la disciplina
Calcul Paralel i Distribuit

Baze de date n Cloud


pentru
Internet of Things
rlea Ionu Andrei
An academic : 2015 2016

Catedra de Calculatoare
Disciplina : Calcul Paralel i Distribuit
Coordonator: s.l. ing. Cosmina IVAN
25.01.2016

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

Abstract
Aceast lucrare i propune introducerea conceptelor legate de Internet of Things
respectiv din domeniul bazelor de date SQL i NoSQL pentru care este realizat o analiz
comparativ.
Se va face o analiz a bazelor de date folosite n cloud i n Internet of Things.
De asemenea se realizeaz o analiz a performanei pentru diferite Sisteme de
Gestiune a Bazelor de Date (MySQL, MongoDB, CouchDB i RedisDB). Performana
trebuie msurat folosind scenariile similare unui mediu din producie. Acest lucru poate
ajuta la nelegerea caracteristicilor performanei pentru anumite tipuri de situaii i la
alegerea tehnologiei potrivite pentru cerinele aplicaiei dezvoltate.
Cuprins
1. Introducere
2. Baze de date
2.1.CAP Theorem (Brewer's Theorem)
2.2.Baze de date SQL
2.3.Baze de date NoSQL
3. Baze de date n cloud pentru Internet of Things
3.1.Internet of Things
3.2.Baze de date n cloud
3.3.Baze de date pentru Internet of Things
4. Context de evaluare
4.1.Testbedding
4.1.1. Yahoo! Cloud Serving Benchmark
4.2.Scalar data benchmark folosind Yahoo! Cloud Serving Benchmark
5. Bibliografie

1. Introducere

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

Apariia primelor calculatoare electronice la mijlocul secolului XX a deschis calea


spre dezvoltarea unor instrumente capabile s stocheze i s prelucreze informaia cu o viteza
net superioar omului. Dei calculatoarele electronice au fost privite la nceput cu scepticism,
acestea i-au dovedit utilitatea foarte repede i au dus la o explozie n ceea ce privete
tehnologia informaiei i prelucrarea datelor.
Primele sisteme de stocare i administrare a datelor au aprut prin anii 60, sub forma
bazelor de date navigaionale, cele mai importante fiind CODASYL (Conference of Data
System Language), bazat pe un model de reea i IMS (Information Management System),
bazat pe un model ierarhic, destinat iniial pentru programul spaial Apollo. Mecanismul din
spatele acestor baze de date era dictat i de suportul fizic de la acea vreme, banda magnetic.
Punctul de intrare n sistem returna un link ctre prima nregistrare, care apoi furniza
pointeri spre urmtoarele nregistrri. Pentru a regsi o anumit informaie, toi pointerii
trebuiau verificai pn la satisfacerea unei anumite condiii.
Odat cu avansul tehnologic n ceea ce privete mediile de stocare i apariia harddiskului n anii 70, un nou model de date i-a fcut debutul: cel relaional. Datele sunt
modelate sub form de tabele, spre deosebire de listele din modelul navigaional, implicnd o
structur bine definit ce trebuie respectat.
Apariia limbajelor de programare orientate pe obiect n anii 80 a adus cu sine
necesitatea de a stoca informaii coninute de obiectele aflate n memorie. n urma acestei
cereri, au aprut i bazele de date orientate pe obiect, care permit un nivel superior de
abstractizare a relaiilor dintre entiti.
Cerinele pentru stocarea i prelucrarea datelor au crescut dramatic dup mijlocul
anilor 90, odat cu apariia i extinderea internetului. n faza incipient, cnd coninutul siteurilor era n mare msur static, informaiile erau stocate n baze de date relaionale. Apariia
conceptului de Web 2.0 a generat o cantitate foarte mare de date, care nu mai putea fi stocat
i deservit mai apoi de modelul relaional, proiectat s funcioneze pe baza unui repertoriu
central.
Cantitatea de date n continu cretere ridic probleme de scalabilitate, pentru a putea
oferi n mod constant performane ridicate. O modalitate de a rezolva aceste probleme este de
a aduga putere sporit de procesare, mai mult memorie RAM sau hard-disk-uri mai
performante din punctul de vedere al fiabilitii i al vitezei.

2. Baze de date
2.1.CAP Theorem (Brewer's Theorem)

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

La sistemele de baze de date relaionale se folosete un sistem tranzacional de


gestiune: operaiile de modificare a bazei de date sunt grupate n tranzacii.
La aceste sisteme o tranzacie respect modelul ACID care va fi dezbtut mai pe larg
n capitolul 2.2.
La sistemele NoSQL modelul ACID este greu s fie respectat (mai ales din cauza
distribuirii i replicrii), i atunci el se nlocuiete cu modelul BASE
Basic Availability: toi clienii primesc un rspuns la o interogare (n loc de a folosi o
singur surs de date, colecia de date este replicat i distribuit, deci undeva n reea este
posibil s existe datele cutate)
Soft State: consistena bazei de date nu este verificat de SGBD, ea trebuie s fie
asigurat de clientul (programul) care are dreptul de modificare a bazei de date
Eventual Consistency: baza de date poate s se afle ntr-o stare de inconsisten
(exist valori diferite ale aceleai date), dar se presupune c n viitor datele vor ajunge ntr-o
stare de consisten. Propagarea modificrilor la replicile datei va fi efectuat n viitor.
Teorema CAP [8][9] a fost propus de informaticianul Eric Brewer n anul 1998 i
prezentat de Brewer n cadrul Simpozionului Principiilor Calculului Distribuit (Symposium
on Principles of Distributed Computing - PODC) din anul 2000 (dup cum spune
Universitate din Berkeley, California) spune c este imposibil pentru un serviciu web (un
serviciu distribuit de stocare a datelor) s ofere simultan urmtoarele trei faciliti:
Consisten (Consistency)
Disponibilitate la cereri (Availability)
Faciliti pentru partiie (Partition)
Folosind aceast teorem, sistemele de baze de date se pot mpri n trei categorii
(clase) dup proprietile pe care le au: CA, AP, CP .
Deoarece sistemele NoSQL trebuie s permit partiionarea, acestea sunt incluse n
una din clasele:
CP (Consistency + Partition): au un grad mai ridicat de consisten, n defavoarea
disponibilitii
AP (Availability + Partition): au un grad mai ridicat de disponibilitate, n timp ce
restriciile cerute pentru consisten s-au restrns (sau chiar eliminat)
2.2.Baze de date SQL
n sistemele de baze de date relaionale, n care tranzaciile sunt operaiile logice de
baz, datele sunt reprezentate sub form de tabele ce suport clauze de tip JOIN, standardul
de facto pentru manipularea datelor fiind SQL (Structured Query Language).
Pentru anumite tipuri de aplicaii care se execut n sisteme distribuite, consistena
este sacrificat n favoarea toleranei la partiionare. Este vorba despre aplicaii web, pentru
care a avea o consisten imediat a datelor pe toate nodurile este mai puin important dect a
funciona i a servi date, chiar dac legtura ntre anumite noduri este ntrerupt. Consistena
datelor este ndeplinit ns, n final, dup o perioad de timp. Exemple de astfel de aplicaii
sunt portalurile de e-commerce, reelele sociale, aplicaiile Web 2.0, s.a.m.d.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

S vedem pe scurt o prezentare a proprietile ACID (atomicitatea, consistena,


independena i durabilitatea) ale tranzaciilor din cadrul bazelor de date relaionale SQL.
Atomicitatea este proprietatea 'totul sau nimic'. O tranzacie este o unitate indivizibil
care se execut n ntregime sau deloc.
Consistena spune c o tranzacie trebuie s transforme baza de date dintr-o form
consistent ntr-o alta form tot consistent.
Independena spune c o tranzacie se execut inependent de oricare alta, adic
efectele pariale ale unei tranzacii incomplete nu trebuie sa influeneze o alta tranzacie.
Durabilitatea este proprietea care spune c efectele unei tranzactii terminata cu succes
sunt definitiv nregistrate n baza de date si nu se mai pot pierde n tranzactiile ntrerupte
ulterior.
2.3.Baze de date NoSQL
Termenul NoSQL Not Only SQL (nunumaiSQL) desemneaz o gam de sisteme
de gestiune a bazelor de date, care nu se bazeaz pe sistemul tradiional relaional.
Sistemele NoSQL au fost iniial create pentru a rspunde nevoilor de scalare web a bazelor de
date. ncepnd din anul 2009 aceast micare a avut o dezvoltare i o raspndire masiv.
Cresterea n volum a datelor ce necesit stocare, frecvena crescut cu care se acceseaz
datele, performana i nevoile de procesare diversificate reprezint doar unele din nevoile
satisfcute de tehnologiile NoSQL.
NoSQL cuprinde o varietate de tehnologii diferite pentru bazele de date care au fost
construite ca i rspuns la modificrile aparute n nevoile utilizatorilor unei baze de date.
NoSQL este potrivit sistemelor distribuite. Structura unei asemenea baze de date este mai
puin rigid n comparaie cu SGBD-urilor tradiionale.
Modelul NoSQL nu este construit pe tabele i nu ofer garania ACID Atomicitate,
Consistenta, Izolare, Durabilitate ns are o arhitectur distribuit i tolerant la erori.
Problema (sau, mai exact, una dintre problemele) cu SGBD-urile tradiionale const n
nivelul relativ slab de scalabilitate. Aceast problem devine un obstacol adevrat n calea
aplicaiilor cu numr mare i foarte mare de utilizatori.
n opoziie cu proprietile ACID, n acest caz sunt prezente proprietile BASE
(Basically Available, Soft state, Eventually consistent) care a fost prezentat n capitolul 2.1.
BASE garanteaz c sistemul este disponibil n situaia partiionrii, datele coninute se
modific de-a lungul timpului, chiar fr o intervenie explicit, datorit faptului c n final
devin consistente prin procesul de sincronizare dintre noduri. Datele nu sunt constrnse s
respecte o anumit schem, iar manipularea lor nu se face printr-un limbaj standard, ca i
SQL. De aceea, aceste baze de date sunt numite i NoSQL.
Iniial, particula No se referea la faptul c limbajul SQL pentru manipularea datelor
nu este suportat, dar, n ultima perioad, No se identifica cu Not Only, transmind ideea
c pe alocuri acestea pot fi manipulate prin interogri de tipul SQL.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

Combinaia dintre consisten i toleran la partiionare asigur faptul c datele sunt


mereu consistente i sistemul funcioneaz, chiar dac n interiorul su apar insule de
comunicare cu sacrificiul disponibilitii acestora pe perioada sincronizrii nodurilor.
Odat cu stabilizarea tehnologiilor legate de Cloud Computing, bazele de date de tipul
NoSQL devin tot mai atractive, att datorit suportului nativ pentru scalabilitate i arhitecturi
6 distribuite, ct i pentru faptul c multe dintre acestea pot fi oferite ca i servicii, pe
modelul pay-as-you-go.

n funcie de tipul problemei care se dorete a fi rezolvat, exist mai multe feluri de
baze de date NoSQL. Tabelul urmtor exemplific principalele tipuri, precum i cele mai
cunoscute implementri comerciale.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

3. Baze de date n cloud pentru Internet of Things


3.1.Internet of Things
Inventat n 1999 de ctre antreprenorul britanic Kevin Aston, conceptul The Internet
of Things (IoT) semnific o structur de obiecte fizice, sau lucruri, nzestrate cu
componente electronice, softuri, senzori i conexiuni la internet, prin care se colecteaz i se
distribuie date. Obiectele sunt unic identificate, sunt auto-contiente i pot comunica ntre
ele, local sau global, fr intervenia uman (doar pe baza conectivitii IP). IoT reprezint
totodat i conceptul de conectivitate omniprezent pentru afaceri, guverne i consumatori,
avnd propriile sisteme de management, monitorizare, calcule statistice i analiz a datelor.
[2]
Definiia de mai sus se poate extinde dincolo de obiecte, incluznd oameni i animale
deopotriv. n IoT, un lucru se refer i la o persoan cu un implant cardiac monitorizat, sau
un cine cu un micro-cip sub pielea capului sau orice alt obiect natural sau artificial cruia i
se poate ataa o adres IP i care este capabil s transfere date printr-o reea de internet.
The Internet of Things este deja o prezen cotidian n viaa multora dintre noi: n
casele noastre, unde contoare inteligente coordoneaz i economisesc consumul de energie
electric; n automobilele noastre conectate la Internet, n care sistemul OnStar (SUA) sau
eCall (UE) declaneaz un rspuns automat n caz de accident, urmrete maina dac este
furat sau ofer asisten tehnic n caz de nevoie; pe corpurile noastre, ca o inserie n tricoul
sau ortul inteligent cu care alergm, ori ca un implant auditiv care capteaz zgomotul mainii
de pompieri i l moaie nainte ca noi s-l auzim.
Exist o confluen de civa factori care, adunai mpreun, au transformat un
domeniu de science-fiction n realitate: codul de bare (1974); dispozitivul (eticheta) RFID
(Radio Frequency Identification); scderea incredibil a preurilor dispozitivelor de stocare a
bazelor de date, necesare pentru colectarea, stocarea i procesarea a mii de miliarde bii;
apariia IPv6, protocolul de internet care a nlocuit versiunea precedent, IPv4. Cu noul
protocol, este posibil ca o adres de internet s fie disponibil n orice obiect care are softul
stocat n el: periua de dini, maina de cafea, frigiderul, maina de splat vase etc.
Tehnologic, IoT a devenit o colecie de coduri de bare, coduri QR, etichete RFID, aplicaii
NFC (Near Field Communication) and SAAS (Software-As-A-Service), dispozitive de
comunicare M2M (Machine-to-Machine), senzori activi, Wi-Fi i IPv6.
3.2.Baze de date n cloud
Conexiunea permanent a utilizatorului la Internet a devenit foarte rspndit, astfel
nct acum aproape toate resursele disponibile se pot plasa n Internet i partaja, uneori chiar
ntre utilizatori complet independeni unii de alii: programele i datele/informatiile sunt
aduse din Internet pe calculatorul utilizatorului la cerere (on demand), ca i cum ar fi vorba
de servicii publice banale precum apa sau energia electric.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

Executarea aplicaiilor de computer se va realiza online n Internet, i nu pe staia de


lucru (workstation) proprie. Acest lucru reprezint o nou schimbare de paradigma urma a
celei din anii 1980, cnd s-a trecut de la mainframe-uri la conceptul client-server. Dac
interfaa pus la dispoziie de furnizorul (provider) de cloud computing este de bun calitate,
atunci utilizatorul e eliberat de sarcina de a fi un expert n tehnologia i infrastructura folosite.
De exemplu, el nu mai trebuie s-i actualizeze software-ul, deoarece aceasta se face central,
la furnizor.
Cloud computing folosete noi metode de oferire i consumare a serviciilor IT n
Internet, servicii care de obicei pot fi dimensionate dinamic i care includ resurse virtualizate.
Este de fapt doar o posibilitate secundar, urmare a uurinei cu care se pot acum accesa toate
serverele i centrele de calcul interconectate prin intermediul Internetului.
Furnizorii de cloud computing:
Pun la dispoziie, de exemplu, aplicaii comerciale standard; utilizatorul are
acces la acestea doar prin intermediul unui browser local, deoarece att aplicaia ct i datele
proprii ale utilizatorului sunt gzduite n cloud, pe serverul furnizorului de servicii. n aceste
condiii asigurarea confidentialittii i drepturilor de acces la date n contextul Internetului
atotprezent joac un rol primordial;
Deseori furnizorii de clouds prevd si servicii suplimentare, consolidnd
toate ofertele lor, pentru toti clientii lor, ntr-o singur loc (pagina sau sit web);
Modelele de servicii care pot fi oferite sunt: Infrastructure as a service
(IaaS), Platform as Service (PaaS) si Software as a service (SaaS).
Ofertele comerciale trebuie n general s ndeplineasc standardele de calitate cerute
de clienti, cum ar fi, de exemplu, asa numitele Service Level Agreements (SLA). Cei mai
mari furnizori din acest domeniu sunt companiile Microsoft, Salesforce, Skytap, HP, IBM,
Amazon si Google.
Avantaje ale Cloud Computing:
Sincronizarea datelor utilizatorului care folosete mai multe dispozitive
legate la cloud (de ex. un smartphone, o tablet, un notebook, dar i un PC) este simplificat;
Documentele online din cloud se pot prelucra cu ajutorul unor aplicaii web;
Vitez de calcul i capacitate de stocare sporite, dar fr investiii n propria
configuraie;
Datele nu pot fi furate, purttorul de date nu se poate defecta etc.
Dezavantaje ale Cloud Computing:
E necesar o legtur la Internet rapid i stabil;
Securitatea necesar a datelor din cloud poate prezenta probleme i poate
produce nencrederea utilizatorilor;
Situaia legal este de obicei complex, deoarece utilizatorul nu afl nici
mcar n ce ar sau n ce ri (!) se afl serverele care i gzduiesc datele sale.
3.3. Baze de date pentru Internet of Things
Dac este s ne raportm la urmtoarea invenie epocal a omenirii, a spune c
IoT este la fel de important ca focul sau cartea.
Patru miliarde de oameni vor fi conectai la IoT pn n 2020.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

Creterea volumului de date i a numrului de utilizatori, duce la degradarea


performanei.
Unica soluie oferit n astfel de cazuri de ctre tehnologiile relaionale, este bazat pe
scalare pe vertical (introducerea de hardware mai performant) care este foarte costisitoare.
Pe de alt parte,tehnologiile NoSQL ofer posibilitatea de a scala pe orizontal, prin
adugarea mai multor servere care, dei nu sunt foarte performante, nu necesit investiii la
fel de mari ca n primul caz.
De asemenea prin rezultatele experimentale sa dovedit c bazele de date NoSQL sunt
mai performane.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

4. Context de evaluare
4.1.Testbedding
4.1.1. Yahoo! Cloud Serving Benchmark
Pentru a realiza o analiz a performanei acestor tip de baze de date (SQL versus
NoSQL) s-a folosit Yahoo! Cloud Serving Benchmark (YCSB).
Performana trebuie msurat folosind scenariile similare unui mediu din producie.
Acest lucru poate ajuta s nelegem caracteristicile performanei pentru anumite tipuri de
situaii i s alegem tehnologia potrivit pentru cerinele aplicaiei dezvoltate.
YCSB (Yahoo Cloud Serving Benchmark) este un test de performan de referin
pentru compararea tehnologiilor NoSQL. Scopul acestuia este s se canalizeze asupra testrii
diverselor tipuri de baze de date i asupra analizei performanei. YCSB este open-source,
extensibil, are un numr mare de conectori pentru diverse tipuri de tehnologii, este
reproductibil i compar latena vs randament (throughput).
n cazul nostru au fost folosite urmtoarele versiuni ale bazelor de date :
MySQL
MongoDB
CouchDB
Redis

5.6.10
2.4.3
1.2.0
2.6.12

Se observ c am testat o baz de date relaional SQL (MySQL 5.6.10 ) i trei baze
de date NoSQL (MongoDB 2.4.3 , CouchDB 1.2.0 i Redis 2.6.12).
Creterea volumului de date i a numrului de utilizatori, duce la degradarea
performanei. Unica soluie oferit n astfel de cazuri de ctre tehnologiile relaionale, este
bazat pe scalare pe vertical (hardware mai performant) care este foarte costisitoare. Pe de
alt parte, tehnologiile NoSQL ofer posibilitatea de a scala pe orizontal, prin adugarea mai
multor servere care, dei nu sunt foarte performante, nu necesit investiii la fel de mari ca n
primul caz.

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

4.2.Scalar data benchmark folosind Yahoo! Cloud Serving Benchmark

FACULTATEA DE AUTOMATIC I CALCULATOARE


CATEDRA CALCULATOARE

5. Bibliografie

[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]

Thi Anh Mai Phan, Cloud Databases for Internet-of-Things Data, Kongens Lyngby,
2013
Andrei Avdanei, Memcached n PHPo soluie NoSQL, disponibil online la adresa
http://www.worldit.info/articole/memcachedinphposolutienosql/
Bogdan Dumitru, NoSQL: avantaje i dezavantaje, articol disponibil online la
adresa http://www.booksexpress.ro/blog/nosqlavantajesidezavantaje/
Pramod Sadalage, Martin Fowler, NoSQL Distilled, Redmont, 2012
Christoph Strauch, "NoSQL Whitepaper" , Hochschule der Medien, Stuttgart, 2010
Christoph Strauch, "NoSQL Databases" , Hochschule der Medien, Stuttgart, 2010
NoSQL Wikipedia, The Free Encyclopedia, disponibil online la
http://en.wikipedia.org/wiki/No_sql/
Seth Gilbert, Nancy Lynch, Brewer's conjecture and the feasibility of consistent,
available, partition-tolerant web services, ACM SIGACT News, Volume 33 Issue 2,
June 2002, Pages 51-59,
Wikipedia, CAP Theorem, https://en.wikipedia.org/wiki/CAP_theorem/