Основные подходы к проектированию распределенных баз данных
5c8b6e8c

Архитектура коммуникационного сервера


Учитывая специфику платформы 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ервера построено по многопоточной архитектуре и включает в себя следующие модули:

·      Модуль инициализации - основная точка входа сервиса - регистрирует сервис в диспетчере сервисов.

·      Модуль управления сервисом - реализует функции запуска и останова сервера.

·      Планировщик задач - осуществляет запуск пользовательских задач в заданное время.

·      Модуль обслуживания подключений - обрабатывает запросы удаленных пользователей, а также отвечает за удаленное конфигурирование системы.

·      Модуль регистрации событий - записывает информацию о состоянии сервера в системный журнал событий.



Содержание раздела