Проект «Гербарий»
Автор: Портал ISICAD
Проект «Гербарий» был организован и финансировался Фондом перспективных исследований. Базовой целью проекта являлось обеспечение организационных и технических предпосылок к существенному развитию рынка отечественного инженерного ПО. Термин «инженерное» понимается в широком смысле. Это и приложения для разработки моделей изделий, и программы, решающие задачи виртуального моделирования поведения изделий под воздействием различных внешних и внутренних факторов, и расчётные программы, и инструменты, используемые в технологической подготовке производства. Проект выполнялся с марта 2015 г. по декабрь 2016 г.
Организационная структура проекта
Структура кооперации проекта «Гербарий»:
- Заказчик: Фонд перспективных исследований,
- Головной исполнитель проекта: АО «Системы управления»,
- Соисполнители:
ЗАО «Топ Системы»
ООО «Рексофт»
Задачи головного исполнителя:
- Управление архитектурой создаваемых решений (на данный момент это ЕСУ и ИИПП)
- Управление функциональными требованиями к ЕСУ и ИИПП
- Разработка и описание единой модели данных и единой модели процессов для программных средств, реализующих технологию и удовлетворяющих требованиям конечных пользователей и разработчиков инженерного программного обеспечения (ИПО)
- Методологическое обеспечение проекта
- Техническая экспертиза и квалификационное тестирование разрабатываемых в рамках проекта ЕСУ и ИИПП
Компания «Топ Системы» отвечала за разработку интегрированной инженерной программной платформы (ИИПП).
Компания «Рексофт» занималась разработкой единой среды для управления модулями инженерного программного обеспечения (ЕСУ).
Предпосылки проекта
Известно, что у нас в стране в крупных корпорациях, включая предприятия ОПК, используется очень много различного инженерного ПО общего и специального назначения. Часто такие программы разрабатываются силами самих компаний, с использованием собственных научных и инженерных наработок. При этом практически каждый из таких локальных коллективов разработчиков встречается с определёнными трудностями:
- Инженерные задачи должны решаться на основе цифрового представления моделей изделий. Обычно это 3D модель, обогащённая широким набором атрибутивной информации, используемой для решения конкретной задачи. И сейчас нет единого средства представления такой модели. Имеется в виду и формат хранения, и программная библиотека, обеспечивающая решение задачи управления цифровой моделью.
- При решении инженерных задач необходима реализация большого числа функций, связанных с визуализацией цифровых моделей. Это может быть просто вывод 3D графики, представляющей образ модели в различных режимах. Это может быть визуализация параметров какой-то инженерной задачи (граничных условий), и визуализация расчётной модели или результатов расчёта. Для выполнения всех этих функций имеются стандарты только самого нижнего уровня (например, OpenGL), что делает решение в каждом случае разработки инженерного ПО крайне трудоёмким.
- Очень важной для инженерного ПО является возможность обмена данными со сторонними приложениями в стандартных форматах (например, STEP). Для каждого разработчика это является «головной болью».
- Имеется задача генерации различных документов и отчётов: чертежи, схемы, эпюры и другие виды документов.
- Для хранения цифровой модели изделия и связанных с ней данных инженерных задач нужны универсальные инструменты записи/чтения информации в файл, которые будут соответствовать современным требованиям: обеспечивать компактность хранения, удовлетворять требованиям приложений по производительности, обеспечивать возможность расширения объектной модели приложения, позволять использовать формат хранения на различных вычислительных платформах. И самое главное, результирующий формат хранения должен быть открытым.
Технические, архитектурные и организационные задачи проекта
Подобные корпоративные платформенные решения существуют у разработчиков «тяжёлых» PLM решений. Одной из задач проекта являлась разработка открытой отечественной программной платформы ИИПП, которая позволит использовать унифицированные платформенные инструменты, не ограничиваясь разработками в составе конкретной линейки продуктов отдельно взятого поставщика инженерного ПО.
Кроме задач технического и архитектурного характера, ФПИ поставил перед собой задачу разработки организационных решений, обеспечивающих развитие рынка инженерного ПО. Здесь имеется в виду формирование предпосылок для распространения существующих программных систем, решающих инженерные задачи, а также организация взаимодействия между компаниями-потребителями специализированного ПО и разработчиками таких решений с целью оперативной разработки новых продуктов под заказ.
Для решения первой группы задач, связанных с разработкой платформенного решения для выполнения программ инженерного назначения – «Интегрированной инженерной программной платформы» (ИИПП), была выбрана компания «Топ Системы». Причин для этого достаточно. Во-первых, наша компания ведёт разработку конечных программных продуктов для инженеров уже 25 лет. У нас есть огромный опыт по разработке управления цифровой моделью изделий различного назначения, а также решения различных инженерных задач на её основе. Мы хорошо знаем, как такие задачи решаются, что и как нужно сделать для того, чтобы решать их более эффективно. И, что особенно важно, мы понимаем, как не стоит делать, чтобы не получить в будущем ограничений. Немаловажным фактором является то, что мы хорошо знаем рынок инженерного ПО, и можем общаться с коллегами по цеху с тем, чтобы принимать правильные решения по формированию архитектурного облика будущего решения. С целью решения поставленных задач, в составе компании «Топ Системы» была организована отдельная лаборатория.
В своей работе мы руководствовались конкретными требованиям технического задания, но рассматриваем задачу несколько шире. Мы увидели в данной работе возможность разработки набора программных компонентов нового поколения, который позволит использовать его как основу или среду существования различного инженерного ПО.
Наряду с ИИПП в рамках проекта разрабатывается решение, призванное обеспечить организацию разработки и распространения новых программных продуктов инженерной направленности – «Единая среда управления» (ЕСУ). За эту часть проекта отвечала компания «Рексофт», имеющая большой опыт разработки продуктов, ориентированных на использование web-сервисов. Если ИИПП является основой для выполнения инженерных приложений, то ЕСУ является средой, помогающей в организации разработки и последующем распространении таких продуктов. По сути это портал, обеспечивающий размещение заказов на разработку инженерных программ, каталогизацию готовых приложений, публикацию SDK ИИПП для разработчиков. Одной из важнейших задач, решаемых ЕСУ является обеспечение возможностей по квалификационному тестированию модулей инженерного ПО с целью обеспечения качества работы различных версий и инсталляций, предназначенных для работы на различных операционных системах.
Целевой продукт – интегрированная инженерная программная платформа
Её функциональность и назначение ИИПП полностью отвечает требованиям по решению обозначенных выше проблем. За основу при разработке ИИПП взято геометрическое 3D ядро RGK (Часть I. Архитектура и приложения, Часть II. Функции и инструменты), которое является современным и мощным инструментом геометрического моделирования. Понятно, что RGK является основным компонентом в «геометрической» части цифровой модели, управляемой ИИПП. Но кроме этой задачи, ИИПП может решать огромное числа других задач, характерных для сложного инженерного программного обеспечения.
Рис. Основные компоненты ИИПП
ИИПП обеспечивает решение следующих задач:
- Управление цифровой моделью данных приложений CAD/CAM/CAE. Под управлением понимается наличие API по формированию модели данных, обеспечение целостности модели при различных модификациях, обеспечение контроля над взаимосвязями между различными объектами и т.д.;
- Открытый программный интерфейс. Обеспечивающий возможность расширения логики поведения объектов модели;
- Хранение/восстановление данных цифровой модели. Обеспечивается поддержка открытого расширяемого формата хранения RGP;
- Обеспечение протокола взаимодействия с модулями инженерного ПО. Обеспечивается загрузка и выполнение приложений сторонней разработки. При этом приложения могут обмениваться данными друг с другом;
- Обмен данными в стандартных форматах;
- Графическая подсистема. Обеспечивается функциональность 2D и 3D графики, необходимая для решения задач в приложениях CAD/CAM/CAE;
- Подсистема поддержки пользовательского интерфейса. Обеспечивает базовый инструментарий для разработки пользовательского интерфейса различных инженерных приложений при помощи унифицированных объектно-ориентированных средств;
- Визуализация структуры модели. В состав ИИПП должны входят компоненты, отвечающие за формирование и отображение таких элементов управления, как дерево структуры сборки, история построения модели, состав инженерной задачи и т.д.
Рис. Внешний вид программы-демонстратора ИИПП
По сути ИИПП является «конструктором», обеспечивающим возможность быстрой разработки как отдельных программ инженерного назначения, так и комплексной программы, состоящей из множества больших и малых приложений. При этом нельзя сказать, что библиотека ориентируется конкретно на задачи CAD, CAE или CAM. Любое из направлений реализуется в виде прикладного модуля конкретного назначение. В этом смысле, CAD система будет являться таким же приложением, работающим на основе ИИПП, как и многие другие.
Программные требования к продукту
Программный код ИИПП соответствует требованиям, выполнение которых позволит использовать платформу при решении широкого круга задач. К ним относятся:
- Наличие открытого многоуровневого API. По сути разработан SDK со всеми атрибутами такого набора: документация, примеры, материалы для сборки конечного приложения.
- Открытая расширяемая объектная модель. Платформа обеспечивает возможность внедрения в модель объектов приложений с новым поведением. Они могут полноценно взаимодействовать с другими объектами модели, сохраняться в файл, причём не исчезать даже в тех случаях, если данное приложение не запускается в составе конкретного АРМ.
- Кроссплатформенность. Обеспечивается требуется поддержка работы ИИПП на различных операционных системах разной разрядности, включая сертифицированные ОС для работы на отечественных предприятиях ОПК.
- Поддержка многопоточных вычислений. Платформа обеспечивает решение различных задач с использованием параллельных и многопоточных вычислений на многопроцессорных компьютерах. Соответственно, в платформе поддерживается возможность как внутреннего, так и внешнего распараллеливания вычислений. Многие из решений данного направления были нами отработаны в процессе работы над RGK
- Поддержка облачных технологий. Большинство компонентов ИИПП разработаны с учётом готовности к использованию клиент-серверных и облачных технологий.
Рис. Работа демонстратора ИИПП под ОС Linux (Ubuntu)
Перспективы использования ИИПП
ИИПП нацелена на то, чтобы стать основой широкого спектра программных продуктов инженерного назначения. Уже в ближайшем будущем ФПИ в рамках развития проекта планирует запустить сразу несколько масштабных проектов, реализующих решение сложных инженерных задач, связанных со спецификой работы Фонда. В качестве основы для организации работы с цифровой моделью изделий, рассчитываемых в этих приложениях, планируется использовать платформу, разработанную в рамках проекта «Гербарий».
Рис. Результат работы дополнительного приложения ИИПП – генератора фотореалистичных изображений
Обратная связь:
Фонд перспективных исследований http://fpi.gov.ru/
ОАО «Системы управления»: http://www.oaosu.ru/
ЗАО «Топ Системы»: RGPlatform@TopSystems.ru
Компания «Рексофт»: http://www.reksoft.com/ru/