Documente Academic
Documente Profesional
Documente Cultură
Capitolul 2
2013
Tipuri de modele
• 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
2013
Generatii de SD I
• 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
2013
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 aotonome se interconecteaz
aintre ele prin porti interne – interior
gateways.
2013
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.
2013
Sumar al generatiilor de SD
2013
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 utilizatorii 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 2013
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
2013
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).
2013
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
2013
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.
2013
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).
2013
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.
2013
Paradigme de comunicare
• Trei paradigme:
– comunicare intre procese,
– invocare la distanta,
Entitate A ? Entitate B
– comunicare indirecta.
2013
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.
2013
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 expeditori, 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, 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 efeicienta a informatiei de la producatori
catre consumatorii interesati.
2013
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.
2013
Roluri si responsabilitati
• Procesele unui SD interactioneaza si se coordoneaza pentru
realizarea unor activitati complexe.
2013
Modelul client/server
Client invocation invocation Server
result result
Server
Client Key:
Process: Computer:
• 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.
2013
2013
Client Web
server
• 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. 2013
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.
2013
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.
2013
2013
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 code
Web
Client Applet server
2013
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)
– Reflexie (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.
2013
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.
Applications, services
Middleware
Operating system
Platform
Multi-nivel
• Spre deosebire de stratificare, ce
presupune organizarea pe verticala a client
unui SD sub forma unei multimi de
straturi, o arhitectura multi-nivel este
o modalitate complementara de logica prezentarii
organizare functionala a unui strat.
sistem distribiut
Logica prezentarii
Suport pentru clienti multipli Distribuirea si replicarea datelor
Logica aplicatiei
Separarea logicii aplicatiei Combinatie arbitrara
Logica datelor
2013
SD cu doua nivele
2013
SD cu trei nivele
2013
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.
2013
Alte sabloane - broker
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 Model de componente Fractal, http://fractal.ow2.org/
distribuite
Componente pentru server Enterprise JavaBeans, EJB
(engl. server-side)
Componente pentru server CORBA Component Model, CCM
Publicare- - Java Message Service, JMS
inscriere
- 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 BitTorrent, http://www.bittorrent.com/
de fisiere
Multi-Agent Standard IEEE FIPA, http://www.fipa.org/
Platforma Multi-Agent JADE, http://jade.tilab.com/
2013
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
2013
– latenta (engl.latency)
2013
Latenta
• Latenta = intarzierera dintre trimiterea unui mesaj de
catre un proces expeditor si receptionarea sa de catre
procesul receptor. Latenta include:
Largimea de banda
2013
Variatia temporala
2013
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
2013
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.
2013
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).
2013
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.
2013
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
2013
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?
2013
Entitati intr-un SD
• Un SD este compus dintr-o multime finita de entitati de calcul E.
• Orice entitate x ∈ E este inzestrata cu o memorie locala nepartajata Mx.
• Memoria locala este compusa dintr-o multime finita de registre pentru
fiecare entitate (cu valori initiale precizate) incluzand:
– Un registru de stare status(x) cu valori intr-o multime finita de stari S cum ar fi
spre exemplu: processing, idle, waiting, etc.
– Un registru de intrare value(x)
• Fiecare entitate contine un ceas local (temporizator, alarm clock) care
poate fi setat sau resetat.
• Capabilitatile entitatii x includ patru tipuri de operatii:
– Stocare si procesare locala
– Interactiunea cu alte entitati: pregatirea, transmiterea si receptionarea mesajelor
– (Re)setarea temporizatorului (un tip “special” de procesare locala)
– Schimbarea valorii registrului de stare (un tip “special” de procesare locala)
2013
Evenimente
• Comportamentul unei entitati x ∈ E este reactiv: x raspunde la stimuli
externi, numiti evenimente. In absenta evenimentelor. entitatea x este
inerta, nu realizeaza nici o activitate.
• Exista trei tipuri de evenimente:
– Primirea unui mesaj (trimis de o alta entitate)
– Declansarea temporizatorului
– Impuls spontan
• Primirea unui mesaj si respectiv declansarea temporizatorului sunt
evenimente provenite din exteriorul entitatii, dar din cadrul SD.
• Un impuls spontan este declansat de forte externe SD. Exemple:
– intr-un sistem bancar entitatile sunt serverele de baze de date si automatele bancare.
Un eveniment de extragere de numerar de catre un client al bancii reprezinta un
impuls spontan.
• Evenimentele corespunzatoare impulsurilor spontane apar pentru sistem
ca “acte externe” ce declanseaza calculul si comunicatia dintr-un SD.
2013
Actiuni
2013
Comunicare in SD
• Entitatile unui SD comunica prin mesaje.
• Se noteaza cu Nout(x) ⊆ E multimea entitatilor catre care
entitatea x poate transmite mesaje si Nin(x) ⊆ E multimea
entitatilor de la care entitatea x poate primi mesaje. Obs: y ∈
Nout(x) dnd x ∈ Nin(y).
• Multimile Nout(x) si Nin(x) definesc un graf orientat G = 〈V,E〉
a.i. V = E si (x,y) ∈ E dnd y ∈ Nout(x) sau echivalent x ∈ Nin(y).
• Graful G defineste topologia de comunicare in SD. Se noteaza
cu n(G), m(G) si d(G) numarul de varfuri, arce respectiv
diametrul lui G (lungimea maxima a celei mai scurte cai intre
oricare doua varfuri ale grafului).
• Nodurile lui G se numesc: noduri, varfuri, entitati sau site-uri.
Arcele lui G se mai numesc legaturi.
2013
Presupuneri in SD
• Definitia SD include doua presupuneri de baza numite
axiome. Ele se refera la: i) intarzierile de comunicatie
si ii) orientarea locala a entitatilor.
• Orice presupunere suplimentara se numeste restrictie.
• Axiomele se refera la:
– Intarzierile de comunicatie
– Orientarea legaturilor
• Restrictiile se pot referi la:
– Comunicare
– Fiabilitate
– Topologie
– Timp
2013
Axiome - intarzieri
• Intarzierile de comunicatie: transmiterea unui mesaj implica
o serie de activitati:
– pregatire,
– transmisie,
– receptie,
– …
• Totalitatea intarzierilor cauzate de aceste activitati se
numeste intarzierea de comunicatie a mesajului. Aceasta
intarziere este inpredictibila.
2013
Axiome - orientare
• Orientarea locala: O entitate poate comunica direct cu o submultime a
entitatilor sistemului, numite vecinii entitatii respective.
• Axioma (orientare locala): Orice entitate poate distinge intre vecinii sai
de intrare si respectiv intre vecinii sai de iesire. Astfel:
– o entitate poate transmite un mesaj doar catre unul din vecinii sai de iesire (fara a
transmite mesajul si celorlalti vecini de iesire) si
– o entitate poate distinge vecinul de intrare de la care a primit un mesaj.
2013
Restrictii de comunicare
– Disciplina de servire
2013
Disciplina de servire
• Disciplina de servire: o legatura (x,y) reprezinta un
canal de comunicare sau coada. Expedierea unui mesaj
de catre x lui y reprezinta adaugarea sa in coada, iar
receptia unui mesaj de catre y de la x reprezinta
extragerea sa din coada. Se pot impune diverse
discipline de acces la coada.
2013
2013
Restrictii de fiabilitate
• Arata cum aspecte ale modelului defectelor se pot include in
modelul de interactiune.
• Detectia caderilor componentelor:
– Detectarea caderilor legaturilor: ∀ (x,y) ∈ E, atat x cat si y pot
detecta daca legatura (x,y) este defecta si daca a fost reactivata.
– Detectarea caderilor entitatilor: ∀x ∈ V , toti vecinii de intrare si de
iesire ai lui x pot detecta daca x este defecta si daca a fost reactivata.
• Tipuri restrictive de defecte:
– Garantarea livrarii: orice mesaj transmis va fi receptionat fara
coruperea continutului. Cu o astfel de restrictie, protocoalele nu vor
trebui sa ia in considerare omisiunea si coruperea mesajelor.
– Fiabilitate partiala: Nu vor aparea erori. Cu o astfel de restrictie,
protocoalele nu vor trebui sa ia in considerare posibilele erori.
Aceasta ipoteza nu exclude insa situatia in care erori ar fi putut apare
inaintea executiei protocolului.
– Fiabilitate totala: Nu au aparut si nu vor aparea erori.
2013
Restrictii de topologie si timp
• Restrictii de topologie:
– Conectivitate: Graful de comunicatie G este tare conex. Acest lucru
inseamna ca orice entitate poate transmite direct sau indirect catre
orice alta entitate din sistem. Restrictia de conectivitate impreuna cu
restrictia legaturilor bidirectionale inseamna ca graful G este
neorientat si conex.
• Restrictii de timp:
– Intarzieri marginite de comunicatie: exista o constanta de timp ∆
astfel incat, in absenta erorilor, intarzierea de comunicatie a oricarui
mesaj transmis pe orice legatura este cel mult ∆.
– Intarzieri de comunicatie unitare: In absenta erorilor, orice mesaj este
transmis intr-o unitate de timp.
– Ceasuri sincronizate: toate ceasurile de timp locale sunt incrementate
simultan cu o unitate de timp si intervalul de timp dintre doua
incrementari succesive este constant.
2013
Costul de comunicare
• Eficienta unui protocol descris prin modelul abstract introdus se va face
folosind doua masuri: i) volumul de activitati de comunicare (cat de mult
trafic va genera protocolul?); ii) timpul de calcul (cat de ocupat va fi
sistemul?).
• Activitatea de comunicare de baza este expedierea unui mesaj printr-un
port de iesire catre un vecin; se va lua in calcul si cazul in care un mesaj
expediat nu a fost receptionat.
• Volumul de activitati de comunicare se va estima prin numarul de mesaje
expediate M = costul mesajelor.
• Incarcarea unei entitati (engl.entity workload) Lnode = M/|V| reprezinta
numarul mediu de mesaje expediate pe entitate.
• Incarcarea transmisiei (engl.transmission load) Llink = M/|E| reprezinta
numarul mediu de mesaje expediate pe legatura.
• Daca se considera costul mesajelor estimat prin numarul de biti transmisi
B rezulta incarcarile la nivel de bit pe entitate si pe legatura: Lbnode =
B/|V| si Lblink = B/|E|.
2013
Costul de calcul
• O masura a eficientei si complexitatii o reprezinta timpul total
de executie scurs din momentul in care prima entitate incepe
executia pana cand ultima entitate termina executia.
• Deoarece in modelul general nu se poate face nici o
presupunere privind intarzierea maxima de expediere a unui
mesaj, rezulta ca timpul total de executie este inpredictibil
putandu-se schimba major de la o executie la alta a sistemului.
• Se poate insa estima timpul unei executii ideale T,
considerandu-se restrictiile: intarzieri de transmisie unitare si
ceasuri sincronizate.
• O alta masura este complexitatea de timp cauzal Tcausal definita
prin lungimea celui mai lung sir de expedieri de mesaje
corelate cauzal, din multimea tuturor executiilor posibile.
2013
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.
2013
• Defectele arbitrare (bizantine) descriu situatiile cele
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.
2013
send m receive
Canal de comunicatie
Tampon de iesire pentru mesaje Tampon de intrare pentru mesaje
2013
Defecte de timp
2013
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)
2013
Protectia obiectelor
Access rights Object
invocation
Client
result Server
• 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.
2013
2013
Pericole de securitate
Copy of m
The enemy
m’
Process p m Process q
Communication channel