Главная процедура - последовательность инструкций обработки входных сигналов и текущего состояния с получением нового состояния агента.
Схематически функционирование
программной сущности показано на рис. 3, где
- агенты-источники сигнала для рассматриваемого агента
- сигналы от источников к агенту
- регистр значений входящих сигналов или совокупность
производящих атрибутов,
-
текущее состояние рассматриваемого агента, T - период пересчета текущего
состояния.
Рис. 3. Структура целевого агента - базовой сущности распределенной обработки потоковых данных
агентный ориентированный распределенный информационный
указатель структуры данных для состояния текущего агента (размерность);
перечень агентов-источников, состояния которых являются входными сигналами для текущего;
-
период обновления значений входных сигналов;
-
период выполнения главной процедуры агента.
Исполнение главной процедуры и обновление значений входящих сигналов производятся параллельно и независимо друг от друга. Поэтому все события агента асинхронны и функционально не связаны. Это позволяет задавать для главной процедуры жесткие требования ко времени выполнения.
Согласно агентно-ориентированному
подходу, каждый целевой агент имеет дело только с теми данными, которые
используются в его расчетах, причем с их собственной, «локальной» копией. Это
определяет модель распределенной памяти многоагентной системы, за счет которой
достигается живучесть и гибкость многоагентной программной системы обработки
потоковых данных.
Построение программного обеспечения
ИУС на основе агентной технологии
Программное обеспечение ИУС, реализованное в виде совокупности агентов обладает повышенной живучестью, поскольку выполнение каждого фрагмента приложения не зависит функционально от других фрагментов. Технология построения подобных программных систем называется технологией программных агентов.
Агенты являются программными сущностями автономными и изолированными друг от друга по использованию вычислительных ресурсов. Поэтому возможные сбои и ошибки в вычислениях одних агентов никак не сказываются на ходе вычислений других агентов. При их возникновении в агентной программной системе не происходит аварийного прекращения работы всего приложения. Сбойный агент аварийно завершает свою работу и перестает поддерживать актуальные значения связанных с ним атрибутов в регистрах своих приемников. Поскольку в этом случае агенты-приемники используют устаревшие значения, снижается точность дальнейших вычислений, которая может быть восстановлена без приостановки всего процесса обработки данных перезапуском сбойного агента.
Наиболее распространенной платформой, которая позволяет создавать агентные программные системы является JADE - разработка итальянской группы программистов из фирмы Telecom Italian. Программная платформа представляет собой библиотеку java-классов, а также среду исполнения и ряд служебных программных компонент. В ней реализован стандарт FIPA - набор архитектурных решений и протоколов для технологии программных агентов. Программная платформа JADE распространяется под свободной лицензией GNU LGPL, что позволяет создавать на ее основе как открытые, так и закрытые программные системы, использовать ее производные в коммерческих целях. Очевидным преимуществом использования для программного уровня технического обеспечения ИУС технологий java и JADE является их кросс-платформенность (Linux, Windows, MacOS) и адаптированность к микроядерным вычислительных устройствам - одноплатным компьютерам MicroPC, мобильным устройствам (телефонам, планшетным компьютерам) на базе ОС Android, iOS и пр.
На базе платформы JADE авторами разработана программная платформа ABSynth, которая реализует предложенную программную архитектуру и позволяет создавать распределенные ИУС как системы обработки потоковых данных на базе гетерогенных вычислительных сетей с непредсказуемой загрузкой [3].
Модель взаимодействия в программной системе распределенной обработки потоковых данных, построенной на базе ABSynth включает в себя следующие компоненты:
главный менеджер - программный агент, который осуществляет создание и запуск всего приложения, имеет экранную форму и получает управляющие команды от оператора;
менеджер узла - программный агент, который осуществляет управление целевыми агентами в пределах одного вычислительного узла (контейнера);
целевой агент - программный агент, который содержит алгоритмы обработки потоковых данных.
Они реализуют трехуровневую иерархическую модель управления обработкой данных (рис. 4). В рамках этой модели, управляющие воздействия, полученные главным менеджером (уровень 1) от оператора, рассылаются в виде служебных сообщений менеджерам узлов вычислительной сети (уровень 2), которые, в свою очередь, рассылают эти сообщения агентам своего узла. Агенты узла, в зависимости от характера служебных сообщений, запускают, приостанавливают или прекращают обработку данных (уровень 3).
Модель передачи сигналов между целевыми агентами имеет одноранговую топологию типа «точка-точка». У каждого целевого агента есть набор атрибутов, которые он вычисляет и атрибутов, которые он использует в вычислениях. Обновление значений этих атрибутов происходит асинхронно и путем систематических взаимодействий между целевыми агентами непосредственно. В модели передачи сигналов агенты- менеджеры не участвуют никак.
Для повышения возможностей распределенных программных комплексов также возможно использование множества главных менеджеров для оптимизации загрузки сети служебными взаимодействиями в условиях дефицита сетевых ресурсов. Кроме то- го возможно разделение служебных функций по управлению (таких как создание программных компонент, запуск, сброс, балансировка нагрузки на узлы) между несколькими главными менеджерами (рис. 5.а).
Кроме того возможна реализация
самоорганизующихся многоагентных алгоритмов для повышения эффективности
управления вычислительными ресурсами, при которых дублирующие друг друга
главные менеджеры могут адаптироваться под изменяющуюся структуру сети.
Рис. 4. Трехуровневая иерархическая
модель управления распределенной обработкой данных
Рис. 5. Использование нескольких
главных менеджеров а) в случае с разделением управления; б) в случае с
аварийным дублированием управления
Программная платформа ABSynth включает следующие элементы:
среду выполнения целевых агентов (агентную платформу на базе JADE);
язык структурного описания распределенных программных комплексов обработки потоковых данных TSDL (его интерпретатор);
абстрактный класс BasicUnit, который позволяет реализовать алгоритмы обработки потоковых данных в рамках разработанной программной архитектуры;
библиотеку, содержащую типовые операции обработки потоковых данных (линейные преобразования, динамическую фильтрацию и пр.), модельные источники сигналов (имитация шума, ступенчатые воздействия, управляемые оператором виртуальные «кнопки» и «ползунки»), а также элементы отображения потоковых данных (временные диаграммы, числовые индикаторы).
На рис. 6 приведен пример
использования платформы ABSynth для организации распределенного моделирования
газогенератора (ГГ) газотурбинного двигателя (ГТД) [7]. Вычислительная модель
ГГ была реализована на языке java на базе абстрактного класса BasicUnit.
Моделирование проводилось на мощностях вычислительной сети, состоявшей из
четырех узлов под управлением различных операционных систем (Windows, Ubuntu,
CentOS). На трех узлах сети была запущена модель ГГ в виде целевого агента, на
четвертом узле, на котором было организовано рабочее место оператора происходил
запуск моделирования и сбор результатов в реальном времени.
Рис. 6. Результат моделирования ГГ
ГТД на базе платформы ABSynth
На модели были имитированы в реальном времени изменение скоростей вращения валов низкого и высокого давления для режимов запуска и земного малого газа ГТД.
Для оценки качества разработанного
программного обеспечения были имитированы отказы вычислительных узлов. Один из
вычислителей был принудительно извлечен из вычислительного процесса. При этом
система сохранила работоспособность - отказ никак не повлиял на
функционирование программных компонент на других узлах. Гибкость обеспечивается
возможностями языка TSDL, который позволяет догружать и перегружать целевые
агенты без остановки процесса выполнения операций в существующих.
Список литературы
1. Бунич А.Л., Гинсберг К.С., Добровидов А.В., Затуливетер Ю.С., Прангишвили И.В., Смолянинов В. В., Сухов Е.Г. Параллельные вычисления и задачи управления (аналитический обзор) // Автоматика и телемеханика. 2002. № 12. С. 3-23.
2. Валеев С.С., Ковтуненко А.С., Масленников В.А. Проектирование промежуточного программного обеспечения на основе агентно-ориентированных технологий для САУ сложными техническими объектами // Материалы VI международной конференции «Параллельные вычисления и задачи управления». Т. 1. М.: ИПУ РАН, 2012. C. 250-259.
. Валеев С.С., Ковтуненко А. С., Масленников В. А. Многоагентная платформа распределенной обработки данных реального времени // Естественные и технические науки. 2013. № 2. С. 311-313.
. Васильев С.Н. (Ред.). Интеллектуальные системы управления. М.: Машиностроение, 2010. 544 с.
. Додонов, А.Г., Ландэ, Д.В.. Живучесть информационных систем. Киев: Наукова думка, 2011. 256 с.
. Каляев И.А., Мельник Э. В. Децентрализованные системы компьютерного управления. Ростов-на-Дону: Издательство ЮНЦ РАН, 2011. 196 с.
. Ковтуненко А.С., Валеев С.С., Масленников В.А. Программная архитектура средств виртуального прототипирования информационно-управляющих систем, основанная на агентной технологии // Материалы VI всероссийской научно-практической конференции «Имитационное моделировании. Теория и практика». Т. 2. Казань: Издательство «Фэн» Академии наук РТ, 2013. C. 161-166.
. Окольнишников
В.В. Разработка системы распределенной обработки данных для различных
операционных сред // Сборник докладов Второй Всероссийской научно-практической
конференции «Имитационное моделирование. Теория и практика». Санкт-Петербург,
2005. Т. 1. С. 256-260.