Веб-синдикация - форма синдикации при которой содержимое веб-сайта предоставляется другим многочисленным веб-сайтам. Иначе говоря, веб-синдикация означает создание доступных с сайта веб-потоков (feed), предоставляющих всем пользователям в форме краткой сводки информацию о новом содержимом, появившемся на сайте (это могут быть новости, сообщения из форума и др.).
Веб-поток - формат данных, используемый для предоставления пользователям часто обновляемого контента. Распространители контента объединяют (синдицируют) веб-потоки, давая пользователям возможность подписаться на них. Другое название для веб-потока - синдицированный поток. Создание набора веб-потоков, которые доступны одновременно в одном месте называется аггрегированием. Для этого используются специальные аггрегаторы.
Аггрегатор потоков (feed aggregator) - клиентское веб-приложение, собирающее синдицированный веб-контент такой как новостные заголовки, блоги, подкасты и другие в одном месте для более удобного просмотра.
Для принимающего сайта веб-синдикация является эффективным способом размещения более исчерпывающей и своевременной информации на своих страницах.
Для сайта передающего синдицируемую информацию выгода заключается в большей степени его представленности среди различных он-лайн платформ. Кроме того, порождается дополнительный трафик, что, по-сути, является простой и бесплатной формой рекламы сайта в сети веб.
Взаимодействие веб-потоков и аггрегаторов происходит в следующем порядке:
- Провайдер контента публикует ссылку на поток со своего сайта.
- Пользователь может зарегистрировать эту ссылку с помощью программы-аггрегатора на своем компьютере.
- Программа-аггрегатор затем опрашивает все серверы, входящие в список зарегистированных потоков, с целью получения нового контента.
- При наличии нового контента программа-аггрегатор либо информирует пользователя о наличии такового либо сразу же загружает его.
Контент веб-потока обычно представляет собой веб-страницы, гиперссылки либо мультимедиа. Извлечение контента с сайта в форме веб-потока обычно производится средствами самого веб-сайта. Однако, не все веб-сайты могут иметь веб-поток. В этом случае могут быть использованы средства сторонних агентов. Веб-поток - это веб-документ, обычно в XML формате, содержащий тематические элементы, содержащие ссылки на более полную версию материала. Является удобным инструментом для доставки структурированной информации. Пользователи могут подписываться на веб-потоки с помощью аггрегаторов или программ для чтения потоков, которые комбинируют содержимое нескольких веб-потоков для отображения на одной странице (или нескольких последовательных страницах).
Некоторые из веб-браузеров содержат встроенные возможности для аггрегирования потоков. Это делается путем простого ввода URL веб-потока или кликом на гиперссылке в браузере. Формат веб-потоков не предназначен для непосредственного чтения пользователем, поскольку позволяет автоматически переносить контент с сайт на сайт. Для представления информации из веб-потока обычно используются 2 формата: RSS и Atom.
Если сравнивать веб-поток с более традиционной почтовой технологией доставки часто обновляемой информации, то можно указать на следующие преимущества первого:
- Поскольку при подписке пользователь не указывает свой адрес электронной почты, эта технология лишена таких потенциальных угроз как спам, вирусы, фишинг и кража личной информации.
- При отказе от использования веб-потока нет необходимости отправлять запрос на отказ от подписки; пользователь просто исключает данный поток из своего аггрегатора.
- Имеются широкие возможности для автоматической сортировки сообщений от веб-потоков вплоть до использования сложных правил и регулярных выражений.
- Браузеры Internet Explorer 7.0, Opera, Safari, Firefox и другие могут работать с веб-потоками через инструменты панели Закладок, Избранного и других. Имеются также специализированные программы для чтения веб-потоков, например FeedDemon, Thunderbird, Outlook 2007 и другие.
Аггрегатор позволяет объединить информацию из разных потоков в одном окне веб-браузера или веб-приложения. Такое приложение называется RSS-каналом, новостной лентой, аггрегатором потоков или поисковым аггрегатором. Подкастинг-аггрегаторы могут автоматически загружать медиа-файлы. Объединенный контент аггрегатор получает и интерпретирует обычно в формате RSS или других форматах, основанных на XML, например RDF/XML или Atom. Наиболее развитые методы аггрегирования веб-потоков реализуются на основе технологий AJAX и XML компонентов - веб-виджетов (web widgets).
Многие языки программирования имеют библиотеки функций, позволяющие загружать, обрабатывать, генерировать и выполнять удаленную загрузку каналов. Например в Perl имеется поддержка нескольких библиотек в пространстве имен XML::RSS
RSS
RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п.
В разных версиях аббревиатура RSS имела разные расшифровки:
- Rich Site Summary (RSS 0.9x);
- RDF Site Summary (RSS 0.9 и 1.0);
- Really Simple Syndication (RSS 2.x).
Из истории формата.
Первой открытой официальной версией RSS стала версия 0.90. Формат был основан на RDF (Resource Description Framework — стандарт схемы описания потоков) и многим показался слишком сложным, после чего появилась упрощенная версия — 0.91.
В 2000 году произошло разделение формата:
- Группа разработчиков из списка рассылки "RSS-DEV" предложила формат RSS 1.0, который был основан на стандартах XML и RDF организации W3C. Расширения формата предлагалось делать через модули расширений, описываемые в своих пространствах имен. Так как проект использует уже существующие стандарты, рассматривается его использование в рамках технологии Semantic Web.
- Спецификация RSS 0.92 является развитием версии 0.91 и ориентируется на тех пользователей, которым RDF-описание показалось излишне сложным. Дальнейшим развитием этой ветки стал формат RSS 2.0, который тоже поддерживает расширения с помощью модулей, лежащих в своих пространствах имен.
- В июне 2006 года появился конкурент RSS — формат Atom.
Из-за существования нескольких различных версий формата RSS-каналов программы-агрегаторы должны уметь работать со всеми вариантами, что создает определенные трудности их разработчикам. Проблемы совместимости возникают также при вставке в RSS-описания небольших HTML-фрагментов, которые в одних случаях оформляются как CDATA узлы, а в других — как HTML-кодированные PCDATA узлы. Существуют проблемы с различными форматами представления дат и метаданных.
30. Лабораторная работа: Примеры разработки RSS-источников и RSS-ридеров
Цель работы Введение в технологию RSS. Изучение структуры RSS документов, их генерации и публикации.
RSS – это метод распространения веб-контента с веб-сайта на других веб-сайтах. RSS позволяет выполнять быстрый просмотр новостей и изменений.
На кого ориентирован формат RSS? В первую очередь RSS предназначен для использования на очень часто обновляемых веб-сайтах, например:
- Новостные сайты (списки новостей).
- Сайты компаний (списки новостей и продуктов).
- Календари (списки предстоящих событий и знаменательных дней).
- Изменения сайтов (список обновленных и новых страниц).
Официального стандарта RSS как такового не существует. Реально используются следующие форматы:
- Порядка 50% RSS-потоков используют RSS 0.91.
- Порядка 25% используют RSS 1.0.
- Оставшиеся 25% RSS-потоков распределены между RSS 0.9 и RSS 2.0.
Как работает RSS?
- Создается RSS документ в виде файла с расширением .xml.
- Этот файл размещается на веб-сайте.
- RSS-поток регистрируется в RSS-аггрегаторах.
Пример RSS документа
<?xml version="1.0" encoding="windows-1251" ?>
<rss version="2.0">
<channel>
<title>My Home Page</title>
<link>http://www.MyHP.edu</link>
<description>Free web building tutorials</description>
<item>
<title>RSS Demo</title>
<link>http:// www.MyHP.edu/rss</link>
<description>New RSS demo on my home page</description>
</item>
<item>
<title>XML Demo</title>
<link> www.MyHP.edu/xml</link>
<description>New XML demo on my home page</description>
</item>
</channel>
</rss>
В первой строке размещено объявление версии XML и кодировки документа.
Вторая строка идентифицирует данный документ как RSS документ версии 2.0.
В третьей строке содержится элемент <channel>, описывающий RSS поток. Он в свою очередь содержит дочерние элементы:
- <title> - описывает заголовок RSS канала.
- <link> - описывает гиперссылку на канал.
- <description> - содержит краткую характеристику канала.
Каждый элемент <channel> может содержать один или более <item> элементов. Каждый элемент <item> описывает отдельную статью RSS источника. В свою очередь каждый элемент <item> имеет три обязательных дочерних элемента:
- <title>
- <link>
- <description>
Кроме обязательных элементов <channel> может содержать некоторые дополнительные дочерние элементы.
- Элемент <category> описывает категорию потока и используется RSS аггрегаторами для группировки сайтов на основе категорий.
- Элемент <copyright> информирует об авторском праве на данный документ.
- Элемент <image> предназначен для отображения изображения при показе потока агрегатором. В свою очередь он содержит три обязательных дочерних элемента:
- <url> - URL изображения
- <title> - альтернативный текст, отображаемый при невозможности показа изображения
- <link> - содержит гиперссылку на веб-сайт, содержащий канал
Пример:
<image>
<url>http://www.myhp.edu/images/me.gif</url>
<title>My home page</title>
<link>http://www.myhp.edu</link>
</image>
Элемент <language> информирует о языке документа. Может быть использован аггрегаторами для группировки сайтов по языку.
Список дочерних элементов для элемента <channel>.
Элемент
| Описание
| Статус
| <category>
| Указывается одна или несколько категорий потока
| Необязательный
| <cloud>
| Регистрирует процессы, получающие немедленное извещение в случае обновления потока
| Необязательный
| <copyright>
| Извещает об авторском праве на документ
| Необязательный
| <description>
| Краткое описание канала
| Обязательный
| <docs>
| Указывает URL документов по форматам, используемым в потоке
| Необязательный
| <generator>
| Указывает на программу, генерирующую поток
| Необязательный
| <image>
| Позволяет показывать изображение, представляющее поток в аггрегаторе
| Необязательный
| <language>
| Указывается язык потока
| Необязательный
| <lastBuildDate>
| Определяется дата последнего обновления содержимого потока
| Необязательный
| <link>
| Указывается гиперссылка на канал
| Обязательный
| <managingEditor>
| Содержится почтовый адрес редактора содержимого потока
| Необязательный
| <pubDate>
| Определяет дату последней публикации содержимого потока
| Необязательный
| <rating>
| Содержится PICS рейтинг потока
| Необязательный
| <skipDays>
| Указывает дни, в которые аггрегаторы не должны обновлять поток.
| Необязательный
| <skipHours>
| Указывается количество часов в течение которых аггрегаторы не должны обновлять поток
| Необязательный
| <textInput>
| Описывается текстовое поле ввода, отображаемой в потоке
| Необязательный
| <title>
| Размещается имя канала
| Обязательный
| <ttl>
| Указывается количество минут в течение которых поток может находится в кэше до обновления из источника
| Необязательный
| <webMaster>
| Помещается адрес электронной почты веб-дизайнера потока
| Необязательный
| Список дочерних элементов для элемента < item >
Элемент
| Описание
| Статус
| <author>
| Адрес электронной почты автора темы
| Необязательный
| <category>
| Описывает одну или более категорий для данной темы
| Необязательный
| <comments>
| Позволяет связать тему с комментариями по данной теме
| Необязательный
| <description>
| Краткое описание темы
| Обязательный
| <enclosure>
| Позволяет включить мультимедиа файл в данную тему
| Необязательный
| <guid>
| Содержит уникальный идентификатор темы
| Необязательный
| <link>
| Содержит гиперссылку на тему
| Обязательный
| <pubDate>
| Содержит последнюю дату публикации темы
| Необязательный
| <source>
| Указывает внешний источник для данной темы
| Необязательный
| <title>
| Название темы
| Обязательный
| |