M.Sc Thesis

M.Sc StudentKalinovsky Vladislav
SubjectSymphony: Managing Virtual Servers
DepartmentDepartment of Computer Science
Supervisors PROF. Assaf Schuster
PROF. Roy Friedman


A virtual server is a server whose location in an internet is virtual. It can move from one physical site to another, and it can span a dynamically changing number of physical sites. In particular, during periods of high load, it can grow to new machines. During periods of low load, it can shrink into a single host, and may even allow other virtual servers to run on the same host.

This work describes the design, architecture and implementation of Symphony. Symphony is an infrastructure technology whose purpose is to aid in the design and implementation of virtual servers. In addition, Symphony presents a general framework for virtual servers. Clearly, any distributed application can be implemented directly on top of the raw networking support provided by any modern operating system. However, the same argument can be said in favor of using bare hardware rather than advanced operating system services. Nevertheless, most people prefer to use high-level abstractions to develop programs.

Symphony design and implementation are based on combining CORBA technology with group communication capabilities, for added reliability and fault tolerance. Symphony is currently implemented and tested on Windows NT, Windows 2000 and Windows XP platforms, using SUN's JDK, Version 1.3.1 and VisiBroker 3.5.