Подсистема управления

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

Это - описание требований к системе. По текущей реализации см. control.

Подсистема управления - внутрипроцессный сервер, загружаемый в адресное пространство процесса веб-сервера. Функции подсистемы управления:

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

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

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


Интерфейс подсистемы управления, предоставляемый клиентам со стороны пользователя (напр., веб-серверу)

Функции

Все функции интерфейса экспортируются библиотекой управляющей подсистемы как С функции, т.е. имеют связывание в стиле C.

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

Запросы

Конкретный пользовательский запрос задается параметром nFunctionId функции entry_point. Возможные значения параметра следующие.

Символическое имя Целочисленное значение Действие
CreateModelId 0 создание новой модели
CreateObjectId 1 создание нового элемента модели
UploadModelId 2 загрузка модели со стороны пользователя (не реализовано)
StartSimulationId 3 запуск физического моделирования в предметной области
GetProcessStatusId 4 получение сведений о состоянии процесса моделирования
GetSimulationResultsId 5 получение результатов моделирования
StopSimulationId 6 досрочная остановка процесса моделирования (не реализовано)
CloseSimulationId 7 закрытие моделирования и освобождение соответствующих ресурсов на сервере; если запущен процесс моделирования, то его остановка.