OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni...

Preview:

Citation preview

OTVORENO RA^UNARSTVO RASPODIJELJENI RA^UNALNI SUSTAVI

MARIO @AGAR

Otvoreno računarstvoRaspodijeljeni računalni sustavi

Mario Žagar

Otvoreno računarstvo - Preglednik, poslužitelj i komunikacija među njima3

Predgovoro Svaki uređaj mora imat dva priključka:

o jedan za napajanjeo jedan za komuniciranje

M.Ž. 1983.*

*Misao vodilja (moto) vrijedi i danas!

Raspodijeljeni računalni sustavio Slojevita arhitektura

o Arhitekture raspodijeljenih aplikacijao Klijent i poslužiteljio Međuprocesna komunikacijao Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi5

Slojevita arhitekturao Element slojevitog modela:

o slojevi o razine apstrakcije, rješavaju neovisne zadatke

o konektori o protokoli interakcije između susjednih slojeva

o Hijerarhijska organizacija slojevao interakcija samo između susjednih slojevao udaljeni slojevi “skriveni”

Otvoreno računarstvo - Raspodijeljeni računalni sustavi6

Svojstva slojevite arhitektureo Prednost slojevite arhitekture:

o sloj obavlja točno određenu uloguo slojevi “slabo” povezani konektorimao neovisnost o implementaciji, slojevi

jednostavno zamjenjivio protokoli interakcije se moraju strogo

poštovato Nedostaci slojevite arhitekture:

o smanjena učinkovitost sustavao skupa promjena protokola interakcijeo ponekad teško identfcirat jasno

odijeljene slojeve

Rainbow Colours Cheese Layered Cake

Coconut Milky Yam cheese Layered Cake

Otvoreno računarstvo - Raspodijeljeni računalni sustavi7

Izvedba slojeva i konektora (I)o Monolitna aplikacija:

o jedan proces izvođen u okviru operacijskog sustava jednog računala

o slojevio logički (i fzički?) odvojene biblioteke funkcijao čine jedinstveni izvedbeni kôd aplikacije

o konektori između slojevao skup funkcija vidljivih iz

susjednog slojao komunikacija

pozivi funkcija susjednog sloja

Otvoreno računarstvo - Raspodijeljeni računalni sustavi8

Izvedba slojeva i konektora (II)o Višeprocesna aplikacija:

o dva ili više procesa izvođenih na jednom ili više računala o izvođenje na više računala - raspodijeljena aplikacijao (neki ili svi) slojevi izolirani unutar zasebnih procesao konektori između slojeva

o mehanizmi međuprocesne komunikacijeo komunikacijski protokol

Otvoreno računarstvo - Raspodijeljeni računalni sustavi9

Slojevi aplikacijeo Tipična arhitektura aplikacije sastoji se

od tri sloja:o sloja prezentacije (GUI)o sloja aplikacijske logikeo sloja podataka

o Unutar th slojeva mogu se identfcirat i fnije podjele na dodatne slojeveo ovisno o aplikaciji

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacija

o Klijent i poslužiteljio Međuprocesna komunikacijao Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi11

Monolitna arhitekturao Svi funkcionalni slojevi aplikacije unutar procesa

izvođenog na jednom računaluo Primjeri:

o obrada teksta, o tablični kalkulator, o razvojne okoline, o single-player igre ...

o Dodatni alat potrebni za omogućavanje grupnog radao npr. subversion (svn, cvs ...)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi12

Dvoslojna arhitekturao Funkcionalni slojevi grupirani u dva zasebna

ahitekturna sloja (2-ter), tj. procesao klijentska aplikacija

o sadrži funkcionalne slojeve prezentacije i aplikacijske logike (ako postoji)

o poslužiteljska aplikacija o sadrži sloj podataka

o Poslužiteljska aplikacija o može istovremeno pružat

usluge jednoj ili više klijentskih aplikacija

Otvoreno računarstvo - Raspodijeljeni računalni sustavi13

Troslojna arhitekturao Funkcionalni slojevi grupirani u tri zasebna

arhitekturalna sloja (3-ter), tj. procesao sloj prezentacije – klijenska aplikacijao srednji sloj - sloj aplikacijske logikeo sloj podataka - baza podataka, ...

Otvoreno računarstvo - Raspodijeljeni računalni sustavi14

Tanki i debeli klijento Debeli klijent (fat client):

o sadrži slojeve prezentacije i aplikacijske logike

o zahtjeva veću snagu obrade računala domaćina i veću količinu podataka prenošenih mrežom

o Tanki klijent (thin client):o sadrži samo sloj prezentacijeo manja snaga obrade, manja količina

prenošenih podataka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi15

Karakteristike arhitekturao Procjena s obzirom na sljedeće parametre:

o snaga obrade računalao kapacitet spremišta podataka (centralnih, lokalnih ...)o propusnost komunikacijske infrastruktureo prilagodljivost (proširivost, skalabilnost) sustava

o npr. u slučaju povećanja broja korisnika ...o robusnost sustava

o npr. nedostupnost pojedinih komponenata sustava ...o cijena izgradnje sustavao cijena održavanja sustava

Otvoreno računarstvo - Raspodijeljeni računalni sustavi16

Višeslojna arhitekturao Višeslojna arhitektura (mult-ter, n-ter) sadrži

višestruke (specijalizirane i/ili redundantne) aplikacijske poslužitelje i/ili baze podatakao ravnomjernija raspodjela opterećenjao potrebna veća propusnost komunikacijske infrastrukture

Otvoreno računarstvo - Raspodijeljeni računalni sustavi17

Peer-to-peer (p2p) arhitekturao Svaki enttet (čvor) čini cjelovit funkcionalni enttet

o monolitna arhitekturao funkcionalnost sustava postže se suradnjom

jednakovrijednih enttetao enttet mogu "igrat" sve uloge u sustavuo koju ulogu igraju i prema kojem drugom enttetu, ovisi o

trenutnom stanju sustavao npr. BitTorrent:

o pojedini čvor može imat ulogu klijenta prema jednoj grupi čvorova, a ulogu poslužitelja prema drugoj grupi čvorova

Otvoreno računarstvo - Raspodijeljeni računalni sustavi18

Redovi poruka (I)o Čvrsta sprega (tght coupling) između procesa i

čvorova u višeslojnim i p2p arhitekturamao uspostava komunikacijskog kanala između točno

određenih sudionika komunikacijeo sinkrona priroda komunikacijeo implementacija specifčnog komunikacijskog protokola

(jezika)o Kod povezivanja neovisno izgrađenih sustava

navedene karakteristke stvaraju velike probleme!

Otvoreno računarstvo - Raspodijeljeni računalni sustavi19

Redovi poruka (II)o Redovi poruka:

o međuspremnici između sudionika komunikacije

o proizvođači spremaju poruke u redo potrošači dohvaćaju poruke iz redao nema izravnog komunikacijskog

kanala između aplikacija o komunikacija je asinkronao potrebno je implementrat samo

jedan komunikacijski protokol

Otvoreno računarstvo - Raspodijeljeni računalni sustavi20

Potpuno raspodijeljeni sustavio Javno dostupne raspodijeljene komponente

o način implementacije nebitan, bitno sučelje za pristupo usluge (Web servisi)o procedure (RPC, XML-RPC)o objekt (SOAP, CORBA)

o Svaka komponenta pruža određenu funkcionalnosto neovisna o aplikaciji

o Raspodijeljeni sustavi kao orkestriranje raspodijeljenih komponenata

Otvoreno računarstvo - Raspodijeljeni računalni sustavi21

Usluge na Internetuo Usluge – široko korištene raspodijeljene aplikacije

o dostupni klijent i poslužiteljio dobro defnirani (normirani) komunikacijski protokolio defnirane uobičajene adrese (vrata) usluga

o Arhitektura usluga je u pravilu klijent-poslužiteljo s (većim ili manjim) varijacijama na temu

o Protokoli većinom varijacije modela “zahtjev-odgovor” (request - response):o klijent šalje zahtjev poslužiteljuo poslužitelj obrađuje zahtjev i vraća rezultat klijentu

Otvoreno računarstvo - Raspodijeljeni računalni sustavi22

Arhitektura usluga klijent-poslužitelj o WWW, DNS, LDAP, SVN – informacijske usluge

o WWWo jasni slojevi prezentacije i podataka

o DNS, LDAPo uloga klijenta ovisna o konkretnoj primjeni

o SVNo poslužitelj kao sloj podataka, klijent (ni)je sloj prezentacije

o Telnet, SSH – rad na udaljenom računaluo klijent predstavlja prezentacijski sloj (konzolu),

poslužitelj nije “skladište podataka”o što je u ovim slučajevima zahtjev, a što odgovor?

Otvoreno računarstvo - Raspodijeljeni računalni sustavi23

Arhitektura usluge e-pošteo Mail klijent:

o slanje pošte, dohvaćanje pošte iz poštanskog sandučića

o prezentacijski, djelomično i podatkovni sloj (lokalna pohrana pošte)

o Mail poslužitelji: o podatkovni sloj prema klijentmao p2p organizacija prosljeđivanja

(MTAx ↔ MTAy)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi24

Arhitektura usluge FTPo Prijenos datoteka između dva računalao Komunikacijski kanal između klijenta i poslužitelja

za prijenos naredaba i odgovora (command stream)o Za svaki prijenos datoteke otvara se poseban

komunikacijski kanal (data stream)o aktvni mod: poslužitelj inicira vezuo pasivni mod: klijent inicira vezu

Otvoreno računarstvo - Raspodijeljeni računalni sustavi25

Window Systemo Prikaz korisničkog sučelja

o poslužitelj: grafčki prikaz, window managero klijent: korisničke aplikacije (konzola, GUI)o klijent šalju podatke X poslužitelju o izgledu sučelja

(sadržaju prozora u kojem se sučelje aplikacije prikazuje)o poslužitelj prikazuje sadržaj prozora, akcije korisnika

pretvara u događaje i šalje odgovarajućim klijentma

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacijao Klijent i poslužitelji

o Međuprocesna komunikacijao Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi27

Zahtjevi na resurse (I)o Međuovisnost arhitekture aplikacije, nužnih

resursa, troškova održavanja, robusnost, feksibilnost ...

o Vrste klijenata: tanki i debelio tanki – veći teret obrade na računalima poslužiteljima,

potrebna manja propusnost mrežeo debeli – manji teret na računalima poslužiteljima, većina

obrade na klijentma, potrebna veća propusnost mrežeo Omjer broja klijenata i poslužitelja

o vrlo veliki broj klijenata – rasterećenje poslužitelja delegiranjem dijela poslova klijentma?

Otvoreno računarstvo - Raspodijeljeni računalni sustavi28

Zahtjevi na resurse (II)o Troškovi sustava:

o tanki klijento potrebni manji resursi na strani korisnikao jefinija računalao centralizirani resursio manji troškovi održavanja

o debeli klijento potrebni veći resursi na strani korisnikao skuplja računalao raspodijeljeni resursio veći troškovi održavanja

Otvoreno računarstvo - Raspodijeljeni računalni sustavi29

Zahtjevi na resurse (III)o Brzina komunikacije:

o slojevi na istom računalu o vrlo brza komunikacija o potrebni veći resursi računala poslužiteljao smanjena robusnost sustava

o slojevi na različitm računalima o sporija komunikacijao manji pojedinačni resursi računala poslužiteljao povećana robusnost sustava

o Fleksibilnost:o više slojeva

o veća mogućnost raspodjele slojeva na više računala (raspodjela opterećenja)

o sporija komunikacija između slojeva

Otvoreno računarstvo - Raspodijeljeni računalni sustavi30

Računala klijentio Jedan korisniko Grafčko korisničko sučelje, U/I uređajio Samostalno ili spojeno na lokalnu mrežuo Izvođenje monolitnih aplikacija i klijenata

raspodijeljenih aplikacijao Podjela s obzirom na resurse:

o debeli, hibridni, tanki

Otvoreno računarstvo - Raspodijeljeni računalni sustavi31

Debeli klijentio Računala opće namjene (osobna računala, radne

stanice, ...)o diskovni podsustav za lokalnu pohranu podatakao relatvno velika lokalna snaga obrade podatakao neovisnost o poslužitelju i stalnoj mrežnoj povezanosto lokalno izvođenje monolitnih aplikacijao izvođenje raspodijeljenih aplikacija (prezentacijskog

sloja ili i prezentacijskog i sloja aplikacijske logike) zahtjeva mrežnu povezanost

o skupa u nabavi, skupa za održavanje, neiskorišteni resursi

Otvoreno računarstvo - Raspodijeljeni računalni sustavi32

Hibridni klijentio Računala bez lokalnog diskovnog podsustava

o moraju bit povezana s mrežnim datotečnim sustavomo ovise o stalnoj povezanost s poslužiteljemo snaga obrade ekvivalentna debelim klijentmao smanjeni troškovi održavanja, veća pouzdanost

Otvoreno računarstvo - Raspodijeljeni računalni sustavi33

Tanki klijentio Tanki klijent

o sučelje prema uslugama na poslužiteljuo ovisno o mrežnoj komunikacijio manja snaga obrade, nema diskovao klijentske aplikacije, Web preglednik ... o koncepcija terminala

o RemoteDesktopo X Windows

o jednostavno i jefino održavanjeo robusnost sustava

Otvoreno računarstvo - Raspodijeljeni računalni sustavi34

Tanki klijenti – déjà vu?o Povijest tankih klijenata

o tekstovni terminalio kasne 70-te, VT-52, VT-100o serijska veza s mainframe računalom

o grafčke radne staniceo rane 90-te, X Windows o povezane LAN-om s poslužiteljem

o pojam tankih klijenata iznjedrio marketngo mora zvučat kao nešto novo !

Otvoreno računarstvo - Raspodijeljeni računalni sustavi35

Tanki ili debeli klijenti?

Otvoreno računarstvo - Raspodijeljeni računalni sustavi36

Računalo poslužiteljo Domaćin jednom ili više programa poslužiteljao Stalno vezano na mrežu (Internet)o Poslužitelj opće namjene može bit i obično osobno

računalo, s operacijskim sustavom Windows ili Linux

Nestajanje stroge granice između klijenta i poslužitelja (usluge na Win XP)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi37

Namjenski poslužitelji (I)o Potrebna snaga obrade ovisna o aplikaciji

o najčešće nije kritčna; procesi većinom blokirani na čekanju završetka U/I operacija (npr. dohvat datoteke)

o Paralelizam bitniji od brzine slijednog izvođenjao bolje usporedno množit više matrica nego brzo jednuo ovo čini bitnu razliku u odnosu na osobna računala!

o Operacijski sustavi moraju podržavat o veliki broj procesa, učinkovito prebacivanje konteksta,

stabilnost sustava u slučaju pada jednog procesa ...

Otvoreno računarstvo - Raspodijeljeni računalni sustavi38

Namjenski poslužitelji (II)o Propusnost podataka

o brzina pristupa i dohvata informacija na diskovnom podsustavu (npr. SCSI), propusnost sabirnice i mrežnog sučelja, velika količina memorije, hijerarhijska organizacija memorije (razine priručne memorije)

o Pouzdanost sustavao specijalizirane izvedbe memorijskog podsustava (brzina,

detekcija grješaka, redundancija)o sklopovska i podatkovna redundancija (dvostruka

napajanja, RAID ...)o pouzdane mehaničke komponente (diskovi, hlađenje ...)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi39

Poslužitelji FER-a

Otvoreno računarstvo - Raspodijeljeni računalni sustavi40

Google platformao Poslovna tajna! Procjene:

o više od 450.000 poslužitelja (2004. g. PC s prosječno 80 GB diskom i 2-4 GB memorije)o najbolji omjer cijena/svojstva

o Linux, C++, Java, Pythono snaga za rad servera veća od 20 MW

o mjesečni račun za struju oko 2 M$ o poslužitelji raspodijeljeni po USA i Europio jedno od najvećih sjedišta u Portlandu

o dva nogometna igrališta,4-katni tornjevi za klimatzacijuo razlozi - pravi računarski :-)

o jefina struja i višak optčkih kablova iz razdoblja "dot-com"

http://en.wikipedia.org/wiki/Google_platform

Otvoreno računarstvo - Raspodijeljeni računalni sustavi41

Druga krajnost namjenskih poslužitelja o Rabbit2000 CPU

o 256KB Flash ROMo 128KB RAMo GPIOo 4 x ASCo 2 x SSCo RTCCo Ethernet kontroler

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacijao Klijent i poslužiteljio Međuprocesna komunikacija

o Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi43

Preduvjeti komunikacije dva procesao Dva procesa koja trebaju surađivat:

o “adrese” procesao kako se pronalaze?

o mehanizam komunikacijeo kako komuniciraju?

o komunikacijski kanalo putem čega komuniciraju?

o protokol komunikacijeo kako se sporazumijevaju?

Otvoreno računarstvo - Raspodijeljeni računalni sustavi44

Kolocirani procesio Izvođeni na istom računalu, pod istm operacijskim

sustavom, dostupni ist resursio Koriste se mehanizmi IPC operacijskog sustavao OS posrednik između procesa

Otvoreno računarstvo - Raspodijeljeni računalni sustavi45

Međuprocesna komunikacijao Mehanizmi međuprocesne komunikacije:

o jednosmjerni / dvosmjernio sinkroni / asinkroni

redovi poruka (message queues), cjevovodi (pipelines), dijeljena memorija (shared memory), semafori (semaphores), signali (signals), datoteke (fles), utčnice (sockets) ...

Otvoreno računarstvo - Raspodijeljeni računalni sustavi46

Raspodijeljeni procesio Dva osnovna pristupa:

o tradicionalni OS: o procesi “svjesni” raspodijeljenost

o raspodijeljeni OS: o privid jednog računala, o procesima raspodijeljenost skrivena mehanizmima OS-a

Otvoreno računarstvo - Raspodijeljeni računalni sustavi47

Mehanizmi mrežne komunikacijeo ISO/OSI referentni modelo U ovisnost o stvarnom protokolu:

o postojanje komunikacijskog slojao mjesto implementacije pojedinog

komunikacijskog sloja

Otvoreno računarstvo - Raspodijeljeni računalni sustavi48

Heterogenost platformao Komunicirajući procesi se mogu izvodit na različitm

platormamao Problemi mogući na svim razinama:

o složaj protokolao širina riječio poredak okteta (endianess)o kodiranje znakova, terminiranje retka o ...

o Network byte order – big endian

Otvoreno računarstvo - Raspodijeljeni računalni sustavi49

TCP/IP složaj protokola

o Osnova interoperabilnost na Internetuo dostupan na gotovo svim platormama

o Osnovna funkcionalnost jednostavno ostvarivao skalabilnost (od superračunala do mikrokontrolera)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi50

Struktura paketa TCP i IP

o Enkapsulacija slojeva unutar paketa o unutar payload dijela TCP i UDP paketa sadržaj

aplikacijskog protokola o unutar zaglavlja TCP i UDP paketa podaci o vratma

procesa pošiljatelja i primatelja (ports)o unutar payload dijela IP paketa smješten TCP ili UDP paketo unutar zaglavlja IP paketa podaci o adresama računala

pošiljatelja i primatelja (source, destnaton IP address)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi51

TCP i UDPo TCP – spojna veza

o ispravan redoslijed paketao ispravljanje pogrješaka u prijenosu (gubitak,

dupliciranje)o možemo promatrat kao čvrst komunikacijski kanal –

dvosmjerni tok (stream) kroz koji se razmjenjuju podacio UDP – bezspojna veza

o nema mehanizma ispravljanja pogrješakao komunikacija na razini razmjene pojedinačnih paketa

(datagrama), ne dvosmjernog toka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi52

TCP/IP međuprocesna komunikacijao Klijent i poslužitelj procesi

o klijent inicira vezu (TCP) ili šalje datagram (UDP) – mora znat adresu procesa poslužitelja (IP adresa, vrata)

o poslužitelj osluškuje na određenim vratma (port), prihvaća vezu (TCP) ili datagram (UDP)

o jezik komunikacije - aplikacijski protokol

Otvoreno računarstvo - Raspodijeljeni računalni sustavi53

Utičnice

o Utčnica (socket)o programska apstrakcija krajnje točke komunikacije

(communicaton endpoint) korištenjem TCP/IPo jedinstveno određena IP adresom, protokolom (TCP,

UDP, ...) i brojem vratao prema flozofji UNIX-a, utčnice su sučelja prema

dvosmjernom cjevovodu (cjevovod = komunikacijski kanal)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi54

Spojni komunikacijski kanal (TCP!)

o Pisanje u cjevovodo poslani podaci pohranjuju se u odlazni međuspremniko iz međuspremnika se šalju na drugu komunikacijsku

točkuo na prijamnoj strani čuvaju se u dolaznom

međuspremnikuo Čitanje iz cjevovoda

o čitaju se samo trenutno rasploživi podaci u međuspremniku!

o problem fragmentacije podataka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi55

Klijent i poslužitelj kao uloge

o Proces je klijent ili poslužitelj samo u kontekstu promatrane vezeo stalne uloge klijenta ili poslužitelja (npr. Web)o proces može istovremeno imat obje uloge (npr. DNS:

rekurzivno razlučivanje adrese, MTA prosljeđivanje pošte)o proces može istovremeno imat istu ulogu prema više

drugih procesa (npr. Web preglednik je višestruki klijent)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi56

Povezanost životnog vijekao Život klijenta i poslužitelja većinom neovisni

o klijent kao korisnička sučelja prema uslugama, u pravilu kratkog životnog vijeka

o poslužitelji dugog životnog vijeka, vezani uz rad/dostupnost računala poslužitelja

o Posebni slučajavi uske povezanost životnog vijeka:o npr. X Window System - klijent ne mogu postojat bez

aktvnog poslužitelja

Otvoreno računarstvo - Raspodijeljeni računalni sustavi57

Trajnost vezeo Trajnost veze i kanala ovisna o konkretnoj primjeni:

o bez uspostave veze (UDP): razmjena malih količina podataka, npr. DNS upit

o kratkotrajne veze: jedna transakcija (HTTP 1.0, FTP data)o produljene veze: više transakcija u kontekstu jedne veze

(HTTP 1.1, SMTP, POP3, IMAP)o duge veze: rad klijenta ovisan o postojanju veze (npr.

telnet, X11, RTP) o Kompromis između cijene uspostave veze, količine

prenošenih podataka i održavanja nekorištene veze

Otvoreno računarstvo - Raspodijeljeni računalni sustavi58

Veze na strani poslužiteljao Podjela po broju i načinu održavanja prihvaćenih

veza od strane poslužiteljao poslužitelj prihvaća samo jednu vezuo poslužitelj prihvaća više veza

o jedna veza po procesuo jedna veza po nito asinkrona komunikacija s više klijenatao multpleksiranje komunikacije s klijentma

Otvoreno računarstvo - Raspodijeljeni računalni sustavi59

Jedna veza istovremeno

o Jedan proces poslužitelj prihvaća vezuo može istovremeno održavat vezu samo s jednim klijentomo novi zahtjevi pristgli tjekom trajanja veze stavljaju se u red

čekanja ili odmah odbijajuo pogodno za kratkotrajne veze, manji broj zahtjeva za

vezom pravilno vremenski raspoređen

Otvoreno računarstvo - Raspodijeljeni računalni sustavi60

Jedan proces po vezi

o Prijamni proces poslužiteljo (0) čeka na uspostavu vezeo (1) stvara kopiju procesao (2) preusmjerava vezu na kopijuo (0) prijamni proces ostaje slobodan za prihvat nove vezeo Nakon zatvaranja veze s klijentom kopija prestaje s radomo pogodno za duže veze, veći broj zahtjeva, neravnomjerno

raspoređenih u vremenu

Otvoreno računarstvo - Raspodijeljeni računalni sustavi61

Utjecaj broja procesa na performanse

o Utjecaj na procesorsko vrijeme:o stvaranje procesa (jednokratno)o prebacivanje konteksta (trajno)

o Utjecaj na memoriju:o kopija podataka procesa (trajno)

o Zagušenje računala poslužitelja zbog:o prebacivanja kontekstao korištenja virtualne memorije o rezultra nemogućnošću pristupa klijenata poslužitelju

F E R W e b p e r f o r m a n s e

0

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

6 0 0

7 0 0

8 0 0

9 0 0

1 0 0 0

1 2 3 4 5 6 7 8 9 1 0 1 1

b r o j i s t o v r e m e n i h k l i j e n a t a

traj

anje

tra

nsa

kcij

e (m

s)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi62

Utjecaj broja klijenata na performanse o Više veza od strane jednog klijenta:

o paralelizam obrade zahtjeva, bolje performanse? KRIVO!

o problem sporog učenja TCP veze (sliding window)o problem opterećenja mrežeo problem broja procesa na računalu poslužiteljuo problem potpunog zastoja u nedostatku veza/zagušenjuo fair odnos prema drugim klijentma

o Korištenje politke: jedan klijent – jedna vezao paralelizam obrade na razini aplikacijskog protokola, ne

veza

Otvoreno računarstvo - Raspodijeljeni računalni sustavi63

Bazen procesa

o Bazen procesa (process pool)o određen broj procesa poslužitelja stalno pokrenut,

neaktvni čekaju “u bazenu”o troše memorijski prostoro ne troše vrijeme procesora

o dolaskom zahtjeva za vezu prijamni proces “dohvaća” proces poslužitelj iz bazena i preusmjerava vezuo kompromis između stalno pokrenuth i pokretanja novih

procesao po završetku veze proces se vraća u bazen

Otvoreno računarstvo - Raspodijeljeni računalni sustavi64

Jedna nit po vezio Višeprocesnost je karakteristka UNIX-ao Windows, Java – paralelizam izvođenja temeljen

većinom na nitma (threads)o nit “lakše” od procesa (memorija, kontekst ...)o složenija implementacija zbog dijeljenja istog konteksta

izvršavanja (memorije, funkcija ...)o veća osjetljivost na pogrješke (jedna nit ruši čitav

proces)o Problem zagušenja poslužitelja velikim brojem nito Bazen nit (thread pool)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi65

Asinkrona komunikacija s klijentimao Pretplate na komunikacijske događaje

o resurs na čije događaje se pretplaćujeo događaj na koji se pretplaćujeo callback funkcija koja se poziva pojavom događaja

o signali – mehanizam međuprocesne komunikacijeo Asinkronost:

o proces/program se izvršava sinkronoo izvršavanje callback funkcija asinkrono s obzirom na

glavni programo Slično prekidnim potprogramima (FRISC, ARM ...)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi66

Multipleksirana komunikacijao Jedan proces/nit prihvaća i opslužuje više vezao Multpleksiranje komunikacije poslužitelja i više

aktvnih klijenata:1.osluškuju se sve veze istovremeno

o blokirajuće ili neblokirajuće osluškivanje2.detektra se aktvnost na nekoj od veza

● podaci pristgli od klijenta● međuspremnik spreman za prihvat podataka● zahtjev za uspostavom nove veze

3.poslužuje se aktvna veza ili prihvaća nova veza

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacijao Klijent i poslužiteljio Međuprocesna komunikacijao Aplikacijski protokoli

o Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi68

Sustav elektroničke pošte (e-mail)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi69

Primjer konverzacije - SMTP

C: <client connects to service port 25>C: HELO snark.thyrsus.com sending host identifies selfS: 250 OK Hello snark, glad to meet you receiver acknowledgesC: MAIL FROM: <esr@thyrsus.com> identify sending userS: 250 <esr@thyrsus.com>... Sender ok receiver acknowledgesC: RCPT TO: cor@cpmy.com identify target userS: 250 root... Recipient ok receiver acknowledgesC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Scratch called. He wants to shareC: a room with us at Balticon.C: . end of multiline sendS: 250 WAA01865 Message accepted for deliveryC: QUIT sender signs offS: 221 cpmy.com closing connection receiver disconnectsC: <client hangs up>

Otvoreno računarstvo - Raspodijeljeni računalni sustavi70

Primjer konverzacije - POP3C: <client connects to service port 110> S: +OK POP3 server ready <1896.6971@mailgate.dobbs.org>C: USER bobS: +OK bobC: PASS redqueenS: +OK bob's maildrop has 2 messages (320 octets)C: STATS: +OK 2 320C: LISTS: +OK 2 messages (320 octets)S: 1 120S: 2 200S: .C: RETR 1S: +OK 120 octetsS: <the POP3 server sends the text of message 1>S: .C: DELE 1S: +OK message 1 deletedC: RETR 2S: +OK 200 octetsS: <the POP3 server sends the text of message 2>S: .C: DELE 2S: +OK message 2 deletedC: QUITS: +OK dewey POP3 server signing off (maildrop empty)C: <client hangs up>

Otvoreno računarstvo - Raspodijeljeni računalni sustavi71

Primjer konverzacije - IMAP C: <client connects to service port 143>S: * OK example.com IMAP4rev1 v12.264 server readyC: A0001 USER "frobozz" "xyzzy"S: * OK User frobozz authenticatedC: A0002 SELECT INBOXS: * 1 EXISTSS: * 1 RECENTS: * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)S: * OK [UNSEEN 1] first unseen message in /var/spool/mail/esrS: A0002 OK [READ-WRITE] SELECT completedC: A0003 FETCH 1 RFC822.SIZE S: * 1 FETCH (RFC822.SIZE 2545)S: A0003 OK FETCH completedC: A0004 FETCH 1 BODY[HEADER] S: * 1 FETCH (RFC822.HEADER {1425}<server sends 1425 octets of message payload>S: )S: A0004 OK FETCH completedC: A0005 FETCH 1 BODY[TEXT] S: * 1 FETCH (BODY[TEXT] {1120}<server sends 1120 octets of message payload>S: )S: * 1 FETCH (FLAGS (\Recent \Seen))S: A0005 OK FETCH completedC: A0006 LOGOUTS: * BYE example.com IMAP4rev1 server terminating connectionS: A0006 OK LOGOUT completedC: <client hangs up>

Otvoreno računarstvo - Raspodijeljeni računalni sustavi72

Aplikacijski protokolio Jezik sporazumijevanja komunicirajućih enttetao Binarni ili tekstualni format

o binarni: kompaktniji, manje opterećenje mreže, manje opterećenje računala, nečitak za čovjeka

o tekst: dulji, veće opterećenje mreže i računala, lakše praćenje i ispravljanje pogrješaka

o Uloge u protokolu:o svaki od entteta igra ulogu defniranu protokolomo uloga određuje ponašanje tjekom konverzacije

Otvoreno računarstvo - Raspodijeljeni računalni sustavi73

Aplikacijski protokoli i nespojna vezao Primjeri korištenja nespojne veze (UDP)

o jednostavni protokoli temeljeni na "zahtjev-odgovor" o podaci stanu unutar jednog UDP paketa (npr. DNS)

o bitna brzina prijenosa (npr. NFS)o aplikacija se brine o ispravnost prenošenih podataka

o tokovi podataka (streaming)o audio, video

o višesmjerno odašiljanjeo broadcast, multcast podataka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi74

Aplikacijski protokoli i spojna vezao Primjeri korištenja spojne veze (TCP)

o pouzdani prijenos veće količine podataka tokovimao npr. FTP, HTTP

o dugotrajnije vezeo npr. FTP command, telnet

o složenije konverzacijeo bitan redoslijed poruka o npr. SMTP, IMAP

o najčešće korištena u ostvarenju informacijskih usluga o naš fokus razmatranja na ovoj vrst protokola

Otvoreno računarstvo - Raspodijeljeni računalni sustavi75

Protokoli i konverzacije

o Konverzacija je instanca protokolao ... kao što je objekt instanca razredao procesi učesnici konverzacije razmjenjuju poruke u

skladu s korištenim protokolomo konverzacija se odvija unutar komunikacijske veze

o Praćenje stanja konverzacije korištenjem DKAo deterministčki konačni automat

Otvoreno računarstvo - Raspodijeljeni računalni sustavi76

Jednostavni protokoli

o Primjeri jednostavnih protokolao jednosmjeran tok podatakao razmjena zahtjeva i odgovora (request-response)

o Jednostavno praćenje stanja pojedine konverzacijeo nema potrebe za eksplicitnim praćenjem stanja (DKA)

Računala i procesi - Raspodijeljeni računalni sustavi77

Složeni protokoli (I)

o U složenim protokolima:o mora se poštovat

redoslijed konverzacijskih akcija defniran komunikacijskim protokolom

o sljedeće akcije ovise o stanju konverzacije, također mogu ovisit i o stanju usluge

Pojednostavljen DKA protokola TCP

Računala i procesi - Raspodijeljeni računalni sustavi78

Složeni protokoli (II)o Prisjećanje na DKA (Uvod u teoriju računarstva)

o Mooreov, Mealyjev konačni automat - (Σ, Γ, S, s0, δ, ω)

o razlika u trenutku stvaranja izlaznog simbola (funkcija ω)o Defniranje prokola

o DKA na strani klijenta (DKAc) i na strani poslužitelja (DKAs)

o Σc = Γs, Σs = Γco trenutno stanje konverzacije određeno stanjem i na

strani klijenta (DKAc) i na strani poslužitelja (DKAs)

Računala i procesi - Raspodijeljeni računalni sustavi79

Slijedne i paralelne konverzacijeo Slijedne konverzacije

o samo jedna istovremeno aktvna konverzacija po vezi

o Paralelne konverzacijeo može bit aktvno više konverzacija u

kontekstu jedne vezeo kojoj konverzaciji akcija pripada?

o identfkatori konverzacije!o zaseban (par) DKA po konverzaciji za

praćenje njena stanja

Otvoreno računarstvo - Raspodijeljeni računalni sustavi80

Simetrični i asimetrični protokolio Uloga u konverzaciji (klijent ili poslužitelj)

o dodijeljena u trenutku uspostave vezeo npr. e-mail klijent dobiva ulogu klijenta u komunikaciji s

poslužiteljem korištenjem POP3 protokolao Asimetrični protokoli:

o uloga nepromjenljiva tjekom trajanja veze (npr. HTTP)o u nekim protokolima enttet mogu zamijenit uloge

(SMTP: promjena smjera prosljeđivanja poruka)o Simetrični protokoli

o uloga određena na razini konverzacije, ne veze (p2p)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi81

Strategije prijenosa podatakao Dva ključna pitanja:

o tko posjeduje podatke?o tko ima inicijatvu kod njihova prenošenja?

o Mogući odgovori:o korisnik ili poslužiteljo opet korisnik ili poslužitelj

Otvoreno računarstvo - Raspodijeljeni računalni sustavi82

Povlačenje podataka

o Povlačenje informacije (pull):o zahtjev za podacima enttetu koji ih posjedujeo najčešće klijent zahtjeva podatke od poslužiteljao tpičan primjer: request-response protokoli (HTTP)o priroda veze: većinom povremena (trajanje dohvata)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi83

Guranje podataka

o Guranje informacije (push):o guranje podataka od stane klijenta

o npr. slanje i prosljeđivanje e-pošte, messenger-i, p2p ...o veza većinom privremena

o guranje podataka od strane poslužiteljao npr. FTP, HTTP push ...o veza je trajnija (problem kod velikog broja klijenata!)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi84

Prozivanjeo Simuliranje guranja podataka prozivanjem (polling)

o klijent periodički uspostavlja vezu s poslužiteljem i provjerava dostupnost podataka

o podaci se dohvaćaju povlačenjemo nema trajne veze kao kod “čistog” guranjao značajno opterećenje mreže i poslužitelja kod velikog

broja klijenatao primjeri:

o guranje e-pošte na klijenta (POP, IMAP), RSS feeds

Otvoreno računarstvo - Raspodijeljeni računalni sustavi85

Zatvaranje vezeo Eksplicitno zatvaranje veze

o protokol sadrži naredbe za zatvaranje vezeo npr. IMAP

o klijent šalje LOGOUT, poslužitelj vraća BYE i LOGOUT, klijent zatvara vezu

o Implicitno zatvaranje vezeo slanjem zadnje poruke u konverzaciji, zadnjeg okteta

prenošenih podatakao npr. zatvaranje FTP data veze nakon prenesenih svih podataka

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacijao Klijent i poslužiteljio Međuprocesna komunikacijao Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Otvoreno računarstvo - Raspodijeljeni računalni sustavi87

Mehanizmi protokolao RFC 3117 - On the Design of Applicaton Protocols:

o uokvirenje poruka (framing)o kodiranje sadržaja (encoding)o izvještavanje o stanju (reportng)o asinkronost konverzacija (asynchrony)o vjerodostojnost (authentcaton)o zaštta podataka (privacy)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi88

Uokvirenje porukao Jednostavna detekcija kraja jednorednih poruka

o npr. REQUEST index.html<CR><LF>o Problem detekcije kraja duljih poruka

o npr. prenošene binarne datoteke ili duljeg teksta o Tri osnovne metode uokvirenja poruka:

o umetanjem okteta (octet stufng)o brojanjem okteta (octet countng)o uništavanjem veze (connecton blastng)

Otvoreno računarstvo - Raspodijeljeni računalni sustavi89

Uokvirenje umetanjem okteta

o Primjer prenošenja sadržaja e-pošte u SMTPo poruka se terminira retkom u kojem se nalazi samo točkao ako je takav redak valjan sadržaj poruke, prije slanja na

početak retka dodaje se još jedna točka (po prijamu briše)o prednost

o u trenutku početka prenošenja poruke pošiljatelju ne mora bit poznat čitav njen sadržaj

o manao sporo, dodatna obrada poruke i na pošiljatelju i na primatelju,

nije pogodno za binarne podatke

C: DATAS: 354 Enter mail, end with "." on a line by itselfC: Scratch called. He wants to shareC: a room with us at Balticon.C: . S: 250 WAA01865 Message accepted for delivery

C: DATAS: 354 Enter mail, end with "." on a line by itselfC: Scratch called. He wants to shareC: a room with us at Balticon.C: . S: 250 WAA01865 Message accepted for delivery

Otvoreno računarstvo - Raspodijeljeni računalni sustavi90

Uokvirenje brojanjem okteta

o Primjer dohvata e-pošte IMAP klijentom o prije početka slanja poruke pošiljatelj primatelju šalje

duljinu poruke u oktetmao prednost

o brzina, minimalna obrada kod slanja i primanjao mana

o čitava poruka mora bit raspoloživa prije slanja (kako bi se odredila njena duljina)

...C: A0004 FETCH 1 BODY[HEADER] S: * 1 FETCH (RFC822.HEADER {1425}<server sends 1425 octets of message payload>S: )S: A0004 OK FETCH completedC: A0005 FETCH 1 BODY[TEXT]...

...C: A0004 FETCH 1 BODY[HEADER] S: * 1 FETCH (RFC822.HEADER {1425}<server sends 1425 octets of message payload>S: )S: A0004 OK FETCH completedC: A0005 FETCH 1 BODY[TEXT]...

Otvoreno računarstvo - Raspodijeljeni računalni sustavi91

Uokvirenje uništavanjem vezeo Stvaranje nove veze za prijenos jedne poruke

o tpičan primjer korištenja u protokolu FTP (data veza)o potrebno vrijeme za prenošenje podataka o

parametrima nove veze (host, port), za otvaranje nove veze ...

o pogodno za dulje (binarne) datoteke, za manje datoteke vrlo neučinkovito

Otvoreno računarstvo - Raspodijeljeni računalni sustavi92

Kodiranje sadržaja poruka

o Poruka se sastoji od zaglavlja i tjela (MIME)o Zaglavlje: jedan ili više redaka s atributma (opis

prenošenih podataka) o <ime>=<vrijednost><CR><LF>o prazan redak terminira zaglavlje

o Tijelo poruke sadrži podatkeo u “sirovom” obliku, ilio kodirane prije transporta, dekodirane nakon transporta

o Base64, ...

Otvoreno računarstvo - Raspodijeljeni računalni sustavi93

Reprezentacija stanja

o Mehanizam prenošenja rezultata naredbe i stanja sustava na udaljenoj strani (većinom poslužitelju):

o uspješno izvedene naredbeo trajne ili privremene grješke o ostalih stanja konverzacije

o brojke namijenjene programu, tekst čovjeku

...C: RCPT TO: mario.zagar@fer.hr identify target userS: 250 root... Recipient ok receiver acknowledgesC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Pozdrav svim studenticama i studentimaC: na predmetu Otvoreno računarstvo.C: . end of multiline sendS: 250 WAA01865 Message accepted for deliveryC: QUIT sender signs offS: 221 fer.hr closing connection receiver disconnectsC: <client hangs up>

...C: RCPT TO: mario.zagar@fer.hr identify target userS: 250 root... Recipient ok receiver acknowledgesC: DATAS: 354 Enter mail, end with "." on a line by itselfC: Pozdrav svim studenticama i studentimaC: na predmetu Otvoreno računarstvo.C: . end of multiline sendS: 250 WAA01865 Message accepted for deliveryC: QUIT sender signs offS: 221 fer.hr closing connection receiver disconnectsC: <client hangs up>

Otvoreno računarstvo - Raspodijeljeni računalni sustavi94

Asinkronosto Način obrade naredaba unutar jedne konverzacije:

o slijedno: ne može se zaprimit nova naredba dok izvođenje prethodne nije završenoo jednostavna izvedba klijenta i poslužiteljao neučinkovito – vrijeme između izvođenja dvije konverzacije

o protočna struktura naredaba: poslužitelj prihvaća naredbe i pohranjuje ih u FIFO strukturu, izvodi slijednoo nema gubitka vremena kod čekanja nove naredbe od klijentao zahtjeva paralelizam izvršavanja u izvedbi poslužitelja

o paralelno izvršavanje: naredbe se prihvaćaju u FIFO i paralelno izvršavaju (u ovisnost o broju raspoloživih nit)o za jednostavne konverzacije (request-response)o složena izvedba i na klijentu i na poslužiteljuo problemi fair korištenja veze (kontrola toka, segmentacija poruka),

izgladnjivanje, potpuni zastoj

Otvoreno računarstvo - Raspodijeljeni računalni sustavi95

Sigurnosni aspektio Vjerodostojnost

o provjera identteta korisnika ili procesa u komunikacijio Zaštta podataka

o zaštta od prisluškivanja i izmjene prenošenih podataka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi96

Stanja uslugeo Usluge bez očuvanja stanja (stateless)

o svaka akcija neovisna o prethodnim akcijamao jednostavne usluge, request-response protokoli

o npr. osnovna funkcionalnost web poslužiteljao Usluge s očuvanjem stanja (stateful)

o rezultat akcije (i samo odvijanje konverzacije) ovisi o prethodnim akcijama

Otvoreno računarstvo - Raspodijeljeni računalni sustavi97

Stanja usluge – kontekst stanjao Kontekst očuvanja stanja:

o kontekst vezeo npr. FTP – radno kazalo na udaljenom računalu

o kontekst klijentao npr. stanje sandučića e-pošte korisnika

o globalni konteksto npr. sadržaj tablice baze podataka

Otvoreno računarstvo - Raspodijeljeni računalni sustavi

Pitanja?

Recommended