Odysseus is a research prototype of the Information Systems Group at the Department for Computer Science at the University of Oldenburg, who has researched and developed the essential concepts, but is continuously growing by more partners and developers since 2007.
The basic idea behind Odysseus is to develop a universal, customizable and flexible framework for the efficient processing of continuous data. For this reason, Odysseus is much more than a system for processing of event streams and can be used as the basis for customized systems with special requirements.
In general, it is only necessary to define the data sources and the desired processing. Odysseus then ensures an optimized and efficient execution. A more detailed description of this feature can be found in the description of Odysseus Server.
The main advantage of Odysseus is that the developer must generate significantly less code. This saves not only time in the development of event-based applications, but also increases the maintainability and usually minimizes errors in the application.
For this, the developer does not have to implement all the individual processing steps for each new application, but only a part of the application (typically a chart showing the surface or the control of devices). The processing of the data is defined by queries, which are then passed from the application to Odysseus. Then Odysseus executes the processing and forwards the results to the application for visualizing or something else. The multi-user capability and universality of Odysseus allows to use one instance for various applications, which saves resources and maintenance costs. Also, repeated implementations of the same processing steps are no longer necessary, which also leads to better maintainability. In summary, Odysseus offers the same advantages as a database system, but is designed for memory based processing of continuous and temporal data.
Odysseus Server and Odysseus Studio
Since Odysseus implements a client server architecture, it has two main components.
Odysseus Server - The Core
The server provides the actual system, and thus the processing mechanisms, the query interface or the user management. Accordingly, this part is essential for the execution of Odysseus.
There is more information about the query and processing features: Odysseus Server
Odysseus Studio - The User Interface
For the development of queries and for the administration of Odysseus Server, Odysseus Studio was developed. The graphical user interface provides support for the development, while it can be also used as a basis for the development of new applications.
More information about Odysseus Studio can be found here: Odysseus Studio
Features of Odysseus
The key features of Odysseus at a glance:
- Independent operating system using Java
- Exchangeable, expandable and configurable through the OSGi-based component structure
- Several levels of abstraction through query languages and query processing
- Various query languages: StreamSQL, PQL, StreamingSPARQL…
- Any data type and independent processing objects
- Built-in optimization strategies
- Possible integration of new operators
- Built-in parser for mathematical expressions
- Different scheduling strategies and buffer strategies
- Access via web, console or Java
- Odysseus Script: language for control and execution
- Access Framework: Various, combinable and extensible access protocols and mechanisms
- Reuse of similar queries (sharing)
- Multi-user environment
- Heartbeats and punctuations: avoid blockages by meta information in the data stream
Features of Odysseus Studio
Information about the features of Odysseus Studio, the user and administration interface for Odysseus, is available here: Odysseus Studio
Odysseus offers several additional features that for the one hand extend the functionality and for the other hand replace standard components by other concepts. Currently, there are the following features:
- Admission Control: controls the system load and stabilizes the system
- Action Feature: run web service commands
- Benchmark Feature: tests the performance of an Odysseus installation
- CEP Feature: detection of complex patterns
- Context Feature: enrichment with static context information
- Costmodel Feature: cost-based optimizations
- Database Feature: access to a database system
- Priority Feature: prioritized processing of critical events
- Machine Learning Feature: clustering, classification, prediction and association analysis
- Peer 2 Peer Feature: distribution of queries to several Odysseus instances
- Probabilistic Feature: Considering of probability values in the processing
- Security Punctuation Feature: controls access and processing by special events
- SLA Feature: considers Service Level Aggreements into processing
- SPARQL Feature: integrates StreamingSPARQL to process RDF data streams
- Spatial Feature: adds spatial data types like point or polygon and related functions
- Test Feature: allows unit / black box testing for queries
- Wrapper Feature: a lot of other access protocols and mechanisms such as CSV, HTML, Twitter or RS232