AG logo
Visualising an AG venue server with VenueList
penguin logo


Overview

The conventional mechanism to enter an access grid room with the VenueClient tool is to enter the venue's Lobby, then navigate to the desired room via some path. That path is either known beforehand or is easy to determine e.g. educational institution rooms tend to be accessed via an "Educational Lobby". Alternatively, the room may be in the VenueClient's hotlist (the "My Venues" menu).

Finding a room by navigation can be quite tedious, especially if the room is several steps away from the main Lobby. This is probably one of the reasons that most servers' room layouts are quite shallow.

It would sometimes be helpful to have the room's direct link to paste  into the VenueClient's address bar. Sometimes it would help just to have a better understanding of where a particular room is situated. As an example, did you know that University of Manchester appears in the Network Service Providers Lobby, rather than the Educational Institutions Lobby of the IVS server? Check the IVS view below to confirm it.

VenueList visits all the rooms (
to which it has access) at a particular venue server, collecting enough information at each room to be able to generate a connectivity map of the entire venue server. The dot program interprets this information and generates a layout of the rooms in a commonly viewable format.


Another possible use (for server developers/maintainers) of VenueList is as a server exerciser. This mode doesn't save any connectivity information, rather it visits every room and then starts again when complete, looping forever unless stopped.


Downloads

The VenueList program is not yet ready for download; there are still some things to do (see below)

The dot program for generating layouts in various formats is part of the Graphviz toolkit.
(Also, Graphviz as a Slackware package)


Method

The VenueList.py script interrogates (interviews?) a specified room for all of its connected rooms/lobbies. It then interrogates all the connected rooms for more connections, continuing in this manner until all connected rooms have been found. All of the connection information is then output as a dot input file.

Firstly, the command:
    python VenueList.py -u https://vv2.ap-accessgrid.org:8000/Venues/default
will produce the file workfile.dot

The dot program can now be used to generate a viewable file e.g.
    dot workfile.dot -Tps -o workfile.ps
will generate a postscript output, while
    dot workfile.dot -Tpng -o workfile.png
will generate a PNG bitmap file

The dot program generates layout of a particular style. Other layout styles are possible using other programs from the Graphviz toolkit, such as neato, twopi, circo and fdp. See the Graphviz documentation for further details.


Views 

Here are some sample VenueList outputs as SVG images;



Also, as PNG images (not so good for large images):

Note that the images may have unusual aspect rations e.g. 19807x639 for the IVS image. Some manipulation within the image viewer may be necessary. As an example - using eog (eye of the gnome), the default size option is "Fit", whereas I find it useful to select the "Normal" option instead.


TODO

Adjust spacing between ranks, depending on node count in a particular rank
Recognise return connections and specify them as a single line rather than 2 separate lines,
    although maybe separate lines are more obvious (esp long for lines)
Recognise duplicate room names (esp. the "default" room)
Greater attention to duplicated connections
What if a different server is referenced? Is that possible? Should we follow the remote reference and possibly map the world?
Output as "imagemap" so clicking on a node drives a VenueClient to that room represented by the node
Investigate other layouts & layout tools. Is a 3D layout useful?
Better error recovery & reporting
Add a search facility e.g. find "Lapland Room" & put it in centre of screen & highlight it


Acknowledgements

Andrew Rowley of University of Manchester made available a Python script which would maintain presence in a room to prevent media stream addresses being dynamically reallocated.

The AccessGrid project



Comments and questions regarding this content to Chris Willing, email: willing at itee dot uq dot edu dot au