Universität Stuttgart
Permanent URI for this communityhttps://elib.uni-stuttgart.de/handle/11682/1
Browse
Search Results
Item Open Access Concept for executing management operations on components of application instances(2019) Sowoidnich, YannicA large field of technologies exist for orchestrating cloud applications. Many of them focus on automated deployment techniques, rather than continous management of application instances. Executing operations for deploying applications is different from executing management operations, due to their dependencies to the application state. Proper state management is important to guarantee valid execution of management operations. Cloud providers such as Amazon have embedded functions for managing cloud applications, but they come with major drawbacks. They increase vendor-dependency and they do not support multi-cloud deployments. Technologies like Chef, Puppet or Terraform work with declarative process models, which cannot be used for non-state-changing operations and they mostly only allow simple operations. It is impossible to execute more customized fine grained operations with those technologies. Also, most of these management tools only support executing operations on the whole application, not on specific components of the application. The objective of this thesis is to find a way for executing management operations on running application instances by combining the information of the deployment model with the instance model of the application. The conceptual approach proposed in this thesis will consider and solve above addressed issues, as well as ensuring proper state management of application instances. The practical feasibility of this concept is validated by a prototypical implementation based on the TOSCA standard and the OpenTOSCA ecosystem.Item Open Access Design und Implementierung eines Konzepts zur eindeutigen Identifizierung von Softwarekomponenten auf Geräten im IIoT-Umfeld(2019) Güth, JanUnter dem Begriff Internet der Dinge (Internet of Things (IoT)) werden Konzepte und Technologien zusammengefasst, die physischen Geräten die Vernetzung mit dem Internet ermöglichen. Beim Begriff des klassischen IoT stehen in erster Linie die Vernetzung von Geräten im privaten Umfeld, wie z.B. Haushaltsgeräte, im Mittelpunkt. In den letzten Jahren haben sich jedoch einige Teilgebiete entwickelt, wie beispielsweise der Bereich des Industrial Internet of Things (IIoT), oft auch als Industrie 4.0 bezeichnet. Beim IIoT steht nicht der Verbraucher, sondern industrielle Prozesse und Abläufe im Mittelpunkt, die Probleme in den verschiedenen Teilgebieten sind jedoch meist dieselben. Eines dieser Probleme stellt die Identifizierung von Geräten und Software dar. Die Identifikation von Geräten mit eindeutigen und unveränderlichen Hardwaremerkmalen ist relativ leicht zu lösen, die eindeutige Identifikation von Software nicht. Die vorliegende Arbeit befasst sich mit der Ausarbeitung eines Konzepts zur eindeutigen Identifizierung von Software auf verschiedenen Geräten. Dabei soll der Identifizierungsmechanismus zur Einhaltung von Softwarelizenzbedingungen verwendet werden können. Auch verschiedene Ausführungsumgebungen, wie beispielsweise virtuelle Maschinen, sollen im Konzept berücksichtigt werden. Des Weiteren wird untersucht, ob auch eine hardwarebasierte Sicherheitstechnologie wie Intel SGX zur Lösung des Identifikationsproblems eingesetzt werden kann. Durch eine prototypische Implementierung und eine abschließende Evaluierung wird gezeigt, dass der entwickelte Identifizierungsmechanismus eine Unterscheidung von verschiedenen Geräten und der darauf ausgeführten Software zulässt und somit auch zur Einhaltung von Softwarelizenzbedingungen verwendet werden kann.Item Open Access Serverless Applikationen in Multi-Cloud-Umgebungen : Architektur und Design Eventbasierter Kommunikation(2019) Hagg, DanielKurze Entwicklungszeiten, nahezu grenzenlose Skalierung und den Betrieb eines Services ohne Verwaltungs- und Managementaufwand der zugrundeliegenden Ressourcen für den Entwickler. All das verspricht der Ansatz des Serverless Computing. Aufgrund der starken Abhängigkeit des entwickelten Services zum Cloud-Provider besteht dabei allerdings stets die Gefahr des Vendor Lock-Ins. Dieser Vendor Lock-In wird beispielsweise dann erkennbar, wenn im Anwendungsfall die Nutzung mehrere Cloud-Umgebungen in einer Multi-Cloud vorgesehen ist. Eventbasierte Kommunikation, die den Serverless Applikationen zugrunde liegt, lässt sich nicht einfach auf weitere Cloud-Umgebungen erweitern. Dazu fehlen Standards und Schnittstellen. In dieser Arbeit wird das Problem der Eventbasierten Kommunikation in Multi-Cloud-Umgebungen analysiert. Aus dieser Analyse der Anforderungen werden Konzepte entwickelt, deren Realisierbarkeit im Folgenden anhand von Prototypen gezeigt wird. Dabei zeigt sich, dass die benötigten Lösungsansätze auf die unterschiedlichen Anwendungsfälle zugeschnitten werden müssen. Insbesondere die Prototypen zeigen Probleme auf, die trotz der Nutzung von offenen Standards auftreten, wie einer HTTP-Schnittstelle und der CloudEvents Spezifikation. Dabei sticht beispielsweise die Authentifizierung der Umgebungen untereinander heraus, da dafür kein Standardvorgehen zwischen den Providern besteht. In dieser Arbeit wird Eventbasierte Kommunikation in Multi-Cloud-Umgebungen ermöglicht.Item Open Access Automatisierte Archivierung und Wiederinbetriebnahme cloud-basierter Anwendungen(2019) Matheis, GerdMit der Einführung von Cloud-Infrastrukturen, auf denen Anwendungen entwickelt und bereitgestellt werden können, hat sich die Entwicklung von Software maßgeblich verändert: Während vor einigen Jahren noch der Entwickler oder gar der Kunde selbst die benötigte Infrastruktur für die jeweilige Software bereitstellen musste, werden heute viele web-basierte Anwendungen direkt für die Cloud entwickelt. Dies bringt den Vorteil, dass sich weder der Kunde noch der Softwarehersteller um die Wartung der Infrastruktur kümmern müssen. Darüber hinaus lassen sich Updates viel einfacher verteilen. Diese Vorteile führen dazu, dass immer mehr und immer größere Anwendungen direkt für die Cloud entwickelt und dort betrieben werden. Dabei bestehen die Anwendungen meistens aus einem vielschichtigen und komplexen Netz so genannter Microservices. Dadurch wird es immer schwieriger, die kleinen Bestandteile einer großen Anwendung aufeinander abzustimmen. Um dieses Problem zu lösen, wurden Software-Systeme, wie beispielsweise OpenTOSCA, entwickelt, welche das Einrichten und Verwalten von Cloud-Systemen vereinfachen oder ganz automatisieren sollen. Cloud-basierte Software wird von den Cloud-Betreibern nach Verbrauch abgerechnet. Das bedeutet, dass der Betreiber der Software nur für die Ressourcen zahlt, welche er auch in Anspruch nimmt. Wird aber eine Cloud-Anwendung nur zeitweise benötigt, fallen auch außerhalb der Nutzungszeiten Kosten an, wenn die Anwendung weiterhin in der Cloud bereit steht. Werden die Komponenten jedoch abgeschaltet, kann es bei zustand-behafteten Komponenten zu Datenverlust kommen, wodurch nur zwei Optionen bleiben: Die entsprechenden Komponenten werden weiterhin betrieben und verursachen weiterhin Kosten oder es muss ein Abschaltmechanismus in die Cloud-Anwendung einprogrammiert werden, welcher den Zustand der Komponenten konserviert und beim nächsten Start der Anwendung wieder lädt. Es ist daher wünschenswert, dass Systeme wie OpenTOSCA in der Lage sind, laufende Cloud-Anwendungen zu archivieren und zu einem späteren Zeitpunkt in exakt diesem Zustand wieder auszuführen. Ziel dieser Arbeit ist es, einen Prototypen für ein solches System zu entwickeln und den Ansatz anhand eines Minimal-Beispiels zu testen. Hierbei wird ein besonderer Fokus auf zustand-behaftete Komponenten wie Message-Queues gelegt, da genau diese sich bisher als problematisch darstellen. Weiterhin sollte die Archivierung durch ein transaktionales Verfahren abgesichert werden, sodass nur ein erfolgreiches Archivieren der Anwendung zur tatsächlichen Löschung aus der Cloud führt. Die entsprechenden Hindernisse und Ergebnisse werden in diesem Dokument festgehalten.Item Open Access Software test automation for IoT applications : design and implementation of a test framework for the digital concepts gateway(2019) Basaula, Aanal RajThe popularity of Smart Devices are increasing everyday, with new devices designed and developed to help people with their daily tasks. Smart Home is one such example of amalgamation of devices where different sensors and actuators work together to help users perform day-to-day activities. This wide-spread adoption of such devices necessitates quality and reliability. This work focuses in the field of IoT devices for methods and measures that are available to test such devices. It presents Digital Concepts gateway as a case study and explores the findings of the special needs of testing within the context of this project. A test framework is proposed to tackle the discovered requirements of testing. An automated test environment is designed and implemented to further improve the quality of the software and an evaluation based on the effort required to maintain and execute tests is used as a decision making tool for Digital Concepts.Item Open Access Techniques for visualization and interaction in software architecture optimization(2019) Frank, SebastianSoftware architecture optimization aims at improving the architecture of software systems with regard to a set of quality attributes, e.g., performance, reliability, and modifiability. However, particular tasks in the optimization process are hard to automate. For this reason, architects have to participate in the optimization process, e.g., by making trade-offs and selecting acceptable architectural proposals. The existing software architecture optimization approaches only offer limited support in assisting architects in the necessary tasks by visualizing the architectural proposals. In the best case, these approaches provide very basic visualizations, but often results are only delivered in textual form, which does not allow for an efficient assessment by humans. Hence, this work investigates strategies and techniques to assist architects in specific use cases of software architecture optimization through visualization and interaction. Based on this, an approach to assist architects in these use cases is proposed. A prototype of the proposed approach has been implemented. Domain experts solved tasks based on two case studies. The results show that the approach can assist architects in some of the typical use cases of the domain. Conducted time measurements indicate that several hundred architectural proposals can be handled. Therefore, the approach usefully complements existing software architecture optimization approaches. Furthermore, it is a foundation for the participation of humans in the optimization process and further research in this field.Item Open Access Automatische Ressourcenselektion in Datenanalysepipelines(2019) Link, MarcoIn dieser Ausarbeitung werden ein Konzept sowie eine prototypische Implementierung für die automatische Relevanzbestimmung von semantischen Ressourcen zu den Eingabedaten von Datenanalysen vorgestellt. Dabei werden die einzelnen Pipelineschritte einer Datenanalysepipeline gesondert betrachtet. Zum Einsatz kommen Methoden und Metriken aus dem Information Retrieval. Durch die Anwendung des Prototyps auf beispielhafte Datenanalysepipelines und semantische Ressourcen wird der praktikable Nutzen der vorgeschlagenen Methode evaluiert. Hierzu werden die Relevanzen zu den Beispieldaten und Pipelineschritten bestimmt und durch die Integration der semantischen Ressourcen die Veränderung der Datenanalyseergebnisse beobachtet und diskutiert.Item Open Access Benutzung von Laufzeitdaten für die Wartbarkeitsanalyse von Service- und Microservice-basierten Systemen(2019) Schlinger, Steffen MatthiasMit der Entwicklung von immer mehr neuen IT-Produkten entsteht gleichzeitig eine immer größer werdende Menge an Quellcode. Da während der Entwicklung selten der Fokus auf eine gute Wartbarkeit gelegt wird, sondern auf andere Qualitätsattribute und die schnelle Fertigstellung des Projekts, wird ein Großteil der Entwicklungskosten für die Wartung benötigt [37, 40, 41]. Selbst wenn die Wartbarkeit eine Anforderung während der Entwicklung darstellt, ist sie schwer umzusetzen und noch schwerer zu messen. Traditionelle Ansätze basieren auf statischen oder dynamischen Analysen, beispielsweise Quellcode-Analysen, um Erkenntnisse über die Wartbarkeit zu gewinnen. Mit dem Aufkommen neuer Architekturen, wie Service- und Microservice-basierten Systemen, lässt sich die Wartbarkeit noch schlechter bis gar nicht mehr bestimmen. Diese Systeme verfolgen einen verteilten, heterogenen und teils dezentralen Ansatz, worauf die bisherigen Methoden nicht anwendbar sind. Um die Wartbarkeit dieser Systeme zu bestimmen reicht außerdem nicht die Sicht einer einzelnen Komponente des Systems aus, sondern es müssen alle beteiligten Komponenten gleichzeitig betrachtet werden, um die benötigten Informationen zu gewinnen. Da sich statische Analysen durch die starke Verteiltheit und hohe Heterogenität nicht anwenden lassen, bedarf es eines neuen Ansatzes, um die Wartbarkeit zu bestimmen. Diese Arbeit beschäftigt sich deshalb mit der Nutzung von Laufzeitdaten zur Bestimmung der Wartbarkeit von Service- und Microservice-basierten Systemen. Es wird geprüft, ob sich Laufzeitdaten für diesen Anwendungsbereich eignen und wo die Vor- und Nachteile dieses Ansatzes liegen. Um die Eignung zu prüfen, wird eine Übersicht über vorhandene Wartbarkeitsmetriken sowie Werkzeuge zum Sammeln von Laufzeitdaten erstellt. Es wird weiterhin ein Framework entworfen und implementiert, welches mithilfe der gefundenen Metriken und Werkzeuge Erkenntnisse über die Wartbarkeit eines Systems berechnen kann. Letztendlich wird das Framework anhand eines Beispielsystems demonstriert und die gewonnenen Erkenntnisse werden ausgewertet und diskutiert.Item Open Access Herausforderungen in der Releaseplanung im Umfeld Automotive(2019) Iazzolino, AretinaKaum ein Industriezweig steht unter starken Konkurrenzdruck wie die Automobilbranche. Die Fahrzeuge müssen bei möglichst gleichbleibender Qualität und kürzeren Produktzyklen, immer schneller zur Marktreife gebracht werden. Das ist auf den ständigen Zyklus der Neuerung und Verbesserung zurückzuführen. Mehr als 90% der Kundenanforderungen werden prädominant durch Software umgesetzt. So hat sich ein cross-funktionales Umfeld, in der von der Mechanik geprägten Automobilwelt aufgebaut, bestehend aus den weiteren Bereichen Elektrik und Elektronik. Die Vernetzung dieser Bereiche führt zu einer erhöhten technischen Komplexität. Dies muss bei der Releaseplanung von sicherheitskritischen Systemen, wie das Automobil einzustufen ist, berücksichtigt werden. Alle involvierten Disziplinen und ihre technischen Abhängigkeiten müssen in ein funktionierendes Ganzes vereint und validiert werden. So wird beispielsweise die Steuergerätesoftware in Verbindung mit dem zugehörigen Steuergerät getestet und Umgekehrt. Die Schwierigkeit ergibt sich, wenn die Teilsysteme ihre eigenen Releasezyklen und Fertigstellungstermine besitzen. Sie können zum einen stark an die Meilensteinstruktur angelehnt sein, und somit klassisch abgewickelt werden. Zum anderen führt der Einzug agiler Methoden im automotive Umfeld, vorzüglich in Softwareumgebungen, zu schneller lieferfähige Produktinkremente. Die unterschiedlichen Releasezyklen der Teilsysteme und ihre Abhängigkeiten, erschweren einen reibungslosen Ablauf der Qualifikationsphase im Verbund. Ziel dieser Arbeit ist es diese Herausforderungen in der Releaseplanung im automobilen Umfeld zu identifizieren. Dazu soll eine Studie mit Experten aus dem automotive oder automotive-ähnlichen Umfeld durchgeführt werden, um den Stand des Markts wiedergeben zu können.Item Open Access Integration von Datenqualitätsmethoden in das Datenflusswerkzeug FlexMash(2019) Golda, RobertDurch die Digitalisierung kommen immer mehr Nutzer mit Werkzeugen zur Verarbeitung immer größerer Datenmengen in Berührung. Bei der Verarbeitung hat die Qualität der Eingabe sowie die Passgenauigkeit des Werkzeugs zur Eingabe einen starken Einfluss auf den Nutzen der Ausgabe ("garbage in, garbage out"). Für die kompetente Abschätzung dieses Zusammenhangs müssen Nutzer nicht mehr nur Experten ihres Fachgebiets sein, sondern auch Kenntnisse über die verwendeten Algorithmen aufweisen. Diese Kenntnisse, von denen man nur bei wenigen Nutzern ausgehen kann, können kompensiert werden, indem man Qualitätsmethoden in die Analysewerkzeuge integriert. Damit kann auch ein Domänenexperte, z.B. ein Politologe, ohne Wissen um die Algorithmen kompetent maschinelle Datenanalysen durchführen und kann falsche Entscheidungen vermeiden. In dieser Masterarbeit erarbeiten wir ein Konzept, das zeigt, auf welche Weise Qualitätsmethoden in ein Datenverarbeitungswerkzeug integriert werden können. Als Proof of Concept erweitern wir dazu FlexMash von Hirmer zu einem Prototyp eines Datenflusswerkzeugs für Textdaten und integrieren Methoden, die die Qualitätsindikatoren von Kiefer ermitteln. Den Mehrwert dieser Indikatoren zeigen wir anhand dieses Prototyps mit beispielhaften Experimenten. Vertiefend untersuchen wir, wie diese Indikatoren ohne vorherige Messung automatisch durch Anpassung der Berechnung verbessert werden können.