Virtual Machines Networking for Distributed Systems Emulation
Distributed systems are the dominant platform for any application, both in academic and industry. However, testing of applications in such a platform is hard, due to the complexity of the elements that compose these systems. Emulation is an alternative way to improve software quality for distributed applications, allowing analysis of the application behavior in a given environment before its deployment. To emulate distributed systems, virtualization can be applied, as it allows creation of a large-scale controlled environment with few physical resources. Such an approach, however, requires application of network management of virtual machines. This paper presents approaches for network virtualization and a description of how it can be used to create a network of virtual machines for emulation of different distributed systems configurations.