1 research outputs found

    A modular extensible framework for coordination languages

    No full text
    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
    corecore