RSS для Web 2.0: можно ли выбирать из PubSubHubbub и rssCloud?

rssПопулярность всем привычного протокола RSS, похоже, достигла своего апогея, но жизнь не стоит на месте, и, по мере развития концепций Web 2.0, ограниченность и примитивность протоколов RSS разных версий начинает все больше тормозить возможности оперативной подписки и агрегированию новостей в современном динамическом интернете. К счастью уже разработаны и завоевывают свое место под солнцем протоколы по подписке новостей и уведомлений нового поколения, среди которых два главных лидера-конкурента, это PubSubHubbub и rssCloud. Давайте сравним этих двух наследников RSS, чтобы выделить их главные отличия и особенности.

Оцените:

Протокол PubSubHubBub (часто сокращенно называют PuSH) определяется в Википедии как открытый коммуникационный протокол для распределенных публикаций и подписок в интернете. Протокол расширяет уже известные протоколы Atom и RSS. У rssCloud практически в точности аналогичное определение. Главная цель всех усовершенствований - создание механизма мгновенного уведомления обо всех изменениях на обслуживаемом ресурсе. Реализуются подобные уведомления, как правило, на базе т.н. “жирного пинга” (“fat ping”), т.е. уведомления содержащего в себе дополнительную информацию о деталях самого обновления.


Врожденные проблемы


Оба протокола - PuSH и rssCloud пытаются устранить главные сегодняшние проблемы RSS: чтобы узнать появилось ли обновление в RSS необходим постоянный поллинг (опрос) целевого ресурса. Когда число таких подписчиков исчисляется десятками тысяч, мы имеем фактически настоящую DDoS-атаку ресурса. Кроме ненужной нагрузки эта техника просто избыточна сама по себе. Говоря на примере, RSS напоминает собой докучливого ребенка, который постоянно теребит свою маму: “Скоро ты мне расскажешь сказку?”, “Уже совсем скоро?”, “Ты уже готова?” и т.д. с частотой автоматной очереди. Подход обоих новых протоколов - PuSH и rssCloud заключается в том, чтобы ответить единожды: “Помолчи немного, я сама тебе скажу, когда я буду готова”. Если учесть попутно решаемые проблемы по мгновенной доставке уведомлений, а также созданию заведомо масштабируемых, говоря по-современному - облачных решений, - то в сумме мы получаем чрезвычайно востребованные и перспективные технологии уведомления, которые отныне позволяют быть в курсе всех новостей с много меньшими усилиями.


schema


Отличия в протоколах


В самом деле эти оба протоколы настолько похожи, то когда речь заходит о выборе очень часто задается справедливый ключевой вопрос: а чем же объективно они отличаются друг от друга? Попробуем выделить главное в их немногочисленных отличиях:



  • PubSubHubbub полностью совместим и поддерживает как RSS, так и Atom сразу после инсталляции. rssCloud не поддерживает в полной мере протокол Atom (ограниченная поддержка), полностью реализуя лишь RSS.

  • PubSubHubbub обеспечивает полноценные “жирные пинги” клиентам, тогда как rssCloud предоставляет только самые базовые возможности в своем сервисе уведомлений. Подписчик PubSubHubbub может полностью положиться на сервис уведомлений, отказавшись от традиционного механизма постоянного поллинга фидов. rssCloud требует от подписчика обязательного ре-поллинга новостного фида, после получения каждого уведомительного пинга от сервиса новостей; Именно поэтому, полноценный “жирный ping” имеет как минимум преимущество в том, что он экономит трафик и снижает нагрузку на обе стороны, тогда как в rssCloud по-прежнему, как и в старом-добром RSS требуется совершать множество избыточного информационного обмена.

  • С другой стороны, недостаток PubSubHubbub в том, что создание полноценного “жирного пинга” требует гораздо большей работы со стороны новостного хаба, что при большом количестве подписчиков создает сложные оповещательные очереди, что создает существенно большую нагрузку по сравнению с сравнительно простой работой хаба на базе rssCloud.

  • PubSubHubbub позволяет осуществить подписку любого конечного подписчика путем более гибкого языка запроса (с некоторыми мерами предосторожности, предотвращающими спаминг пингами произвольных хостов), т.е. указать произвольный callback-URL для обработки ответных пингов. rssCloud в этом плане более строг и ограничен: он позволяет подписывать подписчика только с того IP-адреса, с которого был осуществлен пинг-запрос обновления, что потребует обязательного размещения всего софта участвующего в подписке на том же сервере (адресе), на котором находится подписчик. Этот пункт приводит к довольно серьёзным очевидным следствиям, что делает в сравнении протокол PubSubHubbub гораздо более гибким и универсальным.

  • Несмотря на более простой и консервативный дизайн rssCloud у этого протокола уже имеются некоторые проблемы с безопасностью, которые не так-то просто исправить (пример потенциальной DDoS-уязвимости).

  • В PubSubHubbub более удобно устроена процедура отписки от мониторинга ленты новостей. В rssCloud каждый фид автоматически считается отписанным после 25 часов с его появления, тогда как в PuSH есть отдельная функция, которая позволяет самому определить промежуток времени “устаревания новости”, а также возможность настройки некоторых других с этим связанных деталей. Эта мелочь лишний раз подчеркивает, что PubSubHubbub очень бережно относится к избыточности запросов, тогда как в rssCloud единственный способ решения проблемы продления подписки – это переподписка, которая при массовом её применении генерирует большой трафик и существенную нагрузку на новостной хаб, тогда как можно было обойтись лишь коротким запросом продления, как это сделано в протоколе PuSH.


light


pubsubhub


Тем, кто интересуется технической стороной различий более глубоко, рекомендуем начать с этого обзора. Также рекомендуем сравнение возможностей основ этих систем: жирного пинга (fat pinging), на котором основаны PubSubHubbub и XMPP pubsub, а также легковесного пинга (light pinging), на котором базируются альтернативные протоколы уведомлений: rssCloud, XML-RPC pings, changes.xml, SUP, SLAP.


light


2b


Популярность


PubSubHubbub – разработка компании Google, который она “затачивала” в первую очередь для своего Google Reader, но кроме этого сервиса протокол подхватили также: Feedburner, Blogger, Google Latitude, YouTube, PicasaWeb, FriendFeed, LiveJournal, Superfeedr, Google Alerts и многие другие. PuSH – сегодня неоспоримый лидер рынка быстрых уведомлений.


Среди крупных игроков в мире rssCloud можно назвать разве что только нативную поддержку в WordPress, что автоматически породило целую армию блогеров-источников новостей в этом формате (кстати говоря, для поддержки в WordPress альтернативного PubSubHubbub также написан плагин). Другая острая проблема, свойственная для rssCloud – ограниченное количество rss-клиентов, способных понимать этот протокол и использовать его в полной мере, это River2 и LazyFeed.


popular


Заключение


Сегодня потребность в протоколах уведомлений реального времени велика как никогда. Некоторые крупные порталы, не дождавшись подобных решений, пошли своим путем, например, NetVibes, который разработал свой собственный закрытый протокол уведомлений в режиме реального времени. В наши же дни, рекомендуется параллельно транслировать новости (новостные фиды) сразу в оба открытых протокола (как это делаем мы, Интернетные Штучки), чтобы покрыть максимально широкое количество разнородных клиентов. При необходимости выбора более предпочтительным выглядит PubSubHubbub, тем более, что этот протокол стремительно развивается. Так, например, для него полностью реализован шлюз в протокол XMMP (см. XMPP pubsub) для автоматической трансляции новостей из этого протокола в Jabber или GTalk.

Автор: remixa
Оцените:

Комментарии Facebook

Комментарии ВКонтакте