Ppsd c1 Prez

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) {}

    }}

    }}