2006. Peer-to-peer platformok: JXTA Távközlési és Médiainformatikai Tanszék
2006. 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?
2006. 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
2006. 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
2006. JXTA
2006. Tartalomjegyzék JXTA áttekintés JXTA komponensek JXTA hálózati architektúra JXTA protokollok
2006. JXTA röviden Nyílt p2p platform, jogdíjak nélkül használható 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
2006. 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)
2006. 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
2006. 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
2006. JXTA alrétegek v1.0
2006. JXTA alrétegek v2.0
2006. JXTA komponensek
2006. 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
2006. Azonosítás UUID, 128-bites azonosí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
2006. Peer végpont (Peer endpoint) Hálózati interfészek absztrakciója
2006. Peer Csoport I. Szolgáltatások egy halmazát nyújtó peer-ek csoportja
2006. 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
2006. 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)
2006. 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
2006. 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
2006. 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
2006. Csatornák (Pipes) II.
2006. JxtaSocket, JxtaBiDiPipe Kétirányú, megbízható kommunikáció
2006. 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
2006. Példa: Peer hirdetmény (2/1) (peer azonosító) urn:jxta:uuid A CFE39F036E4038ABE1801D40772DC803 (csoport azonosító) urn:jxta:jxta-NetGroup (név) Super Chicken (szolgáltatás leíró) …
2006. Példa: Peer hirdetmény (2/2) (szolgáltatás) (module class ID) urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE (paraméterek) (cím) tcp:// :9701/ (cím) CFE39F036E4038ABE1801D40772DC803/
2006. Üzenetek Megbízhatatlan, egyirányú környezetben is Envelope – ‘burkolat’ Protokoll elemek Protokoll elem 1EnvelopeProtokoll elem n
2006. Üzenet bukolat (envelope) Forrás - opcionális Célállomás – absztrakt cél URI – Fizikai eszköz közti kötés rugalmas Üzenet kivonatFejléc Forrás Cél
2006. JXTA hálózati architektúra
2006. 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
2006. Fizikiai/virtuális peer
2006. 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
2006. 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
2006. 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
2006. 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
2006. Super Peer Hierarchia Skálázhatóság Dedikált célokra Rendezvous Peer Relay Peer
2006. 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
2006. Rendezvous peers
2006. Hirdetmények indexelése Shared-Resource Distributed Index service Hirdetmények indexeinek elküldése a rendevous peernek Szinkron/aszinkron
2006. 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
2006. 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
2006. 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
2006. Relay Peer
2006. JXTA protokollok
2006. JXTA protokollok XML alapú üzenetformátumok Aszinkron, kérés-válasz alapú
2006. JXTA Protokollok Peer Discovery Protocol Pipe Binding Protocol Peer Information Protocol Rendezvous Protocol (Peer Membership Protocol) Endpoint Routing Protocol Peer Resolver Protocol
2006. 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
2006. 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
2006. 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
2006. Peer Felderítés (3/3) Rendezvous pontok segítségével
2006. Pipe Binding Protokoll Adott hirdemény hozzárendelése egy pipe bementhez/kimenethez Pipe = üzenet sor, amely absztrakt műveleteket támogat Létrehoz, megnyit, bezár, töröl, küld, fogad A hozzárendelés a megnyitás során történik Megszűnik a törlés során
2006. Peer Information Protokoll Más peerek képességeikről és státusáról lehet infot szerezni Pl. ping jellegű üzenettel lehet tesztelni az aktív státusát egy peernek Adott peer tulajdonságait is le lehet kérdezni Tulajdonság = (név, érték) páros
2006. Rendezvous Protokoll Rendezvous Protocol „propagation service” = továbbítási mechanizmust defineál A peerek feliratkozhatnak Fenntarthatják állapotukat
2006. Peer Membership Protokoll Csoporttagság feltételeit lekérdezni Csoporttagság kérése Csoporttagság megadása Csoport hirdetményeinek átadása Lemondani a csoporttagságról Azonosító elemek és biztonsági primitívek segítségével elérhető biztonsági szintek
2006. Peer Endpoint Protokoll Adott cél peer felé vezető útvonalakat lehet lekérdezni Pl. két kommunikáló peer Más szállítási protokollt használnak NAT, Firewall választja el őket ekkor a peer router megadja az útvonal melletti gateway-eket Egy peer eldönti, hogy peer router lesz A Peer Endpoint Protokoll telepítésével válik azzá
2006. Peer Resolver Protokoll Generikus lekérdezések kezelése peer, peer csoport, pipe, egyéb info keresésére Egy peer csoport valamennyi, vagy adott tagjaihoz intézett lekérdezések PRP-re épülő protokollok Peer Information Protokoll Peer Discovery Protocol