APLICAȚIE ONLINE CE F ACILITEAZĂ ACCESUL LOCATARILOR LA [621177]
Universitatea “Politehnica” din București
Facultatea de Electronică, Telecomunicații și Tehnologia Informației
APLICAȚIE ONLINE CE F ACILITEAZĂ ACCESUL LOCATARILOR LA
INFORMAȚIILE OFERITE DE FIRMA DE ADMINISTRAȚIE
Proiect de diplomă
prezentat ca cerință parțială pentru obținerea titlului de
Inginer în domeniul Inginerie electronică și telecomunicații
programul de studii de licență Electronică aplicată
Conducător(i) științific(i) Absolvent: [anonimizat]. Vlad -Alexandru GROSU Tiberiu Mareș
Anul
2018
Cuprins
Declarație de onestitate academică ………………………….. ………………………….. ………………………….. ……..
Listă de figuri și tabele ………………………….. ………………………….. ………………………….. ……………………. 8
Listă de acronime ………………………….. ………………………….. ………………………….. ………………………….. . 9
1. Capitolul 1 – RoomBo ………………………….. ………………………….. ………………………….. ……………. 10
1.1. Descriere ………………………….. ………………………….. ………………………….. ………………………… 10
1.2. Administratori și chiriași ………………………….. ………………………….. ………………………….. ….. 10
1.2.1. Administrator ………………………….. ………………………….. ………………………….. ……………………… 10
1.2.2. Chiri aș ………………………….. ………………………….. ………………………….. ………………………….. …… 10
1.3. Interacțiunea administrator -chiriaș în secolul XXI ………………………….. ……………………….. 11
1.4. Suport tehnic utilizat ………………………….. ………………………….. ………………………….. ……….. 11
1.4.1. Hardware ………………………….. ………………………….. ………………………….. ………………………….. . 11
1.4.2. Software ………………………….. ………………………….. ………………………….. ………………………….. .. 12
1.4.3. Medii de dezvoltare ………………………….. ………………………….. ………………………….. …………….. 12
Mediil e de dezvoltare folosite pentru realizarea acestui proiect: ………………………….. ………………. 12
2. Capitolul 2 ………………………….. ………………………….. ………………………….. ………………………….. .. 13
2.1. ASP.NET MVC ………………………….. ………………………….. ………………………….. ………………. 13
2.2. Limbaje folosite ………………………….. ………………………….. ………………………….. ………………. 15
2.2.1. C# și arhitectura .NET ………………………….. ………………………….. ………………………….. ………….. 15
2.2.2. HTML, CSS și JavaScript în ASP.NET ………………………….. ………………………….. ……………………. 17
2.3. Object -Relational Mapping (ORM) ………………………….. ………………………….. ……………….. 17
2.3.1. Entity Framework ………………………….. ………………………….. ………………………….. ……………….. 18
2.3.2. DBMS (PostgreSQL) ………………………….. ………………………….. ………………………….. …………….. 20
2.3.3. Replicarea bazei de date PostgreSQL ………………………….. ………………………….. …………………. 22
3. Capitolul 3…. ………………………………………………………………………… …………………………. ………. ..24
3.1. Replicarea bazei de date ……………………………………………………… ……………………………… 24
Chapter 4 Bibliografie ………………………….. ………………………….. ………………………….. …………………… 27
Listă de figuri și tabele
Fig 2.1 Diagrama arhitecturii MVC [Sursa: Stack Overflow , 2018 ] ………………………….. ……………. 13
Fig 2.2 Arhitectura ASP.NET MVC [sursa: SlideShare, 2018] ………………………….. …………………….. 14
Fig 2.3 Legătura dintre C# și arhitectura .NET [Sursa: Introduction to C# and the .NET Framework,
2018] ………………………….. ………………………….. ………………………….. ………………………….. ……………… 16
Fig 2.4 HTML, CSS și JavaScript în pagini web [Sursa: Web Design from Scratch, 2018] …………. 17
Fig 2.5 Arhitectura Entity Framework [sursa: Entity Framework Tutorial, 2018] ………………………. 19
Fig. 2.6 Variantele de dezvoltare a unei aplicații în Entity Framework [sursa: Charp Star, 2018] …. 20
Listă de acronime
ADO ActiveX Data Object
ASP Active Server Page
CSS Cascading Style Sheet
CSV Comma -separated values
DBM S Database Management System
DLL Dynamic -link library
EDM Entity Data Model
GUI Graphical User Interface
HTML HyperText Markup Language
MVC Model -View -Controller
ORM Object -Relational Mapping
PHP Personal Home Page
SQL Structured Query Language
UTF Unicode Transformation Format
XML Extensible Markup Language
1. Capitolul 1 – RoomBo
1.1. Descriere
Societatea cooperativă RoomBo este o organizație non -profit c e vizează studenții ce caută să
închirieze apartamente. Obiectivul principal al companiei este acela de a face localizarea
apartamentelor disponibile din orașele Bologna și Forli mai ușoară, în același timp oferind camere
și apartamente de închiriat pentru studenți la prețuri accesibile, cu contracte în conformitate cu
legea. Toate casele se află în apropriere de universitate sau în principalele zone strategice ale celor
două orașe, acestea fiind renovate și complet mobilate.
1.2. Administratori și chiriași
Cele două c lase de utilizatori ai aplicației sunt administratorul și chiriașul . Dialogul principal în
cadrul aplicației are loc între aceste două entități.
1.2.1. Administrator
Administratorul unui complex de apartamente poate fi atât persoană fizică, cât și persoană juri dică,
această din urmă situație fiind din ce în ce mai des întâlnită în ultima vreme.
Obligațiile administratorului:
Trebuie să predea locuința în stare normală de folosire după ce s -a semnat contractual de
închiriere
Să se ocupe de efectuarea tuturor rep arațiilor care sunt necesare pentru a menține
apartamentul în stare corespunzătoare de întrebuințare pe întreaga durată a contractului de
închiriere
Să nu intre în apartament fără acordul chiriașului in cazul în care acesta nu este pre zent și să
nu facă vi zite neanunțate.
Drepturile administratorului:
Poate rezilia contractual de închiriere în cazul în care chiriașul nu și -a îndeplinit obligațiile
Dreptul de a solicita chiriașului despăgubiri pentru pagube material cauzate de acesta
1.2.2. Chiriaș
Un chiriaș este o persoană fizică sau o instituție care dobândește folosința unei locuințe în baza unui
contract de închiriere, plătind în schimb o sumă de bani numită chirie .
Obligațiile chiriașului:
Trebuie să ia în primire locuința de față cu proprieta rul
Să plăteas că chiria la timp
Să predea locuința în aceeași stare ca atunci când a luat -o în primire
Să nu sub -închireze locuința fără acordul scris al proprietarului
Să permită proprietarului examinarea locuinței la intervale de timp stabilite de comun acord
Să contribuie la cheltuielile pentru încălzirea, iluminarea și curățarea părților și instalațiilor
de folosință comună .
Drepturile chiriașului:
Poate fi despăgubit pentru orice reparație făcută în numele proprietarului
Dreptul de a rezilia unilateral contractul cu un termen de preaviz de 60 de zile, dacă
contractul de închiriere s -a făcut pe o perioadă determinată
Poate întrebuința părțile și instalațiile de folosință comună ale clădirii
Dreptul de folosință exclusivă a locuinței
Dreptul de a primi despăgubiri din partea proprietarului în cazul în care viciile pot provoca
prejudicii asupra sănătății sale .
1.3. Interacțiunea administrator -chiriaș în secolul XXI
Comunicarea dintre administrator și chiriaș este esențial ă pentru rezolvarea nelămuririlor și
transmiterea informațiilor necesare astfel încât ambele părți să fie mulțumite. În zilele noastre,
datorită tehnologiei disponibile, există nenumărate mijloace accesibile oricui prin care acest lucru
este posibil, cum ar fi e-mail, rețele de socializare și diversele aplicații disponibile pentru telefoane
mobile.
Pe lângă aspectele legate de comunicare, tehnologia poate aduce îmbunătățiri și în viața de zi cu zi.
Un exemplu ar fi dispozitivele inteligente. Camerele de secu ritate pot oferi siguranță chiriașilor și în
același timp pot proteja administratorul în cazul pierderii sau modificărilor aduse bunurilor.
Nu în ultimul rând, un alt beneficiu important îl reprezintă posibilitatea de efectuare on -line a
facturilor , chiriașul putând astfel plăti indiferent de locația în care se află.
1.4. Suport tehnic utilizat
1.4.1. Hardware
Platforma hardware utilizată pentru realizarea acestei aplicații a fost calculatorul personal, care are
următoarea configurație :
Procesor: Intel Core i5-8250u este un procesor de tip quad -core, ceea ce ii oferă o viteză cu
până la 40% mai mare față de cele dual-core. Procesorul face parte din seria Kaby Lake, este
dotat cu o memorie de 6MB Smart Cache și poate atinge o frecven ță maxim ă de 3,5 GHz cu
ajutorul tehnologiei Turbo Boost.
Placa video: Nvidia GeForce 940MX este o placă video din gama de mijloc ce este
compatibilă cu DirectX 12. A fost lansată pe piață în martie 2016 și este bazată pe
arhitectura Maxwell (tehnologie de 28 nm). Principalul avanta j al arhitecturii Maxwell față
de arhitectura anterioară (Kepler) îl constituie eficiența energiei (aproape dublă), precum și
shadere vizibil mai puternice. Comparativ cu GeForce 9 40M, Geforce 940MX are același
chip (GM 108), dar are o frecvență ceva mai r idicată (1122 MHz față de 1072 MHz).
Memoria este de tipul DDR3 și este accesată printr -o interfață de 64 de biți.
1.4.2. Software
Sistemul de operare folosit pentru realizarea aplicațiilor este Windows 10 , sistem dezvoltat de
Microsoft .
1.4.3. Medii de dezvoltare
Mediile de dezvoltare folosite pentru realizarea acestui proiect:
Microsoft Visual Studio 2015 – este un mediu de dezvol tare integrat ce include un set
complet de instrumente de dezvoltare pentru realizarea aplicațiilor ASP.NET , aplicații
desktop și mobile, servicii web XML etc.
Adobe Dreamweaver – aplicație de dezvoltare web.
VMware Workstation Pro – este o colecție de software ce implementează o mașină virtuală
pentru calculatoare pe arhitecturi x86 sau x86 -64. Pe fiecare astfel de mașină virtuală se
poate executa un sistem de operare c um ar fi Windows, Linux etc. VMWare Works tation
permite astfel unei singure mașini fizice să ruleze mai multe sisteme de operare simultan.
Este util pentru testarea de software de aplicații pe multiple platforme, fără a fi necesare
mașini fizice suplimentare.
2. Capitolul 2
2.1. ASP.NET MVC
În general, scopul calculatoarelor este acela de a prelua informații dintr -o anumită locație și a o
prelucra după prefer ințele utilizatorului pentru ca în final să o afișeze utilizatorului. După ce
conținutul informației a fost modificat, sistemul înlocuiește informația în locația de unde a fost
preluată în primă instanță. Dacă se dorește a se realiza o aplicație care să realizeze aceste operații,
metoda cea ma i simplă este de a pune operațiile într -un singur loc și a le trata ca pe un tot . Această
metodă, însă, nu vine fără probleme, spre exemplu atunci când se vrea schimbarea interfeței. O altă
problemă are legătura cu logica de business ce trebuie incorporată , fiind la rândul ei supusă
schimbărilor, schimbări ce sunt mai complexe decât simpla interschimbare de informație. În această
situație, este necesară delimitarea părților componente astfel încât acestea să poată fi modificate mai
ușor și, în același timp, modificările ce au fost realizate să fie în continuare compatibile cu restul
modulelor ce formează aplicația. [sursa: Microsoft Docs, 2018]
O variantă de rezolvare a acestei probleme o reprezintă arhitectura MVC (Model -View -Controller),
care poate separa cele trei părți (de stocare, de prezentare și de prelucrare) în trei clase diferite:
Model, View și Controller :
Fig 2.1 Diagrama arhitecturii MVC [Sursa: Stack Overflow , 2018 ]
Model . Clasa Model gestionează comportamentul și datele domeniului aplicației, răspunde
solicitărilor pentru informații despre starea sa (de obicei din View) și răspunde la cereri de
schimbare de stare, notificând utilizatorul când schimbările au avut loc pentru ca acesta să
poată reacționa.
View . Clasa View afișează interfața cu utilizatorul a aplicației, interfața fiind creată cu datele
din Model. Este posibil să existe mai multe View -uri pentru un singur Model, fiecare având
alt scop.
Controller . Clasa Controller este o clasă specială, rolul său fiind acela de a gestiona
relațiile dintre View și Model în felul următor: Controller reacționează la acțiunile
utilizatorului, comunică cu Model și decide vizualizarea (View) care se va afișa, în cazul în
care ex istă una. [sursa: Microsoft Docs, 2018]
Fig 2.2 Arhitectura ASP.NET MVC [sursa: SlideShare, 2018]
Avantajele folosirii ASP.NET MVC:
MVC permite o dezvoltare rapidă și în paralel. Dacă un model MVC este folosit pentru a
dezvolta o aplicație web, este posibil ca un programator să lucreze în View, în timp ce altul
lucreaz ă în Controller pentru a crea logica business a aplicației. Astfel, timpul necesar
dezvoltării aplicație i poate fi redus semnificativ.
Modificările efectuate nu afectează întregul model. Spre exemplu, schimbările frecvente ale
interfeței cu utilizatorul pentru o aplicație web, cum ar fi schimbarea culorilor, fonturilor etc.
sau adăugarea unui tip nou de View se face destul de simplu în MVC deoarece partea Model
nu depinde de partea View. Astfel, orice modificări ale modelului nu vor afecta întreaga
arhitectură.
MVC returnează datele fără vreun fel de formatare. Astfel, aceleași componente pot fi
utilizate și apelate cu orice interfață.
Arhitectura MVC poate fi integrată și cu cadrul JavaS cript. Asta înseamnă că aplicațiile
MVC pot fi făcute să funcționeze chiar și cu fișiere PDF și cu widget -uri desktop.
MVC suportă tehnica asincronă, care ajută dezvoltatorii să realizeze o aplicație care se
încarcă foarte repede. [sursa: Brainvire, 2018]
2.2. Limbaje folosite
2.2.1. C# și arhitectura .NET
C# este un limbaj de programare modern, multi -funcțional, orientat spre obiect, capabil să
exploateze noile tipuri de resurse software oferite de platforma .NET .
Caracteristici principale ale limbajului C#:
Pointerii nu se folosesc
Compilatorul C# include un mecanism de tip “automatic garbage collection” prin care
constantele și variabilele inutile sunt eliberate din memorie în mod automat, în funcție de
vechimea lor în program
Aplicațiile C# consumă minimum de memorie necesară
Aplicațiile scrise în C# sunt portabile pe mai multe sisteme de operare. De asemenea, ele
sunt compatibile cu oricare alt program ce folosește standardul CLI (Common Language
Infrastructure)
Construcții sintactice pentru clase, enumerăr i, interfețe și structuri
Abilitatea de a supraîncărca și redefini operatori
Oferă sprijin pentru LINQ, folosit pentru a interacționa cu forme de date diverse
Suportă moșteniri, polimorfism , încapsularea datelor, interfețe
Variabilele neinițializate, tipu rile de date și dimensiunea ariilor de date sunt verificate de
compilator pentru a limita procesarea de date imposibil de găsit (procese redundante)
“=“ se folosește pentru asignare și “= =“ se folosește pentru comparare
În C# nu se mai folosesc operatorii “::“ și “ ->“
Suport pentru metode anonime
Interoperabilitate cu alte limbaje
C# unifică toate tipurile de date într -un sistem comun numit CTS (Common Type System),
toate tipurile de date, inclusiv cele primitive, fiind subclase ale clasei rădăcină
Datele trebuie să fie declarate în interiorul unei clase, nu există funcții sau variabile globale
Nu acceptă moștenirea multiplă [sursa: BogoToBogo, 2018] 1
Arhitectura .N ET este un cadru de dezvoltare software ce permite realizarea, distribuirea și rularea
aplicațiilor de tip desktop și a aplicațiilor web pe sistemul de operare Windows. Aceasta este
alcătuită din două componente principale:
– Common Language Runtime (CLR) – reprezintă mediul de execuție al programelor,
ocupându -se cu managementul și execuția programelor pentru platforma .NET
– Biblioteca de clase (FLC) – o bibliotecă de clase orientate spre obiecte ce acoperă o arie
largă a necesităților de programare. Include interfața cu utilizatorul, conectarea cu baz ele de
1 Nu există intrarea aceasta în Bibliografie. Intrările tipărite vor fi prezentate înaintea celor în format
electronic/link/adresă web. Numerotarea nu poate fi mixtă (e.g. [1], [2], [BogoToBogo, 2018]). Astfel, cel mai bine
păstrezi varianta numerică (ident ificatorul intrării bibliografice este un număr).
date și accesarea datelor, dezvoltarea aplicațiilor web etc. Utilizatorii combină propriul lor
cod cu codul disponibil al bibliotecii în vederea reali zării aplicațiilor.
Fig 2. 3 Legătura dintre C# și arhitectura .NET [Sursa: Introduction to C# and the .NET Framework, 2018]
Principalele caracteristici ale arhitecturii .NET sunt:
Interoperabilitatea limbajelor – Este un lucru obișnuit ca diversele componente ale unei
aplicații să fie scrise în limbaje diferite. Aceste limbaje sunt suportate de platforma .NET.
Securitate – .NET furnizează un model comun de securitate ce este disponibil pentru toate
aplicațiile, conținând un mecanism unificat de tratare a excepțiilor. Excepțiile reprezintă
evenimente neprevăzute ce întrerup execuția unui program.
Portabilitate – Design -ul arh itecturii .NET îi permite să fie compatibilă și pe alte platfor me.
Un program scris în cadrul platformei .NET poate rula fără niciun fel de modificări pe orice
alt sistem care are platforma instalată.
Independența de platformă – codul CIL (Common Intermedi ate Language) este independent
de procesor. În realizarea aplicațiilor, nu se ține cont de caracteristicile hardware și software
ale sistemului.
Independența de platformă – aplicațiile .NET se pot dezvolta și executa și pe alte sisteme de
operare în afară de Microsoft, cum ar fi Mac OS X, numeroase distribuții Linux și Solaris
etc. [sursa: BogoToBogo, 2018]
2.2.2. HTML, CSS și JavaScript în ASP.NET
HTML, CSS și JavaScript sunt folosite pentru crearea paginilor web, fiecare dintre ele având roluri
diferite , și anume :
– HTML este folosit pentru structurarea conținutului ;
– CSS este folosit pentru a defini aspectul unei pagini web ;
– JavaScript este folosit pentru a controla comportamentul elementelor paginii web .
Fig 2. 4 HTML, CSS și JavaScript în pagini web [Sursa: Web Design from Scratch , 2018]
HyperText Markup Language (HTML) este un limbaj de marcare ce se află în centrul fiecărei
pagini web, indiferent de complexitatea site -ului sau a numărului de tehnologii implicate în
realizarea acestuia.
Cascading Style Sheets (CSS) este un limbaj folosit pentru a defini aspectul paginilor web, ajutând
la decorarea unei pagini cu ele mente de design, cum ar fi culori, font, amplasare, colțuri rotunjite
etc. CSS este independent de HTML și poate fi folosit împreună cu orice limbaj de mar care bazat pe
XML. De asemenea este suportat de toate browserele moderne.
JavaScript este un limbaj d e programare ce permite dezvoltatorilor de pagini web să realizeze site –
uri interactive. Cea mai mare parte a comportamentului dinamic al unei pagini web se datorează
JavaScript , care îmbunătățește comportamentul browser -ului.
2.3. Object -Relational Mapping (O RM)
Object -Relational Mapping reprezintă o tehnică ce permite manipularea datelor dintr -o bază de date
folosind o paradigmă orientată pe obiecte.
O bibliotecă ORM este o bibliotecă complet obișnuită scrisă în limbajul de programare ales de către
utilizat or care încapsulează codul necesar pentru a manipula datele. În acest fel nu mai este nevoie
să se folosească SQL, interacțiunea cu un obiect făcându -se în mod direct, în același limbaj folosit
înainte.
Principala caracteristică a unui ORM este maparea pe care o utilizează pentru a lega un obiect de
datele sale din baza de date. Asocierea (sau maparea ) reprezintă modul în care un obiect,
proprietățile sale și comportamentele acestuia sunt legate de unul sau mai multe tabele și de
câmpurile acestora din baza de date. ORM -ul folosește aceste informații pentru a gestiona procesul
de conversie a datelor între baza de date și obiecte și generarea SQL pe ntru o bază de date
relațională, având ca scop inserarea, actualizarea și ștergerea datelor ca răspuns la modifi cările
făcute de aplicație obiectelor de date.
Principalele beneficii pe care le oferă un ORM în dezvoltarea aplicațiilor ce conțin baze de date
sunt:
Productivitate : codul de acces la date reprezintă o parte semnificativă a unei aplicații tipice,
iar ace st cod poate ocupa o parte semnificativă din timpul necesar dezvoltării aplicației.
ORM -ul generează automat 100% din codul de acces la date bazat pe modelul de date
definit într -un timp scurt .
Reutilizarea codului: acest lucru se poate face prin crearea u nei biblioteci de clase pentru
generarea unui DLL separat pentru codul de acces generat de ORM, obiectele de date putând
fi refolosite în alte aplicații. Astfel, aplicațiile ce folosesc biblioteca de clase creată anterior
nu necesită cod de acces la date .
Mentena nța aplicației: codul generat de către ORM se presupune a fi testat dinainte. Pe
termen lung, se poate reface schema bazei de date sau definiția modelului fără a afecta
modul în care aplica ția utilizează obiectele de date. [sursa: acmqueue, 2018]
Câteva exemple de ORM -uri:
– Entity Framework – principalul ORM oferit de către Microsoft ;
– NHibernate – un ORM open source ;
– Dapper – un ORM open source ;
– LINQ to SQL – o variantă moștenită de ORM pe care Microsoft o oferă .
2.3.1. Entity Framework
Entity Framework este un cadru ORM care permite lucrul cu date relaționale prin folosirea
obiectelor specifice domeniului. Folosind Entity Framework, utilizatorul poate lucra la un nivel de
abstractizare mai ridicat cu referire la date, poate crea și menți ne aplicații orientate spre date scriind
mai puțin cod în comparație cu aplicațiile tradiționale.
Arhitectura Entity Framework constă din următoarele straturi :
Entity Data Model (EDM) – este alcătuit din trei părți: Modelul Conceptual, Modelul de
Stocare și Mapare .
– Modelul Conceptual – conține entitățile și relațiile dintre ele. Acestea vor fi
independente de design -ul tabelului bazei de date .
– Modelul de Stocare – reprezintă schema bazei de date, care este compusă din tabele,
vizualizări, proceduri stocate și funcții.
– Mapare: conține informații despre modul în care modelul conceptual este mapat
modelului de stocare .
LINQ to Entities (L2E) – este un limbaj de interogare ce se folosește în vederea interogării
tipurilor de entități definite în modelul conceptual .
Entity SQL – este tot un limbaj de interogare. Este independent de mediul de memorare și
lucrează direct cu entitățile .
Object Service – reprezintă un punct principal de intrare pentru accesarea datelor din baza
de date și returnarea lor. Este r esponsabil pentru materializare. Materializarea înseamnă
procesul de conversie a datelor returnate de la un furnizor de date de tip client la o entitate
de tip obiect.
Entity Client – principala funcție a acestui strat este aceea de a converti interogările L2E
într-o interogare SQL, care poate fi înțeleasă de baza de date .
ADO.Net Data Provider – acest strat utilizează tehnologia ADO.Net care comunic ă cu baza
de date. [sursa: Entity Framework Tutorial, 2018]
Fig 2. 5 Arhitectura Entity Framework [sursa: Entity Framework Tutorial, 2018]
Entity Framework oferă trei modalități prin care se poate dezvolta o aplicație : Database -First,
Model -First și Code -First.
Fig. 2.6 Variantele de dezvoltare a unei aplicații în Entity Framework [sursa: Charp Sta r, 2018]
După cum se poate observa în figura de mai sus, metoda Database -First se folosește atunci când
baza de date este deja creată, generându -se apoi modelul logic ce conține tipurile folosite în logica
aplicației. În cazul Model-First , se dezvoltă o diagram ă a modelului aplicației pe baza căreia se
creează și se generează baza de date împreună cu tabelele din baza de date și informațiile adiționale
necesare. Dacă se alege metoda Code-First , utilizatorul va scrie toate clasele modelului împreună
cu toa te entitățile necesare, după care se creează baza de date și tabelele din baza de date.
Entity Framework poate fi un instrument puternic ce permite utilizatorilor să modeleze datele fix pe
cerințele aplicațiilor lor. De asemenea, permite dezvoltatorilor s ă gestioneze cu succes relațiile
dintre tabele. Entity Framework oferă un strat adițional de abstractizare ce poate permite
dezvoltatorilor o libertate mai mare în ceea ce privește modul în care sunt prezentate datele, fără a fi
nevoie de a petrece prea mu lt timp pe stocare și acces.
2.3.2. DBMS (PostgreSQL)
Sistemele de gestiune a bazelor de date (DBMS) reprezintă totalitatea programelor ce se folosesc
pentru a crea, interoga și a întreține o bază de date. Includ două categorii de module: module
comune cu cele ale sistemelor de operare ale calculatoarelor și module cu funcții specifice bazei de
date.
PostgreSQL este un sistem de baze de date relaționale disponibil gra tuit sub o licență open -source
dezvoltat de o echipă internațională de voluntari. Nu este contro lat de nicio corporație sau entitate
privată, iar codul său sursă este disponibil gratuit. În continuare vor fi prezentate caracteristici ale
PostgreSQL în comparație cu un alt DBMS cunoscut, SQL Server :
CSV reprezintă modul standard de mutare a datelor s tructurate (tabele). Majoritatea
sistemelor de gestiune a bazelor de date transferă datele în formate de proprie tate ce nu pot
fi citite de altcin eva. Acest lucru este bun pentru backup și replicare, dar nu este util din
punct de vedere al migrării datelor între sisteme. O platformă de analiză a datelor trebuie să
poată accesa datele și să poată produce rezultate dintr -o varietate mare de sisteme, adică să
poată produce CSV rapid și fiabil. Din acest punct de vedere, suportul oferit de PostgreSQL
este unul de top. Comenzile “ COPY TO ” și “COPY FROM ” sunt robuste și rapide, iar în cazul în
care apar erori, sunt oferite mesaje de eroare utile. Un alt lucru important este acela că nu
vor corupe sau altera datele. Dacă PostgreSQL spune că importul a funcționat corect,
înseamnă că nu există niciun fel de erori și importul a funcționat corect. De cealaltă parte,
SQL Server nu poate importa și nici exporta CSV .
PostgreSQL este implementat pentru mai multe sisteme de operare (Linux, Windows, BSD
etc.)
o Oricine urmăre ște evoluțiile din IT știe că multiplatforma a crescut în popularitate.
Suportul pentru diferite platforme este o caracteristică foarte importantă Java, un
limbaj de programare extrem de reușit și răspândit. Microsoft nu mai deține
monopolul pe care l -a av ut în trecut ca urmare a ascensiunii Linux și Apple.
Infrastructurile IT sunt din ce în ce mai variate datorită flexibilității serviciilor Cloud
și accesului facil la tehnologia de virtualizare de performanță înaltă. Software -ul
multiplatformă este orienta t spre a furniza control utilizatorului asupra infrastructurii
acestora.
o Politica Microsoft este una de blocare a furnizorilor. Codul nu este open -source și nu
există versiuni de multiplatformă pentru software -ul oferit de către ei. Acest lucru
este bun p entru ei, deoarece le protejează veniturile, dar este rău pentru utilizator,
deoarece îi limitează alegerile.
PostgreSQL oferă suport pentru Unicode. Unicode este for matul standard de interpretare ș i
codificare a datelor binare în format text. Este proiect at astfel încât orice c aracter din orice
limbă, de pe orice platform ă software sau hardware să aibă corespondent un număr unic și
neechivoc. UTF -8 poate fi folosit în cadrul PostgreSQL . Pentru a reprezenta un caracter este
nevoie de 1 -4 octeți.
PostgreSQL poate fi condus în întregime din linia de comandă. Acest lucru este eficient și
sigur deoarece funcționează în sistemele de operare cu linii de comandă corecte . Utilizatorul
poate automatiza sar cini de implementare, de reglare a performanței, de securitate și de
administrare. Scripturile pot fi copiate, documentate, automatizate, revizuite și scrise.
o Interacțiunea utilizatorului cu SQL Server se face printr -o interfață grafică (GUI).
Acestea nu funcționează bine în conexiunile cu lățime de bandă mică sau cu latență
mare.
PostgreSQL este gratuit. De asemenea, faptul că este open -source înseamnă că poate fi
modificat, și orice software ce se bazează pe acesta poate fi distribuit mai departe. Se poate
instala oricând și pe orice, și se poate utiliza în orice scop. Faptul că este gratuit înseamnă
că este folosit de mulți utilizatori și are parte de o comunitate mare. Astfel , produsul se
îmbunătățește, apar mai multe inovații și mai multe soluții la probleme.
PostgreSQL este mai lent ca SQL Server în executarea anumit or operații întrucât
configurația sa folosește o cantitate mică a resurselor de sistem, dar orice sistem ce se
utilizează pentru muncă serioasă ar trebui să fie reglat în mod corespunzător, astfel că
argumentul acesta nu este unul prea solid. Postgr eSQL deține un suport amplu pentru diverși
indecși, ceea ce îl face mai rapid decât SQL Server pentru anumite clase de operații.
Discuția legată de viteză nu se referă numai la timpul calculatorului, ci și al utilizatorului.
Tocmai din acest motiv, anumite limbaje de programare de nivel înalt, cum ar fi PHP și
Python, sunt foarte populare, chiar dacă C le depășește în viteza de execuție. Ele sunt mai
lente în rulare, dar mai rapide când vine vorba de dezvoltarea aplicațiilor.
Din punct de vedere al securită ții, concepția că aplicațiile cu sursă închisă sunt neapărat mai
sigure este una greșită, discreția/ascunderea nefiind același lucru ca securitatea. Un proces
de revizuire deschisă are șanse mai mari de a găsi puncte slabe în comparație cu unul închis.
Dacă este revizuit cum trebuie, este aproape imposibil să se poată construi o ușă secretă într –
un software cu sursă deschisă. [sursa: PostgreSQL vs. Sql Server, 2018]
2.3.3. Replicarea bazei de date PostgreSQL
2.3.3.1 . Logurile Write Ahead – WAL
Postg reSQ L mentiține un set de loguri tranzacționale cunoscute sub numele de Write -Ahead -Logs
(WAL) în folderul pg_xlog. Aceste loguri sunt scrise la fiecare schimbare a fișierelor bazei de date
și sunt folosite pentru recuperarea informațiilor în cazul unui ev eniment de tip crash .
Un segment WAL este împărțit în pagini de 8192 bytes (8 KB). Denumirea acestuia conține 24 de
caractere:
00000001 00000003 0000008E
Timeline ID Num ărul segmentului in fișier
Deși la prima vedere pare a avea o dimensiun e mic ă, un sistem ocupat poate genera sute sau chiar
mii de astfel de fișiere pe or ă, utilizatorul având astfel o real ă problemă cu spațiu de stocare , dar cu
toate acestea fișierele de tip WAL sunt foarte bine comprimate.
2.3.3.2 . Caracteristica de Înalt ă disponibilitate (High Availability)
Caracteristica de Înaltă Disponibilitate este deseori cerută de către clienți. Aceasta diferă de clasicile
backup -uri prin faptul că implică un calculator secundar (slave) să funcționeze ca o copie a
calculatorului pri ncipal (master). Pe calculatorul de tip slave nu poate fi f ăcută o recuperare a
datelor în timp. V oi prezenta în continuare cele două tipuri de caracteristici de înaltă disponibilitate:
Warm Stan dby – calculatorul slave primește date de la master, d ar nu poate fi utilizat în
niciun fel
Hot Standby – calculatorul slave primește date de la master și poate fi folosit pentru a primi
comenzi de tip citire/interogare a bazei de date fără posibilitatea de a scrie în aceasta.
Sunt două posibilități pentru calculatorul slave de a primi informații de la master:
transferul de loguri – cunoscut sub terminologia de “Continuous Archiving and Recovery ”
replicarea – cunoscut ă sub terminologia de “Streaming Replication ”
2.3.3.3. Warm Standby – Configurat c u Continuous Archiving și Continuous Recovery
Nu este nevoie de nicio modificare prealabilă a calculatorului master, dar este necesară modificarea
fișierelor de configurare ale calculatorului slave. Este de asemenea necesar un backup al masterului
pentru ca baza de date să îl f olosească ca punct de pornire.
Pentru aceasta este nevoie să se creeze un fișier recovery.conf care să conțină următoarele linii:
standby_mode = 'on'
restore_command = 'cp /var/lib/postgresql/archive/%f %p'
Acest lucru va pune ca lculatorul Slave in modul de recuperare continu ă și va aplica automat fișiere
segment WAL în momentul în care ajung în directorul de arhivare , ceea ce înseamnă ca slave -ul va
fi actualizat și nu va mai fi nevoie să redați aceste fișiere pentru a efectua recuperarea.
2.3.3.4. Hot Standy – Configurat cu Continuous Archiving și Continuous Recovery
Pentru a converti de la Warm Standby la Hot Standby, acest lucru însemnând c ă pot fi primite
interogări simple, este necesară o singură modificare în fișierul d e configurare postgresql.conf pe
calculatorul master și o modificare asemănătoare pe calculatorul slave:
Pe calculatorul Master se schimbă setarea wal_level din archive în hot_standby:
wal_level=hot_standby ;
Pe calculatorul Slave se înlocuie ște stand_by cu hot_stan dby: hot_standby = 'on'
2.3.3.5 Streaming Replication
Aces t tip de a primi informații permite calculatorului slave să fie actualizat în timp real, acesta fiind
un avantaj faț ă de tranferul fișierelor log. Slave -ul se conectează la master, care transmite
înregistrările WAL într -o stare de a șteptare, fără a aștepta umplerea întregului fișier.
Pentru a seta Streaming Replication se parcurg următorii pași:
Se configurează un utilizator de replicare și se modifică setările de securitate
Se crează și config urează fișieru l recovery.conf pe calculatorul slave, adăugând setarea
primary_conninfo
Se updatează fișierul de configurare postgresql.conf de pe calculatorul master .[sursa:
PostgreSQL: Documentation: 9.3, 2018]
Capitolul 3
3.1 Replicarea bazei de date
Pentru replicarea bazei de date am folosit un PC și o mașină virtuală ce are rolul de a simula un PC.
În continuare voi prezenta pașii necesari pentru configurarea lor.
Pentru a seta calculatorul principal ca Master:
1. Se deschide aplicația “Database Replication” (SD_DB_Replication.exe) pe calculatorul
ce se vrea a fi setat ca Master
2. Se bifează căsuța “Master“
3. Se alege IP -ul calculatorului Master
4. Se introduce IP -ul calculatorului Slave în căsuța “The other PC IP“
5. Se dă click pe butonul “Set“ , aplicația setând astfel calculatorul ca Master.
6. Se verifică dacă a apărut mesajul “This PC was set as Master successfully“
Pentru a seta al doilea calculator (mașina virtuală) ca Slave:
1. Se deschide aplicația “Databa se Replication” (SD_DB_Replication.exe) pe calculatorul
ce se vrea a fi setat ca Slave
2. Se bifează căsuța “Slave“
3. Se introduce IP -ul calculatorului Master în căsuța “The other PC IP“
4. Se dă click pe butonul “Set“, aplicația setând astfel calculatorul ca Slave.
5. Se verifică dacă a apărut mesajul “This PC was set as Stand -by successfully“
După efectuarea acestor pași, sistemul poate funcționa în configurația Master -Slave.
Bibliografie
[1] Model -View -Controller, https://docs.microsoft.com/en -us/previous -versions/msp -n-
p/ff649643(v=pandp.10) (accesat la data: 24.03.2018 )
[2] Model -View -Controller, https://en.wikipedia.org/wiki/Model –view –controller (accesat la data:
24.03.2018 )
[3] ASP.NET – Introduction to Web Forms and MVC,
https://www.slideshare.net/bilalamjad4/aspnet -introduction -to-web-forms -and-mvc (accesat la data:
26.03.2018 )
[4] Six Benefits of using MVC Model for Effective Web Application Development,
https://brainvire.com/six -benefits -of-using -mvc-model -for-effective -web-application -development/
(accesat la data: 24.03.2018 )
[5] C# and .NET Framework, https://bogotobogo.com/CSharp/.netframework.php (accesat la data:
10.04.2018 )
[6] Introduction to C# Language and the .NET Framework , https://docs.microsoft.com/en –
us/dotnet/csharp/getting -started/introduction -to-the-csharp -language -and-the-net-framework
(accesat la data: 10.04.2018 )
[7] How HTML, CSS and JavaScrip t work together in web pages,
https://webdesignfromscratch.com/html -css/how -html-css-js-work -together/ (accesat la data:
13.04.2018 )
[8] Bridging the Object -Relational D ivide, https://queue.acm.org/detail.cfm?id=1394139 (accesat la
data: 22.04.2018)
[9] Entity Framework Architecture, https://entityframeworktutorial.net/EntityFramework –
Architecture.aspx (accesat la data: 16.05.2018 )
[10] Entity Framework Architecture, https://csharpstar.com/entity -framework -architectu re/ (accesat
la data: 16.05.2018 )
[11] PostgreSQL vs. MS SQL Server, https://pg -versus -ms.com (accesat la data: 20.05.2018 )
[12] Log -Shipping Standby Servers, https://www.postgresql.org/docs/9.3/static/warm -standby.html
(accesat la data: 03.09.2018)
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: APLICAȚIE ONLINE CE F ACILITEAZĂ ACCESUL LOCATARILOR LA [621177] (ID: 621177)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
