Ahammer, A. (2013). Managing and automating configuration in software product lines for enterprise web applications [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/79241
Web-Applikationen enthalten eine Fuelle von Konfigurationsdateien, mit deren Hilfe man zahlreiche Parameter festlegen kann. Im Falle eines einzelnen Produkts kann man diese unter Umstaenden mittels eines Versionskontrollsystems mit dem restlichen Programmcode verwalten. Wenn man allerdings eine Produktlinie mit vielen aehnlichen Produkten verwalten muss bzw. verschiedene Konfigurationen fuer Test- und Produktivbetrieb verwendet, dann benoetigt man eine Moeglichkeit, die Konfigurationen der einzelnen Produkte separat zu verwalten. Ausserdem muss man einen Weg finden, wie man die Konfigurationen auf neue Software-Versionen automatisch anwendet, da das Setzen aller Parameter von Hand nicht nur aufwaendig, sondern auch sehr fehleranfaellig ist. Das Ziel der vorliegenden Arbeit war es daher, ein System zu entwickeln, das die Konfigurationsverwaltung fuer Produktlinien von Enterprise-Webapplikationen unterstuetzt und teilweise automatisiert. Es sollte einerseits das Abspeichern der Konfigurationsinformationen in maschinenlesbarer Form ermoeglichen und andererseits ein Konfigurationswerkzeug bieten, das die Konfigurationen anwenden kann. Ueberdies sollte es moeglich sein, das Werkzeug in die Buildautomatisierung zu integrieren. In einem ersten Schritt wurden existierende Produkte untersucht und alle vorhandenen Konfigurationsparameter analysiert und dokumentiert. Danach wurde ein Objektmodell abstrahiert, das eine Abbildung und Speicherung aller verwendeten Konfigurationen erlaubt. Dabei wurde auf einfache Erweiterbarkeit geachtet und die speziellen Anforderungen von Softwareproduktlinien beruecksichtigt. Aufbauend auf dem Modell wurde dann die Konfigurationsapplikation entwickelt, die in der Lage ist, mittels eines einfachen Aufrufes jede der Produktvarianten zu konfigurieren. Im letzten Schritt wurde das Konfigurationsprogramm in den automatischen Buildzyklus des verwendeten Continuous Integration-Servers integriert. Dadurch ist es moeglich, in regelmaessigen Abstaenden automatisch die verschiedenen Applikationen zu bauen und korrekt konfiguriert zu deployen. Darueber hinaus konnte die notwendige Zeit, um ein Produkt korrekt zu konfigurieren, durch das System deutlich reduziert werden. Aus dem gemessenen Zeitunterschied zwischen automatischer und manueller Installation ergibt sich je nach Produkt eine Zeitersparnis zwischen 17 und 40 Minuten.
de
Web applications offer a multitude of configuration switches that need to be set correctly. In case of a single product it is feasible to manage the configuration files with the source code in a version control system. However, in case of a product line with many similar products it is necessary to have means to manage the configurations separately. Furthermore it is desirable to be able to apply the configurations automatically, because a manual configuration is error prone and time consuming. The aim of this thesis was the creation of a system that supports (and partially automates) the configuration management of software product lines of enterprise web applications. It should support the storage of configuration information in machine readable form and provide a tool that is able to apply those configurations automatically. Furthermore the tool should be integrable in the build automation system. In a first step the products of the product line were analyzed and all existing configuration switches were documented and categorized. Afterwards an object model was abstracted which is able to cover the configurations of the product line. A focus was laid on extensibility and the special requirements of software product lines. Based on the model a configuration tool was developed which is able to configure each product. Finally the tool was integrated in the automatic build process of the continuous integration server. Thus, it is now possible to build all products automatically and deploy them correctly configured. Moreover the required time to configure a product was considerably reduced. The measured time saving between automated and manual installations ranges from 17 to 40 minutes (depending on the complexity of the installation).
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in dt. Sprache