Re: Peer To Peer Design
Re: Peer To Peer Design
- Subject: Re: Peer To Peer Design
- From: David Remahl <email@hidden>
- Date: Mon, 27 Jan 2003 08:03:49 +0100
On Monday, January 27, 2003, at 04:12 AM, Roarke Lynch wrote:
On Sunday, January 26, 2003, at 11:55 AM, Jaime Magiera wrote:
I'm a little late on this thread (been working hard)...
In true Peer-to-Peer, there isn't an intermediary server to route the
requests. Each app is both client and server, who can talk to each
other directly. Many so-called P2P apps aren't really, since they use
a routing server. You knock out the main server, you loose the
ability to communicate.
I'm writing as P2P app right now. It's called ThoughtConduit. It
really wasn't to difficult -- You write some server code to receive
data, you write some of code to send data. Right now, TC data is
passed as SOAP messages.
* We are also creating a routing app in WebObjects that can offer
many of the desktop features to users logged in at the site. This is
just to support those who would sacrifice true P2P for the
convenience of doing transactions through the browser.
Jaime
It might not be that difficult, but I'm looking for the place to
start. I understand the basic concept, but have no idea on the
implementation. I've read a bit of code on simple c sprockets and all
but I have a feeling that there is more to the design of a scalable
and secure peer to peer relation. Got any pointers?
Roarke Lynch
Roarke,
You could/should certainly use C sprockets - that will be robust
enough, but what you really need to study and think about is the
underlaying network layout. There are several different ways of
creating (more or less) scalable peer to peer networks. Academic
reports are as usual a very good source for information on the computer
science side of things. Chord is one good design:
<
http://citeseer.nj.nec.com/stoica01chord.html>
Achord is a variation of Chord, if the anonymity of each node is
important:
<
http://thalassocracy.org/achord/achord-iptps.html>
Freenet is another design:
<
http://citeseer.nj.nec.com/376655.html>
and Gnutella yet another:
<
http://people.cs.uchicago.edu/~matei/PAPERS/gnutella-rc.pdf>
Note that these links are simply samples of what Google comes up with,
with natural search strings. There is a lot of free information
available on the net, and these may serve as good starting points for
your explorations. There are also many free or open source
implementations of the various networks (freenet and gnutella are both
free, for example).
In conclusion, the biggest and most important part of creating a p2p
network, is not the implementation (because that can be changed /
enhanced at any time) but the design. The design must be scalable in
itself, and mathematically feasible for perhaps 10 000 nodes or 1 000
000 nodes. You should decide what your requirements are, and then make
sure that the design can handle them.
/ Regards, David Remahl
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.