Элементы управления ActiveX- это самостоятельные программные компоненты, которые можно использовать в разрабатываемых приложениях для реализации необходимых функциональных возможностей. Элементы управления ActiveX создаются с использованием технологии Component Object Model (COM - Компонентная объектная модель), разработанной фирмой Microsoft, и не являются самостоятельным приложением
- они выполняются только в приложении, которое позволяет встраивать элементы управления ActiveX, являясь, тем самым, для них неким контейнером.
Элемент управления ActiveX представляет собой небольшую программу, которой браузер выделяет на странице определенный участок прямоугольной формы. В пределах своего участка орган управления полностью отвечает за перерисовку экрана и взаимодействие с пользователем.
Не всякое приложение может быть контейнером для элементов управления ActiveX. Оно должно поддерживать технологию СОМ и предоставлять возможность манипулирования встраиваемыми компонентами. Многие приложения фирмы Microsoft позволяют широко использовать элементы управления ActiveX либо для расширения функциональных возможностей самого приложения, либо для быстрого создания новых приложений, использующих элементы управления ActiveX в качестве строительных блоков. К подобным приложениям можно отнести Microsoft Visual Basic, Microsoft Access, Microsoft Internet Explorer и некоторые другие.
Технология СОМ позволяет использовать объекты со своими свойствами, методами и событиями, которые создаются не во время выполнения программы, написанной на каком-либо объектно-ориентированном языке программирования, а существуют в виде отдельных программных единиц, называемых компонентами. При включении подобного объекта-компонента в тело разрабатываемой программы он раскрывает свои свойства и методы, которые можно получать или устанавливать а также выполнять.
Для реализации какой-нибудь функциональной возможности с помощью элемента управления ActiveX, например отображения дерева каталогов, программист может разработать свой элемент управления ActiveX, а может воспользоваться одним из многочисленных элементов управления ActiveX, разработанных и распространяемых другими фирмами.
Элементы управления ActiveX можно использовать как на стороне сервера, так и на стороне клиента. В последнем случае их применяют для решения тех же задач, что и аплеты Java:
1. реализация полос прокрутки, раскрывающихся меню и других визуальных элементов управления, которые средствами HTML создать нельзя;
2. прием обработка и вывод данных от пользователя или серверного компонента, с последующим построением динамически меняющихся диаграмм, 3. решение оформительских задач - например, покрытие выделенного им участка узором, плавным переходом цветов, движущимся текстом или изображением.
Дополнительно они предоставляют неограниченный доступ к ресурсам локального компьютера. Возможность доступа элементов управления ActiveX к локальным ресурсам компьютера имеет не только преимущества, но и недостатки.
Для встраивания в HTML-страницу внешних объектов предназначен тэг <object>, который является контейнером для тэгов <param>, определяющих значения свойств включаемого объекта.
Любой устанавливаемый на компьютере элемент управления ActiveX регистрируется в системном реестре, куда заносится и там же хранится соответствующая информация. В разделе HKEY_CLASSES_ROOT/CLSID/ реестра хранятся уникальные идентификационные номера всех установленных на компьютере элементов управления ActiveX. В дальнейшем эта информация используется браузером Internet Explorer для обработки HTML-страниц, содержащих встроенные элементы управления ActiveX.
Для элементов управления ActiveX обязательно задание параметра classid. Значением его является уникальный идентификационный номер встраиваемого элемента управления ActiveX. При загрузке страницы браузер проверяет, установлен ли элемент управления на компьютере пользователя, осуществляя его поиск в системном реестре по заданному идентификационному номеру. В случае отсутствия записи в реестре браузер автоматически начинает процедуру загрузки элемента управления ActiveX с сервера, URL-адрес которого указан в параметре codebase тэга <object>.
Значение параметра classid представляет строку, определяющую встраиваемый объект, и для зарегистрированных элементов управления ActiveX задается в форме:
"сІБІ^ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХ" Первая часть clsid: сообщает анализатору браузера, что вставляется элемент управления ActiveX. Вторая часть представляет собой уникальный идентификационный номер этого элемента.
В параметре codebase задается адрес компонента, по которому браузер может загрузить его на компьютере пользователя в случае отсутствия.
Пример:
<object id="myactx" width="32" heigth="32" classid="CLSID:12D3959D-504 8-11D3-A272-8C0305C10000"
codebase="http://somesite.ru/ActiveX/advert32.cab#version=l,0,0,0">
</object> После адреса элемента управления задается его версия в виде #version=a,b,c,d, где a и b представляют, соответственно, старшее и младшее слово максимально доступной на сервере версии элемента управления, а c и d - соответственно старшее и младшее слово минимально доступной на сервере версии элемента управления. Эти значения используются браузером в процессе принятия решения о загрузке элемента управления с сервера. Если на компьютере пользователя установлена более новая версия элемента управления, то загрузка не производится.
Значения, определяющие интервал доступных версий компонента могут быть все установлены равными "-1". В этом случае элемент управления загружается, если дата выпуска его версии на сервере позже даты его установки на компьютере пользователя.
Оптимальным способом вставки элементов управления ActiveX в HTML-страницу является использование визуальных редакторов, таких, как MS Frontpage.
Широко используемые на HTML-страницах объекты - Java-апплеты и элементы управления ActiveX - также разрабатываются с учетом их безопасного применения. Стратегии безопасности для этих двух типов объектов различны. Если средства разработки Java-аплетов вообще не позволяют им обращаться к информации, расположенной на компьютере, то с элементами управления ActiveX дело обстоит немного сложнее. Последние используются не только в Web-приложениях, но и как строительные единицы при разработке обычных приложений. Поэтому ни одна среда разработки элементов управления ActiveX не накладывает ограничений на доступ к информации, хранящейся на компьютере, где используется этот элемент.
Файл с расширением .ocx, в котором содержится компонент системы ActiveX, получает управление практически так же, как и любой другой исполняемый файл в Windows, и обладает теми же правами - например, правом бесконтрольной записи на диск (под Windows NT эти права могут быть ограничены уровнем привилегий пользователя, запустившего данный компонент).
Поэтому ограничение доступа к информации элементу управления ActiveX достигается совместным использованием системы безопасности браузера и мероприятиями, связанными с регистрацией и установкой элементов управления ActiveX на компьютере пользователя при загрузке HTML-страницы.
Если используемый на странице элемент управления ActiveX не установлен на компьютере пользователя, то браузер начнет процедуру загрузки и установки элемента управления на этом компьютере.
Для обеспечения безопасности загрузки элементов управления ActiveX используется технология цифровых сертификатов. Прежде чем загружать необходимые файлы, браузер проверит, снабжен ли элемент управления цифровой подписью, и если да, то в диалоговом окне отобразит содержимое цифровой подписи, если нет - предупредит пользователя о том, что будет загружаться элемент управления без цифровой подписи. Пользователь сам решает, стоит ли ему загружать данный элемент управления.
Разработчик элемента управления ActiveX снабжает свой элемент цифровой подписью следующим образом:
1. Разработчик получает соответствующий сертификат подлинности от организации, уполномоченной на это. Одной из таких организаций является VeriSign(http://digital.verisign.com/). Основная функция подобных орагнизаций - проверить подлинность и правильность информации о фирме или индивидуальном программисте, желающих подписывать свои продукты.
2. После получения сертификата с помощью специального программного обеспечения, поставляемого разными фирмами, производитель программного продукта вставляет цифровую подпись в двоичный код распространяемого им программного обеспечения, например элемента управления ActiveX.
Действующая цифровая подпись гарантирует, что загружаемый элемент управления ActiveX произведен конкретной фирмой или лицом, и подтверждает, что он никем не был изменен со дня его подписания фирмой-производителем.
Система ActiveX и реализованный в ней механизм безопасности заметно удобнее использования языка Java. Отсутствие защитной оболочки виртуальной машины позволяет расширить функциональность компонентов ActiveX. Им доступен прямой и эффективный контроль над ресурсами компьютером, который невозможно реализовать Java-аплетами.
Однако эта технология не ограждает от проблем, связанных с наличием уязвимостей в защите браузера. Кроме того, чтобы получить цифровой сертификат и подписать свой элемент управления ActiveX, разработчик должен внести единовременный денежный взнос, а затем производить ежегодную плату.
В случае разработки элементов управления ActiveX для сервера Web их можно не подписывать. Эти модули не загружаются клиентами, а выполняются непосредственно на сервере.
Выбирая между серверной и клиентской активностью, а также способами их реализации, необходимо учесть следующие факторы:
1. Кроссплатформенность - необходимо обеспечить совместимость решения с максимальным количеством компьютерных платформ.
2. Минимизация объема загружаемых клиентских программ.
3. Обеспечение безопасности информации, передаваемой клиентом на web-сервер.
Лекция посвящена способам организации активных web-серверов, формированию динамических документов HTML с помощью CGI, языкам Perl, PHP. Рассматриваются приложения ISAPI и их использование для формирования динамических документов. Рассказывается про среду ASP и ASP.NET.
oCGI-интерфейсoПрограмма CGIoPerloPHP
oРасширения ISAPIoФильтры ISAPI
oПример пустой ASP.NET-страницы
⇐Java | Введение в технологии создания Интернет-узлов | Cgi⇒