1. Peer-to-peer SEMANTIC
Tololoi Cătălin-Constantin, Ceornei Constantin
Facultatea de informatică
Abstract: Se dorește prezentarea tipului de reșea peer-to-peer și
caracteristicile acesteia. Pentru acest tip de comunicare în rețea s-a contruit o
ontologie ce descri participanții si atributele acestora.
Cuvinte cheie: Peer-to-peer, Semantic, OWL, JXTA
1. Rețele peer-to-peer
1.1 Aspecte generale ale rețelelor peer-to-peer
Rețelele peer-to-peer sunt o arhitectură de aplicații distribuite ce pornesc de
la premisa împărțirii si încărcării egale între toți participanții (noduri). Aceste
noduri au privilegii egale și au rol de participanți egali în cadrul unei aplicații. Se
spune ca formează o rețea peer-to-peer de noduri.
Nodurile fac ca o parte a resurselor, cum ar fi puterea de procesare, de
stocare pe disc sau lățimea de bandă a rețelei să fie disponibila în mod direct
celorlalți participanți la la rețea, fără a se mai simți nevoia de coordonare la nivel
central din partea serverelor sau a host-urilor dedicate. Nodurile sunt atat furnizori
cît și consumatori de resurse, în contrast cu modelul tradițional client-server unde
numai serverele au rol de furnizor și clienții de consumatori. 1
1
http://en.wikipedia.org/wiki/Peer-to-peer
1
2. În arhitectura peer-to-peer toate procesele joaca roluri similare,
interactionând în mod colaborativ ca perechi în vederea realizării unei activități sau
prelucrari distribuite, fară a se face distinctia între client si server. Codul
corespunzător proceselor peer-to-peer va avea rolul de a menține consistența
resurselor de la nivelul aplicației și de a sincroniza acțiunile de la nivelul aplicației
dacă este necesar. În figura 1 este prezentată o astfel de arhitectură, formată din trei
procese peer-to-peer, însa pot exista n procese care să interacționeze între ele.
Figura nr. 1 – Arhitectura peer-to-peer
Eliminarea proceselor server determină reducerea întârzierilor aferente
comunicării inter-procese pentru accesarea obiectelor locale. De exemplu, o
aplicație poate fi concepută astfel încât să permita utilizatorilor să afițeze și să
modifice interactiv o schiță (de exemplu schița unui proiect pentru un autoturism
realizată cu un program special, de exemplu AUTOCAD) care este partajată. A
2
3. Aplicația poate fi implementată sub forma unor procese aplicație plasate pe
fiecare nod care se va baza pe straturile middleware pentru a realiza notificarea
evenimentelor și comunicarea în cadrul grupului pentru a înştiinţa toate procesele
aplicaţiei despre eventuala modificare a schiţei. Acest model oferă o comunicare
interactivă mai bună (cu timpi de răspuns mai buni) pentru utilizatorii unui obiect
distribuit partajat decât în cazul unei arhitecturi bazate pe server.
Sistemele peer-to-peer au crescut dramatic în ultimii ani. Acestea oferă
potențial pentru un cost scăzut pentru împărțirea informațiilor, autonomie și
intimitatea utilizatorului. Cu toate acestea, procesarea interogărilor în sistemele
peer-to-peer actuale este inficientă. Această ineficiență apare deoarece cele mai
multe sisteme peer-to-peer creează o suprapunere aleatoare a rețelei unde
interogările sunt transmise orbește de la un nod la altul.
Ca o alternativă s-a propus un sistem peer-to-peer rigid, unde plasarea
conținutului pe nodurile de rețea se realizează cu ajutprul unei funcții hash, făcând
astfel localizarea ulterioară a unui anumit conținut. Deși astfel de sisteme oferă
performanțe bune pentru interogări punctuale (unde se cunoaște exact cheia de
căutare), ele nu sunt la fel de eficiente în cazul interogărilor unde se caută a
aproxima sau interogări ce au ca scop găsirea unor fragmente de text. În plus,
nodurile nu sunt dispuse, în general, să accepte conexiuni sau conținut arbitrar de
la celelalte noduri. 2
2
infolab.stanford.edu/~crespo/publications/op2p
3
4. 1.2 Clasificarea rețelelor peer-to-peer
Rețelele peer-to-peer se clasifică în două mari categorii: rețele peer-to-peer
nestructurate și rețele peer-to-peer structurate.
În cazul rețelelor nestructurate nu există vreun nod anume cu rolul de în
organizarea sistemului. Rețeaua se organizează după cum evoluează evenimentele
din cadrul acesteia.
Două noduri ce mențin o conexiune se numesc vecini (neighbors). Un nod
poate avea unul sau mai mulți vecini, numărul acestor vencini se numeste
outdegrees. Într-un sistem peer-to-peer nestructurat mesajele (interogările sau
rezultatele acestora) sunt dirijate de-a lungul unei conexiuni deschise. Prin urmare,
dacă nu există o conexiune deschisă între cele două noduri, mesajul trebuie să
parcugă o cale ce trece prin alte noduri ce sunt considerați ca fiind o punte.
La nivelul nodurilor, dacă un un utilizator trimite o interogare, nodul
acestuia va deveni un nod sursă ce va trimite introgarea tuturor vecinilor săi.
Într-un sistem super-peer-to-peer, rețeaua este împărțită în grupuri, fiecare
dintre ele conține un nod special, denumit super-nod (super-peer). Toate nodurile
de grup sunt conectate la acest super-nod iar acesta este conectat la alte super-
noduri din alte grupuri. Grupul format din super-nod si celelalte noduri membre ale
grupului senumește cluster. Daca legatura din super-nodurile din grupuri diferite se
intrerupe, atunci tot clusterul este deconectat unul față de celălalt.
În cazul sistemelor peer-to-peer structurate, plasarea resurselor și a nodurilor
este strâns legată de structura rețelei. Pentru localizarea nodurilor și resurselor se
utilizează o funcție hash (Distributed Hash Table). Acestă funcție garantează
localizarea fișierului sau a nodului, daca acesta este conecatat.
4
5. 1.3 Rețelele peer-to-peer semantice
Rețelele peer-to-peer semantice reprezintă un nou tip de rețea peer-to-peer.
Acestea combină avantajele rețelelor peer-to-peer nestructurate și rețelele peer-to-
peer structurate, evitând în același timp dezavantajele acestora. În rețelele peer-to-
peer semantice nodurile sunt clasificate ca nume de domenii DNS cu întelesuri
semantice, cum ar fi Alice@Brittney.popular.music. Rețelele peer-to-peer
semantice păstrează sensurile semantice ale nodurilor și conținutul acestora.
Nodurile (peer) din cadrul reșelei peer-to-peer semantice pot comunica între ele
prin diferite limbi. Rețeaua peer-to-peer semantica poate executa interogări
complicate, asemănătoare limbajului SQL.
Peer-to-peer Roaming Service
Peer-to-peer roaming este un nou serviciu ce constă în câteva servicii
prestate de un peer pentru a permite:
- O navigare ușoară în cadrul unui sistem peer-to-peer, asemănător cu
telefonia mobilă. Prin urmare, un peer poate participa la mai multe
sisteme peer-to-peer;
- Exportarea meta-datelor către mai multe sisteme simultan.
Figura 2 arată arhitectura globală:
5
6. Figura nr. 2 – Arhitectura globală
Structura peer-ului de pe nivelul “Platform Layer” se mai numește și nivel
fizic.
Nivelul “Roaming Layer” oferă următoarele servicii:
- Interceptarea interogărilor de tip “JoinQuery”. Acestă interogare este
transmisă de alte noduri pentru a se alătura fiecare platformă;
- Interceptarea interogării “AddRessource”. Acesta este făcută de către
utilizator cu scopul de a publica unele resurse;
- Stabilirea unei conexiuni între nodul logic și cel fizic. Acesta se face
prin maparea unui ID global cu unul local;
6
7. - Depozitarea profilului nodului respectictiv ca document OWL. Acesta
permite folosirea acestuia pe o altă platformă sau cu aceeași platformă
în alt moment.
Pentru fiecare platformă este asociat un wrapper special. Acesta folosește un
tabel de corespondență pentru a mapa reprezentarea logică cu cea fizică a nodului.
Nivelul “Platform Layer” reprezintă platforma respectivă și conține tehnici
pentru a gestiona sistemul. Caracteristicile fiecărei platforme sunt păstrate atât timp
cât este posibil.
2. Ontologie pentru rețelele peer-to-peer
2.1 Ontologia propusă
Pentru a construi ontologia, trebuie utilizată o metodologie adecvată. În
tabelul următor se prezintă conceptul în limbajul OWL.
Nume concept Atribut
PeerCommunity -PeerComID
-PeerComdesignation
-Description
PeerCluster -ClusterID
-NumberOfPeers
-NumberOfRedundancy
-ClusterBandwith
7
8. PeerProfile -OnlineState
-PlatformInUse
-PeerQuality
-IsSupperPeer
PeerPlatformProfile -PeerUpBandwith
-PeerDownBandwith
-PeerPlatformID
-PeerTypeMachine
-PlatformID
PeerRessource -PeerRessourceID
-PeerRessourceType
-PeerRessourceURI
Peer PeerID
PeerQuery -QueryID
-PeerQuerryContent
-QueryType
Pentru fiecare atribut, se definește o restricție în funcție de tipul sau valorile
ce le poate conține. Restricțiile sunt parte din limbajul OWL și sunt folosite în
funcție de sintaxa sa.
Următorul tabel conține relația dintre conceptele create; se indică
cardinalitatea sursei si a țintei, numele relației și inversa sa.
8
13. 3. Tehnologia JXTA
JXTA (Justapose) reprezintă un set de specificații open-source a protocolului
peer-to-peer, început de Sun Microsistems în 2001. Protocoalele JXTA sunt
definite ca un set de mesaje XML, care permit oricărui dispozitiv conectat la o
rețea de a schimba mesaje și de a colabora independent de topologia rețelei.
Nodurile JXTA crează o rețea suprapusă virtual care permite unui nod de a
interacționa cu alte noduri, chiar daca unele dintre ele se situează în spatele unor
firewall-uri sau utilizează protocoale de rețea diferite. În plus, fiecare resursă poate
fi identificată de un ID unic de 160 biți, astfel încăt un nod poate să-și schimbe
localizarea în rețea păstrându-și un număr de identificare constant.
13