Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 4. rész: Kommunikáció



Hasonló dokumentumok
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

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

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

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

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

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

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 2. rész: Architektúrák

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

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

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

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

EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA

2. fejezet Hálózati szoftver

Kommunikáció. Kommunikáció. Folyamatok. Adatfolyam-orientált kommunikáció. Kommunikáció típusok (1) Kommunikáció típusok (2) Média. Folyamok (Streams)

Osztott rendszerek (Distributed

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

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

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

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

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

Hálózati architektúrák laborgyakorlat

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 7. rész: Konzisztencia & replikáció

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

UNIX: folyamatok kommunikációja

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

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

2. fejezet Hálózati szoftver

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

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

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

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

Ethernet/IP címzés - gyakorlat

Adatátviteli rendszerek Mobil IP. Dr. habil Wührl Tibor Óbudai Egyetem, KVK Híradástechnika Intézet

OSI-ISO modell. Az OSI rétegek feladatai: Adatkapcsolati réteg (data link layer) Hálózati réteg (network layer)

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

Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban

Hálózati Technológiák és Alkalmazások

A SZOFTVERTECHNOLÓGIA ALAPJAI

The Flooding Time Synchronization Protocol

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

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

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

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

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

webalkalmazások fejlesztése elosztott alapon

Hálózatok II. A hálózati réteg funkciói, szervezése

4. Hivatkozási modellek

Üzenet a Pluto-ra. Delay- and Disruption- Tolerant Networking. Költl Péter. szenior műszaki tanácsadó CCIE #

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

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

Elosztott rendszerek

Elosztott rendszerek

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

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

UNIX / Linux rendszeradminisztráció III. előadás

Socket programozás Példák

4. Az alkalmazások hatása a hálózat tervezésre

Az eszközök közti összeköttetés, azaz csatolás szerint Szorosan csatolt rendszerek

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

Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 6. rész: Szinkronizáció

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

Számítógépes Hálózatok és Internet Eszközök

I. Házi Feladat. internet. Határidő: V. 30.

Kommunikációs rendszerek programozása. Voice over IP (VoIP)

Kommunikáció Androidon Mobilinternet Wifi

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 1. rész: Bevezetés

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

IP alapú kommunikáció. 5. Előadás Routing 2 Kovács Ákos

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Hálózati architektúrák laborgyakorlat

Hálózati réteg, Internet

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

Hálózati architektúrák laborgyakorlat

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 1. rész: Bevezetés

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

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Az RSVP szolgáltatást az R1 és R3 routereken fogjuk engedélyezni.

Számítógép hálózatok, osztott rendszerek 2009

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

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

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

9. MPI

Az Internet működésének alapjai

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

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

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

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

Fine-Grained Network Time Synchronization using Reference Broadcast

Webszolgáltatások (WS)

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

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

Átírás:

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms Maarten van Steen 1 Kitlei Róbert 2 1 VU Amsterdam, Dept. Computer Science 2 ELTE Informatikai Kar 4. rész: Kommunikáció 2015. május 24.

Tartalomjegyzék Fejezet 01: Bevezetés 02: Architektúrák 03: Folyamatok 04: Kommunikáció 05: Elnevezési rendszerek 06: Szinkronizáció 07: Konzisztencia & replikáció 08: Hibatűrés 10: Objektumalapú elosztott rendszerek 11: Elosztott fájlrendszerek 12: Elosztott webalapú rendszerek Maarten van Steen, Kitlei Róbert Elosztott rendszerek 2 / 44

Az ISO/OSI hálózatkezelési modell Application Presentation Session Transport Network Data link Physical Application protocol Presentation protocol Session protocol Transport protocol Network protocol Data link protocol Physical protocol 7 6 5 4 3 2 1 Network Hátrányok Csak az üzenetküldésre koncentrál Az (5) és (6) rétegek legtöbbször nem jelennek meg ilyen tisztán Az elérési átlátszóság nem teljesül ebben a modellben Maarten van Steen, Kitlei Róbert Elosztott rendszerek 3 / 44

Az alsó rétegek A rétegek feladatai Fizikai réteg: a bitek átvitelének fizikai részleteit írja le Adatkapcsolati réteg: az üzeneteket keretekre tagolja, célja a hibajavítás és a hálózat terhelésének korlátozása Hálózati réteg: a hálózat távoli gépei között közvetít csomagokat útválasztás (routing) segítségével Maarten van Steen, Kitlei Róbert Elosztott rendszerek 4 / 44

Szállítási réteg Absztrakciós alap A legtöbb elosztott rendszer a szállítási réteg szolgáltatásaira épít. A legfőbb protokollok TCP: kapcsolatalapú, megbízható, sorrendhelyes átvitel UDP: nem (teljesen) megbízható, általában kis üzenetek (datagram) átvitele Csoportcímzés IP-alapú többcímű üzenetküldés (multicasting) sokszor elérhető, de legfeljebb a lokális hálózaton belül használatos. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 5 / 44

Köztesréteg Szolgáltatásai A köztesrétegbe (middleware) olyan szolgáltatásokat és protokollokat szokás sorolni, amelyek sokfajta alkalmazáshoz lehetnek hasznosak. Sokfajta kommunikációs protokoll Sorosítás ((de)serialization, (un)marshalling), adatok reprezentációjának átalakítása (elküldésre vagy elmentésre) Elnevezési protokollok az erőforrások megosztásának megkönnyítésére Biztonsági protokollok a kommunikáció biztonságossá tételére Skálázási mechanizmusok adatok replikációjára és gyorsítótárazására Alkalmazási réteg Az alkalmazások készítőinek csak az alkalmazás-specifikus protokollokat kell önmaguknak implementálniuk. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 6 / 44

A kommunikáció fajtái Client Request Synchronize at request submission Synchronize at request delivery Transmission interrupt Storage facility Synchronize after processing by server Reply Server Time A kommunikáció lehet... időleges (transient) vagy megtartó (persistent) aszinkron vagy szinkron Maarten van Steen, Kitlei Róbert Elosztott rendszerek 7 / 44

A kommunikáció fajtái Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Időleges vs megtartó Megtartó kommunikáció: A kommunikációs rendszer hajlandó huzamosan tárolni az üzenetet. Időleges kommunikáció: A kommunikációs rendszer elveti az üzenetet, ha az nem kézbesíthető. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 8 / 44

A kommunikáció fajtái Client Request Synchronize at request submission Synchronize at request delivery Transmission interrupt Storage facility Synchronize after processing by server Reply Server Time A szinkronizáció lehetséges helyei Az üzenet elindításakor Az üzenet beérkezésekor A kérés feldolgozása után Maarten van Steen, Kitlei Róbert Elosztott rendszerek 9 / 44

Kliens szerver modell Általános jellemzők A kliens szerver modell jellemzően időleges, szinkron kommunikációt használ. A kliensnek és a szervernek egyidőben kell aktívnak lennie. A kliens blokkolódik, amíg a válasz meg nem érkezik. A szerver csak a kliensek fogadásával foglalkozik, és a kérések kiszolgálásával. A szinkron kommunikáció hátrányai A kliens nem tud tovább dolgozni, amíg a válasz meg nem érkezik A hibákat rögtön kezelni kell, különben feltartjuk a klienst Bizonyos feladatokhoz (pl. levelezés) nem jól illeszkedik Maarten van Steen, Kitlei Róbert Elosztott rendszerek 10 / 44

Üzenetküldés Üzenetorientált köztesréteg (message-oriented middleware, MOM) Megtartó, aszinkron kommunikációs architektúra. Segítségével a folyamatok üzeneteket küldhetnek egymásnak A küldő félnek nem kell válaszra várakoznia, foglalkozhat mással A köztesréteg gyakran hibatűrést biztosít Maarten van Steen, Kitlei Róbert Elosztott rendszerek 11 / 44

RPC: alapok Az RPC alapötlete Az alprogramok használata természetes a fejlesztés során Az alprogramok a jó esetben egymástól függetlenül működnek ( fekete doboz ),... így akár egy távoli gépen is végrehajthatóak Távoli eljáráshívás (remote procedure call, RPC) A távoli gépen futtatandó eljárás a eléréséhez hálózati kommunikációra van szükség, ezt eljáráshívási mechanizmus fedi el. a tekintsük az alprogram szinonímájának Client Server Call remote procedure Request Wait for result Reply Call local procedure and return results Return from call Time Maarten van Steen, Kitlei Róbert Elosztott rendszerek 12 / 44

RPC: a hívás lépései Client machine Server machine Client process k = add(i,j) proc: "add" int: val(i) int: val(j) 1. Client call to procedure Server stub Client stub 2. Stub builds message Server process Implementation of add k = add(i,j) proc: "add" int: val(i) int: val(j) 6. Stub makes local call to "add" 5. Stub unpacks message Client OS proc: "add" int: val(i) int: val(j) Server OS 4. Server OS hands message to server stub 3. Message is sent across the network 1 A kliensfolyamat lokálisan meghívja a klienscsonkot. 2 Az becsomagolja az eljárás azonosítóját és paramétereit, meghívja az OS-t. 3 Az átküldi az üzenetet a távoli OS-nek. 4 Az átadja az üzenetet a szervercsonknak. 5 Az kicsomagolja a paramétereket, átadja a szervernek. 6 A szerver lokálisan meghívja az eljárást, megkapja a visszatérési értéket. 7 Ennek visszaküldése a klienshez hasonlóan zajlik, fordított irányban. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 13 / 44

RPC: paraméterátadás A paraméterek sorosítása A második lépésben a klienscsonk elkészíti az üzenetet, ami az egyszerű bemásolásnál összetettebb lehet. A kliens- és a szervergépen eltérhet az adatábrázolás (eltérő bájtsorrend) A sorosítás során bájtsorozat készül az értékből Rögzíteni kell a paraméterek kódolását: A primitív típusok reprezentációját (egész, tört, karakteres) Az összetett típusok reprezentációját (tömbök, egyéb adatszerkezetek) A két csonknak fordítania kell a közös formátumról a gépeik formátumára Maarten van Steen, Kitlei Róbert Elosztott rendszerek 14 / 44

RPC: paraméterátadás RPC paraméterátadás szemantikája Érték eredmény szerinti paraméterátadási szemantika: pl. figyelembe kell venni, hogy ha (a kliensoldalon ugyanoda mutató) hivatkozásokat adunk át, azokról ez a hívott eljárásban nem látszik. Minden feldolgozandó adat paraméterként kerül az eljáráshoz; nincsen globális hivatkozás. Átlátszóság Nem érthető el teljes mértékű elérési átlátszóság. Távoli hivatkozás Távoli hivatkozás bevezetésével növelhető az elérési átlátszóságot: A távoli adat egységesen érhető el A távoli hivatkozásokat át lehet paraméterként adni Maarten van Steen, Kitlei Róbert Elosztott rendszerek 15 / 44

Aszinkron RPC Az RPC javítása A szerver nyugtázza az üzenet megérkezését. Választ nem vár. Client Wait for result Client Wait for acceptance Call remote procedure Return from call Call remote procedure Return from call Request Reply Request Accept request Server Call local procedure and return results Time Server Call local procedure Time (a) (b) Maarten van Steen, Kitlei Róbert Elosztott rendszerek 16 / 44

Késleltetett szinkronizált RPC Késleltetett szinkronizált RPC Ez két aszinkron RPC, egymással összehangolva. Client Wait for acceptance Interrupt client Server Call remote procedure Request Return from call Accept request Call local procedure Return results Acknowledge Time Call client with one-way RPC További lehetőség A kliens elküldheti a kérését, majd időnként lekérdezheti a szervertől, kész-e már a válasz. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 17 / 44

RPC: a használt fájlok Uuidgen Interface definition file IDL compiler Client code Client stub Header Server stub Server code #include #include C compiler C compiler C compiler C compiler Client object file Client stub object file Server stub object file Server object file Linker Runtime library Runtime library Linker Client binary Server binary Maarten van Steen, Kitlei Róbert Elosztott rendszerek 18 / 44

RPC: a kliens csatlakozása a szerverhez A kliens 1 A szolgáltatások katalógusba jegyzik be (globálisan és lokálisan is), melyik gépen érhetőek el. (1-2) 2 A kliens kikeresi a szolgáltatást a katalógusból. (3) 3 A kliens végpontot igényel a démontól a kommunikációhoz. (4) Directory machine Client machine 3. Look up server Directory server 2. Register service Server machine Client 5. Do RPC Server 1. Register endpoint 4. Ask for endpoint DCE daemon Endpoint table Maarten van Steen, Kitlei Róbert Elosztott rendszerek 19 / 44

Időleges kommunikáció: socket Server socket bind listen accept read write close Synchronization point Communication socket connect write read close Client Maarten van Steen, Kitlei Róbert Elosztott rendszerek 20 / 44

Socket: példa Python nyelven Szerver import socket HOST = PORT = SERVERPORT srvsock = socket.socket(socket.af_inet, socket.sock_stream) srvsock.bind((host, PORT)) srvsock.listen(n) # legfeljebb N kliens várakozhat clsock, addr = srvsock.accept() # lokális végpont + távoli végpont címe while True: # potenciálisan végtelen ciklus data = clsock.recv(1024) if not data: break clsock.send(data) clsock.close() Kliens import socket HOST = distsys.cs.vu.nl PORT = SERVERPORT s = socket.socket(socket.af_inet, socket.sock_stream) s.connect((host, PORT)) s.send( Hello, world ) data = s.recv(1024) s.close() Maarten van Steen, Kitlei Róbert Elosztott rendszerek 21 / 44

Üzenetorientált köztesréteg Működési elv A köztesréteg várakozási sorokat (queue) tart fenn a rendszer gépein. A kliensek az alábbi műveleteket használhatják a várakozási sorokra. PUT GET POLL NOTIFY Üzenetet tesz egy várakozási sor végére Blokkol, amíg a sor üres, majd leveszi az első üzenetet Nem-blokkoló módon lekérdezi, van-e üzenet, ha igen, leveszi az elsőt Kezelőrutint telepít a várakozási sorhoz, amely minden beérkező üzenetre meghívódik Maarten van Steen, Kitlei Róbert Elosztott rendszerek 22 / 44

Üzenetközvetítő Üzenetsorkezelő rendszer homogenitása Az üzenetsorkezelő rendszerek feltételezik, hogy a rendszer minden eleme közös protokollt használ, azaz az üzenetek szerkezete és adatábrázolása megegyező. Üzenetközvetítő üzenetközvetítő (message broker): Olyan központi komponens, amely heterogén rendszerben gondoskodik a megfelelő konverziókról. Átalakítja az üzeneteket a fogadó formátumára. Szerepe szerint igen gyakran átjáró (application-level gateway, proxy) is, azaz a közvetítés mellet további (pl. biztonsági) funkciókat is nyújt Az üzenetek tartalmát is megvizsgálhatják az útválasztáshoz (subject based vagy object based routing) Enterprise Application Integration Maarten van Steen, Kitlei Róbert Elosztott rendszerek 23 / 44

Üzenetközvetítő Source client Message broker Repository with conversion rules and programs Destination client Broker program OS Queuing layer OS OS Network Maarten van Steen, Kitlei Róbert Elosztott rendszerek 24 / 44

Példa: WebSphere MQ (IBM) Működési elv Az üzenetkezelők neve itt sorkezelő (queue manager); adott alkalmazásoknak címzett üzeneteket fogadnak Az üzenetkezelőt össze lehet szerkeszteni a kliensprogrammal Az üzenetkezelő RPC-n keresztül is elérhető Az útválasztótáblák (routing table) megadják, melyik kimenő csatornán kell továbbítani az üzenetet A csatornákat üzenetcsatorna-ügynökök (message channel agent, MCA) kezelik Kiépítik a hálózati kapcsolatokat (pl. TCP/IP) Ki- és becsomagolják az üzeneteket, és fogadják/küldik a csomagokat a hálózatról Maarten van Steen, Kitlei Róbert Elosztott rendszerek 25 / 44

Példa: WebSphere MQ (IBM) Sending client Routing table Send queue Client's receive queue Receiving client Program Queue manager Queue manager Program MQ Interface Stub Server stub MCA MCA MCA MCA Server stub Stub RPC (synchronous) Local network Message passing (asynchronous) Enterprise network To other remote queue managers A csatornák egyirányúak A sorkezelőkhöz beérkező üzenetek automatikusan továbbítódnak a megfelelő lokális MCA-hoz Az útválasztás paramétereit kézzel adják meg Maarten van Steen, Kitlei Róbert Elosztott rendszerek 26 / 44

Példa: WebSphere MQ (IBM) Álnevek Távoli üzenetkezelőhöz álnevet (alias) is lehet rendelni, ez csak a lokális üzenetkezelőn belül érvényes. Alias table LA1 QMC LA2 QMD SQ2 QMA Routing table QMB QMC QMD SQ1 SQ1 SQ2 SQ1 Alias table LA1 QMA LA2 QMD SQ1 Routing table QMA SQ1 QMC SQ1 QMD SQ1 QMB Routing table QMA SQ1 QMC SQ2 QMB SQ1 QMD SQ1 SQ2 Alias table LA1 QMA LA2 QMC QMC SQ1 Routing table QMA SQ1 QMB SQ1 QMD SQ1 Maarten van Steen, Kitlei Róbert Elosztott rendszerek 27 / 44

Folyamatos média Az idő szerepe Az eddig tárgyalt kommunikációfajtákban közös, hogy diszkrét ábrázolásúak: az adategységek közötti időbeli kapcsolat nem befolyásolja azok jelentését. Folyamatos ábrázolású média A fentiekkel szemben itt a továbbított adatok időfüggőek. Néhány jellemző példa: audio videó animációk szenzorok adatai (hőmérséklet, nyomás stb.) Maarten van Steen, Kitlei Róbert Elosztott rendszerek 28 / 44

Folyamatos média Adatátviteli módok Többfajta megkötést tehetünk a kommunikáció időbeliségével kapcsolatban. aszinkron: nem ad megkötést arra, hogy mikor kell átvinni az adatot szinkron: az egyes adatcsomagoknak megadott időtartam alatt célba kell érniük izokron vagy izoszinkron a : felső és alsó korlátot is ad a csomagok átvitelére; a remegés (jitter) így korlátozott mértékű a α-=(fosztóképző), ἴσος=egyenlő, σύν=együtt, χρόνος=idő Maarten van Steen, Kitlei Róbert Elosztott rendszerek 29 / 44

Folyam Adatfolyam adatfolyam: Izokron adatátvitelt támogató kommunikációs forma. Fontosabb jellemzők Egyirányú Legtöbbször egy forrástól (source) folyik egy vagy több nyelő (sink) felé A forrás és/vagy a nyelő gyakran közvetlenül kapcsolódik hardverelemekhez (pl. kamera, képernyő) egyszerű folyam: egyfajta adatot továbbít, pl. egy audiocsatornát vagy csak videót összetett folyam: többfajta adatot továbbít, pl. sztereo audiót vagy hangot+videót Maarten van Steen, Kitlei Róbert Elosztott rendszerek 30 / 44

Folyam: QoS Szolgáltatás minősége A folyamokkal kapcsolatban sokfajta követelmény írható elő, ezeket összefoglaló néven a szolgáltatás minőségének (Quality of Service, QoS) nevezzük. Ilyen jellemzők a következők: A folyam átvitelének sebessége : bit rate. A folyam megindításának legnagyobb megengedett késleltetése. A folyam adategységeinek megadott idő alatt el kell jutniuk a forrástól a nyelőig (end-to-end delay), illetve számíthat az oda-vissza út is (round trip delay). Az adategységek beérkezési időközeinek egyenetlensége: remegés (jitter). Maarten van Steen, Kitlei Róbert Elosztott rendszerek 31 / 44

Folyam: QoS biztosítása Differenciált szolgáltatási architektúra Több hálózati eszköz érhető el, amelyekkel a QoS biztosítható. Egy lehetőség, ha a hálózat routerei kategorizálják az áthaladó forgalmat a beérkező adatcsomagok tartalma szerint, és egyes csomagfajtákat elsőbbséggel továbbítanak (differentiated services). A remegés csökkentése A routerek pufferelhetik az adatokat a remegés csökkentésére. Packet departs source 1 2 3 4 5 6 7 8 Packet arrives at buffer 1 2 3 4 5 6 7 8 Packet removed from buffer 0 5 Time in buffer 10 Time (sec) 1 2 3 4 5 6 7 8 15 20 Gap in playback Maarten van Steen, Kitlei Róbert Elosztott rendszerek 32 / 44

Folyam: QoS biztosítása A csomagok elveszhetnek útközben. Ennek hatását mérsékelheti, ha a csomagon belül az adatelemek sorrendjét kissé módosítjuk; ennek ára, hogy a lejátszás lassabban indul meg. Lost packet Sent 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Gap of lost frames (a) Sent Lost packet 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Lost frames Maarten van Steen, Kitlei Róbert Elosztott rendszerek 33 / 44 (b)

Összetett folyam szinkronizációja Szinkronizáció a nyelőnél Az összetett folyam alfolyamait szinkronizálni kell a nyelőnél, különben időben elcsúszhatnának egymáshoz képest. Receiver's machine Procedure that reads two audio data units for each video data unit Application Incoming stream OS Multiplexálás Network Másik lehetőség: a forrás már eleve egyetlen folyamot készít (multiplexálás). Ezek garantáltan szinkronban vannak egymással, a nyelőnél csak szét kell őket bontani (demultiplexálás). Maarten van Steen, Kitlei Róbert Elosztott rendszerek 34 / 44

Alkalmazásszintű multicasting A hálózat minden csúcsának szeretnénk üzenetet tudjunk küldeni (multicast). Ehhez hierarchikus overlay hálózatba szervezzük őket. Chord struktúrában tárolt fa készítése A multicast hálózatunkhoz generálunk egy azonosítót, így egyszerre több multicast hálózatunk is lehet egy rendszerben. Tegyük fel, hogy az azonosító egyértelműen kijelöl egy csúcsot a rendszerünkben a. Ez a csúcs lesz a fa gyökere. Terv: a küldendő üzeneteket mindenki elküldi a gyökérhez, majd onnan a fán lefele terjednek. Ha a P csúcs csatlakozni szeretne a multicast hálózathoz, csatlakozási kérést küld a gyökér felé. A P csúcstól a gyökérig egyértelmű az útvonal b ; ennek minden csúcsát a fa részévé teszünk (ha még nem volt az). Így P elérhetővé válik a gyökértől. a Ez az azonosító ún. rákövetkezője; a technikai részletek később jönnek. b Részletek szintén később. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 35 / 44

Alkalmazásszintű multicasting: költségek End host A 1 Ra 30 Re Router 1 20 Rc C 7 5 B 1 Rb 40 Internet Rd 1 D Overlay network Kapcsolatok terhelése: Mivel overlay hálózatot alkalmazunk, előfordulhat, hogy egy üzenetküldés többször is igénybe veszi ugyanazt a fizikai kapcsolatot. Példa: az A D üzenetküldés kétszer halad át az Ra Rb élen. Stretch: Az overlayt követő és az alacsonyszintű üzenetküldés költségének hányadosa. Példa: B C overlay költsége 71, hálózati 47 stretch = 71/47. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 36 / 44

Járványalapú algoritmusok Alapötlet Valamelyik szerveren frissítési műveletet (update) hajtottak végre, azt szeretnénk, hogy ez elterjedjen a rendszerben minden szerverhez. Minden szerver elküldi a változást néhány szomszédjának (messze nem az összes csúcsnak) lusta módon (nem azonnal) Tegyük fel, hogy nincs olvasás-írás konfliktus a rendszerben. Két alkategória Anti-entrópia: Minden szerver rendszeresen kiválaszt egy másikat, és kicserélik egymás között a változásokat. Pletykálás (gossiping): Az újonnan frissült (megfertőzött) szerver elküldi a frissítést néhány szomszédjának (megfertőzi őket). Maarten van Steen, Kitlei Róbert Elosztott rendszerek 37 / 44

Járvány: anti-entrópia A frissítések cseréje P csúcs Q csúcsot választotta ki. Küldés (push): P elküldi a nála levő frissítéseket Q-nak Rendelés (pull): P bekéri a Q-nál levő frissítéseket Küldés rendelés (push pull): P és Q kicserélik az adataikat, így ugyanaz lesz mindkettő tartalma. Hatékonyság A küldő rendelő megközelítés esetében O(log(N)) nagyságrendű forduló megtétele után az összes csúcshoz eljut a frissítés. Egy fordulónak az számít, ha mindegyik csúcs megtett egy lépést. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 38 / 44

Járvány: anti-entrópia: hatékonyság Fraction ignorant 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 10 15 20 25 Cycle pull push Maarten van Steen, Kitlei Róbert Elosztott rendszerek 39 / 44

Járvány: pletykálás Működési elv Ha az S szerver új frissítést észlelt, akkor felveszi a kapcsolatot más szerverekkel, és elküldi számukra a frissítést. Ha olyan szerverhez kapcsolódik, ahol már jelen van a frissítés, akkor 1 k valószínűséggel abbahagyja a frissítés terjesztését. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 40 / 44

Járvány: pletykálás: hatékonyság Hatékonyság Kellően sok szerver esetén a tudatlanságban maradó szerverek (akikhez nem jut el a frissítés) száma exponenciálisan csökken a k valószínűség növekedésével, de ezzel az algoritmussal nem garantálható, hogy minden szerverhez eljut a frissítés. ln(s) -2.5-5.0-7.5-10.0-12.5-15.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 k Consider 10,000 nodes k s N s 1 0.203188 2032 2 0.059520 595 3 0.019827 198 4 0.006977 70 5 0.002516 25 6 0.000918 9 7 0.000336 3 Maarten van Steen, Kitlei Róbert Elosztott rendszerek 41 / 44

Járvány: értékek törlése A törlési művelet nem terjeszthető Ha egy adat törlésének műveletét is az előzőekhez hasonlóan terjesztenénk a szerverek között, akkor a még terjedő frissítési műveletek újra létrehoznák az adatot ott, ahová a törlés eljutott. Megoldás A törlést speciális frissítésként: halotti bizonyítvány (death certificate) küldésével terjesztjük. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 42 / 44

Járvány: értékek törlése Halotti bizonyítvány törlése A halotti bizonyítványt nem akarjuk örökké tárolni. Mikor törölhetőek? Szemétgyűjtés-jellegű megközelítés: Egy rendszerszintű algoritmussal felismerjük, hogy mindenhová eljutott a bizonyítvány, és ekkor mindenhonnan eltávolítjuk. Ez a megoldás nem jól skálázódik. elavuló bizonyítvány: Kibocsátás után adott idővel a bizonyítvány elavul, és ekkor törölhető; így viszont nem garantálható, hogy mindenhová elér. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 43 / 44

Járvány: példák Példa: adatok elterjesztése Az egyik legfontosabb és legjellemzőbb alkalmazása a járványalapú algoritmusoknak. Példa: adatok aggregálása Most a cél a csúcsokban tárolt adatokból új adatok kiszámítása. Kezdetben mindegyik csúcs egy értéket tárol: x i. Amikor két csúcs pletykál, mindkettő a tárolt értékét a korábbi értékek átlagára állítja: x i,x j x i + x j 2 Mivel az értékek minden lépésben közelednek egymáshoz, de az összegük megmarad, mindegyik érték a teljes átlaghoz konvergál. x = i x i N Maarten van Steen, Kitlei Róbert Elosztott rendszerek 44 / 44