Создание ActiveX-элементов: обзор инструментов

Автор: Ruben King Сайт: http://www.pauk2001.h1.ru/
   
   Встраивая управляющие элементы ActiveX, вы можете значительно расширить функциональные возможности Web страниц; прежде аналогичного эффекта вы добивались путем внедрения их предшественников, элементов OLE, предусмотренных в числе средств для ускоренной разработки программ. Но при подготовке этих элементов вам не избежать некоторых проблем.
   
   Если же вы успели приобрести кое-какой опыт в составлении OLE элементов, считайте, что вы не зр потратили время. Теперь у вас есть хорошая база, для того чтобы начать разработку ActiveX. Дело в том, что в Microsoft ActiveX рассматривает как нечто, заключающее в себе элементы и OLE-технологии. В документации по ActiveX часто встречаются ссылки на публикации об OLE, попадаются даже такие фразы: "Управляющие элементы ActiveX, ранее именовавшиес элементами OLE...".
   
   Наиболее существенное отличие в этих технологиях разработки состоит в том, что для ActiveX-элементов необходимо реализовать возможность загрузки по сети. Другое важное отличие касается допустимости отказа от применения некоторых функций ActiveX-элемента, если браузер или какой-то другой контейнер, в среду которого происходит его загрузка (например, Internet Explorer), не обладает средствами для работы со всеми его функциями. В процессе загрузки ActiveX-элемент должен проводить проверку ресурсов этого контейнера и, если выполнение каких либо функций невозможно, работать в усеченном варианте.
   
   Значительно возросшие за последние годы быстродействие систем, объем доступной памяти и емкость жесткого диска сняли остроту проблемы, касающейся размеров программ. Обнаружилось, что, используя базовые средства разработки и инструменты визуального конструирования, можно существенно ускорить процедуру создания интересных полнофункциональных программ. А если программа оказывалась слишком большой, ее носителем станут компакт-диски, благо они дешевы! Однако растущее влияние технологии ActiveX навязывает новые правила, вынуждая нас вспомнить о давно забытых добродетелях: лаконичных кодах.
   
   Стратегия выбора
   Любой OLE-элемент - это одновременно и ActiveX-элемент (хотя обратное справедливо не всегда). Поэтому, если вам приходилось работать с библиотекой Microsoft Foundation Classes (MFC) и комплектом инструментов Control Developer's Kit (CDK), считайте, что один способ создани собственного ActiveX-элемента вам уже знаком. Подготовленный средствами MFC OCX-файл может быть сравнительно небольшим, но всецело зависит от наличия DLL-библиотеки для обслуживания MFC-функций, размер последней версии которой достигает почти одного мегабайта. Поэтому если пользователь работает с такой Web страницей, где используется совершенно новый ActiveX-элемент, то его загрузка по сети потребует какого-то времени, т. е. возникает небольшая задержка. Мы, наверное, уже привыкли к такого рода ожиданиям, но в данном случае врем загрузки может превысить и 5 мин, например, если DLL-библиотека размером в 1 Мбайт загружает через 28,8-кбит/с модем. Естественно, пользователь будет обвинять автора данной Web страницы во всех грехах, тогда как последний отнесет их на счет разработчика этого элемента. Вот почему большинство программистов, занимающихся подготовкой ActiveX-элементов, заинтересованы в замене CDK другими средствами.
   
   Один из вариантов замены CDK - библиотека ActiveX Template Library (ATL), разработанная группой специалистов из Microsoft, ответственной за создание языка Visual C++ (см. соответствующий URL-указатель в таблице). ATL работает в рамках среды MFC, тем не менее размер сформированных на ее основе управляющих элементов существенно меньше. Для тех, у кого есть опыт программирования на базе MFC, вполне разумным решением станет, вероятно, использование ATL.
   
   Однако для создания действительно компактных элементов придется отказаться от MFC и даже от библиотек рабочих программ C. Обратившись к Web-узлу Microsoft и ознакомившись с примерами и документацией к инструментарию ActiveX Controls Framework, вы поймете, как это сделать. Хранящаяс здесь информация уже сама по себе достаточно обстоятельна; вполне возможно, вы решите перебросить ее на свой диск или распечатать. Для компиляции приведенной в качестве примера программы вам потребуется пакет ActiveX Development Kit. Предложенный здесь текст ясно изложен и хорошо документирован, хотя и подвержен частым обновлениям. (В окончательной версии, вероятно, уже не будет фраз типа "//в окончательном варианте уберите эту "примочку"!".) Используя имеющиеся здесь шаблоны и дополнительные файлы, можно с успехом учесть при разработке многочисленные рутинные тонкости механизма OLE. Предлагается даже мастер ActiveX-элементов (Control Wizard), с помощью которого вы реализуете свой проект. Для работы потребуются знания об основах механизмов OLE и ActiveX, однако на вполне достижимом для рядовых программистов уровне.
   
   К сожалению, этого не скажешь об еще одном варианте для решения этой проблемы - системе разработки эталонных управляющих элементов, носящей название BaseCtl. Ее созданием занималась группа специалистов Microsoft, в свое время давшая жизнь Internet Explorer. Этот инструментарий входит в пакет ActiveX Development Kit. Отрадно то, что подготовленные на базе BaseCtl элементы максимально компактны. Но не обольщайтесь: для их создани потребуется глубокое понимание работы механизмов COM, OLE и ActiveX. Полагаем, что все это рассчитано на корифеев ракетостроения - успеха в самостоятельной разработке управляющих элементов с помощью BaseCtl смогут добиться лишь наиболее одаренные и грамотные программисты.
   
   А что же Java? Согласно планам Microsoft, роль некоторого управляющего элемента ActiveX будет выполнять виртуальная машина VM Java, предусмотренная в Internet Explorer. Основная цель планов компании такова: любая Java-утилита, исполняемая с помощью VM Java Microsoft, должна восприниматься как самостоятельный ActiveX-элемент и быть полноправным компонентом среды ActiveX. Ряд крупных разработчиков, в том числе Borland, Microsoft, Powersoft и Symantec, тоже намерены подготовить и включить в свои системы разработки на языке Java соответствующие средства для создани ActiveX-элементов. В результате, с одной стороны, Java-утилиты смогут обращаться к интерфейсам ActiveX-элементов, а с другой, интерфейсы Java-утилит будут открыты для обращений извне, т. е. они сами становятся самостоятельными ActiveX-элементами.
   
   Надо отметить, что упомянутые нами инструменты для разработки ActiveX-элементов не единственные возможные средства; для этих целей подойдет любой язык для 32-разрядной среды Windows. Однако поскольку спецификация ActiveX-технологии все еще развивается, а образцы программ составленны на языке Си, наиболее подходящие варианты - это Cи++ и Java.
   
   ActiveX Development Kit
   Когда готовилась эта статья, существовала лишь предварительная версия пакета ActiveX Development Kit, и еще некоторое время в нее будут вноситьс изменения. Представители Microsoft, в частности, заявляют, что новейшие технологии сначала будут вводиться в ActiveX Development Kit, а затем будут перенесены в другие SDK по мере популяризации этих технологий. Например, первым пристанищем спецификации ISAPI (Internet Server API) служил именно этот пакет, а затем она перекочевала в Win32 SDK. Очевидно, цель преследуется одна - сохранить размер ActiveX Development Kit в приемлемых рамках и обеспечить легкость его загрузки через сеть. По мере разработки новых версий связанных с ними продуктов в этот пакет будут вноситься изменения. Текущая бета-версия ориентирована на Internet Explorer 3.0; следующая будет рассчитана на бета-версию Internet Explorer 4.0 (кодовое наименование Nashville).
   
   Хотя технология ActiveX-элементов - это основной компонент ActiveX Development Kit, в него входит также ряд других полезных инструментов и спецификаций. В числе наиболее важных, с точки зрения разработчика, средств стоит отметить функции IMAGEHELP, с помощью которых выполняется цифровое визирование создаваемых ActiveX-элементов, и механизм Internet Component Download для проверки пользователем такой "цифровой подписи" перед тем, как разрешить загрузку конкретного элемента (см. рисунок, на котором представлено диалоговое окно верификации с сертификатом аутентичности элемента). Наличие подобной "электронной обертки" придаст пользователю уверенности в том, что загружаемый им компонент не "троянский конь" и не инфицирован вирусами. Кроме того, средства Internet Component Download позволяют отслеживать версии ActiveX-элемента, и в случае появления новой версии на системе пользователя автоматически происходит замена предыдущей.
   
   В защиту авторского права и гарантии конфиденциальности
   Имеется также функция, обеспечивающа разработчику гарантии защиты от незаконного использования его элемента. Как только вы помещаете с таким тщанием подготовленный ActiveX-элемент на свою Web страницу, он сразу же становится доступным любому пользователю на земном шаре. Однако любые неблаговидные попытки присвоить ваш продукт обречены на провал. Без лицензии от разработчика данный элемент будет функционировать лишь в режиме выполнения и невозможно будет использовать его дл разработки. Функция лицензирования - это факультативный вариант, но для тех, кто надеетс продать более одного экземпляра своего элемента, имеет смысл ее установить.
   
   Среди многочисленных инструментов арсенала ActiveX Development Kit выделим VBScript и CryptoAPI. VBScript, официально называемый Microsoft Visual Basic Scripting Edition, - это эффективное, упрощенное подмножество языка Visual Basic, специально предназначенное для формировани активного содержимого HTML-документов. Его непосредственный конкурент - язык JavaScript фирмы Sun. Microsoft планирует выпуск версий VBScript не только для Windows и Macintosh, но и для платформ Digital, HP, IBM и Sun.
   
   Хотя обычно Web страницы доступны всем желающим, довольно часто возникает необходимость передачи по Internet конфиденциальной информации. В интерфейсе CryptoAPI предусмотрены функции системного уровн для шифрования, расшифровки и прочих криптографических операций. Это значит, что имеюща с ним дело программа или модуль могут обойтись без собственных аналогичных функций. Кроме того, определенные алгоритмы шифрования причисляютс Правительством США к разряду государственной тайны, и поэтому экспорт продуктов, в которых используютс такие технологии, запрещен. На программы и ActiveX-элементы, в которых шифрование выполняется с помощью криптографических функций CryptoAPI, такие ограничения не распространяются. Интерфейс CryptoAPI работает в среде Windows NT 4.0, соответствующие средства войдут и в следующие версии Windows 95.
   
   Чего же ждать от будущего? Конечно, появлени новых продуктов, оснащенных средствами для работы с ActiveX-элементами. В настоящее время подобные средства имеются только у одного браузера, Microsoft Internet Explorer (существует, правда, ActiveX-расширение к Netscape Navigator, разработанное в фирме NCompass Labs, www.ncompasslabs.com/). Поставщики других браузеров, не считая Netscape, в спешном порядке приступили к подготовке аналогичных средств, хот конкретных дат их выпуска никто не называет. Эволюция пакета ActiveX Development Kit продолжается, и, возможно, одна из его версий войдет в Internet Explorer 4.0. В состав новой версии Windows NT 4.0 будет включен механизм DCOM (Distributed Component Object Model). После того как этот механизм получит широкое распространение, станет возможным прямое взаимодействие ActiveX-элементов с удаленных друг от друга систем.
   
   В настоящее время весь пакет ActiveX Development Kit находится в состоянии непрерывных изменений. Если вы намерены заняться разработкой ActiveX-элементов, то стоит достаточно регулярно "навещать" определенные Web-узлы, что-бы следить за новинками в этой сфере. Подготовка управляющих элементов не такое уж простое занятие, но благодар Web ваши достижения смогут оценить многие.
   
   

Опубликовано: HTTP://WWW.R-T-F-M.INFO, pauk ©® 2000-2011.
All rights reserved.
При перепечатки ссылка на сайт обязательна.
Мнение администрации сайта не всегда совпадает с мнением автора..