Upload
luka-rajcevic
View
535
Download
2
Embed Size (px)
Citation preview
SUSTAV RAVNOPRAVNIH ČVOROVA ZA RAZMJENU DATOTEKA
ZAVRŠNI RADLUKA RAJČEVIĆ
Sadržaj
• P2P mreže– Uvod– Razvoj– Podjela– Etičnost i legalnost
• Aplikacijsko rješenje
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]
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.
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.
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
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
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
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
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
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
Aplikacijsko rješenje
• Korištene tehnologije:– .NET platforma– Programski jezik C#– WCF tehnologija– MSSQL baza podataka
.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
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
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
MSSQL baza podataka
• Za kreiranje baze je korišten MSSQL Server 2012
• ERA model baze podataka je slijedeći
ERA model baze podataka
Klijentska aplikacija
• Prikaz klasa:
Klase korištene u aplikaciji
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
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
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