{'fraction_non_alphanumeric': 0.017816091954022988, 'fraction_numerical': 0.0011494252873563218, 'mean_word_length': 5.748062015503876, '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}}
Aspect-Oriented Programming for Pervasive Computing:A comparative Study

Recent years have seen an increasing interest in research into and development of pervasive and ubiquitous computing environments. Such environments require a high degree of adaptability and are often inherently distributed in nature. Adaptation and distribution are properties with a crosscutting nature as the need for adaptation is determined by the context in which various elements of the environment operate. Similarly, the environment often tends to be composed of elements in different locations, which need to communicate with each other and exchange information to meet the needs of the pervasive computing applications supported by the environment. Aspectoriented programming (AOP) has emerged as a promising candidate to support modularisation of crosscutting concerns, such as adaptation and distribution, in a reusable, evolvable and maintainable manner. In this paper, we discuss our experience of implementing an adaptive peer-to-peer (P2P) display environment using AOP. We compare the AOP implementation with two independently developed OO implementations of the environment, one using a regular client-server model and the other using a P2P application framework. The comparison demonstrates that an aspect-oriented approach is indeed more effective in modularising adaptation and distribution in a reusable, maintainable and evolvable fashion. It also reduces the complexity of the implementation with respect to the above three desirable attributes. At the same time, our experience challenges some of the existing (mis)conceptions about aspect granularity within an application and also highlights the need for development guidelines and idioms.