В то время как идеи, лежащие в основе COM-технологии, просты, терминология отсутствует. Вот несколько терминов, с которыми вы должны быть знакомы. Это не исчерпывающие определения. Для получения полного описания COM необходимо обратиться к внешним ресурсам.
COM-объект - это программный компонент, соответствующий объектной модели компонента. COM обеспечивает инкапсуляцию объекта, препятствуя прямому доступу к его данным и реализации. COM-объекты предоставляют интерфейсы, состоящие из свойств, методов и событий.
COM-клиент - это программа, использующая COM-объекты. COM-объекты, предоставляющие функциональные возможности для использования, называются COM-серверами. COM-серверы могут быть внутрипроцессными или внепроцессными. Примером внепроцессного сервера является программа электронных таблиц Microsoft ® Excel ®.
MATLAB ® может использоваться в качестве COM-клиента или сервера автоматизации COM.
Функциональность компонента определяется одним или несколькими интерфейсами. Для использования COM-компонента необходимо ознакомиться с его интерфейсами, а также методами, свойствами и событиями, реализуемыми компонентом. Эту информацию предоставляет поставщик компонентов.
Существует два стандартных COM-интерфейса:
IUnknown - интерфейс, необходимый для всех COM-компонентов. Все остальные COM-интерфейсы получены из IUnknown.
IDispatch - интерфейс, который предоставляет объекты, методы и свойства приложениям, поддерживающим автоматизацию.
COM-клиент - это программа, управляющая COM-объектами. Эти объекты могут выполняться в приложении MATLAB или могут быть частью другого приложения, которое предоставляет его объекты в качестве программного интерфейса для приложения.
Использование MATLAB в качестве COM-клиента обеспечивает два метода разработки программ в MATLAB:
В приложение MATLAB можно включить COM-компоненты (например, электронную таблицу).
Доступ к существующим приложениям, которые предоставляют объекты, можно получить с помощью средства автоматизации.
Клиенты MATLAB COM могут получать доступ к приложениям, поддерживающим автоматизацию, таким как программа электронных таблиц Excel. MATLAB создает сервер автоматизации, на котором выполняется приложение, и возвращает дескриптор основному интерфейсу созданного объекта.
Автоматизация обеспечивает инфраструктуру, благодаря которой приложения, называемые контроллерами автоматизации, могут получать доступ к общим объектам автоматизации, экспортируемым другими приложениями, называемыми серверами автоматизации, и управлять ими (т.е. задавать свойства или вызывать методы). Любая программа Windows ®, которая может быть настроена как контроллер автоматизации, может управлять MATLAB.
Например, используя язык программирования Microsoft Visual Basic ®, можно запустить сценарий MATLAB в презентации Microsoft PowerPoint ®. В этом случае PowerPoint является контроллером, а MATLAB - сервером.