dgnsd is a single-process server. Its clients can be both programs
that want to notify an operator about a running problem and programs which can display
a notification as a graphic window. Once the server receives from a client a
notification about a case, next it is forwarded to registered graphic clients.
The message is forwarded only to these clients which have logged in users. So,
if a graphic application wants to receive notifications, it must be connected
to the server and must pass a successful authentication of its user in David system.
The authentication is made on the base of information contained in Users' Database
which is stored in SQL Database. A response received from a graphic client is forwarded
to a notification client that sent the notification. Because of fact that more then one
graphic client may send a response, a simple rule is applied: only
that response is respected which comes from a client holding the token. There
is always one token in dgnsd server. When no user holds the token, the first
response matters. A given graphic client may log in many times and every time
it may be a different user. A logged in user has rights according to the
Users' Database. The users may do the following operations:
to log out;
to log out users of a lower level;
to list logged in users;
to take over the token, if no user has it or its owner is a
lower level user;
to leave the token;
to pass the token to a lower level user on condition that the
token is hold by the user or it is nobody or it belongs to a lower level user.
dgnsd server also gets from sndc program
requests about playing sounds and forwards them to clients
xdgnp. There are two kinds of requests:
The text messages are played with the speech synthesizer's help.
When a sound file is played, you should give a path to it.
Each path is automatically preceded with a directory
in which David system is locally installed (i.e.: /home/david).
The client xdgnp can be installed
on the other computer station then dgnsd server. When xdgnp
client receives a request about playing a sound file, it checks that the file is placed
in its local filesystem or not. If the program doesn't find the file, it can take it from the
station, on which dgnsd server is working. All sound files are placed on the
computer station with installed dgnsd server.