Существует три типа серверов COM:
Автоматизация — сервер, который поддерживает стандарт Автоматизации OLE. Серверы автоматизации основаны на интерфейсе IDispatch
. Клиенты всех типов, включая сценарии клиентов, Серверов автоматизации доступа.
Пользовательский — сервер, который реализует интерфейс, непосредственно выведенный от IUnknown
. MATLAB® не поддерживает пользовательские интерфейсы.
Двойной — сервер, который реализует комбинацию Автоматизации и Пользовательских интерфейсов.
Сервер автоматизации MATLAB имеет два режима:
Совместно использованный — Одно или несколько клиентских приложений соединяются с тем же сервером MATLAB. Все клиенты совместно используют сервер.
Выделенный — Каждое клиентское приложение создает свой собственный специализированный сервер MATLAB.
При использовании matlab.application
в качестве своего ProgID, MATLAB создает разделяемый сервер. Для получения дополнительной информации смотрите Разделяемый или Выделенный сервер.
Чтобы создать экземпляр COM-объекта, вы используете его программируемый идентификатор или ProgID. ProgID является уникальной строкой, заданной поставщиком компонента, чтобы идентифицировать COM-объект. Вы получаете ProgID из своей документации поставщика.
MATLAB ProgIDs для разделяемых серверов:
MATLAB. Приложение
— Запускает Сервер автоматизации командного окна с версии MATLAB, который последний раз использовался в качестве Сервера автоматизации (не может быть последняя установленная версия MATLAB).
MATLAB. Автосервер
— Запускает Сервер автоматизации командного окна с помощью новой версии MATLAB.
MATLAB. Рабочий стол. Приложение
— Запускает полный настольный MATLAB как Сервер автоматизации с помощью новой версии MATLAB.
ProgIDs для выделенных серверов:
MATLAB. Приложение. Единственный
MATLAB. Автосервер. Единственный
Они независимый от версии MATLAB ProgIDs задают в настоящее время устанавливаемую и зарегистрированную версию MATLAB.
В порядке создать экземпляр определенной установленной и зарегистрированной версии MATLAB, можно использовать зависимый версией ProgID. Например, использование ProgID Matlab.Application.7.14
создает экземпляр версии 7.14 (R2012a) MATLAB.
Можно сконфигурировать сервер три пути. MATLAB поддерживает все эти настройки.
Внутрипроцессорный сервер является компонентом, реализованным как динамически подключаемая библиотека (DLL) или управление ActiveX®, которое запускается в том же процессе как клиентское приложение, совместно используя адресное пространство. Связь между клиент-сервером относительно быстра и проста.
Локальный сервер из процесса является компонентом, реализованным как исполняемый файл (EXE
) файл, который запускается в отдельном процессе из клиентского приложения. Процессы клиент-сервера находятся на той же компьютерной системе. Эта настройка происходит медленнее из-за издержек, требуемых при передаче данных через контуры процесса.
Это - тип сервера из процесса; однако, процессы клиент-сервера находятся в различных системах и связываются по сети. Сетевые коммуникации, в дополнение к издержкам, требуемым для передачи данных, могут сделать эту настройку медленнее, чем локальная настройка из процесса. Эта настройка запускается только в системах, которые поддерживают Объектную модель распределенных компонентов (DCOM).