Elosztott rendszerek

Hasonló dokumentumok
Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Kommunikáció. 3. előadás

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

UNIX: folyamatok kommunikációja

Osztott alkalmazások fejlesztési technológiái Áttekintés

Hálózati architektúrák laborgyakorlat

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

S04-2 Elosztott alkalmazások készítése

Komponens modellek. 3. Előadás (első fele)

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Socket programozás Példák

Osztott rendszerek (Distributed

Számítógépes hálózatok I.

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

webalkalmazások fejlesztése elosztott alapon

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Kommunikáció Androidon Mobilinternet Wifi

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Számítógépes Hálózatok GY 3-4.hét

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Párhuzamos programozási platformok

2. fejezet Hálózati szoftver

SzIP kompatibilis sávszélesség mérések

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Fábián Zoltán Hálózatok elmélet

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

4. Hivatkozási modellek

Elosztott rendszerek

IP fejléc UDP fejléc Transaction ID Call (0) RPC version (2) Program number Version number Procedure number. Credentials. Verifier

UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Számítógépes hálózatok

UNIX folyamatok kommunikációja

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

Transzport Réteg. Transzport réteg protokollok

Operációs rendszerek. UNIX fájlrendszer

Elosztott rendszerek

RPC Remote Procedure Call Távoli eljárás hívás

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

IP fejléc UDP fejléc Transaction ID Call (0) RPC version (2) Program number Version number Procedure number

Tűzfalak működése és összehasonlításuk

Számítógép hálózatok

Számítógépes Hálózatok. 7. gyakorlat

Számítógépes Hálózatok GY 4.hét

11. Elosztott állománykezelés. Operációs rendszerek. Elosztott állománykezelés. Teljesítmény növelése. Az állományokra hivatkozás. Az állományok nevei

Dr. Varga Imre. Socket-programozás. C nyelven

Számítógépes Hálózatok

A SZOFTVERTECHNOLÓGIA ALAPJAI

CORBA bevezetés. Paller Gábor Internet és mobil rendszerek menedzselése

UNIX folyamatok kommunikációja

Távközlési informatika II.

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Szállítási réteg (L4)

SIP. Jelzés a telefóniában. Session Initiation Protocol

Hálózati architektúrák laborgyakorlat

9. MPI

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

2. fejezet Hálózati szoftver

Számítógépes Hálózatok. 4. gyakorlat

III. előadás. Kovács Róbert

Kiszolgálók üzemeltetése. Iványi Péter

Hálózati ismeretek. Az együttműködés szükségessége:

Osztott Objektumarchitektúrák

Névfeloldás hosts, nsswitch, DNS

Számítógépes Hálózatok GY 8.hét

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Tartalomjegyzék. Előszó... 10

Elosztott rendszerek

VoIP (Voice over IP)

Párhuzamos programozási platformok

Folyamatok. 6. előadás

Nagyteljesítményű mikrovezérlők TCP/IP

Bevezetés a párhuzamos programozási koncepciókba

Rohonczy János: Hálózatok

Számítógépes munkakörnyezet II. Szoftver

Komponens alapú fejlesztés

Hálózati architektúrák laborgyakorlat

TCP szerver. TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton

WDS 4510 adatátviteli adó-vevő

E Q U I C O M M é r é s t e c h n i k a i K f t. H B u d a p e s t, M á t y á s k i r á l y u T. : F.

Számítógépes Hálózatok 2011

Operációs rendszerek. A Windows NT felépítése

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Számítógépes hálózatok

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Reaktív programozás szerver oldalon

Számítógépes Hálózatok. 3. gyakorlat

Hálózati architektúrák és Protokollok MI 7,8. Kocsis Gergely

Hálózati réteg, Internet

Cisco Catalyst 3500XL switch segédlet

Átírás:

Elosztott rendszerek NGM_IN005_1 Kommunikációs paradigmák Kommunikáció folyamatok között Távoli vs. helyi folyamatok közötti kommunikáció Kérések és válaszok üzenetek átvitele komm. hálózat sebessége protokoll overhead komm. paradigma (koncepció) one-to-one vs. one-to-many message passing vs. remote procedure call 2

Üzenet-továbbításos kommunikáció Felhasználó (programozó) expliciten tudatában van a mechanizmus használatának Üzenet fejrész (alk. üzenet típustól f., rendszer) test (vált. hossz) struktúrálatlan vagy struktúrált 3 Prezentáció, marshalling Alkalmazás adatainak üzenetté alakítása (marshalling) kiterítés (linearizálás, pakolás) Üzenet visszaalakítása adatokká (unmarshalling) Megoldások kanonikus átmeneti forma vev! oldal megfelel! formára hoz Alkalmazás adatai Alkalmazás adatai Alkalmazás adatszerkezetei Megjelenítési kódolás Üzenet Üzenet Üzenet Megjelenítési visszakódolás Argument marshaller 4

Alap primitívek send & receive primitívek szemantikája direkt vagy indirekt portok blokkolós vs. nem blokkolós pufferelt vs. nem pufferelt Client is blocked megbízható vs. nem megbízható struktúrált üzenetváltások send(server,client, message) receive(server, buffer) receive(client, buffer) Server is blocked send(client,server, response) 5 Direkt és indirekt portok Direkt vev! folyamat explicit megnevezése one-to-one kommunikáció Indirekt vev! helyének megadása portok várakozó sorok (FIFO, urgent messages) tulajdonlás: OS, process 6

Blokkolás vs. nem blokkolás Primitív végrehajtása okoz-e késleltetést a kiadó folyamatban Blokkolás send üzenet teljes továbbításáig válasz megérkezéséig receive üzenet érkezéséig 7 Blokkolás vs. nem blokkolás (folyt.) Send receive() send() Trap to kernel Process blocked send() Client is blocked Trap to kernel Process blocked send() Trap to kernel Process blocked Server is blocked Client is blocked message being sent message copied to buffer Process running Client is blocked message being sent, received by server, response sent back Server running send() Return from kernel Process unblocked Return from kernel Process unblocked blocking non-blocking 8

Blokkolás vs. nem blokkolás (folyt.) Receive blocking receive non-blocking receive message availability check értesítés interrupttal 9 Pufferelés Küld! oldal teli puffer várakozás Client hibajelzés Fogadó oldal OS nincs puffer üzenet eldobása pufferelés az op. rendszerben Pufferben eltöltött id! állapot id!közbeni megváltozása Server Buffer OS Client OS Server Buffer OS 10

Megbízhatóság Megbízható primitívek szerver, kliens kiesése hálózati hibák csomagvesztés, duplikálás, sorrend nem tartás újraküldés send() Helyreállítás helye hálózat (különböz! protokoll szintek) végfolyamatok send() Timeout send() Timeout send() unreliable reliable 11 Megbízhatóság (folyt.) Többszörös kérések legalább egyszer végrehajtás (idempotens kérések) pontosan egyszer végrehajtás request request (id n) Timeout Timeout request (id n) Timeout multiple executions Timeout request (id n) response (id n) table of current requests response ack (id n) 12

Távoli eljáráshívás (RPC) Programozási nyelvi szint" távoli számítógép felé irányuló eljáráshívás, az üzenet továbbítási mechanizmus elfedésével helyi API használata elosztott programok írásának támogatása transzparens, heterogén környezetben is valójában IPC technika 13 RPC hívás 14

RPC jellemz!k Transzparens implementációnak meg kell!rizni a helyi eljáráshívás szemantikáját A helyi statikus típus-ellen!rzésnek (compiler) a távoli hívásokra is m"ködni kell Nyelvi alaptípusokkal m"ködnie kell Konkurencia és kivétel kezelés kell A fejleszt! és futtató környezetnek támogatni kell a fordítást, kötést, betöltést hálózati viszonyok között Helyreállító mechanizmusok az elárvult elemek kezelésére 15 RPC argumentumok és visszatérési értékek Paraméter átadás érték szerint referenciával Adatmozgatás másolások üzenetekre tördelés Hálózati prezentáció marshalling összetett adatszerkezetek 16

RPC csonkok Elosztási transzparencia megvalósítása távolról meghívható eljárások megvalósítása megegyezik a helyivel a távoli hívás a helyivel egyez! (compiler detektálja) Csonk (stub, proxy) compiled interpreted 17 RPC fejlesztés DCE RPC 18

Interface Definition Language Specifikációs nyelv iterfészek (eljárások, hívási paraméterek és visszatérési értékek típusának) leírására Prog. nyelv független IDL compiler marshalling kód csonk rutinok a távoli hívásokhoz 19 Kötések Kliensek RPC csonkjainak szerverhez kötése Interfész nevek és belépési pont számok Id! horizont hosszútávú kötések statikus névszerver Kötési id! fordításkor szolgáltatás indításkor (export, import mechanizmus) híváskor 20

RPC meghibásodások Meghibásodások gép leállások kommunikációs hibák Hiba kimenetek eljárás nem hajtódik végre eljárás egyszer hajtódik végre eljárás többször végrehajtódik eljárás részlegesen végrehajtódik 21 RPC meghibásodások (folyt.) Csomópontok lehalása és újraindulása Kliens kérés elküldése után -> árva szerver detektálhatja állapot változás? (nem idempotens) roll back - költséges újraindult kliens ismételt kérése nem detektálható (új ID) Hívás RPC szolg. Komm. prot. Komm. prot. RPC szolg. Hívott elj. Hálózat T return Kliens Szerver 22

RPC meghibásodások (folyt.) Szerver lehalás kliens timeout miatt megismétli a kérést állapot változás? time stamp - pre és post crash kérések boot ID tranzakció kezelés (roll back) replay cache Hívás RPC szolg. Komm. prot. Komm. prot. RPC szolg. Hívott elj. Hálózat return Kliens Szerver 23 Átviteli megoldások Standard szállítási réteg megoldások fölött pontosan egyszer átvitel megoldása kérés elveszik timer, ismételt kérés válasz elveszik idempotens: ismételt kérés szerverben replay cache hosszan tartó feldolgozás duplikált kérés felismerése a szerveren - folyamatban válasz küldése 24

RPC és az OSI referencia modell RPC Alkalmazási r. Megjelenítési r. Session r. Szállítási r. Hálózati r. Adatkapcsolati r. Hívás prog. nyelvb!l pl. XDR RPC timerek, ID-k pl. UDP pl. IP pl. Ethernet 25 SunRPC Egyszer", széleskörben használt RPC megoldás pl. Sun NFS programok és eljárások számokkal azonosítva portmap pl. NFS-nél prog és proc számok -> jól ismert port számok kliensnek ismerni kell a szervert prezentációs megoldás: XDR 26

XDR XDR: external Data Representation C típusok (kivéve fv. pointerek) Kanonikus átmeneti forma Címkézetlen (kivéve tömbhossz) Lefordított csonkok 27 XDR (folyt.) #define MAXNAME 256; #define MAXLIST 100; struct item { int count; char name[maxname]; int list[maxlist]; }; bool_t xdr_item(xdr *xdrs, struct item *ptr) { return(xdr_int(xdrs, &ptr->count) && xdr_string(xdrs, &ptr->name, MAXNAME) && xdr_array(xdrs, &ptr->list, &ptr->count, MAXLIST, sizeof(int), xdr_int)); } Count Name 3 7 J O H N S O N List 3 4 9 7 8 321 2 65 28

SunRPC és szállítási réteg Elméletben száll. protokoll független valóságban tudnia kell milyen a száll. réteg protokoll UDP kérés/válasz egy-egy datagramban szerverben replay cache TCP megbizható szállítás RPC-ben nincs újraküldés és replay cache 29 SunRPC üzenetek 0 31 0 31 XID XID MsgType = CALL MsgType = REPLY (a) RPCVersion = 2 (b) Status = ACCEPTED Program Data Version Procedure Credentials (variable) Verifier (variable) Data 30

Csoport kommunikáció Szimultán kérés több szerver felé folyamat csoportok több folyamat kezelés egy absztrakcióval azonos szolgáltatás (telj. skálázás, szolg. szint) csoport egységes megjelenítése 31 Távoli metódus hívás RMI 32

Sorkezel!k Üzenet bróker 33 Csoport struktúrák Peer csoport kooperáló csoporttagok Kliens-szerver csoport szerverek peer csoportja + kliensek Diffúziós csoport egy kliens kérés szerverek és kliensek csoportjának Hierarchikus csoport kliens-szerver csoportok clusterei S S S P P P P C C C S S S S S S S S S S S S C C C C 34

Elosztott megosztott memória Distributed shared memory Absztrakciós megoldás adat megosztásra read és write primitívek párhuzamos használat, aszinkron komm. memória címtérbe megjelenítve valójában nincs közös fizikai memória DSM PM Proc. PM Proc. PM Proc. 35 Elosztott megosztott memória (folyt.) Programozási modell osztott memóriakezelés (lock, szemafor) szimultán vagy id!ben nem átfed! (perzisztencia) használat Hatékonyság nincs jelent!s eltérés az üzenetváltásos megoldásokhoz képest Memória terület struktúrálása struktúrálatlan adattípus szerinti kollekciók asszociatív memória, adatbázis Szinkronizáció szükséges a konzisztencia biztosítására 36

Socketek Op. rendszer nyújtotta interfész kommunikációs szolgáltatásokhoz socket: kommunikációs végpont domain: kommunikációs közeg protokoll socket címzése AF-INET TCP, UDP / IP 37 Socketek (folyt.) Socket típusok stream socket megbizható, duplex INET: TCP prot. UNIX pipe ~ socket pár sequenced packet socket NS domain - stream rekord határokkal datagram socket nem megbizható datagramok INET: UDP raw socket új protokollokhoz 38

Socketek (folyt.) socket m"veletek socket(domain, type, protocol) bind(socket-descr, name-pointer,length-of-name) connect(socket-descr,name-pointer,length-of-name) listen(socket-descr,queue-length) accept(socket-descr) sendto(socket-descr,data-buff-pointer,data-length,address-buffpointer,addr-length) recvfrom(socket-descr, data-buff-pointer,data-length,address-buffpointer,addr-length) 39 Socketek (folyt.) Client process socket bind connect socket bind listen accept Server process INET socket INET socket Well-known service name INET socket New socket for servicing TCP/IP TCP/IP Network driver Network driver 40