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

Типы сервера COM

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

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

  • Двойной — сервер, который реализует комбинацию Автоматизации и Пользовательских интерфейсов.

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

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

MATLAB ProgIDs для разделяемых серверов:

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

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

  • Matlab.Desktop.Application — Запускает полный настольный MATLAB как Сервер автоматизации с помощью новой версии MATLAB.

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

  • Matlab.Application.Single

  • Matlab.Autoserver.Single

Они независимый от версии MATLAB ProgIDs задают в настоящее время установленную и зарегистрированную версию MATLAB.

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

Совместно использованные и выделенные серверы

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

Запуск разделяемого сервера

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

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

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

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

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

Незавершенные и серверы из процесса

MATLAB поддерживает следующие настройки сервера.

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

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

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

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

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

Distributed Component Object Model (DCOM) является протоколом, который позволяет связям COM быть установленными по сети. Если вы используете версию операционной системы Windows®, которая поддерживает DCOM и контроллер, который поддерживает DCOM, то можно использовать контроллер, чтобы запустить сервер MATLAB на удаленной машине. DCOM должен быть сконфигурирован правильно, и MATLAB должен быть установлен на каждой машине, которая используется в качестве клиента или сервера. Даже при том, что клиентская машина не может запустить MATLAB в такой настройке, клиентская машина должна иметь установку MATLAB, потому что определенные компоненты MATLAB требуются, чтобы устанавливать удаленную связь. Консультируйтесь со своей документацией DCOM для того, как сконфигурировать DCOM для вашей среды.

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

Для получения дополнительной информации см. следующие статьи.