Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna




category
Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Proiectarea sistemelor distribuite



Proiectarea sistemelor distribuite


Proiectarea sistemelor distribuite

Un sistem de prelucrare distribuita a datelor presupune existenta a doua sau mai multor sisteme independente de prelucrare a datelor, numire noduri, interconectate intr-o configuratie de retea. Ele folosesc facilitati de comunicare pentru schimbul de informatii si isi coordoneaza activitatile pentru realizarea unui anumit scop. Cu alte cuvinte un sistem de prelucrare distribuita a datelor permite realizarea  activitatii de prelucrare automata a datelor intr-un mediu de retea. Intr-un astfel de mediu, coopereaza trei componente tehnologice distincte: prelucrarea datelor, comunicarea datelor si reteaua de calculatoare. Scopul lor este de a colabora fiecare cu fiecare, astfel incat sa se realizeze obiectivele comune ale organizatiei [1].





Figura 5.7. Model de baza al unui sistem de prelucrare distribuita a datelor.


Sistemele de prelucrare distribuita a datelor trebuie sa permita:

posibilitatea de prelucrare independenta;

o configuratie de retea;

o posibilitate de transfer a datelor folosind facilitati de partajare a datelor;

un obiectiv comun de realizat.

La proiectarea unui sistem nou trebuie sa se defineasca clar obiectivele pe care trebuie sa le indeplineasca noul sistem. Aceste obiective pot fi clasificate in financiare si functionale.

Din punct de vedere financiar se urmareste maxim de profit cu minimum de cheltuieli. Din punct de vedere functional, scopul este sa se realizeze un sistem care sa aiba cele mai bune rezultate [1].

Costul sistemului se regaseste in costurile initiale pe procesoare, perifericelor(imprimanta, scanner, etc), cablari, soft-uri, si costuri functionale (operationale) cu distribuirea datelor, cu personalul, intretinerea sistemului, etc.

Performanta sistemului este apreciata prin prisma productivitatii si a eficientei lui. Ea se determina in functie de cerintele operationale ale unui sistem de calcul. Se considera ca performanta este o functie a [1]:

timpului de raspuns(intervalul de timp dintre momentul formularii unei cereri de la un terminal de comunicatie-date si obtinerea raspunsului in acelasi loc);

randamentului(cantitatea de date ce poate fi prelucrata de catre un sistem de calcul intr-o perioada de timp);

calitatii serviciilor oferite utilizatorilor(siguranta, fidelitate, integrare, control si acceptabilitate);

nivelul serviciilor.

Sistemul propus trebuie sa fie fezabil, din punct de vedere tehnic, si eficient, prin prisma costurilor prelucrarii automate a datelor si a comunicatiilor din sistem. Performantele sistemului sunt influentate de mai multi factori, cum ar fi timpul de raspuns, randamentul, disponibilitatea, siguranta(securitatea sistemului).

La proiectarea sistemelor distribuite trebuie avute in vedere doua componente majore:

Proiectarea nodurilor;

Proiectarea retelei de comunicatii.

Ordinea de proiectare nu este stricta ramanand la latitudinea echipei de proiectare. Trebuie sa se tina seama de posibilitatea proiectarii, dupa ce anumite etape au fost indeplinite [1].




Figura 5.8. Principalele module de proiectare a sistemelor de prelucrare distribuita a datelor  [1]

Modele de sisteme distribuite

Calculatoarele personale si statiile de lucru pot fi utilizate fie ca sisteme de-sine-statatoare pentru executia diferitelor aplicatii informatice, fie intr-o configuratie de retea. O retea locala se bazeaza pe un set de calculatoare personale, fiecare cu propria memorie, astfel incat sa poata folosi in comun toate echipamentele si software-ul din retea. Dintre toate calculatoarele, exista unul sau unele mai puternice pe care se vor afla aplicatii  folosite in comun de celelalte calculatoare ale retelei. Cea mai utilizata arhitectura este arhitectura client/server.


Arhitectura client/server

Modelul Client /Server ofera date distribuite, portabilitate intre platforme si un acces standardizat la resurse. Termenul de Client /Server provine de la metoda traditionala de accesare a unui computer central numit server de catre computere aflate la distanta sau clienti intr-o infrastructura de retea.

Modelul Client /Server implica o entitate software (clientul) care efectueaza cereri, acestea fiind indeplinite de o alta entitate software(serverul) . Clientul este cel care transmite o cerere severului, acesta o interpreteaza si apoi o efectueaza. Pentru a putea indeplini cererea, serverul poate referi o sursa de informatie (baze de date), sa efectueze procesari asupra datelor, sa controleze periferice sau sa efectueze cereri aditionale altor servere. Un client poate face cereri la multiple servere si un server poate deservi mai multi clienti.

Sursa de informatie (Baza de date)

Cerere Procesare (Logica si Aritmetica)

Client              Server Dispozitive (Imprimanta, periferice partajate)

Rezultatul Servicii(Cereri aditionale altor servere)

indeplinirii cererii


Figura 5.9. O tranzactie Client /Server.

Se poate afirma ca tehnologia client / server imparte o aplicatie in trei componente de baza: un client, un server si o retea care conecteaza clientul la server. Atat clientul cat si serverul sunt calculatoare cu grade variate de putere de calcul, ce colaboreaza la indeplinirea sarcinilor.

Calculatorul server este responsabil cu administrarea accesului la baza de date, precum si cu alte sarcini care-i revin direct serverului. Cand se alege un server pentru mediul de lucru client / server trebuie avute in vedere: scalabilitatea – posibilitatea de crestere a capacitatii serverului, in limite rezonabile; toleranta la erori – posibilitatea de recuperare a contextului calculatorului server dupa producerea unei disfunctionalitati hardware; service si asistenta tehnica. Calculatoarele server au utilizari variate in sistemele client / server (exista servere de fisiere care asigura spatiul de disc centralizat care poate fi folosit conform necesitatilor calculatoarelor client din retea; servere de tiparire – care colecteaza informatiile ce urmeaza a fi trimise catre imprimanta de catre calculatoarele client si le asigura tiparirea intr-o anumita ordine; servere de baze de date – calculatoare care ruleaza un sistem de gestiune a bazelor de date (DBMS), bazat pe SQL; serverele de aplicatii – calculatoare server care ruleaza programe mari de aplicatii).

Sistemele client-server au aparut ca urmare a descentralizarii activitatii din diverse domenii, ceea ce presupune o repartizare a realizarii sarcinilor pe cele doua nivele: client, server. De obicei clientii reprezinta utilizatorii finali care vor comunica cu serverul bazei de date in cadrul unei retele de calculatoare. Dupa rolul pe care il are fiecare din componentele client, server, se pot distinge trei arhitecturi de baza pentru un sistem client-server (Loomis 1992) si anume:

arhitectura de tip server de obiecte – in care se distribuie prelucrarea intre cele doua componente (server, client). Serverul este responsabil de administrarea memoriei si zavoarelor, efectuarea operatiilor in memoria secundara, securitatea, integritatea si recuperarea bazei de date, executarea procedurilor stocate si optimizarea interogarilor. Clientul este responsabil de administrarea tranzactiilor si realizarea interfetei cu limbajul de programare;

arhitectura de tip server de pagini – cea mai mare parte a prelucrarilor este realizata de catre client. Serverul este responsabil de memoria secundara si furnizeaza paginile corespunzator cererilor formulate de client;

arhitectura de tip server de baza de date – cea mai mare parte din prelucrarile bazei de date este efectuata de catre server. Clientul transmite cererea serverului, primeste rezultatele si le transmite aplicatiei. Este modul utilizat frecvent de catre sistemele relationale.

In fiecare dintre cele trei cazuri serverul se gaseste pe aceeasi masina ca si baza de date fizica. Clientul se poate afla pe aceeasi masina sau pe una diferita. In cazul bazelor de date distribuite pe mai multe masini, clientul va comunica cu cate un server de pe fiecare masina. De asemenea mai multi clienti pot comunica concomitent cu acelasi server (accesul concurent).

Arhitectura traditionala a sistemelor client-server este o arhitectura pe doua nivele (etaje), in care la primul nivel (clientul) se realizeaza interfata cu utilizatorul si logica principala a aplicatiei, iar la al doilea nivel (serverul) se realizeaza validarea datelor si accesul la baza de date. Necesitatea rezolvarii unor probleme complexe care presupun accesul la baza de date a unui numar mare de utilizatori, utilizarea unor platforme hard-soft diferite, precum si integrarea bazelor de date in mediul Web, au impus definirea unei noi arhitecturi client-server in care sunt definite trei nivele si anume:


nivelul client, la care se realizeaza interfata cu utilizatorul aplicatiei;

nivelul server de aplicatie, la care se realizeaza logica aplicatiei si prelucrarii datelor;

nivelul server de baze de date, la care se realizeaza validarea datelor si accesul la baza de date.

Un server de aplicatie poate servi mai multi clienti, fiind conectat fizic atat la nivelul client cat si la nivelul server de baze de date. Spre exemplu in mediul Web, clientul poate fi un browser Web, iar serverul de aplicatie poate fi un server Web.

Problema rezolvata

Se considera baza de date FurnizoriClienti care contine urmatoarele tabele (in ACCESS):

PRODUSE (catalog de produse)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codp

Cod produs

Number, Integer

4

Cheie primara

Denp

Denumire produs

Text

20

Desp

Descriere produs

Hyperlink

Refera document

corespunzator

STOCURI (stocurile de produse pe depozite)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codp

Cod produs

Number, Integer

Lookup Wizard

4

Lookup Wizard cu tabela PRODUSE

CodDep

Cod depozit

Text

2

Ump

Unitate de masura produs

Lookup Wizard

8

Creare si utilizare lista de valori

Cant

Cantitate

Number, Integer

4

Pret

Pret unitar

Number, LongInteger

8

FURNIZORI (catalog de furnizori)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codf

Cod furnizor

Number, Integer

4

Cheie primara

Denf

Denumire furnizor

Text

30

Adresaf

Adresa furnizor

Text

25

CLIENTI (catalog de clienti)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codc

Cod client

Number, Integer

4

Cheie primara

Denc

Denumire client

Text

30

Adresac

Adresa client

Text

25

OFERTE (oferte de produse de la furnizori)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codf

Cod furnizor

Number, Integer

Lookup Wizard

4

Lookup Wizard cu tabela FURNIZORI

Codp

Cod produs

Number, Integer

Lookup Wizard

4

Lookup Wizard cu tabela PRODUSE

Ump

Unitate de masura produs

Lookup Wizard

8

Creare si utilizare lista de valori

Pret

Pret unitar

Number, LongInteger

8

Datao

Data ofertei

Date

8

Oferta

Oferta furnizor

Hyperlink

Refera document

corespunzator

VANZARI (vanzarile de produse pe clienti)

Camp

Semnificatie

Tip data

Dimensiune

Observatii

Codc

Cod furnizor

Number, Integer

Lookup Wizard

4

Lookup Wizard cu tabela CLIENTI

Codp

Cod produs

Number, Integer

Lookup Wizard

4

Lookup Wizard cu tabela PRODU,03SE

Ump

Unitate de masura produs

Lookup Wizard

8

Creare si utilizare lista de valori

Cant

Cantitate

Number, Integer

4

Pret

Pret unitar

Number, LongInteger

8

Sa se scrie comenzile SQL pentru realizarea interogarilor de mai jos:

a) Situatia stocurilor

Camp

CodDep

Codp

Denp

Ump

Cant

Pret

Valoare

Tabela

Stocuri

Stocuri

Produse

Stocuri

Stocuri

Stocuri

Cant*Pret

b)Situatia ofertelor

Camp

Codf

Denf

Adresaf

Codp

Denp

Ump

Pret

Datao

Tabela

Furnizori

Furnizori

Furnizori

Produse

Produse

Oferte

Oferte

Oferte

c) Situatia vanzarilor

Camp

Codc

Denc

Adresac

Codp

Denp

Ump

Cant

Pret

Valoare

Datav

Tabela

Clienti

Clienti

Clienti

Produse

Produse

Vanzari

Vanzari

Vanzari

Cant*Pret

Vanzari

d) Lista produselor pentru care nu exista oferte


Camp

Codp

Denp

Tabela

Produse

Produse

e) Lista produselor pentru care nu s-au facut vanzari in perioada [Data1,Data2]

Camp

Codp

Denp

Tabela

Produse

Produse


Raspuns:

a)

SELECT CodDep, Stocuri.Codp, Denp, Ump, Cant, Pret, Cant*Pret AS Valoare

FROM Stocuri, Produse WHERE Stocuri.Codp = Produse.Codp

b)

SELECT Oferte.Codf, Denf, Adresaf, Oferte.Codp, Denp, Ump, Pret, Datao

FROM Oferte, Produse,Furnizori

WHERE Oferte.Codp = Produse.Codp AND Oferte.Codf = Furizori.Codf

c)

SELECT Vanzari.Codc, Denc, Adresac, Vanzari.Codp, Denp, Ump,Cant, Pret,

Cant*Pret AS Valoare, Datav FROM Vanzari, Produse,Clienti

WHERE Vanzari.Codp = Produse.Codp AND Vanzari.Codc = Clienti.Codc


d)

SELECT * FROM Produse WHERE NOT EXISTS

(SELECT * FROM Oferte WHERE Produse.Codp=Oferte.Codp)

e)

SELECT * FROM Produse WHERE NOT EXISTS

(SELECT * FROM Vanzari WHERE Produse.Codp=Vanzari.Codp

AND Datav BETWEEN Data1 AND Data2)




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright