87

Mrežna komunikacija - ieee.hr fileheterogenost na razinama: o komunikacijskih mreža o računalnog sklopovlja o operacijskih sustava o programskih jezika korištenih u izgradnji aplikacija

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

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 sustavi63

Poslužitelji FER-a

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 sustavi66

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

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

Otvoreno računarstvo - Raspodijeljeni računalni sustavi

Pitanja?