Peer to-peer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Peer to-peer

on

  • 2,290 views

 

Statistics

Views

Total Views
2,290
Views on SlideShare
2,290
Embed Views
0

Actions

Likes
0
Downloads
33
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Peer to-peer Document Transcript

  • 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 dela premisa împărțirii si încărcării egale între toți participanții (noduri). Acestenoduri au privilegii egale și au rol de participanți egali în cadrul unei aplicații. Sespune ca formează o rețea peer-to-peer de noduri. Nodurile fac ca o parte a resurselor, cum ar fi puterea de procesare, destocare pe disc sau lățimea de bandă a rețelei să fie disponibila în mod directcelorlalți participanți la la rețea, fără a se mai simți nevoia de coordonare la nivelcentral din partea serverelor sau a host-urilor dedicate. Nodurile sunt atat furnizoricît și consumatori de resurse, în contrast cu modelul tradițional client-server undenumai serverele au rol de furnizor și clienții de consumatori. 11 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 sauprelucrari distribuite, fară a se face distinctia între client si server. Codulcorespunzător proceselor peer-to-peer va avea rolul de a menține consistențaresurselor de la nivelul aplicației și de a sincroniza acțiunile de la nivelul aplicațieidacă este necesar. În figura 1 este prezentată o astfel de arhitectură, formată din treiprocese 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 aferentecomunicării inter-procese pentru accesarea obiectelor locale. De exemplu, oaplicaț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 autoturismrealizată 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 pefiecare nod care se va baza pe straturile middleware pentru a realiza notificareaevenimentelor și comunicarea în cadrul grupului pentru a înştiinţa toate proceseleaplicaţiei despre eventuala modificare a schiţei. Acest model oferă o comunicareinteractivă mai bună (cu timpi de răspuns mai buni) pentru utilizatorii unui obiectdistribuit 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 șiintimitatea utilizatorului. Cu toate acestea, procesarea interogărilor în sistemelepeer-to-peer actuale este inficientă. Această ineficiență apare deoarece cele maimulte sisteme peer-to-peer creează o suprapunere aleatoare a rețelei undeinterogările sunt transmise orbește de la un nod la altul. Ca o alternativă s-a propus un sistem peer-to-peer rigid, unde plasareaconținutului pe nodurile de rețea se realizează cu ajutprul unei funcții hash, făcândastfel 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 decăutare), ele nu sunt la fel de eficiente în cazul interogărilor unde se caută aaproxima 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 dela celelalte noduri. 22 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-peernestructurate și rețele peer-to-peer structurate. În cazul rețelelor nestructurate nu există vreun nod anume cu rolul de înorganizarea sistemului. Rețeaua se organizează după cum evoluează evenimenteledin cadrul acesteia. Două noduri ce mențin o conexiune se numesc vecini (neighbors). Un nodpoate avea unul sau mai mulți vecini, numărul acestor vencini se numesteoutdegrees. Într-un sistem peer-to-peer nestructurat mesajele (interogările saurezultatele 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, nodulacestuia 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, fiecaredintre ele conține un nod special, denumit super-nod (super-peer). Toate nodurilede 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 alegrupului senumește cluster. Daca legatura din super-nodurile din grupuri diferite seintrerupe, atunci tot clusterul este deconectat unul față de celălalt. În cazul sistemelor peer-to-peer structurate, plasarea resurselor și a noduriloreste strâns legată de structura rețelei. Pentru localizarea nodurilor și resurselor seutilizează 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 întelesurisemantice, cum ar fi Alice@Brittney.popular.music. Rețelele peer-to-peersemantice păstrează sensurile semantice ale nodurilor și conținutul acestora.Nodurile (peer) din cadrul reșelei peer-to-peer semantice pot comunica între eleprin diferite limbi. Rețeaua peer-to-peer semantica poate executa interogăricomplicate, asemănătoare limbajului SQL. Peer-to-peer Roaming Service Peer-to-peer roaming este un nou serviciu ce constă în câteva serviciiprestate 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 nivelfizic. 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 untabel de corespondență pentru a mapa reprezentarea logică cu cea fizică a nodului. Nivelul “Platform Layer” reprezintă platforma respectivă și conține tehnicipentru a gestiona sistemul. Caracteristicile fiecărei platforme sunt păstrate atât timpcât este posibil. 2. Ontologie pentru rețelele peer-to-peer 2.1 Ontologia propusă Pentru a construi ontologia, trebuie utilizată o metodologie adecvată. Întabelul următor se prezintă conceptul în limbajul OWL. Nume concept AtributPeerCommunity -PeerComID -PeerComdesignation -DescriptionPeerCluster -ClusterID -NumberOfPeers -NumberOfRedundancy -ClusterBandwith 7
  • 8. PeerProfile -OnlineState -PlatformInUse -PeerQuality -IsSupperPeerPeerPlatformProfile -PeerUpBandwith -PeerDownBandwith -PeerPlatformID -PeerTypeMachine -PlatformIDPeerRessource -PeerRessourceID -PeerRessourceType -PeerRessourceURIPeer PeerIDPeerQuery -QueryID -PeerQuerryContent -QueryType Pentru fiecare atribut, se definește o restricție în funcție de tipul sau valorilece le poate conține. Restricțiile sunt parte din limbajul OWL și sunt folosite înfuncț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ă ținteiBelongsToCluster Peer 0,1 PeerCluster 0...N ContainsPeerHasNieghbor PeerCluster 0...N PeerCluster 0...N HasNeighborDescribes PeerProfile 1,1 Peer 1,1 HasPeerProfileSendsTo PeerQuery 1...N Peer 1...N SensFromExportsRessources 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:RDFxmlns="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:Ontologyrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl"/> // Object Properties <!--http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster--> <owl:ObjectPropertyrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <owl:inverseOfrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#containsPeer"/> <rdfs:domain> <owl:Restriction> <owl:onPropertyrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster"/> <owl:onClassrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Peer"/> <owl:minQualifiedCardinalityrdf:datatype="&xsd;nonNegativeInteger">0</owl:minQualifiedCardinality> </owl:Restriction> </rdfs:domain> <rdfs:domain> <owl:Restriction> <owl:onPropertyrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#belongToCluster"/> <owl:onClassrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Peer"/> <owl:maxQualifiedCardinalityrdf: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:Classrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterBandwith"> <rdfs:subClassOfrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#PeerCluster"/> </owl:Class> <!--http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterID --> <owl:Classrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterID"> <rdfs:subClassOfrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#PeerCluster"/> </owl:Class> <!--http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Description --> <owl:Classrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#Description"> <rdfs:subClassOfrdf:resource="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#PeerCommunity"/> </owl:Class> .............. 11
  • 12. // General axioms <rdf:Description> <rdf:type rdf:resource="&owl;AllDisjointClasses"/> <owl:members rdf:parseType="Collection"> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#IsSupperPeer"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#OnlineState"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#PeerQuality"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#PlatformInUse"/> </owl:members> </rdf:Description> <rdf:Description> <rdf:type rdf:resource="&owl;AllDisjointClasses"/> <owl:members rdf:parseType="Collection"> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterBandwith"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#ClusterID"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#NumberOfPeers"/> <rdf:Descriptionrdf:about="http://www.semanticweb.org/ontologies/2011/0/Ontology1295544181218.owl#NumberOfRedundancy"/> </owl:members> </rdf:Description> ............ 12
  • 13. 3. Tehnologia JXTA JXTA (Justapose) reprezintă un set de specificații open-source a protocoluluipeer-to-peer, început de Sun Microsistems în 2001. Protocoalele JXTA suntdefinite ca un set de mesaje XML, care permit oricărui dispozitiv conectat la oreț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 ainteracționa cu alte noduri, chiar daca unele dintre ele se situează în spatele unorfirewall-uri sau utilizează protocoale de rețea diferite. În plus, fiecare resursă poatefi identificată de un ID unic de 160 biți, astfel încăt un nod poate să-și schimbelocalizarea în rețea păstrându-și un număr de identificare constant. 13