4b77da58b8d75fd686fd81b296f4fc91.ppt
- Количество слайдов: 164
RASPODIJELJENI SUSTAVI
POČETCI Dva trenda uvjetuju razvoj raspodijeljenih sustava: Razvoj sve jeftinijih računala koja imaju sve veće mogućnosti Razvoj računalnih mreža
POJEFTINJENJE + POVEĆANJE MOGUĆNOSTI RAČUNALA Do otprilike osamdesetih godina prošlog stoljeća: velika i skupa računala. Čak i mini računala u tom periodu koštaju desetke tisuća (tadašnjih) dolara. Od osamdesetih godina prošlog stoljeća kreće trend eksponencionalnog rasta procesorske snage uz rapidno padanje cijena
POJEFTINJENJE + POVEĆANJE MOGUĆNOSTI RAČUNALA Od računala koje košta desetke milijuna dolara i koje može izvršiti jednu instrukciju u sekundi došlo se u relativno kratkom vremenu do računala koje košta tisuću dolara i obavlja 10 milijuna instrukcija u sekundi -> ovim je odnos cijena/performance uvećan za vrtoglavih 1011 puta.
RAZVOJ RAČUNALNIH MREŽA LAN i WLAN mreže omogućavaju razmatranje umreženih računala kao “komadića” jednog šireg konteksta koji teži prema sintagmi “mreža je računalo!”
PRVI POGLED! Računala koja obavljaju zajednički zadatak i koja međusobno komuniciraju računalnom mrežom -> raspodijeljeni sustav! (početna definicija) Programska podrška – kritični element -> Raspodijeljeni sustavi zahtjevaju bitno drugačiju programsku podršku od centraliziranih sustava.
BOLJA DEFINICIJA Raspodijeljeni sustav je kolekcija neovisnih računala koji zajednički obavljaju zadatke na način da ih korisnik može razmatrati kao jedinstveni sustav. Alternativno: Raspodijeljeni sustav je kolekcija neovisnih sustava koji zajednički obavljaju postavljene zadatke.
JOŠ JEDNA DEFINICIJA Raspodijeljeni sustav je kolekcija neovisnih procesa koji zajedničkim radom ostvaruju postavljeni cilj. Kako procesi komuniciraju → porukama
Raspodijeljeni sustav je skup neovisnih računala prezentiran korisniku kao jedan koherentan sustav.
PREDNOSTI I NEDOSTATCI RASPODIJELJENIH SUSTAVA
PREDNOSTI NAD CENTRALIZIRANIM SUSTAVIMA Često ekonomska pozadina prednosti: Do osamdesetih godina prošlog stoljeća vrijedilo je pravilo (Grosch-ovo) pravilo da je “moć (broj instrukcija u jedinici vremena) procesora proporcionalna kvadratu njegove cijene”. Ili: ako biste izdvojili duplo više novca dobili biste 4 puta bolje performance. Razvojem mikroprocesora Grosch-ovo pravilo više ne vrijedi. Ulaganjem duplo više novca često se može se dobiti samo isti procesor koji radi na nešto većoj frekvenciji.
PREDNOSTI NAD CENTRALIZIRANIM SUSTAVIMA Rezultat ovakvog razvoja je da se ne isplati raditi veliko računalo sa snažnim procesorom već treba pronaći način kako zajednički upogoniti više jeftinijih procesora. Računalom podržani suradni rad je prirodno okruženje za realizaciju kroz neku tehnologiju raspodijeljenog sustava Veća robustnost – Kvar dijela sustava najčešće samo usporava a ne zaustavlja rad sustava.
PREDNOSTI NAD CENTRALIZIRANIM SUSTAVIMA Veća mogućnost nadogradnje u komparaciji sa centraliziranim sustavima. Mogućnost nadogradnje malim koracima (dodavanjem novih procesora prema potrebi). Brzina: dovoljnim multipliciranjem procesora postići će se uvijek veća brzina u usporedbi s bilo kojim jednoprocesorskim sustavom. Ravnomjerno opterećenje računalne mreže – opterećena računala se rasterećuju prijenosom obrade na računala sa manjim opterećenjem.
PREDNOSTI NAD CENTRALIZIRANIM SUSTAVIMA Smanjeni zahtjevi za hardverom – dovoljno je imati nekoliko računala sa nadprosječno kvalitetnih hardverskim osobinama, a zatim se sve hardverski zahtjevnije obrade preusmjeravaju na ta računala. Smanjene zahtjeva za programskom podrškom – skupi programski proizvodi instaliraju se na nekoliko računala, a zatim se sve potrebne obrade preusmjeravaju na jedno od tih računala; na taj način se smanjuje potreban broj licenci i cijena uporabe programske podrške.
NEDOSTATCI RASPODIJELJENIH SUSTAVA Programska podrška: složeniji razvoj programske podrške Problemi računalne mreže Sigurnost podataka
OSNOVNE KARAKTERISTIKE RASPODIJELJENIH SUSTAVA
OSNOVNE KARAKTERISTIKE Dijeljenje resursa Otvorenost Istovremenost Otpornost na pogreške Transparentnost
DIJELJENJE RESURSA Resursi: Diskovi velikog kapaciteta, pisaći, Alati za razvoj, biblioteke objekata ili potprograma Baze podataka Novi pojmovi: upravitelj resursa i korisnik resursa Upravitelj resursa – programski modul koji upravlja određenim resursom Korisnik resursa – proces koji traži korištenje resursa
DIJELJENJE RESURSA Korisnici resursa komuniciraju s upraviteljem resursa da bi osigurali korištenje resursa. Modeli komunikacije Klijent-poslužitelj Objektni model Partnerski model
OTVORENOST Otvorenost (općenita definicija) – mogućnost proširivanja Razine otvorenosti: Sklopovska razina (npr. dodavanje novih uređaja, memorije, komunikacijskih uređaja. . . ) Programska razina (npr. proširivanje funkcionalnosti, dodavanje novih djeljivih resursa, novih komunikacijskih protokola. . . )
OTVORENOST Općenita pretpostavka otvorenosti je poštivanje normi koje definiraju sustav na način da se može proširivati neovisno o proizvođaču opreme ili programske podrške. Otvorenost raspodijeljenih sustava: mogućnost dodavanja novih usluga bez ugrožavanja dijeljenja postojećih resursa.
ISTOVREMENOST Razlikovati “istovremenost” i istovremenost! Jednoprocesorsko računalo postiže “istovremenost”: naizmjenično izvršavanje procesa Ukoliko imamo N procesa i N procesora moguće je postići pravu istovremenost. U idealnom slučaju time postižemo N-terostruko poboljšanje učinkovitosti.
ISTOVREMENOST Prirodna karakteristika raspodjeljenog sustava koja je posljedica posjedovanja više procesora (na više računala) u sustavu. Ovakva podjela rada rezultira paralelnim izvršavanjem procesa. Problem: kako uskladiti paralelne procese?
TRANSPARENTNOST Transparentnosti pristupa (access) – prikrivanje razlike u prikazu podataka (različite hardverske osnove računala koriste različite formate u prikazu podataka) i načina korištenja resursa. Transparentnost lokacije (location) - korisnik nije upoznat sa fizičkom lokacijom resursa koji sadrži podatke koje korisnik upotrebljava.
TRANSPARENTNOST Transparentnost migracije (migration) – promjena fizičke lokacije resursa ne utječe na način pristupa resursima. Transparentnost relokacije (realocation) – ukoliko je omogućena promjena lokacije resursa u trenutku kada se resurs koristi.
TRANSPARENTNOST Transparentnost replikacije (replication) – mogućnost postojanja više kopija originalnih podataka sa čim korisnik ne mora biti upoznat. Transparentnost konkurentnosti (concurrency) – mogućnost korištenja skupa podataka za više korisnika istovremeno pri čemu to korisnici ne opažaju.
TRANSPARENTNOST Transparentnost pogreške (failure) – korisnici ne opažaju nefunkcionalnost određenog resursa kao ni postupak oporavka sustava u slučaju kvara. Transparentnost postojanosti (persistance) – korisnik nije upoznat sa trenutnom lokacijom podataka koji koristi (npr. podaci na kojima se izvodi manipulacija u bazi podataka kopiraju se u glavnu memoriju, obranuju i rezultat se pohranjuje u bazu podataka dok korisnik taj postupak vidi kao izravnu operaciju u bazi podataka).
OTPORNOST NA POGREŠKE Udvajanje sklopovlja (jednostavni načini korištenja): Identični sustavi gdje dio služi kao rezerva u slučaju kvara onih koji izvršavaju procese Istovremeno izvršavanje istih procesa → ukoliko nije isti izlaz dogodila se pogreška Kritičan faktor su i pogreške mreže → oblikovanje računalnih mreža otpornih na ispade.
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Raspodijeljeni sustavi mogu se koristiti za različite vrste računala spojenih u računalnu mrežu. Različitosti računala uvjetuju razinu složenosti raspodijeljenog sustava. Za potrebe ovih razmatranja razlikujemo: 1. Multiprocesorske računalne sustave 2. Multiračunale računalne sustave.
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Multiprocesorski sustavi imaju jedan memorijski adresni prostor koji koristi više procesora, dok za multiračunalni sustavi svaki procesor koristi svoj zasebni adresni prostor. Arhitektura sustava može se zasnivati na sabirnicama (bus) i na prekidačima (switch).
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Multiračunalni sustavi mogu bit homogeni i heterogeni. Homogeni sustavi imaju skup računala istih karakteristika jer koriste procesore (struktura procesora je identična) i imaju jednu mrežnu tehnologiju. Heterogeni sustavi sastoje se od velikog broja različitih računala koja su spojena na različite mreže.
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Razlika multiprocesorskih i multiračunalnih sustava
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Multiprocesorski računalni sustavi Svi procesori koriste jedan adresni prostor. Ukoliko se promjena vrijednosti memorijske lokacije od jednog procesora može u 1 mikrosekundi prikazati na drugom procesoru kažemo da imamo koherentan sustav. Također se koristi cache memorija. Svaki proces ima malu brzu cache memoriju za pohranu vrijednosti koje trenutno obrađuje. Cache memorijom se rasterećuje sabirnica, ali se pojavljuje problem ažuriranja vrijednosti cache memorije ukoliko dva procesora pohranjuju vrijednost na istoj memorijskoj lokaciji.
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Primjena cache memorije Primjena velikog broja procesora uvjetovat će podjelu memorije u module kako bi se poboljšala svojstva sustava. Pri radu sa memorijom svaki procesor može pristupati memorijskim modulima korištenjem prekidača.
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Homogeni multiračunalni sustavi Kako sva računala imaju istu strukturu jednostavnija je njihova upotreba u RS-u. Ostaje jedino problem načina povezivanja i komunikacije računala. Pri povezivanju računala moguća je upotreba strukture rešetke (grid) ili hiperkocke (hypercube).
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Homogeni multiračunalni sustavi grid hiperkocka
SKLOPOVSKE POSTAVKE RASPODIJELJENIH SUSTAVA Heterogeni računalni sustavi Sastoje se od većeg broja različitih računala spojenih na mrežu putem različitih mrežnih struktura. Primjenom RS-a generira se sloj (middleware) neovisan o hardveru računala koje je spojeno na mrežu i komunikacija se izvodi primjenom tog sloja. Na taj način se izbjegavaju problemi koji nastaju zbog različitosti računala.
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Razlikujemo sljedeće tipove raspodijeljenih sustava: 1. Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu 2. Raspodijeljeni sustavi zasnovani na mrežnom operacijskom sustavu 3. Raspodijeljeni sustavi zasnovani na middleware -u
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu Multiprocesorski RS omogućuju povećanje performansi sustava upotrebom više CPU-a. Aplikacije koje pokrećemo ne uočavaju upotrebu više CPU pri njihovom izvođenju. Komunikacija u višeprocesorskom sustavu ostvaruje se manipulacijom podataka između dijeljenih memorijskih lokacija za više procesora, a jedini uvjet koji mora biti zadovoljen je onemogućavanje istovremenog pristupa jednoj memorijskoj lokacija dva ili više CPU istovremeno.
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu Multiračunalni raspodijeljeni sustavi omogućuju rad potpuno različitih računalnih sustava, pa je i njihova kompleksnost znatno veća u odnosu na multiprocesorske raspodijeljene sustave.
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Mrežni operacijski sustavi se prilagođavaju operacijskom sustavu svakog računala i ne stvaraju sliku jedinstvenog sustava. Mrežni operacijski sustavi svako računalo vide posebno i pružaju mrežne servise operacijskom sustavu na svakom mrežnom računalu. Komunikacija u mrežnim operacijskim sustavima usmjerena je na prijenos poruka između klijent računala i računala namijenjenih pružanju usluga drugim računalima (npr. data server).
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Mrežni operacijski sustavi
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Middleware je dodatni sloj programske podrške koji se pozicionira između raspodijeljenih aplikacija i mrežnih operacijskih sustava. Middleware je namijenjen usklađivanju različitosti između mrežnih operacijskih sustava. Middleware se primjenjuje u raspodijeljenom datotečnom sustavu, zatim pri izvedbi poziva na udaljenom računalu (Remote Procedure Call – RPC) ili za rad raspodijeljenih objekata.
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Usluge middleware-a su: 1. Komunikacijske usluge – maskiranje prijenosa podataka niske razine. 2. Imenovanje – omogućavanje pristupa i dijeljenje resursa. 3. Postojanost podataka. 4. Raspodijeljene transakcije – izvođenje više zasebnih operacija koje se moraju kompletno izvesti da bi se završila raspodijeljena transakcija. 5. Sigurnost.
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA Opća struktura middleware-a
OPERACIJSKI SUSTAVI RASPODIJELJENIH SUSTAVA
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Osnovna razlika raspodijeljenih sustava i lokalnog sustava je komunikacija među procesima. Zasniva se na primjeni poruka niskog nivoa (bliskom sklopovlju računala) korištenjem postojeće mrežne strukture. Komunikacija dva računala izvodi se primjenom strukture slojeva. Svaki sloj izvodi set aktivnosti i čini osnovu za primjenu višeg sloja. Niži slojevi usmjereni su prema hardveru, a viši prema aplikacijama.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Slojevi i konektori: Slojevi: različite razine apstrakcije koje rješavaju neovisne zadatke Konektori: protokoli interakcije susjednih slojeva Interakcija se odvija samo između susjednih čvorova!
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Različiti pogledi na koncepciju slojevi/konektori Klasična arhitektura aplikacije Slojevi: 1. Korisničko sučelje 2. Sloj aplikacijske logike 3. Sloj podataka Konektori: mehanizmi komunikacije korisničko sučelje <-> sloj aplikacijske logike i sloj aplikacijske logike <-> sloj podataka
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI model Pri komunikaciji dva računala koristi se više slojeva za prijenos podataka. Slojevi se mogu različito definirati u skladu sa njihovim funkcionalnostima. Opće prihvaćeni prijedlog strukture slojeva predložen je od International Standard Organization (ISO). OSI model omogućuje komunikaciju otvorenih sustava (sustavi koji koriste propisane standarde – pravila, formate, sadržaj i značenje poruka koje se šalju i primaju).
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA ISO model Pravila za otvorene sustave su formalizirana u protokolima. Protokoli mogu biti connectionoriented (potrebna je uspostava veze prije slanja i primanja podataka) i connectionless (veza ne mora biti uspostavljena da bi se poruke mogle slati i primati)
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA ISO model koristi se 7 slojeva. Kada proces jednog računala šalje poruku drugom računalu aplikacijski sloj generira poruku i prosljeđuje prezentacijskom sloju koji poruku prosljeđuje nižem nivou. Pri tom svaki sloj dodaje header na početak poruke. Primljena poruka se pomoću headera poruka može prenijeti do procesa kojem je namijenjena.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI Fizički sloj definira standarde koji su potrebni za pristup fizičkom mediju tj. mreži. U ovom se sloju definiraju parametri kao što su razina napona, oblik i struktura priključnica, oblik signala i način prijenosa.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI Podatkovni sloj osigurava pouzdani prijenos podataka od čvora do čvora mreže. U ovom se sloju vrši pakiranje podataka u okvire koji se zatim šalju prijamnoj stanici gdje se oslobađaju okvira. U ovom sloju osigurava se mehanizam provjere ispravnosti prijenosa podataka.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Zadatak OSI mrežnog sloja je prijenos podataka između prijenosnih slojeva krajnjih stanica. Ovaj sloj određuje prijenosne putove i obavlja funkcije uspostavljanja, održavanja i raskida veze. Nastoji se odabrati put od početnog do krajnjeg čvora koji će rezultirati najbržim mogućim prijenosom podataka. Mrežni sloj pruža i uslugu prijenosa podataka izmeđusobno različitih mreža.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI Prijenosni sloj prima podatke od sjedničkog sloja, po potrebi ih razbija u manje dijelove i predaje ih mrežnom sloju. Također, ovaj sloj brine o protoku podataka s ciljem da se ne dogodi da brži stroj zaguši sporiji stroj podacima.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI sjednički sloj osim usluge prijenosa podataka daje mogućnost dodatnih usluga korisnih kod nekih aplikacija. Ovaj sloj pruža uslugu obnavljanja neplanirano prekinutih veza na način da se prijenos nastavi od mjesta prekida poruke, umjesto ponovnog prijenosa cijele poruke.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI Predodžbeni sloj se bavi sintaksom i semantikom podataka koji se prenose. Ovaj sloj omogućuje komunikaciju računala koja na različite načine prikazuju podatke, što je izvedivo standardiziranjem načina kodiranja podataka koji se prenose mrežom. Iz ovoga slijedi da predodžbeni sloj pretvara tipove podataka iz tipova koji se koriste kod prenošenja mrežom u tipove koji se koriste u računalu i obratno.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA OSI aplikacijski sloj obuhvaća procese koji se izvršavaju na razini korisnika. Ovaj sloj sadrži upravljačke funkcije i mehanizme potrebne za izvršavanje aplikacija i njihovo raspodijeljeno korištenje.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Primljene poruke sa headerim-a
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Primjenjujemo sljedeće modele komuniciranja: 1. Poziv procedure na udaljenom računalu (Remote Procedure Call – RPC) 2. Poziv metode na udaljenom računalu (Remote Method Invocation – RMI) 3. Međusloj usmjeren prijenosu poruka (Message. Oriented Middleware – MOM) 4. Primjena toka (Stream).
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu omogućuje prijenos obrade na drugo računalo pokretanjem odgovarajuće procedure. Za vrijeme izvođenja procedure na drugom računalu proces koji je inicirao poziv je suspendiran i čeka rezultat izvođenja procedure. Kada pozvana procedura vrati rezultat rada procedure proces na lokalnom računalu nastavlja izvođenje, pri čemu je cijeli postupak nevidljiv za programera.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu Koraci za izvođenje RPC poziva su: 1. klijent proces poziva proceduru i generira klijent stub, 2. 3. 4. 5. klijent stub generira poruku i prosljeđuje je lokalnom OS-u, klijent OS šalje poruku udaljenom računalu (serveru), server OS prima poruku i prosljeđuje je server stubu, server stub raspakira analizira parametre poruke i generira sistemski poziv na serveru, 6. server izvodi poziv i vraća rezultat server stubu, 7. server stub pakira poruku i prosljeđuje je server OS-u, 8. server OS šalje poruku klijent računalu, 9. klijent OS poruku prosljeđuje klijent stubu, 10. klijent stub raspakira poruku i prosljeđuje rezultat klijent procesu.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu Koraci za izvođenje RPC poziva
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu Asinhroni RPC poziv omogućuje klijent procesu nastavak izvođenja aktivnosti koje se ne odnose na rezultat RPC poziva, pa klijent ne mora biti suspendiran za vrijeme izvođenja RPC poziva. Standardni RPC Asinkroni RPC
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv procedure na udaljenom računalu Asinkrono izvođenje procedure na udaljenom računalu
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv metode na udaljenom računalu primjena raspodijeljenih objekata opisanih podacima koje sadrže (state) i operacijama na podacima (method). Metode su dotupne primjenom sučelja (interface). Raspodijeljeni sustavi dozvoljavaju smještaj sučelja na jedno računalo i objekta na drugo računalo.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv metode na udaljenom računalu Objekti na udaljenom računalu
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Poziv metode na udaljenom računalu: Klijent poziva udaljeni objekta putem sučelja, te se zahtjev prosljeđuje na server gdje se prosljeđuje objektu. Nakon što klijent pristupi objektu on pokreće izvođenje metode na objektu. Korišteno sučelje može biti definirano u trenutku pokretanja aplikacije na klijentu pa se takav način upotrebe zove static invocation. Ukoliko sučelje nije unaprijed poznato koristi se dinamic invocation. U tom slučaju aplikacija odabire željenu metodu te se dinamički određuje potrebano sučelje za selektiranu metodu.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Porukama se izbjegava ograničenje blokiranja klijent procesa pri RPC ili RMI pozivu na serveru. Primjer primjene poruka je slanje elektroničke pošte. Aplikacija generira poruku koja se prosljeđuje putem lokalne mreže prema komunikacijskom serveru (mail serveru). Komunikacijski server prosljeđuje poruku drugom komunikacijskom serveru koji prihvaća poruku i prosljeđuje aplikaciji korisnika u trenutku kada se korisnik priključi na komunikacijski server.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Princip rada elektroničke pošte primjenom prijenosa poruka. Elektronička pošta je primjer kontinuirane komunikacije (persistant communication) gdje se poruka pohranjuje na serveru sve dok se ne steknu uvjeti za njen daljnji prijenos na drugi server.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Komunikacija porukama može biti sinhrona i asinhrona. Kod asinhrone komunikacije pošiljalac nastavlja izvođenje nakon slanja poruke, a kod sinhrone pošiljalac je blokiran sve dok poruka nije spremljena u bufffer primalaca ili je primatelj nije primio.
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Kontinuirana asinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Kontinuirana sinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Transient asinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Receipt-based transient sinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Delivery-based transient Sinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Međusloj usmjeren prijenosu poruka Response-based transient sinkrona komunikacija
KOMUNIKACIJE U RASPODIJELJENIM SUSTAVIMA Primjena toka Tok (stream) se koristi u radu sa multimedijalnim dokumentima Razlikujemo kontinuirane i diskretne medije. Za prikaz kontinuiranih medija važna je brzina prijenosa podataka dok za diskretne medije brzina nema ključnu važnost. Za implementaciju kontinuiranih medija u raspodijeljenim sustavima koristi se tok podataka (data stream).
KLIJENT/POSLUŽITELJ SUSTAVI
DEFINICIJA Sustavom zasnovanim na tehnologiji klijentposlužitelj odnosno sustavom klijent-poslužitelj smatra se svaki sustav koji se može raščlaniti na dva dijela: prvi dio (klijent) koji traži obavljanje nekog zadatka i drugi dio (poslužitelj) koji traženi zadatak obavlja.
IDEJA KLIJENT-POSLUŽITELJ Ideja sustava klijent-poslužitelj nastala je iz paradigme strukturiranog ili modularnog programiranja. U osnovi paradigme modularnog programiranja je razdvajanje programa u manje programske jedinice, module koji imaju određeni stupanj autonomije. Paradigma modularnog programiranja omogućila je brži razvoj i lakše održavanje programske podrške. Sustavi klijent-poslužitelj počeli su se razvijati s idejom da se moduli ne trebaju nužno izvršavati na istom računalu. Moduli se mogu izvršavati na različitim računalima, a njihova komunikacija vrši se posredstvom računalne mreže. U ovakvoj arhitekturi, modul koji poziva na izvršavanje neki drugi modul je klijent (onaj koji traži izvršavanje neke usluge), a pozvani modul je poslužitelj (onaj koji traženu uslugu obavlja).
FAZE KOMUNIKACIJE KLIJENT POSLUŽITELJ Komunikaciju klijenta i poslužitelja možemo podijeliti na fazu zahtjeva u kojoj klijent poslužitelju šalje zahtjev za obavljanjem usluge, fazu obrade u kojoj se zahtjev obrađuje i fazu slanja rezultata obrade. Klijent odnosno poslužitelj mogu biti računala ali i neki drugi elementi, primjerice programske komponente.
KLIJENT – POSLUŽITELJ KOMUNIKACIJA
FUNKCIJE KLIJENTA osiguravanje korisničkog sučelja provjera sintaksne ispravnosti unesenih podataka translacija korisnikovog upita u oblik standardiziran protokolima prijenosa podataka slanje upita poslužitelju primanje poslužiteljevog odgovora translacija odgovora u oblik čitljiv korisniku prikaz rezultata korisniku
FUNKCIJE POSLUŽITELJA prihvat klijentovog zahtjeva obrada zahtjeva slanje rezultata klijentu
“ISTOVREMENA” OBRADA ZAHTJEVA VIŠE KLIJENATA
KARAKTERISTIKE MODELA KLIJENT-POSLUŽITELJ aplikacije se grade iz barem dvije cjeline: prednjeg dijela kojem je osnovni zadatak interakcija s korisnikom i stražnjeg dijela koji raspolaže resursima koje klijenti dijele okruženje klijent-poslužitelj je heterogeno, tj. sklopovska oprema i operacijski sustavi klijenta i poslužitelja ne moraju biti jednaki jedan poslužitelj može istovremeno obrađivati zahtjeve više klijenata a jedan klijent može tražiti obavljanje različitih usluga od različitih poslužitelja.
KLIJENT POSLUŽITELJ MODEL Korisničko sučelje Aplikacijska logika Red podataka Aplikacija Osnovni elementi aplikacije Raspodjela zadataka između klijenta i poslužitelja čini bitan element pri kreiranju svake aplikacije koja se izvršava u okruženju klijentposlužitelj. Može se reći da poslužitelj gotovo uvijek ima ulogu čuvanja podataka a klijent osigurava korisničko sučelje. Postavlja se pitanje gdje smjestiti aplikacijsku logiku?
KLIJENT-POSLUŽITELJ MODEL U početku razvoja modela klijent-poslužitelj, aplikacijska logika čvrsto se vezivala ili za klijenta ili za poslužitelja. Tako dolazimo do pojmova "debelog" odnosno "tankog" klijenta i "debelog" odnosno "tankog" poslužitelja. Oblikovatelji klijent-poslužitelj aplikacija su se na početku oblikovanja morali odlučiti za jednu od sljedeće dvije opcije: "tanki" klijent - "debeli" poslužitelj "debeli" klijent - "tanki" poslužitelj Ovakve arhitekture sustava klijent-poslužitelj nazivaju se dvorednim arhitekturama sustava klijentposlužitelj (engl. 2 -tier client-server arhitecture)
KLIJENT-POSLUŽITELJ MODEL Klijent Poslužitelj Korisničko sučelje Usluge Aplikacijska logika a) "Tanki" klijent - "debeli" poslužitelj Klijent Poslužitelj Korisničko sučelje Usluge Aplikacijska logika b) "Debeli" klijent - "tanki" poslužitelj 2 -redne arhitekture klijent-poslužitelj
KLIJENT-POSLUŽITELJ MODEL 2 -redna arhitektura ima nedostatke bez obzira gdje se smjesti element aplikacijske logike. Kombinacija "tanki" klijent - "debeli" poslužitelj ima najveći nedostatak u preopterećivanju poslužitelja što rezultira smanjivanjem brzine izvršavanja aplikacija pri povećanju broja korisnika sustava. Kod kombinacije "debeli" klijent -"tanki" poslužitelj problemi nastaju kada se treba nešto promijeniti unutar aplikacijske logike jer je potrebno izvršiti promjene na svim klijent računalima što povećava cijenu održavanja sustava.
KLIJENT-POSLUŽITELJ MODEL Izvedba sustava klijent-poslužitelj u 2 -rednoj arhitekturi preporuča se kod izrade aplikacija kojima neće pristupati više od stotinjak korisnika, koje će koristiti samo jednu bazu podataka i koje će se izvršavati u okruženju brze i sigurne računalne mreže. Izrada zahtjevnijih aplikacija u ovoj arhitekturi ne preporuča se zbog već navedenih nedostataka ove arhitekture. Nedostaci 2 -redne arhitekture klijent-poslužitelj riješeni su odvajanjem elementa aplikacijske logike u zasebni red čime dolazimo do troredne arhitekture sustava klijent poslužitelj (engl. 3 -tier client-server architecture).
KLIJENT-POSLUŽITELJ MODEL KLIJENT APLIKACIJSKI POSLUŽITELJ PODATAKA Korisničko sučelje Aplikacijska logika Podaci 3 -redna arhitektura klijent-poslužitelj Trorednom arhitekturom klijent-poslužitelj olakšano je obavljanje izmjena unutar aplikacijske logike ali i unutar drugih elemenata sustava. Izmjene izvršene unutar aplikacijske logike ne moraju povlačiti potrebu za izmjenjivanjem korisničkog sučelja ili elementa podataka a vrijedi i obratno. Nadalje, prednost 3 -redne arhitekture klijent-poslužitelj ogleda se i u mogućnosti repliciranja srednjeg reda aplikacije odnosno instalacije aplikacijske logike na više računala (aplikacijskih poslužitelja) čime se dodatno rasterećuje sustav i ubrzava rad aplikacije. Daljnjom parcijalizacijom dolazimo do n-rednih arhitektura.
PARTNERSKE RAČUNALNE MREŽE Partnerske računalne mreže su raspodijeljeni sustavi koji se sastoje od međusobno povezanih čvorova koji se mogu samostalno organizirati u mrežne topologije sa svrhom dijeljenja raspoloživih resursa kao što su korisnički podaci, procesorsko vrijeme, kapacitet za pohranu podataka ili mrežna propusnost, te koji se mogu samostalno adaptirati na ispade funkcionalnosti i nepredvidive dolaske i odlaske čvorova na mreži, uz zadržavanje prihvatljive razine prospojenosti i performansi bez potrebe za nadzorom, kontrolom i podrškom iz jednog središnjeg mjesta.
PARTNERSKE RAČUNALNE MREŽE Svojstva: Svaki čvor je ravnopravan, uključujući mogućnosti prihvaćanja upita o podacima od strane korisnika ili drugih čvorova Komunikacija između čvorova je izravna (bez međukoraka kao što su poslužitelji) Čvorovi samostalno prikupljaju informacije o dostupnosti drugih čvorova Pojedinačni čvorovi imaju u svom lokalnom sustavu za pohranu na raspolaganju samo dio podataka, odn. podskup ukupnih podataka dostupnih na mreži
PARTNERSKE RAČUNALNE MREŽE Partnerske računalne mreže vs. Klijent – poslužitelj: Osobine partnerskih računalnih mreža su dijametralno suprotne osobinama klasičnih klijentskoposlužiteljskih sustava, u kojima postoji jasna razlika između čvorova koji pohranjuju i nude sadržaj odn. podatke (poslužitelji) te čvorova koji podatke potražuju, obrađuju ili stvaraju (klijenti).
PARTNERSKE RAČUNALNE MREŽE
PARTNERSKE RAČUNALNE MREŽE Problemi: Decentraliziranost partnerskih mreža donosi probleme koji ne postoje u klijentskoposlužiteljskim mrežama: praćenje aktivnih čvorova u mreži (jer se čvorovi mogu dinamički priključivati u mrežu i odlaziti iz mreže) te propagiranje korisničkih upita kroz mrežu (jer svaki čvor ima samo dio podataka). Različite implementacije partnerskih sustava rješavaju ove probleme na različite načine.
PARTNERSKE RAČUNALNE MREŽE Modifikacije: Prisutan je središnji poslužitelj koji prikuplja informacije o čvorovima (status čvorova) Središnji poslužitelj prikuplja informacije i o tome koje podatke čvorovi posjeduju Partnerske mreže s modifikacijama – hibridne partnerske mreže
PARTNERSKE RAČUNALNE MREŽE Primjeri: Napster Gnutella Bit. Torrent
PARTNERSKE RAČUNALNE MREŽE Napster: Prvi popularni sustav partnerskih mreža za razmjenu datoteka (i ujedno prvi koji je donio lošu reputaciju ovakvim sustavima). Postojanje jednog središnjeg poslužitelja koji prima i pohranjuje informacije o svim spojenim čvorovima te sadržajima koji ovi nude → vrlo brza i precizna pretraživanja (izvođena lokalno na poslužitelju). Sami podaci – datoteke odn. dijelovi datoteka –prenose se u izravnoj komunikaciju između više korisnika istovremeno. Zbog toga što ovisi o postojanju središnjeg poslužitelja, Napster danas ne bi bio svrstan u kategoriju pravih partnerskih mreža
PARTNERSKE RAČUNALNE MREŽE Povezanost čvorova u mreži Napster:
PARTNERSKE RAČUNALNE MREŽE Gnutella: veliki broj legalnih Open-source klijenata koji komuniciraju istim protokolom i omogućavaju spajanje u “Gnutella mrežu”. za razliku od Napstera, rad Gnutella mreže je od početka potpuno decentraliziran. Novi čvorovi pri početku rada testiraju dostupnost unaprijed poznatih čvorova (lista poznatih čvorova se dinamički osvježava) te izabiru nekoliko čvorova na koje se priključuju. Izbor čvorova za priključivanje se izvodi tako da optimizira dostupnost podataka te jedan čvor u pravilu nije spojen na više od deset drugih čvorova istovremeno.
PARTNERSKE RAČUNALNE MREŽE Gnutella: Postoje “posebni” čvorove koji su istovremeno spojeni na vrlo veliki broj drugih čvorova (ovisno o kapacitetu mrežne veze) te mogu ubrzati dohvat rezultata upita jer upite propagiraju na veliki broj čvorova istovremeno. Napomena: Gnutella mreža može opstati i bez ovih čvorova!
PARTNERSKE RAČUNALNE MREŽE Bit. Torrent: Danas najpopularniji sustav za razmjenu datoteka putem stvaranja partnerskih mreža razvijen je s ciljem da autorima sadržaja olakša distribuciju velikih datoteka iskorištavanjem mrežnih kapaciteta klijenata koji su započeli preuzimanje datoteke za daljnju distribuciju preuzetih dijelova datoteke. hibridni sustav u kojem središnji poslužitelj sadrži listu čvorova koji su u procesu preuzimanja datoteka (te informacije o tome koje dijelove datoteka imaju pojedini čvorovi), no za razliku od Napstera ne postoji samo jedan globalni poslužitelj već svaki autor odn. distributer sadržaja može uspostaviti svoj poslužitelj.
PARTNERSKE RAČUNALNE MREŽE Bit. Torrent: “Globalni” poslužitelji sadrže samo informacije o datotekama i čvorovima koji ih preuzimaju, ali ne i sadržaj datoteka, koji se između čvorova prenosi u partnerskom načinu rada. Zbog toga što nemaju sadržaj datoteka nego samo “prate” metapodatke o datotekama i čvorovima, ovi poslužitelji se nazivaju trackers.
PARTNERSKE RAČUNALNE MREŽE Primjer Bit. Torent partnerske mreže
PARTNERSKE RAČUNALNE MREŽE Bit. Torrent: Kako različite datoteke mogu biti prijavljene kod različitih trackera, ne postoji jedna globalna Bit. Torrent mreža, već se radi o nizu malih nezavisnih grozdova čvorova koji su okupljeni oko trackera. Unatoč tome što postoje kritične točke u funkcioniranju mreže čiji ispad ili prekid rada onemogućavaju dostupnog sadržaja, u praksi se jednostavnost uspostavljanja novih trackera pokazala dovoljnom za osiguranje nastavka rada i popularnosti sustava.
PARTNERSKE RAČUNALNE MREŽE Principi rada partnerskih računalnih mreža: Koristan pojam pri razmatranju partnerskih mreža je “nadmreža” (overlay network) koji se koristi za označavanje mreže povezanih čvorova čija međusobna povezanost ne ovisi o topologiji fizičke računalne mreže koja ih povezuje niti, u teoriji, o protokolu kojim pojedini čvorovi komuniciraju. Čvorovi pripadaju nekoj nadmreži ukoliko postoji pojam pripadnosti i mogućnost međusobne komunikacije čvorova.
PARTNERSKE RAČUNALNE MREŽE Funkcioniranje partnerske mreže može se podijeliti u nekoliko zasebnih, uvijek prisutnih koraka: Formiranje nadmreže, odn. otkrivanje virtualne topologije nadmreže Pretraživanje nadmreže u potrazi za čvorovima koji sadrže željene podatke Prijenos čvorova korisničkih podataka (payload) između
PARTNERSKE RAČUNALNE MREŽE Formiranje nadmreže: Prvi korak u stvaranju partnerske mreže je međusobno otkrivanje čvorova koji sudjeluju u mreži.
PARTNERSKE RAČUNALNE MREŽE U danas korištenim partnerskim mrežama implementirano je nekoliko načina na koji čvorovi koji se tek priključuju u nadmrežu mogu otkriti druge čvorove prisutne u nadmreži: 1. 2. Pomoću pred-definirane liste adresa čvorova koji “uvijek postoje” Pomoću pred-definirane adrese poslužitelja koji sadrži adrese aktivnih čvorova (hub)
PARTNERSKE RAČUNALNE MREŽE 3. 4. 5. Uz mogućnost dohvata liste čvorova ili poslužitelja putem eksternih protokola (kao što su HTTP ili FTP) Uz mogućnost korisničkog unosa čvora za čije postojanje korisnik saznaje na neki drugi način Uz mogućnost korištenja ograničenih mogućnosti otkrivanja čvorova koji su mogući iz nižih slojeva odn. TCP/IP mreže.
PARTNERSKE RAČUNALNE MREŽE Zbog jednostavnosti implementacije i korištenja, najčešće se koriste prva dva načina, pri čemu su predefinirane adrese obično ugrađene u sam klijentski program koji omogućuje rad u partnerskoj mreži. Unatoč tome što ovaj način implementacije otvara priliku za onemogućavanje rada partnerske mreže utjecanjem na ključne čvorove ili poslužitelje, u praksi se pokazao dovoljno otporan uz često osvježavanje programskih verzija.
PARTNERSKE RAČUNALNE MREŽE Različiti načini otkrivanja čvorova u nadmreži određuju detalje topologije nadmreže. Načini otkrivanja koji se oslanjaju na postojanje središnjih poslužitelja ili “uvijek prisutnih” čvorova (“hibridne” partnerske mreže) najčešće rezultiraju topologijom u kojoj su svi čvorovi u stalnom kontaktu sa ovim poslužiteljima ili čvorovima te stoga imaju jednostavan i brz način dohvata informacija o drugim čvorovima nadmreže ili čak o sadržajima koji ovi nude (ukoliko arhitektura protokola omogućava prikupljanje ovih informacija na ovaj način).
PARTNERSKE RAČUNALNE MREŽE Ovi “posebni” čvorovi obično primaju veći broj pojedinačnih upita od “običnih” čvorova te moraju imati više procesorske snage i bolju mrežnu propusnost. Mrežne topologije sustava koji koriste ovaj način rada imaju kombinirane osobine zvjezdaste topologije (veze prema “posebnim” čvorovima). Potpuno decentralizirane partnerske mreže kod kojih su svi čvorovi jednaki nemaju osobina zvjezdaste topologije već samo nepravilno prospojenu strukturu.
PARTNERSKE RAČUNALNE MREŽE Pretraživanje nadmreže: Mogućnosti pretraživanja partnerskih mreža uvelike ovise o načinu na koji je izvedeno formiranje nadmreže, odn. njenoj topologiji. U slučaju postojanje središnjeg poslužitelja moguće je održavati precizan popis svih čvorova koji sudjeluju u nadmreži, što osigurava da korisnički upit može biti proslijeđen do svih čvorova, te da je vrijeme potrebno da svi čvorovi odgovore donekle predvidivo.
PARTNERSKE RAČUNALNE MREŽE kod potpuno decentralizirane partnerske mreže korisnički upit se mora nedeterministički propagirati od jednog čvora do čvorova s kojima je ovaj povezan (koji su mu “susjedni”), te nije moguće garantirati da će upit stići do svih čvorova (što se može dogoditi u slučaju ispada dijela čvorova ili zbog nedostatka resursa kao što je mrežna propusnost) niti se može predvidjeti vrijeme potrebno da upit obiđe do svih čvorova. Iz ovih razloga u praktične implementacije partnerskih mreža se ponekad uvode “posebni” čvorovi, koji imaju više resursa na raspolaganju, te su povezani sa neuobičajeno velikim brojem drugih čvorova. U ovom slučaju, čvorovi koji su izvor upita za podacima preferiraju slati upite izravno ovim “posebnim” čvorovima umjesto da ih propagiraju kroz “obične” čvorove.
PARTNERSKE RAČUNALNE MREŽE Načini pretraživanja nadmreža: Ako su podaci jednostavnog oblika, kao što su imena datoteka/ili ključne riječi koje ih opisuju, moguće je koristiti vrlo efikasne tehnike zasnovane na raspodijeljenim hash tablicama (distributed hash table). U ovim tehnikama imena datoteka se prevode u binarne nizove ograničene duljine putem funkcija jednosmjerne kompresije (hash funkcije). Čvorovima u nadmreži se pridjeljuju određeni dijelovi prostora ključeva, te ovi time postaju “odgovorni” za podskupove ključeva. Ovaj način pretraživanja se može koristiti samo u slučaju da klijenti unaprijed znaju cijela imena datoteka ili točne ključne riječi kojima je generiran ključ, ali ga nije moguće koristiti u slučaju potrebe pretraživanja dijelova imena datoteka ili ključnih riječi.
PARTNERSKE RAČUNALNE MREŽE Općeniti način pretraživanja u slučaju kompleksnih podataka ili kompleksnih zahtjeva za pretraživanjem je propagiranje upita kroz sve čvorove nadmreže. Ovo pretraživanje mora osigurati da upit pouzdano dospije do svih čvorova u nadmreži, te da rezultati pretraživanja dospiju do čvora na kojem je korisnik pokrenuo upit.
USLUGAMA ORIJENTIRANA ARHITEKTURA
USLUGAMA ORIJENTIRANA ARHITEKTURA "vruća" tema posljednjih godina "moda" u svijetu programskog inženjerstva? odgovor na potrebe i probleme razvoja u svijetu poslovne programske podrške? Budućnost aplikacija?
USLUGAMA ORIJENTIRANA ARHITEKTURA Primjeri: Google Docs (Office preko Interneta) Microsoft Office Live Adobe Photoshop (on-line) Amazon Cloud (virtualni poslužitelj na Internetu) Ever. Note Zumodrive
USLUGAMA ORIJENTIRANA ARHITEKTURA Što je usluga? Usluga je konceptualizacija bilo koje aktivnosti koju je moguće ponavljati i koja ima definiran ulaz i izlaz. Usluga može biti kompozicija više drugih usluga. Usluga je korisniku predstavljena modelom “crne kutije”.
USLUGAMA ORIJENTIRANA ARHITEKTURA Što je usluga? Logička cjelina: Jasno definirane granice znamo kako postaviti zahtjev za uslugom znamo kako predati potrebne informacije znamo što možemo očekivati definirano sučelje Dosljedna: daje predvidljive rezultate Skriva detalje funkcioniranja trebamo poznavati sučelje
USLUGAMA ORIJENTIRANA ARHITEKTURA Services are anything sold in trade that cannot be dropped on your foot The Economist
USLUGAMA ORIJENTIRANA ARHITEKTURA An architectural style for building distributed systems that deliver application functionality as services to either user applications or other services. Service-Oriented Architecture expands the vision of Web services, IBM Naglasak na raspodijeljene sustave Aplikacija kao skup usluga Usluga kao skup usluga
USLUGAMA ORIJENTIRANA ARHITEKTURA Problem: Potrebno je oblikovati (složenu) aplikaciju: Kako organizirati strukturu aplikacije? Kako povezati/odvojiti dijelove aplikacije? Kako iskoristiti postojeće dijelove? Kako omogućiti ponovno korištenje gotovih dijelova?
USLUGAMA ORIJENTIRANA ARHITEKTURA Dodatni problem: Potrebno je povezati više postojećih aplikacija Koju metodu komunikacije upotrijebiti? Kako opisati sučelja? Kako uskladiti podatke?
USLUGAMA ORIJENTIRANA ARHITEKTURA Cilj: Labava sprega unutar i među aplikacijama! Aplikacija = skup međusobno labavo povezanih djelova/aplikacija Uslugama orijentirana arhitektura razmatra aplikaciju kao skup povezanih usluga
USLUGAMA ORIJENTIRANA ARHITEKTURA Postupci povezivanja usluga: otkrivanje usluge opis sučelja usluge opis podataka sučelja pristup usluzi kompozicija usluga
USLUGAMA ORIJENTIRANA ARHITEKTURA Otkrivanje usluge: Upisnik (registry) usluga: Lokalni Središnji Raspodijeljeni Adresa usluge: Poznata ili dolazi od upisnika Dovoljna za jednoznačno raspoznavanje usluge
USLUGAMA ORIJENTIRANA ARHITEKTURA Opis sučelja: Java RMI CORBA IDL (Interface Definition Language) DCOM MIDL (Microsoft Interface Definition Language) XML Schema Definition Language (XSDL) dopunjuje praznine DTD-a opisuje strukturu podataka
USLUGAMA ORIJENTIRANA ARHITEKTURA Pristup usluzi: Protokol Lokalna aplikacija bilo što (npr. poziv metode) Raspodijeljena aplikacija mrežni protokol možemo koristiti vlastiti protokol problem: široka prihvaćenost vlastitog protokola?
USLUGAMA ORIJENTIRANA ARHITEKTURA Kompozicija usluga: Aplikacija = niz povezanih usluga (kompozicija) Usluga = crna kutija može nastati korištenjem povezivanjem drugih usluga "Ručno" čovjek odabire koje će usluge i kojim redom upotrijebiti Automatski računalo odabire i koristi usluge prema potrebi i opisu posla
WEB USLUGE Razvoj tehnologije Web usluga (Web services) nadzire W 3 konzorcij. Ovakvi sustavi se prema konzorciju W 3 realiziraju pomoću agenata koji zajednički izvršavaju postavljene zadatke na način da svaki dio sustava (agent) pruža dobro definirane usluge ostalim dijelovima sustava (agentima). Glavni elementi uslugama orijentirane arhitekture su: agenti koji omogućuju ili zahtijevaju uslugu, poruke koje agenti razmjenjuju, metode prijenosa poruka, metode opisivanja usluga.
WEB USLUGE Agentska komunikacija se ostvaruje njihovim međusobnim porukama. Uslugama orijentirana arhitektura treba osigurati metode prosljeđivanja poruka kao i agentima razumljive metode opisivanja usluga. Uslugom unutar ovakve arhitekture može se smatrati agenta koji izvodi dobro definirane operacije i koji može biti pozvan na izvršavanje svojih zadataka korištenjem definiranih metoda.
WEB USLUGE Koncepcijski prikaz Web usluga
WEB USLUGE Glavni elementi koji omogućuju ostvarivanje Web usluga su sljedeći elementi: WSDL (Web Services Description Language) SOAP (Simple Object Access Protocol) UDDI (Universal Description, Discovery and Integration)
WEB USLUGE Arhitektura Web usluga
WEB USLUGE SOAP: - protokol razmjene poruka među objektima (uslugama) Norma W 3 C Može koristiti razne transportne protokole SMTP, HTTPS Neovisan o jeziku i platformi Zasnovan na XML-u nastao kao nadogradnja XML-RPC-a Proširiv
WEB USLUGE WSDL – služi za opis sučelja usluge Dokument WSDL sadrži: o opis tipova podataka (XML zapisa podataka) o opis strukture poruka (zahtjev, odgovor) o opis portova (objekata) o opis operacija (metoda)
DCE – DISTRIBUTED COMPUTER ENVIRONMENT
DCE – DISTRIBUTED COMPUTER ENVIRONMENT Glavni cilj operacijskih sustava je osiguranje apstrakcije stroja predstavljenog kao skup usluga. Usluge su implementirane kao skup programskih modula koji čine sučelje između programa (alata i aplikacija) i sklopovlja. Sistemske usluge mogu biti grupirane u sljedeće kategorije: kontrola procesa, manipulacija datotekama, manipulacija uređajima, održavanje informacija o statusu sustava i komunikacija.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT Sklopovlje se sastoji od procesora, memorije, U/I uređaja i komunikacijskih sučelja. Ovi resursi trebaju biti efikasno iskorišćeni. Sa ove točke gledišta operacijski sustav se mora ponašati kao upravljač resursima. Funkcije operacijskog sustava kao upravljača resursima su sljedeće: raspoređivanje procesa sinkronizacija procesa i međuprocesna komunikacija upravljanje uređajima i komunikacijama upravljanje memorijom upravljanje datotekama PITANJE: Kako ove poslove organizirati u raspodijeljenom okruženju?
DCE – DISTRIBUTED COMPUTER ENVIRONMENT Raspodijeljeno računalno okruženje (DCE) je arhitektura, skup otvorenih standardnih usluga i pratećih API-ja koji se koriste za razvoj i administraciju raspodijeljenih aplikacija u okruženju različitih platformi i proizvođača. DCE je rezultat rada Open Systems Foundation (sada pod imenom Open Group), udruženja većeg broja proizvođača sklopovlja, programske podrške i korisnika.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE arhitektura
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE se sastoji od sljedećih glavnih komponenti: Directory service Security service Distributed time service Distributed file service Threads Remote procedure call
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Directory Service: DCE Directory Service održava podatke o lokacijama, imenima i uslugama učesnika i resursima u mreži. Glavne komponente koje čine DCE Directory Service su: Cell Directory Service (CDS) Global Directory Service (GDS) Global Directory Agent (GDA) Application Program Interface (API)
DCE – DISTRIBUTED COMPUTER ENVIRONMENT Cell Directory Service upravlja bazom podataka sa informacijama o resursima u grupi poslužitelja udomitelja u bliskoj suradnji, koja se naziva stanica (eng. cell). DCE stanica je vrlo skalabilna i može sadržati više tisuća entiteta. U pravilu, čak i prilično velike kompanije će biti organizirane kao jedna stanica. Baza podataka Directory Service-a sadrži hijerarhijski skup imena koja predstavljaju logički pogled na računala, aplikacije, korisnike i resurse u okviru stanice. Svaka stanica zahteva bar jedan DCE server konfiguriran sa Cell Directory Service.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT Cell Directory usluga je odgovorna za poznavanje rasporeda resursa u okviru stanice. Međutim, u mreži sa više stanica, svaka stanica je dio većeg hijerarhijskog prostora imena, koji se naziva Globa Directory namespace. Global Directory Service (GDS) nam dozvoljava da odrediti lokaciju resursa spoljnih stanica. Da bi se ostvarila međustanična komunikacija potrebna je još jedna komponenta – global directory agent (GDA). GDA se nalazi između lokalne stanice i GDS-a. Kada CDS ne zna lokaciju resursa koji mu je potreban, on traži pomoć od GDA zna na koji globalni prostor imena je povezan i traži od GDS-a ime vanjskog cell directory poslužitelja sa kojim hoće komunicirati. Kada se komunikacija uspostavi može se pronaći mrežno ime traženog resursa.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Security Service: DCE Security usluga osigurava sigurne komunikacije i kontrolirani pristup resursima u raspodijeljenom okruženju. DCE Security usluga mora biti u mogućnosti provjeravati korisnike i usluge, te mora imati bazu podataka koja sadrži ove podatke. U bazi podataka koju DCE Security usluga održava se nalaze podaci o nalozima, grupama, organizacijama, politikama, svojstvima i atributima.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Security servis se sastoji od nekoliko komponenti: Authentication Service: Vrši proces verifikacije korektne identifikacije korisnika. Također sadrži Ticket Granting uslugu koja dozvoljava upotrebu sigurnih komunikacija. Privilege Service: Dostavlja korisnikove atribute privilegija da bi mogli biti poslani DCE serverima. Registry Service: Održava registry bazu podataka, koja sadrži naloge, grupe organizacije i politika. Access Control List Facility: Osigurava mehanizam uspoređivanja zahtjeva za pristupom i kontrolom pristupa za dati resurs.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Threads: DCE Therads usluga osigurava višenitno izvršavanje poslova. Tradicionalne aplikacije sadrže veliki broj linija programskog koda koji se često izvršava na sekvencijalan način. U bilo kojem trenutku, nalazi se točno jedna točka u programu koja se izvršava. Ovo može biti definirano kao jedna nit. Nit je jedna jedinica izvršnog toka unutar procesa. Bolje performanse aplikacije mogu biti postignute kada je program struktuiran tako da nekoliko djelova može biti izvršeno paralelno. Ovo se naziva višenitno izvršavanje. Mogućnost višenitnog izvršavanja zavisi od operacijskog sustava.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Remote Procedure Call (RPC) arhitektura je baza komunikacije između klijenta i poslužitelja. RPC daje mogućnost aplikacijama za raspodjelu na više djelova. Aplikacije pisana korišćenjem DCE RPC-a ima klijentski dio, koji obično upućuje RPC zahtjev, i poslužiteljski dio, koji prima RPC zahtjeve, procesira ih i vraća rezultat klijentu.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE RPC sadrži: Interface Definition Language (IDL): IDL opisuje sučelje koje omogućava aplikaciji upućivanje RPC zahtjeva na isti način kao što poziva lokalne procedure. Reprezentacija podataka koji se prosljeđuju putem mreže, kojom se definira format podataka kao što su ulazni i izlazni parmetri. Ovo garantira da će niz bitova biti pravilno konvertiran kada bude primljen na ciljnom računalu. • Runtime biblioteka, koja sakriva od aplikacije detalje mrežne komunikacije između poslužitelja i klijenta.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Distributed Time Service (DTS) daje standardne programske mehanizme sinkronizacije satova na različitim čvorovima u raspodijeljenom okruženju. DTS je opcijska usluga.
DCE – DISTRIBUTED COMPUTER ENVIRONMENT DCE Distributed File Service: Distributed File Service (DFS) nije stvarna komponenta CDE već aplikacjia koja je integrirana s njim i koristi ostale DCE usluge. DFS osigurava raspodjelu datoteka. Pristup datotekama lociranim bilo gdje u povezanim DCE stanicama je transparentan za korisnika pa korisnik ima utisak da pristupa datotekama na lokalnom disku.