1 research outputs found
A modular extensible framework for coordination languages
Titelblatt und Inhaltsverzeichnis
1\. Motivation 9
2\. Anforderungen an Koordinationssprachen fĂŒr verteilte Applikationen 15
3\. Stand der Forschung 27
4\. Wissenschaftlicher Beitrag dieser Arbeit 33
5\. Ein erweiterbarer, architekturbasierter Ansatz 37
6\. Arbeitsablaufbasierte Applikationen 71
7\. Ein Ăberblick ĂŒber Amica 81
8\. Datenverwaltung in Amica 89
9\. Berechnungen in Amica 101
10\. Amica-Fallstudien 121
11\. Architekturbasierte Konfiguration verteilter Informations- und
Kontrollsysteme 141
12\. Konfiguration CORBA-basierter Applikationen 161
13\. Beispiele verteilter CORBA-basierter Applikationen 175
14\. Diskussion und offene Punkte 185
15\. Zusammenfassung 189
A. Benutzungsanleitung 193
B. Zusammenfassung der Ergebnisse 203
C. Lebenslauf 205
D. ErklÀrung 207
Abbildungsverzeichnis 209
Literaturverzeichnis 213Aufgrund der hohen Dynamik und HeterogenitÀt in verteilten Systemen ist die
Entwicklung von Applikationen fĂŒr solche Systeme aufwendig und schwierig.
Daher ist eine Vielzahl von Werkzeugen entstanden, welche den
Anwendungsentwickler bei seiner TĂ€tigkeit unterstĂŒtzen. Anhand der Art der
UnterstĂŒtzung lassen sich diese Werkzeuge in die drei Klassen Middleware-
Systeme, Komponentensysteme und Koordinationssprachen unterteilen.
Es gibt mehrere Koordinationssysteme, die verschiedene dieser Werkzeuge zu
einem Gesamtentwicklungssystem integrieren. Dieses ermöglicht es dann,
verteilte Applikation durch Komposition heterogener Komponenten zu entwickeln.
Um eine Erweiterbarkeit zu unterstĂŒtzen, besitzt ein solches
Entwicklungssystem i.a. eine Schichtenarchitektur. D.h., eine Applikation wird
zuerst von einer speziellen, Applikationsklassen-abhÀngigen Schicht auf eine
allgemeine Schicht abgebildet und diese dann auf das Zielsystem. Bei diesem
Ansatz werden allerdings die Zielsystem-spezifischen Eigenschaften vor dem
Entwickler verborgen, da sie i.a. nicht in der Zwischenschicht reprÀsentiert
werden können. Dadurch können diese FĂ€higkeiten, die evtl. Potenzial fĂŒr eine
höhere Leistung der Applikation besitzen, nicht genutzt werden.
In dieser Arbeit wird der modular erweiterbare Rahmen ECL vorgestellt, der die
Erstellung von oben beschriebenen Entwicklungssystemen mit einem zugehörigen
Laufzeitsystem ermöglicht. Der Rahmen enthÀlt keine BeschrÀnkungen bzgl. der
unterstĂŒtzbaren Zielsysteme und Koordinationsparadigmen und eignet sich damit
als Grundlage fĂŒr beliebige Applikationsklassen.
Die Freiheit von BeschrÀnkungen ergibt sich daraus, dass ECL kein allgemeines
semantisches Modell besitzt, auf das alle Erweiterungen abgebildet werden
mĂŒssen. Die einzige EinschrĂ€nkung ist syntaktisch und besteht aus dem Einsatz
einer Architekturbeschreibungssprache, so dass eine verteilte Applikation
stets als statische Software-Architektur darstellbar ist.
Der Rahmen wird durch die Kombination mit Erweiterungsmodulen zu einem
Entwicklungssystem, mit dem ein Applikationsentwickler verteilte Applikationen
unter Einsatz eines grafischen Editors implementieren kann. Ein
Erweiterungsmodul kann sowohl bestimmte Zielsysteme als auch bestimmte
Koordinationsparadigmen unterstĂŒtzen.
HierfĂŒr enthĂ€lt ein Erweiterungsmodul sowohl syntaktische als auch semantische
Erweiterungen, die in den Rahmen integriert werden. Die syntaktischen
Erweiterungen bestehen aus neuen Typen fĂŒr Architekturelemente. Die
semantischen Erweiterungen liegen in Form von Java-Klassen vor. Diese werden
benutzt, um eine Applikationsarchitektur zu einem Geflecht von Java-Objekten
zu ĂŒbersetzen, welche dann zur Laufzeit die Koordination der einzelnen
Applikationskomponenten durchfĂŒhren.
Bei der Erstellung neuer Erweiterungsmodule können unter Einsatz von
Vererbungsmechanismen vorhandene Erweiterungsmodule benutzt werden. Dies
ermöglicht die Erstellung abstrakter Module, welche ein allgemeines
Koordinationsparadigma unterstĂŒtzen. Anhand verschiedener konkreter
Implementierungen wurden Erfahrungswerte gewonnen, die als Entwurfsrichtlinien
formuliert wurden.
Die allgemeine Praxistauglichkeit des System fĂŒr den Anwendungsentwickler
wurde anhand mehrerer Fallstudien evaluiert. Diese stammen aus zwei
Applikationsklassen: verteilte Informations- und Kontrollsysteme und
rechenintensive numerische Applikationen.
Es konnte demonstriert werden, dass sich aufgrund der komfortablen grafischen
Entwicklungsumgebung der Entwicklungsaufwand fĂŒr den Applikationsentwickler
deutlich reduziert, da er sich nur wenig mit technischen
Implementierungsdetails beschÀftigen muss. Der durch den Einsatz des Systems
zusÀtzlich auftretende Rechen- und Kommunikationsaufwand war bei allen
Fallstudien vernachlÀssigbar.The dynamic and heterogeneous nature of distributed systems makes the
development of distributed applications a difficult task. Various tools, such
as middleware systems, component systems, and coordination languages, offer
support to the application developer at different levels.
There are several coordination systems that integrate such tools into a
complete environment to build applications from heterogeneous components. To
achieve extensibility they usually have a layered architecture: An application
is first mapped to a middle layer and then to a target system. But this
approach hides the specific features of a target system from the developer, as
they are not represented in the middle layer, and often induces additional
run-time overhead.
In this thesis the extensible coordination framework ECL is introduced that
allows developers to build efficient distributed applications which exploit
the specific features of the target systems. The framework can support every
coordination paradigm and, thus, is not restricted to any application domain.
The framework is free of any restrictions because it is not bound to a
specific semantic model. The only restriction is syntactical: an architecture
description language is used as middle layer. Every distributed application in
ECL is represented by a static software architecture.
In combination with extension modules the framework becomes an integrated
development environment for distributed applications. The developer can use a
graphical editor to compose an application from components and to adapt the
single components. An extension module can support specific application
domains as well as specific target systems and generic coordination paradigms.
An extension module contains syntactical and semantical extensions which are
integrated into the framework. The syntactical extensions consists of new
architecture element types. The semantical extensions are Java classes. These
classes are used to compile an application given as software architecture to a
set of interconnected Java objects. At runtime this set of objects perform the
coordination of the single application components.
A new extension module can reuse existing modules using inheritance
mechanisms. This allows the developer to create an abstract extension module
that contains a generic coordination paradigm. Experiences were gained through
the implementation of several modules. They were used to formulate a set of
guidelines for the design of extension modules.
The benefits of the system for the application developer was evaluated by
several case studies. These studies belong to two different application
domains: distributed information and control systems, and computationally
intensive applications. It was shown that, because of the comfortable
graphical environment, the effort for the implementation of distributed
applications could be significantly reduced. This is because using the system
the developer only must know the principles of the used systems. He does not
need to know all the technical details. In addition, the additional
computation and communication overhead of the ECL system was negligible in all
case studies