Autonomic Computing

Our objective in this area of research is the development of models, techniques, and tools necessary for engineering autonomic software systems, or what are also commonly referred to as self-* systems. Such systems are capable of modifying their behavior at runtime to deal with changes in requirements or environmental conditions. The development of such systems has shown to be significantly more challenging than traditional software systems. The following projects aim to mitigate these challenges. 

Active Research Projects

ARMOUR – An Application-Level Threat Detection Framework

Conventional security mechanisms at network, host, and source code levels are no longer sufficient in detecting and responding to increasingly dynamic and sophisticated cyber threats today. Detecting malicious behavior at the application level can help better understand the intent of the threat and strengthen overall system security posture. To that end, we have developed an innovative, use case-driven framework called ARMOUR(which standards for Association Rules Mining Of Undesired behavioR) that involves mining software component interactions from system execution history and applying an adaptive detection algorithm to identify potential malicious behavior. The framework uses unsupervised learning; can perform fast, "inline" detection in near real time; and can quickly adapt to system load fluctuations and other concept drifts. Our evaluation of the approach against a real Emergency Deployment System has demonstrated very promising results.

Mining the Execution History of a Software System to Infer the Same Time for its Adaptation

This research is developing automated mechanisms to determine when a software component is in a safe state for adaptation (i.e., runtime replacement). We are developing a data-mining technique that from a set of data representing the interaction among a system’s software components over a period of time infers a set of probabilistic rules representing the interaction dependencies among a system’s software components. The rules are then used at runtime for determining the likelihood of a component being in an appropriate state for adaptation at a given point in time.

POISED – Possibilistic Self-Adaptation 

One of the difficulties in the construction of self-adaptive software systems is that often management decisions have to be made under uncertainty. POISED provides a mathematical framework for tackling the challenges of making decisions under uncertainty. POISED builds on possibility theory to assess both the positive and negative consequences of uncertainty. It makes adaptation decisions that result in the best range of potential behavior.

Prior Research Projects

SASSY – Self-Architecting Software Systems 

This research intends to build a framework for Self-Architecting Software Systems (SASSY), a significant paradigm shift in architecting large-scale real-world software systems. Focusing on service-oriented architectures, SASSY includes: 1) Self-architecting: given the service and Quality of Service (QoS) requirements, an optimal architecture is automatically generated with the aid of design patterns. The merit of architectural alternatives is evaluated with the aid of multivariate utility functions. 2) Activity-based specification: behavioral requirements are expressed as activity schemas annotated with QoS requirements and domain ontology. 3) Unification of evolution and adaptation: both the evolution of requirements and changes on monitored run-time conditions and QoS trigger the revaluation of architectural alternatives, and, to the extent possible, the automatic reconfiguration of systems.

FUSION – Feature-Oriented Self-Adaptation 

FUSION is a machine learning-based approach for engineering feature-oriented self-adaptive software systems. Unlike prior approaches, FUSION is capable of learning from changes that are occurring in the system and environment. It is then able to leverage this learned knowledge for various purpose, including adjusting its reasoning process, but to also improve the efficiency of the management algorithms. 

RESIST – Resilient Situated Software Systems 

Situated software systems are an emerging class of systems that are predominantly pervasive, embedded, and mobile. They are marked with a high degree of unpredictability and dynamism in the execution context. At the same time, such systems often need to satisfy strict reliability requirements. We propose an approach geared to such systems, which continuously furnishes refined reliability predictions at runtime by incorporating various sources of information. The reliability predictions are leveraged to proactively place the software in the optimal configuration with respect to changing conditions. Our approach considers several representative architectural reconfiguration decisions that impact the system’s reliability, including reallocation of components to processes and changes to the architectural style.

Style-Aware Adaptation Patterns (IST 2012)

Modern middleware platforms provide the applications deployed on top of them with facilities for their adaptation. However, the level of adaptation support provided by the state-of-the-art middleware solutions is often limited to dynamically loading and off-loading of software components. Therefore, it is left to the application developers to handle the details of change such that the system’s consistency is not jeopardized. This research is addressing the current shortcomings by utilizing the information encoded in a software system’s architectural style. This information drives the development of reusable adaptation patterns. The patterns specify both the exact sequence of changes and the time at which those changes need to occur. We use the patterns to provide advanced adaptation support on top of an existing architectural middleware platform.

FORMS – A Formal Reference Model for Self-Adaptive Software (TAAS 2010)

Researchers and practitioners have been struggling with the lack of a precise method of describing, comparing, and evaluating alternative architectural choices dealing with self-adaptive software systems. This researcher develops a reference model, entitled FOrmal Reference Model for Self-adaptation (FORMS), which intends to alleviate this pressing issue. FORMS consists of a small number of formally specified modeling primitives that correspond to the key variation points within self-adaptive software systems, and a set of relationships that guide their composition. A system specified in FORMS could be automatically and formally analyzed using a number of existing model checking tools.