Elastic Remote Methods
This addresses the need for more flexible and portable elasticity in cloud-based distributed applications, though it is incremental as it builds on existing middleware concepts.
The paper tackles the problem of enabling distributed applications to dynamically scale server objects in response to workload changes in cloud computing, resulting in ElasticRMI, a middleware system that allows developers to integrate elasticity management with minimal client modifications and increased portability across clouds.
For distributed applications to take full advantage of cloud computing systems, we need middleware systems that allow developers to build elasticity management components right into the applications. This paper describes the design and implementation of ElasticRMI, a middleware system that (1) enables application developers to dynamically change the number of (server) objects available to handle remote method invocations with respect to the application's workload, without requiring major changes to clients (invokers) of remote methods, (2) enables flexible elastic scaling by allowing developers to use a combination of resource utilization metrics and fine-grained application-specific information like the properties of internal data structures to drive scaling decisions, (3) provides a high-level programming framework that handles elasticity at the level of classes and objects, masking low-level platform specific tasks (like provisioning VM images) from the developer, and (4) increases the portability of ElasticRMI applications across different private data centers/IaaS clouds through Apache Mesos.