[Top][All Lists]
[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]
+
+
+
+
+
+
+
+