Information & Knowledge Technologies Business Unit
Distributed Systems Technology Group Papers

Building Auto-Adaptive Distributed Applications: The QuO-APOD Experience 

Citation:  Michael Atighetchi, Partha P. Pal, Chris Jones, Paul Rubel, Richard E. Schantz, Joseph P. Loyall, and John A. Zinky. The 3rd International Workshop on Distributed Auto-adaptive and Reconfigurable Systems, in conjunction with the 23rd International Conference on Distributed Computing Systems, May 19-22, 2003, Providence, Rhode Island, USA

Formats: Postscript, PDF, HTML

Abstract The availability and quality of resources and services an application relies upon may vary over time in a distributed setting. Such variations may happen naturally, or they may be caused by a malicious attacker. In the most benign case, some design assumptions may be found to be improper at deployment time, or may become violated for a brief period during run time. More serious cases involve resource corruption/depletion attacks that threaten the very survival of the application. Therefore, survivability is clearly an area where advances in autonomic adaptation can provide a high pay-off.

Despite the clear need for agile applications that can sense changes in the environment and adapt in response, it was not feasible to build such auto-adaptive applications, until recently. Advances in middleware research now make it possible to introduce a layer of system software between the application and the environment that supports monitoring and control of elements on either side. We have been researching the issues underlying adaptive distributed systems for the last few years and have developed a general purpose adaptive middleware called QuO (Quality Objects) based on the distributed object computing (DOC) paradigm. Although the initial idea behind QuO was to support QoS and QoS based adaptation within the context of distributed applications[21], QuO has evolved to a general purpose advanced middleware enabler for autoadaptive distributed systems. The QuO technology suite includes specification languages[14] and code generation tools to define adaptive behavior and a runtime system[17] to support it. Over the years, we have used QuO to provide adaptation to meet real time constraints[2] and to provide defensive responses against cyber attacks[9] in addition to more traditional QoS oriented adaptation. We have captured various adaptive middleware patterns[7] and have also used aspect oriented techniques to introduce adaptive behavior to existing applications[5]. In addition to numerous technology demonstrations, we performed measurement and assessment experiments to evaluate the effectiveness of our adaptive capabilities[12]. We have also been engaged in various successful technology transfer efforts where more mature components of our technology are integrated into advanced military systems.

With a relatively better understanding of our current capability and its utility, we are continuing to investigate further enhancements as well as the theoretical underpinnings of adaptive distributed systems. Our position on autoadaptive distributed systems can be summarized as follows. First, we take a middleware-centric approach to build autoadaptive behavior into distributed systems. Middleware offers the ability monitor and control both the application and the infrastructure, and makes it possible to introduce the adaptive behavior with minimal changes. Second, we believe that auto-adaptive behavior is crucial for survivability and in this context auto-adaptive behavior must integrate and coordinate the services and capabilities of multiple mechanisms that are normally part of the original application. Third, we believe that a systematic, modular and reusable way to build and integrate auto-adaptive behavior is necessary for making auto-adaptive capabilities useful in a practical way. Finally, we view that a careful specification and evaluation of the claims made by auto-adaptive mechanism is a prerequisite for its wide acceptance in real life applications.

In this paper we present an abbreviated view of our experience in developing and evaluating auto-adaptive distributed applications. We will focus on the use of autoadaptive capabilities in terms of defending against cyber attacks, and in particular we will present a narrow sample of adaptive responses that make use of network based tools and mechanisms. The rest of the paper is organized as follows. Section 2 describes the QuO adaptive middleware in short. In the APOD project we investigated the use and effectiveness of auto-adaptive capabilities in defending the application against attackers, a process we call defense enabling. Section 3 describes the network oriented adaptive responses that we developed in this project. Section 4 describes various experiments we carried out in order to evaluate the effectiveness of such adaptive behavior in defense. Section 5 concludes the paper.

BBN Home Projects Technologies People Papers Comments
© 2010 BBN Technologies