21 |
|
|
22 |
Tietotekniikan (ohjelmistotekniikka) |
Tietotekniikan (ohjelmistotekniikka) |
23 |
LuK-tutkielma |
LuK-tutkielma |
24 |
xx.10.2002 |
16.10.2002 |
25 |
|
|
26 |
Jyväskylän yliopisto |
Jyväskylän yliopisto |
27 |
Tietotekniikan laitos |
Tietotekniikan laitos |
29 |
|
|
30 |
Tiivistelmä |
Tiivistelmä |
31 |
|
|
32 |
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. |
Tämä LuK-tutkielma käsittelee JXTA-arkkitehtuuria. JXTA on avoin teknologiaympäristö, jonka avulla voidaan kommunikoida, |
33 |
|
tehdä yhteistyötä, jakaa tietoa vertaisverkkoympäristössä. Tutkielman tavoitteena on antaa lukijalle yleiskuva |
34 |
|
JXTA-arkkitehtuurista. |
35 |
|
|
36 |
|
Title in English: JXTA architecture |
37 |
|
Avainsanat: Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut järjestelmät |
38 |
|
Keywords: Peer-to-Peer, P2P, networking, secure computing, distributed computing |
39 |
|
|
|
Title in English: JXTA architecture Avainsanat: Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut järjestelmät Keywords: Peer-to-Peer, P2P, networking, secure computing, distributed computing |
|
40 |
|
|
41 |
Tekijän yhteystiedot: |
Tekijän yhteystiedot: |
42 |
Hermanni Hyytiälä |
Hermanni Hyytiälä |
49 |
|
|
50 |
|
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
1.Johdanto |
1.Johdanto |
53 |
|
|
54 |
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. |
Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on järjestelmäkokonaisuus, jonka avulla vertaisverkoissa |
55 |
|
voidaan siirtää tiedostoja, keskustella, jakaa työpöytiä ja hakea tietoa. JXTA poikkeaa useista muista |
56 |
|
vertaisverkkoarkkitehtuureista siten, että se on täysin avoin järjestelmä. Tämä tarkoittaa sitä, että JXTA kehittyy |
57 |
|
jatkuvasti useiden vapaaehtoisten sovelluskehittäjien toimesta. Lisäksi JXTA on tarkoitettu käytettävän yrityksissä, |
58 |
|
jonka seurauksena JXTA sisältää omaisuuksia, joita muista vertaisverkkoarkkitehtuureista ei löydy. |
59 |
|
|
60 |
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. |
Tutkielma jakaantuu kolmeen osaan. Luvuissa 2 ja 3 käsitellään vertaisverkkoja ja JXTAa yleisellä tasolla, luvuissa 4, |
61 |
|
5, 6 ja 7 keskitytään JXTA-järjestelmän ominaisuuksiin. Luku 8 käsittelee tiedonhakua vertaisverkossa. |
62 |
|
|
63 |
2.Vertaisverkot ja JXTA |
2.Vertaisverkot ja JXTA |
64 |
|
|
65 |
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. |
Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin suureksi, että kukaan ei pysty enää |
66 |
|
hallitsemaan kaikkea tietoa. On arvioitu, että uusien langattomien laitteiden markkinoille tulo kasvattaa |
67 |
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. |
tietoverkoissa käytettävien laitteiden määrää miljardeilla uusilla laitteilla. |
68 |
|
|
69 |
|
Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden heikkoudet ovat tulleet esille. Esimerkiksi laaja- |
70 |
|
alaisen ja paljon tietoa sisältävän tietokonejärjestelmän kuormittaminen keskitetysti (eng. Denial of service attack) |
71 |
|
voi aiheuttaa järjestelmän jumiutumisen, jolloin kaikki tietojärjestelmän tarjoavat palvelut lakkaavat toimimasta. |
72 |
|
|
73 |
|
Keskitettyjen palveluiden haavoittuvuudesta johtuen on alettu kehittämään vaihtoehtoisia tapoja viestiä tietoverkoissa. |
74 |
|
Vertaisverkot ovat tietoverkkoja, joissa kaikki verkkoon kuuluvat laitteet ovat tasavertaisia. Tiedon siirtoon ei |
75 |
|
tarvita keskuskoneita, vaan verkon laitteet keskustelevat ainoastaan keskenään. IEEE 802.11b-standardi on esimerkki |
76 |
|
vertaisverkkoarkkitehtuurista, jossa verkon laitteet eivät tarvitse keskustietokoneiden palveluita verkkoon |
77 |
|
liityttäessä. |
78 |
|
|
79 |
|
Tiedotusvälineissä paljon julkisuutta saanut Napster-tiedostonjakoarkkitehtuuri ei perustu vertaisverkkoteknologiaan, |
80 |
|
koska Napsterissa käytetään keskustietokoneita tiedon tallentamiseen (eng. Indexing). Itse tiedonsiirto tapahtuu |
81 |
|
kuitenkin ilman keskustietokoneita. Napsterin syntymän jälkeen on tehty lukuisia muita tiedostonjako-ohjelmistoja, jotka |
82 |
|
pohjautuvat enemmän vertaisverkkoideologiaan. |
83 |
|
|
|
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. |
|
84 |
|
|
85 |
3.JXTA-projekti |
3.JXTA-projekti |
86 |
|
|
87 |
3.1.Yleistä |
3.1.Yleistä |
88 |
|
|
89 |
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. |
JXTA on alunperin Sun Microsystemsin aloittama projekti. Projektin tavoitteena on luoda avoin arkkitehtuuri, joka |
90 |
|
mahdollistaa tehokkaan ja turvallisen tiedonsiirron vertaisverkoissa. JXTA-arkkitehtuuri perustuu vertaisverkko- |
91 |
|
ideologiaan. JXTAn avulla voidaan tietoverkoissa viestiä, tehdä yhteystyötä, jakaa resursseja ja hakea tietoa. JXTA on |
92 |
|
laitteisto- tai kieliriippumaton, joten se mahdollistaa erilaisten digitaalisten laitteiden- ja viestimien yhtäaikaisen |
93 |
|
käytön samassa vertaisverkossaa. |
94 |
|
|
95 |
3.2 Tavoitteet |
3.2 Tavoitteet |
96 |
|
|
97 |
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ä: |
JXTA-projektin päämääränä on luoda vertaisverkkoarkkitehtuuri, josta hyötyisivät sekä yksityishenkilöt että yritykset. |
98 |
|
Kun projekti alkoi, luotiin kolme tavoitetta: |
|
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. |
|
99 |
|
|
100 |
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. |
Yhteensopivuus |
101 |
|
Lähes kaikki saatavilla olevat vertaisverkkoarkkitehtuurit ovat keskenään yhteensopimattomia. Projektin |
102 |
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. |
tavoitteena on luoda universaalinen vertaisverkkoarkkitehtuuri, jolloin kaikki tätä arkkitehtuuria käyttävät |
103 |
|
sovellukset ja olisivat keskenään yhteensopivia ja voisivat käyttää hyväksi toistensa palveluita. |
104 |
|
|
105 |
|
Alusta riippumattomuus |
106 |
|
Useat vertaisverkko-arkkitehtuurit ovat sidottuja tiettyyn alustaan, koska ne ovat suunniteltu |
107 |
|
ja toteutettu tietyillä kielityökaluilla. Esimerkiksi jos vertaisverkko-ohjelma on toteutettu C++-ohjelmointikielellä, |
108 |
|
voi ohjelman siirrettävyys eri järjestelmien välillä olla vaikeaa tai jopa mahdotonta. JXTA on kielityökalu-, |
109 |
|
laitteisto- ja verkkoriippumaton vertaisverkkoarkkitehtuuri. |
110 |
|
|
111 |
|
Kaikkialla läsnäoleva |
112 |
|
JXTA-teknologia on suunniteltu toimivan erilaisissa digitaalisissa laitteissa. Esimerkiksi |
113 |
|
erilaiset taskutietokoneet, kulutuselektroniikka- ja verkkolaitteistot ja tavalliset tietokoneet voivat keskustella |
114 |
|
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. 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. |
JXTA-arkkitehtuurin protokollat luovat virtuaalisen verkon fyysisen verkon päälle. Virtuaaliverkon tarkoituksena on |
119 |
|
piilottaa alla olevan fyysisen verkon monimutkaisuus, esimerkiksi palomuurit, ja luoda yhtenäinen kokonaisuus verkon |
120 |
|
laitteiden kesken. Kuvassa 1 on esitetty JXTA-verkon virtuaalisen verkon rakenne. |
|
Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems). |
|
121 |
|
|
|
4.1 Verkkolaitteiden tunnistus (Uniform Peer Addressing) |
|
122 |
|
|
|
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. |
|
123 |
|
|
124 |
4.2 Viestit (Messages) |
Kuva 1: JXTA-arkkitehtuurin virtuaaliverkko (© Sun Microsystems). |
125 |
|
|
|
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. |
|
126 |
|
|
|
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. |
|
127 |
|
|
128 |
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. |
Seuraavissa kappaleissa esitellään JXTAn verkkoarkkitehtuurin tärkeimmät ominaisuudet. |
129 |
|
|
|
4.3 Mainokset (Advertisements) |
|
130 |
|
|
131 |
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). |
4.1 Verkkolaitteiden tunnistus (eng. Uniform Peer Addressing) |
132 |
|
|
133 |
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. |
Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet tunnistetaan JXTA-arkkitehtuurin mukaisessa |
134 |
|
vertaisverkossa. Jokaiselle verkon laitteelle luodaan verkkoon liittymisen yhteydessä 128-bittinen tunniste |
135 |
|
(eng. Universal User Identification). Tunnisteen avulla voidaan yksikäsitteisesti tunnistaa verkon laite, oli kyseessä |
136 |
|
sitten DHCP-tekniikkaa käyttävä laite tai erilaisia verkkoliityntöjä käyttävä laite (esimerkiksi Ethernet, Bluetooth). |
137 |
|
Jokainen JXTA-verkon laite omaa laiterajapinnan (eng. Peer Endpoint), joka kertoo muille verkon laitteille laitteen |
138 |
|
osaamat verkkotekniikat. Esimerkiksi kun JXTA-verkon laite A saa tietoonsa toisen JXTA-verkon laitteen B |
139 |
|
laiterajapinnan, laite A voi valita parhaan tiedonsiirtokäytännön laitteen B kanssa. |
140 |
|
|
141 |
|
4.2 Viestit (eng. Messages) |
142 |
|
|
143 |
|
Kuten muissa ei-suunnitelluissa (eng. Ad-Hoc) ja mukautuvissa (eng. Adaptive) vertaisverkoissa, myös JXTA-verkossa |
144 |
|
yhteydet verkon laitteiden välillä voivat olla ohimeneviä. Tiedon välitysreitit voivat vaihtua ja olla lisäksi |
145 |
|
asynkronisia. JXTA-verkossa siirtyvät viestit on suunniteltu tällaisia tarpeita ajatellen. |
146 |
|
|
147 |
|
Jokainen JXTA-verkon viesti sisältää otsikon (eng. Header), ei-pakollisen tiivistelmän (eng. Digest), päällysen |
148 |
|
(eng. Envelope) ja pinon (eng. Stack) sisältäen eri protokollien otsikot ja tiedot (eng. Body). Päällynen sisältää |
149 |
|
otsikon, ei-pakollisen viestin lyhennelmän, lähettäjän sekä vastaanottajan. Vastaanottaja on looginen kohde, joka on |
150 |
|
annettu URI-muotoisena tietona. |
151 |
|
|
152 |
|
Viestin tieto sisältää muuttuvan määrän tietoa sekä tunnisteita, joiden avulla yksikäsitteisesti voidaan tunnistaa |
153 |
|
viestin lähettäjä ja vastaanottaja. Tunniste voi olla esimerkiksi digitaalinen allekirjoitus, joka määrittää viestin |
154 |
|
lähteen. |
155 |
|
|
156 |
|
4.3 Mainokset (eng. Advertisements) |
157 |
|
|
158 |
|
Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa olevan laitteen palveluita. Kaikki |
159 |
|
JXTA-verkon resurssit ja palvelut kuvataan mainoksilla. JXTA-arkkitehtuurissa on seitsemän valmista mainospohjaa, joita |
160 |
|
voidaan käyttää mainosten luomisessa: Vertaissolmu-mainos (eng. Peer advertisement), vertaissolmuryhmä-mainos (eng. Peer |
161 |
|
Group advertisement), piippu-mainos (eng. Pipe advertisement), moduuli-mainos (eng. Module advertisement), |
162 |
|
tirkistäjätieto-mainos (eng. Peer Info advertisement), sisällys-mainos (eng. Content advertisement) ja laiterajapinta- |
163 |
|
mainos (eng. Peer Endpoint advertisement). |
164 |
|
|
165 |
|
Mainoksia analysoimalla verkon laitteet pystyvät löytämään halumansa palvelut JXTA-verkosta. Kaikki vertaissolmut |
166 |
|
tallentavat, julkaisevat ja siirtävät mainoksia JXTA-verkossa. Kaikkiin mainoksiin liittyy elämänpituus-arvo |
167 |
|
(eng. Lifetime), joka määrittelee mainoksessa eliniän JXTA-verkossa. Mainos voidaan uudelleen julkaista, |
168 |
|
jolloin elämänpituus-arvoa voidaan tarvittaessa kasvattaa. Kuvassa 2 on esitetty eräs JXTA-arkkitehtuurin mukainen |
169 |
|
mainos. |
170 |
|
|
171 |
|
|
172 |
|
|
173 |
Kuva 2: XML-muotoinen mainos (© Sun Microsystems). |
Kuva 2: XML-muotoinen mainos (© Sun Microsystems). |
174 |
|
|
|
4.4 Tirkistäjä (Peer) |
|
175 |
|
|
|
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. |
|
176 |
|
|
177 |
4.5 Tirkistäjäryhmät (Peer Groups) |
4.4 Vertaissolmu (eng. Peer) |
178 |
|
|
179 |
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-verkko koostuu vertaissolmuista. Vertaissolmu voi olla tietokone, kämmentietokone tai langaton puhelin. |
180 |
|
Vertaissolmun pitää osata keskustella muiden tirkistäjien kanssa JXTA-arkkitehtuurin mukaisten protokollien avulla. |
181 |
|
|
182 |
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.5 Vertaissolmuryhmät (eng. Peer Groups) |
183 |
|
|
184 |
|
JXTA-verkossa voi muodostua vertaissolmuryhmiä. Vertaissolmuryhmät ovat virtuaalisia konaisuuksia, jotka koostuvat |
185 |
|
yksittäisistä vertaissolmuista, joilla on samat kiinnostuksen kohteet. Yleensä samaan vertaissolmuryhmään kuuluvat |
186 |
|
vertaissolmut ovat sopineet erilaisista käytännöistä (eng. Policies), joita noudatetaan vertaissolmuryhmän sisällä. |
187 |
|
Jokainen vertaissolmuryhmä tunnistetaan yksillöllisen tunnisteen avulla. Uusi vertaissolmuryhmä voidaan luoda |
188 |
|
dynaamisesti JXTA-verkon käyttäjän, sovelluksen tai ylläpitäjän toimesta. Yksittäinen vertaissolmu voi kuulua |
189 |
|
samanaikaisesti useaan eri vertaissolmuryhmään. |
190 |
|
|
191 |
4.6 Piiput (Pipes) |
Vertaissolmuryhmien olemassaoloon JXTA-arkkitehtuurin kehittäjät ovat löytäneet kolme motiivia: luottamuksellisen tiedon |
192 |
|
siirto rajoitetussa ympäristössä, samanlaisten intressien jakaminen rajoitetussa ympärisössä sekä rajoitetun ympäristön |
193 |
|
monitorointi ja analsyointi. JXTA-verkossa on implisiittinen, koko verkon laajuinen World Peer Group-vertaissolmuryhmä |
194 |
|
(WPG), joka kattaa kaikki verkon vertaissolmut. Tämä ei kuitenkaan tarkoita sitä, että kaikki WGP-ryhmän vertaissolmut |
195 |
|
voisivat löytää kaikki muut vertaissolmut. |
196 |
|
|
|
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. |
|
197 |
|
|
198 |
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ä. |
4.6 Piiput (eng. Pipes) |
199 |
|
|
200 |
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. |
Piiput ovat asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. Piiput ovat myös virtuaalisia, piipun |
201 |
|
kohde voidaan yhdistää yhteen tai useaan vertaissolmuun. Piippuja käyttävät JXTA-verkon palvelut sekä sovellukset. |
202 |
|
|
203 |
|
Piippu yhdistetään yleensä ajonaikaisesti vertaissolmuun käyttäen piipun yhdistys protokollaa (eng. Pipe Binding |
204 |
|
Protocol). Yksittäinen piippu voidaan yhdistää eri aikoina eri vertaissolmuihin. Tämä on hyöydyllinen omainaisuus |
205 |
|
silloin kun halutaan varmistaa järjestelmän toimivuus kriittisissä tilanteissa. Vioittunut vertaissolmu esimerkiksi |
206 |
|
verkossa voidaan korvata toisella toimivalla vertaissolmulla. |
207 |
|
|
208 |
4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous) |
Pisteestä-pisteeseen-piipulla (eng. Point-to-point pipe) voidaan yhdistää tasan kaksi vertaissolmua keskenään. Tällöin |
209 |
|
piippu on ulosmeno-piippu lähettäjälle ja sisäänmeno-piippu vastaanottajalle. Liikenne on yksisuuntaista, lähettäjältä |
210 |
|
vastaanottajalle. Levittäytyvät-piiput (eng. Propagate pipe) pystyvät yhdistämään usean vertaissolmun laiterajapinnat |
211 |
|
keskenään. |
212 |
|
|
|
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. |
|
213 |
|
|
214 |
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ää. |
4.7 Resurssien kartoitus (Universal Resource Binding and Rendezvous) |
215 |
|
|
216 |
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. |
JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka hoitaa verkon palveluihin liittyviä |
217 |
|
perustehtäviä. Näitä ovat esimerkiksi vertaissolmun nimen liittäminen IP-osoitteeseen, IP-pistorasian (eng. Socket) |
218 |
|
liittäminen porttiin, palvelun löytäminen LDAP-hakemistopalvelun avulla ja tiedon etsintä hajautetussa |
219 |
|
tiedostojärjestelmässä (eng. Network Filesystem, NFS). Kaikki edellä mainitut operaatiot käyttävät JXTA-verkon mainoksia |
220 |
|
hyväkseen. |
221 |
|
|
222 |
|
Kohtauspaikka-vertaisolmu (eng. Rendezvous Peer) on erityinen vertaissolmu, jotka ovat tunnettuja muiden |
223 |
|
vertaissolmujen keskuudessa ryhmän sisällä. Kohtauspaikka-vertaissolmu tallentaa muistiinsa suuren määrän mainoksia, |
224 |
|
tarjoten palveluita muille ryhmän jäsenille. Ryhmä voi sisältää mielivaltaisen monta kohtauspaikka- vertaissolmua. |
225 |
|
|
226 |
|
Yleisesti vertaisverkoissa ylemmän tason (eng. High level) hakupalvelut tarjoavat tehokkaammat hakumenetelmät, |
227 |
|
koska palveluilla on parempi tietous tiedon levinneisyydestä tirkistelijöiden keskuudessa (esimerkkeinä Chord [], |
228 |
|
CAN []). Kohtauspaikka-arkkitehtuuri tarjoaa sekä alemman tason hakupalvelut mainosten löytämiseen sekä koukkuja |
229 |
|
(eng. Hooks), joita voidaan käyttää hyväksi ylemmän tason mainosten etsintään. |
230 |
|
|
231 |
|
|
232 |
5. Protokollat |
5. Protokollat |
233 |
|
|
234 |
|
Tässä kappaleessa on esitelty JXTA-verkon pääprotokollat. |
235 |
|
|
236 |
5.1 Peer Discovery Protocol |
5.1 Peer Discovery Protocol |
237 |
|
|
238 |
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. |
Auttaa yksittäistä vertaissolmua löytämään mainoksia, toisia vertaissolmuja ja vertaissolmuryhmiä JXTA-verkossa. Jos |
239 |
|
vertaissolmun tai vertaissolmuryhmän nimeä ei ole määritelty, protokolla palauttaa kaikkia saatavilla olevat mainokset |
240 |
|
haun tuloksena. |
241 |
|
|
242 |
5.2 Peer Resolver Protocol |
5.2 Peer Resolver Protocol |
243 |
|
|
244 |
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). |
Mahdollistaa vertaissolmun lähettää ja vastaanottaa yleisiä kyselyitä vertaissolmuun, vertaissolmuryhmään, piippuihin |
245 |
|
tai tietoon liittyen. Yleensä tämä protokolla on ainoastaan käytössä kohtauspaikka-vertaissolmuissa. |
246 |
|
|
247 |
5.3 Peer Information Protocol |
5.3 Peer Information Protocol |
248 |
|
|
249 |
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. |
Auttaa vertaissolmua ymmärtämään muiden vertaissolmujen palveluita sekä tiloja. Esimerkiksi vertaissolmu voi lähettää |
250 |
|
testi-viestin (eng. Ping message) toiselle vertaissolmulle varmistaakseen, että onko kohteena ollut vertaissolmu |
251 |
|
saatavilla. |
252 |
|
|
253 |
5.4 Peer Membership Protocol |
5.4 Peer Membership Protocol |
254 |
|
|
255 |
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. |
Mahdollistaa yksittäisen vertaissolmun tulla vertaissolmuryhmän jäseneksi, luoda hakemus vertaissolmuryhmään |
256 |
|
liittymiseksi tai ryhmästä poistumiseksi, ottaa ryhmän mainoksia vastaan ja päivittää ryhmän jäsenyyteen liittyviä |
257 |
|
tietoja. |
258 |
|
|
259 |
5.5 Pipe Binding Protocol |
5.5 Pipe Binding Protocol |
260 |
|
|
261 |
Mahdollistaa tirkistelijän liittää piipun mainos piipun kohteeseen. |
Mahdollistaa vertaissolmun liittää piipun mainos piipun kohteeseen. |
262 |
|
|
263 |
5.6 Peer Endpoint Protocol |
5.6 Peer Endpoint Protocol |
264 |
|
|
265 |
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. |
Auttaa vertaissolmua kysymään reititin-vertaissolmulta (eng. Peer Router) polkuja kohde vertaissolmuun. Tämä on |
266 |
|
hyödyllistä silloin, kun vertaissolmut ovat fyysisesti eri verkoissa tai kun palomuuri on vertaissolmujen välissä. |
267 |
|
Vertaissolmu voi luoda itsestään reititin-vertaissolmun hyödyntämällä Peer Endpoint-tekniikkaa. |
268 |
|
|
269 |
6. Ohjelmistoarkkitehtuuri |
6. Ohjelmistoarkkitehtuuri |
270 |
|
|
271 |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen. Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri. |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen, ytimeen, palveluihin ja |
272 |
|
sovelluksiin. Kuvassa 3 on esitetty JXTAn ohjelmistoarkkitehtuuri. |
273 |
|
|
274 |
|
|
275 |
|
|
276 |
Kuva 3: JXTAn ohjelmistoarkkitehtuuri (© Sun Microsystems). |
Kuva 3: JXTAn ohjelmistoarkkitehtuuri (© Sun Microsystems). |
277 |
|
|
|
6.1 Ydin (Core) |
|
278 |
|
|
|
JXTAn ydin tarjoaa peruspavelut tirkistelijä-palveluille sekä sovelluksille. Turvallinen suoritusympäristö, tirkistelijäryhmät, piiput sekä verkon monitorointi on sisään rakennettu ytimeen. |
|
279 |
|
|
280 |
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. |
Seuraavissa kappaleissa käsitellään JXTAn ohjelmistoarkkitehtuurin eri kerroksia. |
281 |
|
|
282 |
6.2 Palvelut (Services) |
6.1 Ydin (eng. Core) |
283 |
|
|
284 |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon hakemiseen, tiedon jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
JXTAn ydin tarjoaa peruspavelut vertaissolmu-palveluille sekä -sovelluksille. Turvallinen suoritusympäristö, |
285 |
|
vertaissolmuryhmät, piiput sekä JXTA-verkon monitorointi on sisään rakennettu ytimeen. |
286 |
|
|
287 |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkko-sovelluksia. |
Ytimessä on tuki myös anonyymeille tai rekisteröityneille käyttäjille sekä salatulle tai ei-salatulle tiedolle. |
288 |
|
|
289 |
6.3 Sovellukset (Applications) |
6.2 Palvelut (eng. Services) |
290 |
|
|
291 |
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. |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon hakemiseen, tiedon |
292 |
|
jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
293 |
|
|
294 |
6.4 Esimerkki sovellus: Kuori (JXTA Shell) |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkko- |
295 |
|
sovelluksia. |
296 |
|
|
297 |
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ä. |
6.3 Sovellukset (eng. Applications) |
298 |
|
|
299 |
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. |
JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita hyväksi. JXTA-sovelluksia voivat olla |
300 |
|
esimerkiksi pikaviestimet, sähköposti- ja kalenteri-pavelut sekä resurssien hakuun tai siirtoon erikoistuneet |
301 |
|
sovellukset. |
302 |
|
|
303 |
|
6.4 Esimerkki sovellus: Kuori (eng. JXTA Shell) |
304 |
|
|
305 |
7. Tietoturva |
Kuori on hyvä esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on interaktiivinen |
306 |
|
komentorivipohjainen sovellus, samanlainen mitä yleimmät kuoret ovat Unix-järjestelmissä. Suurin ero Unix-kuoren ja |
307 |
|
JXTA-kuoren välillä on se, että Unix-kuoren komennot on tarkoitettu suoritettavaksi paikallisessa ympäristössä, kun taas |
308 |
|
JXTA-kuoren komennot suoritetaan hajautetussa verkkoympäristössä. |
309 |
|
|
310 |
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. |
Kuori JXTA-ympäristössä on yksinkertainen komentotulkki, joka hyväksyy komennon, tulkitsee komennon, suorittaa komennon |
311 |
|
ja odottaa komentoon vastausta. Komentoja ovat esimerkiksi "ls", "cat" ja "grep", aivan kuten perinteisissä Unix- |
312 |
|
järjestelmissä. Kuoren omainaisuuksiin kuuluu "piiputus", (vertaa edelleen perinteiset Unix-järjestelmät), jonka avulla |
313 |
|
tietyn komennon vaste voidaan antaa toisen komennon syötteeksi. |
314 |
|
|
|
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. |
|
315 |
|
|
316 |
|
7. Tietoturva |
317 |
|
|
318 |
|
Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon salaamista. Luottamus, koskemattomuus ja |
319 |
|
saatavuus ovat avainsanoja puhuttaessa tietoturvasta. Käytännössä edellä esitetyt vaatimukset tarkoittavat käyttäjän |
320 |
|
tunnistusta, valvontaa, tiedon sekä liikenteen salausta. |
321 |
|
|
322 |
|
Jos JXTA-verkossa halutaan käyttää tiedonsiirron yhteydessä salausta, on käytettävä Transport Secutiry Layer 1.0- |
323 |
|
protokollaa (TSL 1.0). TSL-protokollan käyttö jakaa JXTA-verkon kahteen päällekkäiseen kerrokseen. Alempi kerros koostuu |
324 |
|
JXTA-verkon pohjalla olevasta virtuaaliverkosta, joka mahdollistaa tiedon siirron kahden vertaissolmun välillä, vaikka |
325 |
|
fyysisessä verkossa tämä olisi huomattavan vaikeaa. Ylempi kerros koostuu TLS 1.0-protokollaa käyttävästä, edelleen |
326 |
|
virtuaalisesta verkosta. Ero alemman kerroksen virtuaaliseen verkkoon on se, että TLS-protokolla luo turvallisen |
327 |
|
siirtoyhteyden niiden vertaissolmujen välille, joiden keskuudessa tiedosiirto tapahtuu. Kuvassa 4 on esitetty |
328 |
|
arkkitehtuurin perusrakenne. |
329 |
|
|
|
Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems). |
|
330 |
|
|
331 |
|
|
332 |
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. |
Kuva 4. TSL-protokolla JXTA-arkkitehtuurissa (© Sun Microsystems). |
333 |
|
|
|
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. |
|
334 |
|
|
335 |
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. |
JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria [ ]. Tiedon kuljettamiseen käytetään TSL 1.0-protokollaa ja |
336 |
|
tiedon salaamiseen RSA 1024-, 3DES- ja SHA-1-algoritmeja. TLS 1.0-protokollan on kehittänyt |
337 |
|
Internet Engineering Task Forde (IETF) ja se on jatkokehitysversio aiemmin luodulle Secure Sockey Layer 3.0- |
338 |
|
protokolalle. TSL 1.0-protokolla on kaksisuuntainen ja tieto siirtyy JXTA-verkossa 16 kilotavun osissa. Koska |
339 |
|
tiedonsiirtoväylä on kaksi suuntainen, pitää tiedonsiirron molemmat osapuolet pystyä tunnistamaan. Vertaissolmun pitää |
340 |
|
hankkia itselleen toisen vertaissolmun X509.V3-juuriserfifikaatti (eng. Root Certificate), jotta tiedonsiirto tapahtuisi |
341 |
|
turvallisesti. Sertifikaatti sisältää RSA 1024-algoritmin mukaisen julkisen avaimen, jonka avulla vertaissolmu voi |
342 |
|
tunnistaa X509.V3-palvelusertifikaatin yksityisen avaimen. TLS 1.0-protokolla käyttää palvelusertifikaatteja |
343 |
|
vertaissolmujen tunnistamiseen. |
344 |
|
|
345 |
|
Vertaissolmut voivat hankkia toisen vertaissolmun juurisertifikaatin itselleen kahdella eri tavalla. Ensimmäinen tapa on |
346 |
|
levittää vertaissolmun juurisertifikaattia JXTA-verkon mainoksissa. Tämä ei kuitenkaan suositeltavaa, koska silloin |
347 |
|
"Mies keskellä"-hyökkäys (eng. Man In The Middle Attack, MITM) saattaa tapahtua. MITM-hyökkäys on käytännössä vaikea |
348 |
|
suorittaa, koska sertifikaatit on vahvasti salattuja. Toinen, turvallisempi tapa levittää juurisertifikaatteja on liitää |
349 |
|
juurisertifikaatti binäärisen tiedon sekaan, jolloin MITM-hyökkäykset eivät olet mahdollisia. |
350 |
|
|
351 |
|
Tällä hetkellä JXTA-projektissa kehitetään menetelmää, joka mahdollistaa vertaissolmuryhmien tunnistamisen. Menetelmä |
352 |
|
pohjautuu X509.V3-sertifikaatteihin. Kun vertaissolmu liittyy vertaissolmuryhmään, saa uusi vertaissolmu ryhmän |
353 |
|
perustajan julkisen juurisertifikaatin itselleen tiedonsiirtokanavaa pitkin, jossa käytetään TLS 1.0-protokollaa. Tämän |
354 |
|
jälkeen uusi vertaissolmu käyttää Certificate Service Request-palvelua (CSR) ja juuri saatua julkista avainta hyväksi |
355 |
|
hankkiessaan ryhmänjäsenyys-sertifikaatin itselleen. Sertifikaatti on X509.V3-muotoinen ja se on allekirjoitettu ryhmän |
356 |
|
perustajan yksityisellä juurisertifikaatti-avaimella. |
357 |
|
|
358 |
|
|
359 |
8. Tiedon haku vertais- ja JXTA-verkoissa |
8. Tiedon haku vertais- ja JXTA-verkoissa |
360 |
|
|
361 |
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. |
8.1 Tiedonhaku vertaisverkoissa |
362 |
|
Tiedon hakeminen hajautetussa vertaisverkossa voidaan jakaa kahteen eri osaan [ ]. Ensimmäinen, ei-sisältöpohjainen haku |
363 |
|
(eng. Content-agnostic Search), pohjautuu menetelmään, jossa tarkoituksena on löytää verkosta muita solmuja, jotka |
364 |
|
sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä nämä solmut ovat palvelimia, jotka pitävät yllä erilaisia |
365 |
|
hakemistoja verkossa liikkuvasta tiedosta ja tietoon liittyvistä solmuista. Ei-sisältöpohjaista hakutekniikkaa käyttävät |
366 |
|
esimerkiksi Napster- ja Gnutella-tiedostonjako-ohjelmat. Ei-sisältöpohjaisen haun etuina ovat haun nopeus sekä pieni |
367 |
|
verkon kuormitus. Heikkouksina voidaan pitää virheensietokykyä, laajennettavuutta sekä keskitettyä ylläpitoa. |
368 |
|
|
369 |
|
Toinen tekniikka on nimeltään sisältöpohjainen haku (eng. Content-based Search). Sisältöpohjaisessa haussa haun kyselyä |
370 |
|
(eng. Search Query) ohjataan haun sisällön perusteella verkon solmujen välillä. Jossain vaiheessa kysely ohjautuu |
371 |
|
verkossa oikealle solmulle, joka pystyy vastaamaan kyselyyn ja palauttamaan haun tulokseen. Esimerkkejä tietopohjaisesta |
372 |
|
hausta ovat CAN (eng. Content Addressable Network, CAN[ ] sekä Chord [ ]). Kun uusi solmu liittyy tietoverkkoon, jossa |
373 |
|
käytetään tietopohjaista hakua, tulee solmun ensimmäiseksi luoda hakemisto (eng. Index) oman alueen (eng. Zone) |
374 |
|
mainoksista. Yksittäisten alueiden hakemisto-unioni muodostaa olemassa olevan verkon koko tietovaraston. Alue, joka |
375 |
|
uudellee solmulle varataan, on dynaaminen ja se rippuu verkon solmujen lukumäärästä sekä yksittäisten solmujen |
376 |
|
poistumisesta verkosta tai liittymisestä verkkoon. Kun verkon solmu haluaa julkaista uuden mainoksen resurssiin tai |
377 |
|
tietoon liittyen, se tutkii mainoksen sisällön. Sisällön perusteella solmu osaa lähettää mainoksen verkossa oikeaan |
378 |
|
paikkaan. Hajautus on yleisin tapa laskea mainoksen paikka tietoverkossa. |
379 |
|
|
380 |
|
8.2 Tiedonhaku JXTA-verkossa |
381 |
|
|
382 |
|
Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä XML-pohjaisiin viesteihin. Kuvassa 5 on esitetty |
383 |
|
JXTA-verkon verkkotopologia tiedonhaun yhteydessä. |
384 |
|
|
|
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. |
|
385 |
|
|
|
Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä XML-pohjaisiin viesteihin. Kuvassa 5 on esitetty JXTA-verkon verkkotopologia tiedonhaun yhteydessä. |
|
386 |
|
|
387 |
Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems). |
Kuva 5. Tiedon haku JXTA-verkossa (© Sun Microsystems). |
388 |
|
|
|
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. |
|
389 |
|
|
390 |
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). |
|
391 |
|
Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä mahdollistaa tehokkaat hakualgorimit sekä |
392 |
|
vähentää verkon kuormitusta. Kun vertaissolmut julkaisevat mainoksia, ne tallennetaan keskitin-vertaissolmuihin. |
393 |
|
Yksittäiset keskitin-vertaissolmut voivat ohjata kyselyjä toisiin keskitin-vertaissolmuihin. Lisäksi keskitin- |
394 |
|
vertaissolmut voivat keskittyä maantieteellisesti sekä sisällön tai sovelluksen perusteella. |
395 |
|
|
396 |
|
JXTA-verkossa käytetään hakujen suorittamiseen Query Routing-protokollaa (QRP). Koska protokolla on XML-muotoinen |
397 |
|
viesti, on se kevyt ja yhteensopiva eri järjestelmien välillä. QRP koostuu kolmesta viestimuodosta, rekisteröinnistä |
398 |
|
(eng. Registration), pyynnöstä (eng. Request) sekä vastauksesta (eng. Response). Rekisteröinti-viestimuotoa käytetään |
399 |
|
uusien resurssien julkituomiseen, pyyntö-viestimuotoa tiedon ja resurssien hakemiseen sekä vastaus-viestimuotoa haun |
400 |
|
tuottamien vastausten palauttamiseen. Kaikki komponentit sijaitsevat kyselyavaruudessa (eng. Query Space), joka vastaa |
401 |
|
XML-standardin nimiavaruuksia (eng. Namespace). |
402 |
|
|
403 |
|
|
404 |
|
|
405 |
Kuva 6. Eräs XML-muotoinen pyyntö-viesti (© Sun Microsystems). |
Kuva 6. Eräs XML-muotoinen pyyntö-viesti (© Sun Microsystems). |
406 |
|
|
407 |
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. |
|
408 |
|
|
409 |
|
Pyyntöjen palauttamiin hakutuloksiin voidaan vaikuttaa Query Node Pattern-tekniikan (QNP) avulla. Se on tekniikka, jossa |
410 |
|
loogisia predikaatteja käytetään kuvamaan tietoa tai resurssia. Predikaatit voivat olla yksittäisiä sanoja tai loogisia |
411 |
|
operaattoreita, kuten "Tai" (eng. Or) ja "Ja" (eng. And). Kuvassa 7 on esitetty rekisteröinti-viesti. Viestissä rivi |
412 |
|
"http://big-bookseller.com/jxtasearch" määrää käytettävän kyselyavaruuden. Tämä viesti rekisteröi kyselyavaruuteen uudet |
413 |
|
avainsanat "Joy", "Stephenson", "Java", "JXTA", "XML" ja "Cryptography". Kaikki pyyntö-viestit, jotka hakevat edellä |
414 |
|
mainittuja sanoja (esimerkiksi kuvan 6 viesti), suoritetaan "http://big-bookseller.com/jxtasearch"-palvelimella. |
415 |
|
|
416 |
|
|
417 |
|
|
418 |
Kuva 7. Eräs XML-muotoinen rekisteröinti-viesti (© Sun Microsystems). |
Kuva 7. Eräs XML-muotoinen rekisteröinti-viesti (© Sun Microsystems). |
420 |
|
|
421 |
|
|
422 |
9. Yhteenveto |
9. Yhteenveto |
423 |
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-projektin tuotoksena on syntynyt monipuolinen vertaisverkkojärjestelmä. Avoimuus, tietoturva, sovellusten |
424 |
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 |
yhteensopivuus sekä laitteistoriippumattomuus ovat asioita, jotka erottavat JXTA-arkkitehtuurin muista |
425 |
|
vertaisverkkojärjestelmistä. Erityisesti JXTAn kehittynyt tietoturva-arkkitehtuuri mahdollistaa vertaisverkkosovellusten |
426 |
|
käytön tilanteissa, joihin aiemmat vertaisverkkotekniikat eivät ole soveltuneet. |
427 |
|
JXTA-arkkitehtuuri auttaa sovelluskehittäjiä keskittymään olennaiseen. Ohjelmoijan ei tarvitse syventyä erilaisiin |
428 |
|
yksityikohtiin, vaan voi heti alkaa kehittämään turvallisia ja tehokkaita ja ennen kaikkea hajautettuja sovelluksia |
429 |
|
vertaisverkkoympäristöön |
430 |
|
|
431 |
Viitteet |
Viitteet |
432 |
[1] JXTA-projekti, www.jxta.org |
[1] JXTA-projekti, www.jxta.org |
433 |
[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 |
|
434 |
[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 |
[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 |
435 |
[4] Project JXTA: An Open, Innovative Colloboration, saatavilla WWW-muodossa <URL: http://www.jxta.org/project/www/docs/OpenInnovative.pdf>, viitattu 11.10.2002 |
|
436 |
[5] Botros Sherif, Waterhouse Steve, Search in JXTA and Other Distributed Networks, 0-7695-1503-07/02 IEEE, 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 |
437 |
[6] Waterhouse Steve ym., Distributed Serach in P2P Networks, 1089-7801/02 IEEE / IEEE Internet Computing, January-February 2002 |
|
438 |
[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 |
[4] Project JXTA: An Open, Innovative Colloboration, saatavilla WWW-muodossa <URL: http://www.jxta.org/project/www/docs/OpenInnovative.pdf>, viitattu 11.10.2002 |
439 |
|
|
440 |
|
[5] Botros Sherif, Waterhouse Steve, Search in JXTA and Other Distributed Networks, 0-7695-1503-07/02 IEEE, 2002 |
441 |
|
|
442 |
|
[6] Waterhouse Steve ym., Distributed Serach in P2P Networks, 1089-7801/02 IEEE / IEEE Internet Computing, January-February 2002 |
443 |
|
|
444 |
|
[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 |
445 |
|
|
446 |
[8] Gong Li, JXTA: A Network Programming Environment, 1089-7801/01 IEEE / IEEE Internet Computing May-June 2001 |
[8] Gong Li, JXTA: A Network Programming Environment, 1089-7801/01 IEEE / IEEE Internet Computing May-June 2001 |
447 |
[9] |
|
448 |
|
[11] Gnutella, saatavilla WWW-muodossa <URL: http://www.gnutella.wego.com>, viitattu 11.10.2002 |
449 |
|
|
450 |
|
[12] Dierks T., Allen C., The TLS Protocol, IETF RFC2246, January 1999 |
451 |
|
|
452 |
|
[13] Ratnasamy S. ym., A Scalable Content Addressable Network, ACM SIGCOM, 2001 |
453 |
|
|
454 |
|
[14] Dabek F. ym., Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service, 2001 |
455 |
|
|
456 |
|
[15] SE P2P kirja vielä viimeiseksi tänne !!! |
457 |
|
|
458 |
|
|
459 |
|
|