Технология открытых систем (ТОС) является перспективным и приоритетным государственным направлением научных исследований [1, 2]. Открытая система должна удовлетворять свойствам расширяемости, переносимости приложений и данных, масштабируемости, интероперабельности и способности к интеграции. Кроме того, она должна быть построена на основе совокупности ряда информационных стандартов, доступ к которым не ограничен техническими, юридическими или иными механизмами. Другое передовое направление Web 2.0 используется при построении интернет-систем, в которых основная вычислительная нагрузка ложится на сервер, пользователь принимает активное участие при подготовке контента [3]. Клиентская часть системы обрабатывает графический пользовательский интерфейс и передает пользовательские данные и управляющие сигналы на сервер.
В статье рассматривается архитектура среды моделирования динамических систем, построенная с применением технологий открытых систем и Web 2.0. Особенностями среды являются возможность ее расширения (по методам интегрирования, моделям и диалоговым окнам), независимость от ряда программных и аппаратных платформ (к последней относятся операционная система и Web-браузер), возможность внедрения в другие системы и поддержка механизмов взаимодействия с внешними системами посредством XML, возможность расчета параметров модели разными методами интегрирования. Кроме того, пользователь может с клиентского приложения формировать контент, представляющий собой текстовое описание системы, поясняющие рисунки и схемы, математические модели, схемы интегрирования, текстовые описания моделей и анимационные схемы.
Основной функцией серверной части является расчет параметров модели по переданной с клиента схеме интегрирования. Кроме того, на сервере осуществляются организация многопользовательского режима вычислений и хранение базы моделей.
На рисунке 1 представлена концептуальная схема справочника как открытой системы.
Рассмотрим свойства среды моделирования как открытой системы.
Среда моделирования обладает механизмами расширяемости по моделям и схемам интегрирования без перекомпиляции проекта. Это достигается за счет организации XML-описания метаданных ядра системы, то есть при добавлении новой схемы или схемы интегрирования редактируются соответствующие XML-файлы, с которыми работает ядро. Вновь введенная информация становится доступной через клиентское приложение, что позволяет осуществлять выбор новых возможностей на стороне клиента.
Среда моделирования удовлетворяет свойству переносимости приложений и данных, так как может выполняться на большинстве программно-аппаратных платформ (ПАК). Это достигается за счет выбора кроссплатформенных языков серверного, клиентского программирования, а также кроссплатформенных форматов описания данных и СУБД.
С каждым слоем ПАК связана количественная характеристика Ri, определяющая количество единиц вычислительных узлов i-й ПАК. При увеличении Ri большее число узлов будет обслуживать среду моделирования, таким образом, общая производительность системы возрастает, что означает соответствие свойству масштабируемос- ти. Для оптимизации использования вычисли- тельной мощности для каждого слоя ПАК необходимо иметь систему распределения запросов по узлам.
В среде моделирования четко выделено ядро, которое позволяет с минимальными затратами настроить взаимодействие с внешними системами, такими как CASE-средства подготовки моделей (к этой группе относятся и программы построения схем по определенным нотациям), системы визуализации моделей (пакеты анимации, системы построения графиков), системы поддержки принятия решений (OLAP, DataMining), экспертные системы. Таким образом, справочник обладает способностью к интеграции с внешними системами. Впоследствии ядро может использоваться как самостоятельная система – база построения открытых аналитических систем, в основе которых лежит виртуальный эксперимент.
Среда моделирования обладает свойством интероперабельности. Рассмотрим схему функционирования ядра справочника (рис. 2).
На сервере имеется группа модулей, реализующих методы интегрирования и генерирующих код интегрирования схем. Каждый такой модуль включает специальные элементы, которые при генерации кода заменяются на определенные схемы интегрирования и ограничения, передаваемые с клиента. Модули реализованы с использованием скриптовых, не зависящих от программно-аппаратной платформы языков, что позволяет добавлять новые схемы интегрирования без перекомпиляции всей системы. Каждый модуль регистрируется в специальном XML-файле. На сервере также располагается код клиентских форм, предназначенных для формирования схем интегрирования и передачи их к соответствующему генератору. Там же хранится код структуры для передачи схемы интегрирования между клиентом и сервером. Все формы также зарегистрированы и доступны клиенту через XML-файл. Для определения связи между генераторами и формами сформирован XML-файл, в который дополнительно включен комментарий. В файле XML-модели хранится информация о моделируемых системах, моделях и методах получения расчетных параметров.
Клиентское приложение обеспечивает обработку графического пользовательского интерфейса и анимационных сцен.
На клиенте реализованы несколько групп форм. Так, справочник моделей позволяет передавать новые модели на сервер, редактировать информацию о существующих моделях. Из формы справочника осуществляется выбор модели для передачи на форму ввода и редактирования схем интегрирования, которая динамически создается в зависимости от выбора модели и метода интегрирования. На рисунке 2 показано, что в эту группу могут входить несколько форм.
Каждая зарегистрированная форма ввода и редактирования схем интегрирования имеет механизмы упаковки и передачи схемы на связанный с ней генератор. Таким образом, на сервере хранятся описания механизмов интеграции ядра и нужная связка «метод–генератор–форма» выбирается автоматически при выборе модели.
После упаковки и передачи схемы на сервер она передается в генератор, где происходит замена формальных параметров генератора на фактические. Генератор формирует программный код интегратора на компилируемом языке в отдельном файле, вызывает компилятор, который создает исполняемый файл. Вновь сгенерированному интегратору присваивается уникальное имя, включающее идентификатор текущей сессии.
Результатом выполнения интегратора является XML-файл, содержащий расчетные параметры модели на все области определения с заданным шагом. Этот файл передается на клиентское приложение, где происходит запись в форму хранения расчетных параметров.
Данные о параметрах, которые требуется обработать во внешних системах, передаются в форму настройки файла экспорта расчетных параметров, откуда в формате XML передаются соответствующему граничному модулю, взаимодействующему с внешним окружением. Граничные модули также работают на прием данных из внешних систем. Благодаря такому подходу к ядру могут быть подключены CASE-средства разработки моделей на уровне графических нотаций, обладающие механизмами кодирования моделей в формат XML.
Предложенная структура ядра имеет механизм интеграции с вновь включаемыми компонентами без перекомпиляции всей системы. Таким образом, можно говорить, что среда моделирования обладает еще одним свойством открытой системы – способностью к интеграции с новыми внутренними модулями, расширяющими функциональность системы.
Подытоживая, отметим, что был разработан экспериментальный образец среды моделирования динамических систем с использованием таких средств и языков, как Flex, ActionScript, PHP, C. Среда включает подсистему анимации на основе технологий Flex и O3D.
Дополнительно реализован справочник моделей динамических систем, с помощью которого осуществляется редактирование информации о моделях. В основе справочника лежит wiki-движок mediawiki (mediawiki.org), относящийся к разряду свободного ПО. Вся вносимая информация записывается в БД wiki.
Представленный опытный образец является основой учебного комплекса по моделированию динамических систем, включающего электронный справочник с описанием систем и методов их моделирования, учебную виртуальную лабораторию моделирования динамических систем. Система может функционировать на множестве ПАК.
Благодаря адаптированному wiki-движку в наполнении контента справочника может принимать участие любой ее пользователь. Кроме того, система расширяема и возможна ее адаптация для процессов построения моделей гибридных систем.
Литература
1. Сухомлин В.А. Методологический базис открытых систем // Открытые системы. 1996. № 4.
2. Батоврин В.К. [и др.]. Построение профиля информационных, вычислительных и телекоммуникационных ресурсов для обеспечения фундаментальных исследований // Журнал радиоэлектроники. 2001. № 12.
3. Тим О’Рейли. Что такое Web 2.0 // URL: http://www. computerra.ru/think/234100/ (дата обращения: 14.04.2010).