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 05:54:22 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Hermanni Hyytiälä <address@hidden>      02/10/16 05:53:56

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

Log message:
        hemppah: 4th initial version

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti.diff?tr1=1.3&tr2=1.4&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.3 
gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti:1.4
*** gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti:1.3 Wed Oct 16 
03:24:01 2002
--- gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti     Wed Oct 16 
05:53:56 2002
***************
*** 5,11 ****
  
  
  
- 
  Hermanni Hyytiälä
  
  
--- 5,10 ----
***************
*** 24,48 ****
  LuK-tutkielma
  xx.10.2002
  
- 
- 
  Jyväskylän yliopisto
- 
  Tietotekniikan laitos
  
  
- 
- 
  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ä
--- 23,37 ----
  LuK-tutkielma
  xx.10.2002
  
  Jyväskylän yliopisto
  Tietotekniikan laitos
  
  
  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ä
***************
*** 52,193 ****
  
  
  
  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.
  
  
  
--- 41,142 ----
  
  
  
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
  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.
  
  
  
***************
*** 195,307 ****
  
  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 
tiedosto-
! jä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 haku-
! palvelut (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.
  
  
  
--- 144,205 ----
  
  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.
  
  
  
***************
*** 309,431 ****
  
  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 palvelu-
! tai 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ää juuri-
! sertifikaatti 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 vertais-
! solmuryhmää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 myös liittyä toisiin keskitin-solmuihin.
  
-  
  
  
  9. Yhteenveto
--- 207,295 ----
  
  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).
  
  
  
  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]
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 




reply via email to

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