{'fraction_non_alphanumeric': 0.026903262736119062, 'fraction_numerical': 0.0005724098454493417, 'mean_word_length': 5.154929577464789, '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}}
Service Modeling and Architecting for Self-Adaptive IoT-Based Systems

In recent years, the Internet of Things (IoT) environment dynamics has increased, leading to an increase in the complexity of modern software systems. Therefore, the need to manage these complex systems comes with several challenges, and service-oriented systems (SoS) are a good option to realize this. Several research initiatives have addressed this vision. However, there is a clear need for flexibility and self-adaptation for service-based IoT applications to promote higher customization and adaptation to manage unpredictable changes and uncertain situations. In our research, we advocate the use of the SoS paradigm for building next-generation services using the IoT, and the main objective of our work is to ensure the self-adaptation of these complex systems. In this paper, we provide a particular perspective on the evolution of the field of self-adaptation with a new conception. By proposing a BPMN extension named BPMN4SAS (BPMN for the self-adaptive system), we stress the idea of adaptation in the design phase, starting from the first step in the BPM (Business Process Management) life cycle. The proposed extension is illustrated through an example dealing with accident management in a smart city system. The second contribution of this paper concerns the optimization phase, where we propose a global architecture to ensure the self-adaptation of the IoT services at run time. The proposed architecture aims to let the system collect data about the uncertainties during execution. The system uses this data to resolve uncertainties, be aware of itself, and adjust and satisfy the changing conditions, especially the quality-of-service (QoS) constraints.