Assurance of adaptation in distributed systems

Sandeep S. Kulkarni, Karun N. Biyani · 2007

Software systems need to adapt due to changing requirements or changing environment conditions. For long-running and safety-critical applications it is highly desirable to adapt the system without completely stopping the system. In the case of distributed systems, adaptation often requires changes to multiple processes. Typically, such adaptation is performed by dynamically adding or removing components from multiple processes. As a result, during adaptation, the system may consist of both changed and unchanged processes, causing the old and the new components to overlap. This overlapping of components during adaptation may induce cross-component communication, which may lead to unpredictable and/or undesirable behavior during adaptation. In order to gain confidence in adaptation in distributed systems, in this dissertation, we address the assurance requirements at various stages of adaptation development: (i) modeling and verification of adaptation, (ii) testing of adaptation, (iii) design of components involved in adaptation, and (iv) design of a framework that supports adaptation. In this dissertation, we describe an approach based on adaptation lattices to model and verify adaptation. Specifically, we present transitional-invariant lattices and transitional-faultspan lattices to verify the correctness of adaptation in absence and presence of faults, respectively. Furthermore, we identify the issues that arise in an important class of adaptation, namely, mixed-mode adaptation. Mixed-mode adaptation allows the changed and the unchanged processes to interact during adaptation, thereby, minimizing service interruption time and communication overhead. In this dissertation, we identify and address the challenges involved in mixed-mode adaptation. Specifically, we show how the adaptation lattice approach can be used in the case of mixed-mode adaptation. We also discuss an approach for testing adaptation in distributed systems. We show how the existing approaches based on predicate detection for testing distributed systems can be extended for testing adaptation. We also describe component family design to build a library of adaptive components. One aspect of the design is to build an adaptation-verified library of components in which not only the components but also the adaptations between the components are verified. The design applies the principle of separation of concerns to separate adapt-active parts of the components from their core functionality. Furthermore, the component family design integrates the framework that performs adaptation while ensuring that the adaptation logic is separate from the core functionality of components as well as the application.

Read the paper · More papers on PaperTik