34
0 10/11/2016 Uvod u dristribuirane informacijske sustave FESB Jurica Šeparović RAČUNARSTVO 550

10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

0

10/11/2016 Uvod u dristribuirane informacijske sustave

FESB

Jurica Šeparović RAČUNARSTVO 550

Page 2: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

1. UVOD ....................................................................................................................................... 1

1.1 Definicija distribuiranog sustava .................................................................................. 1

1.2 Ciljevi-svojstva distribuiranih sustava .......................................................................... 1

1.2.1 Dostupnost resursa (dijeljenje) ..............................................................................................................1

1.2.2 Transparentnost distribuiranosti...........................................................................................................2

1.2.3 Otvorenost .......................................................................................................................................................3

1.2.4 Skalabilnost......................................................................................................................................................3

1.3 Zamke .............................................................................................................................. 4

1.4 Vrste distribuiranih sustava ........................................................................................... 5

1.4.1 Sustavi distribuiranog računanja ..........................................................................................................5

1.4.2 Distribuirani informacijski sustavi.........................................................................................................5

1.4.3 Distribuirani sveprisutni sustavi.............................................................................................................5

2. ARHITEKTURE DISTRIBUIRANIH SUSTAVA......................................................................... 6

2.1 Stilovi arhitekture ........................................................................................................... 6

Slojevita arhitektura ........................................................................................................................................................6

2.2 Arhitekture više procesora ............................................................................................ 7

2.3 Klijent-server arhitekture............................................................................................... 7

2.3.1 Slojevitost .........................................................................................................................................................8

2.3.2 Thin and Fat client [2tier]..........................................................................................................................8

2.3.3 3-tier arhitektura ...........................................................................................................................................9

2.3.4 N-tier arhitektura ..........................................................................................................................................9

2.3.5 Primjena ............................................................................................................................................................9

2.4 Arhitektura distribuiranih objekata............................................................................ 10

2.4.1 Common object Request Broker - COBRA .......................................................................................... 10

2.5 Peer to peer arhitektura............................................................................................... 11

2.6 Hibridna arhitektura..................................................................................................... 12

2.6.1 BitTorrent ....................................................................................................................................................... 12

2.7 SOA – Service oriented arhitectures ........................................................................... 13

2.8 Cloud computing .......................................................................................................... 13

3. PROCESI I NITI ...................................................................................................................... 14

Page 3: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

2

3.1 Uvod ...................................................................................................................................................................... 14

3.2 Potreba ................................................................................................................................................................ 14

3.3 Proces............................................................................................................................. 14

3.4 Niti.......................................................................................................................................................................... 16

3.4.1 Thread safety ............................................................................................................................................... 18

3.4.2 Implementacija niti ................................................................................................................................... 18

3.5 Višenitni klijenti ............................................................................................................................................... 19

3.6 Višenitni serveri ............................................................................................................................................... 19

3.7 Virtualizacija ...................................................................................................................................................... 19

4. KLIJENT SERVER PROCESI ................................................................................................... 21

4.1 Klijent............................................................................................................................. 21

4.1.1 Uvod ................................................................................................................................................................. 21

4.1.2 Složeni dokumenti .................................................................................................................................... 22

4.1.3 Klijentski software za transparentnost distribucije ................................................................... 22

4.2 Server ............................................................................................................................. 22

4.2.1 Server Portovi .............................................................................................................................................. 23

4.2.2 Prekid veze.................................................................................................................................................... 23

4.2.3 Stateless server ........................................................................................................................................... 24

4.2.4 Stateful server.............................................................................................................................................. 24

4.2.5 Session state vs permanent state ...................................................................................................... 24

4.2.6 Klasteri servera ............................................................................................................................................ 25

4.2.7 Distriburiani serveri................................................................................................................................... 25

4.2.8 Migracija koda............................................................................................................................................. 25

5. KOMUNIKACIJA ...................................................................................................................... 26

6. BIG DATA ................................................................................................................................. 28

Page 4: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

1. Uvod

Distribuirani sustavi se sastoje od skupa samostalnih računala povezanih računalnom mrežom.

Programska podrška omogućava računalima da koordiniraju svoje aktivnosti i da dijele sustavne

resurse (hardware,software i podatke). Korisnici distribuiranog sustava bi trebali primjećivati samo

jedan integrirani sustav.

Pojavom brzih lokalnih mreža te razvojem osobnih računala i servera došlo je do napuštanja

centraliziranih sustava što je pridonijelo razvoju distribuiranih sustava.

1.1 Definicija distribuiranog sustava

Distribirani sustav je skup neovisnih računala koji se korisniku predstavljaju kao jedan cjeloviti

sustav.

Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se

cijeli distribuirani sustav čini kao jedan centralizirani sustav.

1.2 Ciljevi-svojstva distribuiranih sustava

Općenito kod izgradnje distribuiranih sustava želimo zadovoljiti svojstva otvorenosti,

skalabilnosti, transparentnosti i dostupnosti resursa.

1.2.1 Dostupnost resursa (dijeljenje)

Kod distribuiranih sustava dijele se programi, baze podataka , printeri, web stranice, podatci i

razni drugi resursi.

Dijeljenje resursa je ekonomično i dobro za kolaboraciju. Kod timskog ili grupnog rada koje

uvelike ovisi o dijeljenu podataka između programa na različitim računalima distribuirani sustavi

uvelike olakšavaju rad tako što omogućuju pristup dijeljenim resursima i njihovu uporabu kao

lokalni resurs računala korisnika.

Moguća je krađa lozinke ,kartica i ugrožavanje privatnosti kod distribuiranih sutava. (npr.

Internet bankarstvo , facebook i druge društvene mreže itd)

Page 5: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

2

1.2.2 Transparentnost distribuiranosti

Transparentnost znači da bilo koji dio distribuiranog sustava treba biti skriven od svojih korisnika

i prikazan kao normalni centralizirani sustav. Razlikujemo razne vrste transparentnosti.

Vrsta transparentnosti Opis

Pristupa Bez obzira kako se pojedinom resursu pristupa , njegova

prezentacija korisniku mora biti jedinstvena za sve načine pristupa.

(Npr korisnik resursu može pristupiti sa različitih uređaja..)

Lokacije Korisniku nije poznata fizička lokacija podataka, ali svejedno mu

može pristupiti. Koristi se logičko imenovanje resursa (npr. URL)

Migracije Resurs se može premjestiti na drugu lokaciju bez promjene

pristupa resursu (tako korisnik ne zna da se resurs premjestio)

Relokacije Premještanje resursa dok ga se koristi ne smije primjetiti korisnik.

npr pomicanjem laptopom i prebacivanje na drugi AP

Replikacije Skriva se činjenica da postoji više kopija resursa .

Npr. Kopiranje resursa na bližu lokaciju radi unčinkovitosti. Na

ovaj način se povećava brzina dohvata određenog resursa.

Konkurentnosti Više korisnika istovremeno koristi resurs bez međusobnog

kontakta i poteškoća.

Greške Omogućava se izvršavanje korisničkih zadataka bez obzira na

greške koje mogu nastati npr. Prestanak rada opreme.

Transparentnost nije uvijek jednostavno postići. Imamo razne probleme poput

- Sinkronizacije vremena - potrebno je sinkronizirati vrijeme na raznim distribuiranim

sustavima što i nije baš trivijalan zadatak.

Npr make komanda se koristi na Unix sustavima da kompajlira novi ili modificirani kod

bez potrebe da ponovno se kompajlira ne promijenjeni kod. Ako se izvorni kod nalazi na

razlicitim serverima i ti serveri imaju nesinkronizirano vrijeme , make program neće dati

očekivane rezultate. (make će gledati vrijeme editiranja dokumenta ili tako nešto). U

distribuiranim sustavia na internetu najčešće se koristi NTP protokol.

- Prijenos poruka na velike udaljenosti – korisnik će trebati čekati duže ako se nalazi na

velikoj udaljenosti od resursa.

- Kolaborativni dokumenti – propagacije izmjene svim korisnicima

- Transparentnost i učikovitost nije lako balansirati

Page 6: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

3

1.2.3 Otvorenost

Otvoreni distribuirani sustav je sustav koji ima mogućnost komunicirati (ili nuditi) usluge sa

drugim distribuiranim sustavima čak i kada se njihova arhitektura ili izvedba razlikuje. To se

postiže korištenjem dobro definiranih sučelja (interfaces)

Protokoli – definiraju format sadržaja i značenje poruka.

Sučelja – specifikacije usluge (IDL – Interface Definition Language)

Dva procesa mogu nuditi istu uslugu, istim sučeljem, ali različitim implementacijama.

Dobre specifikacije sučelja su potpune i neutralne te omogućavaju interoperabilnost (rad sa

drugim sustavima u smislu pristupa ili implementacije) i portabilnost usluge određenog

distribuiranog sustava.

1.2.4 Skalabilnost

Skalabilnost je mogućnost proširenja distribuiranog sutava sukladno sa rastom potreba.

Distribuirani sustavi moraju djelovati učinkovito bez obzira na veličinu. Skaliranje je moguće

samo ako je sustav dobro dizajniran.

Dimenzije skalabilnosti:

- Veličina sustava (sustav se prilagodi većem broju korisnika ili resursa)

- Zemljopisna (sustav se proširi na veće zemljopisno područje)

- Administrativna ( The ability for an increasing number of organizations or users to easily

share a single distributed system.)

Problemi zbog koje je skalabilnost uvelike otežana :

- Centralizirani podaci : npr online telefonski imenik – pristup centraliziranim podatcima

može bii otežan ako poslužitelji koriste veću količinu podataka

- Centralizirane usluge(komonente): npr mail server kod centraliziranog poslužitelja će

imati veliki stupanj opterećenja ako puno korisnika

- Centralizirani algoritmi algoritmi koji uzimaju u obzir da rade samo sa jednim

korisnikom.

Kod skaliranja sustava potrebno je brinuti o troškovima i mogućim gubitcima na performansama

sustava.

Page 7: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

4

Tehnike skaliranja :

- Skrivanje čekanja u komunikaciji

Izvodi se korištenjem:

- asinkrone komunikacije (nakon slanja poruke aplikacija izvodi druge aktivnosti dok odgovor

servera ne stigne. Odgovor se dojavljuje aplikaciji, a poseban proces izvodi obradu pristiglog

odgovora)

- Smanjenjem cjelokupne komunikacije sa serverom, na način da se prebaci dio obrade

(provjera) na stranu klijenta (npr. web forma za prijavu korisnika)

- Distribucija – razdvajanjem komponente na dijelove (npr. DNS)

- Replikacija – replikacija komponenti zbog veće dostupnosti i balansiranje opterećenja

nekog sustava.

Keširanje – poseban oblik replikacije. Sprema se replika resursa u brzu cache memoriju

radi povećanja brzine. Problem je konzistencija podataka (više mjesta gdje se nalazi isti

podatak pa triba osigurat da svugdi pudu jednaki)

1.3 Zamke

8 Fallacies by Peter Deutsch - 8 zabluda o distribuiranim sustavima koje imaju programeri koji su

novi u području distribuiranih sustava. Zbog ovih zabluda mogu nastati pogreške sustava ili

veliki neplanirani troškovi koji su potrebni za redizajniranje sustava da postigne određene ciljeve.

1. Network is reliable

2. Latency is zero

3. Bandwidth is infinite.

4. The network is secure.

5. Topology doesn't change

6. There is one administrator.

7. Transport cost iz zero

8. The network is homogeneous

https://en.wikipedia.org/wiki/Fallacies_of_distribute d_com puting

Page 8: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

5

1.4 Vrste distribuiranih sustava

1.4.1 Sustavi distribuiranog računanja

Koriste se kako bi omogućili visoke performanse obavljanja računalnih zadataka.

Cluster je skup povezanih računala koja rade zajdeno tako da se mogu gledati kao jedno

računalo. Djelovi clustera su obično spojeni brzom lokalnom mrežom. U večini slučajeva svi

čvorovi klastera imaju isti hardver i operacijski sistem te rade iste zadatke.

Beowulf cluster – njegova glavna ideja je korištenje komercijalno dostupnih računala u svrhu

izgradnje jeftine alternative tradicionalnim superačunalima.

Grid je skup računala različitih karakteristika često i na različitim lokacijama i pod različitom

administracijom koji su povezani sa ciljem da postignu zajednički cilj (email,www).

1.4.2 Distribuirani informacijski sustavi

Sustavi obrade transakcija

Obrada transakcija je zapravo obrada informacija koja se odvija u nekoliko koraka. Da bi

transakcija bila uspješna, svi koraci moraju uspješno završiti. Ako je jedan korak bio neuspješan,

svi se moraju poništiti („all or nothing). Npr dizanje novca sa računa, rezervacija letova …

Atomic Cconsistent Isolated Durable = ACID

- Atomic : zahtijeva da svaka transakcija bude potpuno izvršena što znaci da ukoliko dođe

do pogreške (hardware,software, nestanak struje itd) kod jednog dijela transakcije , onda

se ne izvrši cijela transakcija.

Vanjskom svijetu transakcija se odvija se nerazdvojivo.

- Consistent : prije i poslije transakcije baza mora biti u konzistentnom stanju.

- Isolated: istovremene transakcije se međusobno ne ugrožavaju

- Durable: jednom kada je transakcija gotova promjena je trajna. (ako je transakcija

završena promjena mora bit trajna bez obzira na gubitak struje pogreške itd). Ovo

svojstvo garantira sigurnost spremanja izvedene transakcije.

Integracija poslovnih aplikacija

Glavna ideja je da se omogući međusobna komunikacija poslovnih aplikacija. Poslovne aplikacije

direktno komuniciraju putem middlewarea. Koriste RPC (remote procedures calls),

RMC(method)I ili MoM (message orijented middleware)

1.4.3 Distribuirani sveprisutni sustavi

To su mali uređaji , napajani baterijom i povezani bežičnom vezom.

Kućni sustavi

Sustavi za nadzor zdravlja

Senzorske mreže

Page 9: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

6

2. Arhitekture distribuiranih sustava Arhitektura je osnovna organizacija sustava koja pojednostavljuje i apstrahira funkciju pojedinih

komponenti te zatim razmatra :

- Smještaj komponenti unutar mreže računala

- Odnose između komponenti (njihove funkcionalne uloge i načine međusobne

komunikacije)

Arhitekturalni stil je cjeloviti skup dizajnerskih odluka koje se tiču arhitekture sustava (veze

komponenti i ponašanje).

2.1 Stilovi arhitekture

Dizajniranje ili prihvaćanje arhitekture je nepohodno za uspješan razvoj velikih sustava.

Stil u smislu komponenti definira što su komponente , kako se povezuju , razmijenjuju podatke i

kako se konfiguriraju u cijeli sustav.

Komponenta je modularna jedinica sa dobro definiranim sučeljem. (replaceable&reusable)

Konektor je mehanizam koji olakšava komunikaciju, koordinaciju i kooperaciju među

komponentama.

Najznačajniji stilovi arhitekture su layered, object based , event based i data driven arhitektura.

Slojevita arhitektura

Koristi se za klijent-server systeme. Komponente su zapravo slojevi

Arhitektura temeljena na objektima (object based)

Komponente ove arhitekture su objekti koji međusobno komuniciraju.

Page 10: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

7

Arhitektura usmjerena prema podatcima (data centered)

Arhitektura temeljena na događajima (event driven)

2.2 Arhitekture više procesora

Najjednostavniji model distriburanih sustava. Kod ovakve arhitekture procesi se mogu

istovremeno izvršavati na različitim procesorima ili unutar jednog procesora (jezgre,niti)

Distribucija procesa se može predefinirati ili se raspoređuje za vrijeme izvršavanja programa

(dispatcher – sustav koji raspoređuje procese na prikladna mjesta (valjda)).

Imamo neke složene sustave koji koriste procesore grafičkih kartica za paralelno prog ramiranje

(CUDA)

2.3 Klijent-server arhitekture

Aplikacija je računalni program koji je dizajniran tako da pomogne korisniku izvršavati određene

zadatke i funkcije. Klijent-server aplikacija sastoji od usluga koje nude serveri i skupa klijenata

koji te usluge koriste. Klijenti i serveri su logički procesi (mogu biti u raznim odnosima X:Y ).

Klijent inicira interakciju s individualnim serverom , server obrađuje klijentov zahtjev i vraća

oređeni resurs.

Većinom klijenti i serveri komuniciraju preko računalnih mreža na različitim uređajima, ali mogu

biti i na istim uređajima.

Primjer nekih klijent server aplikacija : Email , WWW …

Page 11: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

8

2.3.1 Slojevitost

Klijent-server aplikacije imaju slojevitu arhitekturu. Pomoću ovoga razlikujemo klijente i servere.

Prezentacjiski sloj sadržava korisničko sučelje koje služi

za komunikaciju sa korisnicima.

Sloj aplikacijske obrade sadrži funkcionalnosti

aplikacije

Sloj upravljanja podatcima sadrži podatke kojima

klijent želi manipulirati. To su najčešće datoteke ili baze

podataka. Podatci ostaju u tom sloji cak i kada ih klijent

ne koristi.

2.3.2 Thin and Fat client [2tier]

Two-tier arhitekture

Model thin-clinet - Obrada i spremanje podataka obavljaju se na serveru. Klijent služi

samo za prezentaciju obrađenih podataka. Ovakav pristup puno opterećuje servere i

mrežu, ali je pogodan za klijenta jer reducira njegove troškove.

Koristi se kod prilagodbe „običnih starih“ sustava u distriburane na način da se aplikacija

ponaša kao server, a sučelje sa korisnikom kao klijent. (npr sustav bankomata)

Model fat-clinet – Klijent odrađuje obradu i prezentaciju podataka , a na serveru se

spremaju podatci u bazu podataka.

Kod kompleksnih sustava klijenti moraju imati instalirane novije verzjie aplikacije.

Pogodno je za moderne klijent-server sustave kada su sposobnosti klijenta unaprijed

poznate.

Page 12: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

9

2.3.3 3-tier arhitektura

Svaki sloj arhitekture aplikacije izvršava se na drugom procesoru.

Izbjegavau se problemi 2-tier arhitektura vezani za opterećenje servera i mreže i kompleksnosti

upravljanja.

Ova arhitektura je proširiva jer ima mogućnost dodavanja novih servera paralelno sa rastom

zahtjeva. Večina današnjih web aplikacija koristi ovu arhitekturu. Primjer Internet Bankarstvo.

2.3.4 N-tier arhitektura

Se odnosi na aplikacije koji dalje prosljeđuju zahtjeve nekim drugim servisima.

2.3.5 Primjena

Ovo bi tribalo napisat da se razumi !

Page 13: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

10

2.4 Arhitektura distribuiranih objekata

Kod ove arhitekture nema razlike između klijenta i servera. Svaki entitet je objekt koji pruža

usluge drugim objektima i prima usluge od drugi objekata.

Komunikacija među objektima se odvija kroz middleware sustav – Object Request Brooker.

2.4.1 Common object Request Broker - COBRA

OMG – Object Managment Group je organizacija koja je originalno nastala zbog cilja da

standardiziraju distribuirane objektno orjentirane sustave. Jedan od njihovih prvih standarda

definira cobru.

COBRA – Common Object Request Broker Arhitecture

Korištenjem ovog standarda omogućava se da komponente napisane na različitim računalima i

platformama mogu međusobno komunicirati.

COBRA specifikacija nalaže da mora postojati ORB (Object request broker) pomoću kojega će

aplikacija komunicirati sa drugim objektima.

Page 14: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

11

Cobra objekti slični su objektima u C++ ili Javi. Moraju imati sučelje definirano u IDL(interface

definition language) jeziku.

Cobra definira mapiranje iz IDL jezika u specificni jezik implementacije

(C,C++,JAVA,Pysthon,Ruby…) tako da objekti realizirani u različitim jezicima funkcijoniraju.

Orb – upravlja komunikacijom među objektima

Način komunikacije pomoću ORB-a

2.5 Peer to peer arhitektura

Kod peer-to-peer arhitekture nemamo centralizirani sustav koji pruža resurse , pa govorimo o

decentraliziranom sustavu kod kojega svaki koristi resurse drugih čvorova i istovremeno na

raspolaganje daje svoje resurse. Drugim riječima u ovoj arhitekturi svaki čvor je istovremeno i

klijent i server.

P2P sustavi se dizajniraju na način da koriste prednosti računalne snage i pohrane velikog broja

umreženih računala.

Popularnosti ove arhitekture pridonio je sustav za dijeljenje glazbe(MP3 datoteka) Napster.

Nakon kojega nastaju i drugi sustavi poput LimeWire, BearShare. Većina ih propada zbog

zakonskih problema.

Peer to peer arhitekture su decentralizirane ili polu-centralizirane (slika desno)

Page 15: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

12

2.6 Hibridna arhitektura

To je kombinacija peer-to-peer i klijent server arhitekture. Obično kod hibridnog modela imamo

centralni server koji pomaže čvorovima peer-to-peer mreže da se međusobno pronađu.

Spotify je jedan od primjera hibridnog modela. Imamo klijent server sustav sa kojega zatražujemo

slušanje glazbe , ali možemo i kreirati svoje playliste. Play liste se onda mogu dijeliti sa drugim

korisnicima (P2P).

2.6.1 BitTorrent

BitTorrent je komunikacijski protokol koji služi za dijeljenje podataka između čvorova P2P mreže

koji se nalaze na internetu.

Ovo je jedan od najkorištenijih protokola za dijeljenje velikih datoteka (video, audio …)

Korisnik dohvaća dijelove datoteka (peers) od nekoliko različitih korisnika (seeds). Na kraju se

dijelovi datoteka spajaju u konačni potpuni dokument.

Nakon što se završi dohvaćanje datoteke korisnik može biti seed i omogućiti drugim korisnicima

preuzimanje dijelova iste datoteke.

Web stranica zna lokaciju .torrent datoteke

.torrent datoteka sadrži popis trackera

Tracker je specijalni server koji ima evidenciju o tome koji čvorovi sadrže traženu datoteku.

Čvorovi dozvoljavaju klijentu preuzimanje dijelova datoteke

Sustav ima određena pravila koja mogućavaju da cijela stvar funkcionira :

- Datoteka se može preuzimati samo ako se omogući i njeno slanje (upload)

- Ako korisnik smanji upload onda će mu se smanjiti i download

Page 16: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

13

2.7 SOA – Service oriented arhitectures

Servisno orijentirane arhitekture se temelje na ideji korištenja usluga „iz vana“.

Web servis je standardni pristup kreiranju reiskoristive komponente kojoj se može pristupiti i

koristiti putem web-a.

Standardi za web servise:

• SOAP (simple object access protocol) – protokol definira strukturiranu razmjenu

podataka među web servisima

• WSDL (Web service description language) – predstavljaju sučelja web servisa

• UDDI (Universal description discovery integration) – kako se koriste informacije iz opisa

servisa za pronalazak potrebnih servisa.

2.8 Cloud computing

Arhitektura koja služi za izradu visoko skalabilnih aplikacija. Koriste se klasteri računala.

Ovaj princip daje iluziju beskonačne skalabilnosti.

Dobro je sta platiš onoliko koliko trošiš i možes bilo kada povećati zahtjeve uz nadoplatu.

Popularni clodu hosting :

Amazon Web Services (AWS) , Microsoft azure …

Page 17: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

14

3. Procesi i niti

3.1 Uvod

Kod nedistribuiranih sutava operacijski sustav se brine o rasporedu izvršavanja procesa, a kod

distribuiranih sustava to je već mnogo kompleksinij zadatak.

Više procesa i niti kod klijent-server modela rezultira efikasnijim sustavom jer se za isto vrijeme

napravi više posla. Klijenti i serveri mogu biti realizirani na način da se komunikacija sa serverom i

lokalna obrada mogu preklapati.

Oćenito procesi i niti omogućavaju da se više stvari obavi paralelno.

Omogućavaju prividno paralelno izvršavanje procesa kod jednoprocesorskih mašina (dijeli se

procesorsko vrijeme i na taj način ostvaruje ta prividnost)

Kod višeprocesorskih mašina istvoremeno izvršavanje procesa nije iluzija. To omogućava bolju

iskorištenost resursa.

3.2 Potreba

Procesi i niti potrebni su da bi se paralelno izvršavali oderđeni računalni zadatci.

-kod excel tablice imamo potrebu obrađivati podatke za vrijeme unosa

-da bi poboljšalji efikasnost i brzinu servera on treba posluživati više klijenata

istovremeno.

- …

Procesi grade distribuirani sustav. Granulacija koju nude procesi nije dovoljno učinkovita.

Niti nude finiju granulaciju.

3.3 Proces

Proces je program u izvršavanju.

Operacijski sustav prati procese pomoću tablice pocesa. Tu se pohranjuju stanje procesa

(nov,pripravan aktivan, čeka) , ime procesa , sadžaj programskog brojila , sadržaji registra …

Operacijski sustav se brine da dva procesa ne utječu maliciozno jedan na drugoga.

Transparentnost konkurentnosti – dva procesa mogu raditi i dijeliti resurse u isto vrijeme bez

ikakvog problema.

Page 18: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

15

Stvaranje procesa

Da bi procesor mogao odraditi naredbe nekog programa , one se s diska moraju prebaciti u

memoriju (ram). Prvo se alocira dio memorije a zatim se prebacuje kod. Nakon toga obavlja se

inicijalizacija stoga.

Context switch – prebacivanje obrade s jednog procesa na drugi.

Prebacivanje procesa znači pohraniti :

- CPU konteks ( registre, program counter , stack pointer)

- Registre jedinice za upravlanje memorijom

- Poništiti adrese za prevođenje cachea

Te na kraju sve to dohvatiti iz memorije za proces koji slijedi.

Ako OS podržava više procesa nego što može stati u memoriju , potrebno je uključiti i hard disk

u priču ( inače se koristi cache pa ram)

Proces u memoriji

Kontekst izvršavanja

- Program counter (PC)

- Stack pointer (SP)

- Data registers

Stack – sadrži varijable adrese …

Heap – dinamično se alocira za vrijeme rada

procesa

Data – sadrži globalne varijable

Stog - za privremene podatke

Procesi u nedistribuiranom sustavu

IPC (Inter-process comunication) – predstavlja međusobnu komunikaciju procesa. Procesi

često imaju potrebu za komunikacijom.

Primjer IPC-a je shell pipe koja prosljeđuje izlaz jednog procesa na ulaz drugi.

Ovo su neki od mehanizama koji omogućavaju IPC :

- Imenovane i anonimne cijevi

- Redovi poruka

- Dijeljenje memorije

Komunikacija zahtjeva promjenu konteksta

Page 19: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

16

Više-procesne aplikacije

Komunikacija među procesima zahtijeva intervenciju kernela.

Memorija je podijeljena na

- User space područje gdje se izvodi normalni proces (svaki proces osim procesa kernela)

Zadaća kernela je da upravlja procesima koji se ovjde izvršavaju tako da ne utječu jedan

na drugoga

- Kernel space područje gdje je spremljen kod kernela i gdje se izvršavaju kernel procesi.

Da bi prešli sa korisničkog

područja u područje kernela

mora se izvršiti context swich. Što

oduzima dodatno vrijeme. Bolja

solucija je korištenje niti.

3.4 Niti

Niti neovisno izvršava svoj dio koda. Imamo više niti unutar istog procesa.

Niti za razliku od procesa imaju zajedničku memoriju koju dijele. Promjena konteksta je

generalno puno zbog toga.

Pomoću zajedničke memorije obavlja se i komunikacija niti.

Zaštita jedne niti od drugih je odgovornost programera. Samo programiranje višenitnih

aplikacija je kompleksnije za programere ali rezultira boljim performansama aplikacija.

Višenitne aplikacije

Sama granulacija procesa nije dovoljna. Pa tako unutar jednog procesa imamo više niti. Manji su

problemi kod prebacivanja konteksta niti jer one koriste zajedničke resurse. Programer vodi

računa o izolaciji niti.

Više niti se može prividno izvršavati na istom procesoru podjelom vremena. Stvarno paralelno

izvršavanje više niti radi se kod višeprocesorskih računala.

Niti u nedistribuiranom sustavu

Koriste se npr kod proračunskih tablica (Excel) – zato što želimo imati paralelnu obradu i unos

podatak.

Unos podataka treba trigerirati proračune koji če se izvršiti u odvojenoj niti.

Za realizaciju trebamo imati bar 2 niti :

- Jednu za unos

- Jednu za proračun

- Dodatno jednu za automatsku pohranu podataka

Page 20: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

17

Primjer kreiranja niti JAVA

Primjer kreiranja niti C

Page 21: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

18

3.4.1 Thread safety

Kod pristupa globalnim varijablama(dijeljenih resursa) od strane više niti zatekli smo određene

probleme iz kojih zaključujemo da se takvo stanje ne smije dozvoliti (kritični odsječak itd).

Kod je „Thread safe“ ako manipulira dijeljenim resursima na način da osigurava sigurno

izvršavanje svih niti.

Da bi osigurali sigurno i efikasno manipuliranje dijeljenim resursima predstavljamo koncepte

semafora i mutexa.

Semafori

Semafori vode računa da se pristupanje zajedničkim resursima obavi brzo i efikasno. Proces prvo

zatraži pristup resursu ,a semafor mu zatim dodjeljuje taj resurs ukoliko je slobodan ili ga stavlja

u red čekanja. Procesor pristupa resursu kada na njega dođe red.

Binarni semafor : oređuje dali je resurs slobodan ili zauzet

Mutex

Imamo jednu varijablu koju nazivamo mutex. Ona zaključava ili otključava određeni resurs tako

da samo jedna nit može čitati i pisati , u određenom dijeljenom području , odjednom.

3.4.2 Implementacija niti

Za implementaciju user niti koriste se već gotove bilbioteke koje olakšavaju rad programera.

(posix -pthreads , java.lang.Thread).

User level nit

Koristi se thread biblioteka za stavarenje brisanje i manipulaciju nitima.

Administracija se odvija u korisničkom adresnom prostoru pa je zbog zoga “jeftino” stvarati i

brisati niti te se može jednostavno obaviti prijelaz sa jedne na drugu nit.

• OS ne mora podržavati thread, potrebna je samo thread biblioteka.

• Kernel nije svjestan da se proces odvija kao multithread

• Mana : blokirajući pozivi blokiraju sve niti (blokirajuci poziv je npr ako želimo dohvatiti

nešto sa diska što je trenutno zauzeto , kernel nas blokira i sve user level niti moraju

čekati).

Kernel level niti

• Kernel se birne o prebacivanju niti, nema blokirajućih poziva

• Prebacivenj konteksta niti može biti jednako skupo kao prebacivanje konteska

procesa. Pa prednosti koje smo imali sa nitima pred procesima nestaju.

Light Weight Proces (hibrid user i kernel level niti) – najbolje rješenje

• izvršava se u kontekstu proecsa

• jedan proces može sadržavati više LWP koji dijele svoje resurse.

Page 22: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

19

3.5 Višenitni klijenti

Ovakvi klijenti skrivaju čekanje u komunikaciji. Dok se čeka jedan resurs može se započeti sa

radom neke ruge stvari.

Npr. Web browser :

- uspostavi TCP/IP konekcju, dohvati HTML, dok dohvaća dodatne resurse (slike, ikone,

skripte…) HTML se prikazuje.

- Paralelno može otvoriti više konekcija.

- Može dohvaćati podatke paralelno sa više adresa pa se tako balansira opterećenje.

3.6 Višenitni serveri

Iako imamo važne koristi od korištenja niti kod kli jenta, ali najvažnija primjena višenitnosti je na

serveru. Koristi višeprocesorska računala tako da mogu paralelno izvršavati obradu.

Npr kod File severa imamo dvije niti (Dispatcher i work niti). Jedna služi za primanje zahtjeva , a

druga dohvaća i poslužuje datoteke.

Dok se datoteka učitava sa diska, nit ide u stanje čekanja i onda druge niti mogu koristiti

procesor.

Dakle niti u distribuiranom sustu omogućavaju da se istovremeno izvršava klijentsko i serversko

procesiranje. Takav koncept rezultira puno boljim performansama od običnih sustava koji ne

koriste paralelnu obradu.

3.7 Virtualizacija

Virtualizacija je kreiranje virtualne verzije resursa. To može biti hardware,(mobitel) operacijski

sustav(cygwin), sustav za pohranu(virtualni disk) , računalna mreža…

Ona olakšava administraciju velikog broja servera ili resursa. Pomaže boljoj skalabilnosti i boljoj

iskoristivosti resrusa. Cloud hosting i computing koristi virtualizaciju.

Zbog brzog razvoja software i hardwarea aplikacija gotovo uvijek nadživi operaijski sustav i

hardver koji je podržava. Rješenje za to je stvaranje virutalnog okruženja na kojem će ta

aplikacija ponovno raditi.

Page 23: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

20

General instruction : sučelje između hardware-a i software sadrži

strojne naredbe koje može pozvati bilo koji program

Privleged instructions : sučelje između hardwarea i softwarea koje

sadrži samo privilegirani program npr OS.

System calls: sučelje koje se sastoji od sistemskih poziva koje nudi

operacijski sutav

Library functions – sučelje koje se sastoji od poziva biblioteka API

Uloga u distribuiranom sustavu

Virtualizaciju često koriste hosting kompanije tako da imaju jedno glavno računalo (ili neki grid)

te u njemu kreiraju više virtualnih instanci servera koje prodaju svojim korisnicima. U današnje

vrijeme virtualizacija je veoma razvijena pa tako i današnji procesori podrđavaju virtualizaciju.

To omogućava da se virtualne mašine izvode neovisno o sustavu koji ih hosta.

Arhitekture virtualnih mašina

Virtualizacija se može implementirati na više razina :

- Proces virtual machine : apstraktni skup naredbi koji se koriste za izvršavanje aplikacije ,

npr Java runtime ili Windows emulator (wine)

- Virtual machine Moinitor (VMM): sloj koji u potpunosti skriva postojeći hardware kao

sučelje. Ovo omgućava postojanje više operacijskih sustava na jednoj platformi

Vmware , VirtualBox , Parallels …

Page 24: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

21

4. Klijent server procesi

4.1 Klijent

4.1.1 Uvod

Glavni zadatak klijenta je pružanje korisničkog suečelja pomoću kojeg korisnik može

komunicirati sa udaljenim serverom.

U grubo imamo dva načina za izvođenje tog zadatka :

1. komunikaciju omogućava aplikacija (X window system)

2. komunikacija se odvija preko Middleware-a (thin client)

Primjer X Window System

To je jedan od najstarijih sustava koji pruža korisničko sučelje preko mreže.

Xkernel – sadrži drajvere uređaja za upravljanje terminalima (miš ekran tipkovnica) te prima

zahtjeve u kojima se nalaze instrukcije za promjenu izgleda ekrana. On je zapravo server.

Moguća je komunikacija sa više uređaja istovremeno

Xlib - koriste aplikacije za primanje i slanje zahtijeva prema xkernelu.

X protokol se koristi da bi instance Xlib-a komunicirale se Xkernelom (na mreži).

Aplikacije upravljaju izgledom sučelja korištenjem komandi definiranih X standardom. Logika

aplikacije bi trebala biti izdvojena od korisničkog sučelja , što nije slučaj kod x sistema.

Neki od pristupa rješavanju tih problema su NX i upravljanje izgledom kreana na strani aplikacije

na razini piksela (zahtjeva dobru kompresiju podataka).

Najbolje rješenje je upotreba Thin clienta, koji zahtjeve korisnika stavlja u red i pametno ih

izvršava.

Page 25: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

22

4.1.2 Složeni dokumenti

Npr Editiranje na licu mjesta nekog dokumenta koji se sastoji od texta i slike :

- Ako se korisnikov kursor nalazi iznad teksta omogućiti unos teksta

- Ako je iznad slike omogućiti obradu slike

Korisničko sučelje koje ima mogucnost baratanja sa složenim dokumentima dobro sakriva

činjenicu da su ti složeni dokumenti zapravo zasebne aplikacije .

4.1.3 Klijentski software za transparentnost distribucije

Osim korisničkog sučelja, klijentski sofver mora skrivati distribuciju (dohvaćanje podataka sa više

servera …)

Dakle treba osigurati transparentnost pristupa (to se osigurava automatskim generiranjem

klijentovih zahtijeva).

Transparentnost lokacije , migracije i relokacije – odgovarajućom konencijom imenovanja.(URL)

Klijentsko rješenje pristupa međusloju koji skriva relokaciju , replicira zahtjeve na različite servere

, osigurava se u slučaju greške …

4.2 Server

Server nudi specifičnu uslugu koja je potrebna klijentu. U osnovi svi serveri su organizirani na isti

način :

- Server čeka zahtijev klijenta

- Nakon što primi zahtjev klijenta izvrši potrebnu obradu

Razlikujemo :

- Iterativni server -> prima zahtjev obrađuje ga i čeka slijedeći zahtijev

- Konkurentni server -> prima zahtijev te ga prosljeđuje niti i nastavlja sa čekanjem novih

zahtijeva. Ovo je primjer višenitnog severa.

Page 26: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

23

4.2.1 Server Portovi

Krajnja točka kontakta sa serverom je port. Svaki server sluša određene portove.

Kako ce klijent znati koji port kontaktirati ?

- Jedan od načina da se globalno dodjele neki portovi određenim uslugama. Što je danas i

naravljeno (npr WWW – 80 , FTP 21...). U tom slučaju klijent treba samo znati ip adresu

odredišta (dns se koristi za to)

- Ima mnogo servisa koji nemaju vec predefinirani port. U tom slučaju klijent kontaktira

daemon proces koji sadži sve zapise o uslugama i portovima za određeni server. Taj

daemon proces se nalazi na nekom predefiniranom portu.

Server ima mnogo procesa koje obavlja istovremeno pa je bolji način za relizaciju pristupa

kreiranje jednog superservera koji obavlja sav posao.

Npr za Internet servise imamo inet daemon proces koji sluša veći broj poznatih portova. Kada

zaprimi zahtijev pokreće proces koji ga obrađuje. Nakon obrade proces se gasi.

4.2.2 Prekid veze

Načini na koje možemo prekinit vezu korisnika sa serverom(npr ako korisnik uploda veliki file na

server i u meduvremenu skuzi da zeli prekinit vezu) :

- Najednostavnije da prekinemo komunikaciju (sto je kod interneta skroz lako)

- Slanjem out-of-band podataka

Otvoreiti posebni komunikacijski kanal ili poslati istim kanalom (TCP dozvoljava „urgent“

pakete)

Page 27: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

24

4.2.3 Stateless server ne drži informacije o stanju klijenta i može mijenjati svoje stanje bez

da infromira klijente.

Web server je stateless server. On odgovara na HTTP zahtijeve koji mogu biti uplodanje ili

najčešće dobavljanje podataka. Kada se zahtjev završi web server zaboravlja na klijenta.

Datoteke kojima upravlja web server se mogu mijenjati bez znanja klijenta.

HTTP 1.0 – svaki zahtjev zaseban

HTTP 1.1 – sessions

Soft stanje – server pamti podatke o klijentu određeno vrijeme. Nakon isteka veremena

zaboravlja na klijente (korištenje sessiona)

4.2.4 Stateful server čuva informacije o klijentu sve dok ne primi zahtjev za brisanjem

podataka.

Primjer : dokumentni server ( file server)

- Pamti tablicu unosa (koji je klijent uplodao koje dokumente) sve dok klijent ne obriše

dokument

- Također pamti koji klijent ima prava izmjene kao i zadnju izmjenu …

- U slučaju rušenja servera tablica se mora obnoviti (što može biti komplexan zadatak) to

je mana stateful servera.

- Stanja moraju biti trajno pohranjena

4.2.5 Session state vs permanent state

Session stanje se veze za niz operacija jednog korisnika te treba biti održavano samo neko

vrijeme. Ako se izgubi session stanje nema nikakve štete.

Premanenta stanja nije moguće izmijeniti.

Dizajn servera nebi trebao utjecati na uslugu

- Npr Pisanje i čitanje dokumenta se može izvesti i jednim i drugim pristupom

Možemo čuvati informacije na strani klijenta (cookie). Tu su pohranjane informacije korisnika o

prijašnjim pristupima samom serveru. Cookie se šalje sa svakim zahtijevom serveru bez znanja

korisnika.

Page 28: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

25

4.2.6 Klasteri servera

Klaster je kolekcija umreženih računala koji su najčešće povezani brzom (LAN) vezom.Svako

računalo u klasteru predstavlja jedan ili više servera.

Klasteri su večinom statički konfiguirani što znači da imaju jednu kranju točku pomoću koje

korisnici pristupaju. Ako ta točka nije u funkciji ne može se pristupiti klasteru.

4.2.7 Distriburiani serveri

DNS može za isti „host name“ vratiti nekoliko adresa. Klijent će iskušati ostale adrese ako jedna

ne uspije.

Distribuirani server je dinamički pomjenjiv skup računala sa varirajućim točkama pristupa.

Ovaj pristup osigurava stabilne servere.

Imaju jedinstvenu kontaktu adresa početno pridjeljenu klasteru koju može bilo ko preuzeti u

slučaju potrebe.

4.2.8 Migracija koda

U nekim situacijama potrebno je prenjeti programe na drugu lokaciju. Nekad i za vrijeme

izvršavanja.

Migracija procesa : prebacivanje procesa u izvršavanje na drugu mašinu.

Migracija je skup proces , ali je na kraju dobar ako imamo opravdane razloge poput ostvarenja

boljih performansi ili fleksibilnosti sustava.

Možemo uštediti u komunikaciji ako dio koda prebacimo na izvršavanje klijentu.

JIT instalacija klijentskoh sofwarea.

Page 29: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

26

5. Komunikacija Komunikacija među procesima je srž distribuiranih sustava.

Komunikacija na razini operacijskog sustava :

- Signali, cijevi, redovi poruka , dijeljena memorija,

Distribuirani računalni sustavi

- Socketi, RPC,RMI,MOM, data streaming

Sinkrona komunikacija : sinkronizacija se radi blokirajućim pozivimia – da bi se operacije

uskladile jedan mora čekati da drugi završi sa radom.

Asinkrona komunikacija : nema čekanja, proces nastavlja sa svojim radom nakon poziva.

Eventualno može biti obaviješten kada se operacija završi.

Deadlock je situacija u kojoj dvije niti ili dva procesa čekaju da drugi završi prije nego nastavi sa

radom. Problem se može riješiti korištenjem timeouta.

Signali – najstariji oblik komunikacije u Unix OS. Mogu se generirati tipkovnicom i i greškom u

izvođenju programa.

System V IPC je jedan od prvih komercijalnih verzija Unix OS. Podržava 3 metode za dijeljenje

podataka među procesima :

- Message queus (redovi poruka)

Asinkrono slanje poruka između dva procesa. Red se implmentira i održava od strane

kernela.

- Dvosmijenre cijevi (2x cijev)

Preusmjerava se izlaz jednog procesa na ulaz drugi i obrnuto.

- Shared memory segment

- Semaphore sets (dijeljeni brojači resursa)

Page 30: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

27

Socketi

IPC metoda koja omogućava komunikaciju među procesima koji se odvijaju na različitim

mašinama.

Socket komunikacija odvija se preko TCP protokola. Socket se definira IP adresom i portom.

Koriste se sljedeći pozivi (socket,bind,listen,accept,conneckt)

Slojeviti model komunikacije

Fizička razina: protokol definira električna mehanička i signalna sučelja. (napone za 0 i 1, oblik i

veličinu konektora , broj pinova. Prijenos bitova)

Data link razina: provjera ispravnosti podataka. (grupira bitove u okvire i provjerava ispravnost

okvira)

Network razina: brine se o usmjeravanju podataka do odredišta odabirom najboljeg puta

(Najbolji put ne mora ujedno biti i najkraci. Ip protokol – svaka poruka se usmjerava

individualno)

Transportna razina : Brine se o prijenosu poruke od pošiljatelja do primatelja. Rastavlja poruku

na pakete i sastavlja pakete u poruku na odredištu. TCP i UDP protokol.

Protokoli više razine

Session razina: postavlja chekpoint za vrijeme prijenosa velikih količina podataka

Prezentacjiska razina: brine se o identificiranju dijlova informacije iz bitova podataka. Određuje

format podataka.

Aplikacijska razina: koriste se protokoli specifični za pojedine aplikacije. FTP , HTTP …

Middleware u praksi se mrežna komunikacjia odvija korištenjem međusloja.

Međusloj je softver koji omogućava komunikaciju i upravljanje distribuiranim aplikacijama.

Osnovne funkcije :

- Pozivi udaljenih procedura

- Usluga stvaranja reda poruka

- Podrška komunikaciji kroz kontinuirane medije putem stream-a

- Multitaskiranje – slanje poruka na više adresa

Vrste komunikacije:

- Presistent: poruka se čuva trajno dok je primatelj ne primi (kao email)

- Transistent: poruka se čuva dok su pošiljatelj ili primatelj aktivni

- Sinkrona i asinkrona

Page 31: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

28

RPC (Remote Procedure calls) RMI(remote method communication)

Usluge su ponuđene u obliku procedure. Tijelo procedure se izvršava na serveru.

Klijent je blokiran dok se procedura ne izvrši (sinkrona komunikacija).

Implemntacija na klijentovoj strani (stub) pakira parametre u poruku koja se predaje

udaljenom serveru. Nakon što udaljeni server vrati poruku ona se raspakira i predaje

aplikaciji koja je zatražila komunikacija sa udaljenom procedurom.

Message oriented modeli

Prezistenta asinkrona komunikacija

-socket

Streaming

Kada dvije sljedne poruke imaju vremensku povezanost. Specificira se maksimalno kašnjenje.

Npr audio ili video stream.

Multicasting

Način komunikacije u kojoj pošiljatelj šalje podatke na više primatelja.

Imamo dva pristupa za multicasting:

- Definiranjem stabla slanja od pošiljatelja do više primatelja (P2P)

- Protokoli epidemije (širi poruku preko velikog distribuiranog sistema)

6. Big data

Za objašnjene pojma Big data koristi se 3V model. Big data su velike infomracije (TB,PB), često

izmjenjive i u različitim formatima koje zahtijevaju posebne načine obrade.

- Volume - velika količina podataka (u TB , PB …)

- Velocity – često se izmjenjuju

- Variety – različitih formata

5.1 Map reduce

MapReduce je programski model za obradu velikih skupova podataka. Radi se o distribuiranom

načinu obrade podataka kod kojega se počeni skup podatak dijeli na više manjih skupina koje se

zatim paralelno obrađuju na velikom broju računala (klasteru).

Ovakav način obrade podataka omogućava dobivanje jako brzih rezultata.

Sastoji se od MAP (filtriranje i sortiranje) i Reduce (sumiranje) procesa

Način rada :

1. Map reduce biblioteka razdvaja ulazne podatke na M dijelova

2. Program odabire M worker čvorova za Map operaciju i R čvorova za Reduce operaiju.

Page 32: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

29

3. Worker čvorovi koji obavljaju Map operaciju učitavaju podatke , parsiraju key-value parove i

prosljeđuju je korisničkoj definiranoj Map funkciji.

4. Međurezultati se pohranjuju na disk i obavještava se master čvor o lokaciji.

5. Master čvor pomoću RPC učitava pohranjene podatke u Reduce čvorove. Reduce čvor sortira

podatke.

6. Reducer obavlja sumiranje podataka.

7. Kada svi maperi i reduceri zavše sa radom , obavještava se korisnički program

Page 33: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

30

5.2 Google Distributed File System (GFS)

Google file system – razvijen za potrebe googl-a. Stotine terabajta podataka su raspoređeni na

stotine tisuća računala.

Sustav je organiziran tako da ima jedan master čvor i chunk servere (koji sadže listu podataka i

komuniciraju sa klijentima).

Datoteke se dijele na komadiće (chunk) Svaki chunk datoteke je repliciran je na 3 chunk servera.

Master sadrži samo metapodatke (podatke o tome gdje se pojedini dijelovi datoteke nalaze)

Čitanje

Klijent zahtjeva od mastera ime dadoteke i offset. Master šalje klijentu adresu željenog chunk-a

datoteke. Klijent nakon toga kontaktira direkno chunk server. Ako chunk server ne odgovara ,

klijent traži od master servera adresu druge replike. Ako više klijenata pristupa istovremeno

istom chunku ,master ih usmjerava na različite replike

Pisanje

Kod pisanja treba paziti na konzistenciju među replikama. Jedna replika na jednom chunk

serveru se proglašava primarnim chunkom. Master vodi računa koja je replika primarna.

Klijent od master čvora traži lokaciju chunka. Master šalje klijentu njegovu lokaciju.

Klijent svim replikama šalje podatke koje oni pohranju u cache.

Kada sve replike potvrde primitak podataka , klijent šalje naredbu WRITE masteru.

Master prosljeđuje write naredbu svim replikama i one izvrše pisanje te šalju prikladan odgovor.

Ako dođe do greške postupak se ponavlja od klijentovog slanja podataka.

Page 34: 10/11/2016 informacijske sustave - Računarstvo 550. semestar... · 2017-03-29 · Autonomne komponente distribuiranih sustava međusobno surađuju. Kranjim korisnicima se ... kod

31

5.3 Handoop

Google za svoje podatke koristi MapReduce i GFS , ali ne nudi open source implementaciju.

Handoop je open source framework koji služi za izradu aplikacje koja će se odvijati na

klasterima.

Svojstva :

- Reduantan i pozudan

- Pojednostavljuje programiranje distribuiranih aplikacija

- Koristi klastere koji se sastoje od običnih računala.

- Implementira MapReduce i Hadoop DFS

- napiasn u javi, koriste ga google facebook amazon cloud services …

5.4 Compute Unified Device Arhitecture

CUDA je programerski model tvrtke nVidia koja omogućava izradu programa opće namjene koji

koriste resurs grafičke kartice za paralelno računanje.

CPU GPU

Mali broj jezgri Veliki broj jezgri

Velika količina cache memorije Mala količina cache memorije

Dobar za složene proračune (task paralelizam) Dobar za „data“ paralelizam