Обмен данными между программами




На сегодняшний момент операционная система Windows фирмы Microsoft во всех ее проявлениях считается самой распространенной операционной системой на ПК: в мире более 150 млн. IBM PC-совместимых компьютеров, и система Windows установлена на 100 млн. из них. Очевидно, что ознакомление с ПК необходимо начинать с ознакомления с Windows, ведь без нее работа на ПК немыслима для большинства пользователей. Знание системы Windows - необходимый кирпичик в стене познания ПК.

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

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

Обмен данными между приложениями

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

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

Разновидности способов обмена данными

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

ü на уровне ClipBoard (буфер обмена - статистический),

ü на уровне DDE-протокола(Dynamic Data Exchange-Динамический Обмен Данными),

ü на уровне OLE-механизма(Object Linking and Embedding-Встраивание и Связывание Объектов). OLE - это развитие DDE.

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

Уровень DDE-протокола ориентирован, в основном, на программистов, разрабатывающих свои программы для MS Windows. В качестве такого обмена данных можно привести следующий пример: Фирма MicroSoft предусмотрела следующую возможность в MS EXCEL. Любая ячейка электронной таблицы MS EXCEL может быть настроена таким образом, что будет способна автоматически принимать данные от какой-либо другой программы в реальном времени. Это значит, что ежели существует какая-либо программа, обслуживающая какое-либо устройство (например, цифровой вольтметр), то программист, при создании этой программы, может предусмотреть возможность направлять информацию от вольтметра (по мере ее поступления) в заданную ячейку MS EXCEL. При этом пользователь может работать с MS EXCEL, как обычно. Вместо вольтметра, поставщиком информации может быть какая-либо программа, производящая специфичную обработку информации.

Уровень OLE-механизма ориентирован на пользователя. Но не каждая программа поддерживает эту возможность. Этот механизм должен быть заложен в программу на этапе проектирования и разработки программы. Этот механизм поддерживают многие прикладные программы. Например, MS EXCEL, MS WORD for Windows и др.

На уровне ClipBoard (буфер обмена - статистический)

Порядок обмена данными между приложениями Windows следующий.

1. Активизируют программу-источник данных (делают текущей программу, содержащую данные, которые подлежат обмену).

2. В программе-источнике данных выделяют данные, подлежащие обмену. Как правило, таблицы и текст выделяют с помощью клавиатуры (<Shift>+<клавиши со стрелками>), рисунки - визиром (яркий пример - графический редактор Paint), графические объекты в документах (внедренные рисунки, диаграммы, графики и т.д.) - одинарным щелчком левой кнопкой мыши и т.д.

3. Копируют выделенные данные в буфер обмена. Буфер обмена - часть оперативной памяти, выделяемая системой Windows для временного хранения обмениваемых данных. Следует учесть, что скопированные данные хранятся в буфере даже после их вставки в какой-либо программе. Содержимое буфера обмена изменится, если в него скопировать новые данные.

4. Активизируют программу-приемник данных. Указывают позицию, куда необходимо вставить данные.

5. Вставляют данные из буфера обмена.

Таким образом, всеобщий порядок обмена данными между приложениями следующий:

1. Активизируют программу-источник данных (делают текущей программу, содержащую данные, которые подлежат обмену).

2. В программе-источнике данных выделяют данные, подлежащие обмену.

3. Копируют выделенные данные в буфер обмена.

4. Активизируют программу-приемник данных. Указывают позицию, куда необходимо вставить данные.

5. Вставляют данные из буфера обмена.

Обмен данными между приложениями аналогичен многим процессам в реальной жизни.

Для работы с буфером обмена Windows предлагает специальную программу — Просмотр буфера обмена, которую можно вызвать из Главного меню → Программы → Стандартные (в Windows 2000 Окно буфера обмена переименовано в Папку обмена, которая вызывается командой clipbоаrd). Во-первых, окно этой программы — это настоящее «зеркало» буфера обмена, отображающее текущее содержимое Clipboard. Во-вторых, это приложение позволяет записать содержимое буфера обмена на постоянное хранение в файл специального формата (с расширением.CLP) и прочитать такой файл в буфер. Это нужно для обмена файлами разных форматов, так как всякая версия ОС Windows может прочитать любые файлы с расширением.CLP Просмотр буфера обмена позволяет с помощью отдельных команд изменить фор­мат вывода фрагмента на экран, а также очистить буфер обмена. Расширение функций буфера обмена. Приложения Windows устроены таким образом, что буфер обмена часто оказывается полезным даже тогда, когда никаких команд работы с буфе­ром не предусмотрено. Дело в том, что механизмы выделе­ния, копирования, вставки фрагментов документа (особенно текстовых) чаще всего встроены в приложение, и клавиатур­ные сочетания Ctrl+Ins и Shift+Ins работают всегда, не­зависимо от функций приложения. Тем самым гибкость такой системы при обмене информацией между базой данных системы и внешними носителями информации значительно расширяется. Например, в системе может отсутствовать функция вставки готового текстового файла в базу данных (файл → база данных), однако пользова­телю не придется заново набирать такой файл. Достаточно открыть его (например, в приложении Word), скопиро­вать в буфер обмена, а затем вставить данный.

Копирование файлов (а также вложенных папок) из папки в папку аналогичен обмену данными между приложениями, только в таком “обмене” фигурируют не данные, а копируемые файлы или папки.

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

На уровне DDE-протокола (Dynamic Data Exchange-Динамический Обмен Данными)

Аббревиатура DDEML обозначает Dynamic Data Exchange Management Library (библиотека управления динамическим обменом данными). DDEML это надстройка над сложной системой сообщений, называемой Dynamic Data Exchange (DDE). Библиотека, содержащая DDE била разработана для усиления возможностей первоначальной системы сообщений Windows. DDE дает возможность перейти через рамки приложения и взаимодействовать с другими приложениями и системами Windows. Dynamic Data Exchange получило свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми, через глобальную память) динамически во время выполнения. Связь между двумя программами можно установить таким образом, что изменения в одном приложении будут отражаться во втором. Например, если Вы меняете число в электронной таблице, то во втором приложении данные обновятся автоматически и отобразят изменения. Кроме того, с помощью DDE можно из своего приложения управлять другими приложениями такими, как Word for Windows, Report Smith, Excel и др.

DDE — давний и прижившийся протокол обмена данными между разными приложениями, появившийся еще на заре эры Windows. С тех пор на его базе был создан интерфейс OLE, а в 32-разрядном API Windows появились и другие методы межпрограммного взаимодействия. Но ниша, занимаемая DDE, оста­лась неизменной — это оперативная передача и синхронизация данных в приложениях. Приложения, использующие DDE, разделяются на две категории — клиенты и серверы. Оба участника процесса осуществляют контакты (conversations) по определенным темам (topic), при этом в рамках темы производится обмен элементами данных (items). Устанавливает контакт клиент, который посылает запрос, содержащий имена контакта и темы. После установления контакта всякое изменение элемента данных на сервере передается данным клиента. Первоначально программирование DDE было чрезвычайно сложным делом — оно требовало взаимосвязанной обработки более чем десяти сообщений Win­dows. В версии Windows 3.1 появилась библиотека DDEML, которая перевела управление DDE на уровень вызова процедур. Разработчики подсистемы DDE в Delphi, верные идеологии создания VCL, свели интерфейс этого протокола к четырем компонентам — двум для сервера и двум для клиента. На уровне поддержания контакта лежат компоненты TDDEServerConv и TDDEClientConv. Первый играет пассивную роль — он только указывает имя одной из поддерживаемых сервером тем. Все операции по установлению и разрыву контакта осуществляет из приложения-клиента второй компонент. Посредством одного контакта могут быть связаны и синхронизированы не­сколько пар элементов данных. Для их описания предназначены компоненты TDDEServerItem и TDDEClientItem. Каждый из них во время работы должен указывать на контакт, к которому он привязан. Кроме того, в составе обоих есть свойства, содержащие некий текст. При установленном контакте их со­держимое синхронизируется.

Обмен данными по технологии OLE

Технология OLE ((Object Linking and Embedding) ― технология управления и обмена информацией между программным интерфейсом других приложений. Связывание и внедрение объектов (Object Linking and Embedding).

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

При использовании OLE в обмене информацией участвуют два приложения: приложение-сервер и приложение-клиент. Приложение-сервер используется для создания и редактирования OLE-объектов (рисунков, чертежей, текстов). После того как объект создан, он помещается в приложение-клиент. Например, при создании диаграммы в электронной таблице и размещении ее в CorelDRAW при помощи OLE. В этом случае электронная таблица являются приложением-сервером, а CorelDRAW - приложением-клиентом. Некоторые приложения могут действовать и как серверные, и как клиентские, другие такой способностью не обладают. Например, CorelDRAW может быть и серверным, и клиентским приложением, в то же время, Corel PHOTO-PAINT может выступать только как приложение-сервер.

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

Технологию OLE рассмотрим на примере составного документа, созданного на основе текста в приложении WordPad, в который вставлен рисунок из приложения Paint. Рисунок необходимо отредактировать, т. е. внести в него изменения. Программа WordPad своими средствами не может изменять данные из другой программы. В программе Paint сделанный рисунок выделяется и копируется. В документе WordPad устанавливается указатель мыши в то место, куда будет интегрирован рисунок, и в меню "Правка" выполняется команда "Специальная вставка". В открывшемся диалоговом окне выбирают способ вставки "Вставить" или "Связать" и вид объекта "рисунок". Завершается операция нажатием кнопки "ОК".

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: