ActiveX изнутри
Томас Мейс, Нил Дж. Рубенкинг
ActiveX по праву можно считать перспективным инструментом для
разработок в Web.
Свое достаточно позднее вступление в борьбу за Web компания Microsoft
сопроводила завесой громких заявлений. Многие из разработчиков, увлекшись языком
Java фирмы Sun и платформой Netscape Navigator, восприняли обещания Microsoft
как обычный рекламный трюк. И оказались неправы. Многие из компонентов платформы
ActiveX уже получили путевку в жизнь и стали незаменимыми при решении задач
определенного класса, прежде всего для интрасетей.
По своей сути платформа ActiveX - это адаптаци существующих технологий
Microsoft применительно к Web. Данная концепция базируется на механизмах OLE и
COM - проверенных временем и ставших стандартами разработок для Windows.
VBScript - язык программировани ActiveX-объектов на страницах Web - представляет
собой диалект языка Basic приоритетного для Microsoft с момента ее основания.
Имеющиеся ныне инструменты дл подготовки Web-страниц на базе технологии ActiveX
явно обязаны Microsoft Visual Basic. В целом адаптаци прошла удачно.
Данная статья посвящена основным компонентам предложенного Microsoft решения
для Web. Здесь будут рассмотрены управляющие элементы ActiveX, язык подготовки
сценариев VBScript, браузер Microsoft Internet Explorer 3.0, в котором
предусмотрены эти элементы; состояние дел с авторскими инструментами,
необходимыми для работы с управляющими элементами ActiveX. Кроме того, мы
познакомимся с программными средствами, которые можно приобрести для создани
собственных управляющих элементов.
Управляющие элементы ActiveX
Что же это такое на самом деле? Наиболее простой ответ - и, как оказывается,
наиболее точный: "управляющий элемент ActiveX" - это просто новый маркетинговый
термин вместо "управляющего элемента OLE" (называвшегося прежде "управляющим
элементом OCX"). Любой готовый или созданный вами управляющий элемент OLE - это
уже ActiveX-элемент и может использоваться в оснащенных средствами для работы с
ним программах. Однако подобные OLE-элементы составляют лишь часть всего
многообразия управляющих элементов ActiveX и совсем не обязательно устроят
разработчиков для Web.
Типичный недостаток существующих OLE-элементов - их чрезмерные размеры
слишком велики. Это обусловлено сложностью структуры OLE-интерфейсов при полной
их реализации управляющими элементами, а также тем фактом, что при подготовке в
Microsoft библиотек, используемых для генерации управляющих элементов, размеры
их не оптимизировались (мягко говоря). Если в системе пользователя какой-то из
этих элементов отсутствует, приходится загружать его через Internet,
следовательно, размеру управляющих элементов Web страниц должен быть как можно
меньше. Некоторые из существующих OLE-элементов удовлетворяют этому критерию. Дл
устранения названного недостатка в Microsoft предложили два следующих
варианта.
Первый вариант: упростить определение ActiveX-элементов в части, касающейся
реализуемых интерфейсов. С технической точки зрения ActiveX-элемент - это
некоторый COM-объект, через основной OLE-интерфейс которого, IUnknown,
организуется доступ к остальным интерфейсам данного объекта. (См. "Модель
компонентного объекта OLE", PC Magazine/RE, N6/96, стр. 163.) Благодаря такой
схеме разработчики могут обеспечивать лишь те OLE-интерфейсы, которые
действительно необходимы для текущей задачи, не наруша при этом требований
существующей спецификации. Второй вариант: "перекроить" базовые средства,
используемые для подготовки ActiveX-элементов. (См. приложение "Создание
ActiveX-элементов: обзор инструментов".)
Вероятно, многие управляющие элементы ActiveX, т. е. OLE, хорошо знакомы
разработчикам, но, наверное, среди них есть и такие, которым необходимы
пояснения. По существу с помощью ActiveX-элементов программист создает некоторый
высокоуровневый, пригодный дл многократного использования объект с конкретной
полезной функцией. Затем этот элемент может быть передан (или продан) другому
программисту, которому пригодится как некий "кирпичик" в его программном
инструменте, обладающем средствами для взаимодействия с ActiveX-элементами.
(Здесь речь идет о предназначенном для Windows большинстве основных инструментов
дл Си/Си++, Basic, Pascal и многих других языков.) В роли ActiveX-элементов
может быть все что угодно - от обычной кнопки до полнофункциональной электронной
таблицы. В продаже имеются тысячи таких элементов от разных поставщиков. Их
богатые функциональные возможности и многообразие - отдельное, наиболее важное
достоинство платформы ActiveX.
VBScript
VBScript (Script версия языка Visual Basic) фирмы Microsoft - это язык
сценариев, предусмотренный в браузере Microsoft Internet Explorer, и наиболее
очевидный вариант выбора для программирования Web страниц на базе
ActiveX-элементов. Он представляет собой адаптированное для Web подмножество
языка VBA (Visual Basic for Applications) с принятым в Microsoft синтаксисом
Бейсика. Здесь используются обычные дл языка Бейсик обозначения объект-параметр
(перечисляемые через точку), процедуры, функции и структуры, пригодные для
управления выполнением программы, а также широкий набор традиционных для этого
языка функций. Все, кому ранее уже приходилось работать с современным языком
Бейсик, прекрасно справятся и с VBScript.
Как и в VBA, предложение Option Explicit в VBScript предназначено для явного
объявления переменных. Однако в отличие от VBA в VBScript вы не задаете явно
типы переменных, все они - вне зависимости от того, строка это или число, -
хранятся как тип Variant. Конечно, неявно заданные типы данных существуют -
включа integer, long, single, double, string, numeric, date и financial, - но
для системы это лишь формат представления данных. К счастью, имеются функции как
для преобразования, так и для проверки типов переменных (например, VarType,
IsNumeric), которые можно достаточно уверенно применять для Web страниц,
оснащенных средствами для проверки допустимости типов данных.
В VBScript вы не найдете средств для ввода-вывода файлов и для прямого
доступа к памяти. Такие ограничения, характерные также для Java и JavaScript,
обусловлены необходимостью исключить появление программ с разрушительным или
пагубным поведением. Удивительно, но среди средств VBScript даже не предусмотрен
объект Debug. Обнаружилось, что во всех имеющихся инструментах практически
полностью отсутствуют какие либо средства отладки.
Исходный текст VBScript-программы встраивается в HTML страницу с помощью
управляющих кодов <SCRIPT> и, как правило, помещается в раздел
<HEAD>. Программный блок предваряется предложением LANGUAGE="VBScript" с
сообщением браузеру о языке, на котором составлялась программа (в Internet
Explorer 3.0 возможно использование также JavaScript). Программный текст следует
поместить между кодами комментария (<! , >), тогда в старых версиях
браузеров, не оснащенных средствами для работы с VBScript, этот блок не будет
выводиться на экран.
Подобного рода упражнения - это как раз и есть конструирование Web страниц с
помощью ActiveX-элементов, стоит отметить, что в VBScript управление объектами
форм (form objects) HTML не отличается от манипуляций с текстовыми блоками и
кнопками. Даже применение этих простых средств позволит вам обогатить
разнообразными функциональными возможностями свою страницу. Обращения к объектам
форм организуются в VBScript путем указания имени формы FORM NAME и параметра
NAME любого объекта, имеющегося в этой форме.
Но ActiveX-элементы - это гораздо более мощное средство, чем HTML формы.
Управляющие элементы добавляются к программе с помощью кодов <OBJECT>. В
программе для внутренних обращений к объекту задаютс его идентификатор ID и
параметр CLSID - 128-разрядный глобальный уникальный идентификатор (GUID)
данного OLE элемента. При вызове ActiveX элемента из VBScript система
просматривает системный Реестр Windows, чтобы выяснить, зарегистрирован ли он
там. Если нет, система использует атрибут CODEBASE (из команды <OBJECT>),
в котором указан адрес сервера с требующимся элементом. После его загрузки и
инсталляции, проводимых некой встроенной системной службой, данный элемент готов
к работе.
Internet Explorer 3.0
Программа Internet Explorer фирмы Microsoft (испытаниям подверглась первая
бета-версия с Java-расширениями) - прекрасный, полнофункциональный браузер,
который постепенно завоевывает позиции на рынке, разделяя влияние со своим
основным конкурентом - Netscape Navigator. Для разработчиков наибольший интерес
представляют следующие три особенности Internet Explorer: этот браузер может
служить контейнером дл ActiveX-элементов, выполнять сценарии VBScript или
JavaScript, предусмотренные в HTML документах, и обеспечивает ресурсы
виртуальной машины (ВМ) Java дл исполнения Java-программ.
Реализация еще двух его возможностей не была завершена на момент подготовки
данной статьи (по крайней мере, об этом не сказано в документации); но, по всей
видимости, они будут весьма значительными. Первая - механизм ВМ Java будет
представлен разработчику как обычный ActiveX-элемент. Это позволит, например,
запускать программным путем любую Java программу. Вторая - в Internet Explorer
можно будет оформлять Java утилиты как обычные ActiveX элементы, что позволит
обращаться к их методам и параметрам из программ на VBScript и других языках
сценариев, с которыми работает данный браузер. Кроме того, в состав Internet
Explorer входит разработанная в Microsoft функция кода аутентификации
Authenticode. В результате поставщики элементов могут снабдить их цифровой
подписью, удостоверяющей подлинность, на основании которой конечные пользователи
решают, разрешить или запретить инсталляцию конкретных управляющих элементов во
время загрузки из Сети.
ActiveX Control Pad
Для создания Web страниц с заложенной в них возможностью использования языка
VBScript и ActiveX-элементов сгодится даже обычный текстовый редактор, однако в
этом случае вы столкнетесь с необходимостью ввода длинных, во многом
повторяющихс предложений. Эту процедуру значительно облегчит авторский
инструмент ActiveX Control Pad фирмы Microsoft, бета-версию которого в настоящее
время можно загрузить из сети бесплатно. По сравнению с тщательно отшлифованными
инструментами Visual Basic ActiveX Control Pad еще далек от совершенства и лишен
таких необходимых вещей, как средства отладки и контекстно-чувствительные
подсказки по синтаксу. Кроме того, предлагается ряд новых, ориентированных на
непрофессионалов примеров программирования, которые, по крайней мере в этой
версии, малопонятны и плохо организованы. Однако, поскольку более совершенных
средств нет, это все же лучше, чем ничего.
Основной интерфейс ActiveX Control Pad представлен отдельным окном для
редактирования текста, где выводится полный HTML-текст страницы, над которой вы
трудитесь. С левой стороны этого окна видны пиктограммы, указывающие положение
каких-то управляющих элементов, сценариев или программных блоков в HTML тексте.
С помощью данного редактора можно создать лишь некий каркас новых страниц,
размеченных HTML кодами либо импортировать уже существующий документ. (Следует
отметить, что эта программа практически не обеспечивает средств для
макетирования HTML страниц, поэтому дл подготовки HTML элементов, например форм,
лучше подыщите себе другой инструментарий.)
Выбрав из меню Edit (Правка) редактора ActiveX Control Pad пункт Insert
ActiveX Control (Вставить ActiveX-элемент) или щелкнув правой клавишей мыши на
контекстном меню, вы увидите список зарегистрированных в вашей системе
ActiveX-элементов. Выберите из него конкретный элемент, и появится окно некоего
модального редактора элементов с выведенным в псевдополе экземпляром данного
элемента. Можно визуально менять размеры и задавать значения параметров,
использу соответствующую таблицу или щелкая правой клавишей мыши на контекстном
меню, - все, как в среде Visual Basic. Когда все значения параметров установлены
и работа с формой завершена, редактор ActiveX Control Pad вставляет необходимый
вам программный блок <OBJECT> вместе с кодами <PARAM>,
соответствующими заданным вами параметрам, в HTML страницу. Кроме того,
добавляетс корректное значение 128-разрядного идентификатора объектного класса
Object Class ID (делать это вручную не придется!). В том месте вашей страницы,
куда был вставлен в HTML текст программный блок для данного объекта, появится
ваш элемент.
Закончив с размещением на странице ActiveX-объекта, вы можете дополнить ее и
VBScript программой, предназначенной для обработки событий и изменени параметров
этого объекта. Опытные программисты, по видимому, будут делать это вручную,
просто встраива нужные процедуры в HTML документ. Однако, поскольку редактор
ActiveX Control Pad рассчитан и на непрофессионалов, в него входит мастер
подготовки сценариев Script Wizard - новый инструмент для создани в визуальном
режиме программ, с помощью которого и неподготовленные пользователи смогут
составлять сценарии. К сожалению, он не оправдывает связанных с ним надежд и
скорее всего окончательно собьет с толку неопытных пользователей.
Интерфейс мастера Script Wizard представлен трем панелями. В левой панели
выводятся поддающаяс дальнейшему развертыванию иерархия объектов вашей программы
и соответствующий каждому из них список событий. На правой панели - еще одна
аналогична иерархия с запутанной смесью объектов, параметров и событий. На
нижней панели приводится описание на английском языке тех действий, которые
выполняет конкретный обработчик событий, выбранный на первых двух панелях.
Принцип работы таков: вы выбираете на левой панели некоторое событие, на правой
панели некоторое действие и вводите через всплывающее диалоговое окно
необходимые параметры. После этого Script Wizard генерирует соответствующую
строку программы, смысл которой разъясняется по английски на нижней панели
(можно вместо этого выводить строку на языке Basic). На практике же оказывается,
что интерфейс программы настолько запутан и так богат потенциальными ловушками,
что непрофессионалам лучше держаться от нее подальше и заняться освоением азов
языка Basic.
Компоновка ActiveX-элементов
Кроме работы с отдельными управляющими элементами, в редакторе ActiveX
Control Pad их можно компоновать. Группа ActiveX-элементов, объединенных внутри
единого контейнера, носит название компоновки ActiveX-элементов (ActiveX Layout
Control). В определенной степени данна концепция аналогична понятию формы в
Visual Basic, и благодаря ей в вашем распоряжении существенно больше
возможностей, чем при использовании только HTML. Оперируя в рамках компоновки,
программист может достаточно точно размещать в двумерном пространстве отдельные
элементы, учитывая их взаимное наложение и видимость. В результате можно придать
интерфейсу более Windows-подобный внешний вид.
Для создания компоновок в ActiveX Control Pad выберите режим Insert Layout
(Вставить Компоновку). На экране появятся форма для ее настройки и окно с
инструментами Toolbox, содержащее элементы, которые можно поместить в эту форму.
В числе представленных в Toolbox элементов: метки, текстовые и списочные окна,
полосы прокрутки, командные кнопки, зависимые и независимые переключатели,
закладки и изображения с "горячими точками". Можно дополнять Toolbox новыми
закладками и ActiveX-элементами. Такие стандартные управляющие элементы и
элемент компоновки будут в конце концов включены в Internet Explorer, что
освободит программистов от необходимости загрузки их по сети.
Готовая компоновка сохраняется как текстовый файл с расширением ALX. В этом
файле определение самой двумерной компоновки заключено между кодами <DIV>,
а составляющих ее элементов - ограничено внутри данного блока кодами
<OBJECT>. (Отметим, что эти файлы могут содержать также процедуры
VBScript.) Обращения к имеющейся на HTML странице компоновке организуются с
помощью стандартных ссылок <OBJECT>. На этапе выполнения можно запрашивать
эти управляющие элементы либо локально из своей системы, либо загружать по сети
с удаленного сервера. Возможность подготовки компоновок - это, конечно,
значительный шаг вперед от причуд HTML, поскольку теперь разработчики смогут
составлять достаточно сложные комплексы программ с обилием управляющих элементов
с точно выверенным их размещением.
Достоинства и недостатки
Технология ActiveX заслуживает пристального внимания, но ей еще предстоит
трудная борьба за Web. Средства для ее использования имеются пока только в
браузере Internet Explorer, который, в свою очередь, ограничивается лишь средой
Windows - по крайней мере на текущий момент. (По словам представителей
Microsoft, в будущем технология ActiveX будет подготовлена и дл платформ
Macintosh и UNIX.) Средства для работы с управляющими элементами ActiveX, может
быть, найдут пристанище и в браузерах других поставщиков, однако, как сообщили в
Netscape, браузер Navigator останется в стороне от этой технологии. И пока за
ним будет сохраняться львиная доля рынка браузеров, рассчитывать на применение
технологии ActiveX в общедоступных узлах Internet не приходится.
Однако мы упустили из виду сферу частных интрасетей, и именно на этом поприще
влияние ActiveX может оказаться значительным уже сейчас. В настоящее врем
ActiveX и VBScript более всего приспособлены дл модернизации клиентской части
используемых в этих сетях программ, нечто подобное делается и с помощью языка
Java. Однако, если инструменты и библиотеки Java еще только начинают появляться,
на рынке ActiveX уже сейчас представлен богатый арсенал управляющих элементов от
различных фирм. Задача создания средствами Java страницы Web, оснащенной
механизмом построени полнофункциональной диаграммы или таблицы данных,
потребовала бы немыслимых усилий разработчика. А аналогичная задача средствами
ActiveX решаетс достаточно просто.
Совершенно очевидно, что в Microsoft немало заботятся о продвижении стандарта
ActiveX на рынок, причем до такой степени, что даже бесплатно предлагают всем
желающим свой браузер, описание языка, инструментальные средства и
подготовленные наборы управляющих элементов. Если вы планируете разработку
прикладной программы для интрасети с расширенными возможностями ее клиентской
части - эта технологи будет вам полезна.
Microsoft ActiveX Control Pad Цена,
рекомендуемая изготовителем: бесплатно через сеть; адрес http://www.microsoft.com/workshop/author/cpad/download.htm
Microsoft ActiveX Development Kit Цена,
рекомендуемая изготовителем: бесплатно через сеть; адрес http://www.microsoft.com/intdev/sdk/docs/scriptom/
Microsoft Internet Explorer 3.0 Цена,
рекомендуемая изготовителем: бесплатно через сеть; адрес: http://www.microsoft.com/ie/ie.htm
Скрипт-версия Microsoft Visual Basic Цена, рекомендуемая изготовителем: бесплатно через
сеть; адрес: http://www.microsoft.com/vbscript/us/vbsdown/vbsdown.htm
Создание ActiveX-элементов: обзор инструментов
Нил Дж. Рубенкинг
Встраивая управляющие элементы 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 ваши достижения смогут
оценить многие.
Адреса Internet для разработчиков ActiveX-элементов
©СК Пресс 97-2 e-mail: pcmagedt@aha.ru PC Magazine,
November 5, 1996, p. 267
|