2014-06-05 09:35:31 +00:00
|
|
|
# Concept
|
|
|
|
|
2014-06-25 13:08:33 +00:00
|
|
|
The server is designed around the concept of _nodes_ and _paths_.
|
2014-08-31 17:30:45 +00:00
|
|
|
It's the task of the server to forward real-time simulation data between multiple parties.
|
|
|
|
In doing so, the server has to perform simple checks and collects statistics.
|
|
|
|
From the viewpoint of the communication parters the server is nearly transparent.
|
|
|
|
Hence, it's cruical to keep the added overhead as low as possible (in terms of latency).
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
## Nodes
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
All communication partners are represented by nodes.
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
Possible types of nodes are:
|
|
|
|
* Simulators (OPAL, RTDS)
|
2016-06-08 23:21:42 +02:00
|
|
|
* Servers (VILLASnode instances)
|
2014-08-31 17:30:45 +00:00
|
|
|
* Workstations (Simulink, Labview, ...)
|
|
|
|
* Data Loggers
|
|
|
|
* etc..
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
@see node for implementation details.
|
2014-06-05 09:35:31 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
## Paths
|
2014-06-05 09:35:31 +00:00
|
|
|
|
2015-08-09 23:58:03 +02:00
|
|
|
A path is a **uni-directional** connection between incoming and outgoing nodes.
|
2014-06-05 09:35:31 +00:00
|
|
|
|
2015-08-09 23:58:03 +02:00
|
|
|
It forwards messages from a single incoming node to multiple outgoing nodes.
|
|
|
|
Therefore it represents a 1-to-n relation between nodes.
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
For bidirectional communication a corresponding path in the reverse direction must be added.
|
2015-08-09 23:58:03 +02:00
|
|
|
|
|
|
|
By default, message contents are not altered.
|
|
|
|
The server only performs checks for valid message headers (sequence number, cryptographic signature..).
|
|
|
|
However every path supports optional hook/callback functions which allow user-defined operations on the message contents.
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
@diafile path_simple.dia
|
2014-06-25 13:08:33 +00:00
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
@see path for implementation details.
|
2014-06-25 13:08:33 +00:00
|
|
|
|
|
|
|
## Interface
|
|
|
|
|
2015-08-09 23:58:03 +02:00
|
|
|
Interfaces are used to represent physical network ports on the server.
|
|
|
|
They are only used by the [Socket](socket) type of nodes.
|
|
|
|
|
2014-06-25 13:08:33 +00:00
|
|
|
@todo Add documentation
|
|
|
|
|
2014-08-31 17:30:45 +00:00
|
|
|
@see interface for implementation details.
|