Documente Academic
Documente Profesional
Documente Cultură
Pe masura ce se cunosc cerintele aceste trei arhitecturi se rafineaza si se stabileste configuratia potrivita, rezultatul purtand numele de arhitectura de
executie.
Una dintre cele mai importante operatii care se realizeaza in etapa de proiectare a arhitecturii unui sistem informatic este aceea de separare a
serviciilor furnizate de acesta. Pana la aparitia (utilizare pe scara larga) a tehnologiilor client-server si a Internetului, aplicatiile in general nu erau proiectate in
spiritul separarii serviciilor ce le ofereau.
O aplicatie o putem privi ca fiind structurata pe 3 nivele: nivelul de prezentare, de logic a aplicaiei (de business) si de date (a nu se face confuzie cu
tipurile de clase: entitate, control, interfata). Aceste nivele induc i dou tipuri de independen logic: modificarea unui nivel nu trebuie s afecteze
modificri ale altor nivele.
Nivelul (servicii) de prezentare: n general este vorba de o prezentare grafic sau ia forma unor rapoarte. Separarea serviciilor de prezentare de cele
de logic a aplicaiei permite modificarea interfeei cu utilizatorul cu eforturi reduse (ex. implementarea unei interfee web pentru o aplicaie existent)
Implementare: prezentarea datelor, acceptarea datelor, interfata grafica cu utilizatorul
Obiective: uurin n utilizare, interaciune natural i intuitiv cu utilizatorul, timpi rapizi de rspuns
Nivelul de logic a aplicaiei: reprezint cel mai dinamic nivel al unui sistem informatic, deoarece regulile de logic a aplicaiei i funcionalitatea se
modific mult mai des. Izolarea de celelalte nivele face ca impactul implementrii unor modificri s fie redus. n msura n care este posibil, nivelul de
logic trebuie s nu conin elemente legate de interfaa utilizator sau acces la baza de date.
Implementare: reguli de logic a aplicaiei, controlul fluxului n aplicaie, impunerea unor restricii pentru pstrarea consistenei datelor
Obiective: impunerea rigid a regulilor de logic, conservarea investiiei n cod surs, reducerea costurilor de ntreinere
http://lci.cs.ubbcluj.ro/~tzutzu/Didactic/AnalizaGestSisteme/Curs7.htm 3/2/03
PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com
Curs 7 Page 2 of 4
Nivelul de date: este cel mai static nivel, deoarece structurile de date i relaia dintre acestea se modific rar.
Implementare: robustee n stocarea/interogarea datelor, accesul la Sitemul de Gestiune a Bazelor de Date, controlul concurenei
Obiective: baza de date consistent i sigur, partajarea informaiilor, timpi rapizi de rspuns
Cele trei nivele menionate sunt nivele logice. Aplicaiile care au o astfel de segmentare poart denumirea de aplicaii cu arhitectur pe 3 nivele (3-
tier achitecture).
n general, acestea se implementeaz n 2 nivele fizice: calculator client (nivelele de prezentare i logic) i server de date (nivelul de date). Aceast
soluie a fost utilizat iniial pentru aplicaii client/server distribuite. Implementarea nivelelor logice individual, ca nivele fizice separate (client nivel de
prezentare, server de aplicatie nivel de logic, server de date nivel de date) este impusa de urmatoarele aspecte:
- distribuia softului ctre clieni atunci cnd pri ale aplicaiei se modific i configurarea aplicaiei pentru diveri noi clieni (se refer la
componentele de acces la baza de date i dificultatea instalrii i configurrii dispozitivelor ODBS pe maini multiple);
- in funcie de tehnologia bazelor de date, costurile se ridic substanial dac fiecare staie de lucru necesit licen de acces la baza de
date;
- scderea performanei atunci cand anumite calcule complexe sunt realizate pe calculatoare client care au resurse reduse.
Practic ns, arhitectura fizic a unei aplicaie poate fi impartita pe mai multe nivele (N-tier architecture) -> mai multe server de date i servere de
aplicaie.
Exist mai multe strategii de proiectare optim i flexibil a unei aplicaii. Minimum necesar pentru o aplicaie care se dorete s nu cunoasc
probleme majore la modific pe o perioad de 1-2 ani este implementarea celor trei nivele menionate. Aceast abordare reprezint minimul necesar,
deoarece exist abordri care rafineaz fiecare nivel n parte, distingnd mai multe subnivele.
Nivelele determinate mai sus se pot constitui in componente distincte ale sistemului informatic. Determinarea mecanismului de comunicare ntre nivele
se realizeaz rspunznd la urmtoarele ntrebri:
o ce tehnologie de comunicare ntre-procese (IPC) va fi utilizat? Mecanismul IPC poate fi gestionat de diverse tehnologii, ca RPC sau
http://lci.cs.ubbcluj.ro/~tzutzu/Didactic/AnalizaGestSisteme/Curs7.htm 3/2/03
PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com
Curs 7 Page 3 of 4
o ce mecanism va fi utilizat pentru comunicarea intre nivele atunci cnd un IPC este utilizat?
Obiecte persistente
Etapa de proiectare a unui sistem informatic presupune si determinarea obiectelor persistente, adica a acelor obiect ce se vor pastra intre doua
executii ale unei aplicatii. Determinarea acestor obiecte se realizeaza pe baza diagramei de clase, dupa care ele sunt translatate intr-un model relational
ce va sta la baza proiectarii bazei de date. Cea mai simpl i uoar metod de translatare a claselor n tabele ale unei baze de date este asocierea 1:1 a
claselor cu tabele. Aceast metod nu este ns recomandat deoarece pot aprea urmtoarele probleme:
- prea multe tabele: n general din modelele OO pot rezulta, prin aceast metod, mai multe tabele dect este necesar
- prea multe operaii de conectare (join): multe tabele -> mai multe operaii de join SQL pentru regsirea datelor (v. relaiile de 1:1)
- tabele ignorate: relaiile de asociere n:m se implementeaz prin intermediul unei tabele de legtur (curs-studenti). Clasele asociere reduc aceste
probleme dar ele sunt n puine cazuri modelate.
-tratarea necorespunztoare a motenirii
- de-normalizarea datelor: duplicarea acelorai date n mai multe tabele (apare n special din cauza claselor care modeleaz necesiti unice de
raportare).
Cazurile de utilizare/diagramele de interaciune pot da anumite informatii legate de frecvena de utilizare/interogare a anumitor date -> ncercare de
proiectare a BD astfel nct aceste operaii s se realizeze ntr-un minim de timp.
nainte de a transforma clasele n entiti relaionate trebuie s rspundem la ntrebarea dac necesit s fie persistent sau nu? n Rational Rose
pentru fiecare clas se permite specificarea (n tab-ul Detail) dac o clas este persistent sau temporar.
- asocieri 1:1 -> dou tabele (dac este asociere 1 0..1) sau o tabel cnd este 1:1
- asocieri 1:n -> dou tabele. Cheia unei tabele (1) este cheie strin pentru tabela corespunztoare lui n.
- asocieri m:n. Dou tabele plus o tabel de legtur (tablea de intersectie). Cheia tabelei de legtur poate fi un surogat, sau poate fi compus
din cheile principale ale celorlalte dou tabele (ex. salariat patron)
1. Se creaza cate o tabel pentru fiecare clas i un view SQL pentru fiecare pereche superclas/subclas
2. Se creaz o singura tabel (corespunzatoare superclasei) i se de-normalizeaz toate coloanele de inf. din subclase n tabela superclasei. Implic
modificri ale tabelei pentru urmtoarele subclasri, i conine spaii moarte -> poate afecta performana accesului la date. Se mai adaug un
cmp (i eventual o tabel) special care precizeaz tipul unei inregistrari memorate in tabela.
http://lci.cs.ubbcluj.ro/~tzutzu/Didactic/AnalizaGestSisteme/Curs7.htm 3/2/03
PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com
Curs 7 Page 4 of 4
3. Se creaz cate o tabelapentru fiecare subclas i se de-normalizeaz atributele superclasei n fiecare subclas. Dac se modific superclasa, trebuie
s se modifice toate subclasele.
In cazul in care numarul nregistrrilor este limitat in super-clasa si sub-clase atunci prima varianta este cea mai potrivita (performanta nu este grav
afectata iar flexibilitatea este maxima). Dac numarul atributelor n super-clas este mic n comparaie cu sub-clasa atunci varianta 3 este una
acceptabila. In fine, in cazul in care cantitatea de date din subclase este mic atunci varianta 2 reprezinta o solutie de compromis acceptabila deoarece
performana de acces la date este cea mai bun insa cu un potenial redus de flexibilitate.
Evident, oricare va fi decizia de transaformare a unei relatii de mostenire, nivelul de logica a aplicatiei nu va fi afectat, deoarece aici se vor vedea
entitile asa cum sunt n diagrama de clase. Doar frazele SQL (nivelul de translatare a cererilor de la nivelul de logica a aplicatiei) vor fi afectate.
Asocierile reflexive se transforma in relaii recursive. Acestea sunt dificil de ntreinut, mai ales in cazul asocierilor bidirecionale care au asociate
constrngeri de integritate.
Cheile asociate tabelelor pot fi naturale sau surogat, generate de automat de catre sistemul de gestiune al bazelor de date. Avantaje pentru a doua
abordare:
- toate cheile din BD sunt de acelasi tip viteza in join-uri i consisten;
- join-uri limitate la un singur cmp (n locul unei chei compuse);
-necesarul de stocare este redus.
Dezavantajele folosirii Rational Rose pentru generarea de tabele din diagramele de clase:
- daca anumite atribute nu se genereaz (din cauza unor erori), atunci trebuie fcut adugarea manual;
- nu se genereaz tabele de intersecie pentru asocieri n:m (doar dac este o clas asociere);
- pentru dou clase A i B aflate ntr-o asociere 1:n bidirecional se genereaz 2 relaii distincte intre tabelele corespunzatoare claselor A si B;
- nu suport atribute tranzitorii (calcule, etc). Ele vor fi generate n tabele.
http://lci.cs.ubbcluj.ro/~tzutzu/Didactic/AnalizaGestSisteme/Curs7.htm 3/2/03
PDF created with FinePrint pdfFactory trial version http://www.pdffactory.com