Какие есть способы обмена между приложениями

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

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

Как правило, приложения могут использовать IPC категории «клиенты» или «серверы». Клиент — это приложение или процесс, запрашивающий службу от какого-либо другого приложения или процесса. Сервер — это приложение или процесс, отвечающий на запрос клиента. Многие приложения действуют как клиент и сервер в зависимости от ситуации. Например, приложение для обработки текстов может выступать в качестве клиента в запросе сводной таблицы производственных затрат из приложения электронной таблицы, выступающего в качестве сервера. Приложение электронной таблицы, в свою очередь, может работать в качестве клиента при запросе последних уровней инвентаризации от приложения управления инвентаризацией.

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

  • Должно ли приложение взаимодействовать с другими приложениями, работающими на других компьютерах в сети, или достаточно для того, чтобы приложение могло обмениваться данными только с приложениями на локальном компьютере?
  • должно ли приложение взаимодействовать с приложениями, работающими на других компьютерах, которые могут работать под управлением разных операционных систем (например, 16-разрядные Windows или UNIX)?
  • Следует ли пользователю приложения выбрать другие приложения, с которыми взаимодействует приложение, или может ли приложение неявным образом найти своих взаимодействующих партнеров?
  • Следует ли, чтобы приложение взаимодействовало со многими различными приложениями обычным образом, например разрешить операции вырезания и вставки с любым другим приложением или должны ли требования к обмену информацией ограничиваться ограниченным набором взаимодействий с конкретными другими приложениями?
  • Является ли производительность критически важным аспектом приложения? Все механизмы IPC включают некоторый объем издержек.
  • Должно ли приложение быть приложением с графическим интерфейсом или консольным приложением? Для некоторых механизмов IPC требуется приложение с графическим пользовательским интерфейсом.

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

Использование буфера обмена для IPC

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

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

Использование COM для IPC

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

Основой OLE является объектная модель компонента (COM). Программный компонент, использующий COM, может взаимодействовать с множеством других компонентов, даже если они еще не были написаны. Компоненты взаимодействуют как объекты и клиенты. Распределенная модель COM расширяет модели программирования COM таким образом, чтобы она работала по сети.

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

Использование копирования данных для IPC

Копирование данных позволяет приложению передавать данные в другое приложение с помощью сообщения WM _ COPYDATA . Этот метод требует взаимодействия между отправляющим приложением и принимающим приложением. Принимающее приложение должно знать формат информации и уметь определять отправителя. Отправляющее приложение не может изменять память, на которую ссылаются указатели.

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

Использование DDE для IPC

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

Читайте также:  Классифицируй животное свинья по способу питания

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

Обмен DDE может происходить между приложениями, запущенными на одном компьютере, или на разных компьютерах в сети.

Ключевой момент: DDE не так эффективнее, как новые технологии. Тем не менее можно по-прежнему использовать DDE, если другие механизмы IPC не подходят или если необходимо взаимодействовать с существующим приложением, которое поддерживает только DDE. дополнительные сведения см. в разделе платформа динамических данных Exchange и платформа динамических данных библиотеки управления Exchange.

Использование сопоставления файлов для IPC

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

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

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

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

Использование слота для IPC

Маилслотс обеспечивают односторонний обмен данными. Любой процесс, создающий почтовый слот, — это сервер слота сообщений. Другие процессы, называемые клиентами слота, отправляют сообщения на сервер слота, записывая сообщение в почтовый слот. Входящие сообщения всегда добавляются в почтовый слот. Почтовый слот сохраняет сообщения до тех пор, пока сервер слота не прочитает их. Процесс может быть как сервером слота, так и клиентом слота, поэтому двустороннее взаимодействие возможно с помощью нескольких маилслотс.

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

Ключевой момент: Маилслотс предлагают пользователям простой способ отправки и получения коротких сообщений. Они также предоставляют возможность рассылать сообщения между всеми компьютерами в сетевом домене. Дополнительные сведения см. в разделе маилслотс.

Использование каналов для IPC

Существует два типа каналов для двусторонней связи: анонимные каналы и именованные каналы. Анонимные каналы позволяют связанным процессам передавать данные друг другу. Как правило, анонимный канал используется для перенаправления стандартного ввода или вывода дочернего процесса, чтобы он мог обмениваться данными с родительским процессом. Для обмена данными в обоих направлениях (дуплексная операция) необходимо создать два анонимных канала. Родительский процесс записывает данные в один канал, используя его маркер записи, в то время как дочерний процесс считывает данные из этого канала, используя его маркер чтения. Аналогичным образом дочерний процесс записывает данные в другой канал, а родительский процесс считывает из него. Анонимные каналы не могут использоваться по сети и не могут использоваться между несвязанными процессами.

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

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

Использование RPC для IPC

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

RPC, предоставляемый Windows, соответствует требованиям к распределенным вычислительным средам (использование) Open Software Foundation (DCE). Это означает, что приложения, использующие RPC, могут взаимодействовать с приложениями, работающими с другими операционными системами, поддерживающими DCE. RPC автоматически поддерживает преобразование данных для учета различных архитектур оборудования и для упорядочения байтов между разнородными средами.

Клиенты и серверы RPC тесно связаны, но по-прежнему поддерживают высокую производительность. Система активно использует RPC для упрощения связи между клиентом и сервером между различными частями операционной системы.

Читайте также:  Физико химические способы очистки воздуха

Ключевой момент: RPC — это интерфейс уровня функции с поддержкой автоматического преобразования данных и взаимодействия с другими операционными системами. С помощью RPC можно создавать высокопроизводительные распределенные приложения с высоким уровнем производительности. Дополнительные сведения см. в разделе компоненты Microsoft RPC.

использование сокетов Windows для IPC

Windows Сокеты — это независимый от протокола интерфейс. В нем используются возможности связи базовых протоколов. в сокетах Windows 2 при необходимости можно использовать обработчик сокетов в качестве файла с стандартными функциями файлового ввода-вывода.

Windows Сокеты основаны на гнездах, которые впервые популярны по Berkeley Software Distribution (BSD). приложение, которое использует сокеты Windows, может взаимодействовать с другой реализацией сокета в других типах систем. Однако не все поставщики транспортных служб поддерживают все доступные варианты.

ключевой момент: Windows сокеты — это независимый от протокола интерфейс, поддерживающий текущие и новые сетевые возможности. дополнительные сведения см. в разделе сокеты Windows 2.

Источник

Лекция 6. Обмен данными между приложениями MS Office

[1] Лекция 6. Обмен данными между приложениями MS Office

[2] Содержание лекции

[2.1] Различные способы обмена данными

[2.2] Копирование и перемещение данных

[2.3] Связывание и внедрение данных

[2.3.1] Общие принципы установки связей между документами

[2.3.2] Связывание документов Word

[2.3.3] Связывание таблицы Excel и документа Word

[2.3.4] Внедрение данных

[2.3.5] Пример внедрения данных

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

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

Различные способы обмена данными

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

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

Для обмена данными между программами Office можно также воспользоваться технологией связывания и внедрения объекта , называемой OLE ( Object Lin k ing and Embedding ). OLE позволяет вставлять данные, созданные в одной программе, в файлы другой программы. Например, можно вставить рабочий лист Excel в документ Word.

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

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

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

Копирование и перемещение данных

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

  1. Выделите данные в приложении-источнике и выберите команду Правка | Копировать или Правка | Вырезать .
  2. Активизируйте приложение-приёмник и установите курсор в предполагаемом месте вставки.
  3. В строке меню приложения-приёмника выберите команду Специальная вставка . В результате откроется диалоговое окно Специальная вставка ( рис. 12.1 ) .
  4. В диалоговом окне Специальная вставка установите переключатель в положение Вставить и в списке Как выберите требуемый формат. Можно выбрать любой формат за исключением того, что содержит слово объект. Дело в том, что выбор объектного формата повлечёт не статическое копирование, а внедрение.
  5. Нажмите кнопку ОК для вставки данных и закрытия диалогового окна.

Вместо действий, описанных в пунктах 3 – 5, можно выбрать команду Правка | Вставить или нажать комбинацию клавиш Ctrl + V . При этом будут вставлены данные в формате, принятом по умолчанию и, как правило, в приложении-приёмнике будет отображена кнопка Параметры вставки . Нажмите эту кнопку и выберите любой из первых трёх пунктов меню, чтобы выполнить статическое копирование.

Связывание и внедрение данных

Общие принципы установки связей между документами

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

  1. Выделите данные в документе-источнике и выберите команду Правка | Копировать .
  2. Перейдите в документ-приёмник и установите курсор в том месте, куда нужно вставить копируемый объект. В строке меню приложения-приёмника выберите команду Правка | Специальная вставка .
  3. В диалоговом окне Специальная вставка установите переключатель Связать и выберите подходящий формат данных в списке Как (рис. 11.1). Нажмите кнопку ОК .

Рис. 11.1. Диалоговое окно Специальная вставка

Состав списка форматов Как зависит от типа приложения-источника и вида данных. В разделе Результат диалогового окна появляется описание формата после его выбора в списке Как . Для большинства способов обмена данными существуют четыре основных формата:

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

Для связывания целого документа выполните следующие действия:

  1. В документе-приёмнике установите курсор в место предполагаемой вставки данных.
  2. В строке меню приложения-приёмника выберите команду Вставка | Объект. В диалоговом окне Вставка объекта раскройте вкладку Создание из файла .
  3. Установите флажок Связать с файлом и в поле Имя файла введите имя файла документа-источника или найдите этот файл с помощью кнопки Обзор .
  4. Нажмите кнопку ОК .

Связывание документов Word

Для связи двух документов Word можно воспользоваться командой Правка | Специальная вставка или командой Вставка | Файл . В тех случаях, когда нужно вставить часть документа, следует пользоваться командой Специальная вставка .

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

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

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

Информация о наличии и характере связей отображается в диалоговом окне Связи (команда Правка | Связи ), показанном на рис. 11.2.

Рис. 11.2. Диалоговое окно Связи

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

Связывание таблицы Excel и документа Word

Процедура связывания таблицы Excel и документа Word не отличается от связывания двух документов Word , рассмотренного выше.

Наиболее важный момент при связывании таблицы с документом заключается в выборе формата.

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

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

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

При выборе форматов Рисунок и Точечный рисунок таблица вставляется как рисунок и будет редактироваться средствами Excel при двойном щелчке мышью по рисунку. При связывании диаграммы Excel с документом Word следует всегда выбирать формат Рисунок .

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

Внедрение данных

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

При внедрении документа связь с исходной информацией отсутствует, однако сохраняется возможность редактирования внедренного документа инструментами и средствами приложения-источника. При редактировании с использованием этой технологии меню и панель инструментов приложения-приёмника заменяются на меню и инструменты приложения-источника. Но при этом пользователь остается в исходном документе и видит окружающий текст или данные. Для такого способа внедрения существует специальный термин – редактирование на месте ( in — place — editing ). Пример такого редактирования нам уже встречался при работе с редактором формул Microsoft Equation 3.0.

Пример внедрения данных

Внедрение таблицы Excel в слайд PowerPoint:

  1. Выделите таблицу в документе Excel .
  2. Выберите меню Правка | Специальная вставка .
  1. Выберите переключатель Вставить .

Рис . Вид слайда MS PowerPoint с внедренной таблицей Excel

Вопросы для самопроверки

  1. Объясните назначение буфера обмена.
  2. Чем обмен данными через буфер обмена отличается от обмена данными перетаскиванием мышью?
  3. Перечислите способы связывания документов World и Excel .
  4. Чем отличается связанный объект от внедренного. Приведите примеры.
  5. Как редактировать связанный и внедренный объект?
  6. Будет ли при редактировании внедренного объекта изменяться содержимое исходного документа?
  7. Будет ли при редактировании связанного объекта изменяться содержимое исходного документа?

Рис. 10.6. Пример использования текстовых функций

Источник

Оцените статью
Разные способы