Новые методы доставки самой свежей информации с серверов на клиентские устройства

На прошедшей в Гонконге Международной конференции по проблемам World Wide Web в числе прочих весьма любопытных докладов было сделано сообщение о двух новых протоколах, которые позволяют применять push- и pull-технологии для своевременной доставки информации через Internet и при этом поддерживают масштабирование по мере роста числа пользователей.

Протоколы PAP (Push And Pull) и POP (Push Or Pull) имеют шансы стать стандартными инструментами для поставщиков информационных ресурсов: в одних случаях новые материалы будут рассылаться пользователям принудительно (push), но в определенных ситуациях пользователи смогут сами извлекать их с сервера (pull). Критхи Рамамритхам, профессор Индийского института технологии, описал эту концепцию в представленной на конференцию статье.

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

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

Рамамритхам и его коллеги из Индийского института технологии и Массачусетского университета установили, что push-технология действует весьма оперативно и надежно — но только до того момента, пока число обслуживаемых ею клиентов не стало слишком велико. Тогда постоянно повторяющиеся проверки, с помощью которых выясняется, не пора ли запускать процесс для того или иного клиента, могут захватить все ресурсы сервера, и он начнет работать все медленнее и медленнее. С другой стороны, отметил Рамамритхам, если заставлять клиентов самих извлекать информацию или периодически (скажем, каждые четверть часа) проверять наличие обновлений, то может оказаться, что клиент выдаст запрос в неурочное время или получит данные позже, чем следовало бы.

«Возникает необходимость как-то объединить push и pull», — отметил Рамамритхам.

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

«Эта служба будет работать лишь при определенных обстоятельствах, а не постоянно», — объяснил Рамамритхам.

Впрочем, добавил он, целесообразно иметь под рукой и pull-функцию, готовую в нужный момент принять управление на себя, так как благодаря этому служба становится более устойчивой к сбоям. Если служба работает только в режиме push, то отказ сервера или сетевого соединения может оставить клиентов без информации. Клиентское программное обеспечение pull-службы можно настроить так, чтобы при отсутствии за определенный период времени обновлений клиент сам мог бы войти на сервер. В конце концов, пользователь будет хотя бы знать, что молчание сервера — это техническая проблема, и сможет попробовать поискать информацию в другом месте.

«В результате нам удастся добиться устойчивости и масштабируемости, используя единый механизм», — подчеркнул Рамамритхам. Протоколы PAP и POP делают, в сущности, одно и то же, только в PAP предусмотрены программные средства для отслеживания числа клиентов и их состояния. Протоколу POP такие сведения хранить не нужно, поскольку он предназначен для того, чтобы серверы и клиенты могли самостоятельно переключаться между режимами push и pull в зависимости от обстоятельств.

Рамамритхам пропагандирует эти два протокола как гибкие инструменты, допускающие «настройку», подобно протоколу TCP, который обеспечивает надежную передачу пакетов по IP-сети. По его словам, на сегодня поддержка pull-технологии, встроенная в стандарт HTTP 1.1, не отличается достаточной гибкостью, а push-функции, предлагаемые такими компаниями, как Netscape Communications и Bang Networks, не позволяют объединить подходы push и pull.

«Как только пользователи поймут, что push-технологии не обеспечивают масштабирования, они заинтересуются нашим предложением», — уверен Рамамритхам.