14 |
%*********************** |
%*********************** |
15 |
% Tyyliluokan pakolliset määritykset |
% Tyyliluokan pakolliset määritykset |
16 |
%*********************** |
%*********************** |
|
|
|
|
\selectlanguage{finnish} |
|
|
|
|
17 |
\title{JXTA-arkkitehtuuri} |
\title{JXTA-arkkitehtuuri} |
18 |
|
|
19 |
\author{Hermanni Hyytiälä} |
\author{Hermanni Hyytiälä} |
28 |
|
|
29 |
\avainsanat{Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut järjestelmät} |
\avainsanat{Vertaisverkot, P2P, tietoverkot, tietoturva, hajautetut järjestelmät} |
30 |
|
|
31 |
\contactinformation{Hermanni Hyytiälä\\ |
\contactinformation{\\ |
32 |
|
Hermanni Hyytiälä\\ |
33 |
Huhtalammentie 5 as. 17\\ |
Huhtalammentie 5 as. 17\\ |
34 |
40640 JYVÄSKYLÄ\\ |
40640 JYVÄSKYLÄ\\ |
35 |
sähköposti: hemppah@cc.jyu.fi} |
sähköposti: hemppah@cc.jyu.fi} |
72 |
|
|
73 |
Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin suureksi, että kukaan ei pysty enää |
Viimeisen kymmenen vuoden aikana tiedon määrä tietoverkoissa on kasvanut niin suureksi, että kukaan ei pysty enää |
74 |
hallitsemaan kaikkea tietoa. On arvioitu, että uusien langattomien laitteiden markkinoille tulo kasvattaa |
hallitsemaan kaikkea tietoa. On arvioitu, että uusien langattomien laitteiden markkinoille tulo kasvattaa |
75 |
tietoverkoissa käytettävien laitteiden määrää miljardeilla uusilla laitteilla \cite{Gong 2002}. |
tietoverkoissa käytettävien laitteiden määrää miljardeilla uusilla laitteilla \cite{Joy}. |
76 |
|
|
77 |
Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden heikkoudet ovat tulleet esille. Esimerkiksi laaja- |
Tiedon määrän kasvusta johtuen nykyisten tietoverkkojen rakenteiden heikkoudet ovat tulleet esille. Esimerkiksi laaja- |
78 |
alaisen ja paljon tietoa sisältävän tietokonejärjestelmän kuormittaminen keskitetysti (eng. Denial of service attack) |
alaisen ja paljon tietoa sisältävän tietokonejärjestelmän kuormittaminen keskitetysti (eng. Denial of service attack) |
79 |
voi aiheuttaa järjestelmän jumiutumisen, jolloin kaikki tietojärjestelmän tarjoavat palvelut lakkaavat toimimasta. |
voi aiheuttaa järjestelmän jumiutumisen, jolloin kaikki tietojärjestelmän tarjoamat palvelut lakkaavat toimimasta. |
80 |
|
|
81 |
Keskitettyjen palveluiden haavoittuvuudesta johtuen on alettu kehittämään vaihtoehtoisia tapoja viestiä tietoverkoissa. |
Keskitettyjen palveluiden haavoittuvuudesta johtuen on alettu kehittämään vaihtoehtoisia tapoja viestiä tietoverkoissa. |
82 |
Vertaisverkot ovat tietoverkkoja, joissa kaikki verkkoon kuuluvat laitteet ovat tasavertaisia. Tiedon siirtoon ei |
Vertaisverkot ovat tietoverkkoja, joissa kaikki verkkoon kuuluvat laitteet ovat tasavertaisia. Tiedon siirtoon ei |
96 |
|
|
97 |
|
|
98 |
JXTA \cite{JXTA 2002a} on alunperin Sun Microsystemsin aloittama projekti. Projektin tavoitteena on luoda avoin arkkitehtuuri, joka |
JXTA \cite{JXTA 2002a} on alunperin Sun Microsystemsin aloittama projekti. Projektin tavoitteena on luoda avoin arkkitehtuuri, joka |
99 |
mahdollistaa tehokkaan ja turvallisen tiedonsiirron vertaisverkoissa. JXTA-arkkitehtuuri perustuu vertaisverkko- |
mahdollistaa tehokkaan ja turvallisen tiedonsiirron vertaisverkoissa. JXTA-arkkitehtuuri perustuu vertaisverkkoideologiaan. |
100 |
ideologiaan. JXTAn avulla voidaan tietoverkoissa viestiä, tehdä yhteystyötä, jakaa resursseja ja hakea tietoa. JXTA on |
JXTAn avulla voidaan tietoverkoissa viestiä, tehdä yhteystyötä, jakaa resursseja ja hakea tietoa. JXTA on |
101 |
laitteisto- tai kieliriippumaton, joten se mahdollistaa erilaisten digitaalisten laitteiden- ja viestimien yhtäaikaisen |
laitteisto- tai kieliriippumaton, joten se mahdollistaa erilaisten digitaalisten laitteiden- ja viestimien yhtäaikaisen |
102 |
käytön samassa vertaisverkossaa. |
käytön samassa vertaisverkossaa. |
103 |
|
|
107 |
JXTA-projektin päämääränä on luoda vertaisverkkoarkkitehtuuri, josta hyötyisivät sekä yksityishenkilöt että yritykset. |
JXTA-projektin päämääränä on luoda vertaisverkkoarkkitehtuuri, josta hyötyisivät sekä yksityishenkilöt että yritykset. |
108 |
Kun projekti alkoi, luotiin kolme tavoitetta \cite{Gong 2002}: |
Kun projekti alkoi, luotiin kolme tavoitetta \cite{Gong 2002}: |
109 |
|
|
110 |
Yhteensopivuus |
\begin{itemize} |
111 |
|
|
112 |
|
\item \textbf{Yhteensopivuus} |
113 |
|
|
114 |
Lähes kaikki saatavilla olevat vertaisverkkoarkkitehtuurit ovat keskenään yhteensopimattomia. Projektin |
Lähes kaikki saatavilla olevat vertaisverkkoarkkitehtuurit ovat keskenään yhteensopimattomia. Projektin |
115 |
tavoitteena on luoda universaalinen vertaisverkkoarkkitehtuuri, jolloin kaikki tätä arkkitehtuuria käyttävät |
tavoitteena on luoda universaalinen vertaisverkkoarkkitehtuuri, jolloin kaikki tätä arkkitehtuuria käyttävät |
116 |
sovellukset ja olisivat keskenään yhteensopivia ja voisivat käyttää hyväksi toistensa palveluita. |
sovellukset ja olisivat keskenään yhteensopivia ja voisivat käyttää hyväksi toistensa palveluita. |
117 |
|
|
118 |
Alusta riippumattomuus |
\item \textbf{Alusta riippumattomuus} |
119 |
Useat vertaisverkko-arkkitehtuurit ovat sidottuja tiettyyn alustaan, koska ne ovat suunniteltu |
|
120 |
|
Useat vertaisverkkoarkkitehtuurit ovat sidottuja tiettyyn alustaan, koska ne ovat suunniteltu |
121 |
ja toteutettu tietyillä kielityökaluilla. Esimerkiksi jos vertaisverkko-ohjelma on toteutettu C++-ohjelmointikielellä, |
ja toteutettu tietyillä kielityökaluilla. Esimerkiksi jos vertaisverkko-ohjelma on toteutettu C++-ohjelmointikielellä, |
122 |
voi ohjelman siirrettävyys eri järjestelmien välillä olla vaikeaa tai jopa mahdotonta. JXTA on kielityökalu-, |
voi ohjelman siirrettävyys eri järjestelmien välillä olla vaikeaa tai jopa mahdotonta. JXTA on kielityökalu-, |
123 |
laitteisto- ja verkkoriippumaton vertaisverkkoarkkitehtuuri. |
laitteisto- ja verkkoriippumaton vertaisverkkoarkkitehtuuri. |
124 |
|
|
125 |
Kaikkialla läsnäoleva |
\item \textbf{Kaikkialla läsnäoleva} |
126 |
|
|
127 |
JXTA-teknologia on suunniteltu toimivan erilaisissa digitaalisissa laitteissa. Esimerkiksi |
JXTA-teknologia on suunniteltu toimivan erilaisissa digitaalisissa laitteissa. Esimerkiksi |
128 |
erilaiset taskutietokoneet, kulutuselektroniikka- ja verkkolaitteistot ja tavalliset tietokoneet voivat keskustella |
erilaiset taskutietokoneet, kulutuselektroniikka- ja verkkolaitteistot ja tavalliset tietokoneet voivat keskustella |
129 |
keskenään JXTA-teknologian ansiosta. |
keskenään JXTA-teknologian ansiosta. |
130 |
|
|
131 |
|
\end{itemize} |
132 |
|
|
133 |
\chapter{JXTA-arkkitehtuuri} |
\chapter{JXTA-arkkitehtuuri} |
134 |
|
|
135 |
|
|
136 |
JXTA-arkkitehtuurin protokollat \cite{Gong 2002} luovat virtuaalisen verkon fyysisen verkon päälle. Virtuaaliverkon tarkoituksena on |
JXTA-arkkitehtuurin protokollat \cite{Gong 2002} luovat virtuaalisen verkon fyysisen verkon päälle. Virtuaaliverkon tarkoituksena on |
137 |
piilottaa alla olevan fyysisen verkon monimutkaisuus, esimerkiksi palomuurit, ja luoda yhtenäinen kokonaisuus verkon |
piilottaa alla olevan fyysisen verkon monimutkaisuus (esimerkiksi palomuurit) ja luoda yhtenäinen kokonaisuus verkon |
138 |
laitteiden kesken. Kuvassa \ref{fig:virtualnetwork} on esitetty JXTA-verkon virtuaalisen verkon rakenne. |
laitteiden kesken. Kuvassa \ref{fig:virtualnetwork} on esitetty JXTA-verkon virtuaalisen verkon rakenne. |
139 |
|
|
140 |
|
|
165 |
|
|
166 |
|
|
167 |
Kuten muissa ei-suunnitelluissa (eng. Ad-Hoc) ja mukautuvissa (eng. Adaptive) vertaisverkoissa, myös JXTA-verkossa |
Kuten muissa ei-suunnitelluissa (eng. Ad-Hoc) ja mukautuvissa (eng. Adaptive) vertaisverkoissa, myös JXTA-verkossa |
168 |
yhteydet verkon laitteiden välillä voivat olla ohimeneviä. Tiedon välitysreitit voivat vaihtua ja olla lisäksi |
yhteydet verkon laitteiden välillä voivat olla ohimeneviä. Tiedon välitysreitit voivat vaihtua ja olla asynkronisia. |
169 |
asynkronisia. JXTA-verkossa siirtyvät viestit on suunniteltu tällaisia tarpeita ajatellen. |
JXTA-verkossa siirtyvät viestit on suunniteltu tällaisia tarpeita ajatellen. |
170 |
|
|
171 |
Jokainen JXTA-verkon viesti sisältää otsikon (eng. Header), ei-pakollisen tiivistelmän (eng. Digest), päällysen |
Jokainen JXTA-verkon viesti sisältää otsikon (eng. Header), ei-pakollisen tiivistelmän (eng. Digest), päällysen |
172 |
(eng. Envelope) ja pinon (eng. Stack) sisältäen eri protokollien otsikot ja tiedot (eng. Body). Päällynen sisältää |
(eng. Envelope) ja pinon (eng. Stack) sisältäen eri protokollien otsikot ja tiedot (eng. Body). Päällynen sisältää |
182 |
|
|
183 |
Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa olevan laitteen palveluita. Kaikki |
Mainos on JXTA-verkossa siirtyvä XML-muotoinen viesti, joka kuvaa verkossa olevan laitteen palveluita. Kaikki |
184 |
JXTA-verkon resurssit ja palvelut kuvataan mainoksilla. JXTA-arkkitehtuurissa on seitsemän valmista mainospohjaa, joita |
JXTA-verkon resurssit ja palvelut kuvataan mainoksilla. JXTA-arkkitehtuurissa on seitsemän valmista mainospohjaa, joita |
185 |
voidaan käyttää mainosten luomisessa: Vertaissolmu-mainos (eng. Peer advertisement), vertaissolmu-ryhmämainos (eng. Peer |
voidaan käyttää mainosten luomisessa: Vertaissolmu-mainos (eng. Peer advertisement), vertaissolmuryhmä-mainos (eng. Peer |
186 |
Group advertisement), piippu-mainos (eng. Pipe advertisement), moduuli-mainos (eng. Module advertisement), |
Group advertisement), piippu-mainos (eng. Pipe advertisement), moduuli-mainos (eng. Module advertisement), |
187 |
vertaissolmutieto-mainos (eng. Peer Info advertisement), sisällys-mainos (eng. Content advertisement) ja laiterajapinta- |
vertaissolmutieto-mainos (eng. Peer Info advertisement), sisällys-mainos (eng. Content advertisement) ja laiterajapinta- |
188 |
mainos (eng. Peer Endpoint advertisement). |
mainos (eng. Peer Endpoint advertisement). |
189 |
|
|
190 |
Mainoksia analysoimalla verkon laitteet pystyvät löytämään halumansa palvelut JXTA-verkosta. Kaikki vertaissolmut |
Mainoksia analysoimalla verkon laitteet pystyvät löytämään halumansa palvelut JXTA-verkosta. Kaikki vertaissolmut |
191 |
tallentavat, julkaisevat ja siirtävät mainoksia JXTA-verkossa. Kaikkiin mainoksiin liittyy elämänpituus-arvo |
tallentavat, julkaisevat (eng. Publish) ja siirtävät mainoksia JXTA-verkossa. Kaikkiin mainoksiin liittyy elämänpituus-arvo |
192 |
(eng. Lifetime), joka määrittelee mainoksessa eliniän JXTA-verkossa. Mainos voidaan uudelleen julkaista, |
(eng. Lifetime), joka määrittelee mainoksessa eliniän JXTA-verkossa. Mainos voidaan uudelleen julkaista (eng. Republish), |
193 |
jolloin elämänpituus-arvoa voidaan tarvittaessa kasvattaa. Kuvassa \ref{fig:advertisement} on esitetty eräs |
jolloin elämänpituus-arvoa voidaan tarvittaessa kasvattaa. Kuvassa \ref{fig:advertisement} on esitetty eräs |
194 |
JXTA-arkkitehtuurin mukainen mainos. |
JXTA-arkkitehtuurin mukainen mainos. |
195 |
|
|
221 |
|
|
222 |
Vertaissolmuryhmien olemassaoloon JXTA-arkkitehtuurin kehittäjät ovat löytäneet kolme motiivia: luottamuksellisen tiedon |
Vertaissolmuryhmien olemassaoloon JXTA-arkkitehtuurin kehittäjät ovat löytäneet kolme motiivia: luottamuksellisen tiedon |
223 |
siirto rajoitetussa ympäristössä, samanlaisten intressien jakaminen rajoitetussa ympärisössä sekä rajoitetun ympäristön |
siirto rajoitetussa ympäristössä, samanlaisten intressien jakaminen rajoitetussa ympärisössä sekä rajoitetun ympäristön |
224 |
monitorointi ja analsyointi. JXTA-verkossa on implisiittinen, koko verkon laajuinen World Peer Group-vertaissolmuryhmä |
monitorointi ja analysointi. JXTA-verkossa on implisiittinen, koko verkon laajuinen, World Peer Group-vertaissolmuryhmä |
225 |
(WPG), joka kattaa kaikki verkon vertaissolmut. Tämä ei kuitenkaan tarkoita sitä, että kaikki WGP-ryhmän vertaissolmut |
(WPG), joka kattaa kaikki verkon vertaissolmut. Tämä ei kuitenkaan tarkoita sitä, että kaikki WGP-ryhmän vertaissolmut |
226 |
voisivat löytää kaikki muut vertaissolmut. |
voisivat löytää kaikki muut vertaissolmut ja niiden palvelut. |
227 |
|
|
228 |
\section{Piiput (eng. Pipes)} |
\section{Piiput (eng. Pipes)} |
229 |
|
|
230 |
Piiput ovat asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. Piiput ovat myös virtuaalisia, piipun |
Piiput ovat virtuaalisia asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. Piippuja käyttävät |
231 |
kohde voidaan yhdistää yhteen tai useaan vertaissolmuun. Piippuja käyttävät JXTA-verkon palvelut sekä sovellukset. |
JXTA-verkon palvelut sekä sovellukset. |
232 |
|
|
233 |
Piippu yhdistetään yleensä ajonaikaisesti vertaissolmuun käyttäen piipun yhdistys protokollaa (eng. Pipe Binding |
Piippu yhdistetään yleensä ajonaikaisesti vertaissolmuun käyttäen piipun yhdistys protokollaa (eng. Pipe Binding |
234 |
Protocol). Yksittäinen piippu voidaan yhdistää eri aikoina eri vertaissolmuihin. Tämä on hyöydyllinen omainaisuus |
Protocol). Yksittäinen piippu voidaan yhdistää eri aikoina eri vertaissolmuihin. Tämä on hyöydyllinen omainaisuus |
235 |
silloin kun halutaan varmistaa järjestelmän toimivuus kriittisissä tilanteissa. Vioittunut vertaissolmu esimerkiksi |
silloin kun halutaan varmistaa järjestelmän toimivuus kriittisissä tilanteissa. Vioittunut vertaissolmu esimerkiksi |
236 |
verkossa voidaan korvata toisella toimivalla vertaissolmulla. |
voidaan korvata toisella toimivalla vertaissolmulla. |
237 |
|
|
238 |
Pisteestä-pisteeseen-piipulla (eng. Point-to-point pipe) voidaan yhdistää tasan kaksi vertaissolmua keskenään. Tällöin |
Pisteestä-pisteeseen-piipulla (eng. Point-to-point pipe) voidaan yhdistää tasan kaksi vertaissolmua keskenään. Tällöin |
239 |
piippu on ulosmeno-piippu lähettäjälle ja sisäänmeno-piippu vastaanottajalle. Liikenne on yksisuuntaista, lähettäjältä |
piippu on ulosmeno-piippu lähettäjälle ja sisäänmeno-piippu vastaanottajalle. Liikenne on yksisuuntaista, lähettäjältä |
243 |
\section{Resurssien kartoitus (eng. Universal Resource Binding and Rendezvous)} |
\section{Resurssien kartoitus (eng. Universal Resource Binding and Rendezvous)} |
244 |
|
|
245 |
JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka hoitaa verkon palveluihin liittyviä |
JXTA-verkossa käytetään universaalia päättäjä-palvelua (eng. Resolver), joka hoitaa verkon palveluihin liittyviä |
246 |
perustehtäviä. Näitä ovat esimerkiksi vertaissolmun nimen liittäminen IP-osoitteeseen, IP-pistorasian (eng. Socket) |
perustehtäviä. Näitä ovat esimerkiksi vertaissolmun nimen liittäminen IP-osoitteeseen, liittäjän (eng. Socket) |
247 |
liittäminen porttiin, palvelun löytäminen LDAP-hakemistopalvelun avulla ja tiedon etsintä hajautetussa |
liittäminen porttiin, palvelun löytäminen LDAP-hakemistopalvelun avulla ja tiedon etsintä hajautetussa |
248 |
tiedostojärjestelmässä (eng. Network Filesystem, NFS). Kaikki edellä mainitut operaatiot käyttävät JXTA-verkon mainoksia |
tiedostojärjestelmässä (eng. Network Filesystem, NFS). Kaikki edellä mainitut operaatiot käyttävät JXTA-verkon mainoksia |
249 |
hyväkseen. |
hyväkseen. |
265 |
\section{Peer Discovery Protocol} |
\section{Peer Discovery Protocol} |
266 |
|
|
267 |
|
|
268 |
Auttaa yksittäistä vertaissolmua löytämään mainoksia, toisia vertaissolmuja ja vertaissolmuryhmiä JXTA-verkossa. Jos |
Auttaa yksittäistä vertaissolmua löytämään mainoksia, toisia vertaissolmuja ja vertaissolmuryhmiä JXTA-verkosta. Jos |
269 |
vertaissolmun tai vertaissolmuryhmän nimeä ei ole määritelty, protokolla palauttaa kaikkia saatavilla olevat mainokset |
vertaissolmun tai vertaissolmuryhmän nimeä ei ole määritelty, protokolla palauttaa kaikki saatavilla olevat mainokset |
270 |
haun tuloksena. |
haun tuloksena. |
271 |
|
|
272 |
\section{Peer Resolver Protocol} |
\section{Peer Resolver Protocol} |
273 |
|
|
274 |
|
|
275 |
Mahdollistaa vertaissolmun lähettää ja vastaanottaa yleisiä kyselyitä vertaissolmuun, vertaissolmuryhmään, piippuihin |
Mahdollistaa vertaissolmun lähettää ja vastaanottaa yleisiä kyselyitä vertaissolmuun, vertaissolmuryhmään, piippuihin |
276 |
tai tietoon liittyen. Yleensä tämä protokolla on ainoastaan käytössä kohtauspaikka-vertaissolmuissa. |
tai resurssiin liittyen. Yleensä tämä protokolla on ainoastaan käytössä kohtauspaikka-vertaissolmuissa. |
277 |
|
|
278 |
\section{Peer Information Protocol} |
\section{Peer Information Protocol} |
279 |
|
|
280 |
|
|
281 |
Auttaa vertaissolmua ymmärtämään muiden vertaissolmujen palveluita sekä tiloja. Esimerkiksi vertaissolmu voi lähettää |
Auttaa vertaissolmua ymmärtämään muiden vertaissolmujen palveluita sekä tiloja. Esimerkiksi vertaissolmu voi lähettää |
282 |
testi-viestin (eng. Ping message) toiselle vertaissolmulle varmistaakseen, että onko kohteena ollut vertaissolmu |
testi-viestin (eng. Ping message) toiselle vertaissolmulle varmistaakseen, että onko kohteena ollut vertaissolmu |
283 |
saatavilla. |
saatavilla (eng. Available). |
284 |
|
|
285 |
\section{Peer Membership Protocol} |
\section{Peer Membership Protocol} |
286 |
|
|
300 |
|
|
301 |
|
|
302 |
Auttaa vertaissolmua kysymään reititin-vertaissolmulta (eng. Peer Router) polkuja kohde vertaissolmuun. Tämä on |
Auttaa vertaissolmua kysymään reititin-vertaissolmulta (eng. Peer Router) polkuja kohde vertaissolmuun. Tämä on |
303 |
hyödyllistä silloin, kun vertaissolmut ovat fyysisesti eri verkoissa tai kun palomuuri on vertaissolmujen välissä. |
hyödyllistä silloin, kun vertaissolmut ovat fyysisesti eri verkoissa tai kun palomuuri (NAT-tekniikka) on vertaissolmujen välissä. |
304 |
Vertaissolmu voi luoda itsestään reititin-vertaissolmun hyödyntämällä Peer Endpoint-tekniikkaa. |
Vertaissolmu voi luoda itsestään reititin-vertaissolmun hyödyntämällä Peer Endpoint-tekniikkaa. |
305 |
|
|
306 |
\chapter{Ohjelmistoarkkitehtuuri} |
\chapter{Ohjelmistoarkkitehtuuri} |
338 |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon hakemiseen, tiedon |
Palvelut-kerros laajentaa ydin-kerroksen palveluita. Palvelu-kerros tarjoaa palvelut tiedon hakemiseen, tiedon |
339 |
jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
jakamiseen, tiedon indeksointiin ja tiedon tallentamiseen. |
340 |
|
|
341 |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkko- |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkkosovelluksia. |
|
sovelluksia. |
|
342 |
|
|
343 |
\section{Sovellukset (eng. Applications)} |
\section{Sovellukset (eng. Applications)} |
344 |
|
|
345 |
|
|
346 |
JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita hyväksi. JXTA-sovelluksia voivat olla |
JXTA-sovellukset on rakenettu käyttäen ydin- ja palvelu-kerroksen palveluita hyväksi. JXTA-sovelluksia voivat olla |
347 |
esimerkiksi pikaviestimet, sähköposti- ja kalenteri-pavelut sekä resurssien hakuun tai siirtoon erikoistuneet |
esimerkiksi pikaviestimet, sähköposti- ja kalenteri-palvelut sekä resurssien hakuun tai siirtoon erikoistuneet |
348 |
sovellukset. |
sovellukset. |
349 |
|
|
350 |
\section{Esimerkki sovellus: Kuori (eng. JXTA Shell)} |
\section{Esimerkki sovellus: Kuori (eng. JXTA Shell)} |
351 |
|
|
352 |
|
|
353 |
Kuori on hyvä esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on interaktiivinen |
Kuori on esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on interaktiivinen |
354 |
komentorivipohjainen sovellus, samanlainen mitä yleimmät kuoret ovat Unix-järjestelmissä. Suurin ero Unix-kuoren ja |
komentorivipohjainen sovellus, samanlainen mitä yleisimmät kuoret ovat Unix-järjestelmissä. Suurin ero Unix-kuoren ja |
355 |
JXTA-kuoren välillä on se, että Unix-kuoren komennot on tarkoitettu suoritettavaksi paikallisessa ympäristössä, kun taas |
JXTA-kuoren välillä on se, että Unix-kuoren komennot on tarkoitettu suoritettavaksi paikallisessa ympäristössä, kun taas |
356 |
JXTA-kuoren komennot suoritetaan hajautetussa verkkoympäristössä. |
JXTA-kuoren komennot suoritetaan hajautetussa verkkoympäristössä. |
357 |
|
|
385 |
\end{figure} |
\end{figure} |
386 |
|
|
387 |
|
|
388 |
JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria \cite{Poblano}. Tiedon kuljettamiseen käytetään TSL 1.0-protokollaa ja |
JXTA-verkossa käytetään Poblano-tietoturva-arkkitehtuuria \cite{Poblano}. Poblanossa tiedon salaamiseen käytetään RSA 1024-, 3DES- ja SHA-1-algoritmeja |
389 |
tiedon salaamiseen RSA 1024-, 3DES- ja SHA-1-algoritmeja. TLS 1.0-protokollan on kehittänyt |
ja tiedonsiirtoon TLS 1.0-protokollaa. TLS 1.0-protokollan on kehittänyt |
390 |
Internet Engineering Task Forde (IETF) ja se on jatkokehitysversio aiemmin luodulle Secure Sockey Layer 3.0- |
Internet Engineering Task Forde (IETF) ja se on jatkokehitysversio aiemmin luodulle Secure Sockey Layer 3.0- |
391 |
protokolalle. TSL 1.0-protokolla on kaksisuuntainen ja tieto siirtyy JXTA-verkossa 16 kilotavun osissa. Koska |
protokolalle (SSL v3.0). TSL 1.0-protokolla on kaksisuuntainen, ja tieto siirtyy JXTA-verkossa 16 kilotavun osissa. Koska |
392 |
tiedonsiirtoväylä on kaksi suuntainen, pitää tiedonsiirron molemmat osapuolet pystyä tunnistamaan. Vertaissolmun pitää |
tiedonsiirtoväylä on kaksi suuntainen, pitää tiedonsiirron molemmat osapuolet pystyä tunnistamaan. Vertaissolmun pitää |
393 |
hankkia itselleen toisen vertaissolmun X509.V3-juuriserfifikaatti (eng. Root Certificate), jotta tiedonsiirto tapahtuisi |
hankkia itselleen toisen vertaissolmun X509.V3-juurisertifikaatti (eng. Root Certificate), jotta tiedonsiirto tapahtuisi |
394 |
turvallisesti. Sertifikaatti sisältää RSA 1024-algoritmin mukaisen julkisen avaimen, jonka avulla vertaissolmu voi |
turvallisesti. Sertifikaatti sisältää RSA 1024-algoritmin mukaisen julkisen avaimen, jonka avulla vertaissolmu voi |
395 |
tunnistaa X509.V3-palvelusertifikaatin yksityisen avaimen. TLS 1.0-protokolla käyttää palvelusertifikaatteja |
tunnistaa X509.V3-palvelusertifikaatin yksityisen avaimen. TLS 1.0-protokolla käyttää palvelusertifikaatteja |
396 |
vertaissolmujen tunnistamiseen. |
vertaissolmujen tunnistamiseen. |
397 |
|
|
398 |
Vertaissolmut voivat hankkia toisen vertaissolmun juurisertifikaatin itselleen kahdella eri tavalla. Ensimmäinen tapa on |
Vertaissolmut voivat hankkia toisen vertaissolmun juurisertifikaatin itselleen kahdella eri tavalla. Ensimmäinen tapa on |
399 |
levittää vertaissolmun juurisertifikaattia JXTA-verkon mainoksissa. Tämä ei kuitenkaan suositeltavaa, koska silloin |
levittää vertaissolmun juurisertifikaattia JXTA-verkon mainoksissa. Tämä ei kuitenkaan suositeltavaa, koska silloin |
400 |
"Mies keskellä"-hyökkäys (eng. Man In The Middle Attack, MITM) saattaa tapahtua. MITM-hyökkäys on käytännössä vaikea |
"Mies keskellä"-hyökkäys (eng. Man In The Middle Attack, MITM) saattaa tapahtua. MITM-hyökkäystä on käytännössä vaikea |
401 |
suorittaa, koska sertifikaatit on vahvasti salattuja. Toinen, turvallisempi tapa levittää juurisertifikaatteja on liitää |
suorittaa, koska sertifikaatit on vahvasti salattuja. Toinen, turvallisempi tapa levittää juurisertifikaatteja on liitää |
402 |
juurisertifikaatti binäärisen tiedon sekaan, jolloin MITM-hyökkäykset eivät olet mahdollisia. |
juurisertifikaatti binäärisen tiedon sekaan, jolloin MITM-hyökkäykset eivät olet mahdollisia. |
403 |
|
|
418 |
sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä nämä solmut ovat palvelimia, jotka pitävät yllä erilaisia |
sisältävät tarvittavat tiedot haun suorittamiseen. Yleensä nämä solmut ovat palvelimia, jotka pitävät yllä erilaisia |
419 |
hakemistoja verkossa liikkuvasta tiedosta ja tietoon liittyvistä solmuista. Ei-sisältöpohjaista hakutekniikkaa käyttävät |
hakemistoja verkossa liikkuvasta tiedosta ja tietoon liittyvistä solmuista. Ei-sisältöpohjaista hakutekniikkaa käyttävät |
420 |
esimerkiksi Napster- ja Gnutella-tiedostonjako-ohjelmat. Ei-sisältöpohjaisen haun etuina ovat haun nopeus sekä pieni |
esimerkiksi Napster- ja Gnutella-tiedostonjako-ohjelmat. Ei-sisältöpohjaisen haun etuina ovat haun nopeus sekä pieni |
421 |
verkon kuormitus. Heikkouksina voidaan pitää virheensietokykyä, laajennettavuutta sekä keskitettyä ylläpitoa. |
verkon kuormitus. Heikkouksina voidaan pitää virheensietokykyä, laajennettavuutta sekä keskitettyä ylläpitoa (Napster). |
422 |
|
|
423 |
Toinen tekniikka on nimeltään sisältöpohjainen haku (eng. Content-based Search). Sisältöpohjaisessa haussa haun kyselyä |
Toinen tekniikka on nimeltään sisältöpohjainen haku (eng. Content-based Search). Sisältöpohjaisessa haussa haun kyselyä |
424 |
(eng. Search Query) ohjataan haun sisällön perusteella verkon solmujen välillä. Jossain vaiheessa kysely ohjautuu |
(eng. Search Query) ohjataan haun sisällön perusteella verkon solmujen välillä. Jossain vaiheessa kysely ohjautuu |
425 |
verkossa oikealle solmulle, joka pystyy vastaamaan kyselyyn ja palauttamaan haun tulokseen. Esimerkkejä tietopohjaisesta |
verkossa oikealle solmulle, joka pystyy vastaamaan kyselyyn ja palauttamaan haun tulokseen. Esimerkkejä tietopohjaisesta |
426 |
hausta ovat (CAN) sekä Chord. Kun uusi solmu liittyy tietoverkkoon, jossa |
hausta ovat CAN sekä Chord. Kun uusi solmu liittyy tietoverkkoon, jossa |
427 |
käytetään tietopohjaista hakua, tulee solmun ensimmäiseksi luoda hakemisto (eng. Index) oman alueen (eng. Zone) |
käytetään sisältöpohjaista hakua, tulee solmun ensimmäiseksi luoda hakemisto (eng. Index) oman alueen (eng. Zone) |
428 |
mainoksista. Yksittäisten alueiden hakemisto-unioni muodostaa olemassa olevan verkon koko tietovaraston. Alue, joka |
mainoksista. Yksittäisten alueiden hakemisto-unioni muodostaa olemassa olevan verkon koko tietovaraston. Alue, joka |
429 |
uudellee solmulle varataan, on dynaaminen ja se rippuu verkon solmujen lukumäärästä sekä yksittäisten solmujen |
uudellee solmulle varataan, on dynaaminen ja se rippuu verkon solmujen lukumäärästä sekä yksittäisten solmujen |
430 |
poistumisesta verkosta tai liittymisestä verkkoon. Kun verkon solmu haluaa julkaista uuden mainoksen resurssiin tai |
poistumisesta verkosta tai liittymisestä verkkoon. Kun verkon solmu haluaa julkaista uuden mainoksen resurssiin tai |
431 |
tietoon liittyen, se tutkii mainoksen sisällön. Sisällön perusteella solmu osaa lähettää mainoksen verkossa oikeaan |
tietoon liittyen, se laskee mainokselle arvon sen sisällön perusteella. Mainoksesta lasketun arvon avulla solmut osaavat |
432 |
paikkaan. Hajautus on yleisin tapa laskea mainoksen paikka tietoverkossa. |
reitittää (eng. Routing) mainoksen oikeaan paikkaan verkossa. Hajautus (eng. Hashing) on yleisin tapa laskea tiedolle arvo tai tunniste |
433 |
|
sen sisällön perusteella. |
434 |
|
|
435 |
\section{Tiedonhaku JXTA-verkossa} |
\section{Tiedonhaku JXTA-verkossa} |
436 |
|
|
448 |
|
|
449 |
Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä mahdollistaa tehokkaat hakualgorimit sekä |
Tietoa voidaan hakea JXTA-verkossa joko syvyys- tai leveyssuunnassa. Tämä mahdollistaa tehokkaat hakualgorimit sekä |
450 |
vähentää verkon kuormitusta. Kun vertaissolmut julkaisevat mainoksia, ne tallennetaan keskitin-vertaissolmuihin. |
vähentää verkon kuormitusta. Kun vertaissolmut julkaisevat mainoksia, ne tallennetaan keskitin-vertaissolmuihin. |
451 |
Yksittäiset keskitin-vertaissolmut voivat ohjata kyselyjä toisiin keskitin-vertaissolmuihin. Lisäksi keskitin- |
Yksittäiset keskitin-vertaissolmut voivat ohjata kyselyjä toisiin keskitin-vertaissolmuihin. |
|
vertaissolmut voivat keskittyä maantieteellisesti sekä sisällön tai sovelluksen perusteella. |
|
452 |
|
|
453 |
JXTA-verkossa käytetään hakujen suorittamiseen Query Routing-protokollaa (QRP). Koska protokolla on XML-muotoinen |
JXTA-verkossa käytetään hakujen suorittamiseen Query Routing-protokollaa (QRP). Koska protokolla on XML-muotoinen |
454 |
viesti, on se kevyt ja yhteensopiva eri järjestelmien välillä. QRP koostuu kolmesta viestimuodosta, rekisteröinnistä |
viesti, on se kevyt ja yhteensopiva eri järjestelmien välillä. QRP koostuu kolmesta viestimuodosta, rekisteröinnistä |
491 |
vertaisverkkojärjestelmistä. Erityisesti JXTAn kehittynyt tietoturva-arkkitehtuuri mahdollistaa vertaisverkkosovellusten |
vertaisverkkojärjestelmistä. Erityisesti JXTAn kehittynyt tietoturva-arkkitehtuuri mahdollistaa vertaisverkkosovellusten |
492 |
käytön tilanteissa, joihin aiemmat vertaisverkkotekniikat eivät ole soveltuneet. |
käytön tilanteissa, joihin aiemmat vertaisverkkotekniikat eivät ole soveltuneet. |
493 |
JXTA-arkkitehtuuri auttaa sovelluskehittäjiä keskittymään olennaiseen. Ohjelmoijan ei tarvitse syventyä erilaisiin |
JXTA-arkkitehtuuri auttaa sovelluskehittäjiä keskittymään olennaiseen. Ohjelmoijan ei tarvitse syventyä erilaisiin |
494 |
yksityikohtiin, vaan voi heti alkaa kehittämään turvallisia ja tehokkaita ja ennen kaikkea hajautettuja sovelluksia |
yksityikohtiin, vaan hän voi heti aloittaa kehittämään turvallisia ja tehokkaita hajautettuja sovelluksia |
495 |
vertaisverkkoympäristöön |
vertaisverkkoympäristöön |
496 |
|
|
497 |
|
|
517 |
\bibitem{Gong 2001}Gong Li, ''JXTA: A Network Programming Environment'', |
\bibitem{Gong 2001}Gong Li, ''JXTA: A Network Programming Environment'', |
518 |
1089-7801/01 IEEE / IEEE Internet Computing May-June 2001 |
1089-7801/01 IEEE / IEEE Internet Computing May-June 2001 |
519 |
|
|
520 |
|
\bibitem{Joy} Joy B., ''The 6 Webs'', saatavilla WWW-muodossa |
521 |
|
<URL: \url{http://content.techweb.com/wire/story/TWB20000111S0009}>, viitattu 11.10.2002 |
522 |
|
|
523 |
\bibitem{Oram} Oram Andy, ''Harnessing the Power of Disruptive Technologies'', |
\bibitem{Oram} Oram Andy, ''Harnessing the Power of Disruptive Technologies'', |
524 |
O'Reilly, 2001 |
O'Reilly, 2001 |
525 |
|
|