(this page is currently work-in-progress)

OdysseusNet is a extension for Odysseus which enables distributed data stream processing using a network of interconnected machines (e.g., LANs). It is a follow-up project of OdysseusP2P.

Installation and Starting

OdysseusNet is a feature which is installed like the other features (see How to install new features). However due to technical limitations, OdysseusNet is (currently) not applicable to the client-version of Odysseus. If you use the server-version, install the OdysseusNet Server Feature. For monolithic Odysseus, install the monolithic version of the OdysseusNet Feature. After restarting Odysseus, OdysseusNet is integrated and ready.

If you develop with Odysseus and checked out its sourcecode, you can start OdysseusNet by adding the plugin de.uniol.inf.is.odysseus.net.monolithic.feature (if you're developing with the monolithic version of Odysseus) or the plugin de.uniol.inf.is.odysseus.net.server.feature (server-version of Odysseus) to your product- or launch-definitions. These features contain all underlying OdysseusNet-Features currently available. A more detailed description which feature encapsulates which function can be found in Underlying Features of OdysseusNet.

Network structure of OdysseusNet: OdysseusNodes and NodeGroups

After starting Odysseus, OdysseusNet is – by default – deactivated. In this case, Odysseus behaves like normal. When OdysseusNet is activated (explained in the next section), the Odysseus-Instance becomes an OdysseusNode. A OdysseusNode is a machine running Odysseus with OdysseusNet installed and activated. Each node has a human-readable non-unique name (set in the Configuration) and a generated unique NodeID (needed for developers).

By default, two nodes are connecting to each-other if they are physically reachable (e.g., LAN), forming a network of interconnected Odysseus-Instances. To divide the network in logical subnetworks, each OdysseusNode can be assigned to a NodeGroup. Only nodes, which are in the same group, are connected and can communicate with each-other. By default, each OdysseusNode is in the same group (called OdysseusGroup). However, this can be changed in the Configuration of OdysseusNet.

With this default behaviour, a decentralized and unstructured network of nodes is being built. See the last section of this page if you want to modify this (e.g., establishing master-slave-relationships between nodes).

Activating/Deactivating OdysseusNet

Only when OdysseusNet is activated, the functionality for distributed data stream processing is available. There are multiple possibilities to activate it. If the graphical user interface OdysseusStudio is available, the user can switch to the OdysseusNet Perspective. There in the NodeView, the user can click on the button in the toolbar in the top-right to activate OdysseusNet (marked with red circles in the picture below).

The user can execute the Console Command startOdysseusNet to start OdysseusNet in the console (useful in the server-version of Odysseus). Alternatively, it is possible to start OdysseusNet automatically when Odysseus is started (see Configuration of OdysseusNet).

To finally stop OdysseusNet, the user has to click the button in the toolbar of the NodeView again, execute the console command stopOdysseusNet or has to stop Odysseus entirely.

Features of OdysseusNet

OdysseusNet as a feature is the sum of multiple smaller OdysseusNet features. Each of them encapsulates specific functions, possibilities and interfaces, all useful for "typical" Odysseus-Users and Odysseus-Developers. A (not complete) list of features is as follows:

For users of Odysseus, OdysseusNet provides the following features:

For developers, OdysseusNet provides additional in-depth features (e.g., interfaces) to make it possible to alter and/or extend OdysseusNet: