Page tree
Skip to end of metadata
Go to start of metadata

(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. Both projects are created by Timo Michelsen.

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 Developing with 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 activated and participates in the distributed data stream processing. 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 Discovery of OdysseusNodes and Connection to OdysseusNodes if you want more details and to modify this.

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 top-right corner 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).

After OdysseusNet is activated successfully, the title bar of OdysseusStudio shows the name and the NodeGroup of the own OdysseusNode aside the OdysseusStudio 2 title (separated with ":").

In the console, the message OdysseusNet started is printed.

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 is a 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 aside the extensibility of Odysseus (see Developing with OdysseusNet):

 

  • No labels