Über Odysseus

Odysseus ist aus einem Forschungsprototyp der Abteilung Informationssysteme am Department für Informatik der Universität Oldenburg entstanden, die auch die wesentlichen Konzepte erforscht und entwickelt hat, wächst durch weitere Partner und Entwickler seit 2008 jedoch stetig an Umfang.

Die grundsätzliche Idee hinter Odysseus ist es, ein universell einsetzbares, anpassbares und flexibles Framework zur effizienten Verarbeitung von kontinuierlich auftretenden Daten zu entwickeln. Aus diesem Grund ist Odysseus vielmehr als ein System zur Verarbeitung von Ereignisdatenströmen und kann auch als Basis für maßgeschneiderte Systeme mit besonderen Anforderungen verwendet werden.

 

 

In der Regel ist es nur nötig, die Datenquellen zu definieren und die gewünschte Verarbeitung festzulegen. Odysseus sorgt dann für eine optimierte und effiziente Ausführung. Eine genauere Beschreibung dieser Funktionsweise sind bei der Beschreibung von Odysseus Server zu finden.

Der wesentliche Vorteil von Odysseus liegt darin, dass der Entwickler wesentlich weniger Code erzeugen muss. Dadurch wird bei der Entwicklung von ereignisbasierten Anwendungen nicht nur Zeit gespart, sondern  auch die Wartbarkeit erhöht und i.d.R Fehler in der Anwendung minimiert.

Dazu implementiert der Entwickler nicht für jede Anwendung die einzelnen Verarbeitungsschritte neu, sondern programmiert nur einen Teil der Anwendung (meist die Oberfläche zur Darstellung von Diagrammen oder die Ansteuerung von Geräten) . Die Verarbeitung der Daten werden über Anfragen definiert, die dann von der Anwendung an Odysseus übergeben werden. Odysseus führt dann die Verarbeitung durch und leitet die Ergebnisse der Anwendung zur Visualisierung oder ähnliches weiter. Durch die Mehrbenutzerfähigkeit und Universalität von Odysseus, kann eine Instanz für verschiedene Anwendungen verwendet werden, um dadurch Ressourcen zu sparen. Auch wiederholte Implementierungen derselben Verarbeitungsschritte sind dann nicht mehr notwendig und führt u.a. auch zur besseren Wartbarkeit. Zusammenfassend bietet Odysseus dieselben Vorteile wie ein Datenbanksystem, ist jedoch auf die hauptspeicherbasierte Verarbeitung kontinuierlicher und temporaler Daten ausgelegt.

 

Odysseus Server und Odysseus Studio

Da Odysseus eine Client-Server-Architektur umsetzt, gibt es entsprechend zwei Hauptkomponenten von Odysseus

Odysseus Server - Der Kern

Der Server stellt das eigentliche System und damit auch die Verarbeitungsmechanismen, die Anfrageschnittstelle oder die Benutzerverwaltung bereit. Entsprechend ist dieses Teil unabdingbar für die Ausführung von Odysseus.

Hier gibt es genauere Informationen zu der Anfrageverarbeitung und Features: Odysseus Server

Odysseus Studio - Die Benutzeroberfläche

Für die Entwicklung von Anfragen und zur Administration von Odysseus Server wurde Odysseus Studio entwickelt. Die graphische Oberfläche bietet somit eine Unterstützung bei der Entwicklung und bietet gleichzeitig eine Basis zur Entwicklung von Anwendungen.

Weitere Informationen zu Odysseus Studio sind hier zu finden: Odysseus Studio

Features in Odysseus

Die wichtigsten Features von Odysseus im Überblick:

  • Betriebssystemunabhängig durch Java
  • Austauschbar, erweiterbar und konfigurierbar durch OSGi-basierte Kompontenstruktur
  • Mehrere Abstraktionsebenen durch Anfragesprachen und Anfrageverarbeitung
  • Verschiedene Anfragesprachen: StreamSQL, PQL, StreamingSPARQL...
  • Beliebige Datentypen und unabhängige Verarbeitungsobjekte
  • Eingebaute Optimierungsstrategien
  • Integration neuer Operatoren möglich
  • Eingebauter Parser für mathematische Ausdrücke
  • Verschiedene Scheduling-Strategien und Pufferstrategien
  • Zugriff per Webservice, Konsole oder Java
  • Odysseus Script: Sprache zur Steuerung und Ausführung
  • Access Framework: Verschiedene, kombinierbare und erweiterbare Zugriffsprotokolle und -Mechanismen
  • Wiederverwendung von ähnlichen Anfragen (Query Sharing)
  • Mehrbenutzerfähig
  • Heartbeats und Punctuations: Vermeidung von Blockierungen durch Metainformationen im Datenstrom

Features von Odysseus Studio

Informationen zu den Features von Odysseus Studio, der Benutzer- und Administrationsoberfläche für Odysseus, können hier eingesehen werden: Odysseus Studio

 


Nachinstallierbere Plug-ins

Odysseus bietet mehrere nachinstallierbare Features, die einerseits die Funktionalität erweitern oder andererseits Standardkomponenten durch andere Konzepte ersetzt. Derzeit gibt es u.a. folgende Features:

  • Admission Control: Kontrolliert die Systemlast und stabilisiert das System
  • Action Feature: Ausführen von Webservice-Kommandos
  • Benchmark Feature: Leistung der Odysseus-Installation testen
  • CEP Feature: Erkennung komplexer Muster
  • Context Feature: Anreicherung mit statischen Kontextinformationen
  • Costmodel Feature: Kostenbasierte Optimierungen
  • Database Feature: Zugriff auf ein Datenbanksystem
  • Priority Feature: Priorisierte Verarbeitung von kritischen Ereignissen
  • Machine Learning Feature: Clustering, Klassifikation, Prädiktion und Assoziationsanalyse
  • Peer 2 Peer Feature: Verteilung der Anfragen auf mehrere Odysseus
  • Probabilistic Feature: Verarbeitung berücksichtigt Wahrscheinlichkeiten
  • Prototyping Feature: Integration benutzerdefinierter Operatoren u.a. mit JavaScript oder Ruby
  • Security Punctuation Feature: Kontrolliert den Zugriff und die Verarbeitung durch spezielle Ereignisse
  • SLA Feature: Berücksichtigt Service Level Aggreements bei der Verarbeitung
  • SPARQL Feature: Integriert StreamingSPARQL zur Verarbeitung von RDF Datenströmen
  • Spatial Feature: Fügt Geodatentypen wie Punkt oder Polygon und zugehörige Funktionen hinzu
  • Test Feature: Allows Unit/Black Box Tests für Anfragen.
  • Wrapper Feature: Eine Menge von weiteren Zugriffsprotokollen und -Mechanismen wie CSV, HTML, Twitter oder RS232