Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Presently the components of OpenVisualizer operate within a single process. We wish to experiment with extending this operation across processes and machines, as shown in the diagram below.

Messaging

Presently we implement EventBus messaging with PyDispatch, which provides communication between threads in a single process.

Between Processes

On an embedded LBR, we plan to use the native POSIX message queue due to its built-in availability. The posix_ipc module for Python provides access to this functionality.

Remote GUI host to LBR

WebSockets provide a standards-based protocol for bi-directional communication, textual or binary. We require bi-directional messaging. In general the LBR sends information to the Remote GUI. However, the GUI may signal to the LBR, for example to toggle DAGroot status.

Tools

RoleToolNotes
WebSocket clientwebsocket-clientInstalled with pip.

 

Other Implementations

Nanomsg and ZeroMQ provides a common messaging API for a variety of endpoints – threads, processes, and machines. They are open source, but not standards. However, it would be efficient to use a single tool for messaging across all domains.

Nanomsg is developed by Martin Sústrik, the original author of ZeroMQ. Sústrik left ZeroMQ due to a dispute over trademarks, as described in a Linux Weekly News article.

Celery provides a distributed message queue, but is more heavy-duty and requires a message broker.

  • No labels