-
Notifications
You must be signed in to change notification settings - Fork 22
Communication protocol
This document is for VIBes client<->viewer communication protocol and data format specification.
VIBes messages can be transferred by
- named pipes
- files
- TCP sockets
Communication channel can be either unidirectional (batch) or bidirectional (interactive).
Most often, the viewer will be run on the same machine as the client program. Named-pipes are fast for local IPC. Once the fifos are created, communication is done like through a file. The platform-specific named-pipe creation (e.g mkfifo) can be done by the viewer. The client thus remains very portable (open a file). File opening and writing functions are available in almost every language without the need from additional libraries. Since named-pipes are often unidirectional, two pipes may have to be created if interactive communication is needed. Moreover, if several clients talk simultaneously to the viewer, the pipe may not be shared.
Files are useful if you don't have a permanent connection with the system running the program and want to gather the results only once computation has been done. It can be useful for batch processing. File communication comes at no cost if unidirectional named-pipe communication is implemented. File communication requires that all basic commands can be run in unidirectional non-interactive mode.
Design constraints: