Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Osnovy_informatsionnyh_tehnology_Tolmacheva_Ye_....doc
Скачиваний:
36
Добавлен:
25.12.2018
Размер:
1.26 Mб
Скачать

4.3. Технологии обмена данными между Windows-приложениями

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

1. Буфер промежуточного хранения Clipboard

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

Для непосредственного просмотра данных в буфере обмена, изменения формата представления данных в нем, записи содержимого буфера в файл и его очистки используется утилита Clipboard Viewer (Clipbrd), которая является компонентой операционной системы и устанавливается при ее инсталляции.

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

2. Технология DDE

Суть технологии DDE (Dynamic Data Exchangeдинамический обмен данными) состоит в том, что в сеансе связи одно приложение посылает запросы в виде команд, а другое приложение в ответ пересылает данные. Установленная связь вставляемого объекта с оригиналом сохраняется и после закрытия приложений, т.е. внесенные в оригинал изменения автоматически вносятся во все документы, связанные с ним. В качестве источника данных можно использовать не оригинал, а ранее связанный объект (получается цепочка связей). Word позволяет просмотреть все связи данного документа, разорвать или переключить связь с одного объекта на другой.

В DDE объектом называют любой фрагмент, переносимый из одного приложения в другое. На самом же деле переносится не фрагмент, а его «экранный образ»: приложение-источник преобразует данные из своего внутреннего формата в один из стандартов Windows, и в таком виде фрагмент вставляется в приложение-приемник.

3. Технология OLE

Технология OLE (Object Linking and Embedding — связывание и внедрение объектов), разработанная корпорацией Microsoft, имеет больше функциональных возможностей, чем DDE, причем если приложение поддерживает OLE, то оно само выполняет обмен данными по этой технологии. OLE-технология обеспечивает возможность вызова одного приложения из другого и возможность помещение объектов, созданных в одном приложении, в документ другого приложения.

Эта технология предусматривает два варианта обмена данными:

1. Связывание объекта, при котором в документ помещается не сам объект, а лишь ссылка на документ-источник. В этом случае OLE-объект связан не с приложением-источником, а с документом-источником, в котором находится этот объект. Эта связь позволяет изменить представление объекта в составном документе, как только этот объект будет изменен в документе-источнике.

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

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

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

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

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

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

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