[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.technology.ecomm] Re: Why the emphasis on P2P?

Abhay:

We are probably in violent agreement. I wanted a clarification of the proposal's position on the meaning of P2P.

I find, in general, that the appeal of P2P is as a user experience and is not really a statement about technology per se. If the servers recede into the background from the user's point of view, what do they care if there are servers present. Routers and directories are clear examples of servers that we no longer think of as servers because they have become network services that we take for granted. The real goal is to ensure that the user's experience is simple and not encumbered by details that are unimportant to the task at hand.

For some, P2P is a pure technological statement: no servers whatsoever, everything is done on the clients. As you point out, this works for small scale localized communications and becomes more difficult for large scale, widely distributed communications. To support such scaling, there are server assists of various sorts, but if we are clever, they don't disrupt the P2P user experience. Groove uses relay servers to overcome certain limitations. Rendezvous servers are needed to overcome firewall limitations. Registries are needed to deal with dynamic address assignments.

My other question had to do with whether the proposed work would incorporate assumptions of P2P and thereby preclude server-based approaches. Scott's answer makes it clear that he does not expect to preclude server-based approaches. The devil is always in the details, but I think Scott is right that it should be quite feasible to craft an API that supports both P2P and server-based implementations.

jfp

Abhay wrote:

Not really knowing what this implementation is ultimately going to be, I
am pouring my ideas of a small-world system and P2P. I am quite
interested in knowing how people visualize it working.

I guess emphasis on P2P would be to underline the absence of servers or
intermediaries for conversations; probably not only to avoid single
point of failure, but also to work in an independent/disconnected
environment. It's more about the ability of establishing an
un-administered group for information exchange; just like me and my
colleagues can initiate a conversation in hallway.

In my small world, P2P works great for me. My laptop has a physical
identity. I connect it to the network, I get a network identity, I can
find local peers and connect to them and exchange files.

Now here is a software that lets me do more than exchanging files in
small world. I can IM my friend and chat, may be ask him to review a
document as we chat or look at the errors in my code. It has a
mechanism that allows me find people with similar (software)
capabilities in my small world (local network) and connect to them.

In my small world, visible identity is chosen by the user; network
identity is unique and given by the software; identification is ad-hoc.
No one needs a CA's certificate, as either I know him or I can IM (or
walk to) the person and find out if he is John Doe in QA. Once
identified, he is on my peer-list. If there are two John Does I interact
with, I have named them as John-QA and JohnDoe. The software knows which
one is who as key here is the network identity.

I agree, as the peer-space grows, beyond my local network and beyond the
enterprise, I'll need directories and proxies. I also agree that the
identity and authentication issues become complicated.

At present, many of us use Yahoo/MSN IM etc or phone along with all the
dev-tools and IDEs to do collaborative tasks
(reviewing/editing/debugging etc). Groove comes close but it's not
integrated with my IDE and costs money. JavaGroups kind of things
provide the capabilities but there aren't any groovy apps on top of it.

Based on my current P2P/IM/Collaboration experience, I am totally in for
this kind of *serverless* plug-in for Eclipse. I can see how I would be
using File Sharing, Application Sharing, Instant Messaging/Chat, Web
Co-Browsing, Collaborative Modeling/Shared Editing immediately. I can
even imagine an open-source *Groove-y* app built with Eclipse/RCP.


-Abhay

John F. Patterson wrote:

I suppose this question takes several forms.

1) What do you mean by P2P?
In my experience this is a very misleading term. At a system level it seems to indicate a desire to avoid the use of servers, presumably to avoid single point of failure. As a practical matter, most P2P systems are dependent on servers if only as directories.


At the programming level, P2P simply means that the programmer does not need to worry about servers. Often as not, this is because the servers have become part of the presumed infrastructure. We certainly treat TCP/IP that way, since we rarely ask whether the routers are there. We just assume they are.

At the user level, P2P often just means that the user does not have to think about the server. Presumably, the application hides the use of servers. (And the administration of the servers is so reliable that no one ever sees the difference: :-) )

2) Given your focus on virtualization, why do you care about P2P?
Ideally, our virtualization of conferencing would be agnostic about whether we have a server-based implementation or not. So, why raise the issue?


Are you uncertain that a single virtualization can embrace both server-based and P2P implementations of conferencing?

3) Is it possible that P2P means only two participants in a conference?
The general view of a conference is that it is a multi-point communication context. Clearly, things get a little more difficult when you start to worry about more than two participants. Is it possible that you are using the term P2P to indicate a lack of interest in conferences that involve more than two participants?


4) Given some of the services you indicate an interest in supporting, I am surprised that you use the term P2P at all?
You indicate an interest in authentication, presence/awareness, and provisioning. Aren't these usually server-based services? Is it a goal of the effort to ensure that these services can be made peer-to-peer as well?