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 Programming

Multitierprogrammierung

pdf-Format:
Dokument 1.pdf (1.727 KB)
Gedruckte Ausgabe:
Print-On-Demand-Kopie


Kurzfassung in Englisch

Multi-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 Deutsch

Multitieranwendungen werden herkömmlicherweise im Stile der Client-Server-Architektur
entworfen. 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.

SWD-Schlagwörter: Operationale Semantik , Typsystem , Verteilte Programmierung
Freie Schlagwörter (deutsch): Programmiersprachen , Mehrschichtenarchitektur
Freie Schlagwörter (englisch): programming languages , multi-tier architecture , operational semantics , type systems
CCS Klassifikation D.1.3 Conc , D.3.1 Form , F.3.2 Sema , F.3.3 Stud
Institut: Institut für Informatik
Fakultät: Fakultät für Angewandte Wissenschaften
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Thiemann, Peter (Prof. Dr.)
Sprache: Englisch
Tag der mündlichen Prüfung: 27.04.2007
Erstellungsjahr: 2007
Publikationsdatum: 05.07.2007
Gedruckte Ausgabe: Print-On-Demand-Kopie
 
FreiDok-Home Recherche Veröffentlichen Hilfe Kontakt Rechtliches

Ein kostenloser Dienst Ihrer Universitätsbibliothek Freiburg.