Back to Search
Start Over
Context-aware configuration
- Publication Year :
- 2017
- Publisher :
- TU Wien, 2017.
-
Abstract
- Software ist mit Hilfe von Konfigurationseinstellungen, welche ��blicherweise in Konfigurationsdateien gespeichert werden, hochgradig adaptiv. Moderne Systeme beinhalten bereits detaillierte Informationen, in welchem Kontext sich das System gerade befindet. Wir definieren Kontext als jede Information relevant f��r Konfigurationseinstellungen, zum Beispiel der aktuelle Ort, vorhandene Hardware, Netzwerkkonfigurationen, Konfigurationen anderer Programme, etc. Heutzutage sind Konfigurationseinstellungen und Kontext nicht verbunden. Adaptionen von Konfigurationseinstellungen, wie besseres Anpassen an den Kontext, werden manuell durchgef��hrt -- oftmals in komplizierten Schnittstellen und ohne hilfreiche R��ckmeldungen bei Fehlern. Mit einer in der Arbeit durchgef��hrten Umfrage und Quelltextanalyse erkannten wir Ursachen daf��r, warum Programme derzeit selten Kontext ber��cksichtigen: Entwickler haben Informationen ��ber den Kontext nicht bequem verf��gbar und vermeiden Abh��ngigkeiten zu Software, welche die Informationen bereitstellen k��nnte. Wir zielen darauf ab, diese Probleme durch eine systemnahe Konfigurationsspezifikationssprache, welche die Beziehungen zwischen Konfigurationseinstellungen und Kontext beschreibt, zu l��sen. Der Hintergedanke ist, dass die Ber��cksichtigung von Kontext in den Konfigurationseinstellungen die Benutzerfreundlichkeit erh��ht und fehlerhafte Konfigurationseinstellungen reduziert. Unsere Konfigurationsspezifikationssprache orchestriert dabei Frontends und Backends, um den Zugriff auf Konfigurationseinstellungen zu vereinheitlichen. Wir f��hren ein Frontend (eine Programmierschnittstelle f��r Entwickler) ein, welches mittels Quelltextgenerierung die Konfigurationsspezifikationssprache in kontextsensitive Variablen abbildet und dabei Kontextsensitivit��t in dynamischen Sichtbarkeitsbereichen erm��glicht. Die Konfigurationsspezifikationssprache modularisiert Quelltexte in Form von Plugins, mit deren Hilfe die Backends aufgebaut werden. Dadurch werden die zuvor genannten Probleme von fehlenden Kontextinformationen in Applikationen und unerw��nschten Abh��ngigkeiten gemindert. Um unseren Ansatz zu validieren, haben wir mehrere Sprachkonstrukte einer modularen Konfigurationsspezifikationssprache implementiert. Wir haben die Implikationen unserer neuartigen modularen Abstraktionen der Konfigurationsspezifikationssprache ausf��hrlich evaluiert. Dabei diskutieren wir Funktionalit��t zur Introspektion, neu entwickelte Werkzeuge, Analysen zur Fehlerbehebung und Entwicklungszeit. Ebenfalls messen wir den durch Backends verursachten Mehraufwand und vergleichen L��sungen, implementiert als Frontends und Backends, mit dem Ergebnis, dass Mehraufw��nde in modularen Backends gering sind. Trotz Kontextsensitivit��t erm��glicht das Frontend lesende Zugriffe auf Konfigurationseinstellungen mit der Laufzeit-Effizienz von native Variablen. Da es unrealistisch ist alle existierenden Applikationen auf solche typsicheren Frontends umzuschreiben, demonstrieren wir verschiedene M��glichkeiten, wie bestehende Applikationen ebenfalls an unsere Backends angebunden werden k��nnen. Mit 16 bekannten Standardapplikationen, wie etwa Firefox, zeigen wir, dass die Kontextsensitivit��t der Konfigurationseinstellungen auch ohne Quelltext��nderungen verbessert werden kann.<br />With the help of configuration Settings --usually stored in configuration files-- applications are highly adaptable. Modern systems give us detailed information about the context the system is situated in. We define context as every information relevant for configuration settings, for example, the location, available hardware, the network settings, settings of other applications, etc. Today, configuration settings and the context are not connected. Adaptations of configuration settings to better fit the context happen manually -- often in complicated interfaces and without proper feedback on errors. Using a questionnaire survey and a source code analysis, we reveal obstacles why applications rarely account for context: Developers do not have context information readily available and dislike dependences to software that would give them the information. We aim to overcome these problems by introducing a novel system-level configuration specification language, which specifies the relation between context and configuration settings. Including more context into configuration settings improves usability and decreases misconfiguration. Our configuration specification language orchestrates frontends and backends for unified, context-aware access to configuration settings. We introduce a frontend (an API) that maps via code generation the configuration specification language to context-aware variables. We use it to enable context adaptations in dynamic scopes as suggested by context-oriented programming. The configuration specification language modularizes the system into plugins that build up backends. The modularization mitigates the previously mentioned applications' problems of missing context information and unwanted dependences. We implemented different language constructs for the modular configuration specification language to validate our approach. We evaluate the implications of the novel modular abstractions in the configuration specification language in-depth. We discuss emerging tools, debugging support, introspection, and development time. Furthermore, we measure the overhead caused by the backends and compare solutions, implemented in the frontend and backend, with the result that the overhead in modular backends is small. Despite the context awareness, the frontend enables read access to configuration settings with the run-time efficiency of native variables. Because it is unrealistic that every application gets rewritten to use such type-safe frontends, we demonstrate different ways to connect legacy applications with our backends. With 16 well-known standard applications, such as Firefox, we show the feasibility and practicality of increasing context awareness of configuration settings without modifying any source code.
Details
- Language :
- English
- Database :
- OpenAIRE
- Accession number :
- edsair.doi...........f52808505be2ea3624bd80581b276c27
- Full Text :
- https://doi.org/10.34726/hss.2017.48840