Security and self-healability enforcement of dynamic components in a service-oriented system
Sécurité et exécution autorétablie des composants dynamiques dans un système axé sur le service
Résumé
Dynamic service-oriented architectures (D-SOA) focus on loosely coupled client- server interactions where both of them can appear and disappear at runtime. Our goal is to design monitoring systems for these architectures. Since classical monitoring systems are statically injected into the monitored services, they cannot properly handle the runtime services’ lifecycle. Moreover, when a service is substituted by a new one, other services may still use the old reference. This reference is kept in memory as a stale reference which induces some forbidden behaviors. This thesis contributes to design a monitoring system with resilient dynamicity that monitors services usage and is able to deal with stale references usage. This goal is achieved in three steps. Firstly, by considering the dynamicity of SOA systems in an open environment, we design a corresponding dynamic monitoring approach. We identify two key properties of the loosely coupled monitoring system: dynamicity resilience, i.e., after the unregistration of a service, its interface monitor and its current state are kept alive in memory and transferred to a new loaded service; comprehensiveness, i.e., the implementations of the monitored interface can’t bypass the monitor observations. Secondly, to avoid stale references usage, we propose a client-side safe service usage (SSU) layer to automatically handle them. If a used service disappears, then the SSU layer can either transparently substitute it or throw an exception to the client. This SSU layer is based on a transactional approach which aims to preserve the coherence of active services. Thirdly, we propose to integrate both approaches into a new monitoring system (NewMS). The NewMS inherits the principles of both systems: dynamicity resilience, comprehensiveness and fault tolerant. It can dynamically monitor service usage and transparently handle stale references of dynamic SOA systems. All the three propositions are implemented on OSGi-based platform. We develop a simple application that simulates an Airline Reservation system, which is monitored by our monitoring systems. We also develop various automata to handle the dynamicity of the Airline Reservation system in the NewMS. Our results demonstrate that the time cost of our monitoring systems is close to one of classical monitoring systems.
Les architectures dynamiques orientées services (D-SOA) se concentrent sur les interactions client-serveur à couplage faible, où les deux peuvent apparaître et disparaître à l’exécution. Notre objectif est de concevoir des systèmes de surveillance pour ces architectures. Comme les systèmes de surveillance classiques sont statiquement injectés dans les services surveillés, ils ne peuvent pas gérer correctement le cycle de vie des services d’exécution. En outre, quand un service est remplacé par un autre service, d’autres services peuvent toujours utiliser l’ancienne référence. Cette référence vers un service absent, lorsqu’elle est gardée en mémoire, peut induire des comportements non désirés. Cette thèse contribue à la conception d’un système de surveillance de l’utilisation des services, qui soit résistant à la dynamique de la plateforme et qui soit en mesure de faire face à l’utilisation des références obsolètes. Ce but est atteint en trois étapes. Tout d’abord, en considérant le caractère dynamique des systèmes SOA dans un environnement ouvert, nous concevons une approche de monitoring résistant au la dynamique de la plateforme. Nous identifions deux propriétés clés du système de surveillance à couplage faible: résilience à la dynamicité, c’est-à-dire qu’un moniteur d’interface et son état sont maintenus en mémoire et transférés à un nouveau service lors de la disparition d’un service utilisé, et exhaustivité́, c’est-à-dire qu’un service surveillé ne peut pas contourner les observations du moniteur. Ensuite, pour éviter l’usage de références vers des services qui ne sont plus actifs, nous proposons un service de sécurité́ côté client (SSU Layer), qui permet de traiter ce problème de manière transparente. Si un service utilisé disparaît, la couche SSU peut soit substituer le service de manière transparente, soit lever une exception pour avertir explicitement le client. Cette couche SSU est basée sur une approche transactionnelle qui vise à préserver la cohérence des services actifs. Enfin, nous proposons d’intégrer les deux approches dans un nouveau système de surveillance (NewMS). Les NewMS hérite des principes des deux systèmes précédents : la résilience à la dynamicité, l’exhaustivité et la tolérance aux fautes. Il peut dynamiquement surveiller l’utilisation de services et traiter les références obsolètes de manière transparente. Ces trois propositions sont implémentées dans la plateforme OSGi. Nous avons développé une application simple qui simule un système de réservation de place, qui est monitoré par notre système. Nous avons également proposé différentes spécifications pour ce système. Nos résultats démontrent que le coût d’observation de notre moniteur est proche du coût d’un monitor classique, ne prenant pas en compte les problématiques liées à la dynamique.
Origine | Version validée par le jury (STAR) |
---|
Loading...