The visualizer tool shows a graphical representation of a peer to peer network. The graph displays peers and their local files as nodes and the edges represent connections between the peers. The graph evolves over time as peers come online, go offline, connect to each other and download files.
It reads in output logs from the peer to peer network simulation and can play the events forwards or backwards both real time or sped up. Furthermore using the scrub bar at the bottom, the visualizer can jump to specific points in time through the simulation.
There are also options to filter the way the graph is displayed; from cutting off peers with too few connections, to collapsing documents to better see which peers are sharing the same material.
Implemented in part and hopefully expanded in the future is the ability to connect with both a Real-Time copy of the simulation and potentially the ability to connect with U-P2P clients and display a network graph of the real peer to peer network.
To download the source or a runnable copy of the program see the github page for the project.
How it Works
The Visualizer can open and read information from specially formatted files parsed from the logs of the simulation. Using these logs it creates a list of events in chronological order and adds in a couple events specific to the visualizer for display purposes. A graph is formed based on all of these events and is laid out using JUNG’s graph layout feature. After the file is read and the graph set up, the program runs through the list at the specified speed (real time to 100x.) Each time a peer comes online a new node is added to a reference graph, the respective node in the visual graph is then displayed on the screen.
The process is similar for XML type graphs, however the XML graphs have been saved from the visualizer itself. These XML files contain records of peers and documents and all events which will happen in the future.
For more information on how the files used in the visualization process are formatted, a sample of the mentioned file types can be found here.
To display the graph, and perform graph layouts, the JUNG framework was used.
Go to Resources page