Вход

OLE и DDE и их использование в Office

Курсовая работа* по компьютерным сетям
Дата добавления: 10 августа 2004
Язык курсовой: Русский
Word, rtf, 882 кб (архив zip, 88 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы



Введение 2

Часть 1. Буфер обмена 4

Часть 2. Непосредственный обмен данными 8

Глава 2.1. Экспорт-Импорт данных. 8

Глава 2.3. Динамический обмен данными (DDE). 9

Часть 3. OLE 13

Глава 3.1. Объектно-ориентированная технология 13

Глава 3.2. Модель компонентного объекта (COM) 17

Глава 3.3. Архитектура OLE 19

Глава 3.4. Типы и библиотеки типов 24

Часть 4. Использование OLE в Office 31

Глава 4.1. Связывание 32

Глава 4.2. Внедрение 34

Заключение 35

Литература 36



Введение


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

Каждый документ имеет формат, который определяется приложением (программой), создавшим этот документ. Расширение файла соответствует определенному формату. Документы созданные одним приложением почти всегда имеют один формат. Например, Word *.doc Excel *.xls PowerPoint *.ppt и т.д.

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

Итак, можно сказать, что пользователи персонального компьютера имеют дело с различными данными, хранящимися в документах всевозможных форматов. Конечно эта схема не совсем подходит к реальной обстановке вещей, так как в жизни обычно человек работает не с одним типом данных а с множеством. Например, социолог, составляя отчет о проделанной работе, вынужден использовать несколько типов данных: текст, числа, рисунки, диаграммы, презентации и т.д. Поэтому возникла следующая проблема – Как в одном документе соединить данные различных типов? Без применения специальных компьютерных технологий этот вопрос остается не разрешимым.

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

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

В основной части работы рассмотрены три основных метода обмена данными между документами, а в последней части показано как действует технология OLE в популярном пакете Microsoft Office.



Часть 1. Буфер обмена

Во время своей работы операционная система (OC) Windows выделяет специальную область памяти — буфер обмена (Clipboard), который используется для обмена данными между приложениями и документами. Роль данных могут играть фрагмент текста или весь текст, рисунок, таблица и т. п. Буфер обмена — это простейшее, но очень эффективное средство интеграции при­ложений. В ОС Windows через буфер обмена можно пере­мещать папки с файлами и отдельные файлы.

Принцип работы с буфером обмена. С помощью инструмен­тальных средств конкретного приложения можно выде­лить определенный фрагмент обрабатываемого документа (т. е. участок текста, изображение, таблицу) и поместить его на хранение (записать) в буфер обмена. Записанный в буфере фрагмент можно вставить либо в другое место того же доку­мента, либо в другой документ того же приложения, либо в документ другого приложения. Например, можно пере­местить картинку (или фрагмент картинки), нарисованную вами в графическом редакторе, в любое место документа Word или Excel.

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

Работа с буфером обмена. Во всех приложениях Windows, до­пускающих использование буфера обмена, схема работы с ним стандартизована. Для обмена предусмотрены команды пункта меню Правка:

  • Вырезать — переместить выделенный фрагмент в буфер обмена (и удалить его в исходном документе);

  • Копировать – скопировать выделенный фрагмент в буфер обмена (исходный документ не меняется);

  • Вставить – вставить содержимое буфера обмена в теку­щий документ приложения (содержимое буфера не изме­няется).

Многие приложения дублируют эти команды в кнопках па­нели инструментов (а также в контекстном меню), и возможно перемещение, копирование или вставка фрагмента про­стым щелчком мыши на соответствующей кнопке. Вместо команд работы с буфером обмена можно использовать сочетания клавиш:

  • Вырезать — Shift+Del;

  • Копировать — Ctrl+Ins;

  • Вставить — Shift+Ins.

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

Кратко рассмотрим операции: Вырезать, Копировать и Вставить.

1. Документ ? буфер обмена. Перед выполнением команд - Вырезать или Копировать необходимо выделить фраг­мент, помещаемый в буфер обмена. Если фрагмент не вы­делен, эти команды недоступны. Способы выделения фрагмента определяются соглашениями конкретной про­граммы, однако существуют и универсальные приемы. Следует отметить, что в команде Вырезать совмещены две стандартных операции: удале­ние выделенного фрагмента и заполнение буфера обмена. Поэто­му эта команда более «опасна», чем команда Копиро­вать.

2. Буфер обмена ? документ. Если буфер обмена пуст (то есть с момента старта Windows команды Вырезать или Копиро­вать не выполнялась или буфер очищен специальной командой), операция Вставить недоступна.

Существует еще много способов заполнения буфера обмена, например, в ОС Windows есть следующая интересная возможность. Если, работая в операционной системе, нажать клавишу Print-Screen, графический образ всего экрана в виде растровой картинки будет скопирован в буфер обмена. Затем мо­жно вставить эту картинку в документ какого-либо редактора (например, Word), отредактиро­вать, если необходимо, и записать в файл. Если нажать клавиши Alt+PrintScreen, в буфер обмена ко­пируется только активное окно.

Куда вставляется фрагмент по команде Вставить? Точка вставки определяется соглашениями конкретной программы и характером информации, помещенной в буфер обмена. Например, редактор презентаций PowerPoint вставляет графи­ческий фрагмент в центр слайда, давая тем самым возможность вручную переместить новый элемент изображения в нужное место. Однако текстовый фрагмент практически всегда вставляется в позицию текстового курсо­ра. Процессор Word любой фрагмент вставляет в позицию текстового курсора.

Окно буфера обмена. Для работы с буфером обмена Windows предлагает специальную программу — Просмотр буфера обмена, которую можно вызвать из Главного меню ? Программы ? Стандартные (в Windows 2000 Окно буфера обмена переименовано в Папку обмена, которая вызывается командой clipbrd). Во-первых, окно этой программы — это настоящее «зеркало» буфера обмена, отображающее теку­щее содержимое Clipboard. Во-вторых, это приложение позволяет записать содержимое буфера обмена на постоянное хранение в файл специального формата (с расширением .CLP) и прочитать такой файл в буфер. Это нужно для обмена файлами разных форматов так как всякая версия ОС Windows может прочитать любые файлы с расширением .CLP

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

Расширение функций буфера обмена. Приложения Windows устроены таким образом, что буфер обмена часто оказывается полезным даже тогда, когда никаких команд работы с буфе­ром не предусмотрено. Дело в том, что механизмы выделе­ния, копирования, вставки фрагментов документа (особенно текстовых) чаще всего встроены в приложение, и клавиатур­ные сочетания Ctrl+Ins и Shift+Ins работают всегда, не­зависимо от функций приложения.

Тем самым гибкость такой системы при обмене информацией между базой данных системы и внешними носителями информации значительно расширяется. Например, в системе может отсутствовать функция вставки готового текстового файла в базу данных (файл ? база данных), однако пользова­телю не придется заново набирать такой файл. Достаточно открыть его (например, в приложении Word), скопиро­вать в буфер обмена, а затем вставить данный фрагмент в нужное окно системы.



Часть 2. Непосредственный обмен данными

Средства непосредственного обмена данными между прило­жениями Windows можно разделить на три категории:

  • конвертирование (преобразование) файлов,

  • импорт и экс­порт данных,

  • динамический обмен данными (DDE — Dy­namic Data Exchange).

Глава 2.1. Экспорт-Импорт данных.

Конвертированием обычно называют изменение формата файла-документа или его части. При конвертировании файл-документ определенного типа, подготовленный средствами некоего приложения (возможно, в другой операционной системе) преобразуется приложением Windows в файл-документ того же (или при­мерно того же) типа. Операция конвертирования достаточно сложна и не удобна для рядового пользователя. К тому же результаты не всегда получаются ожидаемыми, так как любое преобразование, в том числе и формата, влечет за собой потери.

Многие специалисты считают конвертирование частным слу­чаем более общей операции – импорта-экспорта данных. В этом действии данные одного файла-документа по определен­ным соглашениям пересылаются в другой файл-документ. При этом оба файла могут иметь одинаковый тип, но разный формат (например, обмен между файлами баз данных), а могут принадлежать к разным классам документов (напри­мер, обмен между текстовыми файлами и базами данных).

Примерами импорта-экспорта являются: Файл .DBF (dBASE) ? Рабочий лист Excel (.XLS), База данных Access (.MDB) ? Документ Word.

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



Глава 2.3. Динамический обмен данными (DDE).

DDE – это разработанный Microsoft набор специальных соглашений (протокол) об об­мене данными между приложениями Windows.

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

Попытаемся пояснить суть этого метода связывания на простом при­мере. Допустим, требуется составить документ, содержащий сведения о различных программных и аппаратных продуктах (как минимум, краткое описание и цена). Очевидно, что подготовить данный документ необходимо с помощью текстового редактора, например Word. Представим, что подлежащие внесению в документ сведения о продук­тах и их ценах уже существуют в базе данных, которая управляется некоторым Windows-приложением, например Access. Для ускорения процесса подготовки документа разумно по уже известной методике передать необходимые сведения из базы данных в буфер обмена (Clipboard). Однако вполне возможно, что через некоторое время цены изменятся. При старой методике (через буфер) это приведет к необ­ходимости подготовить документ заново.

Использование DDE-метода позволяет избежать этого, так как обеспечивает динамический обмен данными и обновление их в подготавливае­мом документе по мере их изменения в источнике. При таких условиях «выходной» документ всегда будет «первой свежести».

Каким же образом происходит актуализация (динамическое обнов­ление данных в выходном документе)? Разберемся сначала с происхож­дением обновляемых данных. Они находятся в документе-источнике и хранятся там приложением-источником. Сохранение документа источника и лежит в основе функционирования DDE-метода. Из сохраненного документа-источника требуемые сведения копируются через Clipboard в выходной документ. Процедура этого копирования нам знакома.

Особенность состоит в том, что DDE-метод устанавливает между источником и копиями некоторую связь. И связь эта обеспечивает авто­матическое (или по требованию) обновление копии по мере появления изменений в источнике.

Многие Windows-приложения поддерживают методику DDE как для создания источников связывания, так и для восприятия динамически обновляемых данных. Но при практическом применении DDE-метода следует учитывать ряд требований. Первое и наиболее важное состоит в том, что приложения, подлежащие связыванию, должны поддерживать DDE-метод. Важным является также определение, в каком качестве данное приложение будет существовать в DDE: в качестве источника или приемника. Не все приложения можно использовать в обоих качествах.

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

Рассмотрим способ актуализации без открытия окна. Допустим, что у нас существуют два документа (Источник и Приемник) Word и между ними существует связь посредством DDE. Предположим, что мы открыли документ Источник и изменили его, затем закрыли окно текстового редактора. Поскольку мы закрыли окно Word, то внесенное изменение осталось теперь только в файле источника на диске. Далее опять запустим Word и загрузим в него оставшийся неизменным файл документа Приемника. Хотя во время внесения изменений в текст, окно приемника было закрыто, целевой Word-документ предстает в актуализированном виде. Это произошло потому, что связь в DDE методе осуществляется не через окна, а через файлы.

Если файл-источник поврежден или перемещен, то связь нарушается и для её восстановления необходимо заново создавать все ссылки.

Сейчас DDE вытеснено более новой технологией OLE, которая широко используется в Windows приложениях (об OLE речь пойдет в следующей главе). Однако все же в ряде случаев DDE применяется. На сегодняшний день в DDE можно выделить два уровня:

  1. В некоторых приложениях Windows избранные опера­ции DDE встроены в интерфейс программы. Например, в процессоре Word имеется возможность решить следую­щую задачу. Пусть имеется документ Word, и в этом до­кументе содержится текст «серийного» письма, которое необходимо разослать по нескольким адресам. В этом письме имеются переменные поля с фами­лией адресата и его адресом. Фамилии и адреса содержат­ся в базе данных MS Access. Надо изготовить несколько экземпляров одного и того же письма, каждый из кото­рых будет отличаться от другого фамилией и адресом. Эту операцию можно выполнить с помощью команды Сервис-Слияние... (Tools-Mail Merge...).

  2. Второй уровень DDE требует знания некоторых про­граммных средств и может быть использован квалифици­рованными пользователями или программистами. Суть этого уровня проиллюстрируем примером. Допустим, программист разработал информационную систе­му, в которой предусмотрено автоматизированное составле­ние расписания каких-то мероприятий (например, встреч, конференций, семинаров и т. п.). Это расписание надо краси­во напечатать (с указанием дат, дней недели, колонтитулов и т. п.). Лучше всего справится с этой задачей процессор Word. Поэтому программист заготовил в процессоре Word некий шаблон расписания и снабдил его закладками.

Итак, можно сказать, что с появлением метода DDE возник качественный скачек в продвижении технологии связывания и совместного использования документов. Но все же остались некоторые недочеты, которые в своем большинстве были исправлены схемой OLE.



Часть 3. OLE

Глава 3.1. Объектно-ориентированная технология

В данной главе кратко описывается объектно-ориентированная (ОО) тех­нология, которая используется в современных средствах разработки программного обеспечения и составляет ядро метода OLE.

Зачем нужна ОО технология? Стремительный прогресс аппаратных технологий дал рядовому потребите­лю огромную вычислительную мощь. Приобретая новое программное обеспече­ние, люди желают получить новые свойства и более сложные функции; они хотят воспользоваться преимуществами тех вычислительных средств, которыми располагают. Стремясь соответствовать этим запросам объем многих прикладных программ вырос до нескольких сотен мегабайт. Это привело к появлению чрезмерно сложных и громоздких систем, которые обычно:

  • выходят с опозданием;

  • имеют непомерно высокие цены;

  • используются эффективно лишь в небольшой своей части;

  • плохо адаптируются к требованиям пользователя;

  • нуждаются в устранении выявленных ошибок и доработки;

  • требуют определенного опыта для своей инсталляции.

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

Что такое ОО технология? Объектно-ориентированная технология – это термин, за которым скрывается ряд новых методологий анализа, проектирования и программи­рования. При использовании ОО технологии анализ, проектирование и разработка системы проводятся с помощью объектов. Под объектом пони­мается "разумный", самодостаточный агент, отвечающий за выполнение определенных системных задач.

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

Алгоритмическая декомпозиция — это способ решения проблемы с функциональ­ной точки зрения. При алгоритмической декомпозиции все внимание сосредо­точено на том, какие преобразования необходимо выполнить над данными без учета их семантической связи.

Можно подойти к решению проблемы по-другому. Прежде чем изучать функциональные взаимосвязи или интересоваться, что происходит с набо­ром данных, необходимо выявить логически обособленные сущности в предметной области, определить их свойства, взаимосвязи и отношение к решаемой проблеме. Лишь разобравшись в сути проблемы, можно модели­ровать систему при помощи программного обеспечения. Такой способ анализа называется объектно-ориентированной декомпозицией.

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

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

Что такое объекты? Объект в ОО технологиях определяется следующим образом:

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

Объекты являются автономными программными модулями, которым присуши некоторое состояние на данный момент и определенное поведение. Состояние объекта — это его внутренние, то есть закрытые, данные и скрытые детали его реализации. Общедоступный интерфейс формирует поведение объ­екта. Он определяет, что объект может делать. Интерфейс реализован как набор функций, называемых методами. На схеме 3.1 в общем виде изобра­жены два объекта — А и В. У каждого есть некоторые закрытые данные и общедоступный интерфейс. В этом примере объект А вызывает метод интер­фейса объекта В. В общем случае объекты обмениваются сообщениями, вызы­вая методы друг друга.

Закрытые данныеЗакрытые данныеВзаимодействиеОбъект АОбъект ВСхема 3.1

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

Для современных информационных технологий понятие объекта является основополагающим. В следующей главе для более глубокого понимания OLE рассмотрим модель компонентного объекта.



Глава 3.2. Модель компонентного объекта (COM)

Модель компонентного объекта (Component Object Model — COM) — это вклад компании Microsoft в мир объектных моделей. Она служит основой для OLE, поэтому понимание ее чрезвычайно важно.

Что такое СОМ. СОМ представляет собой стандартную объектную модель промышленно­го уровня, которая унифицирует системы объектов. Эта модель специфици­рует следующее:

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

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

  • Протоколы взаимодействия между объектами. Правила, по которым объекты взаимодействуют друг с другом и прояв­ляют свои функции.

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

Модель "клиент-сервер". СОМ поддерживает простую модель "клиент-сервер". Объекты, называе­мые серверами, предоставляют некие функции в распоряжение объектов, называемых клиентами. Серверы всегда являются СОМ-объектами, то есть объектами, которые подчиняются спецификации СОМ. С другой стороны, клиенты могут быть СОМ-объектами или не быть таковыми. Это значит, что некоторые объекты могут быть простыми объектами C+ + , приложениями Visual Basic и т.п. На следующем рисунке представлена не сложная модель "клиент-сервер".

СервисыOLE сервер АVBAOLE сервер ХOLE сервер АОбъект С++СерверыКлиенты

Схема 3.2


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

СОМ-серверы могут одновременно иметь несколько интерфейсов (как правило, так и бывает). Каждый интерфейс предоставляет набор функ­ций, отличный от других.

Глава 3.3. Архитектура OLE


Архитектура OLE (object linking and embeding) основана на модели компонентного объекта (СОМ). Сама OLE является унифицирующей технологией системного уровня, которая бази­руется на объектах и реализует интеграцию приложений. Она предоставляет клиентам набор объектно-ориентированных услуг. Можно сказать, что, с практической точки зрения, OLE — это набор системных библиотек (DLL-фай­лов), которые дают возможность прикладным программам взаимодействовать друг с другом. OLE является внутренней неотъемлемой частью операционной системы Windows, а не подсисте­мой. Например, в папке SYSTEM или SYSTEM32 на сетевом диске компьютера можно найти дюжину или даже больше файлов OLExxx.DLL. Это — составляет ядро OLE.

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

OLE состоит из нескольких различных технологий, которые пользуются услугами друг друга для формирования объектно-ориентированной системы. Каждая технология реализует определенный набор функций. Однако реальная сила OLE заключается именно во взаимодействии составляющих ее технологий. OLE-технология структурированного хранения, к примеру, позволяет приложениям реализовать постоянство объектов. При этом поль­зователь не знает, как библиотеки OLE реализуют детали этой технологии, например, каким образом и где именно данные объекта должны быть записаны или считаны с диска. Большое преимущество OLE состоит в том, что ее можно расширить и настроить по своему желанию. Можно легко переопределить встроенные функции (путем реализации соответствующих стандартных СОМ-интерфейсов) и расширить набор доступных функции, создав собственные пользовательские интерфейсы.

Библиотеки OLE — это системные утилиты, посредством которых приложе­ния могут взаимодействовать друг с другом, получать совместный доступ к данным, а также вызывать функции друг друга

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

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

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

Компоненты взаимодействуют друг с другом посредством четко определенных интерфейсов.

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

Модель компонентного объекта (СОМ)Структурированное хранениеИнформация о типахПостоянные объектыУнифицированная передача данных Имена и привязкаСоединяемые объектыDrug-and-DropOLE автоматизацияЭлементы управления OLEСтраницы свойствСобытияСообщения об изменении свойствНепосредственная активизацияСвязываниеВстраиваниеСоставной документСхема 3.3

На данной схеме представлены OLE-технологии, которые тесно взаимосвязаны между собой и используют СОМ в качестве фунда­мента. Стрелками обозначается зависимость технологий, а точками возможное, но не обязательное использование.

Далее в этой главе будут рассматриваться отдельные технологии OLE, непосредственно относящиеся к объектам, и их преимущества для пользователей.

Управление памятью. Чтобы зарезервировать область памяти, объект может вызывать любые доступные команды. Обычно при распределении памяти используются опе­раторы из C++. Однако, если объекту необходимо передать блок памяти посредством OLE, он должен использовать встроенные функции.

Структурированное хранение. Структурированное хранение — это термин, который используется для описания технологии, обеспечивающей постоянство объек­тов. По сути, структурированное хранение является механизмом, который СОМ-объекты используют для считывания своих данных и записи их на диск. Данные становятся "структурированными" благодаря тому, что биб­лиотеки OLE организуют их в виде логического файла. Эта технология сходна с тем, как файловая система организует файлы на жестком диске.

Два основных понятия, используемые в структурированном хранении, — это поток и хранилище. Хранилище является аналогом каталога файловой системы, а поток — аналогом файла. Хранилища могут содержать потоки и другие хранилища. В любой схеме структурированного хранения самое верхнее хранилище называется корневым. Оно представляет собой файл на диске (называемый структурированным файлом), который содержит логические хранилища и потоки более низкого уровня.

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

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

Чтобы прочесть данные, объект открывает соответствующие хранилища и считывает данные из нужных потоков.

При помощи структурированного хранения OLE абстрагирует конкрет­ные детали физического хранения данных и передает большую часть функ­ций управления операционной системе. Это именно то, что делает с диском файловая система. Когда приложение хочет надолго сохранить некоторую информацию, оно открывает файл, записывает данные на диск и закрывает файл. В какой кластер и/или сектор были записаны данные? Обычно это не интересует простого пользователя. Все, что ему нужно, — это чтобы данные были сохранены в конкретном файле. Неважно, где он физически размещен. Таким образом, технология структурированного хранения — это, фактически, то же самое, что файловая система для диска.

Для реализации хранилищ и потоков библиотеки OLE используют СОМ-объекты. В хранилищах реализован интерфейс IStorage, а в потоках — интерфейс IStream. Чтобы приказать хранилищам и потокам выполнить некоторое действие, приложение получает указатель на интерфейс IStorage и/или IStream и вызывает соответствующие функции этих интерфейсов.

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



Глава 3.4. Типы и библиотеки типов


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

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

Между прочим, файл библиотеки типов (TLB-файл) является структу­рированным файлом. Каждое логическое хранилище и поток в нем имеют четко определенное имя, что позволяет различным просмотрщикам анали­зировать их.

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

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

Когда составной документ записывается в постоянное хранилище, он прика­зывает всем своим СОМ-серверам сохранить себя в том же хранилище. Потом он передает каждому серверу указатель на поток ввода-вывода. Каждый сервер записывает свои данные в этот поток так, как считает нужным.

Унифицированная передача данных. Унифицированная передача данных (UDT) — это OLE-технология, которая позволяет объектам обмениваться информацией стандартным образом. Кроме определения стандартов для обмена данными, UDT позволяет объектам извещать заинтересованные стороны (другие объек­ты) о том, что данные изменились. Те клиенты, которых интересуют изменения данных, могут при этом предпринять соответствующие действия. Объекты, взаимодействующие при помощи UDT, могут находиться в одном или разных адресных пространствах. UDT заменяет устаревшую к настоящему времени технологию DDE (Динамический обмен данными).

Имеются два значительных преимущества в применении OLE-техноло­гии UDT по сравнению с традиционной технологией DDE и буфером обмена (clipboard):

  • UDT обеспечивает более подробное описание совместно используемых данных. В этой технологии для описания данных и среды, на которой эти данные располагаются, используются две структуры, FORMATETС и STGMEDIUM. Структура FORMATETC определяет обобщенный формат буфера обмена усовершенствованный таким образом, чтобы описывать целевое устройство (монитор, принтер, плоттер и т.д.), способ интерпре­тации данных (например, как уменьшенное или полноэкранное изобра­жение) и среду их хранения (например, оперативная память или диск).

  • UDT дает возможность пользоваться другими средствами обмена, поми­мо физической памяти. К примеру, большое растровое изображение, может быть сохранено на диске в виде структурированного файла, и совместно использоваться посредством отображения файла в памяти. Имея дело с UDT можно гибко выбирать оптимальную среду хранения для тех данных, которые необходимо использовать совместно.

Соединяемые объекты. Соединяемые объекты позволяют устанавливать двунаправленный канал связи между объектом и его клиентами. В стандартной модели OLE клиент совершает вызовы для доступа к функциям объекта. Объект, однако, может дополнительно передать одному или нескольким своим клиентам информацию, которая не была затребована в запросе. Объекты, которые поддерживают пересылку клиентам дополнительной ин­формации, называются соединяемыми. Соединяемые объекты называют так­же источниками советов, а клиентов — приемниками советов.

Технология Drag-and-Drop. OLE-технология Drag-and-Drop ("перетащить и отпустить") определяет ви­зуальный, ориентированный на использование мыши способ обмена инфор­мацией с помощью буфера обмена. Посредством мыши пользователь может переносить информацию из одного объекта, который называется источником перетаскивания, в другой, называемый приемником перетаскивания. Объекты источника и приемника могут находиться в разных адресных пространствах. Технология Drag-and-Drop определяет строгий прото­кол взаимодействия, которого придерживаются источники и приемники.

Автоматизация. Автоматизация считается одной из самых мощных OLE-тех­нологий. Это механизм, при помощи которого объект предоставляет другим объектам и приложениям доступ к своим методам (функциям) и свойствам (характеристикам). Объект, предоставляющий доступ к своим функциям, называется сервером автоматизации. Объект или прило­жение, которые используют функции или управляют действиями сервера автоматизации, называются контроллерами автоматизации. Серверы автоматизации существуют для того, чтобы обслуживать запросы и указания контроллеров автоматизации.

Первоначально, автоматизация задумывалась как глобальная среда для написания сценариев. Однако впоследствии компания Microsoft решила позволить другим поставщикам разрабатывать языки сценариев и среды программирования и получать доступ к мощным OLE-объектам при помощи механизма автоматизации. Серверы автоматизации разрабатываются с помощью языков, которые позволяют придать им быстродействие и гибкость.

Интерфейс IDispatch - это стандартный СОМ-интерфейс, который опреде­ляет функции автоматизации. Его должны реализовывать все серверы авто­матизации.

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

Составные документы поддерживают следующие возможности:

  • Вложение объектов. Объекты могут быть вложены в другие объекты, причем возможно несколько таких вложений. Пользователи непосредственно мани­пулируют вложенными объектами и могут устанавливать связи с ними.

  • Преобразование объектов. Объекты могут быть приведены к разным типам, чтобы разрешить использование одного и того же объекта различными прило­жениями. Например, объект одного типа электронных таблиц (Lotus 1-2-3) может быть преобразован в другой тип (Excel).

  • Оптимизированное хранение объектов. Объекты остаются на диске до тех пор, пока не потребуются, поэтому они не загружаются в память всякий раз, когда выполняется программа-контейнер. Кроме того, используя собственную технологию структурированного хранения, OLE поддерживает подтвержде­ния и откаты транзакций на уровне объектов. Это гарантирует целостность данных, поскольку объекты хранятся в файлах.

  • Связывание и встраивание объектов. Встраивание объектов — это возможность вставить объект в составной документ без сохранения ссылки на источник данных объекта. Например, можно встроить электронную таблицу Excel в документ Word. После этого объект, который находится в составном документе, будет полностью независим от первона­чального источника. Тогда изменения основного объекта не отразятся на встроенном объекте.

Посредством связывания объектов приложение поддерживает лишь связи с объектами, которые находятся в других приложениях. При активиз­ации связанного объекта библиотеки OLE отслеживают связь и вызывают ассоциированный объект. Например, документ Microsoft Word может содер­жать связь с таблицей Excel. Таблица и все ее данные полностью находятся в Excel, но могут быть использованы и в документе Word. Если первоначаль­ные данные таблицы изменятся, то эти изменения автоматически отобразят­ся в документе Word. Связывание зависит от расположения объектов. Другими словами, если таблицу Excel переместить в новую папку, связь будет разорвана.

Имена, псевдонимы и привязка. У объекта может быть имя. В таком случае OLE использует это имя для идентификации и обращения к объекту. Псевдонимами называются СОМ-объекты, в которых хранятся имена и местоположения других объектов. Получив соответствующие указания, псевдонимы опреде­ляют местоположение объектов, на которые ссылаются, и вызывают их. Этот процесс поиска и вызова объекта называется привязкой. OLE использует псевдонимы для поддержания связи с источниками данных объекта. Сами по себе псевдонимы, как объекты, встраиваются в составной документ, содержащий связи.

Когда активизируется документ, псевдоним осуществляет поиск связанного с документом объектом.

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

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

Каким образом таблица отображается в текстовом редакторе, когда он запускается первый раз? Составной документ (документ Word), содержащий таблицу Excel хранит представление объекта таблицы в виде метафайла. При вставке таблицы в составной документ или связывании с ним Excel передает Word представле­ние таблицы в виде метафайла. То, что вы видите при загрузке Документа Word, содержащего таблицу Excel, - это картинка. Если таблица ни разу не активизируется, то программа Excel не будет загружена в память.

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



Часть 4. Использование OLE в Office

Так как технология OLE является наиболее популярной и используемой на данный момент, то рассматриваемые примеры встраивания и связывания относятся именно к ней. Для рядового пользователя программные продукты компании Microsoft стали своеобразным стандартом, поэтому целесообразным было бы проследить применение OLE в пакете Office.

В программах пакета Office широко используются две функции OLE, которые ориентированны на пользователей, не являющихся программистами, - Связывание и Внедрение.



Глава 4.1. Связывание

При процедуре связывания необходимо сначала поместить в буфер обмена (скопировать) данные из документа источника. Затем выбрать место вставки в документе приемнике и вызвать окно специальной вставки: Главное Меню ? Правка ? Специальная вставка. Данную последовательность действий нужно проделать в каждом из следующих примеров.

Над любым связанным объектом возможно выполнение ряда операций, например таких как. Обновить связь, Изменить связь, Преобразовать связь. Так же можно просмотреть и отредактировать все связи присутствующие в данном документе командой Главное Меню ? Правка ? Связи.

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

Таблица Excel ? Документ Word. Итак, мы скопировали таблицу Excel в буфер обмена и открыли окно специальной вставки (Рис. 4.1.). В этом окне можно увидеть источник связываемых данных, и убедившись в том, что он является верным, необходимо установить переключатель Связать. Далее выберем формат связываемых данных, то есть, в каком виде они будут представлены в документе приемнике. Рассмотрим два примера:

  • Лист Microsoft Excel (объект)

  • Текст в формате RTF


Рис. 4.1.

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

В случае вставки в редактор текста в формате RTF, документ пополнится обычной таблицей Word. Изменения в ней производятся посредством текстового процессора. Для отмены изменений можно воспользоваться командой Обновить связь.

Слайд PowerPoint ? Документ Word. Для создания такой связи сначала необходимо проделать такой же стандартный порядок действий, как и в прошлом примере. Скопируем отдельный слайд и вставим его с помощью связывания. В качестве формата данных выбрать Слайд PowerPoint (объект). Вставленный объект будет очень похожим на рисунок Word. Двойным щелчком по вставленному объекту можно вызвать приложение с документом источником.



Глава 4.2. Внедрение

При внедрении необходимо также поместить в буфер обмена данные из документа источника. Затем открыть окно специальной вставки.

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

Таблица Excel ? Документ Word. Скопируем таблицу в буфер обмена (clipboard) и вызовем окно специальной вставки. Выставим переключатель Вставить и выберем формат данных как Лист Microsoft Excel (объект). На первый взгляд, внедренный объект ни чем не отличается от таблицы вставленной с помощью связывания. Однако если дважды щелкнуть по этой таблице, приложение источник запускаться не будет, как при связывании, а будет использована функция непосредственной активизации OLE.

Презентация PowerPoint ? Лист Excel. При копировании презентации необходимо выделить все её слайды и поместить в буфер обмена. Далее с помощью специальной вставки внедрим объект Презентация PowerPoint. Если вы хотите просмотреть внедренную презентацию щелкните дважды по ней или с помощью контекстного меню выберете команду Объект презентация ? Показать. Посредством этого же меню можно отредактировать презентацию (команда Изменить) используя непосредственную активизацию.



Заключение

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

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

Появление OLE и подобных ей методов (COM, CORBA) сыграло важную роль в продвижении информационных технологий. Данные схемы нашли широкое применение в WEB-конструкциях. Так для эффективного употребления WEB-приложений в Интернете очень часто применяются технологии совместного использования. Подобные технологии также эффективно используются в компьютерных сетях с применением архитектуры клиент-сервер.


Литература

  1. Пьюполо 1997 – Пьюполо Джон. OLE: создание элементов управления. – Киев.: BHV, 1997.

  2. Буч 1998 – Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. – М.: Бином 1998.

  3. Вендров 2000 – Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2000.

  4. Гамма, Хелм, Джонсон, Влиссидес 2001 – Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного программирования. – СПб.: Питер, 2001.

  5. Кулаичев 1999 – Кулаичев А.П. Методы и средства анализа данных в среде Windows. – М.: Информатика и компьютеры, 1999.

  6. Терехов, Туньон 1999 – Терехов А.А., Туньон В. Современные модели качества программного обеспечения. BYTE/Россия. №12, 1999.

  7. Шлеер, Меллор 1993 – Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. – Киев: Диалектика, 1993.

  8. Одинцов 2002 – Одинцов И.О. Профессиональное программирование. Системный подход. – СПб.:BHV-Петербург, 2002.

  9. Ботт 1998 – Ботт Эд. Microsoft Office. – М.: Бином, 1998.

  10. Корнеев 1999 – Корнеев В.В. Параллельные вычислительные системы. – М.: Нолидж. 1999.

9



© Рефератбанк, 2002 - 2024