Remote Control and Monitoring

The optiSLang as a server functionality can be used to remotely connect to a running optiSLang, query for project information and status and perform project command actions as well as setting project and actor settings.

The optiSLang as server functionality can be used in both user interface and batch mode. When used in batch mode without specifying the --shutdown-on-finished command line switch, the application remains active until a SHUTDOWN command request is received from any client.

Several types of server architectures and communication protocols are supported. This includes local and remote servers. For local servers, named pipes (Windows) or local sockets (Unix) are used. Remote servers include plain TCP/IP, SSL encrypted and ZeroMQ based communication. Any non ZeroMQ based server communication must include the size of the message/request to be sent or received. The size must be a 64 bit unsigned integer and be sent/received twice.

When sending a request:

  1. Calculate the request size.

  2. Send the size twice as a 64 bit unsigned integer.

  3. Send the request itself.

Respectively, the server first sends the response size twice as an 64 bit unsigned integer and then sends the response itself. ZeroMQ based communication includes a similar step internally. Request/responses can be sent/received directly when using ZeroMQ based communication.

Remote servers listen on a specific port on any address of the host (for example, the address 0.0.0.0). When specifying a port range, the lowest unused port is used.

For queries and commands, see: