1.6.2. Процессы и их организация
1.6.3. Программные компоненты, их размещение и взаимодействие
1.6.1. Общая структура
Общая структура программного обеспечения (ПО) СЦК «ЭЛКОМ» показана на рис.1.6.1.

Рис. 1.6.1. Общая структура программного обеспечения СЦК «ЭЛКОМ»
ПО в целом делится по функциональному принципу на 3 уровня:
— уровень оператора (Модуля оператора — МО);
— уровень управляющего вычислительного модуля (ВМ);
— уровень терминальных модулей.
ПО уровня оператора обеспечивает выполнение следующих функций:
— организация графического интерфейса пользователя, отображение процессов выполнения соединений,
— настройка и конфигурирование АТС;
— формирование статистических данных;
— администрирование и техническое обслуживание АТС;
— экспорт тарификационных данных из АТС;
— обеспечение функционирования дополнительной консоли Оператора, применяемой в аварийных режимах и при настройке системы.
Программные модули данного уровня общаются с программами уровня ВМ с помощью данных, передаваемых через стек протоколов TCP/IP, которые приняты в системе как стандартные.
На уровне ВМ взаимодействие программных модулей своего и смежных уровней, а также создание и ведение БД различного назначения организуется и поддерживается Сервером Модуля оператора. Каждому из видов сигнализаций соответствует своя подсистема, которая обеспечивает настройку, конфигурирование и управление линиями данного вида.
Хранение БД непосредственно в АТС обеспечивает их высокую сохранность и оперативность обращения к ним со стороны программных модулей, резидентно находящихся в АТС. С другой стороны, поскольку вся информация, как оперативная (аварийные сообщения, протоколы работы, данные тарификации), так и условно-постоянная (конфигурационные данные, таблицы маршрутов) хранится в станции, любое обращение к данным требует их предварительной перекачки из АТС.
Транспорт данных производится под управлением сервера МО.
Внутреннее ПО (уровня ВМ) работает под управление операционной системы реального времени (ОС РВ) QNX4. ОС РВ выполняет следующие основные функции:
— управляет запуском программ, контролирует их выполнение, обеспечивает диспетчеризацию ресурсов (процессор, память);
— обеспечивает доступ к устройствам ввода-вывода;
— обеспечивает функционирование файловой системы.
Интерфейс с программными модулями нижнего уровня, обеспечивающими работу терминальных модулей (ТМ), обеспечивается менеджером внутрисистемных сообщений.
Программное обеспечение ТМ организовано по видам терминальных модулей. Актуальная версия ПО (рабочая версия программного обеспечения — РВПО) записывается в процессе производства оборудования. Идентификаторы файлов заносятся в формуляр АТС, что позволяет определять конкретную действующую версию. При проведении модернизации ПО (upgrade) или замены ПО в случае исправления ошибок это также фиксируется в формуляре.
1.6.2. Процессы и их организация
Все программы уровня ВМ реализованы в виде отдельных программных модулей — процессов, для каждого из которых заданы:
— условия запуска — по времени, по событию или по аппаратному прерыванию;
— системные, или служебные параметры (разрешенная область памяти и т.п.);
— таймаут, т.е. максимально допустимое время выполнения;
— приоритет в ряду других процессов (программ).
Запуск по времени означает регулярный запуск с некоторым периодом (например, 1 раз в секунду). Запуск по событию означает, что запрос на запуск процесса поступает в случае наступления некоторого события. Например, изменилось состояние линии — линия перешла в состояние «Занято», и это событие надо отразить на Модуле оператора. Особо обрабатываются аппаратные прерывания, например, запрос на ввод-вывод данных с жесткого диска. Такие запросы должны быть обработаны за минимальное время.
На каждый процесс задается свой таймаут, т.е. время, за которое он должен успешно завершиться и «доложить» об этом операционной системе. Если по какой-либо причине сообщение в заданные сроки не поступило, процесс снимается с выполнения. Запуск по времени или по событию приводит к тому, что через некоторое время запрос на запуск повторяется, и процесс снова запускается на выполнение. Тем самым обеспечивается автоперезапуск программ, что значительно увеличивает живучесть системы.
С помощью системы приоритетов процессы разбиваются на группы. Запрос на выполнение определенного процесса ставится в очередь в соответствии с его приоритетом, т.е. после всех готовых для обработки процессов своей группы. Когда до него доходит очередь, он запускается на выполнение. Если в период его выполнения приходит запрос на выполнение процесса с более высоким приоритетом, данный процесс приостанавливается и ждет, пока идет обработка запроса с более высоким приоритетом, после чего приостановленный процесс снова запускается в работу.
Такой механизм позволяет Администратору системы легко управлять процессами. В случае необходимости без остановки всей системы конкретный процесс может быть остановлен и заменен другой версией. Это дает возможность автоматизировать модернизацию (upgrade) ПО.
С функциональной точки зрения процессы условно можно подразделить на следующие группы:
— процесс-администратор, выполняющий функции диспетчера для всех остальных процессов;
— системные и служебные процессы;
— прикладные процессы, обеспечивающие управление коммутацией, реализацию конкретных протоколов, а также процессы-модули приложений, функционирующих на компьютерах внешней сети (Модуль оператора, Тарификация, Статистика и пр.).
В нормальном состоянии все процессы работают (активны). Доступ к ним разрешен в окне системной консоли Администратора. При вызове системной консоли открывается окно, в котором ведется работа.
Переход от одного процесса к другому осуществляется с помощью комбинаций функциональных клавиш.
Первым в актуальном списке процессов всегда является процесс-администратор, за ним следуют остальные процессы в порядке возрастания номеров.
| Номер в списке | Процесс | Обозначение | Текущий вызов |
| 0 | Администратор | elcadmin | CTRL+F1 |
| 1 | Общая консоль | econsole | CTRL+F2 |
| 2 | Управление LOG-файлами | elogger | CTRL+F3 |
| 3 | Менеджер EDLC | elcedlc | CTRL+F4 |
| 4 | Модуль коммутации | elcmk | CTRL+F5 |
| 5 | Модуль оператора | elcmo | CTRL+F6 |
| 6 | Менеджер ISDN | elcisdn | CTRL+F7 |
| 7 | Управление услугами ДВО | elcsrv | CTRL+F8 |
| 8 | Процесс SS7 MTP | elcss7 | CTRL+F9 |
| 9 | Процесс SS7 ISUP | elcisup | CTRL+F10 |
| 10 | Проведение upgrade ПО | elcupgr | CTRL+F11 |
| 11 | Изменение параметров АТС | elcparam | CTRL+F12 |
| 12 | Сервер сообщений | ecommsrv | ALT+F1 |
| 13 | Протокол TCP/IP | elc_tcp | ALT+F2 |
| 14 | Тарификация | elcbill | ALT+F3 |
| 15 | Статистика | elcstat | ALT+F5 |
| 16 | Обслуживание СОРМ | elcsorm | ALT+F7 |
| 17 | Обслуживание файлов | elcassist | ALT+F8 |
| 18 | Обслуживание интерфейса V5.2 | elcv5l2 | ALT+F9 |