Новый стандарт для создания динамического контента

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

Спастись от означенных бед помогает ESI (Edge Side Includes - включение данных на “границе”) - новый стандарт кэширования, позволяющий создавать более экономные приложения, ускоряющие к тому же ответную реакцию клиентов. Продукты и услуги с поддержкой этой новинки уже начинают появляться на рынке, а некоторые предприятия даже приступают к их тестированию.

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

Однако львиная доля переменных данных хранится на центральных серверах, и каналы связи с ними зачастую оказываются узкими местами сетей. Более того, серверы - это далеко не самые дешевые устройства обработки информации. “Компаниям хотелось бы снять лишнюю нагрузку с дорогостоящих центральных серверов и переложить ее на сравнительно дешевое серийное оборудование, - уверен Джон Мейджи, старший директор корпорации Oracle (www.oracle.com), отвечающий за производство Oracle9ias. - Но динамический контент лишает их такой возможности”.

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

Действуя подобно HTML, стандарт ESI отделяет информацию, которую можно получить только на центральном сервере, от той, что может быть сохранена на других системах. Например, ее можно разместить в вычислительном центре компании либо в пограничной области сети. Здесь такая информация становится компонентом частной сети или сети CDN (Content Delivery Network - сеть доставки контента). ESI содержит описание API для объединения и сборки распределенных элементов (их называют фрагментами контента), а также для доставки в виде полных Web-страниц.

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

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

Подобное распределение задач обработки между несколькими серверами не только снижает стоимость оборудования, но и позволяет улучшить масштабируемость, надежность и отказоустойчивость всей инфраструктуры ИТ. Еще одно немаловажное достоинство такой системы отмечает Питер Кристи, основатель фирмы NetsEdge Research Group, которая специализируется на исследованиях рынка. По его убеждению, она отличается повышенной устойчивостью к атакам, так как злоумышленнику придется взламывать защиту не одного, а нескольких серверов.

Развитие стандарта

Начало новой спецификации положили исследовательские проекты фирмы Akamai Technologies (www.akamai.com) и корпорации Oracle. Обе они провели внимательное изучение способов наиболее эффективной доставки быстро меняющейся информации, хотя избрали для этого разные пути.

Akamai решила сделать более привлекательными услуги EdgeSuite CDN, тогда как Oracle пыталась расширить возможности своего Web-сервера приложений Oracle9ias. “Наши клиенты используют широкий спектр различных продуктов, поэтому специализированные методы разгрузки центральных серверов нас интересовали мало”, - признается Торстен Ганц, директор Akamai по маркетингу.

В отличие от многих других стандартов разработка ESI велась без особых стычек. “Не знаю почему, может быть, сказался и спад в экономике, но ни один производитель так и не стал разрабатывать собственную альтернативу”, - отмечает Кристи из NetsEdge.

Решив объединить свои усилия, Akamai и Oracle обратились за помощью и к другим разработчикам, в результате чего над первой версией спецификации трудилось уже 15 компаний. В работе группы приняли участие изготовители самых разных продуктов: фирма BEA Systems (www.bea.com) и корпорация IBM (www.ibm.com) внесли свой опыт по разработке серверов Web-приложений; фирмы Digital Island (www.digitalisland.com) и Mirror Image (www.mirror-image.com) предложили услуги сетей доставки контента; Macromedia (www.macromedia.com) и SilverStream Software (www.silverstream.com) поделились своим инструментарием разработки, а компании Art Technology Group (www.arttechnologygroup.com) и Open Market (www.openmarket.com) - опытом разработки приложений.

Первая версия была готова в июне прошлого года, после чего группа убедила Консорциум Всемирной паутины взять его совершенствование на себя. В сентябре ESI получил статус “заметки W3C”, что эквивалентно стандарту этой организации. В дополнение к основной спецификации был создан также комплект расширения ESI для языка программирования Java, открывший доступ к компонентам ESI со страниц JSP (JavaServer Pages - страницы Java-сервера). JSP - это серверные программные модули, которые, объединяя с помощью тегов переменный контент со статичными HTML-данными, создают окончательный интерфейс пользователя.

Когда основа была заложена, оставалось только убедить производителей предусмотреть поддержку ESI в своей продукции. “Включение новых функций в уже выпускаемые системы занимает обычно от шести месяцев до года, - говорит Нил Голдмен, аналитик бостонской фирмы The Yankee Group, специализирующейся на исследованиях рынка. - С учетом этого можно ожидать, что число производителей, предлагающих совместимые с ESI продукты, значительно возрастет уже во втором полугодии”. Конечно же нет ничего удивительного в том, что лидерами здесь являются Akamai и Oracle: первый из инициаторов новой спецификации в декабре прошлого года включил ESI в свою производственную линейку EdgeSuite, выводящую динамический контент в сетевое пограничье, а в январе года нынешнего в продаже появилась версия Oracle9ias с поддержкой нового стандарта.

ESI и The Times

Отдел перспективных новостных систем издательской компании The Seattle Times обратил внимание на ESI, когда у него возникли проблемы с обработкой запросов к Web-страницам, посвященным таким громким событиям, как встреча членов Всемирной торговой организации, недавние землетрясения и теракт 11 сентября. “Мы не можем даже приблизительно оценить, сколько было запросов на информацию, потому что многие отключались не дождавшись ответа. Посетителям приходилось подолгу стоять в очереди, а порой они и вовсе получали отказ в доступе к такой странице”, - поясняет Джон Солтис, старший Интернет-инженер издательства, для размещения приложений которого используется почти дюжина серверов фирмы Sun Microsystems.

Чтобы решить возникшие проблемы такого рода, фирма в феврале 2001 г. обратилась к услуге EdgeService компании Akamai, а через год добавила к ней функции ESI. Вначале не все шло гладко. “На первом этапе порой терялись отдельные фрагменты заголовков и было совершенно не ясно, какую часть информации нужно считывать с сервера Sun, а какие данные следует искать в сети Akamai, - вспоминает Солтис. - Но с помощью специалистов Akamai все эти проблемы были решены”.

В исполнении Akamai реализация ESI выглядит иначе, чем у Oracle: EdgeService переводит контент с центрального сервера в сеть, тогда как в Oracle9ias содержимое передается с сервера базы данных на сервер приложений. А в системах Macromedia контент вообще перемещается на клиентские системы. “Akamai использует ESI, чтобы передать функции обработки в свою сеть, мы же считаем, что в некоторых случаях компании предпочтут возвратить их в клиентскую систему”, - поясняет такое решение Кевин Линч, старший архитектор ПО Macromedia.

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

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

Пол Корженевски - независимый автор из г. Садбери (шт. Массачусетс), специализирующийся на сетевых проблемах. Связаться с ним можно по адресу: paulkorzen@aol.com.