title: Cloud-Based monitoring and simulation for fault-tolerant event processing platforms
Creators: name: Strasser, Michael
Publisher: name: TU Wien
Year: 2014
Subjects: subject: Verteilte Ereignisverarbeitung
subject: Fehlertoleranz
subject: Fehlersimulation
subject: Verteilte Systeme
subject: Überwachung
subject: Cloud Computing
subject: Distributed Event Processing
subject: Fault Tolerance
subject: Fault Simulation
subject: Distributed Systems
subject: Monitoring
subject: Cloud Computing

description: Verteilte ereignisbasierte Systeme sind ein aufstrebendes Forschungsfeld in den Computerwissenschaften. Dieses Forschungsfeld ist unterteilt in verschiedene Teilbereiche, wie Publish/Subscribe Systeme, Event Stream Verarbeitung, Complex Event Processing oder Sensornetze. Diese Teilbereiche legen den Fokus auf verschiedene Aspekte, allerdings haben die Herausforderungen durchwegs einige Gemeinsamkeiten. Es gibt allerdings kein gemeinsames Systemmodel zur Beschreibung dieser verschiedenen Teilaspekte. Dieser Umstand erschwert die Implementierung von Simulationen für diese Systeme, da ein eigener Simulator für jedes System benötigt wird. Dies betrifft auch den Bereich der Überwachung und der Fehlerbehandlung, da auch hier jeweils ein system-eigener Code verwendet werden muss. Aus diesen Umständen folgt eine eigenständige Implementierung für jedes dieser Systeme. Das Ziel dieser Arbeit ist die Implementierung eines solchen gemeinsamen Model, welches auf die verschiedenen Besonderheiten von ereignisbasierten Systemen Rücksicht nimmt. Dazu wird das zugrundeliegende Datenmodell so generisch wie möglich gehalten um das Hinzufügen neuer Systeme zu erleichtern. Basierend auf diesem Modell, werden Möglichkeiten zur Überwachung und Simulation von fehlertolerantem Verhalten implementiert. Das finale Resultat dieser Arbeit ist ein generisches Modell für verschiedene Typen von verteilten ereignisbasierten Systemen mit einer lauffähigen Überwachungs- und Simulationsumgebung, EventSim Framework genannt. Dieses Modell synchronisiert sich mit einer realen Applikation mittels Adaptoren. Ein solcher Adaptor wird als Teil dieser Arbeit für ein Einführungsbeispiel implementiert. Diese Adaptoren sind ebenfalls generisch implementiert, um das Hinzufügen weiterer Adaptoren zu vereinfachen. Nachdem diese Adaptoren Teil der entsprechenden realen Applikation sind, muss das Framework selbst nicht verändert werden um eine neue Applikation hinzuzufügen. Dies ermöglicht die Simulation verschiedener Typen von verteilten ereignisbasierten Systemen. Dafür wird eine Simulationskomponente entwickelt, welche die Simulation verschiedenartiger Szenarien mithilfe unterschiedlicher Strategien ermöglicht. Diese Komponente ermöglicht das Testen von verschiedenen Pfadalgorithmen und Skalierungsstrategien während der Laufzeit des untersuchten Systems. Das Modell für ereignisbasierte Systeme wird in ein generisches Programmmodel transformiert, welches mittels Model-Driven Development (MDD) erzeugt wird. Dieses Verfahren macht das Modell unabhängig von spezifischen Charakteristika heutiger ereignisbasierter Systeme, nachdem es direkt aus dem Datenmodell erzeugt wird. Über dieser Schicht befindet sich eine Tool-Schicht, welche Verbindungen zum Simulator und zu den Adaptoren für Echtsysteme bereitstellt. Die Pfade in dieser Implementierung sind als simple Weiterleitung von einem Event Processing Agent (EPA) zu einem anderen zu verstehen. Somit können komplexe Pfadberechnungen in zukünftigen Arbeiten behandelt werden. Die Skalierung des Modells kann über verschiedene Strategien sichergestellt werden. Die Simulationskomponente ist ein eigenständiges Programm, welches eine Standardkonfiguration für die Initialisierung des Standardmodells bereitstellt. Anschließend kann die Komponente den Status des Models direkt über verschiedene Manipulationen oder Strategieänderungen beeinflussen. Die Evaluierung des Frameworks erfolgt mittels verschieder Strategien, welche an einem exemplarischen ereignisbasierten System durchgeführt werden. Die Anbindung an ein Echtsystem wird über das Storm Framework illustriert.
description: Distributed event-based systems are an emerging research field in computer science. The research area of distributed event-based systems is divided into different sub-areas like publish/subscribe systems, event stream processing, complex event processing, or wireless sensor networks. These sub-areas focus on different aspects, yet the challenges in each area share many commonalities. However, there exists no common system model to describe the different varieties in this area, which makes it difficult to derive simulations for such a system since one needs a special simulator for every system and scenario. This also affects the capabilities for monitoring and fault management, as the native code to deal with such issues is different for each of these systems. The result of these circumstances are separate implementations for every system. The goal of this work is to implement such a common model with respect to all major derivations of the different kinds of event-based systems. The underlying domain model is kept as generic as possible to support adaptability to new systems which might occur in the future. On top of this model, possibilities for monitoring and simulating fault-tolerant behaviour are implemented. The final outcome of this work is a generic model for different kinds of distributed event-based systems with a runnable monitoring and a simulation environment on top of that model, called EventSim framework. The model synchronizes its state with a real-world application through adaptors, where an example adaptor is generated for an illustrary example . The handling of these adaptors is also done in a generic way, so that more adaptors can be written for different systems. Since they are included in the corresponding real-world system, the framework itself is not changed while adapting to a new system. This provides a generic way of simulating different kinds of distributed event-based systems. Therefore, a simulator is provided which enables the simulation of several scenarios using different strategies. This simulation provides the possibility to test specified routing algorithms and scaling strategies which can be applied on-the-fly. The system model is based on the preliminary work. At first this domain model gets transformed to a generic programming model. This model is implemented using model-driven development (MDD). Using MDD makes the model completely independent from current event-based systems, as it is directly generated from the domain model. On top of this, the tool layer is located with connections to the simulator and injection possibilities for real-world adaptors. The routing in this implementation is a simple forwarding from one event processing agent (EPA) to another. This leaves complex routing algorithms open for future work. The scaling of the model can be handled by different strategies. The simulator is a standalone program which should provide some sample configurations files for the initialization of the model. The simulation itself can afterwards change the state of the model by applying different event manipulations or strategy changes. Evaluation of the framework is done by simulating several scenarios on an example event-based system with the help of the simulator. The connection to existing systems is tested using the Storm framework.