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?