Технология ActiveX

Модель многокомпонентных объектов. Технология OLE.

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

Обмен данными между документами. Способы совместного использования данных.

Лекция № 3.

Параллельная работа и обмен информацией между WINDOWS приложениями. Создание комбинированного документа.

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

В простейшем случае для использования фрагмента данных из одного приложения в другом можно воспользоваться простейшим инструментом, который предоставляет WINDOWS – Буфером обмена (Clipboard).

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

Для решения серьезных задач WINDOWS обеспечивает два основных способа совместного использования данных различными приложениями: динамический обмен данными (Dynamic Data Exchange — DDE), а также связывание и внедрение объектов (Object Linking and Embedding — OLE).

2. Д инамический обмен данными (DDE) является наи­более старой технологией обмена данными между приложениями. Тем не менее, поддержка DDE была сохранена в Windows 98, эта технология будет использоваться еще достаточно долго.

Технология DDE опирается на связь, установленную между фрагментами одного документа, а также между документами различных приложений. Наличие такого механизма связи позволяет автоматически актуализировать данные в документе-приемнике при изменениях в источнике данных. DDE представляет собой модель взаимодействия процессов - протокол, с помощью которого приложение может организовать канал обмена данными с DDE-сервером, находящимся на той же машине. DDE — это протокол обмена сообщениями, позволяющий инициировать выполнение команды одного приложения из другого. Изначально техноло­гия DDE использовалась для выполнения операций с документами без от­крытия приложений и при работе с Буфером обмена Windows. Макроязык DDE включает в себя как команды DDE, так и команды макроязыка при­ложения. Таким образом, для использования макроязыка DDE недостаточно изучить внутренний язык интересующего приложения, необходимо еще знание DDE и знание языка серверного приложения. DDE - это асинхронный протокол. Иными словами, после установления связи вызывающая сторона передает запрос и ожидает возврата результатов.

Пример: в графическом редакторе открывают файл рисунка, фрагмент которого выделяется и копируется в буфер обмена. Предполагается вставка этого фрагмента в текстовый документ в качестве иллюстрации. При последующей команде Специальная вставка/Установить связь или Установить связь фрагмент визуально отображается в документе текстового процессора, при этом создается ссылка на файл-источник. Все изменения рисунка автоматически отображаются и в документе-приемнике. Важно, что DDE – связь поддерживается, пока работают приложения, между которыми эта связь установлена. При изменениях в файле-источнике следует первым запускать приложение, обрабатывающее этот файл, а затем приложение с документом-приемником. В этом случае DDE-связь будет обновляться сразу же при внесении изменений в приложении-источнике.

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

3. Низкая популярность DDE вынуждала Microsoft искать различные способы его усовершенствования. В качестве технологии более высокого уровня была реализована OLE 1.0 OLE 1 (Object Linking and Embedding — связывание и внедрение объектов). Она расширила возможности протокола DDE и, используя его как базовый механизм коммуникаций, позволила активизировать встроенный объект в документе, т. е. получить составной документ.

Определимся с некоторыми терминами:

Клиент (Client). Этим термином называется приложение, содержащее внедренные или связанные объекты. Например, если поместить лист электронной таблицы в документ текстового процессора, то текстовый процессор станет клиентом. Совмещая клиентское приложение и составной документ, можно построить приложение, кото­рое будет только обрамлением для другого приложения

Сервер (Server). Сервер — это приложение, которое используется клиент­ским приложением для работы с конкретным объектом. Внедренные или связанные объекты находятся в форматах того приложения, в котором они были созданы. Клиент обязан вызвать исходное приложение (сервер) для любых изменений содержимого объекта. В действительности при ра­боте с составными документами одновременно используются два прило­жения. В случае OLE предполагается, что серверное приложение распо­лагается на том же компьютере. При внедрении листа Excel в документ Word на компьютере должны быть установлены оба эти приложения. При использовании технологии ActiveX потребность в наличии сервер­ного приложения именно на том же компьютере отпадает (хотя его нали­чие может сильно сократить время работы). При разработке надстроек для Internet Information Server вся работа с объектом может происходить исключительно на сервере, который будет возвращать на локальный компьютер только данные, необходимые для отображения объекта.

Составной документ (Compound document). Это документ, который содер­жит один или более объектов (других документов). Каждый объект OLE рассматривается как составной документ.

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

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

Технология OLE опирается на связь, установленную между документом и приложением, а также на механизм, разработанный для связи приложений. Наличие такого механизма позволяет перенести в выходной документ фрагмент или файл / документ/ некоторого приложения, при этом он приобретает свойства встроенного или связанного объекта. Выходной связанный документ приобретает при этом свойства составного документа, т. е. Документа, имеющего встроенные или связанные объекты различных форматов, созданные другими приложениями. Однако не все приложения Windows поддерживают технику OLE. Способные к этому приложения делятся на три группы: OLE- серверы (приложения-источники, родительские приложения) представляют собой приложения, из которых можно встраивать объекты или связывать их с другими приложениями; OLE-клиенты (приложения-приемники) представляют собой приложения, которые могут размещать в своих документах встроенные ими связанные объекты из OLE-серверов. Такие документы называют составными; приложения, которые могут выполнять роль как сервера, так и клиента одновременно. Существуют два варианта использования OLE: установление связи с объектом и внедрение (встраивание) объекта. Основное различие между связыванием и внедрением объектов состоит в способе хранения данных.

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

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

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

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

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

4. Единственная проблема, связанная с OLE, состоит в том, что эта технология ограничивает свое действие рамками одной локальной машины. К тому же, для решения некоторых задач может потребоваться более тесный контакт приложений с аппаратурой. В таких случаях на помощь приходит техноло­гия ActiveX. ActiveX опирается на новые возможности технологии OLE, пре­доставляемые одной из ее фундаментальных основ — распределенной компо­нентной моделью объектов ( Distributed Component Object Model — DCOM ). OLE 2 использует в качестве основы для построения составных документов (документов, содержащих другие объекты) более простую технологию — компонентную модель объектов (Component Object Model — СОМ ). Внедрение или связывание объектов с помощью OLE обеспечивает именно СОМ, а DCOM помогает выполнять те же действия, но не только на отдельном компьютере, но и в рамках вычислительной сети. Другими словами, состав­ной документ может состоять из объектов, созданных на различных компь­ютерах. Эле­мент управления (компонент ActiveX) не существует внутри приложения, а располагается в отдельном файле. При этом приложение и компонент ActiveX взаимодействуют друг с другом. Программист отслеживает все воз­можные взаимодействия, устанавливая те или иные свойства компонента или задавая реакцию приложения на некоторые события.

Создание распределенной компонентной модели объектов (DCOM) корпо­рация Microsoft планировала уже очень давно. Вообще, все преимущества технологии DCOM видны уже из ее названия. "Распределенная" — означает, что используются объекты, расположенные не только на локальном компьютере, но и где-либо в локальной или глобаль­ной сети. "Компонентная" — означает, что программисты могут в полной мере использовать преимущества принципа конструктора Lego, из малень­ких кусочков которого способен собрать практически любую вещь. Мы уже рассматривали значение термина объект. Объекты DCOM работают примерно так же, как и любой объект в WINDOWS. Они выполняют опреде­ленные задачи по заранее установленным правилам и взаимодействует с другими объектами, используя закрепленный набор интерфейсов. Наконец, слово "модель" означает руководство к действию. Поскольку DCOM опреде­ляет спецификацию создания и взаимодействия объектов определенного типа, программисты обязаны придерживаться этой спецификации при соз­дании приложений.

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: