Автоматизация 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 в использовании быстрее и проще.