Архитектура коммуникационного сервера
Учитывая специфику платформы Windows NT коммуникационный сервер построен по архитектуре системного сервиса (System Service). Для разработки коммуникационного сервера применялась среда разработчика Microsoft Developer Studio 4.2/Visual C++ Enterprise Edition.
Архитектура сервера представлена в Приложении 2.
Для обеспечения наращиваемости системы проведено разделение функциональности сервера на две части:
· Ядро сервера - обслуживает подключения удаленных пользователей, планирует запуск пользовательских задач а также обеспечивает возможность удаленного конфигурирования системы.
· Пользовательские задачи - обеспечивают реплицирование, резервное копирование, синхронизацию картотек, съем данных с аппаратуры повременного учета.
Пользовательские задачи реализованы в виде многопоточных DLL. Каждая пользовательская задача должна обеспечивать две точки входа:
· void TaskProc(void) - основной поток - реализует необходимую функциональность.
· void Terminate(void) - функция для принудительного останова задачи (например при останове сервера)
Информация о пользовательских задачах хранится в реестре Windows NT
(ключ HKEY_LOCAL_MACHINE\SOFTWARE\Svyazinform\CommService\Tasks, рис.2.8).
Рис.2.8. Конфигурация задач коммуникационного сервера в реестре Windows NT.
Ядро cервера построено по многопоточной архитектуре и включает в себя следующие модули:
· Модуль инициализации - основная точка входа сервиса - регистрирует сервис в диспетчере сервисов.
· Модуль управления сервисом - реализует функции запуска и останова сервера.
· Планировщик задач - осуществляет запуск пользовательских задач в заданное время.
· Модуль обслуживания подключений - обрабатывает запросы удаленных пользователей, а также отвечает за удаленное конфигурирование системы.
· Модуль регистрации событий - записывает информацию о состоянии сервера в системный журнал событий.