Технический дизайн проекта "!CapsClock"¶
Версия 3.2
10 октября 2009
- Table of contents
- Технический дизайн проекта "!CapsClock"
Введение
h3. Описание разрабатываемого проекта
Система предназначена для отображения точного времени и различных временных интервалов, а также информации о состоянии подключенного внешнего специализированного звукового оборудования в сетевой среде в режиме реального времени.
Архитектура системы¶
Детальное описание архитектуры приведено в SAD.
Декомпозиция системы¶
Приведена на диаграмме.
Все подсистемы можно условно разделить на 3 группы:
1.Общего использования
2.Специфичные для клиентской части (часовой машины)
3.Специфичные для серверной части (SCS)
Структура и связи¶
Представлены на диаграмме
Пользовательский интерфейс¶
GUI интерфейс имеет только модуль "Часовая машина". Представляет собой окно, в котором расположен набор контролов, указанный в конфигурации. Контролы управляются только CCP командами и не имеют возможностей интеракции с пользователем.
Детальное описание компонент
h3. Компоненты общего использования
h4. Протоколирование
Предназначен для ведения протокола действий, выполненных системой.
Назначение¶
Предназначен для ведения протокола действий системы.
Функции¶
Компонент записывает информацию (протокол) в текстовом формате в файл, создаваемый рядом с исполняемым модулем системы.
В протокол помещается информация о действиях и событиях, возникших при выполнении:
1.Ошибки;
2.Исключения (в т.ч. штатные);
3.Точки трассировки и отладки.
Зависимости¶
Данный компонент используется большинством других компонентов.
Создается на старте приложения.
Интерфейсы¶
API и реализация представлены на диаграммах.
Сетевой агент TCP
h5. Назначение
Отправка и получение сетевых пакетов на низком уровне сетевого протокола (TCP/IP)
Функции¶
1.Отправка пакетов данных указанному адресату
2.Получение пакетов данных от других адресатов
Зависимости¶
Используется компонентами: "Сетевой агентCCP", "Сетевой агентENM".
Использует компонент: "Протоколирование".
Интерфейсы¶
API и реализация представлены на диаграммах.
Сетевой агент CCP
h5. Назначение
Отправка и получение сетевых пакетов по протоколу CCP.
Функции¶
1.Отправка CCP запросов
2.Получение CCP ответов
Зависимости¶
Использует компоненты: "Сетевой агент TCP", "Протоколирование".
Используется компонентами: "Сервис CCS", "Сервис SCS", "Сетевой локатор", "Обработка сигналов".
Интерфейсы¶
На диаграммах представлены:
- API и реализация базовых классов
- API и реализация сетевых классов
- API и реализация рапперов
Ресурсы¶
Для работы с форматом XML использует библиотеку XStream.
Данные¶
Форматы данных протокола CCP приведены в прилагаемых документах.
Сетевой локатор
h5. Назначение
Предназначен для поддержки актуальной карты сети.
Функции¶
1.Уведомление других узлов сети о начале работы данного узла.
2.Уведомление других узлов сети об окончании работы данного узла.
3.Проверка текущего состояния других узлов сети.
4.Ведение текущей сетевой карты.
Зависимости¶
Использует компоненты: "Сетевой агент CCP", "Протоколирование".
Используется компонентами: "CCP процессоры ЧМ", "CCP процессоры SCS".
Интерфейсы¶
API и реализация представлены на диаграммах.
Конфигурация
h5. Назначение
Поддержка работы с конфигурационными файлами системы
Функции¶
1.Загрузка файла сетевой конфигурации.
2.Загрузка файла конфигурации CDS.
3.Изменение файла конфигурации CDS по команде CCP.
4.Загрузка файла конфигурации обработки сигналов.
Зависимости¶
Использует компоненты: "Протоколирование".
Используется компонентами: "Сервис CCS", "Сервис SCS".
Интерфейсы¶
На диаграммах представлены :
- API и реализация конфигуратора
- реализация хранения
- реализация конвертера
Ресурсы¶
Для работы с форматом XML использует библиотеку XStream.
Данные¶
Форматы файлов конфигурации приведены в прилагаемых документах.
Компоненты часовой машины¶
Раздел содержит компоненты, спецефичные для часовой машины.
Контролы ЧМ
h5. Назначение
Обеспечивает набор специализированных типов контролов для размещения в UI часовой машины.
Функции¶
Реализация контролов в виде UI компонентов.
Зависимости¶
Использует компоненты: "Протоколирование".
Используется компонентами: "Интеракторы ЧМ".
Интерфейсы¶
На диаграммах представлены :
- API и реализация шаблонов
- API и реализация контролов
- реализация базовых классов
Интеракторы ЧМ
h5. Назначение
Управление и взаимодействие с контролами в часовой машине
Функции¶
1.Создание экземпляров контролов
2.Получение параметров контролов
3.Установка параметров контролов
Зависимости¶
Использует компоненты: "Протоколирование", "Контролы ЧМ", "GUI ЧМ".
Используется компонентами: "Сервис CCS", "CCP процессоры ЧМ".
Интерфейсы¶
API и реализация представлены на диаграммах.
CCP процессоры ЧМ
h5. Назначение
Обработка CCP команд, полученных часовой машиной.
Функции¶
1.Обработка CCP команд.
2.Управление часовой машиной на основании полученных команд.
Зависимости¶
Использует компоненты: "Протоколирование", "Интеракторы ЧМ", "Сетевой агент CCP", "Сетевой локатор".
Используется компонентами: "Сервис CCS".
Интерфейсы¶
API и реализация представлены на диаграммах.
GUI ЧМ
h5. Назначение
Представляет GUI часовой машины
Функции¶
1.Стартовая инициализация.
2.Запуск сервиса CCS.
3.Отображение главного окна ЧМ.
Зависимости¶
Использует компоненты: "Протоколирование".
Используется компонентами: "Сервис CCS", "Интеракторы ЧМ".
Интерфейсы¶
API и реализация представлены на диаграммах.
Сервис CCS
h5. Назначение
Запуск, остановка и поддержание работы часовой машины
Функции¶
1.Запуск ЧМ
2.Остановка ЧМ
3.Прием CCP команд
4.Прием уведомлений об изменении состояния сети
Зависимости¶
Использует компоненты: "Протоколирование", "Конфигурация", "CCP процессоры ЧМ", "Интеракторы ЧМ", "GUI ЧМ", "Сетевой агент CCP", "Сетевой локатор".
Интерфейсы¶
API и реализация представлены на диаграммах.
Компоненты серверной части
h4. Сервис SCS
h5. Назначение
Запуск, остановка и поддержание работы серверной части.
Функции¶
1.Запуск серверной части
2.Остановка серверной части
3.Прием CCP команд
4.Прием уведомлений о сигналах TP-312
Зависимости¶
Использует компоненты: "Протоколирование", "Конфигурация", "CCP процессоры SCS", "Сетевой агент CCP", "Сетевой локатор".
Интерфейсы¶
API и реализация представлены на диаграммах.
CCP процессоры SCS
h5. Назначение
Обработка CCP команд, полученных серверной частью.
Функции¶
1.Обработка полученных CCP команд.
Зависимости¶
Использует компоненты: "Протоколирование".
Используется компонентами: "Сервис SCS".
Интерфейсы¶
API и реализация представлены на диаграммах.
Обработка сигналов HW
h5. Назначение
Обработка сигналов, полученных от TP-312
Функции¶
1.Получение сигналов TP-312.
2.Трансляция сигналов в вызовы макросов.
3.Вызов макросов, порожденных сигналами.
Зависимости¶
Использует компоненты: "Протоколирование", "Макропроцессор".
Интерфейсы¶
API и реализация представлены на диаграммах.
Обработка внешних сетевых сообщений (ENM)
h5. Назначение
Обработка сетевых сообщений, полученных от внешних программ.
Функции¶
1.Обработка ENM сообщений, принятых сетевым агентом ENM.
2.Трансляция сообщений в вызовы макросов.
3.Вызов макросов, порожденных сообщениями
Зависимости¶
Использует компоненты: "Протоколирование", "Макропроцессор", "Сетевой агентENM".
Интерфейсы¶
API и реализация представлены на диаграммах.
Сетевой агент ENM
h5. Назначение
Получение внешних сетевых сообщений по протоколу ENM.
Функции¶
1.Получение ENM сообщений.
2.Передача сообщений в обработчик ENM сообщений
Зависимости¶
Использует компоненты: "Сетевой агент TCP", "Протоколирование".
Используется компонентами: "Обработка внешних сетевых сообщений".
Интерфейсы¶
API и реализация представлены на диаграммах.
Макропроцессор
h5. Назначение
Выполнение макросов на серверной части.
Функции¶
1.Запрос кода макросов из макрореестра.
2.Обработка и подстановка параметров в макросы.
3.Выполнение макросов (включая отправкуCCPкоманд, вызов внешних приложений, чтение данных из внешних файлов).
Зависимости¶
Использует компоненты: "СервисSCS", "Протоколирование", "Макрореестр".
Используется компонентами: "Обработка внешних сетевых сообщений", "Обработка сигналовHW".
Интерфейсы¶
На диаграммах приведены:
- API и реализация макрокоманд
- API и реализация макропроцессора
Макрореестр
h5. Назначение
Единый реестр макросов, содержащий их декларации и описание (код).
Функции¶
1.Загрузка макрореестра из конфигурационных файлов.
2.Возврат полного описания макроса по его идентификатору (имени).
Зависимости¶
Использует компоненты: "Протоколирование".
Используется компонентами: "Макропроцессор".
Интерфейсы¶
API и реализация представлены на диаграммах.