{'fraction_non_alphanumeric': 0.020556609740670462, 'fraction_numerical': 0.0, 'mean_word_length': 5.38989898989899, '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 framework for network-aware applications

Today’s best-effort Internet infrastructure is well-known for its heterogeneity (both in endsystem capabilities and connectivity) and the significant fluctuations in service quality that can be observed. These two properties are often problematic from the viewpoint of a networked application, because they often result in unpredictable application behavior. Network-aware applicationsprovide an approach to mitigate these problems: they dynamically adapt their demands to match the varying supply of network resources, e.g., with the goal to achieve predictable response times. Such network-awareapplications must often trade network resources for somemeasure of qualityof the data delivered. This dissertation puts forth the claim that dynamic adaptation is an attractive and often necessary means to achieve the goal on predictable service quality. Unfortunately, network-aware applications are notoriously difficult to construct and evaluate. Two recurring issues need to be addressed when constructing such applications: how to find out about network resource availability and dynamic changes thereof, and how to adapt application behavior (to such dynamic changes), so that a goal on the response time and the quality of the data delivered can be met. Addressing these questions the dissertation makes three main contributions. First, the dissertation presents a reusable framework for network-aware applications. In contrast to other work, an integral view on the quality-response time tradeoff is adopted, which means that applications built on the framework try to be smart about how to reduce the quality of the data delivered, so that a user-specified time limit can be met, and so that the negative impact on the overall service quality is minimized. Applications are free to define their notion of quality. The dissertation shows that a framework-based approach to the construction of such network-aware applications allows for reuse of the core adaptation process and can therefore shield developers from many of the complexities in dealing with network dynamics. Reusability is achieved by factoring out three aspects of application-specific functionality: the data types handled by the application, the algorithms applicable to achieve quality reductions for a particular type, and the application’s notion of quality. Second, a systematic approach to the evaluation of the complex dynamic behavior of network-aware applications is presented. There are three questions to ask of such adaptive applications. Does adaptation work, and if so, what are the key factors that effect the application’s ability to adapt to the network environment? Does network-aware delivery provide a benefit to the user? At what costs can such benefits be obtained? The evaluation establishes that adaptation is robust with respect to many of the parameters that influence adaptation decisions. We find that network-aware content delivery can provide predictable response times over a wide range of bandwidths and CPU powers, can be smart about how to tradeoff quality for network resources, and incurs only small overheads.