Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ПСЭД_ок.doc
Скачиваний:
29
Добавлен:
18.09.2019
Размер:
4.27 Mб
Скачать

4.3.2.4. ActiveX и автоматизация (Automation) в виде ole-automation

COM - это стандарты интерфейсов API и бинарные стандарты, которые служат основой для построения всех остальных технологий данного семейства.

С 1995 году аббревиатура OLE была общим термином, использовавшимся для описания целого набора технологий, основанных на архитектуре COM. Тогда термин "OLE" применялся только для тех технологий, которые непосредственно имели дело со связыванием и внедрением, а именно:

а) использование контейнеров и серверов;

б) активизация по месту вставки или внедрения;

в) технология "перетащить и опустить" (drag-and- drop);

г) слияние меню.

В 1996 году Microsoft начинает агрессивную маркетинговую кампанию по внедрению в язык разработчиков термина «ActiveX».

Последний становится всеобъемлющим и используется для описания технологий, отличных от OLE, но основанных на применении COM.

Технология ActiveX включает в себя автоматизацию (OLE-автоматизацией), элементы управления, документы, контейнеры, сценарии и некоторые технологии Internet. Поскольку началась неразбериха, вызванная стремлением использовать термин "ActiveX" для описания всего, так или иначе связанного с технологией OLE, корпорация Microsoft слегка "дала задний ход" и сейчас иногда называет все технологии, отличные от OLE, но основанные на модели компонентных объектов, просто и незатейливо - СОМ-ориентированные технологии (COM-based technologies).

В компьютерной индустрии критический взгляд на творчество этой корпорации получил свое выражение в следующей фразе: мы говорим "OLE" - подразумеваем "замедление работы и увеличение размера приложений". В результате для маркетинговых решений корпорации Microsoft потребовалась новая терминология, предназначенная для новых интерфейсов API, которые были положены в основу будущих операционных систем и технологий Internet.

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

Технология ActiveX прекрасно вписывается в традицию Delphi многократно использовать программный код, созданный ранее. Не нужно заново писать код для управления конкретным типом данных, если уже существует работоспособное приложение OLE-сервера. Какой бы сложной ни показалась технология OLE, она все же лучше других альтернативных решений.

Корпорация Microsoft инвестировала значительные средства в технологию ActiveX, и теперь разработчики операционных систем серии Windows вынуждены ближе знакомиться с технологией ActiveX, чтобы использовать все ее преимущества в своих приложениях.

Одним из аспектов ActiveX является автоматизация (automation). Обычно ее называют OLE-automation. Это средство позволяет приложениям (называемым контроллерами автоматизации - automation controller) управлять объектами, ассоциированными с другими приложениями или динамическими библиотеками (именуемыми сервером автоматизации - automation server).

Иными словами, приложение, предоставляющее свои программируемые объекты, называется сервером автоматизации. В роли таких серверов могут выступать программы пакета Microsoft Office: Microsoft Word, Microsoft Excel, Microsoft Access, Microsoft PowerPoint, Microsoft Outlook. В свою очередь приложение, получающее в свое распоряжение объекты автоматизации, именуют контроллером автоматизации.

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

В отличие от технологии COM-сервера, допускающего обращение к методам COM-объектов только через указатели на интерфейс, более «доброжелательная» технология автоматизации разрешает программисту вызывать методы по их именам. Благодаря этой особенности OLE-automation может использоваться даже в языках программирования, не умеющих работать с указателями.

Контроллер автоматизации способен распоряжаться объектами сервера независимо от языка, применяемого для разработки этих компонентов, поскольку для управления своими программируемыми объектами сервер автоматизации предоставляет контроллеру некий интерфейс, построенный на основе интерфейса IDispatch. По сути, объект автоматизации - это обычный COM- объект, в котором реализован этот интерфейс. Посредством интерфейса IDispatch программист получает доступ к макроязыку пакета Microsoft Office.

Синтаксис описываемых свойств и методов является чем-то вроде перевода программы с языка Basic for application на языкObject Pascal и никоим образом не претендует на академичность. Например, мы привыкли, что в Delphi перед названием класса ставится символ «Т» (TObject, TForm, TEdit). По аналогии с этим соглашением при описании свойств и методов перед названием объекта из состава Office будет ставиться префикс «I» (IApplication, ITable, IFont и т. д.). Это сделано для того, чтобы не путать объекты Microsoft Office с классами библиотеки VCL. Кроме того, символ «I» (Interface) будет напоминать о том, что мы работаем с интерфейсом объекта.

4.3.2.5. OLE DB и ADO

OLE DB - базовая упрощенная спецификация COM и интерфейс API для доступа к данным. Это интерфейс системного уровня, в котором для доступа к данным в БД используется модель компонентных объектов COM. При этом учитываются как реляционные форматы баз данных, так и нереляционные. Вполне возможно создание кода, способного взаимодействовать непосредственно с OLE DB, но в случае с ADO это сделать значительно сложнее и, чаще всего, излишне.

Большинство провайдеров OLE DB, предоставляющих доступ к данным специфического провайдера (например Paradox, Oracle, Microsoft SQL Server, Microsoft Jet Engine и ODBC), реализованы также на интерфейсах OLE DB.

ADO (ActiveX Data Objects - объекты данных ActiveX) - это интерфейс прикладного уровня, который используется разработчиками приложений для доступа к данным. В отличие от OLE DB, состоящего из более чем 60 различных интерфейсов, в ADO используются лишь несколько интерфейсов для взаимодействия с разработчиками. Фактически интерфейсы OLE DB также используются и в ADO в качестве базовой технологии доступа к данным.

Предшественницей OLE DB была технология ODBC (Open Database Connectivity - открытое соединение с базами данных) Она все еще часто используется разработчиками для доступа к реляционным и некоторым нереляционным базам данных. По сути, интерфейсы OLE DB использует средства ODBC.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]