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

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


==Интерфейс подсистемы управления, предоставляемый клиентам со стороны пользователя (напр., [[Веб-сервер|веб-серверу]])==
==Интерфейс подсистемы управления, предоставляемый клиентам со стороны пользователя (напр., [[Веб-сервер|веб-серверу]])==
[[File:Control iface.jpg|thumb|right|Схематичный интерфейс управляющей подсистемы, предоставляемый [[Веб-сервер|веб-серверу]]. Более подробно информация представлена в описании соответствующих запросов.]]


===Функции===
===Функции===

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