SUMMARYThis paper has two purposes. First, it shows that existing solutions employing checkpointing and mobility in distributed applications, fix, at design time, the types and the techniques of checkpointing and mobility to be employed at runtime. Second, it provides policies allowing the dynamic selection of checkpointing and mobility techniques according to the execution environment. For that, this paper presents checkpointing and mobility techniques to evaluate them in order to identify their advantages and their shortcomings, and then determine the appropriate execution conditions in which a specific mobility technique becomes beneficial. This investigation will allow in assisting adaptation plans' generation and promoting future research in the area of self-adaptivity of distributed applications.