Professional Documents
Culture Documents
Wstp idee................................................................................................ 3 Czym jest JXTA?........................................................................................................................ 3 Architektura................................................................................................................................ 5 Komponenty JXTA..................................................................................................................... 6 Kluczowe aspekty architektury................................................................................................... 6 Terminologia i podstawowe koncepcje.......................................................................................6 Wzy...................................................................................................................................... 6 Grupy wzw......................................................................................................................... 7 Usugi...................................................................................................................................... 7 Moduy.................................................................................................................................... 7 Potoki ..................................................................................................................................... 7 Zaawansowane kanay komunikacji....................................................................................... 8 Komunikaty............................................................................................................................. 8 Anonse.................................................................................................................................... 8 Bezpieczestwo....................................................................................................................... 9 Architektura sieci........................................................................................................................ 9 Protokoy................................................................................................................................... 11 Przykady.................................................................................................................................. 12 Przykad 1 wykrywanie wzw sieci................................................................................ 12 Przykad 2 tworzenie grupy wzw.................................................................................. 13 Przykad 3 usuga potoku................................................................................................... 13
Wstp idee
JXTA jest zbiorem otwartych protokow, ktre pozwalaj dowolnym urzdzeniom podczonym do sieci (od telefonw komrkowych i PDA przez komputery biurkowe a do superserwerw) wystpowa w charakterze wza sieci peer-to-peer to znaczy komunikowa si i wsppracowa z innymi urzdzeniami na zasadzie rwny z rwnym. Wzy sieci korzystajce z technologii JXTA tworz wirtualn sie, w ktrej kady z wzw moe dokonywa interakcji z innymi wzami lub zasobami bezporednio, nawet w sytuacji, w ktrej niektre wzy znajduj si za zaporami lub NAT. Cele technologii JXTA to przede wszystkim: Interoperacyjno wsppraca w rnych take heterogenicznych systemach peer-topeer i spoecznociach sieciowych Niezaleno od platformy zrnicowane jzyki programowania, systemy operacyjne i sieci Wszechobecno moliwo stosowania na dowolnym urzdzeniu
JXTA daje uytkownikom i programistom wiele moliwoci, z ktrych najwaniejsze to: Znajdowanie wzw i zasobw w sieci bez wzgldu na zapory i NAT Dzielenie si plikami z kimkolwiek w sieci Tworzenie wasnych grup wzw nawet, jeli fizycznie znajduj si w rnych sieciach Zapewnienie bezpiecznej komunikacji midzy wzami w sieciach publicznych
Projekt JXTA zaczyna jako projekt badawczy zapocztkowany w Sun Microsystems pod kierownictwem Billa Joya i Mikea Claryego i mia na celu zaadresowanie sieci peer-topeer.
dostarcza wsplnego zbioru otwartych protokow i open-sourceowej implementacji umoliwiajcej rozwijanie aplikacji P2P. Protokoy JXTA standaryzuj sposb, w jaki wzy sieci P2P: Odkrywaj siebie nawzajem Samoorganizuj si w grupy Rozgaszaj i odkrywaj usugi sieciowe Komunikuj si ze sob Monitoruj nawzajem
Protokoy JXTA zostay zaprojektowane niezalenie od jzykw programowania i niezalenie od protokow transportowych. Protokoy JXTA mog by z powodzeniem zaimplementowane w takich jzykach jak: Java, C/C++, Perl i innych, ponad protokoami transportowymi takimi jak: TCP/IP, HTTP, Bluetooth, HomePNA i innymi.
Architektura
1. Warstwa Platformy (JXTA core) Warstwa platformy czyli rdze JXTA zawiera minimalny i niezbdny zbir funkcji, ktre s wsplne dla modelu P2P. Zawiera mechanizmy kluczowe dla P2P pozwalajce na odkrywanie wzw i grup, zapewniajce transport (take poprzez zapory), umoliwiajce tworzenie wzw i grup, a take funkcje realizujce bezpieczestwo transmisji. 2. Warstwa Usug Warstwa usug zawiera usugi sieciowe, ktre nie s cakowicie niezbdne do funkcjonowania sieci P2P, ale s czsto spotykana bd podane w rodowisku P2P. Przykady takich usug to: wyszukiwanie i indeksowanie, katalogowanie, systemy skadu, wspdzielenie plikw, rozproszone systemy plikw, agregacja i najmowanie zasobw, tumaczenie protokow, uwierzytelnianie i usugi PKI (Public Key Infrastructure) 3. Warstwa Aplikacji Warstwa aplikacji zawiera implementacje zintegrowanych aplikacji takich jak komunikatory P2P, wspdzielenie zasobw i dokumentw, systemy poczty elektronicznej P2P i tym podobne
Komponenty JXTA
Sie JXTA skada si z szeregu poczonych wzw (ang. peers). Wzy maj zdolno do samoorganizowania si w grupy, ktre dostarczaj podobnych usug. Wzy JXTA rozgaszaj swoje usugi w dokumentach XML zwanych anonsami (ang. advertisements). Anonse pozwalaj innym wzom w sieci zdoby wiedz niezbdn do poczenia si z usug i skorzystania z niej. Wzy JXTA uywaj potokw (ang. pipes) do przesyania komunikatw do siebie nawzajem. Potoki to asynchroniczny i niekierowany mechanizm transferu uywany do komunikacji midzy serwisami. Komunikaty to proste dokumenty XML, ktrych koperta zawieraj midzy innymi tras, streszczenie komunikatu i dane niezbdne do autoryzacji. Potoki s zwizane z tak zwanymi punktami terminalnymi (ang. endpoints), ktrymi mog by: port TCP i odpowiedni adres IP.
wza staje si niedostpna w przypadku jego awarii, natomiast pracy usugi grupowej pojedyncze awarie nie zakc. Usugi mog by zainstalowane na danym wle i startowa razem z nim lub by dynamicznie adowane z sieci. Moduy Modu jest pojciem reprezentujcym dowolny wykonywalny kod, np. klasa Javy, biblioteka DLL, odpowiadajcy za implementacj pewnego zachowania systemu. Moduy mog np. reprezentowa implementacj pewnej usugi dla rnych systemw operacyjnych. Moduy s rozsyane i dynamicznie adowane podczas pracy wzw, co umoliwia np. automatyczn konfiguracj i zlecanie zada wzowi po przyczeniu si do grupy. Potoki Potoki s asynchronicznym i nieukierunkowanym kanaem przesyania komunikatw i danych (binarnych i tekstowych) pomidzy wzami. Interfejs wysyajcy dane okrelamy jako output pipe, odbierajcy to input pipe. Potoki s wirtualnym kanaem i w rzeczywistoci poczenie moe by realizowane przy pomocy kilku poredniczcych punktw terminalnych. Istnieje moliwo wysyania i odbierania danych przez kilka wzw za pomoc jednego potoku (unicast pipes jeden odbiorca, propagate pipes wielu odbiorcw). Aby mie pewno, e wysane dane zostan dostarczone nadawcy naley uy potokw bezpiecznych (secure pipes). Zaawansowane kanay komunikacji JxtaSocket i JxtaServerSocket zapewniaj komunikacj dwukierunkow i potwierdzanie odbioru, oparte na strumieniach Javy, dziedzicz z klas java.net.Socket i Java.net.ServerSocket JxtaBiDiPipe i JxtaServerPipe - zapewniaj komunikacj dwukierunkow i potwierdzanie odbioru, ale oparte o mechanizm potokw a nie strumieni Komunikaty Komunikat s obiektami wysyanymi pomidzy wzami, np. przy uyciu potokw. Mog mie reprezentacj XML-ow lub binarna. Kady komunikat jest cigiem elementw okrelonego typu (np. tekst, klasa Javy), identyfikowanych nazwami. Mechanizm platform binding odpowiada za skonwertowanie otrzymanego obiektu do formatu odpowiedniego dla danej platformy.
Anonse Wszystkie zasoby JXTA (wzy, grupy, potoki i usugi) s reprezentowane przez XML-owe dokumenty zwane anonsami (advertisements). S one uywane do dokadnego opisu zasobu i publikowane w sieci, dziki czemu inne wzy mog uzyska informacje o odlegych zasobach. Wze po odczytaniu anonsu moe go scachowa na lokalnej maszynie. Przykadowy anons:
<?xml version="1.0"?> <!DOCTYPE jxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta="http://jxta.org"> <Id> urn:jxta:uuid59616261646162614E504720503250338E3E786229EA460DADC1A176B69B731504 </Id> <Type> JxtaUnicast </Type> <Name> TestPipe.end1 </Name> </jxta:PipeAdvertisement>
Anons zawiera m.in. identyfikator zasobu. Standardowo jest on generowany w sposb losowy przez platform. Bezpieczestwo JXTA oferuje liczne mechanizmy bezpieczestwa. Kady wze podlega autentykacji i autoryzacji w trakcie logowania si do sieci. Komunikaty wysyane midzy wzami mog by szyfrowane i podpisane cyfrowo. JXTA bdzie te wspiera popularne protokoy IPSec i SSL.
Architektura sieci
Sie JXTA jest w budowana ad hoc z poczonych wzw. Poczenia w takiej sieci mog mie chwilowy, ulotny charakter, a trasa komunikatu nie jest z gry ustalona. Wzy w kadej chwili mog doczy do sieci lub odczy si od niej, zatem trasy mog ulega czstym zmianom. Wzy mog przybiera dowoln form, jeli tylko potrafi komunikowa si przy uyciu protokow JXTA. Struktura sieci nie jest narzucana odgrnie przez JXTA Framework, jednak zwykle w praktyce uywa si czterech rodzajw wzw: Podstawowy wze kracowy Ten typ wza potrafi wysya i odbiera komunikaty, ale nie dokonuje cacheowania anonsw ani nie przekazuje dalej (nie trasuje) komunikatw pochodzcych od innych wzw. Podstawowych wzw kracowych uywa si zwykle na urzdzeniach o ograniczonych zasobach (np. PDA albo telefony komrkowe).
Peny wze kracowy Peen wze kracowy wysya i odbiera komunikaty i domylnie dokonuje cacheowania anonsw. Ten typ wza odpowiada na dania wykrywania uywajc informacji pochodzcych z zachowanych w cacheu anonsw, ale nie przekazuje dalej adnych da wykrywania. W typowych sytuacjach wikszo wzw to wanie wzy kracowe.
Wze rendezvous Wze rendezvous (fr. rendezvous spotkanie) od penego wza kracowego rni tym, e przekazuje do innych wzw dania wykrywania, umoliwiajc innym wzom zorientowanie si, jakie usugi s udostpniane. Kiedy wze A docza do grupy automatycznie poszukuje wza rendezvous. Jeli aden taki wze nie zostanie znaleziony, wze A automatycznie staje si wzem rendezvous dla tej grupy. Kady wze rendezvous utrzymuje list innych znanych wzw rendezvous oraz list wzw, ktre uywaj tego wza jako swojego wza rendezvous. Kada grupa wzw utrzymuje wasn list wzw rendezvous i moe posiada tyle wzw RDV, ile potrzebuje. dania wyszukiwania w danej grupie s widoczne tylko przez te wzy RDV, ktre s czonkami tej grupy.
Wzy kracowe wysyaj dania do wzw RDV, ktre z kolei przekazuj do innych wzw RDV te dania, na ktre nie s w stanie same odpowiedzie. Proces ten jest kontynuowany dopki odpowied nie zostanie znaleziona albo danie umrze. Komunikaty maj domylnie ustawiony czas ycia (TTL) na siedem przeskokw. Przeskoki zwrotne s eliminowane dziki utrzymywaniu listy krawdzi znajdujcych si na trasie komunikatu. Wzy przekanikowe
Wzy tego typu posiadaj informacje dotyczce tras do innych wzw i przekazuj komunikaty. Wze najpierw zaglda do swojego lokalnego cacheu w poszukiwaniu informacji o trasie. Gdy takiej informacji nie znajdzie, wysya zapytanie do wza przekanikowego o tras. Wzy przekanikowe su take przekazywaniu komunikatw midzy wzami, ktre nie mog by bezporednio zaadresowane (np. w rodowiskach typu NAT), spinajc rne fizyczne i/lub logiczne sieci. Usugi charakterystyczne dla wzw przekanikowych czy RDV mog zosta zaimplementowane na dowolnym wle. Wze moe jednoczenie peni obie role.
Komunikacja moe te odbywa si pomimo istnienia przeszkd takich jak sieci NAT czy zapory. Aby byo to moliwe musz by spenione nastpujce warunki: Przynajmniej jeden wze w grupie po wewntrznej stronie zapory musi by zna przynajmniej jeden wze poza zapor Wzy wewntrz i na zewntrz sieci chronionej przez zapor musz zna siebie nawzajem i musz obsugiwa protok HTTP Zapora musi pozwala na transfer przez protok http
Protokoy
Istnieje 6 protokow JXTA: Peer Discovery Protocol (PDP) uywany przez wzy do anonsowania ich wasnych zasobw i wykrywania zasobw innych wzw. Kady zasb jest opisywany i publikowany za pomoc anonsu. Peer Information Protocol (PIP) uywany do uzyskiwania informacji kontrolnych (np. czas dziaania, stan) od wzw Peer Resolver Protocol (PRP) umoliwia wzom wysyanie generycznych zapyta to jednego lubi wicej wzw i odbieranie odpowiedzi (jednej lub wielu). Zapytania mog zosta przekierowane do wszystkich wzw w grupie bd do okrelonego zbioru wzw grupy. W przeciwiestwie do PDP i PIP, ktre umoliwiaj wymian tylko z gry zdefiniowanych komunikatw, ten protok pozwala na zdefiniowanie i wymian dowolnej informacji Pipe Binding Protocol (PBP) uywany przez wzy do ustanowienia wirtualnego kanau komunikacji (czyli potoku). PBP jest uywany przez wze do zbindowania dwch lub wicej punktw terminalnych poczenia Endpoint Routing Protocol (ERP) suy do znajdowania tras prowadzcych do docelowych portw na innych wzach. Informacja o trasie zawiera sekwencj identyfikatorw wzw przekanikowych, ktre mog zosta uyte, aby przesa komunikat. (Na przykad, komunikat moe by wysany do wza A, nastpnie przesany do wza B, ktry ostatecznie skieruje go do docelowego wza.) Rendezvous Protocol (RVP) to mechanizm dziki, ktremu wzy mog by dostawcami lub odbiorcami usugi rozpowszechniania. Wzy zorganizowane w grup s albo wzami RDV albo nasuchuj tych wzw. Protok RVP pozwala wysya komunikaty do wszystkich nasuchujcych instancji serwisu. RVP jest uywany przez Peer Resolver Protocol oraz przez Pipe Binding Protocol do propagowania komunikatw w grupie. Wszystkie protokoy JXTA s asynchroniczne i oparte na modelu zapytanie/odpowied. Wze uywa ich do wysania zapytania do pewnej liczby wzw w grupie. W rezultacie moe uzyska zero, jedn lub wicej odpowiedzi. Na przykad, jaki wze uywajc protokou PDP zapytuje o wszystkie znane wzy w supergrupie Neet Peer Group. Typowa
sytuacja w tym przypadku to uzyskanie wielu odpowiedzi od rnych wzw. Inny przykad: wze w grupie poszukuje konkretnego potoku nazwanego GorskiPotok. Jeli potok o tej nazwie nie zostanie znaleziony, uzyskamy dokadnie zero odpowiedzi na to zapytanie. Wzy JXTA nie s zobowizane do implementowania wszystkich 6 protokow mog implementowa jedynie te, ktrych bd uywa. Konkretna implementacja technologii JXTA platforma JXTAJ2SE wspiera wszystkie sze. W tej platformie dostpne jest API napisane w jzyku Java, dziki ktremu mona skorzysta w peni z funkcjonalnoci protokow (np. mona wykrywa wzy sieci albo doczy do grupy).
Przykady
Przykad 1 wykrywanie wzw sieci
Najwaniejsze cechy programu: Dziaanie w domylnej grupie NetPeerGroup Implementacja interfejsu DiscoveryListener (model event-driven) Pobieranie anonsw od znalezionych wzw
Implementacja interfejsu PipeMsgListener w czci programu usugujcej jako serwer Implementacja interfejsu OutputPipeListener w czci programu wystpujcej w charakterze klienta