Autonomic monitoring and management of component-based services
Institution:
NiceDisciplines:
Directors:
Abstract EN:
Software, applications have evolved from monolithic, stable, centralized and structured applications to decentralized, distributed and dynamic software, forcing a change in the development process. The focus has turned t service-based applications, where the functionality is delivered “as a service” and where independent providers offer services that can be dynamically composed and reused giving rise to a growing ecosystem of loosely-coupled, geographically dispersed, and rapidly evolving services. The dynamic evolving and heterogeneous nature of service compositions makes the management tasks more complex as not all the services are under the control of a single entity, and the environmental changes at runtime cannot be completely foreseen. Consequently, a service-based application needs to adapt itself. In this thesis, we present a generic framework to improve the adaptability of component-based services by giving a common means to introduce monitoring and management tasks at runtime and allow to provide autonomic behavior. The framework follows a component-based approach where the tasks of an autonomic control loop can be inserted and removed at runtime in order to adapt to the management needs. We present the design of our framework using a generic component model (SCA) and we provide an implementation using a middleware that supports distributed component-based services (GCM/ProActive). We illustrate our approach through an example application improved with management features and autonomic behavior. The examples and evaluations lead us to think that this approach is a feasible tool that facilitates the insertion and development of autonomic features.
Abstract FR:
Les applications ont évolué, depuis les logiciels monolithiques, stables, centralisés et fortement structurés, à des logiciels fortement décentralisés, distribués et dynamiques. Ce qui a provoqué un changement dans le processus de développement. Ainsi, les préoccupations actuelles sont tournées vers le développement des logiciels orientés services, où le pivot est la fourniture de toute fonctionnalité en tant que service, où des fournisseurs indépendants proposent des services qui peuvent être composés de façon dynamique, et réutilisés pour intégrer de nouvelles applications à valeur ajoutée, ce qui donne naissance à un écosystème grandissant de services à couplage faible, géographiquement distribués, et qui évoluent rapidement. Malgré les avantages offerts par l’approche basée services pour le développement des logiciels, il se pose aussi de nouveaux défis. La nature dynamique, évolutive et hétérogène de ces compositions de services rend les tâches de gestion plus complexes, car les services ne sont plus contrôlés pour une seule entité, et les changements de l’environnement pendant l’exécution d’une composition des services ne peuvent pas être complètement prévus à l’avance. Pour être capable d’affronter ces types de situations, un logiciel basé sur des services doit s’adapter de manière si possible autonome à ces conditions. Dans cette thèse, nous présentons un canevas générique qui permet d’améliorer l’adaptabilité des logiciels basés sur des services en proposant un moyen uniforme et efficace pour ajouter des tâches de surveillance et de gestion dans une application, et aussi permettre de fournir un comportement autonomique. Le canevas est lui-même basé sur des composants logiciels, SCA au niveau de la conception, et GCM/ProActive au niveau de la mise en œuvre. Nous illustrons la faisabilité de notre approche à travers un exemple d’application basée sur des services, que nous étendons avec des fonctionnalités de surveillance et d’administration autonomes. Ces exemples et leur évaluation nous laissent penser que notre approche est utilisable en pratique.