Старая версия архитектуры системы

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску

Исходная архитектура

Старая версия архитектуры системы

Система состоит из следующих компонентов, распределенных по сети:

Верхнеуровневая структурная диаграмма системы моделирования
  • Подсистема геометрического моделирования реализует хранение геометрической модели среды, в которой моделируется поле. Каждая модель ассоциирована с экземпляром сцена - хранилищем объектов. Подсистема реализует функционал сцены и хранения экземпляров сцены. Доступ к экземпляру осуществляется клиентом по имени модельного проекта. Компонент частично реализован в проекте chsvgrphc, в виде DLL-библиотеки и в совокупности с предметно-независимой визуализацией сцены. Новое: Предполагается разделить существующую реализацию следующим образом: хранилище геометрической модели выделить в удаленный сервер, а визуализацию проводить целиком на стороне клиента, выполняя репликацию геометрической модели при возникновении изменений на сервере.
  • Система управления базами данных Разделяемый доступ компонентов CAM к постоянным справочным данным, необходимым при расчетах должен предоставляться отдельной обслуживающей подсистемой – банком данных. Информационное наполнение банка составляют данные, необходимые для проведения каждого имитационного эксперимента, например сведения о типичных источниках поля, о физических свойствах среды распределения поля для заданного набора внешних условий, количественные сведения, характеризующие поведение поля на границах раздела сред. Поскольку информационное наполнение определяется предметной областью, в которой выполняется моделирование, для каждой предметной области создается собственная база данных. В настоящий момент реализован базовый функционал СУБД в виде локального COM-сервера (проекты amdb_inner и amdb_outer), с прокси и заглушкой (amdv_outer_inner, amdb_outer_proxy). Поэтому теоретически реализация должна работать корректно и для удаленного сервера. На 07.07.2015 реализация может портить данные при большом количестве элементов данных и параллельных клиентов. Реализация ориентирована на быструю обработку поступающих параллельно запросов, с высокой вероятностью того, что доступ будет ограничен чтением. Также существует написанный мной сырой клиент СУБД, брошенный во времена написания диссертации "посередине", поэтому пока он не выложен в репозиторий.
  • Клиент доступа к системе моделирования Пользовательский клиент, через который осуществляется доступ к системе моделирования. Сегодня клиент фактически представляет из себя простое окошко с визуализацией 3D модели сцены и командная строка клиента. Предоставляет пользователю интерфейс для ввода параметров моделирования и анализа в систему: объекты, степень их аппроксимации, физические размеры, которым соответствует моделируемое пространство, параметры среды распространения моделируемого физического поля, а также положение секущих плоскостей, на которых рассчитываются распределения характеристик поля.
  • Подсистема управления Централизованное управление узлами распределенной CAM, а также политика безопасности в CAM должны реализовываться сервером безопасности и управления доступными вычислительными узлами, задачей которого является хранение и предоставление адресов всех узлов системы, а также гарантия их подлинности и их авторизация. При развертывании CAM узлы системы должны регистрироваться на сервере, при этом идентификатор, адрес и ключи аутентификации регистрируемого узла должны быть занесены во внутренние базы данных сервера согласно протоколам определенным разработчиком. При необходимости клиент сервера по идентификатору должен получать адрес запрашиваемого узла лишь в том случае, если подлинность последнего подтверждена. При этом сервер исключается из набора участников информационного обмена между авторизированными узлами, таким образом, на него не налагаются требования по защите передаваемой между его клиентами информации. Это, во-первых, снижает информационную нагрузку на сервер, во-вторых, снижает роль сервера как арбитра, что является причиной недостатков множества существующих систем и протоколов безопасности [57, 92]. Этой же либо выделенной отдельно подсистемой должно осуществляться распределение нагрузки между аутентифицированными подсистемами предметной области. При этом возможно использование следующего протокола. Для каждой отдельно взятой предметной области создается реестр адресов моделирующих подсистем, не занятых выполнением моделирования. Также для каждой предметной области подсистемой создается список задач по выполнению отдельного имитационного эксперимента. Во время проведения процедуры моделирования, если реестр адресов подсистем предметной области не пуст, параметры одного имитационного эксперимента из совокупности задач, которые необходимо выполнить для осуществления моделирования, передаются по одному из адресов из реестра. Если реестр пуст, параметры заносятся в список задач, выполнение которых осуществляется по мере освобождения подсистем предметной области. Подобные схемы управления нагрузкой в параллельных и распределенных системах имитационного моделирования являются предметом исследований в работах [25, 76], посвященных принципам PDES. В соответствующих терминах сервер осуществляет хранение списка событий, которыми являются сообщения о появлении задач по проведению имитационного эксперимента с заданными параметрами. В зависимости от требований к нагрузке на CAM и к стоимости развертывания системы сервер безопасности и подсистема управления доступными вычислительными узлами могут быть включены в одну из базовых подсистем. В этом случае такая подсистема назначается основной. Тогда остальные базовые подсистемы включаются в CAM через обращение к ней. Сегодня управления нет, центральной является система геометрического моделирования.
  • Предметно-ориентированная подсистема Включает в себя подсистемы предметной области, реализованные с участием эксперта предметной области. Также включает в себя параллельный вычислительный ресурс, регистрируемый в подсистеме управления.



Упорядочить следующее

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

  1. Предметно-независимая подсистема. Обеспечивает сервисные функции, как то: геометрическое моделирование среды, в которой моделируется поле, банки данных, пользовательский интерфейс, визуализация, распределение вычислительного времени.
  2. Предметно-ориентированная подсистема. Выполняет собственно моделирование с использованием ресурсов, предоставленных предметно-независимой подсистемой. В систему входят предметно-ориентированные компоненты, которые разрабатываются с участием специалиста предметной области, задающего параллельный алгоритм, реализуемый с использованием средств поддержки разработчика моделирующих подсистем.

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

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

С точки зрения пользователя задача системы состоит в том, чтобы на основе данных о среде, в которой генерируется моделируемое поле, ему была возвращена картина распределения этого поля в 2D или 3D формате.

Данные, вводимые пользователем, включают:

  1. Геометрическую модель среды распределения поля. Под геометрической моделью понимается двух или трехмерное описание компонентов модели среды распределения поля: их положение, размеры и. т. п.
  2. Физическую модель. Пользователь задает параметры каждого компонента геометрической модели, задавая их материалы и вещества. Физические параметры материала (коэффициенты поглощения, диэлектрические проницаемости, и. т. п.) выбираются из базы данных, система управления которой, как будет указано ниже, входит в предметно-независимую подсистему, а наполнение осуществляется для конкретной предметной задачи. К физическим параметрам относятся и те, которые задают прохождение волны в части среды, не определяемой компонентами геометрической модели (например, давление, влажность, температура воздуха).
  3. Количество и положение плоскостей вывода результатов моделирования. Под плоскостями вывода результатов понимаются плоскости, секущие геометрическую модель среды распределения поля. На этих плоскостях в процессе моделирования будут в различных точках "накапливаться"получаемые параметры моделируемого поля.

Данные, получаемые пользователем в результате выполнения программы, включают:

  1. Распределение характеристик поля по плоскостям вывода результатов. Значения исследуемых характеристик поля в контрольных точках, являющихся элементами матриц распределения по плоскостям вывода результатов - по одной матрице на плоскость.
  2. Визуализация распределения поля как функция от значений на плоскостях. Визуальное отображение значений на одной плоскости - в виде линий уровня. Для трехмерного отображения предполагается расположение плоскостей в виде сетки и построение плоскостей равных характеристик поля. Результат визуализации может быть наложен на графическое представление среды распределения поля (следующий пункт).
  3. Визуализация геометрической модели среды распределения поля. Двух или трехмерное отображение среды, доступное до проведения процедуры моделирования. После завершения моделирования используется как графическая подложка, на которую накладывается картина распределения поля.

Устанавливается требование к поддержке многопользовательской работы в системе над одним или множеством модельных проектов.

Предметно-независимая подсистема

Сервисные функции предметно-независимой подсистемы включают в себя:

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

На основе указанных функциональных требований к предметно-независимой подсистеме в целом заданы следующие структурные компоненты предметно-независимой подсистемы на верхнем уровне системной иерархии:

  1. Подсистема управления. Реализует централизованное хранение адресов узлов распределенной системы моделирования и предоставление авторизованного доступа к ним по запросу. По состоянию на 02.03.2015 подсистема структурно объединена с подсистемой безопасности и подсистемой балансировки нагрузки. Развитие предполагает разделение этих подсистем на отдельные компоненты на верхнем уровне системной иерархии архитектуры предметно-независимой подсистемы.
  2. Подсистема безопасности. Реализует политику безопасности в системе моделирования в целом, включая реализацию (серверная часть) протоколов аутентификации и авторизации подсистем и пользователей. пока объединена с подсистемой управления и подсистемой балансировки нагрузки
  3. Подсистема балансировки нагрузки. Реализует распределение нагрузки между вычислительными узлами, реализующими модельные эксперименты и структурно входящими в предметно-ориентированные подсистемы. Распределение нагрузки реализуется за счет использования двух списков: событий, описывающих параметры элементарных компонентов моделирования в соответствии с заданным в предметной области разделением моделируемого объекта в пространстве и во времени [4], а также адресов вычислительных узлов, собственно выполняющих компоненты моделирования. Пока система объединена с подсистемой управления и подсистемой безопасности нагрузки.
  4. Подсистема геометрического моделирования. Реализует средства хранения и представления сред распространения моделируемых физических полей, предоставляет централизованный доступ к геометрической модели. В текущей реализации подготавливает также визуальное представление геометрической модели до расчета распределения поля. Данную операцию в дальнейшем предпологается выполнять на стороне пользователя.
  5. Банк данных. Реализует хранение постоянных справочных данных, необходимых при моделировании: коэффициенты поглощения, затухания, номинальныые параметры источников поля, диэлектрические и магнитные проницаимости и. т. п.Информационное наполнение банка определяется в предметной области. Реализация СУБД должна быть предметно-независимой и удовлетворять требованиям ГОСТ. Каждой предметной области соответствует собственный экземпляр СУБД банка.
  6. Подсистема пользовательского интерфейса. Реализует взаимодействие с пользователем, включая визуализацию результатов моделирования по матрицам распределения поля (см. рис. 2) и геометрической модели среды по ее математическому описанию (последнее - вопрос развития, поскольку визуализация геометрической модели сегодня реализуется подсистемой геометрического моделирования).
  7. Подсистема межсистемного взаимодействия. Реализует взаимодействие с внешними системами по протоколу HLA [2, 3].

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