Extending the Object Teams Programming Model into Distributed Environments

Ausdehnung der Object Teams durch Modell-Programmierung in verteilten Umwelten

  • The growing complexity of distributed applications, as well as changes in their execution environments, demands for applications that are more adaptable and easier to compose and evolve. Often such distributed applications are required to adapt during run-time, which calls for dynamically adaptable distributed applications. The dynamic adaptation of distributed application objects is the process of enabling these objects to change their behaviors dynamically at runtime as a response to changes iThe growing complexity of distributed applications, as well as changes in their execution environments, demands for applications that are more adaptable and easier to compose and evolve. Often such distributed applications are required to adapt during run-time, which calls for dynamically adaptable distributed applications. The dynamic adaptation of distributed application objects is the process of enabling these objects to change their behaviors dynamically at runtime as a response to changes in their execution environment. Lately, the Aspect-Oriented Programming (AOP) technique has been employed in distributed programming due to its prosperity to improve applications’ modularity. It allows separating those crosscutting concerns that are tangled and/or scattered in application code, and capturing them in aspect modules. For this purpose, several distributed AOP approaches like AWED, JAC, etc. have been developed. These approaches enable application objects to adapt through replacing their methods with new code segments called advices at specific points designated by remote pointcuts. From an AOP perspective, the dynamic adaptation of distributed applications requires weaving aspects dynamically at runtime. The current distributed AOP models lack for supporting consistent dynamic aspects weaving. Besides, in these approaches there is no explicit representation of the context in which aspects are applied, which reduces their expressivity to specify in a clear and understandable manner how distributed applications can adapt and when? In addition, application developers do not have the proper mechanisms to control the effects of aspects on application base objects dynamically; because most of these approaches do not allow aspect instances to be accessed explicitly. Object Teams is a programming model that implements the collaboration-based (role-based) design for the object-oriented languages. It employs the AOP concepts to separate the crosscutting collaborations within application objects: it captures collaborations in modules called “teams”, and the participation of application objects inside these teams within “role” modules. In this research, we map the fundamentals of the Object Teams model to distributed environments to improve the modularity of adaptable distributed applications. Through employing the expressive “playedBy” relationship in distributed applications, we enhance the modularity of distributed collaborative applications, and support distributed aspects at runtime. The dissertation introduces a new programming concept called the Remote Role Playing (RRP), which aims at enabling the objects of distributed applications to play different roles dynamically at runtime and remotely from any application node. This will provide a modular and expressive technique for realizing the dynamic adaptation of distributed applications. The Distributed Object Teams for Java (DOT/J) framework is introduced as an implementation of the RRP by extending the OT/J (the language that implements the OT model for Java language). DOT/J augments the OT/J infrastructure with the DOT/J Transformation Library (DTL), and establishes the DOT/J Runtime System (DRS) to facilitate the RRP between distributed objects and roles. The dissertation demonstrated the capability of RRP to improve dynamic adaptation, and realized other sub-goals like improving distributed aspects’ modularity and expressiveness. The approach has been evaluated in a set of case studies, and compared to counterpart distributed-AOP approaches. Finally, the dissertation discussed some future works and further DOT/J enhancements.show moreshow less
  • Die zunehmende Komplexität verteilter Anwendungen sowie veränderte Ausführungsumgebungen erfordern Anwendungen, die leichter adaptiert, kombiniert und weiterentwickelt werden können. Häufig müssen derartige verteilte Anwendungen auch zur Laufzeit adaptiert werden, es werden somit dynamisch adaptierbare, verteilte Anwendungen benötigt. Die dynamische Adaptierbarkeit der Objekte einer verteilten Anwendung bedeutet, diese Objekte in die Lage zu versetzen, ihr Verhalten in Abhängigkeit von ÄnderungeDie zunehmende Komplexität verteilter Anwendungen sowie veränderte Ausführungsumgebungen erfordern Anwendungen, die leichter adaptiert, kombiniert und weiterentwickelt werden können. Häufig müssen derartige verteilte Anwendungen auch zur Laufzeit adaptiert werden, es werden somit dynamisch adaptierbare, verteilte Anwendungen benötigt. Die dynamische Adaptierbarkeit der Objekte einer verteilten Anwendung bedeutet, diese Objekte in die Lage zu versetzen, ihr Verhalten in Abhängigkeit von Änderungen ihrer Ausführungsumgebung zur Laufzeit dynamisch zu verändern. Als ein vielversprechendes Mittel zur Verbesserung der Modularität von Anwendungen wurde in letzter Zeit das Konzept der Aspektorientierten Programmierung (AOP) auch im Bereich der Programmierung verteilter Anwendungen eingesetzt. Es erlaubt querschnittliche Funktionalitäten (sog. crosscutting concerns), die an einer Vielzahl von Stellen im Programmcode auftreten, herauszulösen und zusammenhängend in separaten Aspektmodulen zu definieren. Hierzu wurden eine Reihe von verteilten AOP-Ansätzen entwickelt, wie zum Beispiel AWED und JAC. Diese Ansätze erlauben die Adaptierung von Objekten der Anwendung durch Austausch ihrer Methoden mit neuen Code-Segmenten, den sog. advices, an bestimmten, durch sog. remote pointcuts definierten Stellen. Aus Sicht der AOP erfordert die dynamische Adaptierung verteilter Anwendungen ein dynamisches Einweben von Aspekten zur Laufzeit. Die derzeitigen Ansätze zur verteilen AOP bieten jedoch keine Unterstützung für ein konsistentes dynamisches Weben von Aspekten. Außerdem gibt es in diesen Ansätzen keine explizite Repräsentation des Kontextes, in dem Aspekte angewendet werden. Dies erschwert eine klare und verständliche Beschreibung, wie und wann eine verteilte Anwendungen adaptiert wird. Darüber hinaus geben sie den Entwicklern keine geeigneten Mechanismen an die Hand, um die Auswirkungen von Aspekten auf die Basisobjekte der Anwendung dynamisch zu steuern, da die meisten dieser Ansätze keinen expliziten Zugang zu Aspektinstanzen erlauben. Object Teams ist ein Programmiermodell, welches den kollaborationsbasierten (rollenbasierten) Entwurf in objektorientierten Sprachen bereitstellt. Es verwendet die AOP-Konzepte um querschnittliche Kollaborationen in Anwendungsobjekten zu separieren: es faßt Kollaborationen in Modulen zusammen, die als „Teams“ bezeichnet werden, und beschreibt die Teilnahme von Anwendungsobjekten innerhalb dieser Teams in „Rollenmodulen“. In dieser Dissertation werden die grundlegenden Konzepte von Object Teams auf verteilte Anwendungen übertragen um die Modularität adaptierbarer verteilter Anwendungen zu verbessern. Durch Verwendung der ausdrucksmächtigen „playedBy“-Beziehung in verteilten Anwendungen wird die Modularität verteilter, kollaborativer Anwendungen verbessert und verteilte Aspekte zur Laufzeit unterstützt. Die vorliegende Forschungsarbeit führt ein neues Konzept mit dem Namen Remote Role Playing (RRP) ein. Dies erlaubt es den Objekten einer verteilten Anwendung zur Laufzeit dynamisch verschiedene Rollen innerhalb der Kollaborationen von Object Teams einzunehmen, und dies von jedem beliebigen – auch von entfernten – Ausführungsknoten aus. Hiermit steht eine modulare und ausdrucksmächtige Technik zur dynamischen Anpassung verteilter Anwendungen zur Verfügung. Es wird das Distributed Object Teams for Java (DOT/J) Framework vorgestellt, das die bestehende Sprache OT/J (die Implementierung des Object Teams-Programmiermodells in Java) um RRP erweitert: hierzu wurde die Infrastruktur von OT/J um die DOT/J Transformation Library (DTL) ergänzt und das DOT/J Runtime System (DRS) bereitgestellt, um das RRP zwischen verteilten Objekten und Rollen zu vereinfachen. In der Arbeit wird die Effektivität des RRP zur Verbesserung einer dynamischen Adaptierbarkeit verteilter Anwendungen demonstriert und es werden eine Reihe weiterer Vorteile aufgezeigt, wie die Verbesserung der Modularität und Ausdrucksmächtigkeit verteilter Aspekte. Der Ansatz wurde im Rahmen mehrerer Fallstudien evaluiert und mit anderen Ansätzen zum verteilten AOP verglichen. Abschließend werden Möglichkeiten für zukünftige Arbeiten und Erweiterungen von DOT/J aufgezeigt.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author: Abdullah Odeh Al-Zaghameem
URN:urn:nbn:de:kobv:83-opus-36893
Advisor:Prof. Dr. Ing. Stefan Jähnichen
Document Type:Doctoral Thesis
Language:English
Date of Publication (online):2012/10/08
Publishing Institution:Technische Universität Berlin
Granting Institution:Technische Universität Berlin, Fakultät IV - Elektrotechnik und Informatik
Date of final exam:2012/09/19
Release Date:2012/10/08
Tag:Aspekt-orientierten Programmieren; Dynamische Anpassung; Entfernte Rolle Spielend; Object Teams Modell; Verteilte Anwendungen
Aspect Oriented Programming; Distributed Applications; Dynamic Adaptation; Object Teams Model; Remote Role Playing
Institutes:Institut für Softwaretechnik und Theoretische Informatik
Dewey Decimal Classification:004 Datenverarbeitung; Informatik
Licence (German):License LogoDeutsches Urheberrecht mit Print on Demand (u.a. für Dissertationen empfohlen)