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

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

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

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

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

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

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

MATLAB ProgID для общих серверов:

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

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

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

Идентификаторы ProgID для выделенных серверов:

  • Matlab.Application.Single

  • Matlab.Autoserver.Single

Эти version-independent MATLAB ProgIDs определяют текущую зарегистрированную версию MATLAB.

Чтобы создать образец определенной зарегистрированной версии MATLAB, можно использовать version-dependent 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) файл, который запускается в отдельном процессе от клиентского приложения. Процессы клиента и сервера находятся в одной компьютерной системе. Это строение медленнее из-за накладных расходов, необходимых при передаче данных через контуры процесса.

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

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

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

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

Похожие темы