thesis

Reconfiguration dynamique des architectures orientées services

Defense date:

Jan. 1, 2009

Edit

Institution:

Paris 6

Disciplines:

Authors:

Directors:

Abstract EN:

Runtime service reconfiguration is put forward as one of the means by which we may provide dependable service-oriented architectures (SOA), and more precisely, continuity in service provisioning, and robustness in the presence of change. Indeed, with the advent of wireless networks, computing environments are becoming highly dynamic. From a user-oriented point of view, this dynamics comes at the price of dependability, due to runtime variations in terms of (1) service availability, and (2) network connection/infrastructure availability, according to user/service mobility. In this context, the main focus of this thesis is to incorporate support for dynamic reconfiguration in SOA systems, in order to tolerate runtime variations and ensure continuity in service provisioning for the users. In particular, we focus on middleware support for runtime service reconfiguration. Our main contribution consists in enabling service continuity by (1) substituting a service that becomes unavailable at runtime with a semantically similar one, and (2) translating and transferring the current state of interaction to the substitute service in order to resume the execution after its interruption. The need for state translation is due to the environments’ heterogeneity, since the unavailable and substitute services are not assumed to be identically implemented, nor are they identically described. However, state translation may not be sufficient to guarantee state compatibility between the substitute service and the unavailable one: in some cases, the substitute service may be compatible with an earlier state of interaction, instead of the last one. Hence, we need to invalidate a set of results performed by the unavailable service, in order to synchronize the state of the substitute service. Indeed, the execution of the substitute service may provide different results from those provided by the execution of the unavailable service. In the case of service composition, still-available services –involved in the SOA system– may be affected by the substitution due to their data dependencies with the substituted service. Thus, the middleware synchronizes the state of still-available services according to the state transferred to the substitute service. The outcome of our contribution is SIROCCO (ServIce Reconfiguration upOn serviCe unavailability and Connectivity lOss), a middleware infrastructure that enables transparent runtime reconfiguration of SOA systems upon service unavailability. The middleware discovers candidate substitute services that can be used in the place of the service that becomes unavailable. It then tries to identify the best service amongst these candidates that can be used as an actual substitute. In the best case, the selected substitute service must be such that its current state can be synchronized with the last state of the service that is substituted. In the case of service composition, the middleware also checks data dependencies with the still-available services and synchronizes their state with respect to the transferred state. The above concepts of SIROCCO are discussed along with an experimental evaluation of our prototype. Our findings show that SIROCCO provides the necessary means for achieving dynamic service reconfiguration, where the gain in close-to-seamless continuity in service provisioning outweighs the computing and communication overhead on the execution of the SOA system.

Abstract FR:

La reconfiguration de service pendant l'exécution est mise en avant comme étant l'un des moyens par lesquels nous permettons d’améliorer la fiabilité des architectures orientées services (SOA), et plus précisément, la continuité d'approvisionnement de services, et la robustesse en présence du changement. En effet, avec l'avènement des réseaux sans fil, les environnements informatiques deviennent hautement dynamiques. D'un point de vue utilisateur, cette dynamique se fait au prix de la fiabilité, en raison des changements pendant l'exécution en termes de disponibilité (1) de services, et (2) de la connexion/infrastructures réseau, selon la mobilité de l'utilisateur ou des services. Dans ce contexte, l'objectif principal de cette thèse est d'inclure un soutien pour la reconfiguration dynamique aux systèmes SOA, afin de tolérer les changements pendant l'exécution, et d’assurer la continuité d'approvisionnement de services pour les utilisateurs. En particulier, nous nous concentrons sur le support intergiciel pour la reconfiguration des services pendant l'exécution. Notre principale contribution consiste à permettre la continuité du service (1) en substituant un service qui devient indisponible pendant l'exécution par un autre service, sémantiquement similaire, et (2) en traduisant et transférant l'état actuel de l'interaction au service substitut, afin de reprendre l'exécution après son interruption. Le besoin de traduction d'état est dû à l'hétérogénéité des environnements, puisque les services indisponibles et leurs substituts ne sont censés être ni identiquement implantés, ni identiquement décrits. Cependant, la traduction d'état peut ne pas suffire à assurer la compatibilité d'état entre le service substitut et celui qui est devenu indisponible: dans certains cas, le service substitut peut être compatible avec un état de l'interaction qui est antérieur à son état lors de la perte de service. Par conséquent, nous avons besoin d'invalider un nombre de résultats fournis par le service indisponible, pour pouvoir synchroniser l'état du service substitut. L'exécution du service substitut peut fournir des résultats différents de ceux déjà fournis par l'exécution du service indisponible. Dans le cas d'une composition de services, les services encore disponibles --intervenant dans le système SOA-- peuvent être affectés par la substitution en raison de leurs dépendances de données avec le service de remplacement. Ainsi, l'intergiciel synchronise l'état de ces services en fonction à l'état transféré au service substitut. De notre contribution résulte SIROCCO (ServIce Reconfiguration upOn serviCe unavailability and Connectivity lOss), une infrastructure intergiciel qui permet la reconfiguration transparente pendant l'exécution des systèmes SOA pour faire face à l'indisponibilité du service. L'intergiciel découvre les services candidats, susceptibles de substituer le service qui devient indisponible. Il essaie ensuite d'identifier le meilleur service parmi ces candidats qui peut être utilisé comme un substitut réel. Dans le meilleur des cas, le service substitut choisi doit être tel que son état actuel peut être synchronisé avec le dernier état du service qui est substitué. Dans le cas de la composition de service, l'intergiciel vérifie également les dépendances de données avec les services encore disponibles et synchronise leur état selon l'état transféré. Les concepts de SIROCCO sont examinés à travers une évaluation expérimentale de notre prototype. Nos résultats montrent que SIROCCO fournit les moyens nécessaires pour réaliser la reconfiguration dynamique des services, où le gain en continuité de service est plus important que le calcul et la communication supplémentaires induits par la reconfiguration.