Final Year Project (Dissertation)


An Investigation Into Load Balancing for Distributed Virtual Environments




Technologies Used:

Java, Observer Pattern, Network Connection Manager

My final year project aimed to evaluate different designs and methodologies for distributing load in a virtual environment, identifying a preferred solution and demonstrating its effectiveness in the eventual design and implementation phase.

After reviewing the language and platform options available, I set out to design a high performance game server network. This involved determining which languages were best suited to on line/web development based on speed of deployment; server performance; portability; flexibility and out of the box language support.

During my research I looked at an array of static and dynamic techniques. One of my favoured options was based on heat diffusion, a method proposed by Deng, Y. and Lau, R. (2010). This is a very powerful system, however, it does have flaws that can be minimised using other load balancing and network optimisation techniques.

Due to time constraints, a large portion of the code base was eventually written in Java, a language syntactically similar to my primary language C++. However this can be slow at performing certain operations, and in future development the intention is to consider porting the system to a hybrid C++/Python set up.


Source Code (Download)