ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

The article was published in issue no. № 1, 2009 [ pp. 104 ]
Abstract:
Аннотация:
Author: () -
Keywords: , event, attribute, , scalable, ,
Page views: 8951
Print version
Full issue in PDF (3.60Mb)

Font size:       Font:

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

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

Указанные обстоятельства определили актуальность разработки системы распределенного моделирования, которая получила название UDSL (Universal Distributed Simulation Library). Она спроектирована и реализована в виде dll-библиотеки по концепциям HLA. Также в ее основу легли элементы будущего стандарта языка С++, реализованного в библиотеке TR1 [2], совре- менные подходы к проектированию программного обеспечения [3], элементы агентной техноло- гии [4].

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 1

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

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

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

Рис. 2

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

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

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

Если в рамках разработки изделия решаются задачи комплексирования с другими системами, то в таком случае МК является адаптер [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: Addison-Wesley, 1995. – 355 p.

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


Permanent link:
http://swsys.ru/index.php?page=article&id=2041&lang=&lang=en&like=1
Print version
Full issue in PDF (3.60Mb)
The article was published in issue no. № 1, 2009 [ pp. 104 ]

Perhaps, you might be interested in the following articles of similar topics: