Подсистема управления: различия между версиями
(Новая страница: «''Это - описание требований к системе. По текущей реализации см. control.'' Подсистема управ…») |
(Точки входа в control.dll давно уже имеют другие имена) |
||
(не показано 28 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
''Это - описание требований к системе. По текущей реализации см. [[ | {{NavBar|{{Системная иерархия:Подсистема управления}}}} | ||
''Это - описание требований к системе. По текущей реализации см. [[Реализация подсистемы управления]].'' | |||
Подсистема управления - внутрипроцессный сервер, загружаемый в адресное пространство процесса веб-сервера. | Подсистема управления - внутрипроцессный сервер, загружаемый в адресное пространство процесса веб-сервера. | ||
Функции подсистемы управления: | Функции подсистемы управления: | ||
* Централизованная балансировка нагрузки между узлами одной предметной области. | * Централизованная балансировка нагрузки между узлами одной предметной области. | ||
* Реализация предметно-независимого описания геометрии среды, в которой моделируется поле. | * Реализация предметно-независимого описания геометрии среды, в которой моделируется поле. Такое описание дополняется специальными для предметной области параметрами, семантика которых имеет значение исключительно в соответствующей подсистеме предметной области. | ||
* Реализация политики безопасности, т.е. протоколов взаимодействия с [[Заглавная страница#Действующие лица и их роли|Моделирующими пользователями]] с одной стороны, и с [[Заглавная страница#Целевые пользователи | экземплярами подсистем предметной области]] с другой. | * Реализация политики безопасности, т.е. протоколов взаимодействия с [[Заглавная страница#Действующие лица и их роли|Моделирующими пользователями]] с одной стороны, и с [[Заглавная страница#Целевые пользователи | экземплярами подсистем предметной области]] с другой. | ||
Строка 10: | Строка 12: | ||
Поскольку принципиальным является требование к масштабируемости, должна предоставляться возможность сборки всей моделирующей подсистемы в одну программу, объединяющую управляющую подсистему, конфигурируемый набор моделирующих подсистем и клиента в один процесс. | Поскольку принципиальным является требование к масштабируемости, должна предоставляться возможность сборки всей моделирующей подсистемы в одну программу, объединяющую управляющую подсистему, конфигурируемый набор моделирующих подсистем и клиента в один процесс. | ||
==Интерфейс подсистемы управления, предоставляемый клиентам со стороны пользователя (напр., [[Веб-сервер|веб-серверу]])== | |||
[[File:Control iface.jpg|thumb|right|Схематичный интерфейс управляющей подсистемы, предоставляемый [[Веб-сервер|веб-серверу]]. Более подробно информация представлена в описании соответствующих запросов.]] | |||
===Функции=== | |||
''Все функции интерфейса экспортируются библиотекой управляющей подсистемы как С функции, т.е. имеют связывание в стиле C.'' | |||
{{function_list_begin}} | |||
{{function_list_add|ControlSystemEntryPoint|reference_name=ControlSystemEntryPoint|description=Основная точка входа, которая выполняет обработку запросов пользователя.}} | |||
{{function_list_add|ControlSystemFreeData|reference_name=ControlSystemFreeData|description=Функция освобождения памяти, выделенной внутрипроцессным сервером при генерации ответа на запрос функцией [[ControlSystemEntryPoint]].}} | |||
{{function_list_add|ControlSystemGetErrorDescription|reference_name=ControlSystemGetErrorDescription|description=функция получения описания ошибки по целочисленному коду, возвращенному другими интерфейсными функциями управляющей подсистемы.}} | |||
{{function_list_add|ControlSystemSetErrorLogFile|reference_name=ControlSystemSetErrorLogFile|description=Установка файла текстового журналирования ошибок, возникающих в границах управляющей подсистемы.}} | |||
{{function_list_end}} | |||
===Запросы=== | |||
Конкретный пользовательский запрос задается параметром <code>nFunctionId</code> функции [[ControlSystemEntryPoint]]. Возможные значения параметра следующие. | |||
{{Control_Message_Table}} | |||
Последовательность взаимодействия сторон [[Заглавная страница#Действующие лица и их роли|пользователя]], [[Веб-сервер|веб-сервера]] и [[Подсистема управления | подсистемы управления]], если пользователь создает модель среды, моделирует поле и получает результаты, в терминах запросов, следующая. | |||
[[Файл:Sequence-User-Web-Control.jpg|thumb|right|Диаграмма последовательностей при взаимодействии пользователя, веб-сервера и [[подсистема управления|подсистемы управления]].]] | |||
# [[Заглавная страница#Действующие лица и их роли|Моделирующий пользователь]] задает параметры среды моделирования - метрики и параметры предметной области - и передает их вместе с запросом на создание модели [[Веб-сервер|веб-серверу]]. | |||
# [[Веб-сервер]] формирует запрос CreateModelId и вызывает [[ControlSystemEntryPoint]] [[Подсистема управления|подсистемы управления]]. | |||
# [[Подсистема управления]] отвечает [[Веб-сервер|веб-серверу]] именем созданной модели, либо возвращает код ошибки. | |||
## Если функцией [[ControlSystemEntryPoint]] возвращен ненулевой код ошибки, [[веб-сервер]] отвечает сообщением об ошибке клиенту, затем сценарий прерывается. | |||
# [[Веб-сервер]] передает имя модели пользователю и освобождает буфер с именем вызовом функции [[ControlSystemFreeData]]. | |||
# В любом порядке пользователь создает наполнение пространства моделируемого поля: как минимум, по одному источнику и плоскости, а также геометрическую модель, составленную из полигональных объектов. Для каждого из создаваемых объектов выполняется следующее. | |||
## [[Заглавная страница#Действующие лица и их роли|Моделирующий пользователь]] обращается к [[веб-сервер|веб-серверу]] с запросом на создание объекта-элемента модели. Модель задается именем, которым [[подсистема управления]] ответила на запрос [[CreateModelId]]. Создаваемый объект параметризуется также данными, определенными классом объекта и предметной областью, для которой создается объект (см. [[CreateObjectId]]). | |||
## [[Веб-сервер]] формирует запрос [[CreateObjectId]] и вызывает функцию [[ControlSystemEntryPoint]]. | |||
## [[Подсистема управления]] отвечает [[Веб-сервер|веб-серверу]] именем созданного объекта, либо возвращает код ошибки. | |||
### Если при создании объекта функция [[ControlSystemEntryPoint]] возвращает ненулевой код ошибки, соответствующий объект не создается, а сообщение об ошибке (см. [[ControlSystemGetErrorDescription]]) передается [[Заглавная страница#Действующие лица и их роли|пользователю]]. При этом ни сценарий, ни цикл создания объектов не прерывается. | |||
## [[Веб-сервер]] передает имя созданного объекта пользователю и освобождает буфер с именем вызовом функции [[ControlSystemFreeData]]. | |||
# [[Заглавная страница#Действующие лица и их роли|Моделирующий пользователь]] обращается к [[веб-сервер|веб-серверу]] с запросом на запуск моделирования поля, параметризуя запрос именем модели пространства поля (возвращенным в результате запроса на создание модели) и именем (адресом) экземпляра подсистемы предметной области, который должен проводить моделирование. | |||
# [[Веб-сервер]] Формирует запрос [[StartSimulationId]] и вызывает функцию [[ControlSystemEntryPoint]]. | |||
# [[Подсистема управления]] отвечает [[Веб-сервер|веб-серверу]] именем процесса моделирования, либо возвращает код ошибки. | |||
## Если функций [[ControlSystemEntryPoint]] возвращен ненулевой код ошибки, процесс моделирования не создается. [[Веб-сервер]] отвечает [[Заглавная страница#Действующие лица и их роли|пользователю]] ошибкой. [[Заглавная страница#Действующие лица и их роли|Пользователь]] может изменять модель и заново отправлять запросы на запуск моделирования. | |||
# [[Веб-сервер]] передает имя созданного процесса [[Заглавная страница#Действующие лица и их роли|пользователю]]. | |||
# [[Заглавная страница#Действующие лица и их роли|Пользователь]] начинает цикл опроса состояния процесса моделирования. При этом на каждой итерации выполняется следующее. | |||
## [[Заглавная страница#Действующие лица и их роли|Пользователь]] запрашивает у [[веб-сервер|веб-сервера]] состояние процесса, идентифицируемого именем, возвращенным ответом на запрос на запуск моделирования. | |||
## [[Веб-сервер]] формирует запрос [[GetProcessStatusId]], с которым вызывает функцию [[ControlSystemEntryPoint]]. | |||
### Если функция возвращает ненулевой код ошибки, сообщение об этом делегируется [[Заглавная страница#Действующие лица и их роли|пользователю]]. Состояние подсистемы управления при этом не определено. | |||
### Если [[Заглавная страница#Действующие лица и их роли|пользователь]] указал неверный идентификатор процесса, функция [[ControlSystemEntryPoint]] завершится успешно (вернет нулевой код ошибки), однако ответом будет код <code>status_not_found</code>. В этом случае состояние [[подсистема управления|подсистемы управления]] стабильно, и она по-прежнему может принимать запросы. В этом случае [[веб-сервер]] должен освободить память ответа вызовом [[ControlSystemFreeData]]. | |||
## [[Веб-сервер]] делегирует ответ с состоянием процесса [[Заглавная страница#Действующие лица и их роли|пользователю]] и освобождает буфер ответа [[подсистема управления|подсистемы управления]] вызовом [[ControlSystemFreeData]]. Если процесс завершен, цикл прерывается. | |||
# [[Заглавная страница#Действующие лица и их роли|Пользователь]] запрашивает у [[веб-сервер|веб-сервера]] результаты системы моделирования. | |||
# [[Веб-сервер]] формирует запрос [[GetSimulationResultsId]] и вызывает функцию [[ControlSystemEntryPoint]]. | |||
# [[Подсистема управления]] формирует ответ с таблицей результатов (см. [[GetSimulationResultsId]]) и возвращает их, вместе с нулевым кодом ошибки, [[Веб-сервер|веб-серверу]]. | |||
## Если при создании объекта функция [[ControlSystemEntryPoint]] возвращает ненулевой код ошибки, сообщение об ошибке (см. [[ControlSystemGetErrorDescription]]) передается [[Заглавная страница#Действующие лица и их роли|пользователю]]. При этом сценарий не прерывается. | |||
# [[Веб-сервер]] Формирует ответ [[Заглавная страница#Действующие лица и их роли|пользователю]] в необходимом формате и отправляет его. | |||
# [[Заглавная страница#Действующие лица и их роли|Пользователь]] посылает запрос на закрытие процесса моделирования, параметризуя запрос именем процесса, полученным при запуске моделирования ([[StartSimulationId]]). | |||
# [[Веб-сервер]] формирует запрос [[CloseSimulationId]] и вызывает функцию [[ControlSystemEntryPoint]] с ним. | |||
## Если [[подсистема управления]] возвращает ненулевой код ошибки, сообщение об этом передается [[Заглавная страница#Действующие лица и их роли|пользователю]]. При этом фактического закрытия не происходит. | |||
# [[Веб-сервер]] информирует [[Заглавная страница#Действующие лица и их роли|пользователя]] об успешном закрытии процесса, при этом ответа управляющей системы нет (кроме кода ошибки), поэтому выходной буфер не должен освобождаться. | |||
# Сценарий останавливается. | |||
==Интерфейс подсистемы управления, предоставляемый [[Вычислительная подсистема|вычислительной подсистеме]]== | |||
Подсистема предметной области реализуется в одной из двух принципиальных конфигураций: | |||
; В виде внутрипроцессного сервера. | |||
: Под внутрипроцессным серверам понимается бинарная (native код) разделяемая библиотека (DLL, SO), загружаемая в адресное пространство процесса [[подсистема управления|подсистемы управления]] и предоставляющая C-функции в виде точек входа, а также набор [[программный интерфейс|программных интерфейсов]] подсистемы предметной области. [[File:top-modules-inprocess.jpg|500px|thumb|right|Модуль управляющей подсистемы, связанный с внутрипроцессной реализацией подсистемы предметной области.]] | |||
; В виде удаленного сервера. | |||
: Удаленный сервер, реализующий ведущий кластер подсистемы предметной области, реализует обработку запросов по каналу TCP/IP. [[File:top-modules-distrib.jpg|500px|thumb|right|Модуль управляющей подсистемы, связанный с реализацией подсистемы предметной области в виде удаленного сервера.]] Для некоторых языков программирования реализуются обработчики запросов по умолчанию, делегирующие вызовы серверному коду, предоставляемому [[Заглавная страница#Целевые пользователи|поставщиком предметной области]]. [[File:top-modules-wrapper.jpg|500px|thumb|right|Модуль управляющей подсистемы и удаленный сервер подсистемы предметной области, реализованной в виде враппера над плагином, реализующим моделирование в предметной области.]] [[File:top-modules-wrapper-cpp.jpg|500px|thumb|right|Модуль управляющей подсистемы и удаленный сервер подсистемы предметной области в виде заглушки, делегирующей запросы [[программный интерфейс|программным интерфейсам]] разделяемой библиотеки подсистемы предметной области.]] | |||
В зависимости от конфигурации подсистемы предметной области определяются два типа интерфейсов последней. | |||
Для реализации подсистемы предметной области в виде внутрипроцессного сервера, выполняемого в адресном пространстве [[подсистема управления|подсистемы управления]], определена точка входа - статическая функция [[GetDomainSystem]], которая должна предоставляться разделяемой библиотекой подсистемы предметной области и действовать как фабрика класса, реализующего интерфейс [[IDomainSystem]]. | |||
Для реализации [[подсистема предметной области|подсистемы предметной области]] в виде удаленного сервера базовым интерфейсом является набор запросов, передаваемых от подсистемы управления подсистеме предметной области через TCP/IP сокет. | |||
{{DomainRequests}} | |||
===Классы и их интерфейсы=== | |||
Классы объектов при взаимодействии [[подсистема управления|управляющей]] и [[подсистема предметной области|моделирующей]] подсистем. | |||
{{control_domain_interaction_class_list}} | |||
{{relation_diagram|diagram=Соотношения между интерфейсными сущностями|graph=control_subsystem_relations|content= | |||
{{ILoadBalancer_relations}} | |||
{{IControlSystem_relations}} | |||
{{IGeometryModel_relations}} | |||
{{IPlainObject_relations}} | |||
{{ISourceObject_relations}} | |||
{{IPolyObject_relations}} | |||
{{IObjectCollection_relations}} | |||
{{ISourceCollection_relations}} | |||
{{IPolyCollection_relations}} | |||
{{object_iterator_relations}} | |||
{{source_iterator_relations}} | |||
{{plain_iterator_relations}} | |||
{{poly_iterator_relations}} | |||
}} |
Текущая версия на 18:51, 4 июня 2019
Это - описание требований к системе. По текущей реализации см. Реализация подсистемы управления.
Подсистема управления - внутрипроцессный сервер, загружаемый в адресное пространство процесса веб-сервера. Функции подсистемы управления:
- Централизованная балансировка нагрузки между узлами одной предметной области.
- Реализация предметно-независимого описания геометрии среды, в которой моделируется поле. Такое описание дополняется специальными для предметной области параметрами, семантика которых имеет значение исключительно в соответствующей подсистеме предметной области.
- Реализация политики безопасности, т.е. протоколов взаимодействия с Моделирующими пользователями с одной стороны, и с экземплярами подсистем предметной области с другой.
Последний пункт имеет значение, если система моделирования распределена, т.е. если пользователь, поставщик предметно-независимых сервисов и поставщик подсистемы предметной области - возможно разные лица с собственными, возможно конфликтующими, интересами.
Поскольку принципиальным является требование к масштабируемости, должна предоставляться возможность сборки всей моделирующей подсистемы в одну программу, объединяющую управляющую подсистему, конфигурируемый набор моделирующих подсистем и клиента в один процесс.
Интерфейс подсистемы управления, предоставляемый клиентам со стороны пользователя (напр., веб-серверу)

Функции
Все функции интерфейса экспортируются библиотекой управляющей подсистемы как С функции, т.е. имеют связывание в стиле C.
ControlSystemEntryPoint | Основная точка входа, которая выполняет обработку запросов пользователя. |
ControlSystemFreeData | Функция освобождения памяти, выделенной внутрипроцессным сервером при генерации ответа на запрос функцией ControlSystemEntryPoint. |
ControlSystemGetErrorDescription | функция получения описания ошибки по целочисленному коду, возвращенному другими интерфейсными функциями управляющей подсистемы. |
ControlSystemSetErrorLogFile | Установка файла текстового журналирования ошибок, возникающих в границах управляющей подсистемы. |
Запросы
Конкретный пользовательский запрос задается параметром nFunctionId
функции ControlSystemEntryPoint. Возможные значения параметра следующие.
Символическое имя | Целочисленное значение | Действие |
---|---|---|
CreateModelId | 0 | создание новой модели |
CreateObjectId | 1 | создание нового элемента модели |
UploadModelId | 2 | загрузка модели со стороны пользователя. |
StartSimulationId | 3 | запуск физического моделирования в предметной области |
GetProcessStatusId | 4 | получение сведений о состоянии процесса моделирования |
GetSimulationResultsId | 5 | получение результатов моделирования |
StopSimulationId | 6 | досрочная остановка процесса моделирования (не реализовано) |
CloseSimulationId | 7 | закрытие моделирования и освобождение соответствующих ресурсов на сервере; если запущен процесс моделирования, то его остановка. |
Последовательность взаимодействия сторон пользователя, веб-сервера и подсистемы управления, если пользователь создает модель среды, моделирует поле и получает результаты, в терминах запросов, следующая.

- Моделирующий пользователь задает параметры среды моделирования - метрики и параметры предметной области - и передает их вместе с запросом на создание модели веб-серверу.
- Веб-сервер формирует запрос CreateModelId и вызывает ControlSystemEntryPoint подсистемы управления.
- Подсистема управления отвечает веб-серверу именем созданной модели, либо возвращает код ошибки.
- Если функцией ControlSystemEntryPoint возвращен ненулевой код ошибки, веб-сервер отвечает сообщением об ошибке клиенту, затем сценарий прерывается.
- Веб-сервер передает имя модели пользователю и освобождает буфер с именем вызовом функции ControlSystemFreeData.
- В любом порядке пользователь создает наполнение пространства моделируемого поля: как минимум, по одному источнику и плоскости, а также геометрическую модель, составленную из полигональных объектов. Для каждого из создаваемых объектов выполняется следующее.
- Моделирующий пользователь обращается к веб-серверу с запросом на создание объекта-элемента модели. Модель задается именем, которым подсистема управления ответила на запрос CreateModelId. Создаваемый объект параметризуется также данными, определенными классом объекта и предметной областью, для которой создается объект (см. CreateObjectId).
- Веб-сервер формирует запрос CreateObjectId и вызывает функцию ControlSystemEntryPoint.
- Подсистема управления отвечает веб-серверу именем созданного объекта, либо возвращает код ошибки.
- Если при создании объекта функция ControlSystemEntryPoint возвращает ненулевой код ошибки, соответствующий объект не создается, а сообщение об ошибке (см. ControlSystemGetErrorDescription) передается пользователю. При этом ни сценарий, ни цикл создания объектов не прерывается.
- Веб-сервер передает имя созданного объекта пользователю и освобождает буфер с именем вызовом функции ControlSystemFreeData.
- Моделирующий пользователь обращается к веб-серверу с запросом на запуск моделирования поля, параметризуя запрос именем модели пространства поля (возвращенным в результате запроса на создание модели) и именем (адресом) экземпляра подсистемы предметной области, который должен проводить моделирование.
- Веб-сервер Формирует запрос StartSimulationId и вызывает функцию ControlSystemEntryPoint.
- Подсистема управления отвечает веб-серверу именем процесса моделирования, либо возвращает код ошибки.
- Если функций ControlSystemEntryPoint возвращен ненулевой код ошибки, процесс моделирования не создается. Веб-сервер отвечает пользователю ошибкой. Пользователь может изменять модель и заново отправлять запросы на запуск моделирования.
- Веб-сервер передает имя созданного процесса пользователю.
- Пользователь начинает цикл опроса состояния процесса моделирования. При этом на каждой итерации выполняется следующее.
- Пользователь запрашивает у веб-сервера состояние процесса, идентифицируемого именем, возвращенным ответом на запрос на запуск моделирования.
- Веб-сервер формирует запрос GetProcessStatusId, с которым вызывает функцию ControlSystemEntryPoint.
- Если функция возвращает ненулевой код ошибки, сообщение об этом делегируется пользователю. Состояние подсистемы управления при этом не определено.
- Если пользователь указал неверный идентификатор процесса, функция ControlSystemEntryPoint завершится успешно (вернет нулевой код ошибки), однако ответом будет код
status_not_found
. В этом случае состояние подсистемы управления стабильно, и она по-прежнему может принимать запросы. В этом случае веб-сервер должен освободить память ответа вызовом ControlSystemFreeData.
- Веб-сервер делегирует ответ с состоянием процесса пользователю и освобождает буфер ответа подсистемы управления вызовом ControlSystemFreeData. Если процесс завершен, цикл прерывается.
- Пользователь запрашивает у веб-сервера результаты системы моделирования.
- Веб-сервер формирует запрос GetSimulationResultsId и вызывает функцию ControlSystemEntryPoint.
- Подсистема управления формирует ответ с таблицей результатов (см. GetSimulationResultsId) и возвращает их, вместе с нулевым кодом ошибки, веб-серверу.
- Если при создании объекта функция ControlSystemEntryPoint возвращает ненулевой код ошибки, сообщение об ошибке (см. ControlSystemGetErrorDescription) передается пользователю. При этом сценарий не прерывается.
- Веб-сервер Формирует ответ пользователю в необходимом формате и отправляет его.
- Пользователь посылает запрос на закрытие процесса моделирования, параметризуя запрос именем процесса, полученным при запуске моделирования (StartSimulationId).
- Веб-сервер формирует запрос CloseSimulationId и вызывает функцию ControlSystemEntryPoint с ним.
- Если подсистема управления возвращает ненулевой код ошибки, сообщение об этом передается пользователю. При этом фактического закрытия не происходит.
- Веб-сервер информирует пользователя об успешном закрытии процесса, при этом ответа управляющей системы нет (кроме кода ошибки), поэтому выходной буфер не должен освобождаться.
- Сценарий останавливается.
Интерфейс подсистемы управления, предоставляемый вычислительной подсистеме
Подсистема предметной области реализуется в одной из двух принципиальных конфигураций:
- В виде внутрипроцессного сервера.
- Под внутрипроцессным серверам понимается бинарная (native код) разделяемая библиотека (DLL, SO), загружаемая в адресное пространство процесса подсистемы управления и предоставляющая C-функции в виде точек входа, а также набор программных интерфейсов подсистемы предметной области.
- В виде удаленного сервера.
- Удаленный сервер, реализующий ведущий кластер подсистемы предметной области, реализует обработку запросов по каналу TCP/IP. Для некоторых языков программирования реализуются обработчики запросов по умолчанию, делегирующие вызовы серверному коду, предоставляемому поставщиком предметной области.Модуль управляющей подсистемы и удаленный сервер подсистемы предметной области в виде заглушки, делегирующей запросы программным интерфейсам разделяемой библиотеки подсистемы предметной области.
В зависимости от конфигурации подсистемы предметной области определяются два типа интерфейсов последней.
Для реализации подсистемы предметной области в виде внутрипроцессного сервера, выполняемого в адресном пространстве подсистемы управления, определена точка входа - статическая функция GetDomainSystem, которая должна предоставляться разделяемой библиотекой подсистемы предметной области и действовать как фабрика класса, реализующего интерфейс IDomainSystem.
Для реализации подсистемы предметной области в виде удаленного сервера базовым интерфейсом является набор запросов, передаваемых от подсистемы управления подсистеме предметной области через TCP/IP сокет.
Символическое имя | Целочисленное значение | Действие |
---|---|---|
DomainStartSimulation | 0 | запуск моделирования |
DomainGetProcessStatus | 1 | получение идентификатора состояния процесса моделирования |
DomainGetSimulationResultsSize | 2 | получение размера результатов моделирования |
DomainGetSimulationResults | 3 | получение результатов моделирования |
DomainCloseSimulation | 4 | закрытие процесса моделирования и освобождение соответствующих ресурсов в предметной области; если запущен процесс моделирования, то его остановка. |
Классы и их интерфейсы
Классы объектов при взаимодействии управляющей и моделирующей подсистем.
Интерфейсы, реализуемые подсистемой управления | |
---|---|
ILoadBalancer | Программный интерфейс, предоставляемый подсистемой управления для подсистемы предметной области. Предоставляет методы для регистрации задачи, которая должна быть выполнена как элемент параллельных вычислений, а также для регистрации свободного узла INode. |
IControlSystem | Базовый интерфейс подсистемы управления. |
IControlSystemDomainSide | Интерфейс, предоставляемый подсистеме предметной области, для установки соединения с подсистемой управления, а также для получения доступа к ее балансировщикам нагрузки. |
IGeometryModel | Интерфейс геометрической модели среды моделируемого физического поля. |
IObject | Базовый интерфейс для всех элементов геометрической модели. |
IPlainObject | Секущая плоскость вывода результатов моделирования. |
ISourceObject | Интерфейс объекта-источника моделируемого поля. |
IPolyObject | Интерфейс объекта-полигонального элемента геометрической модели. |
IObjectCollection | Программный интерфейс коллекции объектов, составляющих геометрическую модель. |
IPlainCollection | Программный интерфейс коллекции секущих плоскостей вывода результатов моделирования. |
ISourceCollection | Программный интерфейс коллекции источников моделируемого физического поля. |
IPolyCollection | Программный интерфейс коллекции полигональных элементов геометрической модели. |
const_object_iterator, object_iterator | Компонент, реализующий двунаправленный итератор, для перечисления всех элементов, составляющих геометрическую модель, т.е. принадлежащих соответствующей коллекции IObjectCollection. |
const_plain_iterator, plain_iterator | Компонент, реализующий двунаправленный итератор, для перечисления плоскостей вывода результатов моделирования, т.е. объектов, реализующих интерфейс IPlainObject и принадлежащих коллекции IPlainCollection соответствующей геометрической модели. |
const_source_iterator, source_iterator | Компонент, реализующий двунаправленный итератор, для перечисления источников моделируемого поля, т.е. объектов, реализующих интерфейс ISourceObject и принадлежащих коллекции ISourceCollection соответствующей геометрической модели. |
const_poly_iterator, poly_iterator | Компонент, реализующий двунаправленный итератор, для перечисления полигональных элементов геометрической модели, т.е. объектов, реализующих интерфейс IPolyObject и принадлежащих коллекции IPolyCollection модели. |
POINT3DEXT | Трехкомпонентный вектор-столбец для описания координат точки в пространстве или радиус-вектора. |
SIZE3DEXT | Трехкомпонентный вектор-столбец для описания трехмерного размера в виде разницы двух координат по соответствующим осям x, y и z. |
FACE3DEXT | Класс полигональной поверхности, композиция которых составляет элемент IPolyObject. |
Интерфейсы, реализуемые подсистемой предметной области. | |
IDomainSystem | Основной программный интерфейс экземпляра подсистемы предметной области. |
INode | Программный интерфейс, реализуемый узлом подсистемы предметной области и предоставляющий подсистеме управления методы для управления вычислительной нагрузкой, которая подается на узел. Физически может быть ассоциирован с вычислительным кластером (для реализации с локальным балансировщиком) либо с потоком на логическом ядре центрального процессора. |
