{'fraction_non_alphanumeric': 0.03111587982832618, 'fraction_numerical': 0.0, 'mean_word_length': 5.712230215827338, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Engineering Self-Adaptive Applications on Cloud with Software Defined Networks

Self-adaptive applications are engineered to adapt to operation conditions to continuously meet application requirements at run-time. Before the emergence of Software Defined Networking (SDN) and new network virtualization technologies, the common run-time adaptation actions were limited to changes in computing and storage resources (i.e., scaling in/out). However, SDN creates new avenues for adaptation strategies that complement or solves issues associated with computing adaptations. Hence, in this thesis, we propose to use SDN and network virtualization techniques to build self-adaptive applications. The research goal is to build applications that are self-protecting, self-managing and self-optimizing using both computing and networking adaptations. We design, implement and verify such self-adaptive applications on real cloud environment.