Верхнеуровневая архитектура
Обсужденная архитектура
Структура
На верхнем уровне системной иерархии система принципиально состоит из предметно-независимой и предметно-ориентированной подсистемы.
Предметно-независимая подсистемы разрабатывается нами без какой-либо привязки к предметной области проведения модельных экспериментов.
Предметно-независимая подсистема выполняет посреднические функции между моделирующим пользователем с одной стороны и предметно-ориентированной подсистемой с другой, а также выполняет сервисные функции по хранению данных пользователя и предметной области, по распределению нагрузки между параллельными вычислителями предметно-ориентированной подсистемы, и по реализации политики безопасности.
Предметно-ориентированная подсистема, реализует высокопроизводительное моделирование в наборе предметных областей, обслуживаемых предметно-независимой подсистемой, с использованием собственного аппаратного обеспечения.
Структурно, верхний уровень определяется следующими компонентами.
- Веб-сервер - служба, принимающая HTTP запросы от клиентов и трансформирующая их в вызов точки входа подсистемы управления с соответствующими параметрами.
- Подсистема управления - динамически загружаемая веб-сервером библиотека (DLL в Windows, SO в Unix), реализующая подсистему управления. Библиотека экспортирует заданный набор интерфейсных функций, доступных веб-серверу для обработки клиентских запросов. Также предоставляет интерфейс для подсистемы предметной области, который зависит от метода реализации подсистемы предметной области - в виде также внутрипроцессного сервера (единственная доступная реализация на 15.12.2015) или в виде удаленного сервера. Программно взаимодействие реализуется в виде пары "прокси-заглушка", предоставляющей полиморфные объекты с методами по передаче вызова.
- Вычислительная подсистема - чисто логическое объединение предметно-ориентированных подсистем, реализующих высокопроизводительное моделирование в своих предметных областях. На 15.12.2015 в виде разделяемых (динамических) библиотек реализованы две предметные области - "Архитектурная акустика" и "Интеграл".
Главный сценарий использования системы частично отражает назначение этих подсистем.
Тестовая версия 1 реализует только сценарий внутрипроцессной работы компонентов системы, за исключением браузера, а также два тестовых клиента, включающих управляющую подсистему в собственное адресное пространство. Реализованы следующие компоненты.
- control - библиотека, реализующая управляющую подсистему, и реализующая интерфейс, предоставляемый веб-серверу.
- arch_ac - реализация моделирующей подсистемы предметной области "Архитектурная акустика".
- integral - реализация подсистемы предметной области "Интеграл" по параллельному расчету интеграла . При , Результат должен быть равен .
- arch_ac_client - исполняемый компонент, играющий роль заглушки "пользователь-веб-сервер". Выполняет моделирование в предметной области "Архитектурная акустика".
- integral_client - аналогичный клиент, инициирующий расчет интеграла в предметной области "Интеграл".