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