Клиенты и серверы автоматизации

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

Через объекты автоматизации приложение-сервер открывает доступ другим программам к тем своим функциям, которые могут быть им полезны. Например, текстовый редактор может открывать другим программам доступ к проверке орфографии, служба связи — доступ к созданию и отправке сообщений. Это позволяет разработчикам ускорить процесс разработки своих приложений, благодаря использованию готовых функций сервера.

Объекты приложения-сервера образуют библиотеку объектов, которая может быть подключена к приложению-клиенту путем установки ссылки в проекте VBA (см. разд. "Установка ссылок на объектные библиотеки"гл. 13). Приложение-клиент использует объекты приложения-сервера путем доступа к их свойствам и методам. При этом он имеет все те возможности, которые есть у сервера автоматизации. Например, Microsoft Excel имеет модель объектов, которая включает такие объекты, как Workbook, Worksheet, Sell и др. К этим объектам можно обращаться из Microsoft Access, а также из других приложений, поддерживающих автоматизацию.

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

Внешние серверы взаимодействуют с приложением клиента, используя упрощенный механизм удаленного вызова процедур (Lightweight Remote Procedure Calls, или LRPC). В свою очередь, внутренние серверы (OLE DLL) используют вызовы обычных функций Windows. Благодаря этому, внутренние серверы быстрее реагируют на инструкции клиента, чем внешние. Внешний сервер можно' разместить на удаленном компьютере, а для взаимодействия с ним можно использовать DCOM. Такой внешний сервер называют удаленным объектом автоматизации (Remote Automation Object— RAО).

Замечание

Служебные серверы не входят в официальную классификацию серверов автоматизации. Этот термин используется для того, чтобы различать невидимые управляемые служебные объекты сервера, работающие в фоновом режиме, и управляемые объекты, обладающие видимым представлением в режиме выполнения или режиме Конструктора Microsoft Access. Чаще всего служебные серверы используются при создании приложений баз данных, располагающих служебный сервер автоматизации между входным каналом приложения клиента и выходным каналом приложения сервера для обработки запросов приложения сервера или отслеживания ошибок данных входного канала сервера. Такие серверы невидимы для пользователя.

Одним из преимуществ автоматизации является возможность работы с управляемыми полными серверами и мини-серверами без создания видимого экземпляра сервера автоматизации. Автоматизация запускает приложение самостоятельно, без внешнего вмешательства. Если серверу не указано активизировать окно, он невидим, и в списке задач его имя не содержится.