Program dgnsd jest serwerem jednoprocesowym. Klientami jego mogą być zarówno 
	programy zgłaszające chęć powiadomienia operatora o zaistniałym problemie jak i 
	programy potrafiące wyświetlić graficzne powiadomienie w postaci okienka dialogowego. 
	W chwili otrzymania komunikatu od klienta powiadamiającego o sprawie, rozsyłany jest 
	on do zarejestrowanych wcześniej programów, które są aplikacjami graficznymi i potrafią 
	wyświetlić graficzne powiadomienie. Wiadomość zostanie rozesłana tylko tym aplikacjom, 
	które mają zalogowanych użytkowników. Innymi słowy, jeśli aplikacja graficzna chce 
	otrzymywać powiadomienia, to musi się oczywiście połączyć z serwerem oraz dokonać 
	udanej autentykacji użytkownika w systemie David.
	
Autentykacji dokonuje się na podstawie informacji zawartych w Bazie Danych 
	Użytkowników przechowywanej w SQL-owej bazie danych. Klientowi powiadomień, 
	który wysłał dane powiadomienie, zostanie przekazana odpowiedź od klienta graficznego, 
	jeśli taką serwer otrzyma. Z racji, że więcej niż jeden klient graficzny może wysłać 
	odpowiedź, to została wprowadzone prosta reguła. Zgodnie z nią zostanie uwzględniona 
	tylko odpowiedź od tego klienta, który posiada token. W danej chwili może istnieć 
	tylko jeden token dla całego serwera dgnsd. W przypadku, gdy nie istnieje żaden 
	token, wtedy liczy się pierwsza odpowiedź. Dany klient graficzny może się logować 
	wielokrotnie i do tego za każdym razem jako inny użytkownik. Zalogowany użytkownik 
	posiada uprawnienia takie, jakie są zapisane w Bazie Danych Użytkowników. Użytkownicy 
	mogą dokonywać następujących operacji:
        
- wylogowywać się; 
- wylogowywać użytkowników niższego poziomu; 
- pobierać listę zalogowanych użytkowników; 
- pobierać token, jeśli nie był nikomu przyznany lub użytkownik, 
		który go posiadał był niższego poziomu; 
- oddawać token, jeśli się jest jego właścicielem; 
- przekazywać token użytkownikowi z niższego poziomu 
		uprawnień pod warunkiem, że token był wcześniej własnością 
		danego użytkownika lub nie należał do nikogo lub należał 
		do użytkownika niższego poziomu. 
Serwer dgnsd zajmuje się również odbieraniem od programu
	    sndc próśb o odtworzenie dźwięku i przesyła je
	    do klientów xdgnp. Mogą być dwa rodzaje takich próśb:
	    
	    Wiadomości tekstowe są odtwarzane za pomocą syntezatora mowy.
	    W przypadku kiedy ma być odtworzony plik dźwiękowy należy podać ścieżkę do niego.
	    Każda ścieżka automatycznie poprzedzana jest katalogiem, w którym
	    lokalnie zainstalowany jest system David (np. /home/david).
	    
Klient xdgnp może być zainstalowany na
	    innej stacji niż serwer dgnsd. Kiedy klient xdgnp
	    otrzymuje prośbę o odtworzenie pliku dźwiękowego, wówczas sprawdza, czy ma taki plik
	    w swoim lokalnym systemie plików, czy też ma go pobrać ze stacji, na której pracuje 
	    serwer dgnsd. Jeśli xdgnp nie znajduje go
	    na swojej stacji to wówczas, jeśli serwer dgnsd pracuje na innym komputerze,
	    prosi serwer o przesłanie mu tego pliku. Wszystkie pliki dźwiękowe znajdują się na stacji,
	    na której jest zainstalowany dgnsd.