introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · •...

105
2018-2019 Introducere in sisteme distribuite Capitolul 11

Upload: others

Post on 30-Aug-2019

16 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Introducere in sisteme distribuite

Capitolul 11

Page 2: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sistemele distribuite

• SD = sistem ale carui componente se afla pe calculatoare interconectate in retea, comunica si isi coordoneaza actiunile prin transfer de mesaje.

• Definitia acopera o gama foarte larga de sisteme ce se pot studia folosind conceptul de SD: retele de telefonie mobila, retele ale unor corporatii, retele industriale, retele pentru controlul unui automobil, etc.

• Concurenta = executia concurenta a programelor intr-un SD. O problema este coordonarea programelor concurente ce acceseaza resurse partajate.

• Lipsa unui ceas global: Este o consecinta a faptului ca unicul mecanism de comunicare intre componente este transferul de mesaje.

• Erori independente: Orice componenta a unui SD poate fi afectata de erori si proiectantul trebuie sa aiba in vedere acest lucru. Exemple de erori: deconectarea sau defectarea unui calculator din retea, terminarea neasteptata a unui program (engl.crash).

• Motivul principal al introducerii SD: partajarea resurselor. Resursele se incapsuleaza in servere sau obiecte accesate apoi de diversi clienti.

Page 3: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sub-sistemul hardware al SD

• La baza unui SD se afla o multime de CPU-uri interconectate. Exista dpdv al memoriei doua mari categorii:

– Interconectare prin memorie comuna – sisteme multiprocesor (engl. multiprocessors)

– Interconectare fara memorie comuna – sisteme multicalculator (engl. multicomputers)

• In functie de modul de interconectare (se aplica ambelor scheme de mai sus) avem:

– Interconectare prin magistrala comuna (engl. bus) – de exemplu reteaua de televiziune prin cablu

– Interconectare prin retea de comutare (engl. switch) – reteaua telefonica clasica

• Pentru sistemele multicalculator este relevanta distinctia intre:

– Sisteme omogene

– Sisteme eterogene

Page 4: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Legea lui Moore

• Gordon Moore, fondatorul Intel, 1965:

http://www.intel.com/technology/mooreslaw/

• “Nr. de tranzistoare din circuitele integrate se dubleaza la fiecare 2 ani”

Sursa: Wikipedia

Page 5: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cresterea frecventei procesorului

Sursa: Danowitz et al., CPU DB: Recording Microprocessor History, CACM, 2012

Page 6: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sub-sistemul software al SD

• Software-ul SD are doua functii majore asemanatoare functiilor unui sistem de operare:

– Functia de gestionare a resurselor

– Functia de masina virtuala

• Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este legata si de clasificarea sub-sistemului hardware):

– Sisteme cu cuplaj strans

– Sisteme cu cuplaj slab

• Sistemele cu cuplaj strans se numesc si sisteme de operare distribuite. Ele sunt folosite pentru gestionarea sistemelor multiprocesor sau sistemelor multicalculator omogene.

• Sistemele cu cuplaj slab se numesc si sisteme de operare de retea. Ele se utilizeaza pentru gestiunea sistemelor multicalculator eterogene. Pentru a putea deservi un SD, serviciile unui sistem de operare de retea trebuie extinse cu un nivel suplimentar numit middleware.

Page 7: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sisteme distribuite si sisteme paralele

• Exista suprapuneri intre conceptul de SD si cel de sistem paralel SP.

– SD se poate descrie ca SP deoarece procesele unui SD ruleaza paralel.

– SP poate fi descris ca SD cu cuplaj strans; SD poate fi descris ca SP cu cuplaj slab.

• Se accepta tacit urmatoarele deosebiri:

– In SP toate procesele au acces si comunica printr-o memorie partajata

– In SD toate procesele au doar acces la o memorie privata si informatia este interschimbata exclusiv prin mesaje.

Page 8: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu – cluster Myrinet

• 8 PC-uri conventionale

• High-speed interconnection network 2Gb/s

• Fibra optica

• Myrinet switch

Page 9: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu – cluster InfraGRID

• InfraGRID cluster

• 16 servers 8 cores/server = 128 cores

• 1 GB RAM/core

• Linux

• Condor workload management system

– job queueing mechanism,

– scheduling policy,

– priority scheme,

– resource monitoring,

– resource management

Page 10: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Platforme si middleware

• Nivelul hardware si nivelul software imediat superior serviciilor sistemului de operare se numeste platforma a SD si a aplicatiilor acestuia. Interfata de programare (engl.API) a SD abstractizeaza nivelul comunicarii si coordonarii proceselor.

• Exemple de platforme: Intel x86/Windows, Sun SPARC/SunOS, Intel x86/Solaris, PowerPC/MacOS, Intel x86/Linux.

• Nivel intermediar (engl.middleware) = un nivel software al carui scop este mascarea eterogenitatii diverselor platforme si furnizarea unui model convenabil de programare a programelor de aplicatie. Nivelul middleware este compus din procese si obiecte alocate pe diverse calculatoare ce interactioneaza unele cu altele in vederea implementarii suportului de comunicare si partajare a resurselor unui SD.

• Exemple de middleware: Apel la distanta (engl.Remote Procedure Call – RPC); Sisteme de comunicare intr-un grup de procese; Common Object Request Broker Architecture – CORBA, propus de Object Management Group – OMG; Java Remote Method Invocation – RMI; Distributed Common Object Model – DCOM propus de Microsoft.

Page 11: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

• Majoritatea nivelelor middleware sunt implementate peste protocoalele Internet. Ele trateaza si diferentele intre sistemele de operare si hardware.

• Middleware-ul realizeaza transparenta = furnizarea unui model de calcul uniform pentru programatorii aplicatiilor distribuite, ascunzand retelei.

Middleware

Page 12: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Straturi ale software-ului SD

• Software-ul unui SD se structureaza intr-o ierarhie de straturi (engl.layer) sau module ofertante respectiv consumatoare de servicii. Serviciile sunt ofertate si consumate de procese aflate pe acelasi calculator sau pe calculatoare diferite.

• Viziunea orientata pe procese si servicii a unui SD se reprezinta printr-o ierarhie de servicii (engl.service layers). Un proces furnizor de servicii se numeste proces server si un proces consumator de servicii se numeste proces client.

Applicat ions, services

Computer and network hardware

Platform

Operat ing system

Middleware

Sursa: Colouris et al., 2012

Page 13: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Partajarea resurselor (I)

• Termenul de resursa este general si abstract.

• Tipuri de resurse:

– Hardware (de ex dispozitive de I/E). Se refera la echipamente care sunt partajate pentru reducerea costurilor.

– Software (fisiere, motoare de cautare, baze de date). Sunt numite si resurse de “nivel inalt” reprezentate prin componente software incapsulate corespunzator. O categorie speciala o reprezinta resursele informationale

– Memoria si puterea de calcul pot fi la randul lor considerate resurse din categoria utilitatilor.

Page 14: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Partajarea resurselor (II)

• Serviciu = parte sau componenta a unui sistem de calcul ce gestioneaza o colectie de resurse corelate si le prezinta functiile catre diverse aplicatii sau utilizatori.

– Exemple: servicii de fisiere, servicii de imprimare, servicii de plata electronica. Accesul la serviciu se face printr-un set restrans de operatii.

– Exemplu de functii pentru un serviciu de fisiere: citire, scriere si stergere.

• Restrictia accesului la resurse printr-un set bine-definit de operatii reprezinta o practica standard in ingineria software, dar in acelasi timp corespunde si cu organizarea sistemelor distribuite. Resursele sunt “incapsulate” sau “atasate” in calculatoare si sunt accesibile doar prin subsistemele de comunicatie.

• Terminologia standard foloseste termenii de server (furnizor) si client (utilizator, consumator). Ei desemneaza rolurile jucate de doua programe (procese) intr-o interactiune de tip cerere-raspuns si corespunde foarte bine unui model obiectual.

Page 15: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Comert si finante Comert electronic: Amazon.com, eBay

Tranzactii financiar-bancare: PayPal

Societatea

informationala

Motoare de cautare: Google

Enciclopedii online: Wikipedia

Retele sociale

Creativitate si

divertisment

Jocuri, filme si muzica online

Continut generat de utilizator: albume foto, impresii turistice, etc.

Asistenta medicala Monitorizarea si intretinerea sanatatii

Educatie Invatamant, instructaj si tutorial online

Transport si logistica Sisteme de gasire a rutelor cu GPS

Servicii cartografice: Google Maps, Google Earth

Stiinta Grid-ul ca tehnologie suport pentru colaborare stiintifica intre

cercetatori

Mediu Retele de senzori pentru monitorizarea dezastrelor naturale:

poluare, inundatii, cutremure, incendii

Domenii ale aplicatiilor distribuite in retele

Page 16: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: Internet

• Internet-ul este o retea de retele. Se bazeaza pe o suita de protocoale standard care permit comunicarea programelor prin mesaje.

• Servicii Internet: WWW, email, transfer de fisiere, fluxuri multimedia.

• Internet este o multime de intranet-uri interconectate. Exemplu: intranet-ul unui ISP.

• Intranet-urile sunt interconectate prin legaturi speciale de mare capacitate (engl.backbone). Acestea folosesc tehnologii ca: transmisie prin satelit, fibra optica, circuite speciale de banda larga (high bandwidth circuits), etc.

Sursa: Colouris et al., 2012

Page 17: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: World Wide Web

• WWW este un sistem hipermedia distribuit. Se bazeaza pe un model de structurare a documentelor ce foloseste trei concepte:

– Multimedia – se refera la integrarea mai multor tipuri de media in cadrul aceluiasi model de document: text, grafica, imagine, video, etc.

– Hiperdocument – se refera la crearea de legaturi intre documente, folosind un mecanism propriu modelului de document.

– Documente distribuite – se refera la documente care contin legaturi la documente stocate pe alte calculatoare din cadrul unei retele.

• Se spune ca WWW foloseste un model de documente hipermedia distribuite. Termenul de hipermedia inglobeaza conceptele de multimedia si hiperdocument.

• Fiecare autor care creaza o resursa informationala (engl.information resource) in WWW o considera ca fiind un document separat. Insa, putem considera ca, la nivel global, multimea tuturor resurselor informationale din WWW formeaza un unic document hipermedia distribuit. Din acest punct de vedere, termenul de resursa informationala este mai potrivit decat cel de document.

• Exista trei nivele de distribuire a resurselor informationale in WWW: acelasi fisier, fisiere separate pe acelasi calculator, calculatoare diferite.

Page 18: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: portiune din WWW

Internet

Browsers Web servers

www.google.com

www.cdk3.net

www.w3c.org

Protocols

Activity.html

http://www.w3c.org/Protocols/Activity.html

http://www.google.comlsearch?q=kindberg

http://www.cdk3.net/

File system of www.w3c.org

Sursa: Colouris et al., 2012

Page 19: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cautare in WWW

• Nr cautari ~ 10 bilioane/luna

• Nr pagini Web ~ 63 bilioane

• Nr adrese Web unice ~ 1 trilion

• Problema indexarii acestor pagini este complexa

• Infrastructura unui motor de cautare:

– Numar foarte mare de masini fizice interconectate si localizate in centre de date distribuite pe glob

– Sistem distribuit de gestiune a fisierelor cu functii pentru:

• Fisiere foarte mari

• Acces rapid la fisiere

– Infrastructura de stocare distribuita a unor seturi mari de date

– Sistem distribuit eficient pentru controlul accesului

– Model de programare distribuita corespunzator bazat pe calcul paralel si distribuit

Page 20: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Jocuri online cu numar foarte mare de utilizatori

• Massively multiplayer online role-playing games – MMO(RP)G

• Ofera utilizatorilor o experienta imersiva.

• Provocari:

– Arena de joc extrem de complexa (EVE gestioneaza 5000 de “stele”)

– Numar foarte mare de jucatori prezenti simultan online – 50000

– Numar total de jucatori – 500000

– Timp de raspuns mic pentru a nu afecta experienta utilizatorului

– Mentinerea consistentei lumii partajate de utilizatori

• EVE foloseste un server de tip cluster, fiecare sistem solar fiind alocat unei submultimi de calculatoare din cluster

• EverQuest foloseste o partitonare a lumilor pe un server (posibil geografic) distribuit.

Page 21: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: sistem de tranzactionare financiara

• Ofera accesul in timp real la o gama variata de surse informationale: cotatii bursiere, date de crestere economica, somaj, etc.

• Se cere transmiterea si procesarea eficienta a evenimentelor pentru un numar mare de clienti interesati => SD bazate pe evenimente (engl. distributed event-based systems).

• Evenimentele sunt generate din surse (engl. feeds) eterogene: Reuters, Financial Information eXchange – FIX, etc.).

• Sistemul trebuie sa proceseze o mare varietate de fluxuri de evenimente pentru detectarea rapida a unor sabloane ce pot indica oportunitati pentru investitii. Pentru aceasta se foloseste tehnologia Complex Event Processing – CEP.

Sursa: Colouris et al., 2012

Page 22: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: sistem B2B (I)

• Pentru fiecare cerere de produse / servicii primita de la un client, o companie de deservire executa o multime de operatii:

– Ofertare (engl. quotation). Presupune procesarea unei cereri de oferta (engl. RFQ sau request for quote) de la client

– Prelucrare ordin (engl. order processing). In urma ofertei primita de la la companie clientul transmite un ordin de cumparare (engl. purchase order). Acesta este verificat si prelucrat, generandu-se un ordin intern.

– Realizarea ordinului (engl. order fulfilment). Presupune realizarea ordinului intern si de obicei se parcurg urmatorii pasi:

• Achizitie (engl. procurement). Presupune achizitia componentelor sau ingredientelor necesare de la furnizori si fabricarea (engl. manufacturing) produsului.

• Expeditia (engl. shipment). Presupune livrarea produsului catre client.

• Operatiuni financiare (engl. financials). Presupune facturarea clientului si plata furnizorilor.

Page 23: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: sistem B2B (II)

• Pentru automatizarea acestui flux de operatii (engl. workflow) sunt necesare tehnologii de integrare a aplicatiilor Enterprise Application Integration – EAI.

• Fiecare sistem / aplicatie poate fi parte a unui sistem informatic separat. Aceste sisteme informatice pot fi distribuite geografic si realizate cu tehnologii diferite.

quotation supplier and

customer mgmt

order

processing procurement

shipment

management financial

Page 24: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sisteme de calcul mobile si omniprezente

• Progresul tehnologic in miniaturizarea dispozitivelor, interconectarea fara cablu (engl.wireless) si raspandirea universala a Internet-ului (engl. pervasive Internet) au facut posibila integrarea dispozitivelor de calcul mici si portabile in SD - wearable. Acestea includ:

– Calculatoare laptop, tablete, dispozitive handheld: personal digital assistant (PDA), telefoane mobile, pagere, camere video / foto digitale, dispozitove GPS

– Dispozitive domotice (engl.appliances): masini de spalat, sisteme hi-fi, camere video

• Portabilitatea dispozitivelor si abilitatea de conectare facila la retea din diverse locatii au condus la calculul mobil (CM, engl.mobile computing). CM = efectuarea de sarcini de calcul in care utilizatorul se deplaseaza si viziteaza alte locuri decat mediul obisnuit de lucru, cu posibilitatea de a accesa resurse sau servicii locale prin dispozitivele portabile personale. Exploatarea resurselor din proximitate = location-aware computing.

• Calculul ubicuu sau omniprezent (CU) urmareste exploatarea diverselor dispozitive de calcul (mici si ieftine) din mediul fizic al utilizatorului: camin, birou, zone de cumparaturi, hotel, muzeu, spital, scoala, etc. CM si CU se suprapun, dar aceste concepte sunt in general diferite.

Page 25: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: CM si CU

• Utilizatorul are trei forme de acces fara cablu: i) conectare la LAN-ul gazda folosind un laptop. Acesta retea furnizeaza sa zicem o acoperire la nivel de etaj sau cladire si se conecteaza la restul intranet-ului gazda printr-un gateway; ii) un telefon mobil cu conectare la Internet printr-un gateway folosind protocolul WAP. Astfel utilizatorul are acces la pagini textuale simple ce se pot vizualiza pe ecranul limitat al telefonului mobil; iii) o camera foto digitala care poate comunica prin legatura infra-rosu cu un alt dispozitiv, de exemplu o imprimanta.

Laptop

Mobile

Printer

Camera

Internet

Host intranet Home intranetWAP

Wireless LAN

phone

gateway

Host siteSursa: Colouris et al., 2012

Page 26: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Exemplu: UbiLense • UbiLense – un nou

concept de interactiune directa cu un obiect domotic prin intermediul unui telefon mobil.

• Obiectele sunt augmentate cu servicii furnizoare de informatii.

• Localizarea obiectelor se realizeaza cu ajutorul recunoasterii imaginilor capturate cu un telefon mobil. Serviciile sunt furnizate utilizatorului printr-o interfata de realitate augmentata.

In exemplu se monitorizeaza consumul de energie al unor

obiecte domotice inregistrat cu dispozitive wireless de tip Plogg.

Page 27: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Metacalcul

• Metacalcul (engl.metacomputing) = utilizarea unor resurse de calcul disponibile transparent utilizatorului printr-un mediu de retea. Termenul a fost introdus in 1987 de Larry Smarr.

• Necesitatea sa rezulta din cerintele de calcul potential infinite ale utilizatorilor, in timp ce resursele financiare ale acestora sunt finite.

• Este implementat printr-un metacalculator, adica un supercalculator virtual bazat pe o infrastructura de retea.

• Un metacalculator presupune:

– Integrarea resurselor software si hardware intr-un mediu de retea

– Implementarea unui middleware care sa ofere o imagine transparenta si uniforma a resurselor existente

– Dezvoltarea si optimizarea aplicatiilor astfel incat acestea sa beneficieze in mod cat mai eficient de aceste resurse.

Page 28: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Grid Computing

• O grila de calcul (engl.grid computing) este o infrastructura hardware si software care ofera acces sigur, consistent si transparent la facilitati de calcul performant, in ciuda distributiei geografice atat a resurselor cat si a utilizatorilor.

• Termenul de grid a fost introdus de Foster si Kesselman in 1998. Pana atunci s-a folosit termenul de metacomputing.

• Grilele de calcul reprezinta o forma de metacalcul inspirata de utilitatile publice (apa, electricitate, gaz, sau telefonie). Se mai foloseste si termenul de utilitate de calcul (engl.utility computing). Analogia a fost facuta pentru prima oara in 1960 de John McCarthy – detinator al premiului Turing din 1971.

• Generarea resurselor de calcul este decuplata de utilizarea acestora, la fel ca in cazul utilitatilor. Ele sunt practic inchiriate nefiind necesara achizitia lor permanenta. Se preteaza modelelor pay as you go sau subscription din telefonia mobila.

• Standarde: Open Grid Forum – OGF: http://www.ogf.org/

Page 29: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cloud Computing

• Cloud computing este un model avansat de metacalcul pentru un acces convenabil, la cerere, si de la distanta prin intermediul Internet-ului la o multime configurabila de resurse partajate (retele, servere, memorie externa, aplicatii si servicii) ce pot fi furnizate rapid, cu efort administrativ minim si minima interactiune cu furnizorul (conform NIST: National Institute of Standards and Technology).

• Cloud computing abstractizeaza accesul la:

– Infrastructura IT => Infrastructure as a Service, IaaS

– Platforma (hardware + sistem de operare) => Platform as a Service, PaaS

– Aplicatii => Software as a Service, SaaS

prin intermediul serviciilor disponibile la cerere, contra cost in

functie de volumul de utilizare.

Page 30: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Virtualizare

• Virtualizarea se refera la crearea unei versiuni virtuale a unei platforme hardware, sistem de operare, dispozitiv de stocare sau resursa de retea.

• Virtualizarea asigura separarea logica a cererii pentru anumire servicii de resursele fizice care ofera acele servicii. Ea ofera acces logic la resurse fizice !

• Virtualizarea asigura centralizarea sarcinilor administrative, simultan cu cresterea scalabilitatii si nivelului de folosire a resurselor.

Page 31: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Tipuri de virtualizare (I)

• Hardware: crearea unei masini virtuale care functioneaza ca un calculator real, peste care se poate instala un sistem de operare. De ex: un hardware virtual de Mac ce poate rula pe un sistem cu MS Windows.

• Software: sistem de operare, spatiu de lucru sau aplicatie. De ex: calculator virtual cu Ubuntu Linux gazduit pe un calculator cu Windows

• Stocare: abstractizarea spatiului logic de stocare independent de spatiul fizic. De ex: un disc virtual de 10Gb simulat cu un fisier de 10Gb.

Page 32: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Tipuri de virtualizare (II)

• Date: prezentarea datelor la un nivel abstract, independent de un anumit sistem de baze de date

• Retea: se refera la construirea unei retele virtuale care inlocuieste legaturile fizice cu legaturi virtuale. Pot fi: (i) bazate pe protocoale, de exemplu VPN – Virtual Private Network si (ii) bazate pe dispozitive virtuale, cum ar fi o retea de masini virtuale

• Desktop: interactiunea cu un calculator gazda prin intermedoiul altui calculator sau dispozitiv mobil si o conexiune de retea. Este legata de conceptul de thin client ce permite separarea desktop-ului de un calculator fizic (concept intalnit in network computers).

Page 33: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Retele de senzori • O retea de senzori (engl.wireless sensor network, WSN) consta dintr-o

multime de senzori distribuiti spatial care coopereaza in vederea monitorizarii conditiilor fizice de mediu, cum ar fi: temperatura, sunet, vibratii, nivel de poluare, presiune, miscare, etc.

• Aplicatii in monitorizare, urmarire, control: armata, monitorizarea proceselor, monitorizarea mediului, controlul traficului, inteligenta ambientala, medicina – Body Sensor Networks, detectia incendiilor, etc.

• O retea de senzori este un tip de retea ad-hoc fara fir (engl.wireless ad-hoc network). Termenul ad-hoc inseamna ca ea nu se bazeaza pe o infrastructura preexistenta de rutere si puncte de acces. In schimb, fiecare nod din retea poate participa la rutare prin inaintarea mesajelor catre alte noduri folosind un protocol de rutare multi-hop. Aceste noduri se determina dinamic in functie de configuratia si conectivitatea retelei.

• Nodurile WSN cu facilitati de procesare se numesc si mote (nume metaforic, fir de praf). Un exemplu sunt WSN realizate cu tehnologia Sun SPOT (Sun Small Programmable Object Technology) ce pot rula o versiune speciala JVM http://en.wikipedia.org/wiki/Sun_SPOT.

Page 34: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Provocari ale SD

• Eterogenitate (engl. heterogeneity)

• Deschidere / extensibilitate (engl. openness)

• Securitate (engl. security)

• Scalabilitate (engl. scalability)

• Tratarea erorilor (engl. failure handling)

• Concurenta (engl. concurrency)

• Transparenta (engl. transparency)

• Calitatea serviciului (engl. quality of service)

Page 35: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Eterogenitate

• Un SD trebuie sa permita rularea de aplicatii si accesul la servicii peste o colectie eterogena de calculatore si retele. Eterogenitatea se refera la: tehnologia retelelor, componente hardware (procesoare), sisteme de operare, limbaje de programare, implementari de la diversi dezvoltatori.

• Spre exemplu, indiferent de tipul de retea, calculatoarele conectate la Internet folosesc aceeasi suita de protocoale.

• Pot apare diferente in ordinea octetilor in reprezentarea datelor pe mai multi octeti (de ex.intregi).

• Desi sistemele de operare includ implementari ale protocoalelor Internet, accesul la ele se poate face prin API-uri diferite de la sistem la sistem.

• Limbajele de programare pot folosi diverse reprezentari ale structurilor de date (de ex,caracterele).

• Componentele software pot comunica intre ele numai prin folosirea unor standarde comune (ex.protocoale de nivel inalt ca HTTP sau reprezentari bazate pe XML).

Page 36: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Deschidere/extensibilitate

• Deschiderea sau extensibilitatea (engl.openness) este acea caracteristica a unui sistem care determina masura in care el poate fi extins sau reimplementat in diverse moduri. In cazul SD ea se refera in special la gradul in care se pot adauga noi resurse sau servicii la sistem.

• Nu se poate realiza decat prin publicarea pentru dezvoltatorii de software a specificatiilor si documentatiei interfetelor software esentiale ale componentelor sistemului = “key interfaces are published”. Acest proces ocoleste procedurile formale de standardizare ce sunt de obicei complicate si decurg foarte incet (deoarece necesita consens).

• Exemple: – Protocoalele Internet sunt specificate in documente numite “Request For Comments” – RFC

pe site-ul organizatiei de coordonare a dezvoltarii Internetului: www.ietf.org.

– Specificatia CORBA exista intr-o serie de documente pe site-ul OMG www.omg.org.

– FIPA este un set de standarde IEEE pentru sistemele middleware multi-agent: www.fipa.org

– Standardele Web: www.w3c.org

• SD deschise pot fi construite din hardware si software eterogen, posibil de la furnizori diferiti.

Page 37: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Securitate • Resursele informationale din SD au valoare pentru utilizatorii lor.

De aceea securitatea lor este foarte importanta. Clientii depind de serviciile contractate, trebuie sa aiba incredere (engl. trust) in ele.

• Securitatea resurselor informationale are trei componente: – Confidentialitatea: protectia informatiei impotriva dezvaluirii sau divulgarii

(engl.disclosure) unor persoane neautorizate.

– Integritatea: protectia informatiei impotriva alterarii sau coruptiei.

– Disponibilitatea: protectia impotriva interferentei cu mijloacele de acces la resurse.

• Probleme de securitate: – Denial of service attack: bombardarea unui serviciu cu un numar foarte mare

de cereri astfel incat utilizatorii normali sa nu-l mai poata accesa.

– Securitatea codului mobil: se refera la riscul pe care il presupune executarea de cod receptionat din exterior intr-un mod oarecare, de exemplu prin email, descarcare de pe Web, etc.

• Pentru rezolvarea problemelor de securitate se pot folosi diverse tehnici criptografice si protocoale de securitate.

Page 38: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Scalabilitate

• SD trebuie sa opereze corect si eficient indiferent de dimensiuni: simple intranet-uri sau intregul Internet.

• SD scalabil = un SD ce ramane efectiv in prezenta unei cresteri semnificative a numarului de resurse, componente si utilizatori.

• Spre exemplu, numarul de calculatoare si servicii din Internet a crescut dramatic.

Date Computers Web servers Percentage

1993, July 1,776,000 130 0.008

1995, July 6,642,000 23,500 0.4

1997, July 19,540,000 1,203,096 6

1999, July 56,218,000 6,598,697 12

2001, July 125,888,197 31,299,592 25

42,298,371 2003, July

2005, July

~200,000,000

353,284,187 67,571,581

21

19

Page 39: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

• Controlul cresterii costului resurselor fizice

– odata cu cresterea cererii pentru o resursa, trebuie sa fie posibil sa se extinda sistemul cu un cost rezonabil astfel incat aceasta cerere sa fie satisfacuta. In general, pentru ca un sistem cu n utilizatori sa fie scalabil trebuie ca resursele fizice necesare deservirii lor sa fie cel mult O(n).

• Controlul pierderilor de performanta

– se considera o structura de date cu dimensiunea proportionala cu numarul de resurse sau utilizatori (de ex. tabelele necesare sistemului DNS). Performantele pot sa scada datorita incetinirii accesului la aceste tabele. Daca pentru acest acces se folosesc de ex. arbori, accesul va consuma un timp O(log n).

• Prevenirea epuizarii resurselor software

– de ex epuizarea numarului de adrese de IP. IPv4 32 de biti => IPv6 128 de biti

• Evitarea congestiilor de performanta (engl. bottleneck)

– spre exemplu ar aparea probleme daca tabela DNS ar fi stocata intr-un singur loc. De aceea ea s-a partitionat si distribuit pe diverse servere din Internet.

• Solutii: replicarea datelor, caching, servere multiple, sarcini similare realizate concurent (replicare), algoritmi distribuiti (descentralizati), etc

Probleme de scalabilitate

Page 40: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Tratarea erorilor

• In SD exista posibilitatea defectarii partiale, adica anumite componente se pot defecta, iar altele functioneaza corect.

• Nu trebuie sa existe un unic point of failure !

• Obiectiv: mentinerea disponibilitatii (engl. availability) SD in prezenta erorilor prin:

– Detectarea erorilor. Numai anumite defecte pot fi detectate (de ex, detectarea coruptiei datelor prin sume de control). Problema dificila este insa sa se gestioneze si prezenta erorilor ce nu pot fi detectate cu certitudine, ci doar suspectate.

– Mascarea erorilor. Se refera la ascunderea defectelor care au fost detectate. De exemplu: i) mesajele eronate sau pierdute pot fi retransmise; ii) replicarea permite folosirea unei copii in cazul coruperii originalului.

– Toleranta la erori. De exemplu in cazul deteriorarii sau indisponibilitatii unui serviciu Web, utilizatorul va fi instiintat de navigator, nefiind lasat sa astepte la infinit.

– Recuperarea din erori. Presupune proiectarea SD a.i.starile eronate sa poata fi “derulate inapoi” (engl.rolled back). Ex.tranzactii.

– Redundanta. Presupune realizarea tolerantei la defecte prin folosirea unor componente redundante. Exemple: i) existenta a cel putin doua cai intre doua rutere din Internet; ii) orice tabela de nume din DNS este replicata pe cel putin doua servere.

Page 41: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Concurenta

• Accesul la resursele SD se face in mod concurent. In concluzie orice obiect care reprezinta o resursa a SD este responsabil sa asigure o functionare corecta intr-un mediu concurent.

• Acest lucru se aplica atat serverelor cat si obiectelor din cadrul diverselor aplicatii.

• Asigurarea sigurantei unui obiect intr-un mediu concurent se face prin sincronizarea operatiilor de acces la obiectul respectiv. Sincronizarea va asigura mentinerea consistentei obiectului respectiv.

• Pentru aceasta se folosesc tehnici speciale de programare concurenta. Aceste tehnici trebuie uneori sa fie adaptate pentru a functiona intr-un mediu distribuit (de exemplu semafoare distribuite).

Page 42: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Transparenta I

• Transparenta SD reprezinta ascunderea pentru utilizator si programatorul de aplicatii a separatiei dintre diversele componente ale SD a.i. sistemul sa fie perceput ca un intreg, si nu ca o colectie de componente independente.

• S-au identificat 8 forme de transparenta:

– Transparenta accesului: resursele locale si la distanta pot fi accesate prin operatori identici (ex.obiecte proxy cu interfete predefinite)

– Transparenta locatiei: resursele sunt accesate fara a sti adresa lor (ex.acces prin nume)

– Transparenta concurentei: procesele concurente pot opera cu resurse partajate fara interferente (corectitudine)

– Transparenta replicarii: replicarea resurselor va conduce la cresterea performantei si fiabilitatii fara a o dezvalui utilizatorilor sau programatorilor de aplicatii

– Transparenta erorilor: ascunderea erorilor astfel incat utilizatorii si programatorii de aplicatii sa-si poata realiza sarcinile in ciuda unor eventuale erori ale componentelor

– Transparenta mobilitatii: permite migrarea resurselor si a clientilor unui sistem fara a afecta operarea altor utilizatori sau programe

– Transparenta performantei: permite reconfigurarea sistemului astfel incat sa se imbunatateasca performantele in prezenta unor incarcari variabile

– Transparenta scalarii: permite sistemelor si aplicatiilor sa creasca in dimensiune fara schimbari in structura sau algoritmi

Page 43: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Transparenta II

• Transparenta accesului + transparenta locatiei = transparenta retelei.

• Ex. transparenta accesului:

– Afisarea continutului unui director de fisiere (locale sau la distanta) intr-un GUI

– Acelasi API de acces la fisiere locale sau la distanta

• Ex. transparenta locatiei:

– URL-urile sunt transparente dpdv al locatiei deoarece o parte a lor contine numele unui calculator, nu adresa IP a calculatorului

• Ex. transparenta retelei:

– Adresele de email: destinatarul este specificat prin nume (nu adresa), iar modul de trsansmitere . Receptie a postei nu depinde de locatia destinatarului.

• Ex. transparenta erorilor:

– Mesajele de email se retransmit automat in caz de eroare.

– La fel comunicatia intre procese prin fluxuri TCP/IP mascheaza erorile.

• Ex. transparenta mobilitatii:

– Comunicarea in telefonia mobila ascunde mobilitatea apelantului si apelatului.

Page 44: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Calitatea serviciului

• Orice functionalitate a SD care este furnizata ca serviciu se caracterizeaza prin proprietati nefunctionale ale calitatii serviciului, cum sunt:

– Fiabilitate

– Securitate

– Disponibilitate

– Performanta

– Adaptabilitate

• Performanta

– Latenta (engl. latency) este legata de reactie (engl. responsiveness)

– Capacitatea (engl.throughput)

– Termene (engl. deadline), de exemplu intarzierea maxima intre transmiterea, prelucrarea si afisarea a doua cadre video pentru a asigura afisarea rezonabila pentru utilizator

• QoS = cerinta ca SD ca dispuna si sa ofere resurse de calcul si de comunicatie corespunzatoare ce sa permita aplicatiilor sa-si indeplineasca sarcinile la timp (de exemplu afisarea unui flux video pentru utilizator).

Page 45: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modele ale SD

• Modele fizice

– Descriu componentele hardware ale unui SD in termenii dispozitivelor de calcul (calculatoare, telefoane mobile, etc.) si retelelor de interconectare.

• Modele arhitecturale

– Simplifica si abstractizeaza tipurile componentelor si a functiilor lor.

– Defineste componentele SD, modul in care ele interactioneaza (roluri functionale si sabloane de comunicare / interactiune) si modul lor de mapare pe reteaua de comunicatie a unui SD

• Modele fundamentale

– Modele de interactiune

– Modele ale erorilor

– Modele de securitate

Page 46: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Generatii de SD I

• Model fizic de baza:

– Infrastructura de retea

– Comunicare prin mesaje

• SD timpurii:

– Aparute ca raspuns la dezvoltarea tehnologiei LAN

– Gama redusa de servicii: partajare imprimanta, fisiere; email; transfer de fisiere

– Opereaza la nivel intra-organizational

– Calitatea serviciului in stadiu embrionar

Page 47: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD in Internet • Aparute la inceputul anilor ‟90 prin raspandirea Internet-ului ca retea de

retele.

• Ofera servicii la nivel global, inter-organizational

• Eterogenitatea este mare => s-au dezvoltat standardele (ex. Servicii Web)

• S-a urmarit asigurarea calitatii serviciilor

• Internet-ul este o multime de retele (sisteme) autonome interconectate printr-o retea de baza – core network sau backbone.

• In telecomunicatii retelele autonome se mai numesc retele de acces – access networks.

• Retelele autonome se conecteaza la reteaua de baza prin porti externe – exterior gateway.

• Retelele autonome se interconecteaza intre ele prin porti interne – interior gateways.

Page 48: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD contemporane

• Noi tendinte datorate raspandirii calcului mobil (dispozitive portabile), calculului ubicuu (raspandirea resurselor de calcul cu costuri din ce in ce mai scazute), calculului in cloud (utility computing si virtualizare) si a arhitecturilor cluster.

• Ex. Internet of Things: obiecte identificabile si reprezentarile lor virtuale.

Page 49: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sumar al generatiilor de SD

Sursa: Colouris et al., 2012

Page 50: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sisteme de SD

• In 2006 Linda Northrop a propus intr-un raport al SEI – Software Engineering Institute termenul de ULSS – Ultra-Large-Scale System.

• ULSS au urmatoarele caracteristici:

– Compuse din sisteme independente dpdv operational si

– administrativ

– Dezvoltate printr-un proces evolutiv

– Au comportament emergent (de exemplu facilitati de

autonomie, autoconfigurare si autoorganizare – proprietati self-*)

– Distinctia intre utilizatori si sistem este estompata, oamenii devenind componente de sistem si furnizori de servicii, putand influenta comportamentul emergent al sistemului (ex. – actor-agent systems, human-based computation, crowdsourcing).

• Exemplu: sistem de management al mediului si predictie a dezastrelor naturale (ex. inundatii). Integreaza:

– Sisteme de senzori pentru monitorizarea diversilor parametrii ai mediului (de exemplu debitul raurilor, cantitatea de precipitatii, etc.)

– Sisteme de simulare pentru predictia unor evenimente neasteptate (cantitati mari de precipitatii, topirea masiva a zapezii, etc.)

– Sisteme de avertizare timpurie a populatiei

Page 51: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modele arhitecturale

• Cele trei fatete ale unui model arhitectural:

– Elementele arhitecturale de baza ale unui SD

– Sabloane arhitecturale (engl. architectural patterns) utilizate separat sau in combinatie pentru dezvoltarea SD

– Platforme middleware disponibile pentru diverse stiluri de programare a SD

Page 52: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Elemente arhitecturale

• Elementele arhitecturale:

– Entitatile comunicante din care este compus un SD.

– Paradigmele de comunicare ale entitatilor unui SD.

– Rolurile si responsibilitatile (statice sau dinamice) entitatilor unui SD.

– Maparea entitatilor pe infrastructura fizica distribuita a SD (plasamentul lor).

Page 53: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Entitati comunicante

• Din perspectiva sistemica, entitatile comunicante intr-un SD sunt procese.

• Exista doua exceptii de la aceasta regula:

– In medii cu capabilitati de calcul restranse, cum sunt retelele de senzori, SO si / sau software-ul de baza nu suporta conceptul de proces, caz in care entitatile comunicante sunt noduri.

– In majoritatea SD moderne, conceptul de proces este suplimentat cu conceptul de fir (engl. thread), acesta reprezentand de fapt un punct final al unei interactiuni.

• Din perspectiva programatica, entitatile comunicante ale unui SD pot fi:

– Obiecte

– Componente

– Servicii

Page 54: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Obiecte

• Obiecte:

– Un SD este format dintr-o multime de obiecte distribuite interactive.

– Ele sunt accesate prin intermediul unor interfete definite printr-un IDL – Interface Definition Language.

• Exemplu: interfata Remote din Java RMI.

• Codul obiectelor se distribuie prin intermediul claselor.

• Crearea unui obiect prin refolosirea unei biblioteci de clase presupune:

– programare (coding)

– compilare

Page 55: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Componente

• Componente: – O componenta specifica (in plus fata de interfete)

dependentele fata de componentele si interfetele ce trebuie sa fie prezente pentru ca ea sa-si poata realiza functia.

– Au un grad mai mare de reutilizabilitate decat obiectele. Este posibila construirea unei aplicatii din componente existente (prefabricate), similar cu modul in care un inginer construieste un ansamblu folosind module prefabricate.

– Sunt conforme unui model de componenta ce defineste modul lor de interactiune, compunere, configurare, implementare, documentare si instalare (engl. deployment).

– Ex: EJB – Enterprise Java Beans, COM+ (.NET), CORBA, FIPA si JADE (agenti software), Open Services Gateway initiative (OSGi, Equinox Eclipse project).

Page 56: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Servicii

• Servicii:

– Se bazeaza pe i) abstractizarea comportamentului si ii) accesul printr-o interfata.

– Serviciile se bazeaza pe protocoale standard de interactiune si de descoperire.

– Incurajeaza dezvoltarea aplicatiilor prin cuplaj slab ce pot depasi granitele unei singure organizatii. Obiectele si componentele se folosesc pentru dezvoltarea de aplicatii cu cuplaj strans, uzual in cadrul aceleiasi organizatii.

• Exemple:

– Serviciile Web, bazate pe standardele Web: HTTP si XML.

– Arhitectura orientata pe servicii – service oriented architecture, SOA.

Page 57: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Paradigme de comunicare

• Trei paradigme:

– comunicare intre procese,

– invocare la distanta,

– comunicare indirecta.

• Comunicare intre procese:

– Suport pentru comunicare intre procese intr-un SD.

– Primitive pentru transfer de mesaje

– API pentru acces la primitivele de comunicare intre procese (ex. comunicare prin socluri)

Entitate A Entitate B ?

Page 58: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Invocare la distanta

• Invocare la distanta:

– Protocoale cerere – raspuns (engl. Request-Reply). Reprezinta o tehnica de comunicare prin schimb de mesaje in arhitecturile client – server. Un exemplu este protocolul HTTP pentru aplicatiile Web.

– Apel de proceduri la distanta (engl. Remote Procedure Call – RPC). Presupune apelul de proceduri aflate in alt spatiu de adrese decat apelantul (in alt proces) similar cu apeluri locale.

– Invocare de metode la distanta (engl. Remote Method Invocation – RMI). Este extensia RPC pentru programarea orientata pe obiect.

Page 59: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Comunicare indirecta I

• Comunicarea indirecta decupleaza expeditorul de receptor: – Decuplare spatiala

– Decuplare temporala

• Exista o multime de paradigme pt comunicare indirecta.

• Comunicatie de grup – Permite livrarea unui mesaj de la un expeditor la o multime de receptori, adica avem

un sablon de comunicare unu-multi.

– Se bazeaza pe existenta abstractiei de grup. Un grup este reprezentat printr-un identificator de grup.

– Receptorii se pot inscrie sau pot parasi dinamic un grup.

– Grupul este responsabil cu gestiunea membrilor sai.

• Publicare-inscriere (engl. Publish-subscribe) – Numeroase sisteme (cel din domeniul financiar) disemineaza informatie.

– Intr-un astfel de sistem exista un numar mare de producatori (engl. publishers) ce distribuie elemente informationale, numite si evenimente catre un numar mare de consumatori (engl. subscriber).

– Acest mod de comunicare permite livrarea eficienta a informatiei de la producatori catre consumatorii interesati.

Page 60: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Comunicare indirecta II

• Cozi de mesaje – Ofera un serviciu punct-la-punct (engl. point-to-point).

– Expeditorii trimit mesaje catre o coada de mesaje, in timp ce receptorii sunt instiintati ori de cate ori un mesaj este depus in coada respectiva.

– Receptorii au facilitatea de filtrare explicita a mesajelor de interes din coada folosind sabloane (engl. patterns). Se poate filtra atat dupa continut, cat si dupa expeditor.

• Spatii de tuple – Mesajele sunt reprezentate prin date structurate numite tuple.

– Comunicarea intre procese se realizeaza indirect prin spatii persistente de tuple.

– Procesele pot depune tuple in spatiul de tuple, iar alte procese le pot citi sau elimina folosind filtre sau sabloane.

– In inteligenta artificiala se cunoaste modelul blackboard, ce reprezinta o baza de cunostinte partajata folosita pentru rezolvarea colaborativa de probleme, similar unui proces de brainstroming.

• Memorie partajata distribuita – Se bazeaza pe furnizarea unei abstractii a conceptului de memorie partajata (sau

comuna, engl. shared).

– Procesele pot scrie respectiv citi din memoria partajata ca si cum aceasta ar fi parte a spatiului lor de adrese.

Page 61: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Roluri si responsabilitati

• Procesele unui SD interactioneaza si se coordoneaza pentru realizarea unor activitati complexe.

• Adoptand o metafora organizationala, procesele unui SD indeplinesc diverse roluri si responsabilitati predefinite, ce impreuna definesc stilul arhitectural al SD.

• In functie de rolurile proceselor componente, deosebim doua mari stiluri arhitecturale ale SD:

– Modelul client-server

– Modelul proceselor de acelasi rang (engl. peer-to-peer – P2P).

Page 62: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modelul client/server

• Cel mai citat in literatura SD, cel mai important dpdv istoric si cel mai folosit.

• Exemple:

– Un server Web poate fi client al unui server local de fisiere

– Serverele Web si alte servicii Internet sunt clienti pentru un serviciu de DNS care traduce numele de domenii Internet in adrese de IP

– Un motor de cautare (engl.search engine) permite utilizatorilor sa caute informatii despre paginile Web intr-un index local, construit cu ajutorul unui program robot numit Web crawler. Astfel motorul este in acelasi timp server pentru utilizatorii care-l consulta si client ce foloseste HTTP sa-si construiasca indexul prin intermediul Web crwaler-ului.

• Critica a modelului client/server:

– Distinctia server client da un grad de centralizare. Server-ul este punct de strangulare in SD.

Server

Client

Client

invocation

result

Server invocation

result

Process: Key:

Computer:

Sursa: Colouris et al., 2012

Page 63: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Procese de acelasi rang (pereche, engl.peer)

• O aplicatie P2P este compusa dintr-un numar mare de procese peer ce comunica conform cerintelor aplicatiei.

• Procesele au roluri identice (nu exista distinctia client server) si coopereaza pt a realiza distribuit o sarcina. Fiecare proces este responsabil cu mentinerea consistentei resurselor aplicatiei si cu sincronizarea.

• O aplicatie P2P contine obiecte partajate si replicate astfel incat sa se eficientizeze procesarea si comunicarea.

• Modelul P2P foloseste o retea la nivel de aplicatie (engl. overlay network) construita peste o retea de calculatoare existenta.

• Se foloseste in contextul globalizarii economice, oferind companiilor metode noi de a-si imbunatati puterea de calcul cu investitii minime in resurse hard si soft.

• Exemplu: Sistemul BitTorrent pentru partajarea distribuita a fisierelor. Sursa: Colouris et al., 2012

Page 64: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Plasament

• Defineste plasamentul entitatilor (procese, obiecte, servicii) in cadrul infrastructurii fizice a unui SD.

• Plasamentul este o problema de proiectare si va lua in calcul:

– Sabloanele de interactiune ale entitatilor SD

– Fiabilitatea masinilor si nivelul lor de incarcare

– Calitatea liniilor de comunicatie

• Plasamentul depinde si de aplicatie. Exista cateva reguli generale care pot conduce la solutii bune.

– Maparea serviciilor pe servere multiple

– Caching

– Mobilitate (cod mobil si agenti mobili)

Page 65: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Servicii furnizate de servere multiple

• Web-ul este un exemplu de partitionare a datelor a.i. fiecare server de Web isi gestioneaza o multime proprie de pagini Web.

• Un serviciu distribuit de directoare permite cautarea unor entitati dupa nume intr-o retea. Exemple: DNS, LDAP, etc. Un astfel de serviciu consta dintr-o multime de servere interconectate si un protocol de comunicare al clientilor cu serverele.

Server

Server

Server

Service

Client

Client

• Serviciile pot fi implementate sub forma unei multimi de procese server ce ruleaza pe diverse calculatoare gazda si interactioneaza corespunzator

• Procesele server pot sa:

– partitioneze multimea obiectelor pe care se bazeaza serviciul si sa le distribuie intre ele sau

– sa mentina copii replicate ale acestora pe mai multe calculatoare gazda. Sursa: Colouris et al., 2012

Page 66: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Servere proxy si memorii cache

• O memorie cache stocheaza datele recent folosite, mai aproape (spatial sau temporal) de procesul client care le-a folosit decat locul unde sunt ele stocate in mod normal. Cand un nou obiect este receptionat el va fi stocat in cache, posibil inlocuind alte obiecte existente. Cand un obiect este cerut de un client el va fi intai cautat in cache de serviciul de cache si furnizat de acolo in cazul existentei unei copii actualizate. Altfel se va extrage o copie actualizata de la sursa normala. Memoriile cache pot fi alocate fiecarui client in parte sau pot fi alocate in servere proxy partajate de mai multi clienti.

• Exemple:

– Navigatoarele Web mentin o memorie cache a paginilor recent vizitate si a altor resurse Web, in sistemul de fisiere al clientului. Se foloseste o cerere speciala HTTP pentru a cauta o pagina in cache inainte de a o aduce de pe Web. Un server Web proxy furnizeaza o memorie cache pentru clientii dintr-un site sau mai multe site-uri.

– Un server proxy poate avea si alte roluri, de exemplu accesul la Web print-un firewall.

Client

Proxy

Web

server

Web

server

serverClient

Sursa: Colouris et al., 2012

Page 67: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cod mobil - 1

• Conceptele de baza privind codul mobil sunt discutat foarte clar in lucrarea: Alfonso Fuggeta, Gian Pietro Picco, Understanding Code Mobility, IEEE Transaction on Software Engineering, vol.24, no.5, pp.342-361, 1998.

• Autorii au identificat 4 paradigme de baza pentru codul mobil:

– i) client/server,

– ii) evaluare la distanta (engl. Remote Evaluation)

– iii) cod la cerere (engl. Code on Demand)

– iv) agent mobil (engl. Mobile Agent)

• Exemplu: Luiza si Cristina prepara o prajitura.

• Client/server: Luiza doreste prajitura dar nu stie sa o prepare, nu are ingrediente si nici cuptor unde sa o coaca. Din fericire ea stie ca prietena sa Cristina stie reteta prajiturii si are o bucatarie corespunzatoare (cuptor si ingrediente). Luiza ii cere Cristinei sa-i faca prajitura. Aceasta o prepara si o livreaza Luizei.

Page 68: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cod mobil - 2

• Evaluare la distanta: Luiza doreste prajitura, stie reteta, dar nu are nici cuptor, nici ingrediente. Cristina are la ea acasa atat cuptor cat si ingrediente, dar nu cunoaste reteta. Din fericire Luiza stie ca prietena sa Cristina este bucuroasa sa incerce noi retete. Astfel ii da telefon Cristinei si ii spune reteta. Cristina foloseste reteta sa prepare prajitura si apoi o livreaza Luizei.

• Cod la cerere: Luiza doreste sa prepare prajitura, are la ea acasa atat ingrediente cat si cuptor, dar nu stie reteta. Din fericire Luiza stie ca prietena sa Cristina stie reteta prajiturii pe care a imprumutat-o deja la numerosi prieteni. Luiza ii telefoneaza Cristinei pentru a-i imprumuta reteta. Cristina ii spune reteta Luizei, iar Luiza prepara prajitura la ea acasa.

• Agent mobil: Luiza doreste sa prepare prajitura, stie reteta, are ingredientele, dar nu are cuptor. Din fericire Luiza stie ca prietena sa Cristina are la ea acasa un cuptor pe care este bucuroasa sa-l imprumute. Astfel Luiza prepara coca prajiturii si apoi merge la Cristina acasa pentru a coace prajitura.

Page 69: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Cod la cerere - exemplu

Page 70: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Variatii ale modelului client/server

• Miniaplicatiile (engl.applet) sunt exemple de cod mobil. Ele sunt descarcate de pe un server Web si rulate in programul navigator. Sunt utille atunci cand interactiunea client-server trebuie initiata de server (engl.push model), cum este cazul informarii automate a clientilor despre schimbarile din sursele de informatie de pe server.

• Exemplu: un agent de bursa poate furniza un serviciu de informare a clientilor sai despre modificarile preturilor.

a) client request results in the downloading of applet code

Client Web

server Applet

Web

server Applet code

Client

b) client interacts with the applet

Sursa: Colouris et al., 2012

Page 71: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Sabloane arhitecturale

• Reprezinta schema unei structuri compusa din elemente arhitecturale care este utila in proiectare in diverse situatii.

• Stratificare (engl. layering)

• Multi-nivel (engl. multi-tier sau tiered)

• Clienti “subtiri” (engl. thin clients)

• Alte sabloane arhitecturale:

– Delegat (engl. proxy)

• Se foloseste pentru a realiza transparenta locatiei in apelurile la distanta. In acest caz pentru un obiect la distanta se creaza un obiect proxy cu o interfata similara cu cea a obiectului la distanta in spatiul local de adrese al apelantului.

– Intermediar (engl. broker)

– Reflectie (engl. reflection)

• Permite descoperirea si configurarea dinamica a proprietatilor, structurii si comportamentului unui sistem, la nivelul interfetelor si componentelor sale. Este un sablon util pentru configurarea dinamica a unei arhitecturi middleware.

Page 72: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Stratificare

• Un sistem complex este partitionat sub forma unui numar de straturi (engl. layer). Fiecare strat realizeaza un anumit nivel de abstractizare.

• Fiecare strat foloseste serviciile oferite de stratul inferior. Astfel ca un strat ofera o abstractizare software, ascuzand detaliile de implementare straturilor superioare.

Applicat ions, services

Computer and network hardware

Platform

Operat ing system

Middleware

Sursa: Colouris et al., 2012

Page 73: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Multi-nivel

• Spre deosebire de stratificare, ce presupune organizarea pe verticala a unui SD sub forma unei multimi de straturi, o arhitectura multi-nivel este o modalitate complementara de organizare functionala a unui strat. Functionalitatile sunt asignate unor servere si eventual unor noduri fizice.

• La nivel conceptual o aplicatie se poate descompune functional din trei nivele logice:

– Logica prezentarii

– Logica aplicatiei

– Logica datelor

client

logica prezentarii

logica datelor

logica aplicatiei

Page 74: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD multi-nivel

Logica prezentarii

Logica aplicatiei

Logica datelor

Suport pentru clienti multipli

Separarea logicii aplicatiei Combinatie arbitrara

Distribuirea si replicarea datelor

Page 75: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD cu doua nivele

Sursa: Colouris et al., 2012

Page 76: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD cu trei nivele

Sursa: Colouris et al., 2012

Page 77: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Clienti “subtiri”

• Tendinta in SD este de mutare a complexitatii de la dispozitivul utilizatorului catre servicii din Internet – vezi cloud computing.

• Conceptul de thin client se refera la un nivel software de implementare a unei interfete utilizator bazata pe ferestre pe un calculator local, in timp ce partea mai consistenta a aplicatiei se executa pe un calculator la distanta. Aplicatia nu se descarca local, ci se ruleaza pe server. Avantajul este ca dispozitive cu capabilitati restranse pot fi imbunatatite cu servicii de retea. Dezavantajul este ca in aplicatiile puternic interactive timpul de raspuns va creste datorita volumului mare de informatii transmise intre client si server. Este important nivelul de separare intre client si server.

• Acest concept a condus la aparitia virtual network computing – VNC. Un client VNC interactioneaza cu un server VNC prin intermediul protocolului VNC ce opereaza la nivel de primitive grafice. Abordarea garanteaza independednta fata de sistemul de operare.

Sursa: Colouris et al., 2012

Page 78: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Alte sabloane - broker

• Suporta interoperabilitatea in SD complexe prin identificarea dinamica a unui serviciu solicitant (engl. service requester) cu un serviciu furnizat (engl. service provider) cu ajutorul unui servicu de intermediere (engl. service broker).

• Se foloseste in serviciile Web, RMI, CORBA, FIPA, etc.

Sursa: Colouris et al., 2012

Page 79: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Platforme middleware Obiecte distribuite Standard ISO Reference Model of Open Distributed Processing, RM-ODP

standard OMG si platforma Common Object Request Broker Architecture, CORBA

Platforma Java RMI

Componente

distribuite

Model de componente Fractal, http://fractal.ow2.org/

Componente pentru server

(engl. server-side)

Enterprise JavaBeans, EJB

Componente pentru server CORBA Component Model, CCM

Publicare-

inscriere

- Java Message Service, JMS

- CORBA Event Service

Cozi de mesaje - Java Message Service, JMS

Servicii Servicii Web Apache Axis

Servicii Grid Globus Toolkit

P2P Routing overlay Pastry, http://www.freepastry.org/

Routing overlay Chimera, http://current.cs.ucsb.edu/projects/chimera/

Aplicatie pentru partajare

de fisiere

BitTorrent, http://www.bittorrent.com/

Multi-Agent Standard IEEE FIPA, http://www.fipa.org/

Platforma Multi-Agent JADE, http://jade.tilab.com/

Page 80: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modele fundamentale ale SD I

• Modelele fundamentale ale SD se ocupa cu descrierea formala a proprietatilor comune tuturor modelelor arhitecturale, oferind o viziune abstracta asupra acelor caracteristici ale SD care afecteaza:

– Corectitudinea

– Fiabilitatea

– Securitatea

sistemelor distribuite.

• Modelul de interactiune

• Modelul defectelor

• Modelul de securitate

Page 81: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modele fundamentale ale SD II

• Modelul de interactiune

• Procesele unui SD interactioneaza prin mesaje in scopul realizarii comunicarii si coordonarii. Livrarile mesajelor si pasii de calcul pot fi afectate de intarzieri considerabile. Aceste intarzieri conduc la dificultatea mentinerii unui timp global si limiteaza acuratetea cu care procesele pot fi coordonate. Se bazeaza pe algoritmi distribuiti.

• Modelul defectelor

• Este o descriere a defectelor ce pot aparea in cadrul proceselor si canalelor de comunicatie ale unui SD. Acest model ofera o baza pentru analiza efectelor potentiale ale acestor defecte si pentru proiectarea unor SD capabile sa tolereze aceste defecte, astfel incat sa isi poata continua functionarea corecta.

• Modelul de securitate

• Prezinta amenintarile posibile asupra proceselor si canalelor de comunicatie. El ofera o baza pentru analiza acestor amenintari si pentru proiectarea SD capabile sa reziste la ele.

Page 82: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modelul de interactiune

• Un SD se compune dintr-o multime de procese ce ruleaza independent, posibil pe calculatoare diferite si interactioneaza in maniera complexa.

• Comportamentul unui SD se descrie printr-un algoritm distribuit. El defineste multimea pasilor care se executa de fiecare proces al SD in parte, incluzand si schimburile de mesaje dintre acestea.

• Caracteristic unui SD sunt:

– i) ratele de executie ale fiecarui proces in parte si timpii necesari transmisiei de mesaje nu sunt in general predictibili fiind afectati de incertitudini;

– ii) descrierea tututuror starilor posibile este dificila deoarece ar trebui luate in considerare toate erorile din cadrul proceselor de calcul si a canalelor de comunicatie.

• Factori de incertitudine ce influenteaza interactiunea proceselor unui SD:

– i) performanta limitata a comunicatiei;

– ii) imposibilitatea mentinerii unui ceas global unic.

Page 83: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Performanta canalelor de comunicatie

• Comunicatia in reteaua de calculatoare a unui SD se caracterizeaza prin:

– latenta (engl.latency)

– largime de banda sau capacitate (engl.bandwidth sau throughput) si

– variatie temporala (engl.jitter).

Page 84: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Latenta

• Latenta = intarzierera dintre trimiterea unui mesaj de catre un proces expeditor si receptionarea sa de catre procesul receptor. Latenta include:

– Intarzierea intrinseca a canalului de comunicatie, datorata limitarilor sale fizice.

– Intarzierea cauzata de accesul la retea; creste cu cat reteaua este mai incarcata.

– Timpul de acces la serviciile de comunicatie ale sistemelor de operare expeditor si receptor; creste cu cat sistemele sunt mai incarcate.

Page 85: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Largimea de banda

• Largimea de banda = cantitatea totala de informatie utila ce poate fi transmisa in unitatea de timp.

• Daca mai multe canale de comunicatie partajeaza o aceeasi legatura de comunicatie, ele vor partaja de asemenea si largimea de banda a canalului respectiv

Page 86: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Variatia temporala

• Variatia temporala = variatia in timpul necesar transmiterii unei secvente de mesaje.

• Aceasta variatie este relevanta pentru transmisia datelor multimedia.

• De exemplu, daca o secventa de esantioane de date audio sunt redate cu cuante de timp diferite atunci sunetul rezultat va fi puternic distorsionat.

Page 87: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Ceasuri

• Fiecare calculator al unui SD are un ceas local. Procesele ce ruleaza pe calculatoare diferite vor asocia marcaje de timp evenimentelor pe baza ceasurilor locale. Chiar daca citirea ceasurilor locale s-ar face in acelasi moment de timp, se vor obtine valori diferite, deoarece:

– Fiecare ceas are un decalaj (engl.drift) fata de ceasul real

– Decalajele ceasurilor sunt diferite

• Rata de deplasare a unui ceas (engl.clock drift rate) reprezinta deplasamentul relativ al ceasului fata de un ceas de referinta perfect. Chiar daca toate ceasurile unui SD ar fi setate la aceleasi valori initiale, ele pot varia in timp, fiind necesare corectii regulate.

Page 88: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Corectia ceasurilor

• Corectia ceasurilor se poate realiza prin citirea periodica a timpului curent prin radio sau de la un sistem global de pozitionare (engl.Global Positioning System – GPS) cu o acuratete de aproximativ 1 s. Dar GPS-urile nu pot functiona in cladiri si sunt costisitoare.

• Alternativa este ca un calculator cu acces la un GPS sa trimita regulat mesaje de timp celorlalte calculatoare din retea. Insa aceste valori vor fi desigur afectate de intarzierile de livrare a mesajelor in retea.

• SD furnizeaza servicii de timp necesare pentru sincronizare in timp, in anumite limite de acuratete. Un exemplu este NTP – Network Time Protocol.

Page 89: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Variante ale modelului de interactiune

• Exista doua variante:

– SD sincrone

– SD asincrone

• Distinctia intre sincron si asincron se face dupa doua coordonate:

– Existenta / inexistenta ceasului global

– Predictibilitatea / nepredictibilitatea intarzierilor de comunicatie.

Page 90: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD sincrone

• SD sincrone se caracterizeaza prin:

– Timpul necesar executiei unui pas de calcul in cadrul fiecarui proces are limite inferioara si superioara cunoscute.

– Intarzierile de transmitere a mesajelor sunt marginite si limita lor superiara este cunoscuta.

– Fiecare proces are un ceas local a carei rata de deplasare fata de o referinta standard este cunoscuta.

• Este dificil sa se obtina valori precise ale limitelor de timp dintr-un sistem sincron, desi acestea exista in SD reale.

• Se poate face o modelare a unui algoritm ca un sistem sincron pentru a-i studia comportamentul cat mai aproape de realitate.

• In practica necunoasterea limitelor se poate rezolva folosind tehnica limitarii timpului (engl.timeout).

Page 91: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

SD asincrone

• SD asincrone se caracterizeaza prin:

– Timpul necesar executiei unui pas de calcul in fiecare proces are o valoare finita arbitrara.

– Intarzierile de transmitere a mesajelor sunt finite si arbitrare.

– Deplasamentele ceasurilor locale fata de o referinta standard sunt finite si arbitrare.

• Orice sistem sincron este in acelasi timp si asincron. Astfel ca rezolvand o problema pe cazul asincron se asigura universalitatea solutiei. Din pacate insa nu orice problema se poate rezolva in ipoteza asincrona.

Page 92: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Acord in SD I

• Doua divizii ale armatei Pepperland, D si R, sunt asezate pe varfurile a doua dealuri invecinate.

• De-alungul vaii care separa dealurile se gasesc invadatorii H.

• D si R sunt in siguranta daca raman in taberele lor.

• D si R pot comunica fiabil trimitand mesageri care sa se strecoare prin vale.

• D si R trebuie sa ajunga la un acord (consens) privind un atac asupra invadatorilor H: (i) cine sa conduca atacul? si (ii) cand sa fie pornit atacul?

• Pentru a decide cine va conduce atacul, D si R schimba mesaje privind forta fiecarei divizii. Cea mai puternica divizie va conduce atacul, iar in caz de egalitate va conduce divizia D. Decizia se poate lua si intr-un scenariu asincron

Page 93: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Acord in SD II

• Intr-un SD asincron, S si D nu vor putea decide cand sa atace deoarece interschimbul de mesaje poate dura nelimitat.

• Sa presupunem un SD sincron in care un schimb de mesaje dureaza intre min si max unitati de timp.

• Divizia cea mai puternica va trimite un mesaj „Atacam‟ catre cealalta divizie, asteapta min unitati de timp si ataca.

• Divizia cea mai putin puternica primeste mesajul de atac, asteapta o unitate de timp si ataca.

• Acest algoritm garantreaza ca divizia cea mai puternica va ataca sigur prima, iar divizia cea mai puternica va ataca la cel putin max-min+1 unitati de timp dupa ea.

• Problema se complica in prezenta erorilor: ce se intampla daca mesagerii sunt interceptati de invadatori?

Page 94: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modelul defectelor

• In SD se pot defecta atat procesele cat si canalele de comunicatie

• Defect = orice abatere de la comportamentul corect dorit. Modelul defectelor defineste tipurile si manifestarile defectelor in scopul intelegerii efectelor lor.

• Exista trei mari categorii de defecte: defecte prin omitere, defecte arbitrare si defecte de timp.

• Defectele prin omitere se refera la cazurile in care un proces sau canal de comunicatie nu reuseste sa efectueaze actiunile pe care trebuie sa le faca.

• Defectele arbitrare (bizantine) descriu situatiile cele mai rele din punctul de vedere al erorilor, adica acele situatii in care poate sa apara orice tip de eroare. Denumirea provine de la problema generalilor bizantini din ACM Transactions on Programming Languages and Systems, Vol. 4, No. 3, 382-401 de catre Leslie Lamport, Robert Shostak, si Marshall Pease.

• Defectele de timp se aplica SD sincrone si descriu situatiile in care nu se obtine un raspuns in limitele de timp prestabilite in urma efectuarii unei anumite actiuni.

Page 95: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Defecte prin omitere ale proceselor

• Caderea unui proces (engl. crash) inseamna ca procesul se opreste (engl. halts) si nu mai executa nici un pas de calcul

• Detectarea unei caderi a unui proces se poate realiza prin impunerea unei limite a timpului de raspuns (engl. timeout). Daca un proces nu mai raspunde la invocari intr-un timp prestabilit inseamna ca este posibil sa se fi produs o cadere a procesului.

• Metoda limitarii timpului de raspuns functioneaza cu certitudine absoluta doar pentru sistemele sincrone. Intr-un sistem asincron faptul ca procesul nu raspunde poate insemna fie o cadere, fie faptul ca procesul ruleaza foarte incet.

• O cadere detectabila a unui proces (de exemplu prin impunerea unor limite de timp in SD sincrone) se numeste fail-stop.

Page 96: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Defecte prin omitere ale canalelor de comunicatie

• Apare cand canalul nu reuseste sa transmita un mesaj din tamponul de iesire al procesului p catre tamponul de intrare al procesului q.

• Daca eroarea apare intre procesul expeditor p si tamponul sau de iesire atunci ea se numeste send-omission failure.

• Daca eroarea apare intre tamponul de intrare al procesului receptor q si proces atunci ea se numeste receive-omission failure.

• Daca eroarea apare intre tamponul de iesire al procesului expeditor p si tamponul de intrare al procesului destinatar q atunci ea se numeste channel-omission failure.

Proces p Proces q

Canal de comunicatie

send m

Tampon de iesire pentru mesaje Tampon de intrare pentru mesaje

receive

Sursa: Colouris et al., 2012

Page 97: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Defecte arbitrare

• Descriu situatiile cele mai “rele” in care poate sa apara orice tip de eroare.

• Procesele se pot defecta arbitrar:

– prin executia unor actiuni eronate (posibil intentionat), de exemplu de asignare a unor valori eronate sau prin returnarea unor valori eronate

– Prin omiterea unor pasi de calcul sau prin inserarea intentionata a unor pasi de calcul neprevazuti

• Defectele arbirare ale proceselor nu pot fi detectate prin observarea raspunsului procesului la invocari.

• Canalele de comunicatie se pot defecta arbitrar prin coruperea sau intarzierea mesajelor, sau prin multiplicarea sau inserarea arbitrara de mesaje. O comunicatie fiabila presupune proprietatile de validitate si integritate.

• Erorile arbitrare ale canalelor de comunicatie sunt destul de rare deoarece software-ul de comunicatie poate recunoaste si rejecta mesajele corupte prin sume de control, respectiv nelivrarea sau duplicarea unor mesaje prin numere de secventa.

Page 98: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Defecte de omitere si defecte arbitrare

Class of failure Affects Description

Fail-stop Process Process halts and remains halted. Other processes may detect this state.

Crash Process Process halts and remains halted. Other processes may not be able to detect this state.

Omission Channel A message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer.

Send-omission Process A process completes a send, but the message is not put in its outgoing message buffer.

Receive-omission Process A message is put in a process’s incoming message buffer, but that process does not receive it.

Arbitrary (Byzantine)

Process or channel

Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.

Sursa: Colouris et al., 2012

Page 99: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Defecte de timp

Class of Failure Affects Description

Clock Process Process’s local clock exceeds the bounds on its rate of drift from real time.

Performance Process Process exceeds the bounds on the interval between two steps.

Performance Channel A message’s transmission takes longer than the stated bound.

Sursa: Colouris et al., 2012

Page 100: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Modelul de securitate

• SD sunt motivate si de partajarea resurselor. Acestea sunt incapsulate sub forma de obiecte, componente sau servicii in cadrul proceselor SD. Accesul la ele este furnizat prin interactiuni intre procese.

• Securizarea SD se poate realiza prin securizarea proceselor (a accesului la anumite operatii, controlul executiei proceselor), a canalelor de comunicatie si prin protejarea obiectelor impotriva acceselor neautorizate.

• Modelul de securitate are in vedere:

– Protectia obiectelor

– Protectia proceselor si a interactiunilor dintre ele

– Modelarea si dejucarea pericolelor (atacurilor) de securitate (engl. security threats)

Page 101: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Protectia obiectelor

• Obiectele se utilizeaza in mod diferit de catre utilizatori diferiti. Trebuie folosite metode pentru controlul accesului.

• Se definesc drepturile de acces (engl. access rights) care stabilesc operatiile permise asupra unui obiect de catre fiecare tip de utilizatori.

• Pentru includerea utilizatorilor in acest model, se asociaza fiecarei invocari si fiecarui rezultat autoritatea generatoare. Aceasta autoritate se numeste principal si ea poate fi un utilizator (ex. invocare) sau proces (ex. rezultat).

• Serverul verifica identitatea principalului si faptul ca acesta are suficiente drepturi sa realizeze operatia ceruta asupra obiectului tinta. Clientul verifica identitatea principalului din spatele serverului pentru a stabili ca rezultatul provine de la serverul corect.

Network

invocation

result

Client Server

Principal (user) Principal (server)

Object Access rights Sursa: Colouris et al., 2012

Page 102: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Securizarea proceselor si interactiunilor

• Procesele interactioneaza prin schimb de mesaje.

• Mesajele sunt expuse atacurilor deoarece in general serviciile de comunicatie ale retelelor sunt deschise pentru a permite interactiuni dinamice intre procese.

• Serverele si procesele peer isi expun interfetele pentru invocare din partea oricarui alt proces.

• Natura aplicatiilor SD, spre exemplu din domeniul financiar-bancar, predispune SD la confruntarea cu utilizatori ostili.

• Secretizarea si integritatea informatiei gestionata de astfel de SD este cruciala.

Page 103: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Pericole de securitate

• Modelarea pericolelor (atacurilor) de securitate presupune existenta unui inamic sau adversar care sa trimita mesaje unor procese, respectiv sa citeasca, copieze si sa altereze mesajele schimbate de procese.

• Doua tipuri de pericole:

– Pericole asupra proceselor

– Percole asupra canalelor de comunicatie

Communication channel

Copy of m

Process p Process q m

The enemy m’

Sursa: Colouris et al., 2012

Page 104: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Pericole asupra proceselor

• Un proces poate primi mesaje intr-un SD de la orice alt proces. Trebuie determinata identiatea expeditorului. Protocoalele IP includ adresa IP a expeditorului in fiecare mesaj, insa aceasta adresa este usor de falsificat.

• Lipsa de cunoastere sigura a sursei expeditorului afecteaza clientii si serverele astfel:

– Un server, necunoscand identitatea expeditorului, nu stie cand sa accepte sau sa interzica o anumita invocare din partea unui client. De exemplu, invocarea poate cere citirea unui anumit mesaj de posta electronica, aceasta actiune necesitand cunoasterea cu certitudine a identitatii clientului.

– Cand un client primeste rezultatul invocarii de la un server nu poate identifica cu certitudine expeditorul rezultatului. In exemplul cu citirea postei electronice, rezultatul poate fi returnat de un server implicat intr-un atac de spoofing asupra serverului de posta electronica.

Page 105: Introducere in sisteme distribuite - software.ucv.rosoftware.ucv.ro/~cbadica/scd/cap11.pdf · • Sistemele de operare pentru SD se impart in doua mari categorii (distinctia este

2018-2019

Pericole asupra canalelor de comunicatie

• Un inamic poate copia, altera, injecta sau elimina mesaje intr-o retea. Aceste actiuni pericliteaza integritatea si secretizarea (engl. privacy) informatiei continuta in mesaje.

• Aceste atacuri pot fi prevenite prin implementarea conceptului de canal sigur (engl. secure channel) folosind:

– Tehnici criptografice pentru codificarea si respectiv decodificarea mesajelor cu ajutorul unor chei.

– Tehnici de autentificare bazate pe criptarea identitatii expeditorilor mesajelor.

• Un canal sigur ne asigura:

– Fiecare proces cunoaste identitatea autoritatilor principale ale celorlalte procese ce executa invocari asupra sa.

– Integritatea si secretizarea informatiei din mesaje.

– Eliminarea mesajelor duplicate si refacerea ordinii mesajelor prin marcaje de timp si/sau de secventa.