Schmied, F. (2007). Efficient space-based application development with declarative and aspect-oriented programming [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-21764
In the modern electronic world, distributed computer applications allow people to perform collaborative work and conduct business transactions with partners residing in different places, countries, and even continents. Such applications have distinguishing requirements, including the organization of the devices involved in the system, abstraction of their differences, coordination of the processes involved, and many more. This makes their development different from that of local applications, and despite existing software engineering and development approaches, it is still a big challenge to keep planned budget and development time frames when carrying out a distributed software project.<br />In order to improve on that, distributed application development must be made more efficient by reducing the complexity of the development process. One of the most important ways of tackling complexity is abstraction, and so middleware layers are used in order to abstract the details of distributed systems. A particularly remarkable concept for middleware layers is the model of space-based computing, which provides a natural data-centered abstraction of the underlying distributed system. Current implementations of this model offer state-of-the-art application programming interfaces, allowing developers to use a virtual data space for communication and coordination of distributed processes in an object-oriented way. However, exactly these interfaces effectively counteract the original goal of reducing complexity through abstraction, because they force developers to map their distributional goals and intents to imperative instructions to the middle ware.<br />This thesis proposes a novel way of declaratively stating the distributional intents of space-based applications, replacing the need to explicitly formulate imperative algorithms. By employing the declarative source code attribution mechanism offered by the modern object-oriented .NET application platform, it enables programmers to directly specify their goals in the source code, leaving the tasks of interpreting and finding a way to achieve them to a decoupled environment. This allows developers to create better documented and more easily understandable space-based distributed software in less time and with better code quality features than before.<br />To make this possible, the thesis adopts notions from aspect-oriented programming. It regards the distributional intentions as cross-cutting concerns and employs the aspect-oriented concepts of aspects, join points, and pointcuts in order to implement the behavior backing the declarative goal specifications. It presents an easily adoptable light-weight aspect-oriented programming environment for .NET, which effectively allows to cleanly encapsulate and modularize the requirements of space-based applications and to reuse them in many application scenarios.<br />Based on the declarative model and the aspect-oriented framework, it defines a catalog of concerns common to space-based computing and gives aspect-oriented implementations of them in the form of a declaratively applicable distributed concern library. By means of analyzing and evaluating the implementations and comparing them to traditional ways of solving these concerns, it can be shown that this novel approach to space-based computing is highly advantageous; it leads to cleaner and more encapsulated solutions, reduced effort in development, and higher quality source code.<br />
de
Verteilte Computeranwendungen ermöglichen es heutzutage, mit Partnern, die sich an unterschiedlichen Orten, in unterschiedlichen Ländern und sogar auf unterschiedlichen Kontinenten aufhalten, zusammenzuarbeiten und Geschäfte zu machen. Derartige Computerprogramme haben spezielle Anforderungen, wie beispielsweise die Organisation der im System eingebundenen Geräte, Abstraktion deren Unterschiede, Koordination der involvierten Prozesse und vieles mehr. Dies unterscheidet ihre Entwicklung von der lokaler Computeranwendungen, und trotz existierender Software-Engineering-Ansätze ist es immer noch eine große Herausforderung, die Budgetpläne und Entwicklungszeiten verteilter Softwareprojekte einzuhalten.<br />Um dies zu verbessern, muss die Effizienz der Entwicklung verteilter Anwendungen gesteigert werden, indem die Komplexität des Entwicklungsprozesses reduziert wird. Einer der wichtigsten Mechanismen zur Bewältigung von Komplexität ist Abstraktion, und so benutzt man Middleware-Systeme, um die Details verteilter Systeme zu abstrahieren.<br />Ein besonders bemerkenswertes Middleware-Konzept ist das Modell des Space-Based Computing, das eine natürliche datenbezogene Abstraktion des zugrunde liegenden verteilten Systems bietet. Aktuelle Implementierungen dieses Modells bieten Programmierschnittstellen auf dem neuesten Stand der Technik, die es Entwicklern erlauben, die Kommunikation und Koordination verteilter Prozesse auf objektorientierte Weise über einen virtuellen Datenraum abzuwickeln. Allerdings wirken genau diese Schnittstellen dem eigentlichen Ziel der Reduktion von Komplexität durch Abstraktion entgegen, da sie die Entwickler zwingen, ihre verteilten Ziele und Absichten auf imperative Anweisungen an das Middleware-System abzubilden.<br />Diese Dissertation präsentiert eine neuartige Methode zur deklarativen Formulierung der Verteilungsaspekte Space-basierter Anwendungen und macht somit die explizite Formulierung imperativer Algorithmen zu diesem Zweck unnötig. Durch den Einsatz des deklarativen Mechanismus zur Quelltext-Attributierung, den die moderne objektorientierte Anwendungsplattform .NET bietet, erlaubt sie das direkte Angeben von Verteilungszielen im Quelltext; die Aufgabe des Interpretierens und Erreichens dieser Ziele wird einer entkoppelten Umgebung überlassen.<br />Dies ermöglicht es Entwicklern, besser dokumentierte und einfacher verständliche Space-basierte verteilte Software in kürzerer Zeit und mit besserer Codequalität zu erstellen, als dies bisher möglich war.<br />Um dies zu realisieren greift die Arbeit Konzepte der aspektorientierten Programmierung auf. Sie betrachtet die Anforderungen der Verteilung als cross-cutting Concerns and benutzt aspektorientierte Konzepte wie Aspekte, Join-Points und Pointcuts, um das Laufzeitverhalten, das den deklarativen Zielbeschreibungen zugrunde liegt, zu implementieren. Sie präsentiert eine einfach einsetzbare und leichtgewichtige aspektorientierte Programmierumgebung für .NET, die es erlaubt, die Anforderungen Space-basierter Anwendungen sauber als modulare, wiederverwendbare Einheiten zu kapseln und in unterschiedlichsten Szenarien einzusetzen.<br />Auf Basis des deklarativen Modells und des aspektorientierten Rahmenwerks definiert sie einen Katalog häufig im Bereich von Space-Based Computing auftretender Anforderungen und stellt aspektorientierte Implementierungen davon in Form einer deklarativ anwendbaren Bibliothek zur Verfügung. Durch Analyse und Auswertung der Implementierungen und durch Vergleich mit traditionellen Lösungen dieser Anforderungen kann gezeigt werden, dass dieser neuartige Ansatz zu Space-Based Computing viele Vorteile bringt; er führt zu saubereren und besser gekapselten Lösungen, reduziertem Entwicklungsaufwand und qualitativ höherwertigem Quelltext.<br />