Платформа Active: общие сведения
Роль ActiveX в разработке программного обеспечения
Использование ActiveX в Visual Basic
Применение ActiveX для автоматизации работы с Microsoft Word ActiveX пo праву считается одной из самых важных технологических парадигм, рожденных в Редмонде (Вашингтон). ActiveX предоставляет в ваше распоряжение набор компонентов многократного использования и возможности простой и последовательной работы с этими компонентами.
Компоненты ActiveX являются частью модели COM (Component Object Model, модель многокомпонентных объектов). Работа с такими компонентами не зависит от того, работают ли они на одном компьютере, на разных компьютерах с различными операционными системами или даже на разных аппаратных платформах. Перед программистами открываются замечательные возможности для разработки приложений, которые работают в сети или через Интернет так, словно все составляющие находятся на вашем собственном компьютере! ActiveX обеспечивает для объектов СОМ удобный интерфейс, который одинаково работает на многих разнородных системах. В этом уроке вы познакомитесь с некоторыми технологиями ActiveX и научитесь ими пользоваться. А если этого вам покажется недостаточно, вы узнаете, как разработать свои собственные компоненты! Впрочем, довольно слов — перейдем к делу.
О платформе Active
Начнем с краткого определения: платформа Microsoft Active представляет собой набор технологий, предназначенный для разработки приложений типа «клиент -сервер» в условиях интеграции компьютера в сети Internet. В нее входят многие технологии, в том числе Remote Automation, документы ActiveX (ActiveX Documents), элементы ActiveX (ActiveX Controls), ActiveMovie, Active Desktop, динамический HTML (DHTML), VBScript (язык сценариев Microsoft на основе Visual Basic) и Active Server Pages (ASP). Иначе говоря, почти все современные технологии Microsoft объединяются в платформе Active.
Поскольку технология ActiveX основана на СОМ, она позволяет создавать программные компоненты, предназначенные для работы в нескольких приложениях. В частности, ActiveX использует технологию Интернета для написания компактных программных модулей, способных работать в условиях Интернета или инт-расети отдельной компании.
Если вы пытались воспроизвести примеры из этой книги, то вам уже приходилось пользоваться элементами ActiveX. С помощью этой технологии можно создавать нестандартные кнопки, специализированные элементы для связи с базами данных и другие программные компоненты. Возможности ограничены только вашим воображением.
Хотя вы уже пользовались готовыми элементами ActiveX, в этом уроке мы научимся проектировать и создавать новые компоненты ActiveX, которые можно использовать в ваших приложениях или предложить другим программистам. Как показано на рис. 17.1, документ ActiveX можно написать на Visual Basic и отобразить в броузере Internet Explorer (мы сделаем это позднее, в подразделе «Создание и использование документов ActiveX» этого урока).
Рис. 17.1. Пример документа ActiveX
Назначение ActiveX
ActiveX ориентируется на Интернет по нескольким причинам:
О Знакомая инфраструктура «клиент — сервер» облегчает работу с приложениями.
О Автономные приложения Visual Basic можно преобразовать в документы ActiveX, а затем загрузить через Internet Explorer.
О Эта же технология может использоваться для обновления программ ActiveX на компьютерах клиентов. Поскольку приложение запускается из броузера, документ можно настроить так, чтобы при необходимости информация в нем автоматически обновлялась, а новая версия элемента автоматически устанавливалась на компьютере клиента.
О При этом вам не понадобятся ни дискеты, ни программы установки.
Требования безопасности в ActiveX
А как насчет вирусов? Выходит, средства ActiveX позволяют переслать на чей-нибудь компьютер разрушительный и опасный код? Да, в принципе это возможно. Если кому-то очень захочется напакостить ближнему, он все равно это сделает. Тем не менее ActiveX предпринимает некоторые меры по борьбе с «программами-диверсантами»:
О программа должна иметь электронную подпись;
О компоненты ActiveX снабжаются специальными «пометками безопасности» для сценариев и инициализации;
О во время своей работы элемент должен проверить, обладает ли пользователь лицензией на право использования;
О компоненты ActiveX должны быть упакованы в формате, допускающем прогрессивную загрузку.
Давайте подробнее рассмотрим каждое из этих требований. Во-первых, каждый компонент должен иметь электронную подпись. Правом на выдачу электронных подписей обладают уполномоченные компании. Подпись внедряется в распространяемый элемент, и если на вашем компьютере случится беда, вы сможете проследить, откуда взялся злоумышленник. Во-вторых, код элемента должен быть помечен как безопасный по отношению к сценариям. Поскольку элементы ActiveX обычно управляются на Web-страницах сценариями, неправильно написанный сценарий может случайно или намеренно повредить вашу систему. Хотя при правильном использовании элемент вполне безопасен, программист-злоумышленник может воспользоваться им для причинения вреда. Не забывайте — плоха не технология, а ее неверное использование. Если элемент написан грамотно, но кто-нибудь воспользуется им в разрушительных целях, пользователи бросятся искать программиста (то есть вас) по электронной подписи. Следовательно, элемент должен быть написан так, чтобы независимо от сценария он не мог повредить компьютер пользователя. Если он не обладает пометкой сценарной безопасности, Internet Explorer выдает предупреждающее сообщение. Далее вы можете решить, следует ли доверять данному элементу.
В-третьих, каждый элемент должен проверять лицензионную информацию во время работы. В него включается ссылка на лицензионный файл, находящийся на сервере. Причина заключается в том, что код для работы с элементом расположен внутри Web-страницы. Любой опытный Web-серфер сможет просмотреть исходный текст документа на языке HTML и воспользоваться вашим кодом. Ссылка на лицензионный файл гарантирует, что пользователь не возьмет ваш элемент и не включит его в собственное приложение. Происходящее сильно напоминает схему лицензирования нестандартных элементов в Visual Basic. Элементы обычно распространяются вместе с лицензионным файлом, позволяющим работать с ними в IDE. При распространении готового приложения лицензионный файл отсутствует, поэтому пользователи не могут использовать элемент в своих программах.
Наконец, элементы ActiveX должны быть упакованы в формате, допускающем прогрессивную загрузку. В сущности, это означает, что при необходимости элемент будет установлен прямо из броузера без запуска программы установки. Давайте посмотрим, как броузер работает с Web-страницами, — это позволит лучше понять принцип прогрессивной загрузки.
Как работают Web-страницы
Когда во время работы в Web вы щелкаете на гиперссылке, на ваш компьютер с Web-сервера передается документ, написанный на языке гипертекстовой разметки (HTML). Этот документ содержит всю информацию о графике, структуре и содержании Web-страниц. Перед тем как отображать очередную страницу, броузер просматривает на вашем жестком диске содержимое специального каталога (кэша), в котором хранятся копии Web-страниц, и определяет, загружались ли данная страница или графические фрагменты на ваш компьютер. Если этого не было, броузер запрашивает с Web-сервера всю необходимую графику, и сервер пересылает ее на ваш компьютер. Полученные компоненты сохраняются в кэше, поэтому в будущем эту информацию можно взять с жесткого диска, не обращаясь к Интернету. Все это делается ради повышения скорости. Web-страницу намного быстрее загрузить с жесткого диска, чем получать из Интернета по модему. Наконец, броузер отображает Web-страницу на экране. При следующем посещении узла броузер выведет ее гораздо быстрее, поскольку сначала просмотрит содержимое кэша. Прогрессивная загрузка основана на аналогичном принципе. Она избавляет броузер от непроизводительных расходов времени, что особенно важно при повременной оплате за работу в Интернете. Вместо того чтобы просматривать кэш и искать в нем принимаемый элемент, броузер ищет идентификатор класса элемента, взятый из HTML-документа, в системном реестре. Если совпадение будет найдено, значит, такой элемент уже существует на вашем компьютере. В противном случае броузер начинает пересылку элемента и его регистрацию. После того как он будет зарегистрирован, броузеру уже не придется пересылать его повторно. Как видите, к элементам ActiveX предъявляются довольно жесткие требования. Если вы собираетесь распространять свои элементы в глобальном масштабе, вам придется подчиниться им. По крайней мере вы сможете спать спокойно — многоуровневая система безопасности защищает вас.