title: Pluggable design and implementation of the XVSM framework core for .NET
Creators: name: Grill, Andreas
Publisher: name: TU Wien
Year: 2018
Subjects: subject: Middleware
subject: Containers
subject: Plugins
subject: Tuple Spaces
subject: XVSM
subject: Space-based Computing
subject: Programming
subject: Software Architecture
subject: Extensibility
subject: Adaption Types

description: Im Zuge der Ausbreitung von internetfähigen Geräten gewinnt dezentrale Kommunikation an Bedeutung. Space-based Computing mittels XVSM ermöglicht intuitive Koordinationsmechanismen, welche auf dem Blackboard-Modell basieren um die Entwicklung von verteilten Systemen zu vereinfachen. Dies wird ermöglicht durch die Unterstützung von Erweiterungen und benutzerdefinierten Mechanismen zur Koordination zwischen den Systemen. Im Verlauf der Weiterentwicklung von XVSM-Implementierungen wurden diese um Features ergänzt, um XVSM in weiteren Bereichen anwenden zu können. Eine Untersuchung der XVSM-Implementierungen auf unterschiedlichen Plattformen hat allerdings ergeben, dass diverse Erweiterungen tief integriert und mit hoher Koppelung versehen sind, und benutzerdefinierte Koordinatoren sowohl ein hohes Maß an dupliziertem Code aufweisen, als auch auf implementierungsspezifische Details der XVSM-Implementierung Rücksicht genommen werden muss. Obwohl XVSM im Hinblick auf Modularität und Erweiterbarkeit entwickelt wurde, konnten gewisse Erweiterungen nicht ausreichend entkoppelt integriert werden. In dieser Arbeit wird deshalb ein Konzept für eine hoch modulare XVSM-Implementierung vorgestellt und anhand einer Referenzimplementierung für die .NET-Plattform belegt. Es wird ein Plugin-basierter Mechanismus geboten, welcher es ermöglicht, Erweiterungen durch Hinzufügen oder Ersetzen von Plugins zu verwalten. Es werden unterschiedliche XVSM- und andere Space-based Middleware-Implementierungen sowohl anhand deren Erweiterbarkeitsmechanismen, als auch im Hinblick auf deren Funktionalität und Defizite bezüglich Erweiterbarkeit verglichen. Ein besonderer Fokus wird auf die XVSM-Referenzimplementierung MozartSpaces und deren Unterstützung für benutzerdefinierte Koordinatoren gelegt. In Folge dessen wird eine modulare Architektur basierend auf dem Managed Extensibility Framework (MEF) für die .NET-Plattform entwickelt, um die XVSM-Implementierung mit zusätzlichen Erweiterungsmechanismen zu ergänzen. Mechanismen für Erweiterungen, welche auf aspektorientierten Ansätze basieren, werden erweitert, um feingranulare Integrationen zu ermöglichen. Durch eine Ergänzung der Funktionalität des Transaktionssystems wird dessen Anwendbarkeit im Hinblick auf eine Erweiterung von XVSM verbessert. Mit der vorgestellten Architektur werden nicht nur Grundlagen für neue und potentiell experimentelle Erweiterungen der XVSM-Implementierung für die .NET Plattform gelegt, sondern auch eine Referenz für andere XVSM-Implementierungen hinsichtlich Flexibilität und Erweiterbarkeit geschaffen.
description: With the increasing number of smart and internet connected devices, decentralized communication between devices is getting more important. Space-based computing with XVSM provides intuitive coordination mechanisms based on a blackboard architectural model to ease development for distributed systems. Extensibility and custom coordination logic are major features of XVSM. Maturing XVSM implementations gained several extensions to widen their applicability. However, a survey of existing XVSM implementations on various platforms reveals hardwired integrations and custom coordinators with frequent code duplications and deep implementation dependencies. Even though XVSM specifies extensibility mechanisms and a modular architecture, some extensions require more fine-grained mechanisms. In order to solve this problem, we propose a highly modular plugin-based XVSM architecture along with a reference implementation for the .NET platform that supports an extension mechanism simply by adding or replacing plugins. We compared various XVSM and other space-based middlewares regarding their extensibility mechanisms, as well as their implemented features and shortcomings in regard to extensibility, but our main focus was on the XVSM reference implementation MozartSpaces and especially its custom coordinator support. Consequently we developed a modular architecture based on the Managed Extensibility Framework (MEF) for the .NET platform to add additional extensibility mechanisms. Further, we added aspect-oriented integration on a fine-grained level, as well as an evolutionary improvement of XVSM's transaction system to widen the applicability of XVSM's specified extensibility mechanism. The new architecture not only lays the foundation for new, even experimental, extension development for XVSM on the .NET platform, but also provides a reference for other XVSM implementations that could benefit from incorporating its extensible and flexible features.