Achieving Autonomic Computing through the Use of Variability Models at Run-time
Carlos Cetina Englada · 2010
Increasingly, software needs to dynamically adapt its behavior at run-time in response to changing conditions in the supporting computing infrastructure and in the surrounding physical environment.Adaptability is emerging as a necessary underlying capability, particularly for highly dynamic systems such as context-aware or ubiquitous systems.These systems have reached a level of complexity where the human effort required to get the systems up and running and keeping them operational is getting out of hand.By automating tasks such as installation, adaptation, or healing, Autonomic Computing envisions computing environments that evolve without the need for human intervention.Even though there is a fair amount of work on architectures and their theoretical design, Autonomic Computing was criticised as being a "hype topic" because very little of it has been fully implemented.Furthermore, given that the autonomic system must change states at runtime and that some of those states may emerge and are much less deterministic, there is a great challenge to provide new guidelines, techniques and tools to help autonomic system development.This thesis shows that building up on the central ideas of Model Driven Development (Models as first-order citizens) and Software Product Lines (Variability Management) can play a significant role as we move towards implementing the key self-management properties associated with autonomic computing.The presented approach encompass systems that are capable of modifying their own behavior with respect to changes in their operating environment, by using variability models as if they were the policies that drive the system's autonomic reconfiguration at runtime.Under a set of reconfiguration commands, the components that make up the architecture dynamically cooperate to change the configuration of the architecture to a new configuration.v RESUM Cada vegada més els sistemes de programari necessiten adaptar el seu comportament dinàmicament com a resposta a esdeveniments de la seua pròpia infraestructura o de l'entorn físic que els envolta.L'adaptabilitat s'està convertint en una capacitat bàsica per als sistemes de programari, particularment per a aquells sistemes altament dinàmics, com és el cas dels sistemes sensibles al context o els sistemes ubicus.No obstant, aquests sistemes han arribat a un nivell de complexitat on l'esfoç requerit per a mantindre-los operatius es massa elevat.Mitjançant l'automatització de tasques com la instal⋅lació, l'adaptació o la reparació, la Computació Autònoma proposa entorns de computació que evolucionen sense la necessitat d'intervenció per part dels usuaris.No obstant, malgrat que existeix una raonable quantitat de treball en disseny teòric d'arquitectures, la Computació Autònoma ha estat criticada com "un tema massa ambiciós" a causa de la falta d'implementacions que materialitzen les idees proposades.A més, la naturalesa dels sistemes de Computació Autònoma (on el seu estat canvia en temps d'execució d'una manera dinàmica) planteja un gran desafiament per a suportar el desenvolupament d'aquest tipus de sistemes mitjançant guies, tècniques i eines.Aquesta tesi mostra que la combinació de les idees principals del Desenvolupament de Programari Dirigit per Models (models com artefactes de primer ordre) i les Línies de Producte de Programari (gestió de la variabilitat) pot jugar un paper important cap a la implementació de les propietats d'autogestió proposades per la Computació Autònoma.La proposta presentada proposa sistemes que són capaços de modificar el seu propi comportament d'acord a canvis en el seu entorn.Açò s'aconsegueix emprant models de variabilitat com si fossen les polítiques que dirigeixen la reconfiguració autònoma del sistema en temps d'execució.Sota un conjunt de comandaments de reconfiguració, els components que formen l'arquitectura ix x de programari cooperen dinàmicament per a permetre canviar el sistema d'una configuració a una altra.Aquest treball també proporciona la implementació d'un Motor de Reconfiguracions basat en Models (MoRe per les seues sigles en anglés) que materialitza les idees proposades.Donat un esdeveniment de context, MoRe consulta els models de variabilitat per a determinar com ha d'evolucionar el sistema i després proporciona mecanismes per a modificar l'arquitectura del sistema en conseqüència.El treball presentat ha estat validat des de tres perspectives diferents: (1) escalabilitat de la proposta, (2) riscos basats en la seguretat de les reconfiguracions i (3) nivell de comportament autònom aconseguit.Aquesta avaluació va ser realitzada amb la participació d'usuaris mitjançant el cas d'estudi d'un Hotel Intel⋅ligent que utilitzava dispositius reals.Els experiments mostren que la proposta obté resultats satisfactoris respecte a escalabilidad i risc de les reconfiguracions; no obstant això, vam trobar alguns escenaris que van requerir un major nivell de detall per a definir el comportament autònom, ja que aquests escenaris entraven en conflicte amb algunes preferències dels usuaris.Encara que aquests escenaris podien ser abordats mitjançant components específics per als casos no suportats, no sembla realista construir característiques del sistema per a satisfer a cada usuari de forma individual.La nostra intenció és centrar-nos en generalitzacions i abstraccions que siguen vàlides per al conjunt total d'usuaris, cercant un equilibri entre personalització i reutilització.