exponenta event banner

Интерфейс сервера автоматизации MATLAB COM

Типы COM-серверов

  • Автоматизация - сервер, поддерживающий стандарт автоматизации OLE. Серверы автоматизации основаны на IDispatch интерфейс. Клиенты всех типов, включая клиенты сценариев, получают доступ к серверам автоматизации.

  • Custom - сервер, реализующий интерфейс, непосредственно производный от IUnknown. MATLAB ® не поддерживает пользовательские интерфейсы.

  • Dual - сервер, реализующий комбинацию интерфейсов автоматизации и пользовательских интерфейсов.

Программные идентификаторы

Чтобы создать экземпляр COM-объекта, используйте его программный идентификатор или ProgID. ProgID - это уникальная строка, определенная поставщиком компонента для идентификации COM-объекта. Идентификатор ProgID можно получить из документации поставщика.

Для общих серверов используются следующие ProgID MATLAB:

  • Matlab.Application - Запуск сервера автоматизации в командном окне с версией MATLAB, которая была недавно использована в качестве сервера автоматизации (которая может не быть последней установленной версией MATLAB)

  • Matlab.Autoserver - Запуск сервера автоматизации командного окна с использованием последней версии MATLAB

  • Matlab.Desktop.Application - Запуск полного рабочего стола MATLAB в качестве сервера автоматизации с использованием последней версии MATLAB

ProgID для выделенных серверов:

  • Matlab.Application.Single

  • Matlab.Autoserver.Single

Эти независимые от версии ProgID MATLAB определяют текущую зарегистрированную версию MATLAB.

Для создания экземпляра определенной зарегистрированной версии MATLAB можно использовать зависящий от версии ProgID. Например, Matlab.Application.7.14 создает экземпляр MATLAB версии 7.14 (R2012a).

Общие и выделенные серверы

Сервер MATLAB Automation можно запустить в одном из двух режимов - общий или выделенный. Выделенный сервер предназначен для одного клиента; общий сервер используется несколькими клиентами. Режим определяется программным идентификатором (ProgID), используемым клиентом для запуска MATLAB. Если вы используете matlab.application в качестве ProgID, затем MATLAB создает общий сервер.

Запуск общего сервера

ProgID, matlab.application, определяет режим по умолчанию, который является общим. Можно также использовать специфичный для версии ProgID, matlab.application.N.M, где N является основной версией и M является младшей версией MATLAB. Например, использовать N = 7 и M = 4 для MATLAB версии 7.4.

После запуска MATLAB в качестве общего сервера все клиенты, которые запрашивают подключение к MATLAB с помощью ProgID общего сервера, подключаются к уже работающему экземпляру MATLAB. Другими словами, никогда не выполняется более одного экземпляра общего сервера, так как он является общим для всех клиентов, использующих общий сервер ProgID.

Запуск выделенного сервера

Чтобы указать выделенный сервер, используйте ProgID, matlab.application.single, (или идентификатор ProgID для конкретной версии, matlab.application.single.N.M).

Каждый клиент, который запрашивает соединение с MATLAB с использованием выделенного ProgID, создает отдельный экземпляр MATLAB; он также запрашивает, чтобы сервер не был общим для любого другого клиента. Следовательно, может быть несколько экземпляров выделенного сервера, работающего одновременно, поскольку выделенный сервер не является общим для нескольких клиентов.

Внутрипроцессные и внепроцессные серверы

MATLAB поддерживает эти конфигурации сервера.

Внутрипроцессный сервер

Внутрипроцессный сервер - это компонент, реализованный в виде библиотеки динамических ссылок (DLL), которая выполняется в том же процессе, что и клиентское приложение, с общим адресным пространством. Связь между клиентом и сервером относительно быстрая и простая.

Локальный внепроцессный сервер

Локальный внепроцессный сервер - это компонент, реализованный как исполняемый файл (EXE) файл, который выполняется в отдельном процессе от клиентского приложения. Процессы клиента и сервера находятся в одной компьютерной системе. Эта конфигурация выполняется медленнее из-за накладных расходов, необходимых при передаче данных через границы процесса.

Удаленный внепроцессный сервер

Распределенная компонентная объектная модель (DCOM) - это протокол, позволяющий устанавливать COM-соединения по сети. Если используется версия операционной системы Windows ®, поддерживающая DCOM, и контроллер, поддерживающий DCOM, то контроллер можно использовать для запуска сервера MATLAB на удаленном компьютере. DCOM должен быть правильно настроен, а MATLAB должен быть установлен на каждом компьютере, используемом в качестве клиента или сервера. Даже если клиентская машина может не выполнять MATLAB в такой конфигурации, клиентская машина должна иметь установку MATLAB, поскольку для установления удаленного соединения требуются определенные компоненты MATLAB. Сведения о настройке DCOM для среды см. в документации DCOM.

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

Дополнительные сведения см. в следующих статьях.

Связанные темы