К созданию отечественной универсальной интегрированной инженерной программной платформы: что же такое проект «Гербарий»

ФПИ лого на стене

Проект «Гербарий» организован и финансируется Фондом Перспективных исследований. Базовой целью проекта является обеспечение организационных и технических предпосылок к существенному развитию рынка отечественного инженерного ПО. Термин «инженерное» понимается в широком смысле. Это и приложения для разработки моделей изделий, и программы, решающие задачи виртуального моделирования поведения изделий под воздействием различных внешних и внутренних факторов, и расчётные программы, и инструменты, используемые в технологической подготовке производства.


Организационная структура проекта

Структура кооперации текущего проекта «Гербарий»:

В состав задач АО «Системы управления» входит:

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

ЗАО «Топ Системы» отвечает за разработку интегрированной инженерной программной платформы (ИИПП).

ООО «Рексофт» отвечает за разработку единой среды для управления модулями инженерного программного обеспечения (ЕСУ ИПО).

Предпосылки проекта

Известно, что у нас в стране в крупных корпорациях, включая предприятия ОПК, используется очень много различного инженерного ПО общего и специального назначения. Часто такие программы разрабатываются силами самих компаний, с использованием собственных научных и инженерных наработок. При этом практически каждый из таких локальных коллективов разработчиков встречается с определёнными трудностями:

  • Инженерные задачи должны решаться на основе цифрового представления моделей изделий. Обычно это 3D модель, обогащённая широким набором атрибутивной информации, используемой для решения конкретной задачи. И сейчас нет единого средства представления такой модели. В первую очередь имеется в виду не формат хранения, а программная библиотека, обеспечивающая решение задачи управления цифровой моделью.
  • При решении инженерных задач необходима реализация большого числа функций, связанных с визуализацией цифровых моделей. Это может быть просто вывод 3D графики, представляющей образ модели в различных режимах. Это может быть визуализация параметров какой-то инженерной задачи (граничных условий). Это может быть визуализация расчётной модели или результатов расчёта. Для выполнения всех этих функций имеются стандарты только самого нижнего уровня (например, OpenGL), что делает решение в каждом случае разработки инженерного ПО крайне трудоёмким.
  • Очень важной для инженерного ПО является возможность обмена данными со сторонними приложениями в стандартных форматах (например, STEP). Для каждого разработчика это является «головной болью».
  • Имеется задача генерации различных документов и отчётов: чертежи, схемы, эпюры и другие виды документов.
  • Для хранения цифровой модели изделия и связанных с ней данных инженерных задач нужны универсальные инструменты записи/чтения информации в файл, которые будут соответствовать современным требованиям: обеспечивать компактность хранения, удовлетворять требованиям приложений по производительности, обеспечивать возможность расширения объектной модели приложения, позволять использовать формат хранения на различных вычислительных платформах. И самое главное, результирующий формат хранения должен быть открытым.

Технические, архитектурные и организационные задачи проекта

Подобные корпоративные платформенные решения существуют у разработчиков «тяжёлых» PLM решений. Нашей задачей является разработка открытой отечественной программной платформы, которая позволит использовать унифицированные платформенные инструменты, не ограничиваясь разработками в составе конкретной линейки продуктов отдельно взятого поставщика инженерного ПО.

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

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

Нужно учитывать, что ФПИ – очень серьёзная организация, строго контролирующая сотрудников своих лабораторий. Соответственно, в составе компании «Топ Системы» появилась отдельная лаборатория.


В своей работе мы руководствуемся конкретными требованиям технического задания, но рассматриваем задачу несколько шире. Мы видим в данной работе возможность разработки набора программных компонентов нового поколения, который позволит использовать его как основу или среду существования различного инженерного ПО.

Наряду с ИИПП в рамках проекта разрабатывается решение, призванное обеспечить организацию разработки и распространения новых программных продуктов инженерной направленности – «Единая среда управления» (ЕСУ). За эту часть проекта отвечает компания «Рексофт», имеющая большой опыт разработки продуктов, ориентированных на использование web-сервисов. Если ИИПП является основой для выполнения инженерных приложений, то ЕСУ является средой, помогающей в организации разработки и последующем распространении таких продуктов. По сути это портал, обеспечивающий размещение заказов на разработку инженерных программ, каталогизацию готовых приложений, публикацию SDK ИИПП для разработчиков. Одной из важнейших задач, решаемых ЕСУ является обеспечение возможностей по квалификационному тестированию модулей инженерного ПО с целью обеспечения качества работы различных версий и инсталляций, предназначенных для работы на различных операционных системах.

Дополнительные сведения о нашем проекте и лаборатории, о компании «Рексофт» и о ФПИ можно получить в недавней isicad-публикации «На базе российского ядра 3D RGK создаётся первая отечественная интегрированная инженерная программная платформа».


Целевой продукт – интегрированная инженерная программная платформа

Как уже было упомянуто, конкретным продуктом, который мы разрабатываем в рамках данного проекта, является ИИПП – интегрированная инженерная программная платформа. Её функциональность и назначение полностью отвечает требованиям по решению обозначенных выше проблем. За основу при разработке ИИПП взято геометрическое 3D ядро RGK, которое является современным и мощным инструментом геометрического моделирования. Понятно, что RGK является основным компонентом в «геометрической» части цифровой модели, управляемой ИИПП. Но кроме этой задачи, ИИПП будет обеспечивать решение огромного числа других задач, характерных для сложного инженерного программного обеспечения.

ИИПП должна обеспечивать решение следующих задач:

  • Управление цифровой моделью данных приложений CAD/CAM/CAE. Под управлением понимается наличие API по формированию модели данных, обеспечение целостности модели при различных модификациях, обеспечение контроля над взаимосвязями между различными объектами и т.д.;
  • Открытый программный интерфейс, обеспечивающий возможность расширения логики поведения объектов модели;
  • Хранение/восстановление данных цифровой моделью. Должна обеспечиваться работа с открытым расширяемым форматом хранения;
  • Обеспечение протокола взаимодействия с модулями инженерного ПО. Должна обеспечиваться загрузка и выполнение приложений сторонней разработки. При этом приложения должны обмениваться данными друг с другом;
  • Обмен данными в стандартных форматах;
  • Графическая подсистема. Должна обеспечиваться функциональность 2D и 3D графики, необходимая для решения задач в приложениях CAD/CAM/CAE;
  • Подсистема поддержки пользовательского интерфейса должна обеспечивать базовый инструментарий для разработки пользовательского интерфейса различных инженерных приложений при помощи унифицированных объектно-ориентированных средств;
  • Визуализация структуры модели. В состав ИИПП должны войти компоненты, отвечающие за формирование и отображение таких элементов управления, как дерево структуры сборки, история построения модели, состав инженерной задачи и т.д.

По сути ИИПП является «конструктором», обеспечивающим возможность быстрой разработки как отдельных программ инженерного назначения, так и комплексной программы, состоящей из множества больших и малых приложений. При этом нельзя сказать, что библиотека ориентируется конкретно на задачи CAD, CAE или CAM. Любое из направлений реализуется в виде прикладного модуля конкретного назначение. В этом смысле, CAD система будет являться таким же приложением, работающим на основе ИИПП, как и многие другие.


СТруктура ИИПП


Программные требования к продукту

Код ИИПП должен соответствовать требованиям, выполнение которых позволит использовать платформу при решении широкого круга задач. К ним относятся:

  • Наличие открытого многоуровневого API. По сути мы разрабатываем SDK со всеми атрибутами такого набора: документация, примеры, материалы для сборки конечного приложения.
  • Открытая расширяемая объектная модель. Платформа должна обеспечивать возможность внедрения в модель объектов приложений с новым поведением. Они должны полноценно взаимодействовать с другими объектами модели, сохраняться в файл, причём не исчезать даже в тех случаях, если данное приложение не запускается в составе конкретного АРМ.
  • Кроссплатформенность. Понятно, что от нас требуется поддержка работы ИИПП на различных операционных системах разной разрядности, включая сертифицированные ОС для работы на отечественных предприятиях ОПК.
  • Поддержка многопоточных вычислений. Платформа должна обеспечивать решение различных задач с использованием параллельных и многопоточных вычислений на многопроцессорных компьютерах. Соответственно, в платформе обеспечивается возможность как внутреннего, так и внешнего распараллеливания вычислений. Многие из решений данного направления были нами отработаны в процессе работы над RGK.
  • Поддержка облачных технологий. Большинство компонентов ИИПП разрабатываются с учётом готовности к использованию клиент-серверных и облачных технологий.

Основная часть программного кода ИИПП разрабатывается «с нуля». Мы не берём за основу существующий программный код T-FLEX CAD или какого-то другого конкретного программного продукта. Это в первую очередь связано с требованиями как к самому коду, так и к новой программной архитектуре, разрабатываемой в рамках проекта. Впрочем, есть и готовые компоненты, которые используются в проекте «как есть», хотя и с адаптацией и глубокой доработкой в соответствии с требованиями проекта. Таких компонентов два: геометрическое ядро RGK и графическая библиотека, ранее разработанная нашей компанией. Про оба этих компонента было написано довольно много. RGK разрабатывался нами в составе большой команды при выполнении соответствующего госконтракта (RGK: Часть I. Архитектура и приложения, Часть II. Функции и инструменты), а графическая библиотека уже используется в нашем основном продукте T-FLEX CAD.

Напомню, что в рамках разработки T-FLEX CAD версий 12 и 14 мы написали полностью новую графическую библиотеку, что обеспечило нашей CAD системе максимальный уровень производительности. Об этом можно прочитать в статье «В Польше сравнили T-FLEX CAD 12, SolidWorks 2012 и Inventor 2012», которая занимает первое место в isicad-рейтинге читательской популярности за все годы. Соответствующая библиотека позволит нам в будущем разработать приложения для ИИПП, обеспечивающих функциональность генерации фотореалистичных изображений и проигрывания сценариев анимации. Соответственно, мы производим доработку обоих компонентов для обеспечения требований «Гербария» и включаем их в состав ИИПП.

T-FLEX CAD фотореализм

Генерируемые в T-FLEX CAD фотореалистичные изображения сложно отличить от фотографий реальных объектов


Перспективы использования ИИПП

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