Information Technology Reference
In-Depth Information
the state machine must be reset, and run from the beginning of the window
again.
All three calls can return a list of notications to be emitted to perform whatever
action the state machine decides to be made. So, initialize() would return commands
to set-up the notication sources needed, and whenever a pattern is recognized dur-
ing either process window add or process window move, the corresponding actions
will be returned.
By expressing the state machine as Lua code, there is no intermediate represen-
tation for the state machine and thus no special parsing. All the parsing work is
done in the central server, and the PDP just executes it.
5.3 Rmoon
Rmoon is a general purpose monitoring service. It is controlled through the RAN
bus: it receives commands to setup and remove \watchers", and emits notications
when the watchers get triggered.
Each watcher has a unique identier used to tag all its notications. A watcher
observes a variable (called a mib), and species a condition the variable must met
to trigger a notication. The condition is specied as a comparison operator (>,
< or =) and a reference value. When the reference value is numeric, an additional
hysteresis value can be provided. The comparison can be specied to be made
against the instantaneous value of the variable, the dierence with the last reading,
or the dierence with the last value that triggered a notication. In other words,
the conditions can be set on the value of the variable, its rate of change, or the
deviation from last reported value. Additionally, a timeout can be specied, which
triggers a notications emission if a given time has expired without the notication
being triggered otherwise.
When used to monitor the node's state, Rmoon uses shell scripts and it is easily
extensible. For the DEMOS project we extended Rmoon with support for exter-
nal sensors. For this purpose we interfaced with a microprocessor software frame-
work developed in our research group, called USB4ALL[7]. USB4ALL is a modular
rmware that provides a high level communication mechanism. It allows the con-
troller to discover installed modules, load and unload them at runtime, and query
them through an RPC-like mechanism. Originally developed for the Microchip PIC-
18 series of microprocessors, it has been also ported to AVR based Arduino platform.
To interface with USB4ALL, a library called Lubot (also written in Lua) has been
developed. The only native code needed on the Rmoon side is a Lua - libusb bind-
ing or a small message oriented serial library (depending on how the microprocessor
board is attached, through USB or serial link).
5.4 RON
As mentioned earlier, RON tries to take the \broadcast advantage". While in tra-
ditional gossiping algorithms is the emitter responsibility to select the recipients for
his messages, in our implementation the only decision the emitter does is whether to
 
Search WWH ::




Custom Search