7.3. Central Server - Local Demon protocol

This chapter describes the communiction protocol used between Local Demons and Central Server. It contains:

Messages exchanged between Central Server and Local Demons

(s) indicates that the message is received and interpreted by server

(d) indicates that the message is received and interpreded by demon

(c) indicates that the message is received by demon and forwarded to Control Applet. Interpretation takes place in Control Applet

In general there are two types of messages:

Application messages:

All application messages are encapsulated in one general message type:

(d)(s) EVENT (AID, contents) - message carrying information between applications

Control messages:

These messages are not re-sent by the server. The contents of these messages is extracted and interpreted to perform message dependent server actions.

(s) JOIN (AT, SID) - this command is used to join the session with the application

(c) JASK (AT, SID, UID) - request for joining session sent to master of the session

(s) JANS (AT, SID, UID, yes | no) - answer for JASK sent by master of the session

(d) COMMAND (AT, params, AID, SID) - this command is send to the demon to launch the application

(s) FINISH (AID) - command sent from the demon after an application terminates

(s) RJOIN (AT, SID. remote UID) - message used to launch application on remote host

(c) RASK (AT, SID, local UID) - message to ack user on remote host if he/she wants the application to be launched

(s) RANS (AT, local UID, remote UID, SID, yes | no) - answer for RASK

(c) SUPD ( add | remove | master | login | logout, SID, AT, UID, username )

(s) MASTER (SID) - request for master

(c) MASK (SID, UID) - request for the previous master

(s) MANS (SID, UID, yes | no) - answer from previous master

(s) LOGIN (username, passwd) - login to the system

(c) LOGACC (username, UID, privileges) - login confirmation

(s) LOGOUT (UID) - logout from the system

Server actions

We use the following convention: description of actions is provided with SQL-like language with several extensions.

SEND means sending message back to the demon which sent the message currently processed.

SEND_TO(UID) means sending a message to the demon working with user of identifier UID.

SEND_TO_ALL means sending a message to all demons.

EVENT (AID, contents)


JOIN (AT, SID)


JANS (AT, SID, UID, yes | no)


FINISH (AID)


RJOIN (AT, SID. remote RUID)


RANS (AT, local UID, remote RUID, SID, yes | no)


MASTER (SID)


MANS (SID, UID, yes | no)


LOGIN (username, passwd)


LOGOUT (UID)

Demon and Control Applet actions

COMMAND (AT, params, AID, SID)


JASK (AT, SID, UID)


SUPD ( add | remove | master | login | logout, SID, AT, UID, username )


EVENT (AID, contents)


RASK (AT, SID, UID)


MASK (SID, UID)


LOGACC (username, UID)