Infrastructure for Service Scalability and High Availability
Distributed Servers for Transparently Distributed Services
When clients connect to a distributed server, the servers can handoff the (TCP) connections among themselves. Handoff can take place at any moment: when the connection is initiated, or while the connection is being used. Connections can even be recovered after the server that handles them crashes. The major interest here is that this operation is totally transparent to the client-side application. The only requirement is that the client-side operating system supports the Mobile IPv6 protocol.
For more information about the technology behind distributed servers, please take a look at the following articles:
[1] Versatile Anycasting with Mobile IPv6, Michal Szymaniak, Guillaume Pierre and Maarten van Steen. In Proceedings of the International AAA-IDEA Workshop, October 2006 (pdf).
[2] Enabling Service Adaptability with Versatile Anycast. Michal Szymaniak, Guillaume Pierre, Mariana Simons-Nikolova and Maarten van Steen. Accepted for publication, Concurrency and Computation: Practice and Experience, 2007 (pdf).
Our current implementation is very low-level: it basically allows one to send/receive the required messages to perform the required actions. We are currently working on building a much higher-level interface that application programmers can use easily.
Applications
Distributed servers have many possible applications. For example, one may use virtual nodes and distributed servers simultaneously, so that the replicated group of processes implemented by virtual nodes can look like a single highly available node from its clients.
Demonstration Videos
To demonstrate the distributed servers functionality, we built a small testbed and videotaped the presentation.
Please download the videos linked below in the page!