Навигатор Netscape уверенно ведет флотилию модулей расширения в открытое море Web.
Ажиотаж вокруг Internet благоприятно отразился на рынке программного обеспечения. Во-первых, независимые фирмы-разработчики ПО получили шанс укрепиться на новом неосвоенном рынке. Во-вторых, гиганты отрасли, не желая отставать от времени, тратят на разработку приложений для Internet немало сил и средств и, что немаловажно, рекрутируют молодых специалистов. Новизна рынка, правда, оборачивается тем, что разработчикам трудно определиться с выбором направления деятельности, поскольку им нужно придумать что-то оригинальное и в то же время действительно нужное пользователю; к тому же темпы развития рынка требуют быстрой раскрутки продукта. Решая вышеозначенные проблемы, многие делают выбор в пользу расширений для Netscape Navigator.
ЧТО ТАКОЕ PLUG-IN
По установившейся терминологии расширение для Navigator называется "plug-in", что буквально означает нечто, подключаемое в разъем или розетку, и довольно точно описывает механизм подключения модулей расширения к программе просмотра. Netscape определяет модули расширения как платформенно-зависимые динамические программные модули, со своим специфическим механизмом работы. Данная технология разрабатывалась с целью дополнить как платформенно-зависимые архитектуры (OLE и OpenDoc), так и платформенно-независимые языки программирования (Java). Использование Netscape API, ориентированного конкретно на расширение функциональных возможностей Navigator, позволяет не тратить время на изучение многоцелевых и, следовательно, довольно громоздких технологий OLE и OpenDoc. Поскольку Plug-in API ориентирован на C/C++, профессиональные разработчики получают возможность использовать свой привычный инструментарий и свой багаж наработок, а также избавиться от необходимости изучать новый язык программирования. Существующая версия API и средства разработки LiveConnect позволяют разработанному приложению (помимо того, что собирается вложить в него разработчик):
Большинство модулей расширения работают в одном из трех режимов - встраиваемом, полноэкранном или скрытом. Встраиваемый модуль расширения указывается в документе HTML и загружается программой Navigator при отображении документа. Он отображается в окне в виде прямоугольной области подобно GIF- или JPEG-файлам, но, в отличие от них, реагирует на различные события, например на щелчок мыши. Этот режим чаще всего используется для включения в страницы Web мультимедиа-документов, в частности, Macro-media Shockwave.
В полноэкранном режиме модуль расширения не является частью HTML-документа, а активизируется при открытии пользователем файла, MIME-тип которого данным модулем зарегистрирован. Файл может быть открыт из меню File при помощи буксировки и, естественно, путем выбора соответствующей ссылки. Загруженный файл отображается во всем окне, причем полосы прокрутки программы просмотра не задействуются и должны быть предусмотрены в самом модуле. В таком режиме работают программы воспроизведения различных документов, например Adobe Acrobat.
В скрытом режиме модуль расширения ничего не отрисовывает в окне программы просмотра, - так обычно работают плейеры MIDI-файлов.
Режим работы целого ряда модулей расширения не попадает в упомянутые три - это переводчики, программы проверки орфографии и приложения, работающие в отдельном окне, но по степени интеграции с Navigator, являющиеся именно модулями расширения. Безотносительно режима работы модулей расширения они затрагивают пользовательский интерфейс Navigator. Все его основные функции (навигация, история, открытие файлов и т.д.) одинаково применимы ко всем страницам вне зависимости от требуемых для их просмотра модулей расширения, за исключением уже упомянутой проблемы с линейками прокрутки.
Условно модули расширения можно классифицировать по их предназначению. Во-первых, это программы воспроизведения документов с различными форматами данных (как отдельные подгруппы можно выделить программы воспроизведения трехмерной графики и мультимедиа); во-вторых, трассировщики; в-третьих, лингвистические программы; в-четвертых, программы, позволяющие подключать программу просмотра к различным появившимся ранее Web коммерческим службам и BBS; в-пятых, различного рода специальные приложения, использующие Internet в качестве канала связи.
Четвертая группа не представляет особого интереса, поскольку шлюзы в электронные службы, не входящие в Internet, несомненно потеряют актуальность после перехода последних на Web. Рассматривать ее также не имеет смысла и потому, что услуги, к которым предоставляется доступ, как правило, платные или безынтересны для широкого круга пользователей. Познакомиться с остальными модулями расширения несомненно стоит, хотя бы для расширения кругозора. Сервер Netscape содержит ссылки на архивы модулей расширения и домашние страницы их производителей, откуда можно скачать бета- или условно бесплатные версии продуктов и на практике проверить, насколько же в действительности раздвинулись границы виртуального мира. Возможно, проведенное автором исследование поможет желающим сориентироваться в новых возможностях Web.
(1х1)
Navigator, Java и JavaScript. Несмотря на то что механизм модулей расширения задумывался, в частности, как альтернатива Java/JavaScript, он отнюдь не исключает использования этих языков при разработке. LiveConnect предлагает следующую модель взаимодействия между библиотечными функциями API, Java и JavaScript. Прямое обращение между модулем расширения и JavaScript не предусмотрено, но комбинация 1 и 3 (или 2 и 4, соответственно) позволяет устанавливать двустороннее взаимодействие между ними.
ПРОГРАММЫ ВОСПРОИЗВЕДЕНИЯ
Подавляющее большинство модулей расширения предназначено для воспроизведения в окне Navigator документов различного формата. Некоторые разрабатывались специально, некоторые являются адаптацией автономных версий уже существующих приложений. Рассматривать по отдельности каждую такую программу воспроизведения нет смысла из-за узкой специализированности этих приложений, однако стоит разобраться, почему именно они, вопреки ей, составляют основную массу всех разработок.
На первый взгляд, успешному распространению программ воспроизведения мешает порочный круг: чтобы модуль расширения хорошо расходился необходимо, чтобы Web-страницы содержали документы соответствующего формата, для чего, в свою очередь, надо "раскрутить" сам модуль. На самом деле разработчики и не надеются, что тысячи киберпанков при конструировании своих страниц будут использовать электронные таблицы или AutoCad: их потенциальные клиенты - компании использующие линии связи Internet с удаленными пользователями. Компании, желающие предоставить доступ к определенной корпоративной информации удаленным сотрудникам и/или клиентам через Web-сервер, охотно приобретают лицензии на использование необходимых для этого модулей, и крупные разработчики ПО стараются оперативно выпускать программы просмотра файлов, создаваемых их популярными приложениями.
Повышенным интересом пользуются также рассчитанные именно на массовое использование модули расширения для мультимедиа, а мультимедиа в Web несомненно уготовано большое будущее. Уже сегодня становится модным озвучивать свои страницы, да и настоящий видеоклип выглядит значительно привлекательнее анимированных растровых изображений, а для интерактивных музыкальных магазинов, которых в Сети становится все больше и больше, - это просто находка. Правда, развитие процессоров и ОС в недалеком будущем должно привести к тому, что окно, скажем, MPEG-плейера станет такой же неотъемлемой частью графического интерфейса операционной системы, как кнопка диалогового окна, и необходимость в отдельных мультимедиа-приложениях (за исключением специальных) отпадет. Но это будет еще не скоро, к тому же отличием мультимедиа-модулей является то, что многие из них начинают проигрывать файл до полной загрузки. Естественно, что такое воспроизведение мультимедиа-информации возможно только при обеспечении довольно высоких скоростей связи, но в цивилизованном мире эта проблема успешно решается; в крайнем же случае можно подождать, пока файл не будет целиком записан на жесткий диск. Стоит также отметить, что модули расширения для мультимедиа часто представляют неплохую альтернативу приложениям, поставляемым вместе с операционной системой.
Отдельно стоят программы-интерпретаторы VRML - языка описания трехмерных объектов. Одно такое приложение - Live3D лицензировано Netscape и входит в комплект Navigator 3.0. Включение программы воспроизведения трехмерной графики в стандартный комплект вполне обосновано - языку VRML несомненно предстоит революционизировать Web и воплотить наконец в жизнь расхожий термин "виртуальное пространство". Однако Live3D, думается, не самый лучший выбор; работает приложение устойчиво, но управление перемещением в виртуальном пространстве реализовано в нем далеко не самым оптимальным образом, - попытка совершить "облет" объекта легко может привести к тому, что вы потеряетесь где-то на окраине виртуальной вселенной. Авторам явно следовало бы проконсультироваться у разработчиков DESCENT. Впрочем, не исключено, что выбор пал на Live3D только из-за имеющейся у продукта рабочей 16-разрядной версии, поскольку конкурирующие интерпретаторы VRML существуют в большинстве своем только в виде 32-разрядных приложений.
Альтернативу Live3D предлагает "крестный отец" виртуальной реальности - компания Silicon Graphics. Модуль расширения Cosmo Player поддерживает стандарт VRML 2.0 (добавлены анимация и интерактивность). Виртуальные объекты могут двигаться, реагировать на различные события, издавать звуки. Еще одно достоинство Cosmo - интуитивно понятный и осваиваемый за считанные секунды интерфейс управления.
Пальму первенства мы бы все же отдали WIRL - разработке компании VREAM. В WIRL успешно решена проблема перемещения по 3D-миру -помимо того, что управление виртуальной камерой осваивается практически мгновенно, настоящие киберманьяки смогут использовать джойстик, стереоочки или шлем VFX, а в перспективе будет поддерживаться весь спектр VR-устройств. VREAM также предлагает собственные расширения языка VRML 1.0 - язык VREAMScript. Нововведения зачастую аналогичны расширениям VRML 2.0, но в целом более продвинуты. В частности, можно задавать параметры окружающей среды: силу притяжения, вязкость среды, упругость и массу объектов. Это заметно упрощает описание поведения объектов - многое возьмет на себя интерпретатор языка. Текстура поверхности объектов может быть не только растровым изображением, но и цифровым видеоклипом. Несмотря на разработку собственного языка, компания (являющаяся, кстати, участником форума VRML) не отказывается от поддержки стандарта VRML 2.0 и планирует обеспечить полную с ним совместимость. VREAM немного опережает время, что позволяет компании активно влиять на процесс принятия стандартов отображения трехмерных миров в Web.
КАК ОБЛЕГЧИТЬ ПОВСЕДНЕВНУЮ РАБОТУ
Хотя механизм модулей расширения изначально разрабатывался для возможности включения (и последующего просмотра) в Web-страницы документов различного формата, разработчики не стали этим ограничиваться. Целый ряд приложений улучшает пользовательский интерфейс Navigator, добавляя ряд полезных функций, почему-то в нем не реализованных, так как, несмотря на всю любовь к данной программе просмотра, пользователи часто ругают его за их отсутствие. Эти утилиты заслуживают пристального внимания, потому что многое из того, о чем говорилось выше, ориентировано на будущее, хотя бы и недалекое, а проблемы, решаемые с помощью рассматриваемых ниже модулей расширения, актуальны уже сейчас. Например, если вас заинтересует информация, содержащаяся в какой-то странице Web, и вы хотите на досуге поподробней в ней разобраться, то вы, скорее всего, ее распечатаете или сохраните на диске в виде файла HTML. Однако далеко не факт, что результат вас удовлетворит. Разбивка документов Web на страницы при печати производится далеко не самым оптимальным способом, а сохранив страницу в виде HTML-файла, вы потеряете всю графику и все локальные ссылки, то есть документы и файлы, лежащие на том же сервере, что и страница.
Возможность сохранить страницу Web и восстановить ее в виде, идентичном оригиналу, предоставляет разработка компании DocuMagix HotPage. После инсталляции программы в меню Navigator появляется новый пункт HotPage. Меню предлагает сохранить страницу как HTML-файл, как графический файл или и то и другое одновременно. HotPage позволяет также организовать хранение документов в различных папках и сопроводить их аннотациями. Помимо того, что сохраненную страницу можно загрузить в программу просмотра, вы при необходимости можете затребовать ее с исходного URL. Единственное, что надо держать в голове при работе с HotPage, - JPEG- и GIF-файлы очень быстро засоряют диск, поэтому следует регулярно чистить свой архив.
Нужно заметить, что переписывать содержимое Web себе на диск всякий раз, как вам попалось что-либо стоящее внимания, - занятие, мягко говоря, непродуктивное. В большинстве случаев довольно поставить закладку, но сколько раз, путешествуя со страницы на страницу, вы забывали это сделать? А когда вдруг неожиданно вспоминали, что полчаса назад вам попадалось что-то интересное, сколько времени вы потратили, проходя цепочку ссылок взад-вперед, в попытках найти нужное место? Ведя подробную карту всех ваших перемещений по Web, программы-трассировщики берут на себя решение подобных проблем.
Автор протестировал два приложения: HistoryTree производства Smart-Browser и HindSite компании ISYS. Первое является самым простым и компактным, каждая просмотренная страница или каталог FTP отображается в окне приложения в виде вершины графа, установив курсор на которую, можно прочесть полный ее адрес. Текущее местонахождение выделяется красным цветом - все очень просто и легко осваивается. Текущее состояние карты можно запоминать в файле, избегая чрезмерного разрастания дерева. Простота History-Tree оборачивается рядом недостатков, в частности невозможно свернуть отдельные ветви дерева или просмотреть все адреса сразу. Однако все это позволяет сделать HindSite, предоставляя еще и развитый контекстный поиск. В течение нескольких секунд можно получить список всех страниц, где упоминалась, скажем, фирма Borland. Мало того, если вы не помните точно, как именно пишется ключевое слово (с именами собственными часто возникает путаница), можно просмотреть все читающиеся похоже слова (последнее относится, разумеется, к английскому языку). Оборотная сторона медали - на хранение используемой при поиске информации, естественно, требуется место на диске, поскольку для обеспечения контекстного поиска сохраняется текстовое содержимое страниц, да и само приложение "съедает" заметно больше ресурсов машины, чем HistoryTree. Судя по всему, победитель в состязании трассировщиков (а их количество не ограничивается рассмотренными двумя) будет включен в какую-нибудь из последующих версий Navigator - заметим, хороший стимул для конкуренции.
Еще одно полезное расширение Navigator - пожалуй, один из самых популярных на сегодняшний день модулей - CyberSpell, программа проверки орфографии производства компании Inso (не путать с InSoft). Естественно, речь идет не о проверке ошибок в просматриваемых страницах, а о проверке писем, отправляемых при помощи Netscape Mail. CyberSpell поддерживает только английский язык, но, поскольку в Internet именно английский является "языком межнационального общения", эта утилита может быть полезна многим. CyberSpell не ограничивается традиционной проверкой орфографии - он отслеживает также пунктуацию, правильное использование артиклей, заглавных букв, а также проверяет форматы написания дат, денежных сумм, адресов e-mail и WWW. Используемый программой словарь ориентирован на всех пользователей Internet и включает в себя компьютерные термины и лексику юристов и бизнесменов, так что ваш английский, по крайней мере в переписке, будет на высоте.
Проблемы со знанием иностранных языков возникают и во время путешествий по Web - во-первых, не все изучали английский язык, во-вторых, не все страницы написаны на английском языке. Преодолеть языковой барьер поможет разработка компании Globalink - Web Translator. Программа добавляет в меню Navigator соответствующий пункт, и пользователь одним щелчком мыши может перевести выведенный на экран текст с английского языка на испанский, немецкий или французский, возможен также и обратный перевод. За неграмотность, правда, придется расплачиваться дисковым пространством - по 36 Мбайт за словарь каждого используемого языка.
Последняя рассматриваемая в этом разделе утилита - Zip-It (Vertisoft Systems), являющаяся, по сути дела, конкурентом популярного архиватора WinZip, на который во многом похожа. Однако, в отличие от WinZip, данная программа обладает одним немаловажным преимуществом, а именно возможностью подключения в качестве модуля расширения. Благодаря этому, пользователь может просматривать содержимое (так сказать, оглавление) zip-файлов, находящихся на удаленных FTP-серверах, без загрузки всего архива, и разархивировать любые файлы по выбору через Internet. При достаточно хорошей связи, что, повторимся, является нормой в развитых странах, это дает значительную экономию времени.
ПО ДОРОГЕ РАЗОЧАРОВАНИЙ
Завершает эту импровизированную экскурсию обзор модулей расширения, вызвавших у автора данной статьи наибольший интерес, правда, впоследствии они же и вызвали наибольшее разочарование. Речь пойдет о программах, существовавших, кстати, в автономных версиях и раньше; впоследствии были созданы их модификации в виде модулей расширений. Первое разочарование - Look@Me компании Farallon. Эта программа дает возможность наблюдать за тем, что происходит на экране удаленного компьютера как в отдельном окне, так и из окна Navigator (при вставке соответствующего тэга). Программа была успешно установлена на двух компьютерах, работающих под Windows 95 и Windows NT. Для чистоты эксперимента использовались компьютеры, находящиеся не в одной и той же локальной сети, а в 10 километрах друг от друга; даже подключение к Internet было предоставлено различными провайдерами. С обеих машин удалось заглянуть на демо-компьютеры производителя, но при связи друг с другом возникли проблемы, - c компьютера Windows 95 не удалось увидеть NT-станцию, хотя в обратном направлении все работало без сбоев. Тут же выяснилось, что Look@Me очень сильно загружает передающую машину, плюс ко всему передача графики (копии экрана) на скоростях, далеко не мегабитных, шла "со скрипом". Показывать динамическую графику с приемлемым качеством в таких условиях, вряд ли получится, поскольку гость видит в лучшем случае каждый десятый кадр. Для видеоконференции, где качество передаваемого изображения держится на уровне минимально приемлемого, да и размер кадра куда меньший, это не имело бы значения, но передачу динамических изменений на экране компьютера, например анимации, эти неустраненные проблемы лишают смысла. Передача же статического изображения вкупе со множеством дополнительных возможностей реализуется в других, куда более удачных приложениях. Обидно - столько усилий, а зря.
Второе еще более крупное разочарование - Carbon Copy for Netscape компании Microcom. Эта программа, существующая также в автономной версии, позволяет работать на удаленном компьютере, включая печать (только в автономной версии), а также предоставляет возможность использования установленной между машинами связи для переписки в реальном времени и обмена файлами. Однако в общедоступной бета-версии все функции, кроме собственно удаленного доступа, отключены. Но не это вызвало разочарование. Все началось с проблем во время инсталляции. Программа использует 32-х разрядный драйвер типа *.386, и под NT ее ставить было изначально нельзя, а после установки под Windows for Workgroups c TCP-стеком производства FTP Software выяснилось, что IP-адрес машины она определить не может, и пришлось просить помощи у производителя. Когда же установка была успешно завершена и оба тестовых компьютера связались друг с другом, обнаружилось, что предложенная бета-копия не справляется со своей единственной задачей. Обе машины интенсивно обменивались информацией, но единственным результатом этого обмена был промелькнувший в окне одной из тестовых машин "чужой курсор". Наверно, коммерческая версия Carbon Copy вполне работоспособна, но зачем же предлагать на пробу негодный товар? Скрепя сердце, пришлось обойтись без этой роскоши, которая, по сути дела, является попыткой переноса в мир персоналок того, что давным-давно реализовано в Unix-системах и неизбежно будет реализовано в грядущих версиях ОС для ПК-платформ, приобретающих все больше черт Unix.
В качестве примера можно привести OC Ntrigue компании Insignia Solutions, заслуживающую отдельной статьи. Если говорить коротко, то данная ОС - модификация Windows NT, предоставляющая доступ к серверу NT как по X-протоколу, так и с Internet-терминала, полноценно реализуя архитектуру клиент-сервер.
Не хочется заканчивать обзор упреками, поэтому рассмотрим напоследок весьма удачную разработку. В рассказе о программах воспроизведения трехмерной графики автор не очень лестно отозвался об одном приобретении Netscape, но CoolTalk, другой модуль расширения, также включенный в Navigator 3.0, несомненно заслуживает благоприятного отзыва. CoolTalk позволяет использовать Internet для голосовой связи между двумя абонентами, предоставляя также возможность обмена файлами и разделяемую грифельную доску. Последнее и ставит под вопрос целесообразность использования Look@Me, поскольку оба участника разговора могут использовать доску одновременно, вставлять в нее из папки обмена любую графическую информацию, а также на ней (на доске, как, впрочем, и на картинке) писать и рисовать. Однако при испытаниях основной упор делался на то, насколько успешно CoolTalk справляется со своими прямыми обязанностями. Через адресную книгу пользователей CoolTalk, размещенную на сервере Netscape, удалось связаться со студентом из Америки. Слышно его было не очень хорошо, но он утверждал, что слышит прекрасно. В общем, качество связи вполне укладывалось в рамки обычных международных телефонных переговоров, при этом минута разговора стоила значительно меньше. Популярность CoolTalk несомненно будет расти с каждым днем, однако Netscape надо следить за разработками конкурентов, поскольку аналогичное по возможностям (правда, не являющееся модулем расширения) приложение компании Tribal Voice PowWow уже имеет немалую армию поклонников и обязательно будет развиваться в дальнейшем.
ЗАКЛЮЧЕНИЕ
Прочитанный вами обзор далеко не полон, хотя бы потому, что количество новых разработок растет с каждым днем. Посвятив данную статью лишь приложениям для Windows, мы руководствовались отчасти тем, что в России это самая популярная платформа. К тому же в течение длительного времени Netscape предлагало только версию SDK для Windows. Но уже сегодня многие из популярных модулей расширения перенесены на платформу Mac, а совсем недавно появилась и версия SDK для Unix, так что следует ожидать битвы за многоплатформенность, которая подстегнет процесс развития рынка, как и саму концепцию модулей расширения. Результатом этого процесса станет не только выживание сильнейших, но и формирование новых концепций Internet. Сегодня независимые производители имеют реальную возможность оказать влияние на формирование структуры глобального масштаба и активно используют свой шанс. Делая выбор в пользу того или иного приложения, свой вклад в развитие Internet вносим мы, пользователи. Не поленитесь, прогуляйтесь вдоль "виртуальных полок" с модулями расширения.
С Александром Авдуевским можно связаться через Internet по адресу: shura@osp.ru.
МЕХАНИЗМ ПОДКЛЮЧЕНИЯ МОДУЛЕЙ РАСШИРЕНИЯ К HTML-ДОКУМЕНТАМ
Навигатор с добавкой
Как заставить свою страницу использовать конкретный модуль расширения? Полноэкранные модули расширения активизируются сами при вызове файла, а приложение, работающее во встроенном режиме, надо указать в HTML-файле следующим образом:
Под атрибутами понимаются размеры прямоугольной области, в которой будет размещаться рабочая область модуля, а также URL, где находятся отображаемые данные и, при необходимости, MIME-тип данных. В качестве атрибутов могут также указываться параметры командной строки приложения. Следующая строка, например,
означает, что Navigator должен загрузить файл myavi.avi из текущего каталога, зарезервировать за модулем область окна 320х200 пикселов и передать ему файл и два последних атрибута. В свою очередь, модуль, получив файл, интерпретирует атрибуты и автоматически начинает циклически проигрывать видеоклип в отведенной области.
ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ НА РАБОЧЕМ СТОЛЕ
Язык VRML
Язык VRML (Virtual Reality Modeling Language) разрабатывался специально как язык для описания трехмерных миров в World Wide Web. Подобно HTML, он платформенно-независим, расширяем и рассчитан на работу по низкоскоростным соединениям. VRML независим от HTML. Стандарт 1.0 позволяет описывать статические трехмерные миры - создавать трехмерные объекты, задавать их взаиморасположение, цвет, текстуру и освещение. Объект может также содержать в себе ссылку на URL. Специфика перемещения по виртуальному миру зависит от используемой программы воспроизведения.
Недавно принятый стандарт 2.0 заметно расширяет возможности описания статических объектов, позволяя, например, вписывать несколько тел в поверхность или затенять объект туманом. Интерактивность в поведении объектов достигается добавлением к ним датчиков. Датчик может реагировать на сообщения от клавиатуры и мыши, а также срабатывать при приближении к объекту виртуальной камеры на заданное расстояние или при попадании объекта в ее поле зрения. Реакция объекта на срабатывание датчика определяется соответствующим сценарием.
В перспективе VRML может стать и скорее всего станет основным средством разработки домашних страниц, поскольку сложная, многомерная по своей сути, структура гипертекстовых документов уже сегодня с трудом укладывается в рамки "плоских" страниц HTML. Основной сдерживающий фактор - высокие требования к производительности компьютера. Интерпретаторы VRML, а в особенности программы, поддерживающие стандарт 2.0, производят большой объем вычислений в реальном масштабе времени, поэтому практически бессмысленно использовать их на компьютерах с процессором слабее Pentium.