Автоматизация OLE

Автоматизация OLE – это протокол, посредством которого одно приложение может получить доступ к объекту, размещённому внутри, другого приложения или DLL. Доступ к этому объекту предоставляет возможность:

- управлять действиями приложения или DLL;

- получить доступ к свойствам приложения или DLL.

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

Автоматизация существенно увеличивает интеграцию программного обеспечения. Классический пример автоматизации – это пакет Microsoft Office, в котором можно управлять из одного приложения другими приложениями.

Построение серверов и клиентов автоматизации поддерживает в среде Delphi. Это означает, что можно использовать приложение Delphi для автоматизации другого приложения, или можно установить приложение так, чтобы оно быть было доступно для автоматизации другими приложениями.

Автоматизация – это идеология доступа к объектам приложения и манипуляция с ними извне. Автоматные объекты доступны только программно, т.е. программа-клиент даёт команды программе серверу, и та выполняет эти команды, предоставляя программе-клиенту результат. Команды могут писаться на любых языках или макроязыках. Автоматные объекты не видны конечному пользователю и используются обычно для автоматизации часто повторяемых задач.

Автоматные объекты не могут связываться или внедряться в ПП. Они временны, существуют только во время выполнения ПП и доступны только с помощью заранее запрограммированного дистанционного управления.

Автоматизация требует три вида информации:

1. Класс OLE-объекта (например, Word, Matlab и т.д.)

2. Документ OLE – файл с данными объекта.

3. Элемент OLE – часть документа, подлежащая связыванию или внедрению.

Существует два основных типа автоматизации:

- серверы автоматизации;

- клиенты автоматизации.

Сервер автоматизации – это приложение или DLL, которое владеет объектом. Клиент автоматизации –приложение или DLL, которое получает доступ к объекту. Одно приложение или DLL может выступать и в качестве сервера, и в качестве клиента. При этом автоматизация определяет два вида серверов автоматизации OLE:

- серверы внутренней обработки;

- локальные серверы.

Серверы внутренней обработки – это DLL, которые загружаются в адресное пространство прикладной программы. Причина для создания серверов внутренней обработки – совместное использование объекта, написанного на одном языке, и приложения, написанного на другом языке. Можно, к примеру, совместно использовать объекты Delphi, приложения С++ и Visual Basic.

Локальные серверы – это автономные исполняемые модули, которые содержат серверы автоматизации. Классический пример локального сервера – Word.

При отсутствии необходимости пересекать языковые барьеры DLL в использовании быстрее и проще.