Vinculum: Difference between revisions

From NURDspace
mNo edit summary
No edit summary
Line 8: Line 8:
Tool to consolidate data like sensor data, spaceapi data and mpd.
Tool to consolidate data like sensor data, spaceapi data and mpd.
[[File:vinculum-sketch-0.png|400px]]
[[File:vinculum-sketch-0.png|400px]]
==Concept==
Vinculum is a stateless, language-agnostic multidirectional message translating and redirecting engine built with the idea of using the minimal possible user-defined input to allow for maximum benefit. This translates into the Vinculum process opening arbitrary ports or making arbitrary connections on vinculum.nurdspace.lan as requested of it by any user capable of writing lines into its rules file.
==The Rules File==
The rule file is the core of vinculum and is read, top-to-bottom, on receipt of each line of data. Each line defines:
* A regex that is run against the body of the message
* The origin of the message (e.g. TCP:slab.nurdspace.lan:2003, meaning that vinculum will open a TCP connection to slab.nurdspace.lan on port 2003, then match INCOMING messages from this source. Local source sockets e.g. TCP-LISTEN:0.0.0.0:5555 can be defined, both opening said socket, and subsequently matching messages against the regex)
* The destination of the message (Same rules as above, may be sent to anyone connected to a socket with e.g. TCP-LISTEN, or sent through a connection to a destination)
* A regex to match for substitutions in the message
* A regex to substitute (see https://docs.python.org/2/library/re.html#re.sub for format)
* A continue flag (True or False) that decrees whether the engine should continue to perform matches in subsequent lines or halt here.
Each piece of data is on one line, comma separated (commas can be \'d out if needed in actual lines) and is executed in the order of the vinculum.rules file. The file itself is checked regularly, and upon update the process will attempt to restart itself according to the new configuration (although this is currently a touch buggy).
Protocols available:
TCP SEND and LISTEN
UDP LISTEN (SEND is a bit more complex...)
SSL SEND and LISTEN
UNIX file socket SEND and LISTEN
== Where does it run? ==
== Where does it run? ==
It is going to run on a VM with the name [[Vinculum]]. See /opt/vinculum
It is running on a VM with the name [[vinculum.nurdspace.lan]]. Code in /opt/vinculum

Revision as of 16:58, 19 August 2014

NURDspace Project
link=File:{{{Name}}}.jpg
Participants
Skills
Status
Niche
Purpose
Tool
Location
Cost
Tool category

{{{Name}}}Property "Tool Name" (as page type) with input value "{{{Name}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. Property "Tool Image" (as page type) with input value "File:{{{Picture}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. {{{Picture}}} {{#if:{{{Tool}}} | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:{{{Tool}}} | [[Tool Cost::{{{Cost}}} | }}


Description

Tool to consolidate data like sensor data, spaceapi data and mpd. Vinculum-sketch-0.png

Concept

Vinculum is a stateless, language-agnostic multidirectional message translating and redirecting engine built with the idea of using the minimal possible user-defined input to allow for maximum benefit. This translates into the Vinculum process opening arbitrary ports or making arbitrary connections on vinculum.nurdspace.lan as requested of it by any user capable of writing lines into its rules file.

The Rules File

The rule file is the core of vinculum and is read, top-to-bottom, on receipt of each line of data. Each line defines:

  • A regex that is run against the body of the message
  • The origin of the message (e.g. TCP:slab.nurdspace.lan:2003, meaning that vinculum will open a TCP connection to slab.nurdspace.lan on port 2003, then match INCOMING messages from this source. Local source sockets e.g. TCP-LISTEN:0.0.0.0:5555 can be defined, both opening said socket, and subsequently matching messages against the regex)
  • The destination of the message (Same rules as above, may be sent to anyone connected to a socket with e.g. TCP-LISTEN, or sent through a connection to a destination)
  • A regex to match for substitutions in the message
  • A regex to substitute (see https://docs.python.org/2/library/re.html#re.sub for format)
  • A continue flag (True or False) that decrees whether the engine should continue to perform matches in subsequent lines or halt here.

Each piece of data is on one line, comma separated (commas can be \'d out if needed in actual lines) and is executed in the order of the vinculum.rules file. The file itself is checked regularly, and upon update the process will attempt to restart itself according to the new configuration (although this is currently a touch buggy).

Protocols available: TCP SEND and LISTEN UDP LISTEN (SEND is a bit more complex...) SSL SEND and LISTEN UNIX file socket SEND and LISTEN

Where does it run?

It is running on a VM with the name vinculum.nurdspace.lan. Code in /opt/vinculum