mrežna komunikacija - ieee.hr fileheterogenost na razinama: o komunikacijskih mreža o računalnog...
TRANSCRIPT
Otvoreno računarstvo - Raspodijeljeni računalni sustavi3
Mrežna komunikacija
o Komunikacija između procesao lociranat proceseo ostvarit komunikacijski kanalo koristt zajednički jezik komunikacije
o Viša razina apstrakcije:o procesi -> programi -> sustavi ...o karakteristke raspodijeljenih sustavao arhitektura raspodijeljenih aplikacija
Raspodijeljeni računalni sustavio Raspodijeljeni sustavio Arhitekture raspodijeljenih aplikacijao Arhitekturni obrascio Aplikacijski protokoli
Otvoreno računarstvo - Raspodijeljeni računalni sustavi5
Raspodijeljeni sustavi
o Sustavi u kojem programske i sklopovske komponente umreženih računala komuniciraju i međusobno usklađuju aktvnost isključivo razmjenom poruka (Coulouris i dr., 2012)
o Sustav u kojem kvar računala za koje uopće ne znate da postoji može vaše računalo učinit neupotrebljivim (L. Lamport, ?)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi6
Osnovni izazovio Osnovni izazovi raspodijeljenih sustava:
o paralelizam izvođenja elemenata sustava (nužna koordinacija)
o nepostojanje globalnog sata (koordinacija isključivo porukama)
o neovisnost grešaka (mjesto greške, detekcija, oporavak)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi7
Zašto raspodijeljeni sustavi?o Inicijalna motvacija:
o pristup udaljenim resursima (informacijama, uslugama ...) o kolaboracija
o Novi trendovi:o nove tehnologije mrežne komunikacije (mobilnost, mreže
kratkog dosega)o sveprisutnost računalao multmedijske uslugeo raspodijeljeni sustavi kao uslugeo ...
Otvoreno računarstvo - Raspodijeljeni računalni sustavi8
Domene korištenja rasp. sustavao informacijsko društvo (web ...)o zdravstvena skrbo edukacijao zabavao fnancije i e-trgovinao logistka i transporto znanosto okoliš
o ...
Otvoreno računarstvo - Raspodijeljeni računalni sustavi9
Primjeri raspodijeljenih sustavao Webo MMOG (WoW, Eve, ...)o e-zdravstvoo informacijski sustavi državnih tjela i službio CTBTOo informacijski sustavi banakao Facebooko Googleo Amazono nadgledanje staništa zaštćenih ptcao ...
Otvoreno računarstvo - Raspodijeljeni računalni sustavi10
Svojstva raspodijeljenih sustavao heterogenost komponento otvorenosto sigurnosto skalabilnosto pogreške u raduo paralelizamo transparentnosto kvaliteta usluga
Otvoreno računarstvo - Raspodijeljeni računalni sustavi11
Heterogenost komponento Suradnja komponent raspodijeljenog sustava unatoč
heterogenost na razinama:o komunikacijskih mreža
o računalnog sklopovlja
o operacijskih sustava
o programskih jezika korištenih u izgradnji aplikacija
o implementacija programskih komponent sustava
o Metode skrivanja heterogenosto komunikacijski protokoli
o middleware
o Postelov zakon (princip robusnost):
"budi konzervatvan u onome što činiš, budi liberalan u onome što prihvaćaš od drugih"
Otvoreno računarstvo - Raspodijeljeni računalni sustavi12
Otvorenost raspodijeljenih sustavao Otvorenost raspodijeljenih sustava određena mogućnošću
dodavanja novih usluga i njihovim jednostavnim korištenjem
o Otvoreni raspodijeljeni sustavi se temelje na jedinstvenim komunikacijskim mehanizmima i objavljenim sučeljima za pristup dijeljenim resursimao normirani komunikacijski protokoli
o javno objavljena ili normirana sučelja
o Otvoreni raspodijeljeni sustavi su građeni od heterogenih elemenata, ali svaki od th elemenata mora bit sukladan korištenim normama
o Primjer zatvorenost: Skype!
Otvoreno računarstvo - Raspodijeljeni računalni sustavi13
Sigurnosto Povjerljivost
o Integritet
o Raspoloživost
o Autentkacija/autorizacija
Otvoreno računarstvo - Raspodijeljeni računalni sustavi14
Skalabilnosto Sustav je skalabilan ako ostaje učinkovit bez obzira na značajno
povećanje posluživanih resursa i/ili broja posluživanja (korisnika resursa)
o Skalabilnost s obzirom na cijenu posluživanjao nadogradnja opreme, za praćenje povećanja zahtjeva za resursima
o refektra povećanje cijene posluživanja resursa s obzirom na povećanje broja korisnika, prihvatljivo <= O(n)
o Skalabilnost s obzirom na performanseo Smanjenje performansi posluživanja uz povećanje posluživanih resursa i
istu opremu, prihvatljivo <= O(log n)
o Ograničenost resursa (konačna)o primjer Ipv4 adrese
o Izbjegavanje uvođenja uskih grla sustavao raspodijeljena umjesto centraliziranih rješenja
Otvoreno računarstvo - Raspodijeljeni računalni sustavi15
Pogreške u raduo Pogreške u raspodijeljenom sustavu su parcijalneo Najčešće vrste grešaka
o u procesima (komponentama) sustava
o u mrežnoj komunikaciji
o Problematka pogrešaka u raspodijeljenom sustavuo detekcija pogreške (mjesto, uzrok)?
o posljedice pogreške, poznavanje stanje sustava?
o toleriranje pogrešaka
o oporavak od pogreške
o Idempotentne operacije
Otvoreno računarstvo - Raspodijeljeni računalni sustavi16
Paralelizamo Komponente raspodijeljenog sustava se izvršavaju paralelno
o zahtjevi za resursom mogu prispijet od više klijenata istovremeno
o problem usklađivanja pristupa resursu – sinkronizacija akcija
Otvoreno računarstvo - Raspodijeljeni računalni sustavi17
Transparentnost (I)o Transparentnost s obzirom na
o korisnike sustavao programere
o Transparentnost pristupao jednak skup operacija za pristup lokalnim i udaljenim resursima
o Transparentnost lokacijeo skrivena prava lokacija resursa (URL vs IP adresa)o transparentnost pristupa i lokacije čine mrežnu transparentnost
o Transparentnost paralelizmao očuvanje konzistencije dijeljenog resursa
o Transprentnost pogrešakao skrivanje postupka oporavka
Otvoreno računarstvo - Raspodijeljeni računalni sustavi18
Transparentnost (II)o Transparentnost mobilnost
o promjena lokacije resursa ne utječe na način pristupa resursu
o Transparentnost performansio prilagodba novom stanju (npr. broju korisnika) zbog očuvanja
performansi sustava
o Transparentnost skalabilnosto proširenje sustava moguće bez utjecaja na strukturu sustava, postojeće
aplikacije i korištene algoritme
Raspodijeljeni računalni sustavio Raspodijeljeni sustavio Arhitekture raspodijeljenih aplikacijao Arhitekturni obrascio Aplikacijski protokoli
Otvoreno računarstvo - Raspodijeljeni računalni sustavi20
Arhitektura raspodijeljenih sustava
o Struktura sustava s obzirom na gradivne komponente sustava i njihove suodnose
o Ključna pitanja:o enttet raspodijeljenog sustavao komunikacijska paradigmao uloge i odgovornost enttetao preslikavanje entteta na fzičke komponente sustava
Otvoreno računarstvo - Raspodijeljeni računalni sustavi21
Enttet raspodijeljenog sustava
o Perspektva sustava: procesi (nit), čvorovi
o Perspektva programa:o objekto komponenteo web usluge
Otvoreno računarstvo - Raspodijeljeni računalni sustavi22
Komunikacijske paradigmeo Izravna komunikacija
o međuprocesna komunkacija i udaljeni pozivi
o jedan enttet korisnik i jedan enttet pružatelj usluge – odnos (1:1)
o korisnik svjestan pružatelja, najčešće i pružatelj svjestan trenutnog korisnika usluge – prostorna sprega
o oba entteta aktvni tjekom komunikacije – vremenska sprega
o Neizravna komunikacijao korištenje trećeg (posredničkog entteta) za razdvajanje korisnika i
pružatelja usluge
o odnosi 1:n, n:1, n:m
o ne mora postojat prostorna sprega
o ne mora postojat vremenska sprega
Otvoreno računarstvo - Raspodijeljeni računalni sustavi23
Međuprocesna komunikacija
o Komunikacija niske razineo primitve operacijskog sustava za slanje porukao utčnice (Berkeley sockets API)o višesmjerno odašiljanje (eng. multcast)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi24
Paradigma udaljenih pozivao usluga (eng. service) – upravlja skupom povezanih resursa,
omogućava dostup resursima korisnicima i aplikacijamao usluga ispisao usluga pristupa udaljenom datotečnom sustavuo usluga dohvata stranica Webao aplikacijski specifčna usluga ...
o pristup funkcionalnost usluge putem sučelja (eng. interface) – skupa čvrsto defniranih operacijao read, writeo get, put, post, delete, head, ...
o udaljeni poziv (eng. remote invocaton) – poziv operacije nad resursom
o postoji vremenska i prostorna sprega klijenta i poslužitelja
o vrste udaljenih poziva: zahtjev-odgovor, poziv udaljenih procedura, pozivi udaljenih metoda
Otvoreno računarstvo - Raspodijeljeni računalni sustavi25
Zahtjev-odgovor
o protokol zahtjev - odgovoro izveden "nad" komunikacijskim kanalom za slanje poruka
(utčnice ...)o jednostavan, učinkovit, ali primitvan mehanizamo zahtjev sadrži pozivanu operaciju i argumente zatjevao odgovor sadrži rezultate operacije nad resursom
Otvoreno računarstvo - Raspodijeljeni računalni sustavi26
Poziv udaljene procedure (I)o Poslužitelj nudi sučelje
prema resursima u oblikuskupa procedura
o Jezik za opis sučeljao ime, argument, pov. vrijednost
o prevodi se u kôd za stranu klijentai poslužitelja
o Na strani klijenta:o klijent poziva procedure lokalno, unutar svog procesa
o lokalna RPC infrastruktura brine o lociranju poslužitelja i sučelja, enkodira argumente poziva i prosljeđuje pozvi na stranu poslužitelja
o RPC infrastruktura na strani poslužitelja zaprima zahtjev za pozivom procedure, dekodira argumente poziva, poziva implementaciju procedure i zaprima rezultat obrade, kodira povratnu vrijednost i vraća ju pozivatelju
o lokalna RPC infrastruktura identfcira rezultat obrade, dekodira povratnu vrijednost i vraća ju klijentu
Otvoreno računarstvo - Raspodijeljeni računalni sustavi27
Poziv udaljene procedure (II)
o Platormno-neovisan sustavo klijent i implementacija procedura mogu bit na različitm platormama
o kodiranje komunikacije: XDR, XML, JSON
o Skrivena kompleksnost udaljene komunikacije i kodiranja podataka, suradnje između raznorodnih računalnih platormi
Otvoreno računarstvo - Raspodijeljeni računalni sustavi28
Poziv udaljene metodeo RPC u objektnom svijetu
o opis sučelja objekta koji implementra niz metodao eksplicitni ili implicitni opisi (CORBA IDL / JavaRMI)
o ime metode
o argument
o povratna vrijednost
o Iz opisa se stvaraju programski entteto strana klijenta – eng. stub
o strana poslužitelja – eng. skeleton
o Objekt zastupnici (eng. proxy objects) u lokalnom procesuo poziv se prosljeđuje metodi udaljenog objekta
o argument i povratna vrijednost može bit referenca udaljenog objekta
Otvoreno računarstvo - Raspodijeljeni računalni sustavi29
Mehanizmi neizravne komunikacije
o Grupna komunikacija
o Objavi – pretplat
o Redovi poruka
o Prostori podataka
o Raspodijeljena dijeljena memorija
Otvoreno računarstvo - Raspodijeljeni računalni sustavi30
Grupna komunikacijao Apstrakcija grupne komunikacije
o pošiljatelj šalje poruku grupi primatelja (komunikacija 1:n)
o pošiljatelju nisu poznat pojedini članovi grupe
o svi aktvni članovi grupe primaju odaslanu poruku
o Grupa primatelja:o apstrakcije grupe temelji se na jedinstvenom identfkatoru grupe
o enttet se pridružuje grupi
o član grupe može napustt grupu
o Sprege između pošiljatelja i članova grupeo vremenska postoji
o prostorna ne postoji
Otvoreno računarstvo - Raspodijeljeni računalni sustavi31
Objavi – pretplat (I)o Veći broj pošiljatelja i primatelja (komunikacija n:m)o Raspodijeljeni sustav temeljen na događajima/porukamao Temelji se na posredničkom enttetu koji:
o zaprima pretplate na događaje od strane zainteresiranih entteta, pretplate mogu bit kompleksni fltri s obzirom na sadržaj
o zaprima brisanja pretplata na događaje od strane entteta
o prihvaća poruke objavljene od entteta objavitelja i prosljeđuje ih svim pretplaćenim enttetma (kod kojih događaj zadovoljava defnirani fltar pretplate)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi32
Objavi – pretplat (II)
o Sprega između pretplatnika i objaviteljao vremenska postojio prostorna ne postoji
o Jedinstveni protokol komunikacije objavitelja i pretplatiteljao definiran protokolom prema posredničkom entitetu
Otvoreno računarstvo - Raspodijeljeni računalni sustavi33
Redovi porukao Posrednički enttet koji sadrži trajne redove poruka
o Enttet može bit vlasnik jednog ili više redova porukao Enttet pošiljatelj:
o postavlja poruku u red poruka ciljnog entteta (komunikacija 1:1), posrednički enttet sigurno sprema poruku
o Enttet vlasniko provjerava postojanje poruka u redu poruka
o zaprima poruku iz reda poruka (poruka se briše iz reda)
o Komunicirajući enttet ne moraju bit istovremeno aktvnio vremenska sprega ne postoji
o prostorna sprega postoji
o Jedinstveni protokol komunikacije enttetao defniran protokolom prema posredničkom enttetu
Otvoreno računarstvo - Raspodijeljeni računalni sustavi34
Prostori podatakao Posrednički enttet
o pruža prostor - trajnu memoriju (eng. tuple space) koja služi čuvanju strukturiranih podataka (eng. tuples)
o enttet proizvođači o postavljaju podatke u prostor
o enttet potrošačio čitaju podatke iz prostora (podatak ostaje u prostoru)
o vade podatke iz prostora
o čitanje ili vađenje na osnovu kriterija defniranih nad sadržajem podataka
o Sprega između proizvođača i potrošačao prostorne sprege nema
o vremenske sprege nema
Otvoreno računarstvo - Raspodijeljeni računalni sustavi35
Raspodijeljena dijeljena memorijao Temelji se na mehanizmu međuprocesne komunikacije –
dijeljena memorija (između procesa istog računala)
o Lokalne kopije dijeljene memorije na svakom računalu
o Propagacija promjena iz lokalne kopije u lokalne kopije svih ostalih računalao problem koherencije
o Sprega između računalao prostorna ne postojio vremenska postoji
Otvoreno računarstvo - Raspodijeljeni računalni sustavi36
Uloge i odgovornost entteta (I)
o Klijent – poslužiteljo klijent zahtjeva usluguo poslužitelj mora isporučit uslugu
o Podjela uloga klijenata i poslužitelja u složenijem sustavu ne mora bit jasna – jedan enttet može imat obje uloge
Otvoreno računarstvo - Raspodijeljeni računalni sustavi37
Uloge i odgovornost entteta (II)o Svi enttet ravnopravni (eng. peer-to-peer)
o
o
o
članovima (mrežni promet, podaci, obrada)o Redundancija podataka i funkcionalnost
Otvoreno računarstvo - Raspodijeljeni računalni sustavi38
Raspodjela entteta na čvorove mrežeo Logički enttet raspodijeljenog sustava mapiraju se na
stvarne izvedbene resurse – računala
o Višestruka računala poslužiteljio dijeljenje komponent usluge na više računala poslužiteljao repliciranje jedinstvene usluge na više računala poslužitelja
o Pokretni programio dobavljeni kod proširuje funkcionalnost klijentao lokalna ili udaljena interakcijao problem sigurnosto Java aplet – dobavljanje izvršnog koda na stranu klijentao JavaScript – dobavljanje koda u preglednik Weba
o Pokretni agento prenošenje i koda i stanjao samostalno kretanje između grupe računala i lokalno obavljanje
zadatakao smanjenje korištenja mreže, ubrzavanje operacija
Otvoreno računarstvo - Raspodijeljeni računalni sustavi39
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 sustavi40
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 sustavi41
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čenjem
o nema trajne veze kao kod “čistog” guranja
o značajno opterećenje mreže i poslužitelja kod velikog broja klijenata
o primjeri: guranje e-pošte na klijenta (POP, IMAP), RSS feeds
Raspodijeljeni računalni sustavio Raspodijeljeni sustavio Arhitekture raspodijeljenih aplikacijao Arhitekturni obrascio Aplikacijski protokoli
Otvoreno računarstvo - Raspodijeljeni računalni sustavi43
Slojevita arhitektura
o 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 sustavi44
Svojstva slojevite arhitektureo Prednost slojevite arhitekture:
o sloj obavlja točno određenu ulogu
o slojevi “slabo” povezani konektorima
o neovisnost o implementaciji, slojevi jednostavno zamjenjivi
o protokoli interakcije se moraju strogo poštovat
o Nedostaci slojevite arhitekture:o smanjena učinkovitost sustava
o skupa promjena protokola interakcije
o ponekad teško identfcirat jasno odijeljene slojeve
Rainbow Colours Cheese Layered Cake
Coconut Milky Yam cheese Layered Cake
Otvoreno računarstvo - Raspodijeljeni računalni sustavi45
Izvedba slojeva i konektora (I)
o Monolitna aplikacija:o jedan proces izvođen u okviru operacijskog sustava
jednog računalao slojevi
o logički (i fzički?) odvojene biblioteke funkcijao čine jedinstveni izvedbeni kôd aplikacije
o konektori između slojevao skup funkcija vidljivih iz
susjednog sloja
o komunikacijapozivi funkcija susjednog sloja
Otvoreno računarstvo - Raspodijeljeni računalni sustavi46
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 sustavi47
Slojevi aplikacije
o 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
Otvoreno računarstvo - Raspodijeljeni računalni sustavi48
Monolitna arhitektura
o Svi funkcionalni slojevi aplikacije unutar procesa izvođenog na jednom računalu
o 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 sustavi49
Dvoslojna arhitektura
o 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 sustavi50
Tanki i debeli klijent
o Debeli klijent (fat client):o sadrži slojeve prezentacije i
aplikacijske logikeo 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 sustavi51
Troslojna arhitektura
o 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 sustavi52
Višeslojna arhitektura
o 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 sustavi53
Karakteristke arhitektura
o 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 sustavi54
Arhitektura usluga klijent-poslužitelj
o WWW, DNS, LDAP, SVN – informacijske uslugeo WWW
o jasni slojevi prezentacije i podataka o DNS, LDAP
o uloga klijenta ovisna o konkretnoj primjenio SVN
o 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 sustavi55
Arhitektura usluge e-pošte
o Mail klijent: o slanje pošte, dohvaćanje pošte
iz poštanskog sandučićao 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 sustavi56
Arhitektura usluge FTP
o 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
Window System
o Prikaz korisničkog sučeljao 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
Otvoreno računarstvo - Raspodijeljeni računalni sustavi58
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že
o Omjer broja klijenata i poslužiteljao vrlo veliki broj klijenata – rasterećenje poslužitelja
delegiranjem dijela poslova klijentma?
Otvoreno računarstvo - Raspodijeljeni računalni sustavi59
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 sustavi60
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 sustavi61
Namjenski poslužitelji (I)
o Potrebna snaga obrade ovisna o aplikacijio 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 sustavi62
Namjenski poslužitelji (II)
o Propusnost podatakao 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 sustavi64
Druga krajnost namjenskih poslužitelja
o Rabbit2000 CPUo 256KB Flash ROMo 128KB RAMo GPIOo 4 x ASCo 2 x SSCo RTCCo Ethernet kontroler
Raspodijeljeni računalni sustavio Raspodijeljeni sustavio Arhitekture raspodijeljenih aplikacijao Arhitekturni obrascio Aplikacijski protokoli
Otvoreno računarstvo - Raspodijeljeni računalni sustavi67
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>
Otvoreno računarstvo - Raspodijeljeni računalni sustavi68
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>
Otvoreno računarstvo - Raspodijeljeni računalni sustavi69
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 sustavi70
Aplikacijski protokoli
o Jezik sporazumijevanja komunicirajućih entteta
o Binarni ili tekstualni formato binarni: kompaktniji, manje opterećenje mreže, manje
opterećenje računala, nečitak za čovjekao 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 sustavi71
Problem heterogenost sustavao Raspodijeljeni sustav sastavljen od heterogenih komponent
o Poredak zapisa okteta (Big/litle endian, network byte order)
o zapis struktura podataka (JavaScript, serijalizacija ...)
o kodiranje znakova (ASCII, Unicode ...)
o razlike u jezicima implementacije komponent (kako se terminira niz znakova?)
o raspoloživa sučelja za ostvarenje mrežne komunikacije (Berkeley sockets, Windows ...)
o Middleware – skrivanje kompleksnost komunikacije i heterogenost sustava
Otvoreno računarstvo - Raspodijeljeni računalni sustavi72
Aplikacijski protokoli i nespojna veza
o 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 sustavi73
Aplikacijski protokoli i spojna veza
o Primjeri korištenja spojne veze (TCP)o pouzdani prijenos veće količine podataka tokovima
o 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 sustavi74
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 konverzacijeo praćenje stanja na klijentu i poslužitelju
Otvoreno računarstvo - Raspodijeljeni računalni sustavi75
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)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi76
Simetrični i asimetrični protokoli
o 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 protokola
o 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 protokolio uloga određena na razini konverzacije, ne veze (p2p)
Otvoreno računarstvo - Raspodijeljeni računalni sustavi77
Mehanizmi protokola
o 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 sustavi78
Uokvirenje poruka
o Jednostavna detekcija kraja jednorednih porukao 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 sustavi79
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 sustavi80
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 sustavi81
Uokvirenje uništavanjem veze
o Stvaranje nove veze za prijenos jedne porukeo 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 sustavi82
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 sustavi83
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>
Otvoreno računarstvo - Raspodijeljeni računalni sustavi84
Stanja usluge
o 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 sustavi85
Stanja usluge – kontekst stanja
o Kontekst očuvanja stanja:o kontekst veze
o npr. FTP – radno kazalo na udaljenom računaluo kontekst klijenta
o npr. stanje sandučića e-pošte korisnikao globalni kontekst
o npr. sadržaj tablice baze podataka
Otvoreno računarstvo - Raspodijeljeni računalni sustavi86
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