Abstract
Redundancy is a fundamental property of most complex systems that makes them more resilient and productive. Instead of relying on a single solution to a problem, multiple solutions are feasible, each solution with its specific resource requirements and cost/quality tradeoffs. This paper targets service-based applications that consist of webs of collaborating services, where productivity, resilience, and energy consumption are crucial. Examples of such applications include mission software for autonomous robots (drones) and service-based smart phone applications. This paper discusses a new framework that allows the specification and optimization of redundancy along three orthogonal redundancy dimensions, namely Approximation, Implementation, and Replication (AIR). The RSDG (Redundant Services Dependence Graph) is a directed, dual-weighted graph with nodes representing redundant services and their quality levels, and edges representing service dependencies. For a given application, the mission value (productivity) of a service node reflects its importance for producing the desired overall application outcome, while the energy value represents its energy consumption, which is not application dependent. Given some application constraints, an optimal solution to an RSDG service selection problem is a set of nodes and edges that maximizes the total mission value while minimizing energy consumption. The optimal selection problem is shown to be NP-complete. AIR’s compiler maps instances of RSDG service selection problems into two dependent 0-1 integer programming problem instances. Experimental results are reported for a servicebased application that specifies sensing, actuation, and communication activities of an autonomous underwater vehicle (AUV). The results were based on an AUV deployment in the Atlantic Ocean. They show that the AIR framework is expressive and efficient. The overall application productivity and resilience was greatly improved by dynamically recomputing the optimal solution to reflect changes in energy reserves, mission goals, or to deal with service failures. In an application’s design stage, AIR can be used to assess and adjust service redundancies for productivity and resilience under anticipated usage patterns and failure conditions. To the best of our knowledge, AIR is the first system that represents and optimizes all three dimensions of redundancy within a single framework.