Происхождение ActiveX
Что же выбрать?
Завтрашний день intranet
В приемной "Доктора Intranet"
ActiveX и Java: обеспечение безопасности

Невозможно представить себе, чтобы Microsoft вышла на рынок с новым продуктом и не заявила бы о том, что он обеспечивает какое-то новое решение. Поэтому неудивительно, что теперь Microsoft пытается убедить всех в том, что технология ActiveX - более совершенный инструмент разработки приложений intranet чем язык Java, созданный компанией Sun Microsystems.

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

Пробные версии языка Java встретили у пользователей хороший прием, и в результате этого компания Sun получила так необходимую ей поддержку со стороны прессы.

Компания Microsoft, в свою очередь, объявила о поддержке языка Java, но утверждает, что технология ActiveX более совершенна с точки зрения архитектуры. Сторонники Microsoft в ее споре с Sun заявляют, что технология ActiveX не только обеспечивает все те же функции, что и Java, но, кроме того, поддерживает как язык Java, так и практически любой другой сетевой инструментарий.

По утверждениям ее создателей, технология ActiveX упростит разработку сетевых приложений для машин-клиентов в сетях intranet. Повысить эффективность работы сети предприятия с помощью приложений, написанных на языке Visual Basic и основанных на технологии ActiveX? Что же, такая возможность, действительно, выглядит довольно привлекательно. В самом деле - и это не забывает подчеркнуть Microsoft - сейчас в мире насчитывается около 3 миллионов программистов, работающих с Visual Basic.

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

Так что же такое технология ActiveX, и почему она может оказаться предпочтительнее, чем Java?

Происхождение ActiveX

История ActiveX звучит почти как библейская легенда: DDE породила OLE 1.0, которая породила OLE 2.0, которая - с помощью Visual Basic - породила VBX, которые превратились в OCX. И Билл посмотрел на них и увидел, что это хорошо. А отдел маркетинга компании Microsoft переименовал OCX в ActiveX.

Знание истории появления ActiveX важно для правильного понимания той роли, которую играет этот протокол в концепции работы персонального компьютера вообще и в технологии корпоративных сетей в частности. Первоначально (то есть в эпоху рождения операционной среды Windows 3.1) Microsoft разработала протокол DDE (Dynamic Data Exchange, динамический обмен данными), который был предназначен для обмена данными между приложениями. Хотя этот протокол и используется до сих пор, он имеет значительные ограничения, и именно это обстоятельство обусловило стремление Microsoft придать Windows объектную ориентацию. Так появились протоколы OLE 1.0 и OLE 2.0.

Технология OLE (Object Linking and Embedding, связывание и внедрение объектов) позволила включать в созданный с помощью какого-либо приложения документ другие программируемые объекты, получая в результате так называемый составной документ. Например, созданный в Microsoft Word документ может содержать графическое изображение (т. е. объект), которое создано, например, в пакете PhotoPaint компании Corel. Архитектура такого механизма основана на технологии OLE, которая обеспечивает два способа включения объектов в составной документ: либо исходные данные об объекте полностью хранятся в составном документе (внедрение), либо они находятся в отдельном файле (связывание).

После того как Microsoft переориентировалась на Internet, одна из ее основных технологий - OLE Documents - превратилась в технологию, получившую название ActiveX Documents.

Однако OLE и ActiveX - это не просто способы внедрения одних документов в другие. С точки зрения программирования, модульные управляющие программные компоненты OLE (OLE Controls), называемые теперь ActiveX Controls, обеспечивают (с помощью OLE-интерфейсов) реальную возможность многократного использования программ. В самом деле, благодаря компонентам ActiveX Controls, созданным компанией Microsoft, сформировался обширный рынок объектно-ориентированного программирования, который так и не смогли создать другие организации типа Open Software Foundation (Фонд открытого программного обеспечения).

Применительно к сетям Internet/intranet, технология ActiveX делает следующий шаг по сравнению с технологией OLE. Старый принцип получил дальнейшее развитие, и теперь ActiveX заключает в себе ряд других технологий, в том числе:

  • Базовое программное обеспечение сервера на основе ActiveX. Интерфейс прикладного программирования Internet Server API описывает способ взаимодействия Web-сервера с приложениями, размещенными в компьютере-клиенте, а также с серверными расширениями программ, которые позволяют серверу, помимо решения прочих задач, проводить сортировку и модификацию документов.
  • Управляющие модули ActiveX для Internet. Имея модульную структуру, эти программы реализуют такие сетевые функции, как просмотр сети Web, клиенты электронной почты и передача файлов. Благодаря особенностям своей структуры, эти модули легко могут быть включены в состав прикладной программы.
  • Сценарии (Active Scripts). Они обеспечивают поддержку языка Visual Basic Script, а в будущем, возможно, станут поддерживать и другие языки описания сценариев в управляющих модулях ActiveX.
  • Средства защиты программ (Code Security Services) обеспечивают защиту программного обеспечения клиента при загрузке в компьютер объектов ActiveX из источника, не отличающегося высоким уровнем доверия.
  • Microsoft рекламирует технологию ActiveX как наилучшую основу для создания распределенных приложений в сетях Internet/intranet - своего рода открытый стандарт, предназначенный для поддержки любых инструментариев разработки приложений, как сетевых, так и общего назначения. Например, ActiveX будет поддерживать язык Java компании Sun, технологию WebObjects компании NeXT Software (компания NeXT уже продемонстрировала это) и Media Objects компании Oracle с такой же надежностью, как и разработанный самой Microsoft язык Visual C++.

    Для решения проблемы межплатформенной совместимости у Microsoft есть целая группа компаний-партнеров, среди которых такие, как Macromedia и Spyglass, и которые будут помогать ей стыковать ActiveX с операционными системами Macintosh и Unix. Однако эту красивую идею пока еще не удалось реализовать никаким разумным способом, и имеются определенные сомнения в том, что это вообще когда-либо произойдет.

    Что же выбрать?

    Так какую же технологию - Java или ActiveX - должны предпочесть пользователи для дальнейшего совершенствования работы своих внутрикорпоративных сетей? Ключевым параметром при ответе на этот вопрос является набор возможностей, который обеспечивается каждой из этих систем, а различий между ними не так уж и много. Приложения на основе ActiveX на практике обладают такими же возможностями, что и приложения Java, включая управление представлением данных для клиента, осуществление связи через сеть и взаимодействие с пользователем.

    Создавая сегодня объект по технологии ActiveX, программист должен написать программу либо на Visual Basic Script, либо на С/С++. Язык Visual Basic Script может оказаться чуть более простым, чем JavaScript, но здесь многое будет зависеть от того, каким конкретным опытом обладает программист, решающий данную задачу. Включение в сетевые страницы объектов, созданных по технологии ActiveX, сильно облегчается благодаря ряду инструментальных программ, доступных для бесплатной загрузки из сетевой страницы компании Microsoft. В будущем Microsoft должна обеспечить создание объектов ActiveX и на языке Visual Basic.

    Сейчас пока трудно говорить о реальном быстродействии какой-либо из двух технологий, поскольку ни одна из них еще не сформировалась окончательно. Возможно, Java-приложения окажутся более медленными, поскольку они передаются по сети в байтовом (то есть полукомпилированном) формате и затем, уже в машине-клиенте, либо интерпретируются в процессе выполнения (run-time), либо превращаются в двоичный код "на лету" (just-in-time). Компоненты же ActiveX передаются по линиям связи в двоичном формате, поэтому при прочих равных условиях приложения на основе ActiveX должны, вероятно, оказаться более быстродействующими.

    Все клиентское программное обеспечение, которое поддерживало бы технологию ActiveX, представлено на сегодняшний день лишь пакетом Internet Explorer Version 3.0 компании Microsoft. Ни одна другая компания не производит программ, которые были бы непосредственно совместимы с этой технологией. Однако, стремясь достичь всеобъемлющего господства или, по крайней мере, хотя бы обойти своего конкурента - компанию Netscape Communications,- Microsoft использовала интерфейс прикладного программирования, разработанный Netscape, для создания модуля, который поддерживает компоненты на основе ActiveX и совместим с продукцией Netscape.

    Большой недостаток ActiveX заключается в том, что эта технология ограничивается платформой Windows, тогда как для языка Java принципиально не важно на какой платформе выполняются созданные с его помощью приложения.

    Если в вашей организации продукция Microsoft уже принята в качестве внутреннего стандарта, то это обстоятельство может послужить дополнительным фактором, говорящим в пользу принятия технологии ActiveX для intranet. Ведь в этом случае создание программ на Visual Basic или на С/С++ уже не будет в новинку для программистов.

    Завтрашний день intranet

    Технология ActiveX чрезвычайно перспективна. Предоставляемая ею возможность создавать достаточно сложные программы на целом ряде сценарных языков выглядит не менее привлекательно, чем те прекрасные позиции на компьютерном рынке, которые занимает ее разработчик - компания Microsoft. Конечно, может оказаться и так, что компаниям Sun и Netscape удастся воспрепятствовать установлению безраздельного господства Microsoft в области создания сетевых приложений, но вероятность такого исхода похоже невелика.

    Можно предположить, что предложенная Microsoft стратегия найдет коммерческое применение, и, при том, что язык Java останется чрезвычайно важным инструментом, Microsoft отвоюет значительный сегмент рынка, включающий в себя создание и простых и сложных приложений для intranet. Более того, создание приложений для бизнеса на основе ActiveX станет одним из главных направлений в деятельности компаний, выпускающих продукцию для intranet.

    Несомненно, технология ActiveX найдет себе место во многих внутрикорпоративных сетях.


    DoctorВ приемной "Доктора Intranet"

    Сегодня Дэвид Морро проводит очередной прием. Если ваша внутрикорпоративная сеть страдает каким-нибудь недомоганием, он установит его причину и посоветует, как поправить дело. Присылайте свои вопросы по факсу (312) 283-0214 или по электронной почте: dr.intranet@nww.com

    Можно ли следить за трафиком в сети intranet?

    Технология Internet делает слежение за использованием сетевых ресурсов непростым занятием, поскольку в протоколе TCP/IP отсутствует понятие сетевого сеанса, а для серверов Web не существует понятия "пользователь". Сервер просто регистрирует каждый получаемый запрос как отдельную команду. К счастью, быстро развивающиеся сетевые технологии уже предлагают некоторые методы, с помощью которых, основываясь на журнале регистрации запросов к серверу, можно восстановить информацию о работе пользователей.

    Два пакета - WebTrends компании e.g. Software (www.webtrends.com) и Market Focus компании Interse (www.interse.com) - считаются на сегодняшний день наиболее хорошо проработанными программами из тех, что имеются на рынке. Эти продукты позволяют сетевым администраторам работать с файлами регистрации запросов, хранящимися в реляционной базе данных. Например, с помощью пакета Market Focus можно выделить имена тех торговых представителей, которые просматривали информацию о новом продукте, помещенную на сетевой странице вашей компании.

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

    Что нового в области стандартов HTML?

    Недавно Консорциум World Wide Web (название которого сокращенно обозначается как W3C) включился в сотрудничество с такими компаниями как IBM, Microsoft, Netscape Communications, Novell, SoftQuad, Spyglass и Sun Microsystems. Цель этого союза - создание новой версии HTML (гипертекстового языка описания документов) - HTML 3.2.

    В новом формате HTML 3.2 будет обеспечена возможность объединения текстов, таблиц и прикладных программ в один документ с графическими изображениями, которые, благодаря усилиям создателей сетевых программ просмотра, теперь так широко распространены в сети. Сертификация программ просмотра должна поставить их на один качественный уровень и облегчить пользователям процесс поиска информации в сети.

    В соответствии с представлениями консорциума W3C, стандарт HTML 3.2 должен быть совместим со своими предшественниками, HTML+ и HTML 2.0. Читатели могут спросить, почему здесь не упомянут стандарт HTML 3.0, опубликованный в марте 1995 г. Дело в том, что, по мнению W3C, различия между версиями 2.0 и 3.0 оказались столь существенными, что обеспечение совместимости нового стандарта с версией 3.0 было сочтено слишком трудоемким занятием. Поэтому консорциум объявил о прекращении действия проектного варианта стандарта HTML 3.0.


    Дэвид Морро является разработчиком сети Web компании Interse в Саннивейл (шт. Калифорния), которая специализируется на создании внутрикорпоративных сетей.

    ActiveX и Java: обеспечение безопасности

    ActiveX и Java сходны между собой во многих отношениях. Однако, если говорить об обеспечении безопасности передачи файлов, то у этих технологий можно отметить и серьезные различия принципиального характера.

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

    Преимущество, которым обладает технология ActiveX, - это использование цифровых сертификатов для оценки надежности источника и целостности загружаемых из него прикладных программ. Получая приложения с помощью сетевой программы просмотра, пользователь может проверить сопровождающий это приложение сертификат и увидеть, были ли внесены изменения в текст получаемой программы. Сертификация приложений реализована в пакете Internet Explorer Version 3.0 компании Microsoft, которая предлагает его для бесплатной загрузки через сеть.

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