WEB-ТЕХНОЛОГИИ

С начала этого года мы регулярно пишем о технологии AJAX, которая сейчас рассматривается ИТ-отраслью как главное направление развития клиентских Web-технологий. Однако в этих публикациях речь пока шла в основном о теоретических основах данной концепции, а также о технологически-маркетинговых боях между ведущими ИТ-поставщиками за будущее лидерство в перспективном сегменте (см. например, PC Week/RE, N 20/2006, с. 25). И почти все статьи основывались на зарубежном опыте, а также на изучении небольших тестовых приложений.

Этого, конечно, недостаточно для понимания реальных достоинств новой технологии. Честно говоря, по мере "раскрутки" темы AJAX все больше настораживал тот факт, что российские разработчики как-то не спешат с демонстрацией (в том числе на прошедших в последние месяцы выставках и конференциях) своих достижений в данной области. Что это - проявление инертности нашего ИТ-рынка? А может быть, AJAX - очередной мыльный ИТ-пузырь, надуваемый международными вендорами, но который уже не может ввести в заблуждение наученных опытом независимых разработчиков?

От слов к делу

Похоже, теперь в поисках ответов на эти вопросы вместо предположений можно оперировать фактами: в середине июля российская служба Mail.Ru объявила о запуске в тестовую эксплуатацию нового почтового Web-интерфейса, полностью построенного на технологиях AJAX (http://pro.mail.ru).

Напомним, что основная идея AJAX - повышение функциональности клиентской части Web-приложений за счет использования скриптов в среде браузера, когда динамические HTML-страницы формируются не на сервере, а на рабочей станции. В AJAX-приложениях получаемая браузером HTML-страница содержит не только видимый контент, но и активный программный модуль, который работает в фоновом режиме, взаимодействуя с сервером в асинхронном режиме. В частности, при таких событиях, как нажатие клавиш или щелчок клавишей мыши, программа запрашивает с сервера только дополнительные данные (а не всю HTML-страницу целиком), которые она может после их получения разместить на воспроизводимой странице без ее полной перезагрузки. Тем более что с сервера запрашивается не HTML-код (данные + их представление), а более компактный XML. Для пользователя это выглядит, как очень быстро изменяющаяся, без перерисовок, страница. Фактически AJAX - это интернет-реализация режима работы приложения, функционирующего в среде ОС (например, Windows).

AJAX и HTML - почувствуйте разницу!

Все это можно увидеть на примере Pro.Mail.Ru: даже не очень опытный пользователь E-mail сразу заметит его принципиальные отличия от привычного Web-клиента. По своему дизайну и функциональным возможностям новое ПО во многом приближается к таким программам, как Outlook и The Bat. Например, пользователь может просматривать на одной странице одновременно и список писем, и текст одного из них. В его распоряжении теперь есть функция drag-n-drop (перетаскивание объектов при помощи мыши) и контекстные меню, открывающиеся по клику правой кнопкой мыши на объекте.

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

Новый почтовый Web-клиент Mail.Ru почти не уступает по возможностям Windows-приложениям

Ведь на самом деле в загружаемом программном AJAX-модуле лишь несколько процентов кода приходится на оригинальную бизнес-логику приложения, остальное - это набор базовых функций. Так вот необходимость стандартизации AJAX заключается как раз в том, чтобы создать унифицированный AJAX Framework, который можно было бы просто включить в состав браузера (или подключить в виде модуля расширения), а не гонять его каждый раз от сервера к клиенту.

В случае Mail.Ru объем загружаемых библиотек составляет около 300 Кб. Но в клиенте реализован механизм кэширования, поэтому их передача выполняется только при первом открытии AJAX-почты.

Обратим внимание еще на одну проблему: отсутствие четких стандартов в отношении AJAX для различных браузеров, что требует сегодня настройки клиентского приложения под конкретную программу просмотра. Неудивительно, что Pro.Mail.Ru работает пока только с самыми популярными браузерами - Internet Explorer 6.0 и Mozilla FireFox 1.5.

Сколько это стоит

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

Проблема заключается в том, что до настоящего времени идеи AJAX можно реализовать лишь с помощью низкоуровневого программирования. Образно говоря, то, что для Windows-приложения можно писать на Visual Basic, для AJAX нужно делать на Си или даже на ассемблере. Это другой аспект проблемы развития данной технологии: необходимо повысить производительность труда Web-разработчиков за счет перехода к высокоуровневому программированию.

Как известно, первые реальные AJAX-приложения появились относительно недавно в проектах такого гиганта, как Google (например, Google Maps), который может действовать по принципу "патронов не жалеть" ради достижения долгосрочных стратегических целей. Под силу ли это разработчикам не столь крупным?

Комментируя реализацию проекта Pro.Mail.Ru, технический директор Mail.Ru Владимир Габриелян отметил, что отдельные элементы AJAX-технологий компания уже использовала в своих Web-программах. Например, в традиционном почтовом интерфейсе были реализованы функции "быстрый ответ", автоматическая подстановка адресов при вводе по первым буквам, "расхлоп" окна для написания комментариев в разделах Блоги@Mail.Ru и Фото@Mail.Ru.

Советы тем, кто собирается создавать AJAX-приложения

 Рекомендации специалистов Mail.Ru

- Следует очень хорошо изучить документацию браузера, в котором проект будет работать, особенно разделы, касающиеся реализации языка JavaScript.

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

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

Вопрос о создании Web-клиента полностью на AJAX встал в начале года: чтобы удерживать ведущие позиции на рынке электронной почты, нельзя опаздывать с освоением новых технологий. К тому времени о выпуске AJAX-инструментов и библиотек поддержки объявили на Западе уже несколько десятков фирм. Однако внимательное изучение предложений показало, что все это - весьма сырая и плохо поддерживаемая продукция, не подходящая для создания серьезных решений. По мнению специалистов Mail.Ru, одним из лучших решений на тот момент являлась библиотека Yahoo User Interface Library, однако набор реализованных в ней объектов был достаточно скромен. К тому же интерфейс почтового "тонкого клиента" предполагает наличие в нем довольно специфичных объектов, реализация которых как раз на AJAX и представляет наибольшую сложность. Учитывая все эти обстоятельства, а также фактор времени, руководство Mail.Ru решило не ждать появления индустриальных AJAX-платформ от лидеров ИТ-рынка и начать проект собственными силами, практически с нуля.

Реализация его оказалась весьма ресурсоемкой: по словам г-на Габриеляна, над проектом трудился коллектив разработчиков из 10-15 человек в течение четырех месяцев. И это при том, что проект еще не завершен - идет широкое бета-тестирование, собираются и анализируются отзывы пользователей. По мнению специалистов Mail.Ru, трудоемкость создания подобного Windows-клиента была бы на порядок меньше. Помимо того что JavaScript и HTML в принципе не очень хороши для написания бизнес-приложений, нужно также учитывать, что у каждого браузера имеются собственные особенности интерпретирования JavaScript и весомую часть времени реализации проекта Pro.Mail.Ru заняла именно "кросс-браузерность" кода. Существенная доля усилий пришлась на оптимизацию обмена данными (особенно подкачка объектов) с сервером. Правда, нужно учитывать и то, что значительный объем работ был связан с созданием базового набора AJAX-средств, который, очевидно, будет использоваться и в других приложениях компании.

Ждать или начинать?

Итак, на примере Mail.Ru мы видим, какие возможности дает применение AJAX, но их реализация требует пока очень больших усилий. Что же делать прикладным Web-разработчикам: задавать свои Framework, использовать уже имеющиеся сегодня бета-версии средств от поставщиков платформ или ждать появления устоявшихся стандартных вариантов?

Решать им самим, но точно можно сказать одно: откладывать на потом освоение AJAX не стоит.

Версия для печати