570 likes | 799 Views
Peer-to-peer platformok: JXTA. T ávközlési és Médiainformatikai Tanszék. Peer-to-peer rendszerek. Fájlcserélők Gnutella, Kazaa … P2P instant üzenet küldő alkalmazások Skype Install álni kell alkalmazásként Mit csinál ez az installált rész?. Peer-to-peer rendszerek. Mindegyikük
E N D
Peer-to-peer platformok:JXTA Távközlési és Médiainformatikai Tanszék simon@tmit.bme.hu
Peer-to-peer rendszerek • Fájlcserélők • Gnutella, • Kazaa • … • P2P instant üzenet küldő alkalmazások • Skype • Installálni kell alkalmazásként • Mit csinál ez az installált rész? simon@tmit.bme.hu
Peer-to-peer rendszerek • Mindegyikük • Saját protokollt használ • Saját alkalmazás programozás felületet (API) definiál • Külön installálni kell mindegyik alkalmazást • Annak ellenére, hogy sok hasonló feladatot látnak el • Üzenetek kezelése • Szomszédok azonosítása • Keresés lebonyolítása simon@tmit.bme.hu
Peer-to-peer platform • Általános elnevezés • Egy előre megírt eszköz-tár (tool-kit) • API-definíciók • Nyílt forráskód nagyobb rugalmasságot biztosít • Együttműködés más protokollokkal • Routing • Címzés • Keresés simon@tmit.bme.hu
JXTA simon@tmit.bme.hu
Tartalomjegyzék • JXTA áttekintés • JXTA komponensek • JXTA hálózati architektúra • JXTA protokollok simon@tmit.bme.hu
JXTA röviden • Nyílt p2p platform, jogdíjak nélkül használható • http://www.jxta.org • Konnektivitás ellenőrzése a hálózat szélén (peerekben) • Elősegíti a hálózatba szervezett eszközök kommunikációját és együttműködését • Támogatott op.rendszerek/platformok: Java 2 Platform, Solaris, Linux, Windows, MacOS • Több eszköztípuson is futtatható • Mobil telefonok, PDA-k, szenzorok, PC-k, szerverek • SUN és nemzetközi p2p fejlesztői csapat által támogatott bővítés simon@tmit.bme.hu
JXTA - célkitűzések • P2P alkalmazások általánosan használt funkcióinak biztosítása • Együttműködés különböző P2P szolgáltatások közt (interoperability) • Platform, nyelv és hálózat függetlenség • Bármely eszközre (ubiquity) simon@tmit.bme.hu
JXTA virtuális hálózat • Minden fizikai eszközt peerként kezelünk • Virtuális Hálózat • Ugyanazok a szolgáltatások • Ugyanazok a modulok simon@tmit.bme.hu
JXTA Peerek képességei • Más peerek felderítése a hálózatban (tűfalon és NAT-on keresztül is) • P2P fájlmegosztás • Tartalomkeresés a hálózaton • Egy adott szolgáltatást nyújtó peer-csoport létrehozása • Peerek tevékenységének távfelügyelete (monitoring) • (Biztonságos) kommunikáció a hálózaton simon@tmit.bme.hu
JXTA alrétegek v1.0 simon@tmit.bme.hu
JXTA alrétegek v2.0 http://www.jxta.org/project/www/docs/JXTA2.0protocols1.pdf simon@tmit.bme.hu
JXTA komponensek simon@tmit.bme.hu
JXTA alapelemek • Cél a konkrét feladattól elvonatkoztatni • Általános • Egységes • Hasonló az öröklés/felülírás elvekhez • PeerID – Azonosító • Globális, egységes címtér • Peer csoportok • szolgáltatások közös halmazát nyújtó peerek • Pipe – Csatorna • Független a végpontoktól • Advertisment – Hirdetmény • XML alapú • Minden üzenet simon@tmit.bme.hu
Azonosítás • UUID, 128-bitesazonosító • Egy entitást (entity) jelöl • Peer, peer csoport, hirdetmény (üzenet, advertisment) • Egyediséget biztosít peer-en belül • Peeren kívül (IP cím, név, UUID) egyedi lesz simon@tmit.bme.hu
Peer végpont (Peer endpoint) • Hálózati interfészek absztrakciója simon@tmit.bme.hu
Peer Csoport I. • Szolgáltatások egy halmazát nyújtó peer-ek csoportja simon@tmit.bme.hu
Peer Csoport II. • Tetszőleges csoportosítás (egy peer több csoportnak is tagja lehet) • Mindenki tagja a NetPeerGroup-nak • A peer csoportok hierarchikus struktúrát alkothatnak • Egyedi Peer group ID • Mire jó? • Biztonsági tartomány létrehozása • Érvényességi tartomány (scope) létrehozása • Monitor tartomány létrehozása simon@tmit.bme.hu
Peer csoport III. • Egy szolgáltatáson keresztül egymással kapcsolatba kerülő peereknek egy csoportba kell tartozni • Alap peer-csoport szolgáltatások • Felderítés • Tagság • Hozzáférés • Csatorna (pipe) • Lekérdezés (resolver) • Felügyelet (monitoring) simon@tmit.bme.hu
Peer Csoport IV. • JXTA kezeli a peer-csoportok • Hirdetését • Felderítését • Csatlakozási folyamatot • Monitorozását • Nem kezeli • Mikor és miért jöjjön létre egy új csoport • LightweigthPeerGroup simon@tmit.bme.hu
Hálózati szolgáltatások • A peerek együttműködése = hálózat szolgáltatások • Hirdetése • Keresése • Igénybevétele • Hálózati szolgáltatások típusai • Peer szolgáltatás • Peer csoport szolgáltatás simon@tmit.bme.hu
Csatornák (Pipes) I. • Aszinkron üzenet küldés/fogadás • Egyirányú • Output és Input csatorna • Dinamikus kötés (Pipe Binding Protocol) • Adott csatornát „át lehet kötni” más peer-re • Point-to-point pipe • Pont-pont kapcsolat • Propagate pipe • Pont-többpont kapcsolat • Nem szükséges közvetlen fizikai kapcsolat a két peer közt simon@tmit.bme.hu
Csatornák (Pipes) II. simon@tmit.bme.hu
JxtaSocket, JxtaBiDiPipe • Kétirányú, megbízható kommunikáció simon@tmit.bme.hu
Hirdetmény • XML formátumú dokumentum • Erőforrások kezelésére használják • Megnevez • Leír • Hirdet (publish) • Lehetséges erőforrások • Peer, peer csoport • Csatorna (pipe) • Szolgáltatás simon@tmit.bme.hu
Példa: Peer hirdetmény (2/1) <?xml version="1.0"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta="http://jxta.org"> <PID>(peer azonosító) urn:jxta:uuid-9616261646162614A7874615032503356 CFE39F036E4038ABE1801D40772DC803 </PID> <GID>(csoport azonosító) urn:jxta:jxta-NetGroup </GID> <Name>(név) Super Chicken </Name> <SVC>(szolgáltatás leíró) … </SVC> </jxta:PA> simon@tmit.bme.hu
Példa: Peer hirdetmény (2/2) <Svc>(szolgáltatás) <MCID>(module class ID) urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000805 </MCID> <Parm>(paraméterek) <Addr>(cím) tcp://198.1.0.70:9701/ </Addr> <Addr>(cím) http://JxtaHttpClientuuid-59616261646162614A78746 15032503356CFE39F036E4038ABE1801D40772DC803/ </Addr> </Parm> </Svc> simon@tmit.bme.hu
Üzenetek • Megbízhatatlan, egyirányú környezetben is • Envelope – ‘burkolat’ • Protokoll elemek Envelope Protokoll elem 1 Protokoll elem n simon@tmit.bme.hu
Üzenet bukolat (envelope) • Forrás - opcionális • Célállomás – absztrakt cél • URI – Fizikai eszköz közti kötés rugalmas Fejléc Üzenet kivonat Cél Forrás simon@tmit.bme.hu
JXTA hálózati architektúra simon@tmit.bme.hu
Hálózat jellemzők • Heterogén • Infrastruktúra jellegű • Ad hoc jellegű • NAT/firewall • Dinamikusan változó • Tranziens hálózati kapcsolatok • Új peerek bármikor csatlakozhatnak vagy távozhatnak simon@tmit.bme.hu
Fizikiai/virtuális peer simon@tmit.bme.hu
Universal resource binding • Egységes mechanizmus erőforrások feloldására központi infrastruktúra nélkül • Peer ID → IP cím (DNS) • Adott szolgáltatás nyújtó peer keresése • Adott tartalom keresése elosztott fájlrendszerben • Minden feloldás művelet hirdetmények felderítésén alapul simon@tmit.bme.hu
Peer típusok • Felosztás szempontja a hirdetmények felderítése során betöltött szerep • Hirdetmények kezelése • Felderítő üzenetek kezelése • Útvonalkeresés • Típusok • Minimal edge peer • Full-featured edge peer • Rendevous peer • Relay peer Super-peers simon@tmit.bme.hu
Minimal edge peer • Korlátozott erőforrások (PDA, telefon) • Üzenetek küld és fogad • De nem tárolja más peerek • Hirdetményeit • Útvonal kereső üzeneteit simon@tmit.bme.hu
Full-featured edge peer • A legtöbb peer ebbe a kategóriába sorolható • Hirdetmények tárolja (caching) • Válaszol a felderítő üzenetekre • Nem továbbítja a felderítő üzeneteket simon@tmit.bme.hu
Super Peer • Hierarchia • Skálázhatóság • Dedikált célokra • Rendezvous Peer • Relay Peer simon@tmit.bme.hu
Rendevous peer • Az edge peerek hirdetményeit indexeli (nem tárolja) • Továbbítja a felderítő üzeneteket • Minden peer csoport nyilvántartja a saját rendevous peerjeit • Ha egy peer becsatlakozik egy csoportba, kiválaszt egy rendezvous peert vagy saját maga lesz az simon@tmit.bme.hu
Rendezvous peers simon@tmit.bme.hu
Hirdetmények indexelése • Shared-Resource Distributed Index service • Hirdetmények indexeinek elküldése a rendevous peernek • Szinkron/aszinkron simon@tmit.bme.hu
Rendevous overlay hálózat • Gyengén konzisztens • Nem frissíti minden rendevous peer a teljes hálózat állapotát • Miért? • Dinamikusan változó ad hoc jellegű hálózat • Hibrid megközelítés • Gyengén konzisztens DHT simon@tmit.bme.hu
Rendezvous Peer View (RPV) • Minden egyes rendezvous peer fenntart egy RPV-t • Sorrendbe állított rendezvous peer lista • Globálisan konvergál • Laza konvergencia • Seeding rendezvous • Referencia RPV-t tartalmaz • Véletlen szám sorsolás – annál a sorszámnál levő rendezvous peer-nek elküldeni a saját RPV-t • „Heartbeat” – szomszédsági viszony fenntartása • +1 and -1 az RPV listában • A nem válaszoló rendezvous peer-t törlik az RPV-ből simon@tmit.bme.hu
Relay peer • Más peerek felé vezető útvonalak nyilvántartása • Üzenetek továbbítása más peerek nevében (pl. NAT esetén) • Tárolják az ideiglenesen elérhetetlen peerek üzeneteit • Útvonalkeresés • Adaptív forrás vezérelt útválasztás • Minden üzenet tartalmaz routing információt • Peer ID alapú útválasztás simon@tmit.bme.hu
Relay Peer simon@tmit.bme.hu
JXTA protokollok simon@tmit.bme.hu
JXTA protokollok • XML alapú üzenetformátumok • Aszinkron, kérés-válasz alapú simon@tmit.bme.hu
JXTA Protokollok • Peer Discovery Protocol • Pipe Binding Protocol • Peer Information Protocol • Rendezvous Protocol • (Peer Membership Protocol) • Endpoint Routing Protocol • Peer Resolver Protocol simon@tmit.bme.hu
Peer Discovery Protokoll • Más peereken található erőforrások (hirdetmények) megtalálására • Peerek, peer csoportok keresésére is használható • Alapesetben választott felderítő (discovery) protokoll • Biztosítja az alapszintű kompatibilitást a JXTA peerek között • A Net Peer Group-ban is használják • Le lehet cserélni egy saját fejlesztésű kereső motorra • Lehet peer v. peer csoport nevének megadásával szűkíteni a kereséseket • Alapesetben minden megtalált hirdetményt visszaad simon@tmit.bme.hu
Peer Felderítés (3/1) • Peer Discovery Protocol (PDP) • LAN alapú felderítés • Helyi elárasztással • Meghívás alapján • A peer meghirdet egy szolgáltatást a peer csoportban • Ezután a felderítés közvetlenül neki szól simon@tmit.bme.hu
Peer Felderítés (3/2) • Kaszkádos felderítés • Hasonlóan a Gnutellahoz • A peer felderít minden elérhető peert • Azok is felderítenek minden általuk elérhető peert • Állítható threshold simon@tmit.bme.hu