Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ActiveX объекты




Классификация приложений по отношению к технологии OLE (COM).

OLE (связывание и внедрение объектов), OLE Automation.

Технология OLE (Object Linking and Embedding) или OLE-1 предполагает следующие возможности интеграции:

· перенос данных из одного приложения в другое через буфер обмена, с преобразованием исходного формата данных в формат приложения – приёмника (или в некоторый общеизвестный формат);

· вставка (внедрение) в приложение А объекта, порожденного приложением Б вместе со ссылкой на приложение – родитель (то есть Б), но без связи с исходным файлом данных;

· вставка (внедрение) в приложение А объекта, порожденного приложением Б вместе со ссылкой на приложение – родитель (то есть Б) и на исходный файл данных.

С целью создания OLE2 фирма Microsoft разработала и продолжает совершенствовать стандарт на описание объектов – COM. Современные информационные системы, основанные или совместимые с Windows, поддерживают разработанную фирмой Microsoft COM (component object model) – технологию. Расширение этой технологии для случая распределенных по сети объектов привело к созданию модели DCOM (Distributed COM).

Разработка COM-технологии стала возможной благодаря тому, что объектно-ориентированный подход превратился в стандарт для всех современных систем программирования. С появлением COM-технологии фирма Microsoft развила технологию OLE-1 до OLE-2. Технология OLE-2 дает возможность из программы на внутреннем языке (скрипт – языке), прикрепленной к документу приложения А, обратиться к объектам (их свойствам и методам) другого приложения – приложения Б.

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

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

Поясним разные виды OLE.

Можно просто внедрять данные. В этом случае обычно данные преобразуются из одного формата в другой. Передача может осуществляться через некоторого посредника: буфер обмена, файл общедоступного формата (например, текстовый). Заметьте, что во втором случае, вообще говоря, данные преобразуются дважды: из формата приложения Б в текстовый файл, а затем из текстового файла в формат приложения А! С буфером обмена та же ситуация, т.к. в нем данные хранятся в некотором обобщенном формате. Потери при таком преобразовании практически неизбежны. Попробуйте перенести, например, оформленную цветами, шрифтами, границами, с объединенными ячейками и т.п. таблицу из MS Word в MS Excel, вы убедитесь в том, что потери достаточно существенны.

Второй недостаток – одна и та же информация хранится дважды, причем в двух видах, что ведет к лишней трате ресурсов. Изменение исходного фрагмента никак не отражается на файле со вставленным кусочком, то есть со временем возникает противоречивость данных! Еще важный недостаток этого метода – ограниченная возможность изменения вставленных данных, т.к. приложение А не обладает набором функций, реализованным в приложении Б. Так вы не можете в MS Word корректировать вставленный рисунок.

Можно вставить данные вместе с «кусочком» приложения. Эта операция OLE отличается от обычной операции копирования и вставки тем, что она передает приложению-клиенту и сведения об источнике. Это - название приложения-сервера, тип данных (страница, документ, …), имя, назначенное системой этим данным (если они не были извлечены из файла или не были сохранены в файле), название или координаты диапазона (если копируется только часть объекта), представление объекта в формате Windows Metafile (.WMF). Если объект не является рисунком, его представлением может быть значок того приложения, которое создало объект, для файловых объектов добавляются свойства.

При этом сохраняется возможность корректировать вставленные данные, используя «родное» приложение. Ограничение данного способа интегрирования состоит в требовании, чтобы оба приложения были установлены на компьютере. Возможны два варианта последнего метода интегрирования: а) связь устанавливается и с файлом-источником и с приложением-источником; б) связь устанавливается только с приложением-источником, а данные копируются. Очевидно, что во втором варианте изменения в файле-источнике не приведет к изменениям в файле-приёмнике.

Сравните внедрение объекта со связью с файлом-источником и без этой связи, ответив на следующие вопросы: 1) какой объем дисковой памяти требуется для хранения документов, 2) что происходит, если исходный файл (вставленный объект) изменен, 3) а если исходный файл переименован, удален, 4) как перенести документ со вставленным объектом на другой компьютер.

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

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

Сервер СОМ (или OLE) обычно представляет собой исполняемый файл (или динамическую библиотеку DLL), содержащий, по крайней мере, один объект COM. Различают три типа серверов:

· внутренние серверы (in-process) являются динамическими библиотеками, подключенными к приложению клиенту и работающие с ним в одном адресном пространстве;

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

· удаленные серверы (remote) являются приложениями, функционирующими на другом по отношению к клиенту компьютере. Эти серверы поддерживают технологию DCOM.

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

Приложение мини – сервер (Mimi server Application) – имеет OLE-объект, но может быть запущено только как часть приложения – клиента. Их называют и апплетами OLE и компонентами ActiveX.

Клиентом COM обычно называется приложение, из которого осуществляется доступ к объекту COM. Клиенты могут быть и динамическими библиотеками.

Приложение COM – клиент не имеет модели для своих данных, но может обращаться к приложениям-серверам с целью обработки их объектов. Приложения – контейнеры или приложения – клиенты (Container Application) – самостоятельное приложение, в которое можно внедрить или связать с ним объект OLE. Но приложение – контейнер не может создавать свои OLE – объекты. Иногда это – только язык, каким был, например, стандартный «сервер сценариев» в Windows. Следует заметить, что в настоящее время и у сервера сценариев есть объектная модель.

Если приложение является полным OLE-сервером (Full Server Application), то для описания данных оно предлагает объектную модель, а для работы со своими или внешними данными оно использует встроенный язык обработки, кроме того, это – самостоятельное приложение.

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

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

ActiveX объекты объединяются в библиотеки, файлы с расширением.ocx, и поставляются вместе с приложениями и самостоятельно. ActiveX объекты работают в адресном пространстве приложения – приемника, следовательно, обладают всеми его полномочиями в отношении к операционной системе и к другим приложениям.

Одним из достоинств операционной системы Windows является наличие единого набора элементов управления, доступного в разных приложениях. Этот инструментарий разработан как ActiveX объекты.

Название ActiveX объект определяется следующим: эти объекты появились как расширение (дополнение) стандартных (для Windows) элементов управления. То есть это – дополнительные реагирующие на действия пользователя объекты.

Следует заметить, что иногда названия ActiveX-объект и COM-объект употребляют как синонимы. По-видимому, это не совсем верно. COM-объект в отличие от ActiveX-объекта не реагирует на действия пользователей. Между этими понятиями часто возникает путаница. Когда это будет для нас важно, мы будем считать понятие COM объекта более широким, а ActiveX – частным. Разница заключается в двух характеристиках: 1) том, как эти объекты создаются и выполняются операционной системой – существенная характеристика; 2) ActiveX объектами мы будем называть действительно активные объекты, то есть, реагирующие на действия пользователя – менее существенная характеристика.

Подобное разделение терминов не является общепринятым, поэтому вы можете встретить в литературе вариант, при котором между этими понятиями нет различий (наиболее часто), либо вариант, при котором, наоборот, считается паонятие COM более узким.

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

COM-объект – это, скорее внешний по отношению к вашему приложению объект. Его экземпляры следует создавать, пользуясь встроенными средствами такими, как NEW, CREATEOBJECT и т.п.




Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 983; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.