
Applying Digital Evolution to the Development of Self-Adaptive ULS Systems∗ (Position Paper) Philip K. McKinley, Betty H. C. Cheng and Charles A. Ofria Department of Computer Science and Engineering Michigan State University East Lansing, Michigan 48824 {mckinley,chengb,ofria}@cse.msu.edu Abstract porting electronic commerce and medical information sys- tems; and controlling the operation of aircraft and automo- A key characteristic for ultra-large scale (ULS) software- biles. The pervasiveness of computing technology, coupled intensive systems is the need to adapt at run time in re- with its rapidly increasing complexity, gives rise to the need sponse to changing environmental conditions. Given the for computer systems that are able to adapt to changing scale, complexity, and heterogeneity of ULS elements, in- conditions, compensate for hardware and software failures, novative, but rigorous software engineering techniques are fend off attacks, and optimize performance, all with min- needed to address the development and the evolution of imal human intervention. Autonomic computing [1] refers these systems. The developer of self-adaptive ULS systems to systems capable of such self-management. This tech- must anticipate how and when the software will need to nology is especially important as computing systems in- adapt in the future, codify this behavior in decision-making teract increasingly with the physical world. For example, components to govern the adaptation, and ensure that sys- an increasing number of distributed applications involve tem integrity is not compromised during adaptations. We data gleaned through wireless sensors that monitor and re- contend that the full potential of dynamically adaptive soft- port various aspects of the physical environment. Since ware systems cannot be realized without environments that many of these applications involve public safety and na- enable the developer to actively explore the “adaptation tional defense, enhancing their ability to detect and respond space” of the system during the early stages of design. We to changing conditions, including and potential threats, is propose an approach to this problem that leverages and paramount. extends digital evolution techniques. By mapping models In the past decade, extensive research has been con- of adaptive software programs into digital organisms and ducted on many aspects of self-adaptive software sys- studying traces of their evolution, the developer can gain tems. Examples include adaptive software mechanisms [2], critical insight into software decision making, software as- design of software to facilitate later modifications [3]; surance, and the software infrastructure needed to support software-architecture techniques for supporting dynamic desired adaptations. adaptation [4]; systems that distill data streams and dis- tribute processing tasks to support resource-limited de- vices [5]; adaptable and extensible operating systems [6]; 1 Introduction and dynamic recomposition within the network infrastruc- ture itself [7]. This research has greatly improved our un- derstanding of adaptive software and several key supporting Computing technology now affects nearly every dimen- concepts, including computational reflection, separation of sion of modern society: managing critical infrastructure concerns, component-based design, and transparent inter- such as power grids and telecommunication networks; sup- ception of program flow. ∗Research supporting the views stated in this position paper have Despite these advances, however, designing an adaptive been supported in part by NSF grants EIA-0000433, EIA-0130724, CDA- software system remains a very challenging task, due to the 9700732, CCR-9901017, Department of the Navy, Office of Naval Re- dynamic nature of adaptive software and uncertainty in the search under Grant No. N00014-01-1-0744, Eaton Corporation, Siemens Corporate Research, and a grant from Michigan State University’s Quality execution environment. We speculate that this problem is Fund. due in part to the fact that adaptive software is designed and implemented using tools and environments intended project, ORCHID,1 that explores how digital evolution tech- for the development of non-adaptive software. We contend niques can be leveraged and extended to support the de- that the full potential of dynamically adaptive software sys- sign of robust self-adaptive software. The project focuses tems cannot be realized without fundamental advances in primarily on early development activities, namely require- the corresponding development environments, which must ments engineering and design, where we believe improve- enable developers to explicitly address those features that ments in the early development processes can have the most distinguish adaptive systems from non-adaptive systems. profound effect on the quality and capabilities of future sys- These issues include anticipating how the software may tems. Specifically, by mapping adaptive software systems need to adapt in the future, ensuring that system integrity is to digital organisms and observing their evolution, the de- not compromised by adaptation, and constructing decision- veloper is able to actively explore the “adaptation space” of making software to govern the adaptation. In the same the system during the initial design. In this position paper, manner that the introduction of other development tools we provide background on digital evolution, describe the (e.g., compilers, code generators, simulators, programming ways in which we believe digital evolution can be applied paradigms and languages) have improved software develop- to the development of adaptive systems, and discuss some ment in the past, so do we envision that the proper tools can of the technical challenges that must be addressed to make lead to a new paradigm that more effectively supports the this approach viable. development of adaptive software. To design self-adaptive computational systems, one can 2 Digital Evolution Background take inspiration from nature. Living organisms have an amazing ability to adapt to a changing environment, both in the short term (phenotypic plasticity) and in the longer Digital evolution platforms have been developed first and term (Darwinian evolution). Indeed, most complex organ- foremost to provide a better understanding of evolution in isms exhibit traits that seem desirable in self-adaptive soft- nature [11]. Studying digital organisms offers several ad- ware: system monitoring (senses, awareness); short-term vantages over studying natural systems. As John May- changes in priorities (stress reactions, sleep); system re- nard Smith once noted,“So far, we have been able to study configuration (muscle growth, calluses); self repair (tis- only one evolving system and we cannot wait for interstel- sue healing); intrusion detection/elimination (immune sys- lar flight to provide us with a second. If we want to dis- tems); and maintaining state through transitions (gradual cover generalizations about evolving systems, we will have acclimation to a new environment). In the past few years, to look at artificial ones.” Digital organisms enable scien- several approaches to adaptive software design have sought tists to address questions that are impossible to study with to mimic the behavior of natural organisms (biomimetics), organic life forms, for example, explicitly disabling given for example, [8]. However, natural organisms were pro- mutations and seeing how that constraint affects the popu- duced through an evolutionary design process over millions lation. of years. While biomimetics attempts to imitate the results However, unlike simulations of evolution, digital evolu- of this process, it fails to account for the many factors that tion is real. No matter how sophisticated an organism is led to the adaptive behavior. at performing a single task, its likelihood of moving into We propose a fundamentally different approach based the next generation depends on its interaction with the en- on digital evolution [9, 10], where a population of self- vironment and other organisms, as well as its own ability replicating computer programs exists in a user-defined com- at self replication. There is no explicit fitness function as putational environment and is subject to mutations and nat- in genetic algorithms; tasks only play a role in triggering ural selection. These “digital organisms” are provided with an organism’s environmental interactions. Like other forms limited resources that they must carefully balance if they are of evolutionary computation, digital organisms can be used to survive. Over time, these organisms will evolve to opti- to design solutions to computational problems, where it is mize their usage and thrive if they are able. Unlike mere nu- difficult to write explicit programs that produce the desired merical simulations or other forms of evolutionary compu- behavior [11]. Thus, digital organisms enable biological tation (such as genetic algorithms), digital organisms pos- concepts to be used to study problems outside of biology, sess the ability to truly evolve; the evolution is open-ended, just as principles of physics and mathematics are often used often yielding unexpected solutions. No matter how well a in biology. given organism can perform a specific task, whether or not it Currently, the most widely used digital evolution plat- self-replicates and moves into the next generation depends form is AVIDA [9], developed by Ofria and colleagues. on its environment
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages7 Page
-
File Size-