Studiul bazelor de date distribuite într-un limbaj NoSQL (MongoDB)

20
Studiul bazelor de date distribuite într-un limbaj NoSQL (MongoDB) Absolvent : Dragoș-Mihai Zăbavă Coordonator: Șl. Dr. Ing. Valentin Pupezescu BUCUREȘTI, IULIE 2013 Universitatea Politehnica București - Facultatea de Electronică, Telecomunicaţii și Tehnologia Informaţiei 1

description

Universitatea Politehnica Bucureşti - Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei. Studiul bazelor de date distribuite într-un limbaj NoSQL (MongoDB). Absolvent : Dragoș-Mihai Zăbavă Coordonator : Șl . Dr. Ing . Valentin Pupezescu BUCUREŞTI, IULIE 2013. Cuprins. - PowerPoint PPT Presentation

Transcript of Studiul bazelor de date distribuite într-un limbaj NoSQL (MongoDB)

Page 1: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Studiul bazelor de date distribuite într-un limbaj NoSQL (MongoDB)

Absolvent : Dragoș-Mihai Zăbavă

Coordonator: Șl. Dr. Ing. Valentin Pupezescu

BUCUREŞTI, IULIE 2013

Universitatea Politehnica Bucureşti - Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei

1

Page 2: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Cuprins 1. Tehnologiile folosite 2. Configuratia sistemului 3. Concepte NoSQL 4. MongoDB 5. Replicabilitatea MongoDB 6. Framework-ul Grails 7. Descrierea aplicatiei 8. Structura bazei de date 9. Spring Security 10. Functionalitatile aplicatiei 11. Testarea replicarii 12. Tratarea defectelor 13. Concluzii

2

Page 3: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Tehnologii folositeBack-end:

Front-end:

3

Page 4: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Configurația sistemului:

Procesor : Intel Core 2 Duo T7500 @ 2.20 Ghz

Memorie RAM: 3 Gb DDR2 Sistem de operare: Ubuntu 11.04, 32

biți Java – versiunea 1.6.0.41 Grails – versiunea 2.1.0.RC3 Mongo –versiunea 2.4.1 Mediul de dezvoltare Intellij IDEA 12.1 Server GlassFish

4

Page 5: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Concepte NoSQL- tabelele nu au o schema

predefinita;- înregistrările la nivelul bazei de

date au un număr variabil de atribute de la o înregistrare la alta;

- solutii populare:◦Mongo DB◦Cassandra (Facebook)◦Voldemort (LinkedIn) - "Who has

viewed my profile" 5

Page 6: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

MongoDBMongoDB - bază de date axată

pe înregistrări de tip document ce poate asigura performanţe ridicate, disponibilitate si replicabilitate.

6

Page 7: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Documente BSON (Binary JSON)MongoDB îşi structurează înregistrările în

documente de tip BSON. Exemplu de document:var mydoc = {

_id: ObjectId("5099803df3f4948bd2f98391"), name: { first: "Dragos", last: "Zabava" }, birth: new Date('March 15, 1989'), contribs: [ "Turing machine", "Turing test", "Turingery" ],

views : NumberLong(1250000) }

7

Page 8: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Replicabilitatea MongoDB Pentru implementarea

conceptului de replicabilitate, MongoDB se bazează pe principiul "Master - Slave";

O bază de date poate avea până la 12 noduri (1 nod principal + 11 noduri secundare);

Maxim 7 noduri pot avea drept de vot

8

Page 9: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Aplicabilitate MongoDB SAP - funcţionalitatea PaaS

(Platform as a Service);MTV - următoarea generaţie de

CMS (Content management system);

Disney - proiectul Interactive Media Group;

Viber - aplicaţiile pentru iPhone si Android

O2 - Priority Moments service9

Page 10: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Framework-ul Grails

- filozofia de programare: Convenție peste configurație

- metodologia Agile- integarbilitate cu JAVA

10

Page 11: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Descrierea aplicatiei

- Platforma de gestiune a activităţii unei agenţii imobiliare.

11

Page 12: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Structura bazei de date

12

Page 13: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Spring Security

13

Page 14: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Funcționalitățile aplicației

14

Page 15: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Funcționalitățile aplicației

15

Page 16: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Funcționalitățile aplicației

16

Page 17: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Testarea replicării

17

Page 18: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Tratarea defectelor

18

Page 19: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Concluzii MongoDB nu reprezintă soluţia ideală pentru

dezvoltarea unei infrastruturi complexe însă, datorită vitezei mari de citire a datelor, se pliază foarte bine pe module mici din cadrul unui proiect complex. De asemenea, mulţumită facilităţii de replicare a bazei de date, oferă siguranţa unui plan de afaceri continuu.

Criteriul cel mai important în alegerea acestei baze de date a fost fiabilitatea, datorată mecanismului de tratare a defectelor. Folosind un set de replicări, pe lângă faptul că am asigurat redundanța datelor, am asigurat și fiabilitatea sistemului, aplicația putănd rula perfect și în urma defectării unora dintre instanțele setului de replicări.

19

Page 20: Studiul bazelor  de date  distribuite într-un limbaj NoSQL (MongoDB)

Vă mulțumesc pentru atenția acordată!

20