Summary: | Dans ce mémoire de thèse, nous présentons une approche d’exécution auto-corrective (self-healing) de services composites, basée sur des agents capables de prendre, de manière autonome, des décisions pendant l’exécution des services, à partir de leurs connaissances. Dans un premier temps, nous définissons, de manière formelle, en utilisant des réseaux de Petri colorés, les services composites, leur processus d’exécution, et leurs mécanismes de tolérance aux pannes. Notre approche offre plusieurs mécanismes de reprise sur panne alternatifs : la récupération en arrière avec compensation ; la récupération en avant avec ré-exécution et/ou remplacement de service ; et le point de contrôle (checkpointing), à partir duquel il est possible de reprendre l’exécution du service ultérieurement. Dans notre approche, les services sont contrôlés par des agents, i.e. des composants dont le rôle est de s’assurer que l’exécution des services soit tolérante aux pannes. Notre approche est également étendue afin de permettre un auto-recouvrement. Dans cette extension, les agents disposent d’une base de connaissances contenant à la fois des informations sur eux-mêmes et sur le contexte d’exécution. Pour prendre des décisions concernant la sélection des stratégies de récupération, les agents font des déductions en fonction des informations qu’ils ont sur l’ensemble du service composite, sur eux-mêmes, tout en prenant en compte également ce qui est attendu et ce qui se passe réellement lors de l’exécution. Finalement, nous illustrons notre approche par une évaluation expérimentale en utilisant un cas d’étude. === In this thesis, we present a self-healing approach for composite services supported by knowledge-based agents capable of making decisions at runtime. First, we introduce our formal definition of composite services, their execution processes, and their fault tolerance mechanisms using Colored Petri nets. We implement the following recovery mechanisms: backward recovery through compensation; forward recovery through service retry and service replacement; and checkpointing as an alternative strategy. We introduce the concept of Service Agents, which are software components in charge of component services and their fault tolerance execution control. We then extend our approach with self-healing capabilities. In this self-healing extension, Service Agents are knowledge-based agents; that is, they are self- and context-aware. To make decisions about the selection of recovery and proactive fault tolerance strategies, Service Agents make deductions based on the information they have about the whole composite service, about themselves, and about what is expected and what it is really happening at runtime. Finally, we illustrate our approach and evaluate it experimentally using a case study.
|