Self-Adaptive Software

Self adaptation is essential to the survivability of a variety of software applications, ranging from safety-critical embedded software to mission-critical web services resilient to malicious attacks. The key features of an adaptive software are (1) the ability to monitor its own execution and (2) the ability to reconfigure itself based on the result of runtime monitoring. Since 2004, I have been working on this area with the focus on model-based self-adaptive systems. We developed a novel approach of extending a system design with monitoring and re-configuration mechanism, defined in the same design language. This model-based approach for self adaptation enables designers to design and validate a self-adaptive system in a single design environment. The approach also enables the synthesis of a self-adaptive system through existing code generation capability of a model-based design tool.   

Since I joined WSU, I also studied self adaptation by leveraging adaptive software design and multi-core hardware architecture. A problem with a traditional self-adaptive software is that it usually demands more computational resources, since additional resources are needed for monitoring and steering software executions. Meanwhile, recent advances in multi-core processors call for new software methodologies that can better use these cores. Working with researchers in the University of Idaho, I developed a self-adaptive software architecture on multi-core hardware. Our approach is to utilize otherwise under-use cores to implement a hierarchy of N-variant software architecture. Each level of N-variant software, running by a subset of cores, implements a formally defined level of services and information assurance. Together, the hierarchical N-variant software architecture running on a multi-core processor provides a formally-defined multiple-level security. The benefits of this self-adaptive software architecture with multiple-level security are three-fold: first, it can be implemented on a commercial  off-the-shelf (COTS) multi-core chip, and provides enhanced multi-level security on a low-cost computing platform; second, the self-adaptive software architecture uses a formal model to define a reconfigurable multiple-level security and guide its implementation. This formal approach provides a predictable level of service and information assurance in event of attack and/or system overload; third, the design and implementation of the software architecture can be automated by extending N-variant technology. We also provided a detailed performance analysis of the new architecture using two complement analytical techniques: colored petri-net and probabilistic model checking.

Publications 

  1. [TanKrings11] Li Tan and Axel Krings: "An Adaptive N-variant Software Architecture for Multi-Core Platforms: Models and Performance Analysis". In Proceedings of the The 11th International Conference on Computational Science and Its Applications. Santander, Spain. In the Lecture Notes in Computer Science, Springer-Verlag. June 20-23, 2011.
  2. [TanKrings10] Li Tan and Axel Kring: "A Hierarchical Formal Framework for Adaptive N-variant Programs in Multi-core Systems". In Proceedings of The 9th International Workshop on Assurance in Distributed Systems and Networks (ICDCS-ASDN'10). IEEE press. Genoa, Italy. June, 2010.
  3. [KTJR09] Axel Krings, Li Tan, Clint Jeffrey, and Robert Rink: "Resilient Multi-core Systems: A Hierarchical Formal Model for N-variant Executions". In Proceedings of ACM Cyber Security and Information Intelligence Research Workshop (CSIIRW'09), Oak Ridge National Lab, Oak Ridge, TN, April 13-15, 2009.
  4. [Tan05] Li Tan: "Model-based Self-monitoring Embedded Systems with Temporal Logic Specifications". In the proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE'05). Long Beach, CA., November 7-11, 2005.
  5. [TKLS04] Li Tan, Jesung Kim, Insup Lee, and Oleg Sokolsky. "Model-based Testing and Monitoring for Hybrid Embedded Systems", In the proceedings of IEEE Internation Conference on Information Reuse and Integration (IRI'04), IEEE society, 2004.
  6. [TKL03] Li Tan, Jesung Kim, and Insup Lee. "Testing and Monitoring Model-based Generated Program". In the third international workshop on Runtime Verification (RV'03). July, 2003. Extended version published In Electronic Notes in Theoretic Computer Science, Vol. 89, No. 2. Elsevier Science. 2003.