Projekti JXTA: Yleiskäyttöinen vertaisverkko sovellusalustana Jaakko Kiviluoto Tiivistelmä Sun Microrsystemsin keväällä 2001 julkistama Projekti JXTA määrittelee joukon käsitteitä ja protokollia, jotka yhdessä muodostavat rakenteen yleiskäyttöiselle vertaisverkolle. JXTA:n määritys on julkinen, ja käytännössä ennemminkin ohjelmistorunko kuin tiukka protokollamääritys. Sen tarkoituksena on luoda riittävän laaja ja käsitteellisesti oikea pohja standardeille, jotka tulevaisuudesa voisivat muodostaa yhteisen vertaisverkkoon perustuvan toteutusalustan hajautetuille sovelluksille. Kaikissa toistaiseksi toteutetuissa vertaisverkoissa esiintyy joukko samankaltaisia ongelmia ja haasteita, joihin JXTA esittelee parhaaksi todetut ratkaisut. Vahvasta mukanaolostaan huolimatta Sun Microsystems ei ole asettanut JXTA:lle alusta- tai ohjelmointikieliriippuvuuksia. Esimerkkitoteutus on saatavana Java- ja C-kielillä, mutta tavoitteena on, että JXTA olisi toteutettavissa eri alustoille mahdollisimman laajassa skaalassa -- pienistä elektronisista komponenteista aina supertietokoneisiin. JXTA määrittelee joukon oleellisia peruskäsitteitä, joiden varaan vertaisverkon toiminnot rakennetaan. Osa näistä käsitteistä on määrittelemättömän verkkotopologian sanelemia, osa tarpeisiin kehitettyjä. Toimijoina JXTA vertaisverkossa ovat osapuolet ja ryhmät. Jokainen osapuoli ja ryhmä assosioituu yksikäsitteiseen tunnisteeseen, jonka perustella ne voidaan verkosta tavoittaa. Jokainen osapuoli voi kuulua yhteen tai useampaan ryhmään. Viestit ja mainokset ovat määräsisältöisiä dokumentteja, jotka kulkevat osapuolten välille muodostettuja putkia pitkin. Näiden kautta osapuolet tarjoavat verkkoon palveluja, joita JXTA sovellukset hyödyntävät. Määrittelystä löytyy protokollat osapuolten etsimiseen ja tunnistamiseen, sekä näiden väliseen kommunikointiin. Omat protokollat määritellään myös ryhmien muodostamiseen sekä palvelujen mainostamiseen. Dokumentissa annetaan joukko esimerkkejä JXTA:n varaan rakennetuista avoimista palveluista ja sovelluksista. Lopuksi esitellään lyhyesti myös JXTA:n kaupallisia sovelluksia. Sisältö 1 Johdanto 1.1 Vertaisverkkojen haasteet 1.2 Yleiskatsaus määriteltyyn rakenteeseen 1.3 Termistö 2 Teknologian rakenne 2.1 Keskeiset käsitteet 2.1.1 Tunnisteet 2.1.2 Osapuolet ja ryhmät 2.1.3 Viestit ja mainokset 2.1.4 Palvelut ja ohjelmistot 2.2 Määritellyt protokollat 2.2.1 Peer Discovery Protocol 2.2.2 Peer Resolver Protocol 2.2.3 Peer Information Protocol 2.2.4 Peer Membership Protocol 2.2.5 Pipe Binding Protocol 2.2.6 Endpoint Routing Protocol 2.3 Ratkaisut käytännön ongelmiin 2.3.1 Palomuurit ja kohtauspaikat 2.3.2 Tiedon eheys 2.3.3 Skaalautuvuus 3 Käyttöesimerkkejä 3.1 Palvelut 3.1.1 JXTA-wire 3.1.2 CMS 3.1.3 LRMP EndpointProtocol 3.2 Ohjelmistot 3.2.1 Rosettachat 3.2.2 JXTA-httpd 3.3 Kaupalliset sovellukset 3.3.1 VistaRepository 3.3.2 Momentum 4 Yhteenveto Lähteet Chen, R., Yeager, W., Poblano -- A Distributed Trust Model for Peer-to-Peer Networks. Sun Microsystems, Inc., 2001. [http://www.jxta.org/docs/trust.pdf]. [24.9.2002]. Gong, L., Project JXTA: A Technology Overview. Sun Microsystems, Inc., 2001. [http://www.jxta.org/project/www/docs/TechOverview.pdf]. [24.9.2002] Gong, L., JXTA: A Network Programming Environment. IEEE Internet Computing, touko--kesäkuu 2001, 88--95. [http://www.jxta.org/project/www/docs/JXTAnetworkProgEnv.pdf]. [24.9.2002] Li, S., Making P2P interoperable: Part 1, The JXTA story. IBM developerWorks, elokuu 2001. [ftp://www6.software.ibm.com/software/developer/library/j-p2pint1.pdf]. [24.9.2002] Li, S., Making P2P interoperable: Part 3, Creating JXTA systems. IBM developerWorks, huhtikuu 2002. [ftp://www6.software.ibm.com/software/developer/library/j-p2pint3.pdf]. [24.9.2002] Project JXTA Team, JXTA v1.0 Protocols Specification. Sun Microsystems, Inc., 2001. [http://spec.jxta.org/v1.0/docbook/JXTAProtocols.pdf]. [24.9.2002] Project JXTA Team, Security and Project JXTA. Sun Microsystems, Inc., 2002. [http://www.jxta.org/project/www/docs/SecurityJXTA.PDF]. [24.9.2002] Wilson, B., JXTA. New Riders, 2002. [http://www.brendonwilson.com/projects/jxta/]. [24.9.2002].