Архитектура SALOME

Материал из ru.wiki.laduga.ru
Перейти к: навигация, поиск


Архитектура Salome основана на технологии CORBA, которая использует распределенную системную модель приложений. Эта архитектура использует концепцию мультиряда клиент-сервер. Salome включает в себя несколько программных компонентов, которые построены таким образом, что позволяют интегрировать решатели и сушествующие алгоритмы генерации сетки с учетом физических свойств заданного домена. Особенность такого подхода заключается в том, что различные компоненты должны динамически взаимодействовать и быть настраиваемыми.

Salome architecture.png

Платформа Salome объединяет в себе ряд модулей, каждый из которых выполняет свою функцию:

  • KERNEL: обеспечивает оболочку для всех компонентов, которые могут быть интегрированы в платформу Salome.
  • GUI: обеспечивает визуальное представление: основные виджеты, просмотрщики и т.д. Сторонние модули не всегда имеют GUI, но в любом случае связаны с KERNEL.
  • Geometry: отвечает за построение и оптимизацию геометрических моделей с использованием широкого набора САПР функций.
  • Mesh: генерирует сетки по геометрическим моделям, созданным или импортированным компонентом Geometry.
  • ParaVis: выполняет визуализацию данных и пост-процессинг.
  • MED: позволяет работать с MED файлами.

Архитектура Salome основана на концепции мультиряда клиент-сервер. Распределенная системная модель представляет функциональные возможности приложений в форме объектов, каждый из которых может использовать все возможности остальных объектов в системе, или даже внесистемных объектов. Архитектура может также стирать различие между "клиентом" и "сервером", потому что клиентские компоненты могут также создавать объекты, которые ведут себя подобно серверам. Эта архитектура обеспечивает чрезвычайно высокую гибкость.

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

Все компоненты программного обеспечения (Пост-Про, Геометрия, Сетка…), интегрированные в платформу Salome имеют предопределенный интерфейс. Каждый компонент обеспечивает данными для исследования Salome в форме связей (сохраненных в Исследовании) к определенным данным, созданным и сохраненным в компоненте. Все компоненты представляют серверы "CORBA", и это позволяет запускать их на различных станциях-хостах.

Salome architecture 2.png

Одинаково возможно создать независимые от ядра модули. Эти модули, возможно, не используют "CORBA", и могут иметь внутреннюю структуру данных, которая может быть написана на языке C ++ (или Python). Такие модули расположены внутри SALOME GUI, и с точки зрения конечного пользователя не имеют никакого различия со стандартными компонентами. Такие модули, которые не используют стандартные инструменты платформы Salome определены на специальном отделенном уровне, который называется CAM. Компонент CAM - основа нового SALOME GUI и содержит все основные функциональные возможности для того, чтобы работать с модулями (загрузка, сохранение, закрытие, настройка панели инструментов и меню).

Другой фундаментальной частью архитектуры Salome является использование Языка Определения Интерфейса (IDL). IDL, который определяет интерфейсы взаимодействия между компонентами CORBA, способствует обеспечению языковой независимости CORBA. Поскольку интерфейсы, описанные в IDL могут быть внедрены в любой язык программирования, заявления приложения CORBA и компоненты таким образом независимы от языка(ов), используемого для реализации их.

Дополнительная информация о технологии CORBA доступна в http://www.omg.org

В Salome есть возможность запускать определенные компоненты в так называемом пакетном режиме без использования GUI, обеспеченного компонентом GUI. В этом случае Вы можете работать с этими компонентами с помощью команд и скриптов на языке программирования Python .


Архитектура этой комплексной платформы для численных компонентов обладает следующими характеристиками:

  • Гибкость: создание и модификация схем вычисления должны быть легкими для понимания. Разработчик должен иметь свободный доступ ко всем параметрам моделирования для того, чтобы создать проблемно-ориентированные инструменты, приспособленные к новым ситуациям или проверить новые числовые алгоритмы. Salome позволяет интеграцию и выполнение числовых и физических компонентов, полученных из существующего кода.
  • Производительность: выполнение кода просто в использовании для пользователя, и повторное использование компонентов (в пределах других приложений для макрокомпонентов) максимально облегчено.
  • Эффективность: Salome в состоянии более точно моделировать явления, которые являются более сложными в масштабе, и в физических требованиях для согласования. Salome экономно эксплуатирует работу используемых машин (в широком масштабе параллельные процессоры, кластеры ПК и т.д).
  • Расширяемость: с одной стороны, технологии программного обеспечения и физические архитектуры развиваются достаточно быстро по сравнению с временем для разработки, адаптации и использования в научных приложениях, в то время как с другой стороны, развитие модели базы данных, приспособленной ко всему количеству обменов между компонентами может быть достигнуто с гораздо большей выгодой. Salome в состоянии легко следовать за этими разработками.