Presently the components of OpenVisualizer operate within a single process. However, in a realistic sensor networking implementation, we do not wish to deploy a PC as an LBR! This page documents an experiment to segment presents the first steps toward segmenting the components of OpenVisualizer across processes and machines, using an architecture as shown in the diagram below.
Gliffy | ||
---|---|---|
|
As a first step toward this goal, we plan to separate the GUI to run on a PC, and an LBR to run on an inexpensive, low-power, embedded Linux device.
Gliffy | |
---|---|
|
...
|
Messaging
Presently we implement EventBus messaging with PyDispatch, which provides communication between threads in a single process. However, we must split the GUI from the LBR when the LBR is headless, like an embedded Linux device. In addition to host-to-host communication, we also may wish to segment the components in the LBR into separate processes, for example to reimplement serial communication in C.
...
Remote GUI | LBR |
---|---|
On startup, create a signal handler on SIGUSR1 | |
At some later time...
| |
Signal received, and handler connects to WebSocket server on forwarded portws://<remoteip>localhost:8000 /lbr |
The signal above assumes the LBR is in the form of the openVisualizerCli module, which probably is the simplest solution.
...