Верхнеуровневая архитектура
Обсужденная архитектура
Чистовой, более высокоуровневый use-case, написанный до обсуждений, см. в отдельной статье.
Use case, в котором все данные передаются через централизованную управляющую подсистему.
- Пользователь через браузер подключается к управляющей подсистеме.
- Пользователь загружает необходимые скрипты
- Пользователь создает модельный проект (загружает его с локального хранилища, подключается к работе над существующим проектом, загружает его с банка данных пользователя, восстанавливает автосохранённый проект в случае неожиданного выключения клиента ранее).
- Пользователь создает/изменяет геометрическую модель. Все изменения модели на данном этапе остаются локальными.
- Пользователь обращается к управляющей подсистеме с запросом на ассоциацию данных из базы данных предметных областей с компонентами геометрической модели для выбранной предметной области
- Управляющая подсистема, обращаясь к базе данных предметных областей, считывает данные и передает их ответом пользователю.
- Ассоциированные данные сохраняются в модели. (Модель представляет совокупность геометрии задачи и данных)
- Пользователь посылает запрос на запуск процедуры моделирования управляющей подсистеме.
- Управляющая подсистема делегирует вызов подсистеме геометрического моделирования
- Подсистема геометрического моделирования фактически изменяет параметры геометрической модели
- Подсистема геометрического моделирования передает модель управляющей подсистеме
- Управляющая подсистема сохраняет модель в СУБД 2?
- Управляющая подсистема передает полученную модель подсистеме предметной области для моделирования.
- Подсистема предметной области проверяет данные модели
- Подсистема предметной области выполняет моделирование модели и возвращает результат управляющей подсистеме.
- Управляюая подсистема сохраняет полученные данные во временное хранилище результатов
- Управляющая подсистема сохраняет данные проекта в банк данных пользователя
- Управляющая подсистема передает полученные данные графической подсистеме
- Графическая подсистема передает данные для визуализации пользователю
- Браузер выполняет визуализацию результатов моделирования
- Пользователь локально сохраняет результаты моделирования
- 3A В случае создания нового проекта, или если пользователь решает выполнить новое моделирование в выбранной им предметной области
- 1. Пользователь обращается к управляющей подсистемой с запросом на получение списка подсистем предметных областей (т.е. списка самих предметных областей).
- 2. Пользователь выбирает предметную область
- 3. Предметная область возвращает формат данных необходимых для моделирования
- 3Б Если пользователь решает загрузить проект из СУБД2 ...
Исходная архитектура
Система состоит из следующих компонентов, распределенных по сети:
- Подсистема геометрического моделирования реализует хранение геометрической модели среды, в которой моделируется поле. Каждая модель ассоциирована с экземпляром сцена - хранилищем объектов. Подсистема реализует функционал сцены и хранения экземпляров сцены. Доступ к экземпляру осуществляется клиентом по имени модельного проекта. Компонент частично реализован в проекте 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 через обращение к ней. Сегодня управления нет, центральной является система геометрического моделирования.
- Предметно-ориентированная подсистема Включает в себя подсистемы предметной области, реализованные с участием эксперта предметной области. Также включает в себя параллельный вычислительный ресурс, регистрируемый в подсистеме управления.