Overview
The P2P Application Framework builds upon our existing developments (the JXTA Network Module and Interactive Help Desk) to produce a platform for the rapid development of P2P applications.
Developed P2P applications have frequently been styled to be Instant Messenger, File Sharing or Computational systems. Although these have all illustrated the potential of P2P technology, they do seem to represent only a very narrow range of possible application domains. One probable reason for this lack of variety is due to the difficulty of developing P2P applications; developers typically need to grasp the fundamentals of the underlying P2P technology that is to be used. Given that such technology is often quite complex and also seems to be constantly evolving, this can make the prospect of developing P2P applications quite daunting.
The P2P Application Framework that has been developed aims to overcome this difficulty by providing developers with a simple platform for P2P application development. With the framework developers do not need to know or understand how the underlying P2P technology functions, as this is all handled by the framework. Instead developers can focus on developing their P2P applications (hereafter referred to as plugins).
Two important characteristics of the framework are that it is generic and adaptable. Plugins are not hard coded into the framework and so can be added and deleted at will. This is achieved via two aspects: 1) a common reflection based interface is provided between the framework and plugins, and 2) a generic data model is used throughout the system. In particular for the latter there is a generic representation for a resource within the network.
The framework also models itself on a semi-centralised logical network structure, akin to systems like Napster. Both the Server and Client peers can have plugins if required. For example, the developed Instant Messenger Plugin only resides on the client peers, as users communicate to one another directly. However a computational plugin may desire to utilise a server-side plugin to distribute workpackages/collate results.

The framework itself provides a set of generic services that are available to plugins. These include:
All these services are encapsulated within a Swing front end that provides the user with the ability to perform searches, maintain a contact list, utilise plugins etc. The screenshots below illustrate this.
STATUS: The first fully working version of the P2P Application Framework is ready for release, pending completion of documentation. The first release, however, will only be supported locally (within the department). After it has been successfully deployed then supporting it outside of the university will be considered
Screenshots (click to enlarge)
Framework
Front-end Searching for resources Transferring a file
Plugins
Instant Messenger File Sharing Noughts and Crosses Distributed Paper Database