sâmbătă , 20 ianuarie 2018
roen
Home / Program Nucleu / Sistem pentru stocarea, gestionarea şi accesarea în Cloud a Bazelor de Date aparţinând Administraţiei Publice Locale

Sistem pentru stocarea, gestionarea şi accesarea în Cloud a Bazelor de Date aparţinând Administraţiei Publice Locale

Director proiect: ing. Dragoş Nicolau,  dragos@ici.ro, 021-316.07.36/163, 183

Suport financiar: Proiectul s-a desfăşurat în perioada 15 sep 2014 – 10 dec 2014, în cadrul Programului Nucleu: ”Tehnologii avansate şi servicii pentru dezvoltarea societăţii informaţionale – TEHSIN”, Obiectiv 01: “Tehnologii avansate pentru eservicii”, finanţat de Ministerul Educaţiei, Cercetării şi Inovării – Autoritatea de Stat pentru Cercetare Ştiinţifică, Dezvoltare Tehnologică şi Inovare.

Echipa de cercetare ICI: ing. Dragoş Nicolau, ing. Răduţ Valentin, ing. Petre Ionuţ, ing. Sipică Alexandru.

Obiectiv:

Prin cercetările ce s-au întreprins pe parcursul derulării proiectului, s-a urmărit realizarea următorului obiectiv general:

• modernizarea funcţionării aplicaţiilor Web aparţinînd Administraţiei Publice, prin agregarea bazelor de date şi transferarea acestora în Cloud.

Obiectivele specifice vizează:

• creşterea fiabilităţii în lucru (coeficient de 99,999%, în cazul utilizării tehnologiei Cloud)

• creşterea operabilităţii, datorităprocesului de interconectare a bazelor de date (acceaşi interfaţă de portal Web poate asigura consultarea unor informaţii tot mai variate şi complexe);

• scăderea costurilor de întreţinere;

• asigurarea unui acces unitar la resursele informaţionale;

• păstrarea (chiar creşterea) vitezei de accesare, în condiţiile unui flux de date vehiculate continuu crescător.

Descriere: Sunt prezentate rezultatele cercetărilor obţinute de
colectivul de cercetare. Raportul de cercetare elaborat în această fază cuprinde 5 capitole principale.

Capitolul 1, intitulat „Introducere”, prezintă formatele funcţionale ale tehnologiei Cloud, precum şi clasificarea serviciilor Cloud dupămodul de accesare. De asemenea, în cadrul capitolului sînt oferite informaţii referitoare la avantajele şi dezavantajele tehnologiei Cloud, precum şi problemele noi cărora trebuie săla facăfaţă. În continuare, capitolul prezintă obiectivul şi justificarea practică a studiului realizat, precum şi cîteva situaţii concrete, pe plan naţional şi internaţional, referitoare la subiectul proiectului, alături de soluţii propuse de autori.

Capitolul 2 este intitulat „Despre Cloud Computing” şi prezintă generalităţi despre acest concept: ipostaze funcţionale, mod de gestionare, tendinţe de evoluţie, probleme de securitate; acestora se adaugă consideraţii economico-financiare asupra sistemelor de gestiune a bazelor de date funcţionînd pe platforma Cloud.

Conceptul de Cloud Computing a apărut încă din anii 1960, cînd se preconiza gruparea calculatoarelor în super structuri de calcul, care să funcţioneze concurent şi să conţină toată complexitatea elementelor tehnice hard/soft care să deservească reţeaua.

Efectul introdus de Cloud este major: în viitor, nu va mai fi nevoie săstocăm date şi programe pe hardul propriu, ci, odată conectaţi, vom plăti servicii care vor rezolva toate activităţile care acum se fac pe calculator propriu: stocări şi rulări de filme, muzică, procesare de imagine, editare de texte, gestionare şi prelucrare dedate etc; contra unei sume modice, serviciile de streaming oferă instantaneu accesul la informaţiile dorite, de pe terminalele cele mai variate – calculator personal, tabletă, smartphone, laptop. Desigur, în spatele Cloud Computing-ului, lucrurile sînt mult mai complicate, de aceea specialişti din companii reputate îşi conjugă eforturile pentru a dezvolta infrastructura hardware şi software-ul pentru ca totul să fie cît mai rapid, simplu, fiabil şi de încredere.

Tipurile de servicii Cloud (le-am denumit mai sus “ipostaze funcţionale”) sînt prezentate în continuarea capitolului.

IaaS (Infrastructure as a Service – infrastructură ca serviciu). Investiţia în hardware, licenţe software, stocare sau echipamente de reţea, poate fi substituită prin simpla consumare a unui serviciu care oferă achiziţionarea tuturor acestor elemente necesare. Cu alte cuvinte, tot echipamentul fizic-logic este înlocuit cu o infrastructură virtualizată, găzduităîntr-un imens centru de date, managementul şi administrarea rămînînd pe mai departe responsabilitatea specialiştilor IT.
PaaS (Platform as a Service – platformăca serviciu) PaaS tinde să abstractizeze (generalizeze) lucrurile şi mai mult decît IaaS, în sensul cănu mai oferă echipamentul fizic-logic drept serviciu, ci devine o platformă pentru dezvoltare de aplicaţii, virtualizînd foarte mult conceptele tipice: server, sistem de operare, ofertăde maşini virtuale, baze de date, reţea etc. De exemplu, PaaS oferă un sistem de operare pentru data center, unde:

• în loc de resursele clasice (procesor, memorie, echipamente In/Out), caracteristice serverelor fizice, acestea se abstractizează sub formă de resurse de procesare, stocare etc.

• după virtualizarea puterii de calcul, resursele sus amintite sînt oferite sub forma de componente programabile, ce pot fi utilizate în dezvoltare de aplicaţii.

PaaS este ideal pentru dezvoltatorii de aplicaţii. SaaS (Software as a Service – software ca serviciu) este cel mai înalt nivel de abstractizare la nivel de servicii deoarece oferă acces la acestea fără a investi efort în dezvoltare sau administrare. Spre deosebire de IaaS, acum nu mai e nevoie săse administreze o infrastructură.
Diferit şi de PaaS, SaaS nu mai ridică problema necesităţii de a dezvolta, extinde sau întreţine aplicaţii, din moment ce acum vorbim despre servicii (aplicaţii) finite ce sînt online şi pot fi utilizate ca atare. Desigur, SaaS, datorită nivelului înalt de abstractizare, se dovedeşte a fi ideal pentru o gamă largă de utilizatori, începînd cu cei mai ne-experimentaţi  şi terminînd cu dezvoltatorii.

În funcţie de modul de proprietate, avem variantele:
•  Cloud public
•  Cloud privat
•  Cloud hibrid

Cloud-ul privat înseamnă infrastructură avantajos de implementat numai pentru o singură organizaţie (companie), indiferent că administrarea rămîne internăsau va fi asigurată de un terţ. Cloudul privat necesită un nivel semnificativ de efort, atît din partea conducerii, cît şi din partea departamentelor IT, pentru „virtualizarea” mediului de lucru şi pentru estimarea  şi optimizarea modului în care resursele vor fi trimise „în nori”.

Cloud-ul public, prin arhitectura fixă, oferă avantajul simplităţii, sacrificînd adaptarea la cerinţele clientul, performanţa şi securitatea.

Cloud-ul hibrid, dupăcum sugerează şi numele, cuprinde atît servicii cloud-private, (interne) cît şi servicii de cloud-publice (externe). În general, o companie poate rula o aplicaţie în primul rînd pe un cloud privat, iar apoi să se bazeze pe un cloud public pentru a rezolva vîrfurile de încărcare.

Capitolul continuă cu prezentarea tendinţelor de evoluţie pe termen scurt a solicitării de servicii Cloud; sînt incluse apoi consideraţii asupra securizării datelor în Cloud.

Capitolul se încheie cu expunerea de consideraţii de tip economico-finaciarasupra sistemelor de gestiune a bazelor de date în Cloud, susţinute de prezenţă unui nou subconcept al Cloud, anume Database as a Service (Serviciu orientat pe baze de date).

Capitolul 3(“Baze de date NoSQL”), se concentrează pe expunerea noii filozofii de structurare a bazelor de date în Cloud, care sînt forţate să ofere cu viteză sporităinterogări pe număr tot mai mare de înregistrări. În esenţă, dezvoltatori au început să implementeze  şi să
lucreze cu baze de date non relaţionale numite NoSQLNot Only SQL.

Diversele baze de date NoSQL existente azi pe piaţă prezintă diferite abordari. Ceea ce au în comun este faptul că nu sînt relaţionale.

Principalul avantaj este acela că permit lucrul eficient cu date nestructurate precum email, multimedia, procesoare de text şi că oferă vitezăfoarte mare de răspuns la procesarea unor cantităţi de date impresionant de mari.
O bază de date NoSQL ignoră principiile RDBMS şi nu stochează date folosind tabele ci folosind chei de identificare. Datele pot fi regăsite în funcţie de cheile asignate. Părerea noastră este că acest tip de baze de date evadează din rigorile relaţionale prin lipsa unei scheme, lipsa necesităţii de normalizare a datelor şi de stocare a relaţiilor dintre tabele aducînd astfel performanţe sporite aplicaţiilor care le folosesc. De asemenea acest tip de baze de date îmbunătăţesc şi răspunsul la schimbări de-a lungul timpului. Într-un sistem relaţional nu există flexibilitatea necesarăpentru a asimila modificări în modelul de date. Faptul că bazele de date NoSQL nu au o schemă de date fixă face aceste baze de date să fie mult mai flexibile şi adaptabile la schimbări de model în cursul anilor.

În continuarea capitolului, se prezintă şi dezavantajele sistemelor NoSQL; apoi  sînt introduse elementele constitutive ale bazelor de date de tip MongoDB şi sînt enumerate cîteva comenzi elementare pentru manevrarea datelor. Menţionăm că o prezentare mai pe larg a bazelor de tip Mongo este făcutăîn capitolul 5.

Capitolul se încheie cu expunerea particularităţilor sistemelor NoSQL.

Capitolul 4, “Algoritmi pentru agregarea bazelor de date”, se concentreazăpe prezentarea aplicaţiei Windows, scrisă în C#, pe suport .NET Framework 3.5, care execută automat procesul de agregare a mai multor baze de date de tip MS SQL SERVER 2005, într-o bază rezultantă.
Mecanismul agregării are la bazăcitirea ansamblului de baze de date, analizarea în parte a fiecărei baze de date în ceea ce priveşte schema şi datele, memorarea acestora în cîte un fişier binar, încărcarea şi citirea acestor fişiere, compunerea informaţiilor din scheme pentru a obţine baza rezultantă şi, finalmente, popularea bazei rezultante cu datele din fiecare bază. Baza rezultantă va fi transferată în Cloud după ce va fi fost transformată în bază de date Mongo.
După cum se observă în figura sugestivă de mai jos, aplicaţia analizează fiecare bază de date de interes, proces în urma căruia apar pe disk, în folderul ales, două fişiere binare temporare (evident, ataşate bazei de date curent analizate): unul conţine schema, celălalt conţine datele; după citire  şi agregarea bazelor în baza rezultantă, fişierele temporare se vor şterge. Menţionăm că schema conţine numele tabelelor, împreună cu caracteristicile specifice pentru fiecare cîmp, adicănume, tip de dată, restricţiile ataşate, dacăeste sau nu cheie primarăsau externă etc.

În continuarea capitolului sînt prezentate secvenţe de cod C# şi SQL, utilizate la:

•  citirea numelor bazelor de date de interes

•  parcurgerea schemei fiecărei baze şi memorarea ei într-un fişier binar

•  parcurgerea datelor fiecărei baze şi memorarea lor într-un fişier binar

•  crearea şi popularea bazei rezultante prin citirea şi analizarea (parsarea) fişierelor binare de tip schemă şi date, menţinute pe hard disk.

Trebuie adăugat că fişierele de tip schemă, precum şi cele de tip date, sînt organizate sub formăarborescentă; de exemplu, fişierul de tip schemăeste structurat pe modelul: -tabel {-cîmp{- tip:, – mărime, – cheie primară, – autonumber, } . . . }

În încheierea capitolului, se prezintă rezultatul rulării codului descris mai sus pe o simulare de baze de date cu număr mare de înregistrări, precum şi modalităţile de transferare în Cloud.

Capitolul 5, intitulat “Algoritmi pentru convertirea bazelor de date Microsoft SQL SERVER în baze de date Mongo”, cuprinde mai întîi o prezentare mai profundă a anatomiei bazelor de date Mongo – împreună cu o listă sugestivă de echivalare a comenzilor SQL în instrucţiuni de tip Mongo – iar apoi include mostre de cod C# utilizate la construirea executabilului de tip consolă care realizează conversiunea (aceste primeşte 2 argumente exterioare, anume stringul de conectare la baza SQL SERVER şi numele dorit pentru baza de tip Mongo).
Aici, vom exemplifica cîteva elemente ale structurării bazelor de tip MongoDB, care este este o bază de date NoSQL open-source, orientatăspre documentul open source care stochează date în obiecte de tip JSON. Ea s-a afirmat ca una dintre cele mai importante baze de date, datorită schemei sale dinamice, scalabilitatăţii ridicate, performanţei de interogare optime, indexării mai rapide si unei comunităţi de utilizatori activi.
În imaginile de mai jos, vom face o comparaţie grafică între modelul clasic de baze de date (SQL) şi modelul de tip Mongo.

Următoarea secţiune a capitolului este dedicată echivalării instrucţiunilor SQL cu comenzi de tip Mongo, pentru operaţii precum:

•  creare de tabele

•  inserare de date

•  ştergere de date sau deelemente de schemă

•  actualizare de date sau de elemente de schemă

Capitolul continuă şi se încheie cu mostre de linii de cod C# ale aplicaţiei care execută conversiunea SQL Æ Mongo.
Lucrarea se încheie cu capitolul de concluzii şi cu cel de bibliografie.

Efecte scontate ale lucrării:

•  agregarea datelor aparţinînd Administraţiei Publice locale, într-o bazăunică;

•  cîştig important în vitezăla accesarea unui volum foarte mare de date, prin utilizarea unei noi paradigme informatice, anume baze NoSQL;

•  fiablitate crescută, prin migrarea în Cloud;

•  eliminarea restricţiilor fizice de stocare, datorită amplasării în Cloud a bazelor de date.

Rezultate:

Prin rezultatele prezente în lucrare, se confirmă realizarea obiectivelor prevăzute pentru proiect, în concordanţă cu schema de realizare.

Rezultatele finale ale proiectului s-au concretizat în:

•  elaborarea unui raport de cercetare incluzînd consideraţii asupra tehnologiei Cloud în general, precum şi studierea formatului NoSQL al bazelor de date (utilizat pe larg în tehnologia Cloud);

•  aplicaţie Windows pentru agregarea mai multor baze de date SQLSERVER într-una rezultantă;

•  aplicaţie consolă pentru conversiunea bazei finale SQL SERVER la formatul MongoDB, utilizatorii fiind instituţiile aparţinînd Administraţiile Publice, prin oferirea rapidă şi sigură a unui volum din ce în ce mai mare de informaţie.

[real3dflipbook id=”83″]