{'fraction_non_alphanumeric': 0.022222222222222223, 'fraction_numerical': 0.0, 'mean_word_length': 5.75625, '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}}
A principled approach to supporting adaptation in distributed mobile environments

To support multimedia applications in mobile environments, it is necessary for applications to be aware of the underlying environmental conditions, and also to be able to adapt their behaviour and that of the underlying platform as such conditions change. Many existing distributed systems platforms support such adaptation only in a rather ad-hoc manner. This paper presents a principled approach to supporting adaptation through the use of reflection. More specifically, the paper introduces a language-independent, component-based reflective architecture featuring a per-component meta-space, the use of meta-models to structure the meta-space, and a consistent use of component graphs to represent composite components. The paper also reports on a quality-of-service management framework, providing sophisticated support for monitoring and adaptation functions. Finally, the paper describes a prototype implementation of this architecture using the object-oriented programming language Python.