SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
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
Î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
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
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
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
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
- 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
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
Numele relației      Conceptul     Cardinalit.        Conceptul      Cardinalit.   Realția inversă
                         sursă        sursei                 țintă      țintei
BelongsToCluster      Peer              0,1           PeerCluster        0...N      ContainsPeer
HasNieghbor           PeerCluster      0...N          PeerCluster        0...N      HasNeighbor
Describes             PeerProfile       1,1           Peer                1,1       HasPeerProfile
SendsTo               PeerQuery        1...N          Peer               1...N      SensFrom
ExportsRessources PeerProfile          0...1          PeerRessource      1...N      ExportedByPeer




      2.2 Codificarea în limbajul OWL


      Mai jos sunt prezentate părți din ontologie, codificată în limbajul OWL:


      <?xml version="1.0"?>


      <!DOCTYPE rdf:RDF [
            <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
            <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
            <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
            <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
      ]>


      <rdf:RDF
xmlns="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#"


xml:base="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl"
            xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
            xmlns:owl="http://www.w3.org/2002/07/owl#"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema#"

                                                  9
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <owl:Ontology
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl"/>




      // Object Properties


        <!--
http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster
-->

          <owl:ObjectProperty
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belon
gToCluster">
            <rdf:type rdf:resource="&owl;FunctionalProperty"/>
            <owl:inverseOf
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#co
ntainsPeer"/>
            <rdfs:domain>
               <owl:Restriction>
                  <owl:onProperty
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#bel
ongToCluster"/>
                  <owl:onClass
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe
er"/>
                  <owl:minQualifiedCardinality
rdf:datatype="&xsd;nonNegativeInteger">0</owl:minQualifiedCardinality>
               </owl:Restriction>
            </rdfs:domain>
            <rdfs:domain>
               <owl:Restriction>
                  <owl:onProperty
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#bel
ongToCluster"/>
                  <owl:onClass
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe
er"/>
                  <owl:maxQualifiedCardinality
rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxQualifiedCardinality>
               </owl:Restriction>
            </rdfs:domain>
                                           10
</owl:ObjectProperty>

      ........


      // Classes

        <!--
http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterBandwith
-->

          <owl:Class
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust
erBandwith">
             <rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe
erCluster"/>
          </owl:Class>

         <!--
http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterID -->

          <owl:Class
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust
erID">
             <rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe
erCluster"/>
          </owl:Class>

         <!--
http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Description -->

          <owl:Class
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Descr
iption">
            <rdfs:subClassOf
rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe
erCommunity"/>
          </owl:Class>

      ..............


                                           11
// General axioms


       <rdf:Description>
               <rdf:type rdf:resource="&owl;AllDisjointClasses"/>
               <owl:members rdf:parseType="Collection">
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#IsSup
perPeer"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Onlin
eState"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Peer
Quality"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Platfo
rmInUse"/>
               </owl:members>
           </rdf:Description>
           <rdf:Description>
               <rdf:type rdf:resource="&owl;AllDisjointClasses"/>
               <owl:members rdf:parseType="Collection">
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust
erBandwith"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust
erID"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Num
berOfPeers"/>
                   <rdf:Description
rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Num
berOfRedundancy"/>
               </owl:members>
           </rdf:Description>
       ............




                                           12
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

Mais conteúdo relacionado

Semelhante a Peer to-peer

Reteaua internet
Reteaua internetReteaua internet
Reteaua internetSima Sorin
 
Suport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiSuport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiGeorge Brebenel
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web08alesa
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIIMI PQ NET Romania
 
Reteaua internet
Reteaua internetReteaua internet
Reteaua internetliviupilot
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"Sabin Buraga
 
Programare Web - Arhitectura WWW
Programare Web - Arhitectura WWWProgramare Web - Arhitectura WWW
Programare Web - Arhitectura WWWSabin Buraga
 
2 Software Retele
2 Software Retele2 Software Retele
2 Software Reteleclcziprok
 
Programarea aplicațiilor distribuite
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite Dumitru Maros
 
Solutia Linux De Conectare La Internet
Solutia Linux De Conectare La InternetSolutia Linux De Conectare La Internet
Solutia Linux De Conectare La InternetMegaVjohnson
 

Semelhante a Peer to-peer (20)

Tcpip net ro
Tcpip net roTcpip net ro
Tcpip net ro
 
Reteaua internet
Reteaua internetReteaua internet
Reteaua internet
 
Suport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiSuport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetului
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web
 
6 protocoale de retea
6 protocoale de retea6 protocoale de retea
6 protocoale de retea
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMI
 
Reteaua internet
Reteaua internetReteaua internet
Reteaua internet
 
Informatica manageriala Afaceri Electronice Patrascu Mihaela Hanelore
Informatica manageriala  Afaceri Electronice Patrascu Mihaela HaneloreInformatica manageriala  Afaceri Electronice Patrascu Mihaela Hanelore
Informatica manageriala Afaceri Electronice Patrascu Mihaela Hanelore
 
Rețeaua Internet.ppt
Rețeaua Internet.pptRețeaua Internet.ppt
Rețeaua Internet.ppt
 
Rețeaua Internet.ppt
Rețeaua Internet.pptRețeaua Internet.ppt
Rețeaua Internet.ppt
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 
Programare Web - Arhitectura WWW
Programare Web - Arhitectura WWWProgramare Web - Arhitectura WWW
Programare Web - Arhitectura WWW
 
Tice usb 1
Tice usb 1Tice usb 1
Tice usb 1
 
2 Software Retele
2 Software Retele2 Software Retele
2 Software Retele
 
Programarea aplicațiilor distribuite
Programarea aplicațiilor distribuiteProgramarea aplicațiilor distribuite
Programarea aplicațiilor distribuite
 
Solutia Linux De Conectare La Internet
Solutia Linux De Conectare La InternetSolutia Linux De Conectare La Internet
Solutia Linux De Conectare La Internet
 
Snmp
SnmpSnmp
Snmp
 
Baze de date NoSQL
Baze de date NoSQLBaze de date NoSQL
Baze de date NoSQL
 
Stroia_Laurentiu
Stroia_LaurentiuStroia_Laurentiu
Stroia_Laurentiu
 

Peer to-peer

  • 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
  • 9. Numele relației Conceptul Cardinalit. Conceptul Cardinalit. Realția inversă sursă sursei țintă țintei BelongsToCluster Peer 0,1 PeerCluster 0...N ContainsPeer HasNieghbor PeerCluster 0...N PeerCluster 0...N HasNeighbor Describes PeerProfile 1,1 Peer 1,1 HasPeerProfile SendsTo PeerQuery 1...N Peer 1...N SensFrom ExportsRessources PeerProfile 0...1 PeerRessource 1...N ExportedByPeer 2.2 Codificarea în limbajul OWL Mai jos sunt prezentate părți din ontologie, codificată în limbajul OWL: <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY owl "http://www.w3.org/2002/07/owl#" > <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > ]> <rdf:RDF xmlns="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#" xml:base="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 9
  • 10. xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <owl:Ontology rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl"/> // Object Properties <!-- http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster --> <owl:ObjectProperty rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belon gToCluster"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <owl:inverseOf rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#co ntainsPeer"/> <rdfs:domain> <owl:Restriction> <owl:onProperty rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#bel ongToCluster"/> <owl:onClass rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe er"/> <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:minQualifiedCardinality> </owl:Restriction> </rdfs:domain> <rdfs:domain> <owl:Restriction> <owl:onProperty rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#bel ongToCluster"/> <owl:onClass rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe er"/> <owl:maxQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxQualifiedCardinality> </owl:Restriction> </rdfs:domain> 10
  • 11. </owl:ObjectProperty> ........ // Classes <!-- http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterBandwith --> <owl:Class rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust erBandwith"> <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe erCluster"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterID --> <owl:Class rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust erID"> <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe erCluster"/> </owl:Class> <!-- http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Description --> <owl:Class rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Descr iption"> <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Pe erCommunity"/> </owl:Class> .............. 11
  • 12. // General axioms <rdf:Description> <rdf:type rdf:resource="&owl;AllDisjointClasses"/> <owl:members rdf:parseType="Collection"> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#IsSup perPeer"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Onlin eState"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Peer Quality"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Platfo rmInUse"/> </owl:members> </rdf:Description> <rdf:Description> <rdf:type rdf:resource="&owl;AllDisjointClasses"/> <owl:members rdf:parseType="Collection"> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust erBandwith"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Clust erID"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Num berOfPeers"/> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Num berOfRedundancy"/> </owl:members> </rdf:Description> ............ 12
  • 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