Классификация элементов программного обеспечения. Назначение инструментального, системного и прикладного программного обеспечения.
Программное обеспечение (ПО) управляющих устройств является важнейшей составной частью современных систем управления аппаратуре связи и в значительной степени определяет функциональные возможности последней. Программные средства в первую очередь поддерживают выполнение базовых функций, таких как демодуляция принимаемых сигналов в модемах, анализ адресной информации в маршрутизаторах, управление коммутационным полем в АТС. Кроме того, ПО обеспечивает автоматизацию процесса технического обслуживания, включая дистанционный мониторинг и администрирование.
Масштабы задач, решаемых программными средствами современных систем управления можно косвенно оценить, например, по производительности современного маршрутизатора, который способен обрабатывать до нескольких миллионов пакетов в секунду. Сложность ПО обусловлена как его многофункциональностью, так и тем, что программы должны выполняться в реальном масштабе времени. По мере развития микропроцессорной техники и расширения функциональных возможностей сетей связи продолжает расти объем программного обеспечения. Если в первой программно-управляемой АТС ESS-1 (США) емкость запоминающего устройства ЦУУ для хранения программ равнялась всего 250 тысячам слов, то в современных многопроцессорных системах управления коммутационного оборудования телефонных сетей и сетей передачи данных объем памяти только одного из управляющих устройств может составлять, от нескольких сотен мегабайт ло единиц гигабайт. Несмотря на это, время, необходимое для создания ПО, не имеет тенденции к увеличению, поскольку средства разработки программ также постоянно совершенствуются.
На рис. 5.1 представлена структура программного обеспечения системы управления автоматической телефонной станции. Программы разделены на две основные группы: группы программ прикладного и системного ПО.
Рис. 5.1
Прикладное программное обеспечение состоит из основного и вспомогательного. Основное ПО содержит программы и данные, предназначенные для обеспечения функционирования УУ в процессе управления работой всего оборудования телефонной станции, то есть обеспечивает все этапы технологического процесса установления соединений. Вспомогательное используется при разработке основного и подготовке к сдаче АТС в эксплуатацию. Оно предназначено для отладки и испытания основного прикладного программного обеспечения в составе коммутационного узла, а также для генерации программного обеспечения каждой конкретной АТС на телефонной сети.
Основное прикладное программное обеспечение состоит из управляющих, административных программ и программ технического обслуживания. Управляющие программы обслуживают все рабочие процессы, связанные с коммутационным полем и линейными интерфейсами, происходящие при обслуживании абонентов (определение состояния абонентской линии, прием номера вызываемого абонента, поиск соединительного пути и установление соединения, контроль состояниея разговорного тракта, управление взаимодействием со встречными АТС и т. д.). Административные программы служат для удовлетворения запросов абонентов и администрации сети связи (редактирование баз станционных данных, отражающих систему нумерации и категории, присвоенные абонентам, измерение телефонной нагрузки, тарификация разговоров и т. д.). Программы технического обслуживания обеспечивают периодический контроль работоспособности узлов АТС, диагностику неисправностей, отправку сообщений в систему мониторинга и на пульт оператора станции.
Вспомогательное прикладное программное обеспечение содержит системы автоматизации отладки, испытательных программ и генерации основного ПО. В задачу системы автоматизации отладки входит, прежде всего, верификация, под которой понимают обнаружение и устранение допущенных при разработке основного ПО ошибок. Большой объем и сложность основного прикладного программного обеспечения, необходимость работы в реальном масштабе времени и взаимодействие с многочисленными внешними устройствами делает процесс отладки чрезвычайно сложным. Система автоматизации отладки дает разработчику удобные и эффективные средства управления процессом выполнения отлаживаемых программ, включающие принудительную остановку их выполнения с выведением промежуточных результатов работы, имитацию ситуаций, которые могут возникать при обслуживании реальных вызовов, учет временных соотношений и т. д. Система генерации основного ПО обеспечивает автоматизацию подготовки программ для каждой конкретной станции. Эта система позволяет разработать и записать во внешние запоминающие устройства или во FLASH-ЗУ управляющего устройства базы станционных данных, отражающих конкретные особенности коммутационного узла (емкость, число и коды направлений, типы соединительных линий, категории абонентов и т. д.). Система испытательных программ предназначена для проверки правильности функционирования оборудования и самого прикладного программного обеспечения после его установки на объекте, но без включения в сеть связи.
Системное программное обеспечение включает в себя программы, образующие операционную систему (ОС) управляющих устройств. Основной задачей операционной системы является координация работы программ прикладного ПО и ввод/вывод информации. Функции ОС выполняют следующие подсистемы:
- подсистема диспетчеризации, осуществляющая управление очередностью запуска во времени управляющих программ;
- подсистема ввода/вывода, организующая обмен информацией посредством интерфейсов, сопрягающих УУ с объектами управления, внешними запоминающими устройствами, пультами операторов;
- подсистема связи человек — машина, обеспечивающая взаимодействие оператора с управляющими устройствами;
- подсистема начального запуска, осуществляющая приведение оборудования в исходное состояние и загрузку ПО из внешних запоминающих устройств.
Подсистема связи человек-машина играет важную роль в процессе эксплуатации оборудования. При выполнении работ по администрированию и техническому обслуживанию оператор посредством терминала может получать информацию о состоянии оборудования и процессе обслуживания вызовов, вносить изменения в базы станционных данных. В качестве терминалов обычно используются персональные компьютеры. На компьютере-терминале установлено специальное программное обеспечение – программный интерфейс, предназначенный для организации диалога между оператором и управляющими устройствами. Этот программный интерфейс работает под управлением операционной системы ПК. Операционными системами, устанавливаемыми на ПК операторов, чаще всего бывают ОС семейств Unix и Windows. Диалог оператора с системой управления может быть организован двумя способами: с помощью языка MML (язык «человек-машина») или с помощью графического интерфейса.
Описание языка MML содержится в рекомендациях серии Z.300. Диалог на этом языке заключается в последовательном вводе директив оператора и получении ответных сообщений системы управления. Директива представляет собой запрос на предоставление информации, или указание выполнить те или иные действия. Директива начинается с кода команды, за которым следует одна или несколько групп параметров. Параметры разделяются запятыми, а группы параметров – двоеточиями. Ответное сообщение системы управления может содержать либо вывод подтверждения о приеме, либо вывод отказа, либо вывод запроса. Подтверждение о приеме указывает, что директива введена правильно и система приняла ее к исполнению. Подтверждение может содержать информацию о результатах выполнения директивы. Вывод отказа свидетельствует о неправильном вводе директивы или о невозможности ее исполнения по тем или иным причинам (например, если данный оператор не обладает правами доступа к запрашиваемым функциям системы управления). Вывод запроса предоставляет оператору право продолжить ввод директивы: задать или скорректировать значения параметров. Необходимо заметить, что стандарт на язык MML содержит лишь основные принципы построения диалога, так что его реализация для разных типов аппаратуры различна. По этой причине требуется обучать персонал обслуживанию каждой такой системы отдельно.
Использование языка MML было вынужденным в то время, когда системы программного управления не отличались высокой производительностью, связь с терминалом оператора организовывалась по низкоскоростному каналу (от 50 до 9600 бит/с), а сам терминал был способен воспроизводить на экране только буквы и цифры. Сегодня, при наличии локальных вычислительных сетей и персональных компьютеров, применение MML оправдывается только необходимостью сохранения преемственности старых и новых систем.
Терминалы, оборудования, разработанного в последнее время, обычно бывают оснащены графическим интерфейсом. Графический интерфейс позволяет в наглядной форме представить состояние элементов оборудования и соответствующих им рабочих и станционных данных. Он существенно более удобен по сравнению с диалогом на языке MML. Однако способ представления информации, а также правила работы с интерфейсом и в этом случае оказываются различными для оборудования разных типов. Одна из причин отсутствия строгих стандартов на интерфейс терминала оператора кроется в различиях, присущих базам данных, которыми оперируют управляющие устройства станций.
В качестве примера рассмотрим структуру базы данных цифровой телефонной станции. Данные, хранящиеся в ЗУ системы управления, могут быть разделены на три категории. Рабочие (или оперативные) данные отображают текущее состояние АТС. Они содержат информацию сигналах, принятых от абонентов, о занятых обслуживанием вызовов комплектах, о разговорных трактах, образованных в коммутационном поле, и т. д. Оперативные данные подвержены изменению в процессе обычной работы АТС. Станционные (или полупостоянные) данные определяют конфигурацию конкретной телефонной станции. Ими описывается структура коммутационного поля, количество и типы абонентских и соединительных линий, план нумерации АТС и т.п. Базы станционных данных составляются средствами вспомогательного прикладного ПО при проектировании станции. Впоследствии они могут редактироваться оператором с помощью административных программ. Постоянные данные представляют собой набор констант, используемых программным обеспечением. К таким данным могут относиться неизменяемые характеристики элементов аппаратуры (например, число входов и выходов модуля коммутационного поля), нормативные значения электрических параметров узлов, таблицы пересчета чисел из одной системы счисления в другую и многое другое. Значения постоянных данных одинаковы во всех экземплярах однотипного коммутационного оборудования.
Оператору АТС чаще всего приходится иметь дело со станционными данными. Их структура в значительной степени определяет особенности графического или MML-интерфейса станции. Станционные данные, относящиеся к абонентским линиям должны содержать следующие сведения.
- Линейный номер – номер абонентского комплекта, в который включена абонентская линия.
- Списочный номер – номер, который должны набирать другие абоненты для установления соединения с данной абонентской линией. Абонент учрежденческой АТС может иметь два списочных номера: один для установления соединений внутри ведомственной сети, а другой – для вызова его со стороны абонентов городской телефонной сети.
- Тип абонентской линии: абонентская линия может быть аналоговой или цифровой.
- Тип номеронабирателя телефонного аппарата, включенного в аналоговую абонентскую линию: декадный или частотный.
- Тип интерфейса цифровой абонентской линии: U или S.
- Протокол канала D цифровой абонентской линии: DSS1 или иной, применяющийся на национальных сетях других стран.
- Перечень видов и направлений связи, доступных абоненту.
- Перечень услуг, предоставляемых абоненту.
Для соединительных линий в станционных данных указывается:
- вид пучка: входящий, исходящий или двусторонний;
- тип интерфейса (аналоговый или цифровой, электрический или оптический);
- номера линейных комплектов;
- индекс направления связи, то есть цифры номера, набираемые абонентами АТС для установления соединения по линиям данного пучка;
- количество цифр, передаваемых или принимаемых по линии при взаимодействии со встречной станцией;
- способ сигнализации: используемый сигнальный код при линейно-индивидуальной сигнализации или тип протокола при сигнализации по общему каналу (способы сигнализации подробно рассматриваются в разделе 7);
- параметры системы сигнализации, зависящие от выбранного сигнального кода или протокола.
Приведенный список является далеко не полным. Как правило, имеются отдельные разделы, в которых сохраняется информация о структуре коммутационного поля, плане нумерации и дополнительных услугах.
Классификация языков программирования. Достоинства и недостатки языков высокого и низкого уровня. Основные сведения о языках программирования и инструментальных средствах. Стратегия и этапы разработки программного обеспечения. Применение языка спецификаций и описаний SDL.
Подавляющее большинство программ для современных вычислительных и управляющих устройств написано на языках высокого уровня. Языки высокого уровня не позволяют создавать программный код, абсолютно оптимальный с точки зрения использования ресурсов управляющей системы, но обеспечивают максимальную производительность труда программистов. Отношение цены микропроцессора к его производительности на сегодняшний день настолько низкое, что лучшим решением является применение высокопроизводительного микропроцессора, а не оптимизация ПО. Из языков высокого уровня чаще всего используются языки C и C++. Язык низкого уровня - ассемблер, использовавшийся на ранних этапах развития технологии программного управления, ныне применяется редко. Он позволяет создавать оптимальные программы, но требует больших трудозатрат. На языке ассемблера иногда разрабатывают ПО для цифровых сигнальных процессоров, когда скорость обработки информации является первостепенным фактором.
Разработка ПО управляющих систем чаще всего ведется с использованием языка C. Этот язык, созданный в начале 70-х годов в Bell Laboratory американской корпорации AT&T, является одним из универсальных языков программирования. Язык C считается языком системного программирования, хотя он удобен и для написания прикладных программ. Среди преимуществ языка следует отметить переносимость программ на компьютеры различной архитектуры и из одной операционной системы в другую, лаконичность записи алгоритмов, а также возможность получить программный код, сравнимый по скорости выполнения с программами, написанными на языке ассемблера. Последнее связано с тем, что хотя С является языком высокого уровня, он также обладает набором низкоуровневых средств, обеспечивающих доступ к аппаратным средствам микропроцессорной системы.
Прежде, чем начнется написание программы, должен быть детально разработан алгоритм. Формализованное представление алгоритмов и спецификации протоколов взаимодействия являются исходными данными, передаваемыми группам программистов. Алгоритмы работы систем управления коммутационного оборудования принято описывать на языке спецификаций и описаний SDL (Specification and Description Language). Этот язык, стандартизованный МСЭ (рекомендации серии Z.100), содержит набор графических операторов и правила их использования при описании систем реального времени. Примером так называемой SDL-диаграммы является запись алгоритма, приведенная на рис. 5.2. Нетрудно заметить, что SDL напоминает традиционный язык записи алгоритмов, но использует другой набор операторов.
Рис. 5.2
Для разработки ПО используются инструментальные программные средства. Сейчас такими средствами сопровождаются все выпускаемые микропроцессоры, микроконтроллеры и цифровые сигнальные процессоры. Стандартный комплекс инструментального программного обеспечения включает в себя текстовый редактор, компилятор для преобразования текста программы в язык машинных команд микропроцессора, линкер (редактор связей), предназначенный для объединения нескольких программных модулей и вызываемых ими функций в единую программу, а также средства отладки. Этот комплекс устанавливается на персональном компьютере и позволяет программисту выполнить значительную часть работы без использования аппаратных средств той системы управления, для которой создается ПО.
Разработчик: доцент кафедры «Электрическая связь» А.А.Павловский