Author :
Edmondson, James ; Gokhale, Aniruddha ; Schmidt, Dan
Author_Institution :
Carnegie Mellon Software Eng. Inst., Pittsburgh, PA, USA
Abstract :
Distributed applications are increasingly developed by composing many participants, such as services, components, and objects. When deploying distributed applications into a mobile ad hoc cloud, the locality of application participants that communicate with each other can affect latency, power/-battery usage, throughput, and whether or not a cloud provider can meet service-level agreements (SLA). Optimization of important communication links within a distributed application is particularly important when dealing with mission-critical applications deployed in a distributed real-time and embedded (DRE) scenario, where violation of SLAs may result in loss of property, cyber infrastructure, or lives. To complicate the optimization process, the underlying cloud environment can change during operation and an optimal deployment of the distributed application may degrade over time due to hardware failures, overloaded hosts, and other issues that are beyond the control of distributed application developers. To optimize performance of distributed applications in dynamic environments, therefore, the deployment of participants may need adapting and revising according to the requirements of application developers and the resources available in the underlying cloud environment. This paper present two contributions to the study of dynamic optimizations of user-provided deployments within a cloud. First, we present a dataflow description language that allows developers to designate key communication paths between participants within their distributed applications. Second, we describe heuristics that use this dataflow representation to identify optimal configurations for initial deployments and/or subsequent redeployments within a cloud. An experiment is presented to validate the heuristic approaches.
Keywords :
cloud computing; contracts; data flow analysis; mobile computing; parallel languages; SLA; application developer requirement; application participant locality; approximation technique; battery usage; cloud computing; cloud environment; cloud provider; cyber infrastructure; dataflow description language; dataflow representation; distributed application; distributed real-time scenario; dynamic environment; embedded scenario; hardware failure; heuristic approach; important communication link optimization; key communication path designation; latency; mission-critical application; mobile ad hoc cloud; optimal deployment; optimization process; overloaded host; performance optimization; power usage; property loss; real-time deployment; resource availability; service-level agreement; user-provided dataflow; Approximation algorithms; Approximation methods; Batteries; Genetic algorithms; Humans; Image edge detection; Real-time systems; cloud optimization; constraint problems; genetic algorithms; heuristics; real time;