Java или ActiveX? Может быть оба

Росс М. Гринберг

В момент мазохистского экстаза, предпочитаю размышлять о том, что лучше использовать: ActiveX (просто названный по-другому OLE) или Java (урезанный C++). Размышления заставили меня создать для каждого из них небольшие приложения, чтобы понять в чем сила и слабость обоих.

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

В основном Java и ActiveX различаются своими представленями о мире - "клиент-серверный" взгляд Java и идеология "ВсеЧтоВамУгодно" ActiveX.

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

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

С настоящим ActiveX никаких ограничений не существует. Чего бы вам не захотелось от приложений ActiveX - они будут это делать и сейчас уже делают на компьютерах с Windows NT или Windows 95, на которых запускается Internet Explorer. А за какой платформой будущее? Возможно, как раз за Windows 95 и NT. Могут ли они хранить большое количество данных на локальном носителе? Без проблем. Использовать локальные компоненты для быстрого доступа? Безусловно. Загружать и исполнять программы, подвергающие вашу систему риску, в том числе программы-вирусы? Конечно!

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

Система защиты ActiveX не связывает приложения с защищенной виртуальной машиной, как это делает Java. Оно запускается исключительно на вашей локальной машине. Но оно защищено цифровой подписью. Эй, Microsoft, помните ли вы Internet Explorer 3.0? Цифровая подпись не гарантирует того, что программа работает корректно и это вовсе не вирус. Если бы это было так, мне не пришлось бы иметь десяток отладчиков и так часто делать резервную копию.

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

Я тщетно пытался заставить Java сохранить сгенерированные данные на локальном диске и пойти перекусить, хотя и мог присоединиться к порту локальной машины, но споткнулся на скрипте Common Gateway Interface, которое пишет свои данные на локальный диск. Увы!

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

Но ничего не препятствует использованию обеих технологий. Фактически они просто призваны дополнять друг друга, хотя ни Netscape, ни Microsoft не хотят, чтобы вас посещали подобные мысли.

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

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


Гринберг - программист компании Bovina, специализирующейся на продуктах для Internet и системах защиты. С ним можно связаться по адресу: greenber@ramnet.com.