Eingang zum Volltext |
|
Lizenz
Bitte beziehen Sie sich beim Zitieren dieses Dokumentes immer auf folgende URN: urn:nbn:de:bsz:25-opus-31045 URL: http://www.freidok.uni-freiburg.de/volltexte/3104/ Neubauer, Matthias
Multi-Tier ProgrammingMultitierprogrammierung
Kurzfassung in EnglischMulti-tier applications are traditionally designed in the style of a client-server architecture,forcing different parts of the system to be split up into separate modules that are targeted for different platforms. Even though the advantages of a modular design are apparent, it is questionable whether choosing a multi-tier architecture for the physical design of an application should also dictate its logical design. Not to forget that the increase in complexity as the result of manually developing a distributed application can raise the occurrence rate of bugs considerably. In this thesis, we provide the basic building blocks for a sequential multi-tier programming language. Such a language would allow programmers to write multi-tier applications in sequential style instead of having to write distributed code manually. Henceforth, the process of modularizing the program code into components targeted for the specific tiers could be handed over to a (semi-)automatic tool. To realize the process mentioned above, this dissertation proposes an approach based on two pillars: firstly, on an algorithm for computing an optimal modularization, and secondly, on a transformation scheme that generates a distributed program with the same semantics as the original sequential program. The first pillar focuses on the theoretical background of a placement inference system. This system automatically assigns a correct placement to a sequential program, characterizing a potential distribution of code. Such a placement is needed as input for the succeeding steps of transformation. Elements of the first pillar are an intermediate language expressing the timing behavior of distributed programs, a constraint-based placement analysis, and a constraint solver determining all valid placements for a program. Through devising a cost model for distributed programs, it is possible to estimate the worst-case runtime behavior of a program with a given placement. Optimal placements are computable by determining placements with minimal worst-case behavior. The second pillar presents a program transformation scheme which, by going through a series of intermediate languages, transforms a sequential program with the support of a placement into a distributed counterpart that uses explicit communication primitives. The intermediate languages are formally defined by operational semantics and static type systems with annotated types. The transformation steps of the scheme are formally specified by either equational rules or translations between two calculi. For onemajor step of the transformation scheme, namely the shift from a message-based to a bidirectional stream-based communication paradigm, the thesis provides a formal correctness result using the bisimulation proof method.
Kurzfassung in DeutschMultitieranwendungen werden herkömmlicherweise im Stile der Client-Server-Architekturentworfen. Bei solch einem Entwurf muss das System typischerweise passend zur anvisierten Zielplattform in Module aufgeteilt werden. Obwohl das modulare Entwerfen unbestritten viele Vorteile besitzt, ist es fraglich, ob die Auswahl einer bestimmten Architektur für den physikalischen Systementwurf Einfluss auf den logischen Systementwurf haben sollte. Des Weiteren geht das manuelle Entwickeln von verteilten Anwendungen in der Regel mit einer erhöhten Systemkomplexität einher, was das Auftreten von Laufzeitfehlern begünstigt. In der vorliegenden Arbeit präsentieren wir die Grundbausteine zur Realisierung einer sequentiellen Multitierprogrammiersprache. Statt wie üblicherweise manuell verteilt zu programmieren, erlaubt es eine solche Programmiersprache Multitieranwendungen sequentiell zu schreiben. Die Modularisierung des Programmcodes in zu den vorgesehenen Schichten passende Programmkomponenten kann somit automatischen — oder zumindest halbautomatisch — mit Hilfe eines Programmierwerkzeugs erfolgen. Der mit dieser Dissertation präsentierte Ansatz zur Umsetzung dieser Idee fußt auf zwei Pfeilern: einem Verfahren zur Berechnung einer optimalen Programmaufteilung und einem Programmtransformationsschema, das es erlaubt aus einem ursprünglich sequentiell verfassten Programm eine verteile Anwendung mit äquivalenter Bedeutung zu erzeugen. Zur Realisierung des ersten Pfeilers wird in dieser Arbeit der theoretischen Unterbau für eine statische Codeplatzierungsanalyse entwickelt, die sequentiellen Programmen Codeplatzierungsvorschriften zuweist. Eine solche Codeplatzierungsvorschrift charakterisiert eine mögliche Codezuteilung auf Schichten und dient als Eingabe für folgende Programmtransformationsschritte. Konkret formalisiert die vorliegende Arbeit eine Zwischensprache, die es erlaubt das Verhalten verteilter Programme zeitbasiert zu untersuchen, eine constraintbasierte Plazierungsanalyse, und einen Constraintlöser zur Gewinnung gültiger Platzierungsvorschriften. Indem das Worst-Case-Laufzeitverhalten verteilter Programme mit Hilfe eines Kostenmodells abgeschätzt wird, besteht die Möglichkeit, optimale Platzierungsvorschriften zu berechnen. Zur Realisierung des zweiten Pfeilers wird in dieser Arbeit ein Programmtransformationsschema vorgestellt, das ein sequentielles Programm mit vorliegender Codeplatzierungsvorschrift über mehrere Zwischensprachen hinweg in ein verteiltes Programm mit expliziten Kommunikationsprimitiven übersetzt. Die hierzu verwendeten Zwischensprachen sind unter Zuhilfenahme von operationellen Semantiken und statischen Typsystemen mit annotierten Typen definiert. Einzelne Übersetzungsschritte sind durch Gleichheitsregeln oder Übersetzungsfunktionen spezifiziert. Für einen der Haupttransformationsschritte des Transformationsschemas, die Umwandlung von einem nachrichtbasierten hin zu einem bidirektionalen, strombasierten Kommunikationsparadigma, präsentiert die vorliegende Arbeit mit Hilfe von Bisimulationsbeweistechniken ein Korrektheitsresultat.
Ein kostenloser Dienst Ihrer Universitätsbibliothek Freiburg. |