Введение
Сегодня в большинстве случаев работа на компьютере сводится к работе с электронными документами, так как именно в них содержится основная масса используемой информации. Пользователи персонального компьютера имеют дело с различными данными, хранящимися в документах всевозможных форматов. как в одном документе соединить данные различных типов? Без применения специальных компьютерных технологий этот вопрос остается не разрешимым. Часто пользователи используют огромное число документов, в которых, как правило, имеется общая часть, поэтому в такой ситуации имеет смысл выделить эту часть, а в дальнейшем только ссылаться на неё, при этом, производя изменения в одном месте – информация в других документах будет автоматически обновляться. Решение проблемы совместного использования документов существенно облегчает работу пользователей. Она решается только с помощью определенных технологий и методов. Системное программное обеспечение – организует процесс обработки информации на ПВМ. Основу системного программного обеспечения составляет операционная система. На сегодняшний день популярностью пользуется операционная система Windows XP , название «XP» происходит от HYPERLINK "http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" \o "Английский язык" англ. experience (опыт, впечатление, от прилагательного профессиональный). Название вошло в практику использования, как профессиональная версия. В данной работе рассмотрены операционная система Windows 95, три основных метода обмена данными между документами, а в последней части показано как действует  технология OLE  в  популярном пакете Microsoft Office.




1. Операционная система Windows 95.
Windows 95 представляет собой 32-разрядную операционную систему, обеспечивающую многозадачную и многопоточную обработку приложений (программ). Она поддерживает удобный графический пользовательский интерфейс, возможность работы в защищенном режиме, совместимость с программами реального режима и сетевые возможности. В Windows 95 реализована технология поддержки самонастраивающейся аппаратуры Plug and Play, допускаются длинные имена файлов и обеспечиваются повышенные  характеристики устойчивости. 32-разрядность означает, что операции над 32-разрядными данными здесь выполняются  быстрее,  чем над 16-разрядными. Многозадачность предоставляет возможность одновременной (параллельной) работы с несколькими приложениями. Многопоточность означает способность организовывать одновременную обработку нескольких потоков. Например, в текстовом редакторе Word могут одновременно выполняться автоматическая проверка орфографии и редактирование документа. Пользовательский интерфейс Windows 95 обеспечивает удобства в запуске и переключение приложений. Технология Plug and Play (включи и работай) облегчает установку нового оборудования, автоматически его определяя и устанавливая необходимое для него программное обеспечение.
Приложения WINDOWS 95: текстовый и графический редактор, калькулятор, блокнот, мультимедиа. Основным текстовым редактором в WINDOWS 95 на сегодняшний день является Microsoft Word. Текстовый редактор Word - представляет собой популярный текстовый процессор, предназначенный для работы под управлением Windows 95. Он предоставляет широкие возможности для подготовки документов. В том числе: развитый интерфейс, обширную и удобную в применении системы справочной помощи, возможности редактирования рисунков средствами самого редактора, разнообразные возможности по форматированию абзацев и символов и т.д. Графический редактор (Paint) позволяет создавать и редактировать рисунки. В нём предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными шрифтами и т.д. Приложение Калькулятор - представляет очень мощный аналог настоящему калькулятору. Может принимать состояние двух видов: обычный и инженерный. В обычном режиме реализуются основные функции, а в инженерном - появляется множество дополнительных, которым мог бы позавидовать любой современный калькулятор. Блокнот представляет собой записную книжку, в которую можно записывать небольшие тексты. Очень прост в обращении. К приложениям мультимедиа обычно относят программы предназначенные для проигрывания музыкальных файлов, видео, прослушивания музыкальных компакт-дисков (например, универсальный проигрыватель). Служебные программы: проверка и дефрагментация диска. К служебным программам проверки и дефрагментации диска относятся Norton Disk Doctor и Norton Speed Disk соответственно. Проверку необходимо проводить с целью выявления и исправления ошибок в именах файлах, ошибок в файловой системе, поиска "потерянных" данных на диске. Эти ошибки обычно возникают в результате неумелой работы пользователя и могут повлечь за собой серьёзные последствия вплоть до отказа работы компьютера. Дефрагментация - процесс, при котором данные размещаются на диске строго упорядоченно друг за другом. В процессе работы пользователь постоянно работает с файлами - удаляет и создаёт их, переносит и копирует. В результате этого в файлы размещаются на диске не строго упорядоченно, а хаотично. И если бы мы видели расположение файлов на диске - то перед глазами у нас возникла бы картина решета. То есть все файлы раскиданы по диску хаотично. В результате этого существенно уменьшается производительность работы с дисковой системой. Что бы этого избежать применяется программа Norton Speed Disk, которая располагает файлы на диске строго последовательно (друг за другом). Проверку и дефрагментацию диска необходимо производить хотя бы раз в месяц. Но желательно, конечно, и раз в неделю.
1.2 Буфер обмена.
Во время своей работы операционная система (OC)  Windows выделяет специальную область памяти — буфер обмена (Clipboard), который используется для обмена данными между приложениями и документами. Роль данных могут играть фрагмент текста или весь текст, рисунок, таблица и т. п. Буфер обмена — ( HYPERLINK "http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" \o "Английский язык" англ. clipboard) — область HYPERLINK "http://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C" \o "Оперативная память" оперативной памяти HYPERLINK "http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80" \o "Компьютер" компьютера, в которой могут сохраниться данные различных форматов для переноса или копирования их между HYPERLINK "http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" \o "Прикладное программное обеспечение" приложениями или частями одного приложения.
Это простейшее, но очень эффективное средство интеграции приложений. В ОС 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 — Dynamic 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 приложениях. Однако все же в ряде случаев  DDE применяется. На сегодняшний день в DDE можно выделить два уровня: 1. В некоторых приложениях Windows избранные операции DDE встроены в интерфейс программы. Например, в процессоре Word имеется возможность решить следующую задачу. Пусть имеется документ Word, и в этом документе содержится текст «серийного» письма, которое необходимо разослать по нескольким адресам. В этом письме имеются переменные поля с фамилией адресата и его адресом. Фамилии и адреса содержатся в базе данных MS Access. Надо изготовить несколько экземпляров одного и того же письма, каждый из которых будет отличаться от другого фамилией и адресом. Эту операцию можно выполнить с помощью команды Сервис-Слияние... (Tools-Mail Merge...). 2. Второй уровень DDE требует знания некоторых программных средств и может быть использован квалифицированными пользователями или программистами. Суть этого уровня проиллюстрируем примером. Допустим, программист разработал информационную систему, в которой предусмотрено автоматизированное составление расписания каких-то мероприятий (например, встреч, конференций, семинаров и т. п.). Это расписание надо красиво напечатать (с указанием дат, дней недели, колонтитулов и т. п.). Лучше всего справится с этой задачей процессор Word. Поэтому программист заготовил в процессоре Word некий шаблон расписания и снабдил его закладками. Итак, можно сказать, что с появлением метода DDE возник качественный скачек в продвижении технологии связывания и совместного использования документов. Но все же остались некоторые недочеты, которые в своем большинстве были исправлены схемой OLE.
3. OLE (Object Linking and Embedding). Объектно-ориентированная технология
Зачем нужна Объектно-ориентированная (ОО) технология?
Стремительный прогресс аппаратных технологий дал рядовому потребителю огромную вычислительную мощь. Приобретая  новое программное обеспечение, люди желают получить новые свойства и более сложные функции; они хотят воспользоваться преимуществами тех вычислительных средств, которыми располагают. Стремясь соответствовать этим запросам объем многих прикладных программ вырос до нескольких сотен мегабайт. Это привело к появлению чрезмерно сложных и громоздких систем, которые обычно: · выходят с опозданием; · имеют непомерно высокие цены; · используются эффективно лишь в небольшой своей части; · плохо адаптируются к требованиям пользователя; · нуждаются в устранении выявленных ошибок и доработки; · требуют определенного опыта для своей инсталляции. Как можно изменить такую ситуацию. Так как причиной всех недостатков является сложность, то, следовательно, необходимы новые способы создания  современных программ. Что такое ОО технология? Объектно-ориентированная технология – это термин, за которым скрывается ряд новых методологий анализа, проектирования и программирования. При использовании ОО технологии анализ, проектирование и разработка системы проводятся с помощью объектов. Под объектом понимается "разумный", самодостаточный агент, отвечающий за выполнение определенных системных задач. Алгоритмическая и объектно-ориентированная декомпозиция. Традиционно сложилось так, что проектирование и реализация программного обеспечения осуществляется с точки зрения функций или алгоритмов. Как правило, мы разбиваем свои системы на взаимодействующие группы логически связанных функций, воздействующих на наборы несопоставимых данных. Другими словами, мы разделяем сложную задачу на более простые и решаем ее алгоритмически. При использовании алгоритмической декомпозиции проблема разбивается на фундаментальные функциональные единицы, или подсистемы. После этого каждая подсистема реализуется как набор связанных процедур. Эти процедуры воздействуют на данные, не учитывая присущие этим данным взаимосвязи. Алгоритмическая декомпозиция — это способ решения проблемы с функциональной точки зрения. При алгоритмической декомпозиции все внимание сосредоточено на том, какие преобразования необходимо выполнить над  данными без учета их  семантической связи. Можно подойти к решению проблемы по-другому. Прежде чем изучать функциональные взаимосвязи или интересоваться, что происходит с набором данных,  необходимо  выявить логически обособленные сущности в предметной области, определить их свойства, взаимосвязи и отношение к решаемой проблеме. Лишь разобравшись в сути проблемы,  можно моделировать систему при помощи программного обеспечения. Такой способ анализа называется объектно-ориентированной декомпозицией. В объектно-ориентированной декомпозиции термины, которые используются при анализе и проектировании, наследуются прямо из предметной области. Это позволяет моделировать взаимоотношения реального мира естественным и адекватным образом, сохраняя семантические взаимосвязи между функциями и соответствующими данными. Например, при разработке системы резервирования авиабилетов определились бы такие сущности (объекты), как самолеты, маршруты, города и пассажиры. Пользуясь ОО декомпозицией, необходимо применить понятия, термины конкретной предметной области, а не искусственные конструкции системы разработки программного обеспечения. Объектно-ориентированная декомпозиция — это способ решения проблемы с объектной точки зрения. Употребляя ОО декомпозицию, внимание пользователя фокусируется на конкретном объекте. Дополнительно устанавливаются логические и семантические связи между объектами, их поведением. Что такое объекты? Объект в ОО технологиях определяется следующим образом: Объект — это самодостаточный программный модуль, который абстрактно описывает физическую или логическую сущность реального мира. Он скрывает (инкапсулирует) детали своей реализации и имеет общедоступный интерфейс. Объекты являются автономными программными модулями, которым присуши некоторое состояние на данный момент и определенное поведение. Состояние объекта — это его внутренние, то есть закрытые, данные и скрытые детали его реализации. Общедоступный интерфейс формирует поведение объекта. Он определяет, что объект может делать. Интерфейс реализован как набор функций, называемых методами.
Объект включает в себя функции и данные, на которые эти функции воздействуют. Функции и данные, благодаря такой организации, связаны семантически. Поскольку все объекты в ОО системе имеют семантическую связь, общая структура такой системы является более гибкой и ясной по сравнению с традиционными способами организации. Для современных информационных технологий понятие объекта является основополагающим.
3.2. COM (Component Object Model ). Модель компонентного объекта .
Эта модель служит основой для OLE, поэтому понимание ее чрезвычайно важно. Что такое СОМ? СОМ представляет собой стандартную объектную модель промышленного уровня, которая унифицирует системы объектов. Эта модель специфицирует следующее: · Определение объекта. Правила, по которым объекты структурируются и особым образом располагаются в памяти. · Управление жизненным циклом. Правила, по которым объекты создаются и уничтожаются. · Протоколы взаимодействия между объектами. Правила, по которым объекты взаимодействуют друг с другом и проявляют свои функции. Пользуясь СОМ, следует помнить одну важную вещь. СОМ является простой технической спецификацией, то есть представляет собой строгий набор правил, регулирующих базовую структуру объекта и его семантику. Сама по себе СОМ не предоставляет никаких функциональных возможностей, она лишь формулирует строгие технические предписания. Модель "клиент-сервер". СОМ поддерживает простую модель "клиент-сервер". Объекты, называемые серверами, предоставляют некие функции в распоряжение объектов, называемых клиентами. Серверы всегда являются СОМ-объектами, то есть объектами, которые подчиняются спецификации СОМ. С другой стороны, клиенты могут быть СОМ-объектами или не быть таковыми. Это значит, что некоторые объекты могут быть простыми объектами C+ + , приложениями Visual Basic и т.п. На следующем рисунке представлена не сложная модель "клиент-сервер". Клиенты и СОМ-серверы общаются друг с другом при помощи интерфейсов. Интерфейсы — это группы функций, которыми СОМ-объекты обычно пользуются для взаимодействия друг с другом и своими клиентами. Как было показано в главе посвященной ОО технологии, проявление функциональных возможностей посредством интерфейса — это фундаментальная концепция объектно-ориентированного программирования. Используя исключительно интерфейсы, СОМ поддерживает логическую абстракцию и неуклонно проводит в жизнь строгую инкапсуляцию. СОМ-серверы могут одновременно иметь несколько интерфейсов (как правило, так и бывает). Каждый интерфейс предоставляет набор функций, отличный от других.
3.3. Архитектура OLE
Архитектура OLE (object linking and embedding) основана на модели компонентного объекта (СОМ). Сама 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 представляет собой именно такую систему.
Далее в этой главе будут рассматриваться отдельные технологии 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 в Microsoft Office
Так как технология OLE является наиболее популярной и используемой на данный момент, то рассматриваемые примеры встраивания и связывания относятся именно к ней. Для рядового пользователя программные продукты компании Microsoft стали своеобразным стандартом, поэтому целесообразным было бы проследить применение OLE в пакете Office. В программах пакета Office широко используются две функции OLE, которые ориентированны на пользователей, не являющихся программистами, - Связывание и Внедрение.
4.1. Связывание
При процедуре связывания необходимо сначала поместить в буфер обмена (скопировать) данные из документа источника. Затем выбрать место вставки в документе приемнике и вызвать окно специальной вставки: Главное Меню > Правка > Специальная вставка. Данную последовательность действий нужно проделать в каждом из следующих примеров. Над любым связанным объектом возможно выполнение ряда операций, например таких как. Обновить связь, Изменить связь, Преобразовать связь. Так же можно просмотреть и отредактировать все связи присутствующие в данном документе командой  Главное Меню > Правка > Связи. Любой объект также можно связать и вставить в виде значка, при этом он будет выполнять роль ссылки, которая выполняется щелчком по значку. Таблица Excel > Документ Word. Итак, мы скопировали таблицу Excel в буфер обмена и открыли окно специальной вставки В этом окне можно увидеть источник связываемых данных, и убедившись в том, что он является верным, необходимо установить переключатель Связать. Далее выберем формат связываемых данных, то есть, в каком виде они будут представлены в документе приемнике. Рассмотрим два примера: · Лист Microsoft Excel (объект) · Текст в формате RTF В первом случае в документ 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. Википедия – свободная энциклопедия;2. Пьюполо 1997 – Пьюполо Джон. OLE: создание элементов управления. – Киев.: BHV, 1997. 3. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. – М.: Бином 1998.4. Вендров 2000 – Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2000. 5. Гамма, Хелм, Джонсон, Влиссидес 2001 – Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного программирования. – СПб.: Питер, 2001. 6. Кулаичев 1999 – Кулаичев А.П. Методы и средства анализа данных в среде Windows. – М.: Информатика и компьютеры, 1999.
7. Терехов, Туньон 1999 – Терехов А.А., Туньон В. Современные модели качества программного обеспечения. BYTE/Россия. №12, 1999. 8. Шлеер, Меллор 1993 – Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. – Киев: Диалектика, 1993.
9.  Одинцов 2002 – Одинцов И.О. Профессиональное программирование. Системный подход. – СПб.:BHV-Петербург, 2002. 10. Ботт 1998 – Ботт Эд. Microsoft Office. – М.: Бином, 1998. 10. Корнеев 1999 – Корнеев В.В. Параллельные вычислительные системы. – М.: Нолидж. 1999.