Upload
bianca-maria-moaca
View
214
Download
0
Embed Size (px)
Citation preview
8/17/2019 Ppsd c1 Prez
1/17
Made by Anton DUCA
Modele de sisteme distribuite
Modele distribuite
Probleme de proiectare
Aplicatii client / server in Java
8/17/2019 Ppsd c1 Prez
2/17
Made by Anton DUCA
Sistem distribuit – definitii
“Un sistem in care componente hardware si software localizate in
calculatoare conectate in retea comunica si isi coordoneazaactiunile doar prin transfer de mesaje.” [Coulouris 2001]
Exemple: Internet, Intranet, Retele mobile, Web.
“Un sistem distribuit este o colectie de calculatoare independentecare apar utilizatorilor ca un singur sistem coerent.” [Tanenbaum2002]
Exemple: sisteme de fisiere (NFS), obiecte (CORBA), coordonare(JINI).
8/17/2019 Ppsd c1 Prez
3/17
Made by Anton DUCA
Modele de sisteme distribuite
− modelul de servicii− modelul client / server
−
modelul multi-tiered− modelul peer-to-peer
8/17/2019 Ppsd c1 Prez
4/17
Made by Anton DUCA
Modelul de servicii
− model centralizat
− aplicatiile sunt gazduite de unsingur sistem de calcul accesibilprin terminale simple
− terminalele fac doar operatii deintrare/iesire
− sistemul face toate prelucrarile
si transmite rezultatele la terminale.
8/17/2019 Ppsd c1 Prez
5/17
Made by Anton DUCA
Modelul client / server
− arhitectura pe doua nivele (two-tiered)
− prelucrarea este distribuita intre masini / aplicatii client siserver dedicate
− Server = proces care implementeaza un serviciu specific (ex.
server de fisiere, de nume, de tiparire)
− Client = proces care cere un serviciu de la un server trimitando cerere si asteptand raspunsul
− tipuri de clienti: subtiri (thin) / grasi (fat) – implementeazadoar interfata cu utilizatorul / si o parte a aplicatiei
8/17/2019 Ppsd c1 Prez
6/17
Made by Anton DUCA
Modelul multi-nivel (multi-tiered)
− un server poate fi client pentru un alt server
− fiecare server (si cu rol de client) adauga un nou nivel
− exemplu – aplicatie web pe 3 nivele:
client (Mozilla) server de web (Apache) – client pentru serverul de
baze de date
server de baze de date (MySQL)
8/17/2019 Ppsd c1 Prez
7/17
Made by Anton DUCA
Modelul peer-to-peer
− bazat pe accesul direct intre calculatoare "egale"(peer computers)
− fiecare calculator (peer) consuma si ofera servicii,poate avea rol de client si rol de server
− exemple: Torrents, DC++, Kazza, ICQ, etc.
8/17/2019 Ppsd c1 Prez
8/17
Made by Anton DUCA
Probleme de proiectare (1)
Heterogenitatea – diversitatea componentelor: hard, soft –
sisteme de operare, limbaje de programare, implementari de lafurnizori diferiti.
Solutii: aplicatii intermediare (middleware), masini virtuale.
Deschiderea – capacitatea sistemului de a fi extins si re-implementat in moduri diferite.
Solutii: conformitatea componentelor cu standarde publice.
Securitatea – confidentialitate, integritate, autentificare, etc.Solutii: algoritmi, protocoale si servicii criptografice.
8/17/2019 Ppsd c1 Prez
9/17
Made by Anton DUCA
Probleme de proiectare (2)
Scalabilitatea – sistemul ramane performant cu cresterea
semnificativa a: numarului de utilizatori (dimensiunea), distanteimaxime intre noduri (scalabilitatea geografica)
Solutii: comunicatia asincrona (evita blocajele lungi dincomunicatia sincrona), distributia task-urilor, replicareacomponentelor / caching (ridica probleme de consistenta).
Concurenta – executia simultana a task-urilor => probleme la
accesul resurselor comune.
Solutii: mecanisme de sincronizare.
8/17/2019 Ppsd c1 Prez
10/17
Made by Anton DUCA
Protocoale
TCP (Transmission Control Protocol) – protocol bazat pe conexiune care ofera otransmisie de date fiabila (cu verificare –garantarea livrarii) intre douacalculatoare.
UDP (User Datagram Protocol) – protocol
care trimite pachete independente(datagrame), fara garantarea livrarii.
Aplicatie
(HTTP, FTP, Telnet, …)
Transport
(TCP, UDP, …)Retea
(IP, …)
Legatura date
(Drivere, …)
8/17/2019 Ppsd c1 Prez
11/17
Made by Anton DUCA
Adrese si porturi
− Un calculator (cu o placa de retea) este identificatprintr-o adresa IP unica pe 32 de biti (IPv4).
− Distinctia dintre aplicatiile de retea care ruleaza peacelasi calculator se face prin PORTul pe care comunica.
− Porturile sunt reprezentate pe 16 biti si au valoricuprinse intre 0 si 65535.
− Porturile cu valori cuprinse intre 0 si 1023 sunt
restrictionate, si rezervate pentru servicii de sistem.
8/17/2019 Ppsd c1 Prez
12/17
Made by Anton DUCA
Socket (s), java.net
socket = capat al unei legaturi de comunicatie bidirectionale intre
doua programe care ruleaza intr-o retea, unic identificat de oadresa IP si de un port.
j ava. net . Ser ver Socket – clasa care implementeaza un
socket si este folosita de aplicatii de tip server pentruascultarea si acceptarea de conexiuni initiate de aplicatii detip client
j ava. net . Socket – clasa care implementeaza un socket
si este folosita de aplicatii de tip client pentru initierea sirealizarea de conexiuni cu aplicatii de tip server
8/17/2019 Ppsd c1 Prez
13/17
Made by Anton DUCA
Aplicatie client / server – client (1)
i mpor t j ava. i o. *;i mpor t j ava. net . *;
publ i c cl ass Cl i ent {publ i c st at i c voi d mai n( St r i ng[ ] ar gs) t hr ows I OExcept i on {
Socket socket = nul l ;Pr i nt Wr i t er out = nul l ;Buf f er edReader i n = nul l ;
try {socket = new Socket ( "127. 0. 0. 1" , 4444) ;out = new Pr i nt Wr i t er ( socket . get Out put St r eam( ) , t r ue) ;i n = new Buf f eredReader (
new I nput St r eamReader ( socket . get I nput St r eam( ) ) ) ;
} cat ch ( UnknownHost Except i on e) {Syst em. er r . pr i nt l n( "Nu pot r eal i za conexi unea l a 127. 0. 0. 1 ! " ) ;Syst em. exi t ( 1) ;
} cat ch ( I OExcept i on e) {
8/17/2019 Ppsd c1 Prez
14/17
Made by Anton DUCA
Aplicatie client / server – client (2)
Syst em. er r . pr i nt l n( "Nu pot r eal i za conexi uni I / O cu 127. 0. 0. 1 ! " ) ;Syst em. exi t ( 1) ;
}
St r i ng numeUt i l i zat or = "Ant on Duca" ;out . pr i nt l n( numeUt i l i zat or ) ;
St r i ng mesaj DeLaSer ver = i n. r eadLi ne( ) ;
Syst em. out . pr i nt l n( "Nume ut i l i zat or : " + numeUt i l i zat or ) ;Syst em. out . pr i nt l n( "Mesaj pr i mi t de l a ser ver : " + mesaj DeLaSer ver ) ;
out . cl ose( ) ;i n. cl ose( ) ;
socket . cl ose( ) ;}
}
8/17/2019 Ppsd c1 Prez
15/17
Made by Anton DUCA
Aplicatie client / server – server (1)
i mpor t j ava. i o. *;i mpor t j ava. net . *;
publ i c cl ass Ser ver Car eSal ut a {publ i c st at i c voi d mai n( St r i ng[ ] ar gs) {
Ser ver Socket ser ver Socket = nul l ;try {
ser ver Socket = new Server Socket ( 4444) ;
} cat ch ( I OExcept i on e) {Syst em. er r . pr i nt l n( "Nu pot ascul t a pe por t : 4444. " ) ;Syst em. exi t ( 1) ;
}
whi l e( t r ue) {
Socket cl i ent Socket = nul l ;try {Syst em. out . pr i nt l n( "Ast ept cer er e conectar e de l a cl i ent . . . ") ;cl i ent Socket = ser ver Socket . accept ( ) ;
8/17/2019 Ppsd c1 Prez
16/17
Made by Anton DUCA
Aplicatie client / server – server (2)
Buf f er edReader i n = nul l ;Pr i nt Wr i t er out = nul l ;try {
i n = new Buf f eredReader (new I nput St r eamReader ( cl i ent Socket . get I nput St r eam( ) ) ) ;
St r i ng numeUt i l i zat or = i n. r eadLi ne( ) ;Syst em. out . pr i nt l n( "Ut i l i zat or conect at : " + numeUt i l i zat or ) ;
out = new Pr i nt Wr i t er ( cl i ent Socket . get Out put St r eam( ) , t r ue) ;out . pr i nt l n( "Sal ut " + numeUt i l i zat or + " ! " ) ;
} cat ch ( I OExcept i on e) {Syst em. er r . pr i nt l n( "Comuni car e esuat a cu apl i cat i a cl i ent ! ") ;
} f i nal l y {
i f ( i n != nul l ) i n. cl ose( ) ;i f ( out ! = nul l ) out . cl ose( ) ;}
8/17/2019 Ppsd c1 Prez
17/17
Made by Anton DUCA
Aplicatie client / server – server (3)
} cat ch ( I OExcept i on e) { / / cl i ent Socket cat chSyst em. er r . pr i nt l n( "Nu pot conect a apl i cat i a cl i ent ! ") ;
} f i nal l y {i f ( cl i ent Socket ! = nul l )
try {cl i ent Socket . cl ose( ) ;
} cat ch ( I OExcept i on e) {}
}}
}}