VISUALIZATION OF DISTRIBUTED ALGORITHMS FOR EDUCATIONAL PURPOSES
Project no. 758 · Status: Kapanmış · 2016
Summary
A distributed system is considered as a set of computers communicating through the network and running collaboratively to coordinate their activities and to share the resources of the system to achieve a common goal. The coordination is achieved by exchanging messages, which carry information. Distributed algorithms play a crucial role in this coordination. However, teaching and learning distributed algorithms is difficult due to the inherent complexities of the distributed systems. Since it is costly to construct a network of computers to run distributed algorithms to conduct research, teach and learn, many commercial and freely available open source simulation tools have been developed for simulating network systems and hence, distributed systems. These tools facilitate the development of distributed algorithms for different environments. One of these tools is OMNET++, which is a component-based C++ simulation library and framework for building network simulators and offers a graphical runtime environment. To facilitate the understanding of the working mechanism, a distributed system can be modeled as a graph. Each computer in the distributed system is represented by a vertex, called node and a link between two computers is represented by an edge. Hereby, many graph algorithms can be utilized within a distributed system. Visualization of distributed algorithms is important both for learning of and for finding the bugs in distributed algorithms. For this reason, to teach distributed algorithms and to show how a distributed system works, 7 fundamental distributed algorithms have been chosen and implemented in OMNET++ environment. In order to show the inner workings of distributed algorithms, colors of nodes and edges are dynamically changed. In addition, a learner can visually trace the flow of the messages between nodes in the simulation.