Programmbibliotheken wie Elektra ermöglichen allen lokal installierten Programmen den Zugriff auf eine gemeinsame Konfigurationsdatenbank.<br />Benutzer von Applikationen wünschen, dass ihre Programme stärker in das Gesamtsystem integriert sind, dass die Einstellungen - durch Benachrichtigungen über Änderungen - immer am neuesten Stand gehalten werden, dass ihre bevorzugten Konfigurationsformate unterstützt werden und dass sie trotzdem die Gewissheit haben, dass beim Speichern der Optionen nur funktionierende Einstellungen in die Konfigurationsdatenbank gelangen.<br />Das konkrete Problem dabei ist, dass die genauen Anforderungen je nach Applikation und Betriebssystem variieren und dass es oftmals gleichwertige oder konkurrierende Möglichkeiten gibt den Aufgaben gerecht zu werden.<br />In dieser Diplomarbeit wurde das Problem durch Modifikationen von Elektra gelöst. Die einzelnen Aufgaben werden in austauschbaren, wiederverwendbaren Plugins implementiert. Mehrere solche Plugins zusammen bauen einen Zugriff auf Teile der Konfigurationsdatenbank auf, welche dann gemeinsam die gesamten Anforderungen erfüllen.<br />Zur Überprüfung dieses Ansatzes wurde eine Reihe von Plugins implementiert und in verschiedenen Szenarien versuchsweise eingesetzt.<br />Dabei zeigt sich, dass sich beim Herausschreiben der Konfiguration Vorteile ergeben, wenn die Überprüfung der Struktur der Optionen und die Validierung der einzelnen Werte in zwei Phasen gegliedert sind.<br />Dadurch wird ermöglicht verschiedenste Validierungen - mitunter auch Applikations- oder Plugin-spezifische - zu kombinieren.<br />Es wurden verschiedene Methoden erprobt, wie solche Plugins entwickelt werden können. Dabei stellte sich heraus, dass Plugins auch sehr schnell realisiert werden können, wenn sie das Potential von bereits existierenden Plugins und Bibliotheken nutzen.<br />Es ist zudem elegant möglich, vom Betriebssystem abhängige Teile von unabhängigen zu trennen.<br />Durch das Einhängen der Plugins in die gemeinsame Konfigurationsdatenbank zur Laufzeit werden die Eigenschaften und Funktionalitäten für diese Teile verändert.<br />Aber durch Überprüfung von Kontrakten, welche die Plugins exportieren, kann trotz der zusätzlichen Flexibilität eine reibungslose Zusammenarbeit garantiert werden.<br />Plugins können sich sogar darauf verlassen, dass bestimmte Aktionen bereits vorher durchgeführt wurden.<br />
de
dc.description.abstract
Libraries like Elektra provide access to a shared configuration database across all locally installed applications.<br />Users prefer applications integrated well within the system they use.<br />They are in favour of settings that are always up to date.<br />Users also want their favourite configuration file formats to be supported.<br />They want a guarantee that the system storing their options only accepts a working configuration.<br />The concrete problem is that the specific requirements vary according to the programs and the operating system. Similar or competing possibilities exist to achieve specific tasks.<br />We address the problem by modifying Elektra in this master's thesis.<br />A reusable, exchangeable plugin cares for a specific concern.<br />Several plugins together build up the access to a part of the configuration database that deals with the complete users' requirements.<br />We implemented a number of plugins to verify the approach.<br />We tested the implementations in different use cases.<br />It soon became clear that checking the configuration before storing is much more flexible if the validation of the structure and the values are separated in two phases.<br />It facilitates combinations of several checks.<br />Occasionally these checks are made specifically for an application or plugin.<br />We evaluated and tried different ways in which to implement such plugins.<br />We came to the conclusion that plugins can be realised quickly if the potential of existing plugins and libraries is used.<br />Code needing operating system specific facilities can be easily separated into other plugins.<br />As a result of mounting the plugins, the capabilities and features of the shared configuration database changes.<br />But because of checking contracts exported by plugins, the interplay of plugins is guaranteed even though the system is now much more flexible.<br />It even goes so far that plugins can count on actions taken by other plugins.<br />