5 |
|
|
6 |
|
|
7 |
|
|
|
|
|
8 |
Hermanni Hyytiälä |
Hermanni Hyytiälä |
9 |
|
|
10 |
|
|
23 |
LuK-tutkielma |
LuK-tutkielma |
24 |
xx.10.2002 |
xx.10.2002 |
25 |
|
|
|
|
|
|
|
|
26 |
Jyväskylän yliopisto |
Jyväskylän yliopisto |
|
|
|
27 |
Tietotekniikan laitos |
Tietotekniikan laitos |
28 |
|
|
29 |
|
|
|
|
|
|
|
|
30 |
Tiivistelmä |
Tiivistelmä |
31 |
|
|
32 |
Tämä LuK-tutkielma käsittelee JXTA-arkkitehtuuria. JXTA on avoin |
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. |
33 |
teknologiaympäristö, jonka avulla voidaan kommunikoida, tehdä yhteistyötä, |
|
34 |
jakaa tietoa ja tehdä sovelluksia vertaisverkko-ympäristössä. Tutkielman |
Title in English: JXTA architecture Avainsanat: Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut järjestelmät Keywords: Peer-to-Peer, P2P, networking, secure computing, distributed computing |
|
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 |
|
35 |
|
|
36 |
Tekijän yhteystiedot: |
Tekijän yhteystiedot: |
37 |
Hermanni Hyytiälä |
Hermanni Hyytiälä |
41 |
|
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
|
54 |
|
|
55 |
|
|
56 |
|
|
57 |
|
|
58 |
|
|
59 |
|
|
60 |
|
|
61 |
|
|
62 |
|
|
63 |
|
|
64 |
|
|
65 |
|
|
66 |
|
|
67 |
|
|
68 |
|
|
69 |
|
|
70 |
|
|
71 |
|
|
72 |
|
|
73 |
|
|
74 |
|
|
75 |
|
|
76 |
|
|
77 |
|
|
78 |
|
|
79 |
|
|
80 |
|
|
81 |
|
|
82 |
|
|
83 |
|
|
84 |
1.Johdanto |
1.Johdanto |
85 |
|
|
86 |
Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on |
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. |
87 |
järjestelmäkokonaisuus, jonka avulla vertaisverkoissa voidaan siirtää tiedostoja, |
|
88 |
keskustella, jakaa työpöytiä ja hakea tietoa. JXTA poikkeaa useista muista |
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. |
|
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. |
|
89 |
|
|
90 |
2.Vertaisverkot ja JXTA |
2.Vertaisverkot ja JXTA |
91 |
|
|
92 |
Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin |
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. |
93 |
suureksi, että kukaan ei pysty enää hallitsemaan kaikkea tietoa. On arvioitu, |
|
94 |
että uusien langattomien laitteiden markkinoille tulo kasvattaa tietoverkoissa |
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. |
95 |
käytettävien laitteiden määrää miljardeilla uusilla laitteilla. |
|
96 |
|
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ä. |
97 |
Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden heikkoudet |
|
98 |
ovat tulleet esille. Esimerkiksi suuren ja paljon tietoa sisältävän |
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. |
|
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. |
|
99 |
|
|
100 |
3.JXTA-projekti |
3.JXTA-projekti |
101 |
|
|
102 |
3.1.Yleistä |
3.1.Yleistä |
103 |
|
|
104 |
JXTA on alunperin Sun Microsystemsin aloittama projekti. Projektin tavoitteena |
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. |
105 |
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. |
|
|
|
|
106 |
3.2 Tavoitteet |
3.2 Tavoitteet |
107 |
|
|
108 |
JXTA-projektin päämääränä on luoda vertaisverkko-arkkitehtuuri, josta hyötyisivät |
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ä: |
109 |
sekä yksityishenkilöt että yritykset. Kun projekti alkoi, luotiin kolme tavoitetta, |
|
110 |
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. |
111 |
|
|
112 |
Yhteensopivuus |
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. |
113 |
Lähes kaikki saatavilla olevat vertaisverkko-arkkitehtuurit ovat keskenään |
|
114 |
yhteensopimattomia. Projektin tavoitteena on luoda universaalinen |
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. |
|
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. |
|
115 |
|
|
116 |
4 JXTA-verkkoarkkitehtuuri |
4 JXTA-verkkoarkkitehtuuri |
117 |
|
|
118 |
JXTA-arkkitehtuurin protokollat luovat virtuaalisen verkon fyysisen verkon päälle. |
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. |
119 |
Virtuaaliverkon tarkoituksena on piilottaa alla olevan fyysisen verkon |
|
120 |
monimutkaisuus (palomuurit) ja luoda yhtenäinen verkko verkon käyttäjien kesken. |
|
121 |
Kuvassa 1 on esitetty virtuaalisen verkon rakenne. |
Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems). |
|
|
|
|
|
|
|
Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems). |
|
122 |
|
|
123 |
4.1 Verkkolaitteiden tunnistus (Uniform Peer Addressing) |
4.1 Verkkolaitteiden tunnistus (Uniform Peer Addressing) |
124 |
|
|
125 |
Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet tunnistetaan |
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. |
126 |
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. |
|
|
|
|
127 |
4.2 Viestit (Messages) |
4.2 Viestit (Messages) |
128 |
|
|
129 |
Kuten muissa ei-suunnitelluissa (eng. ad-hoc) ja mukautuvissa vertaisverkoissa, |
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. |
130 |
myös JXTA-verkossa yhteydet verkon laitteiden välillä voivat olla ohimeneviä. |
|
131 |
Tiedon välitysreitit voivat vaihtua jatkuvasti ja olla asynkronisia. JXTA-verkossa |
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. |
132 |
siirtyvät viestit on suunniteltu tällaisia tarpeita ajatellen. |
|
133 |
|
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. |
|
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. |
|
134 |
|
|
135 |
4.3 Mainokset (Advertisements) |
4.3 Mainokset (Advertisements) |
136 |
|
|
137 |
Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa olevan |
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). |
138 |
tirkistelijän palveluita. Kaikki verkon resurssit ja palvelut kuvataan mainoksilla. |
|
139 |
JXTA-arkkitehtuurissa on seitsemän valmista mainospohjaa, joita voidaan käyttää |
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. |
|
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. |
|
140 |
|
|
141 |
|
|
142 |
|
|
144 |
|
|
145 |
4.4 Tirkistäjä (Peer) |
4.4 Tirkistäjä (Peer) |
146 |
|
|
147 |
JXTA-verkko koostuu tirkistäjistä. Tirkistäjä voi olla tietokone, kämmentietokone |
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. |
|
tai langaton puhelin. Tirkistäjän pitää osata keskustella muiden tirkistäjien kanssa |
|
|
JXTA-arkkitehtuurin mukaisten protokollien avulla. |
|
148 |
|
|
149 |
4.5 Tirkistäjäryhmät (Peer Groups) |
4.5 Tirkistäjäryhmät (Peer Groups) |
150 |
|
|
151 |
JXTA-verkossa voi muodostua tirkistäjäryhmiä. Tirkistäjäryhmät ovat virtuaalisia |
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. |
152 |
konaisuuksia, jotka koostuvat yksittäisistä tirkistelijöistä, joilla on samat |
|
153 |
kiinnostuksen kohteet. Yleensä tirkistäjäryhmään kuuluvat tirkistäjät ovat sopineet |
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. |
154 |
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. |
|
155 |
|
|
|
|
|
156 |
4.6 Piiput (Pipes) |
4.6 Piiput (Pipes) |
157 |
|
|
158 |
Piiput ovat asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. |
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. |
159 |
Piiput ovat myös virtuaalisia, so. piipun kohde voidaan yhdistää yhteen tai |
|
160 |
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ä. |
161 |
|
|
162 |
Piippu yhdistetään yleensä ajonaikaisesti tirkistelijään käyttäen piipun yhdistys |
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. |
|
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. |
|
163 |
|
|
164 |
|
|
165 |
4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous) |
4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous) |
166 |
|
|
167 |
JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka hoitaa |
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. |
168 |
verkon palveluihin liittyviä perustehtäviä. Näitä ovat esimerkiksi tirkistelijän |
|
169 |
nimen liittäminen IP-osoitteeseen, IP-pistorasian (eng. Socket) liittäminen porttiin, |
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ää. |
170 |
palvelun löytäminen LDAP-teknologian avulla ja tiedon etsintä hajautetussa tiedosto- |
|
171 |
järjestelmässä (eng. Network Filesystem, NFS). Kaikki edellä mainitut operaatiot |
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. |
|
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. |
|
172 |
|
|
173 |
|
|
174 |
5. Protokollat |
5. Protokollat |
175 |
|
|
176 |
5.1 Peer Discovery Protocol |
5.1 Peer Discovery Protocol |
177 |
|
|
178 |
Auttaa yksittäisen tirkistelijän löytämään mainoksia, toisia tirkistelijöitä, |
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. |
179 |
tirkistelijä-ryhmiä JXTA-verkossa. Jos tirkistelijän tai tirkistelijä-ryhmän |
|
|
nimeä ei ole määritelty, protokolla palauttaa kaikkia saatavilla olevat |
|
|
mainokset haun tuloksena. |
|
|
|
|
180 |
5.2 Peer Resolver Protocol |
5.2 Peer Resolver Protocol |
181 |
|
|
182 |
Mahdollistaa tirkistelijän lähettää ja vastaanottaa yleisiä kyselyitä tirkistelijään, |
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). |
|
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). |
|
183 |
|
|
184 |
5.3 Peer Information Protocol |
5.3 Peer Information Protocol |
185 |
|
|
186 |
Auttaa tirkistelijää oppimaan muiden tirkistelijöiden palveluita sekä tiloja. |
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. |
|
Esimerkiksi tirkistelijä voi lähettää testiviestin (eng. Ping message) toiselle |
|
|
tirkistelijälle tarkastaakseen, onko tämä saatavilla. |
|
187 |
|
|
188 |
5.4 Peer Membership Protocol |
5.4 Peer Membership Protocol |
189 |
|
|
190 |
Mahdollistaa yksittäisen tirkistelijän tulla tirkistelijä-ryhmän jäseneksi, |
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. |
|
luoda hakemukus tirkistelijä-ryhmään liittymiseksi tai ryhmästä poistumiseksi, |
|
|
ottaa ryhmän mainoksia vastaan ja päivittää ryhmän jäsenyyteen liittyviä tietoja. |
|
191 |
|
|
192 |
5.5 Pipe Binding Protocol |
5.5 Pipe Binding Protocol |
193 |
|
|
194 |
Mahdollistaa tirkistelijän liittää piipun mainos piipun kohteeseen. |
Mahdollistaa tirkistelijän liittää piipun mainos piipun kohteeseen. |
195 |
|
|
196 |
5.6 Peer Endpoint Protocol |
5.6 Peer Endpoint Protocol |
197 |
|
|
198 |
Auttaa tirkistelijää kysymään tirkistäjä-reitittimeltä reittejä kohde tirkistelijään. |
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. |
|
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. |
|
199 |
|
|
200 |
6. Ohjelmistoarkkitehtuuri |
6. Ohjelmistoarkkitehtuuri |
201 |
|
|
202 |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen. |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen. Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri. |
|
Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri. |
|
203 |
|
|
204 |
|
|
205 |
|
|
207 |
|
|
208 |
6.1 Ydin (Core) |
6.1 Ydin (Core) |
209 |
|
|
210 |
JXTAn ydin tarjoaa peruspavelut tirkistelijä-palveluille sekä sovelluksille. Turvallinen |
JXTAn ydin tarjoaa peruspavelut tirkistelijä-palveluille sekä sovelluksille. Turvallinen suoritusympäristö, tirkistelijäryhmät, piiput sekä verkon monitorointi on sisään rakennettu ytimeen. |
211 |
suoritusympäristö, tirkistelijäryhmät, piiput sekä verkon monitorointi on sisään- |
|
212 |
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. |
|
|
|
|
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. |
|
213 |
|
|
214 |
6.2 Palvelut (Services) |
6.2 Palvelut (Services) |
215 |
|
|
216 |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon hakemiseen, tiedon jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
|
hakemiseen, tiedon jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
|
217 |
|
|
218 |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkko-sovelluksia. |
|
vertaisverkko-sovelluksia. |
|
219 |
|
|
220 |
6.3 Sovellukset (Applications) |
6.3 Sovellukset (Applications) |
221 |
|
|
222 |
JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita hyväksi. |
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. |
|
JXTA-sovelluksia voivat olla esimerkiksi pikaviestimet, sähköposti- ja kalenteri-pavelut sekä |
|
|
resurssien hakuun tai siirtoon erikoistuneet sovellukset. |
|
223 |
|
|
224 |
6.4 Esimerkki sovellus: Kuori (JXTA Shell) |
6.4 Esimerkki sovellus: Kuori (JXTA Shell) |
225 |
|
|
226 |
Kuori on hyvä esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on |
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ä. |
227 |
interaktiivinen komentorivipohjainen sovellus, samanlainen mitä yleimmät kuoret ovat |
|
228 |
Unix-järjestelmissä. Suurin ero Unix-kuoren ja JXTA-kuoren välillä on se, että Unix-kuoren |
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. |
229 |
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. |
|
|
|
|
230 |
|
|
231 |
7. Tietoturva |
7. Tietoturva |
232 |
|
|
233 |
Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon turvaamista. |
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. |
234 |
Luottamus, koskemattomuus ja saatavuus ovat avainsanoja puhuttaessa tietoturvasta. |
|
235 |
Käytännössä edellä esitetyt vaatimukset tarkoittavat käyttäjän tunnistusta, valvontaa, |
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. |
|
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. |
|
236 |
|
|
237 |
|
|
238 |
|
|
239 |
Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems). |
Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems). |
240 |
|
|
241 |
|
|
242 |
JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria [ ]. Tiedon kuljettamiseen käytetään |
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. |
243 |
Transport Secutiry Layer 1.0-protokollaa (TSL 1.0) [ ] ja tiedon salaamiseen RSA 1024-, 3DES- ja |
|
244 |
SHA-1-algoritmeja. TLS-protokollan on kehittänyt Internet Engineering Task Forde (IETF) ja |
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. |
245 |
se on jatkokehitysversio aiemmin luodulle Secure Sockey Layer 3.0-protokolalle. |
|
246 |
TSL 1.0-protokolla on kaksisuuntainen ja tieto siirtyy JXTA-verkossa 16 kilon osissa. Koska |
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. |
|
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. |
|
247 |
|
|
248 |
|
|
249 |
8. Tiedon haku vertais- ja JXTA-verkoissa |
8. Tiedon haku vertais- ja JXTA-verkoissa |
250 |
|
|
251 |
Tiedon hakeminen hajautetussa verkossa voidaan jakaa kahteen eri osaan [ ]. Ensimmäinen, |
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. |
252 |
ei-sisältöpohjainen haku (eng. Content-agnostic Search), pohjautuu menetelmään, jossa tarkoituksena |
|
253 |
on löytää verkosta muita solmuja, jotka sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä |
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. |
254 |
nämä solmut ovat palvelimia, jotka pitävät yllä erilaisia hakemistoja verkossa liikkuvasta |
|
255 |
tiedosta ja tietoon liittyvistä solmuista. Ei-sisältöpohjaista hakutekniikkaa käyttää esimerkiksi |
Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä XML-pohjaisiin viesteihin. Kuvassa 5 on esitetty JXTA-verkon verkkotopologia tiedonhaun yhteydessä. |
|
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ä. |
|
256 |
|
|
257 |
Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems). |
Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems). |
258 |
|
|
259 |
Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä mahdollistaa tehokkaat hakualgorimit |
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. |
260 |
sekä vähentää verkon kuormitusta. Kun solmut julkaisevat mainoksia, ne tallennetaan keskitin-solmuihin. Yksittäiset |
|
261 |
keskitin-solmut voivat myös liittyä toisiin keskitin-solmuihin. |
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). |
262 |
|
|
263 |
|
|
264 |
|
|
265 |
|
Kuva 6. Eräs XML-muotoinen pyyntö-viesti (© Sun Microsystems). |
266 |
|
|
267 |
|
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. |
268 |
|
|
269 |
|
|
270 |
|
Kuva 7. Eräs XML-muotoinen rekisteröinti-viesti (© Sun Microsystems). |
271 |
|
|
|
|
|
272 |
|
|
273 |
|
|
274 |
9. Yhteenveto |
9. Yhteenveto |
275 |
|
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. |
276 |
|
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 |
277 |
|
|
278 |
|
Viitteet |
279 |
|
[1] JXTA-projekti, www.jxta.org |
280 |
|
[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 |
281 |
|
[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 |
282 |
|
[4] Project JXTA: An Open, Innovative Colloboration, saatavilla WWW-muodossa <URL: http://www.jxta.org/project/www/docs/OpenInnovative.pdf>, viitattu 11.10.2002 |
283 |
|
[5] Botros Sherif, Waterhouse Steve, Search in JXTA and Other Distributed Networks, 0-7695-1503-07/02 IEEE, 2002 |
284 |
|
[6] Waterhouse Steve ym., Distributed Serach in P2P Networks, 1089-7801/02 IEEE / IEEE Internet Computing, January-February 2002 |
285 |
|
[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 |
286 |
|
[8] Gong Li, JXTA: A Network Programming Environment, 1089-7801/01 IEEE / IEEE Internet Computing May-June 2001 |
287 |
|
[9] |
288 |
|
|
289 |
|
|
290 |
|
|
291 |
|
|
292 |
|
|
293 |
|
|
294 |
|
|
295 |
|
|