/[gzz]/gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti
ViewVC logotype

Diff of /gzz/Documentation/misc/hemppah-luk/luk-tutkielma_teksti

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by hemppah, Wed Oct 16 07:24:01 2002 UTC revision 1.4 by hemppah, Wed Oct 16 09:53:56 2002 UTC
# Line 5  Line 5 
5    
6    
7    
   
8  Hermanni Hyytiälä  Hermanni Hyytiälä
9    
10    
# Line 24  Tietotekniikan (ohjelmistotekniikka) Line 23  Tietotekniikan (ohjelmistotekniikka)
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ä
# Line 52  sähköposti: hemppah@cc.jyu.fi Line 41  sähköposti: hemppah@cc.jyu.fi
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    
# Line 195  Kuva 2: XML-muotoinen mainos (© Sun Micr Line 144  Kuva 2: XML-muotoinen mainos (© Sun Micr
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    
# Line 309  Kuva 3: JXTAn ohjelmistoarkkitehtuuri (© Line 207  Kuva 3: JXTAn ohjelmistoarkkitehtuuri (©
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    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26