Об одном подходе к распределенному моделированию дискретно-событийных систем

оператора ГАК необходимо учитывать фактор влияния деятельности оператора на этапы обработки информации.

Оператор на всех этапах обработки информации оказывает влияние на процессы, происходящие внутри реального ГАК. Выходная информация на экраны средств отображения информации также поступает с каждого этапа обработки и напрямую зависит от оказанного на систему обработки информации воздействия. Отсюда вытекает вывод о необходимости совершенствования структурного метода построения имитатора ГАК.

За описание такой модели возьмем функцию

Qm—{Lm,Rm,fm,Gm}.

Отличие от функции учебной модели заключается во множестве воздействий Ь^ в котором множество переменных определяющих внут-

реннее состояние объекта, представлено переменными только этапов обработки информации.

Таким образом, выбор уровня имитации ГАК есть компромисс между степенью адекватности имитатора своему физическому прототипу и стоимости его (имитатора) разработки и изготовления.

Литература

1. Бичаев Б.П., Зеленин В.М., Новик Л.И. Морские тренажеры. - Л.: Судостроение, 1986.

2. Бойко Е.И. Время реакции человека. - М.: Медицина, 1964.

3. Раскин Джеф. Интерфейс. Новые направления в проектировании компьютерных систем. - СПб-М.: Символ, 2006. - С. 122.

4. Корякин Ю.А., Смирнов С.А., Яковлев Г.В. Корабельная гидроакустическая техника: состояние и актуальные проблемы. - СПб: Наука, 2003.

ОБ ОДНОМ ПОДХОДЕ К РАСПРЕДЕЛЕННОМУ МОДЕЛИРОВАНИЮ ДИСКРЕТНО-СОБЫТИЙНЫХ СИСТЕМ

А.Н. Нефедов

Ключевые слова: распределенное моделирование, агент-предик тие, модель объекта.

Компьютерное моделирование является мощным и широко применяемым инструментом при построении обучающих систем. Постоянный рост требований к повышению точности и масштаба моделирования, диктуемый современными реалиями, привел к росту объема и сложности моделей, а также к появлению специфических требований к процессу моделирования. Стало очевидным, что централизованный подход к моделированию не способен обеспечить дальнейшее развитие обучающих систем, что определило потребность в распределенном моделировании.

Существует довольно небольшой перечень готовых и практически используемых решений, что, возможно, объясняется сложностью проблематики исследования. Анализ показал, что наиболее перспективным решением является стандарт HLA (High Level Architecture) [1]. Однако использование стандарта на практике выявило существенные недостатки, ограничивающие возможности расширения моделируемой обстановки, а также снижающие эффективность программной разработки на базе HLA. Кроме того, сегодня отсутствует отечественная апробированная реализация RTI (Run-Time Infrastructure), что подразумевает использование зарубежных изделий, исходные тексты программ которых закрыты.

Указанные обстоятельства определили актуальность разработки системы распределенного моделирования, которая получила название UDSL (Universal Distributed Simulation Library). Она

1, масштабируемость, кроссплатформенность, атрибут, собы-

спроектирована и реализована в виде ¿¡¡-биб-лиотеки по концепциям ИЬА. Также в ее основу легли элементы будущего стандарта языка С++, реализованного в библиотеке ТЯ1 [2], современные подходы к проектированию программного обеспечения [3], элементы агентной технологии [4].

Библиотека позволяет создать инфра-

структуру распределенного моделирования, решающую следующие задачи:

- организация и управление процессом моделирования на совокупности распределенных по сети компонентов распределенной системы, которые условно можно разделить на моделирующие (МК) и наблюдающие (НК);

- обеспечение масштабируемости, то есть возможности расширения количества компонент распределенной системы, а также увеличение числа моделируемых объектов в каждой из них;

- обеспечение модульности, позволяющей легко наращивать возможности иБ8Ь при использовании различных технологий и алгоритмов передачи и хранения данных, новых типов объектов и т.п.;

- избирательный информационный обмен данными о моментальном состоянии участников моделирования между МК и НК системы;

- обеспечение единого стандарта оформления подключаемых к системе компонентов и повторного использования уже созданных компонент в новых системах;

- переносимость и возможность функционирования инфраструктуры распределенного моделирования под операционными системами различных семейств, в частности Windows и Linux;

- комплексирование со сторонними системами моделирования (информационного обмена).

Реализация UDSL абстрагирована от конкретных механизмов решения указанных задач путем предоставления экспортируемых и импортируемых интерфейсов (рис. 1), в совокупности формирующих UDSL API.

Для построения конкретной системы необходима реализация этих интерфейсов, кроме информационного обмена по сети посредством стандартных протоколов. В состав библиотеки входят типовые реализации, накрывающие большинство частных задач, возникающих в процессе разработки, а также рекомендации по созданию собственных реализаций.

Рис. 1

Интерфейсная часть определяется следующими основными сущностями, которыми оперирует UDSL: класс объекта, атрибут, событие, фильтр, операция.

Класс объекта - абстрактный тип представления любого семейства объектов в инфраструктуре моделирования, в МК и НК, определяющий правила работы и реализующий общие функции: получение названия семейства, идентификатора объекта, доступ к атрибутам и пр. Его базовая реализация решает задачу представления состояния объекта в виде набора атрибутов. Таким образом, в отличие от ИЪА, где отображение объекта самостоятельно формировалось каждым разработчиком НК (путем поиска необходимого атрибута нужного класса объекта и записи в удобную для НК структуру данных), здесь все автоматизируется средствами UDSL, представляя объект в унифицированном виде. Более того, если известен конкретный тип объекта, то НК может быть реализован в терминах этого типа с методами доступа к конкретным атрибутам объекта. Объектный интерфейс дополняется элементами UDSL, позволяющими оформить МК в виде динамически подключаемого модуля - плагина. Такой модуль мо-

жет разрабатываться независимо от потребителей модельных данных и использоваться повторно.

Атрибут - элемент, описывающий то или иное свойство объекта. Атрибутами объекта могут быть, например, размер, координаты, курс и т.п. Библиотека UDSL предоставляет набор шаблонных классов с единым интерфейсом, реализующих традиционные контейнеры данных (векторы, списки, карты) и позволяющих формировать атрибуты любой структуры (списки сложных объектов, списки списков и пр.). Процесс обновления атрибутов автоматизирован в UDSL, то есть его обновление приведет к оповещению всех заинтересованных НК при окончании шага моделирования.

Событие - механизм оповещения об изменении состояния моделируемой среды. Например, при помощи события объект сигнализирует об изменении своего состояния, система сигнализирует об изменении режима работы или состава объектов моделируемой среды. Библиотека UDSL включает в себя перечень стандартных событий (например, событие обновления атрибута), а также предоставляет набор шаблонных классов, позволяющих разработчику МК формировать собственные события произвольной структуры. Желание получать определенное событие декларируется путем создания фильтра.

Фильтр представляет собой агент-предикат. Он создается и параметризуется НК с указанием метода-обработчика целевого события, далее регистрируется в системе моделирования для получения тех и только тех данных, которые удовлетворяют условиям предиката. Метод-обработчик события передается в фильтр при помощи технологии связывателей [2], которая является элементом будущего стандарта языка С++. Любое событие, возникающее в МК, проходит через предикат. В момент срабатывания предиката НК получает уведомление в указанном методе-обработчике о произошедшем событии. В общем случае разработчик НК может написать фильтр фактически с нуля, с условием удовлетворения интерфейсу UDSL. Библиотека UDSL предоставляет набор шаблонных классов, позволяющих легко формировать фильтры любой структуры. Более того, существует возможность объединения фильтров в цепи для создания сложных предикатов из готовых решений. В ходе разработки были созданы и включены в библиотеку UDSL несколько предопределенных типов фильтров (фильтр по типу события, по классу объекта, по идентификатору объекта, по атрибуту объекта, прореживающий по времени фильтр), которые могут использоваться в большинстве случаев.

Операция представляет собой программу-агент, воздействующую на моделируемый объект или группу объектов. Для этого операция создается, параметризуется и регистрируется в UDSL оперирующим НК или МК. UDSL обеспечивает

доставку операции к целевому объекту и ее выполнение. Операции реализуются разработчиком МК в дополнение к созданному классу объекта. Работа с операцией осуществляется через специально разработанный интерфейс, и в общем случае разработчику НК нет необходимости знать конкретную реализацию операции. Более того, он не знает местонахождение оперируемого объекта. Библиотека ИББЬ предоставляет набор шаблонных классов, позволяющих формировать типовые операции на базе набора параметров. Есть возможность создать операцию с произвольной логикой с нуля.

Все описанные элементы обладают свойствами сохранения и восстановления состояния, логика, глубина и детализация которого определяются разработчиком элемента или типовой реализацией, включенной в иББЬ. Сохранение/восстановление актуального состояния осуществляется посредством иББЬ, что позволяет разработчику НК или МК всегда работать с готовыми элементами. Таким образом, ИББЬ автоматически создает и обновляет модельное окружение, состав и состояние которого для каждого НК или МК определяет разработчик, формируя систему фильтров и осуществляя необходимые операции (рис. 2).

Поддержка свойств сохранения/восстановления дает возможность решать задачи создания срезов состояния всей моделируемой среды и ее возврата на определенный момент. Информация сохраняется в выбранном хранилище данных.

ИББЬ позволяет организовать одновременную работу с несколькими распределенными средами моделирования с возможностью перехода из одной среды в другую. При этом выделяются активная (наблюдаемая) среда и неактивные среды, развивающиеся в фоне. Инструментарий библиотеки позволяет реализовать НК отвлеченно от конкретной среды, с автоматической адаптацией к смене активных сред.

фильтры^ | операций"]

Рис. 2

Если в рамках разработки изделия решаются задачи комплексирования с другими системами, то в таком случае МК является адаптер [3] к сопрягаемой системе.

Библиотека UDSL разработана на языке C++ и является кроссплатформенной. Тестирование UDSL проводилось на ОС Windows 2000/XP, Мобильной системе Вооруженных сил 3.0 и защищенной ОС «Оливия».

Первая версия библиотеки UDSL прошла успешную апробацию в изготовленном тренажере.

Литература

1. IEEE Std P1516.3. IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) - Federation Development and Execution Process. N.Y.: Institute of Electrical and Electronics Engineers, Inc., 2000.

2. Мэйерс С. Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ. - М.: ДМК Пресс, 2006. - 300 с.

3. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. MA: Addi-son-Wesley, 1995. - 355 p.

4. Тарасов В.Б. Агенты, многоагентные системы, виртуальные сообщества: стратегическое направление в информатике и искусственном интеллекте. // Новости искусственного интеллекта. - 1998. - № 3. - С. 5-54.

ОРГАНИЗАЦИЯ ИНФОРМАЦИОННОГО ОБМЕНА В СЛОЖНЫХ РАСПРЕДЕЛЕННЫХ СИСТЕМАХ

А.А. Прохоров; А.Н. Нефедов

Ключевые слова: информационный обмен, уровень взаимодействия, подписка, сообщение, сетевой протокол.

Программное обеспечение (ПО), предназначенное для решения разного рода задач распределенного исполнения, требует наличия эффективной и гибкой системы информационного обмена. Опыт разработки такого ПО, а также современные требования к качеству и возможностям изделия со стороны заказчика и пользователя определили ос-

новные задачи, решение которых должна обеспечивать система информационного обмена:

а) предоставление механизмов информационного обмена между функциональными модулями ПО на разных уровнях взаимодействия: в одном процессе, между процессами на одной ЭВМ, компьютерах локальной или глобальной сети;