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

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


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


''Все функции интерфейса экспортируются библиотекой управляющей подсистемы как С функции, т.е. имеют связывание в стиле C.''
''Все функции интерфейса экспортируются библиотекой управляющей подсистемы как С функции, т.е. имеют связывание в стиле C.''
Строка 24: Строка 26:
|-
|-
| [[SetErrorLogFile]] || Установка файла текстового журналирования ошибок, возникающих в границах управляющей подсистемы.
| [[SetErrorLogFile]] || Установка файла текстового журналирования ошибок, возникающих в границах управляющей подсистемы.
|}
===Запросы===
Конкретный пользовательский запрос задается параметром <code>nFunctionId</code> функции [[entry_point]]. Возможные значения параметра следующие.
{| class="wikitable" style="margin: auto;"
! Символическое имя !! Целочисленное значение !! Действие
|-
| CreateModelId || 0 || создание новой модели
|-
| CreateObjectId || 1 || создание нового элемента модели
|-
| UploadModelId || 2 || загрузка модели со стороны пользователя ''(не реализовано)''
|-
| StartSimulationId || 3 || запуск физического моделирования в предметной области
|-
| GetProcessStatusId || 4 || получение сведений о состоянии процесса моделирования
|-
| GetSimulationResultsId || 5 || получение результатов моделирования
|-
| StopSimulationId || 6 || досрочная остановка процесса моделирования ''(не реализовано)''
|-
| CloseSimulationId || 7 || закрытие моделирования и освобождение соответствующих ресурсов на сервере; если запущен процесс моделирования, то его остановка.
|}
|}

Версия 16:24, 16 декабря 2015

Это - описание требований к системе. По текущей реализации см. 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 закрытие моделирования и освобождение соответствующих ресурсов на сервере; если запущен процесс моделирования, то его остановка.