A Scalable and Secure Peer-to-Peer
Information Sharing Tool
Collaboration Technologies Group
Distributed Systems Department
Computational Research Division
Lawrence Berkeley National Laboratory
|Home||Progress Reports||People||Publications and Presentations||Software|
Reporting period - This report covers work completed September 2002 - December 2002
Work on the scalable and secure peer-to-peer information sharing tool project focused on two primary areas this quarter: refining the overall design, and the initial prototype implementation.
The overall design of the project software can be decomposed into two components: resource discovery and information-sharing. This design has allowed us to more easily separate the workload among the project participants.
As part of the general resource discovery we have designed and implemented a messaging framework. Some specific accomplishments include:
On the information-sharing portion of the project, we have worked on a graphical user interface and the application logic. We have implemented a graphical user interface in Java using the Swing framework. The interface allows the user to:
- created an XML schema that includes query and response messages (queryMsg and queryResponseMsg), a way to describe services used to access information (serviceDescription), and an extensible way to describe information (itemDescription).
- created a framework for instantiating services from a service description
- implemented the HTTP service and added it to the service instantiation framework
- implemented methods to automatically generate file descriptions
- implemented a basic agent that sends query messages and waits for responses
- implemented a basic node that receives query messages and sends responses
- used the service instantiation framework in the agent and node to start services based on an XML preference file
- enabled information discovery between two hosts using the HTTP service for communication
We have completed the first stage of the initial prototype implementation. This first stage includes a fully working subset of the initial prototype features outlined above. Through the Java GUI the user is able to search and retrieve files on a remote system. In the first stage implementation the GUI only interacts with the agent component. A node component is run on a remote machine. The node component uses a makeshift database that returns information about files on a web server filesystem. The search results received by the client direct the client to obtain the file from the web server when it is chosen for download. This constricts the search to one remote filesystem and uses an out-of-band server to retrieve the data.
- search for files by specifying a portion of a file name
- download a file whose metadata was returned as a result of a search
- view the status of the transfer process for files that have been selected for download
Future Plans (next quarter)
- make use of the InterGroup protocols to create an InterGroup service and use it for sending query information
- add an SQL database back-end (mySQL) for storing metadata information
- allow the user to pause, resume and restart the transfer of files
- save the application state when the GUI is closed and reload that information on the next startup
- start adding the ability to share files from the GUI application
- explore potential collaborations
- begin design of the security infrastructure
Contact: Webmaster <firstname.lastname@example.org>
Credits: A Scalable and Secure Peer-to-Peer Information Sharing Tool research and development is funded by the U.S. Dept. of Energy, Office of Science, Office of Advanced Scientific Computing Research, Mathematical, Information, and Computational Sciences Division; Support Credits identify the funding sources and the organizational context of the work described in this document.