20
SUSTAV RAVNOPRAVNIH ČVOROVA ZA RAZMJENU DATOTEKA ZAVRŠNI RAD LUKA RAJČEVIĆ

P2P file sharing

Embed Size (px)

Citation preview

Page 1: P2P file sharing

SUSTAV RAVNOPRAVNIH ČVOROVA ZA RAZMJENU DATOTEKA

ZAVRŠNI RADLUKA RAJČEVIĆ

Page 2: P2P file sharing

Sadržaj

• P2P mreže– Uvod– Razvoj– Podjela– Etičnost i legalnost

• Aplikacijsko rješenje

Page 3: P2P file sharing

Uvod u P2P mreže 1/3

• Sustav ravnopravnih čvorova podrazumijeva umrežavanje i komunikaciju računala na način da ne postoji centralno računalo na koje se svi ostali spajaju, nego je svako računalo:

„inteligentna i ravnopravna stanica u mreži sposobna pronaći druga računala i izravno s njima komunicirati, bez potrebe autorizacije na nekom centralnom poslužitelju“

[ „Peer-to-peer computing: Principles and Applications“, Quang Hieu Vu, Mihai Lupu, Beng Chin Ooi]

Page 4: P2P file sharing

Uvod u P2P mreže 2/3

• Najbitniji aspekti P2P sustava:– Simetričnost uloga

• Svaki sudionik u sustavu obično ima ulogu i servera.

– Skalabilnost• P2P sustavi se mogu skalirati na tisuće čvorova. Mogu

koristiti snagu svih računala u mreži bez potpune povezanosti čvorova.

– Heterogenost• P2P sustavi mogu biti heterogeni u smislu hardvera koji

čvorovi koriste. Čvor može biti sporo i staro računalo ali isto tako može biti i superračunalo.

Page 5: P2P file sharing

Uvod u P2P mreže 3/3– Distribuirana kontrola• U svojoj najstrožoj definiciji P2P zahtjeva da sve bude

decentralizirano. Idealno, niti jedna centralizirana struktura ne bi smjela postojati

– Dinamičnost• P2P aplikacije rade u jako dinamičnoj okolini. Dolazak i

odlazak čvorova konstantno mijenja topologiju mreže.

Page 6: P2P file sharing

Razvoj P2P mreža

• Arpanet– Mreža dizajnirana za dijeljenje računalnih resursa i dokumenata

između američkih istraživačkih ustanova.• 3 generacije razvoja

– 1. generacija• oko 1999. godine, centralizirana arhitektura• Napster

– 2. generacija• decentralizirana arhitektura• Gnutella

– 3. generacija• Izgrađena na optimiziranim verzijama mreža prethodnih generacija• Friend to friend mreže

Page 7: P2P file sharing

Podjela P2P mreža

• Najjednostavniji način podjele P2P mreža je na slijedeće 3 kategorije:– 1. Centralizirani P2P sustavi– 2. Decentralizirani P2P sustavi– 3. Hibridni P2P sustavi

Page 8: P2P file sharing

Centralizirani P2P sustavi

• Baš kao i kod klijent - server arhitekture postoji jedan ili više središnjih servera koji pomažu čvorovima u pronalasku željenih podataka

• Upit se šalje centralnom računalu međutim po primitku odgovora, direktno komunicira s drugim čvorovima

• Napster

Centralizirani P2P sustav

Page 9: P2P file sharing

Decentralizirani P2P sustavi

• U potpuno decentraliziranoj arhitekturi, ne postoji centralizirani server niti drugi „istaknutiji“ član mreže (superčvor) koji bi koordinirao svim ostalim čvorovima i upravljao operacijama među njima

• Čvorovi imaju jednaka prava i obveze. Na taj način nijedan čvor nije superioran drugome

• Dijele se na:– Nestrukturirane– Strukturirane

• Gnutella

Decentralizirani P2P sustav

Page 10: P2P file sharing

Hibridni P2P sustavi

• Koriste sve prednosti drugih P2P arhitektura, tj. centraliziranih i decentraliziranih

• Kod nekih P2P sustava hibridne arhitekture postoje čvorovi koji posjeduju više kapaciteta i imaju više odgovornosti od ostalih čvorova. Ti čvorovi se nazivaju superčvorovi

• superčvor je dužan indeksirati sve datoteke koje se nalaze u njegovom dijelu mreže te održavati ga ažuriranim

Hibridni P2P sustav

Page 11: P2P file sharing

Etičnost i legalnost

• P2P, kao arhitektura, je u potpunosti legalna i kao takva se može koristiti za preuzimanje podataka koji se nalaze na računalima drugih korisnika (internetu)

• Dosta često korištena u nelegalne svrhe– npr. preuzimanje datoteka za koje nema autorskog prava

• Ugašeni servisi i zabrana rada mnogim web stranicama (megaupload, limewire..)

• Torrenti

Kampanja protiv Napster servisa

Page 12: P2P file sharing

Aplikacijsko rješenje

• Korištene tehnologije:– .NET platforma– Programski jezik C#– WCF tehnologija– MSSQL baza podataka

Page 13: P2P file sharing

.NET platforma

• .NET je platforma razvijena od strane Microsofta i prvenstveno se koristi na Windows operacijskom sustavu

• Platforma uključuje veliku biblioteku klasa i omogućava interoperabilnost programskih jezika.

• Programi napisani u .NET platformi se izvršavaju u programskom okruženju zvanom CLR – Common

.NET Logo

Page 14: P2P file sharing

C#

• Objektno-orijentirani viši programski jezik• Razvio ga Microsoft za potrebe .NET platforme• Trenutna verzija je 5.0• Kao razvojno okruženje korišten je

Microsoftov Visual Studio 2010

C# programski jezik

Page 15: P2P file sharing

WCF

• Razvojna platforma i sustav za izradu, konfiguriranje i razvoj mrežnih distribuiranih servisa

• Jedan od najnovijih servisno-orijentiranih tehnologija. • Jedna od glavnih karakteristika WCF-a je interoperabilnost

Način korištenja WCF servisa

Page 16: P2P file sharing

MSSQL baza podataka

• Za kreiranje baze je korišten MSSQL Server 2012

• ERA model baze podataka je slijedeći

ERA model baze podataka

Page 17: P2P file sharing

Klijentska aplikacija

• Prikaz klasa:

Klase korištene u aplikaciji

Page 18: P2P file sharing

Zaključak

• P2P mreže i aplikacije koje ju koriste dovele su do revolucije u razmjeni datoteka

• Korisnici aktivno sudjeluje u dijeljenju vlastitih resursa internetom

• Dolazi do pojave veće potražnje privatnih korisnika za širokopojasnim internetom sa velikim download i upload brzinama

• P2P se dovodi u mnoge rasprave o etičnosti i legalnosti

Page 19: P2P file sharing

Literatura

• “Sustav ravnopravnih čvorova za razmjenu datoteka”, Završni rad, Luka Rajčević, 2012, FOI.

Reference[1] http://wiki.ipfire.org/_media/de/networking/networking_networktopologies.png[2] http://upload.wikimedia.org/wikipedia/en/0/0d/Microsoft_.NET_Framework_v4.5_logo.png[3] http://upload.wikimedia.org/wikipedia/commons/0/0d/C_Sharp_wordmark.svg[4] http://upload.wikimedia.org/wikipedia/en/b/ba/Visual-Studio-2012-logo.svg[5] http://relentlessdevelopment.files.wordpress.com/2010/03/wcf-usage-diagram.jpg