Resource provisioning for scalable Web applications

From Master Projects
Jump to: navigation, search

About Resource provisioning for scalable Web applications

  • This project has been fulfilled.
  • This project fits in the following Bachelor programs: {{#arraymap:|, |xXx|bachelorproject within::xXx|,}}
  • This project fits in the following masterareas: {{#arraymap:Internet and Web Technology, High Performance Distributed Computing, Parallel and Distributed Computer Systems|, |xXx|project within::xXx|,}}


Web applications have become an essential part of everyday life, as they offer online access to essential services such as shopping, banking, information, entertainment and so on. However, major Web applications must be able to adjust their processing capacity when their request load varies. An interesting approach is dynamic resource provisioning, where the applications can request more resources (e.g., from a Grid or a Cloud) when they need more capacity to maintain acceptable response time, and release these resources when they are no longer necessary.

Most international research on research provisioning focuses on strict multi-tier architectures being hosted in homogeneous environments. I strongly believe that these two assumptions should be relaxed: real web applications are not strictly multi-tier, and real hosting environments are not homogeneous. My group has designed innovative algorithms for these complex cases (see for example here or ask me about yet-unpublished cutting-edge research).

Many master project topics can be derived from this area. Among others:

  • All work being done on resource provisioning tries very hard to use the lowest possible number of resources such that we maintain some guarantee of performance. However, this also means that the failure of any of these machines creates an SLA violation (it it doesn't, then we should have removed this machine from the system already). One can imagine very simple policies which would guarantee sustained performance under machine failure assumptions, but at the cost of using many unnecessary machines. It would be interesting to study how one can take into account machine failures at minimum cost.
  • All current work on resource provisioning focuses on applications hosted on application servers and relational databases. It would be interesting to study how one can adapt these techniques to non-relational databases such as NoSQL data stores.
  • We can invent many other topics on this area...