7.1 Communication protocol

Application will communicate with each other by participating in one session. The session will consist of one or more virtual connections. Virtual connection will link application with Central Server. Virtual connection will consist of connection between application and demon and demon and central server. The connections will be implemented as Internet socket connections. Demon to central server connection will use TCP stream. Application will have possibility of communicating with demon using either UDP packets or TCP streams.

When application will be started by the the demon it will be assigned number of port to communicate with it. On server side new virtual connection will be added and application will be assigned unique application id number (AID). This number will be known to the demon which will maintain table translating numbers of ports to AID. Each time demon receives a message from one of running applications, it will attach AID to it and send it to the server. On the base of the AID server will identify the session application belongs to, lookup for all AID of applications belonging to the same session and will send the message with their AID to the demon on the host where application is running. Demon will have to translate AID to number of port and send the message to this port.

Information about virtual connections and sessions will be maintained by Central Server and stored in the database. There will be the following tables to keep this information:

AID, session id

AID, application type, host

AID, message

host, user

user, user attributes