Технология ActiveX

Технология ActiveX

Сохранилась и совместимость - любой программный компонент OLE будет работать с библиотеками ActiveX. Понятие СОМ Все технологии OLE и ActiveX, построены на основании, обеспеченном СОМ. Итак, что же такое СОМ? Чтобы ответить на этот вопрос, зададимся сначала другим: 'Каким образом одна часть программного обеспечения должна получать доступ к сервисам, предоставляемым другой частью? На сегодняшний день ответ зависит от того, что представляют собой эти части: Приложения, например, скомпонованные с библиотекой, могут пользоваться ее сервисами, вызывая функции из этой библиотеки.

Приложение также может использовать сервисы другого являющегося совершенно отдельным процессом. В этом случае два таких локальных процесса взаимодействуют посредством некоего механизма связи, который обычно требует определения протокола между этими приложениями (набор сообщений, позволяющий одному приложению выдавать запросы, а другому соответствующим образом отвечать на них). Еще пример приложение, использующее сервисы операционной системы. Здесь приложение обычно выполняет системные вызовы, обрабатываемые операционной системой.

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

Получить доступ к таким сервисам можно множеством способов, таких как обмен сообщениями с удаленным приложением или вызовы удаленных процедур. В принципе проблема одна: одна часть программного обеспечения должен получить доступ к сервисам, предоставляемым другой частью. Но в каждом отдельном случае механизм доступа разный: вызовы локальных функций, передача сообщения средствами связи между процессами, системные вызовы (которые с точки зрения программиста выглядят практически так же, как и вызовы функций) или какая-то разновидность сетевых коммуникаций. Зачем все это? Не проще ли определить один общий способ доступа ко всем видам программных сервисов независимо от способа их реализации? Этим и занимается СОМ - она определяет стандартный механизм, с помощью которого одна часть программного обеспечения предоставляет свои сервисы другой и который работает во всех описанных выше случаях. Общая архитектура сервисов в библиотеках, приложениях, системном и сетевом программном обеспечении позволяет СОМ изменить подход к созданию программ. В начале 1996 года Microsoft ввела в оборот новый термин ActiveX. Поскольку самым динамично развивающимся направлением в компьютерной индустрии является Internet, именно здесь наиболее естественно могут найти свое место программы, написанные с использованием технологии ActiveX. Не случайно в последнее время понятия ActiveX и Internet часто встречаются рядом. В то же время технология ActiveX имеет значительно более универсальную область использования.

Стандарт ActiveX позволяет программным компонентам взаимодействовать друг с другом по сети независимо от языка программирования, на котором они написаны. С помощью ActiveX можно 'оживить' страницы Web эффектами мультимедиа, интерактивными объектами или сложными приложениями. ActiveX обеспечивает некий 'скрепляющий раствор', с помощью которого отдельные программные компоненты на разных компьютерах 'склеиваются' в единую распределенную систему. ActiveX включает в себя клиентскую и серверную части, а также библиотеки для разработчика: программные элементы ActiveX - компоненты, работающие на компьютере клиенте, но загружаемые в первый раз с сервреа Web. С их помощью можно демонстрировать разнородную информацию, включающую видео и звук без запуска дополнительных программ. Более того, эти программные компоненты могут использоваться в приложениях, написанных на любых популярных языках программирования, включая Java (Visual J++), Visual Basic, Visual C++; Active Scripting поддерживает любой популярный макроязык, включая Visual Basic Script и JScript (реализация компанией Microsoft языка сценариев JavaScript). Макроязыки могут использоваться для объединения на одной странице нескольких программных элементов ActiveX или Java, обеспечивая их взаимодействие между собой; Документы ActiveX позволяют открыть и обрабатывать в окне Microsoft Internet Explorer документ любого формата (например, файл Microsoft Excel или Word); Виртуальная машина Java позволяет любой программе просмотра Internet, поддерживающей технологию ActiveX (например, Internet Explorer 3.0) выполнять программные компоненты Java и обеспечивать их взаимодействие с программными компонентами ActiveX; ActiveX Server Framework обеспечивает серверные функции ActiveX, включая поддержку безопасных соединений, доступ к базам данных и другие.

Средства разработки позволят использовать знакомые системы программирования Microsoft и других фирм для создания компонентов ActivX. К их числу относятся Visual Basic, Visual C++, Macromedia Shockwave, Adobe Photoshop, Borland Delphi, средства программирования Sybase и другие.

Основные преимущества использования технологии ActiveX: Быстрое написание программного кода.

Программирование сетевых взаимодействий становится очень похожим на программирование для отдельного компьютера; Открытость и мобильность.

Спецификации технологии недавно были переданы в Open Group как основа открытого стандарта. Кроме того, Microsoft совместно с компаниями Metrowerks и Bristol заканчивает реализацию технологий ActiveX для платформ Macintosh и UNIX; Возможность написания приложений с использованием знакомых средств разработки.

Программные элементы ActiveX могут быть созданы с помощью Visual Basic, Visual C++, Borland Delphi, Borland C++, любых средств разработки на Java; Большое количество уже существующих программных элементов ActiveX, которые бесплатно могут применяться на серверах Web и в приложениях независимых разработчиков. Кроме того почти любой программный компонент OLE совместим с технологиями ActiveX и может применяться без модификаций в сетевых приложениях; Стандартность.

Технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java) с одной стороны и стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE). Клиентская технология ActiveX (Active Desktop) ActiveX реализуется на машине-клиенте с помощью библиотек, поставляемых вместе с Internet Explorer 3.0. В дальнейшем эти библиотеки будут дополняться и переписываться, в частности, наиболее значимые обновления этих библиотек на клиенте следует ожидать после выхода NetShow, продукта, предназначенного для оптимальной передачи по сети данных мультимедиа.

Программные компоненты ActiveX могут быть установлены автоматически на компьютер пользователя по сети с удаленного сервера, причем будет загружен код, подходящий для конкретной платформы клиента, будь то Macintosh, Windows или Unix. Разработчик Web-страниц может либо сам запрограммировать элементы ActiveX, используя популярные языки программирования Visual C++, Visual Basic или Java, либо использовать существующие.

Используя языки сценариев ActiveX, программисты могут обеспечить взаимодействие различных элементов ActiveX, Java, других программ на клиентском компьютере и различных частей самого Internet Explorer. Например, программный элемент синхронизации может обновлять страницу Web через определенные промежутки времени. Можно также периодически запускать программный элемент, привлекающий внимание пользователя.

Имеются реализации Visual Basic Scripting Edition, являющегося подмножеством Visual Basic, и JScript. Кроме того, разработчик может написать интерпретатор собственного языка сценариев и добавить его в систему. С ActiveX Documents знаком каждый, кто работал с составными документами. С помощью Internet Explorer можно работать, например, с таблицами Microsoft Excel и файлами других офисных приложений. Это делает программу просмотра универсальным средством, способным не только отображать файлы в формате HTML и осуществлять переходы по ссылкам, но и поддерживающим работы с документами любых приложений и даже запуск программ.

Серверная технология ActiveX (Active Server) Серверная часть технологии ActiveX реализована с помощью Microsoft Internet Information Server 3.0. С помощью ActiveX можно писать программы на языках сценариев (сейчас это VBScript), выполняющиеся на сервере. Если раньше разработчикам приходилось использовать такие средства, как Microsoft Visual C++ для написания динамически загружаемых библиотек, использующих специальные вызовы Internet Server API, то теперь возможно написание приложений на языке сценариев. Это существенно упрощает разработку, сокращает время написания программы и минимизирует затраты.

Программы, основанные на технологиях Active Server на порядок производительнее программ, основанных на Common Gateway Interface (CGI). Это достигается оптимизацией процессов ActiveX на сервере, учитывающей архитектуру Windows NT. С помощью языков сценариев на сервере можно осуществлять доступ к системам управления базами данных, поддерживающим стандарт ODBC, и использовать механизм транзакций.

Поскольку подход к использованию технологий ActiveX на сервере стандартизован, программисты могут не только разрабатывать приложения, способные выполняться на серверах, но и реализовывать свои схемы взаимосвязи серверных приложений и сервисов, создавать собственные интерпретаторы серверных языков сценариев. Для этого требуется предварительное приобретение лицензии у Open Group. Что можно делать с помощью элементов управления ActiveX? Элементы управления ActiveX подобны элементам управления в языках программирования, таких как Microsoft Visual Basic®. Это те же элементы управления, которые можно добавлять к пользовательским формам в редакторе Visual Basic. При добавлении элемента управления ActiveX к файлу Office сразу создается программный код макроса, который обращается к данному элементу управления. Этим данная процедура отличается от определения макроса, который должен выполняться при выборе элемента управления.

Примечание. Общие сведения о макросах и их применении см. в статье Ускорение работы с помощью макросов. Обзор редактора Visual Basic см. в статье Управление макросами с помощью редактора Visual Basic. Создание краткого опроса Так как PowerPoint обеспечивает широкие возможности представления информации посетителям, создадим опрос в виде презентации.

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

Добавление надписи и группы переключателей 1. В PowerPoint вставьте в презентацию новый пустой слайд. (На панели инструментов Стандартная нажмите кнопку Создать и затем в области задач Разметка слайда в качестве макета выберите Пустой слайд.) 2. В меню Вид выберите команду Панели инструментов и щелкните Элементы управления. 3. В панели элементов нажмите кнопку Надпись и затем щелкните на пустом слайде в позиции размещения элемента управления (надписи). 4. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. В диалоговом окне Properties (Свойства) в поле Caption (Заголовок) введите Вам понравилась наша презентация? Примечания. Если при открытии редактора Visual Basic диалоговое окно Properties (Свойства) не отображается, в меню Вид выберите команду Properties Window (Окно свойств) или нажмите клавишу F4. Свойства элемента управления можно изменить, и, не покидая PowerPoint. Для этого нажмите кнопку Свойства в панели элементов и внесите необходимые изменения. 5. Вернитесь в PowerPoint, в панели элементов нажмите кнопку Переключатель и щелкните ниже первой надписи (вопрос опроса), чтобы вставить элемент управления (переключатель) в слайд. 6. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. В диалоговом окне Properties (Свойства) введите Да в поле Caption (Заголовок) и False в поле Value (Значение). 7. Вернитесь в PowerPoint, в панели элементов нажмите кнопку Переключатель и щелкните ниже первого переключателя, чтобы вставить в слайд второй переключатель. 8. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. В диалоговом окне Properties (Свойства) введите Нет в поле Caption (Заголовок) и False в поле Value (Значение). Убедитесь, что в поле Value (Значение) установлено значение False для обоих элементов управления, чтобы ни один из параметров не был для респондентов опроса выбором по умолчанию.

Добавление надписи и текстового поля 1. В панели элементов нажмите кнопку Надпись и затем щелкните ниже двух переключателей, чтобы вставить новый элемент управления (надпись) в слайд. 2. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. В диалоговом окне Properties (Свойства) в поле Caption (Заголовок) введите Замечания: 3. Вернитесь в PowerPoint, в панели элементов нажмите кнопку Поле и затем щелкните ниже новой надписи, чтобы вставить элемент управления (текстовое поле) в слайд.

Пользователи смогут использовать это текстовое поле для ввода своих комментариев.

Добавление кнопки 1. В панели элементов нажмите кнопку Кнопка и щелкните ниже текстового поля, чтобы вставить элемент управления (кнопку) в слайд. 2. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. В диалоговом окне Properties (Свойства) в поле Caption (Заголовок) введите Отправить. 3. Завершив отвечать на опрос, пользователи смогут нажать эту кнопку и Отправить свои ответы.

Расширение функций элементов управления ActiveX 1. Дважды щелкните элемент управления, чтобы открыть редактор Visual Basic. 2. Установите ссылку на библиотеку Microsoft Scripting Runtime. (В меню Tools (Сервис) выберите команду References (Ссылки) и установите флажок Microsoft Scripting Runtime.) 3. Между строками Private Sub CommandButton1_Click() и End Sub вставьте следующий код: ' Назначение: Создание текстового файла и сохранение в нем ' результатов опроса. ' Должна быть установлена ссылка на Microsoft Scripting Runtime ' (В меню Tools (Сервис) выберите команду References (Ссылки), ' установите флажок Microsoft Scripting Runtime и нажмите ОК). Dim objFSO As Scripting.FileSystemObject Dim objTS As Scripting.TextStream ' Создание текстового файла. Set objFSO = New Scripting.FileSystemObject Set objTS = objFSO.OpenTextFile(CurDir & '/Survey_Results.txt', _ ForAppending, True) ' Запись результатов в текстовый файл и затем ' его закрытие. objTS.WriteLine 'Yes = ' & Me.OptionButton1.Value objTS.WriteLine 'No = ' & Me.OptionButton2.Value objTS.WriteLine 'Comments = ' & Me.TextBox1.Text objTS.WriteBlankLines 1 objTS.Close ' Поблагодарим пользователя. MsgBox 'Большое спасибо за участие в опросе!' ' Очистка результатов для ответов следующего пользователя. Me.OptionButton1.Value = False Me.OptionButton2.Value = False Me.TextBox1.Text = '' 4. После вставки этого кода закройте редактор Visual Basic и сохраните презентацию. 5. Для предварительного просмотра опроса нажмите кнопку Показ слайдов в нижнем левом углу окна PowerPoint. Просмотр отзывов пользователей Когда пользователи нажимают кнопку Отправить , создается текстовый файл, в котором сохраняются их ответы.

Данный файл расположен в одном каталоге с презентацией. Чтобы просмотреть результаты опроса, откройте в этом каталоге файл Survey_Results.txt. Если вы уже собрали достаточно мнений и хотите их удалить или создать новый файл для обратной связи, выполните одно из следующих действий: Откройте текстовый файл и удалите все комментарии.

Удалите текстовый файл. Когда следующий пользователь введет свои ответы, будет создан новый текстовый файл с именем Survey_Results.txt. Переименуйте текущий текстовый файл. Когда следующий пользователь введет свои ответы, будет создан новый текстовый файл с именем Survey_Results.txt. Microsoft и другие разработчики Особого упоминания, на наш взгляд, заслуживает деятельность компании 'Анет'. Прежде всего, потому, что она не только активно использует технологию ActiveX в своих разработках, но и пытается продавать компаниям-разработчикам ПО готовые компоненты ActiveX (правда, пока, в основном, зарубежного производства). Компания начала работать в этом направлении еще в 1993 году, занявшись разработкой компонентов для программирования на Visual Basic по заказу одной американской компании, и стала первой российской фирмой, работающей на этом рынке. 'Рынок непростой и для российской фирмы малоперспективный, если она пытается продавать свои продукты самостоятельно, - говорит президент ТОО 'Анет' Игорь Горюшин. - На Россию ориентироваться бесполезно, а за рубежом (в частности, в США) нормальные деньги за иностранные VBX/OCX не платят из опасения, что не получат адекватной технической поддержки'. Тем не менее компании удалось найти за рубежом партнеров, занимающихся продажей и технической поддержкой ее продукции, и к настоящему времени 'Анет' имеет, по утверждению ее президента, более тысячи клиентов по всему миру.

Несмотря на практически полное отсутствие рынка компонентов, 'Анет', заручившись поддержкой Microsoft АО, все-таки начала заниматься их поставкой и продажей в Россию. 'Абсолютное большинство фирм-производителей, к которым мы обращаемся с предложениями о сотрудничестве, с пониманием относятся к отсутствию спроса и низкой покупательной способности российских производителей ПО, - рассказывает Игорь Горюшин. - Это позволяет нам получать реселлерские скидки, даже несмотря на невыполнение нормативов продаж'. Описание многих компонентов, поставляемых 'Анет', оформлено в виде каталога в формате HTML и хранится на Web-сервере компании ( http://www.anetusa.com ), а также на российской части сервера Microsoft. Из собственных готовых приложений, разработанных 'Анет', несомненного внимания заслуживают два (хотя сейчас их уже более десятка). Anet HelpTool - первый и пока единственный отечественный WYSIWYG-редактор help-файлов. Он был выпущен в 1996 году, а версия 3.0 была рекомендована к использованию специалистами Winsite.com как одна из лучших в своей категории.

Множество пользователей на Западе оценили ее достаточно высоко и даже переходят к ней от более дорогих программ, как, например, Robohelp. В июле этого года вышла уже 4-я версия этого продукта - еще в период бета-тестирования пользователи отмечали ее как очень удачную. Тем не менее на российском рынке эта программа до сих пор широко не распространялась - отчасти потому, что 'Анет' не вела активной деятельности в России.

Сегодня, однако, ситуация меняется, и 'Анет' рассматривает возможность выпуска русской версии этого продукта, поскольку понимает значимость подобных инструментов для российских программистов.

Впрочем, те, кого не пугает английский интерфейс, могут загрузить Anet HelpTool 4.0 с сервера http://www.anetusa.com/news.htm . Существующие средства программирования для создания элементов ActiveX президент 'Анет' оценивает так: 'Спецификация на ОСХ была не очень удачной, и в ряде случаев мы натыкались на такие дыры, которые сама Microsoft именовала безнадежными, - говорит он. - Мы писали компоненты ОСХ на Visual C++ 4.1 с применением MFC. Потом появился комплект Internet Explorer SDK, который позволил гораздо легче писать элементы ActiveX. И наконец, недавно появился Visual C++ 5.0, содержащий ActiveX Template Library. Это, по нашим оценкам, один из самых удачных ходов Microsoft, и теперь разработчики могут писать действительно красивые и компактные управляющие элементы.

Писать элементы ActiveX на Delphi3 очень удобно и легко, но они получаются большого размера и для передачи по Internet не совсем подходят. Можно писать элементы ActiveX и на Visual Basic 5.0, но они тоже отличаются большими размерами. Visual Basic трудно рассматривать как продукт для изготовления серьезных элементов ActiveX. Скорее, с его помощью можно объединять несколько сторонних ActiveX в один для последующего использования. Или писать полностью свои, но очень примитивные'. 'Для себя мы пока сделали следующий вывод: если пишешь компоненты ActiveX на продажу, то лучше использовать Visual C++, - продолжает Горюшин. - Для быстрой разработки компонентов, предназначенных для внутреннего применения, неплохо работать с Delphi и Visual Basic (особенно если в одной команде собраны программисты, работающие на Delphi и VB). При этом, однако, нужно помнить, что несмотря на спецификацию Microsoft, элемент ActiveX, написанный на Visual C++ или Visual Basic, не всегда хорошо работает в Delphi. Поэтому разработчикам коммерческих управляющих элементов приходится тестировать вновь создаваемые элементы ActiveX во всех средах программирования.

Сертификация Для того чтобы использовать Authenticode и создать цифровой сертификат, разработчик должен иметь набор из открытого ключа (public key) и частного ключа (private key). Они также должны быть сертифицированы надежной сторонней организацией, имеющей полномочия на осуществление сертификации. Эта организация хранит записи о том, кто каким частным ключом владеет, включая соответствующую информацию о владельце, такую как имя, адрес электронной почты и т. п. В настоящее время полномочиями на осуществление подобной сертификации обладает только компания VeriSign - дочерняя фирма RSA Data Security, разработчика открытых/частных ключей. Чтобы получить сертификат, разработчики направляют информацию о себе в VeriSign вместе с оплатой. Для получения сертификата коммерческого разработчика (Commercial Developer) компания должна платить 400 долл. в год; частные разработчики (Individual Developers) платят 20 долл. в год и должны предоставить только наиболее важную информацию о себе. В любом случае разработчик официально 'привязывается' к созданным им управляющим элементам и обещает не разрабатывать 'вредных' программ. Когда VeriSign получает от разработчика необходимую информацию, она выпускает цифровой сертификат, совместимый со стандартом X.509. После этого разработчик может включать свой цифровой сертификат в разработанные управляющие элементы. В дополнение к сертификату разработчика каждый управляющий элемент ActiveX использует криптографическую подпись. Чтобы предотвратить имитацию или подделку, подписанные управляющие элементы применяют специальный криптографический алгоритм, или хеш-функцию.

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

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

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

Пользовательская система дешифрирует всю информацию с помощью открытого ключа.

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