gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/Documentation/misc/hemppah-luk luk-tutkielm...


From: Hermanni Hyytiälä
Subject: [Gzz-commits] gzz/Documentation/misc/hemppah-luk luk-tutkielm...
Date: Wed, 16 Oct 2002 08:38:49 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Hermanni Hyytiälä <address@hidden>      02/10/16 08:38:23

Modified files:
        Documentation/misc/hemppah-luk: luk-tutkielma_teksti 

Log message:
        hemppah: 5th initial version

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti
diff -c gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti:1.4 
gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti:1.5
*** gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti:1.4 Wed Oct 16 
05:53:56 2002
--- gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti     Wed Oct 16 
08:38:23 2002
***************
*** 21,27 ****
  
  Tietotekniikan (ohjelmistotekniikka)
  LuK-tutkielma
! xx.10.2002
  
  Jyväskylän yliopisto
  Tietotekniikan laitos
--- 21,27 ----
  
  Tietotekniikan (ohjelmistotekniikka)
  LuK-tutkielma
! 16.10.2002
  
  Jyväskylän yliopisto
  Tietotekniikan laitos
***************
*** 29,37 ****
  
  Tiivistelmä
  
! Tämä LuK-tutkielma käsittelee JXTA-arkkitehtuuria. JXTA on avoin 
teknologiaympäristö, jonka avulla voidaan kommunikoida, tehdä yhteistyötä, 
jakaa tietoa ja tehdä sovelluksia vertaisverkko-ympäristössä. Tutkielman 
tavoitteena on antaa lukijalle yleiskuva JXTA-arkkitehtuurista.
  
- Title in English: JXTA architecture Avainsanat: Vertaisverkot, P2P, 
tietoverkot, tietoturva, hajautetut järjestelmät Keywords: Peer-to-Peer, P2P, 
networking, secure computing, distributed computing
  
  Tekijän yhteystiedot:
  Hermanni Hyytiälä
--- 29,42 ----
  
  Tiivistelmä
  
! Tämä LuK-tutkielma käsittelee JXTA-arkkitehtuuria. JXTA on avoin 
teknologiaympäristö, jonka avulla voidaan kommunikoida, 
! tehdä yhteistyötä, jakaa tietoa vertaisverkkoympäristössä. Tutkielman 
tavoitteena on antaa lukijalle yleiskuva 
! JXTA-arkkitehtuurista.
! 
! Title in English: JXTA architecture 
! Avainsanat: Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut 
järjestelmät 
! Keywords: Peer-to-Peer, P2P, networking, secure computing, distributed 
computing
  
  
  Tekijän yhteystiedot:
  Hermanni Hyytiälä
***************
*** 44,270 ****
  
  
  
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
  1.Johdanto
  
! Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on 
järjestelmäkokonaisuus, jonka avulla vertaisverkoissa voidaan siirtää 
tiedostoja, keskustella, jakaa työpöytiä ja hakea tietoa. JXTA poikkeaa useista 
muista vertaisverkkoarkkitehtuureista siten, että se on täysin avoin 
järjestelmä. Tämä tarkoittaa sitä, että JXTA kehittyy jatkuvasti useiden 
vapaaehtoisten sovelluskehittäjien toimesta. Lisäksi JXTA on tarkoitettu 
käytettävän yrityksissä, jonka seurauksena JXTA sisältää omaisuuksia, joita 
muista vertaisverkkoarkkitehtuureista ei löydy.
  
! Tutkielma jakaantuu kolmeen osaan. Luvuissa 2 ja 3 käsitellään 
vertaisverkkoja ja JXTAa yleisellä tasolla, luvuissa 4, 5, 6 ja 7 keskitytään 
JXTA-järjestelmän ominaisuuksiin. Luku 8 antaa esimerkin tiedonhausta 
JXTA-vertaisverkossa.
  
  2.Vertaisverkot ja JXTA
  
! Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin 
suureksi, että kukaan ei pysty enää hallitsemaan kaikkea tietoa. On arvioitu, 
että uusien langattomien laitteiden markkinoille tulo kasvattaa tietoverkoissa 
käytettävien laitteiden määrää miljardeilla uusilla laitteilla.
! 
! Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden 
heikkoudet ovat tulleet esille. Esimerkiksi suuren ja paljon tietoa sisältävän 
tietokonejärjestelmän kuormittaminen keskitetysti (eng. Denial of service 
attack) voi aiheuttaa järjestelmän jumiutumisen, so. Järjestelmän palvelut 
lakkaavat toimimasta.
  
- Keskitettyjen palveluiden haavoittuvuudesta johtuen on alettu kehittämään 
vaihtoehtoisia tapoja viestiä tietoverkoissa. Vertaisverkot ovat tietoverkkoja, 
joissa verkkoon kuuluvat laitteet ovat tasavertaisia. Tiedon siirtoon ei 
tarvita keskuskoneita, vaan verkon laitteet keskustelevat ainoastaan keskenään. 
IEEE 802.11b-standardi on esimerkki vertaisverkko-arkkitehtuurista, jossa 
verkon laitteet eivät tarvitse keskustietokoneiden palveluita verkkoon 
liityttäessä.
- 
- Tiedotusvälineissä paljon julkisuutta saanut 
Napster-tiedostonjako-arkkitehtuuri ei perustu vertaisverkko-teknologiaan, 
koska Napsterissa käytetään keskustietokoneita tiedon indeksointiin. Itse 
tiedon siirto tapahtuu kuitenkin ilman keskustietokoneita. Napsterin syntymän 
jälkeen on tehty lukuisia muita tiedostonjako-ohjelmistoja, jotka pohjautuvat 
enemmän vertaisverkko-ideologiaan.
  
  3.JXTA-projekti
  
  3.1.Yleistä
  
! JXTA on alunperin Sun Microsystemsin aloittama projekti. Projektin 
tavoitteena on luoda avoin arkkitehtuuri, joka mahdollistaa tehokkaan 
viestinnän ja tiedonsiirron tietoverkoissa. JXTA-arkkitehtuuri perustuu 
vertaisverkko-ideologiaan. JXTAn avulla voidaan tietoverkoissa viestiä, tehdä 
yhteystyötä, jakaa resursseja ja hakea tietoa. JXTA on laitteisto- tai 
kieliriippuvainen, joten se mahdollistaa erilaisten digitaalisten laitteiden 
yhtäaikaisen käytön samassa tietoverkossa.
  
  3.2 Tavoitteet
  
! JXTA-projektin päämääränä on luoda vertaisverkko-arkkitehtuuri, josta 
hyötyisivät sekä yksityishenkilöt että yritykset. Kun projekti alkoi, luotiin 
kolme tavoitetta, joihin pitäisi pyrkiä:
! 
! Yhteensopivuus Lähes kaikki saatavilla olevat vertaisverkko-arkkitehtuurit 
ovat keskenään yhteensopimattomia. Projektin tavoitteena on luoda 
universaalinen vertaisverkko-arkkitehtuuri, jolloin kaikki tätä arkkitehtuuria 
käyttävät sovellukset ja palvelut olisivat keskenään yhteensopivia ja voisivat 
käyttää hyväksi toistensa palveluita.
  
! Alusta riippumattomuus Useat vertaisverkko-arkkitehtuurit ovat sidottuja 
tiettyyn alustaan, koska ne ovat suunniteltu ja toteutettu tietyillä 
kielityökaluilla. Esimerkiksi jos vertaisverkko-ohjelma on toteutettu 
C++-ohjelmointikielellä, voi ohjelman siirrettävyys eri järjestelmien välillä 
on vaikeaa tai jopa mahdotonta. JXTA on kielityökalu-, laitteisto- ja 
verkkoriippumaton vertaisverkko-arkkitehtuuri.
! 
! Kaikkialla läsnäoleva JXTA-teknologia on suunniteltu toimivan erilaisissa 
digitaalisissa laitteissa. Esimerkiksi erilaiset taskutietokoneet, 
kulutuselektroniikka- ja verkkolaitteistot ja tavalliset tietokoneet voivat 
keskustella keskenään JXTA-teknologian ansiosta.
  
  4 JXTA-verkkoarkkitehtuuri
  
! JXTA-arkkitehtuurin protokollat luovat virtuaalisen verkon fyysisen verkon 
päälle. Virtuaaliverkon tarkoituksena on piilottaa alla olevan fyysisen verkon 
monimutkaisuus (palomuurit) ja luoda yhtenäinen verkko verkon käyttäjien 
kesken. Kuvassa 1 on esitetty virtuaalisen verkon rakenne.
! 
! 
! Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems).
  
- 4.1 Verkkolaitteiden tunnistus (Uniform Peer Addressing)
  
- Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet 
tunnistetaan JXTA-arkkitehtuurin mukaisessa vertaisverkossa. Jokaiselle verkon 
laitteelle luodaan verkkoon liittymisen yhteydessä 128-bittinen tunniste 
(Universal User Identification). Tunnisteen avulla voidaan yksikäsitteisesti 
tunnistaa verkon laite, oli kyseessä sitten DHCP-tekniikkaa käyttävä laite tai 
erilaisia verkkoliityntöjä käyttävä laite (Ethernet, Bluetooth). Lisäksi 
jokainen verkon laite omaa laiterajapinnan, so. minkälaisia tekniikoita laite 
osaa käyttää tietoverkossa (Peer Endpoint). Esimerkiksi kun tietoverkon laite 
(A) saa tietoonsa toisen laitteen (B) laiterajapinnan, laite (A) voi valita 
parhaan tiedonsiirtokäytännön laitteen (B) kanssa.
  
! 4.2 Viestit (Messages)
  
- Kuten muissa ei-suunnitelluissa (eng. ad-hoc) ja mukautuvissa 
vertaisverkoissa, myös JXTA-verkossa yhteydet verkon laitteiden välillä voivat 
olla ohimeneviä. Tiedon välitysreitit voivat vaihtua jatkuvasti ja olla 
asynkronisia. JXTA-verkossa siirtyvät viestit on suunniteltu tällaisia tarpeita 
ajatellen.
  
- Jokainen viesti sisältää otsikon (eng. Header), ei-pakollisen tiivistelmän 
(eng. Digest), päällysen (eng. Envelope) ja pinon (eng. Stack) sisältäen 
protokollien otsikot ja tiedot (eng. Body). Päällynen sisältää otsikon, 
ei-pakollisen viestin lyhennelmän, lähettäjän sekä vastaanottajan. 
Vastaanottaja on looginen kohde, joka on annettu URI-muotoisena tietona.
  
! Viestin tieto sisältää muuttuvan määrän tietoa sekä tunnisteita, joiden 
avulla voidaan tunnistaa viestin lähettäjä ja vastaanottaja. Tunniste voi olla 
esimerkiksi allekirjoitus, joka määrittää yksikäsitteisesti viestin lähteen.
  
- 4.3 Mainokset (Advertisements)
  
! Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa 
olevan tirkistelijän palveluita. Kaikki verkon resurssit ja palvelut kuvataan 
mainoksilla. JXTA-arkkitehtuurissa on seitsemän valmista mainospohjaa, joita 
voidaan käyttää mainosten luomisessa: Tirkistäjä-mainos (eng. Peer 
advertisement), tirkistäjäryhmä-mainos (eng. Peer Group advertisement), 
piippu-mainos (eng. Pipe advertisement), moduuli-mainos (eng. Module 
advertisement), tirkistäjätieto-mainos (eng. Peer Info advertisement), 
sisällys-mainos (eng. Content advertisement) ja laiterajapinta-mainos (eng. 
Peer Endpoint advertisement).
  
! Mainoksia analysoimalla verkon laitteet pystyvät löytämään halumansa palvelut 
JXTA-verkosta. Kaikki tirkistelijät tallentavat, julkaisevat ja vaihtavat 
mainoksia keskenään, jotta löytäisivät olemassa olevia resursseja 
JXTA-verkosta. Kaikkiin mainoksiin liittyy elämänpituus-arvo (eng. Lifetime), 
joka määrittelee mainoksessa määritellyn palvelun saatavuuden. Mainos voidaan 
uudelleen julkaista, jolloin elämänpituus-arvoa voidaan tarvittaessa kasvattaa. 
Kuvassa2 on esitetty eräs JXTA-arkkitehtuurin mukainen mainos.
  
  
  
  Kuva 2: XML-muotoinen mainos (© Sun Microsystems).
  
- 4.4 Tirkistäjä (Peer)
  
- JXTA-verkko koostuu tirkistäjistä. Tirkistäjä voi olla tietokone, 
kämmentietokone tai langaton puhelin. Tirkistäjän pitää osata keskustella 
muiden tirkistäjien kanssa JXTA-arkkitehtuurin mukaisten protokollien avulla.
  
! 4.5 Tirkistäjäryhmät (Peer Groups)
  
! JXTA-verkossa voi muodostua tirkistäjäryhmiä. Tirkistäjäryhmät ovat 
virtuaalisia konaisuuksia, jotka koostuvat yksittäisistä tirkistelijöistä, 
joilla on samat kiinnostuksen kohteet. Yleensä tirkistäjäryhmään kuuluvat 
tirkistäjät ovat sopineet erilaisista käytännöistä (eng. Policies), joita 
noudatetaan tirkistäjäryhmän keskuudessa. Jokainen tirkistäjäryhmä tunnistetaan 
yksillöllisen tunnisteen avulla. Uusi tirkistäjäryhmä voidaan luoda 
dynaamisesti käyttäjän, sovelluksen tai ylläpitäjän toimesta. Yksittäinen 
tirkistäjä voi kuulua samanaikaisesti useaan eri tirkistäjäryhmään. 
Tirkistäjäryhmien olemassa oloon JXTA-arkkitehtuurin kehittäjät ovat löytäneet 
kolme motiivia: luottamuksellisen tiedon siirto rajoitetussa ympäristössä, 
samanlaisten intressien jakaminen rajoitetussa ympärisössä sekä rajoitetun 
ympäristön monitorointi ja analsyointi.
  
! JXTA-verkossa on implisiittinen, koko verkon laajuinen World Peer Group 
(WPG), joka kattaa kaikki verkon tirkistelijät. Tämä ei kuitenkaan tarkoita 
sitä, että WGP-ryhmän tirkistelijät voisivat löytää kaikki muut tirkistelijät.
  
  
! 4.6 Piiput (Pipes)
  
- Piiput ovat asynkronisia kanavia, joiden kautta viestejä lähetetään 
JXTA-verkossa. Piiput ovat myös virtuaalisia, so. piipun kohde voidaan yhdistää 
yhteen tai useaan tirkistelijään. Piippuja käyttävät JXTA-verkon palvelut sekä 
sovellukset.
  
! Piippu yhdistetään yleensä ajonaikaisesti tirkistelijään käyttäen piipun 
yhdistys protokollaa (eng. Pipe Binding Protocol). Yksittäinen piippu voidaan 
yhdistää eri aikoina eri tirkistelijöihin. Tämä on hyöydyllinen omainaisuus 
silloin kun halutaan varmistaa järjestelmän toimivuus kriittisissä tilanteissa. 
Esimerkiksi viottunut tirkistelijä verkossa voidaan korvata toisella toimivalla 
tirkistelijällä.
  
! Pisteestä-pisteeseen piipulla (eng. Point-to-point pipe) voidaan yhdistää 
tasan kaksi tirkistelijää. Tällöin piippu on ulosmeno piippu lähettäjälle ja 
sisäänmeno piippu vastaanottajalle. Liikenne on yksisuuntaista, lähettäjältä 
vastaanottajalle. Levittäytyvät piiput (eng. Propagate pipe) pystyvät 
yhdistämään usean tirkistelijän laiterajapinnat keskenään.
  
  
! 4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous)
  
- JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka 
hoitaa verkon palveluihin liittyviä perustehtäviä. Näitä ovat esimerkiksi 
tirkistelijän nimen liittäminen IP-osoitteeseen, IP-pistorasian (eng. Socket) 
liittäminen porttiin, palvelun löytäminen LDAP-teknologian avulla ja tiedon 
etsintä hajautetussa tiedostojärjestelmässä (eng. Network Filesystem, NFS). 
Kaikki edellä mainitut operaatiot käyttävät mainoksia (eng. Advertisement) 
hyväkseen.
  
! Kohtauspaikka-tirkistelijä (eng. Rendezvous Peer) on erityinen tirkistelijä, 
jotka ovat tunnettuja muiden tirkistelijöiden keskuudessa ryhmän sisällä. 
Kohtauspaikka tirkistelijä tallentaa muistiinsa suuren määrän mainoksia, 
tarjoten palveluita muille ryhmän jäsenille. Ryhmä voi sisältää mielivaltaisen 
monta Kohtauspaikka- tirkistelijää.
  
! Yleisesti vertaisverkoissa ylemmän tason (eng. High level) hakupalvelut 
tarjoavat paremmat tehokkaammat hakumenetelmät, koska palveluilla on parempi 
tietous tiedon levinneisyydestä tirkistelijöiden keskuudessa (Chord, CAN). 
Kohtauspaikka-arkkitehtuuri tarjoaa sekä alemman tason hakupalvelut mainosten 
löytämiseen sekä koukkuja (eng. Hooks), joita voidaan käyttää hyväksi ylemmän 
tason mainosten (tiedon) etsintään.
  
  
  5. Protokollat
  
  5.1 Peer Discovery Protocol
  
! Auttaa yksittäisen tirkistelijän löytämään mainoksia, toisia tirkistelijöitä, 
tirkistelijä-ryhmiä JXTA-verkossa. Jos tirkistelijän tai tirkistelijä-ryhmän 
nimeä ei ole määritelty, protokolla palauttaa kaikkia saatavilla olevat 
mainokset haun tuloksena.
  
  5.2 Peer Resolver Protocol
  
! Mahdollistaa tirkistelijän lähettää ja vastaanottaa yleisiä kyselyitä 
tirkistelijään, tirkistelijä-ryhmään, piippuihin tai tietoon liittyen. Yleensä 
tämä protokolla on ainoastaan käytössä niissä tirkistelijöissä, jotka 
mahdollistavat monipuoliset hakupalvelut (eng. Rendezvous Peer).
  
  5.3 Peer Information Protocol
  
! Auttaa tirkistelijää oppimaan muiden tirkistelijöiden palveluita sekä tiloja. 
Esimerkiksi tirkistelijä voi lähettää testiviestin (eng. Ping message) toiselle 
tirkistelijälle tarkastaakseen, onko tämä saatavilla.
  
  5.4 Peer Membership Protocol
  
! Mahdollistaa yksittäisen tirkistelijän tulla tirkistelijä-ryhmän jäseneksi, 
luoda hakemukus tirkistelijä-ryhmään liittymiseksi tai ryhmästä poistumiseksi, 
ottaa ryhmän mainoksia vastaan ja päivittää ryhmän jäsenyyteen liittyviä 
tietoja.
  
  5.5 Pipe Binding Protocol
  
! Mahdollistaa tirkistelijän liittää piipun mainos piipun kohteeseen.
  
  5.6 Peer Endpoint Protocol
  
! Auttaa tirkistelijää kysymään tirkistäjä-reitittimeltä reittejä kohde 
tirkistelijään. Tämä on hyödyllistä silloin, kun tirkistelijät ovat fyysisesti 
eri verkoissa tai kun palomuuri on tirkisteliöiden välissä. Tirkistelijä voi 
luoda itsestään tirkistelijä reitittimen ottamalla käyttöönsä Peer 
Endpoint-aliprotokollan.
  
  6. Ohjelmistoarkkitehtuuri
  
! JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen 
kerrokseen. Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri.
  
  
  
  Kuva 3: JXTAn ohjelmistoarkkitehtuuri (© Sun Microsystems).
  
- 6.1 Ydin (Core)
  
- JXTAn ydin tarjoaa peruspavelut tirkistelijä-palveluille sekä sovelluksille. 
Turvallinen suoritusympäristö, tirkistelijäryhmät, piiput sekä verkon 
monitorointi on sisään rakennettu ytimeen.
  
! Ytimessä on tuki myös anonyymeille tai rekisteröityneille käyttäjille sekä 
salatulle tai ei-salatulle tiedolle. Edellä mainitut ominaisuudet määritellään 
tarvittaessa vasta palvelutai sovellus-tasolla.
  
! 6.2 Palvelut (Services)
  
! Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa 
palvelut tiedon hakemiseen, tiedon jakamiseen, tiedon indeksointiin ja tiedon 
tallentamiseen.
  
! Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan 
rakentaa turvallisia vertaisverkko-sovelluksia.
  
! 6.3 Sovellukset (Applications)
  
! JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita 
hyväksi. JXTA-sovelluksia voivat olla esimerkiksi pikaviestimet, sähköposti- ja 
kalenteri-pavelut sekä resurssien hakuun tai siirtoon erikoistuneet sovellukset.
  
! 6.4 Esimerkki sovellus: Kuori (JXTA Shell)
  
! Kuori on hyvä esimerkki JXTA-arkkitehtuurin päälle rakennetusta 
sovelluksesta. Kuori on interaktiivinen komentorivipohjainen sovellus, 
samanlainen mitä yleimmät kuoret ovat Unix-järjestelmissä. Suurin ero 
Unix-kuoren ja JXTA-kuoren välillä on se, että Unix-kuoren komennot on 
tarkoitettu suoritettavaksi paikallisessa ympäristössä, kun taas JXTA-kuoren 
komennot suoritetaan verkotetussa ympäristössä.
  
! Kuori JXTA-ympäristössä on yksinkertainen tulkki, joka hyväksyy komennon, 
tulkitsee komennon, suorittaa komennon ja odottaa komentoon vastausta. 
Komentoja ovat esimerkiksi "ls", "cat" ja "grep", aivan kuten perinteisissä 
Unix-järjestelmissä. Kuoren omainaisuuksiin kuuluu "piiputus", (vertaa edelleen 
perinteiset Unix-järjestelmät), jonka avulla tietyn komennon vaste voidaan 
antaa toisen komennon syötteeksi.
  
  
! 7. Tietoturva
  
! Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon 
turvaamista. Luottamus, koskemattomuus ja saatavuus ovat avainsanoja 
puhuttaessa tietoturvasta. Käytännössä edellä esitetyt vaatimukset tarkoittavat 
käyttäjän tunnistusta, valvontaa, tiedon salausta sekä liikenteen salausta.
  
- TSL-protokollaa käytettäessä JXTA-verkko rakentuu kahdesta eri kerroksesta. 
Alempi kerros on JXTA-verkon virtuaaliverkko, joka mahdollistaa tiedon siirron 
kahden vertaissolmun välillä, vaikka fyysisessä verkossa tämä olisi estetty 
(palomuuri). Ylempi kerros koostuu TLS 1.0-protokollaa käyttävästä, edelleen 
virtuaalisesti verkosta. Ero alemman kerroksen virtuaaliseen verkkoon on se, 
että TLS-protokolla luo turvallisen siirtoyhteyden niiden vertaissolmujen 
välille, joiden keskuudessa tiedosiirto tapahtuu. Kuvassa 4 on esitetty 
arkkitehtuurin perusrakenne.
  
  
  
- Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems).
  
  
! JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria [ ]. Tiedon 
kuljettamiseen käytetään Transport Secutiry Layer 1.0-protokollaa (TSL 1.0) [ ] 
ja tiedon salaamiseen RSA 1024-, 3DES- ja SHA-1-algoritmeja. TLS-protokollan on 
kehittänyt Internet Engineering Task Forde (IETF) ja se on jatkokehitysversio 
aiemmin luodulle Secure Sockey Layer 3.0-protokolalle. TSL 1.0-protokolla on 
kaksisuuntainen ja tieto siirtyy JXTA-verkossa 16 kilon osissa. Koska 
tiedonsiirtoväylä on kaksi suuntainen, pitää tiedonsiirron molemmat osapuolet 
pystyä tunnistamaan. Vertaissolmun pitää hankkia itselleen toisen vertaissolmun 
X509.V3-juuriserfifikaatti (eng. Root Certificate), jotta tiedonsiirto 
tapahtuisi turvallisesti. Sertifikaatti sisältää RSA 1024-algoritmin mukaiset 
julkiset avaimet, joiden avulla voidaan tunnistaa X509.V3-palvelusertifikaatin 
yksityisavaimet. TLS 1.0-protokolla käyttää palvelusertifikaatteja 
vertaissolmujen tunnistamiseen.
  
- Vertaissolmut voivat hankkia toisen vertaissolmun juurisertifikaatin 
itselleen kahdella eri tavalla. Ensimmäinen tapa on levittää vertaissolmun 
juurisertifikaattia mainoksissa. Tämä ei kuitenkaan suositeltavaa, koska 
silloin "Mies viestin keskellä"-hyökkäys (eng. Man In The Middle Attack, MITM) 
saattaa tapahtua. MITM-hyökkäys on käytännössä vaikea suorittaa, koska 
sertifikaatit on vahvasti salattuja. Toinen, turvallisempi tapa levittää 
juurisertifikaatteja on liitää juurisertifikaatti binäärisen tiedon sekaan, 
jolloin MITM-hyökkäukset eivät olet mahdollisia.
  
! Tällä hetkellä JXTA-projektissa kehitetään menetelmää, joka mahdollistaa 
vertaissolmuryhmien tunnistamisen. Menetelmä pohjautuu X509.V3 
sertifikaatteihin. Kun vertaissolmu liittyy vertaissolmuryhmään, saa uusi jäsen 
ryhmän perustajan julkisen juurisertifikaatin itselleen tiedonsiirtokanavaa 
pitkin, jossa käytetään TLS 1.0-protokollaa. Tämän jälkeen uusi jäsen käyttää 
Certificate Service Request-palvelua (CSR) ja juuri saatua julkista avainta 
hankkiessaan ryhmänjäsenyys sertifikaatin itselleen. Sertifikaatti on 
X509.V3-muotoinen ja se on allekirjoitettu ryhmän perustajan yksityisellä 
juurisertifikaatilla.
  
  
  8. Tiedon haku vertais- ja JXTA-verkoissa
  
! Tiedon hakeminen hajautetussa verkossa voidaan jakaa kahteen eri osaan [ ]. 
Ensimmäinen, ei-sisältöpohjainen haku (eng. Content-agnostic Search), pohjautuu 
menetelmään, jossa tarkoituksena on löytää verkosta muita solmuja, jotka 
sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä nämä solmut ovat 
palvelimia, jotka pitävät yllä erilaisia hakemistoja verkossa liikkuvasta 
tiedosta ja tietoon liittyvistä solmuista. Ei-sisältöpohjaista hakutekniikkaa 
käyttää esimerkiksi Napster- ja Gnutella-tiedostonjako-ohjelmat. 
Ei-sisältöpohjaisen haun etuina ovat haun nopeus sekä pieni verkon kuormitus. 
Heikkouksina voidaan pitää virheensietokykyä, laajennettavuutta sekä 
keskitettyä ylläpitoa.
  
- Toinen tekniikka on nimeltään sisältöpohjainen haku (eng. Content-based 
Search). Sisältöpohjaisessa haussa haun kyselyä (eng. Search Query) ohjataan 
haun sisällön perusteella verkon solmujen välillä. Jossain vaiheessa kysely 
ohjautuu verkossa oikealle solmulle, joka pystyy vastaamaan kyselyyn ja 
palauttamaan haun tulokseen. Esimerkkejä tietopohjaisesta hausta ovat CAN (eng. 
Content Addressable Network) [ ] sekä Chord [ ]. Kun uusi solmu liittyy 
tietoverkkoon, jossa käytetään tietopohjaista hakua, tulee solmun ensimmäiseksi 
luoda hakemisto (eng. Index) oman alueen (eng. Zone) mainoksista (eng. 
Advertisement). Yksittäisten alueiden hakemisto-unioni muodostaa olemassa 
olevan verkon koko tietovaraston. Alue, joka uudellee solmulle varataan, on 
dynaaminen ja se rippuu verkon solmujen lukumäärästä sekä yksittäisten solmujen 
poistumisesta verkosta tai liittymisestä verkkoon. Kun verkon solmu haluaa 
julkaista uuden mainoksen resurssiin tai tietoon liittyen, se tutkii mainoksen 
sisällön. Sisällön perusteella solmu osaa lähettää mainoksen verkossa oikeaan 
paikkaan. Yleisin tapa laskea mainoksen paikan määräämiseen on käyttää 
hajautusta.
  
- Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä 
XML-pohjaisiin viesteihin. Kuvassa 5 on esitetty JXTA-verkon verkkotopologia 
tiedonhaun yhteydessä.
  
  Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems).
  
- Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä 
mahdollistaa tehokkaat hakualgorimit sekä vähentää verkon kuormitusta. Kun 
solmut julkaisevat mainoksia, ne tallennetaan keskitin-solmuihin. Yksittäiset 
keskitin-solmut voivat ohjata kyselyjä toisiin keskitin-solmuihin. Lisäksi 
keskitin-solmut voivat keskittyä maantieteellisesti sekä sisällön tai 
sovelluksen perusteella.
  
! JXTA-verkossa käytetään hakujen suorittamiseen Query Routing-protokollaa 
(QRP). Koska protokolla on XML-muotoinen viesti, on se kevyt ja yhteensopiva 
eri järjestelmien välillä. QRP koostuu kolmesta viestimuodosta, 
rekisteröinnistä (eng. Registration), pyynnöstä (eng. Request) sekä 
vastauksesta (eng. Response). Rekisteröinti-viestimuotoa käytetään uusien 
resurssien julkituomiseen, pyyntö-viestimuotoa tiedon ja resurssien hakemiseen 
sekä vastaus-viestimuotoa haun tuottamien vastausten palauttamiseen. Kaikki 
komponentit sijaitsevat kyselyavaruudessa (eng. Query Space), joka vastaa 
XML-standardin nimiavaruuksia (eng. Namespace).
  
  
  
  Kuva 6. Eräs XML-muotoinen pyyntö-viesti (© Sun Microsystems).
  
! Pyyntöjen palauttamiin hakutuloksiin voidaan vaikuttaa Query Node 
Pattern-tekniikan (QNP) avulla. Se on tekniikka, jossa loogisia predikaatteja 
käytetään kuvamaan tietoa tai resurssia. Predikaatit voivat olla yksittäisiä 
sanoja tai loogisia operaattoreita, kuten "Tai" (eng. Or) ja "Ja" (eng. And). 
Kuvassa 7 on esitetty rekisteröinti-viesti. Viestissä rivi 
"http://big-bookseller.com/jxtasearch"; määrää käytettävän kyselyavaruuden. Tämä 
viesti rekisteröi kyselyavaruuteen uudet avainsanat "Joy", "Stephenson", 
"Java", "JXTA", "XML" ja "Cryptography". Kaikki pyyntö-viestit, jotka hakevat 
edellä mainittuja sanoja (kuvan 6 viesti), suoritetaan 
"http://big-bookseller.com/jxtasearch"-palvelimella.
  
  
  Kuva 7. Eräs XML-muotoinen rekisteröinti-viesti (© Sun Microsystems).
--- 49,418 ----
  
  
  
  1.Johdanto
  
! Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on 
järjestelmäkokonaisuus, jonka avulla vertaisverkoissa 
! voidaan siirtää tiedostoja, keskustella, jakaa työpöytiä ja hakea tietoa. 
JXTA poikkeaa useista muista 
! vertaisverkkoarkkitehtuureista siten, että se on täysin avoin järjestelmä. 
Tämä tarkoittaa sitä, että JXTA kehittyy 
! jatkuvasti useiden vapaaehtoisten sovelluskehittäjien toimesta. Lisäksi JXTA 
on tarkoitettu käytettävän yrityksissä, 
! jonka seurauksena JXTA sisältää omaisuuksia, joita muista 
vertaisverkkoarkkitehtuureista ei löydy.
  
! Tutkielma jakaantuu kolmeen osaan. Luvuissa 2 ja 3 käsitellään 
vertaisverkkoja ja JXTAa yleisellä tasolla, luvuissa 4, 
! 5, 6 ja 7 keskitytään JXTA-järjestelmän ominaisuuksiin. Luku 8 käsittelee 
tiedonhakua vertaisverkossa.
  
  2.Vertaisverkot ja JXTA
  
! Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin 
suureksi, että kukaan ei pysty enää 
! hallitsemaan kaikkea tietoa. On arvioitu, että uusien langattomien laitteiden 
markkinoille tulo kasvattaa 
! tietoverkoissa käytettävien laitteiden määrää miljardeilla uusilla laitteilla.
! 
! Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden 
heikkoudet ovat tulleet esille. Esimerkiksi laaja-
! alaisen ja paljon tietoa sisältävän tietokonejärjestelmän kuormittaminen 
keskitetysti (eng. Denial of service attack) 
! voi aiheuttaa järjestelmän jumiutumisen, jolloin kaikki tietojärjestelmän 
tarjoavat palvelut lakkaavat toimimasta.
! 
! Keskitettyjen palveluiden haavoittuvuudesta johtuen on alettu kehittämään 
vaihtoehtoisia tapoja viestiä tietoverkoissa. 
! Vertaisverkot ovat tietoverkkoja, joissa kaikki verkkoon kuuluvat laitteet 
ovat tasavertaisia. Tiedon siirtoon ei 
! tarvita keskuskoneita, vaan verkon laitteet keskustelevat ainoastaan 
keskenään. IEEE 802.11b-standardi on esimerkki 
! vertaisverkkoarkkitehtuurista, jossa verkon laitteet eivät tarvitse 
keskustietokoneiden palveluita verkkoon 
! liityttäessä.
! 
! Tiedotusvälineissä paljon julkisuutta saanut 
Napster-tiedostonjakoarkkitehtuuri ei perustu vertaisverkkoteknologiaan, 
! koska Napsterissa käytetään keskustietokoneita tiedon tallentamiseen (eng. 
Indexing). Itse tiedonsiirto tapahtuu 
! kuitenkin ilman keskustietokoneita. Napsterin syntymän jälkeen on tehty 
lukuisia muita tiedostonjako-ohjelmistoja, jotka 
! pohjautuvat enemmän vertaisverkkoideologiaan.
  
  
  3.JXTA-projekti
  
  3.1.Yleistä
  
! JXTA on alunperin Sun Microsystemsin aloittama projekti. Projektin 
tavoitteena on luoda avoin arkkitehtuuri, joka 
! mahdollistaa tehokkaan ja turvallisen tiedonsiirron vertaisverkoissa. 
JXTA-arkkitehtuuri perustuu vertaisverkko-
! ideologiaan. JXTAn avulla voidaan tietoverkoissa viestiä, tehdä yhteystyötä, 
jakaa resursseja ja hakea tietoa. JXTA on 
! laitteisto- tai kieliriippumaton, joten se mahdollistaa erilaisten 
digitaalisten laitteiden- ja viestimien yhtäaikaisen 
! käytön samassa vertaisverkossaa.
  
  3.2 Tavoitteet
  
! JXTA-projektin päämääränä on luoda vertaisverkkoarkkitehtuuri, josta 
hyötyisivät sekä yksityishenkilöt että yritykset. 
! Kun projekti alkoi, luotiin kolme tavoitetta:
  
! Yhteensopivuus
! Lähes kaikki saatavilla olevat vertaisverkkoarkkitehtuurit ovat keskenään 
yhteensopimattomia. Projektin 
! tavoitteena on luoda universaalinen vertaisverkkoarkkitehtuuri, jolloin 
kaikki tätä arkkitehtuuria käyttävät 
! sovellukset ja olisivat keskenään yhteensopivia ja voisivat käyttää hyväksi 
toistensa palveluita.
! 
! Alusta riippumattomuus
! Useat vertaisverkko-arkkitehtuurit ovat sidottuja tiettyyn alustaan, koska ne 
ovat suunniteltu 
! ja toteutettu tietyillä kielityökaluilla. Esimerkiksi jos 
vertaisverkko-ohjelma on toteutettu C++-ohjelmointikielellä, 
! voi ohjelman siirrettävyys eri järjestelmien välillä olla vaikeaa tai jopa 
mahdotonta. JXTA on kielityökalu-, 
! laitteisto- ja verkkoriippumaton vertaisverkkoarkkitehtuuri.
! 
! Kaikkialla läsnäoleva
! JXTA-teknologia on suunniteltu toimivan erilaisissa digitaalisissa 
laitteissa. Esimerkiksi 
! erilaiset taskutietokoneet, kulutuselektroniikka- ja verkkolaitteistot ja 
tavalliset tietokoneet voivat keskustella 
! keskenään JXTA-teknologian ansiosta.
  
  4 JXTA-verkkoarkkitehtuuri
  
! JXTA-arkkitehtuurin protokollat luovat virtuaalisen verkon fyysisen verkon 
päälle. Virtuaaliverkon tarkoituksena on 
! piilottaa alla olevan fyysisen verkon monimutkaisuus, esimerkiksi palomuurit, 
ja luoda yhtenäinen kokonaisuus verkon 
! laitteiden kesken. Kuvassa 1 on esitetty JXTA-verkon virtuaalisen verkon 
rakenne.
  
  
  
! Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems).
  
  
  
! Seuraavissa kappaleissa esitellään JXTAn verkkoarkkitehtuurin tärkeimmät 
ominaisuudet.
  
  
! 4.1 Verkkolaitteiden tunnistus (eng. Uniform Peer Addressing)
  
! Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet 
tunnistetaan JXTA-arkkitehtuurin mukaisessa 
! vertaisverkossa. Jokaiselle verkon laitteelle luodaan verkkoon liittymisen 
yhteydessä 128-bittinen tunniste 
! (eng. Universal User Identification). Tunnisteen avulla voidaan 
yksikäsitteisesti tunnistaa verkon laite, oli kyseessä 
! sitten DHCP-tekniikkaa käyttävä laite tai erilaisia verkkoliityntöjä käyttävä 
laite (esimerkiksi Ethernet, Bluetooth). 
! Jokainen JXTA-verkon laite omaa laiterajapinnan (eng. Peer Endpoint), joka 
kertoo muille verkon laitteille laitteen 
! osaamat verkkotekniikat. Esimerkiksi kun JXTA-verkon laite A saa tietoonsa 
toisen JXTA-verkon laitteen B 
! laiterajapinnan, laite A voi valita parhaan tiedonsiirtokäytännön laitteen B 
kanssa.
! 
! 4.2 Viestit (eng. Messages)
! 
! Kuten muissa ei-suunnitelluissa (eng. Ad-Hoc) ja mukautuvissa (eng. Adaptive) 
vertaisverkoissa, myös JXTA-verkossa 
! yhteydet verkon laitteiden välillä voivat olla ohimeneviä. Tiedon 
välitysreitit voivat vaihtua ja olla lisäksi 
! asynkronisia. JXTA-verkossa siirtyvät viestit on suunniteltu tällaisia 
tarpeita ajatellen.
! 
! Jokainen JXTA-verkon viesti sisältää otsikon (eng. Header), ei-pakollisen 
tiivistelmän (eng. Digest), päällysen 
! (eng. Envelope) ja pinon (eng. Stack) sisältäen eri protokollien otsikot ja 
tiedot (eng. Body). Päällynen sisältää 
! otsikon, ei-pakollisen viestin lyhennelmän, lähettäjän sekä vastaanottajan. 
Vastaanottaja on looginen kohde, joka on 
! annettu URI-muotoisena tietona.
! 
! Viestin tieto sisältää muuttuvan määrän tietoa sekä tunnisteita, joiden 
avulla yksikäsitteisesti voidaan tunnistaa 
! viestin lähettäjä ja vastaanottaja. Tunniste voi olla esimerkiksi 
digitaalinen allekirjoitus, joka määrittää viestin 
! lähteen.
! 
! 4.3 Mainokset (eng. Advertisements)
! 
! Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa 
olevan laitteen palveluita. Kaikki 
! JXTA-verkon resurssit ja palvelut kuvataan mainoksilla. JXTA-arkkitehtuurissa 
on seitsemän valmista mainospohjaa, joita 
! voidaan käyttää mainosten luomisessa: Vertaissolmu-mainos (eng. Peer 
advertisement), vertaissolmuryhmä-mainos (eng. Peer 
! Group advertisement), piippu-mainos (eng. Pipe advertisement), moduuli-mainos 
(eng. Module advertisement), 
! tirkistäjätieto-mainos (eng. Peer Info advertisement), sisällys-mainos (eng. 
Content advertisement) ja laiterajapinta-
! mainos (eng. Peer Endpoint advertisement).
! 
! Mainoksia analysoimalla verkon laitteet pystyvät löytämään halumansa palvelut 
JXTA-verkosta. Kaikki vertaissolmut 
! tallentavat, julkaisevat ja siirtävät mainoksia JXTA-verkossa. Kaikkiin 
mainoksiin liittyy elämänpituus-arvo 
! (eng. Lifetime), joka määrittelee mainoksessa eliniän JXTA-verkossa. Mainos 
voidaan uudelleen julkaista, 
! jolloin elämänpituus-arvoa voidaan tarvittaessa kasvattaa. Kuvassa 2 on 
esitetty eräs JXTA-arkkitehtuurin mukainen 
! mainos.
  
  
  
  Kuva 2: XML-muotoinen mainos (© Sun Microsystems).
  
  
  
! 4.4 Vertaissolmu (eng. Peer)
  
! JXTA-verkko koostuu vertaissolmuista. Vertaissolmu voi olla tietokone, 
kämmentietokone tai langaton puhelin. 
! Vertaissolmun pitää osata keskustella muiden tirkistäjien kanssa 
JXTA-arkkitehtuurin mukaisten protokollien avulla.
  
! 4.5 Vertaissolmuryhmät (eng. Peer Groups)
  
+ JXTA-verkossa voi muodostua vertaissolmuryhmiä. Vertaissolmuryhmät ovat 
virtuaalisia konaisuuksia, jotka koostuvat 
+ yksittäisistä vertaissolmuista, joilla on samat kiinnostuksen kohteet. 
Yleensä samaan vertaissolmuryhmään kuuluvat 
+ vertaissolmut ovat sopineet erilaisista käytännöistä (eng. Policies), joita 
noudatetaan vertaissolmuryhmän sisällä. 
+ Jokainen vertaissolmuryhmä tunnistetaan yksillöllisen tunnisteen avulla. Uusi 
vertaissolmuryhmä voidaan luoda 
+ dynaamisesti JXTA-verkon käyttäjän, sovelluksen tai ylläpitäjän toimesta. 
Yksittäinen vertaissolmu voi kuulua 
+ samanaikaisesti useaan eri vertaissolmuryhmään. 
  
! Vertaissolmuryhmien olemassaoloon JXTA-arkkitehtuurin kehittäjät ovat 
löytäneet kolme motiivia: luottamuksellisen tiedon 
! siirto rajoitetussa ympäristössä, samanlaisten intressien jakaminen 
rajoitetussa ympärisössä sekä rajoitetun ympäristön 
! monitorointi ja analsyointi. JXTA-verkossa on implisiittinen, koko verkon 
laajuinen World Peer Group-vertaissolmuryhmä 
! (WPG), joka kattaa kaikki verkon vertaissolmut. Tämä ei kuitenkaan tarkoita 
sitä, että kaikki WGP-ryhmän vertaissolmut 
! voisivat löytää kaikki muut vertaissolmut.
  
  
! 4.6 Piiput (eng. Pipes)
  
! Piiput ovat asynkronisia kanavia, joiden kautta viestejä lähetetään 
JXTA-verkossa. Piiput ovat myös virtuaalisia, piipun 
! kohde voidaan yhdistää yhteen tai useaan vertaissolmuun. Piippuja käyttävät 
JXTA-verkon palvelut sekä sovellukset.
  
+ Piippu yhdistetään yleensä ajonaikaisesti vertaissolmuun käyttäen piipun 
yhdistys protokollaa (eng. Pipe Binding 
+ Protocol). Yksittäinen piippu voidaan yhdistää eri aikoina eri 
vertaissolmuihin. Tämä on hyöydyllinen omainaisuus 
+ silloin kun halutaan varmistaa järjestelmän toimivuus kriittisissä 
tilanteissa. Vioittunut vertaissolmu esimerkiksi 
+ verkossa voidaan korvata toisella toimivalla vertaissolmulla.
  
! Pisteestä-pisteeseen-piipulla (eng. Point-to-point pipe) voidaan yhdistää 
tasan kaksi vertaissolmua keskenään. Tällöin 
! piippu on ulosmeno-piippu lähettäjälle ja sisäänmeno-piippu vastaanottajalle. 
Liikenne on yksisuuntaista, lähettäjältä 
! vastaanottajalle. Levittäytyvät-piiput (eng. Propagate pipe) pystyvät 
yhdistämään usean vertaissolmun laiterajapinnat 
! keskenään.
  
  
! 4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous)
  
! JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka 
hoitaa verkon palveluihin liittyviä 
! perustehtäviä. Näitä ovat esimerkiksi vertaissolmun nimen liittäminen 
IP-osoitteeseen, IP-pistorasian (eng. Socket) 
! liittäminen porttiin, palvelun löytäminen LDAP-hakemistopalvelun avulla ja 
tiedon etsintä hajautetussa 
! tiedostojärjestelmässä (eng. Network Filesystem, NFS). Kaikki edellä mainitut 
operaatiot käyttävät JXTA-verkon mainoksia 
! hyväkseen.
! 
! Kohtauspaikka-vertaisolmu (eng. Rendezvous Peer) on erityinen vertaissolmu, 
jotka ovat tunnettuja muiden 
! vertaissolmujen keskuudessa ryhmän sisällä. Kohtauspaikka-vertaissolmu 
tallentaa muistiinsa suuren määrän mainoksia, 
! tarjoten palveluita muille ryhmän jäsenille. Ryhmä voi sisältää 
mielivaltaisen monta kohtauspaikka- vertaissolmua.
! 
! Yleisesti vertaisverkoissa ylemmän tason (eng. High level) hakupalvelut 
tarjoavat tehokkaammat hakumenetelmät, 
! koska palveluilla on parempi tietous tiedon levinneisyydestä tirkistelijöiden 
keskuudessa (esimerkkeinä Chord [], 
! CAN []). Kohtauspaikka-arkkitehtuuri tarjoaa sekä alemman tason hakupalvelut 
mainosten löytämiseen sekä koukkuja 
! (eng. Hooks), joita voidaan käyttää hyväksi ylemmän tason mainosten etsintään.
  
  
  5. Protokollat
  
+ Tässä kappaleessa on esitelty JXTA-verkon pääprotokollat.
+ 
  5.1 Peer Discovery Protocol
  
! Auttaa yksittäistä vertaissolmua löytämään mainoksia, toisia vertaissolmuja 
ja vertaissolmuryhmiä JXTA-verkossa. Jos 
! vertaissolmun tai vertaissolmuryhmän nimeä ei ole määritelty, protokolla 
palauttaa kaikkia saatavilla olevat mainokset 
! haun tuloksena.
  
  5.2 Peer Resolver Protocol
  
! Mahdollistaa vertaissolmun lähettää ja vastaanottaa yleisiä kyselyitä 
vertaissolmuun, vertaissolmuryhmään, piippuihin 
! tai tietoon liittyen. Yleensä tämä protokolla on ainoastaan käytössä 
kohtauspaikka-vertaissolmuissa.
  
  5.3 Peer Information Protocol
  
! Auttaa vertaissolmua ymmärtämään muiden vertaissolmujen palveluita sekä 
tiloja. Esimerkiksi vertaissolmu voi lähettää 
! testi-viestin (eng. Ping message) toiselle vertaissolmulle varmistaakseen, 
että onko kohteena ollut vertaissolmu 
! saatavilla.
  
  5.4 Peer Membership Protocol
  
! Mahdollistaa yksittäisen vertaissolmun tulla vertaissolmuryhmän jäseneksi, 
luoda hakemus vertaissolmuryhmään 
! liittymiseksi tai ryhmästä poistumiseksi, ottaa ryhmän mainoksia vastaan ja 
päivittää ryhmän jäsenyyteen liittyviä 
! tietoja.
  
  5.5 Pipe Binding Protocol
  
! Mahdollistaa vertaissolmun liittää piipun mainos piipun kohteeseen.
  
  5.6 Peer Endpoint Protocol
  
! Auttaa vertaissolmua kysymään reititin-vertaissolmulta (eng. Peer Router) 
polkuja kohde vertaissolmuun. Tämä on 
! hyödyllistä silloin, kun vertaissolmut ovat fyysisesti eri verkoissa tai kun 
palomuuri on vertaissolmujen välissä. 
! Vertaissolmu voi luoda itsestään reititin-vertaissolmun hyödyntämällä Peer 
Endpoint-tekniikkaa.
  
  6. Ohjelmistoarkkitehtuuri
  
! JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen 
kerrokseen, ytimeen, palveluihin ja 
! sovelluksiin. Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri.
  
  
  
  Kuva 3: JXTAn ohjelmistoarkkitehtuuri (© Sun Microsystems).
  
  
  
! Seuraavissa kappaleissa käsitellään JXTAn ohjelmistoarkkitehtuurin eri 
kerroksia.
  
! 6.1 Ydin (eng. Core)
  
! JXTAn ydin tarjoaa peruspavelut vertaissolmu-palveluille sekä -sovelluksille. 
Turvallinen suoritusympäristö, 
! vertaissolmuryhmät, piiput sekä JXTA-verkon monitorointi on sisään rakennettu 
ytimeen.
  
! Ytimessä on tuki myös anonyymeille tai rekisteröityneille käyttäjille sekä 
salatulle tai ei-salatulle tiedolle. 
  
! 6.2 Palvelut (eng. Services)
  
! Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa 
palvelut tiedon hakemiseen, tiedon 
! jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen.
  
! Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan 
rakentaa turvallisia vertaisverkko-
! sovelluksia.
  
! 6.3 Sovellukset (eng. Applications)
  
! JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita 
hyväksi. JXTA-sovelluksia voivat olla 
! esimerkiksi pikaviestimet, sähköposti- ja kalenteri-pavelut sekä resurssien 
hakuun tai siirtoon erikoistuneet 
! sovellukset.
  
+ 6.4 Esimerkki sovellus: Kuori (eng. JXTA Shell)
  
! Kuori on hyvä esimerkki JXTA-arkkitehtuurin päälle rakennetusta 
sovelluksesta. Kuori on interaktiivinen 
! komentorivipohjainen sovellus, samanlainen mitä yleimmät kuoret ovat 
Unix-järjestelmissä. Suurin ero Unix-kuoren ja 
! JXTA-kuoren välillä on se, että Unix-kuoren komennot on tarkoitettu 
suoritettavaksi paikallisessa ympäristössä, kun taas 
! JXTA-kuoren komennot suoritetaan hajautetussa verkkoympäristössä.
  
! Kuori JXTA-ympäristössä on yksinkertainen komentotulkki, joka hyväksyy 
komennon, tulkitsee komennon, suorittaa komennon 
! ja odottaa komentoon vastausta. Komentoja ovat esimerkiksi "ls", "cat" ja 
"grep", aivan kuten perinteisissä Unix-
! järjestelmissä. Kuoren omainaisuuksiin kuuluu "piiputus", (vertaa edelleen 
perinteiset Unix-järjestelmät), jonka avulla 
! tietyn komennon vaste voidaan antaa toisen komennon syötteeksi.
  
  
+ 7. Tietoturva
  
+ Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon 
salaamista. Luottamus, koskemattomuus ja 
+ saatavuus ovat avainsanoja puhuttaessa tietoturvasta. Käytännössä edellä 
esitetyt vaatimukset tarkoittavat käyttäjän 
+ tunnistusta, valvontaa, tiedon sekä liikenteen salausta.
+ 
+ Jos JXTA-verkossa halutaan käyttää tiedonsiirron yhteydessä salausta, on 
käytettävä Transport Secutiry Layer 1.0-
+ protokollaa (TSL 1.0). TSL-protokollan käyttö jakaa JXTA-verkon kahteen 
päällekkäiseen kerrokseen. Alempi kerros koostuu 
+ JXTA-verkon pohjalla olevasta virtuaaliverkosta,  joka mahdollistaa tiedon 
siirron kahden vertaissolmun välillä, vaikka 
+ fyysisessä verkossa tämä olisi huomattavan vaikeaa. Ylempi kerros koostuu TLS 
1.0-protokollaa käyttävästä, edelleen 
+ virtuaalisesta verkosta. Ero alemman kerroksen virtuaaliseen verkkoon on se, 
että TLS-protokolla luo turvallisen 
+ siirtoyhteyden niiden vertaissolmujen välille, joiden keskuudessa tiedosiirto 
tapahtuu. Kuvassa 4 on esitetty 
+ arkkitehtuurin perusrakenne.
  
  
  
! Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems).
  
  
! JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria [ ]. Tiedon 
kuljettamiseen käytetään TSL 1.0-protokollaa ja 
! tiedon salaamiseen RSA 1024-, 3DES- ja SHA-1-algoritmeja. TLS 1.0-protokollan 
on kehittänyt 
! Internet Engineering Task Forde (IETF) ja se on jatkokehitysversio aiemmin 
luodulle Secure Sockey Layer 3.0-
! protokolalle. TSL 1.0-protokolla on kaksisuuntainen ja tieto siirtyy 
JXTA-verkossa 16 kilotavun osissa. Koska 
! tiedonsiirtoväylä on kaksi suuntainen, pitää tiedonsiirron molemmat osapuolet 
pystyä tunnistamaan. Vertaissolmun pitää 
! hankkia itselleen toisen vertaissolmun X509.V3-juuriserfifikaatti (eng. Root 
Certificate), jotta tiedonsiirto tapahtuisi 
! turvallisesti. Sertifikaatti sisältää RSA 1024-algoritmin mukaisen julkisen 
avaimen, jonka avulla vertaissolmu voi 
! tunnistaa X509.V3-palvelusertifikaatin yksityisen avaimen. TLS 1.0-protokolla 
käyttää palvelusertifikaatteja 
! vertaissolmujen tunnistamiseen.
! 
! Vertaissolmut voivat hankkia toisen vertaissolmun juurisertifikaatin 
itselleen kahdella eri tavalla. Ensimmäinen tapa on 
! levittää vertaissolmun juurisertifikaattia JXTA-verkon mainoksissa. Tämä ei 
kuitenkaan suositeltavaa, koska silloin 
! "Mies keskellä"-hyökkäys (eng. Man In The Middle Attack, MITM) saattaa 
tapahtua. MITM-hyökkäys on käytännössä vaikea 
! suorittaa, koska sertifikaatit on vahvasti salattuja. Toinen, turvallisempi 
tapa levittää juurisertifikaatteja on liitää 
! juurisertifikaatti binäärisen tiedon sekaan, jolloin MITM-hyökkäykset eivät 
olet mahdollisia.
! 
! Tällä hetkellä JXTA-projektissa kehitetään menetelmää, joka mahdollistaa 
vertaissolmuryhmien tunnistamisen. Menetelmä 
! pohjautuu X509.V3-sertifikaatteihin. Kun vertaissolmu liittyy 
vertaissolmuryhmään, saa uusi vertaissolmu ryhmän 
! perustajan julkisen juurisertifikaatin itselleen tiedonsiirtokanavaa pitkin, 
jossa käytetään TLS 1.0-protokollaa. Tämän 
! jälkeen uusi vertaissolmu käyttää Certificate Service Request-palvelua (CSR) 
ja juuri saatua julkista avainta hyväksi
! hankkiessaan ryhmänjäsenyys-sertifikaatin itselleen. Sertifikaatti on 
X509.V3-muotoinen ja se on allekirjoitettu ryhmän 
! perustajan yksityisellä juurisertifikaatti-avaimella.
  
  
  8. Tiedon haku vertais- ja JXTA-verkoissa
  
! 8.1 Tiedonhaku vertaisverkoissa
! Tiedon hakeminen hajautetussa vertaisverkossa voidaan jakaa kahteen eri osaan 
[ ]. Ensimmäinen, ei-sisältöpohjainen haku 
! (eng. Content-agnostic Search), pohjautuu menetelmään, jossa tarkoituksena on 
löytää verkosta muita solmuja, jotka 
! sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä nämä solmut ovat 
palvelimia, jotka pitävät yllä erilaisia 
! hakemistoja verkossa liikkuvasta tiedosta ja tietoon liittyvistä solmuista. 
Ei-sisältöpohjaista hakutekniikkaa käyttävät
! esimerkiksi Napster- ja Gnutella-tiedostonjako-ohjelmat. Ei-sisältöpohjaisen 
haun etuina ovat haun nopeus sekä pieni 
! verkon kuormitus. Heikkouksina voidaan pitää virheensietokykyä, 
laajennettavuutta sekä keskitettyä ylläpitoa.
! 
! Toinen tekniikka on nimeltään sisältöpohjainen haku (eng. Content-based 
Search). Sisältöpohjaisessa haussa haun kyselyä 
! (eng. Search Query) ohjataan haun sisällön perusteella verkon solmujen 
välillä. Jossain vaiheessa kysely ohjautuu 
! verkossa oikealle solmulle, joka pystyy vastaamaan kyselyyn ja palauttamaan 
haun tulokseen. Esimerkkejä tietopohjaisesta 
! hausta ovat CAN (eng. Content Addressable Network, CAN[ ] sekä Chord [ ]). 
Kun uusi solmu liittyy tietoverkkoon, jossa 
! käytetään tietopohjaista hakua, tulee solmun ensimmäiseksi luoda hakemisto 
(eng. Index) oman alueen (eng. Zone) 
! mainoksista. Yksittäisten alueiden hakemisto-unioni muodostaa olemassa olevan 
verkon koko tietovaraston. Alue, joka 
! uudellee solmulle varataan, on dynaaminen ja se rippuu verkon solmujen 
lukumäärästä sekä yksittäisten solmujen 
! poistumisesta verkosta tai liittymisestä verkkoon. Kun verkon solmu haluaa 
julkaista uuden mainoksen resurssiin tai 
! tietoon liittyen, se tutkii mainoksen sisällön. Sisällön perusteella solmu 
osaa lähettää mainoksen verkossa oikeaan 
! paikkaan. Hajautus on yleisin tapa laskea mainoksen paikka tietoverkossa.
! 
! 8.2 Tiedonhaku JXTA-verkossa
! 
! Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä 
XML-pohjaisiin viesteihin. Kuvassa 5 on esitetty 
! JXTA-verkon verkkotopologia tiedonhaun yhteydessä.
  
  
  
  Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems).
  
  
! 
! Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä 
mahdollistaa tehokkaat hakualgorimit sekä 
! vähentää verkon kuormitusta. Kun vertaissolmut julkaisevat mainoksia, ne 
tallennetaan keskitin-vertaissolmuihin. 
! Yksittäiset keskitin-vertaissolmut voivat ohjata kyselyjä toisiin 
keskitin-vertaissolmuihin. Lisäksi keskitin-
! vertaissolmut voivat keskittyä maantieteellisesti sekä sisällön tai 
sovelluksen perusteella.
! 
! JXTA-verkossa käytetään hakujen suorittamiseen Query Routing-protokollaa 
(QRP). Koska protokolla on XML-muotoinen 
! viesti, on se kevyt ja yhteensopiva eri järjestelmien välillä. QRP koostuu 
kolmesta viestimuodosta, rekisteröinnistä 
! (eng. Registration), pyynnöstä (eng. Request) sekä vastauksesta (eng. 
Response). Rekisteröinti-viestimuotoa käytetään 
! uusien resurssien julkituomiseen, pyyntö-viestimuotoa tiedon ja resurssien 
hakemiseen sekä vastaus-viestimuotoa haun 
! tuottamien vastausten palauttamiseen. Kaikki komponentit sijaitsevat 
kyselyavaruudessa (eng. Query Space), joka vastaa 
! XML-standardin nimiavaruuksia (eng. Namespace).
  
  
  
  Kuva 6. Eräs XML-muotoinen pyyntö-viesti (© Sun Microsystems).
  
! 
! 
! Pyyntöjen palauttamiin hakutuloksiin voidaan vaikuttaa Query Node 
Pattern-tekniikan (QNP) avulla. Se on tekniikka, jossa 
! loogisia predikaatteja käytetään kuvamaan tietoa tai resurssia. Predikaatit 
voivat olla yksittäisiä sanoja tai loogisia 
! operaattoreita, kuten "Tai" (eng. Or) ja "Ja" (eng. And). Kuvassa 7 on 
esitetty rekisteröinti-viesti. Viestissä rivi 
! "http://big-bookseller.com/jxtasearch"; määrää käytettävän kyselyavaruuden. 
Tämä viesti rekisteröi kyselyavaruuteen uudet 
! avainsanat "Joy", "Stephenson", "Java", "JXTA", "XML" ja "Cryptography". 
Kaikki pyyntö-viestit, jotka hakevat edellä 
! mainittuja sanoja (esimerkiksi kuvan 6 viesti), suoritetaan 
"http://big-bookseller.com/jxtasearch"-palvelimella.
! 
  
  
  Kuva 7. Eräs XML-muotoinen rekisteröinti-viesti (© Sun Microsystems).
***************
*** 272,290 ****
  
  
  9. Yhteenveto
! JXTA-projektin tuotoksena on syntynyt monipuolinen vertaisverkkojärjestelmä. 
Avoimuus, tietoturva, Sovellusten yhteensopivuus sekä laitteistoriippumattomuus 
ovat asioita, jotka erottavat JXTA-arkkitehtuurin muista 
vertaisverkkojärjestelmistä. Erityisesti JXTAn kehittynyt 
tietoturva-arkkitehtuuri mahdollistaa vertaisverkkosovellusten käytön 
tilanteissa, joihin aiemmat vertaisverkkotekniikat eivät ole soveltuneet.
! JXTA-arkkitehtuuri auttaa sovelluskehittäjiä keskittymään olennaiseen. 
Ohjelmoijan ei tarvitse syventyä erilaisiin yksityikohtiin, vaan voi heti alkaa 
kehittämään turvallisia ja tehokkaita ja ennen kaikkea hajautettuja sovelluksia 
vertaisverkkoympäristöön
  
  Viitteet
! [1]  JXTA-projekti, www.jxta.org
! [2] Traversat Bernard  ym., Project JXTA Virtual Netowk,  saatavilla 
WWW-muodossa <URL: http://www.jxta.org/project/www/docs/JXTAprotocols.pdf>, 
viitattu 11.10.2002
! [3] Yeager William, William Joseph, Secure Peer-to-Peer Networking, The JXTA 
Example, 1520-9202/02 IEEE / IT Professional Volume: 4; Issue: 2, March-April 
2002
! [4] Project JXTA: An Open, Innovative Colloboration,  saatavilla WWW-muodossa 
<URL:  http://www.jxta.org/project/www/docs/OpenInnovative.pdf>, viitattu 
11.10.2002
! [5] Botros Sherif, Waterhouse Steve,  Search in JXTA and Other Distributed 
Networks, 0-7695-1503-07/02 IEEE, 2002
! [6]  Waterhouse Steve ym., Distributed Serach in P2P Networks, 1089-7801/02 
IEEE / IEEE Internet Computing, January-February 2002
! [7]  Gong Li, Project JXTA: A Technology Overview, saatavilla WWW-muodossa 
<URL:  http://www.jxta.org/project/www/docs/TechOverview.pdf>, viitattu 
11.10.2002
  [8] Gong Li, JXTA: A Network Programming Environment, 1089-7801/01 IEEE / 
IEEE Internet Computing May-June 2001
! [9]
  
  
  
--- 420,459 ----
  
  
  9. Yhteenveto
! JXTA-projektin tuotoksena on syntynyt monipuolinen vertaisverkkojärjestelmä. 
Avoimuus, tietoturva, sovellusten 
! yhteensopivuus sekä laitteistoriippumattomuus ovat asioita, jotka erottavat 
JXTA-arkkitehtuurin muista 
! vertaisverkkojärjestelmistä. Erityisesti JXTAn kehittynyt 
tietoturva-arkkitehtuuri mahdollistaa vertaisverkkosovellusten 
! käytön tilanteissa, joihin aiemmat vertaisverkkotekniikat eivät ole 
soveltuneet.
! JXTA-arkkitehtuuri auttaa sovelluskehittäjiä keskittymään olennaiseen. 
Ohjelmoijan ei tarvitse syventyä erilaisiin 
! yksityikohtiin, vaan voi heti alkaa kehittämään turvallisia ja tehokkaita ja 
ennen kaikkea hajautettuja sovelluksia 
! vertaisverkkoympäristöön
  
  Viitteet
! [1] JXTA-projekti, www.jxta.org
! 
! [2] Traversat Bernard  ym., Project JXTA Virtual Netowk, saatavilla 
WWW-muodossa <URL: http://www.jxta.org/project/www/docs/JXTAprotocols.pdf>, 
viitattu 11.10.2002
! 
! [3] Yeager William, William Joseph, Secure Peer-to-Peer Networking, The JXTA 
Example, 1520-9202/02 IEEE / IT Professional  Volume: 4; Issue: 2, March-April 
2002
! 
! [4] Project JXTA: An Open, Innovative Colloboration, saatavilla WWW-muodossa 
<URL:  http://www.jxta.org/project/www/docs/OpenInnovative.pdf>, viitattu 
11.10.2002
! 
! [5] Botros Sherif, Waterhouse Steve, Search in JXTA and Other Distributed 
Networks, 0-7695-1503-07/02 IEEE, 2002
! 
! [6] Waterhouse Steve ym., Distributed Serach in P2P Networks, 1089-7801/02 
IEEE / IEEE Internet Computing, January-February 2002
! 
! [7] Gong Li, Project JXTA: A Technology Overview, saatavilla WWW-muodossa 
<URL:  http://www.jxta.org/project/www/docs/TechOverview.pdf>, viitattu 
11.10.2002
! 
  [8] Gong Li, JXTA: A Network Programming Environment, 1089-7801/01 IEEE / 
IEEE Internet Computing May-June 2001
! 
! [11] Gnutella, saatavilla WWW-muodossa <URL:  http://www.gnutella.wego.com>, 
viitattu 11.10.2002
! 
! [12] Dierks T., Allen C., The TLS Protocol, IETF RFC2246, January 1999
! 
! [13] Ratnasamy S. ym., A Scalable Content Addressable Network, ACM SIGCOM, 
2001
! 
! [14] Dabek F. ym., Building Peer-to-Peer Systems with Chord, a Distributed 
Lookup Service, 2001
! 
! [15] SE P2P kirja vielä viimeiseksi    tänne !!!
  
  
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]