Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции 2005 / P4 / Технология автоматизации.doc
Скачиваний:
44
Добавлен:
16.04.2013
Размер:
191.49 Кб
Скачать

Технология автоматизации - ole Automation.

Также как технология COM (DCOM), технология автоматизации позволяет использовать функции одних приложений в других приложениях.

Автоматизация–механизмобмена информацией между процессами в ОСWindows, с помощью которого одна прикладная программа может управлять другой прикладной программой.

Технология автоматизации обеспечивает выполнение базовых функций, позволяющих обособленным программным модулям связываться и обмениваться информацией. Многие используемые в технологии автоматизации термины во многом подобны тем, которые применяются при описании технологии COM. В частности используется такое понятие как interface.

Объект автоматизации(также называемыйавтоматный объектautomation object) не имеет принципиальных отличий от COM-объекта и представляет собой отдельный объект, разработанный для выполнения специфической задачи или функции.Отличие от COM-объектазаключается только в том, что доступ к объектам автоматизации осуществляется через специальные интерфейсы, называемыеинтерфейсами диспетчеризации. Базовым интерфейсом COM-объекта является интерфейс IUnKnown, а базовым интерфейсом объекта автоматизации IDispatch. Через интерфейсы диспетчеризации объект автоматизации взаимодействует с клиентами. Интерфейсы диспетчеризации похожи на обычные COM интерфейсы, но позволяют упростить обращение к объекту автоматизации.

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

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

Серверы автоматизацииподразделяются на:

  1. внутренние(in-process) - являются динамически подключаемыми библиотеками DLL, которые выполняются в адресном пространстве клиента автоматизации;

  2. внешние(out-process) - представляют собой самостоятельные приложения, которые выполняются в отдельных процессах по отношению к клиенту автоматизации.

Каждый из типов серверов имеет свои преимущества.

Внутренние сервера:

  • Главным достоинствомвнутренних серверов является высокая скорость обмена данными с клиентом, которая достигается за счет того, что динамически подключаемые библиотеки работают в одном процессе с клиентом.

  • Кроме того, внутренние сервера обычно более просты в отладке и тестировании, чем внешние сервера.

Внешние сервера:

  • С другой стороны внешние сервера более выгодны с точки зрения изоляции от ошибок, поскольку даже аварийное завершение работы клиента не приведет к сбою в работе сервера.

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

Библиотеки типов– в них содержится следующая информация:

  • описание интерфейсов и интерфейсов диспетчеризации;

  • описания классов объекта;

  • ссылки на описание типов в других библиотеках типов.

Для доступа к объектам автоматизации информация из библиотек типов не требуется. Однако наличие такой информации позволяет производить синтаксическую проверку кода, используемого для обращения к методам интерфейсов на этапе компиляции.

Использование технологии автоматизации позволяет расширить функциональные возможности одного приложения, которое является клиентом, за счет использования объектов другого приложения, которое является сервером. Одно из доп. преимуществ технологии автоматизации состоит в возможности работы с приложением, являющимся сервером автоматизации, без создания видимого экземпляра этого приложения.

Примерами сервера автоматизации являются приложения, входящие в пакет Microsoft Office, в которых технология автоматизации реализуется путем использования языкаVisualBasicforApplication(VBA). Приложения пакета MSOffice являются полными серверами автоматизации - это означает, что приложение может выполняться и как сервер автоматизации, и как обычное приложение. При работе в качестве сервера автоматизации приложение предоставляет специальные объекты, методы и свойства, позволяющие управлять этим сервером из любого другого приложения. Благодаря технологии автоматизации передать любые данные из ИС в приложение пакета MSOffice или наоборот оказывается довольно несложно. Эта возможность может быть использована в тех случаях, когда документация предприятия ведется средствами пакета MSOffice, а данные должны извлекаться из базы данных. В таких случаях ИС, как клиент или контроллер автоматизации, может передавать данные, выбранные из БД в приложения пакета MSOffice возможно и наоборот: автоматически извлекать данные из текстовых документов и записывать их в БД.

Главные причины ограничений использования пакета MSOffice:

  1. Пакет MSOffice хорошо взаимодействует далеко не со всеми БД. Хорошо поддерживаются лишь ряд форматов таблиц для локальных БД: DBase, FoxPro, Paradox и взаимодействие с SQL сервером MS SQL-Server. Для связи с другими БД приходится использовать средство ODBC (OpenDataBaseConnectivity- открытая связь баз данных), которые оказываются очень медленными;

  2. Пакет MSOffice занимает довольно много дискового пространства и требователен к ресурсам компьютера, особенно к объему оперативной памяти;

  3. Приложения пакета MSOffice не отличаются надежностью. В частности при работе с ними может произойти зависание;

  4. Пакет MSOffice может работать только на платформе Windows.

При использовании других средств для разработки ИС большинство этих недостатков (ограничений) можно преодолеть.

Например, если взять систему Delphi (C++Builder), то:

  1. в ней имеется поддержка работы со многими распространенными форматами БД через драйверы BDE (BorlandDatabaseEngine), что гораздо быстрее, чем ODBC;

  2. имеется большое кол-во библиотек компонентов для доступа к различным БД напрямую без BDE (отметим, что в C++Builderбиблиотек несколько больше);

  3. программы, разработанные с помощью Delphi, занимают сравнительно мало места на диске и не требовательны к ресурсам компьютера;

  4. при разработке собственной программы всегда имеется возможность исправления ошибок и повышение надежности ИС;

  5. для платформы Linux имеется аналогичная Delphi (Builder) система, которая называетсяKylix. Причем обеспечивается совместимость Delphi иKylexна уровне исходных кодов программ. Но в Delphi используется библиотека компонентов VCL, а для совместимости между этими системами нужно использовать библиотеку OCL.

Т.о. во многих случаях имеет смысл разрабатывать собственные клиентские приложения для ИС, даже если оформление документации ведется с использованием пакета MSOffice.

Обмен данными с приложениями пакета MSOffice может выполняться по технологии автоматизации с использованием одного из двух методов:

  1. раннего связывания – связь устанавливается уже при компиляции программы;

  2. позднего связывания – связь устанавливается только при выполнении программы.

В первом случае, ошибки выявляются на этапе компиляции программы, но эта связь не гибкая – её нельзя перенаправить, а компилятору нужна полная информация об автоматном объекте. Во втором случае, связь устанавливается только при выполнении программы – такую связь можно программно перенаправлять, а при компиляции программы компилятору не нужнаинформация об автоматном объекте. Таким образом, в момент компиляции, автоматизируемое приложение может не существовать или быть недоступно.