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

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

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

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

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

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

Чтобы создать экземпляр 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

Они version-independent MATLAB ProgIDs задают в настоящее время зарегистрированную версию MATLAB.

Чтобы создать экземпляр определенной зарегистрированной версии MATLAB, можно использовать ProgID version-dependent. Например, 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 для вашей среды.

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

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

Похожие темы