1 |
%*********************** |
%*********************** |
2 |
% Käytetään gradu2-tyyliluokkaa |
% Käytetään gradu2-tyyliluokkaa |
3 |
%*********************** |
%*********************** |
4 |
\documentclass[a4paper,12pt]{gradu2} |
\documentclass[a4paper,12pt, shortthesis]{gradu2} |
5 |
|
|
6 |
\usepackage[T1]{fontenc} |
\usepackage[T1]{fontenc} |
7 |
\usepackage[finnish]{babel} |
\usepackage[finnish]{babel} |
56 |
%*********************** |
%*********************** |
57 |
|
|
58 |
|
|
59 |
\chapter{Johdanto} |
\section{Johdanto} |
60 |
|
|
61 |
Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on järjestelmäkokonaisuus, jonka avulla vertaisverkoissa |
Tämä tutkielma käsittelee JXTA-vertaisverkkoarkkitehtuuria. Se on järjestelmäkokonaisuus, jonka avulla vertaisverkoissa |
62 |
voidaan siirtää tiedostoja, keskustella, jakaa työpöytiä ja hakea tietoa. JXTA poikkeaa useista muista |
voidaan siirtää tiedostoja, keskustella, jakaa työpöytiä ja hakea tietoa. JXTA poikkeaa useista muista |
68 |
5, 6 ja 7 keskitytään JXTA-järjestelmän ominaisuuksiin. Luku 8 käsittelee tiedonhakua vertaisverkossa. |
5, 6 ja 7 keskitytään JXTA-järjestelmän ominaisuuksiin. Luku 8 käsittelee tiedonhakua vertaisverkossa. |
69 |
|
|
70 |
|
|
71 |
\chapter{Vertaisverkot ja JXTA} |
\section{Vertaisverkot ja JXTA} |
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 |
90 |
tiedostonjako-ohjelmistoja, jotka pohjautuvat enemmän vertaisverkkoideologiaan \cite{Oram}, \cite{Zeropaid}. |
tiedostonjako-ohjelmistoja, jotka pohjautuvat enemmän vertaisverkkoideologiaan \cite{Oram}, \cite{Zeropaid}. |
91 |
|
|
92 |
|
|
93 |
\chapter{JXTA-projekti} |
\section{JXTA-projekti} |
94 |
|
|
95 |
\section{Yleistä} |
\subsection{Yleistä} |
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 |
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 |
|
|
104 |
\section{Tavoiteet} |
\subsection{Tavoiteet} |
105 |
|
|
106 |
|
|
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. |
130 |
|
|
131 |
\end{itemize} |
\end{itemize} |
132 |
|
|
133 |
\chapter{JXTA-arkkitehtuuri} |
\section{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 |
149 |
|
|
150 |
Seuraavissa kappaleissa esitellään JXTAn verkkoarkkitehtuurin tärkeimmät ominaisuudet. |
Seuraavissa kappaleissa esitellään JXTAn verkkoarkkitehtuurin tärkeimmät ominaisuudet. |
151 |
|
|
152 |
\section{Verkkolaitteiden tunnistus (eng. Uniform Peer Addressing)} |
\subsection{Verkkolaitteiden tunnistus (eng. Uniform Peer Addressing)} |
153 |
|
|
154 |
|
|
155 |
Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet tunnistetaan JXTA-arkkitehtuurin mukaisessa |
Uniform Peer Addressing on tekniikka, jonka avulla verkon laitteet tunnistetaan JXTA-arkkitehtuurin mukaisessa |
161 |
laiterajapinnan, laite A voi valita parhaan tiedonsiirtokäytännön laitteen B kanssa. |
laiterajapinnan, laite A voi valita parhaan tiedonsiirtokäytännön laitteen B kanssa. |
162 |
|
|
163 |
|
|
164 |
\section{Viestit (eng. Messages)} |
\subsection{Viestit (eng. Messages)} |
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 |
177 |
viestin lähettäjä ja vastaanottaja. Tunniste voi olla esimerkiksi digitaalinen allekirjoitus, joka määrittää viestin |
viestin lähettäjä ja vastaanottaja. Tunniste voi olla esimerkiksi digitaalinen allekirjoitus, joka määrittää viestin |
178 |
lähteen. |
lähteen. |
179 |
|
|
180 |
\section{Mainokset (eng. Advertisements)} |
\subsection{Mainokset (eng. Advertisements)} |
181 |
|
|
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 |
203 |
|
|
204 |
|
|
205 |
|
|
206 |
\section{Vertaissolmu (eng. Peer)} |
\subsection{Vertaissolmu (eng. Peer)} |
207 |
|
|
208 |
|
|
209 |
JXTA-verkko koostuu vertaissolmuista. Vertaissolmu voi olla tietokone, kämmentietokone tai langaton puhelin. |
JXTA-verkko koostuu vertaissolmuista. Vertaissolmu voi olla tietokone, kämmentietokone tai langaton puhelin. |
210 |
Vertaissolmun pitää osata keskustella muiden vertaissolmujen kanssa JXTA-arkkitehtuurin mukaisten protokollien avulla. |
Vertaissolmun pitää osata keskustella muiden vertaissolmujen kanssa JXTA-arkkitehtuurin mukaisten protokollien avulla. |
211 |
|
|
212 |
\section{Vertaissolmuryhmät (eng. Peer Groups)} |
\subsection{Vertaissolmuryhmät (eng. Peer Groups)} |
213 |
|
|
214 |
|
|
215 |
JXTA-verkossa voi muodostua vertaissolmuryhmiä. Vertaissolmuryhmät ovat virtuaalisia konaisuuksia, jotka koostuvat |
JXTA-verkossa voi muodostua vertaissolmuryhmiä. Vertaissolmuryhmät ovat virtuaalisia konaisuuksia, jotka koostuvat |
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 ja niiden palvelut. |
voisivat löytää kaikki muut vertaissolmut ja niiden palvelut. |
227 |
|
|
228 |
\section{Piiput (eng. Pipes)} |
\subsection{Piiput (eng. Pipes)} |
229 |
|
|
230 |
Piiput ovat virtuaalisia asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. Piippuja käyttävät |
Piiput ovat virtuaalisia asynkronisia kanavia, joiden kautta viestejä lähetetään JXTA-verkossa. Piippuja käyttävät |
231 |
JXTA-verkon palvelut sekä sovellukset. |
JXTA-verkon palvelut sekä sovellukset. |
240 |
vastaanottajalle. Levittäytyvät-piiput (eng. Propagate pipe) pystyvät yhdistämään usean vertaissolmun laiterajapinnat |
vastaanottajalle. Levittäytyvät-piiput (eng. Propagate pipe) pystyvät yhdistämään usean vertaissolmun laiterajapinnat |
241 |
keskenään. |
keskenään. |
242 |
|
|
243 |
\section{Resurssien kartoitus (eng. Universal Resource Binding and Rendezvous)} |
\subsection{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, liittäjän (eng. Socket) |
perustehtäviä. Näitä ovat esimerkiksi vertaissolmun nimen liittäminen IP-osoitteeseen, liittäjän (eng. Socket) |
258 |
mainosten löytämiseen sekä koukkuja (eng. Hooks), joita voidaan käyttää hyväksi ylemmän tason mainosten etsintään. |
mainosten löytämiseen sekä koukkuja (eng. Hooks), joita voidaan käyttää hyväksi ylemmän tason mainosten etsintään. |
259 |
|
|
260 |
|
|
261 |
\chapter{Protokollat} |
\section{Protokollat} |
262 |
|
|
263 |
Tässä kappaleessa on esitelty JXTA-verkon pääprotokollat. |
Tässä kappaleessa on esitelty JXTA-verkon pääprotokollat. |
264 |
|
|
265 |
\section{Peer Discovery Protocol} |
\subsection{Peer Discovery Protocol} |
266 |
|
|
267 |
|
|
268 |
Auttaa yksittäistä vertaissolmua löytämään mainoksia, toisia vertaissolmuja ja vertaissolmuryhmiä JXTA-verkosta. 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 kaikki 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} |
\subsection{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 resurssiin 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} |
\subsection{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 (eng. Available). |
saatavilla (eng. Available). |
284 |
|
|
285 |
\section{Peer Membership Protocol} |
\subsection{Peer Membership Protocol} |
286 |
|
|
287 |
|
|
288 |
Mahdollistaa yksittäisen vertaissolmun tulla vertaissolmuryhmän jäseneksi, luoda hakemus vertaissolmuryhmään |
Mahdollistaa yksittäisen vertaissolmun tulla vertaissolmuryhmän jäseneksi, luoda hakemus vertaissolmuryhmään |
290 |
tietoja. |
tietoja. |
291 |
|
|
292 |
|
|
293 |
\section{Pipe Binding Protocol} |
\subsection{Pipe Binding Protocol} |
294 |
|
|
295 |
|
|
296 |
Mahdollistaa vertaissolmun liittää piipun mainos piipun kohteeseen. |
Mahdollistaa vertaissolmun liittää piipun mainos piipun kohteeseen. |
297 |
|
|
298 |
|
|
299 |
\section{Peer Endpoint Protocol} |
\subsection{Peer Endpoint Protocol} |
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 (NAT-tekniikka) 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} |
\section{Ohjelmistoarkkitehtuuri} |
307 |
|
|
308 |
|
|
309 |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen, ytimeen, palveluihin ja |
JXTA-teknologian ohjelmistoarkkitehtuuri jakaantuu kolmeen päällekkäiseen kerrokseen, ytimeen, palveluihin ja |
323 |
|
|
324 |
Seuraavissa kappaleissa käsitellään JXTAn ohjelmistoarkkitehtuurin eri kerroksia. |
Seuraavissa kappaleissa käsitellään JXTAn ohjelmistoarkkitehtuurin eri kerroksia. |
325 |
|
|
326 |
\section{Ydin (eng. Core)} |
\subsection{Ydin (eng. Core)} |
327 |
|
|
328 |
|
|
329 |
JXTAn ydin tarjoaa peruspavelut vertaissolmu-palveluille sekä -sovelluksille. Turvallinen suoritusympäristö, |
JXTAn ydin tarjoaa peruspavelut vertaissolmu-palveluille sekä -sovelluksille. Turvallinen suoritusympäristö, |
332 |
Ytimessä on tuki myös anonyymeille tai rekisteröityneille käyttäjille sekä salatulle tai ei-salatulle tiedolle. |
Ytimessä on tuki myös anonyymeille tai rekisteröityneille käyttäjille sekä salatulle tai ei-salatulle tiedolle. |
333 |
|
|
334 |
|
|
335 |
\section{Palvelut (eng. Services)} |
\subsection{Palvelut (eng. Services)} |
336 |
|
|
337 |
|
|
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 |
340 |
|
|
341 |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkkosovelluksia. |
Palvelu-kerros sisältää lisäksi tietoturvapalveluita, joiden avulla voidaan rakentaa turvallisia vertaisverkkosovelluksia. |
342 |
|
|
343 |
\section{Sovellukset (eng. Applications)} |
\subsection{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-palvelut 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)} |
\subsection{Esimerkki sovellus: Kuori (eng. JXTA Shell)} |
351 |
|
|
352 |
|
|
353 |
Kuori on esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on interaktiivinen |
Kuori on esimerkki JXTA-arkkitehtuurin päälle rakennetusta sovelluksesta. Kuori on interaktiivinen |
360 |
järjestelmissä. Kuoren omainaisuuksiin kuuluu "piiputus", (vertaa edelleen perinteiset Unix-järjestelmät), jonka avulla |
järjestelmissä. Kuoren omainaisuuksiin kuuluu "piiputus", (vertaa edelleen perinteiset Unix-järjestelmät), jonka avulla |
361 |
tietyn komennon vaste voidaan antaa toisen komennon syötteeksi. |
tietyn komennon vaste voidaan antaa toisen komennon syötteeksi. |
362 |
|
|
363 |
\chapter{Tietoturva JXTA-arkkitehtuurissa} |
\section{Tietoturva JXTA-arkkitehtuurissa} |
364 |
|
|
365 |
|
|
366 |
Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon salaamista. Luottamus, koskemattomuus ja |
Kuten muissakin tietojärjestelmissä, myös vertaisverkoissa tarvitaan tiedon salaamista. Luottamus, koskemattomuus ja |
409 |
perustajan yksityisellä juurisertifikaatti-avaimella. |
perustajan yksityisellä juurisertifikaatti-avaimella. |
410 |
|
|
411 |
|
|
412 |
\chapter{Tiedonhaku vertais- ja JXTA-verkoissa} |
\section{Tiedonhaku vertais- ja JXTA-verkoissa} |
413 |
|
|
414 |
\section{Tiedonhaku vertaisverkoissa} |
\subsection{Tiedonhaku vertaisverkoissa} |
415 |
|
|
416 |
Tiedon hakeminen hajautetussa vertaisverkossa voidaan jakaa kahteen eri osaan \cite{Botros}. Ensimmäinen, ei-sisältöpohjainen haku |
Tiedon hakeminen hajautetussa vertaisverkossa voidaan jakaa kahteen eri osaan \cite{Botros}. Ensimmäinen, ei-sisältöpohjainen haku |
417 |
(eng. Content-agnostic Search), pohjautuu menetelmään, jossa tarkoituksena on löytää verkosta muita solmuja, jotka |
(eng. Content-agnostic Search), pohjautuu menetelmään, jossa tarkoituksena on löytää verkosta muita solmuja, jotka |
432 |
reitittää (eng. Routing) mainoksen oikeaan paikkaan verkossa. Hajautus (eng. Hashing) on yleisin tapa laskea tiedolle arvo tai tunniste |
reitittää (eng. Routing) mainoksen oikeaan paikkaan verkossa. Hajautus (eng. Hashing) on yleisin tapa laskea tiedolle arvo tai tunniste |
433 |
sen sisällön perusteella. |
sen sisällön perusteella. |
434 |
|
|
435 |
\section{Tiedonhaku JXTA-verkossa} |
\subsection{Tiedonhaku JXTA-verkossa} |
436 |
|
|
437 |
Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä XML-pohjaisiin viesteihin. Kuvassa \ref{fig:searchtopology} on esitetty |
Haku JXTA-verkoissa pohjautuu keskitin-solmuihin (eng. Hub Peer) sekä XML-pohjaisiin viesteihin. Kuvassa \ref{fig:searchtopology} on esitetty |
438 |
JXTA-verkon verkkotopologia tiedonhaun yhteydessä. |
JXTA-verkon verkkotopologia tiedonhaun yhteydessä. |
484 |
\label{fig:searchprovider} |
\label{fig:searchprovider} |
485 |
\end{figure} |
\end{figure} |
486 |
|
|
487 |
\chapter{Yhteenveto} |
\section{Yhteenveto} |
488 |
|
|
489 |
JXTA-projektin tuotoksena on syntynyt monipuolinen vertaisverkkojärjestelmä. Avoimuus, tietoturva, sovellusten |
JXTA-projektin tuotoksena on syntynyt monipuolinen vertaisverkkojärjestelmä. Avoimuus, tietoturva, sovellusten |
490 |
yhteensopivuus sekä laitteistoriippumattomuus ovat asioita, jotka erottavat JXTA-arkkitehtuurin muista |
yhteensopivuus sekä laitteistoriippumattomuus ovat asioita, jotka erottavat JXTA-arkkitehtuurin muista |
499 |
%*********************** |
%*********************** |
500 |
% Viitteet |
% Viitteet |
501 |
%*********************** |
%*********************** |
|
|
|
502 |
\begin{thebibliography}{88} |
\begin{thebibliography}{88} |
503 |
|
|
504 |
\bibitem{Botros} Botros Sherif, Waterhouse Steve, ''Search in JXTA and Other Distributed Networks'', |
\bibitem{Botros} Botros Sherif, Waterhouse Steve, ''Search in JXTA and Other Distributed Networks'', |