Архивы: по дате | по разделам | по авторам

Push!

Архив
автор : ПАВЛО ДЗИКОВСКИЙ    14.07.1997

"Чем дальше в лес, тем толще партизаны"

(из фолькльора)

Когда-то, году так в 1900-м, мы живо обсуждали возможности электрической энергии (см. хотя бы http://www.dzik.aha.ru/tech/edison.html). Сколько воды утекло! А сейчас, например, я подхожу к настенному выключателю - хлоп! - и в комнате светло. Так же и Интернет с неизбежностью превращается из предмета вожделения в нечто само собой разумеющееся. Как по мне, так переход Сети из состояния глобальной ценности, на которую мы с восхищением взираем снизу вверх, к состоянию подручного средства, которое едва ли заметно среди прочих инструментов, обозначен именно развитием push-технологий.

Что же это такое - push, сиречь broadcasting (широковещательная рассылка) информации по сетям?

"Push" - по-английски значит "толкать". И смысл этого явления, соответственно, в доставке (проталкивании) нужной информации прямо в руки (то есть в компьютер) конечному пользователю без его непосредственного участия. В качестве источников информации выступают так называемые "каналы", в изобилии предлагаемые пользователю его push-программой. Примеры каналов - "CNN Interactive", "Reuters-Business" и т. п. Пользователь инсталлирует программу, выбирает каналы по своему усмотрению - и все. Теперь в любой момент у него под рукой самые свежие новости - без каких бы то ни было затрат времени на получение данных из Интернета. Причем сеть загружается очень незначительно, поскольку данные приходят однократно (только обновленные) и только те, которые нужны.

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

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

В действительности же все обстоит почти наоборот.

"Проталкивание" - красивая метафора. Вы думаете, что канал (сервер), как только у него появилось что-то новенькое, обходит своих клиентов и каждому передает эту информацию? Отнюдь, хотя такое впечатление у клиента и может создаться. Все гораздо проще: у всякого push-клиента есть свое (редактируемое) расписание обновлений, следуя которому он и обращается к каналам, чтобы скачивать из них новости. И это очень напоминает работу обычных off-line-браузеров, которые могут быть аналогично настроены на автономную загрузку выбранных Web-страниц. Точно так же push-клиенты, в большинстве, основаны на стандартном протоколе HTTP. А "каналы" - это, соответственно, HTTP-серверы.

Разумеется, взаимодействие push-клиентов с каналами имеет свои особенности, из которых я бы выделил две:

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

Особенно наглядно push-технология объединена с "off-line браузингом" в программе Netscape Netcaster из нового пакета Communicator, бета-версия которого доступна по адресу: http://developer.netscape.com. (Пока готовилась эта тема номера, вышел окончательный вариант Netscape Communicator 4.0; доступен там же. - А.Ш.) Эта программа одинаково работает как с обычными WWW-сайтами, так и с "каналами". В документации компания Netscape акцентирует внимание на том, что каналы, поддерживаемые Netcaster'ом, полностью и исключительно основаны на открытых протоколах HTML, JavaScript и Java (в отличие от active channels от Microsoft, использующих новый формат описания CDF - channel definition format) и не требуют совершенно никаких дополнений к HTTP-серверам. (Подробнее о CDF см. статью Олега Татарникова. - А.Ш.) При этом от разработчика канала требуется аккуратность в планировании его структуры - чтобы объем обновлений был, по возможности, наименьшим. А от простого Web-сайта канал отличается только наличием описания собственных параметров - глубины (количества ссылок от входной страницы, требующих отслеживания), интервала обновления, предпочтительных объемов кэш-памяти, а также экранных свойств. В то время как при использовании Netcaster'a для работы с "просто WWW" эти параметры придется задавать вручную.

В качестве альтернативы такому подходу могла бы выступать реальная многоадресная рассылка информации. Соответствующий протокол IP Multicast создан компанией MBone (http://www.mbone.com) еще в 1992 году, однако до сих пор находится в состоянии "инициативы", поддержанной уже всеми лидерами индустрии, но используемой пока весьма ограниченно. Проблемы понятны. Например: а что, если один из клиентов в момент рассылки не вхож в сеть? Разобраться впоследствии с "досылкой" можно, но, думаю, это довольно накладно.

Еще один путь к минимизации трафика состоит в применении proxy-серверов: как стандартных - HTTP, так и специализированных. Весьма эффективный путь - при массовой push-рассылке одного пакета внутри сегмента Сети заведомо выгодно получить его из канала один раз, сохранить в кэше и раздавать своим клиентам по запросу. Например, PointCast (http://www.pointcast.com) настойчиво предлагает клиентам своих каналов новый продукт - PointCast I-Server. Это сервер для интрасетей, совмещающий прокси-кэширование канального трафика извне с возможностью организации внутренних каналов.

Несколько особняком стоят программы от Marimba: Castanet Tuner - клиент и Transmitter - сервер каналов (http://www.marimba.com). Каналы Marimba могут нести не только традиционное HTML-содержание, но и быть Java-приложениями, исполняемыми на клиентском компьютере во взаимодействии с сервером либо в режиме off-line. При этом новые версии и дополнения должны сгружаться клиенту автоматически (возможен даже upgrade во время работы самого приложения), а в обратную сторону может идти статистическая и тестовая информация. Типичная, судя по всему, методика для сетевых компьютеров.

Само собой, что разные версии каналов крепко конкурируют между собой. Компания Netscape в дополнение к собственным разработкам поддерживает протоколы от Marimba, а Microsoft, соответственно, использует альтернативную технологию от PointCast (beta-версия Internet Explorer 4.0 с поддержкой каналов ожидается летом). (Любопытно в этом контексте, что собственные программы от Marimba, при всей их новизне и перспективности, выглядят, на мой взгляд, несколько по-любительски, в то время как клиент PointCast, не блеща функциональностью, отменно респектабелен. - П.Д.)

Отдельно стоит сказать об интерфейсах push-клиентов, которые весьма разнообразны - технология еще явно не устоялась... Из массы решений выделяются две модные метафоры. Во-первых, знаменитые "переключатели каналов". Это, по сути, банальные меню в виде, например, линейки закладок. А во-вторых - всякого рода "бегущие строки новостей", состоящие из потока заголовков - если заметишь в нем что-то нужное, можешь отловить и посмотреть подробности. Это решение мне менее понятно - все движется (по заголовку активного окна, или по своей строке, или по экрану screensaver'а, который больше ничего не хранит; или прямо по desktop'у - последнее достижение Netscape'а - Webtop, канал, выводящий информацию в окно, положенное под все остальные пользовательские окна), переливается, отвлекает, мешает работать.

Итак, push-клиент установлен, каналы выбраны, информация прибывает и прибывает. В этом-то, по-моему, и состоит самый деликатный момент. Как вы предлагаете с ней управляться?.. Иногда приходящие новости можно фильтровать (в Headliner'e есть довольно скромные фильтры - грузим только те новости, например, что содержат слово "Microsoft"; корме того, можно получить оповещение о приходе нужной новости по такому же критерию). Устаревшие новости подлежат автоматическому удалению по истечении срока давности. Очевидно, должен существовать хотя бы простой текстовый поиск в массиве полученных новостей - а нету. По крайней мере, в версиях программ, которые были мне доступны. На фоне возможности подключиться через Headliner одновременно к шестистам уже действующим каналам такой недостаток выглядит весьма впечатляюще.

И, по-моему, этот нюанс обозначает нечто большее, чем проблему конкретной версии Headliner'а. Наши горизонты расширяются. Когда винчестер умещал 200 Мбайт, его содержимое удавалось кое-как контролировать (правда, не всем). Если винчестер - 2 Гбайт и под рукой Интернет, то, побродивши немного по Сети, можно засорить его гораздо более концептуально. А если вдобавок подключен push-клиент, то, можно считать, весь Интернет у вас в кармане. С соответствующими последствиями.

При этом каналы представляют собой следующий "уровень абстракции" над обычными сетевыми понятиями типа http://www… - более мощный в смысле доступа к данным и более содержательный. А традиционный Интернет, соответственно, опускается до состояния "транспортного уровня" в новой схеме взаимодействия людей и компьютеров.

Возможно, по мере развития push-технологий будет выработана новая система пользовательской ориентации в Сети, которая наряду с возникающими сейчас каналами включит в себя (инкапсулирует) и существующие сетевые понятия. Уже сейчас через Netcaster можно отслеживать обычные Web-сайты, а через Headliner - группы новостей (у меня, правда, это не получилось, но частная неудача не может отменить общий прогресс). Marimba превращает в каналы обычные Java-апплеты. А когда поисковый агент SurfBot'а (это off-line-браузер) ищет нужные вам слова в десятке поисковых серверов, представляя результаты работы в виде дерева, вполне напоминающего совокупность каналов, и ветви этого дерева называются искомыми словами, возникает мысль, что адресация в Сети может быть смысловой.

И именно push-каналы, преодолевая информационные расстояния, делают такую - смысловую - адресацию возможной. А почему бы и нет, собственно?

С автором можно связаться по адресу dzik@aha.ru

 

Push-технологии обеспечивают массовое "автономное" движение информации по Сети. Соответственно, при всеобщем "пуше" информация, во-первых, перестанет быть привязанной к реальным Web-адресам и, во-вторых, упростится организация ее глобальной распределенной обработки. И только такими по силе средствами можно обеспечить ее смысловую (ассоциативную) адресацию в планетных масштабах. А пока обработкой данных занимаются отдельные компьютеры, их мощности для этой проблемы будет заведомо недостаточно: хоть на десять тысяч мегагерц Alpha будет стоять в AltaVista, ей не решить задачу, с которой легко справится HotBot с дестью миллионами вычислительных узлов. А такой HotBot'ик, понятное дело, не обустроить без наладки массового push'а. Конечно, push такого рода не будет связан с кнопочками-финтифлюшечками, "переключателями каналов" и пр., но я называю его push'ем и именно его подразумеваю в своей статье.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.