640 likes | 875 Views
DISTRIBUIRANI SUSTAVI. Komunikacija. Distribuirani sustavi - komunikacija. Komunikacija u distribuiranim sustavima Protokoli zasnovani na slojevima (OSI model) Poziv procedure na drugom računalu (RPC) Remote object inovacation (RMI) Komunikacija usmjerena na poruke
E N D
DISTRIBUIRANI SUSTAVI Komunikacija
Distribuirani sustavi - komunikacija • Komunikacija u distribuiranim sustavima • Protokoli zasnovani na slojevima (OSI model) • Poziv procedure na drugom računalu (RPC) • Remote object inovacation (RMI) • Komunikacija usmjerena na poruke • Komunikacija usmjerena na stream Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Protokoli zasnovani na slojevima • Open System International Reference Model – ISO OSI ili OSI model • Otvoren sustav – komunicira sa drugim sustavima putem pravila koja propisuju formate, sadržaj i značenje poruka koje se šalju i primaju. • Formaliziranjem pravila nastaje protokol • Protokoli mogu biti: • Connection-oriented • connectionless Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • OSI slojevi: • Fizički sloj • Sloj prijenosa podataka (dana link) • Mrežni sloj • Transportni sloj • Sloj sesije • Prezentacijski sloj • Aplikativni sloj • Svaki sloj dodaje svoje zaglavlje u poruku Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 1. Slojevi i protokoli u OSI modelu Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 2. Primjer poruke Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Fizički sloj • Slanje bitova • Data link sloj • Otkrivanje i ispravka grešaka (checksum) • Grupiranje bitova u blokove ili pakete (frame) Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 3. komunikacija receiver-sender u data link sloju Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Mrežni sloj • Odabir najbolje putanje za slanje bloka – routing • X.25 – connection-oriented • IP – connectionless • Paketi se šalju neovisno jedan o drugome • Transportni sloj • Dijeljenje poruke u pakete i slaganje paketa u poruku • TCP (Transmission Control Protocol) • UDP (Universal Datagram Protocol) Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 4. a) uobičajena aktivnost TCP b) transakcijski TCP Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Sloj sesije • Sinhronizacija • Kontrola dijaloga • Korištenje kontrolnih točaka • Prezentacijski sloj • Formatiranje podataka u porukama • Aplikacijski sloj • Mail, file transfer, spajanje udaljenih terminala Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 5. Prilagođeni referentni model za mrežnu komunikaciju Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Remote procedure call RPC • Poziv procedure na drugom računalu • Proces koji je pozvao RPC ne zna da se obrada poziva izvodi na drugom računalu • Procesi se izvode u različitom adresnom prostoru uz prijenos parametara i rezultata obrade između računala • Nefunkcionalnost jednog ili oba računala pri izvođenju RPC-a Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Prijenos parametara • Call-by-value • Call-by-reference • Razlika je bitna pri izvođenju RPC-a • Klijent proces nije upoznat sa izvođenjem poziva na drugom računalu • Klijent stub • Server stub • Marshaling – dodavanje parametara u poruku Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 6. Prijeno parametara pri pozivu procedure Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 7. RPC između klijenta i servera Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 8. Faze izvođenja RPC-a Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Za klijent i server računala identične strukture i prijenos skalarnih vrijednosti model je učinkovit • IBM mainframe računala – EBCDIC • IBM osobna računala – ASCII • Problemi u prikazu cjelobrojnih vrijednosti i decimalnih brojeva • Intel 486 - little endian • SPARC – big endian Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 9. a) originalna poruka b) SPARC c) invertirana poruka Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 10. a) procedura b) poruka Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Uporaba mrežnih standarda ili canonical form za različite tipove varijabli. • Kako generirati stub? • Klijent i server stub generiraju se na osnovi specifikacija servera. • Formalna specifikacija procedura napisana u jeziku za specifikacije definira parametre, njihovu namjenu (ulazni, izlazni ili oboje) i njihovu maksimalnu veličinu. Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Dinamic binding – povezivanje klijenta i servera • Formalna specifikacija servera • Ime servera • Popis dozvoljenih procedura (read, write, create and delete) • Server pozivom initalize eksportira server sučelje slanjem poruke programu binder što se označava registriranjem servera (ime, verzija, jedinstveni identifikator i handle) • Klijent šalje poruku binder-u za import verzijom server sučelja • Princip eksportiranja i importanja sučelja je fleksibilan • Nedostatak je povećan promet mrežom i preopterećenje binder-a (koristi se više kopija binder-a) Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • RPC protokoli • Održavanje stalne veze je elegantno rješenje ali nije isplativo (LAN mreže) pa je potreban protokol • Primjena postojećeg protokola (IP) • Ušteda vremena • Izbjegnuto testiranje • Podržanost za mnoge postojeće mreže • Izrada protokola za RPC • Izrada posebnog protokola znači utrošak vremena za analizu, izradu, testiranje i uvođenje protokola Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 11. Princip korištenja doors Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 12. a) uobičajena interakcija klijent server za RPC b) interakcija korištenjem ainhronog RPC Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 13. Interakcija klijent server u asinhronom RPC Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 14. Faze pisanja klijenta i servera Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 15. Klijent-server binding Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Prizivanje objekta na drugom računalu • Remote object invocation – RMI • Distribuirani objekti • Stanje • Metode • Interfejsi • Remote objects • Compile-time objekti • Objekt adapter Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 16. Pozivanje objekata na udaljenom računalu Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Persistent (postojani) objekti • neovisni o trenutnom serveru koji kreira objekt • Transient (kratkotrajni) objekti • Postoje samo dok postoji server koji upravlja objektom • Povezivanje (binding) klijenta i objekta • Implicit binding • pozivanje metode pri pozivu reference na objekt • Explicit binding • Povezivanje sa objektom, a zatim pozivanje metode Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 17. a) implicit binding b) explicit binding Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Implementacija referenci objekta • Uključivanje adrese računala koje sadrži objekt • Korištenje location servera • Implementation handle • Statičko i dinamičko pozivanje udaljenih metoda • Statički – poznavanje definicija interfejsa unaprijed • fobject.append(int) • Dinamički – pozivanje metode za vrijeme izvođenja • invoke(fobject, id(append),int) Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Prijenos parametara • Za poziv parametara objekta pohranjenog na klijent računalu prenosi se kopija parametara lokalnog objekta – prijenos po vrijednosti • Za poziv paramatara objekta pohranjenog na drugom računalu prenosi se referenca na objekt - prijenos po referenci Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 18. Prijenos parametra po vrijednosti i referenci Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija • Komunikacija usmjerena na poruke • Message-oriented communication • Persistent communication • Poruka je pohranjena u sustavu sve dok se ne isporuči na odredište • Transient communication • Poruka je pohranjena samo za vrijeme izvođenja sender i receive aplikacije Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 19. Organizacija komunikacijskog sustava Distribuirani sustavi -komunikacija Distribuirani sustavi - osnovni pojmovi
Distribuirani sustavi - komunikacija Slika 20. Primjer persistent komunikacije Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Asinkrona komunikacija • Pošiljatelj nastavlja aktivnost nakon slanja poruke • Poruka je pohranjena u lokalnom bufferu (međuspremniku) • Sinkrona komunikacija • Pošiljatelja se blokira sve dok se ne pohrani poruka u lokalnom bufferu računa primatelja Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Primjeri komunikacije porukama • Persistant asynchronous communication • e-mail • Persistant synchronous communication • blokiran pošiljatelj za vrijeme pohrane poruke na računalo pošiljatelja • Transient asynchronous communication • UDP • Receipt-based transient asynchronous communication • blokiran pošiljatelj • Delivery-based transient asynchronous communication • Blokiran pošiljatelj do pokretanje obrade na serveru • Response-based transient asynchronous communication • Blokiran pošiljatelj do završetka obrade na serveru Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 21. Primjeri komunikacije porukama Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Transient komunikacija usmjerena na poruke • Socket (spojnica) – spojna točka koju koriste aplikacije za upis i čitanja podataka koji se proslijeđuju ostatkom mreže • Apstrakcija mrežne komunikacije za aplikacije • Socket interfejs • Podržavaju samo send i receive • Komunikacija primjenom TCP/IP protokola Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 22. Socket primitives za TCP/IP Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 23. Connection-oriented komunikacija primjenom socket-a Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Transient komunikacija usmjerena na poruke • MPI – Message-passing interfejs • Prikladan nivo apstrakcije za izradu učinkovitih aplikacija u mrežnom okruženju • Jednostavna implementacija sa minimalnim dodatnim aktivnostima • Pogodno rješenje za komunikaciju više procesa u grupi Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 25. skup osnovnih poruke za MPI Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija • Persistent komunikacija usmjerena na poruke • Message-queuing systems – Message oriented middleware (MOM) • Omogućuje pohranu poruka i njihovo slanje pri čemu nije nužna aktivnost pošiljatelja i primatelja • Poruke se pohranjuju u red, a slanje poruka je osigurano povezivanjem komunikacijskih servera Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 26. Moguća komunikacija primjenom redova poruka Distribuirani sustavi -komunikacija 48
Distribuirani sustavi - komunikacija • Arhitektura message-queuing sistema • Poruka se mora pohraniti u redu (source queue) na lokalnom računalu pošiljatelja • Poruka u redu ima specifikaciju odredišnog reda (destination queue) • Slanjem poruka upravlja queue manager • Sustav mora poznavati veze između redova (source i destination) i mrežnih lokacija računala na kojima su redovi pohranjeni. • Problemi ažuriranja veza na računalima koja sadrže redove mogu se umanjiti ažuriranjem rutera Distribuirani sustavi -komunikacija
Distribuirani sustavi - komunikacija Slika 27. Razlika između adresiranja na nivou redova i adresiranja mrežnim slojevima Distribuirani sustavi -komunikacija 50