Download Report - Jan Hosang

Transcript
Abstract
Communications for the business and academic world is increasingly
taking to the digital highways of the internet. As yet though, there is no
easy way for a group of peers to collaborate together on a design project
involving diagrams being analysed and reworked. This project addresses
that issue in attempting to create a distributed system that allows a group
of people to connect over the internet and collaborate on a drawing.
The construction of the Tabula application was the result of the Distributed Doodling project. The application aims to provide the desired
chat and drawing solution for collaborations by multiple users. To aid
the construction of the application, the Qt framework was chosen to support the GUI development while RakNet was found to provide the desired
network functionality. Qt provides many useful widgets that greatly simplified development and the signals and slots system creates an easy to use
method for connection possible user actions (pressing a button for example) to a function. RakNet provides permits for the layering of some TCP
like features over a UDP connection, greatly reducing the overheads that
would have been associated with using TCP. Overall the architecture has
been designed to be highly extensible in anticipation of future functionality
being added.
Custom ‘Events’ have been designed to represent actions of the user;
this may include drawing an object or sending a text chat message. To
keep a record of these Event objects a logging system has been developed
which uses a unique logical timestamp system to allow every Event to be
identified and ordered. This uses vectors of logical timestamps to identify
each system and avoid local clock synchronisation issues. A user action
will cause the logical clock in that users system to tick with other users
system clocks being updated when they receive the Event. So that sessions
can be saved and restored, XML is used to save the history of the session
to hard disk.
Live drawing was an interesting addition to the application, allowing
users to see other members of the conversation drawing in real time. This
also allowed us to take full advantage of the optional TCP like features on
the UDP connection that was being used. Temporary events allow users to
see objects being manipulated remotely however if a few of these are lost
of arrive out of order, it is not important. Therefore, for these temporary
events we were able to use a standard UDP connection, again lowering the
necessary bandwidth. A peer to peer network system is built ontop of our
enhanced UDP connection, creating a robust connection between all peers
with the ability to reconnect peers if an intermediate system fails.
The application provides a solution that has not previously existed.
Testing on the log system shows that it is able to operate faster than a
high speed network can deliver events from multiple users. The application
has been a success as far as reaching the key, and many of the advanced
requirements are concerned. There remain some advanced requirements
that could be implemented and there are highly complex features that
could be added that were always considered beyond the goals of the project.
The GUI may be considered a ‘contractual GUI’ in that it looks very simple
and minimal and possibly work by a professional designer could help it look
more appealing.
2