Skip to Main Content
CPU and device virtualization technology allows applications to be hosted on cloud platforms; some of the resulting benefits are lower cost and greater elasticity. In such cloud hosted applications, some components reside on the cloud while others, such as end users and components tied to physical devices, are located outside the cloud. Many applications, e.g., telecom services, have stringent latency requirements in terms of within how much time certain procedures must be completed. The application latency is strongly determined by the locations of all the interacting components that are both within and outside the cloud. In this paper, we study the problem of determining the optimal placement of the application components in the cloud so that the latency requirements of the application can be met. We present a precise formulation of the placement problem which includes a specification of the cloud platform, and collective latency expressions for application-level latency requirements. We show that Message Sequence Charts (MSCs), a widely-used mechanism for describing the execution of application procedures, can be naturally translated into our formalism of collective latency expressions. We present placement algorithms that exploit the Euclidean triangular inequality property of network topologies: (a) an exact algorithm for determining the most optimal placement but which has a worst-case exponential running time, and (b) an algorithm for determining a close to-optimal placement that has a fast polynomial running time. Additionally, we present an exact technique for partitioning a placement problem into smaller sub problems so that greater efficiency and accuracy can be achieved. We evaluate the performance of the algorithms on a representative telecom application --- a distributed deployment of the LTE Mobility Management Entity (MME). Our evaluation results show that our approximate algorithm can outperform a random placement by up to 49% for finding a success- ul placement.