From melc@fashionvictims.com Wed Apr 3 11:40:34 2002 From: melc@fashionvictims.com (Ihor Kuz) Date: Wed, 3 Apr 2002 13:40:34 +0200 (CEST) Subject: A P2P file-sharing uberclient Message-ID: Hi everyone, As part of our cp2pc project we have started to design and develop a P2P file-sharing uberclient. This uberclient is a single client application that can publish, download and search for files on multiple P2P file-sharing networks. So, for example, a file published using the uberclient will be published on multiple networks, similarly, performing a search using the uberclient will perform searches on multiple networks. Besides the final application, a major goal of our project is to define a unified file-sharing API. This is an API that abstracts the concepts involved in P2P file-sharing and allows various different networks to be accessed through the same interface. So far we've studied a number of existing networks (Gnutella, mnet, Chord/CFS, JXTA, GDN) and their clients to get a good idea of what different kinds of file-sharing networks do and how they work. Based on these studies we've drafted a design document describing a unified file-sharing application and have designed a preliminary unified file-sharing API. The design documents (and more info about the project) are available at: http://www.cs.vu.nl/pub/globe/cp2pc/ Our next step is to implement the API for a number of existing P2P file-sharing systems. Before starting with the implementations, however, we would like comments and feedback about our proposed application and API from the people who are intimately familiar with actual P2P file-sharing systems (both from a networking perspective as well as from an application programmer perspective). Are there concepts and/or functions that don't map well onto some existing systems? are there things we've overlooked? or just misunderstood? Do you have any good ideas that can be incorporated into an uberclient? We are especially interested in comments about open issues such as: whether to have a synchronous or asynchronous API, how to represent file attributes and search results (XML, RDF, etc.), how to configure individual networks, etc. Hope to hear from you, Ihor. (PS I'm cross-posting this to the bluesky and p2p-hackers lists)