Архитектура вычислительной среды Insight Maker

С развитием интернета открываются новые возможности для развития эффективных и гибких инструментов моделирования, использующих преимущества веб-пространства. Веб-технологии дают большие преимущества начинающим пользователям, значительно сокращая издержки процесса обучения работе с моделирующими инструментами, которые становятся более доступными, не требуя загрузки и установки на компьютере. Подобная тенденция привлекает больше потенциальных пользователей, для которых инструменты моделирования оказываются полезны. На вышеуказанных принципах и идеях построена концепция моделирующего инструмента Insight Maker (http://InsightMaker.com)[1]- on-line сервиса, находящегося в открытом и бесплатном доступе и поддерживающего конструирование графических моделей. Insight Maker интегрирует три подхода моделирования - системная динамика, агентное моделирование и императивное программирование - в объединенной платформе. Среда обеспечивает графический интерфейс типовой конструкции, реализованный в клиентском коде, работающим на машинах пользователей. Insight Maker, разрабатываемый в течение нескольких лет, получил значительное распространение в настоящее время среди более чем 20,000 зарегистрированных пользователей.

Любой инструмент моделирования характеризуется тремя основными критериями: производительность (способность воспроизводить имитации максимально быстро и с минимумом затраченных ресурсов), функциональность и доступность. Доступность обозначает, насколько лёгок для понимания интерфейс и механизм работы с инструментом для пользователя. Производители программного обеспечения идут на компромиссы для оптимизации работы инструмента:

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

функций иногда оказываются бесполезны для рядового пользователя и усложняют работу с программой.

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

На рис.49 показан интерфейс редактора Insight Market в браузере Google Chrome. Условно, его можно поделить на три основных части: диаграмма модели (Model diagram), панель инструментов (Toolbar) и панель конфигурации (Configuration Panel). Диаграмма модели - это интерактивная иллюстрация текущего состояния структуры модели, дополненная текстовыми описаниями, картинками и активными кнопками. Каждый элемент можно свободно перемещать, масштабировать, редактировать, добавлять и удалять объекты, используя инструменты с панели сверху. Объекты обладают набором конфигураций, работать с которыми можно пользуясь панелью справа. Вся модель разрабатывается в пределах одного окна браузера и, по завершении работы, может быть сохранена на компьютер в формате CVS или же отправлена другому пользователю. Содержание же рабочего окна браузера задано стандартными веб-технологиями, такими как HTML и CSS.

Приложение основано на архитектуре «клиент-сервер» (рис.50) - пользователи получают доступ к серверу через интернет с собственных устройств (смартфонов, компьютеров, и т.д.). Сервер хранит данные об уже созданных моделях, учётных записях пользователей и поддерживает функцию совместного редактирования моделей. Со стороны пользователя доступна функция конструирования модели, имитационные процессы и отображение результатов работы. Взаимодействие между пользователями проходит через сервер. Важной деталью архитектуры является то, что процессы воспроизведения модели проходят на компьютере пользователя. Изначально, они протекали именно на сервере, тем самым достигалась более высокая скорость обработки данных Но подобный принцип не работал для маленьких моделей, где время, затраченное на отправку данных на сервер, превышало потенциальное время загрузки непосредственно на компьютере пользователя.

Интерфейс редактора Insight Market в браузере Google Chrome

Рис. 49. Интерфейс редактора Insight Market в браузере Google Chrome

Архитектура «Клиент-сервер»

Рис. 50. Архитектура «Клиент-сервер»

Перенесение процессов имитации на сервер могло повлечь за собой потребность в закупке новых, более мощных серверов. Оставить процессы на стороне пользовательского компьютера оказалось более выгодно. С технической точки зрения, инструмент Insight Market пользуется технологиями, находящимися в открытом доступе и работает на Linux/Unit сервере. Предпочтение подобному обеспечению было отдано из соображений сокращения издержек и повышения гибкости приложения. Данные помещены в открытом доступе в базе данных MySQL, хранение информации и алгоритмы взаимодействия в рамках сервере поддерживаются языком РНР и системой управления Drupal. В качестве основного программного обеспечения сервера используется приложение Lighttpd.

Архитектура части Insight Market, отвечающей за непосредственное моделирование, состоит из множества слоёв, верхние из которых зависят от функций, обеспечиваемых нижними (рисунок 51). Уровень 1 поддерживает вычислительные операции, призванные решить уравнения, заданные пользователем. Сама по себе, вычислительная машина не способна генерировать процессы моделирования - за них отвечают более высокие уровни.

Вычислительная машина разбирает и оценивает математические утверждения. Симулятор использует две независимые друг от друга цифровые библиотеки: одни вычисления производятся непосредственно в среде ECMAScript (работающей в двоичной системе, без целых и десятеричных чисел), другие - в библиотеке повышенной точности, поддерживаемой ECMAScript и работающей как с целыми, так и с десятеричными числами. У каждой из представленных библиотек есть свои достоинства и недостатки, например, во втором случае повышается производительность, а в первом - точность. Вычислительная машина позволяет характеризовать единицы вычислений.

Equation Engine Language - универсальный язык программирования, нацеленный в первую очередь на моделирование и работу с имитациями. Особенности данного языка включают в себя: использование и создание переменных, собранных в блоки, создание и использование функций, управление потоком (flow control), включая утверждения Если-То-Иначе, создание циклов, конструирование векторов. Несмотря на свой богатый функционал, данный язык служит лишь посредником между вычислительной машиной и пользователем, поскольку более сложные его функции применимы в процессе агентного моделирования. Уровень 2 - мульти-парадигмовая среда моделирования, поддерживающая набор различных подходов к моделированию. В каждом случае приходится выбирать между гибкостью и доступностью интерфейса. Среда системной динамики более абстрактна и всеохватывающа. С математической точки зрения, она использует дифференциальные уравнения и базируется преимущественно на простых графических инструментах и математическом анализе полученных результатов. Построена она на блоках, каждый из которых выполняет определённую функцию. Агентное моделирование - нацелено на работу с множеством элементов, что позволяет повысить уровень контроля, но потенциально снижает производительность, Имитирует поведение множества объектов-агентов, существующих независимо друг от друга, но взаимодействующих как между собой, так и с окружающей средой. Как и системная динамика, данный тип моделирования основан на графических инструментах и поддерживает два типа географических взаимоотношений между объектами: двумерный и сетевой. Императивное программирование не располагает ограничениями в моделировании и может быть довольно гибким, но в итоге может отнять много времени на разработку. Данный язык программирования - эквивалентен Equation engine language. Уровень 3 состоит непосредственно из самой модели со всеми инструментами и службами, её поддерживающими. Симулятор располагает тремя основными инструментами: оптимизатор, который максимизирует или минимизирует цель, инструмент измерения чувствительности и API, используемый для написания сценария поведения модели или же для анализа результатов. С помощью оптимизатора, пользователь задаёт параметры искомых переменных, устанавливает ряд ограничений и конечную задачу - максимизации или минимизации. Особенности, ограничивающие задаваемые пользователем параметры: невыпуклые целевые функции, негладкие целевые функции, не поддающиеся анализу производные.

Класс методик, нацеленных на подобные проблемы оптимизации известны как методы «прямого поиска» (direct search method). Данный класс включает в себя методы, которые не полагаются на дифференциалы, как, например, в классическом методе симплекса Нелдер- Мида[2]. Для имитации применяется метод Пауэлла.

Архитектура Insight Maker

Рис. 51. Архитектура Insight Maker

  • [1] ) Fortmann-Roe S. Insight Maker: A general-purpose tool for web-based modelling&simulation. //Simulation Modelling Practice and Theory. № 47. 2014. 28-45 p.
  • [2] ) Nelder J., Mead R. A simplex method for function minimization. // Comput. J. № 7. 1965. 308-313 p.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >