Faculté des sciences

Automatic software configuration : a model for service provisioning in dynamic and heterogeneous environments

Schubiger-Banz, Simon ; Hisbrunner, Béat (Dir.)

Thèse de doctorat : Université de Fribourg, 2002 ; no 1393.

This dissertation addresses three fundamental problems, which have to be handled in application domains like ubiquitous computing and Web services. The three problems heterogeneity, static configuration, and dynamic configuration are not only considered to persist during the near future but to increase, as similar application domains will emerge. The heterogeneity problem is defined and examples... More

Add to personal list
    Zusammenfassung
    Diese Dissertation behandelt drei fundamentalen Problemen, die im Umfeld von Ubiquitous Computing und Web-Diensten auftreten. Es handelt sich um Heterogenität sowie statische und dynamische Konfiguration. Das Heterogenitätsproblem wird definiert und anhand von Beispielen in den Bereichen Anwendungen, Middleware, Kommunikation und Hardware illustriert. Anschliessend werden die heute verwendeten Lösungen präsentiert. Das statische Konfigurationsproblem tritt vor allem während der Entwicklung und der Umsetzung von Software und Hardware auf. Im Bereich des Software-Engineering wird viel Forschung betrieben, welche zu Architekturbeschreibungssprachen und vielen Software- Konfigurations-Management-Werkzeugen geführt hat. Das statische Konfigurationsproblem wird definiert und anhand von heutigen Werkzeugen beleuchtet. Weiter hat das Konfigurationsproblem auch einen dynamischen Aspekt, im Speziellen in Umgebungen wie Ubiquitous Computing wo die Konfiguration schnell ändert oder dem Internet, wo neue Dienste täglich aufgeschaltet werden oder verschwinden. Es wird eine Definition gegeben und es werden sowohl Software-Systeme, die für dynamische Umgebungen entwickelt wurden, als auch der Aspekt der dynamisch sich ändernden Hardwarekonfiguration betrachtet. Als wichtigstes Resultat dieser Arbeit wird das COCA Model vorgestellt. Zudem werden die sieben Hauptelemente, welche das Design und die Entwicklung von Applikationen für heterogene und dynamische Umgebungen vereinfachen, eingeführt. Diese sieben Elemente sind: Ressourcen als die fundamentale Abstraktion innerhalb von COCA und die atomaren Einheiten, die manipuliert werden. Kontexte sind Behälter, die Ressourcen enthalten und deren Zugriff sowie den Namensraum definieren. Klassifikatoren sind die Grundlage für die semantische Abstraktion und assoziieren Konzepte mit Ressourcen. Konzepte sind die semantische Abstraktion, die von den Klassifikatoren eingeführt werden und die Konstruktion von Ontologien erlauben. Ontologien bestehen aus Konzepten, die in Beziehung mit anderen Konzepten stehen. Zusammen mit einem Inferenzmechanismus erlauben sie eine erweiterte Semantik. Relationen werden verwendet um die erweiterte Semantik in Ontologien auszudrücken. Aktionen behandeln den dynamischen Aspekt und erlauben die Transformation von Ressourcen zwischen Konzepten. Die Umsetzung von COCA erlaubt sowohl das automatische Konfigurieren von Software als auch des Adressieren durch Konzepte welches die Konstruktion von fehlertoleranten Systemen ermöglicht. COCA hilft nicht nur bei der Umsetzung von Software-Systemen, sondern unterstützt auch die Integration von objektorientierten Systemen, sowie funktionaler und logischer Programmierung. Autonome Agenten und das Entity-Relationship-Model finden eine Korrespondenz in COCA. Die Vorgänger von COCA werden zusammen mit drei Implementationen des Modells vorgestellt. Der Ubiquitous Computing Demonstrator ist die erste COCA-Umsetzung, die alle Elemente implementiert und einfache automatische Software-Konfiguration und das Adressieren durch Konzepte verwendet. Schliesslich wird das Modell mit einer Auswahl von Systemen verglichen, welche ein ähnliches Anwendungsgebiet wie COCA haben oder andere Gemeinsamkeiten aufweisen.
    Summary
    This dissertation addresses three fundamental problems, which have to be handled in application domains like ubiquitous computing and Web services. The three problems heterogeneity, static configuration, and dynamic configuration are not only considered to persist during the near future but to increase, as similar application domains will emerge. The heterogeneity problem is defined and examples taken from applications, programming environments, middleware, communication, and hardware illustrate the importance of the heterogeneity problems on all these levels as well as the solutions in use today. The static configuration problem mainly appears during development and deployment of software and hardware. There is much research going on in the software engineering field to better handle the static configuration aspects of computer systems. This lead to architecture description languages and software configuration management tools which together aim at covering the entire software construction process. The static configuration problem is defined and examples of static configuration support in current systems are given. The configuration problem has also a dynamic aspect especially in environments like ubiquitous computing where the configuration consisting of mobile devices is easily modified or on the Internet where new services appear and disappear daily. A definition of the dynamic configuration problem together with examples of software systems conceived for dynamic environments are presented as well as how changing hardware configuration is handled today. The COCA model as the key result of this dissertation introduces seven elements helping in the design and implementation of systems for heterogeneous and dynamic environments. These elements are: Resources as the root abstraction of COCA and the atomic unit that can be handled. Contexts are the containers resources live in and define resource access and naming. Classifiers are a solution of the symbol grounding problem and provide the basic level of semantic abstraction by associating concepts with resources. Concepts are the semantic abstractions grounded by classifiers and used to construct ontologies. Ontologies consist of interrelated concepts and provide higher level semantics together with an inference mechanism. Relations are used to represent higher level semantics in ontologies. Actions capture the dynamic aspects of the model by transforming resources from one concept to another. Applying COCA allows automatic configuration of software items and addressing by concept, which in turn enables the construction of fault tolerant systems. COCA not only helps in system design, it also accommodates important programming paradigms such as object oriented, functional, and logic programming. Autonomous agent systems and the entity relationship model have also a mapping to COCA resulting in a wide coverage of important concepts currently found in computer science. Additionally, the two forerunners of COCA as well as three implementations of the model are presented. The ubiquitous computing demonstrator as a first COCA implementation for the ubiquitous computing domain not only realizes all the elements of the model but also a simple mechanism for automatic software configuration and uses addressing by concept. Finally, the model is compared with a selection of systems used in similar areas or sharing features with COCA.