98
OTVORENO RA^UNARSTVO RASPODIJELJENI RA^UNALNI SUSTAVI MARIO @AGAR

OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

  • Upload
    voquynh

  • View
    224

  • Download
    3

Embed Size (px)

Citation preview

Page 1: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

OTVORENO RA^UNARSTVO RASPODIJELJENI RA^UNALNI SUSTAVI

MARIO @AGAR

Page 2: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvoRaspodijeljeni računalni sustavi

Mario Žagar

Page 3: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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!

Page 4: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Raspodijeljeni računalni sustavio Slojevita arhitektura

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

Page 5: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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”

Page 6: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 7: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 8: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 9: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 10: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Raspodijeljeni računalni sustavio Slojevita arhitekturao Arhitekture raspodijeljenih aplikacija

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

Page 11: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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 ...)

Page 12: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 13: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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, ...

Page 14: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 15: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 16: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 17: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 18: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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!

Page 19: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 20: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 21: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 22: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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?

Page 23: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 24: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 25: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 26: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

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

Page 27: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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?

Page 28: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 29: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 30: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 31: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 32: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 33: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 34: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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 !

Page 35: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvo - Raspodijeljeni računalni sustavi35

Tanki ili debeli klijenti?

Page 36: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 37: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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 ...

Page 38: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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 ...)

Page 39: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvo - Raspodijeljeni računalni sustavi39

Poslužitelji FER-a

Page 40: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 41: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 42: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

o Aplikacijski protokolio Mehanizmi protokola i stanja usluga

Page 43: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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?

Page 44: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 45: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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) ...

Page 46: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 47: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 48: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 49: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 50: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 51: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 52: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 53: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 54: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 55: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 56: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 57: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 58: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 59: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 60: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 61: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 62: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 63: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 64: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 65: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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 ...)

Page 66: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 67: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

o Mehanizmi protokola i stanja usluga

Page 68: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvo - Raspodijeljeni računalni sustavi68

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

Page 69: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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: <[email protected]> identify sending userS: 250 <[email protected]>... Sender ok receiver acknowledgesC: RCPT TO: [email protected] 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>

Page 70: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvo - Raspodijeljeni računalni sustavi70

Primjer konverzacije - POP3C: <client connects to service port 110> S: +OK POP3 server ready <[email protected]>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>

Page 71: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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>

Page 72: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 73: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 74: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 75: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 76: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 77: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 78: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 79: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 80: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 81: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 82: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 83: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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!)

Page 84: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 85: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 86: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 87: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 88: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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)

Page 89: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 90: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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]...

Page 91: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 92: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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, ...

Page 93: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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: [email protected] 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: [email protected] 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>

Page 94: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 95: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 96: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 97: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

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

Page 98: OTVORENO RA^UNARSTVO - fer.hr · PDF file5 Otvoreno računarstvo - Raspodijeljeni računalni sustavi Slojevita arhitektura o Element slojevitog modela: o slojevi o razine apstrakcije,

Otvoreno računarstvo - Raspodijeljeni računalni sustavi

Pitanja?