close

Вход

Забыли?

вход по аккаунту

?

Метод проектирования и реализации параллельных реагирующих систем

код для вставкиСкачать
На правах рукописи
Афанасьева Ирина Викторовна
МЕТОД ПРОЕКТИРОВАНИЯ И РЕАЛИЗАЦИИ
ПАРАЛЛЕЛЬНЫХ РЕАГИРУЮЩИХ СИСТЕМ
05.13.11 — Математическое и программное обеспечение
вычислительных машин, комплексов и компьютерных сетей
АВТОРЕФЕРАТ
диссертации на соискание ученой степени
кандидата технических наук
Санкт-Петербург — 2018
2
Работа выполнена в Федеральном государственном автономном образовательном учреждении высшего образования «Санкт-Петербургский национальный исследовательский университет информационных технологий, механики
и оптики».
Научный руководитель:
Новиков Федор Александрович
доктор технических наук,
старший научный сотрудник
Официальные оппоненты: Кознов Дмитрий Владимирович
доктор технических наук, доцент,
профессор кафедры системного
программирования, Санкт-Петербургский
государственный университет (СПбГУ)
Павлов Дмитрий Алексеевич
кандидат физико-математических наук,
старший научный сотрудник,
Институт прикладной астрономии РАН,
г. Санкт-Петербург
Ведущая организация:
Санкт-Петербургский институт
информатики и автоматизации РАН
(СПИИРАН)
Защита состоится 25 декабря 2018 г. в 11:30 на заседании диссертационного совета Д 212.227.06 при Санкт-Петербургском национальном исследовательском университете информационных технологий, механики и оптики
по адресу: 197101, Санкт-Петербург, Кронверкский пр., 49, ауд. 431.
С диссертацией можно ознакомиться в библиотеке Санкт-Петербургского национального исследовательского университета информационых
технологий, механики и оптики и на сайте:
http://fppo.ifmo.ru/?page1=16&page2=52&page_d=1&page_d2=190732
Автореферат разослан «
» ноября 2018 г.
Ученый секретарь
диссертационного совета Д 212.227.06,
кандидат физико-математических наук,
доцент
Холодова С. Е.
3
Общая характеристика работы
Актуальность проблемы. Основными инструментами для регистрации
изображений и спектров космических объектов на наземных оптических
телескопах являются фотоприемные камеры на основе матричных фотодетекторов научного класса. С развитием технологий создания многоканальных приемников излучения все большую роль в наблюдательной астрономии
играет эффективный сбор, обработка и передача данных большого объема.
В настоящее время для наблюдений предельно слабых источников
практически не применяются массовые фотоприемные камеры из-за
неудовлетворительных фотометрических характеристик. С этой целью
разрабатываются и применяются специальные фотоприемные системы.
Только крупные обсерватории, например, такие как Европейская Южная Обсерватория (ESO, Европа), Национальная Обсерватория Оптической
Астрономии (NOAO, США), Национальная Астрономическая Обсерватория
Японии (NAOJ, Япония), Специальная астрофизическая обсерватория
Российской Академии наук (САО РАН, Россия), имеют возможность
комплексно разрабатывать высокоточные и высокостабильные фотоприемные устройства (ФПУ, в состав которых входит фотоприемная криостатируемая камера, контроллер камеры и интерфейс связи с компьютером) и
программное обеспечение для управления камерой и потоком видеоданных.
Самостоятельная разработка специального программного обеспечения
(СПО) для ФПУ позволяет эффективно использовать все возможности
камеры в процессе астрономических наблюдений и является распространенной практикой из-за небольшого выпуска изготавливаемых систем (два-три
ФПУ в год) и специфических требований к каждому устройству.
Требования к скорости, точности и надежности передачи информации в
фундаментальной астрономии существенно выше по сравнению с системами
технического зрения в промышленности и в быту. Данные не должны теряться и подвергаться даже минимальному (в один бит) искажению информации,
которое может резко снизить научную ценность наблюдения.
Сопровождение существующего СПО привело к ситуации, когда
внесение необходимых изменений в действующую систему порождает ошибки,
что приводит к потере невосполнимого ресурса — наблюдательного времени, а
применение несистематических (ad hoc) методов при создании программного
обеспечения для новых типов высокоскоростных фотоприемных камер
ограничивает разработку и не решает всех поставленных задач. Программные
сбои в работе приводят к потере уникальных (повторно не воспроизводимых)
наблюдательных данных. Поэтому проблема повышения эффективности
специального программного обеспечения для астрономических наблюдений
за счет снижения числа отказов является весьма актуальной.
В настоящее время все ответственные программные системы для сбора,
обработки и передачи данных являются параллельными (concurrent)
приложениями и относятся к классу реагирующих (reactive) систем.
4
Из-за повышенной сложности и недетерминированности методы разработки асинхронных параллельных реагирующих приложений отличаются
от методов создания последовательных систем, и определяются используемой
моделью поведения. Поведение реагирующих систем, как правило,
выражается с помощью моделей, основанных на переходах состояний.
Среди таких моделей в первую очередь необходимо выделить автоматный подход А. А. Шалыто для создания программных и аппаратных систем
со сложным поведением. Суть парадигмы автоматного программирования
состоит в представлении и реализации программ в виде совокупности
автоматизированных объектов управления, каждый из которых состоит
из системы управления (один или несколько взаимодействующих
управляющих конечных автоматов) и объекта управления.
Для реагирующих систем автоматный подход обладает наибольшей
эффективностью, однако эта технология имеет следующие недостатки:
в ней недостаточно проработаны вопросы асинхронного и параллельного
взаимодействия программных объектов, ее графическая нотация не позволяет
описывать функциональные требования к системе.
Степень разработаности темы исследования. Наибольший вклад
в формирование и развитие методов создания реагирующих систем
оказали исследования D. Harel, I. Jacobson, B. Douglass, B. Selic, H. Gomaa,
А. А. Шалыто, R. Williams, M. Samek, C. Andre.
Теоретические основы разработки систем для получения и передачи
астрономических данных представлены в работах N. C. Buchholz, R. Karban,
G. Chiozzi, R. Cirami, L. Andolfato, E. Pozna, I. Oya, C. Cumani, K. Honscheid,
A. Farris, B. Li, N. Tamura, J.-C. Lopez-Ruiz, V. S. Dhillon.
Тема создания реагирующих программных систем, в том числе и
для получения и передачи данных от различных устройств, является
весьма проработанной. Однако аспекты асинхронности и параллельности
реагирующих систем сбора астрономических данных изучены недостаточно.
Целью работы является разработка метода проектирования и
реализации параллельных реагирующих программных систем, который
позволяет снизить время создания и сложность сопровождения программного
обеспечения для получения и передачи астрономических данных, а также
повышает эффективность наблюдений на крупнейшем в Евразии оптическом
телескопе БТА (Большой телескоп азимутальный) САО РАН.
Основные задачи диссертационной работы состоят в следующем:
1. Введение новых концепций асинхронного и параллельного
взаимодействия в парадигму автоматного программирования.
2. Создание метода проектирования и реализации параллельных
реагирующих программных систем на основе автоматного подхода.
3. Построение языка автоматного программирования для описания
поведения асинхронных параллельных объектов.
5
4. Создание алгоритмов и шаблонов реализации взаимодействующих
программных объектов на языках программирования с многопоточностью и обработкой событий.
5. Разработка программного комплекса, реализующего созданные алгоритмы, для практического применения в качестве основы для конструирования программных систем получения и передачи астрономических
данных от различных типов фотоприемных устройств.
Научная новизна диссертационного исследования состоит в следующем.
1. Получено обобщение концепции автоматных объектов за счет
построения расширенных графов переходов состояний и объединения
идей инкапсуляции и параллельного реагирования.
2. Получен новый способ представления поведения реагирующих программ системой взаимодействующих автоматных объектов, причем,
в отличие от ранее предложенных способов, допускается как иерархическое, так и кооперативное мультиагентное взаимодействие между
объектами.
3. Разработан новый язык автоматного программирования CIAO (Cooperative Interaction of Automata Objects) для описания механизмов
кооперативного взаимодействия, асинхронности и параллельности
в классе реагирующих систем.
Методы исследований. В работе используются методы теории конечных
автоматов, теории языков программирования и теории формальных
грамматик, методы автоматного программирования, методы объектноориентированного анализа и проектирования систем, методы параллельного
и асинхронного программирования. Предложенные методы и алгоритмы
реализованы в виде комплекса программ и шаблонов реализации,
разработанных на языке программирования C++.
Положения, выносимые на защиту:
1. Метод проектирования и реализации асинхронных параллельных
реагирующих систем ReSyD (Reactive Systems Design) на основе модели
взаимодействующих автоматных объектов.
2. Новый язык автоматного программирования CIAO для проектирования асинхронных параллельных реагирующих систем, реализующий
иерархическое и кооперативное взаимодействие автоматных объектов.
3. Расширяемый набор шаблонов реализации взаимодействующих
программных объектов на языке C++.
4. Результаты применения на практике языка CIAO и набора шаблонов,
подтверждающие безотказность работы и снижение времени создания
и сложности сопровождения программного обеспечения.
Достоверность научных положений, выводов и практических рекомендаций, полученных в диссертации, опирается на использование формальных
методов исследуемой области и подтверждается реализацией, тестированием
6
и использованием разработанных моделей, алгоритмов и программных
модулей, а также долговременным практическим применением созданных
программных систем.
Теоретическое значение работы состоит в разработанных языке CIAO
для описания кооперативного взаимодействия автоматных объектов и методе
ReSyD для проектирования и реализации асинхронных параллельных
реагирующих систем. Предложенный способ описывать поведение не одним
автоматным объектом, а системой взаимодействующих автоматных объектов
предоставляет кооперативное, а не только иерархическое взаимодействие
между объектами, и эта схема обеспечивает предельную общность выделения
типов интерфейсов в рамках объектно-ориентированной парадигмы.
Практическая значимость работы.
1. Внедрение шаблонов реализации взаимодействующих программных
объектов в действующую программу сбора данных и управления фотоприемным устройством в составе многорежимного фокального редуктора первичного фокуса SCORPIO показало наилучшие характеристики по безотказности по сравнению с предшествующими системами.
Использование новой версии программы с июня 2016 г. по май 2018 г.
в режиме постоянной эксплуатации продемонстрировало 0 отказов.
2. Применение полученных моделей и алгоритмов позволило на 20%
сократить сроки разработки и отладки программного обеспечения
для широкого спектра высокоскоростных фотоприемных устройств.
3. Разработаны рекомендации по практическому использованию созданных метода и языка автоматного программирования для описания,
обсуждения, реализации и исследования асинхронных параллельных
систем, все результаты опубликованы.
Апробация результатов работы. Основные положения диссертационной
работы докладывались на следующих конференциях и семинарах: Всероссийской астрономической конференции «От эпохи Галилея до наших дней» ВАК2010, Нижний Архыз, САО РАН, Россия; Международной астрономической
конференции «Настоящее и будущее малых и средних телескопов» SMT2015, Нижний Архыз, САО РАН; XXIV международной научно-технической
конференции по фотоэлектронике и приборам ночного видения, 2015,
Москва, АО «НПО «Орион»; Международной астрономической конференции
«Физика звезд: от коллапса до коллапса», 2016, Нижний Архыз, САО РАН;
XLVI научной и учебно-методической конференции Университета ИТМО,
2017, Санкт-Петербург, ИТМО; VIII Всероссийской научной конференции
«Системный синтез и прикладная синергетика», 2017, Нижний Архыз, САО
РАН; городском семинаре «Информатика и компьютерные технологии», 2017,
Санкт-Петербург, СПИИРАН; Всероссийской астрономической конференции
«Астрономия: познание без границ» ВАК-2017, Ялта, Крым; The 11th International Conference on Security of Information and Networks (SIN 2018), 2018,
Кардифф, Великобритания; конференции «Информационные технологии
7
в управлении» (ИТУ-2018) в составе 11-й Российской мультиконференции
по проблемам управления (РМКПУ-2018), 2018, Санкт-Петербург, АО
«Концерн «ЦНИИ «Электроприбор».
Внедрение результатов работы. Результаты работы использовались
при разработке программ сбора данных от фотоприемных устройств,
которые задействованы в наземных оптических наблюдениях на телескопах
обсерваторий России и других стран:
1. Специальная астрофизическая обсерватория РАН (Россия), с 2006 г.
2. Алтайский оптико-лазерный центр им. Г. С. Титова (Россия), с 2008 г.
3. Бюраканская астрофизическая обсерватория Национальной академии
наук Республики Армения, с 2016 г.
4. Обсерватория Пико дос Диас (Бразилия), с 2017 г.
Специальное программное обеспечение, использующее разработанные
модели и алгоритмы, применяется для получения данных и управления тремя
типами фотоприемных устройств, которые с 2014 г. серийно изготавливаются
для работы в составе оптико-электронного комплекса обнаружения и
измерения параметров движения космического мусора (ОЭК ОКМ).
Личный вклад автора. Работа продолжает развитие концепции
автоматных объектов, предложенной Ф. А. Новиковым. Решение задач
диссертации, разработанные метод, язык, алгоритмы и практическая реализация программных систем принадлежат лично автору.
Публикации. По теме диссертации опубликовано девять печатных работ,
в том числе три из них в журналах из списка рекомендованных ВАК,
и две, входящие в международные реферативные базы данных и системы
цитирования Web of Science и Scopus.
Объем и структура работы. Диссертация состоит из введения, четырех
глав, заключения и трех приложений. Полный объем текста составляет
137 страниц с 44 рисунками и 8 таблицами. Список литературы содержит
171 наименование на 17 страницах.
Содержание работы
Во введении дается общая характеристика работы, обосновывается
актуальность задачи, формулируются цели и задачи исследования, его
новизна и практическая ценность.
В первой главе «Анализ предметной области» рассматриваются общие
принципы функционирования программных систем для сбора астрономических данных, вводятся основные понятия предметной области реагирующих
программных систем, выполняется обзор методов создания таких систем,
приводятся преимущества и недостатки каждого метода.
Основной целью специального программного обеспечения является
получение астрономических данных (изображений) от фотоприемного
устройства по инструкциям наблюдателей. Процесс получения данных
(алгоритм сбора) включает в себя следующие шаги: (1) инициализация ФПУ
8
(initialization); (2) задание и установка параметров наблюдений и параметров
ФПУ (setup); (3) старт наблюдений (start); (4) накопление светового потока
в течение заданного времени (integration); (5) прием данных в виртуальную память компьютера (readout); (6) сохранение данных в дисковой памяти компьютера (writing); (7) передача данных в хранилище (archiving);
(8) визуализация данных на экране монитора (display); (9) завершение работы, если получено необходимое число изображений, иначе переход к шагу (2).
Для повышения эффективности наблюдений многие шаги алгоритма
должны выполняться одновременно. Эффективность достигается за счет
применения специальных средств многопоточного программирования.
Поведение программных систем описывается различными графическими
моделями. Предлагается классификация моделей:
— модели с явным выделением состояний;
— модели с потоками управления и данных;
— модели с последовательностью сообщений.
Модели с явным выделением состояний нагляднее всего представляют
свойства программных систем. Выделяются два типа программных систем:
(1) трансформационные (преобразующие входные данные в выходные);
(2) реагирующие (дающие реакцию на изменения внешней среды).
Излагается систематизация реагирующих систем:
— по способу выполнения (параллельная или последовательная);
— по способу действий (циклическая или ациклическая);
— по способу взаимодействия (синхронная или асинхронная);
— по способу размещения (распределенная или монолитная).
Делается вывод, что все ответственные программные системы для сбора, обработки и передачи данных являются параллельными приложениями
и относятся к классу реагирующих систем, для проектирования которых
применяются модели, основанные на переходах состояний.
Далее в главе выполняется обзор методов разработки реагирующих
систем, которые допускают асинхронное и параллельное взаимодействие и
базируются на моделях с явным выделением состояний, а также реализующих
их инструментальных средств. Обзор охватывает следующие методы:
— метод Statemate и диаграммы состояний Харела;
— методология разработки систем реального времени ROOM ;
— архитектурное проектирование параллельных объектов COMET ;
— автоматное программирование (SWITCH -технология).
Особое внимание уделяется известным способам разработки программных систем сбора астрономических данных. Показано, что до настоящего
времени не существовало систематического подхода к созданию программных
систем для получения данных от произвольного фотоприемного устройства.
Анализируются возможности рассмотренных в обзоре методов в части
функциональных требований, описаний структуры и поведения, организации
9
взаимодействия между модулями (Таблица 1). Перечисленные методы
обладают рядом достоинств, однако ни один не позволяет комплексно
конструировать программы получения астрономических данных от ФПУ
и решать проблемы эффективности и надежности сбора и передачи
информации на ранних этапах проектирования.
Таблица 1 – Подходы к моделированию систем
Этап / Метод
1. Функциональные
требования
Statemate
Диаграмма
деятельности
2. Модель
структуры
3. Модель
поведения
4. Взаимодействие
Диаграмма
модулей
Statechart
ROOM
Диаграмма
классов
протоколов
Диаграмма
компонентов
RoomChart
Диаграмма
деятельности
Диаграмма последовательности
COMET
Диаграмма
использования
Диаграмма
классов
Диаграмма
состояний
Диаграмма
кооперации
SWITCH
Словесное
описание
системы
Диаграмма
классов
Диаграмма
переходов
Схема
связей
С целью построения нового метода за основу выбрано наилучшее известное решение — автоматное программирование, доказавшее свою эффективность для реагирующих систем.
Для практического использования автоматного подхода при создании
систем сбора данных требуется доработка в части графического выражения
функциональных требований, асинхронного и параллельного взаимодействия.
На основе проведенного анализа с учетом недостатков имеющихся
решений определены задачи диссертационного исследования.
Во второй главе «Метод проектирования и реализации асинхронных
параллельных реагирующих систем» содержится теоретическая часть
работы. Излагается подход к созданию реагирующих программных систем.
Одним из перспективных направлений описания поведения является
модель автоматных объектов. Основной идеей данной концепции является автоматный объект, объединяющий понятия «управляющей системы»
и «объекта управления». В автоматном объекте граф переходов состояний
инкапсулирован в компонент, а взаимодействие с внешним миром происходит
через явно указанные интерфейсы.
Концепция автоматных объектов обобщается за счет построения
расширенных графов переходов состояний и объединения идей инкапсуляции
и параллельного реагирования.
Из соображений декомпозиции предлагается описывать поведение
системы не одним автоматным объектом, а системой взаимодействующих
автоматных объектов. Взаимодействие между объектами обеспечивают
специализированные интерфейсы: (1) предоставляемые команды (события);
(2) требуемые команды (действия); (3) предоставляемые запросы (значения
локальных переменных); (4) требуемые запросы (сторожевые условия).
В рамках модели уточнены требования к интерфейсам автоматного
объекта: для обеспечения асинхронности команды должны иметь только
входные параметры, а запросы должны возвращать значение одной
10
локальной переменной. Модель естественным образом подразумевает
параллельное взаимодействие. Внутри каждого объекта последовательно и
независимо выполняется программный алгоритм (граф переходов состояний).
Автоматный объект через свои предоставляемые интерфейсы получает
запросы и мгновенно отвечает на них, получает команды и исполняет их.
Отдав команду, автомат никогда не ждет подтверждения. Никаких других
синхронизирующих примитивов не требуется.
Для последовательного выполнения достаточно расположить автоматные объекты в одну линию, связывая предоставляемые и требуемые интерфейсы. Но если нет ограничений последовательного выполнения, то в предлагаемой модели можно строить естественные параллельные схемы, весьма
эффективные на современных многоядерных платформах. Такой способ
композиции автоматных объектов учитывает все возможные типы совместных действий объектов и допускает как иерархическое, так и кооперативное
мультиагентное взаимодействие между объектами. Более того, интерфейсы
могут быть связаны отношениями один-ко-многим, многие-ко-многим.
Предлагаемая модель поведения алгоритмически полна по Тьюрингу
и поэтому достаточна для определения любого поведения. Полнота подтверждается построенным в рамках модели эмулятором машины Тьюринга.
В качестве основного средства формального представления моделей и
алгоритмов применяется подмножество унифицированного языка моделирования UML, а именно: диаграммы вариантов использования (use case
diagram) (функциональные требования), автомата (state machine diagram)
(поведение системы), компонентов (component diagram) (взаимодействие
объектов) и классов (class diagram) (структура системы).
Определяется метамодель диаграммы состояний, которая расширяет
метамодель UML стереотипами «interface» и «variable». В автоматном
объекте присутствуют: (1) состояния, (2) переходы между состояниями,
(3) переменные, (4) интерфейсы. Выделяются типы состояний, систематизируются основные переходы, вводятся дополнительные переходы.
Для проектирования и реализации параллельных реагирующих систем
предлагается метод ReSyD (Reactive Systems Design) (Рисунок 1). В основу
метода положена модель взаимодействующих автоматных объектов.
Алгоритм метода создания реагирующей системы состоит из семи шагов:
(1) проводится анализ предметной области, строятся диаграммы использования с учетом функциональных требований к системе; (2) выделяются
сущности со сложным поведением (автоматные объекты), составляется
список команд и запросов, параллельные операции назначаются разным
объектам; (3) определяются состояния и переходы между ними для каждого
объекта, строятся диаграммы состояний; (4) по списку команд и запросов
устанавливаются связи между автоматными объектами, на схеме связей
указываются контракты предоставляемых и требуемых интерфейсов;
(5) анализируется схема связей: сильно связанные или сходные по функ-
11
циональному назначению объекты группируются в компоненты, строится
архитектура системы в виде диаграммы компонентов; (6) по диаграммам состояний определяются классы программных объектов и классы интерфейсов; функции и переменные,
декларированные на диаграммах,
имплементируются в программный
код на целевом языке; (7) в случае
необходимости код дополняется
деталями, не отображенными на
диаграммах.
В качестве примера описывается применение метода для решения
задачи производителя и потребителя с простым контрактом:
производитель должен произвести
товар, если он получил заказ от
потребителя, а потребитель должен
потребить произведенный товар,
если он разместил заказ. В системе
выделены два автоматных объекта:
Consumer и Producer, определено их
поведение (Рисунок 2). Построена
архитектурная модель системы,
реализованы классы автоматных
объектов и их интерфейсов.
Приводится сравнение нового
Рисунок 1 – Алгоритм метода ReSyD
метода с другими. В числе достоинств метода можно указать тот факт, что он не привязан к какому-либо
конкретному инструментальному средству, поддерживает весь цикл разработки программного обеспечения от проектирования до реализации, обладает
наглядностью и простотой использования. Под термином «простота использования» подразумевается количество действий пользователя при создании
системы, а под наглядностью — возможность сделать заключение, глядя
на диаграммы.
Рисунок 2 – Взаимодействующие автоматные объекты Producer и Consumer
12
Основное отличие метода ReSyD от остальных состоит в том, что
поведение программной системы моделируется раньше структуры, которая
определяется после по диаграммам состояний и схеме связей.
В третьей главе «Язык спецификации взаимодействующих автоматных
объектов» описан язык автоматного программирования для поддержки предложенного метода. Описывается графическая нотация языка CIAO (Cooperative Interaction of Automata Objects) и формальная грамматика языка. Для
автоматных моделей предлагаются шаблоны реализации на целевом языке.
Язык имеет четыре основные именованные сущности: «автоматный
объект», «состояние», «интерфейс» и «переменную». Поведение автоматного
объекта отражается на диаграмме состояний (Рисунок 3).
Рисунок 3 – Нотация диаграммы состояний языка CIAO
на примере автоматного объекта Producer
Диаграмма состояний — это ориентированный граф, в вершинах которого изображены состояния, а ребрам соответствуют переходы (стрелки)
между состояниями. Всего выделено семь типов состояний: два простых
(прямоугольники со скругленными углами) — устойчивое (stable) и неустойчивое (waggly), и пять псевдосостояний — начальное (initial ), групповое (group),
заключительное (final ), выбора (decision) и слияния (merge). Устойчивое и
неустойчивое состояния содержат название. Групповое состояние, состояния
выбора и слияния имеют порядковый номер.
Переходы между состояниями на диаграмме нагружены указанием события, сторожевого условия и эффекта перехода в текстовом виде.
13
Событие должно быть предоставляемой командой, эффект — требуемой
командой, либо выражением. Синтаксис всех этих конструкций принят
такой же, как в обычных языках программирования: сторожевые условия
имеют вид произвольных булевых формул над требуемыми запросами
и значениями локальных переменных, выражения составлены из имен
переменных и вызовов команд с помощью знаков операций. События и
эффекты оформляются как операторы вызова функций без результата
(процедур), запросы возвращают значение одной локальной переменной.
В целом нотация языка CIAO следует наилучшим известным образцам
графических языков спецификаций, дополняя их минимально необходимыми
конструкциями для реализации метода ReSyD.
Для иллюстрации возможностей языка в части спецификации сложного
поведения продолжим пример, начатый во второй главе (Рисунок 2). В модель добавлена обработка нештатных ситуаций: производитель не может
принять заказ (не из чего делать товар); производитель не может выполнить
заказ (сломалось оборудование); потребитель не может разместить заказ (нет
денег); потребитель не может использовать товар (несоответствие качества).
Обработка этих исключений расширяет построенные диаграммы: появляются
дополнительные команды reclaim() и ref use() и состояние error (Рисунок 4).
Рисунок 4 – Обработка исключений при взаимодействии производителя и потребителя
В систему добавляются запросы allowed(s) (проверка возможности разместить заказ) и valid(d) (проверка качества товара) и сегментированные переходы со сторожевыми условиями. Также вводится константа R1 и переменная cnt (проверка возможности принять заказ), а также проверяется результат производства товара d при выходе из состояния busy. Если до начала
работы оба автоматных объекта находятся в состоянии ready и сторожевые
условия не выполняются, выполнение завершается событием reclaim() или
ref use() и автоматные объекты переходят в состояние error.
Особое внимание следует обратить на то, что диаграммы на Рисунке 4
являются консервативным расширением диаграмм на Рисунке 2. Для учета
новых требований ничего не вычеркивается, только добавляются новые
14
состояния и переходы. Эта особенность метода открывает широкие возможности для повторного использования автоматных объектов.
Пример усиливается вводом временных ограничений событий таймера:
T1 (максимальное время производства нового товара) и T2 (максимальное
время ожидания заказа) (нотация языка, Рисунок 3). Событие таймера отмечается ключевым словом «af ter», интервал времени (таймаут) задается
числом или константой. После возникновения события таймера осуществляется переход в групповое состояние, а затем в состояние error. Перед отправкой
товара (delivery(d)) из состояния выбора номер 3 автоматный объект Producer проверяет текущее состояние объекта Consumer запросом (consSt()).
Если товар не ожидается, поставка отменяется (Рисунок 3).
Для отражения семантики языка CIAO определяется его формальная
грамматика. Грамматика выражается в терминах языка описания синтаксиса,
элементами которого являются регулярные выражения, состоящие из терминалов, семантик и нетерминалов. Построенные правила языка CIAO позволяют реализовать синтаксический анализатор и средства инструментальной
поддержки языка (генератор кода). Состояния задаются набором исходящих
переходов. Это обстоятельство является ключевым для эффективной генерации кода.
С помощью шаблонов реализации автоматные модели преобразуются
в программный код. Шаблоны представлены кратким описанием, рисунком с
графическим и текстовым представлением на языке CIAO, а также листингом
на языке C++. Листинги представляют собой заготовку программы, которую
пользователь перед компиляцией в целевой среде должен самостоятельно
доработать (не более 10% строк кода): переопределить примитивы взаимодействия и синхронизации (многопоточность, механизмы обмена данными,
таймеры), соответствующие используемой операционной системе. В настоящий момент в набор шаблонов входят примитивы для ОС Windows.
В четвертой главе «Реализация и внедрение метода ReSyD в практику
разработки» описывается применение полученных результатов на практике.
Сопровождение действующего СПО для ФПУ на основе широкоформатных приемников изображения привело к ситуации, когда внесение
необходимых изменений порождает новые ошибки. Сбои СПО во время
чтения данных возникали несколько раз в течение ночи астрономических
наблюдений на оптическом телескопе. С целью повышения безотказности
используется метод ReSyD. Приводится описание структуры и функций
программной системы. Определена номенклатура автоматных объектов,
построена схема связей. Выявлено, что основными источниками сбоев
являются два объекта: A2 Observe (обеспечение процесса наблюдений) и
A5 DataProcess (обработка и интерпретация данных). Построенные для
этих объектов диаграммы состояний с помощью шаблонов реализации
преобразованы в программный код и внедрены в программное обеспечение.
Стабильность работы новой программы позволила исследовать статистику
15
отсчетов на выходе фотоприемной системы и предложить оптимальную
стратегию наблюдений слабых объектов. Использование модифицированной
версии программы с июня 2016 г. по май 2018 г. в режиме постоянной
эксплуатации продемонстрировало 0 отказов.
Описанные сбои проявлялись во многих программах сбора астрономических данных от ФПУ. Для устранения проблем необходима универсальная
модель (архитектура и алгоритмы) СПО для поддержки широкого спектра
фотоприемных систем с учетом специфики процесса наблюдений.
Проектирование универсальной модели производится с помощью
разработанного метода ReSyD.
Шаг 1. Описаны функциональные требования к программному обеспечению, введены дополнительные критерии построения универсального СПО
ФПУ, выделены параллельные операции в системе сбора данных. В системе
определены следующие действующие лица: Наблюдатель, Инженер, ФПУ, а
также Таймер для контроля режимов и температуры детектора. Требования
фиксируются на диаграмме в виде вариантов использования: «Инициализация», «Накопление», «Чтение», «Запись на диск», «Визуализация», «Передача
в сеть».
Шаг 2. После анализа вариантов использования с учетом модели
контроллера и дополнительных критериев выделены 12 автоматных объектов: A0 Application (взаимодействие с наблюдателем); A1 ReadReg (чтение
регистра); A2 WriteReg (запись в регистр); A3 ReadMem (чтение памяти); A4
WriteMem (запись в память); A5 Board (операции обмена данными с контроллером на уровне интерфейса связи, в том числе чтение видеоданных); A6
CompileImages (сборка изображений); A7 Observe (управление процессом
наблюдений и получение телеметрии); A8 PrepareImages (обработка данных);
A9 WriteImages (запись изображений в файл); A10 Display (визуализация
изображений); A11 NetIO (отправка в сеть).
Универсальными автоматными объектами, реализация которых не зависит от аппаратуры и должна подходить для любой программной системы
сбора данных от ФПУ, можно считать объекты A0 Application, A7 Observe,
A9 WriteImages и A10 Display.
Шаг 3. Для всех автоматных объектов построены диаграммы состояний,
определены требуемые и предоставляемые интерфейсы. Самыми сложными
в управлении объектами являются A0 Application, A7 Observe и A6 CompileImages. Первые два — из-за множества управляющих состояний, последний
— по причине сложного протокола.
Шаги 4-5. По списку команд и запросов определены интерфейсы между
автоматными объектами и построена схема связей. После группировки автоматов и интерфейсов построена универсальная архитектура программы
получения и передачи данных (Рисунок 5). Универсальность модели заключается в том, что благодаря четко выделенным интерфейсам взаимодействие
всех объектов точно определено и для того, чтобы обеспечить получение
16
данных от новых типов ФПУ, достаточно модифицировать лишь компоненты
Image Building и Camera Control (Рисунок 5).
Рисунок 5 – Универсальная архитектурная модель системы сбора данных
Шаги 6-7. По полученной модели создан программный комплекс DinaCon5, реализующий разработанные алгоритмы. Для ввода данных в компьютер используется интерфейс 10 Gigabit Ethernet, варианты которого предусматривают пропускную способность до 40 Гбит/с.
Комплекс состоит из программы управления ФПУ в интерактивном
режиме dCon5.exe и библиотеки функций для разработчика (SDK )
dConEth.dll, в которой реализованы компоненты Observation, Image Building
и Camera Control. Описываются основные функции библиотеки. Приводится
иерархия классов компонента Application.
По диаграмме состояний автоматного объекта A7 Observe построен каркас задачи, которая управляет процессом экспозиции. Каркас дополнен минимальной функциональностью и применен при создании прототипа программы
для проверки правильности работы алгоритма проведения наблюдений. После
отладки в задачу внесен необходимый программный код, обеспечивающий
полноценное обеспечение процесса экспозиции.
Применение программного комплекса DinaCon5 позволило сократить
до трех недель (включая отладку) срок создания библиотеки функций
для ФПУ с другим типом интерфейса (на основе стандарта Camera Link ),
со скоростью передачи данных до 2,04 Гбит/с.
В целом применение метода и алгоритмов показало сокращение на 20%
сроков разработки и отладки программного обеспечения для широкого
спектра высокоскоростных ФПУ.
Использование разработанного комплекса и библиотеки dConEth.dll
позволило достичь стабильной работы программы во время приема серии
из 100 изображений со скоростью потока данных 8 МБ/с.
В результате экспериментального тестирования комплекса с библиотекой
dConMil.dll удалось достичь безотказной работы при скорости входного
потока 80 МБ/с.
Заключение
В диссертационном исследовании решена задача проектирования и
реализации программных систем со сколь угодно сложным поведением.
В диссертации получены следующие основные результаты:
17
1. Предложена концепция автоматных объектов, объединяющая идеи
инкапсуляции и параллельного реагирования на основе расширенных
графов переходов состояний.
2. Получен новый способ композиции программных автоматных объектов,
взаимодействующих через специализированные интерфейсы, причем, в
отличие от ранее предложенных способов, допускается как иерархическое,
так и кооперативное мультиагентное взаимодействие между объектами.
3. Разработан и применен на практике метод ReSyD (Reactive Systems
Design) для проектирования и реализации параллельных реагирующих
программных систем.
4. Предложен новый язык автоматного программирования CIAO (Cooperative Interaction of Automata Objects) для описания механизмов кооперативного взаимодействия, асинхронности и параллельности в классе реагирующих систем.
5. Создан расширяемый набор шаблонов реализации взаимодействующих
программных объектов, примененный при модификации программы
сбора данных и управления ФПУ в составе многорежимного фокального
редуктора первичного фокуса SCORPIO. Наблюдения с этим прибором
обеспечивают более 50% наблюдательного времени на крупнейшем
в Евразии оптическом телескопе БТА (САО РАН). Использование новой
версии программы с июня 2016 г. по май 2018 г. в режиме постоянной
эксплуатации продемонстрировало 0 отказов.
6. Разработан комплекс программ, позволяющий конструировать программные системы получения и передачи астрономических данных от различных типов фотоприемных устройств. Использование комплекса в качестве
каркаса для СПО сбора данных для новых типов ФПУ помогло сократить
сроки создания и отладки до трех недель, что в несколько раз лучше среднего показателя времени на разработку подобных программных модулей.
В результате экспериментального тестирования СПО удалось достичь
безотказной работы при скорости входного потока данных 80 МБ/с.
Результаты работы использовались при разработке программ сбора данных от фотоприемных устройств, которые задействованы в наземных оптических наблюдениях на телескопах обсерваторий России и других стран: САО
РАН (Россия), с 2006 г.; Алтайский оптико-лазерный центр им. Г. С. Титова
(Россия), с 2008 г.; Бюраканская астрофизическая обсерватория Национальной академии наук Республики Армения, с 2016 г.; Обсерватория Пико дос
Диас (Бразилия), с 2017 г. Успешная эксплуатация этих программ подтверждается актами о внедрении.
Разработанные решения позволяют достичь безотказной работы программ сбора данных от фотоприемных устройств и решать ряд проблем создания, отладки и сопровождения СПО. Полученные результаты работы могут
быть также использованы в качестве систематического подхода для конструирования программных систем получения данных от произвольного ФПУ.
18
Список публикаций по теме диссертации
Публикации в научных журналах и изданиях из Перечня рецензируемых
научных изданий, в которых должны быть опубликованы основные научные
результаты диссертаций на соискание ученой степени кандидата наук,
на соискание ученой степени доктора наук
1. Афанасьева, И. В. Архитектура программного обеспечения систем оптической регистрации / И. В. Афанасьева, Ф. А. Новиков // Информационноуправляющие системы. — 2016. — Т. 3, № 82. — С. 51–63. — 0,80 / 0,60 п. л.
2. Мурзин, В. А. Астрономические ПЗС-системы для 6-метрового телескопа
БТА (обзор) / В. А. Мурзин, С. В. Маркелов, В. И. Ардиланов, И. В. Афанасьева и др. // Успехи прикладной физики. — 2016. — Т. 4, № 5. —
С. 500–506. — 0,60 / 0,06 п. л.
3. Новиков, Ф. А. Кооперативное взаимодействие автоматных объектов /
Ф. А. Новиков, И. В. Афанасьева // Информационно-управляющие системы. — 2016. — Т. 6, № 85. — С. 50–64. — 1,40 / 0,80 п. л.
Публикации в зарубежных научных изданиях,
индексируемых в системах Scopus или Web of Science
4. Afanasieva, I. V. Data Acquisition and Control System for High-Performance
Large-Area CCD Systems / I. V. Afanasieva // Astrophysical Bulletin. — 2015.
— Vol. 70, no. 2. — Pp. 232–237. — 0,45 п. л.
5. Afanasieva, I. V. Study of distortions in statistics of counts in CCD observations
using the Fano factor / I. V. Afanasieva // Astrophysical Bulletin. — 2016. —
Vol. 71, no. 3. — Pp. 366–370. — 0,4 п. л.
6.
7.
8.
9.
Прочие публикации
Астрономические ПЗС-системы для 6-метрового телескопа РАН /
В. А. Мурзин, С. В. Маркелов, В. И. Ардиланов, И. В. Афанасьева и др. //
Труды XXIV Международной научно-технической конференции по
фотоэлектронике и приборам ночного видения (Москва, 24-25 мая 2016 г.).
— 2016. — С. 105–108. — 0,50 / 0,05 п. л.
Афанасьева, И. В. Моделирование управляющих программ для астрономических ПЗС-систем на основе автоматного подхода / И. В. Афанасьева //
Фундаментальные и прикладные исследования: проблемы и результаты. —
2015. — № 20. — С. 74–78. — 0,20 п. л.
Разработка программ управления астрономическими ПЗС-системами /
И. В. Афанасьева // Системный синтез и прикладная синергетика: сборник
научных трудов VIII Всероссийской научной конференции (Нижний
Архыз, 18-20 сентября 2017 г.). — 2017. — С. 129–133. — 0,30 п. л.
Формальная модель и методы описания систем со сложным поведением
на принципах обобщенных автоматов / И. В. Афанасьева, Д. К. Левоневский, Ф. А. Новиков, Л. Н. Федорченко // Материалы конференции
«Информационные технологии в управлении» (ИТУ-2018). — СПб. : АО
«Концерн «ЦНИИ «Электроприбор», 2018. — С. 96–105. — 0,75 / 0,30 п. л.
Документ
Категория
Без категории
Просмотров
9
Размер файла
784 Кб
Теги
реагирующих, метод, система, реализации, параллельное, проектирование
1/--страниц
Пожаловаться на содержимое документа